permafrost0

impl-quality

0
0
# Install this skill:
npx skills add permafrost0/02_skills_agents --skill "impl-quality"

Install specific skill from multi-skill repository

# Description

実装品質チェックの判断基準。impl-reviewerが使用する専用知識ベース。リソース管理・エラーハンドリング・関数設計を対象とする。

# SKILL.md


name: impl-quality
description: 実装品質チェックの判断基準。impl-reviewerが使用する専用知識ベース。リソース管理・エラーハンドリング・関数設計を対象とする。
user-invocable: false


実装品質基準 (impl-quality)

このドキュメントは impl-reviewer Agent 専用の知識ベースです。
リソース管理・エラーハンドリング・関数設計の問題検出基準を定義します。


リソース管理

判定基準

  • ファイル・DB接続は with 文またはクローズ処理が必須
  • close() の呼び忘れは HIGH で報告
  • 例外発生時にもリソースが解放される構造になっているかを確認

検出対象

パターン 問題 対策
sqlite3.connect() 後に close()with もない DB接続リーク with sqlite3.connect(...) as conn: に変更
open() 後に close()with もない ファイルハンドルリーク with open(...) as f: に変更
close()try/finally 外にある 例外時にリーク finally ブロックまたは with 文に移動

深刻度

  • close() なし(正常系でもリーク)→ HIGH
  • close() はあるが例外時にリーク → MEDIUM

エラーハンドリング

判定基準

  • 外部リソースアクセス(DB・ファイル・ネットワーク・subprocess)は例外処理必須
  • try/except が存在しない場合は HIGH で報告

検出対象

操作 期待する例外 対策
sqlite3.connect() / cursor.execute() sqlite3.Error try/except sqlite3.Error で囲む
open() / read() / write() IOError / OSError try/except OSError で囲む
subprocess.run() / subprocess.call() subprocess.CalledProcessError / OSError try/except で囲み、失敗時の処理を明示
外部API呼び出し requests.RequestException タイムアウト設定 + 例外処理を追加

深刻度

  • 外部リソースアクセスに try/except が一切ない → HIGH
  • 例外を握りつぶしている(except: pass)→ MEDIUM

関数設計

判定基準

指標 閾値 深刻度
関数長 30行超 MEDIUM
引数数 5個以上 MEDIUM
ネスト深度 4レベル以上 MEDIUM
単一責任違反 1関数が複数の外部リソースに同時アクセス MEDIUM

関数長の測定

  • def 行から次の def または EOF までをカウント
  • コメント・空行も含む

引数数の対処

  • 5個以上の場合は dataclass / TypedDict / 辞書にまとめることを推奨

単一責任の確認

  • ハッシュ計算 + DB操作を同一関数内で行う → 分離を推奨
  • バリデーション + DB挿入を同一関数内で行う → 分離を推奨

報告フォーマット

## 実装レビュー結果

### 発見事項

| 種別 | 深刻度 | 場所 | 問題 | 推奨対応 |
|---|---|---|---|---|
| リソースリーク | HIGH | get_user():21行目 | close()なし | with文に変更 |
| エラーハンドリング欠如 | HIGH | get_user():19〜28行目 | try/exceptなし | DB操作をtry/exceptで囲む |

### カウント
- CRITICAL: N件
- HIGH: N件
- MEDIUM: N件
- LOW: 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.