mcpField
U
url-dump

url-dump

github.com/huytieu生産性1.3k183 回インストール6 日前に更新
リポジトリ

url-dump について

url-dumpは、Webリンクから内容や洞察を抽出し、カテゴリ別のナレッジ項目にまとめるCOGスキルです。複数URLの処理や重複確認に対応し、保存前に品質を検証します。

主な機能

  1. 01Webページの取得と内容抽出
  2. 02内容に基づくカテゴリ提案
  3. 03要約と主要な洞察の生成
  4. 04重複リンクの確認
  5. 05保存前の項目検証
  6. 06複数URLの個別処理

活用シーン

  1. 01記事を要点とともに保存
  2. 02ソフトウェアや参考資料のリンク整理
  3. 03複数URLの一括収集

インストール

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

$npx skills add https://github.com/huytieu/cog-second-brain --skill url-dump

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

詳細

COG URL ダンプスキル

目的

インテリジェントなコンテンツ抽出、分類、ユーザーのナレッジベースへの統合を通じて、生の URL を構造化された洞察に富むナレッジエントリーに変換します。洞察を自動生成しながら、すばやく保存できます。

呼び出すタイミング

  • ユーザーが保存したい URL を共有したとき
  • ユーザーが「このリンクを保存して」「これをブックマークして」「URL をダンプして」または「あとで見るために保存して」と言ったとき
  • ユーザーが URL を貼り付けて、保存したいとき
  • ユーザーがウェブ上のリソースをナレッジベースに整理したいとき

エージェントモードへの対応

00-inbox/MY-PROFILE.md のフロントマターにある agent_mode を確認します:

  • agent_mode: team の場合 — ユーザーとのやり取りは直接行いながら、コンテンツの抽出、分析、分類をサブエージェントに委任します。サブエージェントは URL のコンテンツを取得し、洞察を生成して、整理用の構造化された結果を返します。
  • agent_mode: solo(デフォルト)の場合 — 会話内ですべてを直接処理します。委任は行いません。

事前確認

実行前に、ユーザープロフィールを確認します:

  1. Vault 内で 00-inbox/MY-PROFILE.md を探します
  2. 見つからない場合:
    Welcome to COG! It looks like this is your first time.
    
    Before we start, let's quickly set up your profile (takes 2 minutes).
    
    Would you like to run onboarding first, or should I proceed with default settings?
    
  3. 見つかった場合:
    • プロフィールを読み、ユーザーの関心やプロジェクトを把握します
    • 関心事項を自動分類に活用します
    • 05-knowledge/booklets/ 内に既存のブックレットカテゴリがあるか確認します

処理の流れ

1. ユーザーとのやり取りと入力の収集
  • ユーザーから URL(単一または複数)を受け取ります
  • 必要に応じて、保存する理由についての簡単なメモも受け付けます
  • 裸の URL、Markdown リンク、メモ付きなど、あらゆる形式を受け付けます

プロンプト:

