Skip to content

Add Goal Mode initiation and termination policy ablations - #63

Open
xisen-w wants to merge 1 commit into
codex/bootstrap-basefrom
feat/goal-policy-ablations
Open

xisen-w wants to merge 1 commit into
codex/bootstrap-basefrom
feat/goal-policy-ablations

Conversation

@xisen-w

@xisen-w xisen-w commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Change and reason

Goal Mode always started every agent and accepted the first completion claim. This made it impossible to test whether eager initiation and early termination caused duplicate work or premature close.

This change adds explicit, backward-compatible policies:

  • --initiation-policy all|random-single
  • --termination-policy first|all-agents
  • --policy-seed <uint32> for deterministic random-single selection

all-agents accepts one exact completion claim from each joined agent, then runs a fresh semantic verifier. A failed verifier clears the confirmations and starts another repair round. Hard time, token, count, idle, and owner-close bounds still stop the run. episode.json and policy.ndjson record the selected starter, starts, confirmations, quorum, ignored or duplicate claims, and verifier resets.

The default remains all + first. Frozen --harness-mode profiles reject policy overrides. The CLI also rejects completion settings that could bypass the all-agent quorum.

The new goal policy ablation runbook gives controlled-English instructions for the 2×2 experiment, artifact audit, randomized arm order, frozen controls, and hidden-grader boundary. It identifies the token threshold as soft because the current runner observes usage after a turn.

Verification

  • pnpm check:export — 95 allowlisted files
  • pnpm typecheck
  • pnpm test — 502 Vitest tests passed, 1 skipped; 16 process tests passed
  • pnpm build
  • pnpm test:package — installed-package smoke passed
  • 108 focused policy tests
  • All 10 runbook shell blocks pass bash -n
  • Two independent reviews found no blocker
  • CI passes on Node 22, 24, and 26, including secret scan

The no-model 2×2 coverage is a runner integration with fake Docker and service boundaries. It covers all four arms, exact start behavior, cross-turn all-agent quorum, no early close, verifier failure resets, evidence files, token bounds, and owner close. No model call or paid experiment was run.

Compatibility and release

Existing commands keep the all + first behavior. The change adds fields to episode.json and a new policy.ndjson artifact. It does not change credential formats or require a newer server.

A source merge does not publish a package. This PR does not enable auto-merge or release anything.

Add deterministic random-single initiation and an all-agent completion barrier. Record policy evidence and document the reproducible four-arm experiment procedure.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant