Summary
Ship Plumb on every install channel: crates.io (cargo install plumb-cli), a Homebrew tap under plumb-dev/homebrew-tap, an npm
wrapper under @plumb/cli, and a curl installer at
plumb.aramhammoudeh.com/install.sh. Every release ships with SLSA-level-2
attestations via cargo-dist.
Prerequisite user chores (not tracked as issues): reserve the
plumb-dev GitHub org, create the homebrew tap repo, reserve the
@plumb npm org. The batch can start once these exist.
PRD references
Acceptance criteria
Batches
Gates run sequentially (every PR in Gate N must merge before Gate N+1 starts). Within a gate, batches are parallel. For each batch, a recommended dispatch strategy is shown — you can always pick a different shape if it fits. See .agents/rules/dispatch-strategy.md for the heuristic.
| Gate |
Batches |
Tickets |
After |
| Gate 1 |
5A |
#50 #51 #52 |
(initial) |
| Gate 2 |
5B |
#53 #54 #55 |
Gate 1 merged |
Gate 1
Batch 5A — Registries + tap infra
| # |
Ticket |
Crate |
Effort |
Extras |
| #50 |
publish all 6 crates to crates.io |
release |
S |
security |
| #51 |
plumb-dev/homebrew-tap + cargo-dist wiring |
release |
M |
— |
| #52 |
@plumb npm org + @plumb/cli wrapper package |
release |
M |
security |
Dispatch (bundle): same crate, similar effort — bundling keeps related changes atomic.
/gh-issue 50 51 52 --worktree
Advance to Gate 2 when: every PR in Gate 1 is merged.
Gate 2 after Gate 1
Batch 5B — Installer + attestations + smoke tests
| # |
Ticket |
Crate |
Effort |
Extras |
| #53 |
plumb.aramhammoudeh.com/install.sh (curl one-liner) |
release |
S |
security |
| #54 |
GitHub Releases + SLSA L2 attestations |
release |
S |
security |
| #55 |
install-matrix smoke test (4 channels × 3 OSes) |
ci |
S |
— |
Dispatch (split): touches 2 crates — split so each gets focused review.
/gh-issue 53 --worktree
/gh-issue 54 --worktree
/gh-issue 55 --worktree
Phase gate follows — see below.
Phase gate
All four install channels verified working AND gh attestation verify passes on every release asset AND install-matrix smoke test
green on a dogfood tag AND cargo xtask pre-release green.
Unblocks: phase-6
How to execute
- Create GitHub milestone
v0.5-phase-5 if it doesn't already exist.
- Run
bash create-issues.sh from this directory to create all child issues.
- Dispatch
/gh-issue <child-number> for each batch in order; sessions within a batch run in parallel.
- Close this parent issue when every child is merged and the phase gate holds.
Generated
- Generated at: 2026-04-24T13:16:41Z
- Source spec:
docs/runbooks/phase-5-spec.yaml
- Repo:
aram-devdocs/plumb
Summary
Ship Plumb on every install channel: crates.io (
cargo install plumb-cli), a Homebrew tap underplumb-dev/homebrew-tap, an npmwrapper under
@plumb/cli, and a curl installer atplumb.aramhammoudeh.com/install.sh. Every release ships with SLSA-level-2attestations via cargo-dist.
Prerequisite user chores (not tracked as issues): reserve the
plumb-devGitHub org, create the homebrew tap repo, reserve the@plumbnpm org. The batch can start once these exist.PRD references
Acceptance criteria
cargo install plumb-cliinstalls workingplumbfrom crates.io.brew install plumb-dev/tap/plumbinstalls workingplumbon macOS + Linux.npm i -g @plumb/cliinstalls workingplumbcross-platform.curl -LsSf https://plumb.aramhammoudeh.com/install.sh | shinstalls workingplumb.Batches
Gates run sequentially (every PR in Gate N must merge before Gate N+1 starts). Within a gate, batches are parallel. For each batch, a recommended dispatch strategy is shown — you can always pick a different shape if it fits. See
.agents/rules/dispatch-strategy.mdfor the heuristic.5A5BGate 1
Batch
5A— Registries + tap infrareleasereleasereleaseDispatch (bundle): same crate, similar effort — bundling keeps related changes atomic.
Advance to Gate 2 when: every PR in Gate 1 is merged.
Gate 2 after Gate 1
Batch
5B— Installer + attestations + smoke testsreleasereleaseciDispatch (split): touches 2 crates — split so each gets focused review.
Phase gate follows — see below.
Phase gate
All four install channels verified working AND
gh attestation verifypasses on every release asset AND install-matrix smoke testgreen on a dogfood tag AND
cargo xtask pre-releasegreen.Unblocks: phase-6
How to execute
v0.5-phase-5if it doesn't already exist.bash create-issues.shfrom this directory to create all child issues./gh-issue <child-number>for each batch in order; sessions within a batch run in parallel.Generated
docs/runbooks/phase-5-spec.yamlaram-devdocs/plumb