一键导入
codepatrol
リポジトリのセキュリティ調査を領域ごとに進める。 調査対象リストと観点リストに基づき、未調査の領域を選んで調査し、レポートを出力する。 複数sessionにまたがる長期作業を想定し、現状を確認して続きの作業を行う。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
リポジトリのセキュリティ調査を領域ごとに進める。 調査対象リストと観点リストに基づき、未調査の領域を選んで調査し、レポートを出力する。 複数sessionにまたがる長期作業を想定し、現状を確認して続きの作業を行う。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
PRのレビュー報告書を作成する。bugや脆弱性の調査だけでなく、exportされた対話コンテキスト・PR概要欄・実装されたコードの整合性を確認し、実装者の正気を疑う。 ユーザーが「PRのレビュー報告書を書いて」「対話コンテキストと共にコードレビューして」「このPRの正気を疑って」と言った時に使用する。
対話コンテキストをexportする。 会話で共有された目的・意図・設計判断・制約条件を `.dev/contexts/` ディレクトリに書き出し、PRが存在する場合はPRコメントにも投稿する。次の作業者(レビュワー、別セッションのAI、バグハンティングのAIなど)に引き継ぐ。 ユーザーが「コンテキストを書き出して」「対話コンテキストをexport」「会話した内容を.devに保存して」と言った時に使用する。
対話コンテキストをimportする。 `.dev/contexts/` ディレクトリに保存された過去の対話コンテキストを読み込み、開発の継続やレビューに活用する。 ユーザーが「コンテキストを読み込んで」「対話コンテキストをimport」「.devのコンテキストを読んで」と言った時に使用する。
定石外発想で実装をシンプルにする。現状の発展型ではなく、実装の裏にある暗黙の前提条件を1つずつ外し、よりシンプルな別解がないか検討する。 ユーザーが「定石外発想で」「前提を疑って」「もっとシンプルにできないか」と言った時に使用する。
Codex CLIと相談するスキル。 ユーザーが「codexと相談して」「codexに聞いて」「codexにレビューしてもらって」と言った時に使用する。 現在の会話コンテキストに基づいてCodex CLIにプロンプトを送り、結果を要約して報告する。
Agentツール(subagent)と相談するスキル。 ユーザーが「subagentと相談して」「subagentに聞いて」「subagentにレビューしてもらって」と言った時に使用する。 現在の会話コンテキストに基づいてsubagentにプロンプトを送り、結果を要約して報告する。
| name | codepatrol |
| description | リポジトリのセキュリティ調査を領域ごとに進める。 調査対象リストと観点リストに基づき、未調査の領域を選んで調査し、レポートを出力する。 複数sessionにまたがる長期作業を想定し、現状を確認して続きの作業を行う。 |
| argument-hint | [調査対象リストを更新しろ] |
リポジトリのソースコードを領域ごとにセキュリティ観点で調査し、レポートを出力する。 複数sessionにまたがる長期作業を前提とし、実行するたびに現状を確認して続きの作業を行う。
{このSKILL.mdがあるディレクトリ}/
SKILL.md ← この手順書
CHECKLIST.md ← 汎用の観点リスト(マスターコピー)
REPORT-TEMPLATE.md ← レポートテンプレート
checklist-vs-report.md ← checklistとレポートの責任境界(何を書き何を書かないか。手順2/4/5が参照)
.dev/codepatrol/
config.md ← レポートの書き出し先設定(手順2で生成)
checklist.md ← 観点リストの作業用コピー(CHECKLIST.md を元にリポジトリに合わせて生成)
targets.md ← 調査対象リスト(自動生成、手動編集可)
{領域名}.md ← 領域ごとの調査レポート(書き出し先がローカルの場合)
以下の存在を確認する:
.dev/codepatrol/ ディレクトリ.dev/codepatrol/targets.md(調査対象リスト).dev/codepatrol/config.md(レポートの書き出し先設定).dev/codepatrol/checklist.md(観点リストの作業用コピー)サーバー側のエントリポイントを走査して調査対象リストを自動生成する。 自動検出の対象はサーバー側に限定している。 client/config/infraなど他の領域が必要な場合は、ユーザーがtargets.mdに手動で追加する。
Bashツールで以下を実行してメタデータを取得する:
git rev-parse --short HEAD
次に、リポジトリの構成を調査して調査領域を検出する:
検出した領域を .dev/codepatrol/targets.md に書き出す。フォーマット:
# Codepatrol Investigation Targets
Generated at: {YYYY-MM-DD HH:mm:ss}
Source commit: {short hash}
各H2見出しが調査領域名。この名前がそのままレポート名になる。
領域を追加・分割・統合する場合はこのファイルを手動で編集する。
## {領域名}
{対象ディレクトリ/ファイルのパス}
{主なファイルの列挙}
領域のグルーピング指針:
targets.md の更新時: 既存のtargets.mdが存在する場合は、Readツールで読み込み、新しい走査結果と比較する。
レポートの書き出し先を決めて .dev/codepatrol/config.md に記録する。
Cosenseに集約する — レポートをCosenseのページとして作成し、hubページに被リンクで集約する。チームでの共有・議論に向くローカルファイル — .dev/codepatrol/{領域名}.md に書き出す{プロダクト名} セキュリティレポート)をユーザーに確認する# Codepatrol Report Destination
レポートの書き出し先設定。SKILL.mdの手順3(進捗確認)と手順6(レポート出力)が参照する。
- 書き出し先: {Cosense または ローカル}
- project URL: {https://scrapbox.io/プロジェクト名}
- hubページ: {hubページ名}
- レポートページのタイトル規則: `{hubページ名} {YYYY/M} ({領域名})`
- 年月はレポート作成時点、月はゼロ埋めなし(例: 2026/7)
- 前提: cosense CLI(`npm install -g @helpfeel/cosense-cli`)のインストールとログイン
ローカルの場合は「書き出し先: ローカル」だけを記録する。
このSKILL.mdと同じディレクトリにある CHECKLIST.md は、特定のリポジトリに依存しない汎用の観点リストである。 そのままコピーせず、リポジトリの実装に合わせてカスタマイズした作業用コピーを生成する:
.dev/codepatrol/{領域名}.md)があれば情報源として活用する.dev/codepatrol/checklist.md に書き出す:
Source commit: {git rev-parse --short HEAD の出力} を記録する。構成把握がどの時点のものかを診断可能にするchecklistの領分: checklistに書くこと・書かないことは checklist-vs-report.md に従う(要点: 仕様・機構の説明と中立な観点だけを書く。特定のbugの断定・深刻度・悪用仮説・レポート発見への言及は書かず、レポートへ)。生成時にこの境界を守る。
「観点リスト(チェックリスト)を更新しろ」と指示された時、または既存の .dev/codepatrol/checklist.md を調査で使う前に、次を行う:
.dev/codepatrol/checklist.md を読み込む.dev/codepatrol/targets.md をReadツールで読み込む書き出し先がCosenseの場合: hubページに集約された既存レポート(タイトル規則にマッチするページ)から、領域ごとの最新の調査時期を把握する。hubページやマッチするレポートが無ければ全領域を未調査として扱う。
書き出し先がローカルの場合:
Globツールで .dev/codepatrol/*.md を検索し、config.md・targets.md・checklist.md を除いた .md ファイルが存在する領域を「調査済み」と判定する。ローカルモードは調査時期を保持しないため、調査済み・未調査の区別のみを報告する。
進捗判定はレポートの存在(Cosenseでは加えて年月)のみで行う。コードの変更内容から再調査の要否を推定しない。
ユーザーが調査対象の領域を明示指定している場合: 調査済み・未調査を問わずその領域を調査する。以下の選択フローはスキップする。
全領域にレポートがある場合: Cosenseモードでは、最終調査が最も古い領域を再調査候補として提案し、ユーザーに確認する。ローカルモードでは調査時期が分からないため、どの領域を再調査するかユーザーに尋ねる。
未調査の領域がある場合: AskUserQuestionツールで調査対象を選ばせる。認可・認証・外部通信に関わる領域を優先して提案する。未調査領域が多くAskUserQuestionの選択肢(2-4個)に収まらない場合は、まず選び方(次を提案してほしい / 領域名を直接指定 / targets.mdを見直す)を聞いてから絞り込む。
.dev/codepatrol/checklist.md をReadツールで読み込む調査の深さ:
手順4の調査結果を外部Agentに批判させ、漏れ抜けを検出する。 批判的思考の連鎖により、単独調査では見落とす脆弱性を発見できる。
作業用checklist.mdのカテゴリを2〜4グループに分け、グループごとにcodex-consultationを実行する。調査対象が小さく該当観点が少ない領域では、1グループにまとめて1回で相談してよい。グループ分けの目安:
各グループについて、Skill toolで codex-consultation を呼び出す。Argsには以下を含める:
よく相談して。{領域名}のセキュリティ調査で、{グループの観点カテゴリ名}について以下の調査結果を得た。
この調査結果に漏れ抜けはないか、見落としている攻撃ベクトルはないか、批判的にレビューしてほしい。
チェックリストに載っていない観点も積極的に指摘してほしい。
{該当グループの調査結果の要約}
codex-consultationが利用できない場合は、Skill toolで subagent-consultation にフォールバックする。
両方利用できない場合はこの手順をスキップし、レポートの総合評価にその旨を記載する。
外部Agentの指摘を受けたら:
Bashツールで以下を実行してメタデータを取得する:
git rev-parse --short HEAD
このSKILL.mdと同じディレクトリにある REPORT-TEMPLATE.md をReadツールで読み込み、その構成に従ってレポートを作成する。
書き出し先がCosenseの場合:
タイトル規則と同名のページが既にないか確認する。ある場合(同月の再調査等)は上書きせずユーザーに対応を確認し、確認できなければ作成を保留して報告する。
レポート全体を1つのテキストとして組み立てる:
[{hubページ名}] — hubページへのリンク。これで被リンクとして集約される{プレースホルダ} は出力せず、Investigated at はタイトルの年月とページのメタデータが持つので書かない組み立てた本文で新規ページを作成する(書き込み操作はcosense skillに従う)。作成したページのURLをユーザーに報告する。
cosense CLIが使えない、または書き込みに失敗した場合は、ローカルに書き出してその旨を報告する。
書き出し先がローカルの場合:
Writeツールで .dev/codepatrol/{領域名}.md に書き出す。
いずれの場合も、レポート出力後に発見事項の要約をユーザーに報告する。