--- id: LSN-0007 ticket: studio-docs-import title: Pack wizard shell legacy lesson created: 2026-03-26 tags: - studio - legacy-import - pack-wizard - packer-boundary --- ## Context Legacy import from `docs/studio/learn/pack-wizard-shell.md`. This lesson keeps the first-wave Studio rule for the `Pack` wizard as a shell over packer-owned operations, aligned with `docs/studio/specs/4. Assets Workspace Specification.md` and packer integration docs. ## Key Decisions ### Pack should be a Studio-owned wizard shell over packer-owned operations **What:** The `Pack` flow should be a phase-based wizard with `Summary`, `Validation`, `Packing`, and `Result`, where Studio owns presentation and state binding while packer owns build-set summary, validation, execution, progress, and result semantics. **Why:** A plausible-looking Studio modal can quietly reimplement packer semantics or hide operational phases. The wizard should expose those phases without pretending Studio owns build execution. **Trade-offs:** The wizard structure is more explicit than one opaque modal state, but it keeps operational ownership honest and makes blocked, failed, and successful outcomes easier to reason about. ## Patterns and Algorithms - Treat `Pack` as a workspace-level action over the current build set, not a selected-asset action. - Ask packer for the build-set summary instead of recomputing it locally from navigator state. - Use a separate validation phase that runs only on `registered + included in build`. - Reflect packer-owned progress honestly and keep the first wave non-cancelable if packer does not support cancel. - Make `assets.pa` the primary runtime artifact in the result summary; companion artifacts remain supporting detail. ## Pitfalls - Treating pack summary as a local Studio recomputation. - Using one opaque modal state instead of explicit operational phases. - Letting unrelated assets influence wizard validation. - Exposing fake cancel behavior unsupported by packer. - Making companion artifacts dominate the main result summary. ## Takeaways - The important lasting rule is ownership: Studio shells the flow, packer owns the semantics. - Explicit phases are a didactic and operational feature, not decorative UI ceremony. - Legacy source attribution: `docs/studio/learn/pack-wizard-shell.md`.