docs: plan presentation visual scale pass

This commit is contained in:
lda
2026-07-12 20:47:34 +07:00 Verified
parent 24e471d0e6
commit 6ee1318a05
5 changed files with 405 additions and 2 deletions
@@ -10,7 +10,7 @@
## Global Constraints
- Follow design spec: `docs/superpowers/specs/2026-07-08-defense-presentation-visual-pass-design.md`.
- Follow design spec: `docs/historical/superpowers/specs/2026-07-08-defense-presentation-visual-pass-design.md`.
- Do not change the 12-scene storyboard order.
- Do not replace chat UI in this slice.
- Do not add new dependencies.
@@ -0,0 +1,145 @@
# Defense Presentation Visual Pass Design
## Purpose
This slice improves the weakest visible parts of `/present` without changing the
storyboard, transport, demo replay, or chat system. The target is a defense
screen at `1280x720` with fallback usability at `1024x768`.
The presentation should look like a precise product walkthrough, not a generic
AI slide deck. The workflow graph and evidence surfaces remain the proof. Chat
and Q&A remain supporting surfaces.
## Scope
In scope:
- Scene 6 architecture figure scale, horizontal fit, and focused hierarchy.
- Scene 7 authoring visual treatment.
- Scene 10 interrupt and evidence treatment.
- Discussion panel treatment for speaker-only hints.
- Screenshot smoke checks at `1280x720` and `1024x768`.
Out of scope:
- AI/chat component replacement.
- Schema form surface.
- Guided run beat gates.
- Presenter companion.
- Full theme redesign.
- Rewriting the 12-scene storyboard.
## Design Direction
Use the existing editorial canvas and presentation tokens. Do not introduce a
third theme or another global palette. The pass should make the current
presentation calmer and more intentional:
- One dominant visual per beat.
- Bigger diagrams, fewer side panels.
- Evidence as a receipt or deliberate inspector, not a random drawer.
- Speaker-only notes should not look like audience content.
- Motion should clarify state changes; avoid blur/zoom on the same object when
it makes the transition feel unstable.
## Scene 6: Architecture
The architecture scene should feel like a navigable technical map. The current
figure is correct but visually too small and cramped.
Required behavior:
- The figure owns most of the scene height.
- Horizontal flow figures can overflow horizontally inside the figure frame
rather than shrinking until unreadable.
- Breadcrumbs stay visible and compact.
- Active/current node is visibly dominant without making inactive nodes vanish.
- Edge labels remain readable at `1280x720`.
- `1024x768` keeps the figure usable through horizontal scroll, not through
excessive text shrinking.
Implementation direction:
- Keep `InteractiveFigure` reusable.
- Add a presentation-scale variant, for example `size="stage"` or refine
existing `size="wide"`.
- Add explicit tests for the size attribute and scrollable canvas class/shape.
- Avoid changing figure catalog facts unless a label is factually wrong.
## Scene 7: Authoring
The authoring scene should explain the product UX loop, not display generic step
cards.
Required behavior:
- Show a single loop: discover capability -> author draft -> validate/diagnose
-> repair -> compile/save.
- The active beat emphasizes one loop stage.
- The visual implies agents/humans use public surfaces (`wf schema`, `wf draft`,
diagnostics), without putting too much command text on the slide.
- The scene remains readable at `720p`.
Implementation direction:
- Extract an `AuthoringLoopScene` or focused helper from `SceneBody.tsx` if the
inline scene grows.
- Use existing storyboard beat IDs: `discover`, `author`, `diagnose`, `repair`.
- If a fifth compile/save stage is shown, it can be present as a terminal stage
but does not need its own beat.
## Scene 10: Interrupt And Evidence
The interrupt scene should make typed human approval feel like the main point.
The graph should provide context, not compete with the contract.
Required behavior:
- The approval beat shows the interrupt contract as the hero element.
- The workflow graph remains visible enough to show where the interrupt sits.
- The receipt/evidence affordance is visible but secondary.
- The `submitted / cancelled` outcome language remains canonical.
- The trace beat can emphasize evidence after resume, but should not make the
approval contract look like a random side card.
Implementation direction:
- Add beat-specific layout states in `DemoWorkflowScene` via small named helpers
instead of more anonymous booleans.
- Consider a `demo-workflow-stage--approval` or `data-layout="approval"` state.
- Keep `OperationBlock`, `WorkflowGraphStage`, and `InterruptContractPreview`
as existing components; restyle/compose rather than rewrite.
## Discussion Panel Speaker Hints
`speakerHint` is useful for rehearsal but should not read as audience content.
For now, keep it inside the modal but visually demote it:
- Use a small presenter-note treatment.
- Label it as presenter note, not primary content.
- Keep it after the answer body.
- Make it easy to hide later if a presenter mode split lands.
## Motion
Use restrained motion only:
- 150-250ms transitions.
- Transform/opacity are acceptable.
- Do not combine blur and pan/zoom on the same object for core slide movement.
- Respect existing `motionDisabled` and `prefers-reduced-motion`.
## Acceptance Criteria
- Focused tests for Scene 6, Scene 7, Scene 10, and discussion speaker hint
treatment pass.
- `pnpm --dir web --filter @lda/console typecheck` passes.
- `pnpm --dir web --filter @lda/console build` succeeds.
- Screenshot smoke verifies:
- `#scene/architecture/client`
- `#scene/architecture/runtime/focus/runtime-providers`
- `#scene/authoring/discover`
- `#scene/interrupt-evidence/approval`
at `1280x720`.
- A second smoke at `1024x768` verifies Scene 6 does not overflow the viewport
and the figure remains horizontally navigable.