mcpField
W
weekly-digest

weekly-digest

github.com/glebis生産性40191 回インストール1 日前に更新
リポジトリ

weekly-digest について

weekly-digestは、特定トピックを追う研究者や実務者向けに、業界調査を採点付きダイジェストにまとめるスキルです。範囲設定、検索、出典確認、評価を行い、候補一覧と選定記事を作成します。HTMLレポートも任意で生成できます。

主な機能

  1. 01トピックと地域を指定した最新情報の検索
  2. 02候補情報の出典確認
  3. 03五つの基準による採点と順位付け
  4. 04候補一覧、選定ダイジェスト、失敗ログの作成
  5. 05Obsidianへの任意出力とHTMLレポート生成

活用シーン

  1. 01業界トピックの週次追跡
  2. 02関連性や技術的な深さによるニュース比較
  3. 03ダイジェストのObsidianへの保存
  4. 04出典確認と検索失敗の記録確認

インストール

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

$npx skills add https://github.com/glebis/claude-skills --skill weekly-digest

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

同梱ファイルsettings.example.jsonsettings.json

詳細

週刊ダイジェスト

スコア付け済みで、出典を検証した業界ダイジェストを作成する、調査から公開までのパイプラインです。ワークフローは、初期化、範囲設定、調査、検証、スコア付け、出力、プレゼンテーションの7つのフェーズで構成されています。

フェーズ 0:初期化

~/.claude/skills/weekly-digest/settings.json を読み込みます。状態は次の2通りです。

状態 A — ファイルが存在しない、または subjects が空で、ファイルに version フィールドがない(新規インストール): AskUserQuestion ツールを使って、構造化された1つのプロンプトで必要な設定をすべて収集し、オンボーディングを実行します。

AskUserQuestion({
  questions: [
    {
      question: "What topic do you want to track weekly?",
      header: "Topic",
      options: [
        { label: "Agent orchestration", description: "Multi-agent frameworks, enterprise deployments, governance" },
        { label: "Design innovation", description: "Design tools, AI-design convergence, award-winning products" },
        { label: "Climate tech", description: "Clean energy, carbon capture, sustainability startups" },
        { label: "AI regulation", description: "EU AI Act, governance frameworks, copyright disputes" }
      ],
      multiSelect: false
    },
    {
      question: "Any geographic focus for sources?",
      header: "Geography",
      options: [
        { label: "Global (no filter)", description: "Include sources from all regions" },
        { label: "Europe, UK, Asia — not US", description: "Deprioritize American sources" },
        { label: "Europe only", description: "EU and UK sources preferred" },
        { label: "Asia-Pacific", description: "Japan, Korea, China, Singapore, India, Australia" }
      ],
      multiSelect: false
    },
    {
      question: "How many top items should the digest include?",
      header: "Digest size",
      options: [
        { label: "5 items (Recommended)", description: "Good balance of depth and brevity" },
        { label: "3 items", description: "Quick scan, only the best" },
        { label: "10 items", description: "Comprehensive coverage" }
      ],
      multiSelect: false
    },
    {
      question: "Where should output files go?",
      header: "Output",
      options: [
        { label: "output/ (Recommended)", description: "Relative to current working directory" },
        { label: "~/Digests/", description: "Home directory, shared across projects" }
      ],
      multiSelect: false
    }
  ]
})

ユーザーのコンテキストをメモリやプロフィールから把握している場合は、それに合わせて選択肢の例を調整してください。ユーザーはどの質問でも、いつでも「その他」を選んでカスタム値を入力できます。

回答を受け取ったら:

  1. トピックを output_prefix 用のスラッグに変換します(小文字、ハイフン区切り、スペースなし。例:「Agent orchestration」→「agent-orch」)。
  2. 地理的な対象範囲を geo_focus に変換します(「Global」の場合は null、それ以外は文字列)。
  3. ダイジェストのサイズに関する回答から top_n を解析します(3、5、または10)。
  4. すべてのデフォルト値と新しい対象を含む設定ファイル全体を書き込みます。
    { "version": 1, "top_n": 5, "target_candidates": 20, "lookback_days": 7,
      "output_dir": "output", "language": "en",
      "weights": { "novelty": 1, "relevance": 1, "slopiness": 1, "technical": 1, "feasibility": 1 },
      "obsidian_vault": null, "subjects": [{ ... }] }
    
  5. 続行する前に output_dir が存在することを確認します(必要に応じて作成します)。
  6. 次のように確認します:「保存しました。対象を追加するには /weekly-digest add [topic] を実行してください。」
  7. 新しく設定した対象を使ってフェーズ 1 に進みます。

