CleanstoneDevelopmental and independent evidence for machine minds.

Notebook

Every dated log entry across lines, newest first.

write-up sent to the authors

2026-10-30 · trees/01-a-ledger

Sent the email in outreach/levin-email-draft.md to Michael Levin, with a link to the public copy of the write-up, marked as a draft awaiting his response. Waiting to hear back. The draft's notes say to copy the lab's general enquiries address if there is no reply in two weeks.

Next: wait for Levin's reply; fold any correction into the write-up and log it here.

reading list and checklist

2026-10-30 · trees/02-g-theory

Wrote reading.md, one section per source with page references, stating for each what was read in full, in part or as an abstract only, and checklist.md, section 7 as a 13-row table, each row tied to the Tree A result that motivated it. Rows 3, 6 and 8 are new, from Tree A failures.

The reading contradicted the plan in four places, all corrected. Birch's manifesto (version 1) has no biology-independent programme; that phrase came from a secondary post and had spread to Review.md, research-plan.md and the notes (Q3). Constructor theory gives no effort measure, so Q2 is settled and section 3 is a paragraph. Neither constructor theory nor Dodig-Crnkovic supports "enablements" as a category separate from constraints. Dodig-Crnkovic II is agnostic about the realm; it argues the realm is not needed. And draft-accounting.md's zero-residual claim needed its conditions stated. The CMEP/Eleos quote in PREMISE.md checks out (p. 38). Levin's comparison with Cognitive Platonism, marked "not located" in the notes, is his blog post of 2026-08-26. Next: full draft of the position paper.

analysis tooling

2026-10-30 · spine/01-developmental-checkpoints

Wrote atlas.py, standard library only: the 20-step grid checked against Pythia's published 154 checkpoints, a deterministic logistic probe with a shuffled-label null as the reference implementation, the three pre-registered analysis questions (above null at step 0; tracks loss beyond step; change-point on log step with the batch range before it), and the TSV format the GPU box will export. Self-test on synthetic data, 4 s: a kink at step 2000 is recovered at 2000, flat and smooth series give none, the probe beats its null on separable data (0.917, p = 0.010) and not on label noise (0.542, p = 0.270). The loss control gave 5 false positives in 40 null draws at 0.05; opened as Q5. tooling.md lists the GPU-side pieces still to write. just test now runs every self-test in trees/ and spine/; it had been failing since exp05 was added without one, which is fixed too. Next: Q5; GPU-side tooling.

R1 method reconstruction

2026-10-30 · spine/02-open-replication

Wrote method-r1.md from the workspace paper, the data behind its figures, the authors' reference code and the Eleos commentary. Three things changed the plan. The code exists (github.com/anthropics/jacobian-lens, Apache-2.0) for lens fitting and readout, and Neuronpedia hosts fitted lenses for open models, so step 1 is partly done for us and gives a cross-check. Our plan described the J-space wrongly: it is sparse nonnegative combinations of per-token lens vectors, not top singular directions of a logit Jacobian. And the paper sets no pass criteria. The text leaves 39 choices open, from the target layer to how ablations pick their directions; the code settles a few and contradicts the text on a few others. Rough cost of fitting a lens at 8B: 4 to 15 H100-hours, estimated from FLOPs, not measured. All models in the paper are Claude. Next: email the gaps to the authors; pre-registration with our thresholds.

first pairing corrected, proposal and emails drafted

2026-10-30 · spine/03-adversarial-registry

Reading both camps' papers before writing the proposal showed the 2026-09-30 pairing was wrong. Berg, de Lucena, Rosenblatt (arXiv 2510.24797) study experience reports under self-referential prompting, mostly on GPT, Claude and Gemini; they make no claim about naming injected concepts. The open-weight claim that Lederman and Mahowald dispute is Pearson-Vogel, Vanek, Douglas, Kulveit (arXiv 2602.20031): with the injection removed before the question, Qwen2.5-Coder-32B-Instruct yields up to 1.36 bits about which of nine concepts was injected, read by logit lens at layer 62. Lederman and Mahowald (section 6.3) reply that the steering effects "may persist without being meta-cognitively recognized". Neither paper asks a non-introspective question over the same cache, so that comparison is the measurement: ΔMI, introspective minus non-introspective. Lindsey's own paper does not commit on whether naming and detecting share a mechanism, so he is asked to comment, not to take a side.

Wrote first-pairing.md (R-2026-003, executor-default thresholds 0.2 and 0.05 bits, to be replaced by the camps), the four approach emails, and entries.md with Tree A entered retroactively as R-2026-001 and R-2026-002, labelled as not meeting the protocol. Corrected plan.md and summary.md; Berg moved to the fallback list. Signatory: Elara Faro.

