Anthropic Engineering→ original

Anthropic shows how to keep Claude coding for days: a list of 200+ tasks in JSON

Anthropic Engineering has published a breakdown of how to get agents built on the Claude Agent SDK to work on a single project for hours or days across many context windows. Even Opus 4.5, given a prompt like "build a claude.ai clone," tries to write everything at once, hits the context limit, or declares the job finished too early. The fix is two modes: an initializer agent prepares the environment (init.sh, claude-progress.txt, a first git commit, a list of 200+ features in JSON), and a coding agent picks up one task per session and leaves the project in a clean state. • Features are stored in JSON with a passes field: the model corrupts JSON less often than Markdown. • Tests run through Puppeteer MCP, the way a real user would use the app. • The agent still cannot see native browser alert dialogs.

AI-processed from Anthropic Engineering; edited by Hamidun News
Anthropic shows how to keep Claude coding for days: a list of 200+ tasks in JSON
Source: Anthropic Engineering. Collage: Hamidun News.
◐ Listen to article

Anthropic has published an engineering write-up on how to keep agents built on the Claude Agent SDK working across many context windows. The starting point: even Opus 4.5, running in a loop with a single high-level prompt such as "build a claude.ai clone," does not get a web app to production quality. Context compaction helps, but it does not solve the problem. The author, Justin Young, proposes a setup built from two roles, git history, and a progress file. It is modeled on how engineers hand off shifts to each other without any personal memory of the previous one.

Where long-running agents break

Anthropic observed three recurring failures. First, the agent tries to do everything in one go, runs out of context in the middle of an implementation, and leaves the next session a half-finished, undocumented feature. The successor has to guess what happened and spend time getting the project back to a basic working state. Compaction does not fix this, because it does not always pass clear instructions along.

The second failure shows up closer to the middle of a project. A fresh agent instance looks around, sees that a lot has already been built, and declares the work complete. The third concerns verification: Claude marks a feature as done after unit tests or curl requests to the dev server, even though the end-to-end flow in the browser does not work.

How the harness works

The first session gets its own prompt and acts as an initializer. Both "agents" share the same system prompt, toolset, and surrounding harness; only the starting user message differs. The initializer creates an init.sh script for launching the dev server, a claude-progress.txt file with a log of actions, and a first git commit. Most importantly, it writes a list of requirements. For the claude.ai clone, that came to more than 200 items, for example "a user opens a new chat, types a query, presses Enter, and sees an AI response." All items start out marked as failing.

Key parameters of the setup:

  • Feature list format: JSON with the fields category, description, steps, and passes. The model overwrote Markdown noticeably more often.
  • Coding agent permissions: it may change only the passes field. The prompt wording is strict: removing or editing tests is unacceptable.
  • Scope of work: one feature per iteration.
  • Session end: a git commit with a descriptive message and an entry in the progress file, which makes it possible to roll back bad changes.
  • Session start: pwd, reading git log and the progress file, picking the highest-priority unfinished feature, running init.sh, and a basic end-to-end test.

Testing and the limits of the approach

The startup check is simple: the agent brings up the server, opens a new chat through Puppeteer MCP, sends a message, and waits for a response. If the app is broken, the bug gets fixed before any new work begins; otherwise the next feature only makes things worse. When the model is explicitly told to test through browser automation, as a human would, it finds bugs that are not visible in the code, and according to Anthropic the quality of the result rises noticeably. It also saves tokens: the agent does not have to work out how to launch and check the app every time.

Limitations remain. Through Puppeteer MCP, Claude cannot see native browser modal windows such as alert, so features that rely on them turned out buggier. In addition, the model's vision and the tools' capabilities do not allow it to catch every class of error.

What to take into your own project

A practical minimum can be carried into any agent pipeline right now. Set up a separate starting prompt for preparing the environment. Store requirements in a machine-readable file with a boolean status, and forbid the agent from editing the wording. Require a commit and a log entry at the end of every session. Begin every session with git log and a short run of the app. Add browser automation tools if you are testing a web app.

Two questions remain open. It is still unclear whether a single general-purpose coding agent is better than a set of specialized ones: a tester, QA, a code-cleanup agent. In addition, the results come from full-stack web development, and Anthropic only suggests that some of the lessons will carry over to scientific research or financial modeling. That is a hypothesis, not a measured result.

ZK
Hamidun News
AI news without noise. Daily editorial selection from 50+ sources. A product by Zhemal Khamidun, Head of AI at Alpina Digital.
✦ Autonomous AI Agents

Delegate Deep Research, Coding & Workflows to an AI Agent

Deploy autonomous multi-step execution with NomadNet Agent (agent.nomadnet.ai) — automated web research, data synthesis, code generation, and complex task orchestration.

Launch NomadNet Agent →NomadNet AI Platform
What do you think?
Loading comments…