ADR-0028: Migrate commands to skills format for cross-platform compatibility
Status: accepted | Date: 2026-02-22
References: ADR-0024, ADR-0023
Context
The project currently has two mechanisms for AI agent capabilities:
- Commands (
.claude/commands/): Slash commands for workflow orchestration - Skills (
.claude/skills/): Knowledge augmentation for the main agent
Industry trend: Major AI coding platforms are converging on skills as the standard format:
- Claude/Cursor: Skills can be triggered via slash commands (commands and skills are functionally equivalent)
- Codex: Only supports skills, no commands
Current structure:
.claude/commands/
├── discuss.md # Design discussion workflow
├── gov.md # Governed implementation workflow
├── quick.md # Fast path workflow
└── status.md # Governance status (rarely used)
.claude/skills/
├── rfc-writer/
├── adr-writer/
└── wi-writer/
Problem:
- Two similar concepts (commands vs skills) create confusion
- Commands are not portable to Codex
statuscommand has very low usage frequency
Decision
Migrate all workflow commands to skills format:
Migration:
| Source | Target | Action |
|---|---|---|
commands/discuss.md | skills/discuss/SKILL.md | Migrate |
commands/gov.md | skills/gov/SKILL.md | Migrate |
commands/quick.md | skills/quick/SKILL.md | Migrate |
commands/status.md | — | Delete (low usage) |
Format change:
Extend skill frontmatter to include command-specific fields:
---
name: gov
description: "Execute governed workflow — work item, RFC/ADR, implement, test, done"
allowed-tools: Read, Write, StrReplace, Shell, Glob, Grep, LS, SemanticSearch
argument-hint: <what-to-do>
---
Why keep current names:
discuss- Clear intent for design discussion phasegov- Established shorthand for governed workflowquick- Clear intent for fast path
Why delete status:
- Very low usage frequency observed
- Equivalent information available via
govctl statusCLI - Reduces maintenance burden
Consequences
Positive:
- Single unified format for all agent capabilities
- Portable across Claude, Cursor, and Codex
- Reduces conceptual overhead (one concept instead of two)
- Eliminates underutilized
statuscommand
Negative:
- One-time migration effort (minimal: 3 files)
- Breaking change for users who reference commands directly
- Need to update any documentation referencing commands/
Migration steps:
- Create skill directories for discuss, gov, quick
- Convert command files to skill format (add
namefield, preserveallowed-tools/argument-hint) - Delete commands/ directory
- Update ADR-0023 to reflect new structure
Future structure:
.claude/skills/
├── discuss/
│ └── SKILL.md
├── gov/
│ └── SKILL.md
├── quick/
│ └── SKILL.md
├── rfc-writer/
│ └── SKILL.md
├── adr-writer/
│ └── SKILL.md
└── wi-writer/
└── SKILL.md