mcpField
W
wiki-narrate

wiki-narrate

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

wiki-narrate について

wiki-narrateは、Obsidian wikiからトピック別の引用付きMarkdown解説を作るエージェントスキルです。主張台帳で内容を根拠のある情報に限定し、保存は指定された場合のみ行います。

主な機能

  1. 01トピックに関連するVaultページを検索
  2. 02briefing、plain-language、lecturerの文体に対応
  3. 03事実の主張にVaultページの引用を付与
  4. 04推論と未解決の矛盾を明示
  5. 05--save指定時のみ解説を保存

活用シーン

  1. 01Wikiのトピックについて引用付きの解説を作成
  2. 02指定した文体で簡潔な読み物を作成
  3. 03不一致または不足のあるVault内証拠を整理
  4. 04依頼に応じて完成した解説を保存

インストール

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

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

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

同梱ファイルreferences/voices.md

詳細

Wiki Narrate — 引用付きナラティブ読み上げ

このスキルは、トピックベースの Markdown 読み上げにのみ使用してください。タグやページリストによる選択、過去のクエリの入力、音声エイリアス、HTML、PDF、スライド、レンダラーへの引き渡し、新しいコンパイル済みナレッジページの追加は行わないでください。

コマンド仕様

/wiki-narrate <topic> [--voice briefing|plain-language|lecturer] [--save]

  • 空でない <topic> を必須とします。
  • デフォルトの音声は briefing です。
  • 音声名は正規の表記と大文字・小文字を区別します。サポートされていない値が指定された場合は、検索や書き込みを行わず、briefing、plain-language、lecturer を列挙したエラーを返してください。
  • 永続化を有効にする唯一のスイッチは --save です。
  • トピックが指定されていない場合、オプションの形式が不正な場合、またはサポートされていない音声が指定された場合は、短い使用方法または検証エラーを返し、検索、書き込み、ログイベントの追記、hot.md の変更を行わないでください。

検索と取得

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

  1. インラインの @name による Vault の上書きを含め、Config Resolution Protocol に従って設定を解決し、対象 Vault に AGENTS.md がある場合は読み込んでください。引用を起草する前に OBSIDIAN_LINK_FORMAT を読み込んでください。
  2. 最初に hot.md と index.md を読みます。本文を読む前に、フロントマターと要約に基づいて候補を選択してください。
  3. 設定されている場合は rg より先に QMD を使用します。QMD がない場合、未設定の場合、または失敗した場合は、インデックスと rg の手順を続行してください。QMD の出力は候補の参考情報として扱い、証拠としては扱わないでください。各主張の根拠は、許可された Vault ページ自体から確認してください。
  4. 「public only」「user-facing」「no internal content」「as a user would see it」「exclude internal」などのフィルターモードを示す表現を尊重してください。そのモードでは、visibility/internal または visibility/pii のタグが付いたページはスキップし、読んだり、引用したり、内容を公開したりしないでください。
  5. 候補から _readouts/、_raw/、_archives/、_meta/、index.md、log.md、hot.md、_insights.md を除外してください。
  6. ページ全体を読む前に該当するセクションを読み、事実に関する主張を別の方法で確認できない場合に限り、ページ全体を読んでください。関連するライフサイクルと鮮度に関する注記を保持し、ページの信頼性を引き上げないでください。

主張台帳と引用監査

文章を作成する前に台帳を作成してください。各項目には、主張、裏付けとなる [[vault page]] リンク、および次のいずれか1つのステータスを含めます:裏付けのある事実、推論による関連付け、または曖昧な矛盾。 OBSIDIAN_LINK_FORMAT=markdown の場合は、同じ裏付けページを標準の Markdown リンクとして表示します。それ以外の場合は、Vault の [[wikilink]] 形式を使用します。

事実に関するすべての文に、隣接する裏付けの引用があることを確認してください。推論による関連付けには ^[inferred] を付け、未解決の矛盾には ^[ambiguous] を付けてください。情報の不足を埋めるために、ウェブ上の知識、モデルの記憶、または架空の例を使ってはいけません。裏付けのない主張は省略し、その情報不足を Coverage に記載してください。推論または曖昧さのマーカーは、隣接する引用を補足するものであり、引用の代わりにはなりません。

