jpskill.com
📦 その他 コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して wiki-ingest.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → wiki-ingest フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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"]
    }
  }
}

ファイルを取り込む前に:

  1. ハッシュを計算します: md5sum [file] | cut -d' ' -f1 (または Linux では sha256sum)。
  2. .manifest.json に同じハッシュを持つパスが存在するか確認します。
  3. ハッシュが一致する場合は、スキップします。「既に (変更なしで) 取り込まれています。force を使用して再取り込みしてください。」と報告します。
  4. 見つからない場合、またはハッシュが異なる場合は、取り込みを続行します。

ファイルを取り込んだ後:

  1. {hash, ingested_at, pages_created, pages_updated}.manifest.json に記録します。
  2. 更新されたマニフェストを書き戻します。

ユーザーが「force ingest」または「re-ingest」と言う場合は、差分チェックをスキップします。


URL の取り込み

トリガー: ユーザーが https:// で始まる URL を渡します。

手順:

  1. WebFetch を使用してページを Fetch します。
  2. Clean (オプション): defuddle が利用可能な場合 (which defuddle 2>/dev/null)、defuddle [url] を実行して、広告、ナビゲーション、および不要なものを削除します。通常、40〜60% のトークンを節約できます。インストールされていない場合は、生の WebFetch 出力にフォールバックします。
  3. URL パスから slug を導出 します (最後のセグメント、小文字化、スペース→ハイフン、クエリ文字列を削除)。
  4. フロントマターヘッダーを使用して、.raw/articles/[slug]-[YYYY-MM-DD].mdSave します。
    ---
    source_url: [url]
    fetched: [YYYY-MM-DD]
    ---
  5. ステップ 2 から始まる Single Source Ingest を続行します (ファイルは .raw/ にあります)。

画像/ビジョンの取り込み

トリガー: ユーザーが画像ファイルパス (.png, .jpg, .jpeg, .gif, .webp, .svg, .avif) を渡します。

手順:

  1. Read ツールを使用して画像ファイルを Read します。Claude は画像をネイティブに処理できます。

  2. 画像の内容を Describe します: すべてのテキスト (OCR) を抽出し、主要な概念、エンティティ、図、および画像に表示されるデータを識別します。

  3. 説明を .raw/images/[slug]-[YYYY-MM-DD].mdSave します。

    ---
    source_type: image
    original_file: [original path]
    fetched: YYYY-MM-DD
    ---
    # Image: [slug]
    
    [画像の内容の完全な説明、転写されたテキスト、表示されているエンティティなど]
  4. 画像がまだ vault にない場合は、_attachments/images/[slug].[ext] にコピーします。

  5. 保存された説明ファイルに対して Single Source Ingest を続行します。

ユースケース: ホワイトボードの写真、スクリーンショット、図、インフォグラフィック、ドキュメントスキャン。


単一ソースの取り込み

トリガー: ユーザーがファイルを .raw/ にドロップするか、コンテンツを貼り付けます。

手順:

  1. ソースを完全に Read します。ざっと読まないでください。
  2. ユーザーと主要なポイントを Discuss します。「何を強調すべきですか?どの程度詳細にしますか?」と尋ねます。ユーザーが「ただ取り込んでください」と言う場合は、これをスキップします。
  3. wiki/sources/ にソースの概要を Create します。references/frontmatter.md のソースフロントマタースキーマを使用します。
  4. 言及されているすべての人、組織、製品、およびリポジトリのエンティティページを Create または update します。エンティティごとに 1 ページ。
  5. 重要なアイデアとフレームワークの概念ページを Create または update します。
  6. 関連するドメインページとその _index.md サブインデックスを Update します。
  7. 全体像が変わった場合は、wiki/overview.mdUpdate します。
  8. wiki/index.mdUpdate します。すべての新しいページのエントリを追加します。
  9. この取り込みのコンテキストで wiki/hot.mdUpdate します。
  10. wiki/log.mdAppend します (新しいエントリは一番上に):
     ## [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 文。
  11. 矛盾がないか確認します。 新しい情報が既存のページと矛盾する場合は、両方のページに > [!contradiction] callout を追加します。

バッチ取り込み

トリガー: ユーザーが複数のファイルをドロップするか、「これらすべてを取り込む」と言います。

手順:

  1. 処理するすべてのファイルをリストします。開始する前にユーザーに確認します。
  2. 単一の取り込みフローに従って各ソースを処理します。ステップ 3 まで、ソース間の相互参照を延期します。
  3. すべてのソースの後: 相互参照パスを実行します。新しく取り込まれたソース間の接続を探します。
  4. 最後に、インデックス、ホットキャッシュ、およびログを一度に更新します (ソースごとではありません)。
  5. 「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:

  1. Compute a hash: md5sum [file] | cut -d' ' -f1 (or sha256sum on Linux).
  2. Check if the path exists in .manifest.json with the same hash.
  3. If hash matches, skip. Report: "Already ingested (unchanged). Use force to re-ingest."
  4. If missing or hash differs, proceed with ingest.

After ingesting a file:

  1. Record {hash, ingested_at, pages_created, pages_updated} in .manifest.json.
  2. 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:

  1. Fetch the page using WebFetch.
  2. Clean (optional): if defuddle is available (which defuddle 2>/dev/null), run defuddle [url] to strip ads, nav, and clutter. Typically saves 40-60% tokens. Fall back to raw WebFetch output if not installed.
  3. Derive slug from the URL path (last segment, lowercased, spaces→hyphens, strip query strings).
  4. Save to .raw/articles/[slug]-[YYYY-MM-DD].md with a frontmatter header:
    ---
    source_url: [url]
    fetched: [YYYY-MM-DD]
    ---
  5. 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:

  1. Read the image file using the Read tool. Claude can process images natively.

  2. Describe the image contents: extract all text (OCR), identify key concepts, entities, diagrams, and data visible in the image.

  3. 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.]
  4. Copy the image to _attachments/images/[slug].[ext] if it's not already in the vault.

  5. 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:

  1. Read the source completely. Do not skim.
  2. Discuss key takeaways with the user. Ask: "What should I emphasize? How granular?" Skip this if the user says "just ingest it."
  3. Create source summary in wiki/sources/. Use the source frontmatter schema from references/frontmatter.md.
  4. Create or update entity pages for every person, org, product, and repo mentioned. One page per entity.
  5. Create or update concept pages for significant ideas and frameworks.
  6. Update relevant domain page(s) and their _index.md sub-indexes.
  7. Update wiki/overview.md if the big picture changed.
  8. Update wiki/index.md. Add entries for all new pages.
  9. Update wiki/hot.md with this ingest's context.
  10. 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.
  11. 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:

  1. List all files to process. Confirm with user before starting.
  2. Process each source following the single ingest flow. Defer cross-referencing between sources until step 3.
  3. After all sources: do a cross-reference pass. Look for connections between the newly ingested sources.
  4. Update index, hot cache, and log once at the end (not per-source).
  5. 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.md first. If it contains the relevant context, don't re-read full pages.
  • Read wiki/index.md to 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 /wiki scaffold). 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.