Skip to content
rlsbl transition
On this page

Record the transition-record facts an operator states.

#rlsbl transition

Record the transition-record facts an operator states. Most events in a repository's transition record are written by the operation that performed them; the ones here are statements about a repository somebody read -- two that nothing can derive at all, and one whose command exists but which a rename performed by hand leaves unrecorded.

#transition record

Append one operator-declared fact to this repository's transition record: a tag that stands outside the version model (--non-version-tag), a member's or releasable's deliberately closed release history (--release-history-closed), or a releasable that was renamed (--releasable-rename --to ). Exactly one must be elected, and --reason states why in the operator's own words. The event is appended to the repository-scoped record (.rlsbl-monorepo/transitions.jsonl in a workspace, .rlsbl/transitions.jsonl standalone) and committed. A second declaration of the same kind about the same subject is refused, naming the one already recorded.

Effect: mutating ยท consequential (prompts before running; --approve-consequential skips)

#Flags

Flags
NameShortTypePresenceEnvDescription
factchoicerequiredSelection (not typed as a flag). Elect exactly one of --non-version-tag, --release-history-closed, --releasable-rename. Which fact is being declared. Exactly one must be elected, and the elected member carries the subject it is about.
    --non-version-tagstrrequiredElects fact = non-version-tag. Declare that a tag stands outside the version model on purpose: not a release and not an alias of one. Every reader of the tag namespace accounts for it afterwards instead of reporting it as unexplained. Its value: the tag name, exactly as it stands in the repository's tag namespace
    --release-history-closedstrrequiredElects fact = release-history-closed. Declare that a member's or releasable's release history is deliberately over. The version file, changelog directory and release archives it leaves behind are a record of what it released, not residue to clean up. Its value: the releasable or member name whose release history is closed -- a name, never a path, in the vocabulary workspace.toml uses
    --releasable-renamestrrequiredElects fact = releasable-rename. Declare that a releasable group was renamed. A tag-SPELLING fact: the releasable's future tags are spelled with the new name, everything already published keeps the name it was published under, and nothing a consumer resolves by has changed -- so rlsbl release reconcile still repairs the refs of releases made under the old spelling. rlsbl monorepo rename-releasable records this itself; declare it here for a rename performed another way. Its value: the releasable's name BEFORE the rename, in the vocabulary workspace.toml uses
        --tostrrequiredOnly with --releasable-rename. the releasable's name AFTER the rename -- the spelling its future tags carry, while everything already published keeps the old one
--reasonstrrequiredWhy this fact holds, in the operator's own words (e.g. "a nightly build marker", "extracted into its own repository"). Recorded verbatim and shown by every reader that explains the fact, so it is the audit trail for a declaration nothing can derive.
--auto-commit, --no-auto-commitbooloptionalCommit the transition record with the Autogenerated trailer (the handler commits when neither --auto-commit nor --no-auto-commit is passed)

More tools from this site

  • claudestream Drive Claude Code from Python: run it as a subprocess and read its output as typed events, with async and sync sessions, sandbox policies, and tools you define in Python
  • claudewheel A TUI Claude Code Launcher that lets you have more than one profile, manage sessions lifecycle, pick the exact CC version, model to use (even older unlisted ones), pick which GitHub account to use, etc.
  • dirstat Fast, single-binary directory statistics CLI: every file under a tree grouped by format, with counts, sizes, and lines of code, as a colored terminal table or as JSON
  • fastware A batteries-included ASGI framework: msgspec JSON, a managed Granian server, dependency injection, SSE, WebSockets, auth, and a test client
  • go-toml-edit Zero-dep TOML editing library for Go with comment preservation
  • howmuchleft The fastest Claude Code statusline: context window, 5-hour, and weekly limit usage as three customizable gradient bars, rendering in about 6 ms
  • orxtra
  • pgdesign
  • predraw Declarative rendering pipeline: describe a scene in JSON and get SVG, PNG and WebP out, with light and dark style tokens, reusable components and text converted to path outlines
  • reposummary Turn a git repository's history into a Markdown journal: pick a time window or revision range and get a readable digest of what changed, optionally narrated by an LLM
  • safegit git wrapper CLI that gives each commit its own temporary index and retries ref updates on conflict, so concurrent agents share one repository
  • saferm Command-line replacement for rm that archives every deletion with a mandatory reason and the context it ran in, so deleted files can be listed, inspected and restored
  • selfdoc Static Site Generator that builds a project's documentation site directly from its source code, so the docs can never drift from the code they describe, with SEO/AEO, first-class blog, search, and cross-project linking built in
  • strictcli
  • stricttest An always-on test-isolation floor: a pytest plugin and a Go env-hygiene module that make a test suite structurally unable to reach real credentials, the real HOME, the network, or the development repository.
  • wesktop A Python framework that turns an ASGI web app into a desktop application, serving it from a local Granian server and displaying it in a native OS window via pywebview
Search