piv-implement-issue について
piv-implement-issueは、RCA文書に基づいてGitHub Issueの修正を実装するコーディングスキルです。コードの差分を確認してから、修正、テスト、検証を進め、実装レポートをまとめます。
主な機能
- 01RCAと現行コードの差分確認
- 02RCA案に沿った修正の実装
- 03テスト追加と検証の実行
- 04変更内容と検証結果の報告
活用シーン
- 01GitHub Issueの既定修正案の実施
- 02RCA案と現行コードの整合性確認
- 03レビュー用の実装レポート作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ coleam00/ skills --skill piv-implement-issueインストール後、Claude Code で/piv-implement-issueを入力して読み込まれたか確認します。
詳細
GitHub Issue #$ARGUMENTS の修正を実装
前提条件
このスキルでは、RCA ドキュメントに基づいて GitHub の Issue を修正します。
- GitHub の origin が設定されたローカル Git リポジトリで作業していること
- RCA ドキュメントが
docs/issues/issue-$ARGUMENTS.mdに存在すること - GitHub CLI がインストールされ、認証済みであること(ステータス更新用、任意)
参照する RCA ドキュメント
RCA を読む:docs/issues/issue-$ARGUMENTS.md
任意 — コンテキストを把握するために GitHub Issue を表示:
gh issue view $ARGUMENTS
実装手順
1. RCA を読んで理解する
- RCA ドキュメント全体を注意深く読む
- GitHub Issue の詳細(Issue #$ARGUMENTS)を確認する
- 根本原因を理解する
- 提案された修正方針を確認する
- 変更対象のファイルをすべて把握する
- テスト要件を確認する
2. 現在の状態を確認する — 差分もチェックする
変更を加える前に:
- Issue がまだ存在することを確認する。
- 差分チェック: RCA に記載された各ファイルを読み、RCA の「現在のコード」スニペット/行番号と比較する。
RCA 以降にコードが大幅に変更されている場合は、作業を中止し、差分を提示して、古くなった計画を実行するのではなく、Issue #$ARGUMENTS について
piv-investigate-issueを再実行するよう提案する。 - 提案された修正で根本原因に対処できることを確認する — ひそかに方針を逸脱しない。
2b. 適切なブランチに切り替える
- ワークツリー内ですか? それを使用する(この作業用に作成されています)。
- ベースブランチ上で、作業ツリーがクリーンですか? 修正ブランチを作成する —
git checkout -b fix/issue-$ARGUMENTS-<slug>(ベースブランチはgit symbolic-ref refs/remotes/origin/HEADで検出する。mainをハードコードしない)。 - すでに機能ブランチ/修正ブランチ上ですか? それを使用する(ブランチ名に #$ARGUMENTS が含まれていない場合は警告する)。
- ベースブランチ上で作業ツリーが汚れていますか? 作業を中止し、先にコミットまたは stash するようユーザーに依頼する。
3. 修正を実装する
RCA の「提案された修正」セクションに従います。
変更する各ファイルについて:
a. 既存ファイルを読む
- 現在の実装を理解する
- RCA に記載された具体的なコード箇所を特定する
b. 修正する
- RCA の説明どおりに変更を実装する
- 修正方針に厳密に従う
- コードスタイルと規約を維持する
- 修正内容が自明でない場合はコメントを追加する
c. 関連する変更に対応する
- 修正の影響を受ける関連コードを更新する
- コードベース全体で一貫性を確保する
- 必要に応じてインポートを更新する
計画どおりに進める: RCA に指定された内容を実装する — 無関係なコードをリファクタリングしたり、計画にない「改善」を追加したりしない。逸脱が必要な場合は、変更内容と理由を記録し、レポート(および PR)に明記する。
4. テストを追加/更新する
RCA の「テスト要件」に従います。
次のテストケースを作成する:
- 修正によって問題が解決することを確認する
- バグに関連するエッジケースをテストする
- 関連機能にリグレッションがないことを確認する
- 新たに導入したコードパスをテストする
テストファイルの配置場所:
- プロジェクトのテスト構成に従う
- ソースファイルの配置場所に合わせる
- 内容がわかるテスト名を付ける
テストの実装:
def test_issue_$ARGUMENTS_fix():
"""Test that issue #$ARGUMENTS is fixed."""
# Arrange - set up the scenario that caused the bug
# Act - execute the code that previously failed
# Assert - verify it now works correctly
5. 検証を実行する
RCA に記載された検証コマンドを実行します。
# Run linters
[from RCA validation commands]
# Run type checking
[from RCA validation commands]
# Run tests
[from RCA validation commands]
検証に失敗した場合:
- 問題を修正する
- 検証を再実行する
- すべて成功するまで先に進まない
6. 修正を確認する
手動で確認する:
- RCA の再現手順に従う
- 問題が発生しなくなったことを確認する
- エッジケースをテストする
- 意図しない副作用がないか確認する
7. ドキュメントを更新する
必要に応じて:
- コードコメントを更新する
- API ドキュメントを更新する
- ユーザー向けの変更であれば README を更新する
- 修正内容に関する注記を追加する
出力レポート
修正の実装概要
GitHub Issue #$ARGUMENTS:[簡潔なタイトル]
Issue の URL:[GitHub Issue の URL]
根本原因(RCA より): [根本原因の1行要約]
変更内容
変更したファイル:
-
[file-path]
- 変更内容:[変更内容]
- 行:[行番号]
-
[file-path]
- 変更内容:[変更内容]
- 行:[行番号]
追加したテスト
作成/変更したテストファイル:
- [test-file-path]
- テストケース:[追加したテスト関数の一覧]
テストカバレッジ:
- ✅ 修正の検証テスト
- ✅ エッジケースのテスト
- ✅ リグレッション防止テスト
検証結果
# Linter output
[Show lint results]
# Type check output
[Show type check results]
# Test output
[Show test results - all passing]
確認
手動テスト:
- ✅ 再現手順を実施 - 問題は解決済み
- ✅ エッジケースをテスト - すべて合格
- ✅ 新たな問題の混入なし
- ✅ 元の機能を維持
RCA からの逸脱
[なし — 指定どおりに実装 | RCA からの各逸脱とその理由を記載]
ファイル概要
変更合計:
- X ファイルを変更
- Y ファイルを作成 (テスト)
- Z 行を追加
- W 行を削除
コミット可能
すべての変更が完了し、検証済みです。piv-commit スキルの準備が整いました。
推奨コミットメッセージ:
fix(scope): resolve GitHub issue #$ARGUMENTS - [brief description]
[Summary of what was fixed and how]
Fixes #$ARGUMENTS
注記: コミットメッセージに Fixes #$ARGUMENTS を使用すると、デフォルトブランチにマージされた際に GitHub の issue が自動的にクローズされます。
任意: GitHub Issue の更新
issue に実装コメントを追加:
gh issue comment $ARGUMENTS --body "Fix implemented in commit [commit-hash]. Ready for review."
issue ラベルを更新 (必要な場合):
gh issue edit $ARGUMENTS --add-label "fixed" --remove-label "bug"
issue をクローズ (コミットメッセージによる自動クローズを使用しない場合):
gh issue close $ARGUMENTS --comment "Fixed and merged."
注記
- RCA ドキュメントが存在しない、または不完全な場合は、issue #$ARGUMENTS に対して
piv-investigate-issueスキルでまず作成するよう依頼してください - RCA 分析が誤っていたと判明した場合は、調査結果を文書化し RCA を更新してください
- 実装中に追加の問題が見つかった場合は、別途 GitHub issue と RCA のために記録してください
- プロジェクトのコーディング標準に厳密に従ってください
- 完了を宣言する前に、すべての検証が合格することを確認してください
- コミットメッセージの
Fixes #$ARGUMENTSは、コミットを GitHub の issue にリンクします