Release
Cross-harness testing for multi-step agent flows
npx -y skills add dynobox/dynobox --skill releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Prepare dynobox packages for release to npm. Use this skill whenever the user asks to release, publish, ship, bump, or cut a version of any dynobox package — including dry runs, version bumps, changelog updates, and git tagging. Also trigger when the user asks about the release process or wants to verify publish readiness.
SKILL.md
5.3 KB, as published. Nobody here has run it
Release
This skill prepares dynobox packages for release. It handles everything up to
but not including npm publish — tests, version bumps, changelog updates,
tarball inspection, committing, and tagging. At the end it presents the publish
commands for the user to run manually.
Read RELEASES.md before making release changes. If this skill and
RELEASES.md disagree, follow RELEASES.md.
Before you start
Verify the repository is ready:
git status --short
git branch --show-current
pnpm test
Continue only when:
git status --shortis empty.- The current branch is
main, unless the user explicitly approves another branch. pnpm testpasses.
Abort and report the blocker if the working tree is dirty or tests fail.
Determine what to release
Identify the package name, package directory, and requested bump:
pnpm --filter <package-name> exec node -p "require('./package.json').version"
Use these package names for releases:
dynoboxforpackages/cli@dynobox/sdkforpackages/sdk@dynobox/run-schemaforpackages/run-schema
Current package policy:
- Publish
dynoboxand@dynobox/sdkto npm. - Publish
@dynobox/run-schemaas a restricted GitHub Package using itspublishConfig. - Keep
@dynobox/runner-localand@dynobox/evaluatorsprivate. - The
dynoboxCLI bundles private runtime workspace packages instead of exposing them as public npm dependencies.
If releasing multiple packages, identify workspace dependencies and plan to
publish dependencies first. For example, publish @dynobox/sdk before dynobox.
If the user did not specify a version or bump type, ask whether to use patch,
minor, or major. Do not guess.
Bump the version
For each package, bump without creating an automatic git tag:
pnpm --filter <package-name> exec npm version <patch|minor|major> --no-git-tag-version
Read the new version:
pnpm --filter <package-name> exec node -p "require('./package.json').version"
The CLI reads its display version from packages/cli/package.json; there is no
second version constant to update. Search for stale user-facing references to
the previous version before committing:
rg '<previous-version>' packages/cli apps/site docs README.md CHANGELOG.md
Update CHANGELOG.md
- Move the package's
[Unreleased]entries into a new release section. - Use
## <package-name>@<version> — YYYY-MM-DD. - Place the new section immediately below the
[Unreleased]heading.
Inspect the tarball
After version and changelog updates, inspect the package tarball:
pnpm --filter <package-name> pack --pack-destination /tmp
tar tf /tmp/<tarball-name>.tgz
tar -xOf /tmp/<tarball-name>.tgz package/package.json
For dynobox, confirm the packed package.json runtime dependencies include
only public npm packages. It must not include private workspace packages:
rg '@dynobox/(runner-local|evaluators)' packages/cli/dist
Expected result: no matches.
Dry run mode
If the user says "dry run", "what would happen", or asks to verify publish contents without actually releasing:
- Run tests.
- Bump the version.
- Update the changelog.
- Inspect the tarball.
- Report what the tarball contains and whether it looks correct.
Do not commit, tag, or push in dry-run mode. Do not present publish commands.
Commit, tag, and push (non-dry-run only)
Commit and tag after verifying the tarball:
git add -A
git commit -m "chore(release): <package-name>@<version>"
git tag <package-name>@<version>
git push && git push --tags
Present publish commands
After all preparation is complete, present the publish commands for the user to run manually. Never run these commands yourself.
For a public npm package:
pnpm --filter <package-name> publish --access public --no-git-checks
For the restricted run-schema package:
pnpm --filter @dynobox/run-schema publish --no-git-checks
For multiple packages, present them in dependency order:
pnpm --filter @dynobox/sdk publish --access public --no-git-checks
pnpm --filter dynobox publish --access public --no-git-checks
Then tell the user to verify a public npm package after publishing:
npm view <package-name>@<version>
Verify the restricted run-schema package against GitHub Packages:
npm view @dynobox/run-schema@<version> --registry=https://npm.pkg.github.com
Multi-package releases
When releasing packages that depend on each other:
- Run the preflight checks once.
- Bump all package versions first.
- Update
CHANGELOG.mdfor all packages. - Inspect tarballs for all packages.
- Make one release commit:
git add -A git commit -m "chore(release): [email protected], @dynobox/[email protected]" - Create one tag per package:
git tag @dynobox/[email protected] git tag [email protected] - Push once:
git push && git push --tags - Present publish commands in dependency order.