← Files i-have-headacheARCHIVED FILE
.ai/decisions/ADR-0003-duplicate-command-body.md
2.05 KB · Oct 5, 2026 · 18:34 UTC
# ADR-0003 — Duplicate the command body rather than generate it *Superseded 2026-09-19 by [ADR-0006](ADR-0006-always-on-one-source.md): one copy, the skill.* *Status: accepted — 2026-09-13* ## Context Claude Code and Codex need the same prompt text. Claude Code requires YAML frontmatter; Codex must not have it. So the two files are identical except for a four-line header. ## Options **A. Generate the Codex file from the Claude one.** A script strips frontmatter; CI verifies they match. Guarantees no drift. Cost: the repo gains a build step, a script, and a CI config — for a three-file plugin with no other tooling. The machinery would be larger than the product. **B. Duplicate, and document the sync obligation.** Both files are checked in and hand-maintained. Cost: they can drift silently, and nothing mechanical stops it. ## Decision Option B, with the obligation written down in three places: `AGENTS.md`, [technical-logic](../technical-logic.md), and a dedicated skill, [.ai/technical-logic.md](../technical-logic.md). The body is one screen of prose that changes rarely. Build tooling would be permanent overhead against an occasional, low-severity, easily-detected failure. ## Consequences Good: the repo stays a pile of text files. Clone and read; no toolchain. Bad: drift is possible and nothing prevents it mechanically. A missed sync means the two platforms behave differently with no error anywhere. Detection is manual — someone notices Codex acting differently. Bad: the mitigation is documentation, which is weaker than a check. Accepted because the blast radius is "one platform is slightly more verbose," not data loss. ## Revisit when The command body grows past roughly one screen, gains a third *file* to sync, or a drift incident actually occurs. Any of those flips the arithmetic toward Option A. Cursor was added later and did **not** trigger this: it shares `commands/` with Claude Code, so the file count is unchanged. See [ADR-0004](ADR-0004-cursor-shares-the-command-directory.md). What matters is files to sync, not platforms supported.
SHA-256: 52808179e402f3684245444a1787634404bfba0115a347568ac6e30b9e7b99d2