issue-root-resolution

Installation
SKILL.md

Activation Contract

Load when auditing a defect backlog for shared root causes, proposing a fix for an issue cluster, or closing issues as resolved/outdated. Complements rdd-defect-workflow (single-defect flow) — this skill governs the cluster-level method.

Hard Rules

  • Read full bodies and comments, never titles. Classify against the actual code or PR diff, not descriptions of it.
  • Verify every "fixed" or "broken" claim against current origin/main the day you act. Compare report dates to fix merge dates: a repro filed before the fix landed is evidence about old builds, not current code.
  • Cluster defects by causal root, not surface. Each root gets a measured row in the meta-issue (#2471 style): issues attached, fix shape, state.
  • Before proposing any fix, produce a read-only mechanism map: one file:line anchor per claim, mechanism explained as implemented today. Report claim-vs-code mismatches explicitly; never force evidence to fit the hypothesis. Let the map shrink the proposal.
  • Rank solutions by what they DELETE: (1) removes a mechanism so the class becomes impossible, (2) static guard-ratchet making reintroduction a test failure, (3) localized predicate fix behind a failing repro test. New surface (verbs, flags, mechanisms) is last resort — defer until re-verified evidence demands it.
  • Extract maintainer choices as named D-items with recommended defaults. A maintainer condition recorded in an issue thread outranks any plan table, including yours.
  • Close only with evidence, one rule per closure: (A) fixed on main, cite commit AND proving test; (B) superseded by recorded maintainer decision; (C) surface no longer exists; (D) duplicate of a fixed issue. Comment before closing: what resolved it, verified today, reopen invitation. When in doubt, do not close — list as borderline.
  • Clean break, never compatibility. When a format or identity changes, bump its versioned tag as a REPLACEMENT: old records become outdated and fail closed with an actionable refusal naming the rerun. Never write dual recognition, legacy fallbacks, or compat shims; that residue is what the deletion criterion exists to prevent. Stored bytes are never rewritten and stay readable for forensics, but carry no gate or lifecycle validity.
  • Implementation follows the waves recipe: repro as failing test first, byte-stable goldens as defect signal, independently revertible slices, one writer per slice.
  • A universal guard's verification matrix is go test ./... at the repository root, never a curated package list. A guard that forbids a shape breaks every fixture that relied on it, including in packages the change never touched.
  • One worktree per writer, always, including the orchestrator. Before editing inline, check whether a delegated worker holds that path; if so, create a separate worktree rather than reusing it.
  • Audit every worker report yourself: re-run its key verification, decoy-test any new guard, spot-check its diffs. A self-report is a claim, not evidence.
Installs
3
GitHub Stars
5.6K
First Seen
4 days ago
issue-root-resolution — gentleman-programming/gentle-ai