Skip to content
Ultracite
Esc
↑↓navigate↵open⌘Jpreview

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.

…
Ultracite’s rules
Where Jules looks for instructions
  1. 1AGENTS.mdUltraciteAt the repository root. Jules finds it automatically and uses it to plan and write code.
  2. 2Repository memoryWhat Jules has learned from your earlier tasks in that repository, unless you turn it off.
  3. 3Configuration → Initial SetupCommands Jules runs to prepare the VM before it starts. Without one, it reads AGENTS.md and the README for hints.
  4. 4Your 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.md at 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.md and 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`
What the rules tell it to run
  1. 01Your setup script runs, or Jules works out the install from your repository; a snapshot speeds up later tasks.
  2. 02Jules plans, edits files and, following AGENTS.md, runs npx ultracite fix and npx ultracite check in the VM.
  3. 03You publish the work as a branch or pull request; Jules is the commit author unless you change it in Settings.
  4. 04If a GitHub Actions check such as ultracite check fails 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 check makes 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.md skills, so don’t count on it loading the Ultracite skill from .agents/skills/. AGENTS.md carries the same commands, and Jules reads it automatically.

Jules questions, answered

Does Jules read AGENTS.md?
Yes. Jules looks for AGENTS.md in the root of your repository automatically and uses it to plan and write code. ultracite init --agents jules puts the rules there.
Does Jules support hooks?
Not that its docs describe. Jules runs ultracite fix and ultracite check in its VM because the rules in AGENTS.md tell 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, with ultracite already in node_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 check feeds lint failures straight back.

Ship less slop

One command sets up your linter, formatter, editor and agents. Works with Oxlint, Biome and ESLint.