jpskill.com
💬 コミュニケーション コミュニティ

focused-fix

Use when the user asks to fix, debug, or make a specific feature/module/area work end-to-end. Triggers: 'make X work', 'fix the Y feature', 'the Z module is broken', 'focus on [area]'. Not for quick single-bug fixes — this is for systematic deep-dive repair across all files and dependencies.

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

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

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

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

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して focused-fix.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → focused-fix フォルダができる
  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 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[スキル名] focused-fix

Focused Fix — 詳細な機能修復

使用する場面

ユーザーが特定の機能、モジュール、または領域を修正、デバッグ、または動作させるように要求した場合に有効化します。主なトリガーは次のとおりです。

  • 「Xを動作させてください」
  • 「Y機能を修正してください」
  • 「Zモジュールが壊れています」
  • 「[領域]に集中してください」
  • 「この機能は適切に動作する必要があります」

これは、迅速な単一バグ修正のためではありません(その場合は systematic-debugging を使用してください)。これは、機能全体またはモジュール全体に体系的な修復が必要な場合、つまり、すべての依存関係をトレースし、ログを読み取り、テストをチェックし、完全な依存関係グラフをマッピングする場合に使用します。

digraph when_to_use {
    "User reports feature broken" [shape=diamond];
    "Single bug or symptom?" [shape=diamond];
    "Use systematic-debugging" [shape=box];
    "Entire feature/module needs repair?" [shape=diamond];
    "Use focused-fix" [shape=box];
    "Something else" [shape=box];

    "User reports feature broken" -> "Single bug or symptom?";
    "Single bug or symptom?" -> "Use systematic-debugging" [label="yes"];
    "Single bug or symptom?" -> "Entire feature/module needs repair?" [label="no"];
    "Entire feature/module needs repair?" -> "Use focused-fix" [label="yes"];
    "Entire feature/module needs repair?" -> "Something else" [label="no"];
}

鉄の掟

スコープ → トレース → 診断 を最初に完了せずに修正を行わない

フェーズ3を完了していない場合、修正を提案することはできません。以上です。

これらのフェーズの文字通りの違反は、集中的な修復の精神に反します。

プロトコル — これらの5つのフェーズを厳密に順番に実行してください

digraph phases {
    rankdir=LR;
    SCOPE [shape=box, label="Phase 1\nSCOPE"];
    TRACE [shape=box, label="Phase 2\nTRACE"];
    DIAGNOSE [shape=box, label="Phase 3\nDIAGNOSE"];
    FIX [shape=box, label="Phase 4\nFIX"];
    VERIFY [shape=box, label="Phase 5\nVERIFY"];

    SCOPE -> TRACE -> DIAGNOSE -> FIX -> VERIFY;
    FIX -> DIAGNOSE [label="fix broke\nsomething else"];
    FIX -> ESCALATE [label="3+ fixes\ncreate new issues"];
    ESCALATE [shape=doubleoctagon, label="STOP\nQuestion Architecture\nDiscuss with User"];
}

フェーズ1: SCOPE — 機能の境界をマッピングする

コードに触れる前に、機能の全範囲を理解してください。

  1. ユーザーに尋ねます。「どの機能/フォルダーに集中すればよいですか?」(まだ明確でない場合)
  2. この機能の主要なフォルダー/ファイルを特定します。
  3. そのフォルダー内のすべてのファイルをマッピングします。各ファイルを読み、その目的を理解します。
  4. 機能マニフェストを作成します。
FEATURE SCOPE:
  Primary path: src/features/auth/
  Entry points: [files that are imported by other parts of the app]
  Internal files: [files only used within this feature]
  Total files: N
  Total lines: N

フェーズ2: TRACE — すべての依存関係をマッピングする(内部と外部の両方)

この機能がコードベースの残りの部分と持つすべての接続をトレースします。

