Complete the document-first migration: the run quintet's residual flags become document vocabulary #300
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
The #295 evaluation fixed the control-surface layering (C25 amendment, 2026-07-20: the text artifact vocabulary is the canonical layer; every control surface — executor verbs, a future host, an MCP face, a World program — is a projection/executor over those artifacts, never a second home for intent). The open direction fork — which projection is built next — was decided by the owner for the document-first completion (2026-07-21, minuted on #295): complete the document vocabulary first; any later host or MCP face would wrap the same completed vocabulary, so this work is the prerequisite of every successor surface.
Scope
Migrate the run quintet's residual flag vocabulary into document vocabulary, completing the #210 verb-dissolution line:
--axis,--from/--to,--stop-length/--stop-k,--select,--block-len,--resamples,--seeds. The quintet verbs reduce to thin executors over generated documents; the CLI converges on a small executor verb set.Context
Carried from #227 (closed as superseded by this issue): when the select field's document shape is designed here, consider whether a bare
plateauvalue should default its aggregation tomean— the ergonomics ask #227 recorded against the CLI parser. The document vocabulary's current mirror (SelectRule, crates/aura-research/src/lib.rs) keeps the same strict grammar (argmax | plateau:mean | plateau:worst).Design triage for this cycle (2026-07-21)
A five-stance grounded design swarm (minimalist / power-user-composability / maintainer / skeptic / off-ledger wildcard) populated the load-bearing forks of the document-first completion. Each fork below is a derived orchestrator decision carrying its cited shared ground. Established baseline (recon, re-verified against the tree): on the
--real/campaign arm every residual flag ALREADY translates into a document field (--axis->StrategyEntry.axes; stops ->CampaignDoc.risk;--from/--to->DataSection.windows;--select/MC knobs ->StageBlock;--seed->CampaignDoc.seed; crates/aura-cli/src/verb_sugar.rs translators); the synthetic (non---real) arms andmc --seedsbypass documents entirely (flags flow straight to aura-runner family builders, stop hardcoded);aura campaign run <target> [--parallel-instruments]is the shipped flagless executor precedent.--parallel-instrumentsonly;CampaignDoc.seedsuffices, no invocation-level seed override. Ground: the shipped executor grammar (crates/aura-cli/src/research_docs.rs:330-344); the glossary's "campaign run" entry ("deterministic from doc + stores + data (C1): ... seed from the doc'sseed"); the translate_* content-id collision tests pin that a seed/stop change changes document identity — an argv override would let a run diverge from its own stored id.runstays a direct executor; not document-mediated. Ground: #300's scope list names none of run's flags; the glossary's atomic sim unit is distinct from a campaign. (Noted as a future option, not decided: run as a degenerate single-member campaign for compositional parity.)mc --seedsgets no document form this cycle — follows F1; the synthetic seed family is the synthetic arm's own knob.CampaignDoc.riskis a Vec — the structural matrix dimension) that generalize's typed single pair cannot express; the unified grammar must preserve that axis capacity, so the concrete form follows the verified semantics.plateauselect value defaults toplateau:mean. Ground: #227's own text proposes exactly this ("the documented default aggregation, mirroring how the stop flags default since #217"), carried onto this issue at #227's close; three lenses converged. The wildcard's counter-reading of C25's forbids-clause fails against a documented default (it forbids implicit holes, not documented defaults).Two surfaced concerns adopted into the cycle's scope:
aura campaign {validate,introspect,register,run,runs}cannot export a registered document by content id back to editable JSON (crates/aura-cli/src/research_docs.rs:314-344 — introspect is file-only), undercutting the "durable, diffable" promise of verb_sugar.rs's own module doc. A read/export executor verb joins this cycle's scope as part of settling the executor verb set.StopRule::Vol { R_SMA_STOP_LENGTH, R_SMA_STOP_K }is hand-copied at four crates/aura-runner/src/family.rs sites — collapsed to one named default as a small tidy in this cycle.Status: design settled — ready for spec production.
Spec auto-signed (2026-07-21)
The cycle's spec — the document-first completion keystone: a
showread-back executor verb over the existing registry get API, typed stop knobs on walkforward/mc (three named tests adapted in the same change), bareplateaudefaulting toplateau:mean, the DEFAULT_STOP tidy in the assembly crate, and two ledger amendments (the C25 "which projection next" line resolved; a C18 read-back realization note) — was signed autonomously. The signature is an independent fresh-context grounding check returning PASS: all ten load-bearing assumptions about current codebase behaviour were ratified against currently-green tests.Process note: a first grounding dispatch returned BLOCK on three spec factual defects — a wrongly-denied test pin (three green tests DO pin the old bespoke stop error), a nonexistent ledger anchor (no "#206" paragraph in C18), and a misnamed helper (
Env::registry(), notregistry_for). The checker's own findings supplied the corrections; the spec was fixed in place and a fresh dispatch passed. No human signed; the owner was notified and retains a veto.Non-blocking snippet notes carried into planning:
parse_selectreturnsSelection::Plateau(PlateauMode::Mean)(mapped to the document'sSelectRulebyselect_rule_of, crates/aura-cli/src/main.rs:503), andEnv::registry()returnsRegistrydirectly, notResult.Audit close (2026-07-21)
Architect drift review over the cycle commit: core clean (C28 —
showis pure shell dispatch over the registry API; C25/C18 amendments match the F1-F8 decision log; document schema untouched). Four peripheral items resolved in the audit commit: the authoring-guide and glossary verb rosters caught up to the settled verb set;show_process's refusal prose single-sourced ontoref_fault_prose; and one deliberate deviation ratified here for the record — the shippedshowhelpers print with no trailing-newline framing (print!, the #164 transport rule, mirroringgraph_construct::build_cmd) where the spec's illustrative snippet sketchedprintln!; the code is the stricter form, and the round-trip tests pin the exact stored bytes, which is stronger than the spec required.Regression: the report-only bench ran green — all fingerprints OK, every lane within noise (host load 9.6 noted). Full workspace verification at the cycle commit: 1482 passed / 0 failed, clippy -D warnings clean, with the GER40-gated round-trip tests genuinely exercised.
Cycle outcome (2026-07-21)
The document-first cycle shipped on the branch
worktree-issue-300-document-first, unmerged, awaiting review — five commits above the anchor4ed6455:757e3ac— the keystone:aura process|campaign show <content-id>(canonical bytes, no framing — #164), typed--stop-length/--stop-kon walkforward/mc (three pinning tests adapted,stop_knob_or/parse_csv_listdeleted), bareplateauas the documentedplateau:meandefault (#227 carry, content-id-identical, test-pinned), theDEFAULT_STOPconstant fold, and the two ledger amendments (C25 direction line resolved; C18 read-back note).a12617b— audit close: architect core-clean; authoring-guide/glossary verb rosters caught up;show_processrefusal prose single-sourced; theprint!-over-println!deviation ratified on this log.63711a1— fieldtest corpus: four downstream-author examples over the real GER40 archive; all four axes hold (the closed generate → show → hand-extend → re-register → run loop ran end-to-end, first try, from public docs alone).803c970+da37f59— the fieldtest's one bug, RED-first:showoutside a project now names the missing Aura.toml instead of blaming the id (#304).Verification at head: full workspace suite 1483 passed / 0 failed, clippy
-D warningsclean; report-only bench green (all fingerprints OK).Filed forward during the close: #301 (opaque document-select refusal), #302 (
showprefix-id ergonomics), #303 (broken ger40-lab fixture paths, found orthogonally), #305 (registercreates a stray store outside a project, found during diagnosis). The fieldtest spec survives git-ignored as the next planning cycle's reference input.Status: work complete and gated; the branch awaits review and the ratified merge (which will close this issue and #304 via the commit trailers).