100%

04 — judgment-4-class

Goal

The load-bearing judgment layer: for each FROZEN candidate, RE-READ the live source (including comments) and classify into exactly one of four classes — only accidental-copy-paste is a collapse; legitimately-distinct (e.g. LexError factories), macro/generated (already DRY at source), and deliberate-fence (the _enforce_exhaustiveness cross-crate forcing function) are LEAVE. High-precision, low-recall: bias to LEAVE; a wrong collapse breaks a fence, a missed collapse just leaves tidy-able code. A latent-bug finding (e.g. parity-duplication) routes to /add-bug, never collapsed.

Implementation Sketch

judge step (LLM dispatched by the runtime): the script hands the LLM each frozen candidate’s CURRENT source bodies (graph proposes, source disposes); the LLM emits a structured verdict {class, collapse_shape?, leave_reason?, latent_bug?}. Default verdict = LEAVE unless collapse is clearly safe. Cross-crate collapses MUST respect dependency direction + zero-dep constraints (the ori_rt / BUG-05-015 lesson: shared crate, never runtime->interpreter).

Spec References

.claude/rules/impl-hygiene.md (LEAK classes, Chesterton’s Fence); bug-tracker BUG-05-015 (parity-duplication latent-bug exemplar); CLAUDE.md §Scope Expansion (Chesterton’s Fence)

Work Items

  • judge dispatch: re-read live source bodies per frozen candidate (source disposes)
  • 4-class verdict: collapse | legitimately-distinct | macro-generated | deliberate-fence
  • Default LEAVE unless collapse clearly safe; cross-crate respects dep-direction/zero-dep
  • latent-bug verdict routes to /add-bug; never collapsed
  • Test: the 4 exemplars classify correctly (alloc_* collapse; LexError/_enforce_exhaustiveness leave)