feat: /canvas command — visual layer of the wiki

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
This commit is contained in:
Daniel
2026-04-07 13:23:33 +03:00
parent ba4eed4731
commit 3b4f62eb0c
8 changed files with 602 additions and 19 deletions

View File

@@ -81,6 +81,11 @@ Then scaffold the full wiki structure.
| `/save` | File the current conversation as a wiki note |
| `/save [name]` | Save with a specific title (skips the naming question) |
| `/autoresearch [topic]` | Run the autonomous research loop: search, fetch, synthesize, file |
| `/canvas` | Open or create the visual canvas, list zones and nodes |
| `/canvas add image [path]` | Add an image (URL or local path) to the canvas with auto-layout |
| `/canvas add note [page]` | Pin a wiki page as a card on the canvas |
| `/canvas zone [name]` | Add a new labeled zone to organize visual content |
| `/canvas from banana` | Capture recently generated images onto the canvas |
| `lint the wiki` | Health check: orphans, dead links, gaps, suggestions |
| `update hot cache` | Refresh hot.md with latest context summary |
@@ -198,16 +203,20 @@ cosmic-brain/
│ ├── wiki-query/ # QUERY operation
│ ├── wiki-lint/ # LINT operation
│ ├── save/ # /save — file conversations to wiki
── autoresearch/ # /autoresearch — autonomous research loop
── autoresearch/ # /autoresearch — autonomous research loop
│ │ └── references/
│ │ └── program.md # configurable research objectives
│ └── canvas/ # /canvas — visual layer (images, PDFs, notes)
│ └── references/
│ └── program.md # configurable research objectives
│ └── canvas-spec.md # Obsidian canvas JSON format reference
├── agents/
│ ├── wiki-ingest.md # parallel ingestion agent
│ └── wiki-lint.md # health check agent
├── commands/
│ ├── wiki.md # /wiki bootstrap command
│ ├── save.md # /save command
── autoresearch.md # /autoresearch command
── autoresearch.md # /autoresearch command
│ └── canvas.md # /canvas visual layer command
├── hooks/
│ └── hooks.json # SessionStart + Stop hot cache hooks
├── _templates/ # Obsidian Templater templates