起草と出力

references/voices.md を読み、指定された音声のスケルトンをそのまま使用してください。選択した音声によって文章や順序を変えてもかまいませんが、台帳で定めた事実の範囲は変更できません。次の構成で Markdown のみを返してください。

  1. トピックと選択した音声を示すタイトル。
  2. 選択した音声のセクションを、ドキュメントで定義された順序で記載。
  3. 各事実文の直後に、OBSIDIAN_LINK_FORMAT に従って表示した引用を記載。
  4. 引用したページ、推論を含む文の数、および既知の証拠不足を列挙する ## Coverage フッター。

証拠が不十分または矛盾している場合は、裏付けのある部分のみを作成してください。未解決の矛盾にはそれぞれ、矛盾するすべてのページへの引用とともに ^[ambiguous] を付け、残りの情報不足を ## Coverage に記載してください。

永続化

デフォルトでは結果を提示します。--save の場合は、必要に応じて _readouts/ を作成し、title、topic、voice、sources、created、updated を含むフロントマターを付けて _readouts/<slug>.md に書き込みます。トピックから決定的に生成した、ファイルシステムで安全な <slug> を使用してください。会話で返したものと同じ、完成した Markdown のリードアウトを保存します。

リードアウトは派生出力です。検索対象から _readouts/ を除外し、index.md や .manifest.json を更新してはいけません。--save が成功するまでは、_readouts/ やリードアウトファイルを作成してはいけません。

ロギングとホットキャッシュ

検索に進んだナレーションの試行後、log.md に WIKI_NARRATE イベントを1件追記します。

obsidian-wiki memory log WIKI_NARRATE \
  topic="<topic>" voice=<voice> result_pages=<N> \
  mode=<normal|filtered> saved=<true|false> \
  outcome=<success|no_match|write_failed>

これは、--save を指定しないナレーションで許可される唯一の書き込みです。index.md や hot.md を手動で変更してはいけません。

  • --save を指定しない場合は、リードアウトを返した後に saved=false を付けてイベントを追記します。リードアウトを作成したり、hot.md を変更したりしてはいけません。
  • --save の書き込みに成功した場合は、saved=true を付けてイベントを追記し、トピック、語り口、引用ページ数、保存したリードアウトのパスを含む1行の要約でホットキャッシュを更新します:obsidian-wiki memory hot --takeaways "<line>"。hot.md を変更できるのは保存成功後のみであり、その場合もこのコマンドを通じてのみ変更します。
  • 下書きの作成後にリードアウトの書き込みに失敗した場合は、完成したリードアウトを会話で返し、保存に失敗したことを報告します。log.md に書き込み可能であれば、saved=false outcome=write_failed を付けた WIKI_NARRATE イベントを追記し、hot.md は更新しません。
  • log.md への追記に失敗した場合は、リードアウトの結果を保持し、ロギングの失敗を別途報告します。ロギングや保存の失敗を成功として扱ってはいけません。

安全な失敗時の動作

  • 一致するページがない場合: トピックに関する資料が保管庫にないことを説明します。--save が指定されていてもリードアウトファイルを作成せず、hot.md を変更しません。また、log.md に書き込み可能であれば、outcome=no_match を付けた WIKI_NARRATE イベントを記録します。
  • 根拠が弱い場合、または情報源が矛盾する場合: 外部知識で矛盾を解消してはいけません。裏付けのある主張のみを返し、該当する場合は曖昧さを明示して、## Coverage で不足を明確にします。このような部分的なリードアウトでも、正常に作成できた場合は保存できます。
  • QMD が利用できない場合、または設定されていない場合: 作業中の更新でフォールバックを簡潔に述べ、index.md と rg を使って安全に続行します。QMD が利用できないことだけを理由にナレーションを失敗させてはいけません。
  • 書き込みに失敗した場合: 部分的なリードアウトを保存済みとして提示してはいけません。hot.md、index.md、.manifest.json を更新してはいけません。

コメント