Release Readiness
The release gate is:
npm run release:checkThat command runs npm run rust:check, then chains the advanced staged readiness gate through npm run check:v10. The base readiness path runs typecheck, tests, build, docs build, audit, package dry-run checks, package manifest hygiene, and mcp_readiness_report.
Local Checks
Run these before opening a release-sensitive PR:
npm run docs:build
npm run rust:check
npm run typecheck
npm test
npm run build
npm run release:checkPackage Boundary
The package includes runtime output and docs:
dist/bin/architect-mcp-tui.cjs- Rust TUI workspace sources and lockfile
packs/policy-bundles/foundation-packs/- selected
stack-sources/metadata examples/docs/llms.txtREADME.mdLICENSESECURITY.md.env.example
Repo-only TypeScript readiness scripts and docs development scripts are stripped from the packed package.json during prepack.
npm Publishing
Publishing is handled by .github/workflows/npm-publish.yml when a GitHub release is published from a v* tag. The workflow:
- Uses pinned GitHub Actions.
- Runs in the
npm-publishGitHub environment so maintainers can add required reviewers, tag restrictions, and environment-scoped secrets. - Serializes publishes per tag with workflow concurrency so a duplicate release event cannot race another publish for the same ref.
- Installs with Node 24, upgrades npm to
^11.5.1for provenance-capable publishing, and runsnpm ci. - Installs the pinned Rust 1.94.0 toolchain.
- Runs
npm run release:check. - Packs the package and installs the tarball in a temporary project.
- Publishes with
npm publish --access public --provenance.
Current auth mode is token-backed, OIDC-ready publishing. The workflow requests GitHub Actions OIDC and uses npm 11.5.1+, but NPM_TOKEN remains the publish credential until the npm package has a trusted publisher configured. The token must be a granular automation token scoped to @tonycdr-prog/architect-mcp with publish rights and the required 2FA automation setting. Do not bypass npm run release:check; it remains the clean-checkout release gate.
Trusted Publishing Migration
npm trusted publishing can remove the long-lived publish token once the package is configured on npmjs.com. The repository workflow already has the release-side prerequisites: GitHub-hosted runner, id-token: write, Node 24, npm ^11.5.1, provenance-capable publish, and the clean npm run release:check gate.
The remaining setup happens in npm package settings, not in this repository:
- Open
@tonycdr-prog/architect-mcpon npmjs.com. - In package settings, add a trusted publisher for GitHub Actions.
- Use owner
tonycdr-prog, repositoryarchitect-mcp, workflow filenamenpm-publish.yml, and environment namenpm-publish. - Run the next release without changing the release gate.
- After a successful trusted-publishing release, remove
NODE_AUTH_TOKENfrom the publish step and delete theNPM_TOKENGitHub secret. - Restrict publishing access to require 2FA and disallow traditional tokens if that policy fits the maintainer account.
- Revoke the old automation token.
Until that npm-side configuration is complete, keep NPM_TOKEN in GitHub secrets so releases remain publishable. Do not commit tokens, paste token values into issues, or place token material in workflow logs.
Recommended GitHub environment settings for npm-publish:
- Required reviewer: repository maintainer.
- Deployment branch/tag rule:
v*release tags only. - Secrets: keep
NPM_TOKENhere instead of as a broad repository secret while token-backed publishing remains enabled. - After trusted publishing succeeds, remove
NPM_TOKENentirely and keep the environment as the human release approval gate.
Token Rotation
If token-backed publishing is still enabled, rotate the token after any suspected exposure, maintainer handoff, or release-process change:
- Create a new granular npm token scoped to
@tonycdr-prog/architect-mcpwith publish rights and the required 2FA automation setting. - Update the GitHub Actions
NPM_TOKENsecret. - Run
npm run release:checklocally from a clean checkout. - Publish the next tag or rerun the publish workflow for the intended release.
- Verify
npm view @tonycdr-prog/architect-mcp versionand a freshnpx -y --package @tonycdr-prog/architect-mcp architect-mcp --helpinstall path. - Revoke the previous automation token.
TUI Release Binaries
.github/workflows/tui-release.yml builds architect-mcp-tui for Linux x64, Linux ARM64, macOS x64, macOS ARM64, and Windows x64 release assets. Each archive is uploaded with a .sha256 checksum. The npm shim downloads only matching release assets and verifies the checksum before execution.
The shim follows HTTPS redirects for GitHub release asset and checksum downloads. .github/workflows/tui-install-smoke.yml runs the shim and release-binary build path across Ubuntu x64, Ubuntu ARM64, macOS, and Windows on pull requests and manual dispatch. .github/workflows/tui-live-qa.yml adds cross-platform TUI workflow smoke coverage. .github/workflows/tui-published-package-smoke.yml runs on a weekly schedule and manual dispatch against the already published npm latest package on Ubuntu and Windows, with TUI state isolated under a temporary ARCHITECT_MCP_WORKSPACE. Manual OS evidence is tracked in TUI Live QA.
.github/workflows/governance-audit.yml runs the read-only governance audit on manual dispatch and a weekly schedule. It writes a public-safe GitHub step summary rather than uploading raw local audit JSON. Governance reports and redaction rules live in Governance Audit.
GitHub Pages
The docs site builds with VitePress from the existing docs/ directory and uses base: "/architect-mcp/". The Pages workflow runs on pushes to main and manual dispatch, installs with Node 22, builds with npm run docs:build, uploads docs/.vitepress/dist, and deploys via GitHub Pages Actions.
After merge, repository Pages settings should use "GitHub Actions" as the Pages source.
Compatibility Gate Names
Historical check:v3 through check:v10 scripts remain because they protect compatibility and release confidence. Public docs describe these checks as advanced maturity, governance, operating-model, and productization boundary criteria rather than public product versions.