context-briefing

プロジェクトコンテキスト(技術スタック・依存ライブラリ・アーキテクチャ)を読み込み、指定した期間×ジャンルの技術動向を WebSearch で収集して「うちのプロジェクトに何が関係あるか」をインパクト分析付きで返す定点観測スキル。 週次・月次の技術キャッチアップ、ライブラリアップデートの影響確認、セキュリティ動向チェック、AI駆動開発ツールの変化追跡が 必要なときに使う。「今週の iOS 周り何かあった?」「先月の AI 系でうちに関係ありそうなのは?」「うちのスタックに影響ある変化を 教えて」「先週の Swift の動向をプロジェクトと照合して」「直近1ヶ月のセキュリティ情報でうちに関係あるもの」 「技術ブリーフィングして」「キャッチアップしたい」といった場面でも必ずこのスキルを使用する。

Context Briefing — 定点観測 × インパクト分析

プロジェクトコンテキストを読み込み、指定した期間×ジャンルの技術動向を WebSearch で収集。 「うちのプロジェクトにとって何が重要か」をインパクト分析付きで届ける定点観測スキル。

deep research との違い: deep research は「テーマを深く広く調べる」。このスキルは「So what? — うちにどう関係あるか」を答える。

このスキルがやらないこと

  • 汎用的な深掘り調査: 特定トピックを深く調べるなら deep research を使う
  • コードレビュー・実装: 収集した情報を元にコードを変更することはしない
  • リアルタイム情報の保証: WebSearch の精度に依存するため、直近1日は見落としがある可能性がある
  • プロジェクトコンテキストなしの汎用ニュースまとめ: コンテキストがない場合は最低限確認してから実行する

実行モードの推定

ユーザーが期間を指定した時点で以下を推定し提案する(ユーザーが上書き可能):

期間推奨モード推奨モデル理由
直近1日QuickSonnet検索結果の要約 + ライトなインパクト評価が中心
直近1週間以上FullOpusWebSearch → 情報統合 → コンテキスト突合 → インパクト分析と多段推論が長い

進捗表示ルール

各 Phase 開始時に必ず以下を出力すること:

[Phase {Phase名} ({進行番号}/{総数})] {1行の説明}

例: [Phase 3: 情報収集 (3/6)] iOS / Swift ジャンルの WebSearch を実行中...


Quick / Full モードの実行差分

PhaseQuickFull
Phase 2 コンテキスト読み込みAGENTS.md + Package.swift のみADR/ + .claude/skills/ も含む
Phase 3 WebSearch 回数ジャンルあたり最大 2 回ジャンルあたり最大 3 回
Phase 4 インパクト分析対象上位 5 トピックに絞る全トピック
Phase 5 出力Top 5 トピックのみ全トピック

Phase 間データフロー

Phase 1 → 出力: 期間・ジャンル・モード
Phase 2 → 出力: プロジェクトコンテキストサマリー(10行以内)
Phase 3 → 出力: 収集トピックリスト(タイトル・ソース・概要 1〜3文・日付)
Phase 4 → 入力: Phase 2 サマリー + Phase 3 トピックリスト / 出力: 各トピックへの影響度・評価軸・推奨アクション
Phase 5 → 入力: Phase 4 出力 / 出力: ブリーフィング本文 + サマリー
Phase 6 → 入力: Phase 5 出力 / 出力: issue 化リスト(またはスキップ)

実行手順

Phase 1: 入力収集

AskUserQuestion は Phase 1 内で最大2問に制限する(Progressive Disclosure):

  • 1問目: 期間とジャンルを1問でまとめて確認(マルチフィールド)
  • 2問目: 推奨モードを計算して提示し、承認または上書きを確認
  • Phase 2 以降でコンテキストが不足する場合は例外的に 1問追加可(フォールバック参照)

期間(必須): 直近1日 / 1週間 / 1ヶ月 / 1年(またはフリーテキスト)

ジャンル(必須): フリーテキストで受け取る。未指定の場合は以下のサジェストを提示する:

  • iOS / Swift / SwiftUI
  • Android / Kotlin / Jetpack Compose
  • AI 駆動開発(Claude Code, Codex, MCP, Agent Skills)
  • CI/CD(GitHub Actions, Fastlane)
  • フロントエンド(React, Next.js, Tailwind)
  • バックエンド(Node.js, Go, Rust, GraphQL)
  • インフラ / クラウド(AWS, GCP, Terraform)
  • セキュリティ / コンプライアンス(PCI DSS, OWASP)

ジャンルが複数の場合、各ジャンルの深さは浅くなるトレードオフをユーザーに伝える。

期間・ジャンルを受け取ったら推奨モードを計算し、2問目の AskUserQuestion で承認を得てから Phase 2 へ進む。


Phase 2: プロジェクトコンテキストの取り込み

以下のソースを存在するもののみ Glob + Read で読み込む。なければスキップ。

ソースQuickFull読み込む内容
AGENTS.md / CLAUDE.md技術スタック、アーキテクチャ方針(スキル設定・個人情報ルールのみの CLAUDE.md は除外)
Package.swift / build.gradle依存ライブラリとバージョン
.claude/skills/導入済みスキル・ツールチェーン
ADR/ または意思決定記録過去の技術選定理由

