Prompt file imported from Rotorsoft/act-root (
.claude/commands/release-check.md). Copyright stays with the author.
Verify the current branch is mergeable. Run every gate in parallel and surface a single consolidated report.
Gates (run all in parallel)
- Typecheck —
pnpm typecheck. Must be clean. - Tests + coverage —
pnpm test. Coverage must be 100% on every metric (statements / branches / functions / lines). Anything below is a fail. - Lint —
pnpm lint. Warnings are fine; errors fail the gate. - Build —
pnpm build. Must complete without TS errors. - Charter-covered diff —
git diff master --stat -- libs/act/src/builders/ libs/act/src/act.ts libs/act/src/types/ports.ts libs/act/src/types/index.ts libs/act/src/ports.ts. If any file in that list changed, explicitly note "charter surface modified — categorize as additive/breaking before merging." - Doc-staleness audit — run the doc-grep recipe from CLAUDE.md "Pre-handoff workflow → Doc audit":
When the PR migrates a callsite to a new primitive (e.g.,# Identify renamed/removed identifiers in this PR git diff master --diff-filter=D --name-only -- libs/act/src/ libs/act-*/src/ # For each renamed/removed symbol, grep for it in docs grep -rln "<old-name-or-shape>" docs/docs book CLAUDE.md libs/*/README.mdquery→query_stats), also grep for the old behavioral description indocs/docs/architecture/ASCII diagrams. Report hits — they must be updated in this PR, not a follow-up. Skip cleanly when this is a no-public-surface PR (deps bump, internal refactor).
Output
Print a single table:
| Gate | Status | Notes |
|---|---|---|
| Typecheck | ✅ / ❌ | first error line if failing |
| Tests | ✅ / ❌ | passing count / total |
| Coverage | ✅ / ❌ | statements/branches/funcs/lines % |
| Lint | ✅ / ❌ | error count |
| Build | ✅ / ❌ | failing package if any |
| Charter | ✅ / ⚠ | "additive" / "needs categorization" / "no charter files changed" |
| Doc audit | ✅ / ⚠ | "clean" / "N stale refs in " |
End with a one-line verdict: READY TO MERGE or NOT READY: .
Conventions
- Run the four pnpm gates with
&andwaitfor concurrency. Don't serialize. - Use
coverage/coverage-summary.json(vitest leaves it afterpnpm test) for coverage percentages —jq '.total'. - If the user wants a deeper drill on any failure, run the relevant package's targeted command (
pnpm -F <pkg> typechecketc.). Don't drill unprompted.