workspace.json — Obsidian saved state with main.canvas as active tab
- Active leaf: wiki/canvases/main.canvas (opened when vault loads)
- Contains user's canvas: title card, General zone, Wiki Pages zone
- Nodes: logo, LLM Wiki Pattern note, insight text card + user additions
workspace-visual.json — updated default tab order
- Tab 1 (default): wiki/canvases/main.canvas
- Tab 2: projects/visual-vault/design-ideas.canvas
- Tab 3: wiki/Wiki Map.canvas
- Tab 4: Graph view
- Right sidebar: Calendar + Thino + Backlinks (open)
wiki/canvases/main.canvas — first real canvas with user content
- General zone: logo-pro.png, LLM Wiki Pattern note, insight text
- Wiki Pages zone: Cosmic Brain cover + GIFs (user additions)
.gitignore — added patterns for personal files Obsidian drops in root
Critical:
- find precedence bug fixed: added \( -name '*.png' -o -name '*.jpg' \) grouping
so -newer applies to BOTH extensions, not just .jpg
- Auto-positioning row y-detection: replaced broken right-half heuristic with
min(n.y for all inside) — matches canvas-spec.md pseudocode
- WIKI.md canvas color table corrected: 1=red,2=orange,3=yellow,4=green,5=cyan,6=purple
(was wrong mapping 1=blue etc from the graph CSS scheme, not canvas colors)
High:
- ID generation: full Unix timestamp (10 digits) instead of last-4-digits
+ added collision fallback (-2, -3 suffix)
- README: added /canvas add text and /canvas add pdf to commands table
- Aspect ratio: removed duplicate partial table from SKILL.md — now defers
to canvas-spec.md as single source of truth
- new op: writes to wiki/overview.md not wiki/index.md (index has fixed schema)
- from banana: added explicit note that /banana is an optional external skill
Medium:
- add note: clarified 'type: file' vs 'type: link' — .md files use file nodes
- zone fallback y: changed from -140 (overlaps starter) to 280 (safe below all content)
- CLAUDE.md: added /save, /autoresearch, /canvas to Plugin Skills table
Low:
- allowed-tools: removed Grep (unused by any documented operation)
- Frontmatter: flattened description to single-line quoted string (fixes IDE
YAML block scalar parsing diagnostic on lines 4-9)
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
calendar/data.json — configured through Obsidian UI:
- Word count dots: #ebcb8b, 250 words/dot, calendar + menu
- Task dots: #d08770, max 1 incomplete, calendar + menu
- Link indicators: #a3be8c, menu only
- Backlink indicators: #5e81ac, menu only
- Zettel tracking: #b48ead, calendar + menu
community-plugins.json — enabled through Obsidian (may include dataview etc)
workspace.json — updated open tabs/layout state
graph.json — Obsidian reset colors on close (expected behavior)
Copyright clean-up for public educational vault:
- Deleted wiki/sources/Nate Herk LLM Wiki Transcript.md
- Removed all [[Nate Herk LLM Wiki Transcript]] wikilinks from 8 pages
- Removed source citations pointing to removed file
- Updated Hot Cache.md: removed attribution to specific person
- Updated Andrej Karpathy.md: first_mentioned now points to concept page
- Updated Wiki Map.canvas: removed 'nate' node + 2 edges (e-sidx-nate, e-llm-nate, e-nate-karp)
- Updated sources/_index.md: empty transcripts section
- Updated index.md, hot.md, log.md, overview.md: no Nate Herk entries
Vault now contains 100% original synthesis content:
3 concept pages + 1 entity page + navigation pages
All original, attribution-free, safe for public distribution
calendar/data.json:
- shouldConfirmBeforeCreate: false
- localeOverride: en-GB
- weekStart: monday
- showNoteIndicator: true
- showWeeklyNote: false
thino/data.json: full UI config with daily save mode, list view
.gitignore updated:
.obsidian/plugins/*/data.json (still blocks API keys, sync tokens, etc)
!calendar/data.json (exception — safe config, no secrets)
!thino/data.json (exception — safe config, no secrets)
Future users now get full plugin configuration out of the box.
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.
- Remove verbatim Nate Herk transcript from .raw/ (copyright)
- Rewrite wiki/sources page as synthesis + attribution + link to original
- Keeps all original concept/entity pages (our synthesis, not third-party content)
- .raw/ folder preserved for users to add their own sources
- This repo is now safe to share publicly as a plugin/skill library
- Wiki Map.canvas: 13 nodes at golden angle 137.5deg (Fibonacci/sunflower pattern)
- index at center, 3 domain _indexes in ring 1, content in outer rings
- Color coded: orange=concepts, purple=entities, green=sources, blue=navigation
- 17 semantic edges with labels
- graph.json: search:path:wiki — eliminates all plugin file noise
- hideUnresolved:true — removes phantom Subject A/B nodes
- nodeSizeMultiplier 1.8 — hub nodes visually dominant
- repelStrength 30 — clean radial spreading
- Created wiki/concepts/_index.md, wiki/entities/_index.md, wiki/sources/_index.md
- These are domain hub nodes that create the 3-ring hierarchy in graph view
- All wiki pages now link to their domain _index
- Creates proper hub-and-spoke topology in force-directed graph