shiplisted
Install: claude install-skill RonenMars/threadbase-mobile
# Ship
Push → PR → watch CI → ask → (optional) squash-merge → cleanup. Follows the
policy already documented in global CLAUDE.md: rebase+squash merges, one PR
at a time, no AI attribution, CI gate before merge, `--force-with-lease`
never plain `--force`.
## Preconditions
- The current branch is committed and not `main`/`master`. If there are
uncommitted changes, stop and tell the user — committing is a separate,
approval-gated step this skill does not perform.
- If the branch has no upstream yet, `git push -u origin <branch>` sets one
on first push.
## Pipeline
1. **Push**
```bash
git push -u origin "$(git branch --show-current)" 2>/dev/null \
|| git push
```
2. **Open PR** (skip if one already exists for this branch — check first
with `gh pr view --json url,state` and only create if that fails)
```bash
gh pr create --title "<type>(<scope>): <description>" --body "$(cat <<'EOF'
## Summary
- <1-3 bullets>
## Test plan
- [ ] <verification step>
EOF
)"
```
Title must be conventional-commit style. Body must carry **no** AI
attribution — no "Generated with", no Co-Authored-By naming an AI, no
🤖 footers. Strip any default footer your tooling appends.
If this fails with `Resource not accessible by personal access token`,
invoke the `gh-pr-create` skill for the workaround, then retry.
3. **Poll CI**
```bash
gh pr checks --watch
```
4. **On red:**
- Re-run failed checks **once**. A PR's checks