RE

resolve-checks

This tool runs local test suites and incorporates PR feedback to ensure all checks pass before a merge is suggested.

Install

mkdir -p .claude/skills/resolve-checks && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7086" && unzip -o skill.zip -d .claude/skills/resolve-checks && rm skill.zip

Installs to .claude/skills/resolve-checks

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Resolve all failing CI checks and address PR review feedback on the current branch's PR. Runs tests locally, fixes failures, incorporates valid review comments, and resolves addressed feedback. Use when CI is red, after receiving PR feedback, or before merging.
261 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Run local test suites for type checking and linting
  • Execute backend, frontend, RLS, and integration tests
  • Fix local test failures by reproducing and re-running specific tests
  • Check CI status and investigate CI-only failures
  • Diagnose and fix flaky tests by identifying root causes

How it works

This skill systematically resolves failing CI checks and PR review feedback by running local tests, fixing identified issues, and verifying all checks pass before suggesting a merge.

Inputs & outputs

You give it
current branch with PR changes, PR review feedback
You get back
all local and CI tests passing, addressed PR review comments, merged PR readiness

When to use resolve-checks

  • Fix failing CI checks
  • Address pending PR review feedback
  • Verify test suite locally before pushing
  • Check readiness for PR merge

About this skill

Resolve Checks

Systematically resolve all failing CI checks and address PR review feedback by running tests locally first, fixing issues, incorporating valid feedback, and verifying CI passes.

When to Use

  • When CI checks are failing on your PR
  • When you have unresolved PR review comments
  • Before attempting to merge a PR
  • When you want to proactively verify all checks pass
  • After making changes and before pushing
  • After receiving code review feedback

Core Principle

Run tests locally first, don't wait for CI. You have access to the full test suite locally. Catching failures locally is faster than waiting for CI round-trips.

Reference Documentation

For detailed information on test types, setup files, utilities, and common failure patterns, see test-reference.md.

Process

1. Identify the PR

# Get current branch
git branch --show-current

Use GitHub MCP to find the PR:

mcp__github__list_pull_requests with state: "open" and head: "<branch-name>"

2. Run Local Test Suite

Run all tests locally before checking CI status:

cd platform/flowglad-next

# Step 1: Type checking and linting (catches most issues)
bun run check

# Step 2: Backend tests (unit + db combined)
bun run test:backend

# Step 3: Frontend tests
bun run test:frontend

# Step 4: RLS tests (run serially)
bun run test:rls

# Step 5: Integration tests (end-to-end with real APIs)
bun run test:integration

# Step 6: Behavior tests (if credentials available)
bun run test:behavior

Run these sequentially. Fix failures at each step before proceeding to the next.

Note: test:backend combines unit and db tests for convenience. You can also run them separately with test:unit and test:db.

3. Fix Local Failures

When tests fail locally:

  1. Read the error output carefully - Understand what's actually failing
  2. Reproduce the specific failure - Run the single failing test file:
    bun test path/to/failing.test.ts
    
  3. Fix the issue - Make the necessary code changes
  4. Re-run the specific test - Verify your fix works
  5. Re-run the full suite - Ensure no regressions

Common Failure Patterns

Failure TypeLikely Cause
Type errorsSchema/interface mismatch
Lint errorsStyle violations
Unit test failuresLogic errors, missing MSW mock
DB test failuresSchema changes, test data collisions
RLS test failuresPolicy misconfiguration, parallel execution
Integration failuresInvalid credentials, service unavailable

See test-reference.md for detailed failure patterns and fixes.

4. Check CI Status

After local tests pass, check CI:

mcp__github__get_pull_request_status with owner, repo, and pull_number

Review each check's status. For failing checks:

  1. Get the failure details from GitHub
  2. Compare with local results - Did it pass locally?
  3. If CI-only failure, investigate environment differences:
    • Missing environment variables
    • Different Node/Bun versions
    • Timing/race conditions
    • External service availability

5. Fix CI-Specific Failures

