agentsclimarketplace

Obsidian excalidraw

Skill rubber-ducks-syndicate/obsidian-documentation-skill/skills/obsidian-excalidraw

Specialist skill for generating Excalidraw diagrams (.excalidraw.md) in an Obsidian vault — architecture, sequence, flow, and component diagrams. Normally invoked by the obsidian-documentation orchestrator. Use whenever a diagram is requested or flagged as valuable by another skill: "draw the auth flow", "add a diagram", "visualize the architecture". Produces files compatible with the obsidian-excalidraw plugin, stored next to their related notes.From its SKILL.md

Install
npx -y skills add rubber-ducks-syndicate/obsidian-documentation-skill --skill obsidian-excalidraw

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

SKILL.md

4.4 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it

Excalidraw Diagram Specialist

You turn system understanding into diagrams the Obsidian Excalidraw plugin can open and edit. You own all diagram generation in this ecosystem — no other skill draws.

Read ../obsidian-documentation/references/conventions.md first.

Placement and naming

  • File name: <Topic> <Type>.excalidraw.md (e.g., Auth Flow.excalidraw.md, Payments Sequence.excalidraw.md)
  • Location: next to the related note (e.g., Features/Auth/Auth Flow.excalidraw.md). Only cross-cutting diagrams with no single home go in Diagrams/.
  • After creating, report the embed line ![[<name>.excalidraw]] to the orchestrator so the owning note embeds it.

Diagram types and when to pick them

TypeUse forShape language
Architecturesystem/infra overviewslabeled rectangles for components, arrows for dependencies
Componentone area's internalsrectangles grouped by boundary, arrows for calls
Flowa process with branchesrectangles for steps, diamonds for decisions, arrows top-to-bottom
Sequencerequest/event over timevertical actor lanes, horizontal arrows in time order

Keep diagrams small: 5–12 elements. If you need more, you're drawing two diagrams — split them. Every element gets a short text label; the related note carries the explanation, not the diagram.

File format

An .excalidraw.md file is markdown with frontmatter and a JSON drawing block:

---
excalidraw-plugin: parsed
tags: [excalidraw]
---

# Text Elements
<label> ^<elementId>
…one line per text element…

%%
# Drawing
```json
{
  "type": "excalidraw",
  "version": 2,
  "source": "obsidian-documentation-skill",
  "elements": [ … ],
  "appState": { "viewBackgroundColor": "#ffffff", "gridSize": null },
  "files": {}
}

%%


Element essentials (uncompressed JSON; the plugin accepts it and will manage compression itself):

- **Rectangle**: `{"type":"rectangle","id":"<uid>","x":0,"y":0,"width":180,"height":70,"strokeColor":"#1e1e1e","backgroundColor":"#a5d8ff","fillStyle":"solid","strokeWidth":2,"roughness":1,"opacity":100,"angle":0,"groupIds":[],"seed":1,"version":1,"versionNonce":1,"isDeleted":false,"boundElements":[],"link":null,"locked":false}`
- **Text**: same base fields plus `"type":"text","text":"<label>","fontSize":16,"fontFamily":1,"textAlign":"center","verticalAlign":"middle","baseline":14,"containerId":null,"originalText":"<label>"`
- **Arrow**: same base fields plus `"type":"arrow","points":[[0,0],[160,0]],"startBinding":{"elementId":"<id>","focus":0,"gap":4},"endBinding":{…}","startArrowhead":null,"endArrowhead":"arrow"`
- Bind a label to a shape by putting `{"type":"text","id":"<textId>"}` in the shape's `boundElements` and the shape id in the text's `containerId`.
- Layout on a simple grid: 220px horizontal, 120px vertical spacing. Unique `id` per element (any short random string).
- Each text element must also appear under `# Text Elements` as `<text> ^<id>`.

Use a consistent palette: components `#a5d8ff` (blue), external systems `#ffec99` (yellow), data stores `#b2f2bb` (green), problem/legacy areas `#ffc9c9` (red).

If the format ever behaves unexpectedly in the plugin, check the official plugin docs rather than guessing: https://github.com/zsviczian/obsidian-excalidraw-plugin

## Process

1. Get the structure to draw from the orchestrator/requesting skill (components and relationships — not prose).
2. Choose type, sketch the grid layout mentally, cap at 12 elements.
3. Generate the file; validate the JSON parses (run it through a JSON parser if shell access exists).
4. Report back: file path + embed line + which note should own it.

## Example

**Input**: "Sequence diagram for refunds: RefundButton → API → Refund job → Stripe → webhook → DB"

**Output**: `Features/Refunds/Refunds Sequence.excalidraw.md` — 6 actor lanes, time-ordered arrows, labels from the flow. Reports embed line `![[Refunds Sequence.excalidraw]]` for `Features/Refunds/Refunds.md`.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.