permafrost0

maintenance-quality

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

Install specific skill from multi-skill repository

# Description

保守品質チェックの判断基準。maintenance-reviewerが使用する専用知識ベース。DRY・命名・複雑度・ドキュメントを対象とする。

# SKILL.md


name: maintenance-quality
description: 保守品質チェックの判断基準。maintenance-reviewerが使用する専用知識ベース。DRY・命名・複雑度・ドキュメントを対象とする。
user-invocable: false


保守品質基準 (maintenance-quality)

このドキュメントは maintenance-reviewer Agent 専用の知識ベースです。
長期的な保守性に関わる問題(DRY違反・命名・複雑度・ドキュメント不足)の検出基準を定義します。


DRY原則(重複コードの検出)

判定基準

  • 同一ロジックの重複は共通関数化する
  • 完全一致・ほぼ同一のコードブロックが2箇所以上 → HIGH
  • 同一パターンが3箇所以上 → HIGH

検出手順

  1. 同一文字列パターンを Grep で検索し、ヒット数が2件以上のものを候補とする
  2. 同じ変数名で同じ処理をしているブロックを読んで確認する

典型パターン

パターン 問題 対策
同一クエリ文字列が複数箇所 DB操作の重複 ヘルパー関数に共通化
同一ハッシュ処理が複数箇所 ロジック重複 hash_password() 等に切り出す
条件分岐の全分岐が同一処理 無意味な分岐 分岐を削除して1行にまとめる
DB接続パターンが全関数に散在 設定変更時の修正漏れリスク 接続ヘルパーを共通化

深刻度

  • 完全重複が2〜3箇所 → HIGH
  • 無意味な分岐(両分岐が同一) → MEDIUM
  • 軽微なパターン重複 → LOW

命名規則

判定基準(Python)

対象 規則 違反例
変数・関数 snake_case userName, getUser
定数 UPPER_SNAKE_CASE adminPassword, secretkey
クラス PascalCase user_manager, userManager
意味の明確さ 意図が伝わる名前 x, tmp, data, val, result, res

曖昧な名前の検出

以下の変数名は文脈によっては許容されるが、関数の戻り値や重要な中間変数に使われている場合は報告する:
- result, res, ret → 何のresultかを含む名前に改名
- data, info → 何のdataかを含む名前に改名
- tmp, temp → 一時変数でも意味のある名前を推奨
- x, y, i, j → ループ変数・座標以外での使用は警告

深刻度

  • 命名規則違反(caseスタイル) → MEDIUM
  • 曖昧な名前(意図不明) → LOW

複雑度

判定基準

指標 閾値 深刻度
1関数内の分岐数(if/elif/else/for/while/tryの合計) 7以上 HIGH
ネスト深度 4レベル以上 MEDIUM
関数長 30行超 MEDIUM
引数数 5個以上 MEDIUM

複雑度超過への対処

  • Early Return パターンで深いネストを解消
  • 条件ロジックをヘルパー関数に切り出す
  • 引数は dataclass / TypedDict にまとめる

ドキュメント

判定基準

  • def 直後に """ 形式の docstring が存在しない → LOW
  • docstring に Args / Returns / Raises セクションがない → LOW

推奨フォーマット(Google スタイル)

def get_user(username: str) -> Optional[tuple]:
    """ユーザー情報を取得する。

    Args:
        username: 検索対象のユーザー名。

    Returns:
        ユーザーレコードのタプル。存在しない場合は None。

    Raises:
        sqlite3.Error: DB接続・クエリ実行に失敗した場合。
    """

報告フォーマット

## 保守レビュー結果

### 発見事項

| 種別 | 深刻度 | 場所 | 問題 | 推奨対応 |
|---|---|---|---|---|
| DRY違反 | HIGH | search_users():62〜77行目 | role分岐の全分岐が同一処理 | 共通処理を1行に統合 |
| 複雑度超過 | HIGH | search_users():53〜96行目 | 分岐数13、閾値7超過 | ヘルパー関数に分割 |

### カウント
- 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.