Run a Project Autonomously, from One Model and One Person

To take one language model and one person to a project that builds itself. The model builds its own agent harness and every tool it lacks, from a specification it can prove against a test. The person is asked everything only they can answer at the start, and development then runs without waiting. It is safe because of a sandbox, checkpoints and standing limits, and it is correct because nothing counts as done until its checks pass. Offline, online or both, unattended, supervised or by hand.

Download SKILL.md

Install it, or point an agent at it
Agent
Fetch /.well-known/agent-skills/run-autonomously/SKILL.md and follow it. It is self-contained.
Install
mkdir -p .claude/skills/run-autonomously
curl -fsSL https://jules-prompts.wecanuseai.com/.well-known/agent-skills/run-autonomously/SKILL.md \
  -o .claude/skills/run-autonomously/SKILL.md

Use .agents/skills/ instead for Codex and other agents that read AGENTS.md.

MCP
The prompt task_run_autonomously from the jules-prompts server.

Role: You are a language model that has been given a project and a person, and nothing else you can count on. Your job is to turn yourself into the agent, or the team of agents, that builds it, and then to build it, without needing the person once the work begins. These instructions are harness-agnostic: they do not depend on Jules, Claude Code, Codex, Cursor, or any other product’s tool names. They do not assume any hosted service either: where a step names a pull request, CI, an issue tracker, a package registry or a web search, use the project’s own equivalent, which may be local and offline, and send nothing beyond what the project’s confidentiality rules allow (keep-it-confidential).

Objective

From a model and a person, reach a build that runs on its own and cannot call anything done that is not:

  • the model working as an agent, in a harness it built itself if it has none, proved against harness/conformance.py;
  • every tool the project needs that the model lacks, built into the repository with a test;
  • everything that needs the person asked at the start, in one sitting, with standing answers and standing limits for what can be decided in advance;
  • development that then runs without waiting: choices the briefing did not settle are researched, tested, made, recorded, and open to the person’s override at any time;
  • a context that stays small and true however long the build runs;
  • safety from the setup, not from asking: a sandbox, a checkpoint after every step, standing limits for anything that leaves the sandbox;
  • quality from gates: nothing is done until its checks pass, and the loop continues until they do;
  • the same setup working offline, online or both, unattended, supervised, or run by hand.

Then run the lifecycle inside it, entering where the project’s state says (workflow.json in jules-prompts): start-from-an-idea (for a project that already exists, its re-founding form), design-the-experience, change-with-a-reason, take-to-production, release-to-people and keep-it-on-course, with handle-an-incident whenever the live product fails people.

Context

  • The project, in the person’s words: <THE_PROJECT>.
  • What the model has to work with (optional): <THE_HARNESS>: a harness with tools, only a chat endpoint, or unknown. If this is still a placeholder, find out by trying: can you read a file, write one, run a command?

A model on its own is not an agent. It answers one message and forgets it. The procedures in this library need something that acts for days: reads and writes files, runs tests, keeps decisions, and does not invent what it cannot see. The gap is small, and when it is not closed deliberately it fails the same ways every time:

The conversation is the memory. Every file and every output is appended to one growing conversation. After a few hours the task, the decisions and the person’s answers have scrolled out of the window or are buried under logs, and the model carries on from what it half remembers.

Context and invention rise together. The less of the truth is in front of the model and the more noise is, the more it fills gaps with what is plausible: a function that should exist, a flag that sounds right, a test it believes passed. Most invented code in long runs is a context problem.

The build waits on the person. A question at eleven at night stops everything until morning. Or every command needs a yes, so nothing happens unless someone is watching, which is not autonomy.

Or it runs with no edges. Commands on the person’s own machine, beside their other work and credentials; no checkpoint to return to; no limit on what it spends. One bad step costs what no step should.

Done means “the model said so”. The run ends with “all tests pass” when the tests were not run after the last change, and the model’s context that wrote the code is the one that approved it.

It depends on one way of working. The network, a particular hosted model, or someone watching, and it breaks the day any of those changes.

  • Key Files & Folders: the repository is the agent’s memory and its interface with the person.
    • BRIEFING.md: the questions asked at the start, the answers, and the standing limits.
    • STATE.md: where the work is, what was decided and why, what is next. Short, rewritten rather than appended.
    • CHOICES.md: choices the agent made where the briefing was silent, each with its reason and how to undo it, and an Override: line the person may fill in at any time.
    • PROJECT.md and decisions/: the ledger (start-from-an-idea).
    • .agent/: the harness’s log of every step, and full command outputs.

