# Rite Learn

> Review recurring cross-feature evidence and propose durable project guidance.

- Skill: `viktorsbaikers/rite-learn` (Agent Skill)
- Install (CLI): `npx skillmds@latest add viktorsbaikers/rite-learn`
- Raw SKILL.md: https://api.skillmd.com/api/skills/viktorsbaikers/rite-learn/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ViktorsBaikers (https://skillmd.com/u/viktorsbaikers)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/viktorsbaikers/rite-learn

---


# /rite-learn: review durable lessons

Use reviewed Markdown/native memory, not miners or registries. This proposes maintenance
of one authority; it cannot promote a rule alone.

## Modes

- `/rite-learn` reviews recurring evidence across shipped work.
- `/rite-learn "<lesson>"` evaluates one lesson or rejected direction.

## Workflow

1. Read [durable promotion](../devrites-lib/reference/standards/documentation.md#promote-durable-guidance);
   bound the archive; inspect applicable `AGENTS.md`/`CLAUDE.md`, accepted ADRs, and relevant `.devrites/archive/*/{decisions,drift,review,seal}.md`.
2. Broad mode dispatches exact fresh/read-only `devrites-retrospector`; reconcile its claims against cited files.
3. Keep corrections repeated in two features, a judgement call made twice, or a defect class seen twice; drop one-off preferences, task-specific detail, generic advice.
4. Verify claims against live authoritative sources; state currentness signal, applies/does-not-apply scope, `unknown` where unverifiable.
   **Research promotion requires:** each external claim carries a dated citation per
   [`tooling.md` § Research provenance](../devrites-lib/reference/standards/tooling.md#research-provenance-staleness-and-cost).
   **Failing case:** "best practice is X" with no source → reject promotion.
5. Apply durable promotion's recoverability test; search same/contrary rules, choose one existing owner (nearest instruction/standard, ADR, or feature `decisions.md`), and name discovery.
6. Show the exact edit + duplicate/conflict/supersession disposition; update/narrow/replace/retire contradictions; apply only after user approval of exact edits.

## Rules

- Live repository evidence outranks memory; unverifiable is unknown, not false.
- A lesson's premise is graded **established / working / open** with its source
  (retrospector output): only established premises — or working premises whose
  confirming check is named — may be proposed; open premises return as recorded
  assumptions, not lessons.
- Never create a learning ledger/index/queue, score, timeline, or parallel authority; rejected directions return only when evidence changes their rationale.
- A declined lesson persists as a declined decision entry (reason recorded) in the
  nearest owning decisions file **in the same round** — a refusal recorded only in
  conversation or on an unmerged branch is lost and will be re-litigated.
  **Failing case:** the same rejected proposal returns next round because no tracked
  entry exists.
- A lesson proposing a new recurring check names its **controls**: the real past
  instance it would have caught (positive) and a near-miss class it must not fire on
  (negative). **Failing case:** a trigger patterned on an imagined command that never
  matched real history.
- Contradiction outranks staleness: actively misleading guidance outranks merely old guidance.
- A proposal names the **retrospective failing case**: the concrete past feature/artifact the
  rule would have caught. None → generic advice — drop.
- ≤3 accepted lessons per round; proposals extend/narrow but never lower an existing bar (revisions show old text beside new); duplicates consolidate into one canonical edit — simplification (deletions/merges) counts toward the cap.
- An accepted lesson ships with a **follow-through owner and deadline**: the exact edit
  lands in the named canonical file in the same round; a lesson unapplied at round end
  returns to candidates with its blocker recorded. **Failing case:** an accepted lesson
  with no applied edit and no recorded blocker — promotion failed; re-raise it.

## Output

```text
Done: reviewed <scope>.
Changed: none (proposal only)
Candidate: <specific proposal or none>
Currentness: <live source + signal | unknown>
Scope: applies <trigger>; does not apply <boundary>
Authority: existing <path|none>; canonical <path>; consumers/discovery <route>
Disposition: <no conflict | update/narrow/replace/retire path + reason>
Evidence: <feature/file references>
Awaiting: <approval for exact edits | none>
Next: <single action>
Record: <nearest owning decisions file | chat-only>
```

