{
  "requiredRules": [
    {
      "id": "ACCEPT-CRITERIA-VERIFY-AND-REFLECT",
      "enforcement": "runtime"
    },
    {
      "id": "ADR-LINKS-ONLY",
      "enforcement": "doc"
    },
    {
      "id": "ADR-PATH-NUMBERING",
      "enforcement": "doc"
    },
    {
      "id": "ADR-RFC-ISSUE-DECISION-ONLY",
      "enforcement": "doc"
    },
    {
      "id": "ADR-RFC-TERMINAL",
      "enforcement": "doc"
    },
    {
      "id": "ADR-STATUS-VALUES",
      "enforcement": "doc"
    },
    {
      "id": "ADR-SUPERSEDE-NOT-REWRITE",
      "enforcement": "doc"
    },
    {
      "id": "ADR-TEMPLATE-SECTIONS",
      "enforcement": "doc"
    },
    {
      "id": "ADR-WORTHY-PERSIST",
      "enforcement": "doc"
    },
    {
      "id": "ANTIPATTERN-FANIN-WAIT"
    },
    {
      "id": "ARTIFACT-LIGHTWEIGHT-BODY-INVARIANTS"
    },
    {
      "id": "ARTIFACT-LIGHTWEIGHT-PLAN-FILE-EXCLUSIVE"
    },
    {
      "id": "ARTIFACT-STRATEGY-ENUM-FAIL-CLOSED"
    },
    {
      "id": "ARTIFACT-TRACKER-FIRST-NO-DUP"
    },
    {
      "id": "ARTIFACT-TRACKER-ISSUE-REFINEMENT-FLOOR"
    },
    {
      "id": "ARTIFACT-TWO-TIER-EXCLUSIVE"
    },
    {
      "id": "ASSET-PATH-INSTALLED-NO-ASSUME",
      "enforcement": "agent",
      "enforcementNote": "Path assumptions are agent behavior."
    },
    {
      "id": "ASSET-PATH-SOURCE-NO-REPO-LOCAL",
      "enforcement": "agent",
      "enforcementNote": "Path assumptions are agent behavior."
    },
    {
      "id": "CLOSING-REF-BRANCH-MISMATCH",
      "enforcement": "runtime"
    },
    {
      "id": "CONFIRM-CORE-EXPLICIT",
      "enforcement": "agent",
      "enforcementNote": "Seeking explicit confirmation is agent judgment; no script can require it."
    },
    {
      "id": "COPILOT-FOLLOWUP-ADVERSARIAL-BRIEFING",
      "enforcement": "agent",
      "enforcementNote": "Reviewer briefing tone is behavioral, not machine-checkable."
    },
    {
      "id": "COPILOT-FOLLOWUP-GATE-COMMENT-CANONICAL"
    },
    {
      "id": "COPILOT-FOLLOWUP-REPLY-RESOLVE-HELPER",
      "enforcement": "runtime"
    },
    {
      "id": "COPILOT-FOLLOWUP-REQUEST-BRANCHING",
      "enforcement": "agent",
      "enforcementNote": "Branching on the request result is behavioral."
    },
    {
      "id": "COPILOT-FOLLOWUP-REQUEST-HELPER-ONLY"
    },
    {
      "id": "COPILOT-FOLLOWUP-REREQUEST-AFTER-PUSH"
    },
    {
      "id": "COPILOT-FOLLOWUP-REREQUEST-GREEN-GATE"
    },
    {
      "id": "COPILOT-FOLLOWUP-RESOLVE-AFTER-REPLY"
    },
    {
      "id": "COPILOT-FOLLOWUP-ROUND-CAP"
    },
    {
      "id": "COPILOT-FOLLOWUP-VERIFY-BEFORE-RESOLVE"
    },
    {
      "id": "COPILOT-FOLLOWUP-WAIT-TOOLS",
      "enforcement": "agent",
      "enforcementNote": "Choosing a wait tool is behavioral guidance."
    },
    {
      "id": "COPILOT-STATE-ACTIVE-REQUEST-WAIT"
    },
    {
      "id": "COPILOT-STATE-REPLY-BEFORE-REREQUEST"
    },
    {
      "id": "COPILOT-STATE-TERMINAL-STOP"
    },
    {
      "id": "COPILOT-STATE-UNRESOLVED-PRIORITY",
      "enforcement": "runtime"
    },
    {
      "id": "COPILOT-STATE-WATCH-PERSISTENCE"
    },
    {
      "id": "END-TURN-AND-AWAIT-WAKE",
      "enforcement": "doc"
    },
    {
      "id": "EPIC-REFINEMENT-CONFIRM-BEFORE-MUTATE"
    },
    {
      "id": "EPIC-REFINEMENT-REQUIRED-CONTRACTS",
      "enforcement": "runtime"
    },
    {
      "id": "EPIC-REFINEMENT-SCOPE-BOUNDARY"
    },
    {
      "id": "EPIC-REFINEMENT-SERIAL-PHASE-GATE"
    },
    {
      "id": "FACADE-BOOTSTRAP-ACTION-REQUIRED-NONBLOCKING"
    },
    {
      "id": "FACADE-BOOTSTRAP-CLOSED-UNMERGED-RECONCILE"
    },
    {
      "id": "FACADE-BOOTSTRAP-FOLLOWUP-REENTRY"
    },
    {
      "id": "FACADE-BOOTSTRAP-ISOLATED-WORKTREE-CONTINUATION"
    },
    {
      "id": "FACADE-BOOTSTRAP-QUIET-NO-EJECT"
    },
    {
      "id": "FACADE-BOOTSTRAP-WATCH-ROUTE"
    },
    {
      "id": "FACADE-CONFLICT-CONTEXT-FAIL-CLOSED"
    },
    {
      "id": "FACADE-CONFLICT-REVALIDATE-NEW-HEAD"
    },
    {
      "id": "FACADE-COPILOT-INTERNAL-ONLY"
    },
    {
      "id": "FACADE-LINKED-PR-SINGLE-ARTIFACT"
    },
    {
      "id": "FACADE-NEVER-CI-WAIT-WHILE-DIRTY"
    },
    {
      "id": "FACADE-PICKUP-INTEGRATE-BASE-FIRST"
    },
    {
      "id": "FACADE-STATUS-AUTHORITATIVE-FAIL-CLOSED"
    },
    {
      "id": "FACADE-TAXONOMY-DRIFT-TEST"
    },
    {
      "id": "GATE-COMMENT-DRAFT-REQUIREMENTS",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-COMMENT-FAIL-CLOSED"
    },
    {
      "id": "GATE-COMMENT-IDENTITY-DISJOINT"
    },
    {
      "id": "GATE-COMMENT-NON-SUBSTITUTION"
    },
    {
      "id": "GATE-COMMENT-PREAPPROVAL-REQUIREMENTS",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-COMMENT-REQUIRED-FIELDS"
    },
    {
      "id": "GATE-COMMENT-RERUN-RULES"
    },
    {
      "id": "GATE-COMMENT-SCOPE-ONLY"
    },
    {
      "id": "GATE-COMMENT-SINGLE-SURFACE",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-COMMENT-SIZE-BUDGET-FIELDS"
    },
    {
      "id": "GATE-COMMENT-VALIDATION-REPORTING"
    },
    {
      "id": "GATE-COMMENT-VERDICT-VALUES",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-REVIEW-SUBMIT-MODES",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-ANGLE-CARRY-FORWARD"
    },
    {
      "id": "GATE-EXEC-ANGLE-COVERAGE"
    },
    {
      "id": "GATE-EXEC-ARTIFACT-HEAD-STAMP",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-BLOCKING-ONLY-FIX"
    },
    {
      "id": "GATE-EXEC-BRIEFING-PREFIX",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-BUILD-ONCE-SEED"
    },
    {
      "id": "GATE-EXEC-COLLECTABLE-DISPATCH",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-DEFERRAL-RECORD",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-DIFF-CLASS-TIER"
    },
    {
      "id": "GATE-EXEC-DISPATCH-RETRY-BACKOFF",
      "enforcement": "doc"
    },
    {
      "id": "GATE-EXEC-DISPOSITION-LEDGER"
    },
    {
      "id": "GATE-EXEC-END-OF-RUN-CONTRACT",
      "enforcement": "doc"
    },
    {
      "id": "GATE-EXEC-FANOUT-DISPATCH-EMIT",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-FANOUT-DISPATCH-KEY",
      "enforcement": "doc"
    },
    {
      "id": "GATE-EXEC-EMIT-PLAN-KEY",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-FANOUT-SEQUENTIAL-FALLBACK"
    },
    {
      "id": "GATE-EXEC-FINDING-THREADS"
    },
    {
      "id": "GATE-EXEC-FIXER-DISPOSITION-BOUNDARY",
      "enforcement": "runtime",
      "enforcementNote": "packages/core/src/loop/fixer-disposition.mjs's pure evaluateFixerDisposition + pr-gate-coordination.mjs's fixerDisposition input force a blocked feedback_resolution result (forbiddenActions including request/rerequest Copilot review and gate-dispatch tokens) while a fixer's claimed-tackled thread is incomplete; scripts/github/verify-fixer-disposition.mjs is the enforcement CLI"
    },
    {
      "id": "GATE-EXEC-JUDGE-AUTHORITY-SPLIT"
    },
    {
      "id": "GATE-EXEC-JUDGE-NOT-FRESH"
    },
    {
      "id": "GATE-EXEC-JUDGE-PHASE"
    },
    {
      "id": "GATE-EXEC-LIGHT-ESCALATION",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-NO-CWD-DEPENDENCE"
    },
    {
      "id": "GATE-EXEC-NON-SUBSTITUTION"
    },
    {
      "id": "GATE-EXEC-POST-BEFORE-FIX",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-PRIME",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-PROPORTIONALITY",
      "enforcement": "doc",
      "enforcementNote": "the composite floors it describes are individually enforced: resolveGateDispatchMode's risk_path_touch/size_outcome_* reasons (packages/core/src/config/config.mjs), detect-checkpoint-evidence.mjs's scopeUnderThreshold re-derivation, and check-adr-tripwire.mjs's devloops-proportionality trigger"
    },
    {
      "id": "GATE-EXEC-CACHE-TELEMETRY",
      "enforcement": "runtime",
      "enforcementNote": "fan-in validates the recorded before/after cache-telemetry evidence via packages/core/src/loop/cache-telemetry-evidence.mjs validateCacheTelemetryEvidence"
    },
    {
      "id": "GATE-EXEC-PRIMER-EVIDENCE",
      "enforcement": "runtime",
      "enforcementNote": "fan-in validates the recorded primer dispatch evidence via packages/core/src/loop/primer-evidence.mjs validatePrimerEvidence"
    },
    {
      "id": "GATE-EXEC-EXECUTION-RECORD",
      "enforcement": "runtime",
      "enforcementNote": "enforceExecutionUnitRecord (packages/core/src/loop/execution-record.mjs) fails closed on a malformed/dishonest execution-unit record; scripts/loop/run-watch-cycle.mjs buildWatchCycleExecutionRecord is the one live producer today"
    },
    {
      "id": "GATE-EXEC-REGATE-MANDATORY"
    },
    {
      "id": "GATE-EXEC-RESOLVED-ANGLE-EVIDENCE",
      "enforcement": "runtime",
      "enforcementNote": "consolidate-fanin.mjs's --resolved-angles refuses a clean verdict via gate-fanin.mjs checkResolvedAngleEvidence when a resolved angle has neither an artifact nor a proven carry"
    },
    {
      "id": "GATE-EXEC-REVIEWER-BUDGET-PREFLIGHT"
    },
    {
      "id": "GATE-EXEC-ROUND-RETIREMENT",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-SEPARATE-CHAINS"
    },
    {
      "id": "GATE-EXEC-SOURCE-READ-WORKTREE",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-THREAD-DISPOSITION",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EXEC-VALIDATION-ARTIFACT",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-SKIP-NOT-RECOVERABLE-BY-CONVERGENCE"
    },
    {
      "id": "GRILL-COUNT-AC-UNIT-DISPATCH-MODE"
    },
    {
      "id": "GRILL-SUBLOOP-FULL-REWRITE"
    },
    {
      "id": "GRILL-SUBLOOP-HONEST-HANDOFF"
    },
    {
      "id": "GRILL-SUBLOOP-ITERATE-TO-CLEAN"
    },
    {
      "id": "GRILL-SUBLOOP-NO-BARE-HASH"
    },
    {
      "id": "GRILL-SUBLOOP-NO-EMBED-SYNTHESIS"
    },
    {
      "id": "GRILL-SUBLOOP-RATIONALE-COMMENT"
    },
    {
      "id": "GRILL-SUBLOOP-STATE-MACHINE"
    },
    {
      "id": "INTAKE-LINKED-PR-HELPER-DELEGATION"
    },
    {
      "id": "INTAKE-NEW-IDEA-SAFETY"
    },
    {
      "id": "INTAKE-REPO-SLUG-RESOLVE-FIRST"
    },
    {
      "id": "INTAKE-STOP-STATES"
    },
    {
      "id": "INTAKE-TIMEOUT-ROUTE-ON-SEAM-EXIT"
    },
    {
      "id": "INTAKE-TIMEOUT-SURFACE-BUDGET-EXHAUSTED"
    },
    {
      "id": "BASE-JQ-OUTPUT-GUARANTEE",
      "enforcement": "runtime"
    },
    {
      "id": "LIFECYCLE-CHANGELOG-COMPLETENESS"
    },
    {
      "id": "LIFECYCLE-CONFLICT-BLOCKS-PROGRESS"
    },
    {
      "id": "LIFECYCLE-FAIL-CLOSED"
    },
    {
      "id": "LIFECYCLE-ONE-STATE"
    },
    {
      "id": "LOCAL-COMMENT-DISCIPLINE",
      "enforcement": "runtime"
    },
    {
      "id": "LOCAL-COMMIT-BEFORE-EXIT",
      "enforcement": "runtime"
    },
    {
      "id": "LOCAL-DELEGATE-SELF-COMMIT",
      "enforcement": "agent",
      "enforcementNote": "No edit-here/commit-there split is agent discipline; the mechanical dirty-exit block is owned by the runtime rule LOCAL-COMMIT-BEFORE-EXIT (#1936)."
    },
    {
      "id": "LOCAL-DELEGATION-TABLE",
      "enforcement": "agent",
      "enforcementNote": "Role dispatch is orchestration behavior, not mechanically checkable."
    },
    {
      "id": "LOCAL-DEV-SELF-CHECK-NO-FANOUT",
      "enforcement": "doc"
    },
    {
      "id": "LOCAL-FAILURE-TRIAGE-ORDER"
    },
    {
      "id": "LOCAL-LIGHT-MODE-CONFIG-SURFACE"
    },
    {
      "id": "LOCAL-PHASE-ONE-AT-A-TIME",
      "enforcement": "agent",
      "enforcementNote": "Phase sequencing is agent discipline, not mechanically gated."
    },
    {
      "id": "LOCAL-PLAN-REVIEW-GATE",
      "enforcement": "agent",
      "enforcementNote": "Plan-review-before-code is a procedural gate the agent enforces."
    },
    {
      "id": "LOCAL-PR-CREATE-CANONICAL"
    },
    {
      "id": "LOCAL-PREFLIGHT-GATE-MANDATORY"
    },
    {
      "id": "LOCAL-RETRO-FRESH-CONTEXT-DISPATCH",
      "enforcement": "agent",
      "enforcementNote": "Fresh-context retro dispatch is agent discipline; the write path is runtime-enforced via RETRO-FRESH-CONTEXT-MANDATORY (checkpoint-contract.mjs)."
    },
    {
      "id": "LOCAL-RETROSPECTIVE-REQUIRED"
    },
    {
      "id": "LOCAL-TEST-FIRST-COVERAGE"
    },
    {
      "id": "LOCAL-TMP-EPHEMERAL-STATE"
    },
    {
      "id": "LOCAL-TRACKER-NO-DIRECT-MERGE"
    },
    {
      "id": "MERGE-PRECOND-REQUIRED"
    },
    {
      "id": "OPS-DRAFT-FIRST-PR"
    },
    {
      "id": "OPS-PR-VALIDATION-STABLE-EVIDENCE",
      "enforcement": "doc"
    },
    {
      "id": "OPS-NO-INLINE-INTERPRETER"
    },
    {
      "id": "QUEUE-BOARD-DEVLOOPS-RESOLUTION"
    },
    {
      "id": "QUEUE-BOARD-LINKED",
      "enforcement": "runtime"
    },
    {
      "id": "QUEUE-BOARD-QUERY-FAIL-CLOSED"
    },
    {
      "id": "QUEUE-BOARD-SYNC-CONTINUOUS"
    },
    {
      "id": "QUEUE-BOOTSTRAP-ONLY-MUTATOR"
    },
    {
      "id": "QUEUE-COLUMN-CANONICAL"
    },
    {
      "id": "QUEUE-COLUMN-NO-REMOVE"
    },
    {
      "id": "QUEUE-ENQUEUE-REFINEMENT-GATE",
      "enforcement": "runtime"
    },
    {
      "id": "QUEUE-LIVE-PICKUP-SOURCE"
    },
    {
      "id": "QUEUE-NEXTUP-EMPTY-FAIL-CLOSED"
    },
    {
      "id": "QUEUE-NEXTUP-SOURCE"
    },
    {
      "id": "QUEUE-NEXTUP-TARGET-MISSING-FAIL-CLOSED"
    },
    {
      "id": "QUEUE-RENAME-CONFLICT-NO-MUTATION"
    },
    {
      "id": "RAW-GH-PR-MERGE-BYPASS",
      "enforcement": "doc"
    },
    {
      "id": "RAW-GH-PR-READY-BYPASS",
      "enforcement": "doc"
    },
    {
      "id": "REFINER-DOD-PROPOSED-SUBSECTION"
    },
    {
      "id": "REFINER-NO-INVENT-AUDIT-FINDINGS"
    },
    {
      "id": "RETRO-ABSENT-NEVER-BLOCKS"
    },
    {
      "id": "RETRO-ADVISORY-NEVER-GATE"
    },
    {
      "id": "RETRO-CHECKPOINT-CYCLE-SCOPED"
    },
    {
      "id": "RETRO-CHECKPOINT-REPO-ROOT"
    },
    {
      "id": "RETRO-ENFORCEMENT-CONFIG-GATED"
    },
    {
      "id": "RETRO-FINDINGS-ENVELOPE-CARRY"
    },
    {
      "id": "RETRO-FRESH-CONTEXT-MANDATORY"
    },
    {
      "id": "RETRO-GATE-FAIL-CLOSED"
    },
    {
      "id": "REVIEW-GATE-VERDICT-CANONICAL",
      "enforcement": "doc"
    },
    {
      "id": "REVIEWER-BOUNDARY-CONTRACT"
    },
    {
      "id": "REVIEWER-STATE-GATE-ANGLE-MAPPING"
    },
    {
      "id": "ROUTING-EVALUATOR-AUTHORITY"
    },
    {
      "id": "ROUTING-FAIL-CLOSED-RECONCILE",
      "enforcement": "runtime"
    },
    {
      "id": "ROUTING-LOCAL-ISOLATION-PASSTHROUGH"
    },
    {
      "id": "ROUTING-PRIORITY-ORDER"
    },
    {
      "id": "SILENT-STDERR-PROBE",
      "enforcement": "doc"
    },
    {
      "id": "SPEC-AUTHORITY-CONFLICT-EVIDENCE",
      "enforcement": "runtime"
    },
    {
      "id": "SPEC-AUTHORITY-HUMAN-DECISION-LAST-RESORT",
      "enforcement": "runtime"
    },
    {
      "id": "SPEC-AUTHORITY-REVISION-IDENTITIES",
      "enforcement": "runtime"
    },
    {
      "id": "SPEC-AUTHORITY-STALE-REVISION-FAIL-CLOSED",
      "enforcement": "runtime"
    },
    {
      "id": "SPEC-AUTHORITY-WHOLE-SPEC-EVAL",
      "enforcement": "runtime"
    },
    {
      "id": "SPIKE-DISCARD-ZERO-MUTATION"
    },
    {
      "id": "SPIKE-EXIT-ELIGIBILITY"
    },
    {
      "id": "SPIKE-GRADUATE-PLAN-FILE-REQUIRED"
    },
    {
      "id": "SPIKE-RELAXED-GATE-PROFILE"
    },
    {
      "id": "SPIKE-STARTUP-SCAFFOLD-GATE"
    },
    {
      "id": "STEERING-EXTERNAL-SCOPE-NARROW"
    },
    {
      "id": "STEERING-HARD-CONSTRAINT-DEDUP"
    },
    {
      "id": "STEERING-LIVE-ADVERTISEMENT-FAIL-CLOSED"
    },
    {
      "id": "STEERING-SEQ-MONOTONIC"
    },
    {
      "id": "STICKY-PROVIDER-PIN",
      "enforcement": "doc"
    },
    {
      "id": "STOP-APPROVAL-001"
    },
    {
      "id": "STOP-BLOCKED-001"
    },
    {
      "id": "STOP-COPILOT-REVIEW-001"
    },
    {
      "id": "STOP-DONE-001"
    },
    {
      "id": "STOP-HUMAN-MERGE-001"
    },
    {
      "id": "STOP-INITIAL-COPILOT-001"
    },
    {
      "id": "STOP-MERGE-AUTH-001"
    },
    {
      "id": "STOP-QUIET-WATCHER-001"
    },
    {
      "id": "STOP-RECONCILE-001"
    },
    {
      "id": "STOP-STARTUP-INPUTS-001"
    },
    {
      "id": "STOP-WAIT-001"
    },
    {
      "id": "STYLE-CANONICAL-OPENER",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-CONTRADICTION-LENS",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-CONSISTENCY-NOT-CONFORMANCE",
      "enforcement": "agent",
      "enforcementNote": "Prose norm; mechanically uncheckable without NLP — agent-enforced, owned by contract-style-guide.md."
    },
    {
      "id": "STYLE-DEFINED-TERMS",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-DURABLE-RULE-HOME",
      "enforcement": "agent",
      "enforcementNote": "Prose norm; mechanically uncheckable without NLP — agent-enforced, owned by contract-style-guide.md."
    },
    {
      "id": "STYLE-ID-SCHEME",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-ID-STABILITY",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-LEXICAL-SCAN-LIMIT",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-NO-DRIFT-BLESSING",
      "enforcement": "agent",
      "enforcementNote": "Prose norm; mechanically uncheckable without NLP — agent-enforced, owned by contract-style-guide.md."
    },
    {
      "id": "STYLE-PRECEDENCE-CONFLICT",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-REFERENCE-BY-ID",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-RFC2119-KEYWORDS",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-RULE-MARKER",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-SINGLE-OWNER",
      "enforcement": "doc"
    },
    {
      "id": "STYLE-TERM-MARKER",
      "enforcement": "doc"
    },
    {
      "id": "SUBISSUE-LEAN-BODY-NO-DUPLICATE",
      "enforcement": "runtime"
    },
    {
      "id": "SUBISSUE-NO-ADHOC-BYPASS"
    },
    {
      "id": "TRACKER-BLOCKED-FAIL-CLOSED"
    },
    {
      "id": "TRACKER-ONE-ACTIVE-PR"
    },
    {
      "id": "TRACKER-PROJECTION-IDEMPOTENT"
    },
    {
      "id": "TRACKER-PROJECTION-REQUIRED-METADATA"
    },
    {
      "id": "VALIDATE-COVERAGE-ADMISSION",
      "enforcement": "agent",
      "enforcementNote": "Judge/reviewer agents apply the admission rule; a failing coverage finding is dispositioned reject and dropped by the existing act-list filter."
    },
    {
      "id": "VALIDATE-COVERAGE-THRESHOLD"
    },
    {
      "id": "VALIDATE-VERIFY-BEFORE-GATE"
    },
    {
      "id": "WORKFLOW-DOCS-NO-REDEFINE-HELPER",
      "enforcement": "agent",
      "enforcementNote": "Doc-authoring discipline, agent-enforced."
    },
    {
      "id": "WORKTREE-CANONICAL-PATH"
    },
    {
      "id": "WORKTREE-CLEANUP"
    },
    {
      "id": "WORKTREE-COMMIT-MSG-GUARD",
      "enforcement": "runtime"
    },
    {
      "id": "WORKTREE-CREATE-PROVISION"
    },
    {
      "id": "WORKTREE-DEDUPE"
    },
    {
      "id": "WORKTREE-DEFAULT-BRANCH-GUARD",
      "enforcement": "runtime"
    },
    {
      "id": "WORKTREE-DEFAULT-USE"
    },
    {
      "id": "WORKTREE-DEPS-ISOLATED"
    },
    {
      "id": "WORKTREE-FALLBACK"
    },
    {
      "id": "WORKTREE-NO-STASH",
      "enforcement": "agent",
      "enforcementNote": "No-stash is agent discipline; no mechanical check."
    },
    {
      "id": "WORKTREE-WRONG-CHECKOUT-GUARD",
      "enforcement": "runtime"
    },
    {
      "id": "GATE-EVIDENCE-AUDIT-TWO-SURFACES",
      "enforcement": "doc"
    }
  ],
  "optOutRules": []
}
