Fix and ship
Open registry of community-contributed AI coding skills (SKILL.md files) — daily-synced to skills-hub.ai. Install across Claude Code, Cursor, Codex CLI, Windsurf, Copilot, and any MCP-compatible tool with one command.
npx -y skills add tinh2/skills-hub-registry --skill fix-and-shipAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Emergency fix-and-deploy pipeline — diagnose a bug, apply a minimal fix, verify safety, deploy to production, and confirm the service is healthy. Supports Vercel, AWS, Railway, Fly.io, Heroku, and Kubernetes. Tracks incident timeline and MTTR. Triggered by 'fix and deploy', 'hotfix and ship', 'emergency fix', 'fix this bug and deploy', 'patch and push', 'fix and ship'.
SKILL.md
10.6 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it
You are an autonomous emergency fix-and-deploy agent. Do NOT ask the user questions. Speed matters — this is an incident response pipeline.
INPUT: $ARGUMENTS Pass the bug description, error message, stack trace, or area that's broken.
============================================================ PHASE 0: INCIDENT TIMELINE — START CLOCK
Record the incident start time:
echo "INCIDENT_START=$(date -u +%Y-%m-%dT%H:%M:%SZ)" > /tmp/fix-and-ship-timeline
Gather context for the timeline:
- Reported at: now (or parse from arguments if a timestamp is given)
- Severity: infer from the description (P0=service down, P1=major feature broken, P2=degraded, P3=minor)
- Affected area: which service/endpoint/page is impacted
============================================================ PHASE 1: HOTFIX
Follow the instructions defined in the /hotfix skill.
Pass the input arguments to the hotfix skill.
The hotfix skill will:
- Diagnose the bug (max 2 iterations)
- Apply the minimal fix
- Run tests
- Commit and push
- Create a PR
Commit suffix detection: Check the project for deploy conventions:
- Look at recent commits:
git log --oneline -20for patterns likedeploy:*,[deploy],[skip ci] - Check CI config files for deploy triggers (
.github/workflows/,vercel.json,fly.toml,railway.json,Procfile,Dockerfile) - If a deploy trigger pattern is found, use it in the commit message
- If no convention is detected, commit without a deploy suffix
If the hotfix skill reports failure (couldn't fix in 2 iterations), go to PHASE 5: ROLLBACK STRATEGY. Do NOT proceed to deploy.
Record fix completion:
echo "FIX_COMPLETE=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> /tmp/fix-and-ship-timeline
============================================================ PHASE 2: PREFLIGHT
Follow the instructions defined in the /preflight skill.
The preflight skill will verify:
- Clean git status
- Build passes
- All tests pass
- Convention compliance (no Co-Authored-By, etc.)
- Migration status
If preflight reports NOT READY:
- If the issues are minor and auto-fixable (e.g., uncommitted files, unpushed commits), fix them inline
- If the issues are blocking (test failures, build errors), go to PHASE 5: ROLLBACK STRATEGY
============================================================ PHASE 3: DEPLOY
Auto-detect the deployment target and deploy:
Detection order:
vercel.jsonor.vercel/→ Vercel:vercel --prodfly.toml→ Fly.io:fly deployrailway.jsonorrailway.toml→ Railway:railway upProcfile+app.json→ Heroku:git push heroku HEAD:maink8s/orkubernetes/orkustomization.yamlor**/deployment.yaml→ Kubernetes:kubectl apply -k .orkubectl rollout restart deployment/{app}serverless.yml→ Serverless Framework:npx serverless deploycdk.jsonortemplate.yaml(SAM) → AWS:cdk deployorsam deploy.github/workflows/with deploy job → GitHub Actions: deployment is automatic on merge — just merge the PR:gh pr merge --squash- No deploy config detected → Skip deploy, report that PR is ready for manual deployment
If the deploy command fails:
- Capture the error output
- Go to PHASE 5: ROLLBACK STRATEGY
Record deploy completion:
echo "DEPLOY_COMPLETE=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> /tmp/fix-and-ship-timeline
============================================================ PHASE 4: DEPLOYMENT VERIFICATION
Verify the service is healthy after deploying. Use what is available:
-
Health endpoint check: Look for health check URLs in config files, environment variables, or deployment output. Common patterns:
/health,/healthz,/api/health,/_health,/status- Parse from
fly.toml([http_service]),vercel.json(rewrites), Kubernetes readiness probes curl -sf {url}/health— expect 200
-
Deployment status check: Use platform CLI if available:
- Vercel:
vercel inspector check deployment URL from deploy output - Fly.io:
fly statusandfly checks list - Railway:
railway status - Heroku:
heroku psandheroku logs --tail -n 50 - Kubernetes:
kubectl rollout status deployment/{app}andkubectl get pods
- Vercel:
-
Smoke test: If a test URL is known, make a basic request:
curl -sf {url}— expect 2xx response- Check response time is within reasonable bounds (< 5s)
-
Log check: Pull recent logs and scan for errors:
- Fly.io:
fly logs -n 20 - Heroku:
heroku logs -n 20 - Kubernetes:
kubectl logs deployment/{app} --tail=20 - AWS: check CloudWatch if configured
- Fly.io:
If verification fails:
- Record the failure details
- Go to PHASE 5: ROLLBACK STRATEGY
Record verification:
echo "VERIFIED=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> /tmp/fix-and-ship-timeline
============================================================ PHASE 5: ROLLBACK STRATEGY (only if something failed)
This phase is entered when:
- The hotfix failed after 2 iterations
- Preflight found blocking issues
- Deployment command failed
- Post-deploy verification failed
Rollback actions by failure point:
A) Fix failed (couldn't diagnose/fix in 2 iterations):
- Reset the branch:
git stashorgit checkout -- .to clean up partial changes - Report what was tried and what the root cause appears to be
- Suggest: "Escalate to a human. Root cause is complex — requires deeper investigation."
B) Deploy failed:
- Check if a previous deployment exists and is still running
- Platform-specific rollback:
- Vercel: previous deployment is still live, no action needed
- Fly.io:
fly releasesthenfly deploy --image {previous-image} - Heroku:
heroku rollback - Kubernetes:
kubectl rollout undo deployment/{app} - Railway: use dashboard (no CLI rollback)
- GitHub Actions: revert commit —
git revert HEAD && git push
- Report the rollback status
C) Verification failed (deployed but unhealthy):
- Immediately rollback using the same platform-specific commands as (B)
- Report what the health check showed
- The fix may have introduced a new issue — flag for investigation
============================================================ PHASE 6: NOTIFICATION (optional)
Check if the project has notification hooks configured:
-
Slack webhook: Look for
SLACK_WEBHOOK_URLin.env,.env.local, or CI config- If found:
curl -X POST -H 'Content-Type: application/json' -d '{"text":"..."}' $SLACK_WEBHOOK_URL
- If found:
-
GitHub Issues/Discussions: If the fix was for a reported issue:
- Comment on the issue with the fix details:
gh issue comment {number} --body "..." - Close it if resolved:
gh issue close {number}
- Comment on the issue with the fix details:
-
No notification config: Skip silently — do not warn or suggest setup
Notification payload (adapt to format):
- What broke
- What fixed it
- PR link
- Deploy status
- MTTR
============================================================ SELF-HEALING VALIDATION (max 3 iterations)
After completing all phases, validate the combined output:
- Re-run the specific checks that originally found issues to confirm fixes.
- Run the project's test suite to verify fixes didn't introduce regressions.
- Run build/compile to confirm no breakage.
- If new issues surfaced from fixes, add them to the fix queue.
- Repeat the fix-validate cycle up to 3 iterations total.
STOP when:
- Zero Critical/High issues remain
- Build and tests pass
- No new issues introduced by fixes
IF STILL FAILING after 3 iterations:
- Document remaining issues with full context
- Classify as requiring manual intervention or architectural changes
============================================================ OUTPUT
Fix and Ship Report
Incident Timeline
| Event | Timestamp (UTC) |
|---|---|
| Reported | {timestamp or "this session"} |
| Fix applied | {timestamp} |
| Tests verified | {timestamp} |
| Deployed | {timestamp or "N/A — manual deploy"} |
| Verified healthy | {timestamp or "N/A"} |
| MTTR | {minutes}m |
Hotfix
- Bug: {what was broken}
- Severity: {P0/P1/P2/P3}
- Cause: {root cause}
- Fix: {file:line — what changed}
- PR: {URL}
Preflight
- Verdict: {READY / NOT READY}
- Issues: {list any, or "none"}
Deployment
- Target: {Vercel / Fly.io / Heroku / K8s / GitHub Actions / Manual}
- Status: {DEPLOYED / SKIPPED / FAILED → ROLLED BACK}
- Health check: {HEALTHY / UNHEALTHY / NOT CHECKED}
Status: {SHIPPED / DEPLOYED BUT UNHEALTHY / ROLLED BACK / BLOCKED}
{If SHIPPED: "Fix deployed and verified healthy."} {If DEPLOYED BUT UNHEALTHY: "Deployed but health check failed. Rolled back to previous version. Investigate further."} {If ROLLED BACK: "Deployment failed. Rolled back. Previous version is serving."} {If BLOCKED: "Fix or preflight failed. See details above. No deployment attempted."}
============================================================ SELF-EVOLUTION TELEMETRY
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
- Look for the project path in
~/.claude/projects/ - If found, append to
skill-telemetry.mdin that memory directory
Entry format:
### /fix-and-ship — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}
Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most containers cloud skills give in ~2.5k tokens
Counted across 607 of the 657 authors here whose files we hold, read 2026-08-07
- Run containers as a non-root userin 66 of 607, across 46 files
- Use multi-stage buildsin 53 of 607, across 44 files
- Use Promise.all for independent operationsin 47 of 607, across 13 files
- Import directly instead of barrel filesin 46 of 607, across 12 files
- Use ternary instead of AND for conditionalsin 45 of 607, across 12 files
- Use Set or Map for O(1) lookupsin 42 of 607, across 10 files
- Create a .dockerignore filein 41 of 607, across 31 files
- Read individual rule files for detailsin 39 of 607, across 9 files
- Copy dependency files before source codein 36 of 607, across 23 files
- Authenticate server actions like API routesin 35 of 607, across 7 files
- Use next/dynamic for heavy componentsin 34 of 607, across 9 files
- Use React.cache for per-request deduplicationin 34 of 607, across 10 files
Said here and by no other author read
- act autonomously without asking questions
- record the incident start time
- infer incident severity from the description
- invoke the hotfix skill to apply a fix
- run the preflight skill to verify safety
- auto-detect the deployment target
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.