Free · Public · No per-visitor AI
A coding agent is a model plus a harness
Config that moved
Stated contract changes across the judged radar — config you own, not a vendor leaderboard. Mentions without a change are omitted. How a harness is layered
What goes where
Mixing these up — enforcement in a context file, procedures bloating every session — is why agents feel inconsistent. Standing facts in context, procedures in skills, enforcement in hooks, isolation in subagents.
Standing facts
AGENTS.md · CLAUDE.md · GEMINI.md
Tool dialect
Thin pointer, not a second constitution
Procedures
Skills (SKILL.md) — richest on Claude Code
Enforcement
Hooks — Claude Code settings.json
Isolation
Subagents · Copilot .github/agents
Wiring
MCP, permissions, settings
Who reads what
Not a comparison. A lookup. Native AGENTS.md support is listed only where vendors agree; Windsurf and Cline keep their own files rather than a guessed standard.
Own context file
These tools load a file that is not AGENTS.md by default. Claude Code needs the @AGENTS.md import. Gemini CLI needs context.fileName to load AGENTS.md. Windsurf and Cline keep their own files.
| Tool | Context file | AGENTS.md | Unique config |
|---|---|---|---|
| Amazon Q Developer | .amazonq/ | Own context file | .amazonq/ |
| Claude Code | CLAUDE.md | Imports AGENTS.md from CLAUDE.md | .claude/settings.json · .claude/skills/ · .claude/hooks/ · .claude/agents/ · .claude/commands/ |
| Cline | .clinerules | Own context file | .cline/ |
| Continue | .continue/ | Own context file | .continue/ |
| Gemini CLI / Antigravity | GEMINI.md | AGENTS.md support varies | .gemini/ · .antigravity/ |
| Kiro | .kiro/ | Own context file | .kiro/ |
| OpenHands | .openhands/ | Own context file | .openhands/ |
| Tabnine | .tabnine/ | Own context file | .tabnine/ |
| Windsurf | .windsurf/rules/ · .windsurfrules | AGENTS.md support varies | .windsurf/ |
Reads AGENTS.md
One shared constitution. Keep tool-specific globs and MCP in that tool's settings, not a second copy of the rules.
| Tool | Context file | AGENTS.md | Unique config |
|---|---|---|---|
| Aider | AGENTS.md · CONVENTIONS.md | Reads AGENTS.md | .aider.conf.yml |
| Amp | AGENTS.md | Reads AGENTS.md | — |
| Augment | AGENTS.md | Reads AGENTS.md | — |
| Codex | AGENTS.md | Reads AGENTS.md | .codex/config.toml · AGENTS.override.md |
| Cursor | AGENTS.md · .cursor/rules/*.mdc | Reads AGENTS.md | .cursor/rules/*.mdc · .cursor/mcp.json |
| Devin | AGENTS.md | Reads AGENTS.md | — |
| Factory Droid | AGENTS.md | Reads AGENTS.md | .factory/ |
| GitHub Copilot | AGENTS.md · .github/copilot-instructions.md | Reads AGENTS.md | .github/copilot-instructions.md · .github/agents/ |
| Goose | AGENTS.md | Reads AGENTS.md | .goose/ |
| Grok Build | AGENTS.md | Reads AGENTS.md | .grok/ |
| OpenCode | AGENTS.md | Reads AGENTS.md | .opencode/ |
| Roo Code | AGENTS.md | Reads AGENTS.md | .roo/ |
| Zed | AGENTS.md | Reads AGENTS.md | — |
What a local scan reports
Releases tell you a contract moved. A scan of your files tells you the shape of the harness those contracts land in. Counts and presence only — never a verdict that anything is broken, never a failed build.
- Line counts for AGENTS.md, CLAUDE.md, GEMINI.md, and the other context files. Over 400 lines is noted because standing context that long often stops being followed.
- Whether CLAUDE.md contains
@AGENTS.md. Claude Code does not read AGENTS.md natively. - Whether
.claude/settings.local.jsonsits beside the project settings file — local overrides project. - How many skill roots and MCP config files exist. Hosts share the SKILL.md / MCP shapes, not the discovery paths.
Your agent can collect those facts and call summarize_harness_hygiene on the MCP server. The server cannot see your disk.
Paste-ready starter
Three files, not one per vendor. AGENTS.md for the tools that read it. CLAUDE.md for Claude Code (skills, hooks, agents). GEMINI.md for Gemini CLI / Antigravity. Cursor already reads AGENTS.md — do not add a parallel rulebook. Edit the placeholders.
AGENTS.md
Shared constitution — Codex, Cursor, Copilot, Factory, Grok Build, Roo, Goose, and others
Agent instructions
This file is the shared constitution for coding agents that read AGENTS.md (Codex, Cursor, Copilot, Factory Droid, Grok Build, Gemini CLI, Roo Code, Goose, OpenCode, Amp, Zed, Aider).
Claude Code does not read this file natively. Pair it with CLAUDE.md
that starts with @AGENTS.md. Gemini CLI / Antigravity default to GEMINI.md
and only load this file if settings set context.fileName.
Windsurf (.windsurf/rules) and Cline (.clinerules) have their own
context files — do not assume they load this one.
What this project is
One short paragraph. Not a README. What an agent needs before it starts a task.
Commands the agent cannot guess
- Install:
- Test:
- Lint:
Boundaries
- Small, reviewable diffs. Do not invent APIs, flags, or files that are not here.
- Nothing auto-applies. Propose, then wait for a human.
- Prefer an executable check over another paragraph of rules.
Where other harness pieces live
| Question | Put it in |
|---|---|
| Standing facts every agent needs | this file |
| How to do a kind of task | a skill (SKILL.md folder), loaded on demand |
| A rule the model must not skip | a hook (Claude Code: .claude/settings.json) |
| A separate role with its own context | a subagent (Claude Code: .claude/agents/; Copilot: .github/agents/) |
| Tool-specific wiring (MCP, permissions) | that tool's settings, not this file |
Do not copy this file into CLAUDE.md, GEMINI.md, .cursor/rules, or Copilot instructions.
Those stay thin: import or point here, then add only what that tool uniquely understands.
CLAUDE.md
What Claude Code actually reads — imports AGENTS.md, then skills, hooks, agents
Claude Code
@AGENTS.md
Claude Code reads this file, not AGENTS.md. Shared project facts stay in AGENTS.md. This file is the Claude-only harness.
Claude-only surfaces
- Skills:
.claude/skills/<name>/SKILL.md— procedures, loaded on demand - Hooks:
.claude/settings.jsonand.claude/hooks/— enforcement the model cannot skip - Permissions:
.claude/settings.json - Subagents:
.claude/agents/ - Slash commands:
.claude/commands/ - MCP servers:
.mcp.jsonormcpServersin settings
Do not paste AGENTS.md into this file. The @AGENTS.md line is the bridge.
Add only Claude-specific wiring below.
GEMINI.md
Thin Gemini CLI / Antigravity dialect — points at AGENTS.md
Gemini CLI / Antigravity
Default context file for Gemini CLI / Antigravity. Do not duplicate AGENTS.md here.
To also load AGENTS.md, set context.fileName in Gemini settings. Tool-only notes
(MCP, memory, flags) go below this line, if any.
Record the versions you run on My stack and My week becomes a catch-up list. Agents can ask the same question over MCP with get_harness_activity.