Document Format
File Naming
Section titled “File Naming”Every document follows the <slug>.<type>.md pattern. See Documents & Layout for full naming rules, valid types, and directory organization.
Frontmatter
Section titled “Frontmatter”Every document requires YAML frontmatter with title and status:
---title: Use PostgreSQL as Primary Databasestatus: accepted---Required Fields
Section titled “Required Fields”| Field | Type | Description |
|---|---|---|
title | string | Human-readable document title. Must not be empty |
status | string | Document status: draft, accepted, or rejected |
Status Values
Section titled “Status Values”| Status | Meaning |
|---|---|
draft | Work in progress (default for new documents) |
accepted | Finalized or approved |
rejected | Superseded, abandoned, or declined (preserves history) |
Optional Fields
Section titled “Optional Fields”Cross-cutting labels for multi-axis categorization. Tags let you annotate documents by team, domain, or topic — dimensions that directory structure alone cannot express.
---title: E2E Auth Flow Testingstatus: acceptedtags: - frontend - team:backend - payment_flow---Tags must match ^[a-z][a-z0-9_:|-]*$ — lowercase, with hyphens, underscores, colons, and pipes allowed. Colons enable namespace-like conventions (e.g., team:payments). Tags are stored sorted and deduplicated. Invalid tags are rejected with a “did you mean?” hint.
When tags are absent, the field is omitted from output. Documents without tags parse and work normally.
The meta field can hold arbitrary YAML metadata:
---title: API Rate Limiting Standardsstatus: acceptedmeta: author: team-backend reviewed: 2025-01-15---Content Structure
Section titled “Content Structure”After the frontmatter, content is standard Markdown. Each document type has recommended sections (generated by the template), but the structure is not enforced beyond frontmatter validation.
Code References
Section titled “Code References”Documents may reference source code using @-notation:
See the implementation at @cmd/init.go and @internal/config/config.go.This is optional but helps agents navigate between documentation and code.
Template Generation
Section titled “Template Generation”When creating a document through the MCP create_document tool without providing content, Archcore generates a template with all required and recommended sections for that type.
For example, an ADR template includes:
## Context
[Describe the situation and problem]
## Decision
[What was decided and why]
## Alternatives Considered
[Other options that were evaluated]
## Consequences
### Positive
- [Benefit 1]
### Negative
- [Trade-off 1]
### Risks
- [Risk 1]
## Implementation Notes
[Key implementation details]
## References
- [Link 1]