Claude-skill-registry code-quality-rules

実装時に遵守すべきコード品質ルール(500行ルール、固定アーキテクチャ、SOLID原則、命名規則、テストカバレッジ要件)を定義

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/code-quality-rules" ~/.claude/skills/majiayu000-claude-skill-registry-code-quality-rules && rm -rf "$T"
manifest: skills/data/code-quality-rules/SKILL.md
source content

コード品質ルール

本ドキュメントは、実装時に遵守すべきコード品質ルールを定義します。 すべてのエージェントはこのルールに従って実装を行います。


1. 500行ルール

1.1 ルール定義

1ファイルあたり500行を上限とします。 これはクリーンアーキテクチャ/オニオンアーキテクチャの単一責任の原則に基づきます。

条件対応
500行以下OK
500行超過自動分割を実行

1.2 500行を超えた場合の対応

  1. 実装時にエージェントが自動で分割を実行
  2. 分割後に品質チェックを再実行
  3. すべて500行以下になるまで繰り返し
  4. 分割が技術的に困難な場合のみTODOに記録

1.3 分割の指針

レイヤー分割方針
DomainEntity → Value Object抽出、Domain Service分離
ApplicationUseCase分割、Query/Command分離(CQRS)
InfrastructureRepository実装分割、外部サービスAdapter分離
PresentationController分割、DTO/Transformer分離
Frontendコンポーネント分割、カスタムHook抽出

1.4 例外

以下の場合は500行超過を許容:

  • 自動生成ファイル(マイグレーション、型定義等)
  • 設定ファイル
  • テストファイル(ただし1000行を上限とする)

2. アーキテクチャ選定戦略

Adaptive Strategy: プロジェクトの特性やフレームワークに合わせて最適なアーキテクチャを選択する。 一律の「固定アーキテクチャ」強制は廃止。

2.1 優先順位(Decision Tree)

実装エージェントは以下の優先順位で採用するアーキテクチャを決定します。

  1. Project Definition (最優先)
    • docs/architecture.md
      または設計書(基本・詳細)に明記されたアーキテクチャ。
  2. Framework Convention (フレームワーク標準)
    • Next.js (App Router), NestJS, Rails, Django 等、フレームワークが構造を規定している場合はそれに従う。
    • 禁止: フレームワークの流儀に逆らって無理にオニオンアーキテクチャ等を適用すること。
  3. Recommended Patterns (デフォルト)
    • 上記に該当しない場合、以下の標準パターンを採用する。

2.2 推奨パターン(Default Fallback)

プロジェクト固有の定義がない場合の標準セットです。

領域/規模推奨パターンプロンプト指定備考
Backend (Simple)Layered (Controller-Service-Repository)
Layered Architecture
一般的なWeb API
Backend (Complex)Onion Architecture + DDD
Onion Architecture
ビジネスロジックが複雑な場合
Frontend (App)Framework Standard (e.g. Next.js App Router)
Next.js App Router
フレームワーク推奨に従う
Frontend (Component)Atomic Design
Atomic Design
大規模なUIコンポーネント設計時
Script/ToolSingle File / Module based
Modular
過剰なレイヤー化は禁止

2.3 プロンプト最適化ガイド(LLM事前学習活用)

選択されたアーキテクチャ名をプロンプトに含めるだけで、詳細説明は省略可能です(80-90%トークン削減)。

✅ 正しい指示の例

// Next.jsの場合
"Next.js App Router標準構成。Server ComponentsとClient Componentsを適切に分離。"

// 複雑なドメインの場合
"オニオンアーキテクチャ + TDD。Domain層の依存を排除。"

// 小規模ツールの場合
"シンプルなモジュール構成。過剰な抽象化は避けること。"

3. 設計原則

3.1 SOLID原則

原則説明チェック項目
Single Responsibility単一責任各クラス・関数は1つの責務のみ
Open/Closed開放閉鎖拡張に開き、修正に閉じている
Liskov Substitutionリスコフ置換サブタイプは親を代替可能
Interface Segregationインターフェース分離必要なインターフェースのみ実装
Dependency Inversion依存性逆転抽象に依存、具象に依存しない

3.2 その他の原則

原則説明
DRYDon't Repeat Yourself(重複を避ける)
YAGNIYou Aren't Gonna Need It(必要になるまで作らない)
KISSKeep It Simple, Stupid(シンプルに保つ)

4. 命名規則

4.1 共通

対象規則
ファイル名kebab-case
user-repository.ts
ディレクトリ名kebab-case
use-cases/
定数UPPER_SNAKE_CASE
MAX_RETRY_COUNT

4.2 バックエンド

対象規則
クラス名PascalCase
UserRepository
メソッド名camelCase
findById()
変数名camelCase
userName
テーブル名snake_case, 複数形
users
カラム名snake_case
created_at

4.3 フロントエンド

対象規則
コンポーネントPascalCase
UserCard.tsx
カスタムHookcamelCase, use接頭辞
useAuth()
変数名camelCase
isLoading
イベントハンドラhandle接頭辞
handleClick

5. テストカバレッジ要件

5.1 カバレッジ閾値

対象閾値
新規コード80%以上
全体70%以上(推奨)

5.2 テストの種類

種類対象優先度
Unit Testドメインロジック、ユーティリティ
Integration TestAPI、DB連携
E2E Testユーザーシナリオ

6. コードフォーマット

6.1 必須ツール

言語/フレームワークLinterFormatter
TypeScriptESLintPrettier
JavaScriptESLintPrettier
PHPPHP_CodeSnifferPHP-CS-Fixer
PythonRuff / Flake8Black
Gogolangci-lintgofmt

6.2 コミット前チェック

以下のチェックをコミット前に実行:

  1. Lint(エラー0件)
  2. Format(差分0件)
  3. Type Check(エラー0件)
  4. Unit Test(全件パス)

7. 禁止事項

7.1 絶対禁止

禁止事項理由
any
型の使用(TypeScript)
型安全性の破壊
@ts-ignore
/
@ts-expect-error
型エラーの隠蔽
空のcatchブロック
catch(e) {}
エラーの握りつぶし
機密情報のハードコードセキュリティリスク
console.log
の本番コード残存
デバッグコードの漏洩
テスト削除による「修正」品質の低下
todo!
,
unimplemented!
の残存
実装漏れ(リリースビルドでパニックする)

7.2 原則禁止(例外要申請)

禁止事項例外条件
新規依存パッケージの追加既存で代替不可の場合のみ
グローバル状態の使用明確な理由がある場合のみ
直接DOM操作(React/Vue)パフォーマンス上必要な場合のみ

変更履歴

日付バージョン変更内容
2026-01-021.0.0初版作成(ai-frameworkからの取り込み)