Skip to content

discover: add Repairability verdict + blockers/gaps split; repair refuses not-repairable#19

Merged
CognitiveCodeAI merged 1 commit into
mainfrom
feat/discover-repairability-verdict
Jun 9, 2026
Merged

discover: add Repairability verdict + blockers/gaps split; repair refuses not-repairable#19
CognitiveCodeAI merged 1 commit into
mainfrom
feat/discover-repairability-verdict

Conversation

@CognitiveCodeAI

Copy link
Copy Markdown
Owner

What

Closes the structural hole found in the 2026-06-07 review (and listed as "designed but not built" in the v0.4.0 release notes): discover had no way to express outcome #3"not repairable, because it was never built." It could only rank blockers by severity, so a half-finished app produced a plan that quietly turned repair into feature development.

Changes

discover (SKILL.md):

  • DISCOVERY.md now opens with a ## Repairability verdict: repairable | partially-runnable | not-repairable, with a one-sentence evidence-cited justification and confidence tag.
  • Blockers vs gaps are now different kinds, not different severities. ## Blockers preventing local startup is restricted to fixable defects; a new ## Gaps (never built) section holds referenced-but-unimplemented functionality (stub bodies, imports of nonexistent modules, README features with no code).
  • Gaps never become DoD checkboxes — a gap blocking the smoke check is evidence for partially-runnable/not-repairable, not a reason to add "implement X" to the plan.
  • Ratification step now asks the user to confirm the verdict first; two new anti-patterns (filing a gap as a blocker; defaulting to repairable to be agreeable).

repair (SKILL.md):

  • Second refusal, parallel to the missing-DISCOVERY.md one: on not-repairable, stop and present the real options (re-scope discovery to what exists, or commission the missing pieces as deliberate feature work).
  • On partially-runnable: proceed, but the Gaps list stays out of scope — never quietly build a gap.
  • Backward compatible: a DISCOVERY.md with no verdict field (predates this change) is treated as repairable, noted in VERIFICATION_REPORT.md.
  • New anti-pattern: building a gap because it "blocks" a DoD item.

Docs: one-line updates to the README command table and docs/OVERVIEW.md workflow descriptions.

Not in scope

Routing discover's gaps onward (a future router, or audit ingesting them) stays a separate, deliberately-unbuilt problem per docs/PROPOSAL_audit-repair.md — this PR only makes the gap visible and load-bearing inside the discover → repair line.

Verification

🤖 Generated with Claude Code

…uses not-repairable

DISCOVERY.md previously had no way to say 'this can't be repaired because
it was never built' — only blocker severity. Now:

- discover emits a top-of-file Repairability verdict
  (repairable | partially-runnable | not-repairable) and splits fixable
  blockers from never-built gaps; gaps never become DoD checkboxes
- repair gains a second refusal: it stops on not-repairable, keeps gaps
  out of scope on partially-runnable, and treats a missing verdict field
  (pre-existing DISCOVERY.md files) as repairable
- README + OVERVIEW updated to match

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@CognitiveCodeAI CognitiveCodeAI merged commit 77ee646 into main Jun 9, 2026
1 check passed
@CognitiveCodeAI CognitiveCodeAI deleted the feat/discover-repairability-verdict branch June 9, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant