The mistake
I make Russian-language math videos for my Telegram channel. I solve a problem, record the explanation, add subtitles and schedule the post.
In one video I explained that cos⁻¹(x) on a calculator means arccos, not 1/cos(x). The subtitle changed that meaning. I asked GPT-5.6 to check the scheduled material. It noticed the problem, and I corrected the subtitle before publication.
That became LessonProof. I pulled this check out of my larger video workflow and made it a separate Build Week project.
My original video is Russian and private, so the public demo uses a small English example with sin⁻¹(x) and arcsine. The wrong caption is at 03:24.
What I made
LessonProof checks one correction before a release goes public.
- A reviewer writes what needs to change and adds the evidence.
- GPT-5.6 turns this note into a proposed edit.
- The reviewer can see the quote, source and exact before/after text.
- The reviewer approves that exact change.
- Normal code applies it and runs six checks.
- If all six pass, LessonProof records the verified release with a new proof hash.
The code also checks the current release hash and two dependency records. If the files change, the old proposal cannot be used. Undo has a similar check.
The successful demo changes one caption, recomputes two dependency records and finishes with six passed checks. The interface shows all three numbers.
GPT-5.6 only prepares the proposal. It cannot approve or publish it. The formula itself comes from the reviewer note. LessonProof checks the release files around that correction.
How it was made
Codex did most of the implementation: project structure, code and many tests. When tests failed, it changed the code.
My role was closer to a director or operator. I chose the problem, reviewed the intermediate versions and decided what should change. I also removed a much larger first interface. It tried to explain everything on one screen. The final Proof Ledger is smaller and much easier to follow.
The first working version took around six hours. Each time Codex finished a step, I reviewed it and gave the next direction. More work followed than I expected: tests, deployment, stale-state cases, usage limits, screenshots, README and submission. I also opened two browser sessions to make sure one visitor could not change another visitor's release. I recorded the demo audio too.
The interface uses React, Vite and TypeScript. A Node service keeps the OpenAI key on the server and sends a structured request to GPT-5.6 Sol through the Responses API. Zod parses the answer, then a validator checks it against the current release. The public demo has session and request limits.
The video says 41 tests, but the repository has 42. I counted three interface tests instead of four when I recorded it. The tests cover the release engine, GPT-5.6 adapter, API and session boundaries, interface, snapshot adapter and design checks.
What took time
Valid JSON could still be wrong for the release: the model might use a wrong quote, old hash or forbidden target. I asked Codex to add separate failure cases.
The public demo also had to work without an account while keeping the API key private. I spent a lot of time checking something barely visible in the final interface.
This is my first public software project. I made the final decisions about what was ready to publish. I am happy about that.
What I want to try next
I have seen the same mistakes move through school and university materials for years. A student may notice one and say nothing. A teacher may correct it in class while the original file stays wrong. The next group receives the same mistake.
I want to connect LessonProof back to subtitles first, then perhaps documents or course packages. Accepted corrections could become tests for the next version.
I have not tested this with independent teachers. I want to see whether they would use this flow or whether it adds too much work.
How to test it
Open https://lessonproof.onrender.com. No login or API key is required.
- Click Ask GPT-5.6 for a suggestion.
- Read the evidence and exact change. Technical details shows the two dependency records.
- Click Approve this exact change.
- Click Apply change & run 6 checks.
- Check that the page says
1 caption fixed. 2 dependency proofs recomputed. 6 of 6 checks passed. - Open Technical details again to see the new proof hash.
- Click Undo verified change. The original blocked version should return.
Built With
- codex
- node.js
- openai-gpt-5.6-sol
- openai-responses-api
- react
- render
- typescript
- vite
- vitest
- zod


Log in or sign up for Devpost to join the conversation.