インバウンド(この機能がインポートするもの):

  1. 機能フォルダー内のすべてのファイルのすべての import ステートメントについて:
    • そのソースをトレースします。
    • ソースファイルが存在することを確認します。
    • インポートされたエンティティ(関数、型、コンポーネント)が存在し、エクスポートされていることを確認します。
    • 型/シグネチャが機能が期待するものと一致するかどうかを確認します。
  2. 以下を確認します。
    • 使用されている環境変数(process.env、import.meta.env、os.environ などを grep します)
    • 参照されている設定ファイル
    • 使用されているデータベースモデル/スキーマ
    • 呼び出されているAPIエンドポイント
    • インポートされているサードパーティパッケージ

アウトバウンド(この機能をインポートするもの):

  1. この機能フォルダーからのインポートについて、コードベース全体を検索します。
  2. 各コンシューマーについて:
    • 実際に存在するエンティティをインポートしていることを確認します。
    • 正しいAPI/インターフェースを使用しているかどうかを確認します。
    • 非推奨のパターンを使用しているコンシューマーがある場合はメモします。

出力形式:

DEPENDENCY MAP:
  Inbound (this feature depends on):
    src/lib/db.ts → used in auth/repository.ts (getUserById, createUser)
    src/lib/jwt.ts → used in auth/service.ts (signToken, verifyToken)
    @prisma/client → used in auth/repository.ts
    process.env.JWT_SECRET → used in auth/service.ts
    process.env.DATABASE_URL → used via prisma

  Outbound (depends on this feature):
    src/app/api/login/route.ts → imports { login } from auth/service
    src/app/api/register/route.ts → imports { register } from auth/service
    src/middleware.ts → imports { verifyToken } from auth/service

  Env vars required: JWT_SECRET, DATABASE_URL
  Config files: prisma/schema.prisma (User model)

フェーズ3: DIAGNOSE — すべての問題を見つける

体系的に問題を確認します。これらのチェックをすべて実行します。

コード品質:

  • [ ] すべてのインポートが実際のファイル/エクスポートに解決される
  • [ ] 機能内に循環依存関係がない
  • [ ] 境界を越えて型が一貫している(インターフェースに any がない)
  • [ ] すべての非同期操作にエラー処理が存在する
  • [ ] 既知の問題を示す TODO/FIXME/HACK コメントがない

ランタイム:

  • [ ] 必要なすべての環境変数が設定されている(.env を確認)
  • [ ] データベースのマイグレーションが最新である(該当する場合)
  • [ ] APIエンドポイントが期待される形式を返す
  • [ ] 設定可能であるべきハードコードされた値がない

テスト:

  • [ ] この機能に関連するすべてのテストを実行する: 機能フォルダーからのインポートを検索して見つける
  • [ ] すべての失敗を完全なエラー出力とともに記録する
  • [ ] テストカバレッジを確認する — テストされていないコードパスがあるか?

ログとエラー:

  • [ ] ログファイル、エラーレポート、または Sentry スタイルのエラー追跡を検索する
  • [ ] この機能に対する最近の変更について git log を確認する: git log --oneline -20 -- <feature-path>
  • [ ] 最近のコミットが何かを壊した可能性があるか確認する: git log --oneline -5 --all -- <files that this feature depends on>

設定:

  • [ ] この機能が依存するすべての設定ファイルが有効であることを確認する
  • [ ] 開発環境と本番環境の設定の不一致を確認する
  • [ ] サードパーティサービスの資格情報が有効であることを確認する(テスト可能な場合)

根本原因の確認: 見つかった重大な問題について、修正リストに追加する前に根本原因を確認します。

  • 明確に述べます。「Xが根本原因だと思います。なぜならYだからです。」
  • データ/制御フローを逆方向にトレースして検証します — 表面的な症状を信用しないでください。
  • 問題が複数の範囲にわたる場合

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Focused Fix — Deep-Dive Feature Repair

When to Use

Activate when the user asks to fix, debug, or make a specific feature/module/area work. Key triggers:

  • "make X work"
  • "fix the Y feature"
  • "the Z module is broken"
  • "focus on [area]"
  • "this feature needs to work properly"

This is NOT for quick single-bug fixes (use systematic-debugging for that). This is for when an entire feature or module needs systematic repair — tracing every dependency, reading logs, checking tests, mapping the full dependency graph.