/weekly-digest add でも同じ AskUserQuestion のパターンを使用し、トピック、地理的な対象範囲を尋ねて、生成されたスラッグを確認します。

状態 B — subjects が存在し、ユーザーが引数なしで /weekly-digest を実行した場合: すべての対象を順番に実行します。

subjects リストが空で、version フィールドが存在する場合(ユーザーが意図的に対象をクリアした場合): 自動でオンボーディングを開始しないでください。次のように応答します:「設定済みの対象はありません。/weekly-digest add [topic] で追加してください。」

設定スキーマの全体については、スキルディレクトリにある settings.example.json を参照してください。

設定

設定は ~/.claude/skills/weekly-digest/settings.json にあります。

設定スキーマ
{
  "version": 1,
  "top_n": 5,
  "target_candidates": 20,
  "lookback_days": 7,
  "output_dir": "output",
  "language": "en",
  "weights": {
    "novelty": 1,
    "relevance": 1,
    "slopiness": 1,
    "technical": 1,
    "feasibility": 1
  },
  "obsidian_vault": null,
  "subjects": [
    {
      "topic": "agent orchestration",
      "geo_focus": "European, UK, Asian — not American",
      "output_prefix": "agent-orch"
    }
  ]
}

subjects 以外のすべてのフィールドは任意です。キーがない場合は、上記のデフォルト値が使用されます。output_prefix は小文字のハイフン区切りスラッグ(スペースなし)にする必要があります。

対象の管理
  • /weekly-digest config — 現在の設定を表示します
  • /weekly-digest add [topic] — 新しいデフォルト対象を対話形式で追加します(地理的な対象範囲と出力プレフィックスを尋ねます)
  • /weekly-digest remove [topic] — デフォルト設定から対象を削除します
  • /weekly-digest(引数なし)— すべてのデフォルト対象を順番に実行し、それぞれについて個別のファイル一式を作成します
  • /weekly-digest [topic] — 単一のトピックを一度限りで実行します(デフォルト設定は無視します)
設定リファレンス
KeyDefaultWhat it does
top_n5ダイジェストに表示する項目数
target_candidates20調査で目指す候補数
lookback_days7何日前までを検索するか(クエリに日付範囲として追加されます)
output_dir"output"生成ファイルのディレクトリ(cwd からの相対パス)
language"en"優先するソース言語。一致しないソースは優先度が下がります
weightsall 1.0全体スコアの計算式で使う、各パラメーターの倍率
obsidian_vaultnullObsidian ボルトのパス。設定すると、ダイジェストが {vault}/Digests/YYYYMMDD-{prefix}.md にコピーされます

フェーズ 1:範囲設定

ユーザーのリクエストから、以下を解析します。

  • トピック(必須、または設定から取得):例:「agent orchestration」、「quantum computing」、「climate tech」
  • 地理的な対象範囲(任意、または設定から取得):例:「欧州、英国、アジア — 米国は対象外」。デフォルト:フィルターなし

ファイル名に使う本日の日付を自動検出します(YYYYMMDD 形式)。

ユーザーが「AI」のような曖昧なトピックを指定した場合は、範囲を絞るよう求めてください。広すぎるトピックでは、一般的な結果しか得られません。

フェーズ 2:リサーチ

トピックのさまざまな側面をカバーできるよう、4~6 件の WebSearch クエリを並行して実行します。目標は target_candidates 件のユニークな候補(デフォルトは 20 件)です。lookback_days を使って対象期間を設定し、設定した期間に合わせてクエリに月と年を含めます。検索は次のような形式にします。

クエリのパターン検出できる内容
[topic] breakthrough announcements [month] [year]大規模な発表、製品リリース
[topic] startup funding [year] [geo]資金調達、新規参入企業
[topic] open source release [year]OSS フレームワーク、ツール
[topic] research paper arxiv [year]学術的な貢献
[topic] enterprise production [year] [geo]実運用での導入、事例
[topic] regulation governance [year] [geo]政策、コンプライアンス、標準

地域が指定されている場合は、クエリに地域を示す語句を追加し、対象地域に特化した検索も行います。language が設定されている場合は、その言語の情報源を優先します。

検索結果から重複を除外します。多様性を目指してください。同じ種類の情報源(市場予測のみ、プレスリリースのみなど)で候補が占められている場合は、候補群として採用しません。次の 6 カテゴリのうち、少なくとも 3 つが含まれていることを確認します。

候補が 15 件未満の場合: 1 つのクエリから年や月の条件を外して、検索を再実行します。それでも 15 件未満の場合は、見つかった候補で進め、不足していることを raw ファイルのヘッダーに記録します。