ファイル読み込み上限: 1ファイルあたり 1000 行。超える場合は構造・技術スタック・依存ライブラリのセクションのみ抽出して要約する。

読み込んだ内容に個人情報が含まれる場合、コンテキストサマリーには汎用表現に置き換えて記載する(CLAUDE.md のルール参照)。

読み込んだ情報から以下の「プロジェクトコンテキストサマリー」を作成する(10行以内):

  • 主要技術スタック
  • 注目すべき依存ライブラリとバージョン
  • アーキテクチャの特徴
  • 現在注力している領域(README や issue から推定)

ファイルが見つからない場合: AskUserQuestion で1問だけ確認する:

「主な技術スタックを教えてください(例: Swift/SwiftUI/iOS, React/Next.js/Vercel)」


Phase 3: 情報収集

WebSearch を使って期間 × ジャンルに該当する情報を収集する。

検索戦略:

  1. ジャンルごとに最大 Quick: 2 回 / Full: 3 回 の WebSearch を実行(英語メイン + 日本語補完)
  2. references/genre-search-patterns.md の検索パターンを参考にする
  3. ソースの優先順位: 公式リリースノート / changelog > 企業エンジニアブログ > 著名個人ブログ > GitHub trending

WebSearch 上限(1実行の上限 = ジャンル数 × モード別最大回数):

  • Quick: ジャンルあたり最大 2 回
  • Full: ジャンルあたり最大 3 回
  • Claude.ai 環境(レートリミットが厳しい場合): ジャンルあたり最大 1 回に制限し、「Claude.ai 環境のため検索回数を制限しています」とユーザーに明示する

精度の注意事項(必要に応じてユーザーに明示):

  • 直近1日: 「検索インデックスの遅延で見落としがある可能性があります」
  • ニッチなジャンル: 「N件のソースしか見つかりませんでした」

Phase 4: インパクト分析

収集した情報をプロジェクトコンテキストサマリーと突合し、影響度を評価する。 評価の詳細基準は references/impact-framework.md を参照。

Quick モード: 上位 5 トピックに絞ってインパクト分析を実施する(🔴 High 優先)。

各トピックに対して:

  1. 影響度レベルを判定: 🔴 High / 🟡 Medium / 🟢 Low / ⚪ Info
  2. 評価軸を判定: 直接影響 / 間接影響 / 機会 / リスク
  3. 推奨アクションを生成

影響度レベルの基準(詳細は references/ 参照):

  • 🔴 High: 今すぐ対応が必要。放置するとブロッカーになる → issue 化を推奨
  • 🟡 Medium: 近いうちに検討すべき。計画に組み込む価値がある
  • 🟢 Low: 知っておくと良い。急ぎではないが方向性に影響
  • Info: 直接影響なし。業界動向として把握

Phase 5: ブリーフィング出力

影響度の高い順(🔴→🟡→🟢→⚪)に出力する。

Quick モード: Top 5 トピックのみ出力する。

各トピックのフォーマット:

[影響度アイコン] [影響度レベル] | [評価軸]: [トピックタイトル]
例: 🔴 High | 直接影響・リスク: Alamofire 6.0 で非同期 API が変更

📌 何が起きたか
[事実・変更内容の要約。1〜3文]

🎯 うちへの影響
[プロジェクトコンテキストと紐づけた影響分析。具体的なファイル・モジュール・設計パターンを挙げる]

⚡ 推奨アクション
🔴 High  → 具体的な対応ステップ
🟡 Medium → 検討すべき論点と選択肢
🟢 Low   → 参考リンクと一言
⚪ Info  → (推奨アクションなし)

📎 ソース: [URL または リソース名]

出力の末尾に必ず以下を追加:

---
ブリーフィングサマリー
- 期間: [期間]  ジャンル: [ジャンル]
- 収集ソース: N件 | 🔴 High: N件 / 🟡 Medium: N件 / 🟢 Low: N件 / ⚪ Info: N件

Phase 6: task-decompose 連携

🔴 High または 🟡 Medium のトピックがある場合、AskUserQuestion で確認する:

「🔴 High N件・🟡 Medium N件 のトピックがあります。issue として起票しますか?」

  • 起票する → どのトピックを issue 化するか確認し、そのトピックの「事実・うちへの影響・推奨アクション」を task-decompose スキルの Step 1 インプットとして引き継ぐ
  • スキップ → ブリーフィング完了

フォールバック

状況対処
プロジェクトコンテキストファイルが見つからないAskUserQuestion で主要技術スタックのみ確認して続行
WebSearch が失敗する利用可能な結果のみで続行。「N件の検索に失敗しました」と明示
ソースが少ない(3件未満)集まった分で続行。「N件のみ確認。精度が低い可能性があります」と明示
ジャンル未指定サジェストリストを提示して AskUserQuestion で選択を促す
期間未指定AskUserQuestion で確認する
コンテキストウィンドウ圧迫の兆候トピック数を Top 10 に絞り、推奨アクションを1〜2行に圧縮