Until now only the tool arguments knew moments existed. The guidance
surfaces described rules as reached by resemblance alone:
- using-scribe: a short reflex paragraph and a new reference file,
moments.md. It covers reading "at <moment>, reached by <action>", the
reply held once at reply.report, map_action / unmap_action offered in
one line, and the step 7 proposal line answered with judge_rule_moments.
- writing-records: asks WHEN a rule applies as well as what it is about.
A rule, preference or process about a point in the work gets
moments=[...] as it is written, and the trigger stays as the net.
- missed-retrieval: a missed WHEN is mounted or mapped, not reworded. A
misfire is unmounted or unmapped.
- _INSTRUCTIONS: one clause (list_moments; mount rules about WHEN),
1594 of 1600 chars.
- static context: injected lines include the rules mounted on a moment
that was reached.
- test_guidance_ownership: three owned topics, so the text cannot quietly
drop out.
Plugin minted.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An open rate cannot say whether a menu line related: every line carries its
matched passage (#4364), so "not opened" covers unrelated, enough as shown,
and already in context. #4772 "Injected notes are never judged".
- retrieval_judgments (0115): a reviewer verdict per line of a logged call,
on_point / adjacent / unrelated, with its reason, rank, budget side and
whether the agent opened it within the hour.
- menus_to_review re-runs a random sample of unjudged auto_inject calls with
the arm's own parameters, past its budget, passage on every line.
judge_menu records verdicts, re-deriving rank from a fresh re-run.
- retrieval_telemetry gains a judged block (by rank, within/beyond budget,
on_point_unopened). surfaced_never_pulled stops blaming titles.
- missed-retrieval guidance names the review before a budget move.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Anthropic's skill guidance: keep SKILL.md under 500 lines, split into
reference files linked one level deep as it nears that. using-scribe was
478 and every new practice lands there.
- SKILL.md 478 -> 317 lines. It keeps orientation, one copy, the reflexes,
scope, the judge section, UI and the process-skill index, plus a "Read
these when the moment comes" list naming each file with its moment.
- projects.md: binding a non-git directory (.scribe) and project inception.
- writing-records.md: where a new rule goes, lesson growth, and notes that
carry their own check (reflex 10 keeps a pointer).
- missed-retrieval.md: the record-before-dial route, verbatim.
- Text moved, not rewritten, except for the seams and one cross-reference.
Tests:
- tests.helpers.skill_text reads SKILL.md plus its reference files. The
ownership registry, the miss-route and the verification tests use it, so
a topic stays owned by its skill whichever file holds it.
- The force test scans every skill .md on its own, since each file is read
on its own.
- New test_skill_structure: SKILL.md <= 350 lines, every reference file is
linked from SKILL.md, none links another, and one over 100 lines opens
with Contents. Each guard is shown to fail.
The plugin version is minted. That also clears 4fb53b8's red Plugin hooks
lane, which failed only because PACKAGING.md changed without a mint.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>