Development
Stdlib tests, plugin validation and evals locally — then every green merge to main versions and publishes itself.
Updated
Local checks
python3 tests/run.py # stdlib self-checks
claude plugin validate .
claude plugin eval . --tag smoke --runs 1 --ablation none --max-cost-usd 2 --no-publish --allow-tools Bash Write Edit
python3 scripts/release.py X.Y.Z --push # optional manual releaseThe runner gives every test script temporary state and a fake model provider, so tests run offline and never make paid model calls. JavaScript regex compatibility is also checked when Node is installed.
Automatic releases
Every push or merge to main runs the full CI matrix, then versions and publishes the tested revision. Conventional commits pick the bump:
| Commit | Release |
|---|---|
feat: … | Minor |
feat!: … or BREAKING CHANGE: | Major |
| Anything else | Patch |
Both plugin manifests, the Python version, the changelog, the release commit and the tag move together. Jobs for the same revision are serialised, an atomic push prevents orphan tags, and rerunning a failed job resumes the tagged release instead of bumping again. Failed tests never publish.
Versioning
| Bump | When |
|---|---|
| Major | Breaking changes to hook commands (Codex would need to re-trust), the ~/.honey layout or the CLI |
| Minor | New skills or RSI capabilities |
| Patch | Fixes |
Further reading
Changelog · Skill style guide · Design plan · Credits and licenses