From mblode-agent-skills
Monitors PR health on a recurring schedule — merge conflicts, CI/CD failures across GitHub Actions, Buildkite, Vercel, and Fly.io, review comment triage and resolution, and merge readiness notifications. Also runs as one-shot comment triage. Use when asked to babysit a PR, watch a PR, monitor CI, fix PR comments, resolve review feedback, triage review threads, keep a PR green, handle merge conflicts, or poll PR status
npx claudepluginhub joshuarweaver/cascade-code-general-misc-4 --plugin mblode-agent-skillsThis skill uses the workspace's default tool permissions.
Two modes: **one-shot** comment triage or **monitor** mode with periodic polling via CronCreate.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Two modes: one-shot comment triage or monitor mode with periodic polling via CronCreate.
| File | Read When |
|---|---|
references/github-api.md | Default: GraphQL queries for fetching, replying, and resolving threads |
references/bot-patterns.md | Comment triage: bot detection, severity parsing, deduplication, false positive rules |
references/fix-plan-template.md | Comment triage Phase 3: generating the fix plan document |
references/monitoring-setup.md | Monitor mode Phase 1: CronCreate configuration, state file format, schedule selection |
references/ci-platforms.md | Monitor mode Phase 3: gh for GitHub, bk/vercel/flyctl for platform-specific logs and retries |
references/merge-conflicts.md | Monitor mode Phase 2: detecting and resolving merge conflicts |
Triage and resolve PR review comments from humans and bots in a structured four-phase workflow.
Copy this checklist to track progress:
Comment triage progress:
- [ ] Phase 1: Fetch unresolved review threads, reviews, and comments
- [ ] Phase 2: Triage and classify all items
- [ ] Phase 3: Write fix plan and get approval
- [ ] Phase 4: Execute fixes and resolve threads
Load references/github-api.md for query templates.
gh pr view --json number) or accept an explicit PR number argumentgh repo view --json owner,namereviewThreads query with pagination. Collect every thread, then filter to isResolved == falseCHANGES_REQUESTED reviews with body text — these contain the reviewer's summary of what needs to changegithub-actions[bot] may contain actionable findings (DangerJS warnings, schema compatibility checks)Output: three lists — unresolved threads, reviews with content, and issue-level comments.
Load references/bot-patterns.md for detection and parsing rules.
For each item across all three sources:
references/bot-patterns.md for detection rules, severity parsing, and false positive patternsCHANGES_REQUESTED, Minor for APPROVED + questionignore-duplicateHuman comments are never auto-ignored. Always classify as fix unless clearly already resolved or the reviewer explicitly marked it as optional ("up to you", "but not blocking").
Load references/fix-plan-template.md for the output template.
.claude/scratchpad/pr-{N}-review-plan.md (create directory if needed)Stop here. Do not proceed to Phase 4 until the user reviews and approves the plan.
The user may edit the plan — move items between fix/conversation/ignore, change priorities, add notes. Re-read the plan file before executing.
After user approval, re-read .claude/scratchpad/pr-{N}-review-plan.md in case it was edited.
4a. Resolve ignored threads:
For each ignored item that has a thread ID:
Use concise, specific reasons:
For ignored noise without a thread ID (issue-level bot comments), do nothing — no reply needed.
4b. Fix real issues:
Group fixes by commit group label from the plan. For each group:
4c. Commit and push:
fix({scope}): {description}4d. Resolve and reply:
4e. Verify:
gh pr checksSet up periodic monitoring via CronCreate. Polls for merge conflicts, CI/CD failures, new review comments, and deployment status. Fixes what it can, runs comment triage when needed, and notifies on state changes.
Copy this checklist to track progress:
PR babysit progress:
- [ ] Phase 1: Initialize — identify PR, snapshot state, set up cron
- [ ] Phase 2: Conflict check — detect and resolve merge conflicts
- [ ] Phase 3: CI/CD check — poll checks, diagnose failures, fix and push
- [ ] Phase 4: Comment check — detect new comments, run comment triage
- [ ] Phase 5: Readiness check — evaluate merge readiness, notify user
Load references/monitoring-setup.md for schedule configuration.
gh pr view --json number,url,title,headRefName,baseRefName,mergeable,mergeStateStatus,reviewDecision) or accept an explicit PR numbergh repo view --json owner,name.claude/scratchpad/babysit-pr-{N}.md:
gh pr checks to identify active platforms (GitHub Actions, Buildkite, Vercel, Fly.io)*/5 * * * *). User may overrideLoad references/merge-conflicts.md for resolution strategy.
gh pr view --json mergeable,mergeStateStatus
MERGEABLE → skip to Phase 3CONFLICTING → proceed to resolveUNKNOWN → wait, recheck next cyclegit fetch origin {base_branch} && git rebase origin/{base_branch}
git push --force-with-lease → notify usergit rebase --abort → notify user with detailsNever force-push without --force-with-lease. If the lease fails, someone else pushed — abort and notify.
Load references/ci-platforms.md for gh CLI commands per platform.
gh pr checks --json name,state,conclusion,detailsUrlgh run view --log-failed (GitHub Actions), bk (Buildkite), vercel logs (Vercel), flyctl logs (Fly.io)gh pr view --jsonmergeable == MERGEABLE (no conflicts)reviewDecision == APPROVEDgh pr merge --auto --squashOn stop, report a final summary: total polls, fixes applied, conflicts resolved, current state.
--force-with-lease — risks overwriting teammate commitsgithub-actions[bot] as always noise — it is a shared identity used by DangerJS, schema checkers, and other active tools. Classify by contentreview-pr for local self-review before pushing fixes