Explicit finalization path for harness-aware prompts:
zcl feedback --ok --result
or
zcl feedback --fail --result-json
Operator Guardrails
Native suite attempts now anchor timeout windows before native turn execution; stalled native attempts classify as
ZCL_E_RUNTIME_STALL
.
Native suite orchestration now guarantees terminal artifacts on failure paths (
feedback.json
+ best-effort
attempt.report.json
) for post-mortem continuity.
Campaign read/report/resume commands fail fast with
ZCL_E_CAMPAIGN_STATE_DRIFT
when persisted
campaign.run.state.json
disagrees with current spec mission selection (for example
totalMissions=0
on a non-empty selection).
For CI/automation, prefer
zcl campaign report --allow-invalid --json
to collect report payloads without branching on process exit codes; keep
zcl campaign publish-check
as the strict publish gate.
Campaign Guidance
Recommended native Codex flow:
flows
:
-
flowId
:
codex
-
native
runner
:
type
:
codex_app_server
sessionIsolation
:
native
runtimeStrategies
:
[
"codex_app_server"
]
feedbackPolicy
:
auto_fail
freshAgentPerAttempt
:
true
Mission-only recommended variant:
promptMode
:
mission_only
flows
:
-
flowId
:
codex
-
native
runner
:
type
:
codex_app_server
sessionIsolation
:
native
runtimeStrategies
:
[
"codex_app_server"
]
finalization
:
mode
:
auto_from_result_json
minResultTurn
:
3
resultChannel
:
kind
:
file_json
path
:
mission.result.json
Prompt Policy
Use exactly one mode per campaign:
promptMode: mission_only
(preferred): mission intent + output contract only; no harness terms.
promptMode: default
harness-aware prompts permitted.
Native Recommendation Criteria (Measured)
Codex native runtime is recommended when both hold in CI/nightly checks:
Reliability: native 20-attempt parallel smoke run success rate >= 95%.
Throughput: same run completes in <= 30 seconds on CI worker baseline.
Guard test path:
internal/interfaces/cli/suite_run_integration_test.go
(
TestSuiteRun_NativeParallelUniqueSessions
,
TestSuiteRun_NativeSchedulerRateLimitIsDeterministic
).
Templates
examples/campaign.canonical.yaml
examples/campaign.no-context.comparison.yaml
examples/campaign.no-context.codex-exec.yaml
examples/campaign.no-context.codex-subagent.yaml
examples/campaign.no-context.claude-subagent.yaml
examples/campaign.native.codex.minimal.yaml
examples/campaign.native.codex.advanced.yaml
docs/migration/shell-adapter-to-native-codex.md