grounds
A supports, justifies or underlies B, the relation that takes the weight.
“Positionality requirement grounds the scope statement”0.7
A VS Code fork · a graph engine · ideas as a directed graph
In Concept Weaver an idea is a node, and a link between two ideas has a direction, a weight and a type. You edit the graph itself. A document comes out of it when you trace a path from node to node.
Into the canvasAct I · the atoms
A node is what you get when you start typing, free-form prose in markdown, the default. Promote it and it becomes a concept: a named idea with a title, tags and a body. Nodes are joined by edges, and an edge carries four things at once.
The whole graph is plain YAML + markdown on disk. Git and grep work on it just like any text file, and every change to the graph lands as a clean diff.
Act II · the canvas, three layouts
It’s the same nodes every time, just laid out differently. Flow stands the chapters up as columns; Sequence runs them top to bottom in reading order. Force turns the layout loose and lets the nodes push apart until the graph finds a resting shape. Hover a node to trace what it connects to. Over on the right, click through the nodes in order to assemble a document: a saved walk through the graph you can read start to finish.
Act III · a collaborator you invoke
Nothing is written for you while you think. You call the model when you want it, and it works on a subgraph (the nodes you selected plus a neighbourhood), never blind to the structure around them. Press on the canvas above and the tool re-proposes the edges it held back, drawn asdashed lines you accept or reject. Every proposal is a real edge from the graph’s own data, and nothing joins the map until you say so.
| Operation | Input | Output |
|---|---|---|
| Suggest connections | Selected node(s) | Proposed edges with type, weight and reasoning |
| Draft bridge prose | Two or more nodes | A new text node connecting them, placed in the graph |
| Analyse structure | Whole graph or subgraph | Orphans, weak links, dense clusters, gaps |
| Propose path | Start + end + constraints | An ordered traversal forming a coherent document |
| Weight audit | Edge-type filter | Edges whose weights don’t match node content |
| Promote / decompose | Text or concept node | Split long text into concept nodes, or merge several into one |
Five ways one idea can hold another
A supports, justifies or underlies B, the relation that takes the weight.
“Positionality requirement grounds the scope statement”0.7
B continues, elaborates or carries A further, forming the argument’s spine.
“Constraint transparency reveals binary as instance of its own argument”0.9
A and B pull against each other, a contradiction held open rather than resolved.
“Fire as discrete vs digital as ongoing process”0.9
A puts B to work as a method, view or operation enacting a concept.
document view → path traversal0.85
A gestures toward B across distance, structure implying a later reading.
“Ch9 → Ch11: space between figures → third sibling named Goronwy”1.0
Specimens above are real edge notes, verbatim, from the two graphs on the canvas. Every one is directed: reverse it and the bridge points the other way.
Act IV · five views, one datum
This is home base, the whole workspace gathered in one place, and not everything here is a node, because images, PDFs and data live alongside the graph, which exists within the workspace.
This is the canvas above, where you drag, zoom and cluster nodes to see how your thinking hangs together, and AI-suggested edges show up as dashed lines you accept or reject.
This is a rendered path, read and written linearly, so reordering the graph reorders the document, and the transitions between nodes are editable prose.
This is an editable spreadsheet of the whole directed weighted graph, where rows are sources, columns are targets and each cell is the weight. You work inside it rather than just looking at it.
This is the Monaco editor, always present and inherited from VS Code, bringing syntax highlighting, multi-cursor and diff view along with everything else.
Graph and document are foregrounded and the command palette is simplified, while the AI surfaces as a conversational sidebar: “help me connect these ideas.”
You get the full VS Code alongside the graph and tapestry, together with graph query commands, keyboard shortcuts for every edge operation, scripting and custom AI providers.
Coda · the colophon
The engine is a typed TypeScript graph: adjacency matrices, neighbour expansion and a breadth-first findPath that is the very routine filling the gaps when you assemble a document above. The validating dataset is the GORONWY manuscript: 209 paragraph-level arguments across fourteen chapters, joined by 242 typed weighted edges.
findPath(from: string, to: string): string[] | null {
const visited = new Set<string>();
const queue: string[][] = [[from]];
while (queue.length > 0) {
const path = queue.shift()!;
const current = path[path.length - 1];
if (current === to) return path;
if (visited.has(current)) continue;
visited.add(current);
for (const edge of this.edgesFrom(current))
if (!visited.has(edge.to)) queue.push([...path, edge.to]);
}
return null;
}src/core/graph.ts
What this is not
A manuscript is mostly extension, one move carrying the next. The nine foreshadows edges are the rarest and the longest-range: the buried threads, like Goronwy, that only resolve chapters later.
Concept Weaver, a workspace for connecting ideas rather than filing them.← back to the work