Pillar C — graph nominates, LLM adjudicates, overlap-gated
Goal
Candidate plan pairs are nominated cheaply by shared code surface; only nominees are adjudicated for R2/R3, collapsing the N^2 pair space to plans-touching-shared-code.
Implementation Sketch
Nominate pairs sharing MENTIONS_CODE symbols or touches: files (reuse add_bug_runtime/relatedness.py file/symbol signals + intel symbol-plans reverse query). Adjudicate R2/R3 adversarially on nominees only (‘find the contradiction; default none if uncertain’). Verdict carries evidence teeth citing the two conflicting criteria (mirrors ledger teeth discipline).
Spec References
Reuse scripts/add_bug_runtime/relatedness.py (compute_relatedness signals, line 186) + active_plans.discover_active_plans. intel symbol-plans reverse query. learning-ledger.md §3 teeth.
Work Items
- Overlap-gated nomination reusing relatedness file/symbol signals + the intel symbol-plans reverse query (plans sharing surface only)
- LLM adjudication contract for R2 (non-contradiction) + R3 (mission_violation), adversarial framing, evidence teeth citing the two conflicting criteria
- N^2 collapse: assess adjudicates only nominated pairs; non-overlapping pairs short-circuit to aligned
- pytest with overlap fixtures + mocked adjudication verdicts