New files:
commands/canvas.md — slash command with full trigger table
skills/canvas/SKILL.md — complete skill: open, new, add image/text/pdf/note,
zone, list, from-banana operations
skills/canvas/references/canvas-spec.md — Obsidian canvas JSON spec:
coordinate system, all node types, color table,
image sizing by aspect ratio, auto-positioning
pseudocode, common mistakes, full example
Auto-positioning algorithm (bbox math):
- Finds rightmost node in target zone
- Places next node at rightmost_x + 40, same row y
- If overflow: wraps to new row (max_y_in_zone + 20)
- Falls back to below all content if no zone found
Banana integration:
- /canvas from banana: checks .recent-images.txt first, then
filesystem find -newer 10min, presents list for confirmation
- After any /banana run: suggests /canvas from banana
Updated:
skills/wiki/SKILL.md — added /canvas to routing table
skills/wiki/references/plugins.md — added Calendar + Thino with
pre-installed note + manual install fallback
README.md — /canvas in commands table + file structure
Users who clone the repo now get the full setup automatically:
- workspace.json tracked in git (removed from .gitignore)
- Opens with Wiki Map canvas as default view
- Graph view pre-configured: path:wiki filter, 5 color groups, proper physics
- Obsidian reads this on first open before any state reset occurs
- bin/setup-vault.sh — one-time setup script
- Writes correct graph.json (filter + colors)
- Writes app.json (excludes plugin dirs from graph)
- Writes appearance.json (enables vault-colors CSS)
- Prints clear next-step instructions
- Usage: bash bin/setup-vault.sh
- README updated: Option 1 now shows clone + setup.sh as recommended path
- Clear explanation of what the script does
- 2-minute setup flow vs manual configuration
Result: users clone, run setup.sh, open Obsidian — done.
Graph shows only wiki pages, color-coded, no noise.