Organize a corpus¶
In this tutorial you'll take two tiny sources into a zettelkasten, group them into a project, and see how that corpus is already organized — all from a Cursor chat plus the dashboard, on a corpus small enough to guarantee success.
Here's the idea you'll learn by doing: every corpus already has an arrangement. The moment you create notes and link them, they form an intrinsic shape — clusters of related meaning held together by the links you authored. You don't have to build that shape; it's simply there. In this lesson you'll create the notes and links that are the corpus, then open the dashboard and look at the arrangement they already form.
Later, when one intrinsic arrangement isn't enough, you can materialize an explicit spine — a deliberate, switchable arrangement layered on top of the same notes. That's a separate step, and we link to it at the end. For now, the goal is just to see that the base is never empty.
Before you begin
You need the zettelkasten capability enabled. If you haven't already:
Then confirm the angelo-zettelkasten MCP server is green in
Settings → MCP. See Explanation → Zettelkasten
for what this adds.
1. Create two tiny sources¶
A source is any document you ingest. To keep this guaranteed-success and
offline, make two small text files in a sources/ folder at your repo root:
mkdir -p sources
printf 'Spaced repetition schedules reviews at increasing intervals so facts move into long-term memory.\n' > sources/spaced-repetition.txt
printf 'Active recall means testing yourself to retrieve information, which strengthens memory more than rereading.\n' > sources/active-recall.txt
Expected result: two .txt files exist under sources/.
2. Ingest them into the zettelkasten¶
In a chat, paste:
Ingest sources/spaced-repetition.txt and sources/active-recall.txt into the
zettelkasten as two sources in a graph called "study-methods".
The agent runs the source front door — source(action="ingest") then
source(action="create") — for each file, caching the text and creating a source
folder under .zettelkasten/.
Expected result: the agent confirms two sources were created. You'll see two
new folders under .zettelkasten/, each with a _meta.yaml.
3. Extract a note from each¶
Now turn each source into a note so the corpus has substance to organize:
From each source, extract one definition note capturing its core idea, and link
the two notes with a "related" relation.
The agent calls note(action="add") for each source and note(action="link") to
connect them.
Expected result: two notes (one per source) plus a link between them. That link is the first thread of the corpus's intrinsic arrangement.
Notes are the substance; arrangement is the shape
The notes and their authored links are the corpus. Any arrangement you view later — the intrinsic clustering here, or an explicit spine you build afterward — re-projects that same base. It never copies or mutates your notes.
4. Group them into a project¶
A project bundles sources so you can organize and view them together:
The agent calls project(action="create") with your two sources.
Expected result: a project manifest appears under .zettelkasten/_projects/,
listing both sources.
5. See the arrangement in the dashboard¶
Open the zettelkasten dashboard (this is the zettelkasten server's own dashboard —
the angelo-zk-dashboard console script, not the memory dashboard):
The agent calls launch_dashboard and returns a local URL. Open it, then use the
picker in the top-left to select your study-methods-review project.
Expected result: the dashboard opens with a Concepts tab selected in the top-right view switcher.
Now look at the Concepts tab. This is the graph of your corpus: your two notes with the link you authored between them. Angelo groups notes by meaning — semantic clustering — automatically, so your two related notes sit together as one small cluster. There is nothing to configure and no view to pick:
- You won't see an "Organize by" selector, and that's correct. That control only appears once you've materialized an explicit spine — it's hidden until you have something to switch between (progressive disclosure). With just the intrinsic arrangement, there's nothing to choose.
- The Concepts tab is the intrinsic arrangement. What you're looking at — two notes, one link, one cluster — is the whole shape the corpus formed on its own.
Expected result: you see your two notes grouped as one small corpus, with the link between them, in the Concepts graph. That's the intrinsic arrangement, and you never had to build it.
What you learned¶
- The source-first flow: ingest → extract notes → group into a project → view.
- Every corpus already has an arrangement — the intrinsic one formed by notes and links — and the dashboard's Concepts tab shows it directly via semantic clustering.
- An explicit spine is an additive layer you build later; a fresh corpus like this one has none, which is exactly why the "Organize by" selector isn't there yet.
Next steps¶
- Ready to impose a deliberate arrangement? Materialize an explicit spine you can switch on and off: How-to → Promote a spine.
- Once you have two or more spines, line them up for comparison: How-to → Build a matrix.
- Understand the spine model — apex, dimension nodes, and the Matrix / Draft / Graph projections: Explanation → Spines.
- See how zettelkasten fits the wider system: Explanation → Zettelkasten.
- Read the full note/source/spine vocabulary in the zettelkasten protocol.