diff --git a/compliance-check.md b/compliance-check.md index 9111961..f1fe329 100644 --- a/compliance-check.md +++ b/compliance-check.md @@ -57,7 +57,8 @@ Must include: The PR MUST: - Add/adjust `AGENTS.md` - Add/adjust `PLANS.md` (or declare `PLAN.md` in `AGENTS.md` if you keep it) -- Add `.codex/skills//SKILL.md` for any runbooks currently embedded in AGENTS/PLAN docs +- Add `.codex/skills//SKILL.md` AND its identical copy at `.claude/skills//SKILL.md` for any runbooks currently embedded in AGENTS/PLAN docs +- Ensure `.gitignore` excludes neither skills path, so both copies ship with the clone - Remove orthogonality violations by moving content to the correct layer - Not require any MCP server presence for correctness @@ -65,6 +66,11 @@ The PR MUST: - `AGENTS.md` = behavioral law. MUST define invariants and routing. MUST NOT contain step-by-step procedures or tool configuration. - `PLANS.md` = long-task intent protocol. Must be required by AGENTS.md for multi-step/high-risk work. - Skills = execution technique modules. Each skill directory MUST contain `SKILL.md` with: purpose, when-to-use, steps, output contract. +- **Skill parity (RFC 0001 amendment).** A skill MUST be discoverable by EVERY agent runtime the repository supports, and agent runtimes do not share a discovery path: Codex reads `.codex/skills/`, Claude Code reads `.claude/skills/`. A skill present in only one is invisible to the other agent, so the runbook silently gets reinvented by whichever agent cannot see it — the exact waste skills exist to prevent. Therefore each skill MUST exist as an IDENTICAL copy at `.codex/skills//SKILL.md` and `.claude/skills//SKILL.md`. + - Copies, not symlinks: symlink discovery is not guaranteed across runtimes, and a link is silently broken by an archive export, a worktree, or a filesystem that does not carry it. + - Neither path may be excluded by `.gitignore`. A skill that does not ship with the clone is not a skill. + - Content must be byte-identical. Divergence is drift, and drift in a procedure is worse than no procedure: two agents then follow different steps while both believe they are compliant. + - The skill is authored once and copied; the repository states which path is the editing origin so the copy direction is never ambiguous. - MCP = capability only. MUST NOT encode workflow/policy; MUST be configured outside repo; repo must not depend on MCP for correctness. - Each layer answers exactly one question: - AGENTS: What is allowed? @@ -80,7 +86,8 @@ Locate and read: - `README.md` (and any referenced policy docs) - `AGENTS.md` (and any nested equivalents) - `PLANS.md` and/or `PLAN.md` -- `.codex/skills/**/SKILL.md` (if present) +- `.codex/skills/**/SKILL.md` and `.claude/skills/**/SKILL.md` (if present) — compare them; a skill in only one path, or differing content between them, is a parity violation +- `.gitignore` — confirm it excludes neither skills path Search for instruction spillover keywords: - "how to", "steps", "run", "command", "config", "MCP", "policy", "workflow"