diff --git a/docs/design/contracts/c14-headless-two-faces.md b/docs/design/contracts/c14-headless-two-faces.md index 985f772..e6a1324 100644 --- a/docs/design/contracts/c14-headless-two-faces.md +++ b/docs/design/contracts/c14-headless-two-faces.md @@ -31,6 +31,20 @@ frozen deploy artifact ([invariant 8](c13-hot-reload-frozen-deploy.md)) cannot pick up. Usage lines follow the clap house style (`Usage: aura …`); refusal diagnostics stay unprefixed, since a diagnostic is not a usage line. +**The stderr class markers (#278/#313).** Diagnostics on a *continuing* run +carry a stable class marker the exit code cannot supply: `aura: note: ` +for a benign, expected diagnostic — a gate-emptied cell, a skipped tap, an +all-zero-trade walk-forward — where the run stays valid and the exit code is +unaffected (a null result is a valid research result, #198); and +`aura: warning: ` for a recorded fault or suspect condition the run +survives — a failed cell feeding exit 3, a failed scaffold git step, a stale +hot-reload dylib. Error lines that accompany a non-zero exit — and plain +info lines such as the run-record summary — keep the bare `aura: ` prefix; +for errors, the exit-code partition below is the machine contract. +The markers are grep-stable: `grep '^aura: warning: '` isolates faults, +`grep '^aura: note: '` benign notices. The grammar's single source is +`aura-cli/src/diag.rs`; the few runner-side literals repeat it verbatim. + **The exit-code partition** is a durable part of the automation contract: a caller branches on the failure class without parsing stderr. diff --git a/docs/glossary.md b/docs/glossary.md index c12f97e..0f99dba 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -305,6 +305,10 @@ System Quality Number — `√n · mean_R / stdev_R`: the dispersion- and trade- **Avoid:** — (superseded) **Superseded (2026-06-28 C10 reframe): there is no Stage-2 currency/compounding gate.** Research is one pure feed-forward R loop — gross R → net R via the `cost model` — with money, compounding, and a real broker living only at a separate later **live / deploy edge** (compounding is a post-hoc money-management transform of the net-R sequence, not an in-loop axis). The pre-reframe cleave gated a Stage-2 currency / fixed-fractional / realistic-broker layer behind `E[R] > 0`; **"Stage-1"** now survives only as a historical cycle name — the shipped feed-forward R chain's identifier family was renamed to the r-family (`r-sma` / `r-breakout` / `r-meanrev`, #174) — not one half of a two-stage gate. +### stderr class marker +**Avoid:** log level, severity tag +The stable prefix pair separating diagnostics on a continuing run: `aura: note: ` marks a benign, expected outcome (exit code unaffected), `aura: warning: ` a recorded fault or suspect condition the run survives. Error lines that accompany a non-zero exit and plain info lines keep the bare `aura: ` prefix — for errors, the exit-code partition (C14) is the machine contract. + ### strategy **Avoid:** — A reusable composite-node blueprint — broker-, data-, and viz-independent, inputs declared as named roles — whose output is the **bias** stream (unsized direction + conviction; not an equity curve, not a size; sizing and the position table are derived downstream layers). Frozen with a broker into a bot for deploy.