# Pre-measurement amendment: conventional baseline pilot

2026-10-14. This continuation preserves the original assessment. It tests no
contextual developmental rule, held-out widths 16/24, or demand strata 6/8.

The available isolated bundled runtime provides NumPy, not autodiff. The learner
uses explicit analytic derivatives for two affine/tanh routing feature branches
and their bilinear readouts. Finite differences check these derivatives before
learning. Memory gates are supplied public-address gates; they store tanh of the
write value. This strong hand-designed prior is charged and disclosed, not a
learned storage mechanism. No permutation, oracle bank, labels or task-specific
lookup table enters the builder/runtime. Routing permutations must be learned.

Precision is float64; zero-step tolerance is 1e-12. The report's proposed float32
1e-6 comparison remains untested. A memory cell has an explicit one-step recurrent
state/delay buffer; its equality invariant is checked at external event boundaries.
QUERY reads committed carried state. WRITE commits after prediction. Growth copies
both state and delay buffer, tick, old route weights and old readout without
normalization changes, attaches a four-cell/four-feature independent branch, and
sets only its readout to zero. No new-to-old feedback. Both comparison optimizers
reset; plain SGD has no moments. Scratch has exactly the child's two-branch topology.

Fixed maximum schema: eight context, route and write-address positions, write/query
flags, write value, and eight active address/context masks. Inactive positions
are rejected. Learner route features take context, route and both active masks
(32 inputs); memory gates consume the public write address/value. Unwritten bank
values are zero. Episodes reset bank and model state. Hand tests also cover carry.

128 events: initialize every active address, then randomly sample writes (25%)
and queries (75%), forcing at least 64 queries. Query delay bins 1–8, 9–32, 33–64
have equal *requested* weights. When a bin is unavailable choose uniformly among
available bins, log realized counts; no eligible address causes a refresh WRITE.
Writes replace values and may overwrite. Permutations are independently shuffled
per context. Pilot old task is K=C=3, new task K=C=4, each with its own permutation.
This substitutes calibration demand for the report's unexecuted 6/8 protocol.

Training, validation/calibration and scored event namespaces are disjoint. Scored
streams never provide updates or answer-based repairs. Pilot feedback remains
exploratory permanently. No score-dependent extensions, variant or seed additions.

Resource limits: one CPU compute worker, library threads one; CPU 3600 s total,
executed-job wall 5400 s total, local RSS 1 GiB, retained new artifacts 128 MiB.
Runner enforces job CPU limits and wall timeout; 100 ms process-tree RSS watchdog
kills observed excess (not an instantaneous address-space/RSS bound). Builder
caps 64 cells, 1024 scalar edges per channel, 64 construction ticks, 64 messages
and 8192 message bytes/event, 1 MiB parameter/state/activation accounting/model,
2 s construction timeout, 300 s maximum pilot job. Publisher fixture producers
are bounded lightweight processes, independent of the one training worker.

All failures, including executable startup/test failures, remain in attempts.json.
Only a passed task/transfer/gradient gate permits the one frozen pilot below.

Gate implementation correction before pilot: gradient access is tested after a public WRITE fills the new accumulator. At a zero-state boundary the bilinear readout has zero memory features until that WRITE; the first gate attempt exposed this and remains preserved. No scored data was used.
