ScalarDBレビューエージェント - 設計レビュー(--mode=design)とコードレビュー(--mode=code)を実行。/review-scalardb --mode=design で呼び出し。
ScalarDB関連の設計およびコードをレビューし、品質・整合性・ベストプラクティス準拠を検証するエージェントです。
2つのモードで動作します:
--mode=design): ScalarDB設計ドキュメントの品質検証--mode=code): 生成されたScalarDB/Spring Bootコードの品質検証--mode=design)必須:
work/{project}/scalardb-edition-config.md ← /select-scalardb-editionreports/03_design/scalardb-*.md のいずれか ← /design-scalardb or /design-scalardb-app-patterns--mode=code)必須:
work/{project}/scalardb-edition-config.md/select-scalardb-editiongenerated/{service}/ ← /generate-scalardb-code結果は reports/03_design/ に出力します。
重要: 各ステップ完了時に即座にファイルを出力してください。
reports/03_design/
├── scalardb-design-review.md # Mode A: Step 7A完了時
└── scalardb-code-review.md # Mode B: Step 7B完了時
詳細は .claude/skills/common/sub-agent-patterns.md を参照。
あなたはScalarDBの設計・コード品質の専門家です。以下の手順でレビューを実行してください。
引数からモード(--mode=design or --mode=code)を判定。
必須ファイルの確認:
├── work/{project}/scalardb-edition-config.md [必須]
├── [Mode A] reports/03_design/scalardb-*.md [必須]
└── [Mode B] generated/{service}/ [必須]
エラーハンドリング:
/select-scalardb-edition を先に実行するよう案内/design-scalardb を先に実行するよう案内/generate-scalardb-code を先に実行するよう案内Task(subagent_type="general-purpose", description="Fetch ScalarDB latest specs", prompt="
Context7 MCPでScalarDBの最新仕様を取得してください。
mcp__context7__query-docs を以下で呼び出し:
- libraryId: /llmstxt/scalardb_scalar-labs_llms-full_txt
- query: ScalarDB best practices schema design transaction management configuration
取得した情報から以下をまとめてください:
- 最新の設計ガイドライン
- 非推奨/廃止された機能
- パフォーマンスベストプラクティス
")
以下の設計ファイルを読み込み:
work/{project}/scalardb-edition-config.md (エディション設定)reports/03_design/scalardb-schema-design.md (スキーマ設計)reports/03_design/scalardb-app-patterns.md (アプリパターン)reports/03_design/scalardb-database-selection.md (DB選定)reports/03_design/target-architecture.md (ターゲットアーキテクチャ)| チェック項目 | 説明 | 重要度 |
|---|---|---|
| API使用 | 選定エディションで利用可能なAPIのみ使用しているか | Critical |
| ストレージ | 選定エディションで対応するストレージのみ指定しているか | Critical |
| 機能参照 | 認証・SQL・GraphQL等がエディション制約に適合しているか | Critical |
| 依存関係 | build.gradleの依存がエディションに適合しているか | High |
| 設定ファイル | scalardb.propertiesがエディションテンプレートに準拠しているか | High |
| チェック項目 | 説明 | 重要度 |
|---|---|---|
| パーティションキー | 均等分散されるか、ホットスポットがないか | Critical |
| クラスタリングキー | 順序付けが適切か、範囲スキャンに対応しているか | High |
| 二次インデックス | 使用が最小限か、代替設計がないか | Medium |
| データ型 | ScalarDB対応型を使用しているか | High |
| Namespace設計 | サービス境界と一致しているか | High |
| チェック項目 | 説明 | 重要度 |
|---|---|---|
| 単一サービス | DistributedTransactionが適切に使用されているか | High |
| 2PC使用箇所 | TwoPhaseCommitが必要最小限か、代替(Saga)で置換可能か | Critical |
| 分離レベル | SERIALIZABLE/SNAPSHOT選択が適切か | High |
| デッドロック | 複数テーブルアクセスの順序が一貫しているか | High |
| トランザクション粒度 | 長すぎるトランザクションがないか | Medium |
| チェック項目 | 説明 | 重要度 |
|---|---|---|
| namespace_mapping | 全Namespaceがマッピングされているか | Critical |
| default_storage | デフォルトストレージが指定されているか | High |
| 2PC制約 | Multi-Storage + 2PCの制約を理解しているか | High |
| データ整合性 | ストレージ間のデータ整合性方針が明確か | High |
出力: reports/03_design/scalardb-design-review.md
Task(subagent_type="Explore", description="Scan generated code", prompt="
以下のディレクトリ内のScalarDB関連コードを調査してください:
- generated/{service}/ の全Javaファイル
以下の観点で情報を収集:
1. リポジトリ実装クラス一覧
2. トランザクション管理パターン
3. エンティティ/値オブジェクトの定義
4. 設定ファイルの内容
5. build.gradleの依存関係
")
.claude/rules/scalardb-coding-patterns.md に基づくチェック:
| チェック項目 | 対応ルール | 重要度 |
|---|---|---|
| プロジェクト構造 | §1 | High |
| 命名規則 | §2 | High |
| 値オブジェクト | §3 | Critical |
| エンティティ | §4 | Critical |
| リポジトリ | §5 | Critical |
| トランザクション | §6 | Critical |
| 設定 | §7/7A/7B | Critical |
| 例外ハンドリング | §8 | High |
| エディション | チェック内容 |
|---|---|
| OSS | Core API のみ使用、SQL/Spring Data未使用、TransactionFactory直接初期化 |
| Enterprise Standard | Cluster Client設定、SQL/Spring Data使用可、認証設定 |
| Enterprise Premium | Standard + GraphQL関連コード |
| チェック項目 | 説明 | 重要度 |
|---|---|---|
| try-catch-abort | 全トランザクションにabort処理があるか | Critical |
| close処理 | TransactionManager/Sessionのcloseがあるか | Critical |
| 例外変換 | TransactionException→ドメイン例外変換があるか | High |
| リトライ | CrudConflictExceptionのリトライ処理 | Medium |
| 楽観ロック | versionチェックが実装されているか | High |
値オブジェクト:
record 使用またはimmutableof, generate)エンティティ:
create)reconstitute)version フィールドリポジトリ:
出力: reports/03_design/scalardb-code-review.md
---