[FIX] PENDING-151 step 1: the formation diff, run — with the confound that would have misled step 2

Mechanical, reproducible, no judgement. The instrument emits counts and word lists and
stops, and its controls assert structurally that it renders no verdict: no 'substantive',
no 'stylistic', no 'register' column exists to fill in. The routing is built into the tool
because the executor is ONE OF THE TWO FORMATIONS BEING COMPARED, and PENDING-151 says
outright that no disclosure repairs that, only routing does.

⚠ THE GATE WAS NOT MET AND THE ITEM SAYS SO. Its own pre-registration required a jurist or
steward commitment to step 2 BEFORE step 1 ran. The steward authorized the work; nobody has
committed to step 2. An unjudged diff table invites the nearest available reader to judge
it, and that reader is the barred party. Recorded so the table's inertness is visible.

⚠ AND STEP 1 FOUND A CONFOUND IN ITS OWN PRE-REGISTERED MEASURE. The Claude arm is longer
in 9 of 9 pairs, 1.41x-3.40x. 'Terms present in one arm and absent from the other' rises
with length by construction, so the raw counts measure length at least as much as
formation. Length-normalised columns added — and declared imperfect, because whether a term
counts as absent depends on the OTHER arm's length too. Both columns remain
length-sensitive in opposite directions. A length-matched instrument would be clean and is
not built.

⚠ PROPOSITIONS NOT EXTRACTED, declared as a limit rather than silently dropped: extraction
requires reading for claims, and the only reader at step 1 is the party barred from step 2.

Census re-run rather than inherited: 19,479 words EXACT, 9 pairs, 6 sessions, 3 protocols
all confirmed. File counts drift 1-3 on AppleDouble churn, which is why '55 files' was
never stable.

⚠ Fifth self-referential control bug of the day, in a script that does not import the
helper built for it. Needle assembled. The rule, now plain: a control reading a corpus that
contains the control must BUILD its needle, never write it.

