mcpField
D
diffx-finish-review

diffx-finish-review

github.com/wong2Testing & quality217193 installsUpdated 18w ago
Repository

About diffx-finish-review

A skill for handling code review comments from a running local diffx server. It distinguishes change requests from questions, applies requested edits or replies, and updates comment status where appropriate.

Key features

  1. 01Fetch diffx review comments
  2. 02Distinguish requests from questions
  3. 03Edit code to address requests
  4. 04Reply and resolve change requests
  5. 05Ask for clarification on ambiguous comments

Use cases

  1. 01Apply requested code review changes
  2. 02Answer questions in review threads
  3. 03Follow up on open review comments

Install

Copy the command and run it in a terminal.

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

After installing, type/diffx-finish-reviewin Claude Code to confirm it loaded.

Details

From the project README

Finish diffx Review

Fetch all review comments from the running diffx server, apply the requested changes, and mark each comment as resolved.

What to do

1. Fetch comments from the API

The diffx server is running locally. Check the earlier conversation context for the port diffx reported on startup. Fetch all comments:

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

Replace <port> with the port number diffx reported on startup (visible in the server log output).

The response is a JSON array of comment objects:

[
  {
    "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. Process each comment

For each comment with "status": "open", first determine the intent — is it a change request or a question?

Change requests (e.g., "Rename x to parsedToken", "Extract this into a helper")
  1. Read the file at filePath
  2. Find the relevant code using lineContent as context
  3. Apply the change described in body
  4. Reply to the comment explaining what you did, then mark it as resolved:
# 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"}'
Questions (e.g., "Why not use a Map here?", "Is this thread-safe?")

Just reply with an answer. Do not modify code or resolve the comment — leave it open for the user to read and follow up if needed.

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..."}'

The side field tells you whether the comment is on an added line (additions) or a deleted line (deletions).

3. Handle edge cases
  • If a comment is ambiguous, reply to ask for clarification rather than guessing.
  • If multiple comments interact (e.g., a rename that affects several places), handle them together.
  • If there are no open comments, tell the user there's nothing to process.
4. Summary

After processing all comments, give a brief summary of what you did: how many changes were applied, how many questions were answered.

Comments

Markdown supported