src/skills/calver/SKILL.md
Show or bump CalVer version via bun scripts/calver.ts in arra-oracle-skills-cli. Default is dry-run --check. Read-only by default; `--apply` writes package.json. **For full release flow (commit + push + PR), use /release-alpha or /release-stable instead** — /calver alone never commits, pushes, or PRs.
npx skillsauth add Soul-Brews-Studio/oracle-skills-cli calverInstall 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.
Compute / bump the CalVer version for arra-oracle-skills-cli.
⚠️ Pair with the right skill. This skill is
--check(read-only) or--apply(writespackage.jsonand stops). It does NOT commit, push, or PR — that's deliberate so a bump can never accidentally cut a release.| Want to… | Use | |---|---| | See the next target version |
/calver(default =--check) | | Just bumppackage.jsonand stop |/calver --apply| | Cut a soak release (alpha pre-release) |/release-alpha| | Cut a stable release on main |/release-stable| | Land a code fix without releasing | regular branch + PR — keeppackage.jsonversion untouched |Never combine a
package.jsonbump with a code fix in the same commit on this repo —calver-release.ymlauto-tags on push tomain, so a fix-PR with a bump = automatic stable release.
CalVer scheme: v{yy}.{m}.{d}[-(alpha|beta).{HMM}] — HMM is the wall-clock as decimal H*100 + M with no leading zero (e.g. 09:37 → 937, 23:59 → 2359). Each minute is a unique slot — no merge-order collisions. Alpha and beta are independent channels (#754 / PR #783). Walks git tags AND package.json.version for source-of-truth (#784 / PR #786). TZ fixed to Asia/Bangkok. HMM replaced monotonic counter (#766/#775) in #923.
Day-of-month D may exceed 31 — used as a stable counter once natural date is exhausted (#930). E.g. v26.4.50 is the 50th stable cut in the period, not "April 50".
Always resolve repo via ghq so the skill works from any cwd:
ARRA=$(ghq list -p --exact Soul-Brews-Studio/arra-oracle-skills-cli 2>/dev/null | head -1)
if [ -z "$ARRA" ]; then
echo "❌ arra-oracle-skills-cli not found via ghq. Run: ghq get github.com/Soul-Brews-Studio/arra-oracle-skills-cli"
exit 1
fi
echo "🕐 $(date '+%H:%M %Z (%A %d %B %Y)')"
echo "📁 $ARRA"
TZ=Asia/Bangkok bun "$ARRA/scripts/calver.ts" --check
Shows the next target version (max(tag-walk, package.json) + 1 for today's date+channel). No files modified.
--apply — bump package.jsonTZ=Asia/Bangkok bun "$ARRA/scripts/calver.ts"
Writes the next version to package.json. Caller then:
git -C "$ARRA" add package.json && git -C "$ARRA" commit -m "bump: v<version>"
Do NOT auto-commit — hand off to user so they can bundle with other changes.
--stable — cut stable (no alpha/beta suffix)TZ=Asia/Bangkok bun "$ARRA/scripts/calver.ts" --stable
--beta — cut beta (parallel channel, independent counter)TZ=Asia/Bangkok bun "$ARRA/scripts/calver.ts" --beta
--stable and --beta are mutually exclusive (script exits 2).
--hour N — REMOVEDThe --hour flag is deprecated as of #766 and will exit 2. CalVer now uses a monotonic counter walked from git tags + package.json — there is no hour-bucket to override.
--help — print calver.ts helpTZ=Asia/Bangkok bun "$ARRA/scripts/calver.ts" --help
Stop. Hand off to the user. Do NOT auto-commit, do NOT push, do NOT open a PR. The whole point of /calver being read-only-or-stop-after-write is so a bump can never accidentally turn into a release.
If the user wants to ship the bump, they invoke a release skill:
Next steps (user runs one of these — not /calver):
/release-alpha — soak channel, PR to alpha, calver-release.yml cuts pre-release on merge
/release-stable — stable channel (planned), PR to main, calver-release.yml cuts stable on merge
If the user is doing code-only work (no release), tell them to revert the package.json change before opening the PR. Bumping in a non-release branch is the exact failure mode /release-alpha was built to prevent.
calver-release.yml tags on push to main when package.json version differs from latest tag. Post-#767, alphas merge to alpha branch (no tags created until stable cut to main); the script handles this by walking package.json (#784 / PR #786).ψ/inbox/2026-04-18_proposal-calver-skills-cli.md (mawjs-oracle vault).ARGUMENTS: $ARGUMENTS
testing
Cut a beta pre-release — bump CalVer with --beta, PR to beta branch, CI auto-tags + publishes to npm @beta. Use when user says 'release beta', 'cut beta', '/release-beta', or wants to publish a beta version for pre-release testing.
testing
Cut an alpha pre-release — bump CalVer, PR to alpha branch, CI auto-tags + publishes to npm @alpha. Use when user says 'release alpha', 'cut alpha', '/release-alpha', or wants to publish an alpha version.
tools
Talk to another oracle via maw federation. Uses fleet machine names (white, mba, clinic-nat, oracle-world, phaith). Auto-signs with current oracle's [host:handle] from CLAUDE.md. Global — works from any oracle repo.
development
Log information for future reference. Use when user says "fyi", "remember this", "note that", "for your info".