Jules follows AGENTS.md and fixes its own CI
Jules looks for AGENTS.md at the root of your repository and uses it to plan and write code, so Ultracite’s rules reach it with no extra step. It works in a short-lived cloud VM and runs ultracite fix and ultracite check there because the rules tell it to. Put ultracite check in your GitHub Actions and Jules’s CI Fixer handles failures on the pull requests it opens.
Jules by GoogleChecked against October 2026
# Ultracite Code Standards
This project uses **Ultracite**, a zero-config preset that enforces strict code quality standards through automated formatting and linting.
## Quick Reference
- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`
Oxlint + Oxfmt (the underlying engine) provides robust linting and formatting. Most issues are automatically fixable.
…- 1
AGENTS.mdUltraciteAt the repository root. Jules finds it automatically and uses it to plan and write code. - 2
Repository memoryWhat Jules has learned from your earlier tasks in that repository, unless you turn it off. - 3
Configuration → Initial SetupCommands Jules runs to prepare the VM before it starts. Without one, it readsAGENTS.mdand the README for hints. - 4
Your promptThe task itself, plus any files you pick with the file selector.
How Jules reads the rules
Jules reads one instructions file: AGENTS.md at the root of the repository. It uses it to plan and write code, and, with your README, for hints on setting up the VM when you haven’t given it a setup script.
- Location
AGENTS.mdat the repository root, the one place Jules’s docs name.- Setup hints
- Without a setup script, Jules works out how to prepare the VM from your repository, using
AGENTS.mdand the README as hints. - Memory
- Jules also keeps a memory of past tasks for each repository, which you can turn off under Knowledge in the repo’s settings.
Lint in the VM, then in CI
Each task runs in a fresh Ubuntu VM where Jules clones your repository, installs dependencies and runs commands as it works, including the ultracite commands in AGENTS.md. Once its work is on a pull request, a failing GitHub Actions check comes back to it through CI Fixer.
- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`- 01Your setup script runs, or Jules works out the install from your repository; a snapshot speeds up later tasks.
- 02Jules plans, edits files and, following
AGENTS.md, runsnpx ultracite fixandnpx ultracite checkin the VM. - 03You publish the work as a branch or pull request; Jules is the commit author unless you change it in Settings.
- 04If a GitHub Actions check such as
ultracite checkfails on its pull request, CI Fixer hands Jules the error and it pushes a fix.
Worth knowing about Jules
CI Fixer closes the loop
When a GitHub Actions check fails on a pull request Jules created, it receives the error, works out a fix, commits and resubmits. A CI job that runs
npx ultracite checkmakes lint failures part of that loop.It acts on review comments
Jules reads review comments on its pull requests and pushes a commit with the changes you asked for. In Reactive Mode, it acts only on comments that mention
@Jules.Snapshots keep the linter ready
Add install commands under Configuration and use Run and Snapshot: Jules saves the environment and starts later tasks from it, so your linter is already installed. Setup scripts can’t run long-lived commands like
npm run dev.The Ultracite skill
Jules’s docs don’t describe
SKILL.mdskills, so don’t count on it loading the Ultracite skill from.agents/skills/.AGENTS.mdcarries the same commands, and Jules reads it automatically.
Jules questions, answered
- Does Jules read AGENTS.md?
- Yes. Jules looks for
AGENTS.mdin the root of your repository automatically and uses it to plan and write code.ultracite init --agents julesputs the rules there. - Does Jules support hooks?
- Not that its docs describe. Jules runs
ultracite fixandultracite checkin its VM because the rules inAGENTS.mdtell it to, and CI Fixer brings back any lint check that fails on its pull request. - How do I make sure Jules can run the linter?
- Add your install command, such as
npm install, as the setup script under the repository’s Configuration and click Run and Snapshot. Later tasks start from the saved snapshot, withultracitealready innode_modules. - Will Jules fix lint failures in CI?
- Yes, on pull requests it created. When a GitHub Actions check fails, Jules receives the error, commits a fix and resubmits, so a job that runs
npx ultracite checkfeeds lint failures straight back.
Keep going
- AgentGitHub CopilotGitHub’s coding assistant: agent mode in editors, a CLI, and a cloud agent that opens pull requests.
- AgentCodexOpenAI’s coding agent for the terminal, IDEs, the ChatGPT desktop app and cloud tasks.
- AgentDevinCognition’s autonomous coding agent, in cloud sessions, a CLI and a desktop app.
- DocsAgent rulesWhat
initwrites for every agent, and how to keep it current.
Ship less slop
One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.