Skip to main content

ADR-100: Unified Nomenclature Standard - Track-Integrated System

Status

ACCEPTED - January 21, 2026

Context

CODITECT lacked a unified, coded nomenclature system for content categorization across 74 submodules and 2,100+ components. The existing state included:

  • Track Nomenclature (ADR-054): Domain-based task IDs (A.9.1.3 format) for A-H tracks
  • Documentation Separation (ADR-099): Audience-based directories (docs-customer/, docs-contributor/)
  • Component Naming: Informal kebab-case (security-specialist.md)
  • No unified content coding system

Problems Identified

  1. Inconsistent identification - No systematic way to identify content type/audience
  2. Migration complexity - 74 submodules need coordinated updates
  3. Scalability concerns - Current naming doesn't scale to enterprise deployment
  4. Automation gaps - Hard to automate routing, access control, deployment by content type
  5. Cognitive load - Users must learn multiple naming conventions

Requirements

RequirementPriorityDescription
ReadabilityP0Humans must understand codes without lookup
Machine-ParseableP0Regex-extractable, automatable
ScalableP0Must work for 10,000+ components
Backward CompatibleP1Migration path from current naming
ExtensibleP1New categories can be added
ConsistentP0One system across all submodules
Track-AlignedP0Integrates with existing A-H track system

Decision

Adopt the Track-Integrated Nomenclature system that extends the existing A-H domain tracks with new content tracks (P, U, V, O, X, Z) to create a unified two-dimensional classification system.

Format Specification

