Skip to content

Adapters

An adapter projects the single .repospec/ source of truth into one tool's native entrypoint. Enable them in project.yaml:

yaml
# .repospec/project.yaml
adapters: [claude, agents, cursor, claude-agents]

Then repospec sync writes/updates each file. Every generated file carries a managed header + checksum and is protected from accidental clobbering (Ownership).

Built-in adapters

idToolGenerates
claudeClaude / Claude CodeCLAUDE.md
agentsCross-tool conventionAGENTS.md
copilotGitHub Copilot.github/copilot-instructions.md
cursorCursor.cursor/rules/repospec.mdc
windsurfWindsurf.windsurf/rules/repospec.md
geminiGemini CLIGEMINI.md
zedZed.rules
clineCline.clinerules/repospec.md
continueContinue.continue/rules/repospec.md
claude-agentsClaude Code subagents.claude/agents/<id>.md (one per role)

The first nine render a single assistant guide from your project, roles, and rules. claude-agents is different: it emits one file per role as a native Claude Code subagent — see Parallel subagents.

Rule-file formats that require activation frontmatter get it automatically: cursor emits alwaysApply: true and windsurf emits trigger: always_on, so the project context loads on every request rather than only when @-mentioned.

Selecting a subset

bash
# regenerate only specific adapters
npx @repospec/cli generate --only claude,cursor

Adding a tool that isn't listed

Adapters are a stable extension point. If your assistant reads a file not covered here, open an issue or PR — a new adapter is a small, pure renderer. Until then, AGENTS.md (the cross-tool convention) is read by many tools.

Next

Released under the MIT License.