You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
A rule-detector registry (claude/hooks/rule-detectors.py): fourteen deterministic
detectors over a session transcript, one or more per always-loaded rule, with an explicit
opt-out list for the three rules nothing in a transcript can decide. harness lint now fails
on a rule with neither, and reads its secret patterns from the same module. (#58)
A tenth hook, grade-bash: every Bash command is graded 0–3 on the read-only grammar's
decomposition (read-only, local, remote-mutating, irreversible) and the autonomy stance sets
the gate: execute on grade 3, confirm-writes on 2 and up, ask on 1 and up. Prompting
modes get ask with a one-line reason; auto and bypassPermissions, where a hook's ask
is ignored, get deny with the same reason and a chat-confirmed re-run prefixed HARNESS_CONFIRMED=1. (#60)
The session-end worker runs the detector registry and records rules, counts and stances
per session; harness usage --rules [--by rule|repo|stance] reports hits, sessions and share per
detector, marks promote? above 30 percent of at least 20 sessions and unobserved at zero over
at least 20, and --rescan backfills from existing transcripts. (#59)
Changed
The README leads with the positioning line; the docs explain command grades, the ask-versus-deny
split per permission mode with the hooks-reference quotes, and rule telemetry as the signal for
pruning the always-loaded rules. (#61)