[DOMAIN].[CONTENT].[###]-[DESCRIPTIVE-NAME]

Components:
- DOMAIN: Single letter (A-H) from existing Track system, or omitted
- CONTENT: Single letter (P, U, V, O, X, Z) for audience/purpose
- ###: 3-digit sequential number (001-999)
- NAME: SCREAMING-KEBAB-CASE descriptive name

Domain Tracks (Existing - Immutable)

TrackDomainDescription
ABackend APIServer-side logic, APIs, databases
BFrontend UIClient-side interfaces, components
CDevOps/InfrastructureCI/CD, deployment, cloud
DSecurityAuthentication, authorization, auditing
ETesting/QATest frameworks, quality assurance
FDocumentationWritten content, guides, references
GDMSDocument Management System (deferred)
HInnovation/ResearchNew features, experiments, AI H.P.001-AGENTS

Content Tracks (New)

TrackAudienceDescriptionPortal
PProductShips to customers as core productCustomer install
UUserCustomer support, training, onboardingdocs.coditect.ai
VdeVeloperContributor documentation, internalinternal.coditect.ai
OOperationsDeployment, infrastructure, runbooksInternal
XeXternalMarketing, GTM, sales materialsPublic
ZGeneratedAuto-built, read-only, API refsAuto-deployed

Cross-Reference Matrix

ContentA (Backend)B (Frontend)C (DevOps)D (Security)E (Testing)F (Docs)H (Innovation)
P (Product)A.P.###B.P.###C.P.###D.P.###E.P.###-H.P.###
U (User)-B.U.###---F.U.###-
V (Developer)A.V.###B.V.###C.V.###D.V.###E.V.###F.V.###H.V.###
O (Operations)--C.O.###D.O.###---
X (Marketing)-------
Z (Generated)A.Z.###B.Z.###--E.Z.###F.Z.###H.Z.###

Note: X (Marketing) and standalone content omit the domain track: X.001-MARKET-POSITIONING

Examples

# Innovation (H) as Product (P)
H.P.001-AGENTS-SPECIALIST-LIBRARY
H.P.002-COMMANDS-SLASH-WORKFLOWS
H.P.003-SKILLS-REUSABLE-PATTERNS
H.P.004-SCRIPTS-AUTOMATION-TOOLS
H.P.005-HOOKS-EVENT-HANDLERS

# Documentation (F) for Users (U)
F.U.001-QUICK-START-GUIDE
F.U.002-MEMORY-MANAGEMENT-GUIDE
F.U.003-TROUBLESHOOTING-FAQ
F.U.004-USER-TRAINING-PATHWAY

# Documentation (F) for Developers (V)
F.V.001-ADR-ARCHITECTURE-DECISIONS
F.V.002-STANDARDS-FRAMEWORK-RULES
F.V.003-RESEARCH-MOE-VERIFICATION
F.V.004-CONTRIBUTION-GUIDE

# DevOps (C) for Operations (O)
C.O.001-KUBERNETES-DEPLOYMENT
C.O.002-DOCKER-CONTAINER-CONFIG
C.O.003-RUNBOOK-INCIDENT-RESPONSE

# Backend (A) as Product (P)
A.P.001-API-MODELS-LICENSE
A.P.002-API-ENDPOINTS-CONTEXT
A.P.003-API-SERIALIZERS-USER

# Marketing (standalone)
X.001-MARKET-POSITIONING-BRIEF
X.002-CASE-STUDY-ENTERPRISE
X.003-COMPETITIVE-ANALYSIS

Directory Structure

coditect-core/
├── H.P-innovation-product/
│ ├── H.P.001-H.P.001-AGENTS/
│ │ ├── H.P.001.001-security-specialist.md
│ │ ├── H.P.001.002-devops-engineer.md
│ │ └── ...
│ ├── H.P.002-H.P.002-COMMANDS/
│ ├── H.P.003-H.P.003-SKILLS/
│ ├── H.P.004-H.P.004-SCRIPTS/
│ └── H.P.005-H.P.005-HOOKS/
├── F.U-docs-user/
│ ├── F.U.001-getting-started/
│ ├── F.U.002-guides/
│ ├── F.U.003-tutorials/
│ └── F.U.004-troubleshooting/
├── F.V-docs-developer/
│ ├── F.V.001-adrs/
│ ├── F.V.002-standards/
│ ├── F.V.003-research/
│ └── F.V.004-development/
├── C.O-devops-operations/
│ ├── C.O.001-kubernetes/
│ └── C.O.002-docker/
└── X-marketing/
├── X.001-positioning/
└── X.002-case-studies/

Validation Rules

Regex Pattern:

^([A-H]\.)?[POUVXZ]\.\d{3}-[A-Z][A-Z0-9-]+$

Validation Script:

import re

PATTERN = r'^([A-H]\.)?[POUVXZ]\.\d{3}-[A-Z][A-Z0-9-]+$'

def validate_nomenclature(name: str) -> bool:
return bool(re.match(PATTERN, name))

# Valid examples
assert validate_nomenclature("H.P.001-AGENTS-LIBRARY")
assert validate_nomenclature("F.U.002-QUICK-START")
assert validate_nomenclature("X.001-POSITIONING")

# Invalid examples
assert not validate_nomenclature("CORE-0001-AGENTS") # Wrong format
assert not validate_nomenclature("H.P.1-AGENTS") # Need 3 digits
assert not validate_nomenclature("H.Q.001-AGENTS") # Q not valid content

Consequences

Positive

  1. Single unified system - One nomenclature for all content types
  2. Native Track integration - Extends familiar A-H system developers already know
  3. Two-dimensional clarity - Domain × Content provides precise classification
  4. Infinite scalability - Add new tracks without breaking existing system
  5. Machine-parseable - Simple regex validation and extraction
  6. CI/CD compatible - Works with existing Track-based pipelines
  7. Reduced cognitive load - Learn one system, not multiple parallel systems

Negative

  1. Initial learning curve - Single-letter codes require reference
  2. Migration effort - 2,100+ components need renaming
  3. Unique to CODITECT - Not an industry standard (though logical)
  4. Some edge cases - Not all Domain × Content combinations make sense

Neutral

  1. Documentation updates - Extensive but manageable
  2. Tooling updates - CI/CD needs Content track recognition

Implementation

Operational directories MUST maintain backward-compatible symlinks to prevent breaking the framework runtime. The Track-Integrated names are the canonical directories; legacy names are symlinks.

coditect-core/
├── H.P.001-AGENTS/ # Canonical (new name)
├── agents -> H.P.001-AGENTS # Symlink (legacy compatibility)
├── H.P.002-COMMANDS/
├── commands -> H.P.002-COMMANDS
├── H.P.003-SKILLS/
├── skills -> H.P.003-SKILLS
├── H.P.004-SCRIPTS/
├── scripts -> H.P.004-SCRIPTS
├── H.P.005-HOOKS/
├── hooks -> H.P.005-HOOKS
├── H.P.006-WORKFLOWS/
├── workflows -> H.P.006-WORKFLOWS
├── H.P.007-PROMPTS/
├── prompts -> H.P.007-PROMPTS
├── H.P.008-TEMPLATES/
├── templates -> H.P.008-TEMPLATES
├── H.P.009-CONFIG/
├── config -> H.P.009-CONFIG
└── internal/
└── project -> ../H.V.001-PROJECT-MANAGEMENT

Rationale:

  • Claude Code hooks reference ~/.coditect/hooks/
  • Framework scripts reference ~/.coditect/scripts/
  • Agent discovery uses ~/.coditect/agents/
  • Config loading expects ~/.coditect/config/

Breaking these paths breaks the entire framework. Symlinks provide:

  1. New naming visible - Directory listings show Track-Integrated names
  2. Legacy compatibility - Existing references continue to work
  3. Zero migration risk - No need to update 7,755+ file references
  4. Gradual adoption - New code can use new paths; old code still works

Cross-Platform Compatibility

PlatformSymlink MethodRequirements
macOSNative symlinksNone
LinuxNative symlinksNone
WindowsDirectory junctionsNone (junctions don't need admin)
Windows (alt)SymlinksDeveloper Mode or Admin

Windows Implementation:

  • Primary: Directory junctions via mklink /J (no elevation required)
  • Fallback: Symlinks via mklink /D (requires Developer Mode)
  • Git: Must set git config --global core.symlinks true

Git Configuration (.gitattributes):

# Preserve symlinks - don't convert to text files
agents symlink
commands symlink
skills symlink
scripts symlink
hooks symlink
workflows symlink
prompts symlink
templates symlink
config symlink

Setup Script (CODITECT-CORE-INITIAL-SETUP.py v2.5.0+):

  • Cross-platform create_symlink() function handles all platforms
  • Automatically creates junctions on Windows, symlinks on Unix
  • create_operational_symlinks() creates all ADR-100 compatibility links

Migration Plan

PhaseScopeDurationPriority
1Create automation scriptsDay 1-2P0
2Rename directories + create symlinksDay 3-4P0
3Update CI/CD pipelinesDay 4-5P0
4Migrate submodulesDay 5-7P1
5Update documentationDay 6-7P1

Migration Script Requirements

# migration_nomenclature.py

CURRENT_TO_NEW = {
# Agents
'H.P.001-AGENTS/': 'H.P.001-H.P.001-AGENTS/',
'H.P.001-AGENTS/security-specialist.md': 'H.P.001-H.P.001-AGENTS/H.P.001.001-security-specialist.md',

# Commands
'H.P.002-COMMANDS/': 'H.P.002-H.P.002-COMMANDS/',

# Skills
'H.P.003-SKILLS/': 'H.P.003-H.P.003-SKILLS/',

# Scripts
'H.P.004-SCRIPTS/': 'H.P.004-H.P.004-SCRIPTS/',

# Hooks
'H.P.005-HOOKS/': 'H.P.005-H.P.005-HOOKS/',

# Customer docs
'F.U.001-GETTING-STARTED/': 'F.U.001-getting-started/',
'F.U.002-GUIDES/': 'F.U.002-guides/',
'F.U.003-TUTORIALS/': 'F.U.003-tutorials/',
'F.U.005-TROUBLESHOOTING/': 'F.U.004-troubleshooting/',

# Contributor docs
'F.V.001-ADRS/': 'F.V.001-adrs/',
'F.V.003-STANDARDS/': 'F.V.002-standards/',
'F.V.004-RESEARCH/': 'F.V.003-research/',
'F.V.005-DEVELOPMENT/': 'F.V.004-development/',

# Operations
'ops/kubernetes/': 'C.O.001-kubernetes/',
'ops/docker/': 'C.O.002-docker/',
}

Success Criteria

  • All 2,100+ components renamed to new nomenclature
  • All internal references updated (imports, links, H.P.009-CONFIGs)
  • CI/CD pipelines recognize new Content tracks
  • All tests passing
  • Documentation updated with new naming convention
  • Zero regressions in production

Rollback Plan

If critical issues discovered:

  1. Revert git history to pre-migration commit
  2. Restore symlinks if needed
  3. Re-run CI/CD with original naming
  4. Document issues for next attempt

MoE Evaluation Summary

This decision was made using the MoE Decision Framework with 5 judge personas:

MetricValue
Decision IDNOM-2026-001
Solutions Evaluated5
Judges5
Winner Score85.4 (B+)
Consensus5/5
ThresholdPassed (≥80)

Evaluated Solutions

SolutionScoreGrade
D: Track-Integrated85.4B+ (WINNER)
E: Hybrid Badge84.2B
C: Hierarchical Triple83.6B
A: ADR-Style Extended82.8B
B: Dot-Notation Compact77.6C+ (Rejected)

Key Decision Factors

  1. Track Integration (D6) - Only solution with full native integration (95.6 avg)
  2. Systematization (D2) - Extends proven system (90.0 avg)
  3. Scalability (D3) - Two-dimensional matrix scales infinitely (91.0 avg)
  4. Migration Effort (D4) - Leverages existing knowledge (82.0 avg)

Changelog

DateChange
2026-01-22Added Cross-Platform Compatibility section (Windows support)
2026-01-22Added Symlink Compatibility Layer section (CRITICAL)
2026-01-21Initial decision - Accepted

Decision Authority: Hal Casteel, CEO/CTO, AZ1.AI INC Version: 1.0.0 Created: January 21, 2026