Skip to content

Running Campaigns

Validate a request before solving it:

astraeus campaign-plan validate --input <request.yaml>

Then execute:

astraeus campaign-plan run --input <request.yaml>

The default output is runs/campaign/<campaign-id>/campaign_plan_result.json. Use --output when a study requires a different explicit path.

Packaged Example

astraeus campaign-plan validate --input astraeus-resources/examples/user/deployment-campaign.yaml
astraeus campaign-plan run --input astraeus-resources/examples/user/deployment-campaign.yaml

This example deliberately returns partial success. The command itself completes normally; campaign closure is recorded inside the result and must be interpreted as engineering evidence.

Execution Options

Option Purpose
--output <path> Choose the result artifact path.
--mission-artifact-detail summary|full Select compact output or per-mission side bundles.
--mission-execution-backend serial|thread|process|auto Choose mission execution policy.
--mission-workers <n> Bound mission concurrency.
--mission-auto-parallel-threshold <n> Set the auto-backend scale threshold.
--mission-timeout-s <seconds> Bound one mission solve where timeout handling is required.
--mission-timeout-policy mark_failed|fail_campaign Select timeout outcome policy.
--campaign-execution-diagnostics Include execution-policy diagnostics.

Request-level solver settings supply defaults; explicit CLI options override them for that execution.

Summary Or Full Detail

Summary mode is the normal operating choice. It preserves mission outcomes inside the campaign result without materializing a separate bundle for every satellite.

Use full detail when individual mission requests and results need direct review:

astraeus campaign-plan run --input <request.yaml> --mission-artifact-detail full

The additional tree is written beside the main result:

campaign_plan_result.missions/
|-- campaign_mission_bundles_manifest.json
`-- <satellite-id>/
    |-- mission_plan_request.json
    `-- mission_plan_result.json

Full detail is currently all-or-nothing, so it can be expensive for large campaigns. Run summary-first and materialize full detail only when it is needed.

Review And Failure Handling

Generate a deterministic readable review:

astraeus review campaign --result <campaign_plan_result.json>

When execution fails, preserve the request and any written result or diagnostics. When execution succeeds but the campaign status is partial or unsuccessful, inspect target closure, mission outcomes, and reason codes rather than treating the result as a software failure.

Common causes of an unexpected location are a different campaign_id or an explicit --output. Unexpected mission volume normally means full artifact detail was selected in the request or on the CLI.

Next: Understanding results.