Repo: motir-core. No PR — this card's deliverable is a pushed tag and the verified artifacts it produces. Carved out of MOTIR-2611 by its 2026-08-10 re-plan.
⚠️ Read this first: the reason MOTIR-2611 gave for cutting this tag was FALSE. That card asserted
cli-v0.2.0's tree predatedmotir login. It did not —git show cli-v0.2.0:packages/cli/src/program.tscarriesregister(program, 'login')at line 95 andcommandCatalog.tspath: 'login'at line 146, the same lines the card cited as main-only, and@motir/cli@0.2.0installed from npm listsloginfirst under SETUP COMMANDS. Nothing user-facing is broken today, and this tag does not fix a reported symptom. It is release hygiene. Do not restore the urgency the original card carried.
origin/main @ 816eb501, 2026-08-10)git log --oneline cli-v0.2.0..origin/main -- packages/cli → 4 commits (MOTIR-2611 said 20; that number was wrong too):
| commit | what it changes |
|---|---|
e27a6b77 | "API tokens" → "Tokens" in the three packages/cli/src hint sites (MOTIR-2537) — the same commit that bumped package.json to 0.2.1 |
248de2d8 | the PROD example key retired for ACME across reader-facing CLI copy (MOTIR-2343 family) |
672e4931 | motir link reports the real failure instead of "not accessible" (MOTIR-2492) — the only behaviour change |
b814889e | packages/cli/sandbox/README.md records the cli-v0.2.0 digests |
So the published CLI still prints PROD-7 in its help and still says "API tokens", while /docs and the app say ACME and "Tokens". That skew is the real (small) cost of leaving this untagged, and sandbox-staleness.yml will fail on it once the drift passes its 7-day window (tag cut 2026-08-08 → fires 2026-08-15).
A cli-v* lane replays the tag's own tree ([[tag-triggered-release-replays-tag-tree]]). If the tag is cut before MOTIR-2612's credential-free content check is on main, that check does not run on this release and the release ships ungated — which is the whole point of the pair. Cut the tag only after MOTIR-2612 has merged.
packages/cli/package.json still reads 0.2.1 and that git log cli-v0.2.1..origin/main -- packages/cli will be empty at tag time — if further CLI commits have landed since this card was written, re-read them and bump again rather than tagging a subset.git tag cli-v0.2.1 <origin/main sha> && git push origin refs/tags/cli-v0.2.1. Never move cli-v0.2.0 — a tag lane replays its tree, and moving it silently rewrites what the existing immutable :claude-0.2.0 tag and every recorded digest mean.gh run watch both lanes the tag fires — release-cli.yml (npm, OIDC Trusted Publishing; see [[npm-cli-publish-404-is-token-auth]] if it 404s) and release-sandbox.yml (the GHCR profile matrix).cli-v0.2.1 exists on origin, both lanes it fires are green, and npm view @motir/cli version returns 0.2.1.git log cli-v0.2.1..origin/main -- packages/cli is empty at tag time — the tag carries every CLI commit then on main, not a subset.Authorization header / registry login / packages: scope: node packages/cli/sandbox/smoke/assert-public.mjs --ref ghcr.io/moooon-b-v/motir-sandbox:claude exits 0, run with the out-of-org control ghcr.io/astral-sh/uv:latest proven able to report "public" first.0.2.1 for motir -v AND lists login in motir help. Assert something only the new build says — asserting the pull succeeded is what let MOTIR-2131 through.sandbox-commands job ran on THIS release and passed — visible in the release run, not inferred from its presence on main.:claude / :base / every profile tag are recorded on this card and in packages/cli/sandbox/README.md's published-images table (that README edit is the one file change, and it belongs to whoever cuts the tag)..github/workflows/release-cli.yml, .github/workflows/release-sandbox.yml, .github/workflows/sandbox-images.yml — the lanes the tag fires..github/workflows/sandbox-staleness.yml — the 7-day drift tripwire that makes this scheduled rather than urgent.packages/cli/sandbox/README.md — the published-images / digest table to update.packages/cli/sandbox/smoke/assert-public.mjs — AC 3's probe, control-first.The docker pull gap in the guide — that is MOTIR-2611. The content-check job itself — that is MOTIR-2612.