フェーズ 3:情報源の検証

次の事前スクリーニング基準に基づき、検証する候補を上位 8~10 件選びます。検索結果のスニペットに、具体的な個人名または組織名、具体的な日付、バージョン番号、金額のいずれかが含まれる項目を選びます。最上級の表現や曖昧な表現しかない項目は優先度を下げます。

WebFetch を使って一次情報源を確認し、スロップの兆候を調べます。

危険信号(スロップ度が高い):

  • 名前のある人物による直接引用がない
  • 具体的な日付、取引条件、技術的な詳細がない
  • 出典の明記がない、エッセイ風の構成
  • 検証先へのリンクがない「都合よく選ばれた指標」
  • 将来の日付を事実として提示している(推測的な内容)
  • 「期待される」「革命を起こす見込み」「画期的」といった表現

好ましい兆候(スロップ度が低い):

  • 名前のある経営幹部による直接引用
  • 具体的な日付、金額、バージョン番号
  • 公式プレスリリース、政府機関の情報源、arXiv
  • 会場と日付が記載されたカンファレンスの発表
  • 顧客名と指標を明記した事例

二次情報源にスロップの兆候があっても、元の出来事が実際にあった可能性がある場合は、一次情報源(企業ブログ、公式プレスリリース、arXiv の要旨)を確認します。最も信頼性の高い情報源を採点し、最も質の低い情報源を採点しないでください。

WebFetch に失敗した場合(ペイウォール、403、タイムアウト、内容が空):採点メモに失敗を記録し、品質が不明なためスロップ度を控えめに 5 として採点し、次に進みます。失敗ログには失敗した URL を記録します。

フェーズ 4:採点

各候補を、次の 5 つの項目について 0~10 点で評価します。

項目評価する内容0 点10 点
新規性どれほど新しいか、前例がないか古いニュース、漸進的な進歩世界初、パラダイムシフト
関連性ユーザーにどれほど関連するか無関係な業種ユーザーの業務に直接役立つ
スロップ度情報源がスロップである可能性信頼できる一次情報源純粋な AI スロップ、または SEO 向けの埋め草
技術性技術的な深さ技術的な内容が皆無詳細なアーキテクチャ、リファレンス実装
実現可能性実際のものか、推測にすぎないかSF、実体のない計画本番環境で稼働中

スロップ度の基準: 0 = 検証済みで信頼できる情報源。10 = 純粋なスロップ。スコア計算式では反転させ、スロップ度が低い項目ほど高いスコアになるようにします。

総合スコアの計算式
Overall = (w₁·Novelty + w₂·Relevance + w₃·(10 - Slopiness) + w₄·Technical + w₅·Feasibility) / (w₁ + w₂ + w₃ + w₄ + w₅)

settings.json のキーから計算式の記号への対応:

  • w₁ = weights.novelty
  • w₂ = weights.relevance
  • w₃ = weights.slopiness
  • w₄ = weights.technical
  • w₅ = weights.feasibility

デフォルトではすべて 1.0 で、単純平均になります。

関連性スコアの基準

関連性はユーザーによって異なります。メモリ/プロフィールでコンテキストを確認してください。プロフィールがない場合は、技術実務者向けに次の基準を使用してください。

  • 10 — 今日から使える動作するコード、API、またはリファレンス実装がある
  • 7 — 1週間以内に採用できる手法やツールについて説明している
  • 5 — 実践に役立つポイントを含む有益なトレンド情報である
  • 3 — 興味深いが、ほとんどの実務者にとっては関連性が薄い
  • 0 — 実践に役立つ要素のない市場分析または予測である

フェーズ 5:出力ファイル

設定された output_dir(デフォルト:output/、cwd からの相対パス)にファイルを生成します。必要に応じてディレクトリを作成してください。作成に失敗した場合(権限、無効なパスなど)は、書き込みを行う前に明確なエラーを出して中止してください。

すべての実行でのスラッグ規則: すべての実行には {prefix} スラッグがあります。設定ベースの対象では、対象設定の output_prefix を使用します。単一トピックの単発実行では、フェーズ 0 のステップ 3 と同じ規則でトピックからスラッグを生成します(小文字、ハイフン区切り、スペースなし。例:「quantum computing」→「quantum-computing」)。

ファイル名(常にプレフィックスを使用):

  • YYYYMMDD-{prefix}-raw.md
  • YYYYMMDD-{prefix}-digest.md
  • YYYYMMDD-{prefix}-failures.md(失敗がある場合のみ)
  • YYYYMMDD-{prefix}-report.html(フェーズ 6 で生成)
