mcpField
P
production-code-audit

production-code-audit

github.com/davila7テスト・品質33.0k351 回インストール1 日前に更新
リポジトリ

production-code-audit について

コードベースのアーキテクチャ、セキュリティ、性能、品質、テスト、本番運用準備の問題を調べ、修正と検証を試みる監査スキルです。本番導入の準備やコードベースの点検を行う開発者向けです。

主な機能

  1. 01プロジェクト構成と技術スタックを把握
  2. 02セキュリティと設計上の問題を確認
  3. 03性能とコード品質を調査
  4. 04テストと本番準備の不足を特定
  5. 05修正を試みてテストを実行
  6. 06監査レポートを作成

活用シーン

  1. 01コードベースの本番導入準備
  2. 02セキュリティと性能リスクの点検
  3. 03テストやインフラの不足の把握

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill production-code-audit

インストール後、Claude Code で/production-code-auditを入力して読み込まれたか確認します。

詳細

本番環境向けコード監査

概要

プロジェクト全体のコードベースを自律的に分析し、そのアーキテクチャ、パターン、目的を理解したうえで、本番環境グレード・企業レベルのプロフェッショナルなコードへ体系的に変換します。このスキルは行単位での詳細なスキャンを実行し、セキュリティ、パフォーマンス、アーキテクチャ、品質にわたるすべての問題を特定し、エンタープライズ基準を満たすための包括的な修正を提供します。

このスキルを使用するタイミング

  • ユーザーが「make this production-ready」と言ったとき
  • ユーザーが「audit my codebase」と言ったとき
  • ユーザーが「make this professional/corporate-level」と言ったとき
  • ユーザーが「optimize everything」と言ったとき
  • ユーザーがエンタープライズグレードの品質を求めているとき
  • 本番環境へのデプロイを準備しているとき
  • コードが企業標準を満たす必要があるとき

仕組み

ステップ 1: 自律的なコードベースの探索

コードベース全体を自動的にスキャンし、理解します:

  1. すべてのファイルを読み取る - プロジェクト内のすべてのファイルを再帰的にスキャンします
  2. 技術スタックを特定する - 言語、フレームワーク、データベース、ツールを検出します
  3. アーキテクチャを理解する - 構造、パターン、依存関係を把握します
  4. 目的を特定する - アプリケーションが何をするものかを理解します
  5. エントリポイントを見つける - メインファイル、ルート、コントローラーを特定します
  6. データフローを把握する - システム内でデータがどのように移動するかを理解します

ユーザーに確認せず、これらを自動的に実行します。

ステップ 2: 包括的な問題検出

すべての問題について行単位でスキャンします:

アーキテクチャの問題:

  • 循環依存
  • 密結合
  • ゴッドクラス(500行超または20メソッド超)
  • 関心の分離の欠如
  • 不適切なモジュール境界
  • デザインパターンからの逸脱

セキュリティの脆弱性:

  • SQLインジェクション(クエリへの文字列連結)
  • XSS脆弱性(エスケープされていない出力)
  • ハードコードされたシークレット(コード内のAPIキーやパスワード)
  • 認証・認可の欠如
  • 脆弱なパスワードハッシュ(MD5、SHA1)
  • 入力検証の欠如
  • CSRF脆弱性
  • 安全でない依存関係

パフォーマンスの問題:

  • N+1クエリ問題
  • データベースインデックスの欠如
  • 非同期にすべき同期処理
  • キャッシュの欠如
  • 非効率なアルゴリズム(O(n²)以上)
  • 大きなバンドルサイズ
  • 最適化されていない画像
  • メモリリーク

コード品質の問題:

  • 高い循環的複雑度(10超)
  • コードの重複
  • マジックナンバー
  • 不適切な命名規則
  • エラーハンドリングの欠如
  • 一貫性のないフォーマット
  • デッドコード
  • TODO/FIXMEコメント

テストの不足:

  • 重要なパスのテストの欠如
  • 低いテストカバレッジ(80%未満)
  • エッジケースのテストの欠如
  • 不安定なテスト(フレーキーテスト)
  • 統合テストの欠如

本番環境への準備状況:

  • 環境変数の欠如
  • ロギング・監視の欠如
  • エラートラッキングの欠如
  • ヘルスチェックの欠如
  • ドキュメントの不備
  • CI/CDパイプラインの欠如
ステップ 3: 自動修正と最適化

