diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-30 13:55:05 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-30 13:55:05 -0500 |
| commit | 5bd759151d3ccf2d0a90f4b7de71e8c0e6e4a0a1 (patch) | |
| tree | d25e5300cfa05d272efb124af2dfd6470fed8e55 /scripts/tests/sync-language-bundle.bats | |
| parent | 82e99ff8a4eb6d5aaba6ee02da3b5318a73b2125 (diff) | |
| download | rulesets-5bd759151d3ccf2d0a90f4b7de71e8c0e6e4a0a1.tar.gz rulesets-5bd759151d3ccf2d0a90f4b7de71e8c0e6e4a0a1.zip | |
feat(drill-deck): add authoring-quality checks and a card-authoring section
I researched spaced-repetition best practices (Wozniak's twenty rules, Matuschak's prompt-writing guide, Nielsen, the Anki and FSRS docs) and folded the findings into the drill-deck pipeline.
drill-deck-stats.py now checks authoring quality on top of structure. Two checks block: answer leakage (a question that echoes >= 80% of its own answer's content words tests recognition, not recall) and duplicate / near-duplicate fronts (confusable cards interfere). Three checks warn without blocking, surfacing rewrite candidates without failing the gate: overloaded backs, list-shaped backs, and binary yes/no prompts. The fuzzy thresholds live in constants at the top of the script, so a real deck that trips false positives can be tuned. I pulled the card-parsing into a parse_cards helper that captures each card's body, and added focused tests for every new helper plus CLI coverage of the leaky, duplicate, and notes-only cases.
drill-deck-review.org gains a Card Authoring Principles section (the why behind the canonical shapes, with sources), a person-card splitting path bounded by the :ID:-preservation rule, a Phase B cost-benefit-removal and leech-reformulation disposition, and a scheduling-is-Anki-side note so a future editor doesn't try to encode FSRS retention in the org source. I left out cloze cards (would need a second note type), per-card tractability targeting and retention encoding (Anki-side telemetry that never reaches the source), and on-face source-stamping (the converter strips those drawers by design). Each is noted with its reason.
Diffstat (limited to 'scripts/tests/sync-language-bundle.bats')
0 files changed, 0 insertions, 0 deletions
