Authoring Checklists Reference
Single source of truth for documentation quality checklists and validation commands. Individual guides link here rather than duplicating.
Pre-Commit Checklist
Run through this checklist before every commit that touches documentation files.
-
npm run buildproduces 0 broken link warnings -
bash docusaurus/scripts/validate-mermaid.sh docusaurus/docsproduces 0 errors -
python docusaurus/scripts/add-req-anchors.py --dry-runshows no missing anchors - No files modified in
versioned_docs/(unless intentionally replacing a snapshot) - No files modified in
sdd/(deprecated) -
sidebar_positiondoes not conflict with existing files in the same category - All new files tracked in
sidebars.js -
code_tags.jsonupdated if code changed (add/move/remove file mappings) - Cross-document references are bidirectional (docs link to code AND code links to docs)
See also: SRS Quality Checklist for SRS-specific items, SDS Quality Checklist for SDS-specific items.
New Requirement Checklist
Use when adding a new REQ-* to an existing or new SRS file.
- Item classified per taxonomy: REQUIREMENT, ACCEPTANCE_CRITERIA, REFINEMENT, UI_DETAIL, or CONFIG_OPTION (see SRS Guide: Classification)
- Assigned next sequential REQ ID (
REQ-{DOMAIN}-{NNN}, zero-padded to 3 digits) - Requirement statement uses "shall" language
- At least one Acceptance Criterion present
- Trace block with source reference included
- Traceability Matrix row added
- Implementation section populated (if code exists)
- Acceptance Test added at end of file with back-link
- Sidebar entry present in
sidebars.js -
npm run buildpasses with 0 broken links - Reviewer Notes updated with version and rationale
Modify Requirement Checklist
Use when changing an existing requirement's statement, ACs, or behavior.
- REQ ID unchanged (IDs are immutable)
- Change documented in Reviewer Notes section
- Acceptance Criteria updated if behavior changed
- Traceability Matrix updated if implementation references changed
- Acceptance Tests updated for new or changed ACs
- Implementation section updated if code was affected
-
npm run buildpasses with 0 broken links
New File Checklist
Use when creating a new documentation file of any type.
- File placed in correct directory (
srs/,srs/rules/,sds/domains/,sds/rules/, etc.) - Frontmatter includes all required fields (
title,description,sidebar_position) -
sidebar_positionfalls within the correct range for the category - Document ID added to
sidebars.jsin the correct category - All required sections present (see SRS Authoring Guide or SDS Authoring Guide)
- Internal links use correct relative paths for the file's directory depth
- Mermaid diagrams validate without errors
-
npm run buildpasses with 0 broken links
New SDS Content Checklist
Use when adding a new SDS domain document, rule document, or major new section.
- Domain character declared in metadata blockquote
- Requirements Covered table references all applicable SRS REQs
- Mandatory sections present: 1 (Overview), 2 (Component Architecture), 8 (Implementation Mapping), 9 (Design Decisions), 11 (Related Documents)
- Conditional sections discharged with standard phrasings if unused (see SDS Guide: Brevity Rule)
- Implementation Mapping (section 8) populated with code paths
-
sds-master-index.mdupdated for new sections or documents - Cross-references use correct relative paths
-
npm run buildpasses with 0 broken links
SRS Quality Checklist
Use before committing any SRS change. Covers SRS-specific format and content rules beyond the general Pre-Commit Checklist.
Identifiers and Statements
- REQ IDs follow format
REQ-{DOMAIN}-{NNN}(zero-padded 3 digits) - No duplicate IDs within the domain
- Every Requirement statement contains "shall"
Content Completeness
- All new requirements have Statement + ACs + Trace + Error Handling
- Modified requirements have Reviewer Notes documenting the change
- Deprecated requirements have deprecation notice
- Traceability Matrix updated
- Acceptance Tests added/updated for new or changed ACs
Formatting
- Blank line before every bullet list
- Mermaid diagrams render without errors
- All diagrams labeled "(Illustrative)"
- No use of "non-normative" (use "Illustrative" instead)
Build
-
npm run buildproduces 0 broken link warnings for the changed file - Frontmatter
sidebar_positionis correct for the category range
Process Artifacts (Completion Checklist)
The following items appear in the Appendix of each SRS file as a completed ([x]) checklist. Verify all are satisfied before finalizing a file:
- All requirements are capability-level (describe behavior, not UI)
- Requirement variants consolidated (no requirement explosion)
- UI details are fully demoted to Illustrative section
- Configuration options are not encoded as requirements
- Acceptance criteria describe behavior, not UI mechanics
- Every requirement has acceptance criteria and source traceability
- Error handling addressed for I/O, validation, and external system requirements
- Open questions documented with owners assigned
- Consolidations documented in Reviewer Notes with reversibility info
- Module can survive a full UI redesign unchanged
- Refinements do not introduce new capabilities
- Traceability matrix is complete
- Mermaid diagram present and renders without errors
- Diagram marked as (Illustrative)
- No "non-normative" text anywhere
- All original REQ-* IDs preserved
- All ACs preserved with blank lines before bullet lists
- Tests at end with back-links
SDS Quality Checklist
Use before committing any SDS change. Covers SDS-specific format and content rules beyond the general Pre-Commit Checklist.
Structure and Metadata
- Domain character declared in metadata blockquote
- All mandatory sections present (1, 2, 8, 9, 11)
- Conditional sections either have substantive content or are discharged with standard phrasings
- Frontmatter is current (title, description, sidebar_position)
Requirements Traceability
- Requirements Covered table includes all
REQ-*from the corresponding SRS - Implementation Mapping section is current (code paths exist)
- Cross-references are valid relative paths
Rule Documents (additional items)
- Rule docs include section 1.0 Rule Summary Block
- Truth tables present for rules with 2+ conditions, with Precedence/Default/Unreachable annotations
Navigation and Build
-
sds-master-index.mdupdated if new sections or documents were added - Mermaid diagrams validate:
bash docusaurus/scripts/validate-mermaid.sh docusaurus/docs - Docusaurus build passes:
cd docusaurus && npm run build 2>&1 | grep -c "couldn't be resolved"(should be 0)
Validation Commands
All commands are run from the repository root unless otherwise noted.
Build Check (Authoritative)
The Docusaurus build is the primary quality gate. It catches broken links, malformed frontmatter, and missing sidebar entries.
cd docusaurus && npm run build 2>&1 | tail -5
A successful build produces 0 lines containing "couldn't be resolved". To count broken links specifically:
cd docusaurus && npm run build 2>&1 | grep -c "couldn't be resolved"
# Result must be 0
Mermaid Diagram Validation
Validates all Mermaid diagrams using the exact mermaid version bundled with Docusaurus (zero version drift).
bash docusaurus/scripts/validate-mermaid.sh docusaurus/docs
Or directly:
node docusaurus/scripts/validate-mermaid.mjs docusaurus/docs
REQ Anchor Check
Adds explicit {#req-domain-nnn} anchors to REQ headers. Idempotent -- safe to run multiple times.
# Preview (dry run)
python docusaurus/scripts/add-req-anchors.py --dry-run
# Apply
python docusaurus/scripts/add-req-anchors.py
Jira Reference Linking
Converts bare Jira references (BT-, CST-, PCRAI-*) to Atlassian links.
# Preview (dry run)
./docusaurus/scripts/link-jira-refs.sh -n
# Apply
./docusaurus/scripts/link-jira-refs.sh
Docusaurus Link Fix
Fixes relative link paths across documentation files.
This script is NOT idempotent. Running it multiple times corrupts paths. Always git restore the docs directory before running:
git restore docusaurus/docs/
python docusaurus/scripts/fix-docusaurus-links.py --docs-root docusaurus/docs --dry-run # Preview
python docusaurus/scripts/fix-docusaurus-links.py --docs-root docusaurus/docs --apply # Apply
Code Mapping Orphan Check
Finds REQ IDs in code_tags.json that are not defined in any SRS file.
jq -r '.by_srs | keys[]' tests/catalogue/code_tags.json | sort -u > /tmp/code-refs.txt
grep -roh "REQ-[A-Z]*-[0-9]*" docusaurus/docs/srs/*.md docusaurus/docs/srs/rules/ | sort -u > /tmp/srs-ids.txt
comm -23 /tmp/code-refs.txt /tmp/srs-ids.txt
# Should return empty (no orphaned references)
Local Development Server
For previewing changes with hot reload during authoring:
cd docusaurus && npm start
Validation Command Summary
| Task | Command |
|---|---|
| Full build (authoritative) | cd docusaurus && npm run build |
| Mermaid validation | bash docusaurus/scripts/validate-mermaid.sh docusaurus/docs |
| Add REQ anchors | python docusaurus/scripts/add-req-anchors.py |
| Preview REQ anchors | python docusaurus/scripts/add-req-anchors.py --dry-run |
| Convert Jira refs | ./docusaurus/scripts/link-jira-refs.sh |
| Preview Jira refs | ./docusaurus/scripts/link-jira-refs.sh -n |
| Preview link fixes | python docusaurus/scripts/fix-docusaurus-links.py --docs-root docusaurus/docs --dry-run |
| Code mapping orphan check | See full command above |
| Dev server (hot reload) | cd docusaurus && npm start |