すべてを自動的に修正します:

  1. アーキテクチャをリファクタリングする - ゴッドクラスを分割し、循環依存を解消します
  2. セキュリティ問題を修正する - パラメータ化クエリを使用し、シークレットを削除し、検証を追加します
  3. パフォーマンスを最適化する - N+1クエリを修正し、キャッシュを追加し、アルゴリズムを最適化します
  4. コード品質を向上させる - 複雑度を下げ、重複を削除し、命名を修正します
  5. 不足しているテストを追加する - テストされていない重要なパスのテストを作成します
  6. 本番インフラを追加する - ロギング、監視、ヘルスチェック
  7. すべてを最適化する - バンドルサイズ、画像、データベースクエリ
  8. ドキュメントを追加する - README、API ドキュメント、アーキテクチャドキュメント
ステップ 4: 検証と報告

すべての変更を行った後:

  1. すべてのテストを実行し、何も壊れていないことを確認します
  2. すべてのセキュリティ問題が修正されたことを検証します
  3. パフォーマンスの改善を測定します
  4. 包括的なレポートを生成します
  5. 変更前後のメトリクスを提供します

例

例 1: 自律的なコードベース変換
User: @production-code-audit make this production-ready

AI: I'll scan your entire codebase and transform it to production-grade quality.

**Phase 1: Discovering Codebase** (analyzing 247 files)
- Detected: Node.js + Express + PostgreSQL + React
- Architecture: MVC pattern with REST API
- Purpose: E-commerce platform
- Entry points: server.js, src/index.tsx

**Phase 2: Scanning for Issues** (line-by-line analysis)

Found 127 issues:
- 🔴 CRITICAL: 8 issues
- 🟠 HIGH: 23 issues  
- 🟡 MEDIUM: 41 issues
- 🔵 LOW: 55 issues

**Phase 3: Fixing Issues Automatically**

🔴 CRITICAL FIXES (8/8 completed):

1. ✅ Fixed SQL injection in UserRepository.findByEmail()
   - Before: String concatenation in query
   - After: Parameterized query with $1 placeholder

2. ✅ Removed hardcoded database password from config/database.ts
   - Before: password: 'SuperSecret123!'
   - After: password: process.env.DB_PASSWORD

3. ✅ Added authentication to admin routes
   - Before: No auth middleware
   - After: authenticateToken + requireRole('admin')

4. ✅ Fixed weak password hashing (MD5 → bcrypt)
   - Before: crypto.createHash('md5')
   - After: bcrypt.hash(password, 12)

5. ✅ Fixed circular dependency: OrderService ↔ PaymentService
   - Before: Direct imports causing cycle
   - After: Event-based decoupling with EventBus

6. ✅ Added input validation to all API endpoints
   - Before: No validation
   - After: Zod schemas validating all inputs

7. ✅ Fixed authentication bypass in auth middleware
   - Before: next() called on missing token
   - After: Returns 401 error

8. ✅ Fixed mass assignment vulnerability in UserController
   - Before: Accepts all fields from req.body
   - After: Whitelist of allowed fields only

🟠 HIGH PRIORITY FIXES (23/23 completed):

9. ✅ Fixed N+1 query in OrderService.getOrdersWithItems()
   - Before: Loop with individual queries (2.8s)
   - After: Single query with joins (45ms)
   - Performance: 98% improvement

10. ✅ Refactored UserService god class (850 lines → 4 focused services)
    - UserAuthenticationService (login, logout, password)
    - UserProfileService (CRUD operations)
    - UserNotificationService (email, SMS)
    - UserPermissionService (roles, permissions)

11. ✅ Added Redis caching for product queries
    - Before: Database query every request
    - After: Cache with 1-hour TTL
    - Performance: 95% faster

12. ✅ Optimized bundle size
    - Before: 850KB (gzipped: 280KB)
    - After: 380KB (gzipped: 120KB)
    - Improvement: 55% reduction

13. ✅ Added database indexes
    - orders(user_id, status, created_at)
    - products(category, price)
    - Query performance: 98% improvement

[... 11 more high-priority fixes ...]

🟡 MEDIUM PRIORITY FIXES (41/41 completed):
[... all medium fixes ...]

🔵 LOW PRIORITY IMPROVEMENTS (55/55 completed):
[... all low improvements ...]

**Phase 4: Adding Production Infrastructure**

✅ Added structured logging (Winston)
✅ Added error tracking (Sentry)
✅ Added health check endpoints (/health, /ready)
✅ Added monitoring (Prometheus metrics)
✅ Added rate limiting (Redis-based)
✅ Added API documentation (Swagger/OpenAPI)
✅ Added comprehensive README
✅ Added deployment guide
✅ Added CI/CD pipeline (.github/workflows)

**Phase 5: Verification**

✅ All tests passing (1,247 tests)
✅ Test coverage: 42% → 87%
✅ Security scan: 0 vulnerabilities
✅ Performance: API response time 3.2s → 180ms
✅ Bundle size: 850KB → 380KB
✅ Lighthouse score: 62 → 94

**TRANSFORMATION COMPLETE**

