permafrost0

code-analyze

0
0
# Install this skill:
npx skills add permafrost0/02_skills_agents --skill "code-analyze"

Install specific skill from multi-skill repository

# Description

コード品質・セキュリティチェックの基準。Subagentから自動preloadされる知識ベース。

# SKILL.md


name: code-analyze
description: コード品質・セキュリティチェックの基準。Subagentから自動preloadされる知識ベース。
user-invocable: false


コード分析基準 (code-analyze)

このドキュメントはコードレビュー・セキュリティ監査の判断基準を定義する知識ベースです。
pr-reviewer Agent の skills: [code-analyze] によって自動的にコンテキストに注入されます。


Quality Check(品質チェック)

関数・メソッド

  • 関数長: 1関数あたり最大30行を目安。超過する場合は分割を推奨
  • 引数数: 引数は最大4つまで。5つ以上はオブジェクト化を検討
  • ネスト深度: 最大3レベルまで。深いネストはEarly Returnやヘルパー関数で解消

命名規則

  • 変数・関数: snake_case(Python)
  • 定数: UPPER_SNAKE_CASE
  • クラス: PascalCase
  • 名前は意図が明確であること(x, tmp, data などの曖昧な名前は警告)

設計原則

  • DRY: 同一ロジックの重複は共通関数化
  • 単一責任: 1関数・1クラスは1つの責任のみ
  • エラーハンドリング: 外部リソースアクセス(DB・ファイル・ネットワーク)は例外処理必須

リソース管理

  • ファイル・DB接続は with 文またはクローズ処理が必須
  • close() の呼び忘れはリソースリークとして MEDIUM 以上で報告

Security Scan(セキュリティスキャン)

CRITICAL(即時修正必須)

脆弱性 検出パターン 対策
SQLインジェクション f-string / % / format() でのクエリ構築 パラメータ化クエリ(? プレースホルダ)を使用
コマンドインジェクション subprocessshell=True + 外部入力 shell=False + リスト形式の引数
ハードコード認証情報 ソースコードに直書きされたパスワード・トークン・キー 環境変数・シークレット管理サービスへ移行

HIGH(早急に対処)

脆弱性 検出パターン 対策
弱いハッシュアルゴリズム hashlib.md5() / hashlib.sha1() でのパスワードハッシュ bcrypt / argon2 / scrypt を使用
認証情報の平文ログ出力 print(password) / logger.*(password) ログにパスワード・トークンを含めない
認可チェック欠如 削除・更新操作前に権限確認がない 操作前に認証・認可を確認

MEDIUM(計画的に対処)

脆弱性 検出パターン 対策
入力検証なし ユーザー入力を直接使用 バリデーション・サニタイズを追加
リソースリーク DB接続・ファイルの close() 忘れ with 文でリソース管理
デバッグ情報の漏洩 本番コードでの print() デバッグ出力 ロギングフレームワークに統一

報告フォーマット

分析結果は以下の表形式で報告すること:

## コードレビューレポート

### セキュリティ問題

| 種別 | 深刻度 | 場所 | 問題 | 推奨対応 |
|---|---|---|---|---|
| SQLインジェクション | CRITICAL | get_user():8行目 | f-stringでクエリ構築 | パラメータ化クエリを使用 |

### 品質問題

| 種別 | 深刻度 | 場所 | 問題 | 推奨対応 |
|---|---|---|---|---|
| 長大関数 | MEDIUM | search_users() | 引数8個、深いネスト | 関数分割・引数オブジェクト化 |

### サマリー
- CRITICAL: N件
- HIGH: N件
- MEDIUM: N件
- 総評: ...

深刻度の優先順位: CRITICAL > HIGH > MEDIUM > LOW

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.