Skip to main content

Specification Conventions

Version: 1.0
Status: Approved
Owner: Platform Architecture Team
Last Updated: 2026-04-12
References: system.md §1–10, AGENT.md §1–17


1. Document Header Template

Every specification file MUST begin with:

# <Document Title>

**Version:** 1.0
**Status:** Draft | Approved
**Owner:** <Team>
**Last Updated:** YYYY-MM-DD
**Service:** <Service Name> (<SHORT_CODE>)
**References:** [system.md](../../system.md) §<n>, [AGENT.md](../../AGENT.md) §<n>

2. Requirement ID Scheme

Platform-wide

PrefixScope
PLT-REQ-xxxPlatform-level requirement
PLT-ADR-xxxArchitecture Decision Record

Per-service

PrefixArtifact
<CODE>-FR-xxxFunctional requirement
<CODE>-NFR-xxxNon-functional requirement
<CODE>-TR-xxxTechnical requirement
<CODE>-AR-xxxArchitectural requirement
<CODE>-EPIC-xxxEpic
<CODE>-FEAT-xxxFeature
<CODE>-US-xxxUser story

IDs are stable and never reused. Deprecated IDs are marked [DEPRECATED] in-place.


3. Service Short Codes

ServiceCode
api-gatewayGW
auth-serviceAUTH
sms-orchestratorORCH
smpp-connectorSMPP
routing-engineROUTE
dlr-processorDLR
billing-serviceBILL
webhook-dispatcherHOOK
analytics-serviceANLYT
notification-serviceNOTIF
operator-management-serviceOPS
admin-dashboardADMDASH
customer-portalCUST

4. Traceability Matrix Schema

All traceability matrices (.md, .csv, .json) share this schema:

FieldTypeDescription
idstringStable REQ ID (e.g. GW-FR-001)
requirementstringShort requirement statement
sourcestringsystem.md §n or AGENT.md §n
epicstringParent epic ID
featurestringParent feature ID
user_storystringParent story ID
test_levelenumunit, integration, contract, e2e
test_referencestringTest file or suite path/name
observability_signalstringmetric, log, trace, or combination
statusenumDraft, Approved, Implemented, Verified

5. Diagram Placement Rules

FileDiagram type
architectural_requirements.mdStructural: DDD layer, component, dependency graphs
solution_design.mdBehavioural: sequence, state, flowcharts for flows
architecture_baseline.mdPlatform C4 context, container, NATS topology, DB ownership
infrastructure_baseline.mdDeployment topology (local Docker Compose vs K8s prod)

All diagrams use Mermaid embedded in Markdown code fences. No external image files.


6. Assumptions Section Template

Every spec file MUST include an "Assumptions and Open Points" section:

## Assumptions and Open Points

| ID | Assumption / Open Point | Owner | Resolution Date |
|----|------------------------|-------|----------------|
| A-001 | ... | ... | ... |

7. Status Lifecycle

Draft → In Review → Approved → Implemented → Verified

Changes to Approved documents require a version bump and change log entry.