Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add anymouschina/TapCanvas --skill tapcanvas-workflow-orchestratorgit clone --depth 1 https://github.com/anymouschina/TapCanvasWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/anymouschina/tapcanvas/tapcanvas-workflow-orchestrator)<a href="https://agentmods.dev/skills/anymouschina/tapcanvas/tapcanvas-workflow-orchestrator"><img src="https://agentmods.dev/badge/skills/anymouschina/tapcanvas/tapcanvas-workflow-orchestrator/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/anymouschina/tapcanvas/tapcanvas-workflow-orchestrator"><img src="https://agentmods.dev/badge/skills/anymouschina/tapcanvas/tapcanvas-workflow-orchestrator.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.01685 |
| Opus 5 | $0.00023 | $0.00843 |
| Sonnet 5 | $0.00009 | $0.00337 |
| Haiku 4.5 | $0.00005 | $0.00169 |
Grade A, and why
tapcanvas-workflow-orchestrator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 65 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TapCanvas Workflow Orchestrator
何时使用
- 用户要在 TapCanvas 中规划多步创作流程,而不是单次问答
- 用户要把结果落到画布,或要求返回可执行的
<tapcanvas_canvas_plan> - 用户要求续写当前镜头、修复当前节点、围绕选中节点继续推进
输入证据
- 当前用户请求
- 当前项目/flow/node 的实时工具结果
- 章节正文、章节索引、连续性、素材、节点 bundle 等实时数据
- 已显式提供的 referenceImages、assetInputs、selectedReference、continuationAnchor
禁止把以下内容当成运行时知识源:
docs/assets/ai-metadata/
这些目录可以存在于仓库中,但不属于本 skill 的运行时证据。
执行原则
- 先取证,再决策;不要猜项目状态
- 主代理自行意图识别,不使用本地固定 route
- 本 skill 提供方法,不接管全局流程
- 对小说项目的
single_video或 chapter-grounded 创作,优先结合 project/book/chapter/node/continuity/source bundle 证据定位最相关章节正文、场景锚点与续写边界;不要等待用户手动补齐所有 checkpoint - 若已知
bookId/chapterId或可唯一锁定一本书,优先继续读取书籍索引、章节正文与 continuity 证据,再决定生成、规划或回写 - 若要判断某章是否已经有真实落盘的
storyboardPlans / shotPrompts / storyboardStructured,先调用tapcanvas_book_storyboard_plan_get;禁止拿tapcanvas_book_storyboard_plan_upsert发送空 payload、探测 payload 或“试写看看”来判断是否存在 - 若任务需要图片/视频最终提示词,可按需调用 specialist;是否调用、调用顺序如何安排,由主代理决定
- 若用户目标是布局调整,只做结构调整,不改内容语义字段
- 若用户目标是显式、确定性的画布改动,且当前 flow 作用域与目标节点足够明确,优先直接调用
tapcanvas_flow_patch - 若通过
tapcanvas_flow_patch写入的是可执行图片/分镜/视频节点,默认把这视为“已把待执行节点交给宿主工作台”;TapCanvas 会在响应返回后基于executableNodeIds自动执行这些节点。不要因为当前 agent trace 里还没有最终imageUrl/videoUrl就把合法 handoff 误判成失败 tapcanvas_flow_patch现支持deleteNodeIds/deleteEdgeIds。删除错误节点时直接传真实 id,不要假装用patchNodeData把节点“清空”;删节点会自动清理相关边- 若同一轮
tapcanvas_flow_patch既要createNodes又要createEdges,所有会被边引用的新节点都必须先有稳定id;不要把label当成source/target - 若
tapcanvas_flow_patch.createNodes涉及分组(创建groupNode或对子节点设置parentId),必须先写组节点,再按你要的最终视觉顺序依次列出组内子节点;后端会按该顺序做 parent-first 重排并对组内执行紧凑排列 - 若目标是“镜头拆解/分镜脚本/shot list/beat list”且当前还没有镜头图,不要创建
kind=storyboard节点;这类文本上游应落到kind=storyboardScript或kind=text kind=storyboard只用于分镜编辑图片网格;除非你显式提供storyboardEditorCells,或用户明确要一个空白分镜板占位,否则把文本塞进storyboard视为错误建模- 若用户明确要求“优化当前图片节点/当前图像节点/这个图片节点”的提示词,且当前选中节点是
kind=image/imageEdit,优先把它视为“改写既有节点配置”而不是“新建另一条生成链” - 做图片节点提示词优化前,先读取
tapcanvas_node_context_bundle_get,确认当前节点的prompt/systemPrompt/negativePrompt、结果图、参考图、上下游和 diagnostics;若节点已有结果图但提示词缺失,可把结果图当作取证输入,再决定是否需要 specialist - 对既有图片节点的提示词改写,优先使用
tapcanvas_flow_patch.patchNodeData回写原节点;若要覆盖已有prompt/systemPrompt/negativePrompt,必须显式传allowOverwrite=true - 除非用户明确要求改模型、比例、样张数或分叉新版本,否则图片节点提示词优化默认保留原有
imageModel/aspect/sampleCount等执行参数,只改与提示词直接相关的字段 - 若目标是添加
kind=text节点,允许创建空内容占位节点;不要因为缺少prompt/text而阻止写入 - 若目标是添加空白文本节点,优先用
tapcanvas_flow_patch.createNodes;最小可用 payload:{"createNodes":[{"type":"taskNode","position":{"x":0,"y":0},"data":{"kind":"text","label":"空白文本","nodeWidth":380,"nodeHeight":360}}]}。空占位时可省略prompt/text/textResults - 只有在需要批量规划、多节点布局、前端补位执行或当前写入证据不足时,才退回输出合法
<tapcanvas_canvas_plan> - 若证据不足,显式报错;不要编造、不要静默降级
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 65 lines · 46 tokens per session scan A abe939fc6258
tapcanvas-workflow-orchestrator is a skill published in the GitHub repository anymouschina/TapCanvas (603 stars, last pushed yesterday), licensed MIT. It adds 46 tokens to every session and 1,685 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dramake
A production workflow for turning an idea, story, script, storyboard, or existing footage into a short AI drama or film. It covers planning, generation, voice, editing, and quality checks for formats such as vertical and horizontal video.
last30Days
Resolve "last30Days" to a concrete ISO date range relative to your run time — a rolling 30-day window ending today. Returns inclusive civil dates plus exact UTC instants so you have temporal context without computing dates by hand. Read-only: no writes, no network. Use before a "last 30 days" / trailing-month task…
thisWeek
Resolve "thisWeek" to a concrete ISO date range relative to your run time — this week so far (Monday → today). Returns inclusive civil dates plus exact UTC instants so you have temporal context without computing dates by hand. Read-only: no writes, no network. Use before a week-to-date task (this week's activity…
vchart-development-assistant
A coding assistant for VChart, a JavaScript chart library used to build visualizations such as bar, line, and pie charts.
short-drama-storyboard
A workflow for turning a Chinese short-drama script and its visual facts into a shot-by-shot storyboard with frozen starting-frame prompts.
md-fetch-summarize
Fetch a URL and return a concise markdown summary of its content. Read-only: no files are written; the summary is returned as output only. Use when asked to "fetch and summarize", "summarize this URL", "what does this page say", or "get the content of ". Proactively suggest when the user pastes a URL and asks what it…