digraph when_to_use {
    "User reports feature broken" [shape=diamond];
    "Single bug or symptom?" [shape=diamond];
    "Use systematic-debugging" [shape=box];
    "Entire feature/module needs repair?" [shape=diamond];
    "Use focused-fix" [shape=box];
    "Something else" [shape=box];

    "User reports feature broken" -> "Single bug or symptom?";
    "Single bug or symptom?" -> "Use systematic-debugging" [label="yes"];
    "Single bug or symptom?" -> "Entire feature/module needs repair?" [label="no"];
    "Entire feature/module needs repair?" -> "Use focused-fix" [label="yes"];
    "Entire feature/module needs repair?" -> "Something else" [label="no"];
}

The Iron Law

NO FIXES WITHOUT COMPLETING SCOPE → TRACE → DIAGNOSE FIRST

If you haven't finished Phase 3, you cannot propose fixes. Period.

Violating the letter of these phases is violating the spirit of focused repair.

Protocol — STRICTLY follow these 5 phases IN ORDER

digraph phases {
    rankdir=LR;
    SCOPE [shape=box, label="Phase 1\nSCOPE"];
    TRACE [shape=box, label="Phase 2\nTRACE"];
    DIAGNOSE [shape=box, label="Phase 3\nDIAGNOSE"];
    FIX [shape=box, label="Phase 4\nFIX"];
    VERIFY [shape=box, label="Phase 5\nVERIFY"];

    SCOPE -> TRACE -> DIAGNOSE -> FIX -> VERIFY;
    FIX -> DIAGNOSE [label="fix broke\nsomething else"];
    FIX -> ESCALATE [label="3+ fixes\ncreate new issues"];
    ESCALATE [shape=doubleoctagon, label="STOP\nQuestion Architecture\nDiscuss with User"];
}

Phase 1: SCOPE — Map the Feature Boundary

Before touching any code, understand the full scope of the feature.

  1. Ask the user: "Which feature/folder should I focus on?" if not already clear
  2. Identify the PRIMARY folder/files for this feature
  3. Map EVERY file in that folder — read each one, understand its purpose
  4. Create a feature manifest:
FEATURE SCOPE:
  Primary path: src/features/auth/
  Entry points: [files that are imported by other parts of the app]
  Internal files: [files only used within this feature]
  Total files: N
  Total lines: N

Phase 2: TRACE — Map All Dependencies (Inside AND Outside)

Trace every connection this feature has to the rest of the codebase.

INBOUND (what this feature imports):

  1. For every import statement in every file in the feature folder:
    • Trace it to its source
    • Verify the source file exists
    • Verify the imported entity (function, type, component) exists and is exported
    • Check if the types/signatures match what the feature expects
  2. Check for:
    • Environment variables used (grep for process.env, import.meta.env, os.environ, etc.)
    • Config files referenced
    • Database models/schemas used
    • API endpoints called
    • Third-party packages imported

OUTBOUND (what imports this feature):

  1. Search the entire codebase for imports from this feature folder
  2. For each consumer:
    • Verify they're importing entities that actually exist
    • Check if they're using the correct API/interface
    • Note if any consumers are using deprecated patterns

Output format:

DEPENDENCY MAP:
  Inbound (this feature depends on):
    src/lib/db.ts → used in auth/repository.ts (getUserById, createUser)
    src/lib/jwt.ts → used in auth/service.ts (signToken, verifyToken)
    @prisma/client → used in auth/repository.ts
    process.env.JWT_SECRET → used in auth/service.ts
    process.env.DATABASE_URL → used via prisma

  Outbound (depends on this feature):
    src/app/api/login/route.ts → imports { login } from auth/service
    src/app/api/register/route.ts → imports { register } from auth/service
    src/middleware.ts → imports { verifyToken } from auth/service

  Env vars required: JWT_SECRET, DATABASE_URL
  Config files: prisma/schema.prisma (User model)

Phase 3: DIAGNOSE — Find Every Issue

Systematically check for problems. Run ALL of these checks:

