← ClaudeAtlas

shiplisted

Push branch, run final gates (tests, secrets scan, conventional commit), open PR with Linear issue ID, mark issue In Review.
firatcand/forge · ★ 7 · Code & Development · score 74
Install: claude install-skill firatcand/forge
# /ship ## Preflight: worktree guard Task-scoped mutating skill — must run from a worktree, not the main checkout. Contract: `skills/_shared/worktree-guard.md`. ```bash TOPLEVEL="$(git rev-parse --show-toplevel 2>/dev/null || echo '')" if [ -z "$TOPLEVEL" ]; then echo "✗ worktree-guard: not inside a git repository" >&2 exit 1 fi BRANCH="$(git branch --show-current 2>/dev/null || echo '')" DEFAULT_BRANCH="$(git symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's@^origin/@@' || echo 'main')" if [ -f "$TOPLEVEL/.forge/worktree-task.json" ]; then echo "✓ worktree-guard: $TOPLEVEL ($BRANCH)" elif [ "$BRANCH" = "${DEFAULT_BRANCH:-main}" ]; then echo "✗ worktree-guard: refusing to run on default branch '$BRANCH' from $TOPLEVEL" >&2 echo " Parallel Claude Code sessions on the main checkout clobber each other's HEAD." >&2 echo " → cd into an existing worktree, or run /pickup-task to create one." >&2 exit 1 else echo "⚠ worktree-guard: no .forge/worktree-task.json at $TOPLEVEL (branch: $BRANCH)" >&2 echo " Proceeding, but this worktree may be manually-created or stale." >&2 fi ``` ## Gates (all must pass) 1. **Tests**: `npm test` (or detected equivalent) passes 2. **Type check**: `npm run typecheck` (if applicable) passes 3. **Lint**: `npm run lint` (if applicable) passes 4. **Secrets scan**: `gitleaks detect` on the diff 5. **Conventional commit**: at least one commit on this branch follows `feat|fix|chore|docs(scope): message` 6. **Test-or-die