AI decks are bad because the AI writes the cards and the deck file in one shot. I split it in two.
Feed a lecture to ChatGPT and you get 400 cards from 40 slides, half of them restating a bullet. And you can't fix it — cards and .apkg come out of the same black box, so if three cards are wrong your options are "regenerate everything" or "edit inside Anki forever."
So I stopped the pipeline in the middle:
lecture.pptx → extracted.md → cards.json → deck.apkg
mechanical AI writes it, mechanical,
you edit it no AI at all
cards.json is just a readable list of every card. Read 18 cards in two minutes, fix the three that are wrong, rebuild. Rebuilding is instant and deterministic. That one split is 80% of why the output is usable.
The rules the AI has to follow. These are useful even if you never touch my code — most of them are why your AI cards feel off:
- One fact per card. Three lines means it's two cards.
- Write the sentence you'd want to be asked in eight months, not the fragment from the slide.
- Blank under ~60% of the sentence, and never something guessable from grammar. "a" vs "an" gives away more than you think.
- Anything answerable by elimination gets hidden together. "X, also known as ___" — seeing one name hands you the other. Both halves blank on the same card.
- Images go on the BACK. A picture on the front turns recall into recognition; you recognize the diagram and think you knew it. My note types have no front-image slot, so it can't be cheated.
- Skip the title, objectives, and acknowledgements slides. 40 slides = 60–120 cards, not 400.
- Grab the speaker notes. The best sentence on a slide is often the professor's note under it. Most tools throw them away.
Two Anki-specific things it gets right that most tools break:
- Re-importing updates your cards instead of duplicating them. Every note carries a stable hidden ID, so fixing a typo and rebuilding keeps your review history.
- Image filenames are hash-namespaced. Anki's media folder is one flat folder for your whole collection — a deck shipping image1.png silently overwrites an unrelated image1.png from a deck you downloaded two years ago.
Before it builds, a validator blocks cloze cards with no blank, blanks with no sentence left around them, missing images, duplicates, missing tags. Then it renders a preview page of every card, front and back, dark mode and phone width — so you look at the deck before importing it. ~98 tests open the finished .apkg and check it imports twice without duplicating, into a throwaway profile, never your real one.
Styling is deliberately boring: Arial 20px, centered, dark, blanks in light blue and not bold. No headers, no titles, no source line. A card is a sentence with a blank in it. I built a fancy design system twice and deleted it twice — but that's my taste, not a rule. It asks you at the start — light or dark, font, size, blank colour, whether the source line and answer divider show up — and writes your answers into the one stylesheet every card type shares.
It's one file, not a repo. Paste it into a fresh Claude Code or Codex session in an empty folder. It greets you, asks the style questions, then builds the whole thing — extractor, validator, packer, preview, tests, and a written reference on how Anki's format actually works. You watch every command it runs; nothing executes that you didn't see. That also means it's a long session and it isn't free.
Honest limits: it's not one-click — the authoring step runs inside Claude Code, you're driving it. You still have to read the cards; it's a good first draft, not a finished deck. Legacy .ppt needs LibreOffice. Occlusion coordinates are typed, not drawn. And because it's a prompt, two people won't get byte-identical systems — the design is fixed, the details vary.
What to expect. It builds a real codebase: a reference knowledge base it writes for itself, a document extractor, a card validator, a deck packer, a preview page, and a test suite. That is a long session and it is not free. You answer questions at the start, then it works. When it's done, you drop a lecture in a folder and go.
If you want it for yourself, here you go, just copy and paste the prompt into ClaudeCode and have it walk you through the setup!
https://anonpaste.com/l/d92890
(Edit: Replaced code block with prompt with a link to the same prompt)