Raw ファイル(*-raw.md)

次の項目を含むすべての候補(目標:20 件以上):

  • タイトルと 1~2 文の説明
  • スコア表(5 つのパラメーターすべてと総合スコア。デフォルト以外の重みも含む)
  • スコアの根拠を説明するメモ
  • ソースリンク
  • 最下部に総合スコア順で順位付け
Digest ファイル(*-digest.md)

総合スコアで選んだ上位 top_n 件(デフォルト:5 件)。各項目に次を含めます:

  • タイトル
  • 2 文の要約(誇張を避けて情報を伝え、具体的な事実を含める)
  • 5 つのパラメーターすべてのスコアをインラインで表示
  • ソースリンク

冒頭に、選定方法を簡潔に説明し、Raw ファイルへのリンクを示すメモを含めます。

Failure log(*-failures.md)

次の項目を別ファイルに記録します:

  • WebFetch が失敗した URL(エラー種別を含む)
  • 結果が 5 件未満だったクエリ
  • slopiness が 8 を超えたため除外した項目
  • 不足に関するメモ(見つかった候補が目標件数に満たない場合)

記録する失敗がある場合にのみ、このファイルを作成してください。

差分モード

同じ対象の以前の Digest が存在する場合は比較します。以前の Digest を探すには、output_dir 内で *-{prefix}-digest.md に一致するファイルをすべて一覧表示し、YYYYMMDD の日付プレフィックスを解析します。今日の日付のファイルがすでに存在する場合(同日中の再実行)は、それを以前のバージョンとして扱い、新しいファイルを書き込む前に YYYYMMDD-{prefix}-digest.prev.md に名前を変更します。それ以外の場合は、今日より前の日付の中で最も新しいファイルを選択します。次のように比較します:

  • 両方の実行に含まれる項目 → 新しい Digest で 継続 と表示
  • 新しい実行にのみ含まれる項目 → 新規 と表示
  • 対象から外れた項目 → Raw ファイルの末尾に「以前は順位に入っていたが、今回は表示されていない」と記載
Obsidian エクスポート

settings.json で obsidian_vault が設定されている場合、生成後に Digest ファイルを {obsidian_vault}/Digests/YYYYMMDD-{prefix}.md にコピーします(出力ファイルと同じ {prefix} スラッグを使用)。必要に応じて Digests/ ディレクトリを作成します。

フェーズ 6:プレゼンテーション

/tufte-report スキルを呼び出し、Tufte スタイルの HTML レポートを生成します。tufte-report スキルは ~/.claude/skills/tufte-report/ にインストールされている必要があります。利用できない場合は、このフェーズをスキップし、ユーザーに次のように伝えてください:「HTML レポートの生成には、github.com/glebis/claude-skills から tufte-report スキルをインストールしてください。」

レポートには次を含めます:

  1. サマリーカード — 上位 top_n 件を総合スコア付きの順位カードとして表示
  2. 詳細セクション — 各項目の 2 文の要約と、5 つのパラメーターすべての横棒スコア
  3. 候補一覧表 — すべての候補を総合スコア順に並べ、すべてのパラメーター値を表示
  4. 方法論セクション — ソースの検証方法、slopiness の意味、使用した重み

レポートを {output_dir}/YYYYMMDD-{prefix}-report.html として保存し、ブラウザーで開きます。

実行例

/weekly-digest agent orchestration
/weekly-digest climate tech, focus on European and Asian news
/weekly-digest config
/weekly-digest add quantum computing
/weekly-digest remove design innovation
/weekly-digest                          # runs all saved subjects

出力品質チェックリスト

結果を提示する前に、次の項目を確認してください。

  • 生ファイルに target_candidates 件以上ある(不足している場合は、その旨を記載)
  • 3 種類以上の異なるソースタイプがある(ニュース、学術、公式、資金調達)
  • 上位の候補を WebFetch でソース確認している
  • 上位 top_n の項目にスロッピネスが 6 を超えるものがない。ある場合は除外し、次の順位の項目を繰り上げる(WebFetch の失敗によるスロッピネス 5 の項目は許容されます。明らかに粗雑なソースである 7 以上の項目のみ除外します)
  • すべての項目に有効なソースリンクがある
  • 2 文の要約に、曖昧な主張ではなく具体的な事実が含まれている
  • 失敗が発生した場合は、失敗ログを作成している
  • 前回のダイジェストがある場合は、差分注釈を追加している
  • ボールトのパスが設定されている場合は、Obsidian へのエクスポートを完了している

コメント