CODE QUALITY:

  • [ ] Every import resolves to a real file/export
  • [ ] No circular dependencies within the feature
  • [ ] Types are consistent across boundaries (no any at interfaces)
  • [ ] Error handling exists for all async operations
  • [ ] No TODO/FIXME/HACK comments indicating known issues

RUNTIME:

  • [ ] All required environment variables are set (check .env)
  • [ ] Database migrations are up to date (if applicable)
  • [ ] API endpoints return expected shapes
  • [ ] No hardcoded values that should be configurable

TESTS:

  • [ ] Run ALL tests related to this feature: find them by searching for imports from the feature folder
  • [ ] Record every failure with full error output
  • [ ] Check test coverage — are there untested code paths?

LOGS & ERRORS:

  • [ ] Search for any log files, error reports, or Sentry-style error tracking
  • [ ] Check git log for recent changes to this feature: git log --oneline -20 -- <feature-path>
  • [ ] Check if any recent commits might have broken something: git log --oneline -5 --all -- <files that this feature depends on>

CONFIGURATION:

  • [ ] Verify all config files this feature depends on are valid
  • [ ] Check for mismatches between development and production configs
  • [ ] Verify third-party service credentials are valid (if testable)

ROOT-CAUSE CONFIRMATION: For each CRITICAL issue found, confirm root cause before adding it to the fix list:

  • State clearly: "I think X is the root cause because Y"
  • Trace the data/control flow backward to verify — don't trust surface-level symptoms
  • If the issue spans multiple components, add diagnostic logging at each boundary to identify which layer fails
  • REQUIRED SUB-SKILL: For complex bugs found during diagnosis, apply superpowers:systematic-debugging Phase 1 (Root Cause Investigation) to confirm before proceeding

RISK LABELING: Assign each issue a risk label:

Risk Criteria
HIGH Public API surface / breaking interface contract / DB schema / auth or security logic / widely imported module (>3 callers) / git hotspot
MED Internal module with tests / shared utility / config with runtime impact / internal callers of changed functions
LOW Leaf module / isolated file / test-only change / single-purpose helper with no callers

Output format:

DIAGNOSIS REPORT:
  Issues found: N

  CRITICAL:
    1. [HIGH] [file:line] — description of issue. Root cause: [confirmed explanation]
    2. [HIGH] [file:line] — description of issue. Root cause: [confirmed explanation]

  WARNINGS:
    1. [MED] [file:line] — description of issue
    2. [LOW] [file:line] — description of issue

  TESTS:
    Ran: N tests
    Passed: N
    Failed: N
    [list each failure with one-line summary]

Phase 4: FIX — Repair Everything Systematically

Fix issues in this EXACT order:

  1. DEPENDENCIES FIRST — fix broken imports, missing packages, wrong versions
  2. TYPES SECOND — fix type mismatches at feature boundaries
  3. LOGIC THIRD — fix actual business logic bugs
  4. TESTS FOURTH — fix or create tests for each fix
  5. INTEGRATION LAST — verify the feature works end-to-end with its consumers

Rules:

  • Fix ONE issue at a time
  • After each fix, run the related test to confirm it works
  • If a fix breaks something else, STOP and re-evaluate (go back to DIAGNOSE)
  • Keep a running log of every change made
  • Never change code outside the feature folder without explicitly stating why
  • Fix HIGH-risk issues before MED, MED before LOW

ESCALATION RULE — 3-Strike Architecture Check: If 3+ fixes in this phase create NEW issues (not pre-existing ones), STOP immediately.

This pattern indicates an architectural problem, not a bug collection:

  • Each fix reveals new shared state / coupling / problem in a different place
  • Fixes require "massive refactoring" to implement
  • Each fix creates new symptoms elsewhere

Action: Stop fixing. Tell the user: "3+ fixes have cascaded into new issues. This suggests the feature's architecture may need rethinking, not patching. Here's what I've found: [summary]. Should we continue fixing symptoms or discuss restructuring?"

Do NOT attempt fix #4 without this discussion.

Output after each fix:

FIX #1:
  File: auth/service.ts:45
  Issue: signToken called with wrong argument order
  Change: swapped (expiresIn, payload) to (payload, expiresIn)
  Test: auth.test.ts → PASSES

