Table of Contents - When to Use - Required TodoWrite Items - Step 1: Collect Context - Step 2: Identify Targets - Step 2.5: Check for Consolidation - Step 3: Apply Edits - Step 4: Enforce Guidelines - Step 4.25: AI Slop Detection - Step 4.75: Sync Capabilities Documentation - Step 5: Verify Accuracy - Step 6: Preview Changes - Exit Criteria - Flags Documentation Update Workflow When To Use Use this skill when code changes require updates to the README, plans, wikis, or docstrings. Run first to capture the change context. System Capabilities The documentation update workflow includes several s…

| grep -v 'docs/\\|book/\\|skills/\\|commands/\\|agents/'\n\n# Find bloated docs/ files (500 line limit)\nfind docs/ -name '*.md' -exec wc -l {} \\; 2>/dev/null | awk '$1 > 500 {print}'\n\n# Find bloated book/ files (1000 line limit)\nfind book/ -name '*.md' -exec wc -l {} \\; 2>/dev/null | awk '$1 > 1000 {print}'\n\n# Find recently unchanged files (potential staleness) - docs: 90 days, book: 180 days\nfind docs/ -name '*.md' -mtime +90 -type f 2>/dev/null\nfind book/ -name '*.md' -mtime +180 -type f 2>/dev/null\n```\n\n### Step 2: Present Opportunities\n\nShow consolidation candidates with recommended actions:\n\n```markdown\n## Phase 2.5: Consolidation Opportunities\n\n### Redundant Files (delete - content exists elsewhere)\n\n| File | Action | Reason |\n|------|--------|--------|\n| plugins/memory-palace/docs/PALACE_UNIFICATION.md | Delete | Content already in commands/palace.md |\n| docs/old-api-design.md | Delete | Superseded by docs/api-overview.md |\n\n### Untracked Reports (merge or delete)\n\n| File | Score | Markers | Recommendation |\n|------|-------|---------|----------------|\n| API_REVIEW_REPORT.md | 6 | Executive Summary, Findings | Merge to docs/api-overview.md |\n| MIGRATION_NOTES.md | 4 | Action Items, Tables | Merge to docs/migration-guide.md |\n\n### Bloated Files (split or trim)\n\n| File | Lines | Threshold | Recommendation |\n|------|-------|-----------|----------------|\n| book/src/tutorials/error-handling-tutorial.md | 1031 | 1000 | Trim verbose sections |\n| docs/function-extraction-guidelines.md | 571 | 500 | Consider splitting principles/patterns |\n\n### Staleness Candidates (review or delete)\n\n| File | Last Modified | Issue | Recommendation |\n|------|---------------|-------|----------------|\n| docs/enhanced-pre-commit-hooks.md | 45 days | Content moved to imbue | Delete |\n| docs/technical-debt-framework.md | 60 days | Replaced by backlog | Delete |\n\n---\n\n**Options:**\n- `Y` - Proceed with all recommended actions\n- `n` - Skip consolidation, continue to edits\n- `select` - Choose specific items to address\n- `--skip-consolidation` flag bypasses this phase\n```\n\n### Step 3: Execute Approved Actions\n\nFor each approved action:\n\n**Delete (redundant) actions:**\n1. Verify content exists in target document(s) by searching for key phrases\n2. Confirm no unique valuable content would be lost\n3. Remove file: `rm \u003cfile>`\n4. Add deletion to git staging: `git add -u`\n\n**Merge actions:**\n1. Extract valuable content from source\n2. Integrate into destination (using doc-consolidation merge strategies)\n3. Delete source file\n4. Add to git staging\n\n**Delete (stale) actions:**\n1. Confirm file has no unique valuable content\n2. Remove file\n3. Add deletion to git staging\n\n**Split actions:**\n1. Create new files for logical sections\n2. Move content to new locations\n3. Update cross-references\n4. Preserve original as index if needed\n\n**Action priority:**\n1. Delete redundant first (unbloats without adding content)\n2. Delete stale second (removes outdated info)\n3. Merge third (consolidates remaining value)\n4. Split last (increases file count, use sparingly)\n\n## User Controls\n\n### Skip Flag\n```bash\n/update-docs --skip-consolidation\n```\nBypasses Phase 2.5 entirely for quick updates.\n\n### Selective Processing\nWhen user chooses \"select\":\n```\nEnter file numbers to process (comma-separated), or 'all'/'none':\n> 1,3\nProcessing: API_REVIEW_REPORT.md, docs/enhanced-pre-commit-hooks.md\n```\n\n### Dry Run\n```bash\n/update-docs --consolidation-dry-run\n```\nShows what would be consolidated without executing.\n\n## Thresholds\n\n| Metric | docs/ Limit | book/ Limit | Action |\n|--------|-------------|-------------|--------|\n| File length | 500 lines | 1000 lines | Flag for review |\n| Section length | 150 lines | 300 lines | Suggest split |\n| Paragraph sentences | 4 | 8 | Warn, don't block |\n| Stale threshold | 90 days | 180 days | Review suggestion |\n\n## Integration with doc-consolidation\n\nThis module **imports** patterns from doc-consolidation but **does not** duplicate its full workflow:\n\n- **Imports**: Candidate detection signals, content markers, scoring\n- **Extends**: Adds bloat and staleness detection for committed files\n- **Defers to**: Full doc-consolidation skill for complex multi-file merges\n\nFor straightforward cases (single untracked report, obvious deletion), handle inline. For complex consolidations, recommend: \"Run `/merge-docs` for detailed consolidation workflow.\"\n\n## Exit Criteria\n\nPhase 2.5 completes when:\n- All candidates reviewed (approved or skipped)\n- Approved merges/deletions executed\n- Git staging updated with changes\n- Summary logged for Phase 5 preview\n\nProceed to Phase 3 (Edits Applied) regardless of consolidation outcome.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":6555,"content_sha256":"960bd641d7f56b41f548971ca9796b32c37310b5494c1e1a04c34fbcbb5ebd7d"},{"filename":"modules/directory-style-rules.md","content":"# Directory-Specific Style Rules\n\nApply different documentation standards based on file location. The `docs/` directory requires strict conciseness while `book/` allows technical book format with longer explanations.\n\n## Rule Sets\n\n### docs/ - Strict Reference Style\n\nTarget audience: Developers seeking quick answers.\n\n| Rule | Limit | Rationale |\n|------|-------|-----------|\n| Max file length | 500 lines | Keeps files navigable |\n| Max section length | 100 lines | Forces topic focus |\n| Max paragraph sentences | 4 | Prevents wall-of-text |\n| Max list items | 10 | Subgroup beyond this |\n| Max table rows | 15 | Paginate or summarize |\n\n**Required patterns:**\n- Start directly (no \"This document describes...\")\n- Imperative mood for instructions\n- Bullets over prose for lists of 3+ items\n- Code examples over abstract descriptions\n\n**Anti-patterns to flag:**\n- Executive summaries (remove or move to introduction)\n- Filler phrases: \"in order to\", \"it should be noted\", \"as mentioned\"\n- Qualification hedging: \"generally\", \"typically\", \"usually\"\n- Empty transitions: \"Moving on\", \"Now let's look at\"\n\n### book/ - Technical Book Style\n\nTarget audience: Learners working through chapters.\n\n| Rule | Limit | Rationale |\n|------|-------|-----------|\n| Max file length | 1000 lines | Chapter-length content |\n| Max section length | 300 lines | Tutorial depth allowed |\n| Max paragraph sentences | 8 | Explanatory narratives |\n| Max list items | 15 | Subgroup for clarity |\n| Max table rows | 25 | Comparison tables |\n\n**Allowed patterns:**\n- Narrative explanations\n- Before/after comparisons\n- Step-by-step walkthroughs\n- Conceptual introductions\n- Callout emojis (sparingly)\n\n**Still flagged:**\n- Filler phrases\n- Redundant explanations\n- Overly long code blocks without commentary\n\n### wiki/ - Wiki Reference Style\n\nTarget audience: Internal team and contributors seeking context.\n\n| Rule | Limit | Rationale |\n|------|-------|-----------|\n| Max file length | 500 lines | Quick reference |\n| Max section length | 100 lines | Topic focus |\n| Max paragraph sentences | 4 | Scannable |\n| Max list items | 10 | Subgroup beyond this |\n| Max table rows | 15 | Paginate or summarize |\n\n**Required patterns:**\n- Same as docs/ strict style\n- Cross-links to related wiki pages\n- Architecture Decision Records (ADRs) in wiki/architecture/\n\n### plugins/*/README.md - Plugin Summary Style\n\nTarget audience: Users evaluating or installing plugins.\n\n| Rule | Limit | Rationale |\n|------|-------|-----------|\n| Max file length | 300 lines | Concise overview |\n| Max section length | 50 lines | Quick scan |\n| Max paragraph sentences | 4 | Brief descriptions |\n| Max list items | 10 | Key features only |\n| Max table rows | 15 | Command/skill listing |\n\n**Required patterns:**\n- Installation instructions\n- Quick start example\n- Link to detailed docs in book/\n\n### Shared Rules (All Locations)\n\nApply everywhere regardless of directory:\n\n- No emojis in headings or body (callouts excepted in book/)\n- Grounded language (specific references, not vague claims)\n- Imperative mood for docstrings\n- No marketing language (\"capable\", \"smooth\", \"elegant\")\n- No first-person plural (\"we can see\", \"let's explore\")\n- Prose text wraps at 80 chars per line (hybrid wrapping:\n prefer sentence/clause boundaries over arbitrary breaks)\n- Blank line before and after every heading\n- ATX headings only (`#` prefix, never setext underlines)\n- Blank line before every list (ordered or unordered)\n- Reference-style links when inline links push past 80 chars\n- Full formatting spec: `Skill(leyline:markdown-formatting)`\n\n## Detection Patterns\n\n### Wall-of-Text Detection\n\n```python\ndef detect_wall_of_text(content: str, max_sentences: int) -> list[Violation]:\n violations = []\n paragraphs = extract_paragraphs(content)\n\n for i, para in enumerate(paragraphs):\n sentence_count = len(re.split(r'[.!?]+', para.strip()))\n if sentence_count > max_sentences:\n violations.append({\n 'type': 'wall_of_text',\n 'location': f'paragraph {i+1}',\n 'actual': sentence_count,\n 'limit': max_sentences,\n 'suggestion': 'Break into smaller paragraphs or convert to bullet list'\n })\n\n return violations\n```\n\n### Filler Phrase Detection\n\n```python\nFILLER_PHRASES = [\n r'\\bin order to\\b',\n r'\\bit should be noted\\b',\n r'\\bas mentioned (above|below|earlier|previously)\\b',\n r'\\bmoving on\\b',\n r'\\bnow let\\'?s (look at|explore|consider)\\b',\n r'\\bthis (document|section|chapter) (describes|explains|covers)\\b',\n]\n\ndef detect_filler(content: str) -> list[Violation]:\n violations = []\n for pattern in FILLER_PHRASES:\n matches = re.findall(pattern, content, re.IGNORECASE)\n for match in matches:\n violations.append({\n 'type': 'filler_phrase',\n 'phrase': match,\n 'suggestion': 'Remove or rewrite directly'\n })\n return violations\n```\n\n## Validation Workflow\n\n### Step 1: Determine Rule Set\n\n```python\ndef get_ruleset(file_path: str) -> RuleSet:\n if file_path.startswith('book/'):\n return BOOK_RULES\n elif file_path.startswith('docs/'):\n return DOCS_RULES\n elif file_path.startswith('wiki/'):\n return WIKI_RULES\n elif re.match(r'plugins/[^/]+/README\\.md

