feat: route coverage, docs, and completion for agent authoring story
This commit is contained in:
+20
-42
@@ -171,6 +171,12 @@ Implementation order:
|
|||||||
rehearsal timing.
|
rehearsal timing.
|
||||||
24. Add a static slide/appendix shell only after presentation mode is clear.
|
24. 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.
|
||||||
|
25. Completed: presentation agent authoring story creates a canonical prepared
|
||||||
|
authoring recording, Scene 8 as an authentic full-screen conversation,
|
||||||
|
Scene 9 as a 5-phase lifecycle with trace panel, and route-level coverage
|
||||||
|
that never calls workflow authoring RPC operations during Scene 9
|
||||||
|
navigation. Implementation:
|
||||||
|
[`presentation agent authoring story`](historical/superpowers/plans/2026-07-11-presentation-agent-authoring-story.md).
|
||||||
|
|
||||||
Presentation visual audit, July 10:
|
Presentation visual audit, July 10:
|
||||||
|
|
||||||
@@ -190,44 +196,12 @@ Presentation visual audit, July 10:
|
|||||||
- Completed: Scenes 13 and 14 now close with a bounded evaluation board,
|
- Completed: Scenes 13 and 14 now close with a bounded evaluation board,
|
||||||
contribution boundary/future-work map, and canonical defense-question index.
|
contribution boundary/future-work map, and canonical defense-question index.
|
||||||
|
|
||||||
## Planned: Presentation Recomposition And Authoring Story
|
## Completed: Presentation Recomposition And Authoring Story
|
||||||
|
|
||||||
The presentation needs a deck-wide compositional pass, not more isolated
|
Scenes 8 and 9 are now implemented as authentic external-agent handoff and
|
||||||
opacity tweaks. A scene should establish an overview, then give one object the
|
factual prepared-authoring proof. The canonical recording, full-screen Scene 8,
|
||||||
stage while supporting evidence moves aside, exits, or enters as needed. A
|
Scene 9 lifecycle with trace panel, and route coverage are all in place. Plan:
|
||||||
focused object may expand into an inspectable graph, command/result surface, or
|
[`presentation agent authoring story`](historical/superpowers/plans/2026-07-11-presentation-agent-authoring-story.md).
|
||||||
discussion point before the next object takes focus. Comparisons remain visible
|
|
||||||
when comparison is the point; unrelated support does not remain on stage by
|
|
||||||
default.
|
|
||||||
|
|
||||||
- Establish a reusable overview -> focus -> transition grammar across the
|
|
||||||
presentation. Motion should communicate spatial ownership, not merely dim
|
|
||||||
inactive elements. Reserve cyan workflow evidence for the demo range; use
|
|
||||||
editorial ink, paper, and amber outside it.
|
|
||||||
- Recompose Scenes 1 through 7 around that grammar. Scene 2 should sequence
|
|
||||||
one-off chat/tool actions before durable automation. Scene 3 should stage
|
|
||||||
the left and right positioning panes before the substrate resolves between
|
|
||||||
them. Scene 6 should let architecture blocks expand into child figures.
|
|
||||||
Scene 7 should begin with the five-stage authoring overview, then focus each
|
|
||||||
stage with concrete command, result, diagnostic, or graph evidence.
|
|
||||||
- Make Scene 8 a full-screen assistant-ui `Thread` that establishes the
|
|
||||||
external planner interface with no workflow chrome competing for attention.
|
|
||||||
- Make Scene 9 the deterministic authoring proof. It uses a collapsible
|
|
||||||
assistant-ui `AssistantModal` opened by an `Agent trace` trigger over the
|
|
||||||
workflow canvas. Each authoring phase contains multiple literal `wf` tool
|
|
||||||
calls, then updates the main lifecycle/graph projection:
|
|
||||||
1. discover sources, capabilities, and schemas;
|
|
||||||
2. create the draft, steps, and outcome routes;
|
|
||||||
3. bind, validate, diagnose, and repair;
|
|
||||||
4. compile and inspect the immutable artifact;
|
|
||||||
5. create and validate the deployment.
|
|
||||||
Scene 10 begins only after that prepared deployment is legible.
|
|
||||||
- Treat broken trace-frame display as a blocking product defect before the
|
|
||||||
run/evidence arc is redesigned around trace proof. Diagnose it separately
|
|
||||||
with a regression test and use factual run/trace data from the console path.
|
|
||||||
- Recut crowded multi-beat scenes, including Scenes 13 and 14, so their beats
|
|
||||||
use distinct dominant artifacts instead of permanently rendering a complete
|
|
||||||
board or map with only minor emphasis shifts.
|
|
||||||
|
|
||||||
Recommended next visual slices:
|
Recommended next visual slices:
|
||||||
|
|
||||||
@@ -252,11 +226,15 @@ Recommended next visual slices:
|
|||||||
space. Implementation:
|
space. Implementation:
|
||||||
[`guided proof scene composition cleanup`](historical/superpowers/plans/2026-07-10-guided-proof-scene-composition-cleanup.md).
|
[`guided proof scene composition cleanup`](historical/superpowers/plans/2026-07-10-guided-proof-scene-composition-cleanup.md).
|
||||||
5. Completed: Evidence and closing visuals make Scenes 13 and 14 readable as a
|
5. Completed: Evidence and closing visuals make Scenes 13 and 14 readable as a
|
||||||
defense artifact: bounded evaluation board, claim boundaries, future-work
|
defense artifact: bounded evaluation board, claim boundaries, future-work
|
||||||
map, and canonical examiner-question index. Design:
|
map, and canonical examiner-question index. Design:
|
||||||
[`presentation evaluation and closing`](superpowers/specs/2026-07-10-presentation-evaluation-closing-design.md).
|
[`presentation evaluation and closing`](superpowers/specs/2026-07-10-presentation-evaluation-closing-design.md).
|
||||||
Implementation:
|
Implementation:
|
||||||
[`presentation evaluation and closing plan`](historical/superpowers/plans/2026-07-10-presentation-evaluation-closing.md).
|
[`presentation evaluation and closing plan`](historical/superpowers/plans/2026-07-10-presentation-evaluation-closing.md).
|
||||||
|
6. Completed: Presentation agent authoring story rebuilds Scenes 8 and 9 as
|
||||||
|
authentic external-agent handoff and factual prepared-authoring proof.
|
||||||
|
Implementation:
|
||||||
|
[`presentation agent authoring story plan`](historical/superpowers/plans/2026-07-11-presentation-agent-authoring-story.md).
|
||||||
|
|
||||||
Presentation wishlist / defense readiness:
|
Presentation wishlist / defense readiness:
|
||||||
|
|
||||||
|
|||||||
+37
-9
@@ -177,11 +177,14 @@ The final presentation beats frame the evaluation as bounded evidence, make
|
|||||||
claim boundaries and future work explicit, and end on the canonical defense
|
claim boundaries and future work explicit, and end on the canonical defense
|
||||||
discussion index rather than a benchmark or generic conclusion.
|
discussion index rather than a benchmark or generic conclusion.
|
||||||
|
|
||||||
Scenes 8 through 12 use the canonical replay as their only execution evidence.
|
Scenes 8 and 9 use the canonical prepared-authoring recording as their only
|
||||||
The handoff expands an interpreted run operation into the center stage, then
|
execution evidence. Scene 8 is a full-screen conversation that establishes the
|
||||||
keeps one workflow graph mounted while execution reaches the typed interrupt
|
external agent handoff; Scene 9 breaks the prepared authoring into five phases
|
||||||
and approval boundary. Raw protocol payloads are available through the evidence
|
with an overlay trace panel. Neither scene calls workflow authoring RPC
|
||||||
receipt and inspector.
|
operations — they consume deterministic prepared data. Scenes 10 through 12 use
|
||||||
|
the canonical replay to show run, interrupt, approval, resume, output, and
|
||||||
|
trace. Raw protocol payloads are available through the evidence receipt and
|
||||||
|
inspector.
|
||||||
|
|
||||||
The presentation chat surface is source-owned and follows the AI Elements
|
The presentation chat surface is source-owned and follows the AI Elements
|
||||||
conversation/message/tool/prompt-action model. It currently renders the
|
conversation/message/tool/prompt-action model. It currently renders the
|
||||||
@@ -195,6 +198,11 @@ The key defense states are directly addressable:
|
|||||||
- `/present#scene/workflow-demo/graph`
|
- `/present#scene/workflow-demo/graph`
|
||||||
- `/present#scene/workflow-demo/interrupt`
|
- `/present#scene/workflow-demo/interrupt`
|
||||||
- `/present#scene/interrupt-evidence/approval`
|
- `/present#scene/interrupt-evidence/approval`
|
||||||
|
- `/present#scene/agent-handoff/request` — Scene 8, prepared handoff request
|
||||||
|
- `/present#scene/agent-handoff/handoff` — Scene 8, agent accepts
|
||||||
|
- `/present#scene/prepared-lifecycle/discover` — Scene 9, discover phase
|
||||||
|
- `/present#scene/prepared-lifecycle/draft` — Scene 9, draft phase
|
||||||
|
- `/present#scene/prepared-lifecycle/deployment` — Scene 9, deployment phase
|
||||||
|
|
||||||
Scene 12 is factual by design. It projects the reviewed/live run into visible
|
Scene 12 is factual by design. It projects the reviewed/live run into visible
|
||||||
workflow input, interrupt payload, resume decision, output, and trace facts.
|
workflow input, interrupt payload, resume decision, output, and trace facts.
|
||||||
@@ -307,10 +315,30 @@ The current prepared recipe can:
|
|||||||
This is intentionally not a general autonomous planner. A future server-side
|
This is intentionally not a general autonomous planner. A future server-side
|
||||||
Vercel AI SDK driver can feed the same message-part interface.
|
Vercel AI SDK driver can feed the same message-part interface.
|
||||||
|
|
||||||
### Demo Climax (Scenes 9–12)
|
### Authoring Story (Scenes 8 and 9)
|
||||||
|
|
||||||
Scenes 9 through 12 are the demo climax. They keep a continuity rail visible while
|
Scenes 8 and 9 are the prepared authoring story. They use deterministic data
|
||||||
the prepared replay moves from agent handoff, to persisted workflow run, to
|
from the committed `projectPreparedAuthoring()` recording and never call
|
||||||
typed human interrupt, to resume/output/evidence. The rail and outcome panel are
|
workflow authoring RPC operations.
|
||||||
|
|
||||||
|
- **Scene 8 (Agent Handoff)**: a full-screen prepared conversation that
|
||||||
|
establishes the external agent interface. The `request` beat shows the
|
||||||
|
operator requesting a report workflow; the `handoff` beat reveals the full
|
||||||
|
completed conversation across all authoring phases.
|
||||||
|
- **Scene 9 (Prepared Workflow Lifecycle)**: a five-phase lifecycle
|
||||||
|
(discover, draft, validate, artifact, deployment) with a compact phase rail
|
||||||
|
and one dominant command/result projection per beat. An overlay
|
||||||
|
`AuthoringTracePanel` surfaces the full agent trace for the active phase
|
||||||
|
without competing with the lifecycle projection.
|
||||||
|
|
||||||
|
The authoring scenes consume deterministic prepared data and never call
|
||||||
|
workflow authoring RPCs — only `workflow.health` infrastructure pings are
|
||||||
|
permitted.
|
||||||
|
|
||||||
|
### Demo Climax (Scenes 10–12)
|
||||||
|
|
||||||
|
Scenes 10 through 12 are the demo climax. They keep a continuity rail visible
|
||||||
|
while the prepared replay moves from persisted workflow run, to typed human
|
||||||
|
interrupt, to resume/output/evidence. The rail and outcome panel are
|
||||||
presentation-only projections over the committed replay; they do not add live
|
presentation-only projections over the committed replay; they do not add live
|
||||||
backend dependencies.
|
backend dependencies.
|
||||||
|
|||||||
@@ -367,4 +367,49 @@ describe("PresentationRoute", () => {
|
|||||||
expect(await screen.findByRole("region", { name: /workflow trace frames/i })).toBeInTheDocument();
|
expect(await screen.findByRole("region", { name: /workflow trace frames/i })).toBeInTheDocument();
|
||||||
expect(screen.queryByText("No trace frames captured.")).not.toBeInTheDocument();
|
expect(screen.queryByText("No trace frames captured.")).not.toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("navigates to Scene 8 request beat via hash", async () => {
|
||||||
|
window.location.hash = "#scene/agent-handoff/request";
|
||||||
|
const { PresentationRoute } = await import("./PresentationRoute.js");
|
||||||
|
render(<PresentationRoute />);
|
||||||
|
|
||||||
|
expect(await screen.findByRole("heading", { name: "Agent Handoff" })).toBeInTheDocument();
|
||||||
|
expect(screen.getByText(/A thin agent interface receives the report request/)).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("navigates to Scene 8 handoff beat via hash", async () => {
|
||||||
|
window.location.hash = "#scene/agent-handoff/handoff";
|
||||||
|
const { PresentationRoute } = await import("./PresentationRoute.js");
|
||||||
|
render(<PresentationRoute />);
|
||||||
|
|
||||||
|
expect(await screen.findByRole("heading", { name: "Agent Handoff" })).toBeInTheDocument();
|
||||||
|
expect(screen.getByText(/The interface delegates durable work to lda\.chat/)).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it.each([
|
||||||
|
"#scene/prepared-lifecycle/discover",
|
||||||
|
"#scene/prepared-lifecycle/draft",
|
||||||
|
"#scene/prepared-lifecycle/validate",
|
||||||
|
"#scene/prepared-lifecycle/artifact",
|
||||||
|
"#scene/prepared-lifecycle/deployment",
|
||||||
|
])("navigates to Scene 9 beat %s", async (hash) => {
|
||||||
|
window.location.hash = hash;
|
||||||
|
const { PresentationRoute } = await import("./PresentationRoute.js");
|
||||||
|
render(<PresentationRoute />);
|
||||||
|
|
||||||
|
expect(await screen.findByLabelText("authoring phase rail")).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("navigating Scene 9 beats does not call workflow authoring RPC operations", async () => {
|
||||||
|
const { callOperation } = await import("../connection/api.js");
|
||||||
|
const mockCallOp = vi.mocked(callOperation);
|
||||||
|
mockCallOp.mockClear();
|
||||||
|
window.location.hash = "#scene/prepared-lifecycle/draft";
|
||||||
|
const { PresentationRoute } = await import("./PresentationRoute.js");
|
||||||
|
render(<PresentationRoute />);
|
||||||
|
|
||||||
|
expect(await screen.findByLabelText("authoring phase rail")).toBeInTheDocument();
|
||||||
|
const authoringCalls = mockCallOp.mock.calls.filter((c) => c[0] !== "workflow.health");
|
||||||
|
expect(authoringCalls).toHaveLength(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user