Moments: skills teach moments, and a mount that misfires proposes its own removal (milestone 458 steps 8, 7b) #204

Merged
bvandeusen merged 3 commits from dev into main 2026-10-05 18:29:53 -04:00
Owner

Two steps of milestone 458 since the last merge (2b52afc):

  • Step 8 (#4926): the instruction surfaces teach moments.
    • using-scribe gains a moments.md reference and a SKILL.md paragraph.
    • writing-records says to ask WHEN as well as WHAT when a rule is written.
    • missed-retrieval says to ask whether a miss was a WHEN or a WHAT.
    • The _INSTRUCTIONS and static-context lines now cover moment deliveries.
  • Step 7b (#4955): the misfire signal.
    • A new MCP tool, rule_misfired(rule_id, moment, why, reached_by), reports a mounted rule that arrived where it did not apply. Reports are counted per distinct day in a new rule_moment_judgments.misfire column (migration 0119, backup v24).
    • At three days, the agent gets a line to offer the operator. Settings › Moments › "Waiting on you" lists it as an unmount proposal.
    • The fixes on offer: Take it off (reject), unmap the action, or Keep it (confirm, which stops the asking).
    • Re-mounting a moment clears its count.

Plugin 2026.10.05.2219. CI run 8209 is green. Its first attempt hit an intermittent HNSW scope test, filed as #4958.

🤖 Generated with Claude Code

Two steps of milestone 458 since the last merge (2b52afc): - **Step 8 (#4926): the instruction surfaces teach moments.** - using-scribe gains a moments.md reference and a SKILL.md paragraph. - writing-records says to ask WHEN as well as WHAT when a rule is written. - missed-retrieval says to ask whether a miss was a WHEN or a WHAT. - The `_INSTRUCTIONS` and static-context lines now cover moment deliveries. - **Step 7b (#4955): the misfire signal.** - A new MCP tool, `rule_misfired(rule_id, moment, why, reached_by)`, reports a mounted rule that arrived where it did not apply. Reports are counted per distinct day in a new `rule_moment_judgments.misfire` column (migration 0119, backup v24). - At three days, the agent gets a line to offer the operator. Settings › Moments › "Waiting on you" lists it as an unmount proposal. - The fixes on offer: Take it off (reject), unmap the action, or Keep it (confirm, which stops the asking). - Re-mounting a moment clears its count. Plugin 2026.10.05.2219. CI run 8209 is green. Its first attempt hit an intermittent HNSW scope test, filed as #4958. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 3 commits 2026-10-05 18:29:50 -04:00
docs(plugin): the instruction surfaces teach moments - reading a line that arrived at one, correcting a misfire, and giving a new rule its moments (milestone 458 step 8, #4926)
CI & Build / Python lint (push) Successful in 13s
CI & Build / Plugin hooks (push) Successful in 16s
CI & Build / TypeScript typecheck (push) Successful in 56s
CI & Build / integration (push) Successful in 1m38s
CI & Build / Python tests (push) Failing after 1m59s
CI & Build / Build & push image (push) Skipped
a72a422534
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>
docs(plugin): reference files point at each other in words, not links - one level deep (milestone 458 step 8, #4926)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 14s
CI & Build / TypeScript typecheck (push) Successful in 56s
CI & Build / integration (push) Successful in 59s
CI & Build / Python tests (push) Successful in 2m11s
CI & Build / Build & push image (push) Successful in 41s
8afd6da8af
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(moments): a mount that keeps arriving where it does not apply proposes its own removal (milestone 458 step 7b, #4955)
CI & Build / Python lint (push) Successful in 2s
CI & Build / Plugin hooks (push) Successful in 16s
CI & Build / TypeScript typecheck (push) Successful in 54s
CI & Build / integration (push) Successful in 1m19s
CI & Build / Python tests (push) Successful in 2m3s
CI & Build / Build & push image (push) Successful in 18s
4e1320120d
The open-after-moment signal proposes a mount; nothing proposed taking one
off, so a wrong mount was noise at every occurrence until someone happened
to notice. rule_misfired(rule_id, moment, why, reached_by) records a report
against a MOUNTED pair, counted per distinct day (the MCP door carries no
session id) on a new rule_moment_judgments.misfire column (migration 0119,
backup v24). At three days the response carries a line asking the agent to
offer the operator the fix - reject takes the rule off, unmap_action stops
the action reaching the moment, confirm keeps the mount and stops the
asking - and Settings > Moments lists it as an unmount proposal with the
reasons and the actions that reached it. A re-mount clears the count.

Taught in moments.md, missed-retrieval.md and the reply hold's wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bvandeusen merged commit 25c1c778f1 into main 2026-10-05 18:29:53 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#204