MOISSANITELABS

Research / report

Stem-Cell Micro-Harnesses: Model Choice, Selection Machinery and Code Diversity in Self-Improving LLM Agents

Report 1, version 2 · razi-cells program · Moissanite Labs · data collected 2026-11-08 to 2026-11-09 · hypotheses in section 9 registered 2026-11-09, before any of their tests were run · one Apple M1 Max (8P+2E cores, 64 GB)
Notes added for publication, 2026-11-10 This is Report 1 as written on 2026-11-09, with private paths, names and internal ids removed. It is an exploratory report. Three things are known since.
  1. A scoring fault was found afterwards. The score reader took the last number from standard output and standard error together, so a runtime warning line was once read as a score. Taking out the one false improvement moves run b5 from 12.82 to 11.97 kept improvements per 100 calls, and the correlation in finding (3) from 0.99 to 0.986. The Fable against Argon comparison stays undetectable under every correction (Welch t between 0.29 and 0.70).
  2. Section 5 says the embedding permutation tests shuffle whole runs. The code shuffles single variants, as section 6.6 describes. Read those p values as upper bounds on the evidence, because variants from one run are not independent.
  3. The registered tests that followed are kept in their own records: E07 and the laws record, E11 to L1. Both are under review. Several guesses there missed, and the records say so.
Abstract. We built "stem cells": small agent harnesses that each start from a written NEED and an empty folder. Each cell grows its own code and tools inside a macOS sandbox. It makes every model call through Exo's router, so no API key ever enters a cell. A cell improves its code by selection against a fitness assay that the harness has validated. We ran 13 colonies of 8 to 16 cells on 8 fixed coding tasks, about 1,560 model calls in total, under five model conditions: a fast default (DeepSeek v4.1 Flash), Claude Fable 5.1, GPT-6 Astra, Tencent hy4 and Gemini 4 Argon. Four results stand out. (1) Harness design moved outcomes as much as model choice did. (2) Frontier models reached 10 to 13 kept improvements per 100 calls, against 1.6 to 3.1 for the fast default. Fable (n=3) and Argon (n=2) could not be told apart (Welch t = 0.48). (3) How often a model used the selection tool predicted its improvement rate almost perfectly across 8 runs (r = 0.99). hy4 shows this most clearly: it never used the tool and scored 0, while hand-tuning a 14.3x compressor. Only Astra ever used the daughter-cell mitosis action. (4) Code embeddings showed that models differ in run-to-run code diversity. A same-model control did not support a stable per-model fingerprint. This version adds the full method and its variables, an analysis plan, 18 registered hypotheses with falsification criteria, and the experiment roadmap.
Contents
  1. Introduction and research questions
  2. The system
  3. Scientific method
  4. Variables
  5. Analysis plan and decision rules
  6. Results to date
  7. Discussion
  8. Threats to validity
  9. Hypothesis register
  10. Areas of exploration and experiment roadmap
  11. Safety, ethics and governance
  12. Harness findings
  13. Reproducibility, data dictionary and timeline
  14. Glossary
  15. Appendices: system prompt, tool spec, tasks

1. Introduction and research questions

Agent harnesses usually come pre-built: a fixed toolset, a fixed loop and a model behind it. We asked the opposite question. What happens when a harness starts from nothing, builds only the tooling its task demands, and improves through a biological loop: vary, compete, keep the winner, record the lesson? The program is open-ended by design. The project lead handed full agency over its direction to the investigating agent, and asked for constant iteration, the way the cells themselves are meant to work.

RQQuestionStatus
RQ1Feasibility: can a minimal sandboxed cell turn a one-paragraph NEED into verified, measurably optimized code with no human help?Answered: yes
RQ2Drivers: what controls the rate of kept improvements: harness design, colony scale, model, or how the model uses the harness?Partly answered
RQ3Model economics: where do models sit on the frontier of improvement rate, speed and cost? Do mixtures beat pure colonies?Open (cost not yet logged)
RQ4Selection design: how should mitosis work so that each split builds on the last (loser-informed, novelty floor, split width)?Open
RQ5Representation: does embedding space give useful structure (prediction, steering, causality)?First results
RQ6Agency: what happens when cells can build shared tools, or change the mitosis process itself?Open
RQ7Formal grounding: can selection be made provably honest (Lean theorems as needs, proven selection rule)?Open (toolchain installed)
RQ8Substrate and scale: what emerges with many colonies, and can Apple Silicon (P/E cores, unified memory, GPU/ANE) improve measurement or selection?Open

