@agent-native/core 0.38.0 → 0.39.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/cli/create.d.ts.map +1 -1
  2. package/dist/cli/create.js +8 -1
  3. package/dist/cli/create.js.map +1 -1
  4. package/dist/cli/index.js +1 -1
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/skills.d.ts +6 -4
  7. package/dist/cli/skills.d.ts.map +1 -1
  8. package/dist/cli/skills.js +587 -126
  9. package/dist/cli/skills.js.map +1 -1
  10. package/dist/client/blocks/BlockView.d.ts +13 -4
  11. package/dist/client/blocks/BlockView.d.ts.map +1 -1
  12. package/dist/client/blocks/BlockView.js +34 -13
  13. package/dist/client/blocks/BlockView.js.map +1 -1
  14. package/dist/client/blocks/SchemaBlockEditor.d.ts.map +1 -1
  15. package/dist/client/blocks/SchemaBlockEditor.js +96 -3
  16. package/dist/client/blocks/SchemaBlockEditor.js.map +1 -1
  17. package/dist/client/blocks/index.d.ts +18 -1
  18. package/dist/client/blocks/index.d.ts.map +1 -1
  19. package/dist/client/blocks/index.js +26 -1
  20. package/dist/client/blocks/index.js.map +1 -1
  21. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts +6 -0
  22. package/dist/client/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -0
  23. package/dist/client/blocks/library/AnnotatedCodeBlock.js +135 -0
  24. package/dist/client/blocks/library/AnnotatedCodeBlock.js.map +1 -0
  25. package/dist/client/blocks/library/ApiEndpointBlock.d.ts +20 -0
  26. package/dist/client/blocks/library/ApiEndpointBlock.d.ts.map +1 -0
  27. package/dist/client/blocks/library/ApiEndpointBlock.js +131 -0
  28. package/dist/client/blocks/library/ApiEndpointBlock.js.map +1 -0
  29. package/dist/client/blocks/library/DataModelBlock.d.ts +28 -0
  30. package/dist/client/blocks/library/DataModelBlock.d.ts.map +1 -0
  31. package/dist/client/blocks/library/DataModelBlock.js +222 -0
  32. package/dist/client/blocks/library/DataModelBlock.js.map +1 -0
  33. package/dist/client/blocks/library/DiffBlock.d.ts +6 -0
  34. package/dist/client/blocks/library/DiffBlock.d.ts.map +1 -0
  35. package/dist/client/blocks/library/DiffBlock.js +293 -0
  36. package/dist/client/blocks/library/DiffBlock.js.map +1 -0
  37. package/dist/client/blocks/library/FileTreeBlock.d.ts +23 -0
  38. package/dist/client/blocks/library/FileTreeBlock.d.ts.map +1 -0
  39. package/dist/client/blocks/library/FileTreeBlock.js +225 -0
  40. package/dist/client/blocks/library/FileTreeBlock.js.map +1 -0
  41. package/dist/client/blocks/library/JsonExplorerBlock.d.ts +19 -0
  42. package/dist/client/blocks/library/JsonExplorerBlock.d.ts.map +1 -0
  43. package/dist/client/blocks/library/JsonExplorerBlock.js +171 -0
  44. package/dist/client/blocks/library/JsonExplorerBlock.js.map +1 -0
  45. package/dist/client/blocks/library/MermaidBlock.d.ts +17 -0
  46. package/dist/client/blocks/library/MermaidBlock.d.ts.map +1 -0
  47. package/dist/client/blocks/library/MermaidBlock.js +131 -0
  48. package/dist/client/blocks/library/MermaidBlock.js.map +1 -0
  49. package/dist/client/blocks/library/OpenApiSpecBlock.d.ts +19 -0
  50. package/dist/client/blocks/library/OpenApiSpecBlock.d.ts.map +1 -0
  51. package/dist/client/blocks/library/OpenApiSpecBlock.js +494 -0
  52. package/dist/client/blocks/library/OpenApiSpecBlock.js.map +1 -0
  53. package/dist/client/blocks/library/annotated-code.config.d.ts +58 -0
  54. package/dist/client/blocks/library/annotated-code.config.d.ts.map +1 -0
  55. package/dist/client/blocks/library/annotated-code.config.js +53 -0
  56. package/dist/client/blocks/library/annotated-code.config.js.map +1 -0
  57. package/dist/client/blocks/library/api-endpoint.config.d.ts +71 -0
  58. package/dist/client/blocks/library/api-endpoint.config.d.ts.map +1 -0
  59. package/dist/client/blocks/library/api-endpoint.config.js +91 -0
  60. package/dist/client/blocks/library/api-endpoint.config.js.map +1 -0
  61. package/dist/client/blocks/library/checklist.d.ts.map +1 -1
  62. package/dist/client/blocks/library/checklist.js +3 -1
  63. package/dist/client/blocks/library/checklist.js.map +1 -1
  64. package/dist/client/blocks/library/code-tabs.js +1 -1
  65. package/dist/client/blocks/library/code-tabs.js.map +1 -1
  66. package/dist/client/blocks/library/data-model.config.d.ts +72 -0
  67. package/dist/client/blocks/library/data-model.config.d.ts.map +1 -0
  68. package/dist/client/blocks/library/data-model.config.js +59 -0
  69. package/dist/client/blocks/library/data-model.config.js.map +1 -0
  70. package/dist/client/blocks/library/dev-doc-ui.d.ts +49 -0
  71. package/dist/client/blocks/library/dev-doc-ui.d.ts.map +1 -0
  72. package/dist/client/blocks/library/dev-doc-ui.js +50 -0
  73. package/dist/client/blocks/library/dev-doc-ui.js.map +1 -0
  74. package/dist/client/blocks/library/diff.config.d.ts +41 -0
  75. package/dist/client/blocks/library/diff.config.d.ts.map +1 -0
  76. package/dist/client/blocks/library/diff.config.js +34 -0
  77. package/dist/client/blocks/library/diff.config.js.map +1 -0
  78. package/dist/client/blocks/library/file-tree.config.d.ts +59 -0
  79. package/dist/client/blocks/library/file-tree.config.d.ts.map +1 -0
  80. package/dist/client/blocks/library/file-tree.config.js +45 -0
  81. package/dist/client/blocks/library/file-tree.config.js.map +1 -0
  82. package/dist/client/blocks/library/html.d.ts.map +1 -1
  83. package/dist/client/blocks/library/html.js +4 -1
  84. package/dist/client/blocks/library/html.js.map +1 -1
  85. package/dist/client/blocks/library/json-explorer.config.d.ts +46 -0
  86. package/dist/client/blocks/library/json-explorer.config.d.ts.map +1 -0
  87. package/dist/client/blocks/library/json-explorer.config.js +28 -0
  88. package/dist/client/blocks/library/json-explorer.config.js.map +1 -0
  89. package/dist/client/blocks/library/mermaid.config.d.ts +32 -0
  90. package/dist/client/blocks/library/mermaid.config.d.ts.map +1 -0
  91. package/dist/client/blocks/library/mermaid.config.js +24 -0
  92. package/dist/client/blocks/library/mermaid.config.js.map +1 -0
  93. package/dist/client/blocks/library/openapi-spec.config.d.ts +49 -0
  94. package/dist/client/blocks/library/openapi-spec.config.d.ts.map +1 -0
  95. package/dist/client/blocks/library/openapi-spec.config.js +24 -0
  96. package/dist/client/blocks/library/openapi-spec.config.js.map +1 -0
  97. package/dist/client/blocks/library/server-specs.d.ts +35 -0
  98. package/dist/client/blocks/library/server-specs.d.ts.map +1 -0
  99. package/dist/client/blocks/library/server-specs.js +171 -0
  100. package/dist/client/blocks/library/server-specs.js.map +1 -0
  101. package/dist/client/blocks/library/specs.d.ts +29 -0
  102. package/dist/client/blocks/library/specs.d.ts.map +1 -0
  103. package/dist/client/blocks/library/specs.js +229 -0
  104. package/dist/client/blocks/library/specs.js.map +1 -0
  105. package/dist/client/blocks/library/table.d.ts.map +1 -1
  106. package/dist/client/blocks/library/table.js +3 -1
  107. package/dist/client/blocks/library/table.js.map +1 -1
  108. package/dist/client/blocks/library/tabs.js +1 -1
  109. package/dist/client/blocks/library/tabs.js.map +1 -1
  110. package/dist/client/blocks/registry.d.ts +8 -0
  111. package/dist/client/blocks/registry.d.ts.map +1 -1
  112. package/dist/client/blocks/registry.js +15 -0
  113. package/dist/client/blocks/registry.js.map +1 -1
  114. package/dist/client/blocks/server.d.ts +9 -0
  115. package/dist/client/blocks/server.d.ts.map +1 -1
  116. package/dist/client/blocks/server.js +16 -0
  117. package/dist/client/blocks/server.js.map +1 -1
  118. package/dist/client/blocks/types.d.ts +40 -0
  119. package/dist/client/blocks/types.d.ts.map +1 -1
  120. package/dist/client/blocks/types.js.map +1 -1
  121. package/dist/client/index.d.ts +2 -1
  122. package/dist/client/index.d.ts.map +1 -1
  123. package/dist/client/index.js +10 -1
  124. package/dist/client/index.js.map +1 -1
  125. package/dist/client/rich-markdown-editor/DragHandle.d.ts +52 -0
  126. package/dist/client/rich-markdown-editor/DragHandle.d.ts.map +1 -0
  127. package/dist/client/rich-markdown-editor/DragHandle.js +403 -0
  128. package/dist/client/rich-markdown-editor/DragHandle.js.map +1 -0
  129. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts +97 -0
  130. package/dist/client/rich-markdown-editor/RegistryBlockNode.d.ts.map +1 -0
  131. package/dist/client/rich-markdown-editor/RegistryBlockNode.js +214 -0
  132. package/dist/client/rich-markdown-editor/RegistryBlockNode.js.map +1 -0
  133. package/dist/client/rich-markdown-editor/RunId.d.ts +28 -0
  134. package/dist/client/rich-markdown-editor/RunId.d.ts.map +1 -0
  135. package/dist/client/rich-markdown-editor/RunId.js +60 -0
  136. package/dist/client/rich-markdown-editor/RunId.js.map +1 -0
  137. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts +25 -1
  138. package/dist/client/rich-markdown-editor/SharedRichEditor.d.ts.map +1 -1
  139. package/dist/client/rich-markdown-editor/SharedRichEditor.js +14 -5
  140. package/dist/client/rich-markdown-editor/SharedRichEditor.js.map +1 -1
  141. package/dist/client/rich-markdown-editor/gfmDoc.d.ts +24 -0
  142. package/dist/client/rich-markdown-editor/gfmDoc.d.ts.map +1 -0
  143. package/dist/client/rich-markdown-editor/gfmDoc.js +83 -0
  144. package/dist/client/rich-markdown-editor/gfmDoc.js.map +1 -0
  145. package/dist/client/rich-markdown-editor/index.d.ts +5 -0
  146. package/dist/client/rich-markdown-editor/index.d.ts.map +1 -1
  147. package/dist/client/rich-markdown-editor/index.js +5 -0
  148. package/dist/client/rich-markdown-editor/index.js.map +1 -1
  149. package/dist/client/rich-markdown-editor/registrySlashCommands.d.ts +46 -0
  150. package/dist/client/rich-markdown-editor/registrySlashCommands.d.ts.map +1 -0
  151. package/dist/client/rich-markdown-editor/registrySlashCommands.js +13 -0
  152. package/dist/client/rich-markdown-editor/registrySlashCommands.js.map +1 -0
  153. package/dist/client/rich-markdown-editor/useCollabReconcile.d.ts.map +1 -1
  154. package/dist/client/rich-markdown-editor/useCollabReconcile.js +33 -0
  155. package/dist/client/rich-markdown-editor/useCollabReconcile.js.map +1 -1
  156. package/docs/content/template-plan.md +19 -4
  157. package/docs/content/visual-plans.md +3 -1
  158. package/package.json +1 -1
