6. Naming Conventions
Scan: Underscores not hyphens,
type_descriptive_name.mdpattern, ALLCAPS governance list, directory naming,type_prefix convention.
Decisions: C3
6.1 File Naming
Content files MUST use underscores for word separation. Hyphens MUST NOT be used in aDNA content files.
Pattern: type_descriptive_name.md
Examples:
mission_adna_standard.mdsession_{username}_20260211_120000_gap_analysis.mdcustomer_acme_corp.mdcontext_research_ancient_dna.md
Exception: Code-adjacent files in the project content layer (not inside the triad) MAY use hyphens to respect ecosystem conventions (npm, pip, etc.).
Exception: Tool-generated files (e.g., how/tasks/ with plugin-generated names) MAY retain their generated naming format.
6.2 Governance File Naming
Governance files MUST use ALLCAPS names. The exhaustive list:
CLAUDE.mdMANIFEST.mdSTATE.mdAGENTS.mdREADME.md
No other files SHOULD use ALLCAPS naming. This list MUST NOT be extended without a standard revision.
6.3 Directory Naming
Directories MUST use lowercase with underscores: context_library/, missions/.
Exception: .agentic/ uses a dot prefix (embedded triad convention).
6.4 Type Prefix Convention
The type_ prefix pattern is RECOMMENDED for aDNA content files. It enables sorting, filtering, and at-a-glance identification. Common prefixes:
| Prefix | Content |
|---|---|
mission_ | Missions (legacy: plan_) |
session_ | Session files |
template_ | Templates |
customer_ | Customer records |
context_ | Context library files |
idea_ | Backlog ideas |
skill_ | Skill procedures |
6.5 Rename Protocol
When a vault, project, or persona is renamed, the rename MUST, at rename-time, sweep the vault’s own live-routing governance files (CLAUDE.md, STATE.md, AGENTS.md) of self-references to the old name. A vault whose routing files still point at its prior identity is out-by-event (OBE) residue — masked when a back-compat shim keeps the stale references resolving, which is exactly why the sweep is mandatory rather than incidental.
Scope discipline (the load-bearing rule): the sweep targets the live-routing self-reference subset ONLY — a file’s own governance/routing prose that names the vault. It MUST NOT rewrite legitimate historical cross-references: provenance prose, session history, ADR lineage, and changelog entries are retained verbatim (archive-don’t-delete, §15). A naive whole-vault grep over-counts the defect by sweeping this history; the rename recipe carries a keep/strip classifier to separate the two.
Recipe: how/skills/skill_project_rename.md. Decision: ADR-042.