mcpField
T
tag-taxonomy

tag-taxonomy

github.com/ar9av生産性3.6k3.2k 回インストール2 日前に更新
リポジトリ

tag-taxonomy について

tag-taxonomy は、正規の分類表に基づいて Obsidian wiki のタグを監査・統一するスキルです。新規ページのタグ選定や、合意済みタグの分類表への追加にも対応します。

主な機能

  1. 01タグを集計し、別名や未知のタグを検出
  2. 02タグを統一し、ページあたり5個の上限を適用
  3. 03新規ページ用に正規タグを選定
  4. 04分類表の適切なセクションにタグを追加
  5. 05可視性タグに個別ルールを適用

活用シーン

  1. 01wiki 全体のタグ整合性を確認
  2. 02別名を正規タグに置き換え
  3. 03新規ページに分類表のタグを付与
  4. 04承認後に分類表を拡張

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ar9av/obsidian-wiki --skill tag-taxonomy

インストール後、Claude Code で/tag-taxonomyを入力して読み込まれたか確認します。

詳細

タグの分類体系 — Wiki タグの統制語彙

統制語彙にタグを正規化して、Wiki 全体で一貫したタグ付けを行います。

始める前に

  1. 設定を解決する — llm-wiki/SKILL.md の設定解決プロトコル(インラインの @name オーバーライド → CWD を上方向にたどって .env を探す → グローバル設定 → セットアップを促す)に従います。これにより OBSIDIAN_VAULT_PATH が得られます
  2. $OBSIDIAN_VAULT_PATH/_meta/taxonomy.md を読みます — これが正規タグの一覧です
  3. 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:修正を適用する

非正規タグがある各ページについて:

  1. ページを読みます
  2. 別名タグを分類体系にある正規形に置き換えます
  3. ページのタグが 5 個を超える場合は、削除するタグを提案します(最も具体的で関連性の高いタグを残します)
  4. 更新したフロントマターを書き込みます

例:

# 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 ページを作成する際にタグを選ぶ場合:

  1. _meta/taxonomy.md を読みます
  2. ページを最もよく表すタグを最大 5 個選びます:
    • ドメインタグを 1〜2 個(対象分野)
    • 種類タグを 1 個(対象の種類)
    • プロジェクトタグを 0〜1 個(プロジェクト固有の場合)
    • その他の説明的なタグを 0〜1 個
  3. 正規タグのみを使用します — 別名は使用しません
  4. 適切な既存タグがない場合は、分類体系に追加する価値があるか確認します

モード 4:新しいタグの追加

ユーザーが語彙にタグを追加したい場合:

  1. 既存のタグでその概念をカバーできるか確認します(該当する場合は提案します)
  2. 本当に新しい場合は、どのセクションに属するか判断します(Domain、Type、Project)
  3. _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 + verified
  • QMD refreshed: update only + verified
  • QMD skipped: QMD_WIKI_COLLECTION unset
  • QMD skipped: qmd CLI unavailable
  • QMD failed: <short error summary>

コメント