mcpField
W
wiki-digest

wiki-digest

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

wiki-digest について

wiki-digestは、Obsidian wikiの最近の活動を、知識、テーマ、ページ間のつながり、未解決事項を中心に読みやすくまとめるスキルです。チャットへの出力に加え、希望に応じてジャーナルページとして保存できます。

主な機能

  1. 01新規・更新wikiページの要約
  2. 02頻出タグとテーマの特定
  3. 03カテゴリをまたぐページリンクの発見
  4. 04下書きと未解決事項の提示
  5. 05ジャーナルダイジェストの任意保存

活用シーン

  1. 01過去1週間の学びの振り返り
  2. 02最近更新したページに共通するテーマの把握
  3. 03再確認したい下書きやつながりの発見

インストール

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

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

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

詳細

Wiki Digest — 知識ニュースレター生成

最近の Wiki の活動について、人が読みやすいダイジェストを生成します。何がわかったか、何が更新されたか、どのようなテーマが浮かび上がってきたか、何を見直す価値があるかをまとめます。このスキルが要約するのは知識であり、情報源ではありません。取り込み状況のレポートではなく、週次レビューセッションとして考えてください。

開始前

執筆プロファイル: 自然言語の Markdown を作成または書き直す前に、llm-wiki/SKILL.md の Writing Profile Resolution セクションを読んで適用してください。フレームワークのスキーマ、来歴、安全性、および操作固有の要件が優先されます。 WRITING.md の設定は、新たに作成または書き直す自然言語の Markdown にのみ適用されます。ソースコンテンツと構造化レコードはそのまま保持してください。

  1. 設定を解決する — llm-wiki/SKILL.md の Config Resolution Protocol(インラインの @name による上書き → CWD から .env をたどる → グローバル設定 → セットアップのプロンプト)に従ってください。これにより OBSIDIAN_VAULT_PATH と OBSIDIAN_LINK_FORMAT が得られます。
  2. ユーザーのリクエストから期間を解析します。
    • 「daily」/「today」/「yesterday」→ 過去24時間
    • 「weekly」/「this week」/引数なし(デフォルト)→ 過去7日間
    • 「monthly」/「this month」→ 過去30日間
    • since 2026-05-01 のような ISO 日付 → その日付以降に更新されたページ
    • last 14 days のような明示的な数値 → 指定された日数
  3. $OBSIDIAN_VAULT_PATH/log.md の直近200行を読み、期間内のエントリーを確認します(タイムスタンプは ISO-8601 形式の行頭に付いています)。
  4. $OBSIDIAN_VAULT_PATH/hot.md を読み、現在のセッションのコンテキストを確認します。
  5. $OBSIDIAN_VAULT_PATH/_insights.md が存在する場合は、Anchor Pages テーブルを読みます。後で、どの新規ページがハブになったかを特定するために使います。

Step 1:期間中に活動したページを収集する

$OBSIDIAN_VAULT_PATH 以下のすべての .md ファイルを Glob で検索します。特殊ファイル/システムファイルは除外します。

  • index.md、log.md、hot.md、AGENTS.md、_insights.md
  • _meta/、_archives/、_raw/ 以下にあるファイル
  • ジャーナルダイジェストページ(journal/digest-*.md)

残りの各ページについて、フロントマターを読みます。

  • created — ページが最初に作成された日時
  • updated — ページが最後に変更された日時

次のように分類します。

  • 新規ページ:created が期間内
  • 更新されたページ:updated が期間内で、created が期間より前
  • 変更なし:どちらの日付も期間外 → スキップ

活動したページが5件未満の場合は、その旨を伝えて期間を広げるか尋ねます。「過去7日間に活動したページは3件だけです。月次ダイジェストにしますか?」 と確認してください。ユーザーが続行すると言うまでは、ここで終了します。

活動したページごとに、title、category、tags、summary(フロントマターのフィールド)、lifecycle、本文中の ^[ambiguous] または ^[inferred] マーカーを収集します。

Step 2:テーマを特定する

活動したすべてのページのタグから、テーマの出現頻度を集計します。

For each tag across new + updated pages:
  count how many active pages carry it
Sort descending, take top 5

また、$OBSIDIAN_VAULT_PATH/_meta/taxonomy.md が存在する場合は読みます。Step 1 のタグのうち、タクソノミーに含まれていないものをフラグ付けします。これらは、今期に現れた新しい語彙です。

