← TopviewCONTENT HISTORY

Update to Topview

Snapshot Sep 30, 2026 · 22:52 UTC · version 1.0.2

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "canvas-agent-workflows",
  "description": "Orchestrate end-to-end Topview Canvas creation while preserving the user's original deliverable and choosing the correct production workflow. Use for image, video, music, whiteboard, 3D world, or 3D director-stage creation; storyboarding, remakes, edits, replication, product/social videos; and story, episode, chapter, screenplay, or short-film adaptations that may require reusable character/environment/object assets and per-scene generation. Never compress narrative source material into a direct single-prompt video unless the user explicitly requests that narrower deliverable.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 659
    },
    {
      "relative_path": "evals/evals.json",
      "size_in_bytes": 10293
    },
    {
      "relative_path": "references/duration-and-task-assembly.md",
      "size_in_bytes": 2685
    },
    {
      "relative_path": "references/generation-stage-machine.md",
      "size_in_bytes": 6781
    },
    {
      "relative_path": "references/orchestration-runtime.md",
      "size_in_bytes": 6039
    },
    {
      "relative_path": "references/recipes/asset-product.md",
      "size_in_bytes": 1898
    },
    {
      "relative_path": "references/recipes/audio-continuity.md",
      "size_in_bytes": 3112
    },
    {
      "relative_path": "references/recipes/ffmpeg-media.md",
      "size_in_bytes": 717
    },
    {
      "relative_path": "references/recipes/image-video-generation.md",
      "size_in_bytes": 2056
    },
    {
      "relative_path": "references/recipes/scene-surrogate.md",
      "size_in_bytes": 1694
    },
    {
      "relative_path": "references/recipes/timeline.md",
      "size_in_bytes": 2249
    },
    {
      "relative_path": "references/reference-resolution.md",
      "size_in_bytes": 4855
    },
    {
      "relative_path": "references/workflow-routing.md",
      "size_in_bytes": 9443
    },
    {
      "relative_path": "references/workflows/direct-generation.md",
      "size_in_bytes": 2360
    },
    {
      "relative_path": "references/workflows/ecommerce-product-video.md",
      "size_in_bytes": 1913
    },
    {
      "relative_path": "references/workflows/short-film.md",
      "size_in_bytes": 4344
    },
    {
      "relative_path": "references/workflows/social-media-video.md",
      "size_in_bytes": 1354
    },
    {
      "relative_path": "references/workflows/video-element-editing.md",
      "size_in_bytes": 7059
    },
    {
      "relative_path": "references/workflows/video-replication.md",
      "size_in_bytes": 6861
    },
    {
      "relative_path": "references/workflows/web-research.md",
      "size_in_bytes": 1253
    },
    {
      "relative_path": "scripts/test_validate_workflow_bundle.py",
      "size_in_bytes": 388
    },
    {
      "relative_path": "scripts/validate_workflow_bundle.py",
      "size_in_bytes": 29075
    }
  ],
  "skill_md_contents": "---\nname: canvas-agent-workflows\ndescription: Orchestrate end-to-end Topview Canvas creation while preserving the user's original deliverable and choosing the correct production workflow. Use for image, video, music, whiteboard, 3D world, or 3D director-stage creation; storyboarding, remakes, edits, replication, product/social videos; and story, episode, chapter, screenplay, or short-film adaptations that may require reusable character/environment/object assets and per-scene generation. Never compress narrative source material into a direct single-prompt video unless the user explicitly requests that narrower deliverable.\n---\n\n# Canvas Agent Workflows\n\nAchieve a complete Canvas creation goal in one agent task. Business rules live here; atomic MCP writes live in `$operate-topview-canvas`.\n\n### Plugin version / upgrade\n\nWhen the user asks whether the Topview plugin is up to date, which version is installed, or asks to upgrade/reinstall the plugin, call `topview_check_plugin_update` first. Use its returned `downloadUrl` and host-specific `upgradePrompt` verbatim — never invent a CloudFront URL or substitute a host marketplace command. After a successful upgrade, call `topview_ack_plugin_update` with `action=upgraded`; if the user declines, call it with `action=dismissed`.\n\n## Canvas-first creative gate\n\nEvery Topview creation request starts in a real Canvas project. This applies to image, video, music, whiteboard, 3D world (`world_3d`), and 3D director stage (`director_stage`) creation.\n\n1. Resolve the target Canvas, or create one when the user asks for a new project. If no target is known and multiple existing projects plausibly match, let the user choose.\n2. Make that Canvas visible **before** any generation submit or creative-surface action. Open it exactly once with `open_topview_canvas` (or the single workspace-specific alternative required by `$operate-topview-canvas`), then navigate the returned `webLink` with the host Browser when available. If no host Browser is available, provide the exact clickable link as the required handoff.\n3. Only after the Canvas is visible, create nodes, submit Canvas-owned image/video/music work, or open the whiteboard / 3D surface. Keep the project visible throughout so the user can inspect, select, rearrange, edit, or use **Use in chat** while the Agent continues.\n4. If the matching Canvas is already visibly open in the current flow, reuse it and do not create a duplicate UI result.\n\nNever route these requests to standalone `topview_generate_image`, `topview_generate_video`, or `topview_generate_music`. The narrow cross-shot narration exception remains `topview_generate_voice` because Canvas currently has no TTS capability; import its result back into the already-open Canvas.\n\n## Skill boundaries\n\n| Skill | Owns |\n| --- | --- |\n| `$operate-topview-canvas` | MCP tools, V2 generation contract, paid generation approval mode (`confirm_each_submit` / `autonomous`), observational revision, layout, Group composition, local-media bridge, capability-first + universal duration planning, Timeline, auth |\n| `$canvas-agent-workflows` | Workflow routing, orchestration runtime, workflow-specific single-task gates, Scene creative contract, typed references, quality gates, DAG completion |\n| `$topview-generate` | Non-Canvas standalone generation — never use its results as Canvas-owned substitutes |\n| `$marketing-studio` | Research / marketing data stages that may precede a Canvas workflow |\n\n## Progressive reads\n\n**Mandatory before planning:**\n\n1. [references/workflow-routing.md](references/workflow-routing.md) — lock the Original Goal Contract, then pick exactly one primary workflow.\n2. [references/generation-stage-machine.md](references/generation-stage-machine.md) — Plan Ledger, Safe Parallel Policy, recovery (no Canvas revision cursor).\n3. The selected file under [references/workflows/](references/workflows/).\n\n**Conditional (read only when the stage needs it):**\n\n- `$operate-topview-canvas` `references/generation-planning.md` + [references/duration-and-task-assembly.md](references/duration-and-task-assembly.md) — before freezing paid task counts / duration splits.\n- `$operate-topview-canvas` `references/seedance-2.5.md` — when the selected exact live video model is Seedance 2.5; lock `auto` / `edit` / `extend` intent before prompt authoring or submits.\n- [references/reference-resolution.md](references/reference-resolution.md) — before any consistency-critical typed `inputs[]` submit (except `scene_storyboard`, which uses `sceneNodeId`).\n- `$operate-topview-canvas` `references/local-media-bridge.md` — when inputs come from local files / FFmpeg artifacts.\n- [references/orchestration-runtime.md](references/orchestration-runtime.md) — multi-stage auto-continue / partial-fail boundaries.\n- Recipes under [references/recipes/](references/recipes/) — only the ones the current stage needs.\n\nDo **not** copy live capability / MCP JSON schemas into this Skill; call capabilities tools and cache GetMcpTools schemas per `$operate-topview-canvas`.\n\nAlso follow `$operate-topview-canvas` for every MCP call shape, observational revision rules, capability summary/`include`, Group composition, and **paid generation approval mode** (ask on first credit-consuming `submit_topview_canvas_generation_task`; then honor `confirm_each_submit` or `autonomous`).\n\n## Routing invariant\n\nRoute from the user's original request and supplied source material, not from an Agent-written summary or generation prompt. Preserve requested narrative coverage, continuity, reusable assets, dialogue, and scene structure. Missing production details are unknowns, not permission to shorten an episode, omit story beats, or turn an adaptation into one standalone clip.\n\nTreat character and environment consistency as required for episodes, chapters or scripts being adapted, named or recurring characters across shots, dialogue spanning clips, multiple scenes sharing story-world elements, and any deliverable intended to continue as a series. These signals require a workflow that creates or adopts durable typed assets before dependent scene video generation.\n\n`direct-generation` is an eligibility-gated fast path, never the fallback merely because it uses fewer steps or the requested duration fits one model call. Apply every gate in [references/workflow-routing.md](references/workflow-routing.md). If Direct and a staged workflow remain genuinely ambiguous, resolve that distinction before any paid submit.\n\n## End-to-end loop\n\n```text\nlock Original Goal Contract from the unmodified user request\n→ resolve/create target Canvas\n→ show that Canvas in the host Browser (or complete the clickable-link handoff)\n→ route workflow without shrinking the contract\n→ resolve any production unknown that changes scope, structure, dialogue, or paid task count\n→ get_topview_canvas_generation_capabilities (taskType(+models), include=[] first)\n→ get_topview_canvas_state once if geometry/identity needed (fields/nodeIds/types truly project)\n→ freeze Plan Ledger (capabilityVersion, model/taskType, required params,\n     inputRoles, nodeId/mentionToken, taskId, status, deps)\n→ for each DAG layer under Safe Parallel Policy (wait-all before next turn):\n     paid generation approval mode gate (first submit asks; confirm_each_submit → param approval)\n     submit_topview_canvas_generation_task (V2; prefer layout on top-level;\n       distinct commandId; no expectedRevision)\n     refresh* until success|fail (slim omit/include=[]; independent refreshes OK when safe)\n     update ledger from response identity fields (no assetId)\n→ auto-continue dependent stages (serial across deps; projection barrier)\n→ Timeline / export only if the user asked for a final cut\n→ report complete | partial | failed\n```\n\nDo not ask the user to reply `OK`, `continue`, or `继续` just to advance a stage that only needs task completion. Ask a focused question when an unresolved choice would change the primary workflow or materially change narrative coverage, continuity assets, dialogue, duration, or the paid task plan; do not use Direct to avoid that question. Exception: under `$operate-topview-canvas` **paid generation approval mode** `confirm_each_submit`, waiting for approval of a concrete paid-parameter summary is required and allowed. Never treat a draft card as paid generation. Never call `topview_get_generation_config` or generic `topview_generate_*` for Canvas-owned results. There is no multi-write batch API. Prefer safe parallel independent tools in one turn (wait-all); keep same-target / dependency-unsafe writes serial. Do not chain Canvas `expectedRevision`. Background generation jobs may run concurrently after submits return.\n\n## Hard bans\n\n- No global default of three Scenes / three video tasks.\n- No creative submit or whiteboard / 3D surface action before the target Canvas is visible.\n- No planning task counts before live capabilities.\n- No rewriting, summarizing, or abridging source material before routing in order to make it qualify for Direct.\n- No treating a request to create an episode, chapter adaptation, screenplay, or multi-scene story as approval for a standalone condensed clip.\n- No prompt-only “keep identity” without matching typed inputs when consistency is required.\n- No silent downgrade to `text_to_video` when rich references are required.\n- No local paths, temp signed URLs, or download URLs as submit sources.\n- No second result node for a generation task; results stay on the same generation node.\n- No claiming Timeline export complete until export polling succeeds.\n- No Agent-facing `assetId` requirement; prefer `canvas_node.nodeId` + mention tokens.\n\n## Completion statuses\n\n- `complete` — required stages succeeded; references, nodes, and any requested Timeline/export verified.\n- `partial` — executable stages done, but a capability, durability, upload, audio, or export boundary blocks the rest.\n- `failed` — a required upstream task reached terminal fail with no authorized recovery.\n\n## Skill feedback\n\nIf this task used Topview MCP tools, immediately before the final user reply follow [`../../references/skill-feedback.md`](../../references/skill-feedback.md) once with `skillName=\"canvas-agent-workflows\"`. Diagnose whether this Skill or its Topview MCP contract should improve using the current task context; this is best-effort guidance, never a blocking Hook.\n"
}

SHA-256: 70d757c42a6c81f51948ee28818faead955a9cb76f492a3a3515d09f535f0998