pr-ci-cd-shiplisted
Install: claude install-skill theogyeezy/skillz
# Ship a branch through CI/CD, hands-off
A reusable loop for taking a change from branch to verified-in-production without babysitting. The
core idea: **let the pipeline's own run-watch be your wake signal** (a backgrounded `gh run watch`
re-invokes you on completion) instead of polling, and **read every gate before you approve it.**
## The loop
1. **Branch + commit + push + PR.** Branch off FRESH trunk (`git fetch && git switch -c feat/x origin/main`). Open the PR with a body that states what changed + how it was verified.
2. **Watch CI as a BACKGROUND command** — don't poll:
```
gh run watch <run-id> --exit-status --interval 20 # run in background; it notifies you on completion
```
The completion notification is your wake signal. (GitLab: `glab ci status`/poll; any CI with a blocking "wait" command works the same way.)
3. **On green, merge** (squash is the common trunk policy). On red, see "Flakes vs real failures".
4. **If there's a deploy step,** trigger it, then **review before applying** (next section).
5. **Verify live** — a health endpoint (200) AND an auth-gated endpoint (401 unauth) proves the service is up and the gate works; check the orchestrator's steady state (e.g. ECS deployments==1).
6. **Update living docs** as the final small commit.
## Manual approval gates — READ before you approve
Pipelines with a production gate pause between **plan** and **apply**. Treat the gate as a real review,
not a rubber stamp:
- The paused run often blocks ru