バグ修正→コンパイル確認→回帰テスト→失敗時 revert の安全修正パイプライン。修正が新たなバグを生まないことを機械的に保証する。USE WHEN 単発バグ修正、影響範囲が見えにくい変更、リファクタの安全確認。SKIP 大規模機能追加は impl-orchestrator、セキュリティ Finding 一括修正は robust-fix、仕様整合性回復は spec-fix を使うこと。
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill fix-with-verify --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fix With Verify?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-fix-with-verify)More formats (shields.io, HTML) on the badges page.
---
name: fix-with-verify
description: バグ修正→コンパイル確認→回帰テスト→失敗時 revert の安全修正パイプライン。修正が新たなバグを生まないことを機械的に保証する。USE WHEN 単発バグ修正、影響範囲が見えにくい変更、リファクタの安全確認。SKIP 大規模機能追加は impl-orchestrator、セキュリティ Finding 一括修正は robust-fix、仕様整合性回復は spec-fix を使うこと。
argument-hint: "[issue-description or file:line]"
allowed-tools: Read, Write, Edit, MultiEdit, Bash, Grep, Glob
---
# 修正 → 検証パイプライン
## Step 1: ベースライン記録
1. 修正対象ファイルの現在の状態を `git diff` で確認
2. **既存テストを実行してベースライン記録**(言語を自動検出):
| 言語 | コマンド |
|------|---------|
| Rust | `cargo test -p <crate> 2>&1 \| tail -20` |
| Python | `pytest <テストファイル> 2>&1 \| tail -20` |
| Go | `go test ./<パッケージ>/... 2>&1 \| tail -20` |
| Node | `npm test 2>&1 \| tail -20` |
3. 失敗テストがあれば、それが今回の修正対象か確認
## Step 2: 影響範囲分析
1. 修正対象の関数/型の呼び出し元を Grep で特定
2. モジュール依存関係を確認(コアモジュール修正 → 依存モジュールにも影響)
3. 公開 API のシグネチャ変更は影響範囲が広いため要注意
## Step 3: 修正実行
1. **1ファイルずつ修正**(複数ファイル一括変更禁止)
2. 各ファイル修正後にコンパイル/型チェック確認:
| 言語 | コマンド |
|------|---------|
| Rust | `cargo check -p <crate>` (コア修正時は `cargo check --workspace`) |
| Python | `ruff check <file>` / `mypy <file>` |
| Go | `go build ./<パッケージ>/...` |
| Node | `npx tsc --noEmit` |
3. コンパイル/型エラーがあれば即座に修正
## Step 4: セキュリティ・堅牢性チェック(修正内容に応じて)
以下のパターンが修正に含まれる場合、追加チェック:
### パニック/クラッシュ防止
- `unwrap()` / `expect()` → `?` またはエラーハンドリングに置換
- 配列インデックス → `.get()` + エラーハンドリング
- 0除算 → 分母の事前チェック
### インジェクション防止
- SQL/NoSQL 文字列結合 → パラメータバインドに置換
### 入力バリデーション
- 外部入力の型・範囲チェック追加
- NaN / Infinity / 空入力のハンドリング
## Step 5: リグレッション検証
1. Step 1 と同じテストスイートを実行
2. コアモジュール修正時は依存モジュールも検証:
- Rust: `cargo test --workspace`
- Go: `go test ./...`
- Node: `npm test`
3. **新たに失敗したテストがあれば修正を revert**:
```bash
git checkout HEAD -- <file>
```
4. revert 後、より小さな単位で再修正を試みる
5. 3回連続でリグレッションが起きたら代替案を3つ提案してユーザーに選択を求める
## Step 6: エッジケーステスト追加
修正に対応するテストが不足している場合、以下を追加:
- 修正したバグの再現テスト(今後のリグレッション防止)
- 境界値テスト(0, 空, 最大値, null/None/nil)
- エラーケーステスト(不正入力、タイムアウト等)
テスト追加後に再度テスト実行で PASS を確認。
## Step 7: 完了確認
1. `git diff --stat` で変更概要確認
2. lint グリーン確認(言語に応じたツール)
3. 修正内容サマリーを表示:
- 何が壊れていたか
- どう直したか
- 追加したテスト
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!