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

@@ -67,6 +67,6 @@
"repelStrength": 20,
"linkStrength": 1,
"linkDistance": 80,
"scale": 0.4786753448718912,
"scale": 0.6620854838064228,
"close": false
}

View File

@@ -190,18 +190,22 @@
},
"active": "a31de1b302cdc5cf",
"lastOpenFiles": [
"README.md.tmp.224546.1775557396282",
"README.md.tmp.224546.1775557389171",
"README.md.tmp.224546.1775557379648",
"skills/wiki/references/plugins.md.tmp.224546.1775557354797",
"skills/wiki/SKILL.md.tmp.224546.1775557343437",
"skills/canvas/references/canvas-spec.md",
"skills/canvas/references/canvas-spec.md.tmp.224546.1775557327401",
"skills/canvas/SKILL.md",
"skills/canvas/SKILL.md.tmp.224546.1775557280886",
"commands/canvas.md",
"commands/canvas.md.tmp.224546.1775557227716",
"wiki/canvases",
"skills/canvas/references",
"skills/canvas",
"wiki/comparisons/Wiki vs RAG.md",
"wiki/comparisons/Wiki vs RAG.md.tmp.224546.1775556215080",
"wiki/questions/How does the LLM Wiki pattern work.md",
"wiki/questions/How does the LLM Wiki pattern work.md.tmp.224546.1775556203684",
"wiki/comparisons",
"wiki/questions",
"wiki/concepts/_index.md.tmp.224546.1775556164132",
"wiki/index.md.tmp.224546.1775556150463",
"wiki/log.md.tmp.224546.1775556137750",
"wiki/hot.md.tmp.224546.1775556127364",
"wiki/sources/_index.md.tmp.224546.1775556114770",
"wiki/entities/_index.md.tmp.224546.1775556102633",
"wiki/meta/workflow-loop.gif",
"wiki/meta/wiki-graph-grow.gif",
"cover.gif",
@@ -233,10 +237,6 @@
"wiki/Wiki Map.canvas",
"skills/wiki/references/rest-api.md",
"skills/wiki/references/plugins.md",
"skills/wiki/references/modes.md",
"skills/wiki/references/mcp-setup.md",
"skills/wiki/references/git-setup.md",
"skills/wiki/references/frontmatter.md",
"skills/wiki/references/css-snippets.md"
"skills/wiki/references/modes.md"
]
}