Agent Skillを書く時の心得。SKILL.mdに何を書き、何を書かないかの判断基準と、レビュー指摘の採否の基準を定める。 Agent Skillを作成する時、編集する時、レビュー指摘の採否を決める時に読み込む。
codepatrol-triage
セキュリティ調査のレポートの問題を、どのtierの開発者なら修正できるかで分類し、トリアージページを作る。codepatrol skillが起動したsubagentが実行する。ユーザーが直接呼び出す事は想定していない。
含まれるファイル(2)
- SKILL.md7.4 KB
- TRIAGE-TEMPLATE.md5.1 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
問題のトリアージ
codepatrol skillの指揮役から任されて、調査レポートの問題を分類し、トリアージページを作る。
トリアージとは、実際に困っている相手のうち、誰を優先して対処するかを、自分のリソースと相手の状態を鑑みて決める事である。ここでは、どの問題をどのtierの開発者なら修正できるかで分類する。レポートの問題は全て本物で、再現するかの確認や、深刻度の付け直しはしない。それらは調査で済んでいる。
ファイル構成
{このSKILL.mdがあるディレクトリ}/
SKILL.md ← この手順書
TRIAGE-TEMPLATE.md ← トリアージページのテンプレート
このskillを実行する時の前提
- ユーザーに質問できない。判断がつかない事は、最後の報告に書く
- コードは読まない。レポートに書かれた内容から判断する
- 書き出し先がCosenseの場合だけを扱う。hubページは、指揮役の指示に従う
- Cosenseの読み書きは、cosense skillに従う
修正難度
修正に必要な仕様変更の意思決定を、誰が下す必要があるかで、次の3つの修正難度に分ける。番号が大きいほど、修正できる開発者のtierが上がる。修正難度の名前は、この文をそのまま使う。
- 仕様変更のための意思決定がほぼ無い、セオリー通り開発すれば直せる問題
- 仕様変更のための中程度の意思決定が必要だが、開発チーム内での合意は容易な問題
- データモデルやセキュリティモデルが大きく変化する、あるいはユーザーに周知が必要、等で設計から見直す必要がある問題
1は、その製品に詳しくない実装者でも直せる。3は、その製品の開発者自身が、後の事を考えながら設計を直す必要がある。
- 1でも、実装の中で小さな判断は発生する。不正な入力にどのステータスコードを返すか、といった判断である。実装者がその場で決められる判断は、1に含める
- 変更の量では分けない。差分が小さくても、開発チーム内での合意が必要な物は2である
- レポートの問題にある対応の記述が、判断の材料になる。修正方法が具体的に書かれているか、設計の変更が必要と書かれているかを見る
対象
各領域の最新のレポートを対象にする。hubページに集約されたレポートのうち、領域ごとに最も新しい物である。
載せる問題の条件は、指揮役の指示に従う。指示が無ければ、深刻度がHighの問題を対象にする。
ページを作る
TRIAGE-TEMPLATE.md を読み込み、その構成に従って新しいページを作る。
- 複数のレポートが、根本原因の同じ問題を報告している時は、1行にまとめる。どちらの名前で扱うかがレポートに書かれていれば、それに従う
- 1件の問題を、修正の単位で分けた方が修正難度を決めやすい時は、行を分けてよい。仕様の判断が要らない部分と、要る部分が混ざっている問題である
- 完全に修正された問題は載せない。完了した物が並ぶと、未処理の問題の数が分かりにくくなる
- 一部だけ修正された問題は、残っている事を載せる
前のトリアージページがある場合
前のページを編集せず、新しいページを作る。前のページの冒頭に、新しいページへのリンクを1行だけ足す。前のページの他の行は編集しない。
前のページの全ての行について、行き先を決める。黙って消える行を作らない。
| 最新のレポートでの状態 | 行き先 |
|---|---|
| 今回も対象の条件に合う | 修正難度1から3の節に載せ、前回から継続している事を書く |
| 全部が修正された事を、レポートが確認している | 載せない |
| 深刻度が変わり、対象の条件から外れた | 末尾の節に載せる |
| 「今回検出しなかった前回の問題」にある | 末尾の節に載せる。修正されたという意味ではない事を書く |
| コード上は修正されたが、コードからは確認できない作業が残っている | 末尾の節に載せる |
レポートの「前回から修正された物」の節には、一部が修正されて深刻度が下がった問題も並んでいる。この節にある事だけでは、載せない理由にならない。
修正難度1から3の節に載せる行にも、末尾の節に載せる行にも、前のページの行に書かれた物を引き継ぐ。引き継がないと、着手されている問題が、手を付けられていない問題に見える。
- 人間が書いた注記は、文言も署名も変えずに引き継ぐ。優先度の判断や、着手の宣言である
- 修正PRの行と、完了した後の残タスクは、状態アイコンごと引き継ぐ。完了の印が付いた行も引き継ぐ。最新のレポートに問題が残っているなら、その修正は問題の一部しか直していないか、レポートがまだ修正を確かめていない
- 残タスクのうち、最新のレポートが修正を確認した作業は除く
- pull requestの実際の状態は確かめない。状態の確認はcodepatrol-sync-stateが行う
リンクは、次のように扱う。
- 修正難度1から3の節には、前のレポートへのリンクと、前のトリアージページの行へのリンクを引き継がない。最新のレポートへのリンクに差し替える。古いリンクが並ぶと、どのレポートを見ればよいのかが分からなくなる
- 末尾の節の行は、その問題の根拠が書かれているレポートにリンクする。最新のレポートに無ければ、前のレポートである
前のページの編集ルールに、チームが足した規則があれば、新しいページの編集ルールに引き継ぐ。
タイトル
{hubページ名} トリアージ ({YYYY/M/D}) とする。同名のページが既にある時は、日付に時刻を続ける。
指揮役への報告
- 作成したページの場所とタイトル
- 対象にしたレポートの数と、対象の条件
- 修正難度ごとの行の数
- 根本原因が同じとしてまとめた問題
- 前のトリアージページの行の行き先ごとの数
- 修正難度に迷った問題と、迷った理由
- 判断がつかなかった事
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
ソースコード中のコメントを書く時の心得。コメントに何を書き、何を書かないかの判断基準と、置く位置、日本語の文体を定める。 ソースコードのコメントを書く時、直す時、レビューする時に読み込む。
リポジトリのセキュリティ調査を領域ごとに進める。同じサービスを構成する複数のリポジトリを束ねて調査できる。 このsessionは調査を指揮し、領域ごとに起動したsubagentが調査してレポートを出力する。 レポートの問題のトリアージと、問題の自動修正、問題を直すpull requestの状態の同期も指揮する。 複数sessionにまたがる長期作業を想定し、実行するたびに現状を確認して続きの作業を行う。 ユーザーが手動で起動する。
セキュリティ調査で検出された問題を1つ修正し、pull requestをready for reviewまで仕上げる。 codepatrol skillが起動したsubagentが実行する。ユーザーが直接呼び出す事は想定していない。
本番に出る前の修正が積まれたrelease pull requestに、デプロイの前後に人間がやる事をまとめたコメントを投稿・更新する。 codepatrol skillが起動したsubagentが実行する。ユーザーが直接呼び出す事は想定していない。
リポジトリの1つの領域をセキュリティ観点で調査し、Codexの批判的レビューを経てレポートを出力する。 codepatrol skillが起動したsubagentが実行する。ユーザーが直接呼び出す事は想定していない。