Skip to content
Back to skills

Pr Land

ASecurity

Land a branch through cadence's protected-main pipeline — local preflight, commit hygiene, push, PR, ci-success babysitting with the known-flake protocol, consent-gated squash merge, and post-merge sync. Use when work is ready to land, the user says "land this", "open a PR", "merge when green", or a PR is sitting on CI.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsbashreactnodedebugginggit

Works with

  • claude code
  • terminal

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add thomas-powers-jr/cadence --skill pr-land --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pr Land?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pr Land
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thomas-powers-jr-pr-land/badge)](https://www.skillsdirectory.com/skills/thomas-powers-jr-pr-land)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pr-land
description: Land a branch through cadence's protected-main pipeline — local preflight, commit hygiene, push, PR, ci-success babysitting with the known-flake protocol, consent-gated squash merge, and post-merge sync. Use when work is ready to land, the user says "land this", "open a PR", "merge when green", or a PR is sitting on CI.
---

# PR land (protected main)

`main` requires the `ci-success` check and `enforce_admins` is on — there is
no direct-push path, for anyone. Everything lands branch → PR → green →
squash merge.

## 1 — Preflight locally (cheaper than a CI round-trip)

- Run `pnpm turbo run lint typecheck test build` before pushing.
- Windows caveat: Linux CI is canonical. A few Windows-local test failures
  are known environment issues (pnpm/tempRepo/spawn races) — if something
  fails only locally and the failure smells environmental, push and let the
  CI matrix decide rather than debugging the dev box.
- Before any git operation that touches shared tree state — `stash`,
  `reset`, `checkout` onto `main` — re-check `git status` immediately
  beforehand, not from a check done minutes earlier in this same session.
  Another process (a subagent, a background build, a second terminal) can
  have changed the tree in between.

## 2 — Commit hygiene

- Stage explicitly, never `git add -A`. Off-limits: live `.cadence/state.json`
  + `STATE.md` dirt mid-loop (the settle commit owns those), `.agents/`,
  `launch/` (local-only by explicit decision), `.claude/scheduled_tasks.lock`,
  stray uncommitted `SESSION-*.md` handoffs.
- Single-commit settle convention when a phase is closing: source + tests +
  docs + phase artifacts land together in one commit, no separate
  `chore: settle` commit after it.
- Feature PRs carry their `.changeset/*.md`. Conventional-commit subject with
  the phase id: `feat: <what> (phase NNN)`.

## 3 — Push + PR

```bash
git push -u origin <branch>
gh pr create --title "<subject>" --body "<what/why, invariants checked>"
```

One logical change per PR. The PR body ends with the standard
`🤖 Generated with [Claude Code](https://claude.com/claude-code)` footer.

## 4 — Babysit CI (the flake protocol)

- Watch with `gh pr checks <n> --watch` (or poll `gh pr checks <n>`).
- On red, get the failing leg + test before reacting:
  `gh run view <run-id> --log-failed | head -100`.
- **Re-run once, without investigation, only when all three hold:** a single
  OS/Node leg is red, the diff can't plausibly touch the failing area, and
  the failure matches a known flake (reference: macOS/Node22 timeout in
  `settle-codereview-convergence.test.ts`; new `node --test` subprocess
  spawns under parallel load have flaked before).
- Anything else — multiple legs, plausible relation to the diff, an
  unfamiliar failure, or a second red after the re-run — is real until
  proven otherwise: investigate, don't loop re-runs.

## 5 — Merge (consent-gated)

- Self-merging a PR this session opened requires the operator's explicit
  authorization — "merge it", "merge when green", or equivalent. A generic
  "continue" is not consent; when in doubt, report green and ask.
- With consent: `gh pr merge <n> --squash --delete-branch`.

## 6 — Post-merge sync

```bash
git checkout main && git pull origin main
git log --oneline -3        # confirm the squash landed as expected
```

- Delete the local branch if `--delete-branch` didn't; remove the phase
  worktree if one is now merged and idle.
- `cadence progress` to confirm loop state, and update/write the handoff if
  this landing closes the session's unit of work.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…