ADR-0023: Organize assets into commands, skills, and agents subdirectories
Status: accepted | Date: 2026-02-11
References: ADR-0024
Context
Context
The assets/ directory currently contains a flat mix of files: four command workflow definitions (gov.md, quick.md, discuss.md, status.md) and four logo SVGs. As we prepare to add skill definitions (specialized AI agent capabilities) and agent definitions (agent role/behavior configurations), the flat structure becomes ambiguous — it conflates three distinct categories of assets.
Problem Statement
With new asset types incoming, a flat assets/ directory provides no semantic separation. Developers (and tools like sync-commands.sh) must rely on conventions or file extensions to distinguish command templates from skills from agents.
Constraints
govctl initcopies command templates viainclude_str!insrc/cmd/new.rs— paths are compile-time constantsbuild.rstracks command files for rebuild — paths must stay in syncscripts/sync-commands.shandsync-commands.ps1globassets/*.md— pattern must be updated- Logo SVGs are referenced from
README.mdand are a fourth category (static images)
Decision
Decision
Organize assets/ into three subdirectories by category:
assets/commands/— AI workflow command definitions (gov.md, quick.md, discuss.md, status.md)assets/skills/— Skill definitions (new, initially empty)assets/agents/— Agent definitions (new, initially empty)
Logo SVGs remain at the assets/ root since they are static images, not AI-consumable definitions.
All compile-time paths (include_str!), build system paths (build.rs), and script globs are updated to reference assets/commands/.
Rationale
- Semantic clarity — the directory name tells you what kind of asset it is
- Minimal blast radius — logos stay put, only command
.mdfiles move one level deeper - Future-proof — skills and agents get their own home from day one
Consequences
Consequences
Positive
- Clear separation of concerns for three distinct asset categories
- New skills/agents have a designated location from the start
- Scripts and tooling can target specific subdirectories
Negative
- One-time update to all paths referencing command assets (4 files)
- Test snapshots that reference output paths may need updating
Neutral
- Logo SVGs stay at
assets/root — no change to README references