Table of Contents - When to Use - Required TodoWrite Items - Step 1: Collect Context - Step 2: Identify Targets - Step 2.5: Check for Consolidation - Step 3: Apply Edits - Step 4: Enforce Guidelines - Step 4.25: AI Slop Detection - Step 4.75: Sync Capabilities Documentation - Step 5: Verify Accuracy - Step 6: Preview Changes - Exit Criteria - Flags Documentation Update Workflow When To Use Use this skill when code changes require updates to the README, plans, wikis, or docstrings. Run first to capture the change context. System Capabilities The documentation update workflow includes several s…

, file_path):\n return PLUGIN_README_RULES\n else:\n return DOCS_RULES # Default to strict\n```\n\n### Step 2: Run Checks\n\n```python\ndef validate_file(file_path: str, content: str) -> ValidationResult:\n rules = get_ruleset(file_path)\n violations = []\n\n # Structure checks\n lines = content.split('\\n')\n if len(lines) > rules.max_lines:\n violations.append({\n 'severity': 'warning',\n 'type': 'file_length',\n 'actual': len(lines),\n 'limit': rules.max_lines\n })\n\n # Wall-of-text check\n violations.extend(detect_wall_of_text(content, rules.max_sentences))\n\n # Filler phrase check\n violations.extend(detect_filler(content))\n\n return ValidationResult(\n file_path=file_path,\n ruleset=rules.name,\n violations=violations,\n passed=len([v for v in violations if v.get('severity') == 'error']) == 0\n )\n```\n\n### Step 3: Report Format\n\n```markdown\n## Style Validation: docs/api-overview.md\n\nUsing ruleset: **docs/ (strict)**\n\n### Violations Found\n\n| Severity | Type | Details | Suggestion |\n|----------|------|---------|------------|\n| warning | wall_of_text | Paragraph 3 has 7 sentences (limit: 4) | Break into smaller paragraphs |\n| info | filler_phrase | \"in order to\" | Remove or rewrite directly |\n| info | filler_phrase | \"This document describes\" | Start with content directly |\n\n### Passed Checks\n- File length: 287/500 lines\n- Section lengths: All under 100 lines\n- No marketing language detected\n```\n\n## Progressive Loading\n\nThis module loads only when Phase 4 (Guidelines Verified) is reached. It does not run during earlier phases to conserve context.\n\n**Load trigger**: `doc-updates:edits-applied` completed\n**Dependencies**: None\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":7111,"content_sha256":"f902d4b052394854a705cebbcc8a43ed0ef770fb0407dc3642f561c273ba5374"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":2},"content":[{"text":"Table of Contents","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"When to Use","type":"text","marks":[{"type":"link","attrs":{"href":"#when-to-use","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Required TodoWrite Items","type":"text","marks":[{"type":"link","attrs":{"href":"#required-todowrite-items","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 1: Collect Context","type":"text","marks":[{"type":"link","attrs":{"href":"#step-1-collect-context-context-collected","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 2: Identify Targets","type":"text","marks":[{"type":"link","attrs":{"href":"#step-2-identify-targets-targets-identified","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 2.5: Check for Consolidation","type":"text","marks":[{"type":"link","attrs":{"href":"#step-25-check-for-consolidation-consolidation-checked","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 3: Apply Edits","type":"text","marks":[{"type":"link","attrs":{"href":"#step-3-apply-edits-edits-applied","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 4: Enforce Guidelines","type":"text","marks":[{"type":"link","attrs":{"href":"#step-4-enforce-guidelines-guidelines-verified","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 4.25: AI Slop Detection","type":"text","marks":[{"type":"link","attrs":{"href":"#step-425-ai-slop-detection-slop-scanned","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 4.75: Sync Capabilities Documentation","type":"text","marks":[{"type":"link","attrs":{"href":"#step-475-sync-capabilities-documentation-capabilities-synced","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 5: Verify Accuracy","type":"text","marks":[{"type":"link","attrs":{"href":"#step-5-verify-accuracy-accuracy-verified","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 6: Preview Changes","type":"text","marks":[{"type":"link","attrs":{"href":"#step-6-preview-changes-preview","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Exit Criteria","type":"text","marks":[{"type":"link","attrs":{"href":"#exit-criteria","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Flags","type":"text","marks":[{"type":"link","attrs":{"href":"#flags","title":null}}]}]}]}]},{"type":"heading","attrs":{"level":1},"content":[{"text":"Documentation Update Workflow","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When To Use","type":"text"}]},{"type":"paragraph","content":[{"text":"Use this skill when code changes require updates to the README, plans, wikis, or docstrings. Run ","type":"text"},{"text":"Skill(sanctum:git-workspace-review)","type":"text","marks":[{"type":"code_inline"}]},{"text":" first to capture the change context.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"System Capabilities","type":"text"}]},{"type":"paragraph","content":[{"text":"The documentation update workflow includes several specialized functions. It identifies redundancy through consolidation detection and enforces directory-specific style rules, with strict limits for ","type":"text"},{"text":"docs/","type":"text","marks":[{"type":"code_inline"}]},{"text":" and more lenient ones for the ","type":"text"},{"text":"book/","type":"text","marks":[{"type":"code_inline"}]},{"text":" directory. The system also verifies the accuracy of version numbers and component counts and integrates with the LSP for semantic documentation verification in supported versions of Claude Code.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When NOT To Use","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"README-specific updates - use update-readme instead","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Complex multi-file consolidation - use doc-consolidation","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Required TodoWrite Items","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:context-collected","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Git context + CHANGELOG review","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:targets-identified","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:consolidation-checked","type":"text","marks":[{"type":"code_inline"}]},{"text":" (skippable)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:edits-applied","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:guidelines-verified","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:slop-scanned","type":"text","marks":[{"type":"code_inline"}]},{"text":" - AI marker detection via scribe","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:plugins-synced","type":"text","marks":[{"type":"code_inline"}]},{"text":" - plugin.json ↔ disk audit","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:capabilities-synced","type":"text","marks":[{"type":"code_inline"}]},{"text":" - plugin.json ↔ documentation sync","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:accuracy-verified","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-updates:preview","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 1: Collect Context (","type":"text"},{"text":"context-collected","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validate ","type":"text"},{"text":"Skill(sanctum:git-workspace-review)","type":"text","marks":[{"type":"code_inline"}]},{"text":" has been run.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use its notes to understand the delta.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify the features or bug fixes that need documentation updates.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"CHANGELOG Reference","type":"text","marks":[{"type":"strong"}]},{"text":" (critical for version sync):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Check recent CHANGELOG entries for undocumented features\nhead -100 CHANGELOG.md\n\n# Compare documented version vs plugin versions\ngrep -E \"^\\[.*\\]\" CHANGELOG.md | head -3\nfor p in plugins/*/.claude-plugin/plugin.json; do\n jq -r '\"\\(.name): \\(.version)\"' \"$p\"\ndone | head -5","type":"text"}]},{"type":"paragraph","content":[{"text":"Cross-reference CHANGELOG entries against:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"book/src/reference/capabilities-reference.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" - All skills/commands/agents","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Plugin documentation in ","type":"text"},{"text":"book/src/plugins/","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Per-plugin docs","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Plugin READMEs - Quick reference docs","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 2: Identify Targets (","type":"text"},{"text":"targets-identified","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"List the relevant files from the scope across all documentation locations:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"docs/","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Reference documentation (strict style)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"book/","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Technical book content (lenient style)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"README.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" files at project and plugin roots","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"wiki/","type":"text","marks":[{"type":"code_inline"}]},{"text":" entries if present","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Docstrings in code files","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prioritize user-facing documentation first, then supporting plans and specifications.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"When architectural work is planned, confirm whether an Architecture Decision Record (ADR) already exists in ","type":"text"},{"text":"wiki/architecture/","type":"text","marks":[{"type":"code_inline"}]},{"text":" (or wherever ADRs are located).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add missing ADRs to the target list before any implementation begins.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 2.5: Check for Consolidation (","type":"text"},{"text":"consolidation-checked","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"paragraph","content":[{"text":"Load: ","type":"text"},{"text":"@modules/consolidation-integration.md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"Purpose","type":"text","marks":[{"type":"strong"}]},{"text":": Detect redundancy and bloat before making edits.","type":"text"}]},{"type":"paragraph","content":[{"text":"Scan for:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Untracked reports (ALL_CAPS *_REPORT.md, *_ANALYSIS.md files)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Bloated committed docs (files exceeding 500 lines in docs/, 1000 in book/)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Stale files (outdated content that should be deleted)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"User approval required before:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Merging content from one file to another","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Deleting stale or redundant files","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Splitting bloated files","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Skip options:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use ","type":"text"},{"text":"--skip-consolidation","type":"text","marks":[{"type":"code_inline"}]},{"text":" flag to bypass this phase","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Select specific items instead of processing all","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Exit criteria","type":"text","marks":[{"type":"strong"}]},{"text":": User has approved/skipped all consolidation opportunities.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 3: Apply Edits (","type":"text"},{"text":"edits-applied","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update each file with grounded language: explain what changed and why.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Reference specific commands, filenames, or configuration options where possible.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"For docstrings, use the imperative mood and keep them concise.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"For ADRs, see ","type":"text"},{"text":"modules/adr-patterns.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" for complete template structure, status flow, immutability rules, and best practices.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 4: Enforce Guidelines (","type":"text"},{"text":"guidelines-verified","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"paragraph","content":[{"text":"Load: ","type":"text"},{"text":"@modules/directory-style-rules.md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Style Enforcement","type":"text"}]},{"type":"paragraph","content":[{"text":"Maintain consistent documentation by applying directory-specific rules. The system checks for and removes filler phrases such as \"in order to\" or \"it should be noted\" and ensures that no emojis are present in the body text of technical documents. Use grounded language with specific references rather than vague claims, and maintain an imperative mood for instructions. For lists of three or more items, prefer bullets over prose to improve scannability.","type":"text"}]},{"type":"paragraph","content":[{"text":"The audit will issue warnings for paragraphs that exceed length limits or files that surpass the established line count thresholds. We also flag marketing language and abstract adjectives like \"capable\" or \"smooth\" to maintain a technical and direct tone across all project documentation.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 4.25: AI Slop Detection (","type":"text"},{"text":"slop-scanned","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"Skill(scribe:slop-detector)","type":"text","marks":[{"type":"code_inline"}]},{"text":" on edited documentation to detect AI-generated content markers.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Scribe Integration","type":"text"}]},{"type":"paragraph","content":[{"text":"The scribe plugin provides comprehensive AI slop detection:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Skill(scribe:slop-detector) --target [edited-files]","type":"text"}]},{"type":"paragraph","content":[{"text":"This detects:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Tier 1 words","type":"text","marks":[{"type":"strong"}]},{"text":": delve, tapestry, comprehensive, leveraging, etc.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Phrase patterns","type":"text","marks":[{"type":"strong"}]},{"text":": \"In today's fast-paced world\", \"cannot be overstated\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Structural markers","type":"text","marks":[{"type":"strong"}]},{"text":": Excessive em dashes, bullet overuse, sentence uniformity","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Sycophantic phrases","type":"text","marks":[{"type":"strong"}]},{"text":": \"I'd be happy to\", \"Great question!\"","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Writing Style Guidelines","type":"text"}]},{"type":"paragraph","content":[{"text":"For enhanced writing quality, check for ","type":"text"},{"text":"elements-of-style:writing-clearly-and-concisely","type":"text","marks":[{"type":"code_inline"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"# If superpowers/elements-of-style is installed:\nSkill(elements-of-style:writing-clearly-and-concisely)\n\n# Fallback if not installed - use scribe:doc-generator principles:\nSkill(scribe:doc-generator) --remediate","type":"text"}]},{"type":"paragraph","content":[{"text":"The fallback provides equivalent guidance:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ground every claim with specifics","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Trim rhetorical crutches (no formulaic openers/closers)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use numbers, commands, filenames over adjectives","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Balance bullets with narrative prose","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Show authorial perspective (trade-offs, reasoning)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Remediation","type":"text"}]},{"type":"paragraph","content":[{"text":"If slop score exceeds 2.5 (moderate), run:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Agent(scribe:doc-editor) --target [file]","type":"text"}]},{"type":"paragraph","content":[{"text":"This provides interactive section-by-section cleanup with user approval.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Skip Options","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use ","type":"text"},{"text":"--skip-slop","type":"text","marks":[{"type":"code_inline"}]},{"text":" flag to bypass slop detection","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Slop warnings are non-blocking by default","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 4.5: Sync Plugin Registrations (","type":"text"},{"text":"plugins-synced","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"paragraph","content":[{"text":"Audit plugin.json files against disk","type":"text","marks":[{"type":"strong"}]},{"text":" (prevents registration drift):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Quick discrepancy check for all plugins\nfor plugin in plugins/*/; do\n name=$(basename \"$plugin\")\n pjson=\"$plugin/.claude-plugin/plugin.json\"\n [ -f \"$pjson\" ] || continue\n\n # Count commands\n json_cmds=$(jq -r '.commands | length' \"$pjson\" 2>/dev/null || echo 0)\n disk_cmds=$(ls \"$plugin/commands/\"*.md 2>/dev/null | wc -l)\n\n # Count skills (directories only)\n json_skills=$(jq -r '.skills | length' \"$pjson\" 2>/dev/null || echo 0)\n disk_skills=$(ls -d \"$plugin/skills\"/*/ 2>/dev/null | wc -l)\n\n # Report mismatches\n if [ \"$json_cmds\" != \"$disk_cmds\" ] || [ \"$json_skills\" != \"$disk_skills\" ]; then\n echo \"$name: commands=$json_cmds/$disk_cmds skills=$json_skills/$disk_skills\"\n fi\ndone","type":"text"}]},{"type":"paragraph","content":[{"text":"If mismatches found","type":"text","marks":[{"type":"strong"}]},{"text":": Run ","type":"text"},{"text":"/update-plugins --fix","type":"text","marks":[{"type":"code_inline"}]},{"text":" or manually update plugin.json files.","type":"text"}]},{"type":"paragraph","content":[{"text":"Why this matters","type":"text","marks":[{"type":"strong"}]},{"text":": Unregistered commands/skills won't appear in Claude Code's slash command menu or be discoverable.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 4.75: Sync Capabilities Documentation (","type":"text"},{"text":"capabilities-synced","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"paragraph","content":[{"text":"Load: ","type":"text"},{"text":"@modules/capabilities-sync.md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"Purpose","type":"text","marks":[{"type":"strong"}]},{"text":": Ensure plugin.json registrations are reflected in reference documentation.","type":"text"}]},{"type":"paragraph","content":[{"text":"Sync Targets","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Source","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Documentation Target","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"plugin.json.skills[]","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"book/src/reference/capabilities-reference.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"plugin.json.commands[]","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"book/src/reference/capabilities-reference.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"plugin.json.agents[]","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"book/src/reference/capabilities-reference.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"hooks/hooks.json","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"book/src/reference/capabilities-reference.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Plugin existence","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"book/src/plugins/{plugin}.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]}]},{"type":"paragraph","content":[{"text":"Quick Check","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Compare registered vs documented skills\nfor pjson in plugins/*/.claude-plugin/plugin.json; do\n plugin=$(basename $(dirname $(dirname \"$pjson\")))\n jq -r --arg p \"$plugin\" '.skills[]? | sub(\"^\\\\./skills/\"; \"\") | \"\\($p):\\(.)\"' \"$pjson\" 2>/dev/null\ndone | sort > /tmp/registered-skills.txt\n\ngrep -E \"^\\| \\`[a-z-]+\\` \\|\" book/src/reference/capabilities-reference.md | \\\n head -120 | awk -F'|' '{print $2\":\"$3}' | sort > /tmp/documented-skills.txt\n\n# Show missing\ncomm -23 /tmp/registered-skills.txt /tmp/documented-skills.txt","type":"text"}]},{"type":"paragraph","content":[{"text":"If discrepancies found","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Missing from docs","type":"text","marks":[{"type":"strong"}]},{"text":": Add entries to capabilities-reference.md tables","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Missing plugin pages","type":"text","marks":[{"type":"strong"}]},{"text":": Create ","type":"text"},{"text":"book/src/plugins/{plugin}.md","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Missing from SUMMARY","type":"text","marks":[{"type":"strong"}]},{"text":": Add plugin to ","type":"text"},{"text":"book/src/SUMMARY.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"paragraph","content":[{"text":"Auto-generate entry format","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"| `{skill-name}` | [{plugin}](../plugins/{plugin}.md) | {description} |","type":"text"}]},{"type":"paragraph","content":[{"text":"Skip options","type":"text","marks":[{"type":"strong"}]},{"text":": Use ","type":"text"},{"text":"--skip-capabilities","type":"text","marks":[{"type":"code_inline"}]},{"text":" to bypass this phase.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 5: Verify Accuracy (","type":"text"},{"text":"accuracy-verified","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"paragraph","content":[{"text":"Load: ","type":"text"},{"text":"@modules/accuracy-scanning.md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"Validate claims against codebase:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Quick version check\nfor p in plugins/*/.claude-plugin/plugin.json; do\n jq -r '\"\\(.name): \\(.version)\"' \"$p\"\ndone\n\n# Quick counts\necho \"Plugins: $(ls -d plugins/*/.claude-plugin/plugin.json | wc -l)\"\necho \"Skills: $(find plugins/*/skills -name 'SKILL.md' | wc -l)\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Verification:","type":"text","marks":[{"type":"strong"}]},{"text":" Run the command with ","type":"text"},{"text":"--help","type":"text","marks":[{"type":"code_inline"}]},{"text":" flag to verify availability.","type":"text"}]},{"type":"paragraph","content":[{"text":"Flag mismatches:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Version numbers that don't match plugin.json","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Plugin/skill/command counts that don't match actual directories","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"File paths that don't exist","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"LSP-Enhanced Verification (2.0.74+)","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"paragraph","content":[{"text":"When ","type":"text"},{"text":"ENABLE_LSP_TOOL=1","type":"text","marks":[{"type":"code_inline"}]},{"text":" is set, enhance accuracy verification with semantic analysis:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"API Documentation Coverage","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Query LSP for all public functions/classes","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check which lack documentation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify all exported items are documented","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Signature Verification","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Compare documented function signatures with actual code","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Detect parameter mismatches","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Flag return type discrepancies","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Reference Finding","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use LSP to find all usages of documented items","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Include real usage examples in documentation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify cross-references are accurate","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Code Structure Validation","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check documented file paths exist (via LSP definitions)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify module organization matches documentation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Detect renamed/moved items","type":"text"}]}]}]}]}]},{"type":"paragraph","content":[{"text":"Efficiency","type":"text","marks":[{"type":"strong"}]},{"text":": LSP queries (50ms) vs. manual file tracing (minutes) - dramatically faster verification.","type":"text"}]},{"type":"paragraph","content":[{"text":"Default Strategy","type":"text","marks":[{"type":"strong"}]},{"text":": Documentation updates should ","type":"text"},{"text":"prefer LSP","type":"text","marks":[{"type":"strong"}]},{"text":" for all verification tasks. Enable ","type":"text"},{"text":"ENABLE_LSP_TOOL=1","type":"text","marks":[{"type":"code_inline"}]},{"text":" permanently for best results.","type":"text"}]},{"type":"paragraph","content":[{"text":"Non-blocking","type":"text","marks":[{"type":"strong"}]},{"text":": Warnings are informational; user decides whether to fix.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Step 6: Preview Changes (","type":"text"},{"text":"preview","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Show diffs for each edited file (","type":"text"},{"text":"git diff \u003cfile>","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":"rg","type":"text","marks":[{"type":"code_inline"}]},{"text":" snippets).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Include accuracy warnings if any were flagged.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Summarize:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Files created/modified/deleted","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Consolidation actions taken","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Style violations fixed","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Remaining TODOs or follow-ups","type":"text"}]}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Exit Criteria","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"All ","type":"text"},{"text":"TodoWrite","type":"text","marks":[{"type":"code_inline"}]},{"text":" items are completed and documentation is updated.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"New ADRs, if any, are in ","type":"text"},{"text":"wiki/architecture/","type":"text","marks":[{"type":"code_inline"}]},{"text":" (or the established ADR directory) with the correct status and links to related work.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Directory-specific style rules are satisfied.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Accuracy warnings addressed or acknowledged.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Content does not sound AI-generated.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Files are staged or ready for review.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Flags","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Flag","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Effect","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--skip-consolidation","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Skip Phase 2.5 consolidation check","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--skip-slop","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Skip Phase 4.25 AI slop detection","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--strict","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Treat all warnings as errors","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--book-style","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Apply book/ rules to all files","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Troubleshooting","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Common Issues","type":"text"}]},{"type":"paragraph","content":[{"text":"Documentation out of sync","type":"text","marks":[{"type":"strong"}]},{"text":" Run ","type":"text"},{"text":"make docs-update","type":"text","marks":[{"type":"code_inline"}]},{"text":" to regenerate from code","type":"text"}]},{"type":"paragraph","content":[{"text":"Build failures","type":"text","marks":[{"type":"strong"}]},{"text":" Check that all required dependencies are installed","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Links broken","type":"text","marks":[{"type":"strong"}]},{"text":" Verify relative paths in documentation files","type":"text"}]}]},"metadata":{"date":"2026-06-05","name":"doc-updates","tags":["documentation","readme","adr","docstrings","writing","consolidation","debloat"],"tools":[],"author":"@skillopedia","source":{"stars":298,"repo_name":"claude-night-market","origin_url":"https://github.com/athola/claude-night-market/blob/HEAD/plugins/sanctum/skills/doc-updates/SKILL.md","repo_owner":"athola","body_sha256":"7b67cd37f3fbf5278f8fb9c4accb2a4d61464b5435f5622ecc165698aa2228cf","cluster_key":"d2198cfbf87f36d996298ca9500838cbd71bd13986c46eb0d359980a033dc64a","clean_bundle":{"format":"clean-skill-bundle-v1","source":"athola/claude-night-market/plugins/sanctum/skills/doc-updates/SKILL.md","attachments":[{"id":"3be20924-4950-5e0d-a26a-931ce78742b7","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/3be20924-4950-5e0d-a26a-931ce78742b7/attachment.md","path":"modules/accuracy-scanning.md","size":5645,"sha256":"1c43b8cb1498a15bd7405ed1e08cb5a9c3afdc5188b4cd237ded50426e3cf015","contentType":"text/markdown; charset=utf-8"},{"id":"8f31d270-ac40-5dbd-bd2b-779d11f1f87e","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/8f31d270-ac40-5dbd-bd2b-779d11f1f87e/attachment.md","path":"modules/adr-patterns.md","size":3107,"sha256":"a42f1e237faf317e47c9f40753db235236127fcd52fa970643aa74d4ff92f437","contentType":"text/markdown; charset=utf-8"},{"id":"a51bec6c-60e7-507b-9a34-b0edb7b02bac","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/a51bec6c-60e7-507b-9a34-b0edb7b02bac/attachment.md","path":"modules/capabilities-sync.md","size":7005,"sha256":"12b3adda0e376ea37884b1d787044e2b5c7e09005ed7d911e146ee9a56ddb5c2","contentType":"text/markdown; charset=utf-8"},{"id":"772d7794-6bfe-5ee8-83ff-7a40aecc90cc","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/772d7794-6bfe-5ee8-83ff-7a40aecc90cc/attachment.md","path":"modules/consolidation-integration.md","size":6555,"sha256":"960bd641d7f56b41f548971ca9796b32c37310b5494c1e1a04c34fbcbb5ebd7d","contentType":"text/markdown; charset=utf-8"},{"id":"fd9c2b7c-365c-552c-af05-3d28e9885f27","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/fd9c2b7c-365c-552c-af05-3d28e9885f27/attachment.md","path":"modules/directory-style-rules.md","size":7111,"sha256":"f902d4b052394854a705cebbcc8a43ed0ef770fb0407dc3642f561c273ba5374","contentType":"text/markdown; charset=utf-8"}],"bundle_sha256":"0472542d726e3316b5ae8977a3e0819e98ebaa1b9fbac74cf5636bec72cf6dd0","attachment_count":5,"text_attachments":5,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"plugins/sanctum/skills/doc-updates/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"web-development","category_label":"Web"},"exact_dupes_collapsed_into_this":0},"modules":["modules/adr-patterns.md","modules/directory-style-rules.md","modules/accuracy-scanning.md","modules/consolidation-integration.md","modules/capabilities-sync.md"],"version":"v1","category":"web-development","complexity":"medium","import_tag":"clean-skills-v1","model_hint":"standard","alwaysApply":false,"description":"Updates documentation after code changes with quality gates, slop detection, and accuracy checks. Use when code changes require corresponding doc updates.","dependencies":["sanctum:shared","sanctum:git-workspace-review","imbue:proof-of-work","scribe:slop-detector","scribe:doc-generator"],"estimated_tokens":1200,"progressive_loading":true,"optional_dependencies":["elements-of-style:writing-clearly-and-concisely"]}},"renderedAt":1782979720076}

Table of Contents - When to Use - Required TodoWrite Items - Step 1: Collect Context - Step 2: Identify Targets - Step 2.5: Check for Consolidation - Step 3: Apply Edits - Step 4: Enforce Guidelines - Step 4.25: AI Slop Detection - Step 4.75: Sync Capabilities Documentation - Step 5: Verify Accuracy - Step 6: Preview Changes - Exit Criteria - Flags Documentation Update Workflow When To Use Use this skill when code changes require updates to the README, plans, wikis, or docstrings. Run first to capture the change context. System Capabilities The documentation update workflow includes several s…