feat(campaign): aura-campaign crate — types, member_metric, preflight (0107 tasks 4-5)

New leaf library crate: the campaign-execution semantics home (#198
home decision — reusable beyond the CLI; NOT C21's project-side
World). CellSpec + the MemberRunner seam (the only thing a consumer
implements), MemberFault/ExecFault (Display-free, prose at the binary
seam), member_metric over the 14 per-member scalars (third roster
site, refs #190 — drift fails safe as a preflight refusal), and
preflight: v1 pipeline shape std::sweep [std::gate]* [std::walk_forward],
rankable-metric and gate-metric rosters, plateau-in-wf and
deflate+plateau refusals, i64-fit guard on wf lengths — all before any
member runs.

Post-loop: the held quality finding (untested i64-fit arm) verified
real and closed by hand — preflight_refuses_wf_length_exceeding_i64.

Gates: aura-campaign 14/0, clippy -D warnings clean.

refs #198
This commit is contained in:
2026-07-03 19:59:21 +02:00
parent b43def7d75
commit 3a4f1c4597
5 changed files with 762 additions and 0 deletions
Generated
+13
View File
@@ -105,6 +105,19 @@ dependencies = [
"serde_json",
]
[[package]]
name = "aura-campaign"
version = "0.1.0"
dependencies = [
"aura-analysis",
"aura-core",
"aura-engine",
"aura-registry",
"aura-research",
"serde",
"serde_json",
]
[[package]]
name = "aura-cli"
version = "0.1.0"