rc-lessonslisted
Install: claude install-skill rodolfochicone/rc-project
# Loop Lessons
The learning layer that makes RC loops *safe to repeat*. Every time verification catches a
defect, the reason it slipped through is captured as a **grounded lesson**; before the next
task or roadmap phase is planned, the **corroborated** lessons are loaded as guidance. A
one-off is never trusted — a lesson is only promoted after it recurs across **two distinct
features**, and is quarantined if it ever fails when applied.
**The script owns the bookkeeping.** IDs, recurrence counting, promotion, quarantine, and
pruning are mechanical and rot when done by hand, so they live in `scripts/lessons.mjs`
(deterministic, dependency-free) — never re-implement them in prose or edit the store by hand.
- Canonical store: `.rc/lessons.json` (machine-owned — do **not** hand-edit)
- Rendered playbook: `.rc/LESSONS.md` (regenerated on every write)
Invoke the script via the plugin root:
```bash
node "$CLAUDE_PLUGIN_ROOT/scripts/lessons.mjs" <command> --root <project-root> [flags]
```
`--root` is the directory that contains `.rc/` (default `.`). Run `--selftest` to verify the
lifecycle offline.
## When to RECORD a lesson (write)
Record **only** at a verification/review boundary, and **only** with real grounding — a lesson
with no `file:line` / AC id / mutant id / SPEC_DEVIATION reference is an opinion, and the script
refuses it. Record when a `rc-execute-task` / `rc-final-verify` / `rc-code-review` /
`rc-review-round` pass catches:
| Signal | Use when |
| --- | --- |
| `a