wiki-ingest
ファイルやウェブページの情報を読み込み、ObsidianのWikiにページを作成・更新し、関連情報を相互参照することで、知識を整理・蓄積する作業を効率化するSkill。
📜 元の英語説明(参考)
Ingest sources into the Obsidian wiki vault. Reads a source, extracts entities and concepts, creates or updates wiki pages, cross-references, and logs the operation. Supports files, URLs, and batch mode. Triggers on: ingest, process this source, add this to the wiki, read and file this, batch ingest, ingest all of these, ingest this url.
🇯🇵 日本人クリエイター向け解説
ファイルやウェブページの情報を読み込み、ObsidianのWikiにページを作成・更新し、関連情報を相互参照することで、知識を整理・蓄積する作業を効率化するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o wiki-ingest.zip https://jpskill.com/download/10557.zip && unzip -o wiki-ingest.zip && rm wiki-ingest.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10557.zip -OutFile "$d\wiki-ingest.zip"; Expand-Archive "$d\wiki-ingest.zip" -DestinationPath $d -Force; ri "$d\wiki-ingest.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
wiki-ingest.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
wiki-ingestフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
wiki-ingest: ソースの取り込み
ソースを読み込み、wiki を書き、すべてを相互参照します。通常、1 つのソースは 8〜15 の wiki ページに影響を与えます。
構文標準: すべての Obsidian Markdown は、適切な Obsidian Flavored Markdown を使用して記述します。Wikilink は [[Note Name]]、callout は > [!type] Title、埋め込みは ![[file]]、プロパティは YAML frontmatter として記述します。kepano/obsidian-skills プラグインがインストールされている場合は、Obsidian 構文のリファレンスとして、その正規の obsidian-markdown skill を優先してください。そうでない場合は、この skill のガイダンスに従ってください。
差分追跡
ファイルを取り込む前に、変更されていないソースを再処理しないように、.raw/.manifest.json を確認してください。
# マニフェストが存在するか確認
[ -f .raw/.manifest.json ] && echo "exists" || echo "no manifest yet"
マニフェストの形式 (存在しない場合は作成):
{
"sources": {
".raw/articles/article-slug-2026-04-08.md": {
"hash": "abc123",
"ingested_at": "2026-04-08",
"pages_created": ["wiki/sources/article-slug.md", "wiki/entities/Person.md"],
"pages_updated": ["wiki/index.md"]
}
}
}
ファイルを取り込む前に:
- ハッシュを計算します:
md5sum [file] | cut -d' ' -f1(または Linux ではsha256sum)。 .manifest.jsonに同じハッシュを持つパスが存在するか確認します。- ハッシュが一致する場合は、スキップします。「既に (変更なしで) 取り込まれています。
forceを使用して再取り込みしてください。」と報告します。 - 見つからない場合、またはハッシュが異なる場合は、取り込みを続行します。
ファイルを取り込んだ後:
{hash, ingested_at, pages_created, pages_updated}を.manifest.jsonに記録します。- 更新されたマニフェストを書き戻します。
ユーザーが「force ingest」または「re-ingest」と言う場合は、差分チェックをスキップします。
URL の取り込み
トリガー: ユーザーが https:// で始まる URL を渡します。
手順:
- WebFetch を使用してページを Fetch します。
- Clean (オプション):
defuddleが利用可能な場合 (which defuddle 2>/dev/null)、defuddle [url]を実行して、広告、ナビゲーション、および不要なものを削除します。通常、40〜60% のトークンを節約できます。インストールされていない場合は、生の WebFetch 出力にフォールバックします。 - URL パスから slug を導出 します (最後のセグメント、小文字化、スペース→ハイフン、クエリ文字列を削除)。
- フロントマターヘッダーを使用して、
.raw/articles/[slug]-[YYYY-MM-DD].mdに Save します。--- source_url: [url] fetched: [YYYY-MM-DD] --- - ステップ 2 から始まる Single Source Ingest を続行します (ファイルは
.raw/にあります)。
画像/ビジョンの取り込み
トリガー: ユーザーが画像ファイルパス (.png, .jpg, .jpeg, .gif, .webp, .svg, .avif) を渡します。
手順:
-
Read ツールを使用して画像ファイルを Read します。Claude は画像をネイティブに処理できます。
-
画像の内容を Describe します: すべてのテキスト (OCR) を抽出し、主要な概念、エンティティ、図、および画像に表示されるデータを識別します。
-
説明を
.raw/images/[slug]-[YYYY-MM-DD].mdに Save します。--- source_type: image original_file: [original path] fetched: YYYY-MM-DD --- # Image: [slug] [画像の内容の完全な説明、転写されたテキスト、表示されているエンティティなど] -
画像がまだ vault にない場合は、
_attachments/images/[slug].[ext]にコピーします。 -
保存された説明ファイルに対して Single Source Ingest を続行します。
ユースケース: ホワイトボードの写真、スクリーンショット、図、インフォグラフィック、ドキュメントスキャン。
単一ソースの取り込み
トリガー: ユーザーがファイルを .raw/ にドロップするか、コンテンツを貼り付けます。
手順:
- ソースを完全に Read します。ざっと読まないでください。
- ユーザーと主要なポイントを Discuss します。「何を強調すべきですか?どの程度詳細にしますか?」と尋ねます。ユーザーが「ただ取り込んでください」と言う場合は、これをスキップします。
wiki/sources/にソースの概要を Create します。references/frontmatter.mdのソースフロントマタースキーマを使用します。- 言及されているすべての人、組織、製品、およびリポジトリのエンティティページを Create または update します。エンティティごとに 1 ページ。
- 重要なアイデアとフレームワークの概念ページを Create または update します。
- 関連するドメインページとその
_index.mdサブインデックスを Update します。 - 全体像が変わった場合は、
wiki/overview.mdを Update します。 wiki/index.mdを Update します。すべての新しいページのエントリを追加します。- この取り込みのコンテキストで
wiki/hot.mdを Update します。 wiki/log.mdに Append します (新しいエントリは一番上に):## [YYYY-MM-DD] ingest | Source Title - Source: `.raw/articles/filename.md` - Summary: [[Source Title]] - Pages created: [[Page 1]], [[Page 2]] - Pages updated: [[Page 3]], [[Page 4]] - Key insight: 何が新しいかについての 1 文。- 矛盾がないか確認します。 新しい情報が既存のページと矛盾する場合は、両方のページに
> [!contradiction]callout を追加します。
バッチ取り込み
トリガー: ユーザーが複数のファイルをドロップするか、「これらすべてを取り込む」と言います。
手順:
- 処理するすべてのファイルをリストします。開始する前にユーザーに確認します。
- 単一の取り込みフローに従って各ソースを処理します。ステップ 3 まで、ソース間の相互参照を延期します。
- すべてのソースの後: 相互参照パスを実行します。新しく取り込まれたソース間の接続を探します。
- 最後に、インデックス、ホットキャッシュ、およびログを一度に更新します (ソースごとではありません)。
- 「N 個のソースを処理しました。X 個のページを作成し、Y 個のページを更新しました。私が見つけた主な接続は次のとおりです。」と報告します。
バッチ取り込みはインタラクティブ性が低くなります。30 以上のソースの場合、かなりの処理時間が予想されます。10 個のソースごとにユーザーに確認してください。
コンテキストウィンドウの規律
トークンの予算が重要です。取り込み中は次のルールに従ってください。
- 最初に
wiki/hot.mdを Read します。関連するコンテキストが含まれている場合は、完全なページを再 Read しないでください。 - 新しいページを作成する前に、
wiki/index.mdを Read して既存のページを見つけます。 - 取り込みごとに 3〜5 個の既存のページのみを Read します。10 個以上必要な場合は、広すぎる範囲を Read しています。
- 外科的な編集には PATCH を使用します。1 つのフィールドを更新するためだけにファイル全体を再 Read しないでください。
- wiki ページを短く保ちます。最大 100〜300 行。ページが 300 行を超えて大きくなる場合は、分割します。
- 検索 (
/search/simple/) を使用して、完全なページを Read しなくても特定のコンテンツを見つけます。
矛盾
[!note] カスタム callout の依存関係 以下で使用されている
[!contradiction]callout タイプは、.obsidian/snippets/vault-colors.cssで定義されている カスタム callout です ( `/wi
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
wiki-ingest: Source Ingestion
Read the source. Write the wiki. Cross-reference everything. A single source typically touches 8-15 wiki pages.
Syntax standard: Write all Obsidian Markdown using proper Obsidian Flavored Markdown. Wikilinks as [[Note Name]], callouts as > [!type] Title, embeds as ![[file]], properties as YAML frontmatter. If the kepano/obsidian-skills plugin is installed, prefer its canonical obsidian-markdown skill for Obsidian syntax reference. Otherwise, follow the guidance in this skill.
Delta Tracking
Before ingesting any file, check .raw/.manifest.json to avoid re-processing unchanged sources.
# Check if manifest exists
[ -f .raw/.manifest.json ] && echo "exists" || echo "no manifest yet"
Manifest format (create if missing):
{
"sources": {
".raw/articles/article-slug-2026-04-08.md": {
"hash": "abc123",
"ingested_at": "2026-04-08",
"pages_created": ["wiki/sources/article-slug.md", "wiki/entities/Person.md"],
"pages_updated": ["wiki/index.md"]
}
}
}
Before ingesting a file:
- Compute a hash:
md5sum [file] | cut -d' ' -f1(orsha256sumon Linux). - Check if the path exists in
.manifest.jsonwith the same hash. - If hash matches, skip. Report: "Already ingested (unchanged). Use
forceto re-ingest." - If missing or hash differs, proceed with ingest.
After ingesting a file:
- Record
{hash, ingested_at, pages_created, pages_updated}in.manifest.json. - Write the updated manifest back.
Skip delta checking if the user says "force ingest" or "re-ingest".
URL Ingestion
Trigger: user passes a URL starting with https://.
Steps:
- Fetch the page using WebFetch.
- Clean (optional): if
defuddleis available (which defuddle 2>/dev/null), rundefuddle [url]to strip ads, nav, and clutter. Typically saves 40-60% tokens. Fall back to raw WebFetch output if not installed. - Derive slug from the URL path (last segment, lowercased, spaces→hyphens, strip query strings).
- Save to
.raw/articles/[slug]-[YYYY-MM-DD].mdwith a frontmatter header:--- source_url: [url] fetched: [YYYY-MM-DD] --- - Proceed with Single Source Ingest starting at step 2 (file is now in
.raw/).
Image / Vision Ingestion
Trigger: user passes an image file path (.png, .jpg, .jpeg, .gif, .webp, .svg, .avif).
Steps:
-
Read the image file using the Read tool. Claude can process images natively.
-
Describe the image contents: extract all text (OCR), identify key concepts, entities, diagrams, and data visible in the image.
-
Save the description to
.raw/images/[slug]-[YYYY-MM-DD].md:--- source_type: image original_file: [original path] fetched: YYYY-MM-DD --- # Image: [slug] [Full description of image contents, transcribed text, entities visible, etc.] -
Copy the image to
_attachments/images/[slug].[ext]if it's not already in the vault. -
Proceed with Single Source Ingest on the saved description file.
Use cases: whiteboard photos, screenshots, diagrams, infographics, document scans.
Single Source Ingest
Trigger: user drops a file into .raw/ or pastes content.
Steps:
- Read the source completely. Do not skim.
- Discuss key takeaways with the user. Ask: "What should I emphasize? How granular?" Skip this if the user says "just ingest it."
- Create source summary in
wiki/sources/. Use the source frontmatter schema fromreferences/frontmatter.md. - Create or update entity pages for every person, org, product, and repo mentioned. One page per entity.
- Create or update concept pages for significant ideas and frameworks.
- Update relevant domain page(s) and their
_index.mdsub-indexes. - Update
wiki/overview.mdif the big picture changed. - Update
wiki/index.md. Add entries for all new pages. - Update
wiki/hot.mdwith this ingest's context. - Append to
wiki/log.md(new entries at the TOP):## [YYYY-MM-DD] ingest | Source Title - Source: `.raw/articles/filename.md` - Summary: [[Source Title]] - Pages created: [[Page 1]], [[Page 2]] - Pages updated: [[Page 3]], [[Page 4]] - Key insight: One sentence on what is new. - Check for contradictions. If new info conflicts with existing pages, add
> [!contradiction]callouts on both pages.
Batch Ingest
Trigger: user drops multiple files or says "ingest all of these."
Steps:
- List all files to process. Confirm with user before starting.
- Process each source following the single ingest flow. Defer cross-referencing between sources until step 3.
- After all sources: do a cross-reference pass. Look for connections between the newly ingested sources.
- Update index, hot cache, and log once at the end (not per-source).
- Report: "Processed N sources. Created X pages, updated Y pages. Here are the key connections I found."
Batch ingest is less interactive. For 30+ sources, expect significant processing time. Check in with the user after every 10 sources.
Context Window Discipline
Token budget matters. Follow these rules during ingest:
- Read
wiki/hot.mdfirst. If it contains the relevant context, don't re-read full pages. - Read
wiki/index.mdto find existing pages before creating new ones. - Read only 3-5 existing pages per ingest. If you need 10+, you are reading too broadly.
- Use PATCH for surgical edits. Never re-read an entire file just to update one field.
- Keep wiki pages short. 100-300 lines max. If a page grows beyond 300 lines, split it.
- Use search (
/search/simple/) to find specific content without reading full pages.
Contradictions
[!note] Custom callout dependency The
[!contradiction]callout type used below is a custom callout defined in.obsidian/snippets/vault-colors.css(auto-installed by/wikiscaffold). It renders with reddish-brown styling and an alert-triangle icon when the snippet is enabled. If the snippet is missing, Obsidian falls back to default callout styling, so the page still works without the visual flourish. See [[skills/wiki/references/css-snippets.md]] for the four custom callouts (contradiction,gap,key-insight,stale).
When new info contradicts an existing wiki page:
On the existing page, add:
> [!contradiction] Conflict with [[New Source]]
> [[Existing Page]] claims X. [[New Source]] says Y.
> Needs resolution. Check dates, context, and primary sources.
On the new source summary, reference it:
> [!contradiction] Contradicts [[Existing Page]]
> This source says Y, but existing wiki says X. See [[Existing Page]] for details.
Do not silently overwrite old claims. Flag and let the user decide.
What Not to Do
- Do not modify anything in
.raw/. These are immutable source documents. - Do not create duplicate pages. Always check the index and search before creating.
- Do not skip the log entry. Every ingest must be recorded.
- Do not skip the hot cache update. It is what keeps future sessions fast.