Give each repository a working virtual machine (VM) once, write each task with a finish line Jules can check. Read the plan before the timer approves it, and review the result against CI. The steps follow Google's Jules documentation and developers' public accounts of using it.
When you need this
- Developers have started handing Jules tasks, and the pull requests come back uneven.
- Tasks fail on missing tools, stall, or end without a pull request.
- You want one standard for which work goes to Jules and how its pull requests get reviewed.
Delegation checks
Before work: the repository VM
Does every task start with the repository's tools and dependencies installed?
In practiceCreate a setup script under Configuration and save it with Run and Snapshot. Later tasks start from that snapshot in a fresh Ubuntu VM. The image includes Node.js, Bun, Python, Go, Java, Rust, and Docker. Add Flutter or the .NET SDK yourself. Setup scripts do not support dev servers or watch scripts, so list discrete install and test commands.
Before work: written context
Where do build commands, test commands, and conventions live?
In practicePut AGENTS.md at the repository root, where Jules reads it automatically. Name the commands to run and the edits to avoid. Include the test command. elif reports on Hacker News that Jules did not reliably run the full suite unless prompted after each change.
Before work: the finish line
Can the task name the files, the outcome, and the check that proves it done?
In practiceWrite a specific prompt such as "Add a test for parseQueryString in utils.js". Google contrasts that with "Fix everything". trip-zip asked Jules for five CRUD endpoints modeled on 100 existing ones. Jules failed. The commenter called the task too large.
During work: the plan
Who reads the plan before code is written?
In practiceAssign a developer to approve or correct the plan in chat. If nobody responds, Jules auto-approves the plan on a timer, and a Planning Critic agent reviews auto-approved plans. API sessions auto-approve unless requirePlanApproval is set.
During work: parallel tasks
How many tasks run at once, and on which branches?
In practiceRun independent tasks on separate branches and keep their files or modules separate. Stay within concurrency limits of 3 on Free, 15 on Pro, and 60 on Ultra. On Hacker News, elif juggled several Jules pull requests at once, and Jules could not resolve the merge conflict between them.
Before merge: review and CI
What has to pass before a Jules pull request merges?
In practiceProtect the branch with required checks and assign a human reviewer. CI Fixer repairs failing GitHub Actions checks on Jules's pull requests. Jules also acts on review comments. Enable Reactive Mode to limit responses to comments mentioning @Jules.
Questions to settle with each team
- Which repositories have a working setup script and an AGENTS.md, and who keeps them current?
- What share of Jules pull requests merged last month without rework, by task type?
- How many tasks stalled or ended without a pull request, and what did they have in common?
- Who reads plans on repositories where auto-approval is not acceptable?
Red flags
- Tasks that bundle several unrelated changes into one prompt.
- Pull requests merged on a green build with no named human reviewer.
- Parallel tasks editing the same files, followed by repeated conflict-resolution commits.
- Setup steps typed into every prompt and absent from a setup script.
Products in this piece
Sources
- Official documentation
- 12
- Public source
- 2
- Jules docs: Getting started
- Jules docs: Environment setup
- Jules docs: Running tasks
- Jules docs: Reviewing plans and giving feedback
- Jules docs: Reviewing code changes
- Jules docs: Errors and failures
- Jules docs: FAQ
- Jules docs: Limits and plans
- Jules changelog: Planning Critic for auto-approved plans (Jan 26, 2026)
- Jules changelog: Jules acts on PR feedback (Sep 23, 2025)
- Jules changelog: CI Fixer and commit authoring (Feb 19, 2026)
- Jules docs: REST API quickstart (alpha)
- trip-zip on Hacker News: five CRUD endpoints was too large a task for Jules (May 25, 2025)
- elif on Hacker News: Jules could not resolve a merge conflict between its own pull requests (Jun 19, 2025)