AgentSkillsCN

fix

自动化 Bug 修复流程——从执行测试、定位失败原因、进行修复,再到运行 Lint 检查并重新测试,一气呵成。

SKILL.md
--- frontmatter
name: fix
description: バグ修正サイクルを自動化します。テスト実行→失敗特定→修正→lint→再テストまで。
allowed-tools: Read, Edit, Bash, Grep, Glob

バグ修正スキル

テスト失敗やバグを修正するサイクルを自動化します。

実行フロー

Step 1: テスト実行・失敗特定

bash
# 全テスト実行(失敗を特定)
pytest tests/ -v --tb=short 2>&1 | head -100

# または特定モジュール
pytest tests/test_identifier/ -v --tb=short

失敗がある場合、以下を確認:

  • 失敗したテスト名
  • エラーメッセージ
  • スタックトレース

Step 2: 失敗原因の分析

  1. テストコードを読む

    code
    tests/test_xxx/test_yyy.py
    
  2. テスト対象のソースコードを読む

    code
    src/ta_inspector/xxx/yyy.py
    
  3. 原因を特定

    • 期待値とactualの差分
    • 未処理の例外
    • 依存関係の問題

Step 3: 修正を実装

原因に応じて修正:

実装のバグの場合:

  • ソースコードを修正
  • エッジケースを考慮

テストの期待値が間違っている場合:

  • テストコードを修正
  • 仕様を確認

Step 4: lint・型チェック

bash
# 修正したファイルをチェック
ruff check <modified_file>
mypy <modified_file>

# 自動修正可能な問題を修正
ruff check <modified_file> --fix

Step 5: 再テスト

bash
# 修正したテストのみ再実行
pytest tests/test_xxx/test_yyy.py -v

# 全テストで regression確認
pytest tests/ -v

Step 6: 結果報告

markdown
## 修正レポート

### 問題
- ファイル: tests/test_xxx.py
- テスト: test_yyy
- エラー: AssertionError

### 原因
<原因の説明>

### 修正内容
- ファイル: src/ta_inspector/xxx.py
- 変更: <変更内容>

### 確認
- [ ] 該当テストがパス
- [ ] 全テストがパス
- [ ] lint/mypyがパス

よくある問題と解決策

ImportError

  • 依存パッケージの不足 → pip install <package>
  • 相対インポートの問題 → パスを確認

AssertionError

  • 期待値と実際の値の不一致 → ロジックを確認
  • テストデータの問題 → フィクスチャを確認

FileNotFoundError

  • テストフィクスチャのパス → tests/fixtures/ を確認
  • 一時ファイルの問題 → tmp_path フィクスチャを使用

TypeError

  • 型の不一致 → 型ヒントと実装を確認
  • None処理 → Optional型のガードを追加

使用例

code
/fix

問題を特定して自動的に修正サイクルを実行します。