Package diagram
Draw a UML package diagram in the open tldraw offline canvas — tab-folder packages with nesting/containment, contained elements, and dependency / «import» / «merge» relationships. Use when the user asks for a package diagram, module or namespace organization, code-organization layers, or package dependency structure. Produces the same nested-folder 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 package-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.2 KB, 429 tokens by cl100k_base, as published. Nobody here has run it
package-diagram
Consistent UML package diagrams — namespace/module organization and dependencies.
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.
Before you start
- Read
references/shared/bridge.md(bundled with this skill),references/shared/style.md,references/shared/diagramming.md,references/shared/uml-notation.md(stereotypes). - Read
./reference.md— tab-folder rendering, nesting math.
Target document
Convention: ~/canvas/diagrams/<codebase>-packages.tldraw — or a page in a
project file (references/shared/conventions.md, Mode 2). If not open,
create/open it with sh scripts/new-canvas <absolute-path>.
Input
Prose, a package/namespace tree, or a repo layout. Normalize to
{ packages:[{key,label,parent,elements:[...]}], edges:[{from,to,kind:'dependency'|'import'|'merge'}] }.
Workflow
- Parse → normalized model. Nesting from
parentlinks. - Render packages as tab + body (frames for containers) per
reference.md; nest children by parenting; size parents to fit. - Connect with dashed bound arrows (
«import»/«merge»labels; bare or«use»for plain dependency), body↔body, never tabs. - Title + optional caption per
diagramming.md. Tagmeta.kckit; stable ids.getLints()→ fix.zoomToFit.
Verify (once)
getShapes() shows tab+body pairs with correct nesting; getBindings()
confirms dependency edges bound; getLints() clean.
Report
Doc id/name, package count (nested depth), edge count by kind, lint status.
What ships with it: 10 files
79.0 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.9 KB