﻿
===== C2/B3 - canonical resolve + disk cross-check =====
  STATUS.md canonical: mig=67 test=532 gotcha=83 table=89 menu=54 policy=216
  disk cross-check:    mig=67 gotcha=83
  [OK] canonical matches disk (mig + gotcha) - safe baseline for derived scan

===== C2/B3 - derived-doc staleness =====
[DETECTOR] LOW  | CLAUDE.md:93 | derived-stale: writes 6 test but canonical=532 | resolve: update to 532 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/contract-workflow/SKILL.md:24 | derived-stale: writes 3 table/bang but canonical=89 | resolve: update to 89 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/contract-workflow/SKILL.md:35 | derived-stale: writes 6 test but canonical=532 | resolve: update to 532 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/contract-workflow/SKILL.md:332 | derived-stale: writes 6 test but canonical=532 | resolve: update to 532 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/contract-workflow/SKILL.md:332 | derived-stale: writes 6 test but canonical=532 | resolve: update to 532 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/contract-workflow/SKILL.md:367 | derived-stale: writes 77 test but canonical=532 | resolve: update to 532 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/contract-workflow/SKILL.md:371 | derived-stale: writes 3 table/bang but canonical=89 | resolve: update to 89 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/ef-core-migration/SKILL.md:100 | derived-stale: writes 2 migration but canonical=67 | resolve: update to 67 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/ef-core-migration/SKILL.md:101 | derived-stale: writes 1 migration but canonical=67 | resolve: update to 67 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/ef-core-migration/SKILL.md:117 | derived-stale: writes 3 table/bang but canonical=89 | resolve: update to 89 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/ef-core-migration/SKILL.md:120 | derived-stale: writes 1 table/bang but canonical=89 | resolve: update to 89 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/ef-core-migration/SKILL.md:168 | derived-stale: writes 1 migration but canonical=67 | resolve: update to 67 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/skills/ef-core-migration/SKILL.md:185 | derived-stale: writes 1 migration but canonical=67 | resolve: update to 67 OR replace with pointer '-> docs/STATUS.md'
[DETECTOR] LOW  | .claude/commands/session-end.md:252 | derived-stale: writes 2 test but canonical=532 | resolve: update to 532 OR replace with pointer '-> docs/STATUS.md'
  (note: count-token grep is a soft net - module-local phrases like "4 bang Budget" / "71 test (Phase 8)" can false-positive; H18-A ratio-band demotes far-from-canonical counts to LOW = review-not-fail, near-canonical stale-totals stay MED)

===== C1 - broken gotcha-ref =====
[DETECTOR] MED  | docs/changelog/sessions/2026-07-25-1930-S151-bootstrap-trio-auto-fixes.md:25 | broken-gotcha-ref: cites #91 but max gotcha is 83 | resolve: fix the number or add the gotcha to docs/gotchas.md

