Campaign operator tools
Three read-only helpers — campaign ready, campaign signals, and campaign|controller validate — that surface checkpoint, signal, and contract evidence before you start autonomous improvement. They never invent scopes, metrics, or promote/rollback decisions.
1. Ready
$ nfltr orch campaign ready --task TASK_ID
$ nfltr orch campaign ready --task TASK_ID --scope relay --checkpoint-id ckpt-1 --json
Exit 0 when a matching mutation checkpoint is recorded; exit 3 when blockers remain.
2. Signals
$ nfltr orch campaign signals --scope relay --limit 25
$ nfltr orch campaign signals --task TASK_ID --json
Lists observed task_failure / verification_failure candidates with checkpoint presence. You choose which become campaigns.
3. Validate
$ nfltr orch campaign validate --contract-file ./campaign.json
$ nfltr orch controller validate --policy-file ./controller.json
Dry-runs the same normalize rules as create. Exit 3 on INVALID.
Suggested flow
$ nfltr orch campaign signals --scope my-scope
$ nfltr orch task checkpoint create --task TASK_ID --checkpoint-id ckpt-1 --scope my-scope
$ nfltr orch campaign ready --task TASK_ID --scope my-scope --checkpoint-id ckpt-1
$ nfltr orch campaign validate --contract-file ./campaign.json
$ nfltr orch campaign create --task TASK_ID --contract-file ./campaign.json
$ nfltr orch campaign story --task TASK_ID --campaign-id CAMP_ID