Domain, Area, Feature, and Article frontmatter templates
Canonical frontmatter templates aligned with platform-spec validators and Zod contracts.
Document layout: Feature capability layoutconforms
## Purpose## Requirements
Domain, Area, Feature, and Article frontmatter templates Specification
Purpose
Canonical frontmatter templates aligned with platform-spec validators and Zod contracts.
Requirements
Requirement: Canonical platform-spec frontmatter templates: Decision [D-COMM-META-0001]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
New nodes must use the canonical templates on the parent feature hub:
specLeveldiscriminates domain, area, feature, or article;statusis required on feature and article only;ownerandsubmittermust include non-emptynameand validlayout.json.
Stable ID: BSP-REQ-7219808ED4A9
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/domain-area-feature-article-frontmatter-template/adr/0001-canonical-frontmatter-templates/content.md
Source SHA-256: 8c9e232ce4ae5eaba140eebabded25728cf731c4ef5caf490a6b216d5e0fd1a5
Scenario: Conformance exercises Decision
- GIVEN an implementation claims conformance with this capability
- WHEN behavior governed by this contract section is exercised
- THEN every MUST, SHALL, REQUIRED, prohibition, and accepted decision in the section is satisfied
Informative Source Provenance
The records below preserve migration history and are not normative except where text was extracted into a requirement above.
Source Record: Domain, Area, Feature, and Article frontmatter templates
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/domain-area-feature-article-frontmatter-template/
Source: site/spec-content/platform-spec/community/spec-maintenance/domain-area-feature-article-frontmatter-template/content.md
SHA-256: 9112165f9e7d152d43d88997a84f95a0b06c845c07dd2714839c2af9eb113228
Migrated source text
Use these templates when creating new platform-spec nodes. They match current CI validators and `trudoc` Zod contracts.
## Domain template
```yaml
---
title: <Domain title>
description: <Domain summary>
specLevel: domain
owner:
name: <Owner name>
email: <owner@example.com>
submitter:
name: <Submitter name>
email: <submitter@example.com>
relatedTopics: []
---
```
## Area template
```yaml
---
title: <Area title>
description: <Area summary>
specLevel: area
owner:
name: <Owner name>
email: <owner@example.com>
submitter:
name: <Submitter name>
email: <submitter@example.com>
relatedTopics: []
---
```
## Feature hub template
```yaml
---
title: <Feature title>
description: <Feature summary>
specLevel: feature
status: Standard
owner:
name: <Owner name>
email: <owner@example.com>
submitter:
name: <Submitter name>
email: <submitter@example.com>
relatedTopics: []
---
```
## Article template
```yaml
---
title: <Article title>
description: <Article summary>
specLevel: article
status: Standard
owner:
name: <Owner name>
email: <owner@example.com>
submitter:
name: <Submitter name>
email: <submitter@example.com>
relatedTopics: []
---
```
## Validation notes
- `status` is required for `feature` and `article`.
- `status` is not allowed on `domain` or `area`.
- `owner` and `submitter` must include non-empty `name` and valid `email`.
- Use `layout.json` for every domain/area/feature hub directory.
## Decisions
<!-- spec:generate:adr-index -->
No open decisions. Closed choices are normative ADRs under **`adr/`** (`D-COMM-META-0001`); use the reader **ADRs** tab for expandable detail.
<!-- /spec:generate:adr-index -->
## Articles
<!-- spec:generate:article-index -->
_No articles in this bundle yet._
<!-- /spec:generate:article-index -->
Source Record: Canonical platform-spec frontmatter templates
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/domain-area-feature-article-frontmatter-template/adr/0001-canonical-frontmatter-templates/
Source: site/spec-content/platform-spec/community/spec-maintenance/domain-area-feature-article-frontmatter-template/adr/0001-canonical-frontmatter-templates/content.md
SHA-256: 8c9e232ce4ae5eaba140eebabded25728cf731c4ef5caf490a6b216d5e0fd1a5
Migrated source text
## Context
Hand-written frontmatter drifted from `platformSpecNodeSchema` and layout scanners, causing PR failures late in CI.
## Decision
New nodes **must** use the canonical templates on the parent feature hub: `specLevel` discriminates **domain**, **area**, **feature**, or **article**; `status` is required on **feature** and **article** only; `owner` and `submitter` **must** include non-empty `name` and valid `email`; every domain/area/feature hub directory **must** ship `layout.json`.
## Consequences
`verify:platform-spec-frontmatter` blocks invalid shapes before build.
## Verification anchors
`packages/trudoc/src/schema/content.ts`; `packages/trudoc/src/verify/platform-spec-frontmatter.ts`.