===== C1 - dangling wikilink =====
[DETECTOR] LOW  | user-memory/feedback_7agent_split_upgrade.md:70 | dangling-wikilink: [[feedback-multi-agent-setup]] -> feedback-multi-agent-setup.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_h18_ghostwire_stamp_integrity.md:18 | dangling-wikilink: [[faultinjection-proves-teeth]] -> faultinjection-proves-teeth.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_h18_ghostwire_stamp_integrity.md:18 | dangling-wikilink: [[canonical-spec-over-broadcast]] -> canonical-spec-over-broadcast.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_h18_ghostwire_stamp_integrity.md:18 | dangling-wikilink: [[agent-return-garble-recover]] -> agent-return-garble-recover.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_implementer_truncation_mitigation.md:81 | dangling-wikilink: [[feedback-per-chunk-commit]] -> feedback-per-chunk-commit.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_implementer_truncation_mitigation.md:81 | dangling-wikilink: [[feedback-multi-agent-setup]] -> feedback-multi-agent-setup.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_implementer_truncation_mitigation.md:81 | dangling-wikilink: [[feedback-rag-hybrid-pattern]] -> feedback-rag-hybrid-pattern.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_phase10_namgroup_port.md:72 | dangling-wikilink: [[feedback-rag-distributed-ownership]] -> feedback-rag-distributed-ownership.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_phase10_namgroup_port.md:72 | dangling-wikilink: [[feedback-multi-agent-setup]] -> feedback-multi-agent-setup.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_rag_mcp_recovery_concurrency.md:21 | dangling-wikilink: [[status-handoff-tiering]] -> status-handoff-tiering.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_rag_mcp_recovery_concurrency.md:21 | dangling-wikilink: [[aiinfra-charter-v2]] -> aiinfra-charter-v2.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_resume_premise_reverify.md:19 | dangling-wikilink: [[agent-kill-recovery]] -> agent-kill-recovery.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_resume_premise_reverify.md:19 | dangling-wikilink: [[prod-config-inspect-before-change]] -> prod-config-inspect-before-change.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_resume_premise_reverify.md:19 | dangling-wikilink: [[stale-diagnostic-background-agent]] -> stale-diagnostic-background-agent.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/feedback_status_handoff_tiering.md:18 | dangling-wikilink: [[implementer-truncation-mitigation]] -> implementer-truncation-mitigation.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/project_h22_wal_session_continuity.md:20 | dangling-wikilink: [[h18-ghostwire-stamp-integrity]] -> h18-ghostwire-stamp-integrity.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | user-memory/project_h22_wal_session_continuity.md:20 | dangling-wikilink: [[workflow-fanout-reliability]] -> workflow-fanout-reliability.md not found in user-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/MEMORY.md:22 | dangling-wikilink: [[feedback_agent_return_garble_recover]] -> feedback_agent_return_garble_recover.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/pattern_master_page_mirror.md:38 | dangling-wikilink: [[pattern-fe-mirror-2-app]] -> pattern-fe-mirror-2-app.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/pattern_master_page_mirror.md:38 | dangling-wikilink: [[pattern-readonly-admin-mirror]] -> pattern-readonly-admin-mirror.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/project_s103_h20_crystallized_backfill_review.md:30 | dangling-wikilink: [[wire-claim-verification-anchors]] -> wire-claim-verification-anchors.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/project_s92_admin_only_modules_revoke.md:31 | dangling-wikilink: [[s89-pe-sectionb-review]] -> s89-pe-sectionb-review.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/2026-06.gist.md:33 | dangling-wikilink: [[feedback_agent_kill_recovery]] -> feedback_agent_kill_recovery.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)
[DETECTOR] LOW  | agent-memory/2026-06.gist.md:34 | dangling-wikilink: [[feedback_harness10_run_trace]] -> feedback_harness10_run_trace.md not found in agent-memory | resolve: fix the link target or create the file (note: hyphen vs underscore basename fork is common)

===== C3 - vocab-fork =====
[DETECTOR] MED  | multiple files | vocab-fork: wave-folder=19f vs run-trace=67f live side-by-side -- 'wave-folder' in [docs/changelog/sessions/2026-06-07-S49-harness-1-2-3-adopt.md, docs/changelog/sessions/2026-06-07-S50-harness-verified-runtime.md] | 'run-trace' in [docs/HANDOFF.md, docs/STATUS.md] | resolve: merge to ONE canonical term, or record an alias-map in docs/governance
[DETECTOR] MED  | multiple files | vocab-fork: Dự trù PRO=9f vs Ngân sách PRO=7f live side-by-side -- 'Dự trù PRO' in [docs/changelog/sessions/2026-06-12-S60-S62-pe-budget-workitem-softwarning.md, docs/changelog/sessions/2026-06-16-S65-hrm-golive-employee-masterdetail-pe-link.md] | 'Ngân sách PRO' in [docs/changelog/sessions/2026-06-16-S65-hrm-golive-employee-masterdetail-pe-link.md, docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md] | resolve: merge to ONE canonical term, or record an alias-map in docs/governance
[DETECTOR] MED  | multiple files | vocab-fork: two-tier=23f vs all-inherit=42f vs worker-tier-pin=21f live side-by-side -- 'two-tier' in [docs/STATUS.md, docs/changelog/sessions/2026-06-16-S66-closeout-harness8-cicd-curate.md] | 'all-inherit' in [docs/HANDOFF.md, docs/STATUS.md] | 'worker-tier-pin' in [docs/HANDOFF.md, docs/STATUS.md] | resolve: merge to ONE canonical term, or record an alias-map in docs/governance

===== C5 - WAL guardrail (H22) =====
  [OK] WAL.md = 20 lines (<= 40 hard cap)

===== H24-1 - title-freshness =====
  anchors parsed: 2 doc(s) ; moc-phai (newest governance milestone) = 2026-05-12 from docs/rag-setup-plan.md:4
    anchor 2026-05-12  docs/rag-setup-plan.md:4
    anchor 2026-04-30  .claude/skills/form-engine/SKILL.md:15
