Spaced repetition
Spaced repetition turns pages you want to remember into flashcards without you writing a single card by hand. Flag a page or directory, and a background agent derives cards from its content and keeps them in sync as you edit. A dedicated review page runs you through the cards that are due, front then back, graded on a keyboard, on intervals computed by FSRS.
Opting a page in
Section titled “Opting a page in”Set metadata.srs.enabled: true on any page, or on a directory to cover everything under
it (see page metadata for how metadata inherits). The
toggle lives right on the page: flip it on and a card list appears showing every derived
card with a due chip, so you can see at a glance what’s queued without leaving the page.
metadata: srs: enabled: trueThe flashcard-deriver agent
Section titled “The flashcard-deriver agent”An agent, flashcard-deriver, maintains the card set for every opted-in page. It runs
outbox-triggered: any edit to an opted-in page fires it, debounced so an editing burst
coalesces into one re-derive rather than one per keystroke, the same debounce shape the
search indexer uses for re-embedding. Card generation is
idempotent, so re-deriving after a small edit updates only what changed without minting
duplicate cards for untouched content.
Near-duplicates merge instead of piling up
Section titled “Near-duplicates merge instead of piling up”Two opted-in pages often cover overlapping ground, and a derivation run can phrase the same fact twice. Every time a page’s cards are (re)derived, a background pass compares the new set against itself and — via embedding similarity — against your cards on other pages, then sorts each close pair into one of three outcomes:
- Near-exact duplicates merge automatically. The copy with the most review history survives, keeping its FSRS schedule; the other is removed and remembered, so re-deriving its source page cannot resurrect it while the surviving card exists.
- Same question, different answers is never merged silently — it lands in the task queue as a confirm-or-dismiss card showing both cards side by side. Confirm merges them; Dismiss records the pair as distinct so it is never proposed again.
- Borderline similarity is referred to a small LLM judge. A “distinct” verdict is remembered; anything else becomes the same confirm-or-dismiss card, so no model verdict ever deletes a card on its own.
The same dedup pass covers cards the deriver creates, manual “derive now” runs, and the stock usage deck — every path cards are created through.
The stock Subspace usage deck
Section titled “The stock Subspace usage deck”Fresh and upgraded homes include three short SRS-enabled pages under stock-help/:
navigation, outlining, and workflows. They are source-controlled by the standalone
subspace-usage content plugin, so the deck remains useful even when a larger help corpus
is not installed.
The source pages and nodes carry stable ids. A content-plugin version bump therefore updates the same pages and deterministic cards in place, preserving page-version and FSRS review history. If a later version removes a still-plugin-owned source, Subspace moves the page to trash, disables SRS, and clears its cards. Strip the page’s plugin provenance when you intentionally turn it into a local fork; subsequent plugin updates then leave it alone.
Reviewing
Section titled “Reviewing”The review page runs at /p/flashcards. Open it directly, or arrive from the not-now
screen’s flashcard CTA.
-
Pick a scope
Choose a specific topic (an opted-in page or directory) or review a mixed session pulling due cards from everywhere you’ve enabled SRS.
-
Reveal
Each card shows its front first. A key press (or click) reveals the back.
-
Grade
Grade the card Hard, OK, Easy, or Archive. The grade feeds directly into
ts-fsrs, which computes the card’s next interval; Archive pulls a card out of rotation entirely rather than scheduling it again. -
Next
The session advances to the next due card automatically. The whole flow is keyboard-first: reveal, grade, and advance without reaching for the mouse.
Every card carries a panel back to its source, so if a grade surprises you, you jump straight to the originating page and node. Review access is ACL-scoped like everything else in the knowledge base: you only ever review cards derived from pages you can read.
Review doubles as a not-now screen
Section titled “Review doubles as a not-now screen”The review page is also the destination for the not-now screen’s “Review due flashcards instead” call to action: when a restriction locks a surface (mail, the task queue, IM), the lock screen offers a flashcard session as the productive alternative to whatever you were trying to open.