learn-from-bugs
MANDATORY: Follow the complete shared lifecycle contract in ${CLAUDE_PLUGIN_ROOT}/skills/shared/run-lifecycle.md with declared skill learn-from-bugs.
Learn From Bugs
MANDATORY: READ ENTIRE FILE before composing user-facing prose: ${CLAUDE_PLUGIN_ROOT}/skills/shared/readability-style.md.
Mine a repository's closed bug reports for recurring root-cause patterns, then propose preventions ranked by how mechanically enforceable they are. The workflow is report-only by default: it reads issues and the repo, writes one report to a scratch run directory, and makes no repository or GitHub change until the operator approves a specific follow-up.
--file / -s is filing mode, not apply mode. When either flag is set, the skill groups residual proposals and files detailed batch issues through /issue without a separate approval prompt. It must not append guidelines, create or extend invariants, update hooks, scaffold lints, add tests, or change still-broken code in the working tree. Filing under --file / -s is the explicit exception to per-action approval; every other repository mutation still requires Step 5 approval in default mode.
After every successful state publication, Step 5a reflects on this run's own friction and consolidates material larch improvement suggestions. Filing mode files exactly one self-analysis issue against character-ai/larch when suggestions survive; default mode appends the analysis to the report and offers that filing behind the existing Step 5 gate. Zero material suggestions file nothing.
The engine keeps this cheap. It never reads full issue bodies into context: learn-from-bugs prepare compresses each body to a compact root-cause digest first (dropping the appended /design plan, which dominates the bytes), so the synthesis reads a small fraction of the raw tokens. The prepared stats print a conservative DIGEST_TOKENS_EST so the operator can size a run before spending.
No sub-agents. Do the clustering and synthesis inline in this session. Do not spawn Task/Agent fan-out; the digest is small enough to read directly, and fan-out is the expensive failure mode this skill exists to avoid.
Anti-halt continuation reminder. After any child Skill call (for example /issue) returns, IMMEDIATELY continue with this skill's next numbered step. Do not end the turn on the child's cleanup output, and do not write a handoff or status recap. → shared/subskill-invocation.md#anti-halt