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 ssmurfgg04-gif/context-m --skill vr-canvasgit clone --depth 1 https://github.com/ssmurfgg04-gif/context-mWrote 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/ssmurfgg04-gif/context-m/vr-canvas)<a href="https://agentmods.dev/skills/ssmurfgg04-gif/context-m/vr-canvas"><img src="https://agentmods.dev/badge/skills/ssmurfgg04-gif/context-m/vr-canvas/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/ssmurfgg04-gif/context-m/vr-canvas"><img src="https://agentmods.dev/badge/skills/ssmurfgg04-gif/context-m/vr-canvas.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00000 | $0.03380 |
| Opus 5 | $0.00000 | $0.01690 |
| Sonnet 5 | $0.00000 | $0.00676 |
| Haiku 4.5 | $0.00000 | $0.00338 |
Grade A, and why
vr-canvas 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 8d 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.
This is a copy
100% identical to vr-canvas — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 195 lines — stays where its author put it; the contents beside it link to each section on GitHub.
vr-canvas — VR 弧幕作品集生成器
何时触发
用户说「做个 VR 作品集」/「做个穹顶 / 弧幕 / 包裹感的作品集」/「做个无限画布作品集」/「vr-canvas-gen ...」,并提供了:
- 作品文件(图片,文件夹路径或多个文件路径)— GLM 模式可以是描述
- 自然语言描述(工作室介绍 + 每件作品的故事 — 散文也行,不必结构化)
输入解析
从用户消息抽取:
- works_path(A 模式必填):作品文件夹路径或一组文件路径
- bio_text(必填):工作室自我介绍 + 各项目背景。可能含:工作室名、城市、领域、成立年份、团队、客户类型、各作品的故事
- 风格变体(可选):默认深色「材料/工作室」氛围;用户说「亮色 / 杂志感 / 赛博 / 极简」时调
:root配色
如果用户只说「做个 VR 作品集」但没给作品 → 必须问一次作品和工作室名字。 给了作品但没写描述 → 不追问,从文件名/视觉内容推断标题和分类。
运行环境(两种模式)
A. Claude Code / 本地(有文件系统)
- 用
Bash列文件、sips探尺寸、cp拷贝图片 - 输出到
~/Desktop/{slug}-vr-canvas/index.html+images/ - 图片用相对路径
images/work-NN.jpg - 模板自带
images/p-01-color-macro.jpg ... p-18-magazine.jpg共 18 张设计向真实摄影(≈2.2MB),用户没传图片时直接 open template.html 就能看到完整 VR 球面效果
B. GLM / 在线对话(无文件系统)
- 你只输出一份完整的 HTML 字符串(包在 ```html 代码块里)
- 用户上传图片但没给 URL → 用
https://picsum.photos/seed/{描述-序号}/1080/1080做占位 - 用户给了 URL → 直接
<img src="https://..."> - 不要尝试访问本地文件、不要建议命令行操作(除了「把这段保存成 index.html」)
判断:不能用 Read 看到本地图片 → 默认走 B。
文件分工
| 文件 | 角色 | 怎么用 |
|---|---|---|
reference.html |
完整成品(虚白工作室 20 件作品 + 完整 about/cv/contact/filter 文案) | 看:tile 文案语气、tag 词汇、desc 长度、about/cv 信息密度、整体氛围 |
template.html |
空骨架(同样的 CSS/JS,2 件示例 + 全部 SWAP 标注) | 在它的基础上改,输出最终 HTML |
核心规则:所有改动基于 template.html;从 reference.html 学怎么写得像,但不要复制它的具体内容(虚白、京都驻地、青木茶寮 …… 这些都是别人的)。
工作步骤
1. 读两份 HTML
- 先读
template.html,定位 SWAP 标记(共 12 处) - 再扫一眼
reference.html,体会作品文案、about/cv 的密度与节奏
不要改 JS、不要改 .work / .frame / .sphere / .viewport / .overlay 的 CSS、不要改任何 #sphere / #viewport / .splash 的逻辑。
2.(仅 A 模式)列作品 + 探尺寸
ls -la "{works_path}"
sips -g pixelWidth -g pixelHeight "{works_path}/{file}" 2>/dev/null
每件作品按文件名 + 视觉判断 (Read 看代表性几张) → (title, brand, year, tags, desc)。
3. 解析 bio_text 抽信息
工作室级(每个值都至少有默认 fallback):
- STUDIO_NAME_CN / STUDIO_NAME_EN(如「虚白 / Xubai」「明川 / Mingchuan」)
- STUDIO_TYPE(如「设计工作室」「影像工作室」「建筑事务所」「独立设计师」)
- TAGLINE(两行:长句 + 短结论,参考
虚白是一家以材料与场景为方法的中文设计工作室,致力于在品牌、视觉与空间之间寻找静止的位置) - LOCATION_PRIMARY / SECONDARY(如「中国 · 上海」「日本 · 京都」;只有一个城市就把第二行去掉)
- TIMEZONE_PRIMARY / SECONDARY(如「北京时间 UTC+8」、第二个城市的 JST/EST 等)
- YEAR_FOUNDED(如 2017)
- CTA_TEXT(默认「我们来聊聊吧。」,可改成「Let's Talk」「联系合作」等)
- TAB_LABELS(默认
作品 / 关于 / 履历,可改) - CAPABILITIES(4—5 项能力,写进 about overlay)
- TEAM(3—5 名成员,写进 about overlay;个人作品集就只写自己一行)
- CV_YEARS(按年份分组的项目时间线)
- AWARDS(3—8 条展览/奖项)
- CONTACT_EMAILS(new project / press / hiring 三类邮箱)
- OFFICE_ADDRESSES(1—2 个办公室地址)
- SOCIAL(IG / 微信 / Twitter / Behance 等)
- FILTER_CATEGORIES / YEARS(用于 filter overlay 的复选框,自动从 WORKS 派生)
What ships with it
20 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- images/p-01-color-macro.jpg 168 KB
- images/p-02-typography.jpg 112 KB
- images/p-03-packaging.jpg 148 KB
- images/p-04-paint-stroke.jpg 132 KB
- images/p-05-brand-flatlay.jpg 155 KB
- images/p-06-studio-portrait.jpg 70 KB
- images/p-07-gradient.jpg 31 KB
- images/p-08-editorial.jpg 184 KB
- images/p-09-ceramic.jpg 40 KB
- images/p-10-urban.jpg 183 KB
- images/p-11-ink-paper.jpg 45 KB
- images/p-12-botanical.jpg 282 KB
- images/p-13-risograph.jpg 44 KB
- images/p-14-gallery-wall.jpg 126 KB
- images/p-15-light-motion.jpg 30 KB
- images/p-16-interior.jpg 54 KB
- images/p-17-color-block.jpg 170 KB
- images/p-18-magazine.jpg 250 KB
- reference.html 57 KB
- template.html 60 KB
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.
- 8d ago First seen · 195 lines · 0 tokens per session scan A c90644b3834b
vr-canvas is a skill published in the GitHub repository ssmurfgg04-gif/context-m (2 stars, last pushed yesterday), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 3,380 tokens. A static security scan graded it A with 0 findings. It is 100% identical to vr-canvas, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
ai-style
A Chinese-language writing guide for producing or revising reader-facing text such as product announcements, public-account articles, emails, and README files. It focuses on reducing patterns that make writing sound machine-generated.
gsd-sketch
Sketch UI/design ideas with throwaway HTML mockups, or propose what to sketch next (frontier mode).
impeccable
Create distinctive, production-grade frontend interfaces with high design quality. Generates creative, polished code that avoids generic AI aesthetics. Use when the user asks to build web components, pages, artifacts, posters, or applications, or when any design skill requires project context. Call with 'craft' for…
motion-design
Restrained, accessible web motion — Framer Motion declarative patterns and CSS-only staggered reveals for high-impact moments, always bundle-aware and reduced-motion-safe. Use when adding animation/transitions to a UI (entrance reveals, list stagger, page/route transitions, micro-interactions) or when motion feels…
auv-design
Use this skill to generate well-branded interfaces and assets for AUV (the Moeru AI command-replay / inspect runtime), either for production or throwaway prototypes/mocks. Contains essential design guidelines, colors, type, fonts, assets, and UI kit components for prototyping.
debug-async-ui
Use when UI state or returned content disappears, flashes, rolls back, saves but loses state, menus fail intermittently, or real browser behavior differs from tests in async frontend flows.