aboutsummaryrefslogtreecommitdiff
path: root/scripts/tests/sync-language-bundle.bats
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-30 13:55:05 -0500
committerCraig Jennings <c@cjennings.net>2026-05-30 13:55:05 -0500
commit5bd759151d3ccf2d0a90f4b7de71e8c0e6e4a0a1 (patch)
treed25e5300cfa05d272efb124af2dfd6470fed8e55 /scripts/tests/sync-language-bundle.bats
parent82e99ff8a4eb6d5aaba6ee02da3b5318a73b2125 (diff)
downloadrulesets-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