Decks and nesting
Organize a collection as a tree and understand which cards a parent-deck session includes.
Decks define practical study scopes. A deck can contain subdecks, producing a tree that keeps one collection organized without forcing every study session to include everything.
Create a nested deck
Repeto uses a double colon between levels, matching the hierarchy encoded by Anki packages:
Medicine
Medicine::Anatomy
Medicine::Anatomy::Neuroanatomy
In New deck, choose an optional Parent deck and enter the new deck’s name. Repeto shows the complete path before creation. You can also leave the parent at Top level and type a canonical path such as Medicine::Anatomy directly. If you type more than one level while a parent is selected, those levels are created below that parent.
The picker targets the parent’s stable deck identity. If that parent is renamed before you save, the new deck follows its current path. If it is deleted, creation stops with a recovery message instead of producing an orphan. The final path is collision-checked and created atomically. When a direct path includes missing levels, Repeto creates those empty parent decks in the same transaction. Existing generation-profile choices and the deck’s private copy of its scheduling preset are preserved.
The Decks page displays these as nested rows and uses disclosure controls for branches. Names that merely share a prefix are not treated as relatives: French is not the parent of French Literature; only French::Literature is nested.
Study scope
Opening Study on Medicine::Anatomy includes eligible cards directly in Anatomy and in its descendants, such as Neuroanatomy. Opening Study on Neuroanatomy includes only that subtree. Cards remain assigned to their concrete home deck.
The deck list reports subtree totals for parent rows. The Today page and collection summaries use hierarchy roots to avoid adding a child total to a parent total that already contains it.
Settings in a hierarchy
Each deck receives a private scheduling copy sourced from a named preset. A card fetched through a parent session still uses the effective copy of its own home deck.
On a parent deck’s settings page, Apply to subdecks copies the chosen scheduling configuration to the concrete descendants. This is a bulk replacement, so inspect local differences before applying it.
Parent sessions enforce each concrete descendant’s daily quotas. When Limits start from top is enabled, directly studying a child also consumes the available quota of its concrete ancestors. A named level that has no actual deck row does not impose a synthetic limit.
Move a branch
Open a deck’s action menu and choose Move, or drag the row onto another branch. Both paths open the same preview before anything changes. Repeto moves the complete subtree, rejects cycles and name collisions, and verifies that the preview is still current at commit. Cards keep their identities, schedules, and review history.
If an imported or older collection contains a child whose named parent row is missing, run Repair deck tree. The preview creates only the missing empty parent rows; it does not move cards or rewrite existing decks.
Naming guidance
Use shallow, meaningful branches. A useful structure usually describes subject, source, or level:
Spanish::Grammar::Past tense
Biology::Course 101::Cell biology
Avoid using hierarchy to encode every tag. Tags are better for attributes that cross decks, such as exam-2, needs-image, or source-book.
Repeto does not yet enforce a final maximum depth. The owner decision between five and ten levels is recorded in the internal audit, and the product should reject pathological depth before public release. Until then, keep the tree within five levels so it remains usable on smaller screens.
Current limits
The creation parent picker, direct :: paths, imported hierarchy, confirmed subtree moves, drag reparenting, natural numeric sorting, and missing-parent repair are supported. Repeto does not yet enforce a maximum depth, and the complete empty Default-deck lifecycle is still planned. Repair only creates missing parents; it does not resolve invalid paths or orphaned card-home references. See Anki parity roadmap for the consolidated status.