[DETECTOR] LOW  | .claude/skills/form-engine/SKILL.md:15 | title-stale: anchor says 2026-04-30 but newest governance milestone is 2026-05-12 (12d behind) | resolve: refresh the title/status anchor date, or state explicitly that the doc is frozen-historical

===== H24-3 - session-label lag =====
  [skip] no doc carries BOTH a session label and an S-heading - nothing to compare

===== H24-2 - carry-age (INFORM-only) =====
  config resolved: .claude/agent-memory/memory-budget.json
  M = h24_cadence.light_every = 6 (read from config, not hardcoded)
  HANDOFF logic-segments (NEXT anh/em) = 20 ; of those, carry-lines = 16
    [ok] carry 'adap-apply-2-thu' streak=1 < M=6
    [ok] carry 'carry-age-vacuous' streak=3 < M=6
[DETECTOR] LOW  | docs/HANDOFF.md:5 | gap-carry-aged [INFORM]: carry 'hook-vs-budget-cap' alive across 13 consecutive carry-lines (>= M=6) - owner may be holding it deliberately | resolve: close it, or re-scope it; INFORM-only - no action forced
    [ok] carry 'uat-s117' streak=3 < M=6
    [ok] carry 'pe-phanquyen' streak=3 < M=6
    [ok] carry 'bvaau' streak=3 < M=6
    [ok] carry 'binh-le-decision' streak=3 < M=6
    [ok] carry 'tra-bui-relogin' streak=3 < M=6
    [ok] carry 'account-trung' streak=3 < M=6
[DETECTOR] LOW  | docs/HANDOFF.md:5 | gap-carry-aged [INFORM]: carry 'uat-s133-budget-freeze' alive across 10 consecutive carry-lines (>= M=6) - owner may be holding it deliberately | resolve: close it, or re-scope it; INFORM-only - no action forced
[DETECTOR] LOW  | docs/HANDOFF.md:5 | gap-carry-aged [INFORM]: carry 'uat-s134-luyke' alive across 8 consecutive carry-lines (>= M=6) - owner may be holding it deliberately | resolve: close it, or re-scope it; INFORM-only - no action forced
    [ok] carry 'tools-whitelist-no-teeth' streak=3 < M=6
    [ok] carry 'pull-warn-threshold' streak=3 < M=6
    [ok] carry 'session-model-adopt' streak=4 < M=6
    [ok] carry 'hub-review-wave-1807' streak=3 < M=6
    [ok] carry 'context-stock' streak=2 < M=6
    [ok] carry 'tiep-window-crash' streak=2 < M=6
    [ok] carry 'meld-forward-unmeasured' streak=2 < M=6
    [ok] carry 'bookend-5-5' streak=2 < M=6
    [ok] carry 'jump-dai-frozen' streak=3 < M=6
    [ok] carry 'eval-thamquyen' streak=3 < M=6
    [ok] carry 'tham-sau-6-ca' streak=3 < M=6
    [ok] carry 'g011-token-fork' streak=3 < M=6
    [ok] carry 'veto-window-s149' streak=3 < M=6
    [ok] carry 'underfill-mau-so' streak=3 < M=6
    [ok] carry 'memory-ops-refine-queue' streak=2 < M=6
    [ok] carry 'hub-republish-59ce1d0f' streak=2 < M=6

===== H25-closeout-ritual (GAP-2) =====
  closeouts found: 68 in 59 close-group(s) ; scoring 3 most-recent group(s) (label-folded union-window per group)
    [ok] c2d01f0 S152: union (1b85713..c2d01f0] has all 4 ritual books
    [ok] 1b85713 S151: union (398d343..1b85713] has all 4 ritual books
    [ok] 398d343 S149-S150: union (aaf95ef..398d343] has all 4 ritual books

