ci-monitoring

Use after creating PR - monitor CI pipeline, resolve failures, address review feedback, and merge when all gates pass

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ci-monitoring" with this command: npx skills add troykelly/claude-skills/troykelly-claude-skills-ci-monitoring

CI Monitoring

Monitor CI pipeline, resolve failures, address review feedback, and merge when ready.

Core principle: CI failures AND unresolved review feedback are blockers.

Announce: "I'm monitoring CI and review feedback, and will resolve any issues before merging."

The Loop

PR Created
     │
     ▼
┌─────────────┐
│ Wait for CI │
└──────┬──────┘
       │
   ┌───┴───┐
   │       │
 Green   Red ──► Fix → Push → Loop back
   │
   ▼
┌──────────────────────┐
│ Unresolved Reviews?  │
└──────────┬───────────┘
       ┌───┴───┐
       │       │
     None    Yes ──► For each: Evaluate → Fix/Pushback → Reply → Resolve → Push → Loop back
       │
       ▼
┌─────────────┐
│ MERGE PR    │
└─────────────┘

Gate: Green CI + No Unresolved Reviews = Merge

When both conditions met, merge immediately:

gh pr merge [PR_NUMBER] --squash --delete-branch
gh issue edit [ISSUE_NUMBER] --remove-label "status:in-review" --add-label "status:done"

Do NOT stop to report or ask. Continue to next issue.

Exception: PRs with do-not-merge label.

Checking CI

gh pr checks [PR_NUMBER]
gh pr checks [PR_NUMBER] --watch

Handling CI Failures

  1. Identify: gh run view [RUN_ID] --log-failed
  2. Reproduce locally
  3. Fix and push
  4. Wait for CI, repeat if needed

Detailed patterns: See reference/ci-failures.md

Handling Review Feedback

After CI green, check for unresolved threads:

gh api graphql -f query='
query($owner: String!, $repo: String!, $pr: Int!) {
  repository(owner: $owner, name: $repo) {
    pullRequest(number: $pr) {
      reviewThreads(first: 100) {
        nodes { id isResolved isOutdated comments(first: 1) { nodes { body author { login } path } } }
      }
    }
  }
}' -f owner="[OWNER]" -f repo="[REPO]" -F pr=[PR_NUMBER]

For each unresolved thread (isResolved: false):

StepAction
1Read and understand feedback
2Verify: technically valid for this codebase?
3Fix, defer (with issue), or push back with reasoning
4Reply in thread: gh api repos/.../pulls/.../comments/[ID]/replies -f body="..."
5Resolve: gh api graphql -f query='mutation { resolveReviewThread(...) }'
6Push fixes, loop back to CI

Detailed commands: See reference/review-feedback.md

Security Feedback

Security flags from automated reviewers (Codex, CodeRabbit, etc.) should be treated seriously and verified against the codebase.

Best Practices

Run locally first. CI validates, doesn't discover.

pnpm lint && pnpm typecheck && pnpm test && pnpm build

If CI finds bugs you didn't find locally, your local testing was insufficient.

Checklist

CI:

  • All checks green
  • Failures fixed (if any)

Review feedback:

  • All threads resolved
  • Each: evaluated → fixed/pushback → replied → resolved

Merge:

  • gh pr merge --squash --delete-branch
  • Issue marked Done
  • Continue to next issue

Integration

Called by: issue-driven-development, autonomous-orchestration

Follows: pr-creation

Uses: receiving-code-review (principles for evaluating feedback)

Completes: PR lifecycle

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

issue-driven-development

No summary provided by upstream source.

Repository SourceNeeds Review
General

pexels-media

No summary provided by upstream source.

Repository SourceNeeds Review
General

conflict-resolution

No summary provided by upstream source.

Repository SourceNeeds Review
General

memory-integration

No summary provided by upstream source.

Repository SourceNeeds Review