A new study profile that treats a Dharma text like a language corpus — same FSRS engine, same carousel, same review pipeline, applied to a non-language content list for the first time. It doubles as a rehearsal for a future "upload a document, get a study profile" wizard.
The booklet's structure, ported into cards.
The FPMT booklet "The Bodhisattva Vow" lists things in numbered groups — advantages of bodhichitta, the eighteen root vows, forty-six branch vows split into seven perfection groups, and so on. Each group became a section container (never itself a card); each numbered item inside it became one graded card. Two long recitation prayers stayed as whole-text "read it as a passage" cards rather than being chopped up.
105 cards total: 13 section containers + 90 graded items (10 advantages, 4 guarding practices, 4 negative dharmas, 4 positive dharmas, 18 root vows, 4 conditions of transgression, 46 branch vows) + 2 recitation-passage cards.
Every root and branch card's back carries commentary mined from Geshe Sonam Rinchen's "The Bodhisattva Vow" (same Gelug lineage, verse-by-verse on the same root text): the canonical list title, a short original-prose gloss, "no fault if…" exceptions where the book states them, and a page citation. The Nyingma/Akashagarbha eighteen-vow list is a genuinely different enumeration and was deliberately kept separate — not merged in.
Same drip mechanism every profile uses — no special-casing.
Copyright note: FPMT's booklet text is copyrighted. Cards keep at most ~25 words of verbatim booklet text per card, clearly marked as an excerpt — everything else (glosses, gists, hooks) is freshly written prose. No full vow text, no full prayers, and no Sonam Rinchen excerpt beyond one short attributed line, appear anywhere below or on any card.
Front: "Root 7 · Harming the ordained"
Gist: Harming an ordained person — violence, robbing robes, causing loss of vows.
Memory hook: "Striking at the robe strikes the whole lineage."
Commentary: Sonam Rinchen, pp. 127–129, plus the exception the book gives: "No fault if expulsion is done out of compassion…"
Excerpt shown (≤25 words, marked): "Harming an ordained person, inflicting violence on them, stealing their robes…" (trimmed).
Note field: "Differs from root 3: no four conditions required."
Memory hook: "The lighter twin of root 3 — but this one breaks on contact."
Memory hook: "Condition two: the return ticket kept in your pocket."
The full ritual ran, and it earned its keep.
Brainstorm → ADR-086 → PLAN-174 → peer review (ENR + QA) + a new persona (DEVOTEE, "Tenzin D.," built specifically for this learner axis) → execute → code review → testing. The reviews falsified the plan's original "zero web-code changes" claim twice: QA found the grade pipeline hardcoded Indonesian, so grading any English card would 404 — fixed by plumbing the profile's own language through review/close/my-words. The persona review found the verbatim booklet text had no rendering path at all, and that the normal vocab-card layout would stack empty blocks (pronunciation, synonyms…) around sacred text — fixed with a dedicated FULL TEXT / MEMORY AID reveal block and an archetype-scoped filter that suppresses the vocab-only blocks. Drip-release math, an invalid UUID namespace, and a re-run "zombie intake" hole were also caught and fixed before anything ran against real data.
Same-day code review (8 finder+verify agents) went further: it found 6 more Indonesian hardcodes outside the grade path — the Learn deep-dive route, My Cards, the manual-add search, and the session-sweep job all assumed Indonesian and would have broken this profile the moment it left the carousel screen. All six were fixed and re-plumbed to the profile's own language. Two smaller items were judged lower-priority and deferred — they're flagged in BRIEF-2026-07-05-001 rather than silently dropped.
The card front shows a dotted respelling/pronunciation line that duplicates the cue text. This is a pre-existing fallback in the shared card-prompt component when no phonetic respelling is supplied — not something this build introduced, and not unique to the vows profile. The real fix belongs to ADR-084's planned per-archetype "which prompt elements show" work, not a one-off patch here. Cosmetic only; doesn't block studying.
Everything below already shipped, under your 2026-07-05 dispatch to execute end-to-end while you were out. This is the after-the-fact ratify/amend pass, not a pre-approval gate.
t070_card_eng, eng/eng profilet075, 0 rows, never used) is now formally legacy and flagged for a cleanup deletion — that deletion still needs your explicit four-questions sign-off before anyone touches it; nothing has been dropped yet.This build IS the wizard's target output, done once by hand. Nothing here is built — it's a spec sketch for later.
What this build already hands the wizard for free: the card type (concept) already exists in the registry; the authoring script's shape — structure data → save → intake → drip — is basically the wizard's backend already; and the copyright boundary (verbatim text only ever in owner-private rows) is the default posture, not a bolt-on.
Open questions for whoever plans the wizard properly: what generates glosses/hooks automatically (the cheap-model-first escalation ladder is the leading candidate); how to pull in more than one source per item (this build's Sonam Rinchen commentary pass is the hand-made prototype of that); and the fact that the privacy/launch-gate work above is a hard prerequisite before any second person could ever upload their own content.