
Tag Taxonomy
Normalize Obsidian wiki tags to a controlled vocabulary so pages stay discoverable when your tag list has become inconsistent.
Install
npx skills add https://github.com/ar9av/obsidian-wiki --skill tag-taxonomyWhat is this skill?
- Reads canonical vocabulary from vault _meta/taxonomy.md before assigning any tag
- Maps aliases to canonical tags and enforces max 5 tags per page, lowercase hyphenated
- Config resolution via .env or ~/.obsidian-wiki/config for OBSIDIAN_VAULT_PATH
- Migration guide for known inconsistent tag renames
- Triggers on fix tags, tag audit, tag taxonomy, and my tags are a mess
Adoption & trust: 2.1k installs on skills.sh; 1.8k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Lark Doclarksuite/cli
Lark Wikilarksuite/cli
Opensource Guide Coachxixu-me/skills
Readme I18nxixu-me/skills
Doc Coauthoringanthropics/skills
Obsidian Markdownkepano/obsidian-skills
Journey fit
Common Questions / FAQ
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.
SKILL.md
READMESKILL.md - Tag Taxonomy
# 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/internal` just 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 frontmatter ``` ### Step 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., `nextjs` instead of `react`) - **Over-tagged pages** — pages with more than 5 tags - **Untagged pages** — pages with no tags or empty tags field ### Step 3: Report ```markdown ## 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 | | ---------------------