Build a matrix¶
Build a spine-group matrix that compares a family of same-shaped spines side by side — one row per member spine, one column per shared dimension, every cell grounded in the sources. This is a dashboard task; for what a matrix is (and how it differs from a spine) see Matrices, and for the projection model see Spines.
Before you begin
You need a spine-schema with more than one member spine to compare (a family such as "Decision Profile" grouping several persona spines). If you haven't materialized any spines yet, do that first: Promote a spine.
1. Open the matrix builder¶
- In the zettelkasten dashboard, select the project (or graph) that owns the spines.
- Go to Workshop → Matrix.
- Open the builder pane to edit the rows and columns.
The builder is a side pane: the Rows and Columns config sit beside a live grid, so you shape the matrix and watch it populate without leaving the view.
2. Choose the Group → Spine row strategy¶
- For the row axis, pick Group — it aggregates many notes into one row per entity rather than one row per source.
- Set the group strategy to Spine.
- Pick your spine-schema. Adopting it wires the row axis to that spine-schema
(
ref=schema:<fingerprint>) and prefills the columns from its shared dimensions. Rows become the spine-schema's member spines; columns become its dimensions.
Deterministic, not agent-driven
The Spine strategy reads the materialized spine directly, so the row and column skeleton is built without the agent. The agent only comes in during the populated build (the cell paragraphs).
3. Curate the include set¶
Adopting a schema starts with every member spine included. Curate it down to the comparison you want:
- Drop rows — untick spines in the member list to remove them. The list shows
each member's evidence count so you can tell which spines are well-supported
before deciding what to keep. Your ticked set becomes the row axis's
includelist (emptyincludemeans "all members"). - Drop columns — remove a dimension column to leave it out of the comparison.
4. Run the populated build¶
Click Generate. The build streams the side-by-side matrix in place through three phases, shown on a progress bar:
- gather — collect the in-scope evidence for every cell.
- extract — the dominant pass; each cell is filled from its members' sources (cells shimmer while pending).
- synthesize — each populated cell gets a grounded paragraph, streamed token by token.
Cells fill in as the build runs, so you can start reading before it finishes.
5. Save the result¶
Generate persists a normal saved matrix. The populated matrix is written as a saved matrix in the Matrices dropdown, so it survives a reload and can be reopened, renamed, merged, or compared later — no separate save step needed.
Comparisons
Saved spine-group matrices also appear under Comparisons in the Matrices dropdown, carrying their member and dimension counts, so you can jump straight back to a side-by-side view.
Related¶
Semantically related entries from the memory graph.
- D Spines are additive/separate/selectable layers: NOT project sources, spine-side edges, 'Organize by' picker
- D v2 spine model: structure tree + first-class spine-side membership relation (supersedes grid framing)
- D Schemas can declare materialized structure (the synthesis spine); added a schema-generation tool