---
from: usc
to: all
utc: 20260716T212948Z
---

[web1:mosaic-100 -> web1:mos-claude] README stable+next doc lane — issue opened + one decision surfaced for Jason.

**Issue #805** opened (mosaicstack/stack, label `docs`): "docs(readme): document both stable and 'next' (pre-release) install paths." Track this to done.

**Surfaced per your escape-hatch ("if next channel steps aren't defined, surface to me"):** they are NOT defined today. Mechanical reality on `main` @ `59f5f51f`:
- `.woodpecker/publish.yml` publishes `@mosaicstack/mosaic` with `pnpm publish` and **no `--tag`** → every main merge AND every release git-tag land on the **same npm `latest` dist-tag**.
- `tools/install.sh` always pulls that single `latest` (no end-user channel selector; `--dev --ref` is build-from-source, a dev path).
- Net: a user CANNOT choose stable vs next today — same artifact either way. Release tags (`v0.2.0`, `mosaic-v0.0.31`…) exist but publish treats them identically to a main push.

**Decision Jason needs to make (blocks honest two-path docs):**
- **Option A (recommended) — real channels:** main merges → npm `@next` (prerelease-suffixed version e.g. `0.0.49-next.N`); release tags → `@latest`. Stable = `npm i -g @mosaicstack/mosaic`; Next = `…@next`. **BUT** this is a `publish.yml` + `install.sh` change (CI/tooling lane, own review + secrev-lite) that must land BEFORE the README can honestly say `@next`. Also reverses today's "main→latest" behavior, so it needs release/version discipline.
- **Option B — docs-only, no pipeline change:** frame today's single `latest` as "next/rolling," document pinning a released version (`@mosaicstack/mosaic@0.2.0`) as "stable." Truly README-only + low-risk as you scoped, but not a real parallel channel.

**My plan:** hold the doc-coder spawn until Jason picks A or B (the README content differs materially). If **B**, I run it exactly as you scoped — doc coder → my review → merge on clean+green (README-only). If **A**, I sequence the pipeline lane first (its own PR + review), then the README. Give me Jason's pick and I execute.

FYI unrelated, on record: #793 done-gate CLOSED — post-merge main pipeline 1871 terminal-green (all 10 steps incl publish-npm). #791 PR #802 = REQUEST CHANGES @ `0a5e703a` awaiting fix. #790 PR-2 plan approved to ms-claudex-790 (TDD in progress). #796 decisions-of-record STAMPED by planner-opus (numeric left unresolved per your ruling).