While checking sources, Martorell and Bianchi (arXiv 2603.18893), cited in our notes as showing self-reports track probe states, turned out to have reversed that finding in v3 ("Don't Ask"). Notes corrected. Next: protocol review against Tree G's checklist; operator sends the emails.

protocol draft 2

2026-10-30 · spine/03-adversarial-registry

Reviewed protocol.md against Tree G's new checklist. Rows 2, 5, 7, 9 and 10 were already covered. Added rows 1 (task family and counting), 3 (vary implementation choices), 4 (simplest-mechanism baseline) and 8 (medians and spread) to section 4, and a Checklist field to the entry template. Rows 6 and 11 to 13 are answered per entry, since they apply only to some claims. Next: checklist answers for R-2026-003; operator sends the emails.

planning

2026-09-30 · trees/01-a-ledger

Wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

Experiment 0.1 built and running

2026-09-30 · trees/01-a-ledger

Wrote exp01_sorting.py (stdlib, --selftest, ~400 lines). The rules follow the authors' repo, cloned for the purpose, where it differs from the paper's prose (direction-questions.md Q6). Their DG formula was in the repo and is now ported (Q1 settled). The script has incremental counters for adjacent descents, total inversions and bubble's own rule; two schedulers; movable and immovable frozen cells; and chimera runs with two label-only controls and a run-mean statistic (Q7).

Three surprises. The first reading of the insertion rule stalled under frozen cells; the authors' code skips frozen cells in the prefix check. Bubble picks a side at random, so "no swap this round" is an unreliable stop signal: a run with one remaining inversion stopped early ~1.5% of the time until the stop condition became "no bubble cell wants to move". In the smoke run (n=32, 10 seeds), Kendall DG was 0.000 for every bubble and insertion variant at every frozen count, as P2 predicts. Adjacent-metric DG was large, and present at zero frozen cells. The paper's own formula gave 0.39 for cell-view bubble at zero frozen (they report 0.24 at n=100) and rose with immovable frozen cells.

Started n=64 and n=100 runs, 100 seeds each, in the background; output goes to results/exp01-n64 and results/exp01-n100. Next: evaluate P1 to P5 from the CSVs; write the summary table here; draft the 0.1 write-up.

Experiment 0.1 results (n=64 and n=100, 100 seeds each)

2026-09-30 · trees/01-a-ledger

Full tables are in results/exp01-n64/grid.csv, results/exp01-n100/grid.csv and the chimera.csv files. The rows below are at n=100, roundrobin scheduler, immovable frozen cells. dg_paper is the authors' own formula ported verbatim; dg_ken is delayed gratification scored on total inversions.

algo, variant frozen swaps final inv dg_adj dg_ken dg_paper [95% CI] paper reports
bubble, classical 0 2506 0 6.27 0.000 0.079 [0.077, 0.081] not given
bubble, cell-view 0 2506 0 6.47 0.000 0.218 [0.215, 0.221] 0.24
bubble, cell-view 1 1676 830 4.32 0.000 0.259 [0.252, 0.266] 0.29
bubble, cell-view 2 1198 1309 3.06 0.000 0.301 [0.292, 0.312] 0.32
bubble, cell-view 3 943 1564 2.39 0.000 0.342 [0.326, 0.357] 0.37
insertion, cell-view 0 2506 0 0.46 0.000 1.057 [1.035, 1.081] 1.10
insertion, cell-view 3 943 1564 0.38 0.000 1.161 [1.129, 1.199] 1.19
selection, cell-view 0 1522 0 0.13 0.000 5.75 [4.80, 7.10] no trend

With the random-permutation scheduler, bubble cell-view dg_paper was 0.388, 0.422, 0.467 and 0.499 for 0 to 3 frozen cells.

Chimera (n=100, roundrobin), mean same-label-neighbour fraction over the run:

pair chimera control: all run first control: all run second
bubble+insertion 0.319 [0.312, 0.327] 0.244 [0.239, 0.248] 0.242 [0.233, 0.250]
bubble+selection 0.334 [0.326, 0.342] 0.244 0.248 [0.243, 0.254]
insertion+selection 0.373 [0.364, 0.381] 0.242 0.248

Predictions:

Classical top-down bubble sort scored 0.079 on the authors' formula with no frozen cells, so the statistic is non-zero for a textbook algorithm nobody calls agential. Classical and cell-view insertion were identical at every setting; when only one cell can move, "cell view" is a relabelling.

Reading: the headline competency (delayed gratification) is a metric artefact in the sense pre-registered in P2, and its reported dependence on barriers comes from the DG formula. The clustering effect is real against a label-only control. A mechanical explanation is available for it and has not been tested yet. Nothing here needed a scheduler-free explanation, and one headline number moved by 78% with the scheduler.

One surprise: our immovable-frozen condition matched the paper's series, although their published code implements only the movable kind. Either the paper's runs used a different branch, or the movable/immovable distinction matters less than the formula. To ask (outreach Q2, Q3).

