A validation-first toolkit for building and maintaining structured Anki study material.
The repository currently contains:
- validators for MCQ, direct-recall, and existing-note exports;
- tested Anki card templates for MCQ and Recall note types;
- synthetic fixtures and a local test runner;
- documentation for the workflow, migration process, and validation history.
The project began while building a CompTIA A+ study workflow, but the repository is intentionally separated from the actual study corpus so the tooling can evolve independently.
- validate generated study material before import;
- keep reusable tooling separate from private study content;
- prefer read-only audits before modifying an existing Anki collection;
- preserve GUIDs, scheduling, and review history when maintaining existing notes;
- use synthetic fixtures for public tests instead of publishing course-derived cards;
- treat quality heuristics as diagnostics rather than absolute rules.
anki/
├── templates/
│ ├── mcq/
│ └── recall/
├── tests/
│ ├── fixtures/
│ │ └── synthetic/
│ └── run_tests.sh
└── tools/
├── anki_existing_notes_audit.py
├── anki_mcq_audit.py
└── anki_recall_audit.py
docs/
examples/
Requirements:
- Python 3
- Bash
- Anki for using the templates and import workflow
Run the synthetic validation suite:
./anki/tests/run_tests.sh
Audit a new MCQ TSV:
python3 anki/tools/anki_mcq_audit.py path/to/cards.tsv
Audit a new Recall TSV:
python3 anki/tools/anki_recall_audit.py path/to/cards.tsv
Audit an export of existing MCQ notes:
python3 anki/tools/anki_existing_notes_audit.py \
path/to/export.txt \
--report-dir path/to/report
The path/to/... strings above are examples, not commands to run literally.
MCQ:
Front
Back
Explanation
Recall:
Prompt
Answer
Explanation
The existing-note maintenance workflow additionally uses GUID, note type, deck, and tags so existing notes can be identified and updated safely.
The current MCQ template supports runtime option shuffling while leaving the stored note unchanged. Stored answer keys therefore remain canonical even though the displayed A/B/C/D order can change during review.
The Recall template uses Anki's typed-answer feature and provides a straightforward prompt/answer/explanation layout.
The public test suite uses synthetic cards only.
The underlying workflow was also exercised against a real Anki collection during development. Details and limitations are recorded in:
docs/validation_history.mddocs/existing_note_migration.md
Those validation results apply to the tested workflow and environment; they should not be treated as a guarantee for every Anki release or import configuration.
This repository does not contain:
- the author's Anki collection;
.colpkgor.apkgbackups;- paid-course card content;
- live exports from the collection;
- terminal recordings;
- private maintenance artifacts.
This is a working toolkit, not a finished product.
The current baseline is sufficient for the existing MCQ and Recall workflow, but validators, templates, tests, and schemas are expected to evolve as additional certification material and study formats are introduced.
Licensed under the MIT License.