docs: specify continuous authoring workspace

This commit is contained in:
lda
2026-07-11 06:37:51 +07:00 Verified
parent 0164df67c0
commit a44835a08d
@@ -16,13 +16,13 @@ run, interrupt, output, or trace proof in Scenes 10 through 12.
This slice contains: This slice contains:
- A full-screen, read-only Scene 8 conversation with one operator request and - A full-screen, read-only Scene 8 conversation with operator/assistant turns
a concise external-agent response. interleaved with prepared tool activity.
- A Scene 8 to Scene 9 conversation-receipt transition. - A continuous Scene 8 to Scene 9 conversation transition.
- A deterministic prepared-authoring recording with literal `wf` commands, - A deterministic prepared-authoring recording with literal `wf` commands,
command results, and phase-specific workflow projections. command results, and phase-specific workflow projections.
- A Scene 9 workflow canvas with an anchored `Agent trace` control. - A Scene 9 workflow canvas with a synchronized compact chat dock.
- A floating trace panel that opens at the current authoring phase. - Expandable tool groups inside the dock instead of a separate trace modal.
- Keyboard, route, and responsive behavior for the new surfaces. - Keyboard, route, and responsive behavior for the new surfaces.
This slice excludes: This slice excludes:
@@ -48,10 +48,10 @@ primitive. Installing either generated component unchanged would conflict with
the deterministic source-owned transcript projection. the deterministic source-owned transcript projection.
Therefore this slice keeps `AssistantOperatorThread` as a read-only renderer. Therefore this slice keeps `AssistantOperatorThread` as a read-only renderer.
It adopts the templates' readable tool grouping, floating-panel vocabulary, It uses the source-owned assistant-ui tool fallback and tool-group components
focus behavior, and motion language without importing their whole runtime for both the full thread and compact dock. A later live-agent slice may
surface. A later live-agent slice may introduce a real assistant runtime, introduce a real assistant runtime, `thread.json`, and a truthful slash-command
`thread.json`, and a truthful slash-command composer together. composer together.
References: References:
@@ -66,9 +66,9 @@ References:
Scene 8 is a full-screen conversation with no graph, lifecycle rail, evidence Scene 8 is a full-screen conversation with no graph, lifecycle rail, evidence
receipt, or console chrome competing for attention. It must read as a real receipt, or console chrome competing for attention. It must read as a real
chat transcript: visibly separated user and assistant turns, normal message chat screen: visibly separated user and assistant turns, normal message
spacing, and no orphaned tool block presented as the whole conversation. It spacing, and prepared tool groups interleaved with assistant narration. It has
has two beats: two beats:
1. `request`: the operator asks for a reusable thesis-readiness workflow from 1. `request`: the operator asks for a reusable thesis-readiness workflow from
selected documents and an issue board. selected documents and an issue board.
@@ -80,40 +80,28 @@ The assistant's final handoff response contains a concise factual summary of
the five prepared authoring phases. It must say these are prepared operations, the five prepared authoring phases. It must say these are prepared operations,
not hidden reasoning or autonomous live execution. The request and handoff not hidden reasoning or autonomous live execution. The request and handoff
beats use the same conversation source, revealing additional already-recorded beats use the same conversation source, revealing additional already-recorded
turns rather than synthesizing new text at render time. turns and tool groups rather than synthesizing new text at render time.
### Transition: Conversation Receipt ### Transition: Continuous Conversation Dock
The presentation must not attempt to morph assistant-ui Thread internals into Scene 9 keeps the same assistant thread visible as a compact dock at the bottom
the floating trace panel. Instead, when Scene 9 enters, the final Scene 8 of the stage. The dock is not a screenshot, receipt, or second transcript. It
handoff contracts into a small presentation-owned receipt at the lower edge of projects the same stable message IDs and tool-call IDs used by Scene 8.
the workflow canvas:
```text On scene entry the thread container contracts while the workflow canvas takes
Prepared workflow the upper stage. The active phase's tool group is expanded and scrolled into
Discover · author · validate view; completed groups collapse to one-line status receipts. The dock may be
Open agent trace manually expanded, but it never covers the primary workflow projection.
```
The receipt is the visual bridge between scenes and the accessible trigger for
the Scene 9 trace panel. Its content remains factual and constant while the
active authoring phase changes.
### Scene 9: Prepared Workflow Lifecycle ### Scene 9: Prepared Workflow Lifecycle
The Scene 9 canvas is primary. It shows one lifecycle projection per beat. The The Scene 9 canvas is primary. It shows one lifecycle projection per beat. The
floating trace is secondary and opens only from the receipt or `Agent trace` conversation dock is secondary and remains anchored below it. There is no
control. Opening it never resizes or replaces the canvas. separate `Agent trace` modal.
The trace panel uses the assistant-modal interaction model: anchored trigger,
focus moved into the panel, Escape/close returns focus to the trigger, and
reduced-motion removes transform-based entrance motion. It is not the generated
`assistant-modal.json` component because that component embeds the full runtime
Thread.
Each Scene 9 beat selects exactly one authoring phase: Each Scene 9 beat selects exactly one authoring phase:
| Beat | Canvas projection | Expanded trace group | | Beat | Canvas projection | Active dock group |
| --- | --- | --- | | --- | --- | --- |
| `discover` | Required sources, capabilities, and input schema | Discover | | `discover` | Required sources, capabilities, and input schema | Discover |
| `draft` | Draft graph with nodes and declared outcome routes | Draft | | `draft` | Draft graph with nodes and declared outcome routes | Draft |
@@ -121,9 +109,17 @@ Each Scene 9 beat selects exactly one authoring phase:
| `artifact` | Immutable artifact identifier and version | Compile artifact | | `artifact` | Immutable artifact identifier and version | Compile artifact |
| `deployment` | Concrete local source bindings and deployment validation | Deploy and validate | | `deployment` | Concrete local source bindings and deployment validation | Deploy and validate |
Other trace groups stay collapsed. The presenter can expand them manually, but Other tool groups stay collapsed. The presenter can expand them manually, but
changing a group does not alter the active canvas phase. changing a group does not alter the active canvas phase.
The five canvas projections use distinct factual visual forms:
- `discover`: source inventory plus capability and schema contract.
- `draft`: a compact directed graph with declared outcome routes.
- `validate`: diagnostic before/after repair with the corrected projection.
- `artifact`: immutable artifact identity, version, and required sources.
- `deployment`: logical-to-concrete source bindings and validation status.
## Prepared Authoring Recording ## Prepared Authoring Recording
Create a canonical, versioned recording separate from Create a canonical, versioned recording separate from
@@ -142,12 +138,12 @@ The command sequence is:
diagnostic, and the corrected binding/route operation produces a valid draft. diagnostic, and the corrected binding/route operation produces a valid draft.
4. **Compile artifact**: `wf draft compile` and `wf artifact inspect` show the 4. **Compile artifact**: `wf draft compile` and `wf artifact inspect` show the
immutable versioned workflow definition. immutable versioned workflow definition.
5. **Deploy and validate**: `wf deploy create` and `wf deploy validate` bind 5. **Deploy and validate**: `wf deploy save` and `wf deploy validate` bind
logical requirements to the local report, issue-board, and document sources. logical requirements to the local report, issue-board, and document sources.
Command text must use the public `wf` surface and match the example's supported Command text must use the public `wf` surface and match the example's supported
commands. Result text must stay short enough for the trace panel. Longer JSON commands. Result text must stay short enough for the dock. Longer JSON or
or diagnostics are expandable, scroll-contained details rather than default diagnostics are expandable, scroll-contained details rather than default
content. content.
## Data Boundaries ## Data Boundaries
@@ -156,45 +152,42 @@ The recording owns the authoring facts. A pure projection function maps the
selected phase to: selected phase to:
- the Scene 9 lifecycle/canvas model; - the Scene 9 lifecycle/canvas model;
- the corresponding command-group transcript; - dock messages and active tool group;
- receipt text and status;
- the active Scene 9 beat. - the active Scene 9 beat.
`PresentationRoute` remains the route owner. It maps a Scene 9 hash to a phase; `PresentationRoute` remains the route owner. It maps a Scene 9 hash to a phase;
it must not create another chat state store or call the workflow RPC server. it must not create another chat state store or call the workflow RPC server.
`AssistantOperatorThread` remains a renderer of projected messages. A dedicated `AssistantOperatorThread` remains a renderer of projected messages. A small
floating-panel wrapper owns only open/close state and focus restoration. presentation-owned wrapper controls only full-thread versus dock layout and the
active expanded tool group.
If the recording cannot decode, Scene 9 renders a compact unavailable state If the recording cannot decode, Scene 9 renders a compact unavailable state
with the evidence pointer and does not invent authoring facts. The trace trigger with the evidence pointer and does not invent authoring facts. The dock shows a
is disabled with an explanatory label. single unavailable message rather than fabricated tool results.
## Accessibility And Responsive Rules ## Accessibility And Responsive Rules
- The receipt trigger is a semantic button with an accessible name that includes
`Agent trace`.
- Opening the panel focuses its heading or close control. Closing with Escape
or the close button restores focus to the receipt trigger.
- Tool groups are buttons with `aria-expanded`; their literal commands remain - Tool groups are buttons with `aria-expanded`; their literal commands remain
copyable text. copyable text.
- At 1280 by 720, the panel overlays the canvas at a readable maximum width and - At 1280 by 720, the dock occupies no more than 30 percent of the stage. At
height. At 1024 by 768 and narrower, it becomes a bottom sheet or full-width 1024 by 768 and narrower, it remains full-width below the canvas with its own
inset without clipping its command list. scroll containment.
- Canvas content may scroll inside its own region; the presentation viewport - Canvas content may scroll inside its own region; the presentation viewport
must not acquire page-level scrollbars. must not acquire page-level scrollbars.
- Motion is limited to opacity and short positional transitions. It honors - Motion is limited to a 150250 ms thread-container resize and canvas
crossfade. Do not blur, scale, or pan unchanged thread content. Motion honors
`prefers-reduced-motion` and the existing presentation motion toggle. `prefers-reduced-motion` and the existing presentation motion toggle.
## Verification ## Verification
- Unit-test recording decoding and phase projection, including rejected/missing - Unit-test recording decoding and phase projection, including rejected/missing
recording data. recording data.
- Unit-test the trace panel's active-group and collapse behavior. - Unit-test dock projection, active-group synchronization, and stable IDs.
- Component-test receipt trigger, focus restoration, Escape, and compact - Component-test full-thread/dock layout, tool expansion, and compact
unavailable state. unavailable state.
- Route-test all five Scene 9 hashes and Scene 8 to Scene 9 transition state. - Route-test all five Scene 9 hashes and Scene 8 to Scene 9 transition state.
- Browser-smoke the full-screen Scene 8 thread, each Scene 9 phase, open/close - Browser-smoke the full-screen Scene 8 thread and each synchronized Scene 9
trace panel, 1280 by 720, and 1024 by 768. phase at 1280 by 720 and 1024 by 768.
- Run console tests, console typecheck, console build, and `git diff --check`. - Run console tests, console typecheck, console build, and `git diff --check`.
## Follow-On Work ## Follow-On Work