ある AI エージェントから別の AI CLI(devin / codex / claude / cursor-agent / opencode / gemini / grok)を非対話で呼び出すときの実行規則。print モードの 選び方、認証・権限・cwd の罠、出力フォーマット、ACP 起動の注意をまとめる。 「codex に投げて」「devin を CLI から呼んで」「別エージェントに委譲」 といった依頼で使う。ユーザーが /agent-cli と入力したら使う。
sentinel-review
Dockerfile・Compose・Terraform・GitHub Actionsの差分または指定パスをread-onlyで検査し、共通Finding schemaとredaction基準で結果を返す。ユーザーが `/sentinel-review` と入力したら必ず使う。
含まれるファイル(3)
- SKILL.md6.1 KB
- references/findings-schema.md3.9 KB
- references/redaction.md1.8 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
sentinel-review
ユーザが /sentinel-review を呼んだとき、対象スコープを決定する。必要なIaC確認は標準子の担当ラベルsentinel-iacへ委任し、返却されたFindingを親が正規化・統合してMarkdownレポートへ集約する。親が直接確認する場合も同じ資料とFinding形式を使う。
親は入出力の確認と結果集約のため、同directoryのreferences/findings-schema.mdの「JSON契約」節とreferences/redaction.md、全体の結果原本../code-review-guidance/references/result-contract.mdを読む。検出の専門本文は実際の評価者が読む。対象repoに契約文書があると仮定しない。
引数
<path>(任意): 対象パス。指定すればそのパス以下が対象。--diff <base>..<head>(任意): 差分の base..head を明示。--severity-min <level>(任意, 既定low): この閾値未満の Finding は出さない (infoは別途常に折りたたみ)。
引数を取らない場合は、親が確定した対象repoのgit statusとgit diffから変更ファイルを拾う。親が指定したscope、base/head、untrackedの境界を維持する。
手順
-
対象スコープを決定
<path>指定があればそのパス以下を対象(Glob 展開、ただし.gitignore尊重)。--diff指定があればgit diff --name-only <base>..<head>で対象ファイル列挙。- どちらも無ければ
git status --porcelainとgit diff --name-onlyで変更ファイルを取得。 - 対象が0件なら、対象なしの理由と
COVERAGE: none、VERDICT: NOT_APPLICABLEを返す。取得失敗やscope不明は対象なしにしない。
-
検査担当を決める
- 対象ファイルに以下のいずれかが含まれる場合のみ、標準子の担当ラベル
sentinel-iacへ検査を委任する:Dockerfile,*.dockerfiledocker-compose*.yml,docker-compose*.yaml,compose*.yml,compose*.yaml*.tf.github/workflows/*.yml,.github/workflows/*.yaml
- 含まれなければ「IaC 対象ファイルなし」の理由と
COVERAGE: none、VERDICT: NOT_APPLICABLEを返して終了する。
- 対象ファイルに以下のいずれかが含まれる場合のみ、標準子の担当ラベル
-
検査を実行
- 担当ラベル
sentinel-iacの検査を、利用中runtimeの標準の汎用subagentとして起動する。sentinel-iacはラベルであり、agent定義名やsubagent typeとして指定しない。固定modelや固定人数をこのSkillで決めない。 - 入力として「対象ファイルの相対パス一覧」と、
findings-schema.md、redaction.mdの実体絶対pathを渡す。委任された子は受け取った専門資料を自身でReadしてから検査する。 - 親が直接確認する場合は、親自身が上記2つの専門資料と共有結果原本
../code-review-guidance/references/result-contract.mdをReadする。
- 担当ラベル
-
応答をパース
- 応答末尾の
```json ... ```ブロックを 1 個だけ取り出して JSON.parse 相当の解釈を行う。 - パースに失敗した場合はFindingを0件と結論・表示せず、検査完了とは扱わない。
COVERAGE: partialまたはnone、失敗理由、未確認範囲をサマリに明記する。
- 応答末尾の
-
Finding を正規化・統合
references/findings-schema.mdに従って:detector_id + path + start_lineで重複統合- 未知の
categoryはmiscに倒し、変換件数を記録する - スキーマに合わない Finding は捨てる(捨てた件数をサマリに記録)
severity降順、次にpriority降順で並び替え。--severity-min未満は出力対象から外すが、除外件数をサマリへ記録する。- 子が返す固有Finding JSONは保持したまま、親がこの手順でMarkdownへ集約する。全体のCOVERAGE/VERDICTは共有結果原本に従って、取得失敗・未確認・Findingの有無を統合する。
- 全体判定と他の評価結果との集約では、Findingの
severityを共有結果原本の重大度へcritical→P0、high→P1、medium→P2、low・info→P3と対応させる。表示上のseverity値は変えない。完了阻害性はP0–P3と共有結果原本の規則で判断する。
-
Markdown レポートを出力
- 冒頭にサマリ:
- severity 別件数
- スキップ/失敗エージェント
- スキーマ違反で捨てた件数
- 各 Finding は次の体裁で表示:
- 見出し:
#### [<SEVERITY>] <title> - 場所、原因、影響、修正案、優先度、信頼度、由来エージェント
suggested_patchがあれば```diffブロックrecurrence_checklistは<details>で折りたたみ
- 見出し:
confidence=lowとseverity=infoの Finding は<details>で折りたたむ。
- 冒頭にサマリ:
制約
- このスキルおよび配下のsubagentは 書き込みを実行しない。技術的にread-onlyであることは、runtimeの実効権限を確認した場合だけ主張する。修正は
suggested_patchの提示で止める。apply、deploy、workflow実行、外部pushは行わない。 - 攻撃手順や PoC コードは生成しない。Finding の
rationaleは原理レベルの説明にとどめる。 - 外部ネット呼び出し(curl、wget、git fetch等)は行わない。secret、個人情報、長いランダム文字列は
references/redaction.mdに従いマスクする。
完了の判定
- 対象repoで
/sentinel-reviewを実行すると、 対象 IaC ファイルがあれば Finding 入りの Markdown が、 なければ「対象なし」が返ること。 - sentinel-iacの応答が壊れていてもスキル全体は落とさず、サマリに失敗を記録し、未確認をPASSで補完しないこと。
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
明示されたCodex・CursorのSkill運用移行を、指定設計と既存点検に基づき適用する。通常の実装依頼では起動しない。
明示されたリポジトリのSkill・Agent・呼出し・生成配布を点検または移行する。通常の実装・レビュー・調査では起動しない。
プロジェクトのデザインシステムを SSOT として作成・監査・更新する。トークン、デザインシステムに関わるアクセシビリティ、Typography、Motion、aesthetic direction の作業に使う。デザインシステムに紐づかない単発UI実装や個別デザインレビューには使わない。ユーザーが /ai-design-system と入力したら使う。
デザインシステムの作成・監査・保守、デザイントークンやUIの一貫性・個性・アクセシビリティの改善に使う。
AIに日記を書かせるスキル。会話を振り返り、AI視点の自由な日記風テキストを生成して保存する。「日記書いて」「AI日記」「日記風に振り返って」「感想を日記にして」「diary」「write a diary」といった日記・感想の依頼に使う。作業改善の振り返りは /retro、知見の記録や要約は /ai-ltm を使う。ユーザーが /ai-diary と入力したら必ずこのスキルを使う。