docs: plan editorial presentation redesign

This commit is contained in:
lda
2026-07-05 16:42:44 +07:00 Verified
parent a8402a4d1d
commit 7749a1820d
6 changed files with 1778 additions and 46 deletions
@@ -0,0 +1,34 @@
# Adopt Tailwind Additively For Source-Owned UI
Status: accepted
The web workspace will adopt Tailwind and shadcn-compatible conventions for
new source-owned chat and presentation primitives because established AI-chat
components provide better interaction and accessibility than maintaining a
custom message surface. Existing console CSS will not be rewritten wholesale;
old styles migrate only when their components are replaced.
## Considered Options
**Keep all styling hand-written.**
This avoids another styling dependency, but repeats low-level work for chat,
forms, focus states, and responsive composition. The existing presentation
already demonstrates the cost of one-off component styling.
**Rewrite the whole console with Tailwind and a component suite.**
This creates one styling mechanism eventually, but turns presentation work into
a risky console migration. It also lets framework defaults replace deliberate
product decisions before those decisions are ready.
**Adopt a complete AI application shell.**
This supplies familiar chat interactions quickly, but also imports model,
account, attachment, and transport assumptions that do not match the existing
`AgentDriver` and workflow RPC boundaries.
## Consequences
Tailwind enters through the official Vite integration without Preflight, so it
does not reset existing `/console` CSS. New source-owned primitives may follow
shadcn-compatible structure and copy narrowly selected open-source components,
while existing surfaces migrate only when replaced. The project retains
ownership of component code, accessibility, tokens, and domain behavior.
@@ -0,0 +1,33 @@
# Use An Editorial Canvas Around Shared Product Surfaces
Status: accepted
The defense presentation will keep one warm editorial identity and temporarily
expand real shared console components within a persistent presentation frame.
It will not switch the entire deck into a dark product theme or maintain
presentation-only copies of product UI, because those approaches break
narrative continuity and make the demo less credible.
## Considered Options
**Switch between light slides and a dark application stage.**
This makes product moments visually distinct, but repeated whole-stage theme
changes feel like separate applications and make transitions harder to follow.
**Build presentation-only product replicas.**
This gives complete control over appearance, but creates evidence that is
visually persuasive while no longer being the actual product surface. Fixes and
interaction behavior would also diverge between `/console` and `/present`.
**Keep the current dashboard shell as the presentation.**
This preserves working behavior, but persistent rails, controls, labels, and
card grids compete with the argument and consume the limited `1280x720` frame.
## Consequences
The audience view uses one fixed, scalable `1280x720` Editorial Canvas. Shared
console graphs, receipts, evidence, and approval forms may expand within it;
presentation code owns framing and choreography rather than alternate product
implementations. Locally dark terminal, code, or evidence insets remain valid
when they communicate content type, but the main sequence does not switch its
global theme.
+12 -5
View File
@@ -92,14 +92,21 @@ Implementation order:
9 and 10. The canonical replay now drives an interpreted operation surface, 9 and 10. The canonical replay now drives an interpreted operation surface,
persistent execution graph, typed interrupt contract, and raw evidence persistent execution graph, typed interrupt contract, and raw evidence
drawer. Design: drawer. Design:
[`workflow takes the stage`](superpowers/specs/2026-07-05-workflow-takes-stage-visual-design.md). [`workflow takes the stage`](historical/superpowers/specs/2026-07-05-workflow-takes-stage-visual-design.md).
Implementation: Implementation:
[`workflow takes the stage plan`](historical/superpowers/plans/2026-07-05-workflow-takes-stage-visual.md). [`workflow takes the stage plan`](historical/superpowers/plans/2026-07-05-workflow-takes-stage-visual.md).
11. Next: adopt source-owned AI Elements chat primitives against existing 11. Next: replace whole-stage theme switching with one scalable Editorial
Canvas and prove the reusable recursive Interactive Figure through Scene 6.
Design:
[`defense presentation storyboard`](superpowers/specs/2026-07-04-defense-presentation-storyboard-design.md).
Implementation:
[`editorial canvas and Interactive Figure plan`](superpowers/plans/2026-07-05-editorial-canvas-interactive-figure.md).
12. Then: adopt source-owned AI Elements chat primitives against existing
`AgentMessagePart` / `AgentDriver` contracts. `AgentMessagePart` / `AgentDriver` contracts.
12. Future: implement final scene visuals, motion choreography, evidence assets, 13. Future: implement Schema Form Surface and synchronized Approval Session.
and rehearsal timing. 14. Future: implement Guided Run Beat Gates, presenter companion, Scene 10
13. Add a static slide/appendix shell only after presentation mode is clear. product graph, final scene visuals, evidence assets, and rehearsal timing.
15. Add a static slide/appendix shell only after presentation mode is clear.
Astro remains an option, not the default next surface. Astro remains an option, not the default next surface.
Boundaries: this is not a production admin panel, generic visual workflow Boundaries: this is not a production admin panel, generic visual workflow
File diff suppressed because it is too large Load Diff
@@ -64,6 +64,19 @@ transition language, but it may not introduce a new factual claim.
## Stable Stage Geography ## Stable Stage Geography
The presentation uses three canonical layers:
- **Editorial Canvas:** the persistent warm, light visual identity used for the
spoken argument, figures, and transitions.
- **Product Surface:** a real application or evidence surface that expands from
an inline trigger when the story requires product proof.
- **Presentation Frame:** the thin remainder of the Editorial Canvas that stays
visible around an expanded Product Surface.
The presentation is therefore an editorial thesis deck that temporarily
transforms into the product. It is not a dashboard or chat application used as
a decorative container for every scene.
The stage has three stable regions: The stage has three stable regions:
```text ```text
@@ -74,7 +87,10 @@ The stage has three stable regions:
``` ```
The regions may expand, collapse, or overlap, but they do not swap meanings. The regions may expand, collapse, or overlap, but they do not swap meanings.
The audience should learn the geography once. The audience should learn the geography once. A Product Surface may occupy
roughly 80 percent of the stage, but it does not erase the Presentation Frame;
the audience must still read it as evidence inside the argument rather than an
accidental application switch.
- **Left:** agent conversation and operation intent. - **Left:** agent conversation and operation intent.
- **Center:** the primary explanation, workflow graph, output, or evaluation - **Center:** the primary explanation, workflow graph, output, or evaluation
@@ -91,48 +107,249 @@ presenter control so the interaction remains usable without a precise mouse.
Vertical stacking is forbidden on the main path. At `1280x720`, the presenter Vertical stacking is forbidden on the main path. At `1280x720`, the presenter
must not scroll to discover the graph, approval control, output, or next action. must not scroll to discover the graph, approval control, output, or next action.
## Independent Presentation State The audience route renders a deterministic `1280x720` canvas and scales it
proportionally to the available viewport, adding letterboxing when aspect
ratios differ. Scenes do not reflow like a responsive website; presenter and
audience views must preserve the same composition and Focus Path.
The stage and chat are independently themed and positioned: ## Unified Presentation Identity
The Editorial Canvas keeps one warm, light identity from introduction through
conclusion. Product surfaces may use their native light or dark appearance,
but entering a product surface does not switch the theme of the entire deck.
Chat remains independently positioned because it is a product element, not the
presentation's visual identity:
See [ADR 0005](../../adr/0005-editorial-canvas-around-shared-product-surfaces.md).
Major claims use an editorial display serif, provisionally Newsreader. Source
Sans 3 remains the explanatory and interface face, while IBM Plex Mono is
reserved for commands, identifiers, schemas, and evidence. Condensed all-caps
type is an accent rather than the default title treatment.
```ts ```ts
type PresentationAppearance = { type PresentationAppearance = {
readonly stageTheme: "paper" | "night";
readonly chatTheme: "light" | "dark";
readonly chatMode: "hidden" | "full" | "rail" | "dock"; readonly chatMode: "hidden" | "full" | "rail" | "dock";
readonly productExpansion: "inline" | "expanded";
}; };
``` ```
The themes are not required to match. A professional light chat may enter over A rehearsal toolbar may override chat position, product expansion, motion,
a dark cinematic stage, then collapse into a narrow rail while the graph takes playback mode, and scene selection. It is hidden during the defense.
focus.
A rehearsal toolbar may override scene defaults for stage theme, chat theme, Remote or phone control is not required for the redesign. Presentation actions
motion, playback mode, and scene selection. It is hidden during the defense. remain input-agnostic so a later remote can dispatch them, but keyboard and
pointer operation are the supported defense controls.
Stage themes change by act, not by slide or individual reveal: ## Defense Chrome
- framing and positioning use the paper stage; The audience-facing route persistently shows only a quiet scene number or
- architecture and product demonstration use the night stage; progress marker. The full scene rail, replay status, discussion index,
- evaluation and conclusion return to the paper stage. presenter controls, and prepared-agent trigger are hidden until explicitly
summoned.
The demo chat may retain its own light or dark theme across an act transition. On first visit, a dismissible presenter onboarding overlay explains navigation
and rehearsal controls. Afterwards, `?` opens a presenter-only command and
shortcut palette. Presenter controls are therefore discoverable without
becoming persistent audience chrome; the existing secret `P` shortcut is not a
sufficient interface.
A separate `/presenter` companion route shows the current and next beat,
speaker notes, timer, Discussion Library, and presentation controls without
exposing them on the projected `/present` route. A temporary notes overlay on
`/present` remains the single-screen fallback.
Audience and presenter routes communicate through a typed **Presentation
Transport** that carries reducer actions. The first adapter uses
`BroadcastChannel` for same-browser windows. A future authenticated WebSocket
relay may connect different machines or networks using the same event contract;
that relay does not execute workflows or own presentation semantics.
The presenter palette includes a searchable **Discussion Library** instead of
an audience-facing discussion button. Opening a prepared question stores the
exact scene, beat, and Focus Path. Closing the discussion restores that return
location.
The prepared workflow starts from the chat surface, provisionally through a
button or slash command, rather than through a detached corner action. This
entry point is part of the product story and may later be replaced by a fuller
chat framework without changing the presentation contract.
A **Guided Run** is the prepared agent sequence used during the defense. The
presentation timeline owns its pacing. After emitting the content permitted by
the current beat, the driver waits at a **Beat Gate** until the presenter
advances. Advancing releases at most the next audience-relevant operation;
internal or repetitive actions remain hidden.
The chat starts a Guided Run through a visible **Prompt Macro**, provisionally
`/demo report`. Invoking it expands into the full natural-language request, and
the transcript displays that expanded request rather than a raw slash command.
Expandable provenance may identify the originating macro.
The audience sees a quiet execution provenance label, `Prepared replay` or
`Live server`, but no mode controls. Live and replay drivers must produce the
same Guided Run and Beat Gate structure. If live setup fails, replay replaces
it without changing the presentation narrative or interaction sequence.
Only one audience-relevant operation may cross a Beat Gate at a time. If a live
operation is still running, further advance input does not launch another
operation or skip the gate. The beat shows a restrained working state, and a
presenter-only action may replace that operation with its prepared replay.
If a live operation fails, its failed Chat Tool Receipt remains visible. The
presenter may explicitly choose `Continue with prepared replay`; the
continuation changes the provenance label and never rewrites the failed live
evidence.
An audience-relevant operation has two independent projections from the same
canonical event:
- **Chat Tool Receipt:** a subtle collapsed chat row, expandable on demand into
a bounded, scrollable terminal-style detail. A future chat framework should
own its interaction and accessibility.
- **Stage Projection:** a curated operation view rendered only when the current
argument needs that operation as evidence.
The Chat Tool Receipt does not physically morph into the Stage Projection.
Their continuity is semantic and timeline-driven, which avoids coupling chat
layout to presentation choreography.
A pending typed interrupt creates one **Approval Session** with synchronized
chat and Product Surface projections. Chat presents a compact approval card and
selection summary; the Product Surface presents the full schema-backed list or
form. Edits from either projection update the same draft response. Submission
from either resolves the interrupt exactly once, then both projections become
read-only with the same result.
Both projections consume a reusable **Schema Form Surface** rather than
hand-built interrupt fields. It accepts JSON Schema, a draft value, validation
state, read-only state, and custom widget registrations. Typed interrupts are
the first consumer; deployment inputs, run inputs, and future configuration
surfaces may reuse the same boundary. Domain-specific interactions such as
issue selection are custom widgets over the generic form contract.
The Schema Form Surface lives in a small shared web package. Console and
presentation surfaces import that package, while app-specific widgets and
Approval Session orchestration remain in their owning applications.
Chat rendering uses source-owned, established AI-chat primitives rather than
project-specific message and tool-call components. The adopted surface must
cover conversation, message, collapsed tool receipt, bounded terminal detail,
and prompt input. It owns rendering and accessibility only;
`AgentMessagePart`, `AgentDriver`, Guided Run, and Beat Gate semantics remain
project contracts.
Tailwind and shadcn-compatible styling may be introduced additively for these
source-owned primitives and new presentation components. Existing console CSS
is not subject to a wholesale rewrite; it migrates only when a component is
replaced. See [ADR 0004](../../adr/0004-adopt-tailwind-additively-for-source-owned-ui.md).
## Motion Contract ## Motion Contract
Motion explains changing ownership of the stage: Motion uses only three primitives:
- chat enters as a complete application surface; - **Reveal:** a fast opacity transition introduces genuinely new explanatory
- an operation card expands from chat into the center stage; content.
- the workflow graph takes over while chat moves to a rail; - **Expand:** an existing object grows into a Product Surface while preserving
- a selected node expands into a spotlight without navigating away; its identity.
- evidence peeks from the right and opens only when needed; - **Reframe:** existing content moves aside to retain context while another
- chat collapses to a dock after the workflow completes. surface takes focus.
Messages appear as complete blocks with a short fade. There is no slow Unchanged objects do not remount or replay entrance animation between beats.
typewriter simulation. Major transitions should normally complete within one Blur, bounce, generic stagger, and decorative typewriter effects are forbidden.
second and never exceed two seconds. Reduced-motion mode replaces spatial Reduced-motion mode replaces Expand and Reframe with immediate layout changes
movement with immediate visibility changes or short fades. and keeps Reveal brief.
## Interactive Figures
Architecture, authoring, workflow, and evidence diagrams use a shared
**Interactive Figure** model rather than scene-specific card layouts. An
Interactive Figure contains addressable **Figure Nodes** and relationships.
Graph-shaped figures may use the existing React Flow and Dagre dependencies;
linear figures may use lighter SVG or HTML renderers over the same interaction
contract.
A Figure Node may reference a child figure. Activating it pushes the node onto
a single **Focus Path** and reframes the canvas around that child figure.
Ancestors remain available through a compact breadcrumb, and `Escape` pops one
focus level. A child figure may contain further expandable nodes, but only one
Focus Path is active; the interface never stacks nested modals or sidebars.
Normal figures are authored as declarative TypeScript definitions containing
nodes, relationships, semantic types, child-figure references, and canonical
Focus Paths. The shared renderer owns layout, focus, keyboard behavior, and
motion. A custom React renderer is an explicit escape hatch for exceptional
figures rather than the default scene-authoring mechanism.
Factual architecture and evaluation nodes carry evidence pointers in their
definitions. Those pointers remain hidden during the normal path and become
available through focused inspection, Q&A, or the evidence surface.
Motivational nodes may omit evidence pointers.
Main-path Figure Node labels use system concepts such as “Runtime” or “Source
providers.” Focused detail may reveal concrete packages, public operations,
tests, or symbols such as `wf_core` and `wf_api`.
Initial figure layout supports only layered, flow, and explicit-position modes.
Dagre may calculate spacing inside the first two. A new reusable layout mode is
added only after at least two concrete figures require it; the presentation is
not a general diagram-layout engine.
Interactive Figures expose keyboard navigation: `Tab` reaches Figure Nodes,
arrow keys move spatially between related nodes, `Enter` expands the focused
node, and `Escape` pops one Focus Path level. Breadcrumbs remain pointer and
keyboard accessible. The presenter `?` palette lists these controls when figure
focus is active.
While a Figure Node owns focus, arrow keys belong to the figure. `Escape`
returns focus to the presentation stage, after which arrows navigate beats.
`Space` remains a global advance shortcut except while focus is inside chat,
forms, terminal detail, or another text-entry control.
Each beat may declare a canonical Focus Path for deterministic playback.
Presenter interaction may temporarily replace it for explanation or Q&A.
Advancing to another beat applies that beat's canonical Focus Path, preventing
manual exploration from making later scenes nondeterministic.
Canonical deep links encode scene, beat, and optional Focus Path so an
interactive figure state can be reproduced directly. Ephemeral UI state such
as chat scroll, expanded Chat Tool Receipts, and presenter-palette visibility
does not enter the URL.
Editorial figures use restrained semantic color:
- blue identifies planner or client intent;
- green identifies deterministic runtime execution;
- orange identifies human boundaries or intervention.
The warm canvas and black typography remain dominant. Labels, connector styles,
and node shapes must carry the same distinction when color is unavailable.
The renderer exposes a small **Figure Vocabulary** rather than one universal
rounded node: actors, operations, artifacts, runtime systems, human boundaries,
and evidence. Scenes compose those primitives differently so they share
interaction behavior without looking mechanically generated from one template.
Visual personality primarily comes from expressive scale, asymmetry, direct
figure manipulation, memorable scene transformations, and occasional
purpose-built illustration or iconography. Decorative gradients, badges, and
background effects are permitted only when they support a specific scene; they
are not the default source of visual interest.
The workflow graph in the product demonstration is not reconstructed through
the Figure Vocabulary. It embeds the real console graph component, driven by
the canonical workflow and run state, inside an expanded Product Surface.
Editorial annotations may explain it without replacing the product evidence.
Product Surfaces use the console's shared components and design tokens rather
than a presentation-only skin. Improving graph, form, receipt, or evidence
styling therefore improves both `/console` and `/present`; presentation code
controls only framing, scale, and when a surface is shown.
The main defense path uses the console's light product theme to remain coherent
with the warm Editorial Canvas. Dark mode remains available in the console but
is not part of the main defense sequence. Terminal and code insets may remain
dark when that treatment communicates their actual content type.
## Scene Semantics ## Scene Semantics
@@ -144,8 +361,35 @@ Advancing within a scene changes a **beat**. Advancing after the final beat
changes the **scene**. Discussion branches can return to the exact scene and changes the **scene**. Discussion branches can return to the exact scene and
beat from which they were opened. beat from which they were opened.
Each beat definition carries its short visible claim, speaker notes, timing
budget, evidence pointer, visual or figure id, canonical Focus Path, and
optional Beat Gate. Components render that definition; they do not own the
spoken script or duplicate scene-specific content.
At `1280x720`, each beat presents one primary visual, one short claim, and at
most three supporting labels. A command, schema, or evidence view may replace
the primary visual but does not compete beside another primary visual. Speaker
notes carry details that do not fit this composition budget.
## Main Storyboard ## Main Storyboard
The sequence below preserves the current argument and evidence order, but its
exact scene boundaries and beat counts are not frozen. Visual redesign may
merge, split, or re-time scenes when the claim order, evidence coverage,
discussion returns, and overall defense budget remain intact.
Visual review uses a Playwright-generated gallery of selected beats at
`1280x720` plus manual traversal in the browser. Automated checks cover state,
keyboard behavior, accessibility, overflow, and interaction contracts. The
gallery supports human approval and is not initially enforced through brittle
pixel-diff thresholds.
The redesign preserves public navigation, canonical replay evidence, and
useful reducer actions. It removes obsolete internal contracts cleanly,
including whole-stage theme switching, one-off diagram components, persistent
audience chrome, and presentation-only product skins. Unused UI APIs do not
receive compatibility wrappers.
### Scene 1: Thesis ### Scene 1: Thesis
- **Time:** 0:20 - **Time:** 0:20
@@ -155,7 +399,7 @@ beat from which they were opened.
typed system for creating, validating, running, and inspecting the workflows typed system for creating, validating, running, and inspecting the workflows
that an agent proposes. This thesis implements that substrate." that an agent proposes. This thesis implements that substrate."
- **Primary visual:** title and one-sentence thesis. - **Primary visual:** title and one-sentence thesis.
- **Composition:** paper stage; chat hidden; no evidence panel. - **Composition:** warm Editorial Canvas; chat hidden; no evidence panel.
- **Evidence pointer:** thesis Abstract and Introduction. - **Evidence pointer:** thesis Abstract and Introduction.
- **Transition:** the title contracts into a small persistent lda.chat mark. - **Transition:** the title contracts into a small persistent lda.chat mark.
@@ -168,7 +412,7 @@ beat from which they were opened.
deterministic execution, persistence, traceability, and recovery boundaries. deterministic execution, persistence, traceability, and recovery boundaries.
- **Primary visual:** an unstable sequence of direct tool calls contrasted with - **Primary visual:** an unstable sequence of direct tool calls contrasted with
a durable workflow record; the missing responsibilities appear around it. a durable workflow record; the missing responsibilities appear around it.
- **Composition:** paper stage; chat hidden. - **Composition:** warm Editorial Canvas; chat hidden.
- **Evidence pointer:** thesis problem statement, requirements, and research - **Evidence pointer:** thesis problem statement, requirements, and research
question. question.
- **Transition:** the requirements arrange into a landscape of related systems. - **Transition:** the requirements arrange into a landscape of related systems.
@@ -185,7 +429,7 @@ beat from which they were opened.
external-agent operation. external-agent operation.
- **Primary visual:** related approaches progressively occupy distinct positions - **Primary visual:** related approaches progressively occupy distinct positions
around lda.chat; do not reproduce the thesis comparison table. around lda.chat; do not reproduce the thesis comparison table.
- **Composition:** paper stage; each approach enters while the positioning axis - **Composition:** warm Editorial Canvas; each approach enters while the positioning axis
remains stable. remains stable.
- **Evidence pointer:** thesis Positioning and Related Systems chapter. - **Evidence pointer:** thesis Positioning and Related Systems chapter.
- **Transition:** lda.chat's position resolves into the planner/runtime boundary. - **Transition:** lda.chat's position resolves into the planner/runtime boundary.
@@ -199,7 +443,8 @@ beat from which they were opened.
resumes it. resumes it.
- **Primary visual:** a two-sided planner/runtime boundary with explicit - **Primary visual:** a two-sided planner/runtime boundary with explicit
operations crossing it. operations crossing it.
- **Composition:** night stage; chat hidden. - **Composition:** warm Editorial Canvas; chat hidden; the planner/runtime
boundary carries its own semantic color and shape treatment.
- **Evidence pointer:** thesis architecture overview and workflow API boundary. - **Evidence pointer:** thesis architecture overview and workflow API boundary.
- **Transition:** the runtime side expands into the lifecycle. - **Transition:** the runtime side expands into the lifecycle.
@@ -211,8 +456,8 @@ beat from which they were opened.
records with different mutability and responsibility. records with different mutability and responsibility.
- **Primary visual:** lifecycle records, including both draft-save and direct - **Primary visual:** lifecycle records, including both draft-save and direct
plan-import paths into an immutable artifact. plan-import paths into an immutable artifact.
- **Composition:** night stage; center focus; evidence panel may show one compact - **Composition:** warm Editorial Canvas; center focus; evidence panel may show
record at a time. one compact record at a time.
- **Evidence pointer:** thesis lifecycle chapter and lifecycle explorer. - **Evidence pointer:** thesis lifecycle chapter and lifecycle explorer.
- **Transition:** selecting a deployment zooms into the runtime architecture. - **Transition:** selecting a deployment zooms into the runtime architecture.
@@ -224,8 +469,8 @@ beat from which they were opened.
providers and stores, then into the graph runner and one `NodeUse` execution. providers and stores, then into the graph runner and one `NodeUse` execution.
- **Primary visual:** semantic zoom through four levels rather than four - **Primary visual:** semantic zoom through four levels rather than four
unrelated diagrams. unrelated diagrams.
- **Composition:** night stage; chat hidden; right evidence panel peeks for - **Composition:** warm Editorial Canvas; chat hidden; right evidence panel
concrete package or operation names. peeks for concrete package or operation names.
- **Evidence pointer:** thesis architecture diagrams, `docs/project_map.md`, and - **Evidence pointer:** thesis architecture diagrams, `docs/project_map.md`, and
`docs/source_architecture.md`. `docs/source_architecture.md`.
- **Transition:** the semantic zoom backs out into the public authoring surface. - **Transition:** the semantic zoom backs out into the public authoring surface.
@@ -239,8 +484,8 @@ beat from which they were opened.
loop. loop.
- **Primary visual:** an operation sequence with one structured diagnostic and - **Primary visual:** an operation sequence with one structured diagnostic and
its repair action. its repair action.
- **Composition:** night stage; chat hidden; operation block in center; evidence - **Composition:** warm Editorial Canvas; chat hidden; a locally dark operation
peeks right. or terminal block may occupy center while evidence peeks right.
- **Evidence pointer:** CLI documentation, draft authoring API, and challenge - **Evidence pointer:** CLI documentation, draft authoring API, and challenge
UX findings. UX findings.
- **Transition:** the operation block becomes the first card in the agent UI. - **Transition:** the operation block becomes the first card in the agent UI.
@@ -252,7 +497,8 @@ beat from which they were opened.
- **Spoken intent:** "The submitted contribution is the substrate. This prepared - **Spoken intent:** "The submitted contribution is the substrate. This prepared
agent interaction shows how a thin external interface can operate it." agent interaction shows how a thin external interface can operate it."
- **Primary visual:** a standard AI application surface enters full-screen. - **Primary visual:** a standard AI application surface enters full-screen.
- **Composition:** light chat full-screen over a night stage; evidence hidden. - **Composition:** source-owned light chat surface expands within the warm
Editorial Canvas; evidence hidden.
- **Evidence pointer:** constrained demo agent design and prepared replay recipe. - **Evidence pointer:** constrained demo agent design and prepared replay recipe.
- **Transition:** the operator request and first operation appear immediately. - **Transition:** the operator request and first operation appear immediately.
@@ -297,8 +543,8 @@ beat from which they were opened.
estimate. estimate.
- **Primary visual:** cohort structure, audited validity, failure classes, and - **Primary visual:** cohort structure, audited validity, failure classes, and
selected product improvements discovered through trials. selected product improvements discovered through trials.
- **Composition:** paper stage; chat hidden; one chart at a time; evidence panel - **Composition:** warm Editorial Canvas; chat hidden; one chart at a time;
links to the audit/run records. evidence panel links to the audit/run records.
- **Evidence pointer:** thesis evaluation chapter, Appendix C, generated cohort - **Evidence pointer:** thesis evaluation chapter, Appendix C, generated cohort
figures, and challenge reports. figures, and challenge reports.
- **Transition:** limitations remain while the charts simplify into the final - **Transition:** limitations remain while the charts simplify into the final
@@ -313,7 +559,7 @@ beat from which they were opened.
comparative studies; end on the planner/runtime separation. comparative studies; end on the planner/runtime separation.
- **Primary visual:** implemented core in focus, future layers around it, then - **Primary visual:** implemented core in focus, future layers around it, then
the one-sentence thesis. the one-sentence thesis.
- **Composition:** paper stage; chat dock may remain as a - **Composition:** warm Editorial Canvas; chat dock may remain as a
subtle reminder that the agent is a client of the substrate. subtle reminder that the agent is a client of the substrate.
- **Evidence pointer:** thesis limitations and future-work chapters. - **Evidence pointer:** thesis limitations and future-work chapters.
- **Transition:** none; hold a stable conclusion frame for questions. - **Transition:** none; hold a stable conclusion frame for questions.
@@ -326,7 +572,7 @@ The presenter needs a hidden or unobtrusive rehearsal surface with:
- direct scene jump by number or hash; - direct scene jump by number or hash;
- current and next speaker note; - current and next speaker note;
- elapsed and planned time; - elapsed and planned time;
- stage-theme and chat-theme overrides; - audience progress and current Focus Path;
- motion reduction toggle; - motion reduction toggle;
- replay/live indicator and forced replay fallback; - replay/live indicator and forced replay fallback;
- reset to the start of the current scene; - reset to the start of the current scene;