Skip to content

[RUNBOOK] Phase 7 — V1 features #65

Description

@aram-devdocs

Summary

V1 features that intentionally shipped AFTER V0. Expands the rule
catalog (8 more rules), hardens the driver (wait-for, auth scripts,
Playwright storage-state, Chromium auto-fetch), expands the MCP
surface (lint_page_html, compare_viewports, HTTP transport), and
adds codegen + watch mode + suggest-ignores.

This is long. Phase 7 runs in batches of related work; each batch
can ship on its own milestone if the V1 release needs to fan out.

Parking / release-readiness blocker

Status: PARKED until release-readiness automation lands, then Phase 7 Gate 1 may dispatch.

Aram updated the sequence on 2026-05-02: the manual first distribution release (#101) comes after Phase 7 Gate 1, not before it.

Phase 7 Gate 1 (#66 #67 #68 #69 #70 #71 #72 #73 #79 #80 #81) is dispatchable once release-readiness automation is complete:

Manual release gate now follows Gate 1:

PRD references

  • PRD §10.6
  • PRD §11.2
  • PRD §11.4
  • PRD §14.1
  • PRD §14.2
  • PRD §14.4
  • PRD §15.3
  • PRD §15.4
  • PRD §15.5
  • PRD §16

Acceptance criteria

  • All batches in the V1 track close with their gates satisfied.
  • plumb lint supports the full CDP capability surface (auth, cookies, wait-for, storage-state, animation disable).
  • 8 V1 rules shipped alongside V0's 8, for 16 total.
  • MCP surface stable on stdio + HTTP transports.
  • VS Code extension published (separate repo; tracked via 7E).

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 7A, 7C #66 #67 #68 #69 #70 #71 #72 #73 #79 #80 #81 (initial)
Gate 2 7B, 7D, 7E #74 #75 #76 #77 #78 #82 #83 #84 #85 Gate 1 merged

Gate 1

2 parallel batches (7A, 7C) — every batch below can run concurrently. Each batch still has its own recommended shape.

Batch 7A — Remaining rules (8 in parallel)

# Ticket Crate Effort Extras
#66 rule type/family-conformance plumb-core S
#67 rule type/weight-conformance plumb-core S
#68 rule color/contrast-aa (WCAG 2.1 AA) plumb-core L
#69 rule shadow/scale-conformance plumb-core S
#70 rule sibling/padding-consistency plumb-core S
#71 rule z/scale-conformance plumb-core S
#72 rule opacity/scale-conformance plumb-core S
#73 rule baseline/rhythm (font metrics + CDP textBoxes) plumb-core L

Dispatch (cluster): mix of small and large — bundle 6 small, split 2 large to keep review <400 LOC.

/gh-issue 66 67 69 70 71 72 --worktree   # 6 small: one bundled PR
/gh-issue 68 --worktree   # L: rule-color-contrast-aa
/gh-issue 73 --worktree   # L: rule-baseline-rhythm

Batch 7C — MCP V1 — new tools + HTTP transport

# Ticket Crate Effort Extras
#79 lint_page_html tool plumb-mcp M security
#80 compare_viewports tool plumb-mcp M
#81 HTTP transport + PLUMB_MCP_TOKEN auth plumb-mcp S security

Dispatch (bundle): same crate, similar effort — bundling keeps related changes atomic.

/gh-issue 79 80 81 --worktree

Advance to Gate 2 when: every PR in Gate 1 is merged.

Gate 2 after Gate 1

3 parallel batches (7B, 7D, 7E) — every batch below can run concurrently. Each batch still has its own recommended shape.

Batch 7B — Driver ergonomics — wait-for, auth, animation disable, auto-fetch

# Ticket Crate Effort Extras
#74 --wait-for and --wait-ms flags plumb-cli S
#75 --cookie / --header / --auth-script flags plumb-cli M security
#76 Playwright storage-state loading plumb-cli M security
#77 disable animations + hide scrollbars + pin DPR plumb-cdp S security
#78 Chromium auto-fetch via chromiumoxide fetcher plumb-cdp L security

Dispatch (split): touches 2 crates — split so each gets focused review.

/gh-issue 74 --worktree
/gh-issue 75 --worktree
/gh-issue 76 --worktree
/gh-issue 77 --worktree
/gh-issue 78 --worktree

Batch 7D — Codegen + watch + suggest-ignores

# Ticket Crate Effort Extras
#82 plumb-codegen crate + plumb init --from ./ plumb-cli L
#83 plumb watch plumb-cli M
#84 plumb lint --suggest-ignores plumb-cli M

Dispatch (cluster): mix of small and large — bundle 2 small, split 1 large to keep review <400 LOC.

/gh-issue 83 84 --worktree   # 2 small: one bundled PR
/gh-issue 82 --worktree   # L: plumb-codegen-crate-init-from

Batch 7E — VS Code extension (separate repo — tracked here)

# Ticket Crate Effort Extras
#85 VS Code extension consuming plumb JSON + SARIF docs L

Dispatch (single): only one ticket in this batch.

/gh-issue 85 --worktree

Phase gate follows — see below.

Phase gate

All V1 batches closed with tests + docs AND plumb lint supports
the full CDP capability surface AND MCP surface stable on both
transports AND cargo xtask pre-release green.

Unblocks: (terminal; V2 begins a new runbook)

How to execute

  1. Create GitHub milestone v1.0-phase-7 if it doesn't already exist.
  2. Run bash create-issues.sh from this directory to create all child issues.
  3. Dispatch /gh-issue <child-number> for each batch in order; sessions within a batch run in parallel.
  4. Close this parent issue when every child is merged and the phase gate holds.

Generated

  • Generated at: 2026-04-24T13:16:46Z
  • Source spec: docs/runbooks/phase-7-spec.yaml
  • Repo: aram-devdocs/plumb

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:rfcDesign proposalphase-7V1 Phase 7 — post-V0 features

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions