Rules never-opened advice per corpus (#4798); a lesson's name is one line (#4797) #200

Merged
bvandeusen merged 2 commits from dev into main 2026-10-03 23:11:19 -04:00
Owner

Two commits, each green on dev:

  • 9909cd2, CI 7995: #4798 "The rules corpus's surfaced_never_pulled warning sends the reader to menus_to_review, which can only review auto_inject".
    • The warning's advice is now per corpus. Rules get their own reading and next step.
    • The guard is tied to retrieval_review.REVIEWABLE.
  • d2ac7bf, CI 7996: #4797 "A lesson's what takes a whole narrative, and the narrative becomes its name".
    • require_claim refuses a what over 240 characters or with a line break, at the MCP and REST create/update doors.
    • claim_line shows an over-long stored name in the menu as its first sentence.

🤖 Generated with Claude Code

Two commits, each green on dev: - **9909cd2, CI 7995: #4798 "The rules corpus's `surfaced_never_pulled` warning sends the reader to `menus_to_review`, which can only review `auto_inject`".** - The warning's advice is now per corpus. Rules get their own reading and next step. - The guard is tied to `retrieval_review.REVIEWABLE`. - **d2ac7bf, CI 7996: #4797 "A lesson's `what` takes a whole narrative, and the narrative becomes its name".** - `require_claim` refuses a `what` over 240 characters or with a line break, at the MCP and REST create/update doors. - `claim_line` shows an over-long stored name in the menu as its first sentence. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-10-03 23:11:15 -04:00
fix(retrieval): the rules never-opened warning stops sending the reader to a review tool that refuses rules (#4798)
CI & Build / Python lint (push) Successful in 4s
CI & Build / Plugin hooks (push) Successful in 15s
CI & Build / TypeScript typecheck (push) Successful in 54s
CI & Build / integration (push) Successful in 1m7s
CI & Build / Python tests (push) Successful in 1m55s
CI & Build / Build & push image (push) Successful in 26s
9909cd2450
#4798 "The rules corpus's surfaced_never_pulled warning sends the reader to
menus_to_review, which can only review auto_inject". #4772 gave the warning
one remedy for both corpora: "judge a sample with menus_to_review". That is
right for notes, where a line carries its passage. For rules it is a dead
end: retrieval_review.REVIEWABLE holds only auto_inject, so the tool
refuses every rule arm.

- The reading is now per corpus (_NEVER_PULLED_READING). For rules, the
  text says:
  - the count includes rules that only arrived in a listing;
  - a rule can rightly be set aside on its trigger alone;
  - no judged sample exists for the rule arms;
  - a rule set aside again and again is a trigger to fix (update_rule
    when_to_apply, then what_might_apply), not a floor.
- The tool docstring says the same.
- The guard is tied to REVIEWABLE, so it can fail in both directions: if
  the rules text names menus_to_review while no rule arm is reviewable, or
  if a rule arm becomes reviewable and the text still says there is no
  sample.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(lessons): a lesson's name is one claim on one line (#4797)
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 13s
CI & Build / TypeScript typecheck (push) Successful in 53s
CI & Build / integration (push) Successful in 54s
CI & Build / Python tests (push) Successful in 1m48s
CI & Build / Build & push image (push) Successful in 28s
d2ac7bf220
#4797 "A lesson's what takes a whole narrative, and the narrative becomes
its name". `what` is the title every listing and menu prints. Nothing
enforced its documented "one line", so lessons written with the incident
in `what` printed up to ~1,500 characters as a menu line, buried the
claim, and diluted the trigger in the embedded title. That was 14 of the
39 lessons on this install.

- lessons.require_claim refuses a `what` over WHAT_MAX_CHARS (240) or
  running over several lines. The refusal says the story goes in
  `insight`.
- Both doors call it before writing:
  - MCP create_lesson / update_lesson;
  - REST create / update.
  An update checks only a NEW name, so a lesson stored with a long one can
  still take the edit that repairs it.
- lessons.claim_line is the display half. _menu_name shows an over-long
  stored name as its first sentence marked " …", because a door guard
  does not undo rows already stored and an unrepaired install would keep
  printing them.
- The tool docstrings state the bound.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bvandeusen merged commit 802ead748b into main 2026-10-03 23:11:19 -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#200