Devin knows your lint command before it codes
Devin reads AGENTS.md before it starts coding, taking the first 16 KiB of each file, and Devin Review reads it again for every pull request. Cloud sessions have no post-edit hook, so Devin runs ultracite in its VM when the rules or your blueprint say to, and a CI check catches the rest.
Devin by CognitionChecked 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
.devin/blueprint.yamlThe repository’sknowledgeentries, such aslintandtest, load into context at session start. - 2
AGENTS.mdUltraciteFound before Devin starts coding. The first 16 KiB is included automatically. - 3
packages/*/AGENTS.mdAnAGENTS.mdcan sit anywhere in the repo, and Devin includes the first 16 KiB of each one. - 4
REVIEW.mdDevin Review only: read with everyAGENTS.mdandCLAUDE.mdwhen it analyzes a pull request.
How Devin reads the rules
A Devin session starts with the repository’s blueprint knowledge and its AGENTS.md files. Devin Review reads AGENTS.md too, plus REVIEW.md for anything that only matters in review.
- Location
AGENTS.mdin the repo root, or anywhere else in it. Devin looks for it before it starts coding.- Size
- The first 16 KiB of each
AGENTS.mdloads automatically; past that, Devin gets a truncation notice. Ultracite’s rules take about 5 KB. - Blueprints
- Write them in Settings > Environment > Blueprints, or keep them in the repo as
.devin/blueprint.yamland sync after merging. - Builds
maintenanceruns during builds. At session start it’s shown to Devin, not run, so Devin can rerun it if dependencies have changed.- Review files
- Devin Review reads
**/REVIEW.md,**/AGENTS.md,**/CLAUDE.md,**/CONTRIBUTING.md, Cursor and Windsurf rules, and.coderabbit.yaml. - Auto-fix
- With Auto-Fix on, Devin Review proposes code changes alongside its bug findings, which you can apply from the diff view.
Checked in the VM, enforced in CI
AGENTS.md names ultracite fix and ultracite check, and a blueprint knowledge entry puts the same commands in Devin’s context at the start of every session. The blueprint’s maintenance step installs dependencies when the environment builds, so the commands work in the VM. Your CI check is the gate, and Devin can pick its failures up from the PR.
maintenance:
- name: "Install npm dependencies"
run: npm install
knowledge:
- name: lint
contents: |
Run linting with:
npx ultracite check
For auto-fix:
npx ultracite fix- 01Devin edits files in its cloud VM, with
AGENTS.mdand the blueprint’slintentry in context. - 02It runs
npx ultracite fixandnpx ultracite checkin the VM’s shell when its instructions call for them. - 03It opens a pull request, and your CI runs
ultracite checkon it. - 04If the check fails, a
/devincomment sends it back to Devin, which pushes a fix to the same branch.
Worth knowing about Devin
Lint commands in the blueprint
A blueprint’s
knowledgesection isn’t executed: it’s how you tell Devin the right lint, test and build commands, and it loads at session start. It’s per repository, so with five repos configured, Devin sees only the entries for the one it’s working on.Fixes from the pull request
Devin answers comments on pull requests its sessions are working on, and
/devin <prompt>starts a session from any open PR. Its GitHub App can read check results and rerun workflows, so a failingultracite checkis something it can see and act on.Review instructions by directory
Devin Review scopes files in
.agents/,.devin/,.cursor/and.github/to their parent directory, sosrc/.agents/REVIEW.mdapplies only undersrc/. Admins can add more files to its context with glob patterns under Review Rules.The Ultracite skill
Devin scans
.agents/skills/, its recommended location, along with.devin/skills/,.claude/skills/and three other folders in every connected repo, so it finds the Ultracite skillinitinstalls in.agents/skills/. It invokes a skill when it judges it relevant, or when you write@skills:ultracite.
Devin questions, answered
- Does Devin read AGENTS.md?
- Yes. Devin looks for
AGENTS.mdbefore it starts coding, in the repo root or anywhere else in it, and includes the first 16 KiB of each file in its context. Past that it gets a truncation notice and can read the rest on demand. - How do I make Devin run the linter?
- The rules already name
npx ultracite fixandnpx ultracite check. To put them in front of Devin every time, add alintentry to the repository’s blueprintknowledge, which loads into Devin’s context at the start of each session. - Can Devin fix a failing lint check on a PR?
- Comment
/devin fix the failing lint check and push a commiton the pull request; that’s the example in Devin’s own docs. Devin starts a session with the PR as context, or passes the comment to the session already working on it. - Does Devin Review follow the Ultracite rules?
- Yes. Devin Review uses every
AGENTS.mdin the repo as context when it analyzes a pull request, along withREVIEW.md,CLAUDE.md,CONTRIBUTING.mdand other rules files. Put review-only guidance inREVIEW.md. - Does Devin support hooks?
- Devin CLI does:
PostToolUseand other events in.devin/hooks.v1.json, where exit code 2 blocks the action. It also loads Claude Code hooks from.claude/settings.json.npx ultracite init --hooks devinadds Ultracite’s to.devin/hooks.v1.json: it fixes each file Devin writes or edits and adds what’s left to its context.
Keep going
- AgentJulesGoogle’s asynchronous agent that works on your repo in a cloud VM and opens pull requests.
- AgentOpenHandsOpen-source agent platform with a GUI, CLI, SDK and cloud that runs agents in sandboxes.
- AgentCodexOpenAI’s coding agent for the terminal, IDEs, the ChatGPT desktop app and cloud tasks.
- 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.