What URL(s) would you like to save?
(You can paste one or more URLs, optionally with a note about why you're saving it)
2. URL の検証と取得
  • URL の形式を検証します
  • URL にアクセスできるか確認します
  • 既存のナレッジベースに重複する URL がないか確認します
  • ウェブページのコンテンツを取得します
コンテンツの抽出

ページから以下を抽出します:

  • ページタイトル: [extracted-title]
  • メタディスクリプション: [if available]
  • 著者: [if detected]
  • 公開日: [if detected]
  • 単語数: [estimated]
  • 読了時間: [X minutes]
  • 主なコンテンツ: [extracted body text]
  • 主な見出し: [list of H1/H2s]
3. カテゴリの選択

デフォルトカテゴリ:

  • 記事・ブログ: 長文コンテンツ、チュートリアル、意見記事
  • ツール・リソース: ソフトウェア、ユーティリティ、サービス、API
  • リファレンス: ドキュメント、仕様、標準
  • 研究: 論文、調査、学術コンテンツ
  • インスピレーション: デザイン、アイデア、クリエイティブな参考資料
  • 動画・メディア: YouTube、ポッドキャスト、マルチメディア
  • ニュース・最新情報: 業界ニュース、発表
  • プロジェクト固有: 特定のプロジェクトに関連するもの(MY-PROFILE.md のプロジェクト一覧を提示します)
  • 要確認: 判断できない場合。後で分類するために保存します

カスタムカテゴリ:

  • 05-knowledge/booklets/ 内の既存のカスタムカテゴリを確認します
  • 必要に応じて、新しいカテゴリの作成を提案します

自動提案: コンテンツ分析に基づいて最も適切と思われるカテゴリを提案しますが、ユーザーが確認または変更できるようにします。

4. コンテンツの分析と処理
フェーズ 1:コンテンツの分類

以下を判断します:

  • コンテンツカテゴリ: [article|tool|reference|research|video|news|etc]
  • 主なトピック: [topic1, topic2, topic3]
  • トーン: [informative|opinion|tutorial|news|etc]
  • 品質評価: [high|medium|low]
  • 信頼性の指標: [author credentials, citations, etc]
フェーズ 2:洞察の抽出

以下を生成します:

  • 概要: [2-3 sentences]
  • 主な洞察:
    1. [Insight 1 with context]
    2. [Insight 2 with context]
    3. [Insight 3 with context]
  • 注目すべき引用: [if any stand out]
  • アクションアイテム: [practical takeaways]
フェーズ 3:関連性の評価

以下を分析します:

  • ユーザーの関心との一致度: [high|medium|low] - [which interests from profile]
  • プロジェクトとの関連性: [project-name] - [why relevant]
  • ナレッジギャップ: [yes|no] - [what gap it fills]
  • 情報の鮮度: [evergreen|current|dated]
  • 独自性: [novel|common|duplicate-adjacent]
フェーズ 4:相互参照

次との関連を特定します。

  • 関連するブックマーク: [既存の類似した保存内容]
  • 関連するブレインダンプ: [内容に関連する場合]
  • 関連するプロジェクト: [該当する場合]
  • 推奨タグ: [tag1, tag2, tag3]
5. 構造化された出力を生成する

次の構造でブックマークファイルを作成します。

---
type: "url-bookmark"
category: "[category-name]"
domain: "[source-domain.com]"
date_saved: "YYYY-MM-DD"
date_accessed: "YYYY-MM-DD HH:MM"
url: "[original-url]"
title: "[page-title]"
author: "[author-if-available]"
published: "[publish-date-if-available]"
tags: ["#bookmark", "#category-tag", "#topic-tags"]
relevance: "[high|medium|low]"
status: "unread"
related_projects: ["project1", "project2"]
confidence: "[high|medium|low]"
---

# [Title]

## Quick Summary
[2-3 sentence summary of the content]

## Key Insights
- **Insight 1:** [description with context]
- **Insight 2:** [description with context]
- **Insight 3:** [description with context]

## Why This Matters
[Connection to user's interests/projects. What makes this worth saving?]

## User Note
[Original user note if provided, otherwise omit section]

## Content Highlights
[Key excerpts or quotes from the content - 200-400 words max]

## Practical Takeaways
- [ ] [Action item 1 if applicable] 📅 [YYYY-MM-DD = date +1 week from today]
- [ ] [Action item 2 if applicable] 📅 [YYYY-MM-DD = date +1 week from today]

## Related Knowledge
- **Similar Bookmarks:** [[bookmark1]], [[bookmark2]]
- **Connected Projects:** [[project1]]
- **Related Notes:** [[note1]], [[note2]]

## Source Details
| Field | Value |
|-------|-------|
| Domain | [domain] |
| Author | [author or "Unknown"] |
| Published | [date or "Unknown"] |
| Word Count | [~X words] |
| Read Time | [~X minutes] |

## Processing Notes
- **Extracted:** [timestamp]
- **Category Confidence:** [percentage]
- **Review Needed:** [yes|no] - [reason if yes]

---

*Processed by COG URL Curator*

適切な場所に保存します。

  • 標準: 05-knowledge/booklets/[category-slug]/[title-slug]-YYYY-MM-DD.md
  • プロジェクト固有: 04-projects/[project-slug]/resources/[title-slug]-YYYY-MM-DD.md
  • 複合/不明確: 00-inbox/url-[title-slug]-YYYY-MM-DD.md
6. ツール/リソースの特別な取り扱い

ツールやソフトウェアには、拡張テンプレートを使用します。

---
type: "url-tool"
category: "tools"
domain: "[domain]"
url: "[url]"
title: "[tool-name]"
date_saved: "YYYY-MM-DD"
pricing: "[free|freemium|paid|enterprise]"
tags: ["#tool", "#category-tags"]
status: "to-evaluate"
---

# [Tool Name]

## What It Does
[1-2 sentence description]

## Key Features
- Feature 1
- Feature 2
- Feature 3

## Use Cases
- Use case 1
- Use case 2

## Pricing
[Pricing details if available]

## Why It's Relevant
[Connection to user's work/interests]

## Evaluation Status
- [ ] Sign up / try demo 📅 [YYYY-MM-DD = date +3 days from today]
- [ ] Test key features 📅 [YYYY-MM-DD = date +1 week from today]
- [ ] Compare with alternatives 📅 [YYYY-MM-DD = date +1 week from today]
- [ ] Decision: [use|pass|revisit] 📅 [YYYY-MM-DD = date +2 weeks from today]

## Notes
[Space for user's evaluation notes]

---

*Processed by COG URL Curator*
7. 一括処理

複数の URL の場合:

Processing [X] URLs...

1. [URL 1] → [category] → Saved to [path]
2. [URL 2] → [category] → Saved to [path]
3. [URL 3] → [category] → Saved to [path]

Summary:
- Articles: 2 saved
- Tools: 1 saved
- Total: 3 URLs processed
8. 完了を確認する
  • 作成したファイルを確認します
  • ユーザーに「URL saved to [file path]」と表示します
  • 簡単な概要を表示します:タイトル、カテゴリー、主な知見のプレビュー
  • 次の操作を希望するか尋ねます。
    • 別の URL を追加する
    • コンテンツを詳しく調べる
    • 特定のプロジェクトまたはブレインダンプと関連付ける

ブックレットの構成

URL は「ブックレット」(カテゴリー別のフォルダー)に整理されます。

05-knowledge/
└── booklets/
    ├── articles/
    │   ├── _index.md (category overview - auto-created)
    │   └── [article-entries].md
    ├── tools/
    │   ├── _index.md
    │   └── [tool-entries].md
    ├── reference/
    │   ├── _index.md
    │   └── [reference-entries].md
    ├── research/
    │   ├── _index.md
    │   └── [research-entries].md
    ├── inspiration/
    │   ├── _index.md
    │   └── [inspiration-entries].md
    ├── videos/
    │   ├── _index.md
    │   └── [video-entries].md
    └── [custom-category]/
        ├── _index.md
        └── [entries].md
カテゴリーインデックスのテンプレート

新しいカテゴリーを作成するときは、インデックスファイルも作成します。

---
type: "booklet-index"
category: "[category-name]"
created: "YYYY-MM-DD"
last_updated: "YYYY-MM-DD"
entry_count: 0
---

# [Category Name] Booklet

## Description
[What this category contains]

## Recent Additions
[Auto-updated list - most recent 10 entries]

## Top Entries
[Manually curated or most-accessed entries]

## Tags in This Category
[List of common tags used]

## Related Categories
- [[other-category-1]]
- [[other-category-2]]

YAML の書式要件

重要: すべての YAML フロントマターは、Obsidian 互換の適切な書式にする必要があります。

  • すべての文字列値は、二重引用符で囲む必要があります
  • 配列には引用符付き文字列を使用する必要があります:["item1", "item2", "item3"]
  • 特殊文字に対応できるよう、URL は引用符で囲む必要があります
  • ブール値は引用符で囲まないでください:true または false
  • Obsidian での解析エラーを防ぐため、YAML の構文が適切であることを確認します

例:

# CORRECT
type: "url-bookmark"
url: "https://example.com/path?query=value"
tags: ["#bookmark", "#article", "#ai"]
relevance: "high"
reviewed: false

# INCORRECT
type: url-bookmark
url: https://example.com/path?query=value
tags: [#bookmark, #article, #ai]
relevance: high
reviewed: "false"

検証プロトコル

コンテンツの正確性
  • タイトルの検証: 抽出したタイトルがページと一致していることを確認します
  • 著者の表記: 記載がある場合、著者を確認します
  • 日付の正確性: 表示されている場合、公開日を確認します
  • 要約の忠実性: 要約がコンテンツを正確に表していることを確認します
カテゴリー分けの検証
  • カテゴリーの適合性: コンテンツが選択したカテゴリーに合っていることを確認します
  • タグの関連性: タグがコンテンツを正確に説明していることを確認します
  • 関心との整合性: 関連性の評価が正確であることを確認します
  • プロジェクトとの関連性: 該当する場合、プロジェクトとの関連性を確認します
品質チェック
  • 完全性: 必須項目がすべて入力されていること
  • 書式: Markdown と YAML の構文が適切であること
  • リンク: すべての内部リンクが有効であること
  • メタデータ: フロントマターが適切な書式であること

不確実性への対応

コンテンツが不明確な場合
  • ペイウォールのあるコンテンツ: 制限事項を記載し、閲覧可能なプレビューを抽出します
  • 動的なコンテンツ: コンテンツが変更される可能性がある場合、その旨を記載します
  • 複雑なコンテンツ: 必要に応じて手動確認が必要であることを示します
  • 英語以外のコンテンツ: 言語を記載し、可能であれば翻訳を提供します
確信度の指標
  • 高い確信度(90% 以上): コンテンツが明確で、カテゴリー分けが明白
  • 中程度の確信度(70~89%): おおむね明確だが、多少の曖昧さがある
  • 低い確信度(50~69%): ユーザーの入力が必要な大きな曖昧さがある
  • 非常に低い確信度(50% 未満): 大きな不確実性があるため、インボックスに保存する

処理メモには、確信度とその根拠を必ず明記します。

ループエンジニアリング

URL の取り込みは、単一の取得と保存ではなく、品質ゲートを備えた取得・再試行ループです。共通の用語については .claude/skills/loop-engineering/SKILL.md を参照してください。

ループ(URL ごと): 取得 → 取得に失敗するか、空またはブロックされた本文が返された場合は、別の方法(https と http の切り替え、リーダーモード、アーカイブスナップショット)で再試行 → コンテンツが取得できたら品質ゲートを実行 → 保存するか、ユーザーに確認するか、「レビューが必要」フラグを付けて受信トレイに保存します。

検証(決定的):

  • 取得結果の本文が空でないこと(ペイウォールの簡易表示やエラーページではないこと)。
  • 必須フィールドが入力されていること:タイトル、少なくとも 1 つの重要な洞察、カテゴリー。
  • YAML フロントマターが有効であること(YAML の書式要件を参照)。
  • カテゴリーの信頼度がしきい値を上回っていること。約 70%を下回る場合、ループは推測で黙って決めません。

終了条件(段階的):

  • 目標達成: コンテンツを抽出し、品質ゲートに合格 → カテゴリーフォルダーに保存します。
  • 再試行上限: 約 3 回の取得試行後に停止 → 抽出できた内容を信頼度が低いフラグ付きで保存します(不確実性への対処を参照)。欠けているフィールドを作り上げてはいけません。
  • ペイウォール/ログインウォールでの強制停止: 制限事項を記録し、利用できるプレビューを取り込みます。無期限にループしてはいけません。
  • 人間へのエスカレーション: 信頼度がしきい値を下回る → 誤ったカテゴリーに保存するのではなく、最善の推測を提示し、ユーザーにカテゴリーの確認を求めます。

パターン: 反省・再試行(取得に失敗するたびに別の方法を選択)+評価器(品質ゲート)+人間参加型ループ(信頼度が低い場合のエスカレーション)。

ループ内のコンテキスト: 洞察とメタデータを抽出したら、生のページ本文を破棄します。バッチ入力の場合、各 URL を独立したループとして処理し、問題のある URL によってほかの処理が止まらないようにします。

その他のスキルとの連携

直後のフォローアップ

URL の取り込み後、次の操作を提案します:

  • /braindump - URL に関する考えを記録
  • /knowledge-consolidation - ナレッジフレームワークに統合
  • デイリーブリーフで、関連する保存済み URL を提示
相互参照

次とのつながりを自動で確認します:

  • 進行中のプロジェクト(MY-PROFILE.md から)
  • 最近のブレインダンプ
  • 競合ウォッチリストの企業(存在する場合)
  • ユーザーの関心事

成功指標

  • 取り込み速度(単一 URL で 30 秒未満)
  • ユーザーの確認を通じた正確な分類
  • 有用な洞察の抽出
  • 既存のナレッジとの適切な統合
  • 後から簡単に検索・発見できること
  • 抽出内容への高い信頼度

学習と適応

パターンの学習
  • 再訪されたブックマークを追跡
  • ユーザーの分類の好みを学習
  • エンゲージメントに基づいて関連性スコアを改善
  • ユーザーが有用だと感じた内容に基づいて洞察の抽出を改善
継続的な改善
  • 時間の経過に伴う分類精度を監視
  • ユーザーが好むタグの分類体系に適応
  • ドメイン固有の用語を学習
  • 相互参照の精度を改善

コメント