shiplisted
Install: claude install-skill jaewhi-park/GARAGISTE
Ship. Target: $ARGUMENTS
1. If docs/STATUS.md records `Last verifier: PASS full @<hash>` and `<hash>` equals `git log -1 --format=%H` — or every commit since it touches only docs-only files (`git diff --stat <hash>..HEAD`) — reuse that verdict as the evidence. Otherwise run full verification with team-verifier (all commands in CLAUDE.md; include the parity harness for legacy) and record the hash. On FAIL, go back to the /build loop.
2. **Resolve the merge policy automatically.** If CLAUDE.md "## Merge policy" has an explicit value, use it (override; with no remote an `auto-low-risk` override still resolves to **local**, only without the approval question for `risk:low`); otherwise derive it from repository state:
- `git remote` is empty → **local**
- a remote exists, `gh repo view --json autoMergeAllowed -q .autoMergeAllowed` is true, and the default branch has a protection rule with required status checks (check `gh api repos/{owner}/{repo}/branches/<default>/protection` or `gh api repos/{owner}/{repo}/rules/branches/<default>`) → **auto-low-risk**
- anything else (remote without protection/auto-merge, or no `gh`) → **manual**
Report the verdict and its reason in one line, e.g. "manual — remote exists, no branch protection. Enabling protection + auto-merge on main would switch to auto-low-risk". Lead-merge applies on top of the verdict: a `risk:low` plan with full verification PASS and every lens APPROVE is merged by the lead — local: `git merge --no-ff` without