Agent context Shipped
The context file that dies with the task
Every coding agent reads an instruction file. CommitCycle keeps what does not change with the work in AGENTS.md, and writes the task itself to a gitignored file the moment work is authorised, removing it the moment it is handed in — because context that outlives its task is worse than no context at all.
$ cycle start CC-58
<!-- cc:begin -->
### You are working on CC-58 — Export times out on large boards
Branch `task/CC-58-export-times-out-on-large-boards`. Access expires in about 8 hours.
What it must NOT do. No change to the export format.
No protected zone is open to this task.
<!-- cc:end -->
cycle start writes the task into a gitignored CLAUDE.local.md beside the zone map in AGENTS.md, and cycle submit takes it out again.
The standard, and the part that was missing
AGENTS.md is a convention now stewarded by the Linux Foundation, and at our count on 2026-08-09 it was in more than 60,000 repositories and read by more than 25 tools. That is a real win — one file, every agent — and it is also commodity: generating one is not a product, and we would rather say that than sell it to you.
What no convention supplies is a lifecycle. A file written once drifts from the repository it describes, and nothing in the format notices. CommitCycle writes one fenced block inside yours and owns only that block: the zone map, the board, the hand-in note it expects and the deploy rule, byte-identical across tasks, so it is not the file a merge conflicts on. The active task, its non-goals and what its grant opens go to CLAUDE.local.md — gitignored, written at the gate, removed at hand-in.
What the task block says
<!-- cc:begin -->
## CommitCycle
### You are working on CC-326 — Seven Platform menu items still point at documentation
Branch `task/CC-326-seven-platform-menu-items...`. Access expires in about 8 hours.
**What it should do.** …the task's own Goal…
**What it must NOT do.** …its non-goals, verbatim…
**No protected zone is open to this task.** Everything below is closed.
**Read before working** — the playbooks for this task's topics:
- .zones/playbooks/design.md
- .zones/playbooks/frontend.md
**Closed to this task.** You may not write there — nothing is stopping you,
so this one is on you:
- `schema` (deny): apps/api/migrations/**, apps/api/src/db/schema/**
- `contracts` (deny): packages/contracts/**
<!-- cc:end -->That is a real block, trimmed — the one written for the task that produced this page, before CC-551 moved this half out of AGENTS.md; the same lines now land in CLAUDE.local.md. Note the sentence in the middle: nothing is stopping you, so this one is on you. The file is honest about being advice.
Why it expires
Because the alternative was measured here, not imagined. A block for a closed task once sat on our own trunk announcing that work was active; every session that cloned the repository read it and believed it, and the next pull request inherited the conflict. The first fix was making the hand-in commit its own clear. The one that held was moving the task out of the committed file altogether, into a gitignored one that cannot reach the trunk at all.
There is a second reason, and it is the one that decides architectures. A summary of a project is a point-in-time artefact with no maintenance loop: an assistant's stored summary once described this repository as having no product code in the week its board counted seventy-seven tasks closed (2026-08-09). Summaries orient; they never testify.
Where it stops
- It advises and cannot enforce. Nothing here denies a write. That is the zone model, decided at the tool call — and this file is Layer 1 of three for exactly that reason.
- It cannot make an agent read it. No instruction file can. What the gate can do is make the file current, so an agent that does read it is not misled.
- It owns one block, not your file. Everything you wrote around the fence is yours and stays untouched.
- The task half is known to reach Claude Code only.
CLAUDE.local.mdis Claude Code's file, and whether other editors load it has never been checked; count on them reading AGENTS.md, which carries the map and the rules but not the active task.
The block's fields are documented in the docs, the map it is generated from is the zone map, and the layer that actually says no is the enforcement stack.
Questions this page answers
Does CommitCycle replace my AGENTS.md?
No. It writes one fenced block inside it and owns only that block. Everything you wrote around it is untouched. The block holds what does not change with the work; the active task goes to a gitignored CLAUDE.local.md, which is removed when the task is handed in.
Can an agent ignore what AGENTS.md says?
Yes, and the block says so out loud. Context advises — it cannot deny a write. That is the local hook, which is a different layer. The CI check, which could catch work done where neither ran, runs only in CommitCycle's own repository.