Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
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() でのクエリ構築 | パラメータ化クエリ(? プレースホルダ)を使用 |
| コマンドインジェクション | subprocess に shell=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.