Ran /plan-eng-review on the v0.4 canvas-renderer plugin slot plan.
Four sections, 7 architecture / code-quality / performance forks
(all chose Option A), one codex outside-voice consult, 3 cross-model
tensions resolved (1A + 2A + 3A).
KEY DECISIONS LOCKED:
1A. Defer v0.4 — ship v0.2 (CanvasProducer wiring) and v0.3 (mux push)
first. Codex outside-voice was decisive: v0.4 is high-infrastructure
+ low-immediate-user-value, and the deferred-CLI scope was confusing
on its own terms. v0.2 + v0.3 deliver immediate user value
(PR-status canvases, sub-second updates) for less eng cost.
2A. When v0.4 ships, scope is Maximalist (CLI auto-rebuild + warning
UI included). The original "Selective" scope was rejected because
deferring CLI tooling makes the build-time-discovery design ship
a confusing path to users.
3A. AST package-contract scanner stays in v0.4 but reframes as
compatibility lint, not a safety mechanism. The trust statement
("installing a renderer plugin grants full dashboard code
execution") does the security work; AST scanner just keeps plugins
shaped right.
ARTIFACTS:
- docs/canvases-v0.4-plan.html (NEW): the locked v0.4 plan with all 9
numbered decisions, codex's 12 design constraints folded in,
failure-mode-organized test scope, ship-cost breakdown, NOT-in-scope.
- docs/canvases-feature.html: roadmap row v0.4 updated to reflect new
ordering + Maximalist scope + 2.5-4 eng-week estimate. Known-tradeoff
section's "rebuild required" framing aligned with CLI-included scope.
- TODOS.md (NEW): captures v0.2, v0.3, v0.4 (with 10 implementation
lanes A-J), and v0.5+ deferred work. Test scope is organized around
failure modes (stale artifact, missing rebuild, npm-pack vs symlink,
Zod peer mismatch, etc.), not test count theater.
Review persisted to ~/.gstack/projects/ for the dashboard. Test plan
artifact written for future /qa consumption.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>