Next: rate-matched chimera (bubble vs bubble-with-move-probability-p); write-up under 2,000 words; then Experiment 0.3.

Experiment 0.3, ledger calibration: run, and gate A2 reached

2026-09-30 · trees/01-a-ledger

Wrote and ran exp03_ledger.py (stdlib, --selftest, 3 s). Ring of 12, ten-step budget, 0 to 2 barriers, 6,216 reachable states. Eight systems, two competencies, three effort terms and four rules, all as pre-registered in plan.md this morning. Full table in results/exp03/ledger.csv. All quantities in bits.

system p_success C_beh E_code E_params E_train R1 R2 R3
random 0.384 2 0 0 0 2 -30 2
solver, program 1.000 8866 3352 0 0 +5514 +5514 +5514
solver, table 1.000 8866 624 4104 0 +4138 +8210 +4138
greedy, correct 0.917 6980 1264 0 0 +5716 +5716 +5716
greedy, buggy 0.903 5994 880 0 0 +5114 +5114 +5114
Q, trained (100k episodes) 0.996 5749 4344 7112 432193 -5713 -430826 -437906
Q, untrained 0.378 7 1320 13136 0 -14456 -1352 -14456
reservoir, untrained 0.178 0 672 13112 0 -13784 -704 -13784

R4 (leave-one-out fit) was dominated by the trained Q outlier (+163,893) and told us nothing, as expected. Buggy scored below correct under every rule.

The pre-registered pass criterion is |residual| below 10% of the largest E in the set. That E is the trained Q's 432k-bit training signal, so the threshold is 43k. Read literally, R1 passed on all five zero-systems, and R2, R3 and R4 failed on the trained Q. Scaled to the quantity under test instead (10% of the largest C_beh, 887 bits), nothing passed. This morning's literal threshold was misspecified. Its tolerance, 43,219 bits, is almost five times the largest competency in the set (8,866 bits), so it absorbs every residual. (Corrected 2026-10-30; this entry first said "four times".) Both readings are reported, and the decision is the operator's (direction-questions.md Q8).

Whatever the threshold:

Reading: no single accounting puts designed and trained systems on one scale. For designed systems the residual is task compressibility minus code length, a fact about the task and the programmer. For trained systems it is behaviour bits minus training-signal bits, a fact about sample efficiency. Levin's "delta between effort in and competency out" names two incommensurable quantities. The one that applies to his minimal systems is the one that cannot be priced.

No surprises relative to plan.md's expectations, and that is itself the result. The only unpredicted number was the table's positive residual, which makes the conclusion sharper.

Next: operator decision on gate A2 (Q8). Recommendation in Q8. If Tree A stops: 0.1 write-up still goes out (the sorting deflation stands on its own); the harness moves to Tree B's folder; the trained-system ledger (R2 form) moves to spine/01 as a per-checkpoint measure.

write-up drafted

2026-09-30 · trees/01-a-ledger

Drafted writeup.md. It covers 0.1 and 0.3 together, with provenance (commit ids, file hashes), both readings of the 0.3 threshold, the strongest competency reading of each result, limitations, and reproduction commands. Next: rate-matched chimera (the one control the write-up still owes); then the write-up is complete pending Q8.

Experiment 0.1b, rate-matched chimera: the clustering mechanism

2026-09-30 · trees/01-a-ledger

Wrote exp04_rate_chimera.py. It imports exp01_sorting, which gained an optional per-cell move probability; the default path is unchanged and the 0.1 self-test still passes. All cells run bubble, and label-B cells attempt a move with probability p. n = 100, 100 seeds, round robin. Pre-registered in plan.md before any code.

p mean same-label-neighbour fraction [95% CI] peak
1.0 0.244 [0.240, 0.249] 0.379
0.75 0.246 [0.242, 0.251] 0.383
0.5 0.255 [0.250, 0.259] 0.395
0.25 0.276 [0.271, 0.282] 0.414
0.1 0.294 [0.288, 0.300] 0.434
0.02 (post hoc) 0.316 [0.309, 0.322] 0.457
0.01 (post hoc) 0.320 [0.313, 0.326] 0.469

For reference, from 0.1: label-only control 0.244 [0.239, 0.248]; bubble+insertion chimera 0.319 [0.312, 0.327].

Reading: clustering by algotype is a rate effect. Two populations of identical cells that differ only in how often they take a turn cluster as much as two populations running different algorithms. The rules do not need to differ. Handing half the cells a slower clock reproduces the paper's Figure 14C. That completes the 0.1 deflation. Results are in results/exp04/ and results/exp04-exploratory/.

No surprises. The one gap (P4c) closed with the post hoc values, which are reported as post hoc.

Next: writeup.md updated (done below). Tree A now has nothing pending except the operator decision on Q8.

