Agent context Shipped

The context file that dies with the task

Every coding agent reads an instruction file, and nearly every one of them is stale. This one is minted the moment work is authorised and removed the moment it is handed in — because context that outlives its task is worse than no context at all.

The standard, and the part that was missing

AGENTS.md is a convention now stewarded by the Linux Foundation and read by tens of thousands of repositories and dozens of 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, owns only that block, and takes it back out at the end.

What the 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. 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 fix was not a better reminder — it was making the hand-in commit its own clear, so the file cannot be left behind by someone in a hurry.

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 same week it closed seventy-seven tasks.Summaries orient; they never testify.

Where it stops

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 isthe enforcement stack.