===== H25-role-notebook (GAP-3) =====
  roster=23 ; diaries-ok=20 ; flagged=0 ; inert(defined-not-run)=3
  UNMAPPED sub-file prefixes (103) [INFORM, not flagged - measure content not name, S122]:
    apply-L1, apply-L2, apply-L3, apply-L4, apply-L5-evalcuaeval, apply-L6, fable-invest-S153, h24-audit-S146, h24-audit-S149, harvest, harvest-close-S152, harvest-curator-S153, harvest-S150, harvest-S151, harvest-S152, implement-A-c7, implement-CE-sessionmodel, implement-D-5vong, impl-M1-scaffold, impl-M2-tick, impl-M3-signal, impl-M4-c11, impl-M5-sentinel, impl-runsreadme, impl-sleepcmd, invest-1-vong-def, invest-2-vong-nhip, invest-3-vong-2lo, invest-4-se-do-A, invest-5-se-do-B, invest-6-thu-bind, invest-8-thu-bind, invest-A, invest-B, invest-backlog, invest-C, invest-codebase-A-mapping, invest-codebase-B-approach, invest-codebase-C-edge, invest-hoi-tu, investigator-2-spec-draft, investigator-codebase-A, investigator-codebase-B, investigator-codebase-C, investigator-codebase-D, investigator-codebase-E, invest-owner-gated, lead-gap-close-S152, lead-gap-deep-S151, lead-gap-S150, lead-gap-S151, lead-gap-S152, lead-gap-S153, lead-omission, lead-omission-auditor, lead-omission-S146, lead-stale-close-S152, lead-stale-deep-S151, lead-stale-S150, lead-stale-S151, lead-stale-S152, lead-stale-S153, lead-view, lead-view-auditor, lead-view-S146, reviewer-1-verdict, reviewer-3-verdict, reviewer-5vong-closure, reviewer-axisE, reviewer-bulk, reviewer-c7, reviewer-fable-spec, reviewer-hoi-tu, reviewer-precommit-s146, reviewer-R2, reviewer-R3, reviewer-session-model, review-gate, review-r1, review-r2, review-r3, ring1-close-S152, ring1-S150, ring1-S151, ring1-S152, ring1-S153, ring2-close-S152, ring2-deep-S151, ring2-S150, ring2-S151, ring2-S152, ring2-S153, ring4-close-S152, task, tooling, tooling-auditor-S153, tooling-close-S152, tooling-S150, tooling-S151, tooling-S152, w1-task, w2-task, w3-task

===== C6 - cite-2-tier (INFORM-only) =====
  C6 scanned 52 file(s) (governance-top + commands + agents; adap-reports excluded)
  C6 cite-2-tier flags = 0 [INFORM-only, LOW, NOT folded into TOTAL baseline]

===== H24-4 - pending-flip (INFORM-only) =====
  HANDOFF current-segment = lines 1..35 (boundary '**Prev S' at line 36)
  H24-4 pending-flip flags = 0 [INFORM-only, LOW, NOT folded; 0 = designed first-run]

===== H24-5 - counter-ancestor-classify (INFORM-only) =====
  [OK] OK-reachable: last_ticked_head 1b7386d9 (session S153) is an ancestor of HEAD
  [ok] counter=27 >= last_audit.light_at_counter=27
  [ok] counter=27 >= last_audit.deep_at_counter=25
  H24-5 counter-ancestor flags = 0 [INFORM-only, LOW, NOT folded into TOTAL baseline]

===== C9 - hmw WIDTH mirror-drift (INFORM-only) =====
  [ok] WIDTH mirror 20 == canonical hmw_width.cap 20
  C9 width-drift flags = 0 [INFORM-only, LOW, NOT folded into TOTAL baseline]

===== C10 - logic-session folder (INFORM-only) =====
  [ok] session-6 is OPEN (no _end/closed.md)
  C10 logic-session flags = 0 [INFORM-only, LOW, NOT folded into TOTAL baseline]

