Skip to content

guardrails: grade every default-on guard's precision from the per-session hook event log (ADR 0003) #3756

Description

@kyle-sexton

Summary

ADR 0003 says a guard earns default-on by measured precision, and until #3750 the only instrument was a manual corpus sweep. The per-session hook event log now records every guard fire (source: "envelope", status: "blocked", subject) beside every event that did not fire, so precision can be graded from real sessions: blocked-versus-fired per guard, with the subject of each block available for a true/false-positive verdict.

The operator's original ask (2026-09-04) was to "unhobble" guards and instructions that were in place for older models and no longer apply. The pipeline is the instrument; the verdicts are not yet taken. The one guard with evidence already, block-hook-bypass (zero true positives in four fires across three sessions), is owned by the PreToolUse lane and tracked in #3721; this issue is the fleet-wide pass over the rest.

Fix

  1. Turn session_event_log_enabled on in the operator's own sessions for two to four weeks (the switch stays off by default for consumers).
  2. From the session files, per guard: fires, blocks, and the operator's verdict on each block's subject (true positive, false positive, scope error).
  3. Apply ADR 0003's clauses: a guard at zero true positives is withdrawn from default-on scope and re-filed for rescoping (clause 4), one whose oracle is wrong is deleted, one with sound precision stays. Each disposition is its own PR with the numbers in the body.

Acceptance

  • A findings table (guard, sessions observed, fires, blocks, true positives, disposition) attached to this issue.
  • One PR or closing note per guard with a non-"keep" disposition.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: read-onlyAudits, research, reports. No repository mutation; tracker and queue writes only.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions