feat: clarify presentation opening and authoring story
This commit is contained in:
@@ -355,6 +355,7 @@ describe("SceneBody", () => {
|
||||
expect(loop).not.toHaveAttribute("data-readable-surface", "dark");
|
||||
expect(screen.getByText("Discover capability")).toBeInTheDocument();
|
||||
expect(screen.getByText("Author draft")).toBeInTheDocument();
|
||||
expect(screen.getByText(/turns an agent proposal into a valid workflow/i)).toBeInTheDocument();
|
||||
expect(screen.getByText("Validate and diagnose").closest("[data-authoring-active]")).toHaveAttribute("data-authoring-active", "true");
|
||||
expect(screen.getByText("Validate and diagnose").closest(".scene-body__authoring-node"))
|
||||
.not.toHaveAttribute("data-readable-surface", "dark");
|
||||
|
||||
@@ -14,10 +14,12 @@ describe("OpeningThesisScene", () => {
|
||||
const opening = screen.getByRole("region", { name: /thesis opening/i });
|
||||
expect(opening).toHaveAttribute("data-opening-focus", "title");
|
||||
expect(opening).toHaveAttribute("data-presentation-surface", "editorial");
|
||||
expect(screen.getByRole("heading", { name: "An AI Agent for Workspace Workflows" }).parentElement)
|
||||
expect(screen.getByRole("heading", { name: /The product goal: an AI agent for workspace automation/i }).parentElement)
|
||||
.toHaveAttribute("data-visual-role", "title-hero");
|
||||
expect(screen.getByRole("heading", { name: /Design and Implementation of lda\.chat/i })).toBeInTheDocument();
|
||||
expect(screen.getByRole("heading", { name: "An AI Agent for Workspace Workflows" })).toBeInTheDocument();
|
||||
expect(screen.getByText(/product goal.*AI agent.*workspace automation/i)).toBeInTheDocument();
|
||||
expect(screen.getByText(/implemented contribution.*typed workflow substrate/i)).toBeInTheDocument();
|
||||
expect(screen.getByRole("heading", { name: /The product goal: an AI agent for workspace automation/i })).toBeInTheDocument();
|
||||
const roles = screen.getByRole("group", { name: "AI agent roles" });
|
||||
expect(roles).toHaveClass("opening-thesis__agent-system");
|
||||
expect(roles.querySelectorAll("[data-concept-emphasis]")).toHaveLength(3);
|
||||
|
||||
@@ -29,8 +29,12 @@ export const OpeningThesisScene = ({ scene, beat }: OpeningThesisSceneProps) =>
|
||||
>
|
||||
<header className="opening-thesis__statement" data-visual-role="title-hero">
|
||||
<p>Product goal</p>
|
||||
<h2>An AI Agent for Workspace Workflows</h2>
|
||||
<h2>The product goal: an AI agent for workspace automation.</h2>
|
||||
</header>
|
||||
<div className="opening-thesis__statement opening-thesis__statement--contribution" data-visual-role="implementation-boundary">
|
||||
<p>Implementation boundary</p>
|
||||
<h3>The implemented contribution: a typed workflow substrate that external agents can operate.</h3>
|
||||
</div>
|
||||
<ConceptRail label="AI agent roles" className="opening-thesis__agent-system">
|
||||
<ConceptNode
|
||||
title="Planner"
|
||||
|
||||
@@ -68,8 +68,8 @@ export const mainScenes = defineScenes([
|
||||
evidencePointer: "Thesis Abstract and Introduction",
|
||||
view: "narrative",
|
||||
beats: [
|
||||
sceneBeat("title", "Design and Implementation of lda.chat", "The project began as a pursuit of an AI agent for workspace automation."),
|
||||
sceneBeat("substrate", "The substrate an agent needs", "The submitted contribution creates, validates, runs, and inspects reusable workflows."),
|
||||
sceneBeat("title", "Design and Implementation of lda.chat", "AI agent for workspace automation is the product goal."),
|
||||
sceneBeat("substrate", "The substrate an agent needs", "The implemented contribution: a typed workflow substrate that external agents can operate."),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -117,10 +117,10 @@ export const mainScenes = defineScenes([
|
||||
evidencePointer: "Thesis Workflow Lifecycle",
|
||||
view: "lifecycle",
|
||||
beats: [
|
||||
sceneBeat("draft", "Draft", "Mutable iterative authoring state."),
|
||||
sceneBeat("artifact", "Artifact", "Immutable saved workflow definition."),
|
||||
sceneBeat("deployment", "Deployment", "Logical requirements bound to concrete sources."),
|
||||
sceneBeat("run", "Run", "Persisted execution, output, status, and trace."),
|
||||
sceneBeat("draft", "Draft", "Draft, Artifact, Deployment, and Run are the durable vocabulary behind reusable automation."),
|
||||
sceneBeat("artifact", "Artifact", "An immutable artifact carries the durable workflow definition forward."),
|
||||
sceneBeat("deployment", "Deployment", "A deployment binds the durable workflow to concrete sources."),
|
||||
sceneBeat("run", "Run", "A run records durable execution, output, status, and trace."),
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -145,10 +145,10 @@ export const mainScenes = defineScenes([
|
||||
evidencePointer: "CLI documentation; draft authoring API; challenge UX findings",
|
||||
view: "authoring",
|
||||
beats: [
|
||||
sceneBeat("discover", "Discover", "Inspect capabilities and schemas before authoring."),
|
||||
sceneBeat("author", "Author", "Focused operations build and connect the draft."),
|
||||
sceneBeat("diagnose", "Diagnose", "Structured diagnostics identify invalid state.", { evidencePresentation: "receipt" }),
|
||||
sceneBeat("repair", "Repair", "Repair hints lead to a valid compiled workflow."),
|
||||
sceneBeat("discover", "Discover", "This authoring loop turns an agent proposal into a valid workflow: discover, author, diagnose, repair. An external agent can use each step."),
|
||||
sceneBeat("author", "Author", "This authoring loop turns an agent proposal into a valid workflow: discover, author, diagnose, repair. An external agent can use each step."),
|
||||
sceneBeat("diagnose", "Diagnose", "This authoring loop turns an agent proposal into a valid workflow: discover, author, diagnose, repair. An external agent can use each step.", { evidencePresentation: "receipt" }),
|
||||
sceneBeat("repair", "Repair", "This authoring loop turns an agent proposal into a valid workflow: discover, author, diagnose, repair. An external agent can use each step."),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user