audit: cycle 0110 tidy — verb-dissolution cycle 1 closed drift-clean
Architect review (scope e7c7bde..b7aaa0b) found three items; resolutions: - fix: docs/authoring-guide.md + glossary aligned with the shipped vocabulary (std::sweep selection group optional/all-or-nothing, selection-free = terminal-only, worked example verified against the live binary). - fix: the #203 wrapped/raw axis-name convention is now single-sourced in campaign_run.rs (wrapped_to_raw_axis + raw_matches_wrapped, a cross-documented inverse pair; dispatch_sweep and both bind sites call through it; inverse-property unit test). Ratify note: this unifies two previously different algorithms onto the documented first-segment semantics — the old loose ends_with suffix-match also accepted sub-segment shorthands (e.g. axis "length" against "sma_signal.fast.length") that no stored document or test used; such shorthands now refuse loudly (unbound/unknown axis) instead of matching, the refuse-don't-guess reading of #203. - carry: run_blueprint_sweep/blueprint_sweep_family remain generically real-capable though the dispatch no longer routes real data to them; the residual capability is shared DataSource machinery, its removal falls out with the built-in/synthetic branch retirement (#159), and the synthetic-only status is documented at the fn. What holds: C24 canonical form (flatten group leaves every stored content id unchanged, golden pin untouched), C18 lineage (topology_hash IS content_id_of, single store write resolves the strategy ref; selection-free arm still persists the full family), C25 closed- vocabulary discipline (all-or-nothing group, Blockly-clean), C3 (ms/ns conversion through the ingest seam's own named fn). Ledger: #109 open-thread status lifted to cycles 0107-0110 reality (executor shipped, amendment package landed, verb dissolution running as milestone #210 with sweep dissolved). Regression gates: cargo test --workspace 1056/0; clippy -D warnings clean; cargo doc clean. Cycle spec+plan removed at close per convention. refs #210
This commit is contained in:
+26
-4
@@ -122,18 +122,40 @@ block's typed slots headlessly:
|
||||
|
||||
```
|
||||
$ aura process introspect --vocabulary
|
||||
std::sweep evaluate the campaign's axes-space; reduce members to R metrics; select a winner
|
||||
std::sweep evaluate the campaign's axes-space; reduce members to R metrics; optionally select a winner (the selection group metric+select is all-or-nothing; omitted = selection-free, terminal-stage-only)
|
||||
std::gate filter survivors by a conjunction of typed metric predicates
|
||||
std::walk_forward rolling in-sample optimize + out-of-sample test
|
||||
std::monte_carlo R-bootstrap over realised R (terminal annotator): ...
|
||||
std::generalize cross-instrument worst-case floor (terminal annotator): ...
|
||||
$ aura process introspect --block std::sweep
|
||||
std::sweep — evaluate the campaign's axes-space; reduce members to R metrics; select a winner
|
||||
metric required, metric name (see metric_vocabulary)
|
||||
select required, select rule: argmax | plateau:mean | plateau:worst
|
||||
std::sweep — evaluate the campaign's axes-space; reduce members to R metrics; optionally select a winner (the selection group metric+select is all-or-nothing; omitted = selection-free, terminal-stage-only)
|
||||
metric optional, metric name (see metric_vocabulary)
|
||||
select optional, select rule: argmax | plateau:mean | plateau:worst
|
||||
deflate optional, bool
|
||||
```
|
||||
|
||||
`metric` and `select` form one **selection group**: all-or-nothing (a
|
||||
document naming one without the other is refused, "the selection group is
|
||||
all-or-nothing"), `deflate` composes only when the group is present. Omit
|
||||
the group entirely for a **selection-free sweep** — the family itself is
|
||||
the result, no winner is chosen. A selection-free sweep is only legal as
|
||||
the pipeline's *last* stage (the executor's preflight refuses one followed
|
||||
by any other block, since a downstream stage would have no nominee to
|
||||
consume):
|
||||
|
||||
```json
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "process",
|
||||
"name": "explore-only-sweep",
|
||||
"pipeline": [ { "block": "std::sweep" } ]
|
||||
}
|
||||
```
|
||||
|
||||
The executor records this stage's family (every member run) but no
|
||||
`StageSelection` and no nominee — recording a winner here would fabricate a
|
||||
selection intent the document never expressed.
|
||||
|
||||
### Worked example: full v2 pipeline (sweep → gate → walk-forward → Monte-Carlo → generalize)
|
||||
|
||||
```json
|
||||
|
||||
Reference in New Issue
Block a user