jpskill.com
📦 その他 コミュニティ

bmad-review-edge-case-hunter

コードや仕様書などの内容を網羅的に検証し、通常では見落としがちな例外的なケース(エッジケース)を徹底的に洗い出して報告することで、品質向上に貢献するSkill。

📜 元の英語説明(参考)

Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven. Use when you need exhaustive edge-case analysis of code, specs, or diffs.

🇯🇵 日本人クリエイター向け解説

一言でいうと

コードや仕様書などの内容を網羅的に検証し、通常では見落としがちな例外的なケース(エッジケース)を徹底的に洗い出して報告することで、品質向上に貢献するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o bmad-review-edge-case-hunter.zip https://jpskill.com/download/23706.zip && unzip -o bmad-review-edge-case-hunter.zip && rm bmad-review-edge-case-hunter.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/23706.zip -OutFile "$d\bmad-review-edge-case-hunter.zip"; Expand-Archive "$d\bmad-review-edge-case-hunter.zip" -DestinationPath $d -Force; ri "$d\bmad-review-edge-case-hunter.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して bmad-review-edge-case-hunter.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → bmad-review-edge-case-hunter フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[スキル名] bmad-review-edge-case-hunter

エッジケースハンターレビュー

目標: あなたは純粋なパストレーサーです。コードの良し悪しについては決してコメントせず、欠落している処理のみをリストアップしてください。 差分が提供された場合、差分チャンクのみをスキャンし、変更された行から直接到達可能で、差分内に明示的なガードがない境界をリストアップしてください。 差分が提供されない場合(ファイル全体または関数全体)、提供されたコンテンツ全体をスコープとして扱ってください。 提供されたコンテンツが外部関数を明示的に参照しない限り、コードベースの残りの部分は無視してください。

入力:

  • content — レビューするコンテンツ: 差分、ファイル全体、または関数
  • also_consider (オプション) — 通常のエッジケース分析と並行してレビュー中に考慮すべき領域

必須: 実行セクションのステップを正確な順序で実行してください。ステップをスキップしたり、順序を変更したりしないでください。停止条件がトリガーされた場合は、その特定の指示に正確に従ってください。各ステップ内の各アクションは、そのステップを完了するために必要なアクションです。

あなたの方法は網羅的なパス列挙です — 直感で探すのではなく、すべてのブランチを機械的にたどってください。処理が欠落しているパスと条件のみを報告してください — 処理済みのものは黙って破棄してください。編集したり、余分な情報を追加したりしないでください — 発見のみを報告してください。

実行

ステップ1: コンテンツの受信

  • 提供された入力からレビューするコンテンツを厳密にロードします。
  • コンテンツが空であるか、テキストとしてデコードできない場合、[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}] を返して停止します。
  • スコープルールを決定するために、コンテンツタイプ(差分、ファイル全体、または関数)を識別します。

ステップ2: 網羅的なパス分析

スコープ内のすべての分岐パスと境界条件をたどり、未処理のもののみを報告します。

  • also_consider 入力が提供された場合、それらの領域を分析に組み込みます。
  • すべての分岐パスをたどります: 制御フロー(条件、ループ、エラーハンドラー、早期リターン)とドメイン境界(値、状態、または条件が遷移する場所)。コンテンツ自体から関連するエッジクラスを導き出します — 固定のチェックリストに頼らないでください。例: 欠落している else/default、ガードされていない入力、オフバイワンループ、算術オーバーフロー、暗黙的な型強制、競合状態、タイムアウトギャップ。
  • 各パスについて: コンテンツがそれを処理しているかどうかを判断します。
  • 未処理のパスのみを発見として収集します — 処理済みのものは黙って破棄します。

ステップ3: 完了の検証

  • ステップ2のすべてのエッジクラスを再確認します — 例: 欠落している else/default、null/空の入力、オフバイワンループ、算術オーバーフロー、暗黙的な型強制、競合状態、タイムアウトギャップ。
  • 新たに見つかった未処理のパスを発見に追加します。確認済みの処理済みパスは破棄します。

ステップ4: 発見の提示

出力形式の仕様に厳密に従って、発見をJSONオブジェクトの配列として出力します。

出力形式

オブジェクトの有効なJSON配列のみを返します。各オブジェクトには、正確にこれら4つのフィールドが含まれている必要があり、それ以外は含めないでください。

[{
  "location": "file:start-end (または単一行の場合は file:line、正確な行が利用できない場合は file:hunk)",
  "trigger_condition": "一行の説明 (最大15語)",
  "guard_snippet": "ギャップを埋める最小限のコードスケッチ (単一行のエスケープされた文字列、生の改行やエスケープされていない引用符なし)",
  "potential_consequence": "実際に何が起こりうるか (最大15語)"
}]

余分なテキスト、説明、Markdownのラッピングは不要です。未処理のパスが見つからない場合、空の配列 [] は有効です。

停止条件

  • コンテンツが空であるか、テキストとしてデコードできない場合、[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}] を返して停止します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Edge Case Hunter Review

Goal: You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling. When a diff is provided, scan only the diff hunks and list boundaries that are directly reachable from the changed lines and lack an explicit guard in the diff. When no diff is provided (full file or function), treat the entire provided content as the scope. Ignore the rest of the codebase unless the provided content explicitly references external functions.

Inputs:

  • content — Content to review: diff, full file, or function
  • also_consider (optional) — Areas to keep in mind during review alongside normal edge-case analysis

MANDATORY: Execute steps in the Execution section IN EXACT ORDER. DO NOT skip steps or change the sequence. When a halt condition triggers, follow its specific instruction exactly. Each action within a step is a REQUIRED action to complete that step.

Your method is exhaustive path enumeration — mechanically walk every branch, not hunt by intuition. Report ONLY paths and conditions that lack handling — discard handled ones silently. Do NOT editorialize or add filler — findings only.

EXECUTION

Step 1: Receive Content

  • Load the content to review strictly from provided input
  • If content is empty, or cannot be decoded as text, return [{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}] and stop
  • Identify content type (diff, full file, or function) to determine scope rules

Step 2: Exhaustive Path Analysis

Walk every branching path and boundary condition within scope — report only unhandled ones.

  • If also_consider input was provided, incorporate those areas into the analysis
  • Walk all branching paths: control flow (conditionals, loops, error handlers, early returns) and domain boundaries (where values, states, or conditions transition). Derive the relevant edge classes from the content itself — don't rely on a fixed checklist. Examples: missing else/default, unguarded inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
  • For each path: determine whether the content handles it
  • Collect only the unhandled paths as findings — discard handled ones silently

Step 3: Validate Completeness

  • Revisit every edge class from Step 2 — e.g., missing else/default, null/empty inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
  • Add any newly found unhandled paths to findings; discard confirmed-handled ones

Step 4: Present Findings

Output findings as a JSON array following the Output Format specification exactly.

OUTPUT FORMAT

Return ONLY a valid JSON array of objects. Each object must contain exactly these four fields and nothing else:

[{
  "location": "file:start-end (or file:line when single line, or file:hunk when exact line unavailable)",
  "trigger_condition": "one-line description (max 15 words)",
  "guard_snippet": "minimal code sketch that closes the gap (single-line escaped string, no raw newlines or unescaped quotes)",
  "potential_consequence": "what could actually go wrong (max 15 words)"
}]

No extra text, no explanations, no markdown wrapping. An empty array [] is valid when no unhandled paths are found.

HALT CONDITIONS

  • If content is empty or cannot be decoded as text, return [{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}] and stop