first commit

This commit is contained in:
2026-06-11 03:33:14 +08:00
commit 5f555bf342
599 changed files with 142347 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
# CANVAS
Canvas files are optional derived artifacts stored under `Maps/`. They are not the source of truth.
## Placement and scope
- Default path: `Maps/*.canvas`
- Default auto-maintained canvas: `Maps/literature.canvas`
- Other canvases are explicit-only unless a workflow clearly requires them
- Keep canvas references project-local unless the user explicitly asks for cross-project mapping
## Core JSON structure
Use the standard JSON Canvas shape:
```json
{
"nodes": [],
"edges": []
}
```
Each node needs a stable `id`, coordinates (`x`, `y`), and size (`width`, `height`).
Each edge needs `id`, `fromNode`, and `toNode`.
## Recommended node types
- `file` node: canonical note under `Sources/*`, `Knowledge/*`, `Experiments/*`, `Results/*`, `Writing/*`
- `text` node: short synthesis, legend, gap summary, or section heading
- `link` node: external URL when the relationship should stay outside the vault
- `group` node: visual cluster for a topic, method family, dataset family, or review bucket
Avoid treating free-form text nodes as a second knowledge store. Durable content belongs in markdown notes first.
## File-node conventions
Use `file` nodes for canonical notes that already exist on disk.
- paper/source note -> point to `Sources/Papers/*` or other `Sources/*`
- synthesis note -> point to `Knowledge/*`
- experiment note -> point to `Experiments/*`
- stable result/report -> point to `Results/*` or `Results/Reports/*`
File nodes should reference existing files only. If the note does not exist yet, create the note first or use a temporary `text` node that clearly indicates draft intent.
## Edge conventions
Use edges to express relationship semantics, not decoration.
- method extends method
- paper uses dataset
- result supports claim
- gap motivates experiment
- report summarizes experiment
When labels are supported in the producing workflow, keep them short and explicit:
- `uses`
- `extends`
- `compares`
- `supports`
- `contradicts`
- `motivates`
- `summarizes`
Do not draw unlabeled dense meshes when a few explicit edges communicate the structure better.
## Group and color conventions
Use groups to organize major clusters such as:
- `Methods`
- `Datasets`
- `Claims`
- `Gaps`
- `Experiments`
- `Results`
Use color sparingly and consistently. Color is a navigation aid, not a semantic database.
Suggested pattern:
- one group color per cluster family
- neutral text nodes for summaries
- do not encode critical meaning only through color
## Layout conventions
- Keep 50100 px spacing between unrelated nodes
- Align related file nodes in rows or columns
- Put source papers on one side, synthesis notes in the middle, and gaps / experiments / results downstream
- Avoid overlapping groups
- Prefer a stable, readable layout over a compact but fragile layout
## Recommended `Maps/literature.canvas` structure
For literature workflow, prefer this shape:
1. `Sources/Papers/*` file nodes for the key papers
2. `Knowledge/*` file nodes for:
- `Literature Overview`
- `Method Taxonomy`
- `Research Gaps`
3. `text` nodes for short bridge summaries where needed
4. groups for `Methods`, `Datasets`, `Gaps`, and `Results`
5. edges showing:
- paper -> method family
- paper -> dataset
- paper -> gap or limitation
- gap -> experiment direction
This keeps the canvas derived from canonical notes instead of replacing them.
## Validation checklist
Before treating a canvas as valid, check:
- every `file` node target exists
- every edge endpoint points to an existing node id
- node ids are unique
- groups do not reference missing child nodes
- archived notes are either intentionally preserved or relinked; no silent dangling references
- the canvas adds navigation value instead of duplicating a markdown table
## What not to put in Canvas
- raw source-of-truth metadata that belongs in `_system/registry.md`
- long-form synthesis that belongs in `Knowledge/*`
- unstable scratch thinking that should remain in `Daily/*`
- auto-generated project-wide mega-graphs by default
Generate or update a canvas only when the user explicitly asks for it, or when `Maps/literature.canvas` is part of the literature workflow.