learning-capturelisted
Install: claude install-skill app-vitals/shipwright
# Learning Capture
When the user teaches you something durable, put it in its permanent home **now** —
edit `CLAUDE.md` or the relevant skill in the same turn. Git is the audit trail. There
is no staging file and no separate promotion step.
This skill replaces the old capture → stage → promote flow. That flow added three
interruptions and trusted the model less than it deserves. The model is trusted to make
the edit; the user reviews it the same way they review any other change — in the diff.
## The one rule: pass the gate first
Before editing anything, run the **generalization gate**. Capture a learning **only if
both** are true:
1. **It generalizes.** It will apply to *future, different* work — not just the change
you both just made. A correction scoped to "this function", "this file", "this PR",
or "in this case" is not a learning. It is just doing the task.
2. **It is not already captured by the code.** If the change you just committed already
embodies the rule — the code does it the right way now, a test enforces it, a type
makes the wrong version impossible, a lint rule will catch it — then **the code is the
memory.** A `CLAUDE.md` line that restates what the diff already shows is noise and
will rot. Skip it.
If you are unsure whether something generalizes, it probably does not. See
`references/generalization-gate.md` for the full criteria, signal patterns, and worked
examples. **When in doubt, do not capture.** A missed learning costs nothing;