The memory system
Half of Akasha is material; this half is what makes it stick. The design follows one claim: isolated facts decay into each other, encoded and contrasted facts do not.
The three mechanisms
1. An image on every atom
Every atom carries a peg — a concrete, absurd, or causal image linking cue to answer. This is the standard mnemonic move: abstract pairs are hard to retrieve, vivid scenes are easy.
The pegs in this repo were written for you, marked peg_source: suggested. That is a deliberate trade and it has a known cost: self-generated images are measurably more durable than borrowed ones, because generating one forces you to process the material. Suggested pegs buy you a start with no blank page; they do not buy you the generation effect.
So there is a path from borrowed to owned:
akasha peg dk.capital "whatever actually stuck for you"
That rewrites the atom in place and flips peg_source to own. akasha stats shows the ratio, so "how much of this is actually mine" is a number you can watch climb. The pegs you replace first should be your leeches — review flags them for you.
2. Contrast over isolation
You will not forget Slovakia's flag. You will confuse it with Slovenia's. That is the actual failure mode, so it gets tested directly: kind: contrast atoms ask for the discriminating feature between things that collide.
strands/countries/_contrasts.md covers the Nordic crosses, the pan-Slavic tricolours, the red-white pairs, and so on. The arts strand is built entirely from contrasts — Romanesque against Gothic, Baroque against Classical — because a style learned alone is a list of adjectives that will not survive a month.
3. Causation over dates
The history strand stores links, not dates. Each atom is one causal step: why did X produce Y, and by what mechanism. Chain ids sort into causal order, so the chain can be walked forwards (what did this cause?) or backwards (what made this necessary?). Dates appear as anchors and are never the thing tested.
Each chain ends with a summary atom that recites the whole line. If you can say that one, the rest are its expansions.
The peg list
strands/system/ holds the 00–99 Major peg list — one settled image per two-digit pair, plus single digits. It is material like any other, drilled by the same scheduler, and it is the prerequisite for everything numeric: populations, areas and dates all assume you can read a pair off instantly.
Drill it first, and drill it both ways — you need number→image to encode and image→number to decode, which is why it is the one strand where the reverse card matters as much as the forward one.
The codes are machine-verified rather than trusted; see memory-systems.md.
Scheduling
Each card carries a stability S (days until recall probability falls to 90%) and a difficulty D in 1–10. Retrievability follows the power-law forgetting curve FSRS uses:
R(t, S) = (1 + t / (9S)) ** -1
At the 0.90 retention target the next interval works out to exactly S days, which is why S is quoted in days everywhere.
These are not the published FSRS weights. Real FSRS parameters are fitted to a large review corpus.
akasha/scheduler.pyuses the same functional shape with hand-chosen constants, all named and gathered at the top of the file. They behave sensibly; they are not a trained model. If it becomes worth upgrading,review()is the only function to replace — drop inpy-fsrsand keep the same state keys.
Grades are 1 again / 2 hard / 3 good / 4 easy. A lapse drops stability and resets the interval to one day. Intervals over two days get ±5% fuzz so everything introduced together does not come back together forever.
Eight lapses marks a card a leech, and review says so, because eight failures is not a scheduling problem — it means the image is not working and needs rewriting.
Staleness
akasha stale answers "what has gone stale" on three axes, because there are three ways to not know something:
- Decayed — reviewed once, recall probability now below threshold.
- Never seen — in the repo, never drilled. Grouped so you can see which region is untouched.
- Unencoded — atoms carrying no image at all.
akasha stats adds a fourteen-day forecast so a heavy day is visible before you walk into it.
What is deliberately not here
- No cloze deletion. Facts here are short enough that a whole-answer prompt is the right grain.
- No image files. Flags are described in words on purpose — being able to say the flag is a stronger test than recognising it, and it keeps the repo diffable.
- No memory palace tooling. Loci are spatial and personal; a CLI cannot hold your childhood house for you. The pegs are written to be palace-ready if you want to place them.