Repository navigation
corrections: new plugin with /corrections:codify #7573
Description
Parent
Refs #7555. Source: PLAN Phase 5, topic poteto-review. Thread: corrections and codify.
Depends on
- config-cascade: settings resolution and convention home #7571 Settings resolution and convention home
- enforcement-ladder: v2.0.0 ladder and one guardrail criterion #7572 Enforcement ladder v2.0.0 (rung picking reads ladder v2.0.0)
Outcome
A new corrections plugin ships /corrections:codify: given a described mistake (and optionally a
PR), it counts recurrences from history and buffer rows, picks the strongest ladder rung, and
proposes a check with a proof that the check fails on the old code and passes on current.
Decisions
- New plugin
correctionsships/corrections:codifyalone; absorbs retrocodify,
/review:audit-enforceabilityand audit-sessionsstyle;gatherbecomes anoteaction plus a
read-onlygroupaction (D49, D50 item 3, D98, Q117, Q152). Origin: ours (packaging). - One prompt
/corrections:codify "<description>" [#PR]; a proof script shows the new check fails on
old code and passes on current (D72, Q113, Q115). - Consent: a person invoking it is consent; a model invocation only proposes; ask before installing
any blocking check (hook, required CI check, lint error level) (D81, Q95; combined, because
Lauren and Matt differ). - Setting
recurrence.min_occurrences, default 2 (repo); any person's direct "codify this" acts at
once; the PR names each occurrence counted; codify only proposes, a person approves (D81, Q509,
Q572, Q580). Count at two and re-read history: Lauren's (pstackcorrect). - Counts from history and buffer rows (Q584). Sources: PR review comments by script (including the
author's own after merge), session transcripts, recent commits; chat and meeting sources wait for
communication's readers (D21, D50 item 6, Q103, Q510). - Places each lesson by scope: team standard, project rule, user scope (D50 item 1). Never unattended
by default; a detector that finds an uncovered rule hands install and proof to codify (D50 item 7,
Q151). Confirmed escaped defects feed codify (Q567, Lauren's). - Rejected: an action on
/session-flow:audit-sessions; two skillsgatherandcodify; a monthly
pattern-store issue or new ledger; authority keys and owner-weighted counts; a personal mode skill.
Key interfaces
From the design's module layout: "corrections: ships /corrections:codify alone, with note and
read-only group actions. Absorbs retro codify, /review:audit-enforceability and audit-sessions
style. Places each lesson by scope (team standard, project rule, user scope). Sources: PR review
comments, session transcripts, recent commits, buffer rows. Chat and meeting sources wait for
communication."
Settings: "recurrence.min_occurrences: 2, repo." Variation verdicts: "Codify sources: abstract
now; corrections sources via adapters, chat and meeting wait for communication (D21, Q510)."
Slices, filed when this phase starts: corrections-scaffold-and-codify, absorb-and-remove.
Done when
-
bash plugins/skill-quality/scripts/check-skill.sh --require-evals plugins/corrections/skills
exits 0 and the prove-check script's test exits 0 (the plugin does not exist on main). -
rg -n 'review:audit-enforceability|retro codify' plugins docs --glob '!**/CHANGELOG.md' --glob '!.changes/**'
prints nothing. - Every slice sub-issue is closed by a merged PR, and each skill-body cut cites before/after eval
results.
Out of scope
- Chat and meeting sources (wait for
communication). - The findings buffer contract (Findings buffer thread).
Metadata
Metadata
Assignees
Labels
Type
Fields
Work status
Activity
github-actions commentedon Oct 16, 2026
Proposed work class: work-class: structural
Basis: automated intake triage; the lanes App applied this class.
Size: Large
Complexity: Medium
Uncertainty: Known
Flags: none
Blocked by: #7571, #7572
Understood: add a new
correctionsplugin shipping/corrections:codify. It counts recurrences of a described mistake from history and buffer rows, picks the strongest enforcement-ladder rung, and proposes a check with a proof script. The proof shows the check fails on old code and passes on current. It also absorbs the retrocodify,/review:audit-enforceabilityand audit-sessionsstyleskills.The issue states its decisions, interfaces, done-when checks and out-of-scope items, so no open intent question remains. It depends on #7571 and #7572. The work is large enough to split, and the issue already names two slices: corrections-scaffold-and-codify and absorb-and-remove. No likely duplicates found.
Automated triage, applied by the lanes App.
kyle-sexton commentedon Oct 16, 2026
What the article adds for codify. Source: https://claude.dev/blog/solving-code-review-at-anthropic (2026-10-15); ids are digest unit and claim.
CLAUDE.md, a skill or a new check" (11 C5).For
/corrections:codify: record the "what was missing" answer in each proposal, so rung picking (#7572) starts from it. Under D97/Q150 (GUIDE 97) review rules go to the per-concern review files; REVIEW.md and the one CLAUDE.md/AGENTS.md pointer line the owner allowed on 2026-10-16 only point at them. #7583 carries that change.Owner decision, 2026-10-16. The codify threshold stays at its default of 2 (Q572), and a person's direct "codify this" acts at once (Q509). Each confirmed escaped defect that Q567 sends to codify gets the article's question, "what did the model not have in front of it" (11 C5), answered in its follow-up.
Against the originating sources. Counting to two and re-reading history (Lauren's, pstack
correct) agrees with "keeps flagging the same thing" (04 C12).Each miss is also an eval case candidate for #7639 (05 C2).
Related: #7572, #7583, #7576, #7639, #7638.
3 remaining items
kyle-sexton commentedon Oct 24, 2026
Released for re-triage under the owner's 2026-10-24 rule: an issue stops for a person only for an intent or vision question, a security call, a host or attended run, or spend outside prepaid credit. The hold label came off and intake triage runs again now; it re-applies a hold, with a numbered question, when one of those applies.
To hold this issue again, add
needs-human(orstatus: needs-decision) and say why in a comment.melodic-automation-lanes commentedon Oct 24, 2026
Not admitted to the issue lane yet: Size large: the split into sub-issues at intake is pending (owner Q93).
melodic-automation-lanes commentedon Oct 24, 2026
The latest triage verdict holds nothing: the issue is at
status: ready.kyle-sexton commentedon Oct 26, 2026
Released for re-triage under the owner's 2026-10-24 rule: an issue stops for a person only for an intent or vision question, a security call, a host or attended run, or spend outside prepaid credit. The hold label came off and intake triage runs again now; it re-applies a hold, with a numbered question, when one of those applies.
To hold this issue again, add
needs-human(orstatus: needs-decision) and say why in a comment.