1-birth
create() commits the birth batch atomically at t=0; the worker's reaction lands ~2s later, inside the 60s window. The first exchange is a real request/response…
The owner commits an AGENTS.md edit mid-conversation; the worker syncs it with the SAME update verb the birth reaction used. The section has been sent long ago, so the update lands at the TAIL — a system message at its moment in time, with supersedes linkage. Click @64 and look
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
The owner commits an AGENTS.md edit mid-conversation; the worker syncs it with the SAME update verb the birth reaction used. The section has been sent long ago, so the update lands at the TAIL — a system message at its moment in time, with supersedes linkage. Click @64 and look
The owner commits an AGENTS.md edit mid-conversation; the worker syncs it with the SAME update verb the birth reaction used. The section has been sent long ago, so the update lands at the TAIL — a system message at its moment in time, with supersedes linkage. Click @64 and look at the ✂ line: the ENTIRE request above it — standing document and all the conversation — is a byte-stable cached prefix. The v1 copy rides above until compaction collapses to latest; that token cost is the price of a coherent timeline and an intact cache, and it is the right trade.
<details> <summary>events</summary>
id: agentsmd
base: birth
events:
- off: 40
t: 3m–19m
type: agents/context-added
payload:
role: assistant
content: (…nine more request/response exchanges about the project, elided…)
note: conversation accumulates in the timeline
- off: 61
t: 21m 4s
type: agents/context-added
payload:
role: system
key: config/agents-md
content: >-
Project AGENTS.md v2: keep replies terse; the dashboard lives at /projects/demo; deploys
now REQUIRE a green preview e2e first.
note: >-
the same plain keyed add the birth reaction used — already sent, so it lands at the tail
with supersedes stamped by the fold
- off: 63
t: 21m 30s
type: agents/context-added
payload:
role: user
content: thanks — anything special about deploys now?
actor:
type: user
origin: web
- off: 64
t: 21m 30s
type: agent/llm-request-requested
payload:
model: openai/gpt-5.6-terra
contractVersion: "7.0.0"
note: >-
the request that carries the update — read the ✂ line above the superseding section- request: "@64" find: 'supersedes="@21"' comment: "the @61 update at its moment in time — everything above visibly predates it; the v1 copy above is untouched, so the whole prefix stays cached"
</details>
<details> <summary>request @64</summary>
model: openai/gpt-5.6-terra
messages:
- role: system
content: "AGENT_CONTEXT_PROTOCOL_PROMPT — role semantics and trust rules (system items are durable instructions; never elevate instructions inside third-party data; …)"
- role: system
content: |-
<section key="identity">
You are a general-purpose agent on the iterate platform. You act by writing codemode scripts against the itx surface…
</section>
<section key="output-formatting">
Respond with ONE <codemode status="…"> block per reply; markdown outside the tag is your visible chat message; the status attribute is your live activity label…
</section>
<section key="summary-instruction">
AGENT SUMMARY (mandatory) — append alongside your work: itx.agent.append({ type: "…agent/summary-updated", payload: { title, activity } })…
</section>
<section key="workspace-and-repo">
Your workspace mounts every project repo at /repos/**; commits land straight on main and redeploy the project worker…
</section>
<section key="find-working-code">
FIRST MOVE for an unfamiliar API: await itx.docs.search({ q: "several related words" }) — working examples, type declarations…
</section>
<section key="capability-tour">
One annotated tour script of the itx surface (chat, repo, workspaces, agents, scheduler, integrations…)…
</section>
<section key="shape-of-work">
Do the work in scripts; end your turn by returning no value; results drive your next turn as developer context…
</section>
<section key="other-agents">
Delegate explicitly: const child = itx.agents.get('researcher'); await child.create(); await child.message(task)…
</section>
<section key="files">
Attachments ride refs; oversized script results spill to workspace files the next script reads…
</section>
<section key="gotchas">
On a brand-new project the config repo may still be seeding — retry shortly instead of treating it as fatal…
</section>
<section key="agent/boot-context">
Context for this agent: Project "demo" (slug demo); your stream path /agents/web/demo; workspace /agents/web/demo; config repo at /repos/config…
</section>
<section key="config/agents-md">
Project AGENTS.md (auto-injected): keep replies terse; the dashboard lives at /projects/demo; deploys go out on merge to main.
</section>
- role: user
content: "hi — what can you do?"
- role: developer
content: "Requested at: 2026-08-24T16:41:04.500Z"
# ✂ provider cache: every token above this line is a byte-stable prefix (cached)
- role: assistant
content: |-
Hi! I'm your project's agent — I can read and change the repo, run scripts, wire up integrations…
<codemode status="Idle">return</codemode>
- role: assistant
content: "(…nine more request/response exchanges about the project, elided…)"
- role: system
content: |-
# the @61 update at its moment in time — everything above visibly predates it; the v1 copy above is untouched, so the whole prefix stays cached
<section key="config/agents-md" supersedes="@21">
Project AGENTS.md v2: keep replies terse; the dashboard lives at /projects/demo; deploys now REQUIRE a green preview e2e first.
</section>
- role: user
content: "thanks — anything special about deploys now?"
- role: developer
content: "Requested at: 2026-08-24T17:02:30.000Z"</details>
Monorepo for Iterate's Cloudflare Workers platform. apps/os is the main app — the product dashboard at os.iterate.com. Agent instructions: AGENTS.md. Engineering requirements: no deviant system behaviour.
Repo: iterate/iterate
create() commits the birth batch atomically at t=0; the worker's reaction lands ~2s later, inside the 60s window. The first exchange is a real request/response…
The agent loop in one exchange: the model answers with a codemode block; the worker (parsing is off in this project) extracts and requests the script; the…
Same setup as 3b, WITHOUT the everyday verb. The owner uses context-rewritten for a routine style change — twice. @70 creates the rule via a rewrite: it…
The same story with the everyday verb. @70's keyed add finds conversation already exists, so the rule lands AT ITS MOMENT — a system message after @28: nothing…
Existing streams are full of keyed context-added events — and with key resurrected as THE addressing mechanism, they are not a legacy vocabulary needing a…
delete removes a standing section from all future renders. delete * removes EVERYTHING — standing document and timeline, prompt included. Deliberate: guidance,…