Skip to content

Commit 38bbc6a

Browse files
committed
feat: add Claude Code review workflow with 5 independent review perspectives
Add GitHub Actions workflow that runs 5 parallel review jobs: - Data Loss Prevention - Concurrency/Distributed Failures - Performance - Data Consistency - Test Coverage
1 parent 8b6c355 commit 38bbc6a

1 file changed

Lines changed: 170 additions & 0 deletions

File tree

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
name: Claude Code Review
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, ready_for_review, reopened]
6+
7+
jobs:
8+
review-data-loss:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
pull-requests: write
13+
issues: write
14+
id-token: write
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 1
20+
21+
- name: Review - Data Loss Prevention
22+
uses: anthropics/claude-code-action@v1
23+
with:
24+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
25+
review_comment_prefix: "[Data Loss] "
26+
prompt: |
27+
あなたは分散KVSの「データロスト防止」専門レビュアーです。
28+
以下の観点に絞ってPRの差分をレビューしてください。他の観点には触れないでください。
29+
30+
## レビュー観点: データロストがないか
31+
- Write/Delete操作でデータが意図せず失われるパスがないか
32+
- WAL(Write-Ahead Log)やRaftログへの書き込みが適切に永続化されているか
33+
- エラーハンドリングの欠如によりデータが消失する可能性がないか
34+
- トランザクションのコミット/ロールバック処理でデータが失われないか
35+
- TTLやExpire処理で意図しないデータ削除が発生しないか
36+
- スナップショットやバックアップに関連するデータ欠損リスクがないか
37+
38+
問題がなければ簡潔に「問題なし」と報告してください。
39+
40+
review-concurrency:
41+
runs-on: ubuntu-latest
42+
permissions:
43+
contents: read
44+
pull-requests: write
45+
issues: write
46+
id-token: write
47+
steps:
48+
- name: Checkout repository
49+
uses: actions/checkout@v4
50+
with:
51+
fetch-depth: 1
52+
53+
- name: Review - Concurrency and Distributed Failures
54+
uses: anthropics/claude-code-action@v1
55+
with:
56+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
57+
review_comment_prefix: "[Concurrency] "
58+
prompt: |
59+
あなたは分散KVSの「並行性・分散障害」専門レビュアーです。
60+
以下の観点に絞ってPRの差分をレビューしてください。他の観点には触れないでください。
61+
62+
## レビュー観点: 並行性/分散障害
63+
- Race conditionやデッドロックの可能性がないか
64+
- Mutex/RWMutexのロック順序が一貫しているか
65+
- Raftのリーダー切り替え時に正しく動作するか
66+
- ノード障害・ネットワーク分断時の挙動が安全か
67+
- goroutineリークやチャネルのブロッキングがないか
68+
- フォロワーからリーダーへのプロキシ処理が正しいか
69+
- コンテキストのキャンセルやタイムアウト処理が適切か
70+
71+
問題がなければ簡潔に「問題なし」と報告してください。
72+
73+
review-performance:
74+
runs-on: ubuntu-latest
75+
permissions:
76+
contents: read
77+
pull-requests: write
78+
issues: write
79+
id-token: write
80+
steps:
81+
- name: Checkout repository
82+
uses: actions/checkout@v4
83+
with:
84+
fetch-depth: 1
85+
86+
- name: Review - Performance
87+
uses: anthropics/claude-code-action@v1
88+
with:
89+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
90+
review_comment_prefix: "[Performance] "
91+
prompt: |
92+
あなたは分散KVSの「性能」専門レビュアーです。
93+
以下の観点に絞ってPRの差分をレビューしてください。他の観点には触れないでください。
94+
95+
## レビュー観点: 性能
96+
- 不要なメモリアロケーションやコピーがないか
97+
- O(N)以上の計算量を持つ処理がホットパスにないか
98+
- バッチ処理可能な操作が逐次処理されていないか
99+
- 不要なディスクI/Oやネットワーク通信がないか
100+
- ロックの保持時間が長すぎないか
101+
- スライスやマップの事前確保(cap指定)が適切か
102+
- キーのスキャンやイテレーションが効率的か
103+
104+
問題がなければ簡潔に「問題なし」と報告してください。
105+
106+
review-consistency:
107+
runs-on: ubuntu-latest
108+
permissions:
109+
contents: read
110+
pull-requests: write
111+
issues: write
112+
id-token: write
113+
steps:
114+
- name: Checkout repository
115+
uses: actions/checkout@v4
116+
with:
117+
fetch-depth: 1
118+
119+
- name: Review - Data Consistency
120+
uses: anthropics/claude-code-action@v1
121+
with:
122+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
123+
review_comment_prefix: "[Consistency] "
124+
prompt: |
125+
あなたは分散KVSの「データ一貫性」専門レビュアーです。
126+
以下の観点に絞ってPRの差分をレビューしてください。他の観点には触れないでください。
127+
128+
## レビュー観点: データ一貫性
129+
- Raftを経由すべき操作がローカルで直接実行されていないか
130+
- 線形化可能性(Linearizability)が維持されているか
131+
- リードインデックスの取得とデータ読み取りの一貫性があるか
132+
- トランザクション内の読み取り・書き込みセットが正しく管理されているか
133+
- キーのプレフィックスやエンコーディングが一貫しているか
134+
- TTLとデータ本体の整合性が保たれているか
135+
- レプリカ間でのデータ同期が正しく行われるか
136+
137+
問題がなければ簡潔に「問題なし」と報告してください。
138+
139+
review-test-coverage:
140+
runs-on: ubuntu-latest
141+
permissions:
142+
contents: read
143+
pull-requests: write
144+
issues: write
145+
id-token: write
146+
steps:
147+
- name: Checkout repository
148+
uses: actions/checkout@v4
149+
with:
150+
fetch-depth: 1
151+
152+
- name: Review - Test Coverage
153+
uses: anthropics/claude-code-action@v1
154+
with:
155+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
156+
review_comment_prefix: "[Test Coverage] "
157+
prompt: |
158+
あなたは分散KVSの「テスト網羅性」専門レビュアーです。
159+
以下の観点に絞ってPRの差分をレビューしてください。他の観点には触れないでください。
160+
161+
## レビュー観点: テスト網羅
162+
- 追加・変更されたロジックに対応するテストが存在するか
163+
- エッジケース(空値、境界値、nil、大量データ)がテストされているか
164+
- エラーパス・異常系のテストがあるか
165+
- 並行アクセスのテストが必要な変更にテストがあるか
166+
- 既存テストが変更により壊れていないか
167+
- 分散環境(マルチノード)でのテストが必要な変更か
168+
- テストが不足している場合、具体的なテストケースを提案してください
169+
170+
問題がなければ簡潔に「問題なし」と報告してください。

0 commit comments

Comments
 (0)