>rb

The release board. Cloud release nights as a checklist of scripted steps — planned in the open, run by one operator, every action, downtime and decision on record.

v1.0.3
install — macOS
$ curl -fsSL https://get-rb.polypoint.dev | bash

Needs an authenticated gcloud with your POLYPOINT Google account — that’s the whole gate. rb then keeps itself current on the stable channel, and never changes while your Mac operates a release. rb doctor checks the rest.

a release, in four commands # plan · take · run · archive

01plan
$ rb new PCR-2701 --window "2026-11-18 22:00"

Sections, tasks and deploy groups — in the board's plan mode or with rb plan. The plan lives in the release store, no PR: every change is shown as a diff and accepted by whoever runs it.

02take
$ rb -r PCR-2701 take

One operator at a time holds the release. Taking it reviews the plan, then loads the real run record — a backup operator can take over if the operator’s Mac dies.

03run
$ rb -r PCR-2701 board

The night on one screen: what is done, running, failed, waiting and next. Prod steps ask for the typed target; downtimes are marked and timed; the maintenance page re-routes itself.

04archive
$ rb -r PCR-2701 archive

The timeline, the logs and every step’s state frozen in the store — secrets refused. The retro turns every failure into a tested step for the next release.

rb board # a frame from the selftest

rb -r PCR-0000 board
PCR-0000 selftest release   12:59:58   window in 1d 9:01:00
[pre 2/4]  [staging deploy 2/4]  ▶ prod prep 0/3   [prod window 3/5]  [post 1/1]
✔ 4  ▶ 1  ✘ 1  ■ 1  ↷ 4  · 6
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  ▾ pre 2026-10-24 00:00  ✔ 2/4
  ✔ 100   Fetch origin in the cloud clone                0 PCR-0000      operator  local   00:01    demo ok
❯ · 102   Tools on this Mac                              0 PCR-0000      operator  local
  ▶ 110   Migration scan maintenance -> preview          0 PCR-0000      operator  local   00:06
  ✔ 112   Hotfix PR on release/preview                   0 PCR-0000      operator  local   00:04    demo: fixed by hand
  ▾ staging deploy 2026-10-25 08:00  ✔ 2/4
  ✔ 200   Create the Preview releases (nothing deployed) 0 PCR-0000      operator  local            demo: releases 23001-23010
  ? 208   Staging: services after the deploy             0 PCR-0000      operator  staging 02:11    runner gone (pid 999999) — ./release.sh mark 20…
  · 225   Staging: Flyway clean                          0 PCR-0000      operator  staging
  ✔ 266   Staging: poma-core + portal-core up            0 PCR-0000      operator  staging          demo: poma-core + portal-core clean
  ▾ prod prep 2026-10-26 08:00  ✔ 0/3
  · 330   Go/no-go                                       0 PCR-0000      operator  local            manual
  ■ 332   After the go/no-go                             0 PCR-0000      operator  local   00:01    waiting for the GO
  · 400   Before 22:00 · Prod Vault dump refresh         0 PCR-0000      operator  prod
  ▸ prod window 2026-10-28 22:00  ✔ 3/5  2 open  next: 445 Maintenance page OFF
  ▸ post 2026-10-29 00:00  ✔ 1/1
  ▸ ROLLBACK (only on a decision)  1 steps · only on a decision: select one, d = its live plan (no change), ⏎ copies its run command
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
▶ RUNNING 110  Migration scan maintenance -> preview  (00:06)
  2026-10-27 12:59:54 demo scan line 4
  2026-10-27 12:59:55 demo scan line 5
  2026-10-27 12:59:55 demo scan line 6

rb update channel # two release tracks

stable v1.0.3

Ships with the installer and updates itself silently — never while your Mac operates a release.

$ curl -fsSL https://get-rb.polypoint.dev | bash

The default channel. Already installed? You’re on it.

  • Deploy the landing page to its own Firebase site (rbSiteId)
preview in sync

No early build ahead of stable right now — opt in to ride the next one as it lands.

$ rb update channel preview

rb --help # 12 commands

$ rb board [--once|--compact|…]

the live board (TUI); the operator's board also syncs to the bucket

$ rb <release.sh command>

Commands of the release runner — every one refuses to touch a release it does not hold.

  • list
  • run <id>
  • next [--show]
  • mark …
  • log <id> [-f]
  • dry-run <id>
  • where
  • archive

$ rb pull [--force] [--diff] | push

the plan: gs://ppcloud-releases/<rel>/plan/ ↔ ~/.release-board/<rel>/plan/ (pull and take show the change; it is active only once you type accept)

$ rb take | handover | sync [--loop]

operate the release: the lease; state, logs, artifacts synced to <rel>/run/

$ rb watch PCR-xxxx [--once]

read-only board of the operator's run (~/.release-board/<rel>-watch/)

$ rb new PCR-xxxx [--core] [--title "…"]

a new plan, pushed to the bucket; empty (no --core): opened in plan mode

$ rb plan [show | section … | task … | group …]

plan: sections, tasks, deploy groups (no argument: the board)

$ rb add <catalogue step> [id] [slug]

copy a catalogue step into the selected release's plan (then rb push)

$ rb releases

every release in the bucket (lease, FROZEN) + legacy runs/ in git

$ rb update [check | channel stable|preview | rollback]

the engine (installed: from the release bucket; dev: git pull)

$ rb version · rb doctor

the engine's version · check this Mac (tools, logins, bucket access)

$ rb selftest [--board]

the engine's self-test on throwaway state (no network)

cat release-rules.md # learned the hard way

  1. 01No production change before the window.
  2. 02Only the operator starts steps — Claude reads, explains and prepares.
  3. 03Nothing happens off the board: manual work is a manual step.
  4. 04Scope = the release page and the code, always both.
  5. 05Downtimes grouped and short; the maintenance page across them.
  6. 06A backup operator is ready for every window.

git log --tags # release stream · two tracks

stable

  1. v1.0.3 NEW
    • Deploy the landing page to its own Firebase site (rbSiteId)
  2. v1.0.2
    • Release board: a landing page like poco's, published with every release
  3. v1.0.1
    • One-line install, silent self-update on two channels — never while your Mac operates a release
    • Plans and run records in the shared release store: rb push / pull with a reviewed, typed accept, no PR per release
    • One operator holds a release (take · handover), anyone can watch, a backup operator can take over after a crash
    • Plan mode in the board: sections, tasks and deploy groups (preview or maintenance, existing or new ADO release)
    • Every prod sync rolls one pod first, then the rest; the maintenance page re-routes itself after each sync
    • 56 catalogue steps from the PCR-2643 retro: Vault root token, Keycloak admin, maintenance page, rotation, …
    • rb doctor, rb update [channel | rollback], rb version; selftest with 249 checks

preview

  1. No preview build ahead of stable right now — the preview channel is in sync.