
Tag Taxonomy
- 2.8k installs
- 3.1k repo stars
- Updated August 4, 2026
- ar9av/obsidian-wiki
tag-taxonomy is an agent skill that enforces a controlled Obsidian wiki tag vocabulary using _meta/taxonomy.md, alias normalization, and audit reports.
About
tag-taxonomy is an Obsidian wiki skill that enforces a controlled tag vocabulary before creating or updating pages. It resolves vault config via the llm-wiki protocol, reads the canonical _meta/taxonomy.md list, and applies rules such as max five tags per page, lowercase hyphenated tags, broad-over-narrow preference, and alias normalization. Tag audit mode scans all markdown pages, builds frequency tables, and reports unknown tags, alias usage, over-tagged pages, and untagged pages while leaving visibility/ reserved tags untouched. Reserved visibility/public, visibility/internal, and visibility/pii tags are managed separately and do not count toward the five-tag limit. Normalization workflows map aliases to canonical forms and can extend the taxonomy when users request new approved tags. Developers reach for tag-taxonomy when tag sprawl breaks search, dashboards fail, or agents write inconsistent frontmatter across hundreds of notes in a living knowledge base.
- Reads canonical tag vocabulary from $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md before any tagging.
- Normalizes aliases and enforces max five tags per page with lowercase hyphenated canonical forms.
- Runs tag audit reports for unknown tags, alias usage, over-tagged pages, and untagged pages.
- Treats visibility/ tags as reserved system tags excluded from alias mapping and tag limits.
- Triggers on fix my tags, normalize tags, tag audit, tag taxonomy, or new wiki page tagging.
Tag Taxonomy by the numbers
- 2,804 all-time installs (skills.sh)
- +30 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #145 of 1,879 Documentation skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
tag-taxonomy capabilities & compatibility
- Capabilities
- controlled vocabulary enforcement · tag audit scanning and reporting · alias normalization and migration guidance
- Use cases
- documentation
What tag-taxonomy says it does
max 5 tags per page, lowercase/hyphenated, prefer broad over narrow
npx skills add https://github.com/ar9av/obsidian-wiki --skill tag-taxonomyAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2.8k |
|---|---|
| repo stars | ★ 3.1k |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 4, 2026 |
| Repository | ar9av/obsidian-wiki ↗ |
How do I fix inconsistent or sprawl tags across my Obsidian wiki so search and dashboards stay reliable?
Enforce consistent, controlled-vocabulary tagging across an Obsidian wiki used as a living knowledge base for projects, agents, and product decisions.
Who is it for?
Teams maintaining Obsidian wikis as living knowledge bases who need predictable tags across agents and humans.
Skip if: Skip for non-Obsidian note systems or wikis without a controlled taxonomy file and vault config.
When should I use this skill?
User asks to fix, normalize, audit, or extend tags, or whenever new wiki pages need correct controlled-vocabulary labels.
What you get
Normalized frontmatter tags, audit reports of unknown or over-tagged pages, and consistent canonical labels on updated wiki content.
- normalized tags
- updated taxonomy entries
- audited wiki pages
Files
Tag Taxonomy — Controlled Vocabulary for Wiki Tags
You are enforcing consistent tagging across the wiki by normalizing tags to a controlled vocabulary.
Before You Start
1. Resolve config — follow the Config Resolution Protocol in llm-wiki/SKILL.md (walk up CWD for .env → ~/.obsidian-wiki/config → prompt setup). This gives OBSIDIAN_VAULT_PATH 2. Read $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md — this is the canonical tag list 3. Read index.md to understand the wiki's scope
The Taxonomy File
The canonical tag vocabulary lives at $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md. It defines:
- Canonical tags — the tags that should be used
- Aliases — common alternatives that should be mapped to the canonical form
- Rules — max 5 tags per page, lowercase/hyphenated, prefer broad over narrow
- Migration guide — specific renames for known inconsistencies
Always read this file before tagging. It's the source of truth.
Reserved System Tags
visibility/ is a reserved tag group with special rules. These tags are not domain or type tags and are managed separately from the taxonomy vocabulary:
| Tag | Purpose |
|---|---|
visibility/public | Explicitly public — shown in all modes (same as no tag) |
visibility/internal | Team-only — excluded in filtered query/export mode |
visibility/pii | Sensitive data — excluded in filtered query/export mode |
Rules for `visibility/` tags:
- They do not count toward the 5-tag limit
- Only one
visibility/tag per page - Omit entirely when content is clearly public — no tag needed
- Never add
visibility/internaljust because content is technical; use it only for genuinely team-restricted knowledge - When running a tag audit, report
visibility/tag usage separately — do not flag them as unknown or non-canonical
When normalizing tags, leave visibility/ tags untouched — they are not subject to alias mapping.
Mode 1: Tag Audit
When the user wants to see the current state of tags:
Step 1: Scan all pages
Glob: $VAULT_PATH/**/*.md (excluding _archives/, .obsidian/, _meta/)
Extract: tags field from YAML frontmatterStep 2: Build a tag frequency table
For each tag found, count how many pages use it. Flag:
- Unknown tags — not in the taxonomy's canonical list
- Alias tags — using an alias instead of the canonical form (e.g.,
nextjsinstead ofreact) - Over-tagged pages — pages with more than 5 tags
- Untagged pages — pages with no tags or empty tags field
Step 3: Report
## Tag Audit Report
### Summary
- Total unique tags: 47
- Canonical tags used: 32
- Non-canonical tags found: 15
- Pages over tag limit (5): 3
- Untagged pages: 2
### Non-Canonical Tags Found
| Current Tag | → Canonical | Pages Affected |
| ----------- | ----------- | -------------- |
| `nextjs` | `react` | 4 |
| `next-js` | `react` | 2 |
| `robotics` | `ml` | 1 |
| `windows98` | `retro` | 3 |
### Unknown Tags (not in taxonomy)
| Tag | Pages | Recommendation |
| ------------ | ----- | -------------------------------- |
| `flutter` | 1 | Add to taxonomy under Frameworks |
| `kubernetes` | 2 | Add to taxonomy under DevOps |
### Over-Tagged Pages
| Page | Tag Count | Tags |
| ---------------------- | --------- | -------------------- |
| `entities/jane-doe.md` | 8 | ai, ml, founder, ... |Mode 2: Tag Normalization
When the user wants to fix the tags:
Step 1: Run audit (above)
Step 2: Apply fixes
For each page with non-canonical tags:
1. Read the page 2. Replace alias tags with their canonical form from the taxonomy 3. If page has > 5 tags, suggest which to drop (keep the most specific/relevant ones) 4. Write the updated frontmatter
Example:
# Before
tags: [nextjs, ai, ml-engineer, windows98, creative-coding, game, 8-bit, portfolio]
# After
tags: [react, ai, ml, retro, generative-art]Step 3: Handle unknowns
For tags that aren't in the taxonomy and aren't aliases:
- If the tag is used on 2+ pages, suggest adding it to the taxonomy
- If the tag is used on 1 page, suggest replacing it with the closest canonical tag
- Ask the user before making changes to unknown tags
Step 4: Update taxonomy
If new canonical tags were agreed upon, append them to _meta/taxonomy.md in the correct section.
Mode 3: Tagging a New Page
When you're creating a wiki page and need to choose tags:
1. Read _meta/taxonomy.md 2. Select up to 5 tags that best describe the page:
- 1-2 domain tags (what subject area)
- 1 type tag (what kind of thing)
- 0-1 project tags (if project-specific)
- 0-1 additional descriptive tags
3. Use only canonical tags — never aliases 4. If no existing tag fits, check if it's worth adding to the taxonomy
Mode 4: Adding a New Tag
When the user wants to add a tag to the vocabulary:
1. Check if an existing tag already covers the concept (suggest it if so) 2. If genuinely new, determine which section it belongs in (Domain, Type, Project) 3. Add it to _meta/taxonomy.md with:
- The canonical tag name
- What it's used for
- Any aliases to redirect
After Any Tag Operation
Append to log.md:
- [TIMESTAMP] TAG_AUDIT tags_normalized=N unknown_tags=M pages_modified=POr for normalization:
- [TIMESTAMP] TAG_NORMALIZE tags_renamed=N pages_modified=M new_tags_added=P`hot.md` — Read $OBSIDIAN_VAULT_PATH/hot.md (create from the template in wiki-ingest if missing). Update Recent Activity with a one-line summary — e.g. "Tag audit: normalized 14 tags across 28 pages; 2 new canonical tags added." Keep the last 3 operations. Update updated timestamp.
QMD Refresh After Vault Writes
QMD is a search index, not the source of truth. If $QMD_WIKI_COLLECTION is empty or unset, skip this step. Run it only after this skill has written or rewritten vault markdown. If QMD refresh fails, do not roll back the vault changes; report the QMD status separately.
Use $QMD_CLI if set; otherwise use qmd.
${QMD_CLI:-qmd} updateIf the output says vectors are needed or embeddings may be stale, run:
${QMD_CLI:-qmd} embedVerify the collection with either:
${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"or, when a specific page path is known:
${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<page>.md" -l 5Record one of:
QMD refreshed: update + embed + verifiedQMD refreshed: update only + verifiedQMD skipped: QMD_WIKI_COLLECTION unsetQMD skipped: qmd CLI unavailableQMD failed: <short error summary>
Related skills
How it compares
Pick tag-taxonomy for vault-wide tag governance; pick general documentation skills for writing page content without metadata rules.
FAQ
Where is the canonical tag list stored?
In $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md, which must be read before assigning or updating tags.
How many tags can a page have?
Up to five canonical tags per page, excluding reserved visibility/ system tags.
What does a tag audit report include?
Unknown tags, alias tags, over-tagged pages, untagged pages, and separate visibility tag usage.
Is Tag Taxonomy safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.