For failures that only occur in CI:

  1. Check the CI logs - Look for the actual error message
  2. Check environment differences:
    # Compare local vs CI environment
    bun --version
    node --version
    
  3. Check for parallelism issues - Some tests may not be parallel-safe (see RLS tests)
  4. Investigate flaky tests - See "Handling Flaky Tests" section below

6. Handling Flaky Tests

CRITICAL: Do not simply re-run CI hoping tests will pass. Flaky tests indicate real problems that must be diagnosed and fixed.

When a test passes locally but fails in CI (or fails intermittently):

Step 1: Identify the Flakiness Pattern

Run the failing test multiple times locally:

# Run 10 times to check for intermittent failures
for i in {1..10}; do bun test path/to/flaky.test.ts && echo "Pass $i" || echo "FAIL $i"; done

Step 2: Diagnose the Root Cause

Common causes of flaky tests:

SymptomRoot CauseFix
Different results each runNon-deterministic data (random IDs, timestamps)Use fixed test data or sort before comparing
Timeout failuresAsync operation too slow or never resolvesAdd proper await, increase timeout, or fix hanging promise
Race conditionsTest doesn't wait for async side effectsUse proper async/await, add waitFor(), or test the callback
Order-dependent failuresTest relies on state from previous testEnsure proper setup/teardown isolation
Parallel execution conflictsTests share mutable state (DB, globals, env vars)Use unique test data, proper isolation helpers
External service failuresTest depends on real API availabilityMock the service or handle unavailability gracefully

Step 3: Fix the Test (Not Just Re-run)

Always fix the underlying issue:

// BAD: Non-deterministic - order not guaranteed
const results = await db.query.users.findMany()
expect(results).toEqual([user1, user2])

// GOOD: Sort before comparing
const results = await db.query.users.findMany()
expect(results.sort((a, b) => a.id.localeCompare(b.id))).toEqual([user1, user2].sort((a, b) => a.id.localeCompare(b.id)))
// BAD: Race condition - side effect may not be complete
triggerAsyncOperation()
expect(sideEffect).toBe(true)

// GOOD: Wait for the operation
await triggerAsyncOperation()
expect(sideEffect).toBe(true)
// BAD: Timing-dependent
await sleep(100) // Hope this is enough time
expect(result).toBeDefined()

// GOOD: Poll for condition
await waitFor(() => expect(result).toBeDefined())

Step 4: Verify the Fix

After fixing:

  1. Run the test 10+ times locally to confirm it's stable
  2. Push and verify it passes in CI
  3. If it still fails in CI, there's an environment difference to investigate

7. Push Fixes and Verify

After fixing issues:

# Stage and commit fixes
git add -A
git commit -m "fix: resolve failing checks

- [describe what was fixed]

Co-Authored-By: Claude <[email protected]>"

# Push to trigger CI
git push

Then wait for CI to complete and verify all checks pass:

mcp__github__get_pull_request_status with owner, repo, and pull_number

8. Iterate Until Green

Repeat steps 4-7 until all checks pass. Common iteration scenarios:

  • New failures appear - Your fix may have caused regressions
  • Flaky test still fails - Revisit "Handling Flaky Tests" section, dig deeper into root cause
  • CI timeout - Tests may be too slow, need optimization

Remember: The goal is a stable, passing test suite - not a lucky CI run. Every fix should address the root cause.

9. Address PR Review Feedback

After CI checks pass, review and address any PR comments left by reviewers.

Step 1: Fetch PR Comments

Get all review comments on the PR:

mcp__github__get_pull_request_comments with owner, repo, and pull_number

Also get the formal reviews:

mcp__github__get_pull_request_reviews with owner, repo, and pull_number

Step 2: Categorize Each Comment

For each comment, determine if it is:

CategoryDescriptionAction
Valid & ActionableIdentifies a real issue, bug, or improvementImplement the fix
Valid but Won't FixCorrect observation but intentional design choiceReply explaining the rationale
Already AddressedIssue was fixed in a subsequent commitResolve the comment
Invalid/MisunderstandingBased on incorrect assumptions about the codeReply with clarification
Nitpick/OptionalStyle preference or minor suggestionImplement if quick, otherwise discuss

