Heavy Astro component usage made diffs noisy and hid normative prose from content validators.
Domain, Area and Feature template bundle
Platform spec feature
Domain, Area and Feature template bundle
Spec standingStandard
-
Regular sections use markdown headings; arch and mermaid fences for diagrams; components are edge cases only.
Context
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 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>.Consequences
Component usage requires a rationale note; tables stay sparse.
Verification anchors
remark-arch-code-fence; layoutminMarkdownHeadingswhere enabled. -
Ordered section contracts for domain, area, and feature hub pages including Decisions and adr/.
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.jsonpresets align withSpecSectionids; articles must not redefine hub-only canonical requirements.Verification anchors
verify:platform-spec-layout;feature-contract-defaultpreset. -
Every Standard feature hub ships Decisions summary and at least one adr/ file unless explicitly exempt.
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 plusadrIdpointers) and publish at least oneadr/<slug>.mdxwithspecLevel: 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.Consequences
Reference: Concurrency package ADRs. Legacy
decisions-record.mdxis migration-only.Verification anchors
PSC003inplatform-spec-content.ts. -
Standard pages forbid circular canon, placeholder-only bundles, and hub-only authority articles.
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/PSC007fail or warn in CI; pages that cannot meet minimums must usestatus: Proposed.Verification anchors
verify:platform-spec-content --strict;LANGUAGE_META_CIRCULAR_CANON_ALLOWLIST. -
design-model, contracts, verification, and other bundle roles must meet normative minimums or stay Proposed.
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 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).Consequences
ARTICLE_ROLE_THRESHOLDSinplatform-spec-content.tsenforce section and line counts.Verification anchors
packages/trudoc/src/verify/platform-spec-content.tsrole thresholds.
- No directly attached article pages for this node.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | no | no |
implementation-anchors | no | no |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Normative platform contract
Section titled “Normative platform contract”- Every new or materially reworked platform-spec topic must choose one canonical level: Domain, Area, or Feature.
- Regular sections must be authored in markdown headings/lists/admonitions first; Astro components are reserved for edge cases only.
- Architecture visuals must use fenced code blocks with language
arch(Mermaid C4 syntax) for static topology; procedural flows may use fencedmermaid(flowchart,sequenceDiagram,stateDiagram-v2). Inline graph components in docs are legacy-only. - Feature pages may include article bundles, but article pages must not redefine canonical normative requirements that belong to the feature hub.
- 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
Section titled “Required Domain sections”A Domain page must include the following sections in this order:
- Scope and boundaries - what this domain defines and what is out of scope.
- Terminology - core nouns and exact meanings used by child pages.
- Architectural principles - durable design rules for this domain.
- Area map - navigable list of areas with one-sentence responsibilities.
- Normative guarantees - stable contract guarantees expected by users and tooling.
- Conformance evidence - how compliance is demonstrated.
- Change policy - compatibility and migration expectations.
- Related domains - cross-domain dependencies and links.
Required Area sections
Section titled “Required Area sections”An Area page must include:
- Area contract - subsystem mission, boundary, and external obligations.
- Responsibility boundaries - explicit handoffs to sibling areas or domains.
- Internal model - high-level stages, data flow, or topology.
- Feature index - canonical feature pages under this area.
- Failure and diagnostics model - error classes and reporting expectations.
- Verification matrix - tests/checks that validate the area contract.
- Operational guidance - usage, rollout, or maintenance notes.
- Related areas - sibling and upstream/downstream links.
Required Feature Hub sections
Section titled “Required Feature Hub sections”The Feature Hub page must include all of the following sections in this order:
- Contract statement - concise statement of the feature obligation.
- Inputs and outputs - data and API surfaces consumed and emitted.
- State model - persistent/transient state and lifecycle constraints.
- Algorithms and flow - normative sequence and key decisions.
- Edge cases and errors - known exceptional behavior and diagnostics.
- Compatibility and versioning - forward/backward compatibility policy.
- Security and performance notes - mandatory cautions and limits.
- Examples - representative examples linked to canonical behavior.
- Verification and traceability - test anchors and drift detection.
- Related features - direct dependencies and sibling contracts.
- Decisions - hub summary plus
adr/directory (see below); required on every Standard feature hub.
Required Feature Hub — Decisions and adr/
Section titled “Required Feature Hub — Decisions and adr/”Every Standard feature hub must:
- Include a
## Decisionssection (summary only: open items, or no open decisions, plus pointers toadrIdvalues). - Publish at least one file under
adr/<slug>.mdxwithspecLevel: 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 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.
Anti-stub and circular canon rules
Section titled “Anti-stub and circular canon rules”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.
Minimum article payload by role
Section titled “Minimum article payload by role”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 (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 |
| 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
Section titled “Required Article sections”Each optional Article page in a bundle must include:
- Purpose and scope — what this article explains and where it does not apply.
- Canonical references — links back to the Feature Hub and any normative source pages it relies on.
- Detailed behavior or procedure — implementation-facing explanation, examples, or workflows.
- Verification and maintenance notes — how drift is detected, reviewed, or tested.
- Related topics — at minimum one parent or sibling link.
Newcomer reading order requirements
Section titled “Newcomer reading order requirements”Every Feature Hub must publish an explicit ordered list that supports first-time orientation:
- Start with the parent Area page for system context.
- Read the Feature Hub for canonical boundaries and invariants.
- Read bundle articles from conceptual overview to operational details.
- End with verification and maintenance policy pages (including
lastReviewedgovernance 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
Section titled “Markdown-first authoring policy”- Use markdown heading structure for all regular sections.
- Use
archfenced 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
Section titled “Decisions”No open decisions. Closed maintenance ADRs under adr/ — D-COMM-HUB-0001 through D-COMM-HUB-0005 (reader ADRs tab).