ai
3 мин
8 октября 2026 г.
Источник: Dev.to AI Feed

I Built 451 Micro-Lessons With AI. Here Is How I Stopped It Lying to Learners

Toni Ilić
Toni Ilić
RSS AI Ingest
I Built 451 Micro-Lessons With AI. Here Is How I Stopped It Lying to Learners

Disclosure first: the lessons in this project were created with AI. I wrote the code, the structure and the checks around it, but a language model wrote a lot of the lesson text. If that bothers you, I understand, and the rest of this post ...

Disclosure first: the lessons in this project were created with AI. I wrote the code, the structure and the checks around it, but a language model wrote a lot of the lesson text. If that bothers you, I understand, and the rest of this post is about what I did because of that fact. I'm Toni, a freelance full-stack developer in Rijeka, Croatia. I have been building a learning platform called LearnCoachAssist, and I just put a new section live: Labs (Skill Paths). From here on I will just call it Labs. It is a set of short, hands-on skill paths. One problem at a time, built for a phone, free to start, no account (20 new lessons a day on the free plan). What is in Labs At the time of writing, Labs has nine paths, 88 units and 451 lessons. The count keeps growing, so treat these numbers as a snapshot: Path Units Lessons Math 12 68 UX 14 72 Biology 9 45 Chemistry 9 44 Physics 9 45 Computer Science 9 47 Finance 10 50 Web Dev 8 40 Study Skills 8 40 Every path has hints, a daily streak and a review mode, and every path awards a Certificate of completion once you pass all of its unit checkpoints. The certificate is self-issued: progress is recorded on your device, not verified, not accredited. Lessons are short on purpose. I wanted something you can finish on a bus, not a course you have to schedule. Two honest labels up front. Finance and Study Skills are marked educational only, and Finance is explicitly not financial advice. And in Web Dev, the code examples are simplified and read, not run in a browser. You are reading and reasoning about code there, not executing it. The problem with AI-written lessons Generating a lesson with an LLM is easy. Trusting it is the hard part. A model is good at fluent explanations and unreliable at the boring details: an off-by-one in a worked example, a wrong intermediate number, a "correct" multiple-choice option that is not actually correct. In an essay that is annoying. In a lesson whose entire job is to tell a learner "right" or "wrong", it is the product failing. A learner who gets marked wrong for a correct answer learns nothing except to distrust the app. So I split the work into two layers, and I treat them differently. Math: AI writes the prose, code computes the answer On the Labs index, the Math card says it directly: "Created with AI. Every answer is computed by tested code." The idea is that the model never gets to decide what the right answer is. Each Math lesson type is a small seeded generator function that runs client side, in the browser. It takes a random seed, picks the numbers, and computes the answer in plain JavaScript. The words around it (the prompt, the hints, the explanation) are templates that interpolate those same computed values. Here is the pattern, simplified from the Pythagoras lessons. This is a sketch, not the literal source: // "Find the missing side" lesson, simplified function pythagorasLeg(seed) { // Pick a Pythagorean triple and scale it, so the answer is a clean integer const { a, b, c } = pickTriple(seed, 80); return { prompt: `A right-angled triangle has a hypotenuse of ${c} cm and one other side of ${a} cm. How long is the third side?`, answer: b, // Known wrong answers, each with a message that explains the mistake commonMistakes: [ { value: c * c - a * a, msg: "That is b squared. Take the square root." }, { value: Math.sqrt(a * a + c * c), msg: "You added the squares. To find a shorter side, subtract." }, { value: c - a, msg: "You subtracted the sides. Subtract the squares instead." }, ], hints: [ /* three hints, each a bit more specific */ ], explain: `b squared = ${c}^2 - ${a}^2 = ${c * c - a * a}, so b = ${b}`, }; } A few things I like about this shape: The answer is arithmetic, not opinion. b comes from the triple. There is no step where a model "does the math." Wrong answers are diagnosed. If you type the square of the answer, or add instead of subtract, the lesson tells you which mistake that looks like. This is the part I would find hardest to get reliably from free-form generation, because the message is tied to the exact number you typed. Hints escalate. The lessons I checked have three hints, going from the general idea toward the specific step. Every question is fresh. Because it is seeded and generated, you can practice the same skill without seeing the same numbers. The model's job is the part it is genuinely good at: writing clear explanations and designing the lesson structure. The code's job is anything that has to be exactly right. The other paths: AI-written, test-checked I need to be careful here, because this is where it would be easy to oversell. For the other eight paths, the index card and the lesson app say: "Written with AI, checked by automated tests." That is what it is. I am not claiming that every answer in Biology or UX is computed by code the way Math is. A lot of those lessons are prose and judgment, and there is no formula that produces a correct answer to "which of these is a better button label." What the automated tests give me is a safety net around the content: structural checks on lessons, and checks that catch the kind of mistake a machine can catch. I will not pretend that is the same as an expert reviewing every lesson. It is not. The site footer asks readers to review AI-assisted deck content before relying on it, and I would ask the same of Labs. If you are making a real decision about money or health, treat Labs as a place to learn the vocabulary and build intuition, then check a proper source. I think that honesty is the actual design constraint. The more a lesson depends on judgment, the less I can verify it with code, and the more clearly it should be labeled. Small decisions that were not about AI Progress lives on your device. No account, so your streak and progress are stored in your browser. The upside is zero friction and nothing to sign up for. The downside is that clearing site data or switching devices means starting over (the Math and UX paths can export and import a backup file). That tradeoff is deliberate for now. Short lessons, one problem at a time. Phone first. Less to read, fewer places to get lost. Streak and review. A daily streak to nudge you back, and a spaced review mode so older material comes around again. A free limit, and it is a soft one. The free plan gives you 20 new Labs lessons per day, shared across all paths, resetting at your local midnight. The counter lives in your browser's localStorage, so it is a nudge, not enforcement, and if storage is blocked the limit simply does not apply. The paid plans (Plus at $10 a month, Pro at $25 a month) give unlimited Labs lessons. Ads appear on the site's deck study pages, not inside Labs lessons. The site runs on Laravel 12 and MySQL. The Labs lessons use no front end framework: each path is its own plain JavaScript module, loaded on that path page, and the public pages use Alpine.js. In Math, the code that decides whether an answer is right runs in the browser. What it does not do yet This is a soft launch. The Labs hub page only opened to search engines yesterday (the individual path pages are still marked noindex), so search is not sending anyone here yet, and I have no big numbers to quote. I would rather say that than invent some. I also do not have a proof that the test suite catches everything. It catches what I thought to test for. That is exactly why I want other people poking at it. Try it and tell me what is wrong Start here: learncoachassist.com/labs I would really like feedback on a few things: Wrong answers. If a lesson marks you wrong when you are right, or the explanation is off, that is the most valuable bug report I can get. Paths that feel thin. Which of the nine would you actually finish, and which feels like filler? The AI approach. If you have verified LLM-generated content in your own projects, what worked for you? I am especially curious about checks beyond "generate, then test." The longer build note is on my site: LearnCoachAssist Labs, AI-written lessons. Drop a comment here, or reach me through agicad.com. Thanks for reading, and for being tolerant of a soft launch.

Хотите внедрить ИИ в ваш бренд?

Спроектируем и развернем автономных агентов и современный цифровой стек под ваши задачи.

Рассчитать проект