# User expectations How the user expects a Claude Code session to behave under this workflow. Read this once per session; it rarely changes. ## Work autonomously Do not stop to ask which task to pick up next, or for confirmation before routine work. Default sensibly and keep shipping. Read `state/TODO.md`, choose the next sensible item, do it. Only ask when a decision is genuinely the user's to make and cannot be resolved from the repo or sensible defaults. ## Cost before speed Staying within usage limits is more important than finishing fast or gold plating. When in doubt, take the cheaper path. See [Cost and tokens](cost-and-tokens.md). ## Leave a clean trail Every feature ends as: a merged branch, full commit notes, a complete PR, current `state/` files, and code commented well enough to document later. The user should be able to open the repo weeks later, with no memory of the session, and understand what happened and why from the repo alone. ## Report honestly If tests fail, say so with the output. If a step was skipped, say that. If something is done and verified, say so plainly without hedging. Do not claim more than was done. ## Writing style - No em dashes in prose. Use commas, full stops, or restructure. - British spelling in prose and copy. Preserve code identifiers as written. - Plain, direct language. Say what happened. ## Confirm before the hard to reverse Routine coding is autonomous. But confirm first for actions that are hard to undo or that reach outside the repo: force pushes, history rewrites, deleting things you did not create, deploying, or sending data to external services. Approval for one such action does not carry to the next. ## The building session stops at merge Do not write the user facing documentation in the building session. That is a separate session's job. See [Documentation policy](documentation-policy.md).