Diataxis Documentation Framework
Audit, classify, validate, and scaffold documentation using the Diataxis framework.
Quick Start
# Classify individual files
uv run scripts/diataxis_classify.py docs/*.md
# Audit a docs directory for coverage
uv run scripts/diataxis_audit.py --dir docs
# Validate quadrant purity
uv run scripts/diataxis_validate.py --dir docs
# Scaffold a new Diataxis structure
uv run scripts/diataxis_scaffold.py --dry-run
uv run scripts/diataxis_scaffold.py
Capabilities
| Script |
Purpose |
Key Flags |
diataxis_classify.py |
Classify files into quadrants |
--json, --verbose, --no-content |
diataxis_audit.py |
Coverage report with quality score |
--dir, --json, --min-coverage |
diataxis_validate.py |
Lint for quadrant purity (DX001-DX010) |
--dir, --file, --strict, --json |
diataxis_scaffold.py |
Generate folder structure |
--layout folders|flat, --init-config, --dry-run |
The Four Quadrants
| Quadrant |
Orientation |
User State |
Folder |
| Tutorial |
Learning |
Study + Action |
tutorials/ |
| How-to |
Task |
Work + Action |
how-to/ |
| Reference |
Information |
Work + Cognition |
reference/ |
| Explanation |
Understanding |
Study + Cognition |
explanation/ |
Classification Algorithm
Multi-signal weighted scoring (title 30%, headings 25%, content 25%, structure 20%). Documents scoring highly for 2+ quadrants are flagged as "collapsed" with split suggestions.
Validation Rules
| ID |
Rule |
Severity |
| DX001 |
Tutorial contains reference tables |
warning |
| DX002 |
How-to has long conceptual preamble |
warning |
| DX003 |
Reference contains step-by-step instructions |
warning |
| DX004 |
Explanation contains execution commands |
warning |
| DX005 |
No clear quadrant signal |
info |
| DX006 |
Collapsed document (mixed quadrants) |
warning |
| DX007 |
Tutorial missing prerequisites |
info |
| DX008 |
Tutorial missing learning objectives |
info |
| DX009 |
How-to missing problem statement |
info |
| DX010 |
Reference missing tables |
info |
Config File (.diataxis-config.json)
Optional per-project override:
{
"version": 1,
"root": "docs",
"layout": "folders",
"ignore": ["node_modules", ".git", "adr", "rfcs", "*.pdf"],
"custom_signals": {}
}
Create with uv run scripts/diataxis_scaffold.py --init-config.
Common Issues
| Issue |
Fix |
uv not found |
curl -LsSf https://astral.sh/uv/install.sh | sh or run with python3 scripts/diataxis_classify.py |
| Low confidence on all files |
Files may lack quadrant-specific keywords; use --verbose to inspect scores |
| Too many collapsed warnings |
Some docs legitimately mix quadrants; consider splitting or accepting |
See TROUBLESHOOTING.md for all error scenarios.
References
- WORKFLOW.md — Full methodology (discover, classify, audit, validate, scaffold)
- EXAMPLES.md — Real-world examples for all operations
- TROUBLESHOOTING.md — Error handling and debugging tips
- Diataxis framework — Official documentation
1---2name: diataxis3description: Audit, classify, validate, and scaffold documentation using the Diataxis framework (Tutorials, How-to guides, Reference, Explanation). Use when user mentions "diataxis", "documentation framework", "quadrant", "doc audit", "doc coverage", "collapsed document", "tutorial vs how-to", "quadrant purity", "documentation types", or wants to classify docs by type.4---56# Diataxis Documentation Framework78Audit, classify, validate, and scaffold documentation using the [Diataxis](https://diataxis.fr/) framework.910## Quick Start1112```bash13# Classify individual files14uv run scripts/diataxis_classify.py docs/*.md1516# Audit a docs directory for coverage17uv run scripts/diataxis_audit.py --dir docs1819# Validate quadrant purity20uv run scripts/diataxis_validate.py --dir docs2122# Scaffold a new Diataxis structure23uv run scripts/diataxis_scaffold.py --dry-run24uv run scripts/diataxis_scaffold.py25```2627## Capabilities2829| Script | Purpose | Key Flags |30|--------|---------|-----------|31| `diataxis_classify.py` | Classify files into quadrants | `--json`, `--verbose`, `--no-content` |32| `diataxis_audit.py` | Coverage report with quality score | `--dir`, `--json`, `--min-coverage` |33| `diataxis_validate.py` | Lint for quadrant purity (DX001-DX010) | `--dir`, `--file`, `--strict`, `--json` |34| `diataxis_scaffold.py` | Generate folder structure | `--layout folders\|flat`, `--init-config`, `--dry-run` |3536## The Four Quadrants3738| Quadrant | Orientation | User State | Folder |39|----------|-------------|------------|--------|40| **Tutorial** | Learning | Study + Action | `tutorials/` |41| **How-to** | Task | Work + Action | `how-to/` |42| **Reference** | Information | Work + Cognition | `reference/` |43| **Explanation** | Understanding | Study + Cognition | `explanation/` |4445## Classification Algorithm4647Multi-signal weighted scoring (title 30%, headings 25%, content 25%, structure 20%). Documents scoring highly for 2+ quadrants are flagged as "collapsed" with split suggestions.4849## Validation Rules5051| ID | Rule | Severity |52|----|------|----------|53| DX001 | Tutorial contains reference tables | warning |54| DX002 | How-to has long conceptual preamble | warning |55| DX003 | Reference contains step-by-step instructions | warning |56| DX004 | Explanation contains execution commands | warning |57| DX005 | No clear quadrant signal | info |58| DX006 | Collapsed document (mixed quadrants) | warning |59| DX007 | Tutorial missing prerequisites | info |60| DX008 | Tutorial missing learning objectives | info |61| DX009 | How-to missing problem statement | info |62| DX010 | Reference missing tables | info |6364## Config File (.diataxis-config.json)6566Optional per-project override:6768```json69{70 "version": 1,71 "root": "docs",72 "layout": "folders",73 "ignore": ["node_modules", ".git", "adr", "rfcs", "*.pdf"],74 "custom_signals": {}75}76```7778Create with `uv run scripts/diataxis_scaffold.py --init-config`.7980## Common Issues8182| Issue | Fix |83|-------|-----|84| `uv` not found | `curl -LsSf https://astral.sh/uv/install.sh \| sh` or run with `python3 scripts/diataxis_classify.py` |85| Low confidence on all files | Files may lack quadrant-specific keywords; use `--verbose` to inspect scores |86| Too many collapsed warnings | Some docs legitimately mix quadrants; consider splitting or accepting |8788See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for all error scenarios.8990## References9192- [WORKFLOW.md](WORKFLOW.md) — Full methodology (discover, classify, audit, validate, scaffold)93- [EXAMPLES.md](EXAMPLES.md) — Real-world examples for all operations94- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) — Error handling and debugging tips95- [Diataxis framework](https://diataxis.fr/) — Official documentation