Appendix B Checklists: How to Tell Whether Your Harness Resembles Claude Code, Codex, or an Unfinished Prototype

If comparison cannot be reduced into checklists, what remains is usually a set of well-phrased but hard-to-use conclusions. This appendix compresses the previous chapters into questions a team can actually discuss.

B.1 Control-plane checklist (invariants)

assert every instruction has {source, type, precedence}        # fragments are identifiable
assert prompt separates control plane from output style        # tone ≠ order
assert local-rule scope (CLAUDE.md / AGENTS.md) explicitly labeled
assert team-rule changes land via diff                         # not oral agreement

If these cannot be answered, the control plane is still at "good enough to use" rather than "good enough to govern."

B.2 Continuity checklist (invariants)

assert continuity sovereignty ∈ {main loop, thread+rollout+state}  # pick one explicitly
assert interrupt ⇒ tool_result closed (synthetic fallback counts)
assert long session has compact / truncation / recovery trio
assert thread.id / session indexing / persisted state = first-class concepts

If long sessions rely on the model to "remember," you do not need the rest of the evaluation.

B.3 Tool and approval checklist (invariants)

assert tool = schema-typed interface, additional_properties=false
assert approval policy independently evaluable (not buried in code if/else)
assert high-risk tools (Bash etc) get dedicated governance       # not flat treatment
assert {workdir, network, sandbox, approval} explicitly expressible

If the only answer is "we also have permission controls," the permission system has not been designed.

B.4 Local governance checklist (invariants)

assert local rules layerable by {directory, team, task type}
assert skill = reusable institutional slice, not long prompt    # has version / source
assert hooks attach to explicit lifecycle events (pre/post/session_start/stop)
assert {skill, rule, hook} carry {version, source, trigger boundary}

B.5 Multi-agent and verification checklist (invariants)

assert multi-agent's first purpose is responsibility split; parallelism is a bonus  # else it is parallelized disorder
assert independent verifier exists (verifier ≠ implementer)
assert delegation = explicit tool or explicit state event, not runtime magic
assert child-agent {failure, timeout, cancel} ⇒ named cleanup owner

B.6 Which kind of system are you closer to?

Signals that you are closer to Claude Code:

  • you care most about query loop, tool orchestration, interrupts, compaction, and recovery
  • you are good at getting rules into the live session quickly
  • you care primarily about how an agent keeps running inside complex tasks

Signals that you are closer to Codex:

  • you care most about instruction fragments, tool schemas, approval policy, thread / rollout / state
  • you are good at turning local rules into structured assets
  • you care primarily about how an agent is governed durably inside an organization

Signals that you are closer to an unfinished prototype:

  • you can recite vocabulary from both sides, but cannot explain who owns order
  • you have many capability entry points, but no clear recovery path
  • you have many rule texts, but no scope or precedence
  • you have multi-agent execution, but no separation of responsibility and no closure mechanism

B.7 Six final questions

If time is short, ask only these six:

  • Who owns the final control, the model or the harness?
  • Does continuity live mainly in the loop, or in threads and state?
  • Before tools act, who stops the last dangerous move?
  • How do local rules enter the system, and how are they layered?
  • Who owns verification, and how is it kept independent?
  • After something goes wrong, what evidence lets the team trace the path back?

Once these six questions are asked, the system's political family usually reveals itself.

B.8 Thresholds & orderings quick reference

Name Value Purpose Source
MAX_ENTRYPOINT_LINES 200 entry file line cap Book 1 ch5 / memdir/memdir.ts
MAX_SECTION_LENGTH 2_000 session-memory per-section cap SessionMemory/prompts.ts
MAX_TOTAL_SESSION_MEMORY_TOKENS 12_000 session-memory total budget SessionMemory/prompts.ts
AUTOCOMPACT_BUFFER_TOKENS 13_000 autocompact warning buffer compact/autoCompact.ts
MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES 3 breaker threshold compact/autoCompact.ts
yield_time_ms per-tool max ms a single exec may block local_tool.rs
wait_agent.timeout min/default/max child-agent wait window agent_tool.rs
Bash subcommand cap implicit max compound subcommands per call bashPermissions.ts

Event orderings:

  • session_start → user_prompt_submit → pre_tool_use → tool exec → post_tool_use → stop
  • spawn_agent → send_input* → wait_agent → close_agent (cascades to descendants)
  • PTL → collapse → reactive compact → if still PTL, surface error (no further loop)

results matching ""

    No results matching ""