Skip to content
cccskills
FreePublished on GitHub

tag-taxonomy

Keep Obsidian wiki tags consistent with an approved tag list. Audit spelling variants, missing tags, and pages with too many tags, normalize known alternatives, and choose or propose tags when creating pages.

OriginalShow the original description

Apply and maintain the wiki's controlled tag vocabulary. Use for choosing, normalizing, auditing, or extending tags when creating or updating wiki pages; consult the taxonomy before assigning tags.

See how to install

Good for

  • Audit inconsistent or missing wiki tags
  • Normalize tag aliases to approved names
  • Choose tags for a new page
  • Extend the shared tag vocabulary

Files included (1)

  • SKILL.md7.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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 (inline @name override → walk up CWD for .env → global 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:

TagPurpose
visibility/publicExplicitly public — shown in all modes (same as no tag)
visibility/internalTeam-only — excluded in filtered query/export mode
visibility/piiSensitive 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

## 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

One locked call updates the log, the index (tags appear in index entries), and the hot cache:

# audit
obsidian-wiki memory sync TAG_AUDIT \
  tags_normalized=<N> unknown_tags=<M> pages_modified=<P> \
  --takeaways "Tag audit: normalized 14 tags across 28 pages; 2 new canonical tags added."

# normalization
obsidian-wiki memory sync TAG_NORMALIZE \
  tags_renamed=<N> pages_modified=<M> new_tags_added=<P>

Never hand-edit index.md, log.md, or hot.md — the command takes the lock that keeps a parallel writer from dropping your update.

See .skills/llm-wiki/references/MEMORY.md for the full procedure.

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} update

If the output says vectors are needed or embeddings may be stale, run:

${QMD_CLI:-qmd} embed

Verify 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 5

Record one of:

  • QMD refreshed: update + embed + verified
  • QMD refreshed: update only + verified
  • QMD skipped: QMD_WIKI_COLLECTION unset
  • QMD skipped: qmd CLI unavailable
  • QMD failed: <short error summary>

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Extract reusable knowledge from Claude Code conversations, memory files, and desktop agent audit logs. Organize findings by topic in Obsidian, preserving source attribution and distinguishing project details from patterns shared across projects.

  • Preserve project decisions from past Claude sessions
  • Turn debugging conversations into reusable notes
  • Document workflows found in desktop audit logs
Ar9av/obsidian-wiki3.6KUpdated Oct 21, 2026

code-understand

FreeSummary

Explore an unfamiliar codebase before editing it. Produce a ranked map of important files, functions, callers, and dependencies, with source locations and evidence types to guide code reading and assess the likely impact of changes.

  • Understanding an unfamiliar module before editing
  • Finding callers of a function
  • Assessing the impact of changed files
Ar9av/obsidian-wiki3.6KUpdated Oct 21, 2026

Extract reusable knowledge from Codex CLI conversation and session logs, then organize it into topic-based Obsidian wiki pages. Combine insights across sessions, process new or changed files, and remove sensitive information rather than copying raw transcripts.

  • Turning Codex conversations into reusable wiki knowledge
  • Adding only new or changed session history
  • Consolidating recurring debugging techniques across sessions
Ar9av/obsidian-wiki3.6KUpdated Oct 21, 2026

Turn GitHub Copilot CLI and VS Code conversation history into topic-based Obsidian wiki pages. Extract decisions, debugging approaches, and project knowledge from summaries, conversations, and saved notes, processing only new or changed sessions by default.

  • Preserve design decisions from past Copilot conversations
  • Combine debugging knowledge across multiple sessions
  • Add knowledge from new or updated sessions
Ar9av/obsidian-wiki3.6KUpdated Oct 21, 2026

cross-linker

FreeSummary

Find missing references between wiki pages using names, aliases, shared tags, and project context. Add links in the text or a related section, record relationship types, and report confidence levels and pages that remain disconnected.

  • Connect newly imported pages to existing wiki content
  • Turn unlinked mentions of page names into references
  • Find disconnected pages and project filing candidates
Ar9av/obsidian-wiki3.6KUpdated Oct 21, 2026

daily-update

FreeSummary

Maintain an Obsidian wiki by checking source freshness, updating its index and activity summary, and recording maintenance status. Set up a daily 9 AM schedule and optional terminal reminders for overdue updates.

  • Refresh a wiki each morning
  • Check for changed or missing source files
  • Set up daily maintenance and terminal reminders
Ar9av/obsidian-wiki3.6KUpdated Oct 21, 2026

See all skills by Ar9av

Report a problem with this skill