canvas-sync

canvas-sync is a skill for Claude Code from aiatelie/ai-atelie. It costs 147 tokens per session (2,484 once invoked), scanned A, original, MIT.

A contributor workflow for keeping one design-canvas feature consistent across its source file, demo copy, host wiring, and protocol documentation. The canvas is the pannable and zoomable workspace surrounding project content.

In plain words
What is it for?
Use it when modifying the listed DesignCanvas files or their related integration, so the canonical starter, demo, host behavior, and documented protocol stay aligned.
Why use it?
A change made in only one of these locations can leave the demo, new projects, editor integration, and documentation out of sync.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths.

Good fit Use it when modifying the listed DesignCanvas files or their related integration, so the canonical starter, demo, host behavior, and documented protocol stay aligned.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/aiatelie/ai-atelie/canvas-sync
Install

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.

Any agent
npx skills add aiatelie/ai-atelie --skill canvas-sync
Clone the repo
git clone --depth 1 https://github.com/aiatelie/ai-atelie

Made for: Claude Code.

Wrote 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.

agentmods badge for canvas-sync

README.md
[![agentmods](https://agentmods.dev/badge/skills/aiatelie/ai-atelie/canvas-sync/github.svg)](https://agentmods.dev/skills/aiatelie/ai-atelie/canvas-sync)
Your own site
<a href="https://agentmods.dev/skills/aiatelie/ai-atelie/canvas-sync"><img src="https://agentmods.dev/badge/skills/aiatelie/ai-atelie/canvas-sync/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.

agentmods 80×15 button for canvas-sync

Your own site · 80×15
<a href="https://agentmods.dev/skills/aiatelie/ai-atelie/canvas-sync"><img src="https://agentmods.dev/badge/skills/aiatelie/ai-atelie/canvas-sync.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 147 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,484 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00147 $0.02484
Opus 5 $0.00073 $0.01242
Sonnet 5 $0.00029 $0.00497
Haiku 4.5 $0.00015 $0.00248

Measured 12d ago against content hash 435f14c8bfe1, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

canvas-sync 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.

.claude/skills/canvas-sync/SKILL.md · 115 lines

How it starts

The opening of the file, as written. The whole thing — 115 lines — stays where its author put it; the contents beside it link to each section on GitHub.

canvas-sync

A contributor workflow for AI Atelie. The DesignCanvas surface (the pannable, zoomable workspace that wraps every project's content) lives in three places at once, and a change to one without the others is almost always a bug.

This skill is dev-time only. It does not load into adapter sessions spawned by the editor.

The three places, and what each one is for

Location Role Loaded when
mcp/starters/DesignCanvas.jsx Canonical source of truth. The starter the agent copies via mcp__starters__copy_starter and the route POST /api/projects/create reads to seed every new project. An agent calls copy_starter in an existing project · A user creates a new project.
web/projects/demo/design-canvas.jsx Demo project's copy. The "AI Atelie demo" project that ships in the repo and renders on first run. A user opens the demo from /projects (e.g. via home-shows-demo journey, or anyone testing locally).
web/src/lib/tweakBridge.ts + mcp/CANVAS_PROTOCOL.md Host-side wiring. The parent's listener for __page_is_canvas, the __dc_set_theme broadcast, and the documented protocol contract. The editor mounts an iframe that announces __page_is_canvas.

The parity rule

The two .jsx files MUST be byte-identical at every commit. They are not "two copies that drift" — they are two materializations of one source. Verify with:

md5 mcp/starters/DesignCanvas.jsx web/projects/demo/design-canvas.jsx
# (Linux: md5sum)

The two hashes must match. If they don't, stop and reconcile before committing.

The flow direction

Always edit the canonical first, then mirror — never the other way around. The canonical is the file every NEW project copies; the demo is just a testbed.

# 1. Edit the canonical
$EDITOR mcp/starters/DesignCanvas.jsx

# 2. Mirror to the demo
cp mcp/starters/DesignCanvas.jsx web/projects/demo/design-canvas.jsx

# 3. Verify they match
md5 mcp/starters/DesignCanvas.jsx web/projects/demo/design-canvas.jsx

# 4. Both files go in the same commit
git add mcp/starters/DesignCanvas.jsx web/projects/demo/design-canvas.jsx

Read the full file on GitHub · 115 lines

Changes

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.

  1. 12d ago First seen · 115 lines · 147 tokens per session scan A 435f14c8bfe1

Subscribe to this mod's changes

canvas-sync is a skill published in the GitHub repository aiatelie/ai-atelie (8 stars, last pushed 3mo ago), licensed MIT. It adds 147 tokens to every session and 2,484 once invoked, about $0.0007 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-31.

Related

Other skills, from other repositories

waitlist-page

Minimal pre-launch landing with email capture, brand logo, and optional decorative layer. Reads DESIGN.md for colors, typography, and layout rules. Best for: product launches, beta signups, early access programs, indie projects.

nexu-io/open-design · 49 tokens

saas-landing

Single-page SaaS landing with hero, features, social proof, pricing, and CTA. Respects the active DESIGN.md color/typography/layout tokens. Trigger keywords: "saas landing", "marketing page", "product landing".

nexu-io/open-design · 52 tokens

web-prototype

General-purpose desktop web prototype. Single self-contained HTML file built by copying the seed assets/template.html and pasting section layouts from references/layouts.md. Default for any landing / marketing / docs / SaaS page when no more specific skill matches.

nexu-io/open-design · 59 tokens

webgl-experience

A full-screen, real-time WebGL/WebGL2 experience — animated shaders, 3D scenes, generative visuals, particle fields — rendered live on the GPU with a typographic overlay. Produced as a single self-contained index.html. Use when the brief asks for a "WebGL", "shader", "3D", "generative", "GPU", "interactive canvas"…

nexu-io/open-design · 114 tokens

worker-visualizer

A real-time data/particle/simulation visualizer whose heavy compute runs in a Web Worker (off the main thread), optionally sharing memory with the UI via SharedArrayBuffer, and renders to a canvas at 60fps. Produced as a single self-contained index.html. Use when the brief asks for a "web worker", "simulation"…

nexu-io/open-design · 123 tokens

webgl-liquid-metal

A real-time liquid-metal shader — a domain-warped noise field shaded as molten chrome, with a sweeping specular highlight over an iridescent thin-film (cosine-palette) sheen. No textures. Rendered as a single self-contained index.html. Use when the brief asks for "liquid metal", "molten chrome", "iridescent"…

nexu-io/open-design · 121 tokens