Harness reference
Where each harness expects context files. The source of truth
init,
document, and
scope read from.
Claude Code
| Purpose | Location |
|---|---|
| Project rules | CLAUDE.md (symlink to AGENTS.md by default) |
| Skills | .claude/skills/<name>/SKILL.md |
| Slash commands | .claude/commands/<name>.md |
| Sub-agents | .claude/agents/<name>.md |
| Hooks | .claude/hooks.json |
| Auto-loaded rules | .claude/rules/<NN>-<name>.md (optional) |
Cursor
| Purpose | Location |
|---|---|
| Pointer to AGENTS.md | .cursor/rules/main.mdc with alwaysApply: true |
| Scoped rules | .cursor/rules/<area>.mdc with globs |
---
description: Always-on pointer to /AGENTS.md
globs: []
alwaysApply: true
--- Codex / generic
AGENTS.md at the repo root. The emerging cross-tool standard.
GitHub Copilot
| Purpose | Location |
|---|---|
| Pointer to AGENTS.md | .github/copilot-instructions.md |
| Path-specific | .github/instructions/<name>.instructions.md with applyTo |
| Domain profiles | .github/agents/<name>.agent.md |
Windsurf
| Purpose | Location | Limit |
|---|---|---|
| Pointer to AGENTS.md | .windsurf/rules/main.md | |
| Workspace rules (legacy) | .windsurfrules | 6,000 chars |
| Rule directory | .windsurf/rules/<name>.md | 12,000 chars total |
| Cross-session memories | .windsurfmemories | Agent-managed |
Character budgets are hard limits; exceeding them silently truncates.
Cowork
Skills as <skill-name>/SKILL.md in the workspace folder, packageable as .plugin.
Which to target
Default reasoning:
- Claude Code or Cowork →
AGENTS.mdwithCLAUDE.mdsymlink. - Cursor →
.cursor/rules/main.mdcpointer. - Codex →
AGENTS.mdalready covers it. - Copilot →
.github/copilot-instructions.mdpointer. - Windsurf →
.windsurf/rules/main.mdpointer. - None mentioned → ask. Do not assume.
docs/agents/: harness-agnostic overflow
When AGENTS.md grows past ~80 lines, per-area conventions
split into docs/agents/<area>.md. No harness auto-loads
this, but any agent can be told to read it. Reference from
AGENTS.md's "See also".
.claude/rules/: optional Claude-Code-only auto-load
Claude Code reads every file in this directory in filename-sort order. No
other harness does. Use only if you specifically want auto-loading; for
harness-agnostic overflow, use docs/agents/.
Numeric prefix sets load order:
00-09orientation10-29global style30-49verification and build50-69per-area (frontend, db, infra)70-89security, MCP, credentials90-99exceptions and overrides
Leave gaps so future rules slot in without renumbering.