"A CFA Level I study app I built for my brother: summaries, timed quizzes and a study plan drawn from 1,091 resources, written and checked by a team of 94 AI agents so that every answer is correct and every claim has a source."
My brother is preparing for the CFA Level I exam. He had far more material than he could filter, learn and practise from: curriculum books, past and mock papers, a Q-bank and hundreds of lecture videos, all open in a browser tab he studied from. He asked how I could help, so I built him a study app.
Ledgerline gives him a short revision summary for every module of the ten exam topics, timed quizzes in the real exam format, a mixed mock weighted like the exam, and a day-by-day study plan sized to the days and hours he has. It is a lightweight Vue app with no backend and no accounts. It loads only what each page needs, works on a phone, and is checked for accessibility on every page in light and dark mode.
The hard part was not the interface but the content. A study app that shows a wrong answer or a wrong formula does more harm than no app at all, so every summary and every question had to be correct, written in its own words, and traceable to a page, a timestamp or a paper question. The build agent first worked through all 1,091 resources and wrote study notes. Other agents then wrote questions from those notes. Separate agents graded every question blind, without seeing the answer key, and any disagreement went back for a fix and a fresh grade. Reviewer agents also read the summaries against the curriculum books and corrected what was wrong.
I built it alone, spec-first with Claude Code and OpenSpec: I wrote the product spec and the feature list, reviewed every plan, made the product and content decisions, and directed the agents through each feature.
The Agent Team
- Builder: the main agent studied the material, planned each feature through OpenSpec, and wrote the app and its tests
- Question writers: wrote original questions from the study notes, each citing a page in its own module
- Blind graders: answered every question without the key, recomputing every calculation, so wrong or ambiguous keys showed up as disagreements
- Re-graders: confirmed each fix with a fresh, independent grade
- Curriculum reviewers: read summaries line by line against the 2027 books and corrected formulas, definitions and worked examples
Keeping the Content Right
- Every summary section and every question cites a page, a video timestamp or a paper question
- Mock and Q-bank questions are rewritten with new wording and new figures, and an automated check rejects any 12-word run copied from the material
- Where sources disagree, the content follows the curriculum and the disagreement is recorded
- Content checks run with the unit tests, covering citations, maths that must parse, answer balance and every module's question target
By the Numbers
- 1,091 resources catalogued (166 books and notes, 112 papers and 813 videos), 626 of them usable, studied and cited
- 6,520 practice questions, every one graded blind against its key
- 94 agents: one builder and 93 writers, graders and reviewers
- 18 features built in order, with 23 capability specifications kept beside the code
- 427 unit and component tests and 296 browser tests across four browsers
What Was Built
- Revision summaries for every module, with typeset formulas, worked examples and cited sources
- Timed 90-question course quizzes, 20-question module quizzes and a weighted mixed mock, all fully usable from the keyboard
- Results with the weakest modules first and a review of every answer with its explanation and sources
- A day-by-day study plan with a checklist, built to the days and hours available
- An exam-year switch for the 2026 or 2027 curriculum, and saved quiz scores
- Sharing from the phone, link previews, and axe accessibility checks on every page
Technologies