# Appendix: Skill リファレンス --- ## 全体マップ - 1 skill = 1 枚。詳細は各 `.claude/skills/*/SKILL.md` - **PR 後続 orchestrator**: `/pr-ci`(host)⇒ box では `/pr-codex-ci` へ**自動委譲** - **相互レビュー対**: `/codex-review`(host)⇒ box では `/a2a-review` へ**自動委譲** - **pre-PR sweep**: `/comment-sweep` / `/co-evolve-check` / `/extension-bloat-sweep` - **box↔host bridge**: ask / fetch / session 系(本デッキ後半) --- ## `/a2a-review` — box 内の codex 相談 - 別 microVM の codex が**同じソースツリーを直接読む** second opinion - dev box 専用(`bash scripts/dev.sh` 起動。sandbox box 不可) - 例: `/a2a-review scripts/dev.sh を correctness 観点でレビュー` - 対象は**パス / diff を指示文で**渡す(worktree は `git -C`) - 採否は claude / 人間が判断 --- ## `/codex-review` — host の codex 相談 - host の `codex` CLI で second opinion(`/a2a-review` の host 対称) - box で叩くと `/a2a-review` に**自動委譲** - 例: `/codex-review git diff origin/main...HEAD をレビュー` - 前提: `npm i -g @openai/codex` + `codex login` - ⚠️ 外部 AI(OpenAI)にコード / diff を送信する --- ## `/comment-sweep` — コメント規範チェック - diff の**新規追加コメント**を `rules/code-comments.md` で判定 - `gh pr create` 直前に発火(commit 前は `--staged` / `--worktree`) - 使い方: `/comment-sweep`(base は自動解決) - 違反は表で提示 → 承認後に修正まで実施 - 対象言語は拡張子で列挙(Markdown は `` のみ) --- ## `/co-evolve-check` — 旧版温存の検出 - `Foo` + `FooV2` の **version 並走(旧版温存)** を検出 - 全 caller touched + 外部消費者なし = 「旧版を消せたはず」 - 使い方: `/co-evolve-check`(pre-PR で並走) - TS/JS / Python の marker が無い repo は silent skip - non-blocking。「なぜ旧版を残したか?」を問う --- ## `/extension-bloat-sweep` — 詰め込み肥大の検出 - 既存 file / 関数への**無理な拡張**を検出 - E1: 大型 file へ大量追記 / E2: param 4+ / E6: 反復 modify - 使い方: `/extension-bloat-sweep`(pre-PR で並走) - `/co-evolve-check` の直交軸(温存 vs 肥大) - marker 無し repo は silent skip。non-blocking --- ## `/pr-codex-ci` — PR 後続の自走(box) - codex review + CI gate + bot review 対応を **merge-ready まで自走** - dev box 内。`gh pr create` 直後に**確認なしで発火** - 使い方: `/pr-codex-ci 123`(省略時は current branch の PR) - merge-ready = local gate **AND** remote gate(全 thread resolved) - 停止は最終報告 or HOTL escalate のみ。merge は人間判断 --- ## `/pr-ci` — PR 後続の自走(host) - `/pr-codex-ci` の host 版(codex は host CLI 直) - box で叩くと `/pr-codex-ci` に**自動委譲** - 使い方: `/pr-ci 123` - 判定の質は box 版と同等(transport が違うだけ) - 詰まったら**選択肢でなく HOTL escalate**(黙って止まらない) --- ## `/pr-review-respond` — review thread 対応 - PR に付いた bot / 人間 review を**採否 → reply → resolve** - 未解決 thread があると merge 不可(ruleset で強制) - 使い方: `/pr-review-respond 123`(通常は orchestrator が chain 起動) - 採用は correctness / security / regression / 契約違反のみ - **rubber-stamp resolve 禁止**(必ず読んで判断) --- ## `/box-session-context` — box session を覗く - box 内 session の transcript を host へコピーして**要約参照** - HOTL 監視用。host で実行(statusLine の session id を貼る) - 使い方: `/box-session-context
[
]` - **参照専用** — 続きをやるなら `/box-session-resume` - transcript は box 内 fs のみ(`sbx rm` 前に取り出す) --- ## `/box-session-resume` — session を別の場所で再開 - box session を host / 別 box で**同一 session として resume** - host なら直接実行、box なら host へ委譲(grant 待ち) - 使い方: `/box-session-resume
[
]` - 条件: source / dest が**同じ mount path**(dev box ⇔ mac/Linux host) - clone box / Windows host は対象外 --- ## `/box-session-resume-grant` — resume の実行 gate - box の resume 依頼を host で**検証して実行** - user が能動で叩くこと自体が **injection gate** - 使い方: `/box-session-resume-grant
` - 生値は読まず **count-gate で機械抽出** → 目視 → 実行 - 結果は bridge 経由で box が自動 pickup --- ## `/host-ask` — host への問い合わせ(box 発) - box から見えない **host の事実**を調査依頼 - 例: port 占有者 / 他 project の compose / mount 外 fs - 使い方: `/host-ask traefik-port ":80 の占有者は?"` - host で `/host-answer` を叩いてもらう → ans は**自動 pickup** - host 側の自動応答は**意図的に無し**(injection chain を断つ) --- ## `/host-answer` — 問い合わせへの回答(host 側) - `/host-ask` への **read-only 調査**回答 - host で user が能動で叩く - 使い方: `/host-answer
[
]` - 書き込み副作用は禁止(変更案の提示まで) - secret を ans に貼らない(host↔box 平文共有) --- ## `/host-fetch` — URL の代理取得依頼(box 発) - box egress が 403 の URL を host に**単発 GET/HEAD 代行**依頼 - `sbx policy allow` はしない(box は絞ったまま) - 使い方: `/host-fetch https://docs.example.com/guide` - host で `/host-fetch-grant` → 結果は自動 pickup - 本文は artifact file 経由で **box だけが読む** --- ## `/host-fetch-grant` — 代理取得の実行 gate(host 側) - box の fetch 依頼を **SSRF-safe core** で実行 - URL を人間が目視してから取得(user gate) - 使い方: `/host-fetch-grant
[
]` - private / loopback 拒否・redirect 非追従・GET/HEAD のみ - 生値は読まず count-gate で URL / method を抽出 --- ## `/observe-session` — AWS read-only 調査の準備 - **observe box を end-to-end で準備**(ログ調査のセットアップ) - 対象発見 → role 作成 → box 起動 → STS 注入 → smoke test - host で実行: `/observe-session [profile] [region] [log-group]` - 最後の `sbx run
` だけ人間が叩く - 調査本体は `examples/observe/runbook.md` へ --- ## スライド一覧へ戻る **[index →](index.html)**