# Auto Fix

> lint/test の失敗を検出し、外部 AI CLI（Claude Code / Codex / Gemini）でコード修正 → 再検証をループする。 Use when this capability is needed.

- Skill: `tomevault-io/auto-fix` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/auto-fix`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/auto-fix/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/auto-fix

---


# auto-fix

lint やテストの失敗を外部 AI CLI で自動修正し、再検証するスキル。

## 手順

### 1. 失敗を検出

ユーザー指定のコマンド、またはプロジェクトに応じて自動検出:

```bash
# Python (ruff)
ruff check . 2>&1

# Python (pytest)
pytest -x --tb=short 2>&1

# Python (mypy)
mypy src/ 2>&1

# JavaScript/TypeScript
eslint . 2>&1
tsc --noEmit 2>&1
```

- 出力（stdout + stderr）と終了コードをキャプチャする
- 終了コード 0 の場合は「問題なし」と報告して終了

### 2. エラーを解析

失敗出力から構造化情報を抽出する:
- **ファイルパス** と **行番号**
- **エラーメッセージ** / **テスト名**
- **エラーカテゴリ**（syntax, type, import, assertion 等）

エラー箇所周辺のソースコードを読んでコンテキストを把握する。

### 3. 修正プロンプトを作成

以下のテンプレートで `/tmp/bc_fix_prompt.txt` に書き出す:

```
以下のエラーを修正してください。

## エラー一覧
{ファイル名:行番号 エラーメッセージ のリスト}

## 関連ソースコード

### {file1}:{start_line}-{end_line}
```{language}
{ソースコード}
```

## 指示
- 修正後のコードブロックのみを出力すること
- 関係のないコードは変更しないこと
- 既存のスタイル・フォーマットを維持すること
- 以下の形式で出力:

### {filepath}
```{language}
{修正後のコード}
```
```

- `.env`、シークレット、クレデンシャルは絶対に含めない

### 4. 外部 AI CLI に送信

ユーザー指定の CLI（デフォルト: 最初に見つかったもの）に送信:

```bash
# Claude Code
cat /tmp/bc_fix_prompt.txt | claude -p 2>&1 | tee /tmp/bc_fix_result.txt

# Codex
cat /tmp/bc_fix_prompt.txt | codex exec - 2>&1 | tee /tmp/bc_fix_result.txt

# Gemini
cat /tmp/bc_fix_prompt.txt | gemini 2>&1 | tee /tmp/bc_fix_result.txt
```

- タイムアウト: 120 秒
- レスポンスからファイルパスと修正コードブロックを抽出する

### 5. 修正を適用

返された修正コードブロックごとに:
1. 元のファイルを読む（バックアップとして内容を記録）
2. 該当箇所を修正コードで置き換える
3. ファイルを書き出す

### 6. 再検証（ループ）

ステップ 1 と同じコマンドを再実行する。

**ループ条件:**
- **Pass（終了コード 0）:** 成功を報告、変更サマリを表示。終了。
- **Fail（同じエラー）:** 修正が効かなかった。別の CLI で再試行、または プロンプトを改善。最大 3 回。
- **Fail（新しいエラー）:** 修正がリグレッションを起こした。直前の変更を revert して再試行。
- **最大リトライ到達:** 現在の状態を報告、残りのエラーを一覧し、手動修正を提案。

### 7. 結果を報告

```markdown
## Auto-Fix レポート

### ステータス: {FIXED / PARTIALLY_FIXED / FAILED}

### チェックコマンド
`{command}`

### イテレーション
| # | 使用 CLI | 修正前エラー数 | 修正後エラー数 | 結果 |
|---|---------|--------------|--------------|------|
| 1 | Claude  | 5            | 2            | 部分修正 |
| 2 | Codex   | 2            | 0            | 修正完了 |

### 変更内容
- `src/foo.py:42` — 戻り値の型注釈を追加
- `src/bar.py:15-20` — 非推奨 API 呼び出しを置換

### 残存する問題（あれば）
- `src/baz.py:99` — 複雑なロジックエラー、手動レビューが必要
```

## ガードレール

- **最大 3 回リトライ** — 無限ループ防止
- **リグレッション時は revert** — 修正でエラーが増えたら即座に元に戻す
- **破壊的変更禁止** — ファイル削除や大規模なコード除去はユーザー承認が必要
- **スコープ制御** — 報告されたエラーに直接関連するファイルのみ変更

---
> Source: [pome223/boiled-claw-public](https://github.com/pome223/boiled-claw-public) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-05-23 -->

