goose loads AGENTS.md from the git root down
goose reads Ultracite’s rules from AGENTS.md, one of its two default context files, at every level from the git root down to your working directory. It runs in Autonomous mode by default, so when the rules say to run ultracite fix after editing, it runs it without asking and fixes what’s left.
goose by Agentic AI FoundationChecked against goose 1.54.0
# 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
~/.config/goose/AGENTS.mdGlobal hints, along with~/.config/goose/.goosehints. - 2
~/.agents/AGENTS.mdA global file other agents share, read whenAGENTS.mdis in your context file list. - 3
AGENTS.md and .goosehintsUltraciteAt each level from the git root down to the working directory; outside a git repo, only the working directory. - 4
packages/web/AGENTS.mdA deeper folder’s files, loaded the first time goose reads or edits a file there, or names one in a shell command.
How goose reads the rules
goose calls these files hints. It loads global hints, then every AGENTS.md and .goosehints from the git root down to where you started, and adds a deeper folder’s files once it works there.
- Default files
AGENTS.mdand.goosehints; goose loads both when a folder has both.- Conflicts
- Local hints win over global ones; nested hints combine with their parents.
- Shared global
~/.agents/AGENTS.mdloads as a global hint whileAGENTS.mdis in your context file list.- Edits
- Hints load at session start; restart the session to pick up a changed file.
- Large files
@README.mdpulls a file in; a plain path only tells goose where to look.- Desktop
- Settings, Chat, Project Hints opens the project’s hints in goose Desktop.
Autonomous by default, so the fix just runs
Ultracite doesn’t add a goose hook, so after an edit goose runs the commands in AGENTS.md. goose’s own hooks live in plugin folders, but PostToolUse and AfterFileEdit only observe; only PreToolUse and Stop can change what goose does next.
- **Format code**: `npx ultracite fix`
- **Check for issues**: `npx ultracite check`
- **Diagnose setup**: `npx ultracite doctor`- 01goose edits a file with the developer extension’s
writeoredittool. - 02Following
AGENTS.md, it runsnpx ultracite fixwithshell. - 03In Autonomous mode nothing asks; in Smart Approve or Manual Approval, goose asks for tools it judges to be writes.
- 04goose reads the output and fixes what’s left.
Worth knowing about goose
Autonomous unless you change it
goose starts in Autonomous mode, so it edits files and runs commands,
ultracite fixincluded, without asking. Smart Approve and Manual Approval ask for tools the model judges to be writes; Chat Only runs nothing.Instructions it re-reads every turn
Hints load once per session and can fade as context fills. A file named in
GOOSE_MOIM_MESSAGE_FILEis re-read and injected on every turn, up to 64 KB, which suits the one rule you never want dropped.Custom context names replace the default
CONTEXT_FILE_NAMESreplaces goose’s list of context files rather than adding to it. Set it to["CLAUDE.md"]and goose stops readingAGENTS.md, and with it Ultracite’s rules.The Ultracite skill
goose loads skills from
.agents/skills/in the project and~/.agents/skills/, so it finds the Ultracite skill thatinitinstalls;initalso installs it into goose’s own folder when the project has a.goosedirectory. Rungoose skills listto check.
goose questions, answered
- Does goose read AGENTS.md?
- Yes.
AGENTS.mdand.goosehintsare its default context files, loaded at every level from the git root down to your working directory, plus~/.config/goose/AGENTS.mdand~/.agents/AGENTS.mdglobally. - Does goose read CLAUDE.md?
- Not by default. Set
CONTEXT_FILE_NAMESto a JSON array such as["CLAUDE.md", "AGENTS.md"]; the setting replaces the defaults, so keepAGENTS.mdin it or goose stops reading Ultracite’s rules. - Does goose support hooks?
- Yes, through plugins: a
hooks/hooks.jsonin.agents/plugins/<name>/or~/.agents/plugins/<name>/. OnlyPreToolUseandStophooks can block;PostToolUseandAfterFileEditresults are logged and ignored, so they can’t hand lint problems back. Ultracite doesn’t configure goose hooks. - Should I use .goosehints or AGENTS.md?
- Either works, and goose reads both.
ultracite initwritesAGENTS.md, which other agents read too; keep notes only goose needs in.goosehints. - How do I make goose ask before running commands?
- Switch modes with
/mode smart_approveor/mode approvein the CLI, or set Default Mode under Settings, Chat in the desktop app. goose then asks for tools it judges to be writes, a call the model makes on a best-effort basis.
Keep going
- AgentCrushCharm’s terminal coding agent that works with many model providers, with LSP context and MCP.
- 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.