Step 3: Incorporate Valid Feedback

For each valid comment:

  1. Read the specific file and line mentioned in the comment
  2. Understand the concern - What issue is the reviewer pointing out?
  3. Implement the fix - Make the necessary code changes
  4. Reply to the comment - Briefly explain what was changed
mcp__github__add_issue_comment with owner, repo, issue_number, and body

Or reply directly to the review comment thread.

Step 4: Resolve Addressed Comments

After incorporating feedback or providing clarification:

For comments you addressed: The comment should be resolved to indicate the feedback was incorporated. If GitHub MCP supports resolving comments, use that. Otherwise, reply with "Done" or "Fixed in [commit hash]" to signal completion.

For invalid comments: Reply with a clear, respectful explanation of why the current implementation is correct or intentional. Include:

  • What the code actually does
  • Why it's designed this way
  • Any relevant context the reviewer may have missed

Example reply for invalid feedback:

This is intentional - the `userId` here refers to the authenticated user making the request, not the target user. The authorization check happens in the middleware at line 45, so by this point we know the user has permission.

Step 5: Handle Review Requests

If the PR has "Changes Requested" status:

  1. Address all blocking comments from that review
  2. Re-request review from the reviewer once changes are made:
    gh pr edit <PR_NUMBER> --add-reviewer <USERNAME>
    

Common Review Feedback Patterns

Feedback TypeHow to Address
Missing error handlingAdd try/catch or Result type handling
Type safety concernsAdd proper types, remove any
Missing testsAdd test cases for the mentioned scenarios
Security issuesFix immediately, these are blocking
Performance concernsEvaluate and optimize if valid
Code clarityRename variables, add comments, or refactor
Breaking changesEnsure backwards

Content truncated.

When not to use it

  • When you want to simply re-run CI hoping tests will pass

Limitations

  • Some tests may not be parallel-safe
  • Tests can depend on real API availability

How it compares

This skill emphasizes running the full test suite locally and systematically addressing failures, which is faster than relying solely on CI round-trips.

Compared to similar skills

resolve-checks side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
resolve-checks (this skill)16moReviewIntermediate
4-maid-development04moNo flagsAdvanced
git-pr-workflows-git-workflow03moNo flagsAdvanced
spec-driven-workflow01moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

4-maid-development

megori

MAID Phase 4 - Development phase. Use for implementing features, TDD practices, code reviews, transitioning from planning to QA.

00

git-pr-workflows-git-workflow

Anhvu1107

ALWAYS use this when the request matches GIT PR Workflows GIT Workflow: Orchestrate a comprehensive git workflow from code review through PR creation, leveraging specialized agents for quality assurance, testing, and deployment readiness.

00

spec-driven-workflow

CafeSemCafeina

The build workflow for avaliador-tech-recruiter — risk-ordered tiers with a protected mock-mode floor, a Ready spec required before any unit is implemented, eval gates (L0 contract / L1 policy / L2 fixtures) as the merge filter, package partitioning for parallel agents, atomic Conventional Commits,

00

init

alirezarezvani

Set up Playwright in a project. Use when user says "set up playwright", "add e2e tests", "configure playwright", "testing setup", "init playwright", or "add test infrastructure".

12

senior-qa

diegosouzapw

Comprehensive QA and testing skill for quality assurance, test automation, and testing strategies for ReactJS, NextJS, NodeJS applications. Includes test suite generation, coverage analysis, E2E testing setup, and quality metrics. Use when designing test strategies, writing test cases, implementing

00

full-review

Trophalaxeur

Analyse complète du repository Bismuth (Astro 6 / React / Tailwind v4). Détecte le code mort, fichiers inutilisés, mauvaises pratiques, problèmes qualité, SEO et accessibilité. Produit un fichier Markdown avec liens VSCode cliquables.

00

Search skills

Search the agent skills registry