Agent Harness · Reference sheet

Tool equivalents

One row per harness layer, across Claude Code, Codex and Antigravity. Badges mark version-specific and unverified cells.

Last verified 2026-09-30Claude Code v2.1.284 was the local version. Codex docs moved to learn.chatgpt.com in 2026. version-specific cells will change: re-check them against the changelog when a tool updates. unverified cells are gaps in the sources: test them on your installed version before relying on them.

Claude Code only: the quick view If you use Codex or Antigravity, the table below is your map; otherwise you can skip those two columns.

Legend. version-specific = true for the version checked on the date shown; re-check after an update. unverified = test it yourself before relying on it.

LayerClaude CodeCodexAntigravity
Rules file & load orderCLAUDE.md; or AGENTS.md when no CLAUDE.md / .claude/CLAUDE.md / CLAUDE.local.md exists v2.1.277+ · verified 2026-09-30. At start: cwd and parents; subdirectory files when a file there is read. Fallback: CLAUDE.md = @AGENTS.md. Under 200 lines~/.codex/AGENTS.md (or AGENTS.override.md), then each directory git root to cwd (override, AGENTS.md, fallbacks); concatenated root-down, closer later; 32 KiB default (project_doc_max_bytes) verified 2026-09-30AGENTS.md / GEMINI.md as always_on; .agents/rules/*.md (flat; legacy .agent/rules/). Global: ~/.gemini/AGENTS.md or GEMINI.md verified 2026-09-30
Path-scoped rules.claude/rules/*.md with paths: (YAML list of globs); loads when a matching file is read; no paths = always verified 2026-09-30Nested AGENTS.md in the directory (root-down concatenation). Glob-scoped rule files: unverified.agents/rules/*.md with frontmatter trigger: glob and globs:; other triggers always_on, model_decision, manual verified 2026-09-30
Skills: location & invocation.claude/skills/<name>/SKILL.md; per-skill symlink to .agents/skills/<name> works. /name or model-chosen from description; disable-model-invocation: true = manual only. A personal skill beats a project skill with the same name verified 2026-09-30.agents/skills/<name>/ in cwd and repo root; ~/.agents/skills; /etc/codex/skills. $skill-name or implicit verified 2026-09-30.agents/skills/<name>/SKILL.md (name, description). /name or chosen automatically verified 2026-09-30
Workflows / custom commandsCustom commands were merged into skills verified 2026-09-30Custom prompts (~/.codex/prompts) deprecated in favour of skills verified 2026-09-30Workflows deprecated in favour of skills by 2026-11-01; migrate with /migrate-workflows date-specific · verified 2026-09-30. Workflow file path: unverified
Subagents.claude/agents/<name>.md; name and description required; tools allowlist; model. Own context window. Invoke by natural language, @-mention (guarantees it), or --agent. /agents wizard removed in v2.1.198 verified 2026-09-30TOML in .codex/agents/ or ~/.codex/agents/: name, description, developer_instructions required; optional model, sandbox_mode (e.g. "read-only") verified 2026-09-30.agents/agents/<name>.md with name, description, tools, model verified 2026-09-30
Hooks: eventshooks in settings.json. Events include SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, PreCompact and others. Block: exit 2 or JSON deny. ${CLAUDE_PROJECT_DIR} verified 2026-09-30.codex/hooks.json (or config.toml). SessionStart, SessionEnd, PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, UserPromptSubmit, SubagentStart, SubagentStop, Stop, Interrupt verified 2026-09-30.agents/hooks.json. PreToolUse, PostToolUse, PreInvocation, PostInvocation, Stop. PreToolUse decision allow | deny | ask verified 2026-09-30
Permission rulespermissions.allow / ask / deny: Bash(git commit *), Read(./.env). Deny, then ask, then allow. Allow rules need workspace trust. Precedence: managed > CLI > settings.local > settings > user verified 2026-09-30.codex/rules/*.rules or ~/.codex/rules/default.rules: prefix_rule(pattern=[...], decision="allow|prompt|forbidden", justification=...); most restrictive wins verified 2026-09-30Deny / Ask / Allow lists: command(git), read_file(path), write_file(path) verified 2026-09-30
Approval / permission modesdefault (UI "Manual"), acceptEdits, plan, auto, dontAsk, bypassPermissions; Shift+Tab cycles modes; permissions.defaultMode "Manual" since v2.1.200 · verified 2026-09-30. Sessions start in auto v2.1.283+ · verified 2026-09-30approval_policy: on-request | never | granular | auto_review; untrusted is retired ("can prevent either client from starting") verified 2026-09-30Presets: Default, Request Review, Turbo; terminal auto-execution setting verified 2026-09-30
SandboxPermission rules and OS sandboxing unverifiedsandbox_mode: read-only | workspace-write | danger-full-access; project .codex/config.toml loads only when the project is trusted verified 2026-09-30enableTerminalSandbox unverified
MCP configclaude mcp add --transport http <name> <url> or claude mcp add <name> -- <cmd>; scopes local (~/.claude.json), project (.mcp.json), user. Project servers need approval; reset: claude mcp reset-project-choices verified 2026-09-30[mcp_servers.context7] in config.toml with command/args or url; CLI codex mcp add <name> -- <cmd> verified 2026-09-30.agents/mcp_config.json (workspace) or ~/.gemini/config/mcp_config.json: {"mcpServers":{"name":{"command","args"}}}; remote: serverUrl verified 2026-09-30
Plan stepPlan mode (Shift+Tab): no source edits until you approve a plan; with auto mode available, a classifier may approve shell commands; or a /plan prefix on one prompt verified 2026-09-30Ask for a plan under a read-only sandbox unverified/plan produces an Implementation Plan artifact verified 2026-09-30
Attributionattribution: portable {"commit":"","pr":"","sessionUrl":false}; false needs v2.1.281+ · older versions skip the whole file; includeCoAuthoredBy deprecated since v2.0.62Does Codex add a co-author trailer by default? unverified (conflicting sources; make a test commit)Not documented unverified (make a test commit; the commit-msg hook catches a trailer either way)
Transcript location/export [filename] (plain text); raw JSONL at ~/.claude/projects/<project>/<session>.jsonl; subagents under <session>/subagents/ verified 2026-09-30~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl unverified (community sources only)Not documented unverified
Output style/output-style learning (built-in Learning: TODO(human) plus Insight); saved to .claude/settings.local.json. It is an instruction, not a guarantee verified 2026-09-30None as of 2026-09-30 unverifiedNone as of 2026-09-30 unverified

Tool-neutral homes: AGENTS.md and .agents/skills/ work in all three. Guards 3 and 4 (git hooks and guard tests) are tool-neutral by construction. The paths in the Claude Code column are the course's working setup; the other columns are how you would build the same layers elsewhere.

Sources

Claude Code

Codex

Antigravity and standard


Taught in: Lesson 1: How an agent works · Lesson 2: Rules files · Lesson 4: Plan-gated workflow · Lesson 5: Skills · Lesson 6: Reviewer subagents · Lesson 7: Guards · Lesson 8: MCP · Lesson 10: Evidence and honesty
Other sheets: AGENTS.md structure · The four guards · Commit skill · 1-3-1 · Glossary