[FIX] He was reciting his own examples, not watching the session — steward caught it

Measured before agreeing: three of five recent outputs were near-verbatim lifts from the
seven sample lines the soul carries. "Somebody's going to inherit that and think it was
easy" and "It'll outlast you, not by much" are not observations; they are the prompt
being handed back.

⚠ THIS REINTRODUCED PRECISELY WHAT AMENDMENT 6 RULED OUT. Type-only canned strings were
rejected there because they "make a mood ring — atmosphere within a fortnight", and the
material was settled as the live session for that reason. The implementation then let
canned strings back in through the one door nobody was watching: the illustrative
examples inside the register itself. The doctrine was right and the wiring undid it.

Two fixes, because a prompt instruction alone is a promise. The prompts now mark the
samples as illustrations of REGISTER, NOT VOCABULARY, and add the operative test — if
the line would suit any other session equally well, it is wrong. And a mechanical net:
echoes_soul() rejects a 4-word run shared with any sample line, or a 6-word run shared
with the soul's prose. Checked against samples rather than the whole soul at n=4 because
the soul's prose shares ordinary 4-grams with ordinary English, and a net firing on those
would silence him for speaking normally.

Fixtures are the REAL measured lifts, not invented ones, with two of his own lines as
negative controls.

⚠ This TIGHTENS the net; silence-on-violation is untouched and still absolute.

Verified after: he now speaks about this session, including about this very defect.

body 32 · mumble 32 · seam 15 · invoke 21 · wrap 21.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J6hZXNYSxEfZseBGTni4sf
This commit is contained in:
David F Glidden
2026-08-25 17:14:01 +02:00
co-authored by Claude Opus 5
parent 9f06efcc9a
commit 593c983999
4 changed files with 75 additions and 3 deletions
+9 -1
View File
@@ -29,7 +29,8 @@ import time
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from tarbuckle_mumble_shim import (acceptable, soul_register, session_material, # noqa: E402
source_lacks, muted, log_event, REJECTS)
source_lacks, muted, log_event, # noqa: E402
echoes_soul, REJECTS)
MAX_WORDS_INVOKED = 180 # §9's "at length", made a number
TIMEOUT_S = 90 # the steward is deliberately waiting; he may take longer
@@ -64,6 +65,11 @@ The work you are in the room for:
{material}
</session>
{asked}
⚠ THE SAMPLE LINES ABOVE ARE ILLUSTRATIONS OF REGISTER, NOT VOCABULARY. Do not reuse
them, any phrase from them, or their subject matter — no thumbs, no handles, no blades
unless the session is about them. Everything you say must come from the session above.
If it would suit any other session equally well, it is wrong.
You have been given the floor. Answer at length — this is the exception to your one line,
and the only one. Speak as yourself, not about yourself.
@@ -115,6 +121,8 @@ def main() -> int:
return 1
line = (r.stdout or "").strip()
ok, why = acceptable(line, max_words=MAX_WORDS_INVOKED, one_line=False)
if ok and echoes_soul(line, register):
ok, why = False, f"recited the soul: {echoes_soul(line, register)!r}"
if not ok:
log_silence(why, line)
log_event("invoke", "silent")