/wbRelease — Live Demo ()
What /wbRelease would actually do on wb-labs right now. The package versions, recent commits, and tree state below reflect the live workspace.
1. Live target
| Field | Live value |
|---|---|
| Working tree | Heavily dirty (large docs sync uncommitted) |
| Branch | main |
| Recent commits | e07bb93 chore(core2): root cleanup, d3c4abd feat(ai-workflow): standardise 4D tracking, a8a3cf0 docs(agents) |
| Most recent tag | Unknown without git tag inspection — likely several |
| Packages with versionable changes | core2/packages/wb-core/, others have shipped commits since the last tag (best guess: small bump candidates) |
| Memory rule | feedback_no_git.md — no git ops; /wbRelease is part of the deliberate /wbGit exception family |
The first row dominates: the dirty tree blocks any real release. Today's only honest invocation is --dry-run (which doesn't write) — but even dry-run requires the tree to settle eventually.
2. What each input form would resolve to today
| Input | Live resolution |
|---|---|
/wbRelease | Halt — dirty tree. |
/wbRelease --dry-run | Permitted — surfaces what would happen if tree were clean. Useful for planning. |
/wbRelease core2/packages/wb-core | Halt — same dirty-tree refusal. |
/wbRelease --restore | Honest "nothing to restore" (no in-progress release). Exit 0. |
/wbRelease --prerelease | Halt — dirty tree. |
3. Per-flag behavior, applied live
| Flag combination | Live result |
|---|---|
--dry-run | Reports proposed bumps based on commits since last tag. Does not write. Tolerates dirty tree. |
--prerelease | Halt — dirty tree. |
--restore | Exit 0 — nothing to recover. |
--tag="<custom>" | Halt — dirty tree blocks first. |
| (no flag) | Halt — dirty tree. |
4. Pipelines
/wbRelease --dry-run> /wbRelease --dry-run💠 Pipeline The dry-run that surfaces what's queued
💠 Pipeline The "what if we did need to release" case
A hypothetical: imagine the docs sync work were already committed and we wanted to tag the docs framework as a versioned artifact (it's not, but suppose). The dry-run would still say:
💠 Pipeline --restore on a clean state
💠 Pipeline The "after I commit the docs sync, then what?"
The user runs /wbGit -r -e -p first to commit the docs work, then explores release readiness:
5. What would refuse today
| Trigger | Live response |
|---|---|
/wbRelease | Halt — dirty tree. |
/wbRelease --prerelease | Halt — dirty tree. |
/wbRelease core2/packages/wb-core | Halt — dirty tree. |
/wbRelease --dry-run | Permitted; useful even with dirty tree (analyzes committed history). |
/wbRelease --restore | Exit 0 — nothing to recover. |
/wbRelease --tag="snapshot-2026" | Halt — dirty tree. |
/wbRelease frontEnd/wbc-ui/core2/packages/wb-flow/templates/ (after speculative version-field add) | Halt — frontEnd/wbc-ui/core2/packages/wb-flow/templates/ isn't an npm-shape package. |
| Real release attempt with no commits since last tag | Halt — nothing to release. |
| Cycle in cross-package deps | Halt — version cascade undefined. |
The pattern: /wbRelease is the version coordination engine and refuses to invent releases. It's gated by clean-tree, sees only committed history, won't version non-package directories, and treats --restore as a no-op when there's nothing to recover. In this exact workspace today, it correctly says "no release needed" because recent commits are workflow/docs changes — not the kind of work that warrants bumping a published version.
