Mandatory Per-Candidate Verification Gate
Goal
Make never blindly accept the graph STRUCTURAL. Every Candidate from any detector MUST carry a recorded manual code-read confirmation (verified: true + verification_note naming the file:line checked and what it was checked against in real source) before it becomes a filed Finding. Unverified candidates are DROPPED, never filed. Wire INTEL_BYPASS as the reviewer finding when a graph-sourced finding ships without the verification record.
Implementation Sketch
The gate is the SOLE Candidate -> Finding path; the runtime emit refuses any unverified candidate. phase-3-analysis.md instructs the agent to open each candidate’s file:line, confirm against real code, and record the note before the finding is filed. INTEL_BYPASS already exists in impl-hygiene.md (Critical when the answer ships in finding evidence).
Spec References
.claude/rules/intelligence.md (DISCOVERY-only; verify against real code); impl-hygiene.md INTEL_BYPASS.
Work Items
- Enforce drop-unless-verified in the runtime
Candidate -> Findingemit path - Author the per-candidate verification instruction in
phase-3-analysis.md(open file:line, confirm vs real source, record note) - Wire
INTEL_BYPASSas the finding when a graph-sourced result ships without a verification record - pytest: an unverified candidate cannot be emitted as a finding