Design
Rules first. Models second.
The crowded lane is “an LLM reviews your PR.” Sentinel inverts that. The merge gate is offline and deterministic. Muse only explains a failure.
Scan path
- Collect
Working tree, three-dot PR diff, and git history (including removed lines and commit messages).
- Match
Rule engine flags known secret shapes, decoded values, and composite pairs. Output is masked.
- Decide
Any blocking finding fails the gate. Allowlist can suppress a path or rule. Muse cannot overturn this.
- Triage
If a Model API key is set, Muse Spark labels each hit. Muse Wonder explains live and unclear ones.
What Muse returns
- Labels
likely_live · likely_example · likely_fixture · unclear
- Blast radius
Which commits, files, and authors share the same masked secret.
- Rotate runbook
Revoke, contain, prevent — plus a filter-repo purge hint for history hits.
- Fix patch
Redacted before/after suggestion when the secret is still in a file.
- Ignore candidates
Only for documentation samples and fixtures.
AI authorship signals
Separate from secret findings. Public PR metadata can surface advisory signals (author, branch, commit trailers). They never fail the merge unless a team turns on strict mode in CI.
Hard rules
- Muse never decides pass/fail.
- Secrets are masked before any model call.
- Contributor-tier model ids are refused.
- Demo works with no API key via a local checklist.
- At most two model calls per scan.