← ClaudeAtlas

preflightlisted

Release-readiness gate — one orchestrated pass before code ships: full test suite + lint/typecheck, dependency & security quick pass, docs drift, config/migration/flag check, changelog draft from commits, and a GO / GO-WITH-RISKS / NO-GO verdict with a suggested deploy command (never executed). TRIGGER when: the user is about to ship/release/deploy/tag ("are we ready to ship", "preflight", "release check", "can this go out"). TRIGGER ALSO on the same ask phrased as plain work, with this skill unnamed — "anything blocking release", "run the pre-release checks", "is main safe to deploy" — an ask for a ship/no-ship judgment IS this skill. DO NOT TRIGGER when: the user wants a review of one diff (use /code-review), a security-only sweep (use /audit-security), or to settle an epic's plans and archives (use /close-epic — run it before this when an epic is involved).
mik2win/foureyes · ★ 2 · AI & Automation · score 76
Install: claude install-skill mik2win/foureyes
# Preflight: $ARGUMENTS The last gate before code leaves the machine. `/close-epic` settles the *plans*; this settles the *release*: everything between "the code is done" and "the code is out" that is checkable, checked once, in one report. Propose-only — the deploy command is **suggested, never run** (the kit's code-publish policy stands: the user ships). `$ARGUMENTS` optionally names the release scope (a tag/ref like `v1.4.0..HEAD`, a branch, or free text); empty = resolve in Phase 1. --- ## Phase 0 — Load profile 1. Read `.claude/PROJECT.md` — **Commands** (test, lint, typecheck), **Deploy mapping**, **Integrations**, **Plans location**. If missing or `TEMPLATE`, fall back to the root `CLAUDE.md` (always in context) when it carries those commands — note you're running without a kit profile; **STOP**: run `/bootstrap` only if *neither* has them. 2. Read `.claude/rules/_generic/code.md` and any release/CI conventions in the profile. 3. If `CONTEXT.md` exists, read it — the changelog speaks the project's language. ## Phase 1 — Resolve the release scope Determine what is shipping, in order of preference: 1. `$ARGUMENTS` as a ref/range → `git log --oneline <range>` + `git diff <range> --stat`. 2. Last release tag → `git describe --tags --abbrev=0` then `<tag>..HEAD`. 3. No tags → merge-base with the default branch, or ask via `AskUserQuestion`. List the commits and changed files that constitute the release. **If the working tree is dirty, flag it first** — shi