===== C11 - H24 FLAG-khuon + diary-delta (INFORM-only) =====
[DETECTOR] LOW  | .claude/workflows/runs/2026-07-25-S151-h24-open-bookend/sub-lead-gap-S151.md:17 | H24 FLAG-khuon: sub-file raises FLAG-<n> but has NO conforming class-tag line "## FLAG-<n> [em-dash] `<view-/gap-...>` [em-dash] SEV" - the by-class tally cannot count an untagged flag (S148 lost 2/9 flags exactly this way) | resolve: tag EACH raised flag on its own line "## FLAG-<n> [em-dash=U+2014] `<class>` [em-dash] SEV" (class in view-*/gap-*); one conforming line un-flags the file
[DETECTOR] LOW  | .claude/workflows/runs/2026-07-25-S151-h24-open-bookend/sub-lead-stale-deep-S151.md:20 | H24 FLAG-khuon: sub-file raises FLAG-<n> but has NO conforming class-tag line "## FLAG-<n> [em-dash] `<view-/gap-...>` [em-dash] SEV" - the by-class tally cannot count an untagged flag (S148 lost 2/9 flags exactly this way) | resolve: tag EACH raised flag on its own line "## FLAG-<n> [em-dash=U+2014] `<class>` [em-dash] SEV" (class in view-*/gap-*); one conforming line un-flags the file
[DETECTOR] LOW  | .claude/workflows/runs/2026-07-25-S151-h24-open-bookend/sub-lead-stale-S151.md:11 | H24 FLAG-khuon: sub-file raises FLAG-<n> but has NO conforming class-tag line "## FLAG-<n> [em-dash] `<view-/gap-...>` [em-dash] SEV" - the by-class tally cannot count an untagged flag (S148 lost 2/9 flags exactly this way) | resolve: tag EACH raised flag on its own line "## FLAG-<n> [em-dash=U+2014] `<class>` [em-dash] SEV" (class in view-*/gap-*); one conforming line un-flags the file
[DETECTOR] LOW  | .claude/workflows/runs/2026-07-25-S152-h24-open-bookend/sub-lead-stale-close-S152.md:11 | H24 FLAG-khuon: sub-file raises FLAG-<n> but has NO conforming class-tag line "## FLAG-<n> [em-dash] `<view-/gap-...>` [em-dash] SEV" - the by-class tally cannot count an untagged flag (S148 lost 2/9 flags exactly this way) | resolve: tag EACH raised flag on its own line "## FLAG-<n> [em-dash=U+2014] `<class>` [em-dash] SEV" (class in view-*/gap-*); one conforming line un-flags the file
[DETECTOR] LOW  | .claude/workflows/runs/2026-07-26-S153-bookend-open/sub-harvest-curator-S153.md | diary-0-delta (GAP-3): role 'harvest-curator' produced an artifact (mtime 2026-07-26T12:01) but its diary has no newer commit (diary last commit 2026-07-26T01:58) - role ran, memory not seeded (spec M9) | resolve: lead APPEND agent-memory/harvest-curator/ on-behalf IN THE SAME session (khuon B3) and commit, so next session does not enter blind
[DETECTOR] LOW  | .claude/workflows/runs/2026-07-26-S153-bookend-open/sub-tooling-auditor-S153.md | diary-0-delta (GAP-3): role 'tooling-auditor' produced an artifact (mtime 2026-07-26T12:07) but its diary has no newer commit (diary last commit 2026-07-26T01:58) - role ran, memory not seeded (spec M9) | resolve: lead APPEND agent-memory/tooling-auditor/ on-behalf IN THE SAME session (khuon B3) and commit, so next session does not enter blind
  C11 FLAG-khuon + diary-delta flags = 6 [INFORM-only, LOW, NOT folded into TOTAL baseline]

===== C12 - raw-engine-bypass (INFORM-only) =====
  [ok] 2026-07-25-1200-S149-S150-closeout-bookend-first-run.md carries a run= registration line
  [ok] 2026-07-25-1930-S151-bootstrap-trio-auto-fixes.md carries a run= registration line
  [ok] 2026-07-26-0200-S152-bookend-memops-close.md carries a run= registration line
  C12 raw-engine-bypass flags = 0 [INFORM-only, LOW, NOT folded into TOTAL baseline]

===== Summary =====
self-exclusion: 6 paths excluded (exact+dir rules)
  - excluded: scripts/governance-detectors.ps1
  - excluded: docs/governance/harness-11-engine.md
  - excluded: docs/governance/vocab-alias-map.md
  - excluded: broadcasts/inbox
  - excluded: broadcasts/outbox
  - excluded: .claude/workflows/runs
self-match check: governance-detectors.ps1 in scan = 0 ; leaked excluded files in scan = 0
  [OK] 0 self-match (C4 satisfied)

TOTAL FLAGS: 46
INFORM-ONLY (new nets C6 cite-2-tier + H24-4 pending-flip + H24-5 counter-ancestor-classify + C9 hmw-width-drift + C11 h24-flag-form + C12 raw-engine-bypass): 6 - counted SEPARATELY, NOT in TOTAL above (anti-Goodhart, owner-set; fold+sev-raise is post-triage)
NOTE: DETECT-only lowering net. Exit 0 always (never fails build). FLAGs are advisory.