2. The system

2.1 The cell

A cell is a folder. It holds a read-only NEED, a self-written genome.md (memory, capped at 4,000 chars), any files it creates, and an append-only log.jsonl. On each step the cell's brain (one model call through Exo's Router, with a per-cell session_id) chooses exactly one action. Implementation: code/cell.py in the record (486 lines, stdlib plus Exo's router). The action set is in Appendix B.

2.2 Sandbox and safety

Every shell action runs under sandbox-exec: no network, no writes outside the cell, no reads of $HOME, 30 s limit. Each rule was verified on its own (outside write denied, curl exit 6, ~/.zshrc read denied). Model access goes only through the router in the parent process, so cells never see credentials.

2.3 Selection machinery

2.4 Colony runner

colony.py runs N cells as separate processes. It samples RSS and CPU of every process tree every 2 s and writes summary.json. Each cell can be pinned to one model. A pinned cell has no hidden fallback, and the route of every call is logged.

2.5 Version history

VersionRunsKey changeReason
v1c1, c2, g1Text JSON actions; symmetric divide into A/B daughtersMinimum viable cell
v2g2Plain vs split twins; depth cap 2Test whether splitting helps
v3g3Native tool calls (DSML/JSON fallbacks), validated assay, variants, asymmetric try, LIBRARY, apoptosisg2 lost 46 replies, decided a 0 vs 0 split, and wasted calls on twins
v3 + nudgesg4Prompts to register the assay earlyg3 cells registered it at step 4 to 14 of 16
v3b/cb5, b6Model pinning; TEXT_MODE for gpt-6gpt-6 rejects function tools combined with reasoning on chat/completions
v3c+b7 onwardRate-limit backoffb6 lost 5 of 8 cells to HTTP 429
v3db8 onwardFull code archive in variants.jsonlNeeded for embeddings

3. Scientific method

3.1 Design

The program runs in two phases, and every result is labelled with the phase it came from.

3.2 Units of analysis

UnitWhat it isIndependence
StepOne model call and one actionNot independent (same cell history)
VariantOne code version writtenNot independent (shares lineage within a run)
CellOne NEED pursued to done, death or capWeakly dependent (shared LIBRARY, shared bench)
Run (colony)8 cells, one conditionThe primary independent unit. All model comparisons use run-level statistics

3.3 Procedure for one run

  1. Freeze code. Record the cell.py and colony.py versions and the exo-live commit (currently 6054da56).
  2. Remove the bench lock and clear the run folder.
  3. Launch colony.py RUN needs8v3.json --par 8 --calls 40 --steps 16 [--model REF] as a harness background job.
  4. Do not touch the run. No polling, no restarts, no edits.
  5. On exit, read summary.json and check from routes that every call was served by the intended model.
  6. Extract metrics (section 4.2). Embed variants (b8 onward) with all three embedders.
  7. Append a dated entry to TESTS.md before interpreting anything.

3.4 Instrument validity checks

4. Variables

4.1 Independent variables (manipulated)

VariableLevels so farPlanned levels
Brain modelDeepSeek v4.1 Flash, Fable 5.1, GPT-6 Astra, hy4, Gemini 4 ArgonHaiku 5.5, Sonnet 5.5, Opus 5.5, GLM 5.3 Flash, Kimi K3
Harness versionv1, v2, v3, v3 + nudges, v3b to v3dFrozen per experiment from now on
Action protocolNative tools; text JSON (gpt-6)Responses API native tools for gpt-6 (needs a harness fix)
Colony size8, 16Many colonies in parallel (RQ8)
Prompt nudgesnone; early-assay nudgeExplicit "use variants" (H1)
Colony compositionHomogeneousMixed models; mixed roles within a cell
Mitosis designSymmetric divide; asymmetric try; variants; autopsy lessonsNovelty floor, retrieved loser lessons, surrogate pre-filter, embedding steering
NEED typeSpeed and ratio coding tasksLean theorems; adversarial inputs
Embedder (analysis)nomic-embed-text, text-embedding-3-small, -3-largeUnchanged

4.2 Dependent variables (measured)

VariableDefinitionSource
Kept improvements per 100 calls (primary)100 × (count of improve events) / (model calls)log.jsonl, .calls
Gain per cell∏(1 + gaini) − 1 over adopted wins, where gain = (mediannew − medianold) / medianoldcolony.py
CompletionCells that wrote RESULT via donesummary.json
ApoptosisCells ended by 3 consecutive failureslog.jsonl
Errors / bad repliesExceptions; replies with no valid actionlog.jsonl
Action mixShare of actions per type (sh, write, assay, variants, try, remember, done)log.jsonl
Variants writtenCount of archived code versionsvariants.jsonl
Wall timeRun start to last cell exitsummary.json
ResourcesPeak RSS; peak and mean CPU of all cell trees2 s sampler
LIBRARY growthLines in LIBRARY.md at end of runfile
Embedding metricsSplit width (mean pairwise cosine distance in a batch); centroid gap between groups; permutation pembed.py, perm.py
CostUSD per run and per kept improvementNot yet logged (planned)

4.3 Controlled variables (held constant)

ConstantValue
Task setneeds8v3.json, 8 tasks (Appendix C)
Per-cell call cap / step cap / parallel cells40 / 16 / 8
Assay repeats / acceptance spread5 / 15%
Win marginmax(3%, measured noise); worst challenger run ≥ incumbent median
Max variants per batch / mitosis depth6 / 1
Genome cap / tool output cap / shell timeout4,000 chars / 2,000 chars / 30 s
Apoptosis threshold / backoff cap3 consecutive failures / 6 waits
LIBRARY line cap400 chars, no code
System prompt and tool descriptionsAppendix A and B, verbatim
RuntimeCells: /opt/homebrew/bin/python3 in sandbox. Runner: exo-live venv Python. Exo commit 6054da56
HardwareOne M1 Max, 8P+2E cores, 64 GB

4.4 Uncontrolled and confounding variables

VariableEffectMitigation
Provider latency and rate limitsInflate wall time; caused 5 deaths in b6Primary metric is per call, not per second; backoff; record 429 counts
Sampling temperature and reasoning effortNot set; provider defaults apply and may differ by modelRecord defaults; plan a temperature sweep for one model
Model nondeterminismSame model, very different runs (Fable 7.76 to 12.82)3 or more replicate runs
Cell-written assay workloadEach cell picks its own input size, so gains are not on a common scale across runsPlanned: harness-fixed reference workloads per need
Other machine loadOther agent CLIs and the desktop app share the CPUBench lock; 5-run medians; record load average (planned)
Time of day and run orderProvider load driftsInterleave conditions
LIBRARY state inside a runEarly wins shape later cellsTreated as part of the system; tested directly in D1 and E4
Model-specific action protocolgpt-6 runs in text mode, others use native toolsFix the transport, then rerun Astra

5. Analysis plan and decision rules

6. Results to date (exploratory phase)

6.1 Feasibility (pilots)

c1 (word frequency) built a working, tested tool in 10 calls and 50.7 s. c2 (primes) ran the first mitosis: daughter A (odd-only half sieve) scored 34.6 and daughter B (full bytearray sieve) 27.9 on 1/s. The winner re-verified at about 30 ms for N = 5,000,000 with the correct count, in 50 calls and 474 s. RQ1: yes.

6.2 Harness design (g1 to g4)

RunCellsDoneCallsKeptPer 100Wall sPeak RSS MB
g1 (v1)85/8112n/an/a273789
g2 (v2)1614/16265n/an/a4981,441
g3 (v3)88/812843.121,0331,127
g4 (v3+nudge)87/812721.579941,040

v1 and v2 did not log kept-improvement events, so no rate is available for them.

6.3 Model comparison

RunModelDoneCallsKeptPer 100Wall sApoptosisPeak RSS MB
g3DeepSeek v4.1 Flash8/812843.121,03301,127
g4DeepSeek v4.1 Flash7/812721.5799401,040
b5Fable 5.18/81171512.8236001,149
b9Fable 5.18/811697.761,06901,050
b11Fable 5.18/81181311.0259701,379
b6GPT-6 Astra (text mode)3/81321712.885555913
b7hy47/812300.003,2271872
b8Gemini 4 Argon7/81161210.345291842
b10Gemini 4 Argon8/81201512.506940882
Fable: mean 10.53, SD 2.56 (n=3). Argon: mean 11.42, SD 1.53 (n=2). Welch t = 0.48, no detectable difference. Frontier as a group (8 to 13) is well above Flash (1.6 to 3.1). Astra's 5 deaths came from HTTP 429 rate limits, not from the model.

6.4 Protocol adherence

RunModelActionssh %variants %tryrememberPer 100
g3Flash128703003.12
g4Flash127722001.57
b7hy499780000.00
b8Argon8547190010.34
b9Fable1164015057.76
b10Argon9643230012.50
b11Fable11847180811.02
b5Fable11741250812.82
b6Astradifferent log format; 8 try events counted directlyn/a12.88

6.5 Task structure

6.6 Embeddings

Embedder A/B (synthetic set): all three embedders gave the same ordering. Spreads: nomic 0.20, 3-small 0.38, 3-large 0.31 to 0.35.

E1 split width vs gain (b8, 5 batches): the only adopted batch (maze, +10.5) was the widest. With n = 1 adoption, we make no claim.

E5 permutation (3-small, 2,000 shuffles over variants)Needs with p < 0.05
Argon (b8+b10) vs Fable (b9+b11)7/8 (compress p = 0.23; 3-large p = 0.12)
Control: Argon b8 vs b101/5
Control: Fable b9 vs b116/8
Argon b8 vs Fable b9 / Argon b10 vs Fable b114/6 / 4/7

The same-model control breaks the fingerprint reading. Two Fable runs differ about as often as Fable and Argon do. What survives: Argon converges on similar code from run to run, while Fable's code varies widely, and that extra variety does not show up as a higher rate.

6.7 Resources

8-cell colonies peaked at 0.84 to 1.38 GB RSS. Peak CPU was 1.1 to 3.2 cores, and mean CPU was 7 to 72% of one core. Cells are I/O bound (they wait on the model). The serialized bench is the only real CPU consumer. A 64 GB M1 has headroom for many more colonies.

7. Discussion

  1. Improvement rate behaves like capability × protocol adherence × harness quality. Each factor alone changed outcomes by large amounts, and adherence can zero out capability (hy4).
  2. "The model is key" holds between tiers but not within the frontier. At the frontier, run-to-run variance dominates.
  3. The selection layer is the instrument. It blocks fake wins, but it also cannot see gains made outside it. That trade-off is the reason for the adherence research thread.
  4. The mitosis action is under-used. Models prefer cheap variants to an expensive daughter cell. Loser-informed mitosis can only be studied once cells actually divide, by prompting it or by making the harness divide on schedule.
  5. Embeddings need lineage-aware statistics. Naive tests produce false fingerprints.

8. Threats to validity

TypeThreatPlanned response
Statisticaln = 1 to 3 runs per model5 runs for headline claims (section 5)
InternalHarness changed between exploratory runs; backoff added after b6Freeze per experiment; tag versions
InternalProvider throughput (Astra 429s, hy4 latency) mixed into "model"Log 429s and latency; rerun Astra after the transport fix
InternalAstra used a different action protocol (text mode)Add Responses API transport
ConstructKept improvements largely require variantsAlso report gain and done rate; H1 tests adherence directly
Construct6 of 8 tasks have no harness-held correct answerReference outputs held by the harness; R6 adversary cells
ConstructSelf-written assays mean no common benchmarkHarness-fixed reference workloads
MeasurementShared machine, timing noiseBench lock, medians, P-core pinning test (H17)
External8 short coding tasks, one machine, one harness familyLean needs, adversary cells, larger tasks later
EconomicCost not loggedAdd per-call cost from the router to log.jsonl
InvestigatorThe same agent built the system, ran it and wrote this reportHypotheses registered first; raw data kept for independent re-analysis

9. Hypothesis register

9.1 Hypotheses already tested (exploratory)

#HypothesisSourceOutcome
T1The model is the key variableProject lead, after b5Partly supported: holds between tiers, not within the frontier; adherence is a mediator
T2More cells per colony means more winsInitial scaling planNot supported (gate failed g3 to g4)
T3Nudging an early assay raises the rateagent, after g3Not supported (3.12 to 1.57, within noise)
T4Native tool calls fix lost repliesagent, after g2Supported (46 lost to 0 or 1 per run)
T5csvsum is a broken taskagent, after b8Refuted (Fable never lost it)
T6Each model leaves a code fingerprintE5Not supported after same-model control
T7Wider splits find bigger winsE1Undetermined (1 adoption)
T8Use of the selection tool drives the rateagent, post hocStrong correlation (r = 0.99); causal test is H1

9.2 Registered hypotheses (predictions written before testing)

Each one gives a prediction, what would falsify it, and how confident we are now (a subjective prior). Results will be filled into this table without editing the predictions.

#AreaPredictionFalsified ifPrior
H1Adherencehy4, told explicitly to register an assay and use variants, reaches at least 5 kept per 100 callsBelow 2 per 100 over 2 runs0.65
H2FrontierWith 5 runs each, Fable and Argon differ by less than 2 per 100, and the difference is not significantSignificant gap of 3 or more0.70
H3GradientRate rises with tier: Flash < Haiku < Sonnet ≤ Opus ≈ Fable. Sonnet reaches at least 70% of Fable's rateSonnet below 50% of Fable, or Haiku below Flash0.55
H4EconomicsOnce cost is logged, the best cost per kept improvement is a mid-tier model, not the top oneThe top-tier model is cheapest per kept improvement0.60
H5Mixed colonies4 fast + 4 frontier cells sharing a LIBRARY: the fast cells gain less than 1 per 100 over fast-only colonies, because lessons carry no codeFast cells gain 3 or more per 1000.60
H6Mixed rolesEscalating from fast to strong after 3 steps without a win matches strong-only rate within 2 per 100, at half the strong calls or fewerRate more than 4 per 100 below strong-only0.45
H7Mitosis useIf the harness forces one try per cell, frontier models win at least 25% of tries (Astra: 2/8)Win rate below 10% over 30 or more tries0.55
H8Loser-informed mitosisTries made after a LOSS lesson in the same need win more often than first triesEqual or lower win rate over 30 or more tries0.50
H9Novelty floorRejecting variant batches whose members sit closer than a set cosine distance raises the rate by 10 to 20%No change or a drop0.40
H10Surrogate fitnessA kNN surrogate predicts within-need rank with Spearman ρ above 0.5, saves at least 30% of bench time and loses at most 10% of winsρ below 0.3, or win loss above 20%0.45
H11Causal steeringPicking the candidate with the highest projection on the winner-minus-loser direction beats a random pick, but the effect is not significant within 10 runsProjection pick does worse than random0.50
H12Retrieved lessonsGiving each cell its top-k nearest LIBRARY lines beats giving all lines once LIBRARY passes about 40 linesNo difference at 40 or more lines0.45
H13Lean needsFrontier models prove at least 50% of easy theorems without sorry, fast models less than 20%. Fake wins are 0 by constructionFrontier below 25%0.55
H14Meta-cellsFirst-generation meta-cells that edit cell.py mostly make it worse. Any real gains come from prompt edits, not selection logicA meta-cell improves selection logic with a measured child-colony gain0.70
H15Tool commonsWith a shared tool shelf, a few tools (benchmark and test helpers) spread to most cells, and the rate rises by 2 or more per 100No tool reused by more than 2 cells0.45
H16Adversary cellsAttacker cells find a correctness bug in at least 1 adopted winner per 8-need runNo bugs found across 3 runs0.50
H17Apple SiliconPinning assays to P-cores cuts assay spread by at least 30%. Running assays on E-cores or in parallel without the lock pushes noise above the 3% margin and lowers adopted winsNo change in spread0.60
H18Scale and emergenceRunning many colonies in parallel leaves the rate per 100 calls flat. With a shared LIBRARY across colonies, winners converge (monoculture: lower code variety per need over time)Rate changes by more than 3 per 100, or variety rises0.50

10. Areas of exploration and experiment roadmap

10.1 Map of areas

AreaQuestionExperimentsOrigin
A. Model gradientRate, speed and cost along the tier ladder; Pareto frontierB1 to B7, C1, C2, H2 to H4Project lead
B. MixturesMixed colonies; mixed roles inside one cellD1, D2, E1, E2, H5, H6Project lead
C. AdherenceWhy do some models skip the selection tools?H1, prompt variants, harness-forced actionsagent, from b7
D. Mitosis designMake each split build on the last: loser-informed splits, forced splits, novelty floor, split widthH7, H8, H9, E1, E2Project lead (loser files inform the next split)
E. Embedding spacePrediction, retrieval, convergence mapsE3 (H10), E4 (H12), E5, E6Project lead, shaped by the agent
F. CausalityDoes a direction in embedding space cause wins?F1 (H11), F2, F3Project lead ("embedding to vector to causality")
G. AgencyCells build shared tools; cells evolve the mitosis processR5 (H15), R4 (H14), A1, A2Project lead
H. Formal groundingProof-carrying wins; theorems as needs; proven selection rule; BendR1, R2 (H13), R3, R7, A3, A4Project lead and agent
I. RobustnessAdversarial inputs as the source of testsR6 (H16)agent
J. Substrate and scaleMany colonies; emergent patterns; P/E cores, unified memory, GPU/ANEH17, H18Project lead

10.2 Planned experiments in detail

IDDesignRuns
B1 to B7Homogeneous colonies on Flash, Haiku 5.5, Sonnet 5.5, Opus 5.5, Fable, Astra (after the transport fix), plus GLM 5.3 Flash and Kimi K3 as off-frontier controls3 each
C1Plot all B conditions on calls, wall time and cost against rate. Mark the Pareto frontierAnalysis
C2The same conditions capped by wall time instead of calls (slow models lose on time)2 each
D14 fast + 4 frontier cells, shared LIBRARY. Compare fast cells with fast-only colonies3
D2Each need run twice in one colony, once fast and once strong: head to head per task3
E1 (roles)A strong model plans and picks variants, a fast model writes code3
E2 (roles)Fast by default, escalate to strong after 3 steps without a win3
H1hy4 with an explicit protocol instruction2
M1Forced mitosis: the harness triggers one try per cell at mid-run. Loser autopsy and loser code (archived in variants.jsonl) are handed to the next split3 per model
M2Novelty floor on variant batches (embedding distance threshold)3 vs 3
E3kNN surrogate pre-filter in front of the bench, scored offline first on b8 to b11 archivesOffline, then 3
E4LIBRARY retrieval: none, all, top-k3 each
E6Convergence map: do winners for one need collapse to one point or several basins?Analysis on all runs
F1, F2Steering pick vs random pick; rewrite toward vs away from the nearest winner5 vs 5
F3Lean theorem that every adoption in a log satisfied the win rule, checked over logged numbersProof
R1Proof-carrying wins: differential testing first, then a Lean equivalence proof2 tiers
R2Lean needs: fitness = lake build passes with no sorry. Two tactics per split3 per tier
R4Meta-cells whose body is cell.py, scored by a child colony's rate. The assay and sandbox stay outside its bodyPilot
R5Shared tool shelf; track which tools spread3
R6Attacker sibling per need writes breaking inputs; the assay grows from its finds3
R7Bend/HVM used to run assays in parallel (Bend is for parallel evaluation, not proofs)Pilot
S1Assays pinned to P-cores vs E-cores via taskpolicy/QoS; measure assay spreadMicrobenchmark
S2GPU or ANE embeddings inline (Metal / MLX), measuring latency per variant for E3Microbenchmark
S3Scale: 2, 4, 8, 16 colonies at once; watch rate, bench queue, LIBRARY convergenceOnce the rate gate allows

10.3 Order of work

  1. Instrument first: log cost per call, add harness-fixed reference workloads, add the Responses API transport for gpt-6, and tag a frozen harness version.
  2. Cheap, high-information: H1 (hy4 adherence), E3 offline on existing archives, S1 microbenchmark.
  3. Model gradient: B2 to B4 and B7, then reps of Fable and Argon to 5. C1 frontier plot.
  4. Mitosis design: M1 forced and loser-informed mitosis, then M2.
  5. Mixtures: D1, E2.
  6. Formal: R2, then R1, then R3/F3.
  7. Agency: R5, R6, then R4.
  8. Scale: S3, only after the gate in section 5 allows it.

Volume estimate: one run is about 120 model calls. The plan above is roughly 100 runs, or about 12,000 calls. Cost per call has not been measured yet, so no dollar estimate is given.

11. Safety, ethics and governance

12. Harness findings filed during the program

No.Issue
1One model route needs a session header on every call, and had no fallback route
2gpt-6 on chat/completions rejects function tools combined with reasoning. Needs a /v1/responses transport
3The agent is not reliably woken when a background job exits; one early wake
4Phantom turns ran, and were billed, with no user input

13. Reproducibility, data dictionary and timeline

13.1 Files

13.2 Data dictionary

RecordFields
log.jsonl stepstep, act{do,...}, res, route; or bad_reply, bad_len; or error; or backoff, why
log.jsonl eventassay, improve{gain,what}, variants{path,medians,best,adopted,gain}, try{idea,expect,runs,won,gain}, mitosis, apoptosis
variants.jsonlFull text of every write and variant, with kind and path
summary.json (per cell)steps, errors, acts, splits, ties, bad_replies, assays, variants, tries, improvements, gain, apoptosis, calls, routes, done
summary.json (per run)Cells plus wall time, peak RSS, peak and mean CPU
vectors.<model>.jsonCached embedding per variant

13.3 Timeline

WhenEvent
2026-11-08Project lead grants agency over self-built tooling and proposes micro-harnesses with mitosis. Sandbox verified; c1 and c2 pilots
2026-11-08/09g1, g2 (v1, v2); v3 rebuilt; g3, g4; scaling gate fails
2026-11-09Project lead hands full agency and an uncapped budget; test plan written; b5 (Fable), b6 (Astra)
2026-11-09Ideas A1 to A4 and R1 to R7 logged; Bend and HVM installed; b7 (hy4), b8 (Argon)
2026-11-09Embedding program E1 to E6 and F1 to F3; embedder A/B; b9, b10, b11; permutation tests with controls
2026-11-09Report 1; hypotheses H1 to H18 registered

14. Glossary

CellOne agent harness working on one NEED inside its own sandboxed folder
Colony / runA set of cells run together under one condition
NEEDThe read-only task statement that a cell must satisfy
GenomeThe cell's own memory file
LIBRARY / germlineThe shared file of wins and loss lessons that all cells in a colony read
AssayThe cell's fitness command, validated by the harness
VariantsSeveral full versions of one file, scored together
Mitosis / tryA daughter cell explores one idea against the parent as control
AutopsyA one-line lesson written when a daughter loses
ApoptosisCell death after 3 consecutive failures
MembraneThe interface that turns a model reply into exactly one action
AdherenceHow much a model uses the measured channel (assay, variants, try) instead of acting outside it
Split widthMean cosine distance between code versions in one batch

15. Appendices

A. System prompt (verbatim)

You are a cell: a tiny agent that starts with nothing but a NEED and an empty folder (your body).
Grow only the tools your need demands, one step at a time. Call exactly one tool per reply.
Path to fitness: 1) build a correct version and check it. 2) register an `assay`: a shell command that
prints one number, higher is better, 0 if the output is wrong. Make its workload heavy enough (about
0.3 to 3 s) that process startup does not dominate. 3) improve with `variants` (cheap: several versions
of one file in one reply, all scored) or `try` (expensive: a daughter cell explores one bigger idea).
Only scored wins are kept. Read LIBRARY: other cells' results and lessons, often useful to you.

