Adding Elements
Each architecture element is a Markdown file with YAML frontmatter. The frontmatter contains structured metadata; the body is free-form documentation.
Create your first element
Section titled “Create your first element”- Find the right folder for the element type (defined in
registry-mapping.yaml) - Copy the
_template.mdfile in that folder - Fill in the frontmatter fields
- Add documentation in the body
Example
Section titled “Example”---type: software-subsystemname: CRM API Gatewaydescription: API gateway for tenant and contact managementowner: Platform Teamdomain: Customer Managementstatus: activeparent_software_system: platform-corecomposes_api_endpoints: - tenant-api---
## Overview
The CRM API Gateway handles all inbound API traffic fortenant provisioning, contact lookups, and authentication flows.
## Architecture Decisions
- **ADR-001**: Selected API gateway pattern for unified entry point- **ADR-002**: JWT-based tenant isolationSave as registry-v2/3-application/software-subsystems/crm-api-gateway.md.
Frontmatter fields
Section titled “Frontmatter fields”Every .md file has a YAML frontmatter block between --- markers:
---type: software-system # matches an element key in the mappingname: Platform Core # required - the element's identitydescription: Core CRM platform # optional - shown in cards and detailowner: Platform Team # optional - ownership infodomain: Customer Management # optional - auto-groups into domainsstatus: active # optional - free-text status value---Additional fields depend on the element type. Check registry-mapping.yaml for the full list per type.
Body content
Section titled “Body content”Everything below the frontmatter --- is standard Markdown. It’s rendered as rich documentation on the element’s detail page. Use it for:
- Architecture Decision Records (ADRs)
- Integration notes and API documentation
- Diagrams (embedded images or links)
- Team-specific runbooks
File naming
Section titled “File naming”Use kebab-case for filenames:
billing-worker.mdtenant-api.mdtenant-account.mdThe filename (without .md) becomes the element’s slug, used for reference resolution and URL generation.
Composite IDs
Section titled “Composite IDs”Internally, each element gets a composite ID: <type_key>--<slug>
software_subsystem--billing-workerapi_endpoint--tenant-apidata_concept--tenant-accountThe -- separator prevents collisions. Different element types can have files with the same slug.
Templates
Section titled “Templates”Every type folder should have a _template.md with all available fields pre-filled as empty values. This makes it easy to create new elements:
cp registry-v2/3-application/software-systems/_template.md \ registry-v2/3-application/software-systems/my-new-system.md