.claude/skills/release/SKILL.md
End-to-end npm release workflow with verification gates and hardcoded-version protection
npx skillsauth add proffesor-for-testing/agentic-qe releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Execute a safe, verified npm release for the agentic-qe package. STOP after each phase for user confirmation.
This project uses a flat single-package structure (post v3.7.4 flatten):
| File | Package Name | Role |
|------|-------------|------|
| package.json (root) | agentic-qe | Published to npm — the installable package |
npm run build executes tsc && build:cli && build:mcp producing dist/ at rootnpm publish runs from the root directoryrelease: published event via .github/workflows/npm-publish.ymlImportant: There is NO v3/ subdirectory. All source is at root (src/, dist/, tests/).
<version> — Target version (e.g., 3.7.5). If omitted, prompt the user.git status
git branch --show-current
Verify working directory is clean and you know which branch you're on. If there are uncommitted changes, stop and ask the user. The release prep happens on the current working branch — we PR to main later.
STOP — confirm clean state and current branch.
Read the current version from package.json (source of truth). Then grep the ENTIRE codebase for hardcoded version strings — current version, old versions, and any version-like patterns.
# Read current version
node -p "require('./package.json').version"
# Search for version strings in source files (exclude node_modules, dist, .git, docs/releases)
grep -rn --include="*.ts" --include="*.js" --include="*.json" '"3\.[0-9]\+\.[0-9]\+"' . \
--exclude-dir=node_modules --exclude-dir=dist --exclude-dir=.git --exclude-dir=releases
Also check .claude/skills/skills-manifest.json for fleetVersion — must be updated to match.
If any stale version strings are found in source files, fix them ALL before continuing.
STOP — show findings and wait for user confirmation.
Update package.json to the target version:
cd /workspaces/agentic-qe-new && npm version <version> --no-git-tag-version
Also update fleetVersion in .claude/skills/skills-manifest.json.
Verify:
grep '"version"' package.json
STOP — confirm version is correct.
Add a new section to CHANGELOG.md (at root) following Keep a Changelog format:
## [<version>] - YYYY-MM-DD
### Added
- ...
### Fixed
- ...
### Changed
- ...
Write user-friendly descriptions focused on value, not implementation details.
STOP — show changelog entry for review.
Create a release notes file at docs/releases/v<version>.md following the existing format:
# v<version> Release Notes
**Release Date:** YYYY-MM-DD
## Highlights
<1-2 sentence summary of the most important changes>
## Added
- ...
## Fixed
- ...
## Changed
- ...
Then update docs/releases/README.md — add a new row at the TOP of the table:
| [v<version>](v<version>.md) | YYYY-MM-DD | <Short highlights> |
Use existing entries as formatting reference. Keep highlights concise (under 80 chars).
npm run build
Executes tsc && build:cli && build:mcp. Verify zero errors. If build fails, diagnose and fix.
STOP — show build output.
npm run typecheck
Runs tsc --noEmit. Must produce zero errors.
STOP — show type check output.
npx vitest run tests/unit/
Run REAL tests against the actual codebase. Do NOT simulate, mock, or skip any tests. ALL unit tests must pass.
STOP — show test results.
This is the critical pre-release gate. Verify the built package works end-to-end as a user would experience it.
# Verify dist/ exists with expected bundles
ls -la dist/cli/bundle.js
ls -la dist/index.js
ls -la dist/mcp/bundle.js
All three must exist: CLI bundle, main entry point, MCP server.
aqe init --auto in a Fresh Project# Create a temporary test project
mkdir -p /tmp/aqe-release-test && cd /tmp/aqe-release-test
# Run init using the LOCAL build (not published version)
node /workspaces/agentic-qe-new/dist/cli/bundle.js init --auto
Verify init completes without errors and creates the expected project structure (.agentic-qe/ directory, config files).
# Version output
node /workspaces/agentic-qe-new/dist/cli/bundle.js --version
# System status
node /workspaces/agentic-qe-new/dist/cli/bundle.js status
Both must succeed without errors.
cd /tmp/aqe-release-test
# Verify learning subsystem
node /workspaces/agentic-qe-new/dist/cli/bundle.js learning stats 2>&1 | head -10
# Verify agent listing works
node /workspaces/agentic-qe-new/dist/cli/bundle.js agent list 2>&1 | head -10
# Verify health check
node /workspaces/agentic-qe-new/dist/cli/bundle.js health 2>&1 | head -10
These should respond (even if empty results) without errors, confirming the subsystems initialize properly.
# Pack and install in a clean temp directory to simulate real user install
CLEAN_DIR=$(mktemp -d)
npm pack --pack-destination "$CLEAN_DIR" 2>&1 | tail -2
cd "$CLEAN_DIR"
npm init -y > /dev/null 2>&1
npm install ./agentic-qe-<version>.tgz 2>&1 | tail -3
node node_modules/.bin/aqe --version 2>&1
EXIT=$?
echo "Exit code: $EXIT"
cd /workspaces/agentic-qe-new
rm -rf "$CLEAN_DIR"
Must exit 0 and print the correct version. If it crashes with ERR_MODULE_NOT_FOUND, a dependency is marked as external in the build scripts but not listed in dependencies. Fix by either bundling it, lazy-loading it, or adding it to dependencies.
rm -rf /tmp/aqe-release-test
STOP — show all verification results. Every check must pass before continuing.
Run the same tests that CI runs on PRs and during publish. Skip e2e browser tests unless the user explicitly requests them.
cd /workspaces/agentic-qe-new
# Performance gates (fast — validates perf thresholds)
npm run performance:gate
# Regression tests (runs full unit suite)
npm run test:regression
# Full test:ci suite (from npm-publish.yml — excludes browser/e2e)
npm run test:ci
Available test scripts: test:unit, test:unit:fast, test:unit:heavy, test:unit:mcp, test:ci, test:regression, test:safe, test:perf, test:e2e, test:coverage, performance:gate.
All mandatory test suites must pass. Pre-existing MCP handler test failures (tests that need runtime initialization) are acceptable if they also fail on the main branch.
STOP — show all test results.
cd /workspaces/agentic-qe-new
# Stage version bump + changelog + release docs + any version audit fixes
git add package.json package-lock.json CHANGELOG.md docs/releases/README.md docs/releases/v<version>.md
git add .claude/skills/skills-manifest.json # if fleetVersion was updated
git status
git commit -m "chore(release): bump version to v<version>"
git push origin <current-branch>
# Create PR to main
gh pr create \
--base main \
--title "chore(release): v<version>" \
--body "$(cat <<'EOF'
## Release v<version>
### Verification Checklist
- [x] package.json version updated
- [x] Build succeeds (tsc + CLI + MCP bundles)
- [x] Type check passes
- [x] All unit tests pass
- [x] `aqe init --auto` works in fresh project
- [x] CLI commands functional
- [x] Self-learning subsystem initializes
- [x] Performance gates pass
- [x] Full test:ci suite passes
See [CHANGELOG](CHANGELOG.md) for details.
EOF
)"
STOP — show PR URL and wait for CI checks to pass.
Once CI passes on the PR:
gh pr merge <pr-number> --merge
Pull the merged main:
git checkout main && git pull origin main
STOP — confirm merge successful.
gh release create v<version> \
--title "v<version>: <Short Title>" \
--notes "$(cat <<'EOF'
## What's New
<User-friendly summary — focus on value, not technical details>
## Getting Started
\`\`\`bash
npx agentic-qe init --auto
\`\`\`
See [CHANGELOG](CHANGELOG.md) for full details.
EOF
)"
This automatically:
v<version>npm-publish.yml GitHub Actions workflowSTOP — show release URL.
# Watch the GitHub Actions workflow
gh run list --workflow=npm-publish.yml --limit 1
gh run watch <run-id>
The workflow:
npm run typechecknpm run builddist/ exists with CLI and MCP bundlesnpm run test:ci (unit tests, excludes browser/e2e)npm publish --access public --provenanceWait for the workflow to succeed. If it fails, diagnose from the logs:
gh run view <run-id> --log-failed
STOP — confirm workflow succeeded.
npm view agentic-qe@<version> name version
Confirm the published version matches. Test install in local environment:
npx agentic-qe@<version> --version
This step catches missing/external dependency issues that only manifest in clean environments (e.g., typescript not being available when installed globally). This MUST pass before declaring the release successful.
# Create a completely isolated install — no access to project node_modules
CLEAN_DIR=$(mktemp -d)
npm install --prefix "$CLEAN_DIR" agentic-qe@<version> 2>&1 | tail -5
# Test CLI commands using ONLY the isolated install's dependencies
NODE_PATH="$CLEAN_DIR/node_modules" node "$CLEAN_DIR/node_modules/.bin/aqe" --version
NODE_PATH="$CLEAN_DIR/node_modules" node "$CLEAN_DIR/node_modules/.bin/aqe" --help 2>&1 | head -5
# Cleanup
rm -rf "$CLEAN_DIR"
If --version crashes (e.g., ERR_MODULE_NOT_FOUND), the release has a broken dependency. Diagnose whether the missing package should be:
dependencies in package.json (if it's a real runtime dep)Fix, rebuild, and re-release if this step fails. Never ship a CLI that crashes on --version.
STOP — confirm isolated install works.
fleetVersion in .claude/skills/skills-manifest.json--provenance for attestation)development
Apply XP practices including pair programming, ensemble programming, continuous integration, and sustainable pace. Use when implementing agile development practices, improving team collaboration, or adopting technical excellence practices.
development
Warehouse Management System testing patterns for inventory operations, pick/pack/ship workflows, wave management, EDI X12/EDIFACT compliance, RF/barcode scanning, and WMS-ERP integration. Use when testing WMS platforms (Blue Yonder, Manhattan, SAP EWM).
testing
Advanced visual regression testing with pixel-perfect comparison, AI-powered diff analysis, responsive design validation, and cross-browser visual consistency. Use when detecting UI regressions, validating designs, or ensuring visual consistency.
development
Comprehensive truth scoring, code quality verification, and automatic rollback system with 0.95 accuracy threshold for ensuring high-quality agent outputs and codebase reliability.