From harness
Use this skill whenever the user mentions CI failures, GitHub Actions errors, build pipeline issues, test failures in CI, red builds, or needs to debug why a pipeline broke. Also trigger when the user pastes CI logs or error output from a remote build. Do NOT load for: local builds, local test runs, standard implementation work, code reviews, or project setup. Diagnoses and fixes CI/CD pipeline failures — analyzes logs, identifies root causes, and applies fixes.
npx claudepluginhub tim-hub/powerball-harness --plugin harnessThis skill is limited to using the following tools:
A collection of skills for resolving CI/CD pipeline issues.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
A collection of skills for resolving CI/CD pipeline issues.
| Feature | Details | Trigger |
|---|---|---|
| Failure Analysis | See references/analyzing-failures.md | "Check the logs", "Investigate the cause" |
| Test Fixes | See references/fixing-tests.md | "Fix the tests", "Suggest a fix" |
When CI fails, first triage the root cause:
CI Failure Report
↓
┌─────────────────────────────────────────┐
│ Test vs Implementation Assessment │
├─────────────────────────────────────────┤
│ Analyze the cause of the error: │
│ ├── Implementation is wrong → Fix the implementation │
│ ├── Tests are outdated → Confirm with user │
│ └── Environment issue → Fix the environment │
└─────────────────────────────────────────┘
⚠️ Prohibited Actions on CI Failure
The following "solutions" are prohibited:
| Prohibited | Example | Correct Response |
|-----------|---------|-----------------|
| Skipping tests | `it.skip(...)` | Fix the implementation |
| Removing assertions | Deleting `expect()` | Verify expected values |
| Bypassing CI checks | `continue-on-error` | Fix the root cause |
| Relaxing lint rules | `eslint-disable` | Fix the code |
🔴 CI is failing
**A decision is needed**:
1. **Implementation is wrong** → Fix the implementation ✅
2. **Test expectations are outdated** → Ask the user for confirmation
3. **Environment issue** → Fix environment settings
⚠️ Test tampering (skipping, removing assertions) is prohibited
Which case applies?
When test/config changes are unavoidable:
## 🚨 Test/Config Change Approval Request
### Reason
[Why this change is necessary]
### Changes
[Diff]
### Alternative Considerations
- [ ] Confirmed that fixing the implementation cannot resolve this
Awaiting explicit user approval
Use structured logs to identify the commit that caused a CI failure.
# Analyze commits in structured format
git log --format="%h|%s|%an|%ad" --date=short -10
# Chronological analysis in topological order
git log --topo-order --oneline -20
# Correlate changed files with the cause
git log --raw --oneline -5
| Use Case | Flag | Effect |
|---|---|---|
| Identifying failure cause | `--format="%h | %s"` |
| Chronological tracking | --topo-order | Tracking with merge order considered |
| Understanding change impact | --raw | Detailed file change display |
| Merge-excluded analysis | --cherry-pick --no-merges | Extract actual commits only |
🔍 CI Failure Root Cause Analysis
Recent commits (structured):
| Hash | Subject | Author | Date |
|------|---------|--------|------|
| a1b2c3d | feat: update API | Alice | 2026-02-04 |
| e4f5g6h | test: add tests | Bob | 2026-02-03 |
Changed files (--raw):
├── src/api/endpoint.ts (Modified) ← Type error occurred
├── tests/api.test.ts (Modified)
└── package.json (Modified)
→ Commit a1b2c3d is likely the cause
Type error: src/api/endpoint.ts:42
Launch the ci-cd-fixer via the Task tool when the following conditions are met:
Launch pattern:
Task tool:
subagent_type="ci-cd-fixer"
prompt="Diagnose and fix the CI failure. Error log: {error_log}"
ci-cd-fixer operates safety-first (default dry-run mode).
See agents/ci-cd-fixer.md for details.
🔧 How to talk about CI failures
1. **"CI is down" / "It's red"**
- Automated tests are failing
2. **"Why is it failing?"**
- Investigate the cause
3. **"Fix it"**
- Attempt an automatic fix
💡 Important: "Faking" a fix by tampering with tests is prohibited
- ❌ Deleting or skipping tests
- ⭕ Fixing the code properly
If you suspect the test itself is wrong,
verify first before deciding on a course of action