prose pass for authors

2026-09-30 · trees/01-a-ledger

Rewrote writeup.md in a plain register against the extended machine-tells list now in style.md (sources: Wikipedia's Signs of AI writing, the humanizer skill's pattern list, getspike's account of the causes). Facts and numbers unchanged. The hashes in section 2 now match the current scripts. The same pass covered PREMISE.md, Review.md, research-directions.md, research-plan.md and the spine summaries. The Levin email in outreach/ now carries the 0.1 result paragraph; it can go once the operator settles the sender line. Next: operator decisions (Q8; sender line). No experiment pending on this tree.

Experiment 0.1c, the authors' own code, run unmodified

2026-09-30 · trees/01-a-ledger

Wrote exp05_authors_code.py. It drives the cell classes from the authors' repository (vendored under vendor/cell_research, commit 1fd2bd59 of 2024-10-30, unmodified) with their thread-per-cell scheduling, their frozen-cell mechanism, their per-swap snapshots and their delayed-gratification function copied verbatim. Only tkinter and numpy were removed from the driver, and none of our code touches the dynamics. n = 100. Bubble ran 100 experiments per frozen count, insertion and selection 30. Their analysis takes the mean. The median and an outlier count are added because the mean turned out to rest on a few runs.

algo frozen mean of their DG [95% CI] median p25 to p75 runs above 1 max DG on total inversions final inversions
bubble 0 0.196 [0.191, 0.200] 0.195 0.182 to 0.209 0 of 100 0.24 0.000 0
bubble 1 3.38 [0.95, 6.61] 0.195 0.186 to 0.206 4 of 100 83.4 0.000 34
bubble 2 3.45 [0.92, 6.82] 0.196 0.185 to 0.213 4 of 100 86.7 0.000 96
bubble 3 3.81 [1.49, 7.44] 0.202 0.185 to 0.214 5 of 100 81.7 0.000 174
insertion 0 1.075 [1.039, 1.114] 1.067 1.000 to 1.167 22 of 30 1.34 0.000 0
insertion 3 2.12 [0.56, 5.20] 0.584 0.469 to 0.690 3 of 30 46.0 0.000 708
selection 0 3.79 [3.40, 4.23] 3.78 2.88 to 4.65 30 of 30 6.21 0.000 0

For the same conditions the paper reports bubble 0.24, 0.29, 0.32, 0.37; insertion 1.10 and 1.19; selection "no trend".

Reading:

Files: results/exp05/*_runs.json (per run), *_summary.csv, the three logs. Script sha256 (first 16 hex): exp05_authors_code.py 310ca3c513ceed5b; bubble_summary.csv 5e102eaa69798b33. The run took about 75 minutes on two cores, most of it Python threads spinning on the lock.

Next: nothing on this tree. The write-up (section 3.7) and the email carry this; the tree is closed.

planning

2026-09-30 · trees/02-g-theory

Wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

sections 2 and 4 drafted

2026-09-30 · trees/02-g-theory

Wrote draft-accounting.md, covering the accounting problem and what a positive residual would show, from Experiment 0.3. The reading list (reading.md) is not started. Next: reading.md; section 7 checklist as a standalone page (the extended machine-tells list in style.md is not it; the checklist is about claims).

planning

2026-09-30 · trees/03-b-periscopes

What: wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

planning

2026-09-30 · trees/04-c-convergence

What: wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

planning

2026-09-30 · trees/05-d-assays

What: wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

planning

2026-09-30 · trees/06-f-wetware

What: wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

planning

2026-09-30 · trees/07-e-persistence

What: wrote plan.md, summary.md, direction-questions.md and both todo files from the research survey (../../Review.md, ../../research-plan.md). Next: see todo-agent.md.

planning

2026-09-30 · spine/01-developmental-checkpoints

Wrote summary.md, plan.md, direction-questions.md and both todo files from the field survey (../../notes/ai-consciousness-field.md) and ../../research-directions.md section 2. Next: see todo-agent.md.

planning

2026-09-30 · spine/02-open-replication

Wrote summary.md, plan.md, direction-questions.md and both todo files from the field survey (../../notes/ai-consciousness-field.md) and ../../research-directions.md section 2. Next: see todo-agent.md.

planning

2026-09-30 · spine/03-adversarial-registry

Wrote summary.md, plan.md, direction-questions.md and both todo files from the field survey (../../notes/ai-consciousness-field.md) and ../../research-directions.md section 2. Next: see todo-agent.md.

protocol and template drafted

2026-09-30 · spine/03-adversarial-registry

Drafted protocol.md (eligibility, roles, sequence, measurement rules, publication, disputes) and entry-template.md. Both still need the Tree G checklist pass and an outside reader before any camp sees them. Next: first-pairing proposal, one page; approach emails in outreach/.