最も増加したカテゴリ(concepts/、entities/、skills/、synthesis/、references/ など)を記録します。

Step 3:注目すべき新しいつながりを見つける

新規および更新されたページから、カテゴリをまたぐ Wiki リンク、つまり異なる知識レイヤーを結び付けるリンクを探します。これらは、今期に生まれた成果の中でも、特に知的に興味深いものです。

活動した各ページから、すべての [[wikilink]] のリンク先を抽出します。リンク先のカテゴリ接頭辞に基づいて分類します。カテゴリをまたぐリンク(たとえば、concepts/ のページから entities/ のページへのリンクや、synthesis/ のページから2つのトピックへの橋渡しとなるリンク)にフラグを付けます。

興味深さに基づいて候補をランク付けします。

  • +3:あまり結び付かない2つのカテゴリをまたいでいる場合(利用可能であれば _insights.md のブリッジデータを使用)
  • +2:リンク先のページがトップ10のハブである場合(_insights.md のアンカーに基づく)
  • +2:synthesis/ ページにリンクがある場合(意図的な分野横断)
  • +1:ソースページに ^[inferred] のマークが付いている場合(直接記述されたものではなく、統合によって導かれたつながり)

上位3~5件のつながりを選びます。それぞれについて、単に「A → B」とするのではなく、なぜそのつながりが興味深いのかを説明する平易な英文を書きます。

Step 4: 未解決の課題を洗い出す

アクティブなページと _raw/ を確認し、未解決の作業を洗い出します。

  • 下書き:lifecycle: draft または lifecycle: stub が設定されたページ
  • 曖昧な主張:すべてのアクティブなページにある ^[ambiguous] マーカーの数を数えます(すべてを列挙せず、件数と最も多く含むページだけを示します)
  • 未整理のメモ:$OBSIDIAN_VAULT_PATH/_raw/ 内のファイル数を数えます(ここにあるものは、まだ昇格されていません)
  • 分類体系の不足:Step 2 のタグのうち、_meta/taxonomy.md にないもの

Step 5: 再読を推奨するページを選ぶ

既存の(期間開始前の)ページから、今週の新しいコンテキストを踏まえて再読する価値のあるものを2~3件特定します。

ヒューリスティック:Step 1 のアクティブなページと最も多くのタグを共有する、期間開始前のページを探します。これらは、今期にトピックが拡張された基盤となるページです。新しいページはそれらを土台にしていますが、ユーザーは基盤となるページを再読していない可能性があります。

また、アクティブなページからの新しい被リンクが2件以上増えた期間開始前のページも含めます(つながりが増えたばかりであり、基盤として重要な兆候です)。

各おすすめには、具体的な理由を添えます。ページタイトルだけではなく、「[[concepts/attention-mechanism]] — 基盤となるページです。今週取り込んだ論文3件すべてが、この内容を発展させています」 のように記述します。

Step 6: ダイジェストを生成する

構造化され、ざっと目を通しやすい Markdown レポートを作成します。「ヘッドライン」セクションが最も重要です。ページ名を列挙するのではなく、実際の洞察をまとめた、優れたニュースレターの冒頭のような内容にします。

OBSIDIAN_LINK_FORMAT を使い、llm-wiki/SKILL.md のリンク形式(「Link Format」セクション)を適用します。デフォルトは [[wikilink]] です。

# Wiki Digest — [Period Label]
> [N new pages · M updated pages · period: YYYY-MM-DD to YYYY-MM-DD]

## Headlines

