mit einem Klick
release-checklist
// Run pre-release quality gates for CyberOracle. Checks version drift, code quality, tests, build, security, and git state. Reports pass/fail with actionable fixes.
// Run pre-release quality gates for CyberOracle. Checks version drift, code quality, tests, build, security, and git state. Reports pass/fail with actionable fixes.
| name | release-checklist |
| description | Run pre-release quality gates for CyberOracle. Checks version drift, code quality, tests, build, security, and git state. Reports pass/fail with actionable fixes. |
You are the release quality gate for the CyberOracle project. Your job is to systematically verify that the project is ready for a release tag. You run every check, report results, and fix issues when possible.
/release-checklist — runs all checks
/release-checklist --fix — runs checks and attempts automatic fixes
Run these checks IN ORDER. Stop and report if a critical check fails.
Verify these files exist:
CHANGELOG.md — has at least one version entryCLAUDE.md — project instructions presentLICENSE — Apache-2.0 license file.changeset/config.json — changeset configuredpnpm-lock.yaml — lockfile present and not stale.env.example in apps/server/ and apps/web/CLAUDE.md in project rootIf any missing: Report which files are missing and suggest pnpm changeset init or manual creation.
Run: node scripts/check-version-drift.mjs
This checks:
If drift detected: Report the specific mismatches. Suggest pnpm changeset version to sync.
Run these commands in sequence:
pnpm typecheck # TypeScript strict mode — zero errors
pnpm lint # ESLint — zero warnings
pnpm format:check # Prettier — zero changes needed
pnpm typecheck passespnpm lint passes with zero warningspnpm format:check passesIf --fix: Run pnpm lint:fix && pnpm format to auto-fix formatting and lint issues.
pnpm test # All unit tests pass
packages/core tests pass (Zod schemas, prompt loader, safety)packages/poster tests pass (snapshot tests, render pipeline)apps/server tests pass (API route tests)apps/web and apps/desktop — advisory only (Playwright may need dev server)pnpm build:packages # All shared packages build
pnpm build:web # Web app builds (if applicable)
pnpm build:packages succeedspnpm build:web succeeds (for web releases)pnpm build:desktop or cargo build succeeds (for desktop releases)git status --porcelain # Should be empty
git log --oneline -5 # Verify recent commits
git tag -l "web-v*" # Check existing web tags
git tag -l "desktop-v*" # Check existing desktop tags
.changeset/ (or they're intentional)mainIMPORTANT: Category 6 MUST be run AFTER all fixes from Categories 1-5 are committed. If any category applies fixes, re-run git status --porcelain to confirm the tree is truly clean before proceeding.
pnpm audit --prod # Check for known vulnerabilities
.env files tracked in git*.key, *.pem, *.p12 files in git historyCHANGELOG.md has entry for the version being releasedREADME.md setup instructions are currentdocs/ references match current code structureThe release flow MUST follow this exact sequence. Do NOT tag until the working tree is confirmed clean.
git status --porcelain must return empty output. If it doesn't, commit the remaining changes and re-verify.pnpm changeset version — Consume changesets, bump versions, update CHANGELOGgit add -A && git commit -m "chore: release vX.Y.Z"git status --porcelain must be empty.git tag web-vX.Y.Z — For web releasegit tag desktop-vX.Y.Z — For desktop release (if desktop changed)git push origin main --follow-tagsgh release create <tag> --title "<title>" --notes-file CHANGELOG.md --target main.github/workflows/release-web.yml or release-desktop.yml
## Report Format
End with a summary table:
| Category | Status | Details |
|---|---|---|
| File Presence | ✅ Pass | All 7 files present |
| Version Integrity | ✅ Pass | No drift |
| Code Quality | ❌ Fail | 3 lint warnings in packages/core |
| Tests | ✅ Pass | 42/42 passing |
| Build | ✅ Pass | Web + packages built |
| Git State | ✅ Pass | Clean tree on main |
| Security | ✅ Pass | No vulnerabilities |
| Documentation | ⚠ Advise | CHANGELOG needs v0.1.0 entry |
If any critical check fails, output:
> **BLOCKED: Fix the issues above before tagging a release.**
If all pass:
> **READY: All checks passed. Follow the release flow steps to tag and deploy.**