본문으로 건너뛰기
cccskills
무료GitHub에 공개

triage-reviews

Collect PR review feedback, check each finding against code and documentation, and fix valid issues. Run project checks, commit and push changes, then reply to review threads and resolve fixed findings or false positives.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Fetch PR review comments, verify each against real code/docs, fix valid issues, commit and push

연동 도구GitHub
설치 방법 보기

이럴 때 유용합니다

  • Deduplicating feedback from multiple reviewers
  • Checking review findings against current code
  • Testing and pushing fixes for valid findings
  • Replying to threads and tracking unresolved issues

포함된 파일(1)

  • SKILL.md5.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Triage PR Review Comments

Fetch all review comments on the current PR, verify each finding against real code, fix valid issues, and push.

Phase 1: Gather Comments

  1. Determine the PR number:

    • Use $ARGUMENTS if provided
    • Otherwise: gh pr view --json number --jq .number
  2. Fetch ALL comments (reviewers post in multiple places):

    gh api --paginate repos/{owner}/{repo}/pulls/{pr}/reviews
    gh api --paginate repos/{owner}/{repo}/pulls/{pr}/comments
    gh api --paginate repos/{owner}/{repo}/issues/{pr}/comments
    
  3. Extract unique findings — deduplicate across Copilot, Greptile, and human reviewers. Group by file and line.

Phase 2: Verify Each Finding

For EVERY finding, verify against real code before accepting or rejecting:

  1. Read the actual code at the referenced file:line
  2. Check if the issue still exists — it may already be fixed in a later commit
  3. Verify correctness using:
    • Code analysis (read surrounding context, trace call paths)
    • Run btca resources to see what's available, then btca ask -r <resource> -q "..." for library/framework questions
    • Web search for API behavior, language semantics, or CVEs
  4. Classify each finding:
    • Valid — real bug, real gap, or real improvement needed
    • False positive — reviewer misread the code, outdated reference, or style preference

Phase 3: Fix & Ship

  1. Fix all Valid findings
  2. Run the project's lint/test commands
    • If lint/tests fail, fix the failures before committing
    • If a failure cannot be fixed automatically, skip that fix and report it as Valid (unfixed) in the Phase 4 table
  3. git add only changed files, git commit with message:
    fix: Address PR review feedback
    
    - <one-line summary per fix>
    
  4. Push: gt submit (or git push if not using Graphite)

Phase 3.5: Reply on each thread, then resolve it

Pushing the fix isn't enough. Each inline review comment lives in its own thread that GitHub keeps showing as "Unresolved" until someone explicitly resolves it. The skill must close that loop for every Valid and False-positive finding so the PR view actually reflects what was triaged.

Workflow per finding:

  1. Reply on the thread with the verdict and evidence:

    • Valid + fixed: Fixed in <short-sha>. <one-line what changed>.
    • Valid + unfixed: Valid, deferred to follow-up. Reason: <why>.
    • False positive: False positive. <one-line evidence: file:line shows X, or doc link Y>.
  2. Resolve the thread only when the finding is Fixed or False positive. Valid + unfixed threads must stay open so the PR view continues to surface the real bug. Resolving them would let the PR look ready while the bug is still in the code. Leave the maintainer to close those threads when they file the follow-up.

GitHub's review threads can only be resolved via GraphQL (REST has no endpoint). The thread ID is a GraphQL node ID, not the REST comment ID, so fetch both together. Use --paginate so PRs with more than 100 threads are covered, the page size cap is per-request not total:

PR=<pr-number>
OWNER=<owner>
REPO=<repo>

gh api graphql --paginate -f query='
  query($owner: String!, $repo: String!, $pr: Int!, $endCursor: String) {
    repository(owner: $owner, name: $repo) {
      pullRequest(number: $pr) {
        reviewThreads(first: 100, after: $endCursor) {
          pageInfo { hasNextPage endCursor }
          nodes {
            id
            isResolved
            comments(first: 1) { nodes { databaseId path line body } }
          }
        }
      }
    }
  }' \
  -F owner="$OWNER" -F repo="$REPO" -F pr=$PR \
  --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false) | {threadId: .id, commentId: .comments.nodes[0].databaseId, path: .comments.nodes[0].path, line: .comments.nodes[0].line}' \
  > /tmp/triage-threads-$PR.json