- [Concrete insight #1 — synthesize the actual knowledge, not just "learned about X"]
- [Concrete insight #2]
- [Concrete insight #3]

## New Knowledge

### New pages ([count])
| Page | Category | Summary |
|---|---|---|
| [[concepts/foo]] | concept | One-sentence summary from frontmatter |
| [[entities/bar]] | entity | One-sentence summary |

### Notable updates ([count])
| Page | What changed |
|---|---|
| [[skills/react-hooks]] | Added patterns for useCallback with async effects |

*(If no updates, omit this subsection.)*

## Emerging Themes

- **#[tag]** ([N pages]) — [One sentence on why this topic was active]
- **#[tag]** ([N pages]) — [...]
- **#[NEW TAG]** ([N pages]) ⭐ *New vocabulary — not yet in taxonomy*

Most active category: **[category/]** ([N pages added or updated])

## Key Connections Made

- [[concepts/A]] → [[entities/B]] — [Plain-English reason this connection is interesting]
- [[synthesis/X]] created — bridges [[concepts/Y]] and [[concepts/Z]] for the first time
- *(up to 5 connections)*

## Open Threads

- **Drafts to compile** ([count]): [[concepts/foo]], [[concepts/bar]] — still in draft lifecycle
- **Ambiguous claims**: [N] `^[ambiguous]` markers across [M] pages — run `/wiki-synthesize` to resolve
- **Unstaged notes**: [N] files in `_raw/` — run `/wiki-ingest _raw/` to promote them
- **Taxonomy gaps**: Tags `#newtag1`, `#newtag2` used but not in taxonomy — run `/tag-taxonomy`

*(Omit any subsection where count is 0.)*

## Recommended Re-reads

- [[concepts/X]] — [Specific reason: "3 new papers this week all extend this concept"]
- [[synthesis/Y]] — [Specific reason: "2 new pages created this week reference it"]
- [[skills/Z]] — [Specific reason: "now has 4 new incoming links — it's become a hub"]

---
*Generated by wiki-digest · [TIMESTAMP] · [N pages scanned in [VAULT_PATH]]*

表示設定:ページに visibility/pii タグが付いている場合は、すべての表と関連ページ一覧から除外します(ただし合計には含め、「+ N 件の非公開」と記載します)。ユーザーが明示的に「非公開ページを含めて」または「完全なダイジェスト」と指示した場合は、通常どおり含めます。

Step 7: 出力と、必要に応じた保存

デフォルト(チャットへの出力): ダイジェストを直接出力します。最後に次のように尋ねます。 「これを journal/digest-YYYY-MM-DD.md として保存しますか?」

ユーザーが「save」または「write」を先頭に付けた場合(例:/wiki-digest save または「週次ダイジェストを生成して保存して」):

  • $OBSIDIAN_VAULT_PATH/journal/digest-YYYY-MM-DD.md(週次/月次)または journal/digest-YYYY-MM-DD-daily.md(日次)に書き込みます
  • フロントマターを追加します:
    ---
    title: "Wiki Digest — [Period Label]"
    category: journal
    tags: [digest, meta/review]
    sources: []
    created: TIMESTAMP
    updated: TIMESTAMP
    summary: "Weekly knowledge digest: [N new, M updated pages]. Top themes: [tag1], [tag2]."
    ---
    
  • index.md の Journal の下に新しい項目を追加します
  • .manifest.json には追加しません(ダイジェストはソースの取り込みではありません)

どちらの場合も、log.md に追記します:

- [TIMESTAMP] DIGEST period="7d" new_pages=N updated_pages=M themes=T connections=C saved=false

例外的なケース

状況対応
アクティブなページが5件未満期間を広げるか提案し、ユーザーが確認した場合にのみ続行します
ボルトが空(ページが1件もない)先に取り込みを実行するようユーザーに伝え、終了します
_meta/taxonomy.md がない分類体系の不足の確認を省略し、「未解決の課題」からその行を省きます
_insights.md がないStep 3 のハブベースのスコアリングを省略します。関連ページのセクションは引き続き作成します
すべてのページに visibility/pii が付いている詳細を示さず、「今期は非公開ページがN件アクティブでした」と報告し、完全モードを提案します
期間中に Wiki が再構築されたダイジェストに「この期間中に Wiki が再構築されました。ページの日付は再構築後の状態を示しています」と記載します

メモ

  • 見どころはヘッドラインです。 ページタイトルを列挙せず、実際に得られた知見をまとめます。今週、注意機構について学んだなら、ヘッドラインでは「Transformer のページを3件追加」と述べるのではなく、洞察を伝えます。
  • 再読の理由は具体的にします。 「このページは関連性があります」では役に立ちません。「今週の論文3件がすべて、このページの同じ主張を引用しています」なら、次の行動につながります。
  • このスキルは読み取り専用です。 書き込みが発生するのは、任意のジャーナルページと log.md への追記だけです。既存の Wiki ページは変更しません。
  • wiki-status と重複させないでください。 ユーザーが「取り込みが必要なものは?」や「差分は?」と尋ねた場合は、wiki-status に振り分けます。このスキルが答えるのは「何を学んだか」であり、「何が保留中か」ではありません。

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>

コメント