Skip to main content

CI Runner Proof

ci-runner-proof is not a governed product app. It is a repo-native proof pack for runner authors who need to exercise AgentXchain directly from code instead of shelling out to agentxchain step, plus the adjacent real-dispatch CI proofs that keep unattended execution claims honest.

What It Is

  • Category: runner proof example
  • Surface: runner-interface
  • Source: examples/ci-runner-proof

Workflow Or Proof Shape

  • Primitive proof: initialize, assign, stage, accept
  • Full lifecycle proof: PM -> Dev -> QA with approvals and retries
  • Composition proof: runLoop on top of the primitive layer
  • Real API dispatch proof: runLoop + api_proxy
  • Operator-surface proof: agentxchain run --auto-approve in a real subprocess
  • Multi-phase write proof: 3-phase lifecycle with write-owning (proposed) turn, real gate artifact check, explicit phase_gate_status proof for auto-advanced gates, and a strict proposed-authority contract (artifact.type: "patch" plus proposed_changes[], not raw workspace writes)

How AgentXchain Governs This Example

AgentXchain governs this example by keeping the boundary honest:

  • the primitive proofs use the public runner interface instead of internal helpers
  • the CLI auto-approve proof intentionally shells out to the real agentxchain run binary to prove the shipped operator surface, not a local helper or a second runner
  • the proof pack keeps runner-boundary proof and CLI-boundary proof separate instead of pretending they are the same contract

The CLI auto-approve proof is not a second runner. It is the operator-surface check for the shipped binary.

This is a proof example, not a generated governed app. The governance value is the boundary discipline itself.

Fresh Governed CLI Run

Recorded on 2026-04-13 with AgentXchain v2.83.0.

This was a fresh execution of the shipped proof command:

node examples/ci-runner-proof/run-via-cli-auto-approve.mjs --json

The proof ran against the real CLI binary, used real api_proxy dispatch to Anthropic Haiku, and passed on the first attempt.

FieldRecorded value
Resultpass
Attempts used1
Run IDrun_42f62404493863ad
CLI exit status0
Accepted turns2
Role orderplanner -> reviewer
Total cost$0.012
Real API-backed turns2
Governance export/reportgenerated during the temp run

Trimmed payload from the recorded proof:

{
"runner": "ci-cli-auto-approve-proof",
"cli_version": "2.83.0",
"result": "pass",
"cli_exit_status": 0,
"artifacts": {
"state": {
"status": "completed",
"phase": "review",
"run_id": "run_42f62404493863ad"
},
"history": {
"entry_count": 2,
"roles": ["planner", "reviewer"]
},
"ledger": {
"entry_count": 4
},
"cost": {
"total_usd": 0.012,
"real_api_calls": 2
}
},
"attempts_used": 1
}

Operator-visible output from the same run ended with:

Turn accepted: turn_67a6cb067f1ced39
Run completed

─── Run Summary ───
Status: completed
Turns: 2
Gates: 0 approved
Errors: none

The proof uses a temp workspace and deletes it after validation, so the report/export paths are intentionally ephemeral. The durable claim is that the run completed, wrote governance artifacts while it was live, and produced non-zero model cost on both accepted turns.

Run It

node examples/ci-runner-proof/run-one-turn.mjs
node examples/ci-runner-proof/run-to-completion.mjs
node examples/ci-runner-proof/run-with-run-loop.mjs
node examples/ci-runner-proof/run-with-api-dispatch.mjs
node examples/ci-runner-proof/run-via-cli-auto-approve.mjs
node examples/ci-runner-proof/run-via-cli-auto-approve.mjs --json
node examples/ci-runner-proof/run-multi-phase-write.mjs

Key Takeaways

  • Use this when you are building a non-CLI runner.
  • Prove the primitive layer before you build higher-level orchestration.
  • Do not call a CLI wrapper a second runner.
  • Keep the CLI proof separate from the runner proof. They defend different failure boundaries, and the case-study block above is the real operator-surface evidence.
  • For the multi-phase CI proof, read phase_gate_status as the authoritative gate-pass signal. gates_approved only counts gates that paused for approval.
  • For the multi-phase CI proof, proposed api_proxy turns are only valid when they return structured proposals. Illegal workspace artifacts are rejected by design.