greploop

📁 greptileai/skills 📅 2 days ago
20
总安装量
5
周安装量
#18267
全站排名
安装命令
npx skills add https://github.com/greptileai/skills --skill greploop

Agent 安装分布

opencode 5
claude-code 5
github-copilot 5
codex 5
gemini-cli 5

Skill 文档

Greploop

Iteratively fix a PR until Greptile gives a perfect review: 5/5 confidence, zero unresolved comments.

Inputs

  • PR number (optional): If not provided, detect the PR for the current branch.

Instructions

1. Identify the PR

gh pr view --json number,headRefName -q '{number: .number, branch: .headRefName}'

Switch to the PR branch if not already on it.

2. Loop

Repeat the following cycle. Max 5 iterations to avoid runaway loops.

A. Trigger Greptile review

Push the latest changes (if any) and wait for Greptile’s review check to appear:

git push

Then poll for the Greptile check to complete:

gh pr checks <PR_NUMBER> --watch

B. Fetch Greptile review results

Get the latest review from Greptile:

gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/reviews

Look for the most recent review from greptile-apps[bot] or greptile-apps-staging[bot].

Parse the review body for:

  • Confidence score: Greptile includes a score like 3/5 or 5/5 in its review summary.
  • Comment count: Number of inline review comments.

Also fetch all unresolved inline comments:

gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/comments

Filter to comments from Greptile that are on the latest commit.

C. Check exit conditions

Stop the loop if any of these are true:

  • Confidence score is 5/5 AND there are zero unresolved comments
  • Max iterations reached (report current state)

D. Fix actionable comments

For each unresolved Greptile comment:

  1. Read the file and understand the comment in context.
  2. Determine if it’s actionable (code change needed) or informational.
  3. If actionable, make the fix.
  4. If informational or a false positive, note it but still resolve the thread.

E. Resolve threads

Fetch unresolved review threads and resolve all that have been addressed (see GraphQL reference):

gh api graphql -f query='
query($cursor: String) {
  repository(owner: "OWNER", name: "REPO") {
    pullRequest(number: PR_NUMBER) {
      reviewThreads(first: 100, after: $cursor) {
        pageInfo { hasNextPage endCursor }
        nodes {
          id
          isResolved
          comments(first: 1) {
            nodes { body path author { login } }
          }
        }
      }
    }
  }
}'

Resolve addressed threads:

gh api graphql -f query='
mutation {
  t1: resolveReviewThread(input: {threadId: "ID1"}) { thread { isResolved } }
  t2: resolveReviewThread(input: {threadId: "ID2"}) { thread { isResolved } }
}'

F. Commit and push

git add -A
git commit -m "address greptile review feedback (greploop iteration N)"
git push

Then go back to step A.

3. Report

After exiting the loop, summarize:

Field Value
Iterations N
Final confidence X/5
Comments resolved N
Remaining comments N (if any)

If the loop exited due to max iterations, list any remaining unresolved comments and suggest next steps.

Output format

Greploop complete.
  Iterations:    2
  Confidence:    5/5
  Resolved:      7 comments
  Remaining:     0

If not fully resolved:

Greploop stopped after 5 iterations.
  Confidence:    4/5
  Resolved:      12 comments
  Remaining:     2

Remaining issues:
  - src/auth.ts:45 — "Consider rate limiting this endpoint"
  - src/db.ts:112 — "Missing index on user_id column"