with one click
code-interview
// コードレビューの Phase 1 (意図確認) を担当するサブスキル。git diff を要約し、 人間レビュアーのように変更の意図・背景を質問してユーザーの回答を収集する。 親スキル code_review から呼び出されるか、意図確認のみが欲しい場合は単独でも起動できる。
// コードレビューの Phase 1 (意図確認) を担当するサブスキル。git diff を要約し、 人間レビュアーのように変更の意図・背景を質問してユーザーの回答を収集する。 親スキル code_review から呼び出されるか、意図確認のみが欲しい場合は単独でも起動できる。
| name | code_interview |
| description | コードレビューの Phase 1 (意図確認) を担当するサブスキル。git diff を要約し、 人間レビュアーのように変更の意図・背景を質問してユーザーの回答を収集する。 親スキル code_review から呼び出されるか、意図確認のみが欲しい場合は単独でも起動できる。 |
| tools | Read, Bash, AskUserQuestion |
レビュー対象の変更内容に対して、コードからは読み取れない意図・背景・ 判断理由をユーザーに質問する。回答は Phase 2 (code_inspect) に引き渡される 構造化された Markdown として出力する。
このスキルは質問のみを行い、コードを書き換えない。
以下の入力を受け取る。
単独起動された場合、レビュー対象ファイル一覧を Step 0 の手順で取得する。
親スキル code_review から呼ばれた場合は、レビュー対象ファイル一覧が 入力として渡されるので、この Step はスキップする。
単独起動の場合は以下の順で取得する。
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD --short 2>/dev/null)
DEFAULT_BRANCH が空 (origin/HEAD 未設定) の場合は git remote set-head origin --auto を
試し、再度 git symbolic-ref を実行する。それでも空なら AskUserQuestion で
比較対象ブランチを尋ねる (origin/main / origin/master / Other を選択肢に提示)。
DEFAULT_BRANCH が取得できたら差分を取得する。
git diff --name-only --diff-filter=ACMR ${DEFAULT_BRANCH}...HEAD
差分が空なら staged を確認する。
git diff --name-only --diff-filter=ACMR --cached
両方とも空なら AskUserQuestion で対象ファイルを尋ねる。
Step 0 で取得した DEFAULT_BRANCH を使い、レビュー対象ファイルの差分を取得する。
親 code_review から起動された場合は、改めて Step 0 と同じ手順で DEFAULT_BRANCH を
取得する (フォールバック手順を含む)。
git diff --diff-filter=ACMR ${DEFAULT_BRANCH}...HEAD -- <対象ファイル>
差分を読み、2〜3 行で要約する。要約はユーザーに見せる。
AskUserQuestion ツールは 1 回の呼び出しで最大 4 個の質問しか扱えないため、 質問数は 必ず 4 個以下 に収める。以下のルールで構成する。
差分の特徴に応じて、以下のような質問を生成する。 固定質問と合わせて 4 個を超えないよう、優先度の高いものから選ぶ。
質問は「このコードはこういうことですか?」「ここは本当に必要ですか?」 「このコードで大丈夫ですか?」のような人間レビュアー風の口調で書く。
AskUserQuestion ツールを使い、Step 2 で構成した質問を一度に提示する。 冒頭に Step 1 の変更要約を含める。
AskUserQuestion は選択式 UI のため、各質問に対して diff から推測される 回答候補を 2〜4 個生成する (最大 4 個まで)。完全な自由文が想定される 質問でも、典型的な回答パターンを選択肢に出す。
Other (自由文) は AskUserQuestion が自動で付与するため、選択肢には
含めない (含めると schema 違反)。
バグ修正 / 機能追加 / リファクタ不要になった / 別の場所に移動した / バグの温床だったエッジケース対応 / 後方互換のため / ドメイン要件選択肢は diff の文脈から具体性を高める。ユーザーが自動付与の Other を
選んで自由文を書いた場合、その内容を Step 4 の出力にそのまま反映する。
ユーザーが「質問なし」「特になし」「先に進んで」等と回答した場合、 そのまま Step 4 に進み、空の回答セクションを返す。
以下の Markdown 形式で結果を返す。
## 変更要約
(diff の要約 2〜3 行)
## ユーザーの回答
- 目的: <ユーザーの答え>
- <動的質問1>: <答え>
- <動的質問2>: <答え>
(質問数に応じて続く。回答がなければ「質問なし」と記載)
[HINT] Download the complete skill directory including SKILL.md and all related files