Part 2 of the agent-standards-as-code series. Part 1 made the case for versioning your AI standards as code. This post makes them work across tools and operating systems. Code pinned at
v0.2.
In part 1 we put our AI coding standards in one git repo and auto-synced them into Cursor. Great — until a teammate says “I use Claude Code,” another says “we’re on Copilot in VS Code,” and half the team is on macOS while you’re on Windows.
If your standards only work in one tool on one OS, they’re not really team standards. Here’s how v0.2 fixes that.
The portability problem
Each tool reads its config from a different place, in a slightly different format:
-
Cursor: skills in
~/.cursor/skills/, rules as.mdcin~/.cursor/rules/. -
Claude Code: skills in
~/.claude/skills/, guidance inCLAUDE.md/AGENTS.md. -
Copilot (VS Code): skills in
.github/skills/or~/.copilot/skills/, guidance in.github/copilot-instructions.md. -
Codex: skills in
~/.codex/skills/, guidance inAGENTS.md.
Two things save us from writing four different content sets.
1. Skills are already portable
The Agent Skills standard defines a SKILL.md format that Cursor, Claude Code, Copilot, and Codex all understand. A skill is a folder with a SKILL.md whose frontmatter has a name and a trigger-rich description. Write it once, it runs everywhere. The sync just links that folder into each tool’s skills directory.
(One sharp edge: the name must be lowercase-hyphen and match the folder, or tools silently skip it. The repo’s CI enforces this so you can’t ship a broken skill.)
2. AGENTS.md is the portable base for rules
Rules are less standardized. So we keep a single portable AGENTS.md — the tool-agnostic standing guidance — and let each tool consume it:
- Claude/Codex read
AGENTS.md(or a syncedCLAUDE.md) directly. - Copilot gets a tiny
.github/copilot-instructions.mdthat points atAGENTS.md. - Cursor keeps its richer
.mdcrules (which supportglobsandalwaysApply).
The adapters/ folder documents exactly where each tool expects things, so there’s no guessing.
Git repo: skills/ + rules/ + AGENTS.md
│ setup.(ps1|sh) + git hooks
╚
├───────────↴────────────↴───────────↴──────────└
Cursor Claude Code Copilot Codex
(junction) (symlink) (.github) (symlink)
Enter fullscreen mode Exit fullscreen mode
Cross-platform: junctions vs symlinks
The sync uses the right primitive per OS automatically:
-
Windows: directory junctions (
mklink /J) — no admin required (unlike symlinks). -
macOS/Linux: symlinks (
ln -s).
So setup.ps1 and setup.sh do the same job on either platform. A .gitattributes keeps .sh files LF-normalized so they don’t break when cloned on Windows.
The scripts also detect installed tools — they only sync into ~/.claude if it exists, so nobody ends up with empty folders for tools they don’t use.
Try it
git clone https://github.com/prathakmalik/agent-standards-kit.git
cd agent-standards-kit
# Windows: ./scripts/setup.ps1
# macOS/Linux: ./scripts/setup.sh
Enter fullscreen mode Exit fullscreen mode
Whatever tools you have installed now share the same skills and rules. Change the repo, git pull, and every tool on every machine updates together.
Why this matters
Tool choice becomes a personal preference again, not a standards fork. A new hire on Claude Code gets the exact same guardrails as a veteran on Cursor — from the same reviewed source of truth.
Coming up next (v0.3): a source of truth is only useful if it stays true. Next post: the nudge -> skill -> PR loop that keeps your standards from rotting, plus how to adapt the kit to any tech stack.
⭐ the repo if this is useful — it genuinely helps.