fix(aura-cli, aura-runner): review findings — duplicate --override refusal, live discovery prose, neutral JSON refusal
In-cycle fixes for the independent review of the #319 package, RED-first for both Importants. A repeated --override path now refuses at the shared lexer (exit 2, path named) instead of panicking exit 101 through reopen_all — which also un-misattributes the campaign leg's collision prose for duplicates. override_paths' refusal points at aura graph introspect --params (the retired --list-axes reference swept from every live comment, one explicitly-historical mention remains). exec classifies file targets through a Result-bearing peek: unparseable JSON refuses neutrally before any leg is chosen. RunPresentation (single-variant) removed; run_campaign_returning's contract note names its one deliberate usage-class exit; C14's routing sentence and C20's family-builder paragraph amended to current truth (superseded text to the history sidecars); bench error strings and deletion blank-line runs tidied. refs #319
This commit is contained in:
@@ -36,3 +36,18 @@ execution layer is unchanged (arg-plumbing via thin `*_from` adapters). The
|
||||
machine-first help surface (JSON/manifest help, stdin op-scripts) is
|
||||
deferred to the #157 / C21 track, distinct from this human/GNU-convention
|
||||
compliance."
|
||||
|
||||
**Current-state "Single document grammar" section's first-draft routing
|
||||
sentence (superseded by the #319 sugar retirement, 2026-07-25):** "one verb,
|
||||
`exec <target>`, dispatches on `is_blueprint_file` (a first-positional
|
||||
naming an existing `.json` file selects the loaded-blueprint leg; anything
|
||||
else — a campaign file or a registered content id — the campaign leg)." This
|
||||
undersold the routing by one layer: the code always also peeked the file's
|
||||
top-level `"kind"` field (`is_campaign_document_file`) to tell a campaign
|
||||
document ending in `.json` from a blueprint file — both being ordinary
|
||||
readable `.json` files `is_blueprint_file` alone cannot distinguish — and,
|
||||
after an independent review found a malformed campaign file was silently
|
||||
misrouted to the blueprint leg's own JSON-parse error prose, gained a
|
||||
neutral not-valid-JSON refusal ahead of the leg choice (review Minor-3,
|
||||
2026-07-25's fix cycle). The current contract's "Single document grammar"
|
||||
section names this real routing.
|
||||
|
||||
@@ -62,11 +62,16 @@ caller branches on the failure class without parsing stderr.
|
||||
**Single document grammar (#319, 2026-07-25).** The five dual-grammar
|
||||
subcommands (run/sweep/walkforward/mc/generalize) that used to keep two
|
||||
grammars under one token are retired; one verb, `exec <target>`, dispatches
|
||||
on `is_blueprint_file` (a first-positional naming an existing `.json` file
|
||||
selects the loaded-blueprint leg; anything else — a campaign file or a
|
||||
registered content id — the campaign leg). The execution layer this
|
||||
collapses onto is unchanged in kind (arg-plumbing via thin adapters). The
|
||||
machine-first help surface (JSON/manifest help, stdin op-scripts) is
|
||||
on `is_blueprint_file` layered with a "kind"-field peek
|
||||
(`classify_exec_document_file`): a first-positional naming an existing
|
||||
`.json` file that parses as JSON and carries no top-level `"kind"` selects
|
||||
the loaded-blueprint leg; a file carrying `"kind"`, or a target that is not a
|
||||
readable `.json` file at all (a registered content id), selects the campaign
|
||||
leg. A file that does not parse as JSON at all refuses neutrally (exit 2)
|
||||
before either leg's own document-shape validation runs, rather than
|
||||
silently choosing a leg (review Minor-3, 2026-07-25). The execution layer
|
||||
this collapses onto is unchanged in kind (arg-plumbing via thin adapters).
|
||||
The machine-first help surface (JSON/manifest help, stdin op-scripts) is
|
||||
deferred to the #157 / [C21](c21-world.md) track, distinct from this
|
||||
human/GNU-convention compliance.
|
||||
|
||||
|
||||
@@ -34,3 +34,16 @@ scaffolding's last data weld — `wrap_r`'s hard-wired `price`←close role and
|
||||
`M1Field::Close`-only open sites — is retired; a strategy's input roles now bind
|
||||
archive columns by name (C26). `wrap_r`'s remaining R-scaffolding retirement
|
||||
stays #159.]
|
||||
|
||||
**Current-state "Pre-C24 scaffolding retired" paragraph's family-builder
|
||||
naming (superseded by the #319 sugar retirement, 2026-07-25):** "The family
|
||||
builders are now generic and blueprint-driven: `blueprint_sweep_family`,
|
||||
`blueprint_walkforward_family`, `blueprint_mc_family` (and
|
||||
`blueprint_sweep_over`) in `crates/aura-runner/src/family.rs`." Those four
|
||||
functions are themselves retired by #319 (2026-07-25): the campaign executor
|
||||
(`aura_campaign::exec::execute`) builds every family now, driven by the
|
||||
process document's stage pipeline; `family.rs` keeps only the synthetic-
|
||||
stream helpers `aura_runner::reproduce` calls to re-derive a recorded family
|
||||
(`showcase_prices`, `walkforward_prices`, `walkforward_window_source`,
|
||||
`synthetic_walk_sources`, `DataSource`/`DataChoice`). The current contract's
|
||||
"Pre-C24 scaffolding retired" paragraph names this real state.
|
||||
|
||||
@@ -71,13 +71,20 @@ rather than a hand-enumerated menu. Persisted experiment *intent* is the campaig
|
||||
document (C25/C18).
|
||||
|
||||
**Pre-C24 scaffolding retired.** The pre-C24 scaffolding — `HarnessKind` and the
|
||||
per-strategy `*_sweep_family` functions — is **gone**. The family builders are now
|
||||
generic and blueprint-driven: `blueprint_sweep_family`, `blueprint_walkforward_family`,
|
||||
`blueprint_mc_family` (and `blueprint_sweep_over`) in
|
||||
`crates/aura-runner/src/family.rs`. The R-evaluator scaffold `wrap_r`
|
||||
(defined in `crates/aura-runner/src/member.rs`; imported and called from
|
||||
`runner.rs`) survives; its last hard data weld — the
|
||||
hard-wired `price`←close role and the `M1Field::Close`-only open sites — is retired
|
||||
per-strategy `*_sweep_family` functions — is **gone**. The generic blueprint-driven
|
||||
family builders that first replaced it (`blueprint_sweep_family`,
|
||||
`blueprint_walkforward_family`, `blueprint_mc_family`, `blueprint_sweep_over`) are,
|
||||
in turn, retired by the #319 sugar retirement (2026-07-25): the **campaign
|
||||
executor** (`aura_campaign::exec::execute`) now builds every family, driven by
|
||||
the process document's stage pipeline (`std::sweep`/`std::grid`,
|
||||
`std::walk_forward`, `std::monte_carlo`). `crates/aura-runner/src/family.rs`
|
||||
retains only the synthetic-stream helpers serving `aura_runner::reproduce`
|
||||
(`showcase_prices`, `walkforward_prices`, `walkforward_window_source`,
|
||||
`synthetic_walk_sources`, `DataSource`/`DataChoice`) — reproduction's own
|
||||
re-derivation path, not a family-minting path. The R-evaluator scaffold
|
||||
`wrap_r` (defined in `crates/aura-runner/src/member.rs`; imported and called
|
||||
from `runner.rs`) survives; its last hard data weld — the hard-wired
|
||||
`price`←close role and the `M1Field::Close`-only open sites — is retired
|
||||
(a strategy's input roles now bind archive columns by name, C26), and `wrap_r`'s
|
||||
remaining R-scaffolding retirement is tracked at #159.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user