Phase 5: VERIFY — Confirm Everything Works

After all fixes are applied:

  1. Run ALL tests in the feature folder — every single one must pass
  2. Run ALL tests in files that IMPORT from this feature — must pass
  3. Run the full test suite if available — check for regressions
  4. If the feature has a UI, describe how to manually verify it
  5. Summarize all changes made

Final output:

FOCUSED FIX COMPLETE:
  Feature: auth
  Files changed: 4
  Total fixes: 7
  Tests: 23/23 passing
  Regressions: 0

  Changes:
    1. auth/service.ts — fixed token signing argument order
    2. auth/repository.ts — added null check for user lookup
    3. auth/middleware.ts — fixed async error handling
    4. auth/types.ts — aligned UserResponse type with actual DB schema

  Consumers verified:
    - src/app/api/login/route.ts ✅
    - src/app/api/register/route.ts ✅
    - src/middleware.ts ✅

Red Flags — STOP and Return to Current Phase

If you catch yourself thinking any of these, you are skipping phases:

  • "I can see the bug, let me just fix it" → STOP. You haven't traced dependencies yet.
  • "Scoping is overkill, it's obviously just this file" → STOP. That's always wrong for feature-level fixes.
  • "I'll map dependencies after I fix the obvious stuff" → STOP. You'll miss root causes.
  • "The user said fix X, so I only need to look at X" → STOP. Features have dependencies.
  • "Tests are passing so I'm done" → STOP. Did you run consumer tests too?
  • "I don't need to check env vars for this" → STOP. Config issues masquerade as code bugs.
  • "One more fix should do it" (after 2+ cascading failures) → STOP. Escalate.
  • "I'll skip the diagnosis report, the fixes are obvious" → STOP. Write it down.

ALL of these mean: Return to the phase you're supposed to be in.

Common Rationalizations

Excuse Reality
"The feature is small, I don't need all 5 phases" Small features have dependencies too. Phases 1-2 take minutes for small features — do them.
"I already know this codebase" Knowledge decays. Trace the actual imports, don't rely on memory.
"The user wants speed, not process" Skipping phases causes rework. Systematic is faster than thrashing.
"Only one file is broken" If only one file were broken, the user would say "fix this bug", not "make the feature work."
"I fixed the tests, so it works" Tests can pass while consumers are broken. Verify Phase 5 fully.
"The dependency map is too big to trace" Then the feature is too big to fix without tracing. That's exactly why you need it.
"Root cause is obvious, I don't need to confirm" "Obvious" root causes are wrong 40% of the time. Confirm with evidence.
"3 cascading failures is normal for a big fix" 3 cascading failures means you're patching symptoms of an architectural problem.

Anti-Patterns — NEVER do these

Anti-Pattern Why It's Wrong
Starting to fix code before mapping all dependencies You'll miss root causes and create whack-a-mole fixes
Fixing only the file the user mentioned Related files likely have issues too
Ignoring environment variables and configuration Many "code bugs" are actually config issues
Skipping the test run phase You can't verify fixes without running tests
Making changes outside the feature folder without explaining why Unexpected side effects confuse the user
Fixing symptoms in consumer files instead of root cause in feature Band-aids that break when the next consumer appears
Declaring "done" without running verification tests Untested fixes are unverified fixes
Changing the public API without updating all consumers Breaks everything that depends on the feature

Related Skills

  • superpowers:systematic-debugging — Use within Phase 3 for root-cause tracing of individual complex bugs
  • superpowers:verification-before-completion — Use within Phase 5 before claiming the feature is fixed
  • scope — If you need to understand blast radius before starting, run scope first then focused-fix

Quick Reference

Phase Key Action Output
SCOPE Read every file, map entry points Feature manifest
TRACE Map inbound + outbound dependencies Dependency map
DIAGNOSE Check code, runtime, tests, logs, config Diagnosis report
FIX Fix in order: deps → types → logic → tests → integration Fix log per issue
VERIFY Run all tests, check consumers, summarize Completion report