five-layer-quality.md
# 五層品質モデル > 汎用ガイド | 全プロジェクト共通 --- ## 概要 五層品質モデルは、AI生成物(コード、ドキュメント、設定等)の品質を段階的に評価するフレームワークである。下層から順に検証することで、効率的な品質保証を実現する。 ``` ┌─────────────────────────────────────────────────┐ │ L4: 品質性 (Quality) │ │ 「高品質か?」 │ ├─────────────────────────────────────────────────┤ │ L3: 機能性 (Functionality) │ │ 「正しく動作するか?」 │ ├─────────────────────────────────────────────────┤ │ L2: 実行性 (Executability) │ │ 「実行できるか?」 │ ├─────────────────────────────────────────────────┤ │ L1: 正当性 (Validity) │ │ 「形式的に正しいか?」 │ ├─────────────────────────────────────────────────┤ │ L0: 存在性 (Existence) │ │ 「存在するか?」 │ └─────────────────────────────────────────────────┘ ``` --- ## 1. 各層の詳細 ### L0: 存在性 (Existence) **問い**: プロジェクトが存在し、基本構造があるか? | チェック項目 | 配点 | 説明 | | ------------------------ | ---- | --------------------------------- | | プロジェクトディレクトリ | 30 | ディレクトリが存在する | | package.json | 25 | Node.jsプロジェクトとして認識可能 | | Git管理 | 20 | .gitディレクトリが存在 | | CLAUDE.md | 15 | Agent設定が存在 | | srcディレクトリ | 10 | ソースコードの配置場所 | **合格基準**: 50点以上 **失敗時の対応**: ```bash # プロジェクト初期化 mkdir my-project && cd my-project npm init -y git init touch CLAUDE.md mkdir src ``` --- ### L1: 正当性 (Validity) **問い**: コードが形式的に正しいか? | チェック項目 | 配点 | 説明 | | -------------- | ---- | ------------------- | | TypeScript設定 | 50 | tsconfig.jsonが存在 | | 依存関係 | 30 | node_modulesが存在 | | Lintエラー | 20 | ESLintエラーがない | **合格基準**: 60点以上 **失敗時の対応**: ```bash # 依存関係のインストール npm install # TypeScriptエラーの確認 npx tsc --noEmit # Lintエラーの確認 npm run lint ``` --- ### L2: 実行性 (Executability) **問い**: ビルドが成功し、起動できるか? | チェック項目 | 配点 | 説明 | | ---------------- | ---- | ------------------------- | | ビルドスクリプト | 30 | package.jsonにbuildが定義 | | ビルド成果物 | 40 | .next, dist, buildが存在 | | 起動スクリプト | 30 | dev/startが定義 | **合格基準**: 60点以上 **失敗時の対応**: ```bash # ビルド実行 npm run build # 開発サーバー起動 npm run dev ``` --- ### L3: 機能性 (Functionality) **問い**: テストが通過し、機能が動作するか? | チェック項目 | 配点 | 説明 | | ------------------ | ---- | ---------------------------- | | テストディレクトリ | 30 | **tests**, tests, testが存在 | | テストスクリプト | 20 | package.jsonにtestが定義 | | テスト通過率 | 50 | テストが成功する | **合格基準**: 50点以上 **失敗時の対応**: ```bash # テスト実行 npm run test # テストファイル作成 mkdir __tests__ touch __tests__/example.test.ts ``` --- ### L4: 品質性 (Quality) **問い**: コードが高品質か? | チェック項目 | 配点 | 説明 | | ---------------- | ---- | ---------------------- | | README.md | 15 | プロジェクト説明が存在 | | CLAUDE.md | 15 | Agent設定が充実 | | ESLint設定 | 10 | Lint設定ファイルが存在 | | Prettier設定 | 10 | フォーマット設定が存在 | | ドキュメント | 25 | docsディレクトリ等 | | コードカバレッジ | 25 | テストカバレッジ基準 | **合格基準**: 50点以上 --- ## 2. スコアリング ### 2.1 総合スコア計算 各層に重み付けを適用: | 層 | 重み | 理由 | | --- | ---- | ---------------------- | | L0 | 10% | 基本的な前提条件 | | L1 | 20% | 形式的正しさは重要 | | L2 | 30% | 実行できることが最重要 | | L3 | 25% | 機能の正しさ | | L4 | 15% | 品質は付加価値 | ``` 総合スコア = Σ(層スコア × 重み) ``` ### 2.2 品質レベル判定 | レベル | スコア範囲 | 状態 | | ---------- | ---------- | ------ | | Excellent | 90-100 | 優秀 | | Good | 80-89 | 良好 | | Acceptable | 60-79 | 許容 | | Warning | 40-59 | 要注意 | | Critical | 0-39 | 重大 | --- ## 3. ゲート方式 下層が未通過の場合、上層はスキップされる: ``` L0 未通過 → L1〜L4 すべてスキップ L1 未通過 → L2〜L4 スキップ L2 未通過 → L3〜L4 スキップ L3 未通過 → L4 スキップ ``` **理由**: - 存在しないものの品質は測定不能 - ビルドできないコードのテストは無意味 - 効率的な問題特定が可能 --- ## 4. 改善の優先順位 ### 4.1 Critical/Warning状態の場合 ``` 1. L0の問題を解決(存在性の確保) 2. L1の問題を解決(形式的正しさ) 3. L2の問題を解決(実行可能性) 4. L3/L4は後回し ``` ### 4.2 Acceptable状態の場合 ``` 1. L3のテスト充実 2. L4のドキュメント整備 3. コードカバレッジ向上 ``` --- ## 5. mirrorでの活用 ### 5.1 ダッシュボード確認 ``` http://localhost:3000/ # ホーム(概要) http://localhost:3000/quality # 詳細ダッシュボード http://localhost:3000/projects # Qualityタブ http://localhost:3000/evolution # 進化×品質相関 ``` ### 5.2 優先アクションの確認 mirrorは自動的に優先対応を提案: - Critical/Warningプロジェクトを特定 - 具体的な改善アクションを表示 --- ## 6. 原則 ### 6.1 鏡であれ、門番であるな 品質システムは: - 状態を映し出す(鏡) - 気づきを促す(問い) - 強制はしない(自律を尊重) ### 6.2 監視ではなくサポート 目的は: - 問題の早期発見 - 改善への道筋提示 - プロジェクト横断パターンの検出 --- ## 参照 - AI Agent運用規約 - Git・GitHub運用ガイド - 品質システム設計