mcpField
P
piv-implement-issue

piv-implement-issue

github.com/coleam00開発722221 回インストール3 週間前に更新
リポジトリ

piv-implement-issue について

piv-implement-issueは、RCA文書に基づいてGitHub Issueの修正を実装するコーディングスキルです。コードの差分を確認してから、修正、テスト、検証を進め、実装レポートをまとめます。

主な機能

  1. 01RCAと現行コードの差分確認
  2. 02RCA案に沿った修正の実装
  3. 03テスト追加と検証の実行
  4. 04変更内容と検証結果の報告

活用シーン

  1. 01GitHub Issueの既定修正案の実施
  2. 02RCA案と現行コードの整合性確認
  3. 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 の「テスト要件」に従います。

次のテストケースを作成する:

  1. 修正によって問題が解決することを確認する
  2. バグに関連するエッジケースをテストする
  3. 関連機能にリグレッションがないことを確認する
  4. 新たに導入したコードパスをテストする

テストファイルの配置場所:

  • プロジェクトのテスト構成に従う
  • ソースファイルの配置場所に合わせる
  • 内容がわかるテスト名を付ける

テストの実装:

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行要約]

変更内容

変更したファイル:

  1. [file-path]

    • 変更内容:[変更内容]
    • 行:[行番号]
  2. [file-path]

    • 変更内容:[変更内容]
    • 行:[行番号]
追加したテスト

作成/変更したテストファイル:

  1. [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 にリンクします

コメント