@@ -15,7 +15,7 @@ const HELP = `agent-native skills
15
15
 
16
16
  Usage:
17
17
  agent-native skills list
18
- agent-native skills add assets|design-exploration|visual-plan|visual-questions|ui-plan|visualize-plan|context-xray [--client codex|claude-code|claude-code-cli|cowork|all] [--scope user|project] [--mcp-url <url>] [--no-connect] [--yes] [--dry-run] [--json]
18
+ agent-native skills add assets|design-exploration|visual-plan|visual-questions|ui-plan|prototype-plan|plan-design|visualize-plan|context-xray [--client codex|claude-code|claude-code-cli|cowork|all] [--scope user|project] [--mcp-url <url>] [--no-connect] [--yes] [--dry-run] [--json]
19
19
  agent-native skills add <manifest-or-app-dir> [--client ...] [--yes]
20
20
 
21
21
  Examples:
@@ -196,7 +196,7 @@ iteration, or a human-in-the-loop choice among design directions.
196
196
  `;
197
197
  /**
198
198
  * Shared setup/auth block for every Plans skill (`/visual-plan`, `/ui-plan`,
199
- * `/visual-questions`, `/visualize-plan`). Interpolated into each skill markdown
199
+ * `/prototype-plan`, `/plan-design`, `/visual-questions`, `/visualize-plan`). Interpolated into each skill markdown
200
200
  * so the install + one-step authenticate instructions never drift between them.
201
201
  * Keep this in sync with the copies under `templates/plan/.agents/skills/*` and
202
202
  * top-level `skills/*` (this skill's SKILL.md is triplicated with no sync test).
@@ -214,8 +214,8 @@ intended), so the first tool call does not hit an OAuth wall:
214
214
  agent-native skills add visual-plan
215
215
  \`\`\`
216
216
 
217
- After that, \`/visual-plan\` (and \`/ui-plan\`, \`/visual-questions\`,
218
- \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
217
+ After that, \`/visual-plan\` (and \`/ui-plan\`, \`/prototype-plan\`, \`/plan-design\`,
218
+ \`/visual-questions\`, \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
219
219
  register the connector without authenticating, then run
220
220
  \`agent-native connect https://plan.agent-native.com\` whenever you are ready.
221
221
 
@@ -252,12 +252,14 @@ metadata:
252
252
 
253
253
  Agent-Native Plans is structured visual planning mode for coding agents. Build
254
254
  the plan you would normally write in Markdown, but as a scannable document with
255
- editable blocks mixed in: an optional pan/zoom wireframe canvas on top and a
256
- Notion-like technical document below. The user reacts to visuals first and reads
257
- prose only where it helps.
255
+ editable blocks mixed in: an optional top visual review area (wireframe canvas,
256
+ live prototype, or both in tabs) and a Notion-like technical document below. The
257
+ user reacts to visuals first and reads prose only where it helps.
258
258
 
259
259
  \`/visual-plan\` is the canonical command and the main entry point. Use \`/ui-plan\`
260
260
  when the work is primarily product UI and review should start with the screens.
261
+ Use \`/prototype-plan\` when review should start with a functional live prototype.
262
+ Use \`/plan-design\` when review should start with full-fidelity branded design.
261
263
  Use \`/visual-questions\` only when the user explicitly wants a visual intake form
262
264
  before planning. Use \`/visualize-plan\` to turn an existing Codex, Claude Code,
263
265
  Markdown, or pasted plan into a visual companion.
@@ -286,9 +288,10 @@ direction before you implement.
286
288
  approach and options in the plan. Ask a clarifying question only when an
287
289
  ambiguity would change the design and you cannot resolve it from the code; use
288
290
  the host agent's normal ask-user-question flow and batch 2-4 high-leverage
289
- questions before finalizing. Do not create visual questions from \`/visual-plan\`.
290
- Otherwise state the assumption explicitly and proceed, and put anything
291
- unresolved in an open-questions block.
291
+ questions before finalizing. Do not call \`create-visual-questions\` from
292
+ \`/visual-plan\`; keep any answerable follow-up inside the plan itself as a
293
+ bottom \`question-form\` Open Questions block. Otherwise state the assumption
294
+ explicitly and proceed, and put anything unresolved in an open-questions block.
292
295
  - **The plan is the approval gate.** After surfacing it, ask the user to review
293
296
  and approve before you write code, and name which files/areas the work touches.
294
297
  Presenting the plan and requesting sign-off is the approval step — do not ask a
@@ -302,19 +305,22 @@ direction before you implement.
302
305
  1. Follow the host agent's normal planning flow: inspect the codebase, delegate
303
306
  wide exploration when useful, gather the info needed, and ask native
304
307
  clarifying questions as needed before generating the plan.
305
- 2. Call \`create-visual-plan\` with the title, brief, source, repo path, and
306
- structured \`content\` blocks.
307
- 3. Compose the canvas from the kit and write the document with native blocks
308
- (see the two cores below). Keep the document close to the Markdown plan the
309
- agent would normally output; add diagrams, wireframes, and visual callouts
310
- only where they clarify the plan. Skip the canvas for non-visual work.
308
+ 2. Decide the top visual surface with the rules below, then call
309
+ \`create-visual-plan\` with the title, brief, source, repo path, and structured \`content\` blocks.
310
+ 3. Compose any top visual surface from the kit and write the document with
311
+ native blocks (see the cores below). Keep the document close to the Markdown
312
+ plan the agent would normally output; add diagrams, wireframes, prototypes,
313
+ and visual callouts only where they clarify the plan. Skip the top visual
314
+ surface for non-visual work.
311
315
  4. Surface the returned Plans link or inline MCP App and ask the user to review.
312
316
  Always include the actual URL in chat so the next step is a click in CLI or
313
317
  other text-only hosts. When the host exposes an embedded browser/preview panel
314
318
  and a tool can open arbitrary URLs there, open the returned plan URL
315
319
  automatically for convenient review; do not rely on this as the only handoff.
316
320
  5. Call \`get-plan-feedback\` before editing, after review, after any long pause,
317
- and before the final response.
321
+ and before the final response. Treat \`anchorDetails\`, resolver intent, recent
322
+ review events, and any focused screenshots from browser handoff as the source
323
+ of truth for exactly what changed and exactly what each comment points at.
318
324
  6. Apply changes with \`update-visual-plan\`, preferring targeted \`contentPatches\`.
319
325
  When the user wants source-control friendly edits, use
320
326
  \`patch-visual-plan-source\` against the MDX files instead of regenerating the
@@ -322,6 +328,31 @@ direction before you implement.
322
328
  7. Export with \`export-visual-plan\` only when the user wants a shareable receipt
323
329
  or repo-check-in artifacts.
324
330
 
331
+ ## Visual Surface Choice
332
+
333
+ Choose the surface before creating the plan. Do not add visual chrome by
334
+ default:
335
+
336
+ - **No visual surface** for architecture-only, backend-only, data migration,
337
+ copy-only, or otherwise non-visual plans. Use a strong document with diagrams
338
+ only when relationships need a visual explanation.
339
+ - **Canvas only** for one static screen, a before/after comparison, a component
340
+ state, a small popover, or a visual direction that does not require clicking.
341
+ Put those wireframes in \`content.canvas\` and omit \`content.prototype\`.
342
+ - **Canvas + prototype** for multi-step UI flows, onboarding, wizards,
343
+ review/approval flows, navigation changes, or anything where the reviewer
344
+ needs to operate the behavior. Keep the static wireframes in
345
+ \`content.canvas\`, add the aligned functional prototype in
346
+ \`content.prototype\`, and rely on the top visual tabs to switch between them.
347
+ - **Prototype-first** when the user explicitly asks for \`/prototype-plan\`, asks
348
+ to operate the UI, or when interaction is the main question. Use
349
+ \`create-prototype-plan\`, which still preserves static mocks where useful.
350
+
351
+ For mixed canvas + prototype plans, reuse the same real labels, app statuses,
352
+ and screen ids across both surfaces. The canvas is the inspectable static reference;
353
+ the prototype is the interactive version of that same flow, not a separate
354
+ design direction.
355
+
325
356
  <!-- SHARED-CORE:wireframe-canvas START -->
326
357
 
327
358
  ## Wireframe & Canvas Core
@@ -482,13 +513,18 @@ hex colors:
482
513
  </div>
483
514
  \`\`\`
484
515
 
485
- **Mockups belong on the canvas.** When the user asks for a mockup, UI state,
486
- loading state, prototype, layout, screen, or visual comparison, make the top
487
- canvas the primary home for that visual. Document blocks can explain, compare,
488
- or map implementation, but they should not host the primary mockup just because
489
- \`custom-html\`, screenshots, or prose are easier to produce. If the canvas cannot
490
- represent the requested fidelity, still keep a canvas artboard and call out or
491
- extend the needed canvas renderer capability.
516
+ **Mockups belong in the top visual review area.** Static visuals live on the
517
+ canvas; multi-step flows get both canvas wireframes and a prototype. When the
518
+ user asks for a mockup, UI state, loading state, layout, screen, or visual
519
+ comparison, make the canvas the primary home for that static visual. When the
520
+ user asks for a prototype or the plan contains a sequence the reviewer must
521
+ feel, keep the canvas artboards and add \`content.prototype\` so the top surface
522
+ shows Wireframes / Prototype tabs. Document blocks can explain, compare, or map
523
+ implementation, but they should not host the primary mockup or prototype just
524
+ because \`custom-html\`, screenshots, or prose are easier to produce. If the
525
+ canvas/prototype surface cannot represent the requested fidelity, still keep the
526
+ closest top-surface representation and call out or extend the needed renderer
527
+ capability.
492
528
 
493
529
  **Legacy kit tree.** Older plans set a \`screen\` array of \`{ el, ...props }\` kit
494
530
  nodes instead of \`html\`; the renderer still accepts and displays it, but new
@@ -520,12 +556,14 @@ behavior). Replace vague prose with specifics; never ship a step like "make it
520
556
  work." No hero art, gradients, logos, nav bars, slogans, value props, giant
521
557
  landing-page headings, or marketing cards unless the user explicitly asks.
522
558
 
523
- **Canvas and document never duplicate each other.** The UI story lives on the
524
- canvas with on-canvas annotations; the document carries the technical depth the
525
- canvas cannot show concrete file/symbol maps, API and data contracts, code
526
- snippets, migration or implementation phases, risks, and validation. Repeat a
527
- wireframe in the document only for a genuinely new detail view or comparison.
528
- Skip the canvas entirely for non-visual work and write a clean rich document.
559
+ **Top visuals and document never duplicate each other.** The UI story lives in
560
+ the top visual surface: canvas artboards for static inspection, plus prototype
561
+ tabs when the flow should be functional. The document carries the technical depth
562
+ the visuals cannot show concrete file/symbol maps, API and data contracts,
563
+ code snippets, migration or implementation phases, risks, and validation. Repeat
564
+ a wireframe in the document only for a genuinely new detail view or comparison.
565
+ Skip the visual surface entirely for non-visual work and write a clean rich
566
+ document.
529
567
 
530
568
  **Use the right block, and make it carry substance.** For the authoritative,
531
569
  machine-checked list of block types and their data schemas, call \`get-plan-blocks\`
@@ -548,9 +586,14 @@ so you never emit a block the editor cannot render or round-trip:
548
586
  visual unless the tab is intentionally document-only.
549
587
  - \`table\`, \`checklist\`, \`callout\` for scannable structure.
550
588
 
551
- **Open questions are callouts, not buried prose.** Surface anything unresolved in
552
- a dedicated open-questions / needs-clarification block. Never put a
553
- questions/decisions wall inside the plan narrative.
589
+ **Open questions live at the bottom as a form when answers would change the
590
+ plan.** Surface answerable unresolved decisions in a final \`question-form\`
591
+ block titled "Open Questions". Use \`single\` or \`multi\` for clear choices,
592
+ \`freeform\` for constraints, \`recommended: true\` for the default you would pick,
593
+ and option \`wireframe\` / \`diagram\` previews for visual directions when useful.
594
+ Keep non-answerable assumptions or risks as concise \`callout\` blocks in the
595
+ relevant section. Never bury a questions/decisions wall inside the plan
596
+ narrative.
554
597
 
555
598
  **\`custom-html\` is a bounded escape hatch only** — a single complete fragment
556
599
  inside a block, never \`html\`/\`head\`/\`body\`/\`script\` tags, never a generic
@@ -582,22 +625,33 @@ designer notes sit spaced off the frame, pointing only at the controls that need
582
625
  explanation. Below it, a Claude/Codex-grade document: objective and
583
626
  done-criteria, an \`implementation-map\` naming the real components and actions
584
627
  with short highlighted snippets, a \`decision\` card weighing two real approaches,
585
- and a validation step — none of it repeating the canvas. This is the bar.
628
+ and a validation step — none of it repeating the canvas. If the task also
629
+ changes a multi-step completion flow, the same top area includes a Prototype tab
630
+ whose screens use the same labels and states as the canvas artboards, with
631
+ \`data-goto\` controls for the sequence. This is the bar.
586
632
 
587
633
  **BAD.** A \`data.html\` with hard-coded hex colors, a \`font-family\`, or fixed
588
634
  pixel width/height; gray placeholder bars "insinuating" text on a non-skeleton
589
635
  frame; a forced desktop + mobile pair for a popover; floating bordered
590
636
  annotation cards hugging the frames; a fresh hand-authored kit-tree \`screen\`
591
- instead of \`html\`; a mockup escaped into a document \`custom-html\` block; and a
592
- marketing-style document with a hero heading and value props that just restates
593
- what the canvas already shows. Never produce this.
637
+ instead of \`html\`; a multi-step UI flow with only static frames and no prototype
638
+ tab; a mockup escaped into a document \`custom-html\` block; and a marketing-style
639
+ document with a hero heading and value props that just restates what the canvas
640
+ already shows. Never produce this.
594
641
 
595
642
  <!-- SHARED-CORE:exemplar END -->
596
643
 
597
644
  ## Tool Guidance
598
645
 
599
- - \`create-visual-plan\`: start one structured visual plan per agent task/run.
646
+ - \`create-visual-plan\`: start one structured visual plan per agent task/run;
647
+ \`content\` may include no visual surface, canvas only, or canvas + prototype.
600
648
  - \`create-ui-plan\`: start a UI-first plan when the work is primarily product UI.
649
+ - \`create-prototype-plan\`: start a prototype-first plan with a functional top
650
+ review surface.
651
+ - \`create-plan-design\`: start a full-fidelity branded Design-tab plan with an
652
+ optional matching Prototype tab.
653
+ - \`convert-visual-plan-to-prototype\`: convert an existing HTML wireframe canvas
654
+ into a prototype plan.
601
655
  - \`create-visual-questions\`: use only for the explicit \`/visual-questions\`
602
656
  command, not as \`/visual-plan\` preflight.
603
657
  - \`visualize-plan\`: build a visual companion from an existing text plan.
@@ -610,7 +664,9 @@ what the canvas already shows. Never produce this.
610
664
  - \`import-visual-plan-source\`: create or replace a plan from an MDX folder.
611
665
  - \`get-visual-plan\`: read the current structured plan, exported HTML, and
612
666
  annotations; it also returns the MDX folder for source workflows.
613
- - \`get-plan-feedback\`: read unconsumed human feedback. Use it frequently.
667
+ - \`get-plan-feedback\`: read unconsumed human feedback. Use it frequently; it
668
+ returns grouped threads, exact anchor details, expected resolver, and recent
669
+ review-event payloads so agents can act only on the comments meant for them.
614
670
  - \`export-visual-plan\`: export HTML, Markdown fallback, structured JSON, and MDX
615
671
  files for repo check-in.
616
672
 
@@ -630,8 +686,8 @@ intended), so the first tool call does not hit an OAuth wall:
630
686
  agent-native skills add visual-plan
631
687
  \`\`\`
632
688
 
633
- After that, \`/visual-plan\` (and \`/ui-plan\`, \`/visual-questions\`,
634
- \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
689
+ After that, \`/visual-plan\` (and \`/ui-plan\`, \`/prototype-plan\`, \`/plan-design\`,
690
+ \`/visual-questions\`, \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
635
691
  register the connector without authenticating, then run
636
692
  \`agent-native connect https://plan.agent-native.com\` whenever you are ready.
637
693
 
@@ -668,14 +724,16 @@ metadata:
668
724
  # UI Plan
669
725
 
670
726
  Use \`/ui-plan\` when the task is primarily about product UI, user flows,
671
- interaction states, component layout, or visual direction. The reviewable UI
727
+ interaction details, component layout, or visual direction. The reviewable UI
672
728
  comes first; implementation detail comes after the user has something concrete to
673
729
  react to.
674
730
 
675
731
  \`/visual-plan\` remains the general command for architecture, backend, refactors,
676
- and mixed work. Use \`/visual-questions\` only when the user explicitly wants
677
- visual intake before planning, and \`/visualize-plan\` when a text plan already
678
- exists.
732
+ and mixed work. Use \`/prototype-plan\` when the UI review needs a functional live
733
+ prototype instead of static screens. Use \`/plan-design\` when polish, brand, or
734
+ visual fidelity are material to the decision. Use \`/visual-questions\` only when
735
+ the user explicitly wants visual intake before planning, and \`/visualize-plan\`
736
+ when a text plan already exists.
679
737
 
680
738
  ## Plan Discipline
681
739
 
@@ -691,9 +749,10 @@ exists.
691
749
  - **Clarify vs. assume.** Do not ask how to build the UI — present the direction
692
750
  and options as mockups and tabs. Ask a clarifying question only when an
693
751
  ambiguity would change the design; use the host agent's normal
694
- ask-user-question flow and batch 2-4 before finalizing. Do not create visual
695
- questions from \`/ui-plan\`. Otherwise state the assumption in the plan and
696
- proceed.
752
+ ask-user-question flow and batch 2-4 before finalizing. Do not call
753
+ \`create-visual-questions\` from \`/ui-plan\`; keep answerable follow-up inside
754
+ the same plan as a bottom \`question-form\` Open Questions block. Otherwise
755
+ state the assumption in the plan and proceed.
697
756
  - **The plan is the approval gate.** Ask the user to review and approve the UI
698
757
  direction before you write code, and name the files/areas the work touches.
699
758
 
@@ -711,10 +770,13 @@ exists.
711
770
  Markdown plan the agent would normally output — not a second copy of the
712
771
  canvas — covering concrete files, contracts, phases, risks, and validation.
713
772
  5. Call \`get-plan-feedback\` before implementation, after review, after a long
714
- pause, and before the final response. Apply changes with \`update-visual-plan\`,
715
- preferring \`contentPatches\` for one frame, annotation, node, tab, or block. When the user
716
- wants source-control friendly edits, use \`patch-visual-plan-source\` against
717
- the MDX files instead of regenerating the plan.
773
+ pause, and before the final response. Treat \`anchorDetails\`, resolver intent,
774
+ recent review events, and any focused screenshots from browser handoff as the
775
+ source of truth for exactly what changed and exactly what each UI comment
776
+ points at. Apply changes with \`update-visual-plan\`, preferring
777
+ \`contentPatches\` for one frame, annotation, node, tab, or block. When the
778
+ user wants source-control friendly edits, use \`patch-visual-plan-source\`
779
+ against the MDX files instead of regenerating the plan.
718
780
 
719
781
  ## Agent Handoff
720
782
 
@@ -883,13 +945,18 @@ hex colors:
883
945
  </div>
884
946
  \`\`\`
885
947
 
886
- **Mockups belong on the canvas.** When the user asks for a mockup, UI state,
887
- loading state, prototype, layout, screen, or visual comparison, make the top
888
- canvas the primary home for that visual. Document blocks can explain, compare,
889
- or map implementation, but they should not host the primary mockup just because
890
- \`custom-html\`, screenshots, or prose are easier to produce. If the canvas cannot
891
- represent the requested fidelity, still keep a canvas artboard and call out or
892
- extend the needed canvas renderer capability.
948
+ **Mockups belong in the top visual review area.** Static visuals live on the
949
+ canvas; multi-step flows get both canvas wireframes and a prototype. When the
950
+ user asks for a mockup, UI state, loading state, layout, screen, or visual
951
+ comparison, make the canvas the primary home for that static visual. When the
952
+ user asks for a prototype or the plan contains a sequence the reviewer must
953
+ feel, keep the canvas artboards and add \`content.prototype\` so the top surface
954
+ shows Wireframes / Prototype tabs. Document blocks can explain, compare, or map
955
+ implementation, but they should not host the primary mockup or prototype just
956
+ because \`custom-html\`, screenshots, or prose are easier to produce. If the
957
+ canvas/prototype surface cannot represent the requested fidelity, still keep the
958
+ closest top-surface representation and call out or extend the needed renderer
959
+ capability.
893
960
 
894
961
  **Legacy kit tree.** Older plans set a \`screen\` array of \`{ el, ...props }\` kit
895
962
  nodes instead of \`html\`; the renderer still accepts and displays it, but new
@@ -921,12 +988,14 @@ behavior). Replace vague prose with specifics; never ship a step like "make it
921
988
  work." No hero art, gradients, logos, nav bars, slogans, value props, giant
922
989
  landing-page headings, or marketing cards unless the user explicitly asks.
923
990
 
924
- **Canvas and document never duplicate each other.** The UI story lives on the
925
- canvas with on-canvas annotations; the document carries the technical depth the
926
- canvas cannot show concrete file/symbol maps, API and data contracts, code
927
- snippets, migration or implementation phases, risks, and validation. Repeat a
928
- wireframe in the document only for a genuinely new detail view or comparison.
929
- Skip the canvas entirely for non-visual work and write a clean rich document.
991
+ **Top visuals and document never duplicate each other.** The UI story lives in
992
+ the top visual surface: canvas artboards for static inspection, plus prototype
993
+ tabs when the flow should be functional. The document carries the technical depth
994
+ the visuals cannot show concrete file/symbol maps, API and data contracts,
995
+ code snippets, migration or implementation phases, risks, and validation. Repeat
996
+ a wireframe in the document only for a genuinely new detail view or comparison.
997
+ Skip the visual surface entirely for non-visual work and write a clean rich
998
+ document.
930
999
 
931
1000
  **Use the right block, and make it carry substance.** For the authoritative,
932
1001
  machine-checked list of block types and their data schemas, call \`get-plan-blocks\`
@@ -949,9 +1018,14 @@ so you never emit a block the editor cannot render or round-trip:
949
1018
  visual unless the tab is intentionally document-only.
950
1019
  - \`table\`, \`checklist\`, \`callout\` for scannable structure.
951
1020
 
952
- **Open questions are callouts, not buried prose.** Surface anything unresolved in
953
- a dedicated open-questions / needs-clarification block. Never put a
954
- questions/decisions wall inside the plan narrative.
1021
+ **Open questions live at the bottom as a form when answers would change the
1022
+ plan.** Surface answerable unresolved decisions in a final \`question-form\`
1023
+ block titled "Open Questions". Use \`single\` or \`multi\` for clear choices,
1024
+ \`freeform\` for constraints, \`recommended: true\` for the default you would pick,
1025
+ and option \`wireframe\` / \`diagram\` previews for visual directions when useful.
1026
+ Keep non-answerable assumptions or risks as concise \`callout\` blocks in the
1027
+ relevant section. Never bury a questions/decisions wall inside the plan
1028
+ narrative.
955
1029
 
956
1030
  **\`custom-html\` is a bounded escape hatch only** — a single complete fragment
957
1031
  inside a block, never \`html\`/\`head\`/\`body\`/\`script\` tags, never a generic
@@ -983,21 +1057,31 @@ designer notes sit spaced off the frame, pointing only at the controls that need
983
1057
  explanation. Below it, a Claude/Codex-grade document: objective and
984
1058
  done-criteria, an \`implementation-map\` naming the real components and actions
985
1059
  with short highlighted snippets, a \`decision\` card weighing two real approaches,
986
- and a validation step — none of it repeating the canvas. This is the bar.
1060
+ and a validation step — none of it repeating the canvas. If the task also
1061
+ changes a multi-step completion flow, the same top area includes a Prototype tab
1062
+ whose screens use the same labels and states as the canvas artboards, with
1063
+ \`data-goto\` controls for the sequence. This is the bar.
987
1064
 
988
1065
  **BAD.** A \`data.html\` with hard-coded hex colors, a \`font-family\`, or fixed
989
1066
  pixel width/height; gray placeholder bars "insinuating" text on a non-skeleton
990
1067
  frame; a forced desktop + mobile pair for a popover; floating bordered
991
1068
  annotation cards hugging the frames; a fresh hand-authored kit-tree \`screen\`
992
- instead of \`html\`; a mockup escaped into a document \`custom-html\` block; and a
993
- marketing-style document with a hero heading and value props that just restates
994
- what the canvas already shows. Never produce this.
1069
+ instead of \`html\`; a multi-step UI flow with only static frames and no prototype
1070
+ tab; a mockup escaped into a document \`custom-html\` block; and a marketing-style
1071
+ document with a hero heading and value props that just restates what the canvas
1072
+ already shows. Never produce this.
995
1073
 
996
1074
  <!-- SHARED-CORE:exemplar END -->
997
1075
 
998
1076
  ## Tool Guidance
999
1077
 
1000
1078
  - \`create-ui-plan\`: create the UI-first structured visual plan.
1079
+ - \`create-prototype-plan\`: create a prototype-first plan when UI review needs a
1080
+ functional live prototype.
1081
+ - \`create-plan-design\`: create a full-fidelity branded design plan when polish,
1082
+ brand, and detailed visual direction are primary review inputs.
1083
+ - \`convert-visual-plan-to-prototype\`: convert an existing HTML wireframe canvas
1084
+ into a prototype plan.
1001
1085
  - \`create-visual-questions\`: use only for the explicit \`/visual-questions\`
1002
1086
  command, not as \`/ui-plan\` preflight.
1003
1087
  - \`update-visual-plan\`: revise content, mockups, comments, or handoff notes;
@@ -1009,7 +1093,9 @@ what the canvas already shows. Never produce this.
1009
1093
  - \`import-visual-plan-source\`: create or replace a plan from an MDX folder.
1010
1094
  - \`get-visual-plan\`: inspect the current structured plan, exported HTML, and
1011
1095
  annotations; it also returns the MDX folder for source workflows.
1012
- - \`get-plan-feedback\`: read unconsumed reviewer comments before coding.
1096
+ - \`get-plan-feedback\`: read unconsumed reviewer comments before coding; it
1097
+ returns grouped threads, exact anchor details, expected resolver, and recent
1098
+ review-event payloads so agents can act only on the comments meant for them.
1013
1099
  - \`export-visual-plan\`: export HTML, Markdown fallback, structured JSON, and MDX
1014
1100
  files for repo check-in.
1015
1101
 
@@ -1029,8 +1115,8 @@ intended), so the first tool call does not hit an OAuth wall:
1029
1115
  agent-native skills add visual-plan
1030
1116
  \`\`\`
1031
1117
 
1032
- After that, \`/visual-plan\` (and \`/ui-plan\`, \`/visual-questions\`,
1033
- \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
1118
+ After that, \`/visual-plan\` (and \`/ui-plan\`, \`/prototype-plan\`, \`/plan-design\`,
1119
+ \`/visual-questions\`, \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
1034
1120
  register the connector without authenticating, then run
1035
1121
  \`agent-native connect https://plan.agent-native.com\` whenever you are ready.
1036
1122
 
@@ -1054,6 +1140,275 @@ is available.
1054
1140
  Hosted default: connect \`https://plan.agent-native.com/_agent-native/mcp\`. Do
1055
1141
  not put shared secrets in skill files.
1056
1142
  `;
1143
+ export const PROTOTYPE_PLAN_SKILL_MD = `---
1144
+ name: prototype-plan
1145
+ description: >-
1146
+ Use Agent-Native Plans for /prototype-plan when work needs a functional
1147
+ prototype-first plan, static mocks, comments, review toggles, or conversion
1148
+ from a visual plan.
1149
+ metadata:
1150
+ visibility: exported
1151
+ ---
1152
+
1153
+ # Prototype Plan
1154
+
1155
+ \`/prototype-plan\` creates a plan whose primary review surface is a live,
1156
+ functional prototype above the document. Use it when the user needs to feel a
1157
+ flow, operate basic UI state, or comment on interaction before implementation
1158
+ hardens the decision.
1159
+
1160
+ ## Rule
1161
+
1162
+ Make the prototype answer a concrete question. The plan should say what is being
1163
+ tested, show the functional prototype first, then keep static mocks and implementation
1164
+ notes in the document below.
1165
+
1166
+ ## When To Use
1167
+
1168
+ Use \`/prototype-plan\` when the user asks for a prototype, wants to click through
1169
+ and operate UI states, needs design review before code, wants comments pinned to
1170
+ live screens, or asks to move a visual plan into a prototype.
1171
+
1172
+ Prefer \`/visual-plan\` for architecture, data flow, or non-interactive planning.
1173
+ Prefer \`/ui-plan\` when static screen review is enough. Use \`/visualize-plan\`
1174
+ first only when the user hands you an existing Markdown/Codex/Claude plan that
1175
+ needs a visual companion before becoming interactive.
1176
+
1177
+ ## Core Workflow
1178
+
1179
+ 1. Inspect the real codebase and decide the question the prototype should
1180
+ answer. Good examples: "Does this onboarding flow feel short enough?" or
1181
+ "Which dashboard density should we implement?"
1182
+ 2. Call \`create-prototype-plan\` with a title, brief, and screen HTML. Default to
1183
+ one functional prototype screen when local UI behavior is enough; use 2-4
1184
+ screens only for true routes, steps, or materially different contexts. The
1185
+ returned plan opens with the prototype viewer on top and static mocks, flow
1186
+ diagram, implementation map, and verification below.
1187
+ 3. Make controls actually work. Use the renderer's safe Alpine-like directives:
1188
+ \`x-data\`, \`x-model\`, \`x-for\`, \`x-text\`, \`x-show\`, \`:class\`, \`@click\`, and
1189
+ \`@keydown.enter\`. Use safe helper verbs such as \`remove(list, item)\`,
1190
+ \`setAll(list, 'done', true)\`, \`removeWhere(list, 'done', true)\`, and counters
1191
+ such as \`count(list)\`, \`countWhere(list, 'done', true)\`, and
1192
+ \`remaining(list, 'done')\` when they help. Use \`data-goto="screen-id"\` only
1193
+ for true screen/route changes, not for every button press.
1194
+ 4. Show important app feedback inside the prototype itself: selected filters,
1195
+ checked rows, typed drafts, validation messages, permissions, progress, or
1196
+ empty states.
1197
+ 5. Surface the returned Plans link and ask the user to click through, comment on
1198
+ the prototype or static mocks, and approve the direction before code changes.
1199
+ 6. Before implementing or revising, call \`get-plan-feedback\`. Treat prototype
1200
+ anchors, screenshots, and resolver intent as the source of truth.
1201
+ 7. Update with \`update-visual-plan\` content patches. Use
1202
+ \`patch-prototype-html\`, \`update-prototype-screen\`, or \`set-prototype\` for
1203
+ targeted prototype edits instead of regenerating the whole plan.
1204
+
1205
+ ## Converting A Visual Plan
1206
+
1207
+ When a visual plan already has HTML canvas wireframes, call
1208
+ \`convert-visual-plan-to-prototype\` with the plan id. This derives prototype
1209
+ screens from the canvas frames, preserves the canvas/static mocks by default,
1210
+ and changes the top review surface to the prototype viewer.
1211
+
1212
+ Use \`removeCanvas: true\` only when the user explicitly wants the old canvas
1213
+ gone. Otherwise keep static mocks available for source export and detailed
1214
+ review.
1215
+
1216
+ ## Prototype Screen HTML
1217
+
1218
+ Write bounded semantic HTML fragments only:
1219
+
1220
+ \`\`\`html
1221
+ <div style="display:flex;flex-direction:column;gap:14px;padding:18px;height:100%">
1222
+ <header style="display:flex;justify-content:space-between;gap:12px">
1223
+ <div>
1224
+ <h1>Launch checklist</h1>
1225
+ <p class="wf-muted">Reviewer can add, complete, filter, and remove tasks.</p>
1226
+ </div>
1227
+ <span class="wf-pill accent">Live prototype</span>
1228
+ </header>
1229
+ <section
1230
+ class="wf-card"
1231
+ x-data="{ draft: '', filter: 'all', todos: [{ text: 'Check copy', done: false }, { text: 'Confirm owner', done: true }] }"
1232
+ style="display:flex;flex-direction:column;gap:10px"
1233
+ >
1234
+ <div style="display:flex;gap:8px">
1235
+ <input x-model="draft" @keydown.enter="draft && todos.push({ text: draft, done: false }); draft = ''" placeholder="Add task" />
1236
+ <button class="primary" @click="draft && todos.push({ text: draft, done: false }); draft = ''">Add</button>
1237
+ </div>
1238
+ <div style="display:flex;gap:8px">
1239
+ <button @click="filter = 'all'" :class="{ primary: filter === 'all' }">All</button>
1240
+ <button @click="filter = 'done'" :class="{ primary: filter === 'done' }">Done</button>
1241
+ <button @click="setAll(todos, 'done', true)">Mark all done</button>
1242
+ </div>
1243
+ <p class="wf-muted"><span x-text="remaining(todos, 'done')"></span> open / <span x-text="count(todos)"></span> total</p>
1244
+ <div
1245
+ class="wf-box"
1246
+ x-for="todo in todos"
1247
+ x-show="filter === 'all' || (filter === 'done' && todo.done)"
1248
+ :class="{ 'is-done': todo.done }"
1249
+ style="display:flex;justify-content:space-between;gap:10px"
1250
+ >
1251
+ <label style="display:flex;gap:8px"><input type="checkbox" x-model="todo.done" /><span x-text="todo.text"></span></label>
1252
+ <button @click="remove(todos, todo)">Remove</button>
1253
+ </div>
1254
+ <button @click="removeWhere(todos, 'done', true)">Clear completed</button>
1255
+ </section>
1256
+ </div>
1257
+ \`\`\`
1258
+
1259
+ Use real labels, counts, dates, and controls grounded in the target app. Keep
1260
+ surfaces honest: \`browser\` for web pages, \`desktop\` for app shells, \`mobile\`
1261
+ only for real mobile work, \`panel\` for side panels, and \`popover\` for menus.
1262
+
1263
+ Do not include \`<html>\`, \`<body>\`, \`<script>\`, \`<style>\`, browser \`on*\`
1264
+ handler attributes such as \`onclick\`, fake APIs, raw secrets, or customer data.
1265
+ The renderer owns sketchy/clean mode, theme, surface sizing, rough outlines, and
1266
+ comment overlays.
1267
+
1268
+ ## Review Surface
1269
+
1270
+ Prototype plans support:
1271
+
1272
+ - real local controls through safe prototype directives
1273
+ - optional screen/route transitions from \`data-goto\`
1274
+ - rough vs clean mode through the shared wireframe toggle
1275
+ - dark vs light mode through the shared theme toggle
1276
+ - comment visibility from the prototype toolbar
1277
+ - Figma-style comments pinned directly on live prototype screens
1278
+ - a popout URL with \`?prototype=1\` for focused browser review
1279
+ - static wireframe mocks in the document body where they help implementation
1280
+
1281
+ ## Source Files
1282
+
1283
+ Runtime JSON is canonical. Source export uses:
1284
+
1285
+ - \`plan.mdx\` for document blocks
1286
+ - \`prototype.mdx\` for \`<Prototype>\`, \`<PrototypeScreen>\`, and
1287
+ \`<PrototypeTransition>\`
1288
+ - \`canvas.mdx\` for static mocks when a canvas is present
1289
+ - \`.plan-state.json\` for persisted viewport state
1290
+
1291
+ Patch source with \`patch-visual-plan-source\` only when the user wants
1292
+ source-control friendly edits. Patch runtime content when the user is simply
1293
+ reviewing and iterating.
1294
+
1295
+ ## Related Skills
1296
+
1297
+ - \`visual-plan\`
1298
+ - \`ui-plan\`
1299
+ - \`visualize-plan\`
1300
+ - \`visual-questions\`
1301
+ `;
1302
+ export const PLAN_DESIGN_SKILL_MD = [
1303
+ "---",
1304
+ "name: plan-design",
1305
+ "description: >-",
1306
+ " Use Agent-Native Plans for full-fidelity UI design planning with a Design",
1307
+ " canvas tab and optional interactive Prototype tab before implementation.",
1308
+ "metadata:",
1309
+ " visibility: exported",
1310
+ "---",
1311
+ "",
1312
+ "# Plan Design",
1313
+ "",
1314
+ "Use `/plan-design` when the user needs a high-fidelity product design before",
1315
+ "implementation: polished branded screens, realistic content, visual direction,",
1316
+ "and interaction review. It is the full-fidelity companion to `/visual-plan` and",
1317
+ "`/prototype-plan`: the top review surface should show `Design` and, when the",
1318
+ "flow needs interaction, `Prototype`.",
1319
+ "",
1320
+ "## When To Use",
1321
+ "",
1322
+ "Use this for UI-heavy work where brand, visual hierarchy, polished layout, or",
1323
+ "interaction feel are material to the decision. Skip it for small copy, spacing,",
1324
+ "or obvious component changes.",
1325
+ "",
1326
+ "## Research First",
1327
+ "",
1328
+ "Before creating the plan:",
1329
+ "",
1330
+ "1. Inspect the real app shell, routes, components, CSS variables, Tailwind",
1331
+ " tokens, theme files, and any relevant screenshots.",
1332
+ "2. If `design.md` exists, treat it as the primary design brief and pass its",
1333
+ " important content into `create-plan-design.designMd`.",
1334
+ "3. If a `.fig` local-copy file or parsed brand kit is available, use the",
1335
+ " Design/brand-kit parsing actions from the app or shared tooling first, then",
1336
+ " pass the extracted token summary into `brandKit`.",
1337
+ "4. Parse existing codebase style info when possible: CSS custom properties,",
1338
+ " Tailwind config, global CSS, font declarations, spacing/radius tokens, and",
1339
+ " component conventions. Pass the compact evidence into `codebaseStyles`.",
1340
+ "5. Ground every screen in actual product content. Avoid lorem ipsum, generic",
1341
+ " marketing filler, and placeholder gray boxes unless designing an explicit",
1342
+ " loading state.",
1343
+ "",
1344
+ "## Create The Plan",
1345
+ "",
1346
+ "Call `create-plan-design` with:",
1347
+ "",
1348
+ "- `title`, `brief`, `repoPath`, and any `implementationNotes`.",
1349
+ "- `designMd`, `brandKit`, `codebaseStyles`, or `designNotes` when available.",
1350
+ "- `screens`: one to six full-fidelity HTML/CSS screen fragments. Each screen",
1351
+ " must include a bounded `html` fragment, optional scoped `css`, a `surface`,",
1352
+ " and stable `data-design-id` attributes on elements a reviewer might edit.",
1353
+ "- `transitions` only when the Prototype tab should support true screen/step",
1354
+ ' navigation. Use `data-goto="screen-id"` in the screen HTML for those controls.',
1355
+ "",
1356
+ "The Design tab is the visual source of truth. The Prototype tab is for behavior",
1357
+ "and should reuse the same visual styling where practical. Do not create a",
1358
+ "separate design direction in the prototype.",
1359
+ "",
1360
+ "## Full-Fidelity HTML Rules",
1361
+ "",
1362
+ "- Write bounded fragments only: no `<html>`, `<head>`, `<body>`, `<script>`,",
1363
+ " `<style>`, external imports, iframes, SVG, or executable URLs.",
1364
+ "- Put CSS in the screen `css` field. The renderer scopes it to the artboard.",
1365
+ "- Use real CSS and CSS variables. Tailwind-like class names are fine only when",
1366
+ " the provided `css` defines them or the classes are harmless semantic hooks.",
1367
+ '- Use `renderMode: "design"` on design screen data when authoring full',
1368
+ " structured content directly.",
1369
+ '- Add `data-design-id="meaningful-name"` to editable elements such as hero',
1370
+ " panels, key buttons, cards, nav items, pricing rows, chart panels, and state",
1371
+ " chips. Keep ids stable and descriptive.",
1372
+ "- Keep the design responsive within the selected surface. Text must not clip,",
1373
+ " overlap, or rely on viewport-sized type.",
1374
+ "",
1375
+ "## Targeted Style Edits",
1376
+ "",
1377
+ "When a reviewer selects an element in the Design tab or asks for a specific",
1378
+ "style change, avoid regenerating the whole plan. Use:",
1379
+ "",
1380
+ "```json",
1381
+ "{",
1382
+ ' "op": "update-design-element-style",',
1383
+ ' "frameId": "frame-overview",',
1384
+ ' "elementId": "primary-cta",',
1385
+ ' "styles": {',
1386
+ ' "background-color": "#0f766e",',
1387
+ ' "border-radius": "10px"',
1388
+ " }",
1389
+ "}",
1390
+ "```",
1391
+ "",
1392
+ "Use `frameId` for inline canvas designs or `blockId` for a referenced wireframe",
1393
+ "block. Set a style value to `null` to remove it. Use `patch-wireframe-html` or",
1394
+ "`patch-prototype-html` for text/content changes inside a fragment.",
1395
+ "",
1396
+ "## Document Handoff",
1397
+ "",
1398
+ "Below the visual surface, keep the document concise and implementation-oriented:",
1399
+ "actual files and symbols, state/actions/contracts, open questions, risks, and",
1400
+ "verification. The document should not repeat the same screens in prose.",
1401
+ "",
1402
+ "Before implementation, call `get-plan-feedback` and treat comments, selected",
1403
+ "element details, and recent review events as the source of truth.",
1404
+ "",
1405
+ "## Related Skills",
1406
+ "",
1407
+ "- `visual-plan`",
1408
+ "- `ui-plan`",
1409
+ "- `prototype-plan`",
1410
+ "- `frontend-design`",
1411
+ ].join("\n") + "\n";
1057
1412
  export const VISUAL_QUESTIONS_SKILL_MD = `---
1058
1413
  name: visual-questions
1059
1414
  description: >-
@@ -1069,8 +1424,8 @@ metadata:
1069
1424
  Use \`/visual-questions\` when the next best step is not a plan yet, but a
1070
1425
  reviewable visual intake: single-choice chips, multi-select chips, freeform
1071
1426
  notes, mockup choices, sketch diagrams, and a generated answer summary that feeds
1072
- the next planning prompt. It composes with \`/visual-plan\`, \`/ui-plan\`, and
1073
- \`/visualize-plan\`.
1427
+ the next planning prompt. It composes with \`/visual-plan\`, \`/ui-plan\`,
1428
+ \`/prototype-plan\`, \`/plan-design\`, and \`/visualize-plan\`.
1074
1429
 
1075
1430
  ## When To Use
1076
1431
 
@@ -1081,11 +1436,11 @@ the next planning prompt. It composes with \`/visual-plan\`, \`/ui-plan\`, and
1081
1436
  than answering text-only prompts.
1082
1437
 
1083
1438
  Gate hard: skip this for tiny, unambiguous changes. If the agent can reasonably
1084
- infer the answer, prefer \`/ui-plan\` or \`/visual-plan\` directly and put
1085
- assumptions in the plan.
1439
+ infer the answer, prefer \`/ui-plan\`, \`/prototype-plan\`, \`/plan-design\`, or
1440
+ \`/visual-plan\` directly and put assumptions in the plan.
1086
1441
 
1087
1442
  Visual questions are an explicit intake command, not an automatic preflight for
1088
- \`/visual-plan\` or \`/ui-plan\`.
1443
+ \`/visual-plan\`, \`/ui-plan\`, \`/prototype-plan\`, or \`/plan-design\`.
1089
1444
 
1090
1445
  ## Workflow
1091
1446
 
@@ -1094,10 +1449,12 @@ Visual questions are an explicit intake command, not an automatic preflight for
1094
1449
  2. Omit \`questions\` for the default UI intake. Provide a custom \`questions\` array
1095
1450
  only when the task has domain-specific choices.
1096
1451
  3. Surface the returned Plans link and ask the user to answer visually.
1097
- 4. The generated summary drives the next step: \`create-ui-plan\` for UI flows,
1452
+ 4. The generated summary drives the next step: \`create-ui-plan\` for static UI
1453
+ review, \`create-prototype-plan\` for click-through UI flows,
1454
+ \`create-plan-design\` for high-fidelity branded UI review,
1098
1455
  \`create-visual-plan\` for general plans, \`visualize-plan\` when a text plan
1099
- already exists, or \`update-visual-plan\` with targeted \`contentPatches\` to fold
1100
- answers into an active plan.
1456
+ already exists, or \`update-visual-plan\` with targeted \`contentPatches\` to
1457
+ fold answers into an active plan.
1101
1458
  5. If the user leaves comments, call \`get-plan-feedback\` before using the answers.
1102
1459
 
1103
1460
  ## Question Types
@@ -1132,6 +1489,10 @@ desktop/mobile pair for a popover, panel, or component.
1132
1489
  - \`get-visual-plan\`: inspect the current visual question plan.
1133
1490
  - \`get-plan-feedback\`: read comments before creating or updating the next plan.
1134
1491
  - \`create-ui-plan\`: create a UI-first plan from the answers.
1492
+ - \`create-prototype-plan\`: create a prototype-first plan from the answers when
1493
+ interaction feel matters.
1494
+ - \`create-plan-design\`: create a high-fidelity branded design plan from the
1495
+ answers when visual polish is the primary review input.
1135
1496
  - \`create-visual-plan\`: create a general visual plan from the answers.
1136
1497
  - \`visualize-plan\`: enrich an existing text plan after answers are gathered.
1137
1498
  - \`export-visual-plan\`: export answer plans as HTML, Markdown fallback,
@@ -1152,8 +1513,8 @@ intended), so the first tool call does not hit an OAuth wall:
1152
1513
  agent-native skills add visual-plan
1153
1514
  \`\`\`
1154
1515
 
1155
- After that, \`/visual-plan\` (and \`/ui-plan\`, \`/visual-questions\`,
1156
- \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
1516
+ After that, \`/visual-plan\` (and \`/ui-plan\`, \`/prototype-plan\`, \`/plan-design\`,
1517
+ \`/visual-questions\`, \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
1157
1518
  register the connector without authenticating, then run
1158
1519
  \`agent-native connect https://plan.agent-native.com\` whenever you are ready.
1159
1520
 
@@ -1181,8 +1542,8 @@ export const VISUALIZE_PLAN_SKILL_MD = `---
1181
1542
  name: visualize-plan
1182
1543
  description: >-
1183
1544
  Convert an existing Codex, Claude Code, Markdown, or pasted plan into an
1184
- Agent-Native Plans visual companion with diagrams, wireframes, annotations, and
1185
- feedback.
1545
+ Agent-Native Plans visual companion with diagrams, wireframes, prototypes,
1546
+ annotations, and feedback.
1186
1547
  metadata:
1187
1548
  visibility: exported
1188
1549
  ---
@@ -1192,8 +1553,14 @@ metadata:
1192
1553
  Use \`/visualize-plan\` when a plan already exists and the user wants it easier to
1193
1554
  review. The native Codex or Claude Code plan can stay where it is; Agent-Native
1194
1555
  Plans creates a structured visual companion beside it — diagrams, wireframes,
1195
- state sketches, option cards, and comment prompts instead of a wall of text. It
1196
- still reads like a plan, not a marketing page.
1556
+ state sketches, functional prototypes, option cards, and comment prompts instead
1557
+ of a wall of text. It still reads like a plan, not a marketing page.
1558
+
1559
+ Use \`/prototype-plan\` instead when the user wants a functional prototype as the first
1560
+ artifact and there is no text plan to preserve. When a text plan already exists,
1561
+ \`/visualize-plan\` should decide whether it needs no visual surface, canvas only,
1562
+ or canvas + prototype; call \`convert-visual-plan-to-prototype\` after
1563
+ visualization when its HTML wireframes should drive a prototype review.
1197
1564
 
1198
1565
  ## Plan Discipline
1199
1566
 
@@ -1205,30 +1572,66 @@ still reads like a plan, not a marketing page.
1205
1572
  edits while building or reviewing the companion.
1206
1573
  - **The companion is the approval gate.** Ask the user to review and approve the
1207
1574
  direction before you write code, and name which files/areas the work touches.
1208
- Carry unresolved assumptions and open questions into a clear block instead of
1209
- guessing silently.
1575
+ Carry answerable unresolved assumptions and open questions into a bottom
1576
+ \`question-form\` block instead of guessing silently.
1210
1577
 
1211
1578
  ## Workflow
1212
1579
 
1213
1580
  1. Gather the existing plan text from the user's paste, a referenced file, or
1214
1581
  recent visible agent context. Do not invent the source plan. If no plan text
1215
- exists and the work is UI-heavy, use \`/ui-plan\` instead.
1582
+ exists and the work is UI-heavy, use \`/ui-plan\` or \`/prototype-plan\` instead.
1216
1583
  2. Call \`visualize-plan\` with \`planText\`, \`title\`, \`brief\`, \`source\`, and
1217
1584
  \`repoPath\` when available.
1218
1585
  3. Surface the returned Plans link or inline MCP App.
1219
- 4. Enrich the import with \`update-visual-plan\` (prefer targeted \`contentPatches\`):
1220
- add a canvas with wireframes for user-visible UI, diagrams for architecture or
1221
- data flow, option cards for real tradeoffs, and explicit open questions. Apply
1222
- the two cores below the companion must meet the same quality bar as a fresh
1223
- plan, not be a thinner ruleset. Label inferred visuals as inferred. When the
1224
- user wants source-control friendly edits, use \`patch-visual-plan-source\`
1225
- against the MDX files instead of regenerating the plan.
1586
+ 4. Decide the top visual surface with the rules below, then enrich the import
1587
+ with \`update-visual-plan\` (prefer targeted \`contentPatches\`): add canvas
1588
+ wireframes for user-visible UI, add \`content.prototype\` for multi-step flows,
1589
+ add diagrams for architecture or data flow, add option cards for real
1590
+ tradeoffs, and add explicit open questions. Apply the two cores below the
1591
+ companion must meet the same quality bar as a fresh plan, not be a thinner
1592
+ ruleset. Label inferred visuals as inferred. When the user wants
1593
+ source-control friendly edits, use \`patch-visual-plan-source\` against the MDX
1594
+ files instead of regenerating the plan. If the user asks to make the visual
1595
+ companion functional and the canvas contains HTML wireframes, call
1596
+ \`convert-visual-plan-to-prototype\`.
1226
1597
  5. Ask the user to react, then call \`get-plan-feedback\` before implementing,
1227
1598
  after review, and before the final response.
1228
1599
  6. Treat imported text as source material. The structured visual plan and
1229
1600
  comments are the review surface; HTML is the export receipt. Do not replace a
1230
1601
  native plan unless the user asks.
1231
1602
 
1603
+ ## Visual Surface Choice
1604
+
1605
+ Choose the surface after reading the source plan and before enriching it. Do not
1606
+ add visual chrome by default:
1607
+
1608
+ - **No visual surface** when the imported plan is architecture-only,
1609
+ backend-only, data migration, copy-only, or otherwise non-visual. Keep the
1610
+ companion as a strong document and add diagrams only when relationships need a
1611
+ visual explanation.
1612
+ - **Canvas only** when the source plan includes one static screen, a before/after
1613
+ comparison, a component state, a small popover, or a visual direction that does
1614
+ not require clicking. Put those wireframes in \`content.canvas\` and omit
1615
+ \`content.prototype\`.
1616
+ - **Canvas + prototype** when the source plan describes a multi-step UI flow,
1617
+ meaningful interactive app behavior, onboarding, wizard, review/approval flow,
1618
+ navigation change, or any sequence the reviewer needs to operate. Keep the
1619
+ static wireframes in
1620
+ \`content.canvas\`, add the aligned functional prototype in
1621
+ \`content.prototype\`, and rely on the top visual tabs to switch between them.
1622
+ - **Prototype-first conversion** when an already-visualized plan's HTML
1623
+ wireframes should become functional. Use \`convert-visual-plan-to-prototype\` for
1624
+ an existing canvas, or \`update-visual-plan\` with \`set-prototype\` when the
1625
+ imported plan needs a hand-authored prototype that does not map cleanly from
1626
+ the canvas. Keep static mocks unless the user explicitly asks to remove them.
1627
+
1628
+ For mixed canvas + prototype companions, reuse the same real labels, states, and
1629
+ screen ids across both surfaces. The canvas is the inspectable static reference;
1630
+ the prototype is the interactive version of that same flow, not a separate
1631
+ design direction. If the imported plan only has text, add HTML wireframes before
1632
+ calling \`convert-visual-plan-to-prototype\`; never convert a diagram-only or
1633
+ empty canvas into a fake prototype.
1634
+
1232
1635
  <!-- SHARED-CORE:wireframe-canvas START -->
1233
1636
 
1234
1637
  ## Wireframe & Canvas Core
@@ -1389,13 +1792,18 @@ hex colors:
1389
1792
  </div>
1390
1793
  \`\`\`
1391
1794
 
1392
- **Mockups belong on the canvas.** When the user asks for a mockup, UI state,
1393
- loading state, prototype, layout, screen, or visual comparison, make the top
1394
- canvas the primary home for that visual. Document blocks can explain, compare,
1395
- or map implementation, but they should not host the primary mockup just because
1396
- \`custom-html\`, screenshots, or prose are easier to produce. If the canvas cannot
1397
- represent the requested fidelity, still keep a canvas artboard and call out or
1398
- extend the needed canvas renderer capability.
1795
+ **Mockups belong in the top visual review area.** Static visuals live on the
1796
+ canvas; multi-step flows get both canvas wireframes and a prototype. When the
1797
+ user asks for a mockup, UI state, loading state, layout, screen, or visual
1798
+ comparison, make the canvas the primary home for that static visual. When the
1799
+ user asks for a prototype or the plan contains a sequence the reviewer must
1800
+ feel, keep the canvas artboards and add \`content.prototype\` so the top surface
1801
+ shows Wireframes / Prototype tabs. Document blocks can explain, compare, or map
1802
+ implementation, but they should not host the primary mockup or prototype just
1803
+ because \`custom-html\`, screenshots, or prose are easier to produce. If the
1804
+ canvas/prototype surface cannot represent the requested fidelity, still keep the
1805
+ closest top-surface representation and call out or extend the needed renderer
1806
+ capability.
1399
1807
 
1400
1808
  **Legacy kit tree.** Older plans set a \`screen\` array of \`{ el, ...props }\` kit
1401
1809
  nodes instead of \`html\`; the renderer still accepts and displays it, but new
@@ -1427,12 +1835,14 @@ behavior). Replace vague prose with specifics; never ship a step like "make it
1427
1835
  work." No hero art, gradients, logos, nav bars, slogans, value props, giant
1428
1836
  landing-page headings, or marketing cards unless the user explicitly asks.
1429
1837
 
1430
- **Canvas and document never duplicate each other.** The UI story lives on the
1431
- canvas with on-canvas annotations; the document carries the technical depth the
1432
- canvas cannot show concrete file/symbol maps, API and data contracts, code
1433
- snippets, migration or implementation phases, risks, and validation. Repeat a
1434
- wireframe in the document only for a genuinely new detail view or comparison.
1435
- Skip the canvas entirely for non-visual work and write a clean rich document.
1838
+ **Top visuals and document never duplicate each other.** The UI story lives in
1839
+ the top visual surface: canvas artboards for static inspection, plus prototype
1840
+ tabs when the flow should be functional. The document carries the technical depth
1841
+ the visuals cannot show concrete file/symbol maps, API and data contracts,
1842
+ code snippets, migration or implementation phases, risks, and validation. Repeat
1843
+ a wireframe in the document only for a genuinely new detail view or comparison.
1844
+ Skip the visual surface entirely for non-visual work and write a clean rich
1845
+ document.
1436
1846
 
1437
1847
  **Use the right block, and make it carry substance.** For the authoritative,
1438
1848
  machine-checked list of block types and their data schemas, call \`get-plan-blocks\`
@@ -1455,9 +1865,14 @@ so you never emit a block the editor cannot render or round-trip:
1455
1865
  visual unless the tab is intentionally document-only.
1456
1866
  - \`table\`, \`checklist\`, \`callout\` for scannable structure.
1457
1867
 
1458
- **Open questions are callouts, not buried prose.** Surface anything unresolved in
1459
- a dedicated open-questions / needs-clarification block. Never put a
1460
- questions/decisions wall inside the plan narrative.
1868
+ **Open questions live at the bottom as a form when answers would change the
1869
+ plan.** Surface answerable unresolved decisions in a final \`question-form\`
1870
+ block titled "Open Questions". Use \`single\` or \`multi\` for clear choices,
1871
+ \`freeform\` for constraints, \`recommended: true\` for the default you would pick,
1872
+ and option \`wireframe\` / \`diagram\` previews for visual directions when useful.
1873
+ Keep non-answerable assumptions or risks as concise \`callout\` blocks in the
1874
+ relevant section. Never bury a questions/decisions wall inside the plan
1875
+ narrative.
1461
1876
 
1462
1877
  **\`custom-html\` is a bounded escape hatch only** — a single complete fragment
1463
1878
  inside a block, never \`html\`/\`head\`/\`body\`/\`script\` tags, never a generic
@@ -1489,15 +1904,19 @@ designer notes sit spaced off the frame, pointing only at the controls that need
1489
1904
  explanation. Below it, a Claude/Codex-grade document: objective and
1490
1905
  done-criteria, an \`implementation-map\` naming the real components and actions
1491
1906
  with short highlighted snippets, a \`decision\` card weighing two real approaches,
1492
- and a validation step — none of it repeating the canvas. This is the bar.
1907
+ and a validation step — none of it repeating the canvas. If the task also
1908
+ changes a multi-step completion flow, the same top area includes a Prototype tab
1909
+ whose screens use the same labels and states as the canvas artboards, with
1910
+ \`data-goto\` controls for the sequence. This is the bar.
1493
1911
 
1494
1912
  **BAD.** A \`data.html\` with hard-coded hex colors, a \`font-family\`, or fixed
1495
1913
  pixel width/height; gray placeholder bars "insinuating" text on a non-skeleton
1496
1914
  frame; a forced desktop + mobile pair for a popover; floating bordered
1497
1915
  annotation cards hugging the frames; a fresh hand-authored kit-tree \`screen\`
1498
- instead of \`html\`; a mockup escaped into a document \`custom-html\` block; and a
1499
- marketing-style document with a hero heading and value props that just restates
1500
- what the canvas already shows. Never produce this.
1916
+ instead of \`html\`; a multi-step UI flow with only static frames and no prototype
1917
+ tab; a mockup escaped into a document \`custom-html\` block; and a marketing-style
1918
+ document with a hero heading and value props that just restates what the canvas
1919
+ already shows. Never produce this.
1501
1920
 
1502
1921
  <!-- SHARED-CORE:exemplar END -->
1503
1922
 
@@ -1505,15 +1924,24 @@ what the canvas already shows. Never produce this.
1505
1924
 
1506
1925
  - \`visualize-plan\`: create the visual companion from the existing text plan.
1507
1926
  - \`update-visual-plan\`: enrich the import; prefer targeted \`contentPatches\` over
1508
- replacing the whole content.
1927
+ replacing the whole content. Use \`set-prototype\`, \`patch-prototype-html\`,
1928
+ \`update-prototype-screen\`, and \`patch-wireframe-html\` when revising
1929
+ functional prototype flows or their static frame counterparts.
1930
+ - \`convert-visual-plan-to-prototype\`: convert an existing HTML wireframe canvas
1931
+ into a functional prototype while preserving static mocks by default.
1932
+ - \`create-prototype-plan\`: use only when the user wants a prototype-first plan
1933
+ and there is no existing plan text that \`/visualize-plan\` should preserve.
1509
1934
  - \`read-visual-plan-source\`: read the normalized plan as \`plan.mdx\`,
1510
- optional \`canvas.mdx\`, optional \`.plan-state.json\`, and JSON.
1935
+ optional \`canvas.mdx\`, optional \`prototype.mdx\`, optional \`.plan-state.json\`,
1936
+ and JSON.
1511
1937
  - \`patch-visual-plan-source\`: apply granular MDX AST patches by stable block,
1512
- artboard, annotation, component, or wireframe-node id.
1938
+ artboard, annotation, component, prototype screen, or wireframe-node id.
1513
1939
  - \`import-visual-plan-source\`: create or replace a plan from an MDX folder.
1514
1940
  - \`get-visual-plan\`: inspect the current structured plan, exported HTML, and
1515
1941
  annotations; it also returns the MDX folder for source workflows.
1516
- - \`get-plan-feedback\`: read unconsumed reviewer comments before coding.
1942
+ - \`get-plan-feedback\`: read unconsumed reviewer comments before coding; it
1943
+ returns grouped threads, exact anchor details, expected resolver, and recent
1944
+ review-event payloads so agents can act only on the comments meant for them.
1517
1945
  - \`export-visual-plan\`: export HTML, Markdown fallback, structured JSON, and MDX
1518
1946
  files for repo check-in.
1519
1947
 
@@ -1533,8 +1961,8 @@ intended), so the first tool call does not hit an OAuth wall:
1533
1961
  agent-native skills add visual-plan
1534
1962
  \`\`\`
1535
1963
 
1536
- After that, \`/visual-plan\` (and \`/ui-plan\`, \`/visual-questions\`,
1537
- \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
1964
+ After that, \`/visual-plan\` (and \`/ui-plan\`, \`/prototype-plan\`, \`/plan-design\`,
1965
+ \`/visual-questions\`, \`/visualize-plan\`) generate a plan and open the editor. Pass \`--no-connect\` to
1538
1966
  register the connector without authenticating, then run
1539
1967
  \`agent-native connect https://plan.agent-native.com\` whenever you are ready.
1540
1968
 
@@ -1650,6 +2078,8 @@ const BUILT_IN_APP_SKILLS = {
1650
2078
  extraSkills: {
1651
2079
  "visual-questions": VISUAL_QUESTIONS_SKILL_MD,
1652
2080
  "ui-plan": UI_PLAN_SKILL_MD,
2081
+ "prototype-plan": PROTOTYPE_PLAN_SKILL_MD,
2082
+ "plan-design": PLAN_DESIGN_SKILL_MD,
1653
2083
  "visualize-plan": VISUALIZE_PLAN_SKILL_MD,
1654
2084
  },
1655
2085
  manifest: normalizeAppSkillManifest({
@@ -1664,7 +2094,7 @@ const BUILT_IN_APP_SKILLS = {
1664
2094
  mcp: { serverName: "agent-native-plans" },
1665
2095
  auth: {
1666
2096
  mode: "oauth",
1667
- setup: "Install with the Agent-Native CLI to add /visual-plan, /visual-questions, /ui-plan, and /visualize-plan skills plus the Plans MCP connector. Authenticate only for hosted/account-backed sharing.",
2097
+ setup: "Install with the Agent-Native CLI to add the /visual-plan, /ui-plan, /prototype-plan, /plan-design, /visual-questions, and /visualize-plan skills plus the Plans MCP connector. Authenticate only for hosted/account-backed sharing.",
1668
2098
  },
1669
2099
  surfaces: [
1670
2100
  {
@@ -1684,6 +2114,18 @@ const BUILT_IN_APP_SKILLS = {
1684
2114
  path: "/plans",
1685
2115
  description: "Create a UI-first Agent-Native plan with an optional top pan/zoom wireframe canvas and a refined rich document below.",
1686
2116
  },
2117
+ {
2118
+ id: "prototype-plan",
2119
+ action: "create-prototype-plan",
2120
+ path: "/plans",
2121
+ description: "Create a prototype-first Agent-Native plan with a functional live prototype above the document.",
2122
+ },
2123
+ {
2124
+ id: "plan-design",
2125
+ action: "create-plan-design",
2126
+ path: "/plans",
2127
+ description: "Create a full-fidelity Agent-Native design plan with a Design canvas tab and optional matching Prototype tab.",
2128
+ },
1687
2129
  {
1688
2130
  id: "visualize-plan",
1689
2131
  action: "visualize-plan",
@@ -1706,6 +2148,16 @@ const BUILT_IN_APP_SKILLS = {
1706
2148
  visibility: "exported",
1707
2149
  exportAs: "ui-plan",
1708
2150
  },
2151
+ {
2152
+ path: "skills/prototype-plan",
2153
+ visibility: "exported",
2154
+ exportAs: "prototype-plan",
2155
+ },
2156
+ {
2157
+ path: "skills/plan-design",
2158
+ visibility: "exported",
2159
+ exportAs: "plan-design",
2160
+ },
1709
2161
  {
1710
2162
  path: "skills/visualize-plan",
1711
2163
  visibility: "exported",
@@ -1778,6 +2230,13 @@ const BUILT_IN_APP_SKILL_ALIASES = {
1778
2230
  "visual-question": "visual-plans",
1779
2231
  "ui-plan": "visual-plans",
1780
2232
  "ui-plans": "visual-plans",
2233
+ "prototype-plan": "visual-plans",
2234
+ "prototype-plans": "visual-plans",
2235
+ "plan-design": "visual-plans",
2236
+ "plan-designs": "visual-plans",
2237
+ "design-plan": "visual-plans",
2238
+ "design-plans": "visual-plans",
2239
+ prototype: "visual-plans",
1781
2240
  "visualize-plan": "visual-plans",
1782
2241
  "visualize-plans": "visual-plans",
1783
2242
  "html-plan": "visual-plans",
@@ -1803,6 +2262,8 @@ const BUILT_IN_APP_SKILL_DISPLAY_ALIASES = {
1803
2262
  "visual-plan",
1804
2263
  "visual-questions",
1805
2264
  "ui-plan",
2265
+ "prototype-plan",
2266
+ "plan-design",
1806
2267
  "visualize-plan",
1807
2268
  "html-plan",
1808
2269
  "plannotate",