CommunityCoding & Developmentgithub.com

duongphuhiep/dakubo-skills

Use when the user wants to reply to a code review remark on a GitHub pull request and resolve its thread. Triggers on "answer remark #N in the PR", "reply to the reviewer", or "resolve this review comment".

What is dakubo-skills?

dakubo-skills is a Claude Code agent skill that use when the user wants to reply to a code review remark on a GitHub pull request and resolve its thread. Triggers on "answer remark #N in the PR", "reply to the reviewer", or "resolve this review comment".

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/duongphuhiep/dakubo-skills/tree/HEAD/package/skills/dakubo-answer-review-remark-in-pr

Installed? Explore more Coding & Development skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Answer Review Remark in PR

Reply to a code review remark on a GitHub PR and resolve the thread.

Inputs

Infer all inputs from the conversation context. Ask only if ambiguous.

Input 1 — PR number or URL. The pull request to act on. Infer from context (e.g. a previously displayed PR URL or branch name). If truly ambiguous, run:

gh pr list --head "$(git rev-parse --abbrev-ref HEAD)" --json number,url --jq '.[0]'

Input 2 — The remark to answer. A specific reviewer finding — usually identified by number (#2), file+line, or quoted text from the remark table shown earlier in the conversation. If no remark table is in the conversation and the dakubo-display-pr-remarks skill is available, use it to make the table. If not, ask the user for the remark.

Input 3 — The answer. The response to post: an explanation, acknowledgement, or fix summary. Derive from context (e.g. what was just fixed or discussed). Ask if unclear.

Process

1. Resolve the comment ID

Fetch inline review comments for the PR:

gh api repos/:owner/:repo/pulls/<PR>/comments --paginate \
  --jq '.[] | {id, path, line: (.line // .original_line), body: .body[0:120]}'

Match the target remark by line number, file path, or body snippet. Note its id.

2. Post the reply

gh api repos/:owner/:repo/pulls/<PR>/comments \
  --method POST \
  --field body="<answer>" \
  --field in_reply_to=<comment_id>

3. Resolve the thread

Find the review thread that contains this comment:

gh api graphql -f query='
{
  repository(owner: "<owner>", name: "<repo>") {
    pullRequest(number: <PR>) {
      reviewThreads(first: 100) {
        nodes {
          id
          isResolved
          comments(first: 1) { nodes { databaseId } }
        }
      }
    }
  }
}'

Match the thread whose comments.nodes[0].databaseId equals the original comment id (not the reply). Then resolve it:

gh api graphql -f query='
mutation {
  resolveReviewThread(input: { threadId: "<thread_node_id>" }) {
    thread { isResolved }
  }
}'

Output

Confirm: reply posted to comment <id> at <file>:<line>, thread resolved. One sentence.

What NOT to do

  • Do not fabricate an answer — derive it from context or ask.
  • Do not resolve a thread without posting a reply first.
  • Do not guess the PR if multiple are open on this branch; ask.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

duongphuhiep/dakubo-skills

Use when the user wants to respond to a code review remark by adding a clarifying comment to the source code — so the reviewer understands the reasoning and won't raise the same remark again. Triggers on "answer remark #N", "add comment to address reviewer concern", "document why we did X", or any request to resolve a review finding through in-code explanation rather than a code change.

duongphuhiep/dakubo-skills

Use when the user wants to see unresolved PR comments, review remarks, or outstanding feedback on a pull request.

duongphuhiep/dakubo-skills

Traces the full call chain from a given symbol or code location up to all entry points that can reach it (HTTP controllers, main functions, page components, routes, etc.). Works for any language indexed by CodeGraph. Use for blast-radius analysis before modifying a function, method, or class.

duongphuhiep/dakubo-skills

Consolidates multiple fragmented OpenSpec capability folders under openspec/specs/ into a single main feature spec, through a staged/approved workflow. Use this whenever the user says openspec/specs/ is cluttered, has too many similar or overlapping capability folders, asks to merge/consolidate/combine specs, wants to clean up specs split across several separate change archives (e.g. specs/user-show/, specs/user-detail/ that should really be one specs/user-management/), or asks to check/apply a pending merged spec under openspec/specs/.merged-specs/. Do NOT use this for a normal single /opsx:archive of one change — only for merging several already-archived, already-existing spec folders together.

Related Skills