Skip to content

Wiki Stubs

A wiki stub is a placeholder for a concept you don’t have time to write up properly right now. You drop the title, maybe a source or two, and move on — the stub waits for you in the Curate view until you come back to develop it (with AI help or by hand).

This is one of Pensum’s two main capture loops: the other is Quick Add for tasks. Both follow the same principle — capture fast now, organize later.

capture curate develop
┌──────────┐ ┌──────────────┐ ┌────────────────────────┐
│ Cmd+Shft │ │ Curate view │ │ Expand with AI │
│ + W │ → │ shows stubs │ → │ (inserts callout) │
│ modal │ │ oldest first│ │ or write it yourself │
└──────────┘ └──────────────┘ └────────────────────────┘
status: stub status: drafted → developed

You’re never forced to develop a stub. It can sit at status: stub for as long as you want. The Curate view exists so the backlog of half-formed ideas surfaces deliberately when you have the time and headspace, instead of getting lost.

Press Cmd+Shift+W (or run Capture Wiki Stub from the command palette).

FieldRequiredNotes
TitleyesBecomes the file name and the H1. Slashes and other path-unsafe characters get replaced with -.
SourcenoA [[wikilink]] to the meeting / note where you ran into the concept, or a URL. Goes into frontmatter sources:.
TagsnoComma-separated, e.g. smtp, email.

Press Enter to create. The file lands in your Wiki folder (Wiki by default — change it in Settings → General). Pensum refuses to overwrite an existing file with the same name.

---
type: wiki
id: 01KRT...
entry_type: concept
status: stub
created: 2026-05-16
last_reviewed: 2026-05-16
sources: ["[[Meeting 2026-05-12]]"]
tags: [smtp, email]
related: []
---
# SMTP Submission Port 587
## My understanding
## Key points
## Sources

The three sections (My understanding / Key points / Sources) follow Karpathy’s LLM-wiki pattern — the same shape works whether a human or an AI is filling it in, and the headings make it obvious what each section is for.

FieldValuesMeaning
entry_typeconcept (default), person, project-reference, decision, tool, pattern, or any custom stringWhat kind of thing this entry describes. Filters work over this field, so consistent values pay off.
statusstubdrafteddevelopedarchivedWhere in the lifecycle this entry sits. New stubs start at stub; AI expansion moves it to drafted; you flip to developed when you’re satisfied; archived keeps the file but hides it from the Curate view.
last_reviewedYYYY-MM-DDUpdated whenever you sit down with the entry. The Curate view uses age to nudge old stubs forward; future tooling will surface entries that haven’t been reviewed in a while even if status: developed.
sourcesarray of links / URLsWhere you encountered the concept. Wikilinks to meetings or other notes work best — they enable backlinks.
relatedarray of wikilinksOther wiki entries this connects to. Build the graph deliberately.
tagsarrayPlain tags.

Open the sidebar tab Curate (book-open icon) — or Pensum: Open Curate view from the command palette. The view lists every wiki entry sorted oldest-first so the stubs that have been waiting longest are at the top.

Each row has two actions:

  • Expand — runs Stub Expansion (Pro). The AI drafts a [!ai-generated] callout under the title, flips status: stub to drafted, and leaves your sections untouched for you to keep building on.
  • Open — opens the file so you can develop it manually.

When the list is empty, you’ve cleared the backlog — capture more with Cmd+Shift+W.

Stub Expansion fills in the gap between “I jotted this down” and “I actually understand it.” It takes the title plus the entry’s frontmatter (sources, tags) and asks the model to draft an explanation that fits the same three-section template.

The result lands as a callout, structurally marked as AI-generated:

> [!ai-generated] Drafted by claude-sonnet-4-6 on 2026-05-16
>
> SMTP Submission Port 587 is the standard port for...
> ...

The callout sits above your ## My understanding section, so the original template stays intact. The intent is for you to read what the AI drafted, then write your own understanding in your section — the AI’s draft is reference material, not a replacement for your thinking. The provenance callout makes that distinction visible in every view of the file.

After expansion, status flips to drafted automatically. You move it to developed when you’ve added your own content and feel like the entry stands on its own.

Stub Expansion uses the model you’ve picked under Settings → AI → Stub Expansion. Pro All-in-One users get this managed; Pro BYO users supply the key. See the model catalog for which models the catalog recommends for this feature.

Wiki entries become valuable when they connect. A few patterns that work:

  • From a meeting note — drop a [[Concept Name]] wikilink as you take notes. If the page doesn’t exist yet, Obsidian shows the link in muted styling; create the stub later with Cmd+Shift+W (or click through to create it inline).
  • From another wiki entry — add wikilinks under ## Key points AND populate the related: frontmatter field. The frontmatter field is what queries operate on; the inline wikilink is what readers follow.
  • From a project page — same as above. Project pages naturally accumulate references to the concepts they depend on.

The stub template lives at .pensum/templates/wiki-stub.md. Edit it directly to change the default sections, frontmatter defaults, or anything else. See the templates guide for the full template syntax and how to add new templates.

A common customisation: change the default entry_type. If most of your stubs are people (sales prospects, team members), set entry_type: person in the template so you don’t have to retype it each time.

  • Bulk operations on stubs (mass-archive, mass-expand) — likely v1.1 once usage patterns are clearer.
  • last_reviewed automation (auto-bump when you edit, surface stale-developed entries) — design pending.
  • Cross-meeting concept extraction (auto-create stubs from concepts mentioned across multiple meetings) — deferred.