Harness reference

Where each harness expects context files. The source of truth init, document, and scope read from.

Claude Code

PurposeLocation
Project rulesCLAUDE.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

PurposeLocation
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

PurposeLocation
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

PurposeLocationLimit
Pointer to AGENTS.md.windsurf/rules/main.md
Workspace rules (legacy).windsurfrules6,000 chars
Rule directory.windsurf/rules/<name>.md12,000 chars total
Cross-session memories.windsurfmemoriesAgent-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.md with CLAUDE.md symlink.
  • Cursor → .cursor/rules/main.mdc pointer.
  • Codex → AGENTS.md already covers it.
  • Copilot → .github/copilot-instructions.md pointer.
  • Windsurf → .windsurf/rules/main.md pointer.
  • 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-09 orientation
  • 10-29 global style
  • 30-49 verification and build
  • 50-69 per-area (frontend, db, infra)
  • 70-89 security, MCP, credentials
  • 90-99 exceptions and overrides

Leave gaps so future rules slot in without renumbering.