[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:
co-authored by
Claude Opus 5
parent
9f06efcc9a
commit
593c983999
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user