Publishing Ultimate Harness
Ultimate Harness publishes to the npm registry as @agenticengineeringagency/ultimate-harness and exposes the uh binary.
Install smoke
Section titled “Install smoke”bun add -g @agenticengineeringagency/ultimate-harnessuh --helpLocal preflight
Section titled “Local preflight”bun install --frozen-lockfilebun run typecheckbun run buildbun run testpython -m pip install -r apps/hermes-plugin/dashboard/requirements-dev.txtbun run plugin:typecheckbun run plugin:testbun run publish:dry-runbun run publish:dry-run wraps bun publish --dry-run so the package tarball contents and publish metadata are checked without writing to the registry. Bun 1.3.x still expects an npm token-shaped value for scoped-package dry-runs; CI supplies a dummy NPM_CONFIG_TOKEN for the dry-run job, while the real publish job uses the repository secret.
.github/workflows/publish.yml has two jobs:
| Job | Trigger | Behavior |
|---|---|---|
dry-run |
PRs to dev/main, pushes, releases, manual dispatch |
installs, builds, runs package metadata tests, then runs bun run publish:dry-run |
publish |
v* tag, GitHub release, or manual dispatch with publish=true |
rebuilds and runs npm publish --access public after an idempotency check |
The publish job requires a repository secret named NPM_CONFIG_TOKEN. Bun respects this env var for automated registry auth.
GitHub secret
Section titled “GitHub secret”Create an npm automation token with publish rights for the @agenticengineeringagency scope, then set:
gh secret set NPM_CONFIG_TOKEN --repo Agentic-Engineering-Agency/ultimate-harnessDo not commit npm tokens into the repository. Do not publish from a local shell unless a maintainer explicitly asks for that release path.