Skip to content

v0.6.0

Choose a tag to compare

@JakeSelby JakeSelby released this 17 Sep 04:08
· 505 commits to main since this release
5cce8c4

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)