context-briefing
プロジェクトコンテキスト(技術スタック・依存ライブラリ・アーキテクチャ)を読み込み、指定した期間×ジャンルの技術動向を WebSearch で収集して「うちのプロジェクトに何が関係あるか」をインパクト分析付きで返す定点観測スキル。 週次・月次の技術キャッチアップ、ライブラリアップデートの影響確認、セキュリティ動向チェック、AI駆動開発ツールの変化追跡が 必要なときに使う。「今週の iOS 周り何かあった?」「先月の AI 系でうちに関係ありそうなのは?」「うちのスタックに影響ある変化を 教えて」「先週の Swift の動向をプロジェクトと照合して」「直近1ヶ月のセキュリティ情報でうちに関係あるもの」 「技術ブリーフィングして」「キャッチアップしたい」といった場面でも必ずこのスキルを使用する。
Context Briefing — 定点観測 × インパクト分析
プロジェクトコンテキストを読み込み、指定した期間×ジャンルの技術動向を WebSearch で収集。 「うちのプロジェクトにとって何が重要か」をインパクト分析付きで届ける定点観測スキル。
deep research との違い: deep research は「テーマを深く広く調べる」。このスキルは「So what? — うちにどう関係あるか」を答える。
このスキルがやらないこと
- 汎用的な深掘り調査: 特定トピックを深く調べるなら deep research を使う
- コードレビュー・実装: 収集した情報を元にコードを変更することはしない
- リアルタイム情報の保証: WebSearch の精度に依存するため、直近1日は見落としがある可能性がある
- プロジェクトコンテキストなしの汎用ニュースまとめ: コンテキストがない場合は最低限確認してから実行する
実行モードの推定
ユーザーが期間を指定した時点で以下を推定し提案する(ユーザーが上書き可能):
| 期間 | 推奨モード | 推奨モデル | 理由 |
|---|---|---|---|
| 直近1日 | Quick | Sonnet | 検索結果の要約 + ライトなインパクト評価が中心 |
| 直近1週間以上 | Full | Opus | WebSearch → 情報統合 → コンテキスト突合 → インパクト分析と多段推論が長い |
進捗表示ルール
各 Phase 開始時に必ず以下を出力すること:
[Phase {Phase名} ({進行番号}/{総数})] {1行の説明}
例: [Phase 3: 情報収集 (3/6)] iOS / Swift ジャンルの WebSearch を実行中...
Quick / Full モードの実行差分
| Phase | Quick | Full |
|---|---|---|
| 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 で読み込む。なければスキップ。
| ソース | Quick | Full | 読み込む内容 |
|---|---|---|---|
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 を使って期間 × ジャンルに該当する情報を収集する。
検索戦略:
- ジャンルごとに最大 Quick: 2 回 / Full: 3 回 の WebSearch を実行(英語メイン + 日本語補完)
references/genre-search-patterns.mdの検索パターンを参考にする- ソースの優先順位: 公式リリースノート / 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 優先)。
各トピックに対して:
- 影響度レベルを判定: 🔴 High / 🟡 Medium / 🟢 Low / ⚪ Info
- 評価軸を判定: 直接影響 / 間接影響 / 機会 / リスク
- 推奨アクションを生成
影響度レベルの基準(詳細は 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行に圧縮 |