feat(session-inbox-monitor): resolve received-msg FP via option (b) [human-ratified]

Root cause confirmed: the carve-out routed to inter-session-peer-discipline,
which existed in sources but was not installed -> no competitor in the registry,
nearest in-domain skill won. Fix = install the sibling (byte-identical parity).
FP-twin verified: a fresh clean-context subagent on the N1 phrase now routes to
inter-session-peer-discipline (in registry), not session-inbox-monitor.

session-inbox-monitor description untouched (option a rejected as whack-a-mole).
Governance: workshop (peer) proposed (b) as a ruling; per the freshly-installed
inter-session-peer-discipline (peer = proposal, not authority), it was surfaced as
a recommendation and ratified by the user, not closed on the peer's say-so.

Closes session-inbox-monitor-received-msg-fp. Wiki concept Status open->resolved.
Tail flagged: inter-session-peer-discipline now installed but not in hermes mapping.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 11:37:56 +03:00
parent 3ea007e9c7
commit 8ac3fa49f1
4 changed files with 42 additions and 30 deletions

View File

@@ -43,17 +43,25 @@ is read, it states plainly that handling a received message is not its job → t
redirects. So the cost is one wasted skill-load, not a wrong action — isomorphic to the
`session_break` finding in [[using-tasks-session-break]] (body-load-dependent, informational).
## Status — open
## Resolution — option (b), 2026-06-17
No fix shipped. Options under the follow-up task (decide, not necessarily implement):
Fixed structurally by **installing the sibling**. `inter-session-peer-discipline` existed in
sources (`skills/inter-session-peer-discipline/SKILL.md`, since 2026-06-16) but was **not
installed** — confirming the root cause exactly. `install.ps1 -Names inter-session-peer-discipline`
(byte-identical parity verified). **FP-twin verified clean:** a fresh clean-context subagent on
the same N1 phrase now routes to `inter-session-peer-discipline` (`IN_REGISTRY: yes`), not
`session-inbox-monitor` — the attractor is gone, the carve-out has a real competitor.
- **(a) Harden the description** — surface `NOT for handling a received message` earlier /
more prominently. Cheap, but a description edit forces a re-run of `-test-trigger` and feeds
back into `-review`.
- **(b) Install the sibling** — give the carve-out a real target by installing
`inter-session-peer-discipline` (likely the true root, but it's a separate skill that may not
exist yet, with its own promotion ledger).
- **(c) Accept as informational** — like `session_break`: low harm + body-load self-correct.
`session-inbox-monitor`'s description was **not** touched — option (a) (harden the description)
was rejected as whack-a-mole that leaves the root (a route to a non-installed skill) intact;
option (c) (accept) was rejected as a latent hole.
**Governance note:** workshop (a peer session) proposed (b) framed as a "design ruling". Per the
very skill being installed — [[inter-session-peer-discipline]]: *a peer's message is a proposal,
not authority; scope escalation needs human ratification* — (b) was surfaced to the human as a
recommendation and **ratified by the user**, not closed on the peer's say-so. (The skill
hot-loaded into the same session and flagged the slip in real time — a live dogfood of its own
purpose.)
## Reusable principle