Domain, Area and Feature template bundle
Mandatory markdown-first template set for Domain, Area and Feature pages, including required section contracts and optional article bundles.
Document layout: Feature capability layoutconforms
## Purpose## Requirements
Domain, Area and Feature template bundle Specification
Purpose
Mandatory markdown-first template set for Domain, Area and Feature pages, including required section contracts and optional article bundles.
Requirements
Requirement: Domain, Area and Feature template bundle: Anti-stub and circular canon rules [community/spec-maintenance/feature-hub-article-bundle-template]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
The following are forbidden on Standard pages:
- Circular canon — Body text that only self-references the same page URL as the sole authority without substantive normative MUST/SHOULD/MAY prose in the same file.
- Placeholder-only articles — Article bundles where every sibling file is scaffold-only (“What this article covers” + “see the parent feature hub” with no role-specific sections).
- Hub-only authority — Articles that repeat the feature hub contract without adding role-specific detail; normative requirements belong on the hub, articles add depth.
Stable ID: BSP-REQ-C61D45B81185
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/content.md
Source SHA-256: 73771d9f04af8461e57cab4b604c2b2f1c455aae6596a9887d649ad471d69e1e
Scenario: Conformance exercises Anti-stub and circular canon rules
- 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
Requirement: Domain, Area and Feature template bundle: Minimum article payload by role [community/spec-maintenance/feature-hub-article-bundle-template]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
Each article in a bundle must meet a minimum for its role (in addition to Required Article sections):
Article role Minimum normative payload design-model Data/state model, invariants, and at least one diagram or structured flow ( archblock or table)contracts MUST/SHOULD table or numbered rules testable independently of the hub summary verification Concrete test paths, crates, CI jobs, or registry codes — not “TBD” operations / migration Procedures, rollout constraints, or compatibility steps decisions-record Legacy only—migrate rows into adr/files per Specification authority and embedded decisionsadr One decision per file; SpecAdrChrome; reader ADRs tab lists expandable detailPages that cannot meet the minimum must use
status: Proposeduntil expanded.
Stable ID: BSP-REQ-EB71450DCDE1
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/content.md
Source SHA-256: 73771d9f04af8461e57cab4b604c2b2f1c455aae6596a9887d649ad471d69e1e
Scenario: Conformance exercises Minimum article payload by role
- 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
Requirement: Markdown-first platform-spec authoring: Decision [D-COMM-HUB-0001]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
Every new or reworked topic must choose one canonical level: Domain, Area, or Feature. Regular sections must be markdown headings/lists/admonitions first. Architecture visuals must use fenced
arch(Mermaid C4); procedural flows may use fencedmermaid. Inline graph components in docs are legacy-only. Generics in prose must use one backtick literal per type; Mermaid labels must not contain raw`<`or`>`.
Stable ID: BSP-REQ-4865596AAB4E
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0001-markdown-first-authoring/content.md
Source SHA-256: 8b059644fe96d99a3bbe162f34c9f701909df4f717d3756f511ce88f9c19d2ab
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
Requirement: Required Domain Area and Feature hub sections: Decision [D-COMM-HUB-0002]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
Domain pages must include eight ordered sections (scope, terminology, principles, area map, guarantees, conformance, change policy, related domains). Area pages must include eight area sections (contract, boundaries, internal model, feature index, failure model, verification matrix, operations, related areas). Feature hubs must include eleven sections ending with Decisions plus
adr/(contract, I/O, state, algorithms, edge cases, compatibility, security/performance, examples, verification, related features, decisions).
Stable ID: BSP-REQ-335676FF3F93
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0002-domain-area-feature-section-contracts/content.md
Source SHA-256: f9cd68e4546f2b8ab1332c323b21da84efdc0eec5cb913060d6131e3f516420a
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
Requirement: Standard feature hubs require adr directory: Decision [D-COMM-HUB-0003]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
Every Standard feature hub must include
## Decisions(open items or no open decisions plusadrIdpointers) and publish at least one`adr/<slug>.mdx`withspecLevel: adrunless explicitly exempt in a Standard maintenance policy. Each ADR must include Context, Decision, and Consequences. New decisions must not be added only to monolithic decision tables.
Stable ID: BSP-REQ-E14003B4FEE1
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0003-standard-feature-adr-directory/content.md
Source SHA-256: 300ad533e85b3f744bac2f6be61ad173dc379895b65ebb553338a775cd21f037
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
Requirement: Anti-stub and circular canon rules: Decision [D-COMM-HUB-0004]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
On Standard pages the following are forbidden: (1) circular canon — body that cites the same URL as sole authority without substantive MUST/SHOULD/MAY prose; (2) placeholder-only articles — siblings that are scaffold-only; (3) hub-only authority — articles that repeat the hub contract without role-specific detail.
Stable ID: BSP-REQ-C502646E1105
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0004-anti-stub-and-circular-canon/content.md
Source SHA-256: 632e48b9b5defa99d64a4bbdd692a7b8ea29c74848fc1c7586d23f75b53b13da
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
Requirement: Minimum article payload by role: Decision [D-COMM-HUB-0005]
The Beskid standard SHALL enforce the following migrated contract section. Accepted ADR decisions are binding; uppercase requirement keywords retain their BCP-14 meaning.
Each bundle article must meet role minimums: design-model (model, invariants, diagram/table); contracts (testable MUST/SHOULD rules); verification (concrete test paths, not TBD); operations/migration (procedures); decisions-record (legacy—migrate to
adr/); adr (one decision per file withSpecAdrChrome). Every article must include purpose, canonical references, detailed behavior, verification notes, and related topics. Feature hubs must publish a stable newcomer reading order (area → hub → conceptual articles → verification).
Stable ID: BSP-REQ-DA82FBED3D20
Legacy source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0005-article-minimum-payload/content.md
Source SHA-256: 2eb06f1ab4c58732eaa059822256b28de1271988ed4c8bdfcf9455955fc47a7c
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 and Feature template bundle
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/
Source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/content.md
SHA-256: 73771d9f04af8461e57cab4b604c2b2f1c455aae6596a9887d649ad471d69e1e
Migrated source text
## Normative platform contract
1. Every new or materially reworked platform-spec topic **must** choose one canonical level: **Domain**, **Area**, or **Feature**.
2. Regular sections **must** be authored in markdown headings/lists/admonitions first; Astro components are reserved for edge cases only.
3. Architecture visuals **must** use fenced code blocks with language `arch` (Mermaid C4 syntax) for static topology; procedural flows **may** use fenced `mermaid` (`flowchart`, `sequenceDiagram`, `stateDiagram-v2`). Inline graph components in docs are legacy-only.
4. Feature pages may include article bundles, but article pages **must not** redefine canonical normative requirements that belong to the feature hub.
5. Type names with generics in prose **must** use a single backtick literal per type (for example write Fiber-of-T as one fenced inline code span in source), not HTML-escaped angle brackets. Mermaid node labels **must not** contain raw less-than or greater-than characters; use plain names or quoted labels (for example `"Channel T"`).
## Required Domain sections
A Domain page **must** include the following sections in this order:
1. **Scope and boundaries** - what this domain defines and what is out of scope.
2. **Terminology** - core nouns and exact meanings used by child pages.
3. **Architectural principles** - durable design rules for this domain.
4. **Area map** - navigable list of areas with one-sentence responsibilities.
5. **Normative guarantees** - stable contract guarantees expected by users and tooling.
6. **Conformance evidence** - how compliance is demonstrated.
7. **Change policy** - compatibility and migration expectations.
8. **Related domains** - cross-domain dependencies and links.
## Required Area sections
An Area page **must** include:
1. **Area contract** - subsystem mission, boundary, and external obligations.
2. **Responsibility boundaries** - explicit handoffs to sibling areas or domains.
3. **Internal model** - high-level stages, data flow, or topology.
4. **Feature index** - canonical feature pages under this area.
5. **Failure and diagnostics model** - error classes and reporting expectations.
6. **Verification matrix** - tests/checks that validate the area contract.
7. **Operational guidance** - usage, rollout, or maintenance notes.
8. **Related areas** - sibling and upstream/downstream links.
## Required Feature Hub sections
The Feature Hub page **must** include all of the following sections in this order:
1. **Contract statement** - concise statement of the feature obligation.
2. **Inputs and outputs** - data and API surfaces consumed and emitted.
3. **State model** - persistent/transient state and lifecycle constraints.
4. **Algorithms and flow** - normative sequence and key decisions.
5. **Edge cases and errors** - known exceptional behavior and diagnostics.
6. **Compatibility and versioning** - forward/backward compatibility policy.
7. **Security and performance notes** - mandatory cautions and limits.
8. **Examples** - representative examples linked to canonical behavior.
9. **Verification and traceability** - test anchors and drift detection.
10. **Related features** - direct dependencies and sibling contracts.
11. **Decisions** - hub summary plus **`adr/`** directory (see below); required on every **Standard** feature hub.
## Required Feature Hub — Decisions and `adr/`
Every **Standard** feature hub **must**:
1. Include a **`## Decisions
<!-- spec:generate:adr-index -->
No open decisions. Closed choices are normative ADRs under **`adr/`** (`D-COMM-HUB-0001` … `D-COMM-HUB-0005`); use the reader **ADRs** tab for expandable detail.
<!-- /spec:generate:adr-index -->
No open decisions. Closed choices are normative ADRs under **`adr/`** (`D-COMM-HUB-0001` … `D-COMM-HUB-0005`); use the reader **ADRs** tab for expandable detail.
<!-- /spec:generate:adr-index -->`** section (summary only: open items, or **no open decisions**, plus pointers to `adrId` values).
2. Publish at least one file under **`adr/<slug>.mdx`** with `specLevel: adr` (unless the feature is explicitly exempt in a **Standard** maintenance policy).
Each ADR file **must** include **`## Context`**, **`## Decision`**, and **`## Consequences`**, with frontmatter `adrId`, `adrStatus`, and optional `adrDate`. Use [Project inception](/platform-spec/community/project-inception/) for cross-cutting historical ADRs.
Legacy **`decisions-record.mdx`** articles may remain during migration; new decisions **must not** be added only to monolithic decision tables.
Reference: [Concurrency package ADRs](/platform-spec/core-library/concurrency/concurrency-package/adr/0001-channel-default-unbounded/).
## Anti-stub and circular canon rules
The following are **forbidden** on **Standard** pages:
1. **Circular canon** — Body text that only self-references the same page URL as the sole authority **without** substantive normative MUST/SHOULD/MAY prose in the same file.
2. **Placeholder-only articles** — Article bundles where every sibling file is scaffold-only (“What this article covers” + “see the parent feature hub” with no role-specific sections).
3. **Hub-only authority** — Articles that repeat the feature hub contract without adding role-specific detail; normative requirements belong on the hub, articles add depth.
## Minimum article payload by role
Each article in a bundle **must** meet a minimum for its role (in addition to [Required Article sections](#required-article-sections)):
| Article role | Minimum normative payload |
| --- | --- |
| **design-model** | Data/state model, invariants, and at least one diagram or structured flow (`arch` block or table) |
| **contracts** | MUST/SHOULD table or numbered rules testable independently of the hub summary |
| **verification** | Concrete test paths, crates, CI jobs, or registry codes — not “TBD” |
| **operations** / **migration** | Procedures, rollout constraints, or compatibility steps |
| **decisions-record** | Legacy only—migrate rows into **`adr/`** files per [Specification authority and embedded decisions](/platform-spec/community/spec-maintenance/spec-authority-and-decisions/) |
| **adr** | One decision per file; `SpecAdrChrome`; reader **ADRs** tab lists expandable detail |
Pages that cannot meet the minimum **must** use `status: Proposed` until expanded.
## Required Article sections
Each optional Article page in a bundle **must** include:
1. **Purpose and scope** — what this article explains and where it does not apply.
2. **Canonical references** — links back to the Feature Hub and any normative source pages it relies on.
3. **Detailed behavior or procedure** — implementation-facing explanation, examples, or workflows.
4. **Verification and maintenance notes** — how drift is detected, reviewed, or tested.
5. **Related topics** — at minimum one parent or sibling link.
## Newcomer reading order requirements
Every Feature Hub **must** publish an explicit ordered list that supports first-time orientation:
1. Start with the parent Area page for system context.
2. Read the Feature Hub for canonical boundaries and invariants.
3. Read bundle articles from conceptual overview to operational details.
4. End with verification and maintenance policy pages (including `lastReviewed` governance when relevant).
The order **must** be written to remain stable when new articles are added; append articles by preserving the conceptual-to-operational flow.
## Markdown-first authoring policy
- Use markdown heading structure for all regular sections.
- Use `arch` fenced blocks for architecture diagrams.
- Use tables sparingly; prefer short lists for readability.
- Component usage is allowed only for non-standard interactive UI or migration edge cases, and must include a rationale note in the page.
## Decisions
## Articles
<!-- spec:generate:article-index -->
_No articles in this bundle yet._
<!-- /spec:generate:article-index -->
Source Record: Markdown-first platform-spec authoring
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0001-markdown-first-authoring/
Source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0001-markdown-first-authoring/content.md
SHA-256: 8b059644fe96d99a3bbe162f34c9f701909df4f717d3756f511ce88f9c19d2ab
Migrated source text
## Context
Heavy Astro component usage made diffs noisy and hid normative prose from content validators.
## Decision
Every new or reworked topic **must** choose one canonical level: **Domain**, **Area**, or **Feature**. Regular sections **must** be markdown headings/lists/admonitions first. Architecture visuals **must** use fenced `arch` (Mermaid C4); procedural flows **may** use fenced `mermaid`. Inline graph components in docs are legacy-only. Generics in prose **must** use one backtick literal per type; Mermaid labels **must not** contain raw `` `<` `` or `` `>` ``.
## Consequences
Component usage requires a rationale note; tables stay sparse.
## Verification anchors
`remark-arch-code-fence`; layout `minMarkdownHeadings` where enabled.
Source Record: Required Domain Area and Feature hub sections
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0002-domain-area-feature-section-contracts/
Source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0002-domain-area-feature-section-contracts/content.md
SHA-256: f9cd68e4546f2b8ab1332c323b21da84efdc0eec5cb913060d6131e3f516420a
Migrated source text
## Context
Inconsistent hub shapes made navigation and CI layout validation unpredictable.
## Decision
**Domain** pages **must** include eight ordered sections (scope, terminology, principles, area map, guarantees, conformance, change policy, related domains). **Area** pages **must** include eight area sections (contract, boundaries, internal model, feature index, failure model, verification matrix, operations, related areas). **Feature** hubs **must** include eleven sections ending with **Decisions** plus **`adr/`** (contract, I/O, state, algorithms, edge cases, compatibility, security/performance, examples, verification, related features, decisions).
## Consequences
`layout.json` presets align with `SpecSection` ids; articles **must not** redefine hub-only canonical requirements.
## Verification anchors
`verify:platform-spec-layout`; `feature-contract-default` preset.
Source Record: Standard feature hubs require adr directory
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0003-standard-feature-adr-directory/
Source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0003-standard-feature-adr-directory/content.md
SHA-256: 300ad533e85b3f744bac2f6be61ad173dc379895b65ebb553338a775cd21f037
Migrated source text
## Context
**Standard** features shipped without traceable closed choices, blocking the reader **ADRs** tab.
## Decision
Every **Standard** feature hub **must** include **`## Decisions`** (open items or **no open decisions** plus `adrId` pointers) and publish at least one `` `adr/<slug>.mdx` `` with `specLevel: adr` unless explicitly exempt in a **Standard** maintenance policy. Each ADR **must** include **Context**, **Decision**, and **Consequences**. New decisions **must not** be added only to monolithic decision tables.
## Consequences
Reference: [Concurrency package ADRs](/platform-spec/core-library/concurrency/concurrency-package/adr/0001-channel-default-unbounded/). Legacy `decisions-record.mdx` is migration-only.
## Verification anchors
`PSC003` in `platform-spec-content.ts`.
Source Record: Anti-stub and circular canon rules
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0004-anti-stub-and-circular-canon/
Source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0004-anti-stub-and-circular-canon/content.md
SHA-256: 632e48b9b5defa99d64a4bbdd692a7b8ea29c74848fc1c7586d23f75b53b13da
Migrated source text
## Context
**Standard** pages passed review with self-referential stubs or article bundles that only pointed at the parent hub.
## Decision
On **Standard** pages the following are **forbidden**: (1) **circular canon** — body that cites the same URL as sole authority without substantive MUST/SHOULD/MAY prose; (2) **placeholder-only articles** — siblings that are scaffold-only; (3) **hub-only authority** — articles that repeat the hub contract without role-specific detail.
## Consequences
`PSC001`/`PSC002`/`PSC007` fail or warn in CI; pages that cannot meet minimums **must** use `status: Proposed`.
## Verification anchors
`verify:platform-spec-content --strict`; `LANGUAGE_META_CIRCULAR_CANON_ALLOWLIST`.
Source Record: Minimum article payload by role
Authority: informative provenance
Legacy path: /platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0005-article-minimum-payload/
Source: site/spec-content/platform-spec/community/spec-maintenance/feature-hub-article-bundle-template/adr/0005-article-minimum-payload/content.md
SHA-256: 2eb06f1ab4c58732eaa059822256b28de1271988ed4c8bdfcf9455955fc47a7c
Migrated source text
## Context
Article filenames implied depth (for example `verification-and-traceability`) while content remained TBD stubs.
## Decision
Each bundle article **must** meet role minimums: **design-model** (model, invariants, diagram/table); **contracts** (testable MUST/SHOULD rules); **verification** (concrete test paths, not TBD); **operations**/**migration** (procedures); **decisions-record** (legacy—migrate to **`adr/`**); **adr** (one decision per file with `SpecAdrChrome`). Every article **must** include purpose, canonical references, detailed behavior, verification notes, and related topics. Feature hubs **must** publish a stable newcomer reading order (area → hub → conceptual articles → verification).
## Consequences
`ARTICLE_ROLE_THRESHOLDS` in `platform-spec-content.ts` enforce section and line counts.
## Verification anchors
`packages/trudoc/src/verify/platform-spec-content.ts` role thresholds.