100%

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 -> Finding emit path
  • Author the per-candidate verification instruction in phase-3-analysis.md (open file:line, confirm vs real source, record note)
  • Wire INTEL_BYPASS as the finding when a graph-sourced result ships without a verification record
  • pytest: an unverified candidate cannot be emitted as a finding