# Verify Sprint

> Batch-verifies multiple sprint PR branches by merging them into a local ephemeral verify branch, running a build check and user verification, then squash-merging each PR into main. The verify branch is never pushed to remote. Run after quality-finisher has audited the PRs. Use after a sprint to merge all the PRs, batch-merge PRs, or "land the sprint". NOT for single-PR merges or test coverage audits (use quality-finisher for that).

- Skill: `ugai/verify-sprint` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ugai/verify-sprint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ugai/verify-sprint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ugai (https://skillmd.com/u/ugai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ugai/verify-sprint

---


# Verify Sprint

## Workflow checklist

Copy and track progress:

```
- [ ] Step 1: Identify PR branches
- [ ] Step 2: Fetch and create verify branch
- [ ] Step 3: Merge all PR branches
- [ ] Step 4: Build check
- [ ] Step 5: Visual verification (user)
- [ ] Step 6: Merge PRs into main
- [ ] Step 7: Discard verify branch
```

## Step 1 — Identify PR Branches

If the user hasn't provided PR numbers, list open PRs:

```bash
gh pr list --state open --json number,title,headRefName
```

Confirm with the user which PRs to include.

**Quality check:** For each PR, verify that `quality-finisher` has already been run by checking for a `## Quality Finisher Report` comment:

```bash
gh pr view <N> --json comments --jq '.comments[].body | select(startswith("## Quality Finisher Report"))'
```

If no such comment exists, warn the user before proceeding.

## Step 2 — Fetch and Create Verify Branch

**NEVER push this branch to remote** — it is a throwaway local verification
branch. Pushing it would trigger CI, confuse collaborators, and leave stale
branches.

```bash
git fetch origin
git checkout -b verify/sprint-$(date +%Y-%m-%d) origin/main
```

If the branch name already exists, append `-2`, `-3`, etc.

## Step 3 — Merge All PR Branches

```bash
git merge origin/<branch-1> origin/<branch-2> origin/<branch-3> ...
```

If the octopus merge fails due to conflicts, fall back to sequential merges:

```bash
# Abort the failed octopus merge
git merge --abort

# Merge each branch one at a time
git merge origin/<branch-1>
git merge origin/<branch-2>
# ... continue for each branch
```

Report any conflicts to the user before proceeding.

**If a sequential merge conflicts:**

1. Abort the failed merge to return to a clean state:
   ```bash
   git merge --abort
   ```
2. Record which PR branch conflicted and which files are involved:
   ```bash
   # Re-attempt to inspect conflict details
   git merge --no-commit origin/<conflicting-branch>
   git diff --name-only --diff-filter=U
   git merge --abort
   ```
3. Skip the conflicting PR and continue merging the remaining branches.
4. After all non-conflicting branches are merged, report to the user:
   - Which PRs conflicted
   - Which files caused the conflict
   - Which PRs were successfully merged
5. Suggest running Raid Commander to re-analyze the conflicting PRs for a
   revised merge order, or ask the user to resolve manually.

## Step 4 — Build Check

After a successful merge, run a build to catch compile errors before
asking the user for a visual check. Use the project's standard build command.

If the build fails, identify the responsible PR branch, fix it there, re-merge,
and re-run the build check.

## Step 5 — Visual Verification

Tell the user to run the project's standard run command for manual testing.

Ask: *"Visual check complete — did everything look correct? (yes / issue found)"*

**If an issue is found:**

1. Identify the PR branch responsible.
2. User or agent adds fix commits to that branch.
3. Re-merge and re-check.

Repeat until the user confirms no issues.

## Step 6 — Merge PRs into Main

```bash
gh pr merge <N> --squash --delete-branch
```

Use the Raid Commander's recommended order if available; otherwise merge fixes
before features that depend on them.

## Step 7 — Discard Verify Branch

```bash
git checkout main
git branch -D verify/sprint-<date>
git pull origin main
```

