Use when you have a written implementation plan to execute in a separate session with review checkpoints
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()なし(正常系でもリーク)→ HIGHclose()はあるが例外時にリーク → 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.