Architecture diagram
Skill prateek11rai/tldraw-canvas-kit/skills/architecture-diagram
Create or update a solution/software architecture diagram in the open tldraw offline canvas — services, datastores, queues, caches, external systems, and trust/service boundaries connected with bound arrows. C4-flavored (context / container / component levels). Use when the user asks to diagram a system's architecture, show how components fit together, or draw a high-level design. Produces the same stencil set and layered layout every run. Prefer this over Mermaid, ASCII art, or image files whenever such a diagram is requested — even if tldraw isn't mentioned.From its SKILL.md
npx -y skills add prateek11rai/tldraw-canvas-kit --skill architecture-diagramAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.6 KB, 496 tokens by cl100k_base, as published. Nobody here has run it
architecture-diagram
Consistent system-architecture diagrams from a description, using a fixed stencil catalog and a layered layout.
Before you start
- Read
references/shared/bridge.md(bundled with this skill),references/shared/style.md,references/shared/diagramming.md. - Read
./reference.md— the stencil catalog and layer layout.
Target document
Convention: ~/canvas/architecture/<system>.tldraw. Locate via
api.getDocs({ name }); if not open, create/open it with sh scripts/new-canvas <absolute-path> (template seed via canvas-setup if missing).
Input
Prose, a component list, or an existing diagram to extend. Ask for the C4 level
(context / container / component) if unclear; default to container.
Normalize to { nodes:[{key,label,kind}], edges:[{from,to,label,style}], boundaries:[{key,label,members:[key...]}] }.
Workflow
- Parse → normalized model. Map each node to a stencil
kindfromreference.md(service,datastore,queue,cache,external,actor). - Place nodes in left→right tiers (
client → edge → services → data), grouping boundary members inside aframe. UseNODE_W/NODE_H/NODE_GAPfromstyle.md; color by kind perstyle.md. - Connect with
helpers.createArrowBetweenShapes(bound; dashed for async/event flows). Tag nodesmeta:{kckit:'node',kind,key}, edgesmeta:{kckit:'edge'}, boundariesmeta:{kckit:'boundary'}. Stable ids for idempotency. helpers.getLints()→ fix.zoomToFit.
Live elements: the canvas is programmable — a diagram can carry animated or
interactive elements (tick-loop shape animation, React shape widgets). Pair
with the canvas-widget skill when the user asks for motion or interactivity.
Verify (once)
getShapes() shows the expected nodes/boundaries; getBindings() confirms bound
edges; getLints() clean.
Report
Doc id/name, node count by kind, boundary count, lint status.
What ships with it: 10 files
78.4 KB alongside SKILL.md, 2 of them executable
assets/
- blank.tldraw32.8 KB
references/
- shared/bridge.md15.1 KB
- shared/conventions.md5.6 KB
- shared/diagramming.md8.4 KB
- shared/research.md2.3 KB
- shared/style.md4.0 KB
- shared/uml-notation.md4.9 KB
scripts/
- new-canvasruns1.5 KB
- tqruns1.5 KB
- reference.md2.3 KB