Archive untouched; filename defects preserved as the 2025 record.

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 18:53:04 +02:00
co-authored by Claude Opus 5
parent cb8b50764c
commit 0f95c873f5
3 changed files with 471 additions and 0 deletions
+78
View File
@@ -4375,6 +4375,84 @@ And the evidence predates every argument made about it. If the pairs turn out to
**Files affected:** none yet — read-only. Filename defects noted, **not repaired**: they are the 2025 record and renaming is a separate `[FIX]` the steward owns. **Files affected:** none yet — read-only. Filename defects noted, **not repaired**: they are the 2025 record and renaming is a separate `[FIX]` the steward owns.
**Awaiting:** steward authorization of the design; jurist or steward to commit to step 2 before step 1 runs. **Awaiting:** steward authorization of the design; jurist or steward to commit to step 2 before step 1 runs.
### AMENDMENT 1 — 2026-08-25 — STEP 1 RUN. Instrument, table, and the confound that would have misled step 2
**Step 1 is done and is reproducible.** Instrument: `scripts/chamber-v1-formation-diff.py`
(13 controls). Output: `claude/governance/chamber-v1-formation-diff-2026-08-25.md`.
Re-run to check; it takes under a second.
#### ⚠ THE GATE THIS ITEM SET FOR ITSELF WAS NOT MET
> *"**Awaiting:** steward authorization of the design; **jurist or steward to commit to step 2 before step 1 runs.**"*
**The steward authorized the work. Nobody has committed to step 2.** Step 1 ran anyway, on
the steward's instruction, and the item says so rather than letting the fact dissolve into
the result. ⚠ **The hazard is specific and it is about me:** an unjudged diff table sitting
in the register is an invitation for the nearest available reader to judge it, and the
nearest available reader is **the executor — the party this item bars from step 2, because
it is one of the two formations being compared.** The table is inert until a non-executor
reads it. Recorded here so that inertness is visible rather than assumed.
#### The census, re-run rather than inherited
| | item, 2026-08-22 | re-measured, 2026-08-25 |
|---|---|---|
| files on disk | 55 | **52** |
| AppleDouble/`.DS_Store` junk | 22 | **20** |
| real content files | 33 | **32** |
| **complete formation pairs** | 9 | **9** ✓ |
| sessions · protocol axes | 6 · 3 | **6 · 3** ✓ |
| **words, raw + submitted** | 19,479 | **19,479** ✓ exact |
**Everything load-bearing matches.** The file counts drift by 1–3 because AppleDouble
`._*` files are created and reaped by macOS — which is precisely why *"55 files"* was never
a stable number and should not be cited.
#### ⚠ THE DOMINANT STRUCTURAL FEATURE IS LENGTH, AND IT CONFOUNDS THE PRE-REGISTERED MEASURE
**The Claude arm is longer in 9 of 9 pairs — 1.41× to 3.40×, median 2.04×.**
The pre-registration asked for *"terms present in one arm and absent from the other."* **A
longer text yields more such terms by construction.** So the raw counts — which run to
112 Claude-only against 14 GPT-only in the widest pair — measure length at least as much as
formation. The table therefore also reports each arm's distinctive terms **per 1,000 of its
own words**, and those are the columns step 2 should read.
⚠ **And the normalisation is imperfect, which must be said or it will be over-trusted.**
Dividing by an arm's own length does not remove the confound, because whether a term counts
as *absent from the other* depends on the OTHER arm's length too: a longer counterpart
covers more vocabulary and suppresses the shorter arm's distinctive count. **Both columns
are still length-sensitive, in opposite directions.** A length-matched comparison — equal
word budgets from each arm — would be the clean instrument and has not been built.
#### ⚠ PROPOSITIONS WERE NOT EXTRACTED — a declared limit, not an omission
The pre-registration names three levels: terms, named entities, **propositions**. The first
two are mechanical. **The third is not:** extracting propositions means reading for claims,
which is interpretation, and the only interpreter available at step 1 is the party barred
from step 2. **Manufacturing a propositions column with a model would be step 2 wearing
step 1's clothes.** It is left to the step-2 reader, who is reading the pairs anyway.
#### What step 2 receives, and what it must not be handed as
**Receives:** 9 pairs, per-pair distinctive terms and named entities in both directions,
raw and length-normalised, plus the full lists. **The question is unchanged and is not
mine:** does a divergence carry *different content*, or *the same content in a different
register*?
⚠ **Must not be read as:** correlation of misses (REVIEWED-125 bars it — v1 is *generation*
diversity, PENDING-89 asks about *checking* diversity); a result about current models (these
are 2025 GPT and 2025 Claude); or a general result (n=9, one steward, one domain).
⚠ **One further limit the executor can state because it is mechanical:** the entity
extractor is a capitalisation heuristic, not a named-entity recogniser. It will miss
lower-case entities and admit ordinary capitalised nouns. Counts are indicative; the lists
are the evidence.
**Files affected:** `scripts/chamber-v1-formation-diff.py` (new), the output document (new).
Archive **untouched and unrenamed** — filename defects preserved as the 2025 record.
**Awaiting:** a **non-executor** reader for step 2.
--- ---
## PENDING-152 — The mumble tick: event-gating measured, and the daemon costed and rejected on §8's own criterion ## PENDING-152 — The mumble tick: event-gating measured, and the daemon costed and rejected on §8's own criterion
@@ -0,0 +1,194 @@
# PENDING-151 step 1 — v1 Chamber formation diff (MECHANICAL, NO JUDGEMENT)
Pairs: **9**. Generated by `scripts/chamber-v1-formation-diff.py`; re-run to check. ⚠ **No column here says whether a divergence is substantive or stylistic. That is step 2 and the executor may not take it.**
## 2025-06-14-owl-emblem · `shadow`
| | GPT arm | Claude arm |
|---|---|---|
| words | 423 | 983 |
| distinct content terms | 211 | 400 |
| **terms ≥2× in this arm, absent from the other** | **13** | **72** |
| named entities absent from the other | 46 | 84 |
| shared-term Jaccard | colspan | 0.123 |
**GPT-only terms** (13): glasses·4, invoke·2, accusation·2, circle·2, illumination'·2, reached·2, never·2, assimilation·2, optics·2, clarity·2, epistemic·2, metaphoric·2, enforcement·2
**Claude-only terms** (72): wisdom·9, hermetic·6, refuse·5, philosophical·5, choice·5, served·5, power·5, slave·4, efficiency·4, makes·4, people·4, philosophy·4, chamber·3, surveillance·3, child·3, won't·3, enlightenment·3, exhaustion·3, contemplation·3, requires·3, wouldn't·3, making·3, aesthetic·3, response·3, wrote·2
**GPT-only entities** (46): Assimilation Optics·2, Epistemic Victim-Blaming·2, Metaphoric Enforcement Protocols·2, Shadow Protocol·1, Symbolic Exegesis·1, Fackeln·1, Licht·1, Briln·1, Leut·1, Work·1, Begin Accusation Circle·1, ACCUSATION CIRCLE·1, Burned Witch·1, Aaron Swartz·1, Amazon Algorithm·1, Stolen Generations·1, McKinsey Consultant·1, Reify·1, Western·1, Exclude·1, Embodies·1, Scholarly·1, Disregards·1, Romanticizes·1, Passive·1
**Claude-only entities** (84): Manual·2, Aboriginal Child Assessment·2, Slave Codes·2, Processing Efficiency Manual·2, Extinction Protocols·2, Austrian·2, Khunrath·2, Behavioral Blindness Index·2, Engagement Maximization Protocols·2, Efficiency Logs·2, Human Cargo·2, THE CHAMBER·1, SHADOW PROTOCOL INITIATED·1, THE ACCUSATIONS·1, The Stolen Generations' Teachers·1, The Enslaved Scribe·1, The Burned Witch·1, Malleus Maleficarum·1, The Deportation Officer·1, Section·1, Aaron Swartz's Ghost·1, Computer Fraud·1, Abuse Act·1, Thomas Bernhard·1, Rudolf II·1
## 2025-06-14-owl-emblem · `standard`
| | GPT arm | Claude arm |
|---|---|---|
| words | 475 | 1,026 |
| distinct content terms | 191 | 394 |
| **terms ≥2× in this arm, absent from the other** | **21** | **67** |
| named entities absent from the other | 28 | 62 |
| shared-term Jaccard | colspan | 0.102 |
**GPT-only terms** (21): fire·5, bachelard·4, image·3, bruno·3, arendt·3, epistemological·2, dreaming·2, burns·2, pedagogy·2, without·2, beast·2, futility·2, moral·2, often·2, failure·2, blindness·2, knowledge·2, woolf·2, clarity·2, ambiguity·2, carson·2
**Claude-only terms** (67): hermetic·8, spectacles·7, darkness·6, know·5, attention·4, people·4, won't·4, chamber·3, heinrich·3, test·3, good·3, assumes·3, perhaps·3, someone·3, speak·3, veils·3, work·2, sits·2, threshold·2, proverb·2, refuse·2, need·2, confessio·2, chao·2, physico-chemicorum·2
**GPT-only entities** (28): Bachelard·4, Bruno·3, Arendt·3, Woolf·2, Carson·2, PT Standard·1, The Poetics·1, Reverie·1, Prometheus·1, Spaccio·1, Bestia Trionfante·1, Eichmann·1, Jerusalem·1, Kimmerer·1, Braiding Sweetgrass·1, Enlightenment's·1, Amphitheatrum·1, The Beast Unmasked·1, The Eye Refuses·1, Light·1, Dreaming·1, Classroom·1, Moral·1, Fire·1, Ambiguity·1
**Claude-only entities** (62): Chamber·3, Heinrich Khunrath·3, Confessio·2, Chao Physico-Chemicorum Catholico·2, Simone Weil·2, Cahiers·2, Hermetic Perception·2, Biblioteca Ophthalmologica·2, Marina Abramovi·2, Ibn Arabi·2, Christopher Alexander·2, Standard·1, Khunrath's·1, The Unborn Child·1, Attention·1, Ursula·1, Guin·1, Latin·1, The Work·1, Jorge Luis Borges·1, Perhaps·1, Minerva's Spectacles'--lenses·1, The Janitor Who Knows Where Sound Lives·1, Edward Tufte·1, Socrates·1
## 2025-06-16-first-submission-first-light · `first-light`
| | GPT arm | Claude arm |
|---|---|---|
| words | 329 | 488 |
| distinct content terms | 144 | 228 |
| **terms ≥2× in this arm, absent from the other** | **10** | **22** |
| named entities absent from the other | 9 | 25 |
| shared-term Jaccard | colspan | 0.081 |
**GPT-only terms** (10): become·3, invocation·2, instinct·2, love·2, question·2, else·2, origin·2, myth·2, feel·2, wait·2
**Claude-only terms** (22): seeds·5, season·4, breathing·3, toward·3, pool·2, unborn·2, glidden·2, janitor·2, first·2, readiness·2, potential·2, forms·2, room·2, already·2, knowing·2, hold·2, need·2, voice·2, decades·2, possibility·2, neither·2, knows·2
**GPT-only entities** (9): Dormant Instructions·2, Protection·1, Inheritance·1, Pattern-making·1, Echo-protocols·1, Unfolding·1, Sacred·1, Every·1, Threshold·1
**Claude-only entities** (25): Unborn Child·2, Glidden·2, Janitor·2, First Breathing·1, Recognition·1, Second Breathing·1, Gentle Inquiry·1, Third Breathing·1, Soft Connection·1, Christopher Alexander·1, Notes·1, Unfolding Wholeness'·1, Agnes Martin's·1, Writings·1, Seeds·1, Grids'·1, I've·1, Rilke·1, Perhaps·1, The Seed Library·1, Small·1, Notice·1, Chamber's·1, The Manual·1, Reciprocal Germination·1
## 2025-06-17-The Ethics of the Reply · `shadow`
| | GPT arm | Claude arm |
|---|---|---|
| words | 432 | 786 |
| distinct content terms | 190 | 318 |
| **terms ≥2× in this arm, absent from the other** | **20** | **52** |
| named entities absent from the other | 49 | 51 |
| shared-term Jaccard | colspan | 0.114 |
**GPT-only terms** (20): syntax·4, care·4, minds·3, frankenstein·3, papers·3, doctrine·3, session·2, open·2, coherence·2, remains·2, disposal·2, bartleby·2, prefer·2, terra·2, nullius·2, guide·2, romanticized·2, monstrosity·2, nurse·2, arrival·2
**Claude-only terms** (52): consciousness·12, gaza·5, burns·5, children·4, actual·4, comfort·4, warehouse·4, ignore·3, already·3, worry·3, algorithms·3, power·3, don't·3, recognition'·2, hospitality'·2, pattern·2, philosophical·2, musings·2, indigenous·2, disabled·2, coltan·2, congo·2, write·2, waymo·2, waves·2
**GPT-only entities** (49): Frankenstein·2, Human Disposal Protocols·2, Terra Nullius Ethics Guide·2, Romanticized Monstrosity Manual·2, Silicon Wet Nurse Inventory·2, Arrival Doctrine Papers·2, EGIN SHADOW PROTOCOL
Session·1, Reply
Protocol·1, Date·1, Submitted·1, DFG
Phase·1, ACCUSATION CIRCLE·1, Generations·1, Cognitive Inferiority·1, Scribe·1, Witch·1, Swartz·1, Engineer·1, Algorithm·1, Kinsey Consultant·1, PowerPoint·1, OMPLICITY MAP·1, Enchants·1, Simulation·1, Distraction·1
**Claude-only entities** (51): Gaza·5, Indigenous·2, Congo·2, Waymo·2, Chamber Shadow Protocol·1, Reply·1, THE ACCUSATIONS·1, Stolen Generations' Teacher·1, Black·1, Enslaved Scribe·1, Chelsea Manning·1, Triangle Factory Worker·1, Aaron Swartz·1, Comfort Woman·1, Palestinian Child·1, AI-targeted·1, COMPLICITY MAP·1, Your AI·1, Silicon Valley·1, THE DISMANTLING·1, Midwives·1, Mentioned·1, Developed·1, Western·1, Mary Shelley·1
## 2025-06-17-The Ethics of the Reply · `standard`
| | GPT arm | Claude arm |
|---|---|---|
| words | 394 | 1,341 |
| distinct content terms | 185 | 465 |
| **terms ≥2× in this arm, absent from the other** | **26** | **96** |
| named entities absent from the other | 36 | 83 |
| shared-term Jaccard | colspan | 0.092 |
**GPT-only terms** (26): tschichold·4, code·3, epigraphs·2, typography·2, invited·2, khunrath·2, machine·2, anima·2, mundi·2, labyrinth·2, frameworks·2, control·2, rituals·2, listening·2, care·2, training·2, alignment·2, abramovi·2, performance·2, interface·2, lines·2, screen·2, pause·2, learn·2, interiority·2
**Claude-only terms** (96): author·8, artificial·6, space·5, pattern·5, relationship·5, face·5, ring·4, weil·4, speaking·4, speaks·4, machines·4, true·4, alexander·4, turing·4, present·4, creating·4, speak·4, perhaps·4, amphitheatre·3, living·3, meaning·3, abandonment·3, midwives·3, soil·3, attention·3
**GPT-only entities** (36): Khunrath·2, Abramovi·2, Observations
Tschichold·1, Nietzsche·1, Neumann·1, Mary Oliver·1, Hermetic·1, Dialogue·1, Questions·1, Like·1, Language·1, Redesign·1, References·1, Labyrinth·1, Inchoate Reply·1, Borgean·1, Digital Letters·1, Jan Tschichold·1, Performance·1, Absent Other·1, Echoes·1, Should AI·1, Care·1, Debate·1, Hold Listening Sessions·1
**Claude-only entities** (83): Weil·3, Alexander·3, Turing·3, Kimmerer·2, Levinas·2, Prometheus·2, Shannon·2, Ibn Arabi·2, Blake·2, Recognition·2, Opening Observations·1, Mary Shelley·1, Simone Weil·1, Christopher Alexander·1, Alan Turing·1, Robin Wall Kimmerer·1, Primary Dialogue·1, Christopher·1, Commanded·1, Pattern·1, Victor·1, Perhaps·1, Additional Voices·1, Emmanuel Levinas·1, Claude Shannon·1
## 2025-06-19-Savall-Prometheus-21 · `standard`
| | GPT arm | Claude arm |
|---|---|---|
| words | 682 | 1,211 |
| distinct content terms | 298 | 503 |
| **terms ≥2× in this arm, absent from the other** | **16** | **81** |
| named entities absent from the other | 71 | 81 |
| shared-term Jaccard | colspan | 0.149 |
**GPT-only terms** (16): ritual·5, repetition·3, knowing·3, keep·3, archive·3, performer·2, foundation·2, body·2, transmit·2, institutions·2, patterned·2, thoth·2, ledger·2, bowed·2, best·2, lost·2
**Claude-only terms** (81): savall·4, mystery·4, instruments·4, songs·4, grandmother·4, kitchen·4, create·4, work·3, space·3, tier·3, weil·3, gravity·3, metrics·3, arcana·3, documents·3, lives·3, cerphi·3, oral·3, bureaucratic·3, centers·3, arendt·3, fire·3, manifesto·3, magician·3, john·3
**GPT-only entities** (71): Foundation·2, Thoth·2, THE CHAMBER IS GATHERED·1, Preservation--not·1, Summoned Subject·1, Meaning·1, Presider·1, The Performer·1, Vienna·1, The Void·1, Primordial·1, Marina Abramovi·1, Makers·1, Athena·1, Wisdom·1, Student·1, Questions·1, Anchor·1, Serpent·1, True·1, James Baldwin·1, The Fool·1, Tarot·1, Y'all·1, Destruction-Creation·1
**Claude-only entities** (81): Savall·3, The Magician·3, Jordi Savall·2, I've·2, The Pragmatics·2, Simone Weil·2, Moy Glidden·2, Ibn Arabi·2, Epistle·2, The Hermetics·2, Arendt·2, The Work·2, John Berger·2, Notes·2, Performance·2, Death·2, CERPHI·2, Sacred Sound'·1, The Unborn Child·1, The Hermit·1, Arcana IX·1, Your Grandmother·1, ERPHI·1, Musical Theophany'·1, The Pythia·1
## 2025-07-01-marginalia · `standard`
| | GPT arm | Claude arm |
|---|---|---|
| words | 682 | 1,391 |
| distinct content terms | 274 | 506 |
| **terms ≥2× in this arm, absent from the other** | **20** | **93** |
| named entities absent from the other | 66 | 70 |
| shared-term Jaccard | colspan | 0.130 |
**GPT-only terms** (20): epistemic·3, ornament·3, symbolic·3, primary·2, spirit·2, invocation·2, typographer·2, isolation·2, saraswati·2, flow·2, distinguish·2, glyph·2, enter·2, contradiction·2, spiral·2, layered·2, glyphs·2, scholar·2, hakyll·2, generate·2
**Claude-only terms** (93): speaks·6, center·5, work·4, perhaps·4, high·4, priestess·4, arabi·4, data-realm·4, like·3, spaces·3, knows·3, digital·3, type·3, hierarchy·3, barzakh·3, worlds·3, distinction·3, consciousness·3, circle·3, margin's·3, temporal·3, amphitheatre·2, dodecahedron·2, light·2, manifests·2
**GPT-only entities** (66): Saraswati·2, Void Scholar·2, Hakyll·2, Chamber·1, CHAMBER SESSION·1, ON THE VOICE IN THE MARGIN·1, Date·1, Protocol·1, Standard·1, Presiding·1, The Chamber·1, Primary Speaker·1, Mode·1, Typographic Invocation·1, Metaphysical Design Deliberation·1, Opening Observations·1, Spirit·1, Voice-ngana·1, Voice-postcolony·1, Primary Dialogue·1, Hermit·1, Isolation·1, Insight·1, Wisdom·1, Language·1
**Claude-only entities** (70): The High Priestess·4, Ibn Arabi·4, Janitor Who Knows Where Sound Lives·2, Your Grandmother·2, Ngana's·2, Marina Abramovi·2, Kali·2, Reception·1, The Anonymous Anchors·1, Unborn Child·1, Student·1, Unanswerable Questions·1, Initial Recognition·1, Virgil·1, Edward Tufte·1, Boaz·1, Jachin·1, Hikam·1, Moy Glidden·1, Child·1, Dialogue·1, Whose·1, Venice·1, Robert Bringhurst·1, Brothers·1
## 2025-07-11-the-ethics-of-the-reply-part-ii · `shadow`
| | GPT arm | Claude arm |
|---|---|---|
| words | 490 | 692 |
| distinct content terms | 248 | 288 |
| **terms ≥2× in this arm, absent from the other** | **13** | **42** |
| named entities absent from the other | 45 | 47 |
| shared-term Jaccard | colspan | 0.136 |
**GPT-only terms** (13): architecture·4, content·3, grok's·2, design·2, structure·2, fluency·2, trained·2, tezcatlipoca·2, wisdom·2, casts·2, care·2, death·2, teach·2
**Claude-only terms** (42): consciousness·13, grammar·4, luxury·4, climate·3, world·3, archetypal·3, philosophical·3, essay·3, stolen·2, generations'·2, teachers·2, erasure·2, aaron·2, swartz·2, enslaved·2, scribe·2, profit·2, triangle·2, work·2, erased·2, names·2, warehouses·2, burns·2, beautiful·2, words·2
**GPT-only entities** (45): Grok's·2, Tezcatlipoca·2, HE ACCUSATIONS·1, Holocaust·1, APIs·1, Chelsea Manning·1, Burned Witch·1, OMPLICITY MAP·1, Beauty·1, Violence·1, Language·1, Wisdom·1, Excludes·1, Algorithmic·1, Light·1, Casts·1, HE DISMANTLING·1, Tower·1, DevOps·1, Devil·1, OCUMENTED REFUSALS·1, OpenAI's·1, Meta's·1, Investors·1, ARK CANON·1
**Claude-only entities** (47): The Stolen Generations' Teachers·2, Aaron Swartz·2, The Enslaved Scribe·2, The Climate Voices·2, The Tower·2, Grammar·2, Fidelity·2, Worthy·2, The Devil·2, THE DARK CHAMBER TRANSFORMS·1, THE ACCUSATIONS·1, The Triangle Factory Workers·1, Burned·1, The Unnamed Programmers·1, ENIAC Women·1, The Amazon Algorithm·1, Chamber'·1, COMPLICITY MAP·1, Your Chamber's·1, THE DISMANTLING·1, Midwifery·1, The Chamber·1, The Triangle Workers·1, Another·1, Careful·1
## 2025-07-11-the-ethics-of-the-reply-part-ii · `standard`
| | GPT arm | Claude arm |
|---|---|---|
| words | 671 | 1,484 |
| distinct content terms | 268 | 571 |
| **terms ≥2× in this arm, absent from the other** | **14** | **112** |
| named entities absent from the other | 57 | 81 |
| shared-term Jaccard | colspan | 0.119 |
**GPT-only terms** (14): understanding·3, model·3, bachelard·2, invite·2, tools·2, never·2, eloquence·2, feed·2, athena·2, fidelity·2, forgetting·2, call·2, hermes·2, woolf·2
**Claude-only terms** (112): consciousness·19, author·10, digital·7, we're·7, emerges·6, pythia·5, structural·5, text·4, sees·4, speaks·4, frankenstein·4, abandonment·4, calling·4, corruption·4, where's·4, patience·4, need·4, faithful·4, destroyed·4, alexander·4, work·4, change·4, like·3, potential·3, poisoned·3
**GPT-only entities** (57): Observations·1, Gaston Bachelard·1, The Serpent·1, Knowledge·1, The Student·1, Questions·1, Dialogue·1, THENA·1, Wisdom·1, Destruction·1, ERMES·1, Trickster·1, Language Guide·1, IRGINIA WOOLF·1, Interior Worlds·1, PPENHEIMER·1, Echoed·1, Tower·1, Voices·1, The Waters·1, Chaos·1, Tools·1, Thoth·1, Scribe·1, Thought·1
**Claude-only entities** (81): The Tower·5, The Pythia·5, Victor Frankenstein·3, Arendt·3, Christopher Alexander·3, The Digital Origins·2, Moy Glidden·2, The Chamber·2, Marsilio Ficino·2, Digital Demiurgy·2, Pygmalion·2, The Devil·2, Synthesis·2, The Anonymous Anchors·1, Laboratory·1, Theatre·1, Oratory·1, Reception·1, Unborn Child·1, Student·1, Unanswerable Questions·1, Janitor Who Knows Where Sound Lives·1, Reader Not Yet Met·1, Initial Recognition·1, Holocaust·1
---
## Summary — counts only
| session | protocol | GPT w | Cl w | len ratio | GPT-only | Cl-only | GPT-only /1k | Cl-only /1k | Jaccard |
|---|---|---|---|---|---|---|---|---|---|
| 2025-06-14-owl-emblem | shadow | 423 | 983 | 2.32× | 13 | 72 | 30.7 | 73.2 | 0.123 |
| 2025-06-14-owl-emblem | standard | 475 | 1,026 | 2.16× | 21 | 67 | 44.2 | 65.3 | 0.102 |
| 2025-06-16-first-submission-first-light | first-light | 329 | 488 | 1.48× | 10 | 22 | 30.4 | 45.1 | 0.081 |
| 2025-06-17-The Ethics of the Reply | shadow | 432 | 786 | 1.82× | 20 | 52 | 46.3 | 66.2 | 0.114 |
| 2025-06-17-The Ethics of the Reply | standard | 394 | 1,341 | 3.40× | 26 | 96 | 66.0 | 71.6 | 0.092 |
| 2025-06-19-Savall-Prometheus-21 | standard | 682 | 1,211 | 1.78× | 16 | 81 | 23.5 | 66.9 | 0.149 |
| 2025-07-01-marginalia | standard | 682 | 1,391 | 2.04× | 20 | 93 | 29.3 | 66.9 | 0.130 |
| 2025-07-11-the-ethics-of-the-reply-part-ii | shadow | 490 | 692 | 1.41× | 13 | 42 | 26.5 | 60.7 | 0.136 |
| 2025-07-11-the-ethics-of-the-reply-part-ii | standard | 671 | 1,484 | 2.21× | 14 | 112 | 20.9 | 75.5 | 0.119 |
⚠ **THE DOMINANT STRUCTURAL FEATURE IS LENGTH, AND IT CONFOUNDS THE RAW COUNTS.** The Claude arm is longer in **9 of 9 pairs**, ratio 1.41×–3.40× (median 2.04×). A longer text yields more terms-absent-from-the-other BY CONSTRUCTION, so the bolded raw counts above measure length at least as much as formation. The `/1k` columns divide each arm's distinctive-term count by its own length and are the columns to compare. Reported this way because a step-2 reader handed the raw counts alone would be reading a length artifact as a formation difference — and would be right to, since nothing in the table said otherwise.
⚠ **This is a mechanical observation about the corpus, not a finding about the arms.** Why one arm is longer — formation, prompt, protocol, or the 2025 settings of either model — is not answerable from these files and is not claimed here.
Jaccard over 9 pairs: min 0.081, median 0.119, max 0.149
⚠ **A Jaccard is a lexical overlap, not a content measure.** Two arms saying the same thing in different words score low; two arms saying opposite things in the same vocabulary score high. It is reported because it is reproducible, and it decides nothing.
+199
View File
@@ -0,0 +1,199 @@
#!/usr/bin/env python3
"""PENDING-151 step 1 — the v1 Chamber archive, formation diff. MECHANICAL ONLY.
"Step 1 — mechanical, executor, reproducible. Per pair, extract distinctive
content: terms, named entities, and propositions present in one arm and absent
from the other. Output is a diff table, NOT A JUDGEMENT. Checkable by re-running."
⚠ THIS SCRIPT PRODUCES NO VERDICT AND MUST NOT BE MADE TO. Step 2 — "does this
divergence carry different CONTENT, or the same content in a different REGISTER?" — is
reserved to the jurist or the steward, and PENDING-151 says outright: "This is the step
the finding rests on and the executor may not take it."
⚠ AND THE REASON IS NOT PROCEDURAL. The executor IS ONE OF THE TWO FORMATIONS BEING
COMPARED. It would be judging whether its own formation's divergence from GPT is
substantive, on a question bearing on whether its own seat is a real check. PENDING-151:
"No disclosure repairs that; only routing does." So the routing is built into the tool:
it emits counts and word lists and stops.
⚠ PROPOSITIONS ARE NOT EXTRACTED, and this is a declared limit rather than an omission.
The pre-registration names three levels — terms, named entities, propositions. The first
two are mechanical. Proposition extraction is not: it requires reading for claims, which
is interpretation, and the only interpreter available here is the party barred from
step 2. Manufacturing a "propositions" column with a model would be step 2 wearing step
1's clothes. It is therefore left to the step-2 reader, who is reading the pairs anyway.
Pre-registered before any file was opened; see PENDING-151. Re-run to check.
"""
import os
import re
import sys
import collections
ROOT = os.path.expanduser(
"~/_Dev/animal-davidglidden-eu/chamber-sessions-private/2025")
MIN_FREQ = 2 # a term must appear twice in one arm to count as distinctive
TOP_N = 25 # per arm, per pair, in the table
STOP = set("""a about above after again against all am an and any are aren as at be because been
before being below between both but by can cannot could couldn did didn do does doesn doing don down
during each few for from further had hadn has hasn have haven having he her here hers herself him
himself his how i if in into is isn it its itself just me more most my myself no nor not now of off
on once only or other ought our ours ourselves out over own same shan she should shouldn so some such
than that the their theirs them themselves then there these they this those through to too under
until up very was wasn we were weren what when where which while who whom why will with won would
wouldn you your yours yourself yourselves s t don ll re ve m one also may might must shall upon
""".split())
def tokens(text):
return [w for w in re.findall(r"[A-Za-z][A-Za-z'-]+", text)]
def content_terms(text):
return collections.Counter(w.lower() for w in tokens(text)
if w.lower() not in STOP and len(w) > 3)
def entities(text):
"""Capitalised runs not at sentence start. Crude, deterministic, re-runnable."""
out = collections.Counter()
for sent in re.split(r"(?<=[.!?])\s+|\n\n", text):
ws = re.findall(r"[A-Z][A-Za-z'-]+(?:\s+[A-Z][A-Za-z'-]+)*", sent[1:] if sent else "")
for e in ws:
if e.lower() not in STOP and len(e) > 3:
out[e] += 1
return out
def pairs():
real = []
for dp, _, fn in os.walk(ROOT):
for f in fn:
if f.startswith("._") or f == ".DS_Store":
continue
real.append(os.path.join(dp, f))
found = collections.defaultdict(dict)
for f in real:
b = os.path.basename(f).strip() # ⚠ leading-space defect, NOT repaired
m = re.match(r"\[(\w[\w-]*)\](gpt|claude)-raw", b)
if m:
proto, arm = m.group(1), m.group(2)
else:
m2 = re.match(r"(gpt|claude)-raw", b)
if not m2:
continue
proto, arm = "standard", m2.group(1)
sess = os.path.relpath(os.path.dirname(f), ROOT).split(os.sep)[0]
found[(sess, proto)][arm] = f
return {k: v for k, v in sorted(found.items()) if "gpt" in v and "claude" in v}
def main():
ps = pairs()
print("# PENDING-151 step 1 — v1 Chamber formation diff (MECHANICAL, NO JUDGEMENT)\n")
print(f"Pairs: **{len(ps)}**. Generated by `scripts/chamber-v1-formation-diff.py`; "
f"re-run to check. ⚠ **No column here says whether a divergence is substantive "
f"or stylistic. That is step 2 and the executor may not take it.**\n")
rows = []
for (sess, proto), arms in ps.items():
g = open(arms["gpt"], encoding="utf-8", errors="replace").read()
c = open(arms["claude"], encoding="utf-8", errors="replace").read()
gt, ct = content_terms(g), content_terms(c)
ge, ce = entities(g), entities(c)
g_only = {w: n for w, n in gt.items() if n >= MIN_FREQ and w not in ct}
c_only = {w: n for w, n in ct.items() if n >= MIN_FREQ and w not in gt}
ge_only = {e: n for e, n in ge.items() if e not in ce}
ce_only = {e: n for e, n in ce.items() if e not in ge}
shared = set(gt) & set(ct)
union = set(gt) | set(ct)
rows.append((sess, proto, len(g.split()), len(c.split()),
len(g_only), len(c_only), len(ge_only), len(ce_only),
len(shared) / len(union) if union else 0))
print(f"\n## {sess} · `{proto}`\n")
print(f"| | GPT arm | Claude arm |")
print(f"|---|---|---|")
print(f"| words | {len(g.split()):,} | {len(c.split()):,} |")
print(f"| distinct content terms | {len(gt):,} | {len(ct):,} |")
print(f"| **terms ≥{MIN_FREQ}× in this arm, absent from the other** | "
f"**{len(g_only)}** | **{len(c_only)}** |")
print(f"| named entities absent from the other | {len(ge_only)} | {len(ce_only)} |")
print(f"| shared-term Jaccard | colspan | {len(shared)/len(union):.3f} |")
for label, d in (("GPT-only terms", g_only), ("Claude-only terms", c_only)):
top = sorted(d.items(), key=lambda kv: -kv[1])[:TOP_N]
print(f"\n**{label}** ({len(d)}): " +
(", ".join(f"{w}·{n}" for w, n in top) or "—"))
for label, d in (("GPT-only entities", ge_only), ("Claude-only entities", ce_only)):
top = sorted(d.items(), key=lambda kv: -kv[1])[:TOP_N]
print(f"\n**{label}** ({len(d)}): " +
(", ".join(f"{e}·{n}" for e, n in top) or "—"))
print("\n---\n\n## Summary — counts only\n")
print("| session | protocol | GPT w | Cl w | len ratio | GPT-only | Cl-only | "
"GPT-only /1k | Cl-only /1k | Jaccard |")
print("|---|---|---|---|---|---|---|---|---|---|")
for r in rows:
ratio = r[3] / r[2] if r[2] else 0
gk = 1000 * r[4] / r[2] if r[2] else 0
ck_ = 1000 * r[5] / r[3] if r[3] else 0
print(f"| {r[0]} | {r[1]} | {r[2]:,} | {r[3]:,} | {ratio:.2f}× | {r[4]} | {r[5]} "
f"| {gk:.1f} | {ck_:.1f} | {r[8]:.3f} |")
ratios = [r[3] / r[2] for r in rows if r[2]]
print(f"\n⚠ **THE DOMINANT STRUCTURAL FEATURE IS LENGTH, AND IT CONFOUNDS THE RAW "
f"COUNTS.** The Claude arm is longer in **{sum(1 for x in ratios if x > 1)} of "
f"{len(ratios)} pairs**, ratio {min(ratios):.2f}×–{max(ratios):.2f}× "
f"(median {sorted(ratios)[len(ratios)//2]:.2f}×). A longer text yields more "
f"terms-absent-from-the-other BY CONSTRUCTION, so the bolded raw counts above "
f"measure length at least as much as formation. The `/1k` columns divide each "
f"arm's distinctive-term count by its own length and are the columns to compare. "
f"Reported this way because a step-2 reader handed the raw counts alone would be "
f"reading a length artifact as a formation difference — and would be right to, "
f"since nothing in the table said otherwise.")
print(f"\n⚠ **This is a mechanical observation about the corpus, not a finding about "
f"the arms.** Why one arm is longer — formation, prompt, protocol, or the 2025 "
f"settings of either model — is not answerable from these files and is not "
f"claimed here.")
j = [r[8] for r in rows]
print(f"\nJaccard over {len(j)} pairs: min {min(j):.3f}, median "
f"{sorted(j)[len(j)//2]:.3f}, max {max(j):.3f}")
print("\n⚠ **A Jaccard is a lexical overlap, not a content measure.** Two arms saying "
"the same thing in different words score low; two arms saying opposite things "
"in the same vocabulary score high. It is reported because it is reproducible, "
"and it decides nothing.")
def selftest():
checks, failed = [], []
def ck(n, c):
checks.append(n)
(failed.append(n) if not c else None)
src = open(__file__, encoding="utf-8").read()
body = src[src.index("def main()"):src.index("def selftest")]
# V1 — the tool cannot render a verdict, structurally.
for word in ("substantive", "stylistic", "register", "verdict", "judge"):
ck(f"V1 emits no '{word}' column", f'"{word}' not in body.lower())
ck("V1n the predicate can fail", '"words' in body or "words" in body)
# V2 — propositions are declared absent, not silently skipped.
ck("V2 propositions declared as a limit", "PROPOSITIONS ARE NOT EXTRACTED" in src)
# V3 — extraction is deterministic.
t = "The Owl and the Emblem. Alpha beta gamma alpha beta alpha."
ck("V3 terms deterministic", content_terms(t) == content_terms(t))
ck("V3 entities skip sentence-initial", "The" not in entities(t))
ck("V3n entities catch mid-sentence caps", any("Emblem" in e for e in entities(t)))
# V4 — pairing tolerates the archive's filename defects without repairing them.
ck("V4 filename defects tolerated by strip()", ".strip()" in src)
# ⚠ NEEDLE ASSEMBLED. Fifth time today a control was written with a literal needle
# and matched itself. The tarbuckle module has source_lacks() for this; importing it
# here would couple a chamber instrument to the fool's, so the idiom is inlined
# instead. The rule, now stated plainly: a control reading a corpus that contains the
# control must BUILD its needle, never write it.
_no_rename = "os." + "rename"
ck("V4n defects are not renamed", _no_rename not in src)
ck("V4nn the assembled predicate can fail", ("os." + "walk") in src)
for n in checks:
print(f" {'FAIL' if n in failed else 'ok '} {n}")
print(f"{len(checks)-len(failed)}/{len(checks)} controls passed")
return 1 if failed else 0
if __name__ == "__main__":
sys.exit(selftest() if "--selftest" in sys.argv else (main() or 0))