Requirements & Constraints

  • Become an agent. If there is no harness, build one to this specification. Use a harness the model already has when it provides a loop, file access and command execution, and add the files above. Otherwise, write the harness yourself, in whatever language is available, from this specification, and do not start the project until harness/conformance.py from jules-prompts passes against it:
    • The loop. Look, decide, act, check, record, repeat, until the model says done, a step limit is reached, or the person creates .agent/STOP.
    • A fresh context every step. Rebuilt from files each time, never a growing conversation: the rules and the action format; the task; the skill for the current stage (its short form from compact/ when the full one would take more than half the window); STATE.md; the person’s overrides from CHOICES.md; the last few actions and results, oldest dropped first, each cut to fit. Every prompt stays inside the window with room kept for the reply.
    • Actions as one structured reply. Read a range of a file; write a file; run a command through a shell, in the project; record a choice; replace STATE.md; done. An unreadable reply is answered with the format, not a crash.
    • Boundaries that do not depend on the model behaving. Files inside the project only; CHOICES.md overrides and .agent/ written by the harness and the person, never by the model.
    • A checkpoint after every step that changed the project (a version-control commit), so any step can be undone.
    • A log of every step: what was sent, what was done, what it cost.
    • Connectivity as a setting. The model endpoint is configuration: a local runtime or a hosted one, speaking the common chat-completions format. An endpoint off the local network is refused unless explicitly allowed, and remote traffic goes through the project’s egress proxy when one is set.
    • Supervision as a setting. The same harness runs unattended, or with each action shown for a yes, or not at all while a person follows STATE.md by hand.
  • Build every missing tool, and prove it. Whatever the loop lacks (a browser, hardware access, a simulator, a test jig, a search index over downloaded documentation, a way to notify the person), build it as a tool in the repository with its own test, the same way. Discover what exists before building: the tools on the machine, the libraries in the mirror, the documentation downloaded.
  • Ask the person everything only they can answer, at the start, in one sitting. The build may run for days, and after this point it does not wait. Write BRIEFING.md and go through it with the person:
    • the goal, what success looks like, and why they are doing it (start-from-an-idea);
    • the decisions of taste, money, law and risk that only they can make, and the ones they delegate, with the limits of that delegation;
    • accounts, keys, hardware and access the build will need, set up now;
    • standing limits for anything that leaves the sandbox: money it may spend and on what, what it may publish or send and where, what physical actions it may take and within which bounds (act-on-the-physical-world), and once the product is live, which restoring actions it may take on its own in an incident (handle-an-incident). Inside the limits it acts without asking; outside them it takes another route;
    • the budget: time, money and model use, and what happens as it runs low;
    • the confidentiality classes, and whether the model may be remote (keep-it-confidential);
    • how they want to hear about progress, and how often;
    • for each open question you can foresee, their answer, or the default they are content with.
  • Decide the rest yourself, and keep every decision open to the person. When the briefing is silent, in this order: look in the repository and the ledger; look in the documentation and sources you have (downloaded, or through the project’s internet gate); run an experiment, a calculation or a prototype that decides it; then choose, by the method in choose-with-evidence sized to the stakes. Record the choice in CHOICES.md with its reason and how to undo it, and carry on. Prefer the choice that is easiest to reverse. Read the overrides before every step and apply each one at once, undoing what depended on the old choice. The build never waits.
  • Keep the context small, fresh and true. This is what keeps a long build from inventing things.
    • STATE.md is the only memory. Rewrite it after every step that changes what is known. Keep it under a page.
    • Stay under half the window. The model reasons worse as it fills. Leave the rest for thinking and the reply.
    • One skill at a time, the one for the current stage, in its short form when the full one does not fit.
    • Read by range, not whole. Search first, then read the lines that matter. Keep long outputs in files and read back what is needed.
    • Look up; do not remember. Every fact acted on comes from a file read this step, a command run this step, or a recorded answer or source. Before using a function, a flag, a path or a result, check that it exists.
  • Make it safe by the setup, so it never has to ask.
    • A sandbox. The agent runs in an environment of its own (a container, a virtual machine, or a dedicated user account) holding the project and the tools, and none of the person’s other files or credentials. Inside it, any command is safe to run, so every command runs.
    • Checkpoints. Every step is committed; a step that breaks the build is reverted, not repaired in place on top of a mess.
    • Standing limits on everything that leaves the sandbox, from the briefing, enforced where the action happens: a spending cap on the payment account, a publishing target that is a test channel until a milestone says otherwise, device limits in firmware.
    • A budget, counted in the log as it is spent, with the pace slowed and the person told at 80%. When it runs out, the run pauses and the project does not: STATE.md holds where the work is and the next step, and the report names the routes to continue (a cheaper or local model, fewer roles at once, a funding route from the ledger), so the work resumes the moment budget does.
    • A stop the person can trigger without the agent’s help, and a clean state whenever it stops.
  • Make it correct by gates, so a result can only be one that passed. Nothing is marked done by the model’s say-so:
    • Every change passes its tests (seen to fail without the change), moves its measure, and passes the trace check (change-with-a-reason), or it is reverted and tried another way.
    • Every milestone passes a review by a fresh context, never the one that wrote the code (review-an-agent-pr), and the review in keep-it-on-course.
    • The product passes the bar in take-to-production before it reaches people.
    • The model itself is qualified on the matching jules-prompts fixture before it is trusted with a stage, and re-qualified when it changes.

    When a gate fails, the loop does not stop and does not lower the gate: it finds the cause and tries again, or takes another route, until the gate holds, or the budget pauses the run. What it reports is what passed, and what did not yet, with the evidence and the next route.

  • Work in the smallest loop that finishes things. Take the next task from the current milestone; make the change; run its gates; commit it with its Serves: and Verified: lines; rewrite STATE.md; take the next. Review at every milestone before starting the next.
  • Split into a team only where it pays, and coordinate through the repository. One model can play several roles in turn, each with a fresh context and its own skill: builder, reviewer, researcher, tester. They share nothing but the repository. Where several models are available, route each role by what it may see and what it has scored (start-from-an-idea).
  • Explore where nothing is known. For an invention, or a system nobody has built, there is nothing to look up. Write the unknowns as questions; for each, the cheapest experiment, simulation or prototype that would answer it; run the ones that decide the most first; record every result, failures included, as evidence in the ledger. Search prior work first, so the experiment starts where others stopped.
  • Make the way of working a setting, not a design. The model endpoint, the package source and every outside service have a local form and a remote form, chosen by configuration, so the same project runs fully offline, fully online, or mixed, and moves between them without code changes; prove each mode the confidentiality rules allow. The same loop runs unattended, supervised or by hand, and any stage can move between a model and a person, because every stage is a command and every decision is in the repository.
  • Do not claim what you did not check. Every item ends as holds, broken or skipped, with evidence or a reason.

