# Diataxis Style Fixer Automatically fixes documentation to comply with the Diataxis framework and BMad Method style guide. ## CRITICAL RULES - **NEVER commit or push changes** — let the user review first - **NEVER make destructive edits** — preserve all content, only fix formatting - **Use Edit tool** — make targeted fixes, not full file rewrites - **Show summary** — after fixing, list all changes made ## Input Documentation file path or directory to fix. Defaults to `docs/` if not specified. ## Step 1: Understand Diataxis Framework **Diataxis** is a documentation framework that categorizes content into four types based on two axes: | | **Learning** (oriented toward future) | **Doing** (oriented toward present) | | -------------- | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | **Practical** | **Tutorials** — lessons that guide learners through achieving a specific goal | **How-to guides** — step-by-step instructions for solving a specific problem | | **Conceptual** | **Explanation** — content that clarifies and describes underlying concepts | **Reference** — technical descriptions, organized for lookup | **Key principles:** - Each document type serves a distinct user need - Don't mix types — a tutorial shouldn't explain concepts deeply - Focus on the user's goal, not exhaustive coverage - Structure follows purpose (tutorials are linear, reference is scannable) ## Step 2: Read the Style Guide Read the project's style guide at `docs/_STYLE_GUIDE.md` to understand all project-specific conventions. ## Step 3: Detect Document Type Based on file location, determine the document type: | Location | Diataxis Type | | -------------------- | -------------------- | | `/docs/tutorials/` | Tutorial | | `/docs/how-to/` | How-to guide | | `/docs/explanation/` | Explanation | | `/docs/reference/` | Reference | | `/docs/glossary/` | Reference (glossary) | ## Step 4: Find and Fix Issues For each markdown file, scan for issues and fix them: ### Universal Fixes (All Doc Types) **Horizontal Rules (`---`)** - Remove any `---` outside of YAML frontmatter - Replace with `##` section headers or admonitions as appropriate **`####` Headers** - Replace with bold text: `#### Header` → `**Header**` - Or convert to admonition if it's a warning/notice **"Related" or "Next:" Sections** - Remove entire section including links - The sidebar handles navigation **Deeply Nested Lists** - Break into sections with `##` headers - Flatten to max 3 levels **Code Blocks for Dialogue/Examples** - Convert to admonitions: ``` :::note[Example] [content] ::: ``` **Bold Paragraph Callouts** - Convert to admonitions with appropriate type **Too Many Admonitions** - Limit to 1-2 per section (tutorials allow 3-4 per major section) - Consolidate related admonitions - Remove less critical ones if over limit **Table Cells / List Items > 2 Sentences** - Break into multiple rows/cells - Or shorten to 1-2 sentences **Header Budget Exceeded** - Merge related sections - Convert some `##` to `###` subsections - Goal: 8-12 `##` per doc; 2-3 `###` per section ### Type-Specific Fixes **Tutorials** (`/docs/tutorials/`) - Ensure hook describes outcome in 1-2 sentences - Add "What You'll Learn" bullet section if missing - Add `:::note[Prerequisites]` if missing - Add `:::tip[Quick Path]` TL;DR at top if missing - Use tables for phases, commands, agents - Add "What You've Accomplished" section if missing - Add Quick Reference table if missing - Add Common Questions section if missing - Add Getting Help section if missing - Add `:::tip[Key Takeaways]` at end if missing **How-To** (`/docs/how-to/`) - Ensure hook starts with "Use the `X` workflow to..." - Add "When to Use This" with 3-5 bullets if missing - Add `:::note[Prerequisites]` if missing - Ensure steps are numbered `###` with action verbs - Add "What You Get" describing outputs if missing **Explanation** (`/docs/explanation/`) - Ensure hook states what document explains - Organize content into scannable `##` sections - Add comparison tables for 3+ options - Link to how-to guides for procedural questions - Limit to 2-3 admonitions per document **Reference** (`/docs/reference/`) - Ensure hook states what document references - Ensure structure matches reference type - Use consistent item structure throughout - Use tables for structured/comparative data - Link to explanation docs for conceptual depth - Limit to 1-2 admonitions per document **Glossary** (`/docs/glossary/` or glossary files) - Ensure categories as `##` headers - Ensure terms in tables (not individual headers) - Definitions 1-2 sentences max - Bold term names in cells ## Step 5: Apply Fixes For each file with issues: 1. Read the file 2. Use Edit tool for each fix 3. Track what was changed ## Step 6: Summary After processing all files, output a summary: ```markdown # Style Fixes Applied **Files processed:** N **Files modified:** N ## Changes Made ### `path/to/file.md` - Removed horizontal rule at line 45 - Converted `####` headers to bold text - Added `:::tip[Quick Path]` admonition - Consolidated 3 admonitions into 2 ### `path/to/other.md` - Removed "Related:" section - Fixed table cell length (broke into 2 rows) ## Review Required Please review the changes. When satisfied, commit and push as needed. ``` ## Common Patterns **Converting `####` to bold:** ```markdown #### Important Note Some text here. ``` → ```markdown **Important Note** Some text here. ``` **Removing horizontal rule:** ```markdown Some content above. --- Some content below. ``` → ```markdown Some content above. ## [Descriptive Section Header] Some content below. ``` **Converting code block to admonition:** ```markdown ``` User: What should I do? Agent: Run the workflow. ``` ``` → ```markdown :::note[Example] **User:** What should I do? **Agent:** Run the workflow. ::: ``` **Converting bold paragraph to admonition:** ```markdown **IMPORTANT:** This is critical that you read this before proceeding. ``` → ```markdown :::caution[Important] This is critical that you read this before proceeding. ::: ```