A field test and a fixture are orthogonal artifacts. A fixture **pins** behaviour
for the future: something executes it, so a change that breaks it turns a test
red. A field test **proves** behaviour at one moment: a downstream consumer
reached the shipped surface from outside, and the green cycle records that. The
proof is complete when the cycle lands.
Everything in this corpus was the second kind. Nothing ever re-ran a driver,
re-read a transcript or re-validated a document here — so every file was
stale-by-design: it went out of date the moment the surface moved, and, having
no executor, it said nothing when it did.
Silent staleness is not the whole cost. What is written down is on the agenda of
anything that reads the tree. `--real`, retired two cycles ago, still occurred
130 times, and more than half of those sat in this corpus — not framed as
retired, but shown as working command lines in recorded output. #331 spent
~300k tokens making a surface class-complete that the next cycle deleted; the
agents found that surface where it was written down. 892 of the repository's
1236 tracked files were field-test evidence, so every tree-wide search paid a
threefold surcharge to reach the 344 live ones.
Removed: 51 directories, 883 files, from cycle-0006 (2026-06-04) through
milestone-safe-to-embed. Kept: `cycle-308-folded-delivery`, whose proof is the
one that still describes this tree.
Nothing is lost. `git log --grep='^fieldtest'` is the index — each subject
carries its own finding counts, which is where this repository's field-test
regression analysis came from, without opening a single corpus file — and
`git show <sha>:<path>` returns any of it verbatim. Deleting from the working
tree separates the two kinds of access that had to be separated: a human reaches
into history deliberately, an agent never does.
Going forward the corpus wants rotation depth 1: a cycle's field test clears the
previous one as it files its own, so the directory always holds exactly the proof
for the tree as it stands. That rule is not yet written into the field-test skill
— which still prescribes committing the fixtures — so it is owed there before the
next cycle refills the directory.
Suite 1652 passed / 0 failed (exit 0); clippy exit 0. No code reads this corpus:
the five prose citations were removed in the preceding commit.
#163 — the construction op-script (`aura graph build`) had no durable public
schema doc, and the only worked-example corpus had drifted out of sync with the
current binary, so a consumer copying the visible example was misled.
Grammar reference (durable): a compact op-script grammar — the six verbs
(source/input/add/feed/connect/expose), their keys, the typed-Scalar bind form
({"I64":2}) and the capitalized ScalarKind, the by-identifier / dotted-port
model, and the add-`name` vs expose-`as` distinction — added to the C24 ledger
entry, with a correct worked-example pointer. Surfacing the same grammar in
`aura graph build --help` is left to ride with the CLI-discoverability work
(#159), keeping this change decoupled from the deferred World/project-as-crate
layer.
Corpus refresh: the cycle-0088 fixture corpus replayed against the current
binary failed on two accumulated drifts. (1) `add`'s naming key was renamed
`as` -> `name` (3c4b667; `expose` keeps `as` as a real alias) — the inputs now
use `name` for `add` ops only. (2) The dataflow-cycle bug the 0088 fieldtest
found was fixed (1652042, closes#161), so `c0088_3m_two_cycle` is now a
rejection fixture: the gap-era cyclic-blueprint golden is removed and
`c0088_3m.err` carries the eager cycle-rejection message. FINDINGS.md gets a
dated refresh stamp; its findings are preserved as written at fieldtest time.
Verified: the four golden-bearing success fixtures (_1, _2_completed,
_2_partial via --unwired) reproduce byte-identically; all 15 error fixtures
produce the intended by-identifier `op N (kind): cause` (or finalize) message.
Doc + fixtures only, no engine/CLI code touched.
closes#163
Exercise the construction op-script service (#157) purely as a downstream
consumer authoring topology as data: discover-then-author an SMA-crossover
bias, author-with-`--unwired`, and 15 error-ergonomics fixtures. Public
interface only (the C24 ledger + the CLI's own output); no implementation
source read.
Confirmed working: discover→author round-trip, the `--unwired` by-identifier
authoring aid, eager per-op diagnostics. Surfaced one bug + frictions, all
reproduced and filed forward:
- #161 (bug): `graph build` accepts a dataflow cycle — DAG invariant 5
unenforced; reproduced directly before filing.
- #162: construction error/bind ergonomics (raw-index finalize, Debug-struct
bind-mismatch, undiscoverable typed-Scalar bind).
- #28: no CLI consumer for the emitted #155 blueprint (round-trip dead-ends).
- #159: construction surface undiscoverable from the CLI usage/help.
FINDINGS.md carries the full report + the triage table. The two 1.4 MB
self-contained viewer HTML dumps from the round-trip check are dropped as
bloat (the byte-identical result is recorded in FINDINGS).