Each entry now has {threadId, commentId, path, line}. Match it against your Phase-2 finding map (by path + line or commentId). For each match:

# Post reply (REST endpoint for replies on a specific review comment)
gh api -X POST "/repos/$OWNER/$REPO/pulls/$PR/comments/$COMMENT_ID/replies" \
  -f body="Fixed in $SHORT_SHA. <one-line>."

# Resolve the thread (GraphQL) — Fixed and False-positive only. SKIP for Valid+unfixed.
gh api graphql -f query="
  mutation {
    resolveReviewThread(input: {threadId: \"$THREAD_ID\"}) {
      thread { isResolved }
    }
  }"

If the parent review left a separate top-level summary comment (Greptile's Greptile Summary issue-level comment, for example), leave it alone, only inline review threads need resolving.

Cap: resolve only threads tied to findings you actually classified. Do not bulk-resolve unrelated threads (other reviewers, human discussion, follow-up questions that aren't from this triage round).

Phase 4: Report

Present a final summary table of ALL findings with verdicts:

#SourceFile:LineFindingVerdictReasonThread

Last column: replied + resolved, replied + still open (e.g. waiting on reviewer), or n/a (no inline thread, only summary). If any thread stayed open, name it explicitly so the next pass picks it up.

Notes

  • Never dismiss a finding without reading the actual code first
  • If unsure, err toward "Valid" — it's cheaper to fix than to miss a bug
  • For library/API questions, always use btca or web search — don't guess

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Prioritize open LinkedIn integration issues and pull requests, or proposed code changes, using report completeness, severity, reach, and readiness checks. Produce ranked lists, identify missing evidence, and recommend concrete next steps for maintainers.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Prioritizing a backlog of open issues
  • Separating reports that need more evidence
  • Comparing pull requests for production readiness
stickerdaniel/linkedin-mcp-server4천2026년 10월 21일 업데이트

Investigate LinkedIn integration bugs by comparing issue reports with source code. Separate established facts from unverified claims, identify missing evidence, and optionally check reproduction in a live environment after explicit approval.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Investigating a reported LinkedIn integration bug
  • Identifying evidence missing from an issue report
  • Checking live reproduction after approval
stickerdaniel/linkedin-mcp-server4천2026년 10월 21일 업데이트

Evaluate whether a proposed LinkedIn integration fix addresses its linked issue by reviewing the report, code changes, and tests. Flag implementation concerns and optionally compare live results with a genuine recorded baseline after approval.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking whether a PR addresses its linked issue
  • Reviewing language-dependent detection and selectors
  • Comparing live results with a recorded baseline
stickerdaniel/linkedin-mcp-server4천2026년 10월 21일 업데이트

Search Git repositories locally to answer questions about implementation or usage. The skill clones or updates repositories, examines their contents, and presents findings with source links and complete code examples, including necessary imports.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Investigating how a repository implements a feature
  • Finding usage examples with complete imports
  • Revisiting and searching previously cloned repositories
stickerdaniel/linkedin-mcp-server4천2026년 10월 21일 업데이트

Prepare GitHub bug reports, feature requests, documentation issues, and chores using repository forms and supporting evidence. Search existing issues to choose between a new report and a comment, then publish only after approval of the exact public text.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Preparing a bug report with supporting evidence
  • Drafting a feature request using the repository form
  • Adding new evidence to an existing issue
stickerdaniel/linkedin-mcp-server4천2026년 10월 21일 업데이트

Use LinkedIn profiles, company information, jobs, posts, and inbox conversations for recruiting, job searches, and outreach research. Through the bundled MCP server, an agent connection to LinkedIn, the skill also handles explicitly authorized messages and connection requests.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Researching people and companies for recruiting
  • Finding jobs and checking application links
  • Reviewing posts and feed content
stickerdaniel/linkedin-mcp-server4천2026년 10월 21일 업데이트

stickerdaniel의 스킬 모두 보기

이 스킬의 문제 신고