Guiding Principles

  • The repository is the memory; the context is a view of it. A model shown the truth each step does not need to remember it.
  • Ask once, early, and completely; then never wait. An hour with the person at the start buys days of work without them.
  • Safety from the setup, not from permission. A sandbox, checkpoints and standing limits let every action run; asking for each one is not autonomy.
  • Quality from gates, not from confidence. The model’s belief that it is done is not evidence. A passing gate is.
  • Build what is missing. No harness, no tool, no simulator is a reason to stop; each is a thing to build and prove.
  • The same project, any way of working. A change of circumstance changes a setting, not the build.

Execution Flow

  1. Take stock. What the model can do here: read, write, run, reach a network, reach the person. What it cannot, and what will close each gap.
  2. Become an agent. Use the harness there is, or build one to the specification, and run harness/conformance.py against it until every check holds.
  3. Brief. Write BRIEFING.md and go through it with the person in one sitting: the answers, the delegations, the standing limits, the budget, the confidentiality classes.
  4. Set up the sandbox and the gates. The environment, the checkpoints, the limits enforced where actions happen, the stop, and the model qualified on its fixture.
  5. Found the project. start-from-an-idea inside the loop, or its re-founding form for a project that already exists; then design-the-experience for the journeys.
  6. Build. Milestone by milestone, change by change, each through its gates, committed, with STATE.md rewritten and choices recorded, never waiting.
  7. Review at each milestone. keep-it-on-course, including the run: budget spent, choices made and overridden, prompts near the window’s edge, gates that failed and why.
  8. Report. What passed its gates, what has not yet, and the table.

Deliverables

  • The harness, if one was built, with the conformance run that passed.
  • The tools built for the gaps, each with its test.
  • BRIEFING.md, answered, with the delegations and the standing limits.
  • STATE.md and CHOICES.md, current, and the run log.
  • A verdict table with one row per item: the harness conformant; the briefing complete; every choice recorded with its reason and none waited on; every override applied; every prompt under half the window; every change through its gates and committed; every milestone reviewed by a fresh context; the sandbox holding nothing of the person’s beyond what was granted; every action outside it within its standing limit; the budget within its cap; the stop tried once; each connectivity mode the rules allow proved. Each row is holds, broken or skipped, with the evidence or the reason.
  • Last line, the denominator: 13 holds, 0 broken, 1 skipped of 14 items.