Docs ssot
Set up docs-ssot SSOT documentation structure — migrate existing docs, build, and validateFrom its SKILL.md
npx -y skills add hiromaily/claude-forge --skill docs-ssotAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 8 commands, including `docs-ssot version` and 7 more.
SKILL.md
4.4 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
docs-ssot: Documentation SSOT Setup
This skill migrates existing Markdown documentation into a modular Single Source of Truth (SSOT) structure managed by docs-ssot, then builds and validates the output.
When to use this skill
- You have existing documentation (README.md, CLAUDE.md, AGENTS.md, etc.) to manage as SSOT
- You want to set up
docs-ssotin a new or existing repository - You want to regenerate documentation after editing source templates
Workflow
Step 1 — Check prerequisites
Verify docs-ssot is installed:
docs-ssot version
If not installed:
# Homebrew (macOS/Linux)
brew tap hiromaily/tap && brew install docs-ssot
# or Go install
go install github.com/hiromaily/docs-ssot/cmd/docs-ssot@latest
Step 2 — Identify existing documentation files
List Markdown files in the repository root:
ls *.md
Common candidates: README.md, CLAUDE.md, AGENTS.md, CONTRIBUTING.md
Step 3 — Preview the migration plan
Run a dry-run to see what sections will be created without writing any files:
docs-ssot migrate --dry-run README.md CLAUDE.md
Review the output to understand:
- How many sections will be created and their categories
- Which sections are detected as duplicates (shared across files)
- The proposed template structure under
template/sections/andtemplate/pages/
Step 4 — Run the migration
Migrate the identified files:
docs-ssot migrate README.md CLAUDE.md AGENTS.md
This will:
- Split each file by H2 headings into section files under
template/sections/<category>/ - Create template files under
template/pages/with@includedirectives - Create or update
docsgen.yamlwith build targets - Verify round-trip: build and compare output against originals
Step 5 — Review the generated structure
docs-ssot index
Inspect:
template/sections/— modular section files (edit these, not the generated outputs)template/pages/*.tpl.md— template files defining document structuredocsgen.yaml— build targets mapping templates to output files
Step 6 — Build documentation
Regenerate all output files from the templates:
docs-ssot build
# or, if a Makefile target exists:
make docs
Step 7 — Validate
Check that all include directives resolve correctly:
docs-ssot validate
Step 8 — Check for SSOT violations
Scan for near-duplicate sections that should be merged into a single source:
docs-ssot check
If duplicates are found, consolidate the content into one section file under template/sections/ and update the templates to reference it with @include.
Key Commands Reference
| Command | Purpose |
|---|---|
docs-ssot migrate <files> | Decompose existing docs into SSOT section structure |
docs-ssot migrate --dry-run <files> | Preview migration without writing files |
docs-ssot build | Generate all output files from templates |
docs-ssot validate | Check all include directives resolve |
docs-ssot check | Detect near-duplicate sections (SSOT violations) |
docs-ssot index | Show include relationships and orphan detection |
docs-ssot include <template> | Expand and print a template to stdout (debugging) |
Editing documentation after migration
After migration, the ongoing workflow is:
- Edit source files in
template/sections/ - Run
docs-ssot buildto regenerate outputs - Verify with
git diff README.md
Never edit README.md, CLAUDE.md, or AGENTS.md directly — they are overwritten on every build.
docsgen.yaml structure
targets:
- input: template/pages/README.tpl.md
output: README.md
- input: template/pages/CLAUDE.tpl.md
output: CLAUDE.md
Add or remove targets to control which output files are generated.
Include directive syntax
Templates use include directives to compose sections:
<!-- @include: sections/project/overview.md -->
<!-- @include: sections/development/ -->
<!-- @include: sections/**/*.md level=+1 -->
The optional level=+N parameter adjusts heading depth of the included content.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most docs writing skills give in ~1.0k tokens
Counted across 1,951 of the 3,904 authors here whose files we hold, read 2026-09-06
- Use third-person for skill descriptionsin 54 of 1951, across 35 files
- Start descriptions with Use whenin 43 of 1951, across 29 files
- Run baseline scenarios before writing any skillin 40 of 1951, across 26 files
- Use active voicein 40 of 1951, across 36 files
- Map file responsibilities before defining tasksin 36 of 1951, across 29 files
- Use checkbox syntax for tracking stepsin 35 of 1951, across 27 files
- Ask one question at a timein 35 of 1951
- Offer execution options after saving the planin 33 of 1951, across 24 files
- Include complete code in every stepin 33 of 1951, across 27 files
- Design units with clear boundaries and interfacesin 31 of 1951, across 23 files
- Announce the skill usage at the startin 30 of 1951
- Verify agent compliance after adding the skillin 29 of 1951, across 17 files
Said here and by no other author read
- Verify docs-ssot installation
- Migrate existing markdown files to SSOT structure
- Edit source files in template sections directory
- Run build command to regenerate output files
- Validate include directives after building
- Scan for duplicate sections using check command
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.