tag-taxonomy について
tag-taxonomy は、正規の分類表に基づいて Obsidian wiki のタグを監査・統一するスキルです。新規ページのタグ選定や、合意済みタグの分類表への追加にも対応します。
主な機能
- 01タグを集計し、別名や未知のタグを検出
- 02タグを統一し、ページあたり5個の上限を適用
- 03新規ページ用に正規タグを選定
- 04分類表の適切なセクションにタグを追加
- 05可視性タグに個別ルールを適用
活用シーン
- 01wiki 全体のタグ整合性を確認
- 02別名を正規タグに置き換え
- 03新規ページに分類表のタグを付与
- 04承認後に分類表を拡張
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ar9av/ obsidian-wiki --skill tag-taxonomyインストール後、Claude Code で/tag-taxonomyを入力して読み込まれたか確認します。
詳細
タグの分類体系 — Wiki タグの統制語彙
統制語彙にタグを正規化して、Wiki 全体で一貫したタグ付けを行います。
始める前に
- 設定を解決する —
llm-wiki/SKILL.mdの設定解決プロトコル(インラインの@nameオーバーライド → CWD を上方向にたどって.envを探す → グローバル設定 → セットアップを促す)に従います。これによりOBSIDIAN_VAULT_PATHが得られます $OBSIDIAN_VAULT_PATH/_meta/taxonomy.mdを読みます — これが正規タグの一覧ですindex.mdを読んで、Wiki の対象範囲を把握します
分類体系ファイル
正規タグの語彙は $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md にあります。このファイルには以下が定義されています。
- 正規タグ — 使用すべきタグ
- 別名 — 正規形に対応付ける一般的な代替表記
- ルール — ページあたり最大 5 個のタグ、小文字とハイフンを使用し、狭い分類より広い分類を優先
- 移行ガイド — 既知の不整合に対する具体的な名称変更
タグ付けの前に、必ずこのファイルを読んでください。 これが信頼できる情報源です。
予約済みシステムタグ
visibility/ は特別なルールを持つ予約済みタググループです。これらのタグはドメインタグや種類タグではなく、分類体系の語彙とは別に管理されます。
| タグ | 用途 |
|---|---|
visibility/public | 明示的に公開 — すべてのモードで表示されます(タグなしと同じ) |
visibility/internal | チーム限定 — フィルター適用済みのクエリ/エクスポートモードでは除外されます |
visibility/pii | 機微データ — フィルター適用済みのクエリ/エクスポートモードでは除外されます |
visibility/ タグのルール:
- 5 タグの上限には含まれません
- 1 ページにつき
visibility/タグは 1 つのみです - コンテンツが明らかに公開されている場合は完全に省略します — タグは不要です
- コンテンツが技術的であるという理由だけで
visibility/internalを追加しないでください。真にチーム限定の知識にのみ使用します - タグ監査を実行するときは、
visibility/タグの使用状況を別途報告します — 不明または非正規のタグとして扱わないでください
タグを正規化するときは、visibility/ タグをそのままにしてください — 別名のマッピング対象ではありません。
モード 1:タグ監査
ユーザーが現在のタグの状態を確認したい場合:
ステップ 1:すべてのページをスキャンする
Glob: $VAULT_PATH/**/*.md (excluding _archives/, .obsidian/, _meta/)
Extract: tags field from YAML frontmatter
ステップ 2:タグの出現頻度表を作成する
見つかった各タグについて、使用しているページ数を数えます。以下に該当するものを報告します。
- 不明なタグ — 分類体系の正規タグ一覧にないもの
- 別名タグ — 正規形ではなく別名が使われているもの(例:
reactではなくnextjs) - タグ過多のページ — タグが 5 個を超えるページ
- タグなしのページ — タグがない、またはタグ欄が空のページ
ステップ 3:報告する
## 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, ... |
モード 2:タグの正規化
ユーザーがタグを修正したい場合:
ステップ 1:監査を実行する(上記を参照)
ステップ 2:修正を適用する
非正規タグがある各ページについて:
- ページを読みます
- 別名タグを分類体系にある正規形に置き換えます
- ページのタグが 5 個を超える場合は、削除するタグを提案します(最も具体的で関連性の高いタグを残します)
- 更新したフロントマターを書き込みます
例:
# Before
tags: [nextjs, ai, ml-engineer, windows98, creative-coding, game, 8-bit, portfolio]
# After
tags: [react, ai, ml, retro, generative-art]
ステップ 3:不明なタグに対処する
分類体系に含まれておらず、別名でもないタグについて:
- タグが 2 ページ以上で使われている場合は、分類体系への追加を提案します
- タグが 1 ページで使われている場合は、最も近い正規タグへの置き換えを提案します
- 不明なタグを変更する前に、ユーザーに確認します
ステップ 4:分類体系を更新する
新しい正規タグが合意された場合は、適切なセクションに追加して _meta/taxonomy.md を更新します。
モード 3:新しいページへのタグ付け
Wiki ページを作成する際にタグを選ぶ場合:
_meta/taxonomy.mdを読みます- ページを最もよく表すタグを最大 5 個選びます:
- ドメインタグを 1〜2 個(対象分野)
- 種類タグを 1 個(対象の種類)
- プロジェクトタグを 0〜1 個(プロジェクト固有の場合)
- その他の説明的なタグを 0〜1 個
- 正規タグのみを使用します — 別名は使用しません
- 適切な既存タグがない場合は、分類体系に追加する価値があるか確認します
モード 4:新しいタグの追加
ユーザーが語彙にタグを追加したい場合:
- 既存のタグでその概念をカバーできるか確認します(該当する場合は提案します)
- 本当に新しい場合は、どのセクションに属するか判断します(Domain、Type、Project)
_meta/taxonomy.mdに以下を追加します:- 正規のタグ名
- 用途
- リダイレクト先となるエイリアス
タグ操作後の処理
ロック付きの呼び出しを 1 回実行すると、ログ、インデックス(タグはインデックス項目に表示されます)、ホットキャッシュが更新されます:
# 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>
index.md、log.md、hot.md を手動で編集しないでください。このコマンドがロックを取得することで、並行して書き込む処理によって更新が失われるのを防ぎます。
手順の詳細については、.skills/llm-wiki/references/MEMORY.md を参照してください。
Vault への書き込み後の QMD の更新
QMD は検索インデックスであり、信頼できる唯一の情報源ではありません。$QMD_WIKI_COLLECTION が空または未設定の場合は、この手順をスキップします。このスキルが Vault の Markdown を書き込みまたは書き換えた後にのみ実行してください。QMD の更新に失敗した場合も、Vault の変更はロールバックせず、QMD の状況を別途報告してください。
$QMD_CLI が設定されている場合はそれを使用し、そうでない場合は qmd を使用します。
${QMD_CLI:-qmd} update
出力にベクトルが必要、または埋め込みが古い可能性があると表示された場合は、次を実行します:
${QMD_CLI:-qmd} embed
次のいずれかでコレクションを確認します:
${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"
または、特定のページパスがわかっている場合は、次を使用します:
${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<page>.md" -l 5
次のいずれかを記録します:
QMD refreshed: update + embed + verifiedQMD refreshed: update only + verifiedQMD skipped: QMD_WIKI_COLLECTION unsetQMD skipped: qmd CLI unavailableQMD failed: <short error summary>