Plan-first workflows
Use when: you want the model to think through the change first, commit that thinking to an artifact a human can review, and only then start editing. Common in code-review flows, migrations, change-management environments, and unattended runs where a bad plan is cheaper to catch than a bad diff.
How it works
Section titled “How it works”core-agent has a plan-first posture with two strengths, picked
via permissions.plan_mode:
required— the permission gate refuses every mutating tool (write_file,edit_file,delete_file,bashwith non-read-only commands,spawn_agent, MCP writes) until the model has calledrecord_planfor the current turn. The plan is a precondition.advisory—record_planis registered and the artifact is persisted exactly the same way, but nothing is blocked. The plan is an audit trail: the agent records what it’s about to do and then does it in the same turn.
Reach for required when a human is genuinely going to read the plan
before the diff lands. Reach for advisory for unattended runs where
you want the reasoning on file but there is nobody to approve it — an
armed gate with no approver just stalls the run.
Where the details live
Section titled “Where the details live”- Configuration → Plan mode — the mode table, composition with
permissions.mode, migration off the deprecated bool. - Built-in tools → Planning — the
record_plantool the model calls, its schema, and its mode-aware description. - Agent design → System instructions — how to phrase the
AGENTS.mdso the model reaches for a plan naturally.