skills/taxonomy-manager/SKILL.md
Audit and maintain blog taxonomy: categories, tags, orphans, duplicates.
npx skillsauth add notque/claude-code-toolkit taxonomy-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill audits and maintains blog taxonomy on Hugo-based sites using the Scan-Analyze-Report-Act workflow. Apply this skill when users ask to audit tags, fix inconsistencies, or consolidate taxonomy terms.
Goal: Build a complete index of all taxonomy terms and their usage.
Step 1: Identify all content files
Locate every Markdown file in the Hugo content directory (because Hugo requires explicit file discovery to avoid missing nested structures).
find /path/to/content -name "*.md" -type f | sort
Step 2: Extract front matter from each post
For each file, parse the YAML front matter and extract:
title (for reference in reports)categories (list)tags (list)Step 3: Build taxonomy index
Construct an in-memory mapping of every taxonomy term to its list of posts (because this index is the foundation for all downstream analysis):
CATEGORIES:
technical-notes: [post1.md, post2.md, post3.md]
tutorials: [post4.md, post5.md]
TAGS:
hugo: [post1.md, post2.md, post4.md]
debugging: [post1.md, post3.md]
Step 4: Check Hugo taxonomy configuration
Read hugo.toml (or config.toml) for any custom taxonomy definitions or overrides (because Hugo may define non-standard taxonomies beyond categories/tags).
Gate: Taxonomy index is complete with all terms mapped to their posts. Proceed only when gate passes.
Goal: Identify all taxonomy health problems from the index.
Step 1: Calculate usage statistics
For each taxonomy term compute: post count, percentage of total, and staleness (months since last use).
Step 2: Detect issues
Run these checks against the index:
| Check | Criteria | Severity |
|-------|----------|----------|
| Orphan tags | Used in only 1 post | Low |
| Empty categories | Defined in config but 0 posts | Medium |
| Case variations | Same word, different casing (Hugo vs hugo) | High |
| Plural variations | template vs templates | Medium |
| Synonym pairs | debugging vs troubleshooting | Medium |
| Abbreviation pairs | cicd vs ci-cd | Low |
| Hierarchical overlap | git-submodules under broader git | Medium |
Step 3: Assess health metrics
| Metric | Healthy | Warning | |--------|---------|---------| | Total categories | 3-7 | <3 or >10 | | Total active tags | 10-30 | <5 or >50 | | Tags per post (avg) | 3-5 | <2 or >7 | | Categories per post (avg) | 1-2 | 0 or >3 | | Orphan tag ratio | <20% | >30% |
Gate: All issues catalogued with severity. Health metrics computed. Proceed only when gate passes.
Goal: Present findings in a structured, actionable report.
Generate the visual audit report following the format in references/audit-report-format.md. The report must include:
Present the report to the user. If no issues are found, state the taxonomy is healthy.
Gate: Report presented. User has reviewed findings. Proceed to Phase 4 only if user requests changes.
Goal: Execute approved taxonomy modifications safely and verify correctness.
Step 1: Preview every change
Before any file modification, show the change in diff format (because previewing prevents accidental mass edits that break navigation):
File: content/posts/example.md
Current tags: ["Hugo", "debugging", "templates"]
New tags: ["hugo", "debugging", "templates"]
Change: Standardize "Hugo" -> "hugo"
Step 2: Get confirmation
Wait for explicit user approval before proceeding (because taxonomy modifications affect site navigation and SEO).
Step 3: Apply operations
Execute the approved operation (merge, rename, add, or remove). See references/consolidation-rules.md for operation semantics. Apply operations individually, not in batches, to isolate errors:
Step 4: Verify build
After each operation, run Hugo to confirm the site still builds (because taxonomy modifications can break Hugo's site generation):
hugo --quiet
If build fails, immediately roll back:
git checkout content/
Step 5: Show diff
git diff content/
Gate: All changes applied, build verified, diff reviewed. Operation complete.
Apply these constraints throughout all phases because Hugo is case-sensitive and requires consistent formatting:
lowercase-with-hyphens (not PascalCase, UPPERCASE, or spaces). Hugo treats Hugo, hugo, and HUGO as three separate tags, each with its own page.User says: "Audit my blog tags" Actions:
User says: "I have Hugo, hugo, and HUGO as separate tags, fix it" Actions:
hugo (REPORT)hugo, single tag page shows all related contentUser says: "I just published 10 new posts, clean up the taxonomy" Actions:
Cause: Content directory missing, empty, or wrong path Solution:
content/posts/ vs content/).md extensionCause: Malformed YAML in a content file Solution:
--- delimiterCause: Taxonomy modifications broke the site build Solution:
git checkout content/Cause: User requested merge/rename of a tag that does not exist in any post Solution:
Did you mean "{similar_tag}"?${CLAUDE_SKILL_DIR}/references/taxonomy-guidelines.md: Naming conventions, category/tag best practices, maintenance cadence${CLAUDE_SKILL_DIR}/references/consolidation-rules.md: When and how to merge, rename, add, or remove terms with priority matrix${CLAUDE_SKILL_DIR}/references/examples.md: Good vs bad taxonomy examples, before/after comparisons, audit output samples${CLAUDE_SKILL_DIR}/references/audit-report-format.md: Visual report template and bar chart generation rulesdocumentation
Document translation: quick/normal/refined modes with chunked parallel subagents and glossary support.
development
AI image generation: Gemini and Nano Banana backends; single/series/batch workflows with prompt-to-disk.
testing
Unified voice content generation pipeline with mandatory validation and joy-check. 13-phase pipeline: LOAD, GROUND, STATS-CHECKPOINT, GENERATE, HOOK-GATE, VALIDATE, REFINE, VARIETY-GATE, JOY-CHECK, ANTI-AI, CLOSE-GATE, OUTPUT, CLEANUP. Use when writing articles, blog posts, or any content that uses a voice profile. Use for "write article", "blog post", "write in voice", "generate content", "draft article", "write about".
documentation
Critique-and-rewrite loop for voice fidelity validation.