mcpField
D
diffx-finish-review

diffx-finish-review

github.com/wong2テスト・品質217193 回インストール18 週間前に更新
リポジトリ

diffx-finish-review について

稼働中のローカル diffx サーバーからコードレビューコメントを取得して処理するスキルです。変更依頼と質問を区別し、コードの修正や返信を行い、必要に応じてコメントの状態を更新します。

主な機能

  1. 01diffx のレビューコメント取得
  2. 02変更依頼と質問の判別
  3. 03依頼に沿ったコード修正
  4. 04返信と変更依頼の解決
  5. 05曖昧なコメントへの確認

活用シーン

  1. 01コードレビューの指摘を反映
  2. 02レビューコメントの質問に回答
  3. 03未解決コメントのフォローアップ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wong2/diffx --skill diffx-finish-review

インストール後、Claude Code で/diffx-finish-reviewを入力して読み込まれたか確認します。

詳細

diffx のレビューを完了する

実行中の diffx サーバーからすべてのレビューコメントを取得し、依頼された変更を適用して、各コメントを解決済みにします。

実行すること

1. API からコメントを取得する

diffx サーバーはローカルで実行中です。前の会話のコンテキストを確認し、起動時に diffx が報告したポート番号を調べます。すべてのコメントを取得します。

curl -s http://localhost:<port>/api/comments

<port> を、起動時に diffx が報告したポート番号(サーバーログの出力で確認できます)に置き換えます。

レスポンスはコメントオブジェクトの JSON 配列です。

[
  {
    "id": "uuid",
    "filePath": "src/utils/parser.ts",
    "side": "additions",
    "lineNumber": 42,
    "lineContent": "const x = tokenize(input)",
    "body": "Rename x to parsedToken for clarity",
    "status": "open",
    "createdAt": 1234567890,
    "replies": []
  }
]
2. 各コメントを処理する

"status": "open" のコメントごとに、まず意図を判断します。変更依頼ですか、それとも質問ですか?

変更依頼(例:「x を parsedToken に名前変更してください」「これをヘルパーに切り出してください」)
  1. filePath のファイルを読み取ります。
  2. lineContent を手がかりに、該当するコードを探します。
  3. body に記載された変更を適用します。
  4. 実施した内容を説明する返信をコメントに投稿し、その後、コメントを解決済みにします。
# Reply to the comment
curl -s -X POST http://localhost:<port>/api/comments/<id>/replies \
  -H "Content-Type: application/json" \
  -d '{"body": "Done. Renamed x to parsedToken."}'

# Mark as resolved
curl -s -X PUT http://localhost:<port>/api/comments/<id> \
  -H "Content-Type: application/json" \
  -d '{"status": "resolved"}'
質問(例:「ここで Map を使わないのはなぜですか?」「これはスレッドセーフですか?」)

回答だけを返信します。コードを変更したり、コメントを解決したりしないでください。ユーザーが読んで必要に応じてフォローアップできるよう、未解決のままにします。

curl -s -X POST http://localhost:<port>/api/comments/<id>/replies \
  -H "Content-Type: application/json" \
  -d '{"body": "A Map would work too, but we use a plain object here because..."}'

side フィールドは、コメントが追加された行(additions)にあるのか、削除された行(deletions)にあるのかを示します。

3. エッジケースへの対応
  • コメントが曖昧な場合は、推測せずに確認を求める返信をします。
  • 複数のコメントが関連する場合(例:名前の変更が複数の箇所に影響する場合)は、まとめて対応します。
  • 未解決のコメントがない場合は、処理するものがないことをユーザーに伝えます。
4. まとめ

すべてのコメントを処理した後、実施した内容を簡潔にまとめます。適用した変更の数と、回答した質問の数を伝えます。

コメント