feat: add worth-it rating rubric to /coding:self-improve#68
Conversation
Gate-then-grade, mirroring /vault-cli:reflect: a hard evidence gate then a weighted worth-it score (recurrence/cost/generality/repair, minus obvious-anyway) with propose/borderline/discard tiers. Surfaces a per-proposal Worth-it score so borderline candidates get an inspectable number instead of a coin-flip.
There was a problem hiding this comment.
Selector Mode Review — in-session
Files changed: CHANGELOG.md, commands/self-improve.md
Concern 1: Rubric scoring arithmetic ✓
The weights and thresholds are internally consistent:
| Signal | Weight | Max contribution |
|---|---|---|
| Recurrence | +2 | +2 |
| Cost | +1 | +1 |
| Generality | +1 | +1 |
| Repair | +1 | +1 |
| Obvious-anyway | −2 | −2 |
Max positive score = 2+1+1+1 = +5. The ≥3 "propose" threshold means you need ~60% of available signal. The Obvious-anyway −2 penalty can flip a borderline +1 or +2 into discard territory — which is the intended effect ("kills 'just do it in the natural order' non-improvements").
Tiers verified:
- ≥ 3 (propose): minimum viable signal — e.g. Recurrence+Cost = 3, or Recurrence+Generality+Repair = 4
- 1–2 (borderline): low signal, named but not proposed
- ≤ 0 (discard): Obvious-anyway alone clears the −2 penalty, no proposal
Verdict: Consistent.
Concern 2: Step 6 worth-it score display ✓
Step 6 output format (lines 88–92) correctly integrates Worth-it: <score> per proposal:
Per proposal:
- **Change:** what, and where (exact target file / artifact)
- **Worth-it:** <score> (e.g. recurrence +2, cost +1)
- **Evidence:** verbatim quote(s) + how often
The example in the rubric (Worth-it: <score> with component breakdown) matches the description in the CHANGELOG ("surfaces a Worth-it: score per proposal").
Verdict: Correctly integrated.
Concern 3: CHANGELOG.md unreleased section ✓
## Unreleased exists (line 11) and contains the expected bullet (line 13):
feat: add a worth-it rating rubric to
/coding:self-improveStep 3 — gate-then-grade …
Verdict: Present and correct.
Selector Mode Traceability
| Rule ID | Doc | Status |
|---|---|---|
| — | No applicable judgment rules for commands/ file changes |
N/A (cmd file, not code) |
No ast-grep rules target commands/*.md. This is a pure docs change — mechanical funnel returned zero findings (expected).
Final Verdict
No issues found. The PR correctly adds the worth-it rating rubric to Step 3 and displays it in Step 6 output.
{
"verdict": "approve",
"summary": "Docs-only change adds a correctly-arithmetic worth-it rating rubric to /coding:self-improve Step 3 and integrates the Worth-it score display into Step 6 output format. CHANGELOG Unreleased entry is present and accurate. No issues identified.",
"comments": [],
"concerns_addressed": [
"correctness: rubric scoring arithmetic verified — weights (+2/+1/+1/+1/−2) and tiers (≥3 propose, 1-2 borderline, ≤0 discard) are internally consistent with max score +5",
"correctness: Step 6 worth-it score display correctly integrated — per-proposal 'Worth-it: <score>' line present in output format",
"correctness: CHANGELOG.md ## Unreleased section exists with the expected feat bullet for this change"
]
}
What
Adds a gate-then-grade rating to
/coding:self-improveStep 3, mirroring how/vault-cli:reflectrates learnings (a significance filter → scored tiers).Why
Today Step 3 is a binary "Keep-forever test" (Recurrence AND Evidence → keep or discard). Borderline candidates — the common case — have no rating, so the call is a coin-flip. This surfaced live: a session weighed a git-flag footgun candidate, wrote "borderline but it clears," and the operator had to ask "is it worth it? I'm unsure." The ambiguity was structural.
Change
Worth-it: <score>line.Under the rubric the triggering candidate scores 2 → borderline → don't propose, matching the conclusion reached manually.
Scope
Prose-only edit to the command definition + CHANGELOG
## Unreleasedbullet. No code;/coding:pr-reviewhas no code surface to review.