tldraw
Create and edit diagrams on a connected tldraw canvas using observed shape IDs.
ソース情報
- リポジトリ
- codejunkie99/agentic-stack-desktop
- ソースの最終更新活動
- 2026年9月10日 07:18
- 検出された SKILL.md の言語
- 英語
- スター
- 72
- フォーク
- 9
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
ファイルエクスプローラー
2 ファイルSKILL.md を表示中
SKILL.md
ソースの指示 · 読み取り専用プレビュー- name
- tldraw
- description
- Create and edit diagrams on a connected tldraw canvas using observed shape IDs.
- version
- 2026-04-21T00:00:00.000Z
- triggers
- ["draw","diagram","sketch","wireframe","flowchart","mind-map","mind map","visualize","lay out","architecture diagram","whiteboard"]
- tools
- ["mcp.tldraw.create_shape","mcp.tldraw.update_shape","mcp.tldraw.delete_shape","mcp.tldraw.get_canvas"]
- preconditions
- ["tldraw MCP server reachable via the harness's MCP config","user has http://localhost:3030 open"]
- constraints
- ["call get_canvas before update_shape or delete_shape to discover real ids","at most 200 shapes per create_shape call","coordinates within 0..1600 x 0..900 unless the user asks otherwise"]
- category
- visualization
# tldraw — draw on a live canvas
The tldraw MCP server exposes a live canvas at `http://localhost:3030`.
You draw into it; the user watches it fill in. Worthwhile drawings can
be snapshotted to disk and recalled in future sessions via this skill's
local store (`store.py`).
## When this skill loads
Any time the user asks to visualize, diagram, sketch, lay out, or map
something graphically. If they are clearly asking for prose, do not draw.
## Before drawing, once per session
Tell the user:
> Open `http://localhost:3030` to see the canvas.
If any tool returns `No tldraw browser connected`, repeat the hint and
stop until they confirm.
## Opt-in MCP setup
This beta does not install MCP wiring during default adapter setup. After the
user enables `tldraw` in `.agent/memory/.features.json`, they must add the
server to their harness MCP config. Use this local block as the source of truth:
```json
{
"mcpServers": {
"tldraw": {
"command": "npx",
"args": ["-y", "@tldraw-mcp/server"]
}
}
}
```
For Claude Code and Antigravity this usually lives in `.mcp.json`; for Cursor
it usually lives in `.cursor/mcp.json`. If a config already exists, merge the
`tldraw` server entry rather than overwriting the file.
## Tools
| tool | purpose |
|---|---|
| `create_shape({ shapes: [...] })` | add new shapes |
| `update_shape({ updates: [{ id, props }] })` | change shapes by id |
| `delete_shape({ ids: [...] })` | remove shapes |
| `get_canvas()` | return all current shapes |
Always `get_canvas` first when the user says "add to", "next to",
"modify", or refers to something already drawn — you need the real ids.
## Coordinate system
- Origin `(0, 0)` top-left. `+x` right, `+y` down.
- Stay inside `0 <= x <= 1600`, `0 <= y <= 900` unless told otherwise.
- Default sizes: boxes ~160x80, icons ~60x60.
## Shape vocabulary
| type | required | optional |
|---|---|---|
| `geo` | `x, y, w, h` | `geo` (rectangle/ellipse/triangle/diamond/star/...), `color`, `fill`, `text` |
| `text` | `x, y, text` | `color`, `size` (s/m/l/xl) |
| `arrow` | `x, y, end:{x,y}` | `color`, `text` (label) |
| `line` | `x, y, end:{x,y}` | `color` |
| `draw` | `x, y, points:[{x,y}]` | `color` (freehand, at least 2 points) |
| `note` | `x, y, text` | `color` (sticky note) |
Colors: `black, grey, light-violet, violet, blue, light-blue, yellow, orange, green, light-green, red`.
Fills: `none, semi, solid, pattern`.
## Persisting drawings
When a drawing is worth keeping across sessions (architecture decisions,
recurring diagrams, reference material), snapshot it:
```bash
# fetch current shapes via MCP get_canvas and pipe the JSON in
python3 .agent/skills/tldraw/store.py snapshot \
--label "auth-flow-v1" --tags architecture,auth \
--note "login + refresh token flow agreed 2026-04-21"
```
The store reads canvas JSON on stdin, writes a snapshot file under
`snapshots/`, appends metadata to `snapshots.jsonl`, and re-renders
`INDEX.md` — all within a single file lock. Later sessions recover a
drawing with `list` / `load`. Use `archive` to retire a snapshot; the
JSONL is append-only semantic, so archived records move to
`snapshots/archive/` rather than being deleted.
## Pitfalls
- `text` shapes need non-empty `text`.
- `arrow.end` is an absolute point, not a delta.
- Split large scenes into multiple `create_shape` calls (<= 200 each).
- Always `get_canvas` before an edit; never assume ids.
## Self-rewrite hook
After any failure, or every 5 uses:
1. Read the last N tldraw-tagged entries from `memory/episodic/AGENT_LEARNINGS.jsonl`.
2. If a constraint was violated (shape cap, id-before-edit rule), escalate
a candidate lesson to `semantic/LESSONS.md` via `tools/learn.py`.
3. Commit: `skill-update: tldraw, <one-line reason>`.
GitHubで見る