#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>