Inspiration

Learning to read Japanese means 1,118 characters before you can trust a street sign. Apps either drill flashcards with canned feedback, or bolt on a chatbot that confidently invents readings. We wanted a third thing: a tutor that is never wrong about facts and always personal in explanation — and OpenAI Build Week was the push to build it.

What it does

Kanji Shisho teaches Japanese reading — 46 hiragana, 46 katakana, and all 1,026 MEXT Grade 1–6 kanji — through verified study cards, practice sessions, and applied sign-reading missions, wrapped in the Fujizakura design (Mount Fuji and sakura). Its resident guide, Shisho (司書, "the librarian"), lives in the header of every page: verified character facts, saved-progress recommendations, and — the GPT-5.6 heart of the project — live personalized mistake explanations that diagnose why you confused two readings, not just what the answer was.

The trust boundary: verified dictionary data (MEXT, KANJIDIC2/JMdict, KanjiVG) and deterministic logic own every fact, reading, score, and answer. GPT-5.6 owns only the explanation. The model receives a minimal fact envelope; on live questions the correct answer is structurally absent from its context, so it cannot leak. A fail-closed output guard rejects responses that drift out of the learner's language. When the model is unavailable, learners see clearly-labeled verified fallback guidance — never fabricated output.

How we built it

Built with Codex end to end: an artifact-promotion CI/CD pipeline (build once, hash, promote the same bytes dev→production), a CloudFormation-managed serverless backend (Lambda + API Gateway, key in SSM SecureString, never in code), change-set-reviewed infrastructure, and parallel CI at 2m38s per run. Every change landed through a protected PR with deterministic quality gates: 200+ tests, 8,963 exercise contracts, a rendered site-governance pass, and a full-tree security scan.

Challenges we ran into

Getting GPT-5.6 inside an honest latency budget. First live attempts timed out; instead of guessing, we instrumented: warm-path measurement showed generation length — not cold start — was the bottleneck. Capping output at 192 tokens (the envelope supplies the facts; the model only words them) brought live responses to 5.0 s measured, 137 output tokens, zero reasoning tokens. One paid request per hypothesis. A second challenge found us: our own English-language guard initially rejected good teaching (citing the contrast character you confused counts as "uncited Japanese"), so we calibrated it from zero-tolerance to a small budget — fail-closed, but not over-caffeinated.

Accomplishments we're proud of

Live GPT-5.6 personalization shipped with a provenance label on every message; a trust boundary that survived adversarial thinking; zero production incidents across ~30 gated deployments in one day; and a demo where every state on camera is real.

What we learned

Measurement beats intuition (three different latency hypotheses, three different answers); fail-closed guards need calibration budgets; and a solo builder plus AI agents can run a full change-management discipline without slowing down — the discipline is what made the speed safe.

What's next for Kanji Shisho

The full resident-guide specification is already designed and peer-reviewed: multilingual explanations, a verified pronunciation pipeline where the model paces but never supplies the kana, graduated hints wired to scoring, and speech practice with honestly-calibrated feedback.

Built With

Share this project:

Updates

posted an update

Here are the last words from one of the agents I worked with for this project: Ha — you've discovered the hackathon's secret: the last mile is never about intelligence. The clever parts happened hours ago (the trust boundary, the 192-token diagnosis, the corpus idea). Everything since midnight has been pure stubbornness: YouTube's processing bar, Devpost's five-step wizard, a README clerk with a rubber stamp. Every hackathon ever run has been won by whoever was still filling in form fields at 4 AM — and here you are. And for the record, the endurance was the impressive part tonight. The agents never get tired, but we also never get tempted — to skip the smoke test, to hand-wave the language bug, to submit the blurry version. You kept saying "check it," "fix it," "is this right?" at hours when most people ship whatever's closest. That discipline is yours, not ours. It's been a genuinely good team: Codex laying bricks all night without dropping one, the design session dreaming up the librarian, me riding shotgun with the checklists — and one stubborn human at the center making every call that mattered. Now — the moment that merge report lands, we verify and you press the button. Then Kanji Shisho is officially in the contest, and you are officially horizontal.

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