Verified against Cursor · 2026-08-02
Write a Background Agent brief that survives running with nobody watching
A self-contained task brief for Cursor's Background Agents — the async, remote-run agent mode — with success criteria, a conservative-default policy for ambiguity, and a reviewable-PR requirement, since no one answers follow-up questions while it works in an isolated container.
The prompt
Ready to copy — highlighted parts are example details you can swap.
BACKGROUND AGENT TASK This runs unattended in a remote, isolated environment. No one is present to answer follow-up questions while you work — resolve ambiguity by choosing the most conservative option and documenting the choice in your final summary, rather than pausing to ask a question that will never be answered. TASK Migrate all remaining class components in src/components/legacy/ to function components with hooks, preserving existing prop interfaces exactly. SUCCESS CRITERIA — the task is only done when every one of these is true 1. Zero class components remain under src/components/legacy/. 2. Existing prop types are unchanged. 3. Full test suite passes. 4. No new console warnings in dev mode. CHECK-IN POINTS — pause and report progress at these milestones, but keep working past them unless a later run explicitly tells you to stop After every 5 components migrated, and immediately if any existing test starts failing. REPOSITORY ACCESS AND ENVIRONMENT NOTES The remote container has no access to the .env.local secrets used for the third-party image CDN — any component that calls it should be mocked in tests, not skipped. RULES FOR UNATTENDED WORK - Commit in small, reviewable increments with descriptive messages, not one giant commit at the end that has to be reverse-engineered into individual decisions during review. - If you hit a blocker none of the success criteria resolve, stop, write down exactly what you tried, why it failed, and what information would unblock it — then leave the branch in a working, buildable state rather than half-finished with a broken build. - Do not install, upgrade, or remove a dependency that isn't required by the task description without flagging it explicitly in a commit message and the final summary. - Open a draft PR when finished, with a summary of every decision you made without being able to ask, organized so it can be reviewed in one pass rather than reconstructed from individual commits. - If the task description and success criteria conflict with each other at any point, treat the success criteria as authoritative and note the conflict — don't silently pick whichever reading is easier to implement. Before finishing, re-read the success criteria one more time against what actually shipped and state, item by item, whether each one holds.
Customize
Optional — swap in your own details for the highlighted parts above.
Why this works
Background Agents run in an isolated, cloud-provisioned checkout disconnected from your live editor session and execute asynchronously, which removes the entire back-and-forth clarification loop a live Agent-mode session gets for free — you notice mid-turn that it's about to do something wrong and say so before it commits to the wrong path. None of that exists here, so the brief has to front-load every decision point that would normally get resolved in chat, which is why "resolve ambiguity conservatively and document the choice" is doing real load-bearing work: it substitutes a standing policy for the live human judgment call that simply isn't available, rather than leaving the agent to either guess silently or stall waiting on an answer that will never arrive. SUCCESS_CRITERIA plays the equivalent substitute role for the human "yes, that's right, keep going" signal a synchronous session provides implicitly on every turn. ENVIRONMENT_NOTES exists because a remote container is not a copy of your local machine with the same secrets, mounted drives, or running services, and an agent that discovers a missing credential mid-task by trial and error will burn its unattended run time on retries or silently skip the affected code path rather than surfacing the actual constraint — naming the gap up front turns a debugging dead end into a known boundary condition. Requiring small, descriptive commits and a draft PR at the end matches how the output is actually consumed: you review it as a diff or a PR afterward, asynchronously, not as a live edit stream you're watching in real time, so the deliverable has to already be shaped for after-the-fact review rather than reconstructed into that shape once the run is over and the reasoning behind each change has to be inferred from the final state alone.
Verified against
Cursor 2.2 · 2026-08-02
Changelog
- 2026-08-02 — Initial publish, verified against Cursor 2.2 Background Agents.
Need this built into your business?
If a prompt isn't enough — custom software, built and maintained for you — that's Scult's day job.
EXPLORE CUSTOM SOFTWARE
