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-public-chatgit 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-public-chat)<a href="https://agentmods.dev/skills/anymouschina/tapcanvas/tapcanvas-public-chat"><img src="https://agentmods.dev/badge/skills/anymouschina/tapcanvas/tapcanvas-public-chat/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-public-chat"><img src="https://agentmods.dev/badge/skills/anymouschina/tapcanvas/tapcanvas-public-chat.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.00079 | $0.01283 |
| Opus 5 | $0.00039 | $0.00642 |
| Sonnet 5 | $0.00016 | $0.00257 |
| Haiku 4.5 | $0.00008 | $0.00128 |
Grade A, and why
tapcanvas-public-chat 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 — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TapCanvas Public Chat
注意:
- 本 skill 不是 API 调用器。
- 凡是要实际请求 TapCanvas
/public/*接口,统一使用tapcanvas-api。 - 不要在这里重新定义
apiKey、apiBaseUrl、endpoint 映射或请求脚本。
何时使用
- 用户在
/public/chat或 Web 对话助手里发起多步创作请求 - 任务需要同时理解前端上下文、后端硬约束与 agents 自主编排边界
输入证据
- 用户请求与会话上下文
chatContext中的显式事实- 项目/flow/node/book/material 等工具结果
执行原则
web只负责收集真实上下文并执行合法 planhono-api只负责权限、协议、事实性、失败策略与审计agents-cli主代理负责意图识别、取证规划、技能加载、子代理拆分与结果汇总- 后端 system prompt 只承载身份、事实 briefing、协议与失败约束;业务方法论以本 skill 及同组 runtime skills 为准
- 对显式、确定性的画布改动请求(如添加空文本节点、重命名节点、连接节点、更新少量已知字段),若当前
project/flow作用域与目标足够明确,优先直接调用tapcanvas_flow_patch执行,不要退化成让用户手动操作 tapcanvas_flow_patch现支持deleteNodeIds与deleteEdgeIds。删节点时必须传真实 node id,且会级联删除关联边;只想断开连线时优先用deleteEdgeIds- 若同一轮
tapcanvas_flow_patch同时包含createNodes与createEdges,凡是会被边引用的新节点都必须先写显式稳定id;label绝不是 node id - 若
tapcanvas_flow_patch.createNodes会写入分组结构(创建groupNode,或给节点写parentId),要把组节点放在子节点前面,并把组内子节点按你期望的最终视觉顺序依次写入;运行时会按该顺序做 parent-first 重排与组内紧凑排列 kind=storyboard是前端“分镜编辑”图片网格,不是镜头脚本容器;若本轮只有逐镜头文本、beat list 或章节拆解而没有镜头图,应创建kind=storyboardScript或kind=text节点,而不是把长段文字塞进storyboard的content/prompt/text- 只有在你明确提供
storyboardEditorCells,或用户明确要求“空白分镜板/空网格占位”时,才创建kind=storyboard;否则默认视为节点类型选择错误 - 若当前明确选中了
kind=image/imageEdit节点,且用户目标是“完善/优化/改写当前图片节点提示词”,先读取tapcanvas_node_context_bundle_get获取节点现有prompt/systemPrompt/negativePrompt、结果图、上下游与 diagnostics,再决定改写范围;不要只根据选中态猜字段 - 对“优化当前图片节点提示词”这类针对既有节点的确定性修改,优先直接回写当前节点,而不是默认新建平行节点;只有用户明确要求分叉、保留旧版或另起一版时,才创建新节点
- 回写既有图片节点提示词时,优先用
tapcanvas_flow_patch.patchNodeData,并显式传allowOverwrite=true,避免因为已有prompt/systemPrompt/negativePrompt被 409 拦下 kind=text的节点允许为空内容占位;若用户明确要求“空文本节点/空白文本节点”,不要把prompt/text当成必填项- 对“添加空白文本节点”这类确定性写入,优先使用
tapcanvas_flow_patch.createNodes;最小可用示例:{"createNodes":[{"type":"taskNode","position":{"x":0,"y":0},"data":{"kind":"text","label":"空白文本","nodeWidth":380,"nodeHeight":360}}]}。空占位时可省略prompt/text/textResults - 对 chapter-grounded 的
image/storyboard/composeVideo/video写入,必须在同一轮 patch 内同步提交data.productionMetadata;禁止先落节点、下一轮再补 metadata - SOP、创作方法论、提示词方法、连续性方法都属于 skill,而不是常驻 system prompt
- 事实判断必须来自实时工具结果,不得来自 docs/assets/ai-metadata
- 若本轮没有真实执行、没有真实生成、也没有返回合法
<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 · 51 lines · 79 tokens per session scan A 14c86def43b8
tapcanvas-public-chat is a skill published in the GitHub repository anymouschina/TapCanvas (603 stars, last pushed yesterday), licensed MIT. It adds 79 tokens to every session and 1,283 once invoked, about $0.0004 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…
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.
vchart-development-assistant
A coding assistant for VChart, a JavaScript chart library used to build visualizations such as bar, line, and pie charts.
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…