wiki-ingest は何をしますか?
科学知識ベース向けのLLM-Wiki取り込みパターンを実装します。 取り込まれた論文はそれぞれ、単なる孤立したメモではなく、トレース可能で複合的に成長する知識を生み出します。
初回取り込みの前に、キット内の
docs/GOTCHAS.md(取り込み、合成、リントにおける運用上の注意点)をお読みください。
モード
- デフォルト(取り込み):
/wiki-ingest <論文>は論文ノートを作成または更新し、コンセプトとメソッドに伝播します(デフォルトワークフロー参照)。 - 確認モード:
/wiki-ingest verify:<PaperNote>は既存のノートをその全文と照合して再検証し、差分を報告しますが、何も再生成したり上書きしたりしません(references/VERIFY-DIFF-MODE.mdを参照)。ユーザーが各編集を確認しない限り、読み取り専用です。
役割と境界
行うこと: 論文ノートの作成・更新、コンセプトノートとメソッドノートへの伝播、インデックスとログの更新、すべての変更の報告。
行わないこと: 引用の捏造、単発のコンセプトのためのコンセプトノートの作成、データベースへの書き込み。すべての書き込みはホストのファイルツール(Read/Write/Edit)を通じて行われます。
ファイルの配置場所
パスは wiki.config.json(ボールトルート、Wikiルート、フォルダ名、言語、しきい値)から取得されます。デフォルト:
<vault_root>/
<wiki_root>/ # デフォルト: wiki/
papers/ concepts/ methods/ books/ fields/ debates/
WIKI_SCHEMA.md # フロントマター契約、命名規則、分類法、取り込みプロトコル
index.md log.md
templates/ # paper.md, concept.md, method.md, book.md, chapter.md, submoc.md, synthesis.md
以下、<kit> は tools/(seal.py、pmc_tables.py)を保持する science-wiki-kit チェックアウトを指します。そのパスは wiki.config.json の kit_dir キーで、インストーラーによって書き込まれます。欠落している場合は、スキルがチェックアウトからリンクされている場合、このスキルのディレクトリの2つ上のフォルダです。
開始する前に必ず WIKI_SCHEMA.md を読んでください。 このWikiのフロントマター契約、命名規則、フィールド分類法が定義されています。
関連スキル
wiki-lint:wiki.config.json(インデックス更新で使用されるケバブケースからタイトルケースへのフィールドマップ)を共有します。各取り込み後に実行して、ドリフトが発生していないことを確認します。wiki-ingest-book: 書籍と章のためのコンパニオンスキル。同じステータスルールとインデックスルーティングが適用されます。wiki-synthesize: このスキルが生成したノートを消費します。
初期ステータス判定(すべての新しいノートに適用)
status は意図的に設定してください。テンプレートのデフォルトのままにしないでください。以下の N は設定ファイルの min_distinct_sources_for_final(デフォルト2)です。
| ノートタイプ | 条件 | 初期 status |
|---|---|---|
| 論文 | 抄録 + 少なくとも2つのソース付き知見が抽出された | read |
| 論文 | DOI/タイトルのメタデータのみ、全文なし | stub + > [!warning] Stub: pending ingest. コールアウト |
| コンセプト | N 以上の異なるソース作品から少なくとも2つのソース付き知見 | final |
| コンセプト | すべてが単一のソース作品からの少なくとも2つのソース付き知見 | draft(単一ソース統合) |
| コンセプト | 定義 + 1つのソース付き知見 | draft |
| コンセプト | 定義のみ、Key Findings なし | stub + > [!warning] Stub: no sourced findings yet. コールアウト |
| メソッド | 定義 + N 以上の異なるソース作品が「このメソッドを使用する論文」に含まれる | final |
| メソッド | 定義と1つのソース作品のみ | draft(単一ソース) |
| メソッド | 定義があるがソース引用なし | draft |
| メソッド | 骨組みのみ | stub |
finalへの昇格には N 個の異なるソース作品が必要です。 「異なる」とは独立した論文または書籍をカウントします。書籍の親ノートとその章ノート(Author_2025とAuthor_2025_Ch01とAuthor_2025_Ch02)は1つの作品にまとめられます。同様に、同じ書籍の複数の章も同様です。単一のリッチなソース(系統的レビュー、教科書の章)はコンセプトを作成し複数の知見をもたらす可能性がありますが、2番目の独立したソースがそれを裏付けるまで、ノートはdraftのままです。draftノートに知見を追加する場合、編集後に異なる作品をカウントし、カウントが N に達した場合のみ昇格させ、昇格を取り込みレポートに記録します。単一ソースのdraftノートには、「単一ソース統合、2番目のソースが取り込まれたら裏付けてください」という短い一文を本文に含めます。
デフォルトワークフロー
1. スキーマを読む
WIKI_SCHEMA.md を読みます。
2. 論文ソースを解決する
以下を順に試し、環境が提供するものを使用してください:
- 参考文献管理ツール (Zotero MCP がサポートされるアダプター): 検索、メタデータ、全文の順。シーケンスと検索の注意点は
references/INGEST-WORKFLOW.mdを参照。 - 出版社XMLテーブル (PMC のオープンアクセス): DOI に PMCID がある場合、Europe PMC JATS からセルごとにテーブルを取得できます。PDF のテキストレイヤーに依存しません:
python <kit>/tools/pmc_tables.py <DOI> --out _temp/<stem>_pmc.md --body(終了コード2はPMCIDがないことを意味します)。ページ画像を開く前に、JATS に対してテーブル番号を確認してください。JATS と PDF で矛盾がある場合、印刷された PDF が優先され、矛盾が注記されます。PMCID なし: PDF を使用します。 - PubMed MCP (論文が参考文献管理ツールにない場合): キーワードで検索し、PMID で取得します(DOI は空の
full_textを返す可能性があります)。PMID を論文ノートのnotes:フィールドに保存します。生物医学論文にのみ使用し、ユーザーがライブラリにないことを確認した後に使用します。 - DOI のみ: それをメモします。メタデータを捏造しないでください。
- ウェブ記事 (オープンアクセスの HTML/URL): 最初にウェブからマークダウンへのツール(例:
defuddleスキル)でクリーンなマークダウンに変換し、その後出力を抄録と本文として扱います。DOI がない場合は、引用ソースとして URL を使用します。 - 手動: ユーザーが抄録またはテキストを貼り付けます。メタデータを抽出し、不明な点をフラグします。
PDF の場所は重要です。ノートは、後でクリーンアップされるワーキングフォルダ(Downloads/、スクラッチディレクトリ)を決して引用してはいけません。ノートを書く前に、グループが使用するライブラリの場所に PDF を整理し、source_verification に記録します。論文がライブラリにない場合、または適切なコレクションが不明な場合は、何かを移動する前にユーザーに確認してください。
3. 論文ノートのファイル名を決定する
形式: FirstAuthor_Year_Keyword.md
- FirstAuthor = 最初の著者の姓(ASCII のみ、アクセント記号なし、スペースなし)
- Year = 4桁
- Keyword = 1~3語の記述子(CamelCase またはアンダースコア、スペースなし)
- 例:
Smith_2023_Eccentric_Training.md
重複と同一性のチェック(書き込みの前に実行します。データのサイレントロスを防ぎます):
- ベースネームのコンテンツ検索、または
test -f "<wiki_root>/papers/{filename}.md"で存在を確認します。単一のグロブが「ファイルが見つかりません」を返すのを信頼しないでください。ファイルグロブツールは存在するノートに対して偽陰性を返すことがあり、その後に盲目的なWriteを行うと、完全に伝播されたノートを上書きする可能性があります。Writeが「ファイルがまだ読み取られていません」というエラーを返した場合、それはノートが存在する証拠です。それを読み取り、その場で更新し、決してゼロから書き直さないでください。 - 既存のノートが
status: stubの場合、それが同じ論文であると仮定しないでください。 別の論文の引用コンテキストから作成されたスタブは暫定的なメタデータを持ち、時には別の論文(年が間違っている、論文と書籍の章、2つの関連論文が混同されている)であることがあります。最初に実際のソースを解決し、著者、年、ジャーナルをスタブと引用ノートの参照リストの両方と比較します。別の論文の場合は、新しいノートとして取り込み、スタブを維持するか改善します。 - 同じ論文であることが確認された場合は、その場で更新し、決して重複を作成しないでください。全文を入手した後、ファイル名がより説明的なキーワードに正当に変更される場合があります。その場合は、すべての
[[OldName]]を再リンクし、孤立したスタブを削除し、wiki-lintを再実行して壊れたリンクが残っていないことを確認します。 - Citekey 同一性ガード。 同じ論文の2つのノートは異なるファイル名を持つ可能性があるため、クリーンなベースネームプローブは同一性について何も証明しません。参考文献管理ツールがアイテムを解決したら、書き込もうとしている正確な citekey を
papers/内で検索します(grep -l '^citekey: "\?{citekey}"\?$' papers/*.md)。異なるファイル名でヒットした場合、その論文はすでに取り込まれています。そのノートを更新してください。完全一致のため、誤検出はありません。
4. 論文ノートを作成または更新する
<wiki_root>/papers/{filename}.md を templates/paper.md から書き込みます。解決されたメタデータからすべてのフロントマターフィールドを埋めます。last_verified を今日の日付に設定します(取り込みは検証イベントです)。WIKI_SCHEMA.md の分類スラッグから research_lines を割り当てます。
5. 抽出と評価
抄録、結果、考察を一度に処理し、すべてを同時に行います:
- 特定: 3~8個のドメインコンセプト(実証的構成概念、変数)と1~4個の主要メソッドを特定します。ヒューリスティックについては
references/INGEST-WORKFLOW.mdを参照。 evidence_levelの分類: 研究デザインを、WIKI_SCHEMA.mdの管理された語彙(SR-MA、RCT、cohort、...)から分類します。これは生合成レイヤーが重み付けするデザイン軸です。測定品質軸は、関連する場合は各知見にインラインで((MRI)、(anthropometric estimate))残り、フロントマターには決して入れません。- 研究ラインルーティング: 論文を
WIKI_SCHEMA.mdの研究ラインにマッチさせます。関連する内容にマッチするラインがない場合は、伝播する前にスキーマにラインを追加します(スラッグ + ラベルペアを追加。既存のラインの名前変更や削除は行わないでください)。境界線上の場合は、最も近いラインを使用し、レポートでフラグを立てます。 - コンセプト対メソッドルーティング: 実証的知見は
concepts/へ。統計ツール、研究デザイン、測定プロトコルはmethods/へ。ここで決定します。 - 純粋に方法論的なショートカット: 論文が実証的主張を行わない場合、ステップ6をスキップし、ステップ7に進みます。
5b. 伝播前のエビデンステーブル
concepts/ または methods/ のノートに到達するすべての知見(「このメソッドを使用する論文」の下の主張を含む)について、スクラッチファイル(Wiki内には決して書きません)に1行を書き込みます:
| ターゲットノート | 書き込まれる知見 | ソースからの逐語的な引用 | ページ(PDF/印刷) | セクション、テーブル、または図 |
- ソースはPDF(テーブルセルの場合はJATS)です。抄録のみまたはPDFなし: 知見のテキストに
abstract onlyとマークし、レポートにその旨を記載します。 - 具体的な内容にはそれぞれ引用が必要です: 各図、母集団、デバイス、メカニズム、名前付きエンティティ、強弱の動詞。すべてがカバーされるまで、知見を分割するか、複数の引用を使用します。
- ヒットの周囲の段落全体またはテーブル行全体を読んでください。マッチした数字だけではありません。
- テーブル、図、記号、信頼区間、±: ページをレンダリングして見てください。テキスト抽出は仮説であり、画像が証拠です。一部のPDFはテキストレイヤーでマイナス記号を失います(
-5.2%が25.2%と抽出される)、もっともらしい間違った数字を生成します。 - 欠如は積極的な検索が必要です。レイアウトテキストと非レイアウトテキストの両方で、スペルバリエーションも含めて検索し、何かを「論文は...していない」と書く前に行います。
5c. 書き込み前にテーブルをチェックする
ノートに触れる前に、すべての行をその引用に対して読み直します。サブエージェントが論文を抽出した場合は、PDF内のすべての行を、図や記号のある行だけでなく読み直します。判断すべき欠陥クラス: ソースを超えた推論、帰属エラー、間違った数字、ヘッジの喪失、サポートされていない最上級、間違ったエンティティ、捏造された詳細、省略。
- 引用がサポートしていない行は、引用が言っていることまで言い換えるか、削除します。ソースノートは証拠ではありません。同じ抽出から来ています。
- ソースのヘッジ(「かもしれない」、「そう思われる」、「~による可能性がある」)とその母集団を保持します。
- Wiki自身の解釈はWikiのものとしてラベル付けします。決してソースの行為や結論として書かないでください。
生き残った行のみがステップ6と7に進みます。
6. コンセプトノートに伝播する
ステップ5の各コンセプトについて:
concepts/{Concept_Name}.mdが存在するか確認します。- 存在する: 「Key Findings」の下に
[[paper_note]]バックリンクとともに知見を追加します。新しいリンクが発生した場合はrelated_conceptsを更新します。 - 存在しない: 最初に
references/CONCEPT-PROPAGATION.mdの作成ルールを適用します。
7. メソッドノートに伝播する
ステップ5の各メソッドについて:
methods/{Method_Name}.mdが存在するか確認します。- 存在する: 「このメソッドを使用する論文」の下に論文を追加します。
- 存在しない:
templates/method.mdから作成します。
8. 論文ノートのフロントマターを更新する
concepts_touched に作成または更新されたコンセプトノートとメソッドノートを入力します。
書き込み後の確認: concepts_touched 内のすべての名前は、concepts/ または methods/ の既存のノートに解決されなければなりません。書き込み後、各ベースネームを再確認します。解決しないものがあれば、不足しているスタブを今作成するか、名前を削除します。ぶら下がり参照はサイレントなリントドリフトになります。
8b. ソースノートを封印する
論文ノートの source_verification に検証を記録します(1行: 参考文献管理ツールのキー、日付、何を何と照合したか)。次に、知見を受け取り、その行が5cを通過した各(ノート、作品)ペアを封印します。小さなJSONスペックを書き、python <kit>/tools/seal.py spec.json --dry-run を実行し、次に --dry-run なしで実行します(形式とルールは docs/SEALS.md にあります)。抄録のみに対してチェックされた作品は封印されません。日付はシステムクロック(date +%F)から取得し、決して推定しないでください。
9. クローズアウト
3つの編集と、それに続くレポート。wiki.config.json の field_titlecase_map を使用して、新しいコンセプトまたはメソッドの正しいサブセクションを見つけます。セクションの最後にある日付が入ったキャッチオールブロックに決して追加しないでください。
index.md: インデックスが Obsidian Bases ビューを埋め込んでいる場合(設定でindex_mode: bases)、ノートごとのリストは維持しないでください。厳選された## Quick Statsカウントと関連する## Coverage by Field行のみを更新し、その後テーブルを再読み込みします(新しいWikiにはどちらのセクションもありません。追加するまで何もドリフトしないのでスキップします)。manualモードでは、ノートを正しいアルファベット順のスロットに追加します。凍結されたレガシーインデックスには決して触れないでください。- サブMOCルーティング(
WIKI_SCHEMA.md、サブMOCアーキテクチャを参照): ノートのfield+subfieldを解決し、fields/{field-slug}/MOC_{Title_Case_Underscore(subfield)}.mdを計算します(ケバブケースからタイトルケースへ、決定論的、マップ不要)。存在しない場合は、templates/submoc.mdから作成し、フィールドMOCのサブMOCインデックスに行を追加します。ノートをサブMOCの適切なセクション(コンセプトノート、メソッドノート、論文、書籍)の下に追加します。
…[翻訳のために切り詰められています]