a11y
Accessibility audit + auto-fix (WCAG 2.2 A/AA). Scans built/static HTML for screen-reader, keyboard, and structure failures, fixes the deterministic ones, and…
Pre-flight checks then deploy. Validates env vars, migrations, bundle size, runs /ship audit, then deploys via git push or platform CLI.
$ npx -y skills add Houseofmvps/ultraship --skill deploy --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/deployContext preview
The summary Claude sees to decide when to auto-load this skill.
Pre-flight checks then deploy. Validates env vars, migrations, bundle size, runs /ship audit, then deploys via git push or platform CLI.
name: deploy description: Pre-flight checks then deploy. Validates env vars, migrations, bundle size, runs /ship audit, then deploys via git push or platform CLI. argument-hint: "<environment>"
Full pre-flight validation → deploy pipeline. Closes the audit-to-production loop.
Check project for deploy configuration:
Run these checks BEFORE deploying (fail fast):
**2a. Environment Validation**
node ${CLAUDE_PLUGIN_ROOT}/tools/env-validator.mjs <project-directory>If `deploy_ready: false` → STOP. Show missing vars. Do not deploy.
**2b. Migration Safety**
node ${CLAUDE_PLUGIN_ROOT}/tools/migration-checker.mjs <project-directory>If `deploy_safe: false` → WARN. Show pending migrations. Ask user to confirm.
**If a Supabase MCP server is connected** (check your available tools for `supabase`), verify migration state against the *actual* database before deploying, not just the local migration files: list applied migrations and confirm the pending ones aren't already applied or in conflict. This catches the "migration ran on the dashboard but not in the repo" drift that breaks deploys.
If there are pending migrations, verify they are reversible:
**2c. Bundle Size Check**
node ${CLAUDE_PLUGIN_ROOT}/tools/bundle-tracker.mjs <project-directory> --saveIf bundle grew >50KB since last check → WARN. Show diff.
**2d. Git Status** Check for uncommitted changes:
git status --porcelain
If dirty working tree → WARN. Suggest committing first.
**2e. Rollback Plan**
Before deploying, establish a rollback plan. Every deploy must have a way back.
Record the current production commit hash:
git rev-parse HEAD
Store this value — it is your safety net. If anything goes wrong after deploy, this is the commit you revert to.
Verify the rollback command is ready:
git revert <commit> --no-edit
Do not execute this yet. Confirm the command is syntactically correct and the commit hash is valid. The goal is to have a copy-paste rollback ready before you need it — not after you're panicking at 2am.
For database changes:
For breaking API changes:
Document the rollback steps in a format that can be executed under pressure:
ROLLBACK PLAN: 1. git revert <new-commit-hash> --no-edit 2. git push origin main 3. [If DB migration]: run down migration or restore from backup 4. Verify health check passes after rollback
Run the full `/ship` scorecard. If overall score < 60 → WARN but don't block (user decides).
A score below 60 means there are known issues going to production. That is a conscious decision, not an accident. Log it so the post-deploy summary reflects the risk accepted.
Based on detected target:
**Vercel (git push — REQUIRED for this user):**
git push origin main
NEVER use `vercel` CLI. Always git push.
**Railway:**
railway up
**Fly.io:**
fly deploy
**Cloudflare Workers:**
npx wrangler deploy
**CI/CD:**
git push origin main
Then check CI status:
gh run list --limit 1 --json status,conclusion
Record the deploy start time. You will need this for the post-deploy summary.
After deploy lands but before declaring success, verify the application actually works for real users. A successful `git push` is not a successful deploy — it is a successful file transfer.
Hit 3-5 critical user paths against the production URL:
node ${CLAUDE_PLUGIN_ROOT}/tools/api-smoke-test.mjs <production-url>At minimum, verify: 1. **Homepage** returns 200 (not 500, not a redirect loop, not a blank page) 2. **Login/auth endpoint** responds (does not need to complete auth — just confirm it is not crashing) 3. **Core feature endpoint** returns valid JSON with the expected shape 4. **API health endpoint** (if one exists) returns 200 with a response body 5. **Static assets** load (CSS/JS files return 200, not 404 — a broken asset build is invisible to health checks but catastrophic to users)
Verify response codes and content types:
If Playwright MCP is available, run a quick brows
"ULTRASHIP" Claude Code plugin — 39 skills, 33 tools, 11 agents for ship-ready workflows: planning, review, pentesting, safety guardrails, canary monitoring, SEO/AI-readiness check, penetration testing, code review, competitive analysis, incident response. 1 dependency. 180 tests. MIT.
Repo: Houseofmvps/ultraship
Accessibility audit + auto-fix (WCAG 2.2 A/AA). Scans built/static HTML for screen-reader, keyboard, and structure failures, fixes the deterministic ones, and…
Living Architecture Map — auto-generate Mermaid diagrams of your codebase. Use when user wants to visualize architecture, understand code structure, generate…
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent,…
Post-deploy canary monitoring — checks site health, detects regressions, monitors for errors after deployment. Use after deploying to verify production is…
Learn From the Best — analyze patterns from any codebase and apply them to yours. Use when user wants to adopt best practices from another repo, compare code…
Code review with principal-engineer-level depth. Reviews for correctness, performance, security, maintainability, and architecture. Use when completing tasks,…