Wire an aura run CLI that bootstraps and runs a sample harness end-to-end #8

Closed
opened 2026-06-04 15:25:33 +02:00 by Brummel · 0 comments
Owner

crates/aura-cli/src/main.rs is a stub ("no subcommands yet"). This issue is
the closing seam of the walking skeleton: a CLI that bootstraps and runs a
complete harness and emits its metrics.

Scope

Replace the stub with a run subcommand that bootstraps a sample harness
(C19) — source -> signal -> exposure node (#4) -> sim-optimal broker (#5) ->
sink — runs it deterministically (C1), and emits the structured metrics +
manifest (#6). The harness is authored in Rust via the builder API (C17/C20);
the CLI only selects and runs it, it carries no strategy logic.

The engine ships the sample harness with a sink so a newcomer sees a
populated trace immediately (C22). The harness is the closed root graph (C20):
input roles bound to a source, output terminated in broker + sink, under a
clock — C1's disjoint unit, not a node.

Source can start on synthetic data and switch to the data-server source (#7)
once that lands; the two are interchangeable at the ingestion boundary (C3).

Anchors

• C14 — programmatic/CLI face; structured metrics out.
• C17 / C20 — harness authored in Rust via builder API; CLI selects and runs.
• C19 — bootstrap blueprint -> frozen instance.
• C22 — sample harness ships with a sink (populated trace).

Depends on

#4 (exposure node), #5 (sim-optimal broker), #6 (metrics + manifest).
#7 (data-server ingestion) optional — the sample may run on synthetic data
until #7 lands.

Acceptance

[ ] aura run bootstraps and runs the sample harness end-to-end.
[ ] The sample harness includes a sink; a run records a displayable trace.
[ ] The run emits the structured metrics + manifest from #6.
[ ] Harness wiring is Rust (builder API); the CLI holds no strategy logic.

crates/aura-cli/src/main.rs is a stub ("no subcommands yet"). This issue is the closing seam of the walking skeleton: a CLI that bootstraps and runs a complete harness and emits its metrics. ## Scope Replace the stub with a run subcommand that bootstraps a **sample harness** (C19) — source -> signal -> exposure node (#4) -> sim-optimal broker (#5) -> sink — runs it deterministically (C1), and emits the structured metrics + manifest (#6). The harness is authored in Rust via the builder API (C17/C20); the CLI only selects and runs it, it carries no strategy logic. The engine ships the sample harness **with** a sink so a newcomer sees a populated trace immediately (C22). The harness is the closed root graph (C20): input roles bound to a source, output terminated in broker + sink, under a clock — C1's disjoint unit, not a node. Source can start on synthetic data and switch to the data-server source (#7) once that lands; the two are interchangeable at the ingestion boundary (C3). ## Anchors • C14 — programmatic/CLI face; structured metrics out. • C17 / C20 — harness authored in Rust via builder API; CLI selects and runs. • C19 — bootstrap blueprint -> frozen instance. • C22 — sample harness ships with a sink (populated trace). ## Depends on • #4 (exposure node), #5 (sim-optimal broker), #6 (metrics + manifest). • #7 (data-server ingestion) optional — the sample may run on synthetic data until #7 lands. ## Acceptance [ ] aura run bootstraps and runs the sample harness end-to-end. [ ] The sample harness includes a sink; a run records a displayable trace. [ ] The run emits the structured metrics + manifest from #6. [ ] Harness wiring is Rust (builder API); the CLI holds no strategy logic.
Brummel added this to the Walking skeleton milestone 2026-06-04 15:25:33 +02:00
Brummel added the feature label 2026-06-04 15:25:33 +02:00
Brummel referenced this issue from a commit 2026-06-04 21:18:33 +02:00
Brummel referenced this issue from a commit 2026-06-04 21:18:33 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#8