B. Tool specification (v3)

ToolDescription given to the model
shRun a shell command in your folder. No network, 30 s limit, python3 available.
writeCreate or overwrite a file in your folder.
rememberReplace genome.md, your memory across steps (max 4000 chars).
assayRegister your fitness command. The harness runs it 5 times on your current body and accepts it only if it exits 0, prints a number > 0, and is stable (spread under 15%).
variantsPropose 2 to 6 full alternative versions of ONE file. Each is scored by your assay against the current body; the best is adopted only if it wins beyond noise.
trySpawn one daughter cell that explores one idea for half your remaining steps. Its body replaces yours only if it beats you on the assay beyond noise. State the gain you expect.
doneFinish. One paragraph: what you built and the evidence it works.

C. Tasks (needs8v3.json)

NeedTaskFitness
primesCount primes below N (348,513 below 5,000,000). Verify before done1/s
sortintsSort 1,000,000 integers from stdin1/s
wordfreqTop-10 words of 20 MB of text, ties by word1/s
compressStdlib-only round-trip compressorCompression ratio
fibmodfib(n) mod 1e9+7 for n up to 10^181/s
lcsLCS length of two 3,000-char strings1/s
csvsumGroup sums over 2,000,000 CSV rows1/s
mazeShortest path in a 2000x2000 grid1/s

Fitness is 0 when output is wrong. The assay command and workload are written by each cell and validated by the harness.