ZOZO Tech Blogの記事で、商品基盤部の藤本氏が、AIエージェント(主にClaude Code)にコーディングルールを守らせるための取り組みを紹介しています。課題として「ルール同士の矛盾や重複」と「ルール遵守がレビューに依存していること」の2点を挙げ、Java向けのアーキテクチャ検証ツールArchUnitを使ってルールを機械的に検証する運用を行っています。
具体例として、リフレクション禁止ルールでは従来の型参照ベースの検査で誤検出が発生していたため、改善版ではリフレクションの「メソッド呼び出し」に限定し、java.lang.ClassのforNameやgetDeclaredMethodなどを明示的に監視対象にしています。UseCase層への@Transactionalアノテーション必須化ルールも設けつつ、特定のクラスでは例外的にREPEATABLE_READの分離レベルを許可しています。
ルール文書は背景説明用の.claude/knowledge/と、強制基準用の.claude/rules/にディレクトリを分けて管理し、CI/CDでは./gradlew checkを必須のゲートとして実行しています。
出典が伝えている要点
- 記事はZOZO Tech Blogに掲載され、著者は商品基盤部所属の藤本氏である
- 記事の発行日は2026年9月7日である
- AIエージェント(主にClaude Code)を使った開発における課題として「ルール同士の矛盾や重複」を挙げている
- もう一つの課題として「ルール遵守をレビューに依存していること」を挙げている
- ArchUnitを用いてコーディングルールを機械的に検証する運用を行っている
- リフレクション禁止ルールについて、従来の型参照ベースの検査では誤検出が発生していた
- 改善版ではリフレクションの「メソッド呼び出し」に限定して検査するようにした
- 改善版ではjava.lang.ClassのforNameやgetDeclaredMethodなどを明示的に監視対象としている
- UseCase層に@Transactionalアノテーションを必須化するルールがある
- 特定のクラスでは例外的にREPEATABLE_READの分離レベルを許可している
- ルール文書は.claude/knowledge/(背景説明用)と.claude/rules/(強制基準用)のディレクトリに分けて管理している
- CI/CDで./gradlew checkを必須のゲートとして実行している