docs: plan presentation visual scale pass
This commit is contained in:
@@ -306,11 +306,19 @@ separate activity after these surfaces are stable.
|
||||
7. **Visual scale and color pass:** remove unwanted blue from Scenes 2 and 14,
|
||||
shorten Scene 2's two-column composition, enlarge the focal diagrams in
|
||||
Scenes 7, 9, 13, and 14, separate Scene 7 Validate from Repair visuals, and
|
||||
improve Scene 1 title-box padding and contrast.
|
||||
improve Scene 1 title-box padding and contrast. Design:
|
||||
[`presentation visual scale and color pass`](superpowers/specs/2026-07-12-presentation-visual-scale-color-pass-design.md).
|
||||
Implementation:
|
||||
[`presentation visual scale and color pass plan`](superpowers/plans/2026-07-12-presentation-visual-scale-color-pass.md).
|
||||
8. **Rehearsal gate:** run all 14 scenes at 16:9 and 4:3, verify the Scene 8 →
|
||||
Scene 11 → Scene 12 path in live and replay modes, then review the story
|
||||
flow, coverage, and ordering separately.
|
||||
|
||||
9. **Deferred: factual input file browser:** replace the Scene 10 input
|
||||
manifest-only view with a read-only browser backed by canonical prepared or
|
||||
live run facts. Distinguish declared, selected, read, and produced files;
|
||||
do not imply file reads without evidence.
|
||||
|
||||
Presentation wishlist / defense readiness:
|
||||
|
||||
- Completed: visual pass for Scenes 6, 7, and 10 fixed architecture figure
|
||||
|
||||
@@ -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,221 @@
|
||||
# Presentation Visual Scale And Color Pass Plan
|
||||
|
||||
> **Execution note:** Work from the repository root. The implementation lives
|
||||
> under `web/`; do not stop or restart the user's running `pnpm dev` servers.
|
||||
|
||||
## Goal
|
||||
|
||||
Implement the current visual scale and color design for the 14-scene
|
||||
presentation without changing behavior, facts, transport, or live/replay
|
||||
semantics.
|
||||
|
||||
## Required Reading
|
||||
|
||||
- `docs/AGENTS.md`
|
||||
- `docs/superpowers/specs/2026-07-12-presentation-visual-scale-color-pass-design.md`
|
||||
- `docs/current_roadmap.md`
|
||||
- `web/README.md`
|
||||
- `web/apps/console/src/presentation/storyboard.ts`
|
||||
- `web/apps/console/src/presentation/SceneBody.tsx`
|
||||
- `web/apps/console/src/presentation/presentation.css`
|
||||
|
||||
Before editing, inspect the current DOM and screenshots for these routes:
|
||||
|
||||
- `#scene/thesis/title`
|
||||
- `#scene/problem/direct-actions`
|
||||
- `#scene/authoring/discover`
|
||||
- `#scene/authoring/diagnose`
|
||||
- `#scene/authoring/repair`
|
||||
- `#scene/prepared-lifecycle/discover`
|
||||
- `#scene/evaluation/cohort`
|
||||
- `#scene/conclusion/limits`
|
||||
|
||||
Use the existing Playwright tooling or browser skill to capture screenshots at
|
||||
`1280x720` and `1024x768`. Do not infer visual problems from CSS alone.
|
||||
|
||||
## Task 1: Lock The Visual Contracts
|
||||
|
||||
**Ownership:** presentation tests and scene-level data contracts.
|
||||
|
||||
Files likely involved:
|
||||
|
||||
- `web/apps/console/src/presentation/SceneBody.test.tsx`
|
||||
- `web/apps/console/src/presentation/opening/*.test.tsx`
|
||||
- `web/apps/console/src/presentation/presentation-css.test.ts`
|
||||
- scene-specific tests discovered during inspection
|
||||
|
||||
Steps:
|
||||
|
||||
- [ ] Add focused failing assertions for the title, problem, authoring,
|
||||
lifecycle, evaluation, and conclusion surfaces.
|
||||
- [ ] Assert semantic markers for the dominant visual and active beat rather
|
||||
than fragile CSS pixel values.
|
||||
- [ ] Add regression assertions that these editorial scenes do not gain demo
|
||||
footer controls, live target badges, or unexpected chat chrome.
|
||||
- [ ] Add CSS contract checks only for durable selectors/tokens that must not
|
||||
regress, such as the neutral editorial surface and scene-specific layout
|
||||
markers.
|
||||
- [ ] Run the focused tests and confirm the new assertions fail for the
|
||||
intended reasons.
|
||||
|
||||
Do not encode exact color strings or arbitrary pixel coordinates in tests.
|
||||
|
||||
## Task 2: Recompose Scene 1 And Scene 2
|
||||
|
||||
**Ownership:** opening scene components and their presentation CSS.
|
||||
|
||||
Likely files:
|
||||
|
||||
- `web/apps/console/src/presentation/opening/OpeningThesisScene.tsx`
|
||||
- `web/apps/console/src/presentation/opening/ProblemLoopScene.tsx`
|
||||
- `web/apps/console/src/presentation/presentation.css`
|
||||
- corresponding tests
|
||||
|
||||
Steps:
|
||||
|
||||
- [ ] Make the Scene 1 title beat title-first: one primary title treatment,
|
||||
more internal padding, stronger text contrast, and no duplicate framing.
|
||||
- [ ] Preserve the later Scene 1 substrate/decomposition content without
|
||||
forcing it into the title beat's dimensions.
|
||||
- [ ] Keep Scene 2's transcript in normal chat reading order: user request,
|
||||
agent/tool activity, observation, and answer.
|
||||
- [ ] Shorten the two Scene 2 columns so the right automation explanation does
|
||||
not become a tall dashboard card.
|
||||
- [ ] Remove decorative blue from the editorial Scene 2 surface. Keep only
|
||||
state or focus colors that communicate something specific.
|
||||
- [ ] Verify both Scene 2 beats and the narrow canvas before moving on.
|
||||
|
||||
If the opening components need shared layout, extract a small semantic wrapper;
|
||||
do not create another generic card primitive.
|
||||
|
||||
## Task 3: Enlarge And Differentiate Scene 7
|
||||
|
||||
**Ownership:** authoring scene visual projection and CSS.
|
||||
|
||||
Likely files:
|
||||
|
||||
- `web/apps/console/src/presentation/SceneBody.tsx`
|
||||
- `web/apps/console/src/presentation/authoring/*`
|
||||
- `web/apps/console/src/presentation/presentation.css`
|
||||
- authoring scene tests
|
||||
|
||||
Steps:
|
||||
|
||||
- [ ] Identify the existing authoring loop and its active beat mapping before
|
||||
changing markup.
|
||||
- [ ] Give the active phase a larger, readable visual while keeping the full
|
||||
loop as a compact orientation rail.
|
||||
- [ ] Make `validate` show a diagnostic/contract-checking visual.
|
||||
- [ ] Make `repair` show a correction/revision visual that is structurally
|
||||
distinct from `validate`.
|
||||
- [ ] Preserve factual command labels and existing icons; do not add invented
|
||||
tool output.
|
||||
- [ ] Add tests proving the active phase and the Validate/Repair visual
|
||||
distinction.
|
||||
|
||||
Avoid adding five equally sized cards. The point is a dominant phase plus a
|
||||
small map of the surrounding loop.
|
||||
|
||||
## Task 4: Enlarge Scene 9 Without Crowding It
|
||||
|
||||
**Ownership:** prepared lifecycle scene composition and CSS.
|
||||
|
||||
Likely files:
|
||||
|
||||
- `web/apps/console/src/presentation/authoring/PreparedAuthoringLifecycleScene.tsx`
|
||||
- `web/apps/console/src/presentation/authoring/*`
|
||||
- `web/apps/console/src/presentation/presentation.css`
|
||||
- lifecycle scene tests
|
||||
|
||||
Steps:
|
||||
|
||||
- [ ] Identify which surface is primary for each lifecycle beat: discovery,
|
||||
draft, validate, artifact, and deployment.
|
||||
- [ ] Give the lifecycle visual most of the available stage area.
|
||||
- [ ] Keep the prepared assistant as supporting context, not a second equal
|
||||
hero surface.
|
||||
- [ ] Preserve the current footer rail ownership and avoid adding another run
|
||||
or live-status control.
|
||||
- [ ] Add layout/beat tests that verify the primary surface remains present and
|
||||
the scene does not regress to the old crowded composition.
|
||||
|
||||
Do not fold Scene 9 into the real live execution slice. This task is visual
|
||||
composition only.
|
||||
|
||||
## Task 5: Enlarge Scenes 13 And 14
|
||||
|
||||
**Ownership:** evaluation and conclusion scene components/CSS.
|
||||
|
||||
Likely files:
|
||||
|
||||
- `web/apps/console/src/presentation/SceneBody.tsx`
|
||||
- evaluation/conclusion scene components discovered during inspection
|
||||
- `web/apps/console/src/presentation/presentation.css`
|
||||
- corresponding tests
|
||||
|
||||
Steps:
|
||||
|
||||
- [ ] Choose one dominant evaluation visual per beat: cohort, validity, and
|
||||
findings should not be three near-identical text panels.
|
||||
- [ ] Increase the scale of the relevant diagram/stat treatment while keeping
|
||||
methodology limits legible as support.
|
||||
- [ ] Give the conclusion one clear contribution/limits visual rather than a
|
||||
dense summary wall.
|
||||
- [ ] Remove unnecessary blue from Scene 14 while preserving readable contrast.
|
||||
- [ ] Keep the Questions beat usable and free of accidental demo chrome.
|
||||
- [ ] Add tests for dominant-beat markers and conclusion surface behavior.
|
||||
|
||||
Do not invent new evaluation numbers or claims. All visual labels must come
|
||||
from the storyboard or existing factual projections.
|
||||
|
||||
## Task 6: Responsive And Visual Verification
|
||||
|
||||
**Ownership:** route-level tests, screenshots, docs, and final review.
|
||||
|
||||
Steps:
|
||||
|
||||
- [ ] Run focused presentation tests after each task.
|
||||
- [ ] Run the full web test suite:
|
||||
`pnpm --dir web test`.
|
||||
- [ ] Run typecheck:
|
||||
`pnpm --dir web typecheck`.
|
||||
- [ ] Run build:
|
||||
`pnpm --dir web build`.
|
||||
- [ ] Capture screenshots for the representative routes at `1280x720` and
|
||||
`1024x768`.
|
||||
- [ ] Confirm no accidental outer scroll, clipped title text, unreadable
|
||||
diagram labels, or duplicate chrome.
|
||||
- [ ] Re-run `git diff --check`.
|
||||
- [ ] Run the two-axis review before declaring completion.
|
||||
- [ ] Update `docs/current_roadmap.md` with the completed plan link.
|
||||
- [ ] Move this plan to
|
||||
`docs/historical/superpowers/plans/2026-07-12-presentation-visual-scale-color-pass.md`
|
||||
only after implementation and review are complete.
|
||||
|
||||
## Troubleshooting Guidance
|
||||
|
||||
- If a diagram looks small, inspect the rendered bounding boxes and grid
|
||||
allocation before changing font sizes.
|
||||
- If React Flow edges drift, do not reintroduce CSS transforms. Preserve the
|
||||
adaptive canvas geometry and use the existing React Flow viewport/layout
|
||||
path.
|
||||
- If a screenshot has a blue panel on a white scene, trace the selector and
|
||||
token source before adding an override. Prefer fixing the editorial surface
|
||||
contract rather than adding another specificity layer.
|
||||
- If a beat appears unchanged, verify the beat ID reaches the component and
|
||||
that the active-state marker is attached to the visual that actually changes.
|
||||
- If 4:3 clips content, reduce surrounding chrome or allow an inner figure
|
||||
scroll region; do not shrink all text until it becomes unreadable.
|
||||
- If the live target badge appears outside Scenes 8-12, stop and fix the demo
|
||||
chrome projection rather than hiding it with a broad CSS rule.
|
||||
|
||||
## Deferred File Browser Slice
|
||||
|
||||
Do not implement the real file browser in this plan. Track it separately as a
|
||||
follow-up for `#scene/run-from-deployment/input`:
|
||||
|
||||
- read-only file tree/list from canonical prepared input facts;
|
||||
- explicit distinction between declared, selected, read, and produced files;
|
||||
- optional content preview only when backed by live/replay evidence;
|
||||
- clear unavailable/empty states;
|
||||
- tests for replay and live projections.
|
||||
@@ -0,0 +1,174 @@
|
||||
# Presentation Visual Scale And Color Pass Design
|
||||
|
||||
## Purpose
|
||||
|
||||
This slice improves the remaining weak presentation scenes without changing the
|
||||
storyboard, RPC transport, live/replay behavior, chat framework, or workflow
|
||||
facts. The target is a readable defense deck at both the adaptive 16:9 and 4:3
|
||||
canvas shapes already supported by `/present`.
|
||||
|
||||
The presentation should feel like an intentional product explanation: one
|
||||
dominant visual per beat, enough space to understand it, and restrained color
|
||||
used to communicate state rather than decorate every surface.
|
||||
|
||||
## Current Problem
|
||||
|
||||
The current deck is functional but uneven. Some scenes still use too much
|
||||
framing, too much blue on editorial surfaces, or too many small elements at
|
||||
once. The main targets are:
|
||||
|
||||
- Scene 1 has weak title hierarchy, excess framing, and insufficient title-box
|
||||
padding/contrast.
|
||||
- Scene 2 is taller and more card-like than a normal conversation/problem
|
||||
explanation should be; its editorial surface also carries unnecessary blue.
|
||||
- Scene 7's authoring visuals are too small and Validate/Repair are not
|
||||
visually distinct enough across beats.
|
||||
- Scene 9's lifecycle visuals lose scale when supporting chat and proof content
|
||||
compete with them.
|
||||
- Scenes 13 and 14 rely on small diagrams or text blocks where one larger focal
|
||||
visual would carry the argument better.
|
||||
|
||||
## Scope
|
||||
|
||||
### In scope
|
||||
|
||||
- Scene 1 title hierarchy, padding, contrast, and removal of duplicate framing.
|
||||
- Scene 2 composition height, visual balance, and non-demo color reduction.
|
||||
- Scene 7 authoring visual scale and Validate/Repair distinction.
|
||||
- Scene 9 prepared-lifecycle focal visual scale and supporting-surface balance.
|
||||
- Scene 13 evaluation visual scale and information hierarchy.
|
||||
- Scene 14 conclusion visual scale and removal of unnecessary blue.
|
||||
- Screenshot smoke checks at `1280x720` and `1024x768`.
|
||||
- Tests for stable structure, beat emphasis, and presentation-surface contracts.
|
||||
|
||||
### Out of scope
|
||||
|
||||
- Changing scene order, storyboard claims, or speaker script.
|
||||
- Adding live workflow operations or changing replay truth.
|
||||
- Replacing assistant-ui/shadcn chat components.
|
||||
- Adding a real file browser to the Scene 10 input beat.
|
||||
- Introducing a theme toggle or a third presentation theme.
|
||||
- Rewriting the adaptive canvas or reintroducing `transform: scale(...)`.
|
||||
- Reworking Scenes 3-6, 8, 10-12 unless a targeted regression is required.
|
||||
|
||||
## Design Rules
|
||||
|
||||
1. **One focal artifact per beat.** Supporting text, chat, receipts, and
|
||||
discussion affordances must not compete with the beat's main visual.
|
||||
2. **Editorial surfaces are neutral.** Paper/editorial scenes may use cyan for
|
||||
a selected state or link, but should not be blue panels on white backgrounds.
|
||||
3. **Demo surfaces keep operational color.** Scenes 8-12 may retain their
|
||||
darker operational treatment and state colors because they are the product
|
||||
demonstration. This is not a reason to recolor the rest of the deck.
|
||||
4. **Scale before decoration.** Increase usable diagram area and reduce
|
||||
surrounding chrome before adding new labels, badges, or cards.
|
||||
5. **Beat changes must be legible.** A changed beat should change emphasis,
|
||||
content, or position; do not rely on a tiny border or a nearly invisible
|
||||
opacity change.
|
||||
6. **Use existing tokens and primitives.** Prefer existing editorial tokens,
|
||||
scene components, icons, figure layouts, and chat surfaces. Do not add a new
|
||||
generic card system for this pass.
|
||||
7. **Protect the canvas.** Validate both supported aspect-ratio extremes. A
|
||||
diagram may scroll inside its own frame, but the presentation page must not
|
||||
acquire accidental outer scroll.
|
||||
|
||||
## Scene Targets
|
||||
|
||||
### Scene 1: Thesis
|
||||
|
||||
The title beat should read as a title page, not as a generic content card.
|
||||
Keep the title, subtitle, and planner/tool/platform decomposition available
|
||||
across beats, but establish a clear title-first hierarchy.
|
||||
|
||||
Acceptance points:
|
||||
|
||||
- One primary title treatment is visible; duplicate boxes do not frame the same
|
||||
content.
|
||||
- Title padding is visibly generous at `1280x720`.
|
||||
- Text contrast remains readable on the editorial surface.
|
||||
- The decomposition can enter on later beats without shrinking the title beat.
|
||||
|
||||
### Scene 2: Problem
|
||||
|
||||
The scene should read left-to-right as a conversation/problem explanation, not
|
||||
as two tall dashboard cards. Keep the transcript and reusable-automation
|
||||
contrast, but make both blocks shorter and better balanced.
|
||||
|
||||
Acceptance points:
|
||||
|
||||
- The transcript reads as a chat/tool loop in normal reading order.
|
||||
- The durable automation side is shorter and does not dominate by height.
|
||||
- Blue is removed from the editorial background, borders, and decorative fills;
|
||||
only meaningful emphasis remains.
|
||||
- The two sides remain understandable at `1024x768`.
|
||||
|
||||
### Scene 7: Author, Validate, Repair
|
||||
|
||||
The authoring loop is the visual argument. The active phase must become large
|
||||
enough to explain while the rest of the loop remains a readable map.
|
||||
|
||||
Acceptance points:
|
||||
|
||||
- The loop has a clear primary visual and a compact phase rail.
|
||||
- Validate shows diagnostics or contract checking as its own visual state.
|
||||
- Repair shows a correction/revision state, not the same Validate card with a
|
||||
different label.
|
||||
- Existing icons and factual commands remain available without turning the
|
||||
scene into a wall of CLI text.
|
||||
|
||||
### Scene 9: Prepared Workflow Lifecycle
|
||||
|
||||
The lifecycle scene should explain Draft, Artifact, Deployment, and Run with a
|
||||
large lifecycle visual. The authoring assistant remains a supporting surface;
|
||||
it must not compress the lifecycle into unreadable cards.
|
||||
|
||||
Acceptance points:
|
||||
|
||||
- The lifecycle rail or active phase occupies the dominant area.
|
||||
- The active phase is readable at both canvas shapes.
|
||||
- Chat and proof support remain present only where the beat calls for them.
|
||||
- The scene does not duplicate the demo footer rail or live target badge.
|
||||
|
||||
### Scenes 13-14: Evaluation And Conclusion
|
||||
|
||||
These scenes should close with evidence and a clear contribution, not a dense
|
||||
summary wall.
|
||||
|
||||
Acceptance points:
|
||||
|
||||
- Scene 13 gives the evaluation numbers one dominant visual treatment, with
|
||||
methodology limits as supporting content.
|
||||
- Scene 14 gives the contribution/limits relationship one dominant visual
|
||||
treatment and removes unnecessary blue from the editorial surface.
|
||||
- Icons or existing visual primitives may carry categories, but must not replace
|
||||
the factual labels needed for the defense.
|
||||
- The final beat remains readable without opening a discussion panel.
|
||||
|
||||
## Verification Contract
|
||||
|
||||
- Existing presentation tests remain green.
|
||||
- Add or update focused tests for Scene 1, Scene 2, Scene 7, Scene 9, Scene 13,
|
||||
and Scene 14 structure and beat emphasis.
|
||||
- Verify no presentation route gets accidental outer scroll at `1280x720` and
|
||||
`1024x768`.
|
||||
- Capture representative screenshots for the title, problem, authoring,
|
||||
lifecycle, evaluation, and conclusion scenes.
|
||||
- Run `pnpm --dir web test`, `pnpm --dir web typecheck`, and
|
||||
`pnpm --dir web build` before completion.
|
||||
|
||||
## Deferred Follow-up: Real Input File Browser
|
||||
|
||||
The current Scene 10 input beat intentionally says `included in prepared run`.
|
||||
That wording is factual, but it is not a file browser. A later slice may add a
|
||||
real, read-only file browser for `#scene/run-from-deployment/input` backed by
|
||||
the prepared recording and live run facts.
|
||||
|
||||
That follow-up must define what is actually known before showing it:
|
||||
|
||||
- canonical file paths and file count;
|
||||
- whether a file was merely declared, selected, read, or produced;
|
||||
- whether content preview is available from the live or replay source;
|
||||
- how missing or unavailable previews are represented.
|
||||
|
||||
Until those facts exist, do not imply that the presentation selected or read
|
||||
files merely because they appear in the prepared input manifest.
|
||||
Reference in New Issue
Block a user