Ship — Deploy to Production
Take a tested, reviewed project and get it running in production with CI/CD, hosting, and release documentation.
Trigger
The user has a project that has passed review and test-qa (a TEST_REPORT.md exists with a passing verdict) and wants to deploy it. If TEST_REPORT.md doesn't exist or has critical failures, warn the user and recommend running test-qa first. Proceed if they insist.
Workflow
Step 1: Load Context
Read the project artifacts:
PROJECT_PLAN.md — deployment strategy, hosting decisions, env vars
BUILD_MANIFEST.md — dependencies, run commands, environment variables
TEST_REPORT.md — confirm tests passed
REVIEW_REPORT.md — confirm no critical issues
Extract the deployment strategy from the plan. If the plan doesn't specify one, proceed to Step 2.
Step 2: Deployment Questionnaire
If the plan's deployment strategy is clear, confirm it with the user and skip ahead. Otherwise, ask:
Where are you deploying?
Present options relevant to the tech stack (e.g., Vercel/Netlify for frontend, Railway/Fly.io/AWS for backend, etc.) with cost and complexity tradeoffs.
Do you need CI/CD?
- Yes — set up automated pipeline (GitHub Actions, GitLab CI, etc.)
- Not yet — manual deployment for now
What's the domain situation?
- Custom domain ready
- Will use provider's default domain for now
- Need help choosing/purchasing a domain
Environment variables — confirm all production values are ready for the required env vars.
Step 3: CI/CD Setup (if requested)
Create a CI/CD pipeline configuration:
- Choose the platform based on where the code is hosted (GitHub Actions for GitHub, GitLab CI for GitLab, etc.)
- Pipeline stages:
- Install dependencies
- Run linter / type checker
- Run tests
- Build the project
- Deploy (to staging first if applicable, then production)
- Write the config file (e.g.,
.github/workflows/deploy.yml)
- Add deployment secrets — list the secrets that need to be configured in the CI/CD platform's settings. Don't write actual secret values to files.
Step 4: Hosting Configuration
Set up the deployment target:
- Create hosting config files required by the platform (e.g.,
vercel.json, fly.toml, Dockerfile, docker-compose.yml, Procfile)
- Configure build settings — build command, output directory, start command
- Environment variables — document which vars need to be set in the hosting platform's dashboard
- Database provisioning — if the plan includes a database, document the setup steps for the production database (connection string, migrations, seed data)
Step 5: Pre-Deploy Checklist
Run through a verification checklist before deploying:
Present the checklist results. If any items fail, flag them and help fix before proceeding.
Step 6: Deploy
Guide the user through deployment:
- If CI/CD is set up: Push to the deployment branch and monitor the pipeline.
- If manual: Walk through the deployment commands step by step.
- Verify the deployment — check that the production URL responds correctly.
- Run a quick smoke test on the live deployment — does the main flow work?
If deployment fails, diagnose the error and help fix it.
Step 7: Post-Deploy
- Regenerate
DASHBOARD.html — launch the dashboard skill as a non-blocking subagent to show the shipped state with production URL live. Don't wait for it to complete.
- Generate release notes —
RELEASE.md summarizing what was shipped:
# Release — [version or date]
## What's New
- [Feature 1 — brief description]
- [Feature 2 — brief description]
## Technical Details
- **Stack:** [tech stack summary]
- **Hosting:** [where it's deployed]
- **CI/CD:** [pipeline summary]
## Known Limitations
- [Anything not yet built, or known issues]
## Links
- **Production:** [URL]
- **Repository:** [URL]
- **Plan:** PROJECT_PLAN.md
- Update
PROJECT_PLAN.md — mark the overall status as shipped with the deployment date.
- Suggest monitoring — recommend logging, error tracking, and uptime monitoring tools appropriate for the stack and stakes level.
Interaction Guidelines
- Never deploy without confirmation. Always pause before the actual deploy step, even in quick mode. Deploying to production is irreversible enough to warrant explicit approval.
- Secrets stay out of files. Never write API keys, passwords, or tokens to config files. Always instruct the user to set them in the hosting platform's environment settings.
- Prefer simple over clever. If the project can deploy with a single command and a Dockerfile, don't set up a complex multi-stage pipeline.
- Document everything. A deployment that only the agent knows how to repeat is a bad deployment. Every step should be reproducible by the user.
- Rollback plan. If the hosting platform supports it, note how to roll back to a previous version if something goes wrong.
1---2name: ship3description: Deploy a tested project to production — set up CI/CD, configure hosting, deploy, and produce release notes. Use when the user wants to deploy, ship, go live, set up CI/CD, push to production, or create a release.4---56# Ship — Deploy to Production78Take a tested, reviewed project and get it running in production with CI/CD, hosting, and release documentation.910## Trigger1112The user has a project that has passed review and test-qa (a `TEST_REPORT.md` exists with a passing verdict) and wants to deploy it. If `TEST_REPORT.md` doesn't exist or has critical failures, warn the user and recommend running test-qa first. Proceed if they insist.1314## Workflow1516### Step 1: Load Context1718Read the project artifacts:19- `PROJECT_PLAN.md` — deployment strategy, hosting decisions, env vars20- `BUILD_MANIFEST.md` — dependencies, run commands, environment variables21- `TEST_REPORT.md` — confirm tests passed22- `REVIEW_REPORT.md` — confirm no critical issues2324Extract the deployment strategy from the plan. If the plan doesn't specify one, proceed to Step 2.2526### Step 2: Deployment Questionnaire2728If the plan's deployment strategy is clear, confirm it with the user and skip ahead. Otherwise, ask:29301. **Where are you deploying?**31 Present options relevant to the tech stack (e.g., Vercel/Netlify for frontend, Railway/Fly.io/AWS for backend, etc.) with cost and complexity tradeoffs.32332. **Do you need CI/CD?**34 - Yes — set up automated pipeline (GitHub Actions, GitLab CI, etc.)35 - Not yet — manual deployment for now36373. **What's the domain situation?**38 - Custom domain ready39 - Will use provider's default domain for now40 - Need help choosing/purchasing a domain41424. **Environment variables** — confirm all production values are ready for the required env vars.4344### Step 3: CI/CD Setup (if requested)4546Create a CI/CD pipeline configuration:47481. **Choose the platform** based on where the code is hosted (GitHub Actions for GitHub, GitLab CI for GitLab, etc.)492. **Pipeline stages:**50 - Install dependencies51 - Run linter / type checker52 - Run tests53 - Build the project54 - Deploy (to staging first if applicable, then production)553. **Write the config file** (e.g., `.github/workflows/deploy.yml`)564. **Add deployment secrets** — list the secrets that need to be configured in the CI/CD platform's settings. Don't write actual secret values to files.5758### Step 4: Hosting Configuration5960Set up the deployment target:61621. **Create hosting config files** required by the platform (e.g., `vercel.json`, `fly.toml`, `Dockerfile`, `docker-compose.yml`, `Procfile`)632. **Configure build settings** — build command, output directory, start command643. **Environment variables** — document which vars need to be set in the hosting platform's dashboard654. **Database provisioning** — if the plan includes a database, document the setup steps for the production database (connection string, migrations, seed data)6667### Step 5: Pre-Deploy Checklist6869Run through a verification checklist before deploying:7071- [ ] All tests passing72- [ ] No hardcoded development URLs or localhost references in production code73- [ ] Environment variables documented and ready to configure74- [ ] `.env` is in `.gitignore`75- [ ] No secrets in the codebase76- [ ] Build completes without errors77- [ ] Database migrations ready (if applicable)78- [ ] CORS configured for production domain (if applicable)79- [ ] HTTPS enforced (if applicable)8081Present the checklist results. If any items fail, flag them and help fix before proceeding.8283### Step 6: Deploy8485Guide the user through deployment:86871. **If CI/CD is set up:** Push to the deployment branch and monitor the pipeline.882. **If manual:** Walk through the deployment commands step by step.893. **Verify the deployment** — check that the production URL responds correctly.904. **Run a quick smoke test** on the live deployment — does the main flow work?9192If deployment fails, diagnose the error and help fix it.9394### Step 7: Post-Deploy95961. **Regenerate `DASHBOARD.html`** — launch the dashboard skill as a non-blocking subagent to show the shipped state with production URL live. Don't wait for it to complete.972. **Generate release notes** — `RELEASE.md` summarizing what was shipped:9899```markdown100# Release — [version or date]101102## What's New103- [Feature 1 — brief description]104- [Feature 2 — brief description]105106## Technical Details107- **Stack:** [tech stack summary]108- **Hosting:** [where it's deployed]109- **CI/CD:** [pipeline summary]110111## Known Limitations112- [Anything not yet built, or known issues]113114## Links115- **Production:** [URL]116- **Repository:** [URL]117- **Plan:** PROJECT_PLAN.md118```1191203. **Update `PROJECT_PLAN.md`** — mark the overall status as shipped with the deployment date.1214. **Suggest monitoring** — recommend logging, error tracking, and uptime monitoring tools appropriate for the stack and stakes level.122123## Interaction Guidelines124125- **Never deploy without confirmation.** Always pause before the actual deploy step, even in quick mode. Deploying to production is irreversible enough to warrant explicit approval.126- **Secrets stay out of files.** Never write API keys, passwords, or tokens to config files. Always instruct the user to set them in the hosting platform's environment settings.127- **Prefer simple over clever.** If the project can deploy with a single command and a Dockerfile, don't set up a complex multi-stage pipeline.128- **Document everything.** A deployment that only the agent knows how to repeat is a bad deployment. Every step should be reproducible by the user.129- **Rollback plan.** If the hosting platform supports it, note how to roll back to a previous version if something goes wrong.