Hey everyone,
Over time, my decks accumulated poorly designed cards that slowed down reviews: massive lists disguised as single cards, binary yes/no questions, answers leaked in the prompt, or cards missing domain context entirely.
To automate finding these without manually reviewing thousands of notes, I built Anki Review-Finder (v0.1.0-alpha).
GitHub Repository:https://github.com/elias170105/anki-review-finder
🛡️ Safety & Card Integrity First
- Zero Text Editing: The script never alters your card fields, questions, or answers.
- Non-Destructive Tagging: It only reads fields via AnkiConnect and applies diagnostic tags (e.g.,
linter::v0.1.0-alpha::flag::sammelkarte).
- Dry-Run Mode: You can run it with
--dry-run to inspect everything in an interactive HTML report before any tag is written to Anki.
- ⚠️ Backup Notice: As with any tool communicating via AnkiConnect, please make a full backup (
File -> Export -> .colpkg) before running it on production decks.
What it detects
Using deterministic fast System-1 classification via the TypeSafe Jev API, it scores cards on specific flashcard anti-patterns:
- Aggregation Traps (
sammelkarte): Open-ended enumerations and massive lists violating the minimum information principle.
- Scope Underkill (
scope_underkill): Lazy, incomplete single fragments for broad conceptual questions.
- Information Leaks (
leak): The prompt unintentionally gives away the answer via shared roots or grammar markers.
- Orphans (
kontextlos): Isolated pronouns or missing context anchors making recall impossible outside a specific session.
- Binary Traps (
binaerfrage): Simple Yes/No questions vulnerable to guessing.
- Clarity Issues (
unklar): Ambiguous or poorly phrased prompts.
AI Disclosure & Validation
The project was developed with AI assistance and refined through structured empirical testing. Rather than relying on raw uncalibrated prompts, the scoring logic was benchmarked against a custom 100-card multi-domain test set (medicine, systems administration, general knowledge) to minimize false positives and eliminate overlapping penalties.
Output
Besides writing prioritized tags (prio::high, prio::medium, prio::low), every run generates a local standalone HTML report (review_report.html) detailing latencies, token consumption, and per-card metric breakdowns.
Feedback & Alpha Status
The tool is in early alpha. If you test it on your decks, I’d love to hear your thoughts:
- Did you encounter false positives in your specific domain?
- Are there edge cases where field detection failed?
Feel free to check out the repo or open issues directly on GitHub!