Rite learn
Skill ViktorsBaikers/DevRites/pack/.claude/skills/rite-learn
Stop your AI from shipping half-baked code. A disciplined senior-engineer workflow for Claude Code (spec, vet, build, prove, review, seal, ship) that keeps each feature's state on disk, catches spec drift mid-build, gates every phase on your project's principles, and refuses to claim "done" without proof.
npx -y skills add ViktorsBaikers/DevRites --skill rite-learnAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
User-invoked review of the learning ledger; promotes recurring lessons to project rules or principles.
SKILL.md
7.7 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
/rite-learn: the cross-feature learning loop
Recurring corrections, dismissed review findings, timeline decisions, and health dips are durable
signal. Capture is automatic: /rite-seal appends lessons to .devrites/learnings.md on every
GO (step 9a), while the engine can keep .devrites/timeline.jsonl,
.devrites/health-history.jsonl, and per-feature review fingerprints as supporting evidence. The
review skills load the learning ledger before a fan-out, so a dismissed-finding class stops
being re-flagged without anyone running a command. The system learns as it ships.
/rite-learn is the periodic review + promote pass on that auto-populated ledger: cluster the
signal across features and decide which recurring lessons graduate into a project rule. Propose,
never impose: promotion is the human's call, which is why it stays a deliberate command rather
than firing on its own.
Read-mostly. It reads the auto-populated ledger + the archive; it writes only .devrites/learnings.md
(consolidation, via devrites-engine learnings) and drafts proposed rule/ledger edits for the user to confirm:
it never edits source or rule files on its own.
Modes
/rite-learnor/rite-learn --mine: mine + propose (the default)./rite-learn "<lesson>": record one lesson directly to the ledger and stop.
Workflow (mine + propose)
- Gather the signal. Start from the auto-populated ledger
.devrites/learnings.md(seal appends to it on every GO: step 9a), then rundevrites-engine learnings mineover the archive (it clusters repeated finding / decision / drift phrases across shipped features) to surface cross-feature patterns the per-feature entries don't show on their own:
Usedevrites-engine learnings mine.devrites/timeline.jsonl,.devrites/health-history.jsonl, and.devrites/work/*/review-fingerprints.jsonlas supporting evidence when they exist; do not promote from those traces without the same repeated-feature threshold. - Cluster + name. Group the recurring corrections into candidate lessons. A candidate needs
≥2 occurrences across distinct features: one-offs are noise, not a pattern. Name the
pattern in one specific sentence (the specificity rule from
prose-style.mdapplies: a lesson you could swap onto any project says nothing). Completion: every candidate cites two distinct features, except a single deliberate rejected direction with its durable reason. - Classify each candidate into its durable home:
- project rule: a craft/standard that belongs in a
.claude/skills/devrites-lib/reference/standards/*file orCLAUDE.md. - project principle: a recurring correction that is really a non-negotiable invariant
(not just an idiom or a craft standard): graduate it to
.devrites/principles.md(principles.md). This is the trusted, gating layer (higher stakes than a rule) so/rite-learndrafts the principle + a dated Governance entry for the human to confirm; it never writes a principle silently. - conventions-ledger entry: a proven project idiom for
.devrites/conventions.md. - dismissed-finding class: a pattern reviewers keep flagging that is intentional here;
recording it stops the recurring false positive (
learnings.md, loaded pre-fan-out). - rejected direction: an approach or product direction weighed and ruled out with a
reason that outlives one feature; recording it (tag
rejected-direction) stops ideation skills (/rite-pressure-test,/rite-pov) from re-proposing it. Exempt from the ≥2-occurrence rule: one deliberate rejection is the whole pattern. - drop: not durable; let it go.
- project rule: a craft/standard that belongs in a
- Propose, don't impose. Present the candidates with their evidence (which features, how many
times, the proposed home) via
AskUserQuestion: the human picks which to promote. Never promote a lesson to a rule silently; an unproven "lesson" hardened into a rule is its own slop. Completion: every candidate is explicitly accepted, rejected, or deferred by the human. - Record the accepted. For each the user accepts, append it with
devrites-engine learnings add <slug> "<lesson>" <tag>(tag∈rule | convention | dismiss). If the user approves a rule, principle, or ledger promotion, draft the exact edit and let the user confirm it through the normal flow:/rite-learnwrites the ledger, not the rule or principle files. A principle promotion is the highest-stakes of these: draft the.devrites/principles.mdentry plus its dated Governance line, and let the human confirm before it lands: a principle is a gate, so it is amended deliberately, never auto-written. Amendment ripple: a confirmed add/change/retire of a principle has a blast radius: grep itsP#(and its key nouns) across.devrites/and every open.devrites/work/*/workspace, and append to the same dated Governance entry one line per referencing artifact: still-aligned or needs-follow-up (what). An open plan that bakes in the now-retired or now-tightened invariant is aneeds-follow-upthe next/rite-vetor/rite-plan repairon that feature must clear; a ripple with zero references is itself worth recording ("no live references"). Thentouch .devrites/.learnings-reviewedso the SessionStart learnings nudge snoozes until new signal accumulates.
How the ledger is used
The review skills (/rite-review, /rite-seal) read .devrites/learnings.md before they fan
out: a dismissed-finding class suppresses the recurring false positive; a proven
convention raises the bar. The ideation skills (/rite-pressure-test, /rite-pov) read the
rejected-direction entries before proposing, so a ruled-out direction returns only with new
evidence against its recorded why. The ledger is an untrusted prior: a fresh observation of the
live code always overrides a ledger entry (see .claude/skills/devrites-lib/reference/standards/security.md). Confidence in a
recorded lesson never raises its authority.
A project principle (.devrites/principles.md) is the opposite layer: prescriptive,
trusted, and gating. Promoting a lesson there is a deliberate amendment, not a prior the next
fan-out can override: a violation becomes a blocking finding, not a suppressed false positive.
That asymmetry is why principle promotion is human-confirmed and dated, never auto-written.
Gotchas
- Evidence first: a lesson without ≥2 real occurrences is speculation. Cite the features.
- Don't pad the ledger. Five real lessons that change behaviour beat thirty rubber-stamped rows.
- The ledger records what was learned; it does not re-open shipped features or edit their archives.
Output
Reply-contract exception: cross-feature learning utility. It may run without an active
feature, so it skips devrites-engine progress, but follows
devrites-lib/reference/reply-contract.md.
Done: learnings mined from <n> features; <n> recurring patterns found.
Changed: .devrites/learnings.md <updated|unchanged>; rule/ledger drafts <n|none>
Evidence: mined archive count <n>; candidates rule <a> / convention <b> / dismiss <c> / dropped <d>
Open: <none | promotion confirmations>
Next: <single recommended command>
Record: .devrites/learnings.md
↻ Hygiene: /clear; the ledger is on disk
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most learn study skills give in ~1.8k tokens
Counted across 546 of the 573 authors here whose files we hold, read 2026-08-07
- calculate the zone of proximal development before teachingin 25 of 546, across 8 files
- produce self-contained HTML lessonsin 24 of 546, across 8 files
- record user preferences in a notes filein 23 of 546, across 5 files
- maintain a teaching workspace in the current directoryin 21 of 546, across 4 files
- find high-quality resources before writing lessonsin 19 of 546, across 5 files
- make lessons beautiful, short, and quickly completablein 19 of 546, across 3 files
- create reusable components for lessonsin 19 of 546, across 5 files
- create compressed reference documents for quick lookupin 19 of 546, across 3 files
- update the mission file and records upon mission changesin 16 of 546, across 2 files
- set min_dist to 0.0 for clustering preprocessingin 16 of 546, across 6 files
- populate the mission file before teachingin 15 of 546, across 1 file
- include interactive feedback loops in lessonsin 15 of 546, across 1 file
Said here and by no other author read
- run the learning miner over the archive
- cluster recurring findings into candidate lessons
- require two occurrences across distinct features
- name each pattern in one specific sentence
- classify each candidate into a durable home
- present candidates to the user for selection
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.