From codepatrol
リポジトリのセキュリティ調査を領域ごとに進める。 調査対象リストと観点リストに基づき、未調査の領域を選んで調査し、レポートを出力する。 複数sessionにまたがる長期作業を想定し、現状を確認して続きの作業を行う。
How this skill is triggered — by the user, by Claude, or both
Slash command
/codepatrol:codepatrol [調査対象リストを更新しろ][調査対象リストを更新しろ]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
リポジトリのソースコードを領域ごとにセキュリティ観点で調査し、レポートを出力する。
リポジトリのソースコードを領域ごとにセキュリティ観点で調査し、レポートを出力する。 複数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 に書き出す。
いずれの場合も、レポート出力後に発見事項の要約をユーザーに報告する。
npx claudepluginhub shokai/agent-skills --plugin codepatrolOrchestrates a full security audit of a repository using SAST, SCA, secrets, and config scanning. Adapts between subagents for small repos and agent teams for large ones.
Performs static analysis of source code to detect potential vulnerabilities based on IPA security guidelines (e.g., 安全なウェブサイトの作り方). Each finding references specific document sections and URLs. Invoke via /ipa-security-check or natural language.
Performs security reviews by starting from a random file, tracing one deep path through imports and data flows, and reporting the single most significant issue or none found.