ship-app
Ship an app in this lab repo - branch, commit, push, draft pull request, Vercel project and preview URL. Use after verify-app passes, or to push follow-up changes to an existing app PR.
SKILL.md.claude/skills/ship-app/SKILL.md
GitHubship-app
Input: appName. Rules for what the agent may do on its own are in the root CLAUDE.md
("Git and pull requests"). Never commit to main, force-push, skip hooks, merge or delete branches.
- Branch:
feat/<appName>for a new app,fix/<appName>-<topic>for later changes. Reuse the existing branch if it already exists. - Commit: one logical change per commit, Conventional Commits, English. Let the hooks run; if one fails, fix the cause.
- Vercel project (first ship only, before the first push: Vercel deploys only pushes made
after the project exists):
npm run lab:vercel-project -- <appName>. It is idempotent. Any other Vercel operation is the user's to run outside the sandbox: tell them the command. - Push with
npm run lab:push, nevergit push, which cannot authenticate from the sandbox (see "Pushing from the sandbox" indocs/agentSetup/claude/README.md). It runs the pre-push tests, then pushes the current branch. If it refuses (not a fast-forward, missingmainhead, signed commit), report its message to the user; do not try another way to push. Then open a draft PR withgh pr create --draft(or update the existing PR). Body: the idea, preview URL (fill in below), checks run with results, Assumptions, new dependencies added throughlab:add(and any package the user installed themselves after a failed check, with the failed check), open questions. - Preview URL:
npm run lab:deployment -- <appName>(run it in the background; it waits up to 15 minutes) waits for the deployment of the pushed commit and printsREADY <url>. OnERRORit prints the build log: fix the cause and push again.CANCELEDmeans Vercel skipped the build because nothing in the app changed.NO_DEPLOYMENTmeans the branch has no deployment at all, usually because the push came before the project existed: run step 3 and push again. Add the URL to the PR. To see what Vercel did (any state, any commit), runnpm run lab:vercel-status -- <appName>. Do not query the Vercel API by hand. - Run
inspect-appagainst the preview URL. Report the PR link, the preview URL and what was not verified.