feat: add ai-code-review / ai-paper-review caller templates#45
Conversation
Distribution presets for the one-shot ai-review reusable, replacing the slow claude-code-action callers: - ai-code-review: CODE mode, inline (default claude-sonnet-4-6) - ai-paper-review: ACADEMIC mode, single summary comment, excludes *.bib/*.sty/*.cls Both pass anthropic + gemini secrets so the provider can switch via model_code. README caller table updated; old claude-*-review marked for retirement.
|
|
||
| on: | ||
| pull_request: | ||
| types: [opened, reopened, ready_for_review] # no synchronize: avoid re-reviewing every push |
There was a problem hiding this comment.
synchronize イベントを意図的に除外していますが、これはPRに新しいコミットがプッシュされた際にレビューが再実行されないことを意味します。コードレビューの文脈では、修正後のコードが再レビューされないため、レビューの実効性が低下する可能性があります。
除外の理由はコメントに記載されていますが(avoid re-reviewing every push)、少なくとも synchronize を含めた上で、差分のみをレビューする設計の方が実用的ではないでしょうか。もし意図的な設計であれば、.pr-note.md にもその旨を明記することを推奨します。
| review_mode: ACADEMIC | ||
| single_comment: true | ||
| language: __LANGUAGE__ | ||
| exclude_paths: "*.bib,*.sty,*.cls" |
There was a problem hiding this comment.
ℹ️ [LOW] [LOW] exclude_paths に *.bib,*.sty,*.cls が固定値としてハードコードされています。配布先リポジトリによっては除外したいファイル種別が異なる場合(例: *.tex の特定ディレクトリを除外したい等)も考えられます。
__EXCLUDE_PATHS__ のようなトークンにして .defaults ファイルでデフォルト値を設定する形にすると、配布時のカスタマイズ性が向上します。
| @@ -0,0 +1,2 @@ | |||
| MODEL=claude-sonnet-4-6 | |||
There was a problem hiding this comment.
ℹ️ [LOW] [LOW] モデル名 claude-sonnet-4-6 がハードコードされています。将来的にモデルのバージョンが更新された際(例: claude-sonnet-4-7 等)、全配布先のファイルを再配布し直す必要があります。
ai-paper-review.defaults も同様です。バージョン部分を分離するか、latest エイリアスが利用可能であればそちらの使用を検討してください。
| types: [opened, reopened, ready_for_review] # no synchronize: avoid re-reviewing every push | ||
|
|
||
| concurrency: | ||
| group: ai-code-review-${{ github.event.pull_request.number }} |
There was a problem hiding this comment.
ℹ️ [LOW] [MEDIUM] concurrency.group に github.event.pull_request.number を使用していますが、同一リポジトリ内で ai-code-review と ai-paper-review の両方が設定されている場合、グループ名が異なるため問題はありません。しかし、リポジトリ名やワークフロー名を含めない場合、将来的に同一PR番号で別ワークフローとの衝突リスクは低いものの、より明示的に ${{ github.workflow }}-${{ github.event.pull_request.number }} とする方が安全です。
@claude Address the review's [LOW]: make exclude_paths a __EXCLUDE_PATHS__ token (default *.bib,*.sty,*.cls in .defaults) so a target repo can customize it at distribution via --var EXCLUDE_PATHS=...
AI レビュー指摘への対応(commit e6f33db)新
|
|
Claude finished @toshi0806's task in 1m 34s —— View job 再レビュー結果
✅
|
| 指摘 | 状況 | 判断 |
|---|---|---|
synchronize 除外 |
意図的(コメント済み) | ✅ 問題なし |
exclude_paths ハードコード |
__EXCLUDE_PATHS__ トークン化で対応済み |
✅ 解決 |
.defaults モデル名 |
方針未決定(A: per-repo / B: reusable 集約) | ⏳ 方針確認待ち(ブロッカーではない) |
concurrency.group |
caller prefix 付きで衝突なし | ✅ 問題なし |
全体として LGTM です。 マージの判断はモデル名方針(A/B)を確定してからでも、先行してでも問題ない設計です。
モデル方針の決定: A(per-repo モデルを維持)caller に
→ レビュー指摘はすべて評価・対応済み(exclude_paths トークン化、それ以外は意図的/問題なし)。本 PR はマージ可能です。 |
概要
ワンショット
ai-reviewreusable(#44)を配布するための caller テンプレートを追加。低速な claude-code-action 版(claude-code-review/claude-paper-review)の置き換え。追加(
scripts/callers/)ai-code-reviewclaude-sonnet-4-6ai-paper-reviewclaude-sonnet-4-6.yml(テンプレ)+.defaults(MODEL=claude-sonnet-4-6/LANGUAGE=Japanese)+.pr-note.mdANTHROPIC_API_KEY+GEMINI_API_KEYを両方渡す →model_codeでプロバイダ切替可能ai-paper-reviewはsingle_comment: true+*.bib,*.sty,*.cls除外claude-*-reviewは「退役予定」と明記)検証
--list-callersに2件追加を確認uses: ...ai-review.yml@v1、mode=CODE/ACADEMIC、model 置換)このあと(退役・差し替え)
別 PR/作業で:
claude-code-review→ai-code-review、claude-paper-review→ai-paper-reviewに差し替え(配布スクリプトで).github自身:claude-review.yml→ai-review-self.ymlに一本化claude-code-review.yml/claude-paper-review.yml)削除