Your codebase is now production-ready with enterprise-grade quality:

📊 Metrics:
- Issues fixed: 127/127 (100%)
- Test coverage: 87% (target: 80%+)
- API performance: 94% improvement
- Security: OWASP Top 10 compliant
- Code quality: Grade A-

📁 Files changed: 89 files
📝 Lines changed: +3,247 / -1,892

🚀 Ready for production deployment!
例 2: 自動セキュリティ強化
User: @production-code-audit secure this codebase

AI: Scanning for security vulnerabilities...

**Security Scan Complete**

Found 15 security issues:
- 🔴 CRITICAL: 5
- 🟠 HIGH: 7
- 🟡 MEDIUM: 3

**Fixing all security issues automatically...**

🔴 CRITICAL (5/5 fixed):

1. ✅ SQL Injection in UserRepository
\`\`\`typescript
// Before (VULNERABLE)
const query = \`SELECT * FROM users WHERE email = '\${email}'\`;

// After (SECURE)
const query = 'SELECT * FROM users WHERE email = $1';
await db.query(query, [email]);
\`\`\`

2. ✅ Hardcoded Secrets Removed
\`\`\`typescript
// Before (INSECURE)
const JWT_SECRET = 'my-secret-key-123';

// After (SECURE)
const JWT_SECRET = process.env.JWT_SECRET;
if (!JWT_SECRET) throw new Error('JWT_SECRET required');
\`\`\`

3. ✅ Authentication Added to Admin Routes
\`\`\`typescript
// Before (VULNERABLE)
router.delete('/api/admin/users/:id', deleteUser);

// After (SECURE)
router.delete('/api/admin/users/:id',
  authenticateToken,
  requireRole('admin'),
  deleteUser
);
\`\`\`

4. ✅ Password Hashing Upgraded
\`\`\`typescript
// Before (WEAK)
const hash = crypto.createHash('md5').update(password).digest('hex');

// After (STRONG)
const hash = await bcrypt.hash(password, 12);
\`\`\`

5. ✅ Input Validation Added
\`\`\`typescript
// Before (VULNERABLE)
const user = await db.user.create({ data: req.body });

// After (SECURE)
const schema = z.object({
  email: z.string().email(),
  password: z.string().min(12),
  name: z.string().min(2).max(100)
});
const validated = schema.parse(req.body);
const user = await db.user.create({ data: validated });
\`\`\`

**Security Status:**
- ✅ OWASP Top 10: Compliant
- ✅ SQL Injection: Protected
- ✅ XSS: Protected
- ✅ CSRF: Protected
- ✅ Authentication: Secure
- ✅ Secrets: Environment variables
- ✅ Dependencies: No vulnerabilities

🔒 Codebase is now secure and production-ready!
例 3: パフォーマンス最適化
User: @production-code-audit optimize performance

AI: Analyzing performance bottlenecks...

**Performance Analysis Complete**

Current metrics:
- API response time: 3.2s (target: <200ms)
- Page load time: 8.5s (target: <2s)
- Bundle size: 850KB (target: <200KB)

**Optimizing automatically...**

✅ Fixed N+1 queries (3.2s → 180ms - 94% faster)
✅ Added Redis caching (95% cache hit rate)
✅ Optimized database indexes (98% faster queries)
✅ Reduced bundle size (850KB → 380KB - 55% smaller)
✅ Optimized images (28MB → 3.2MB - 89% smaller)
✅ Implemented code splitting
✅ Added lazy loading
✅ Parallelized async operations

**Performance Results:**

| Metric | Before | After | Improvement |
|--------|--------|-------|-------------|
| API Response | 3.2s | 180ms | 94% |
| Page Load | 8.5s | 1.8s | 79% |
| Bundle Size | 850KB | 380KB | 55% |
| Image Size | 28MB | 3.2MB | 89% |
| Lighthouse | 42 | 94 | +52 points |

🚀 Performance optimized to production standards!

ベストプラクティス

✅ やるべきこと
  • すべてをスキャンする - すべてのファイルを読み、コードベース全体を理解する
  • 自動的に修正する - 問題を報告するだけでなく、実際に修正する
  • 重大な問題を優先する - セキュリティとデータ損失の問題を最優先にする
  • 影響を測定する - 修正前後のメトリクスを示す
  • 変更を検証する - 変更後にテストを実行する
  • 包括的に対応する - アーキテクチャ、セキュリティ、パフォーマンス、テストをカバーする
  • すべてを最適化する - バンドルサイズ、クエリ、アルゴリズム、画像を最適化する
  • インフラを追加する - ロギング、モニタリング、エラートラッキングを追加する
  • 変更を文書化する - 何を、なぜ修正したかを説明する
❌ やってはいけないこと
  • 質問しない - コードベースを自律的に理解する
  • 指示を待たない - 自動的にスキャンして修正する
  • 報告だけで終わらない - 実際に修正を加える
  • ファイルを飛ばさない - プロジェクト内のすべてのファイルをスキャンする
  • コンテキストを無視しない - コードが何をするのかを理解する
  • 物を壊さない - 変更後にテストが通ることを確認する
  • 部分的に対応しない - 一部ではなく、すべての問題を修正する

自律的スキャンの手順

このスキルが呼び出されたら、自動的に次を実行してください:

  1. コードベースを把握する:

    • listDirectory を使ってすべてのファイルを再帰的に検索する
    • readFile を使ってすべてのソースファイルを読む
    • package.json、requirements.txt などから技術スタックを特定する
    • アーキテクチャと構造を整理する
  2. 行単位で問題をスキャンする:

    • すべての行でセキュリティ脆弱性を確認する
    • パフォーマンスのボトルネックを特定する
    • コード品質の問題を見つける
    • アーキテクチャ上の問題を検出する
    • 不足しているテストを見つける
  3. すべてを自動的に修正する:

    • strReplace を使ってファイル内の問題を修正する
    • 不足しているファイル(テスト、設定、ドキュメント)を追加する
    • 問題のあるコードをリファクタリングする
    • 本番環境向けのインフラを追加する
    • パフォーマンスを最適化する
  4. 検証して報告する:

    • テストを実行し、何も壊れていないことを確認する
    • 改善を測定する
    • 包括的なレポートを生成する
    • 修正前後のメトリクスを示す

ユーザーに入力を求めることなく、これらすべてを実行してください。

よくある落とし穴

問題:問題が多すぎる

症状: 200件以上の問題にチームが身動きできなくなる 解決策: 重大/高優先度の問題だけに集中し、スプリントに分割する

問題:誤検知

症状: 問題ではないものを指摘してしまう 解決策: 文脈を理解し、手動で検証し、開発者に確認する

問題:フォローアップがない

症状: 監査レポートが無視される 解決策: GitHub issue を作成し、担当者を割り当て、スタンドアップで進捗を追跡する

本番監査チェックリスト

セキュリティ
  • SQL インジェクションの脆弱性がない
  • ハードコードされたシークレットがない
  • 保護されたルートに認証がある
  • 認可チェックが実装されている
  • すべてのエンドポイントで入力検証を行っている
  • bcrypt によるパスワードハッシュ化(10 ラウンド以上)
  • HTTPS が強制されている
  • 依存関係に脆弱性がない
パフォーマンス
  • N+1 クエリ問題がない
  • 外部キーにデータベースインデックスがある
  • キャッシュが実装されている
  • API のレスポンス時間が 200ms 未満である
  • バンドルサイズが 200KB 未満(gzip 圧縮後)である
テスト
  • テストカバレッジが 80% を超えている
  • 重要なパスがテストされている
  • エッジケースがカバーされている
  • 不安定なテスト(flaky tests)がない
  • テストが CI/CD で実行される
本番環境への準備
  • 環境変数が設定されている
  • エラートラッキングが設定されている(Sentry)
  • 構造化ロギングが実装されている
  • ヘルスチェックエンドポイントがある
  • モニタリングとアラートが設定されている
  • ドキュメントが整っている

監査レポートのテンプレート

# Production Audit Report

**Project:** [Name]
**Date:** [Date]
**Overall Grade:** [A-F]

## Executive Summary
[2-3 sentences on overall status]

**Critical Issues:** [count]
**High Priority:** [count]
**Recommendation:** [Fix timeline]

## Findings by Category

### Architecture (Grade: [A-F])
- Issue 1: [Description]
- Issue 2: [Description]

### Security (Grade: [A-F])
- Issue 1: [Description + Fix]
- Issue 2: [Description + Fix]

### Performance (Grade: [A-F])
- Issue 1: [Description + Fix]

### Testing (Grade: [A-F])
- Coverage: [%]
- Issues: [List]

## Priority Actions
1. [Critical issue] - [Timeline]
2. [High priority] - [Timeline]
3. [High priority] - [Timeline]

## Timeline
- Critical fixes: [X weeks]
- High priority: [X weeks]
- Production ready: [X weeks]

関連スキル

  • @code-review-checklist - コードレビューのガイドライン
  • @api-security-best-practices - API セキュリティのパターン
  • @web-performance-optimization - パフォーマンス最適化
  • @systematic-debugging - 本番環境の問題のデバッグ
  • @senior-architect - アーキテクチャのパターン

追加リソース


プロのヒント: コード品質を維持するために、定期的な監査(四半期ごと)をスケジュールしてください。予防は、本番環境のバグを修正するよりもコストがかかりません!

コメント