Skip to content

Commit 34f2adb

Browse files
authored
Close ECP-7 development after Batch 29 (#30)
Add the sealed Batch 29 late residual-activation result, close ECP-7 development without accessing its confirmatory test, and update the fresh-agent handoff for a new ECP-8 phase.
1 parent 57dbb20 commit 34f2adb

13 files changed

Lines changed: 466 additions & 36 deletions

‎README.md‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ The protocol uses no words or alphabet, but four meaning-free local symbols. For
2525

2626
See [`docs/results-ecp6.md`](docs/results-ecp6.md) for the conclusion, [`docs/protocol-specification-ecp6.md`](docs/protocol-specification-ecp6.md) for the wire format and [`evidence/ecp6/report.md`](evidence/ecp6/report.md) for the compact confirmatory evidence.
2727

28-
ECP-7 development now tests how much of that result depends on the explicit
29-
one-factor-per-slot architecture. Its first twenty-six sealed batches are valid
30-
development results but none passes the full gate. Batch 15 established the
28+
ECP-7 development tested how much of that result depends on the explicit
29+
one-factor-per-slot architecture. All 29 sealed batches are valid development
30+
results, but none passes the full gate. Batch 15 established the
3131
strong position-aware base: at 30,000 optimization steps it reaches 83.46% train
3232
exactness, 82.59% validation and 83.37% translator validation while using
3333
12,585–13,200 hard messages per sender. Validation and translator thresholds pass
@@ -65,8 +65,13 @@ code counts again remained unchanged and worst-link validation regressed to
6565
closed. Batch 28 added an identity-initialized generic residual sender block,
6666
but it collapsed to 9.65% validation and roughly 8,000 unique messages. Generic
6767
depth active from the start promotes memorization rather than compositional
68-
generalization. See
68+
generalization. Batch 29 activated that branch only after the exact B25
69+
trajectory; it still reduced validation to 84.74% and removed occupied codes.
70+
ECP-7 development is therefore closed after 29 variants. No confirmatory ECP-7
71+
configuration was frozen and its confirmatory split was never opened. See
6972
[`docs/development-log-ecp7.md`](docs/development-log-ecp7.md).
73+
The compact synthesis is in
74+
[`docs/ecp7-development-conclusion.md`](docs/ecp7-development-conclusion.md).
7075

7176
## Build on this work
7277

@@ -106,6 +111,7 @@ Do not translate those artifacts in place. New experiment configurations and all
106111
- [`docs/protocol-specification-ecp6.md`](docs/protocol-specification-ecp6.md) — machine code, 14-bit wire format and induction procedure.
107112
- [`docs/research-design-ecp7.md`](docs/research-design-ecp7.md) — preregistered weak-structure question, paired control and sealed split.
108113
- [`docs/development-log-ecp7.md`](docs/development-log-ecp7.md) — the first negative weak-structure batch and integrity checks.
114+
- [`docs/ecp7-development-conclusion.md`](docs/ecp7-development-conclusion.md) — sealed development synthesis and closure after 29 variants.
109115
- [`config/ecp7-development.yaml`](config/ecp7-development.yaml) — sealed weak-structure intervention configuration.
110116
- [`config/ecp7-b2-development.yaml`](config/ecp7-b2-development.yaml) — factor-agnostic soft code-utilization intervention.
111117
- [`config/ecp7-b3-development.yaml`](config/ecp7-b3-development.yaml) — the same utilization formula on straight-through hard messages.
@@ -134,6 +140,7 @@ Do not translate those artifacts in place. New experiment configurations and all
134140
- [`config/ecp7-b26-development.yaml`](config/ecp7-b26-development.yaml) — Batch 25 with one preregistered sender/receiver replay-route cycle.
135141
- [`config/ecp7-b27-development.yaml`](config/ecp7-b27-development.yaml) — Batch 25 plus one late bounded direct sender-collision pulse.
136142
- [`config/ecp7-b28-development.yaml`](config/ecp7-b28-development.yaml) — Batch 25 with one zero-initialized shared residual sender interaction.
143+
- [`config/ecp7-b29-development.yaml`](config/ecp7-b29-development.yaml) — Batch 28 with residual parameters frozen through step 30,000.
137144
- [`config/ecp7-positive-control-development.yaml`](config/ecp7-positive-control-development.yaml) — ECP-6 positive control on the ECP-7 split.
138145
- [`config/ecp0.yaml`](config/ecp0.yaml) — machine-readable configuration from step 1.
139146
- [`config/ecp1.yaml`](config/ecp1.yaml) — frozen configuration of the population trial.

‎config/ecp7-b29-development.yaml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
extends: ecp7-b28-development.yaml
2+
3+
experiment:
4+
title: ECP-7 late residual sender activation
5+
arm: late_residual_sender_activation
6+
objective: >-
7+
Test whether residual interaction capacity can split an already established
8+
shallow protocol when kept exactly zero through step 30,000, without
9+
disrupting the compositional learning trajectory from the start.
10+
11+
training:
12+
sender_residual_activation:
13+
enabled: true
14+
start_step: 30000

‎docs/AI_AGENT_START.md‎

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ python3.12 -m venv .venv
4141
.venv/bin/ecp6 --config config/ecp6.yaml validate
4242
```
4343

44-
Expected baseline: 130 passing tests and split sizes `14336/1024/1024`.
44+
Expected baseline: 133 passing tests and split sizes `14336/1024/1024`.
4545

4646
## 4. Reproduce ECP-6
4747

@@ -71,7 +71,7 @@ This reruns a known experiment. It must not be presented as a new independent co
7171

7272
## 5. Continue ECP-7 scientifically
7373

74-
Do not modify ECP-0 through ECP-6 or the completed ECP-7 Batch 1 through Batch 28
74+
Do not modify ECP-0 through ECP-6 or the completed ECP-7 Batch 1 through Batch 29
7575
configs. ECP7-B1-I collapsed to 130–139 hard messages. ECP7-B2-I improved its
7676
soft objective but collapsed further to 85–104 hard messages. ECP7-B3-I applied
7777
that loss to straight-through hard messages and improved to 585–972 messages,
@@ -166,39 +166,38 @@ prove an identical initial function and unchanged RNG state, but the trainable
166166
branch still collapsed to 53.91% train, 9.65% validation, 11.62% translator
167167
validation and only 7,928–8,333 messages. Generic sender depth active from the
168168
first update is therefore rejected. The confirmatory test remains sealed.
169+
ECP7-B29-I froze that residual branch at exact zero through step 30,000. All
170+
151 shared history records matched Batch 25, but late activation reduced the
171+
selected codebooks to 13,163, 12,960, 12,720 and 13,439 messages and worst-link
172+
validation to 81.74%. This final permitted residual test failed. ECP-7
173+
development is closed; no confirmatory configuration was frozen and the test
174+
split was never opened.
169175

170176
Continue with this sequence:
171177

172178
1. Read `docs/research-design-ecp7.md` and `docs/development-log-ecp7.md`.
173-
2. Define at most one ECP7-B29 late-activation residual intervention and its
174-
failure criterion.
175-
3. Register the variant and immutable configuration hashes before training.
176-
4. Add tests for every new invariant.
177-
5. Use only `smoke` and `develop`; keep the ECP-7 test split sealed.
178-
6. Append every attempted variant and negative result to the development log.
179-
7. Select at most one final design using train and validation only.
180-
8. Create `config/ecp7.yaml` only after a design passes its development gate.
181-
9. Freeze its UTC time, config hash, split hash, seeds and thresholds.
182-
10. Only then run those seeds once with `experiment --unseal-test`.
183-
11. Run integrity analysis and publish successes and failures.
184-
185-
## 6. Recommended next experiment
186-
187-
Batch 28 shows that identity initialization alone does not protect the shallow
188-
compositional trajectory: a residual branch trainable from step 1 rapidly
189-
becomes dominant and memorizes the training relation. Do not try another
190-
always-active generic layer, width or activation.
191-
192-
At most one ECP7-B29 residual follow-up is justified: inherit B28's exact
193-
zero-RNG representation and B25's complete training setup, freeze the residual
194-
weight and bias at zero through step 30,000, then activate only those parameters
195-
for the remaining registered horizon. The purpose is to isolate whether late
196-
representation capacity can split an already established code without
197-
relearning the compositional protocol. Predefine one activation boundary and
198-
do not combine it with collision replay, gradient-route changes, a new loss,
199-
factor-slot bindings, optimizer changes, variable-length messages or
200-
negotiation. If this also fails, close ECP-7 development rather than continue a
201-
residual schedule search.
179+
2. Read `docs/ecp7-development-conclusion.md`; do not create ECP7-B30.
180+
3. Preserve every ECP-7 configuration and the still-sealed confirmatory split.
181+
4. Define a new ECP-8 question before implementing another architecture or loss.
182+
5. Create a fresh deterministic split and preregister its development gate.
183+
6. Add tests for every new invariant.
184+
7. Use only `smoke` and `develop` until one ECP-8 design passes development.
185+
8. Freeze at most one design, its UTC time, hashes, seeds and thresholds.
186+
9. Only then permit one confirmatory `experiment --unseal-test` execution.
187+
10. Run integrity analysis and publish successes and failures.
188+
189+
## 6. Recommended next research phase
190+
191+
ECP-7 development is closed after 29 sealed variants. Do not continue a
192+
residual schedule, collision coefficient, replay route or horizon search, and
193+
do not open the unused ECP-7 confirmatory split.
194+
195+
Start ECP-8 with a separate preregistration that chooses exactly one new
196+
question. Plausible directions include learned compositional structure without
197+
fixed slots, variable-length coding efficiency, interactive negotiation, or
198+
transfer across altered synthetic worlds. These are different hypotheses:
199+
select one, define its channel and baselines, generate a fresh deterministic
200+
split, and register the development and confirmatory gates before training.
202201

203202
## 7. Definition of done for any contribution
204203

‎docs/development-log-ecp7.md‎

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ this log.
3636
| ECP7-B26-I | Intervention | B25 with a second sender-only pulse and final receiver-only catch-up | Position-aware MLP | valid negative; route cycle changes error sharing but not code capacity |
3737
| ECP7-B27-I | Intervention | B25 plus one late bounded direct sender-collision pulse | Position-aware MLP | valid negative; collision multiplicity falls but unique-code capacity is unchanged |
3838
| ECP7-B28-I | Intervention | B25 with one zero-initialized shared sender residual interaction | Position-aware MLP | valid negative; generic residual depth drives memorization and code collapse |
39+
| ECP7-B29-I | Intervention | B28 residual branch frozen at exact zero through step 30,000 | Position-aware MLP | valid negative; late activation immediately reduces capacity and worst-link validation |
3940

4041
## Batch 1 preregistration
4142

@@ -2393,3 +2394,107 @@ start of training is closed. If one final residual test is attempted, it must
23932394
freeze the exact-zero branch through the already successful B25 trajectory and
23942395
activate only that representation afterward; no architectural, objective or
23952396
route change may accompany it.
2397+
2398+
## Batch 29 preregistration
2399+
2400+
Preregistered: July 18, 2026 at 18:47:04 UTC<br>
2401+
Seed: `11`<br>
2402+
Maximum population steps: `45,000`<br>
2403+
Minimum selection steps: `15,000`<br>
2404+
Early-stopping patience: `5,000` steps<br>
2405+
Residual weight and bias through step 30,000: **exact zero and frozen**<br>
2406+
Residual parameter gradients from step 30,001: **enabled**<br>
2407+
Pre-existing sender and receiver gradients: **unchanged throughout**<br>
2408+
Additional collision loss: **none**<br>
2409+
Hard-meaning replay route: unchanged B25 sender-only warmup, then receiver-only catch-up<br>
2410+
Raw configuration SHA-256: `4c4e32dc054eb4af400e04fccc5c312edea0e5cbfa9c39fbee6e2615d56258b9`<br>
2411+
Effective configuration SHA-256: `6483d2cf84f2e7e1d0365e90aeefc99641fb9255c3617d8d3928623af5db3947`<br>
2412+
Split-SHA-256: `4947058c75ab07cb43a87eb82776b12cb2a7e2eeba7114de110d3b852cbc64cd`<br>
2413+
Test unsealed: **no**
2414+
2415+
ECP7-B29-I inherits Batch 28's zero-RNG residual sender and every Batch 25
2416+
training setting. It changes only when the two residual parameters may receive
2417+
gradients. They remain non-trainable and exactly zero through step 30,000;
2418+
because the branch consumes no RNG and contributes zero, all shared history
2419+
fields through that boundary must match Batch 25 exactly. The residual weight
2420+
and bias become trainable on step 30,001. All original sender parameters remain
2421+
trainable throughout, and the established receiver-only hard-replay route is
2422+
unchanged.
2423+
2424+
The positive control is rerun. All existing validity and development gates
2425+
remain unchanged. The late-capacity hypothesis also requires a selected
2426+
minimum sender codebook larger than Batch 25's 12,720-message minimum without a
2427+
lower worst-link validation score. No gradual activation, alternative boundary,
2428+
residual change, collision replay, new loss, route change, receiver change,
2429+
optimizer, horizon, data, translator or seed may be tried inside Batch 29.
2430+
If this final residual test fails, ECP-7 development closes without confirmatory
2431+
test access.
2432+
2433+
## Batch 29 results
2434+
2435+
Positive-control run: `runs/ecp7-batch29-control-development/20260718T184951Z-ecp7-development`<br>
2436+
Intervention run: `runs/ecp7-batch29-intervention-development/20260718T185111Z-ecp7-development`<br>
2437+
Test unsealed: **no**
2438+
2439+
| Metric | Positive control | ECP7-B29-I |
2440+
|---|---:|---:|
2441+
| Population train, mean | 100% | 84.8868% |
2442+
| Population train, worst link | 100% | 82.2824% |
2443+
| Population validation, mean | 100% | 84.7412% |
2444+
| Population validation, worst link | 100% | 81.7383% |
2445+
| Universal translator, validation | 100% | 85.0098% |
2446+
| Exact sender-message agreement | 100% | 91.96% |
2447+
| Unique messages per sender | 15,360 | 12,720–13,439 |
2448+
| Collision meanings per sender | 0 | 1,921–2,640 |
2449+
| Message entropy | 13.91 bits | 13.54–13.64 bits |
2450+
| Development gate | pass | **fail** |
2451+
2452+
The positive control passed every gate at 100%. ECP7-B29-I passes the mean
2453+
validation and translator thresholds but fails both train thresholds, sender
2454+
injectivity and the added late-capacity/worst-link criterion. Its selected
2455+
checkpoint occurs at step 31,000, only 1,000 steps after activation; patience
2456+
stops the run at step 36,000. The joint gate fails and confirmatory access
2457+
remains unauthorized.
2458+
2459+
All 151 shared history records through step 30,000 match Batch 25 exactly.
2460+
Every recorded residual-gradient flag is false through that boundary and true
2461+
afterward. This validates the intended isolation: the branch is identically
2462+
zero during the complete established shallow trajectory and genuinely trains
2463+
only in the late phase.
2464+
2465+
The intervention still regresses immediately. Relative to Batch 25, the step
2466+
31,000 checkpoint loses 0.38 percentage points of mean train, 0.53 points of
2467+
worst-link train, 0.50 points of mean validation, 0.98 points of worst-link
2468+
validation and 0.12 points of translator validation. Validation falls further
2469+
to 84.30% at the final step.
2470+
2471+
Selected sender codebooks contain 13,163, 12,960, 12,720 and 13,439 unique
2472+
messages, compared with Batch 25's 13,440, 12,960, 12,720 and 13,440. The late
2473+
branch therefore removes 278 net occupied codes rather than adding capacity;
2474+
the minimum remains 12,720. Selected residual weight norms of 2.36–3.33 and
2475+
bias norms of 0.15–0.23 confirm that the branch moved materially from zero.
2476+
2477+
The selected diagnostic finds 1,679 meanings failed by all links and 3,152
2478+
failed by at least one link, with 11.00 mean failed links per erroneous
2479+
meaning. Shared errors are essentially unchanged from Batch 25's 1,677, while
2480+
any-link failures increase by 185. Population validation factor accuracies
2481+
were `[99.88%, 99.89%, 98.41%, 86.56%]`; universal-translator factor
2482+
accuracies were `[100%, 100%, 98.41%, 86.60%]`.
2483+
2484+
Both sealed analyses report 65 matching artifact hashes, 16,384
2485+
validation-only episodes, no confirmatory-test keys, valid local alphabets,
2486+
and exactly 14 declared bits for every logged message.
2487+
2488+
## Batch 29 decision and ECP-7 development closure
2489+
2490+
ECP7-B29-I is a valid negative result. Late activation avoids Batch 28's
2491+
catastrophic relearning failure, but even a residual branch introduced only
2492+
after the shallow protocol is established immediately reduces code capacity
2493+
and worst-link generalization. The representation hypothesis and its permitted
2494+
schedule are rejected.
2495+
2496+
No ECP-7 development variant passes the complete gate, so no `config/ecp7.yaml`
2497+
is frozen and the ECP-7 confirmatory test remains sealed. Development closes
2498+
after 29 transparently recorded batches. ECP-6 remains the latest confirmed
2499+
result; future research must define a new ECP-8 question and fresh
2500+
preregistration rather than continue tuning ECP-7.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# ECP-7 Sealed Development Conclusion
2+
3+
Status: **development closed; confirmatory test never accessed**<br>
4+
Closed: July 18, 2026<br>
5+
Completed variants: ECP7-B1-I through ECP7-B29-I
6+
7+
## Conclusion
8+
9+
ECP-7 asked whether the 14-bit, 16,384-meaning ECP-6 result would survive when
10+
the explicit one-factor-per-slot sender and receiver bias was weakened. No
11+
development variant passed the full preregistered gate. Therefore no frozen
12+
`config/ecp7.yaml` exists and no confirmatory ECP-7 experiment was run.
13+
14+
The strongest weak-structure family used a bounded parallel sender and a
15+
position-aware MLP receiver. Batch 25 reached 85.26% train, 85.24% validation,
16+
82.71% worst-link validation and 85.13% universal-translator validation. Batch
17+
26 reached the highest mean validation at 85.38%, but did not improve hard-code
18+
capacity. Every strong variant remained non-injective and below the 97% mean
19+
and 95% worst-link train thresholds.
20+
21+
## What the development series established
22+
23+
1. A generic weak-structure sender-receiver pair can learn a compact,
24+
translatable protocol far above chance without semantic symbol assignments.
25+
2. The position-aware receiver removes a major recurrent decoding bottleneck.
26+
3. Receiver-only catch-up can approach the mathematical ceiling of an existing
27+
non-injective sender codebook, but cannot raise that ceiling.
28+
4. Sender-only and route-cycled ordinary-task replay redistribute shared errors
29+
into link-specific errors instead of creating new codes.
30+
5. Direct relaxed collision-pair pressure reduces collision multiplicity and
31+
increases entropy, but does not increase the number of occupied hard codes.
32+
6. Generic extra sender depth promotes training-relation memorization and
33+
destroys compositional validation, even with exact identity and RNG-
34+
equivalent initialization.
35+
7. Activating that residual capacity only after the successful shallow
36+
trajectory still reduces code capacity and worst-link validation.
37+
38+
## Scientific boundary
39+
40+
ECP-7 is a negative development result, not a failed confirmatory experiment.
41+
The sealed test contains no published metric because it was never opened. This
42+
prevents repeated development choices from leaking into confirmatory evidence.
43+
44+
ECP-6 remains the latest confirmed result: its fully factorized architecture
45+
learns a lossless, transferable and information-theoretically minimal protocol
46+
inside the synthetic product world. ECP-7 shows that this result does not yet
47+
survive the tested weakening of that architectural bias.
48+
49+
## Next research phase
50+
51+
Do not add ECP7-B30. A future ECP-8 must start with a new question and fresh
52+
preregistration. It should explicitly choose whether to study learned
53+
compositional structure, variable-length efficiency, interactive negotiation,
54+
or transfer across altered worlds. Those are different hypotheses and must not
55+
be combined in one development batch.
56+
57+
Full per-batch preregistrations, metrics, decisions and artifact identities are
58+
in [`development-log-ecp7.md`](development-log-ecp7.md), with compact manifests
59+
under [`../evidence/ecp7-development/`](../evidence/ecp7-development/).

0 commit comments

Comments
 (0)