From developer
Process GitHub PR review comments by fetching them to local JSON, implementing fixes, and tracking progress. Use when user invokes /gh-process-review command. Fetches reviews to file to avoid context pollution, uses jq for parsing, commits each fix separately. Starts in planning mode by default. Supports optional "continue" argument to skip fetching and resume with existing reviews file.
npx claudepluginhub keboola/ai-kit --plugin developerThis skill uses the workspace's default tool permissions.
Process PR review threads efficiently by storing them locally and addressing them one by one.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Process PR review threads efficiently by storing them locally and addressing them one by one.
CRITICAL: All commands MUST be run from the user's project root directory, NOT from the skill directory.
$SKILL_DIR/scripts/review.sh — the single entry pointcd into the skill directory - the script handles path resolution internallySKILL_DIR = directory containing this SKILL.md (automatically resolved by Claude)
cd into the skill directory. Call $SKILL_DIR/scripts/review.sh from the project root.mark for local tracking only.Fetch reviews for current PR and list unresolved threads:
"$SKILL_DIR/scripts/review.sh" fetch
This auto-detects the PR from the current branch, fetches all review threads, and prints unresolved threads.
/gh-process-review continue)Skip fetching, list unresolved threads from existing reviews file:
"$SKILL_DIR/scripts/review.sh" list
After fetching, enter planning mode using EnterPlanMode tool.
CRITICAL: Context is cleared when the plan is approved. The plan must be self-contained. $SKILL_DIR will no longer be set after context clears, so resolve it to the absolute path in the plan. Do NOT use shell variables — write out the full path in every command. Beyond the thread list and proposed fixes, always include these sections in the plan (replacing /absolute/path/to with the actual resolved $SKILL_DIR/scripts/review.sh path):
## Skill Script
Commands (use the literal path, not a variable):
- `/absolute/path/to/scripts/review.sh get <ID>` — get thread details
- `/absolute/path/to/scripts/review.sh reply <ID> <commit-hash>` — reply with commit
- `/absolute/path/to/scripts/review.sh reply <ID> -m "message"` — reply with message only
- `/absolute/path/to/scripts/review.sh reply <ID> -m "message" <commit-hash>` — reply with both
- `/absolute/path/to/scripts/review.sh mark <ID>` — mark locally resolved
## Rules
- NEVER resolve threads via GitHub API — only the reviewer may resolve their own comments
- ONE commit per fix — never batch multiple fixes
- Each fix: implement → commit → push → reply → mark → next thread
- STAY in project root — never cd into skill directory
In the plan:
Skip planning only if user explicitly requests it (e.g., "skip planning", "no planning", "just fix it").
For each unresolved thread (one at a time):
"$SKILL_DIR/scripts/review.sh" get PRRT_...git add <changed-files>
git commit -m "$(cat <<'EOF'
AI-XXXX Address review: <brief description>
Addresses comment by @<reviewer> on <file>:<line>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)"
"$SKILL_DIR/scripts/review.sh" reply PRRT_..."$SKILL_DIR/scripts/review.sh" mark PRRT_...After all threads are addressed, reflect on the reviewer's feedback:
Single entry point: $SKILL_DIR/scripts/review.sh
--file <path> — Override auto-detected reviews file path"$SKILL_DIR/scripts/review.sh" fetch # Current branch's PR
"$SKILL_DIR/scripts/review.sh" fetch 123 # Specific PR number
"$SKILL_DIR/scripts/review.sh" fetch https://github.com/owner/repo/pull/123 # PR URL
Fetches review threads via GraphQL, saves to .scratch/reviews/, and auto-lists unresolved threads.
"$SKILL_DIR/scripts/review.sh" list # summary (default)
"$SKILL_DIR/scripts/review.sh" list full # full JSON details
"$SKILL_DIR/scripts/review.sh" list ids # just thread IDs
"$SKILL_DIR/scripts/review.sh" get PRRT_kwDOAbcd1234
"$SKILL_DIR/scripts/review.sh" get PRRT_kwDOAbcd1234 PRRT_kwDOEfgh5678
Returns: Single thread as JSON object, or JSON array when multiple IDs given.
Fields: path, line, comments[], isResolved, isOutdated. Warns on missing IDs.
Requires at least one of -m or a commit hash.
"$SKILL_DIR/scripts/review.sh" reply PRRT_kwDOAbcd1234 abc1234 # Commit hash → "Fixed in abc1234"
"$SKILL_DIR/scripts/review.sh" reply PRRT_kwDOAbcd1234 -m "No changes needed" # Message only
"$SKILL_DIR/scripts/review.sh" reply PRRT_kwDOAbcd1234 -m "Refactored per suggestion" abc1234 # Both → "Fixed in abc1234\n\nRefactored per suggestion"
"$SKILL_DIR/scripts/review.sh" mark PRRT_kwDOAbcd1234
"$SKILL_DIR/scripts/review.sh" mark PRRT_kwDOAbcd1234 "Fixed in commit abc123"
pr: PR metadata (number, title, branch names, url)threads[]: id, path, line, isResolved, isOutdated, local_resolved, local_notes, comments[]reviews: Review summariesid: GraphQL ID (starts with PRRT_)path: File pathline: Line numbercomments[0].body: Main feedbackcomments[0].author: Reviewer