Campaign Result Contract¶
Campaign execution writes one primary self-contained result:
runs/campaign/<campaign-id>/campaign_plan_result.json
The current schema is campaign_plan_result_v5.
Required Sections¶
| Field | Meaning |
|---|---|
schema_version |
Result contract version |
campaign_id |
Campaign identifier when present in the request |
status |
Top-level planner outcome |
selected_strategy |
Strategy selected for the result |
summary |
Headline assignments, events, duration, propellant, and closure |
request_snapshot |
Canonical request that was evaluated |
selection |
Strategy/refinement choice and feasibility signals |
campaign_summary |
Assignment, event, mission-burden, objective, and target summaries |
reference_policy |
Reference and comparison policy recorded by the planner |
assignments |
Satellite-to-asset, plane, and slot assignments |
events |
Ordered campaign event sequence |
missions |
Mission-level outcomes on the selected path |
diagnostics |
Decision-path and execution diagnostics |
request_snapshot is required. It makes the result reviewable without the
original authoring file and is the correct input for comparison and provenance.
Status Model¶
Top-level status accepts:
successpartialinfeasiblefailed
campaign_summary.status_class provides the engineering review class:
successpartial_successinfeasibledegradedfailed
The process exit status and the campaign engineering status answer different questions. A successful execution can correctly return a partial or infeasible campaign.
Review Order¶
- Read
statusandcampaign_summary.status_class. - Check target closure and residuals in
campaign_summary.target_summary. - Inspect assignments and overrides.
- Review event sequencing and total burden.
- Drill into non-success missions and reason codes.
- Use
selectionanddiagnosticsto understand why the path was chosen.
Mission solve reuse, when enabled, is reported through aggregate cache counters and diagnostics. A reused exact-signature result records provenance while the campaign contract and source mission outcome remain available for review.
Optional Mission Bundles¶
With mission_artifact_detail: full, Astraeus may also write:
campaign_plan_result.missions/
|-- campaign_mission_bundles_manifest.json
`-- <satellite-id>/
|-- mission_plan_request.json
`-- mission_plan_result.json
These side bundles support targeted drilldown;
campaign_plan_result.json remains the campaign authority.
Deterministic Review¶
astraeus review campaign --result <campaign_plan_result.json>
The review is a deterministic reader of the saved result and writes a compact markdown assessment while leaving campaign execution unchanged.
When comparing variants, compare the embedded request snapshot, outcome class, target closure, mission burden, and sequencing—not only total duration or propellant.