feat: route coverage, docs, and completion for agent authoring story

This commit is contained in:
lda
2026-07-11 05:32:54 +07:00 Verified
parent baccbbb5f0
commit 86b13dca6b
4 changed files with 102 additions and 51 deletions
+20 -42
View File
@@ -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
View File
@@ -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 912) ### 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 1012)
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);
});
}); });