Part 2 of the
agent-standards-as-codeseries.[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.
Each tool reads its config from a different place, in a slightly different format:
~/.cursor/skills/
, rules as .mdc
in ~/.cursor/rules/
.~/.claude/skills/
, guidance in CLAUDE.md
/ AGENTS.md
..github/skills/
or ~/.copilot/skills/
, guidance in .github/copilot-instructions.md
.~/.codex/skills/
, guidance in AGENTS.md
.Two things save us from writing four different content sets.
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.)
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:
AGENTS.md
(or a synced CLAUDE.md
) directly..github/copilot-instructions.md
that points at AGENTS.md
..mdc
rules (which support globs
and alwaysApply
).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)
The sync uses the right primitive per OS automatically:
mklink /J
) β no admin required (unlike 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.
git clone https://github.com/prathakmalik/agent-standards-kit.git
cd agent-standards-kit
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.
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.