Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions compliance-check.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,20 @@ 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-name>/SKILL.md` for any runbooks currently embedded in AGENTS/PLAN docs
- Add `.codex/skills/<skill-name>/SKILL.md` AND its identical copy at `.claude/skills/<skill-name>/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

## FCIS (RFC 0001) Rules (ENFORCE STRICTLY)
- `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/<name>/SKILL.md` and `.claude/skills/<name>/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?
Expand All @@ -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"

Expand Down
Loading