Documentation Workflow¶
Canonical rules are in
.github/instructions/documentation.instructions.md. This file is a quick-reference summary for contributors.
Two-Tier Architecture¶
| Tier | Location | Audience | Format |
|---|---|---|---|
| Technical | docs/ |
Maintainers, contributors | Markdown (not served by Jekyll) |
| Public | pages/_docs/ |
End users of the theme | Markdown (rendered by Jekyll) |
Rule: Never link from pages/_docs/ into docs/ β docs/ is not served. Use full GitHub URLs instead.
Where Does New Content Go?¶
New content β Who reads it?
ββ Contributor / maintainer β docs/
β ββ Architecture decision β docs/architecture/
β ββ Feature design notes β docs/features/
β ββ CI/CD, release system β docs/systems/
β ββ Implementation changelog β docs/implementation/
β ββ Developer how-to β docs/development/
β
ββ End user of the theme β pages/_docs/
ββ Setup / install guide β pages/_docs/
ββ Config reference β pages/_docs/
ββ Troubleshooting for users β pages/_docs/
Required Front Matter¶
Every docs/**/*.md content file (not READMEs) must include:
---
title: "β€ 60 chars"
description: "120β160 chars, complete sentence"
date: 2026-MM-DDTHH:MM:SS.000Z
lastmod: 2026-MM-DDTHH:MM:SS.000Z
categories: [docs]
tags: [tag1, tag2]
author: bamr87
---
Run ./scripts/docs/lint-frontmatter.sh to check compliance. Use --fix to inject skeletons.
Mandatory Update Triggers¶
Update docs in the same PR as the code change when:
| Code change | Doc to update |
|---|---|
_layouts/ or _includes/ |
docs/ui/ or docs/architecture/layouts-includes.md |
scripts/ |
docs/systems/ or docs/development/ |
install.sh or templates/ |
docs/installation/ |
| New feature ships | docs/features/ + update lastmod |
| Breaking change | relevant doc + CHANGELOG.md |
Validation¶
./scripts/docs/validate.sh # all checks
./scripts/docs/lint-frontmatter.sh # front matter only
./scripts/docs/check-links.sh # broken links
./scripts/docs/check-freshness.sh # stale lastmod
Promoting a Technical Doc to Public¶
When a docs/ document is ready for end users:
- Copy to
pages/_docs/and add Jekyll front matter (layout,permalink) - Strip any MDX/JSX β plain Markdown
- Rewrite
docs/...links β full GitHub URLs - Add a working Verify section (required for public docs)
- Run
markdownlintandbundle exec jekyll buildto validate