Inspiration

Reading an explanation can create an illusion of understanding. The gap becomes obvious when a learner has to teach the idea in their own words. Most AI tutors respond by explaining more; SishyaGuru reverses that relationship. The student becomes the teacher, while the AI plays a curious novice that asks the next useful question.

What it does

SishyaGuru is a reverse-teaching mastery coach for a curated Water Cycle lesson. A learner teaches by text or optional push-to-talk, reviews any transcript before submitting it, answers three focused questions, and watches an eight-concept mastery map change only when their own words provide evidence.

The complete public Replay path is credential-free and visibly labelled Simulated:

  1. Choose Use Sample Explanation and submit a teaching turn.
  2. Inspect the exact learner quote supporting each mastery or misconception update.
  3. Answer the AI learner's focused follow-up question.
  4. Repeat through the misconception-and-retry path.
  5. End the session to receive a grounded summary of demonstrated strengths and gaps.

Mastery states include secure, developing, emerging, insufficient evidence, and unassessed. They are formative signals for the current lesson—not grades, credentials, diagnoses, or permanent judgments. Progress stays in the browser and can be cleared by the learner.

How we built it

SishyaGuru is a strict-TypeScript Next.js application with narrow server routes and two providers behind the same validated contracts.

  • Replay returns deterministic versioned fixtures. It is the reliable public judging path and needs no account, microphone, API key, or model call.
  • Live GPT-5.6 uses the OpenAI Responses API with Structured Outputs and provider storage disabled. Application validators independently check every concept ID, mastery transition, and cited quote before the map can change.
  • Optional voice input uses browser MediaRecorder with a 60-second and 5 MB boundary, server-side media validation, and gpt-4o-mini-transcribe. The transcript is editable candidate text until the learner explicitly submits it.
  • gpt-4o-mini-tts can speak only the already-validated follow-up question, while the same text remains visible.

There is no account system, database, RAG pipeline, continuous listening, or automatic external action. The deliberately small architecture keeps the evidence chain understandable and reproducible.

How GPT-5.6 is used

GPT-5.6 is the bounded Live mastery-reasoning provider. It returns a strict structured assessment, evidence-bound misconceptions, and one curious follow-up. Schema validation is only the first gate: SishyaGuru also requires every quoted evidence fragment to be an exact substring of the learner's submitted explanation and every concept ID to belong to the curated lesson. Invalid output fails closed and leaves the previous map unchanged.

The public demo uses Replay for dependable judging and never presents fixture output as a live GPT-5.6 response. The repository documents and tests the separate owner-key Live path.

How Codex accelerated the build

Codex served as product architect and integration owner. It helped define the reverse-teaching product loop and safety boundaries, implement strict domain contracts and provider adapters, harden responsive and voice interactions, generate adversarial tests, reproduce release gates, and prepare the public repository, GitHub Pages demo, video, and submission evidence. Bounded worker changes were independently reviewed and reverified before integration.

Challenges

Grounded mastery: fluent model output must not become an unsupported learning claim. Exact-quote validation and known-topic checks prevent that.

Learner control over voice: speech never submits itself. Recording is explicitly started and stopped; the resulting transcript is reviewable and editable.

Honest deterministic judging: Replay had to be useful without looking live. Server-authoritative provider labels and the same validator pipeline preserve provenance.

Accessible feedback: the concept map does not rely on colour alone, keyboard navigation is supported, and concise live-region updates announce meaningful changes.

Accomplishments

  • A complete three-turn reverse-teaching loop across eight Water Cycle concepts.
  • Evidence-bound mastery and misconception claims that fail closed.
  • A real owner-key GPT-5.6 and speech-to-transcript-to-review-to-assessment-to-speech proof path.
  • Zero Axe WCAG A/AA violations in the tested Replay shell.
  • Verified gates: lint, strict typecheck, 43 unit/domain tests, production build, 12 Replay browser scenarios, and 7 Live browser scenarios.
  • Public MIT repository, credential-free GitHub Pages demo, public 2:25 video, captions, and custom thumbnail.

Judge testing instructions

Open the credential-free Replay app:

https://atchayamg.github.io/SishyaGuru/

Confirm the badge says Replay / Simulated, choose Use Sample Explanation, submit each of the three turns, inspect the quoted evidence and mastery-map changes, then choose End Session. Refresh once to verify browser-local progress and use Clear progress to remove it.

For a clean local run:

git clone https://github.com/AtchayamG/SishyaGuru.git
cd SishyaGuru
npm ci
npm run dev

Open http://localhost:3000. No API key or microphone permission is needed for the golden path. The README documents optional Live mode and the full verification commands.

What we learned and what's next

Structured output is not the same as trustworthy educational feedback; applications still need to verify what the model claims it observed. Voice works best here as an input method, not a separate learning engine, because editable learner-owned text preserves accessibility and intentional submission.

Next we would validate the loop with learners and educators, add teacher-authored topic packs, and build educator review tools while keeping the same rule: SishyaGuru may suggest what to revisit, but it never turns a short AI-mediated session into a certified score.

Built With

  • gpt-4o-mini-transcribe
  • gpt-4o-mini-tts
  • gpt-5.6-structured-outputs
  • next.js-16
  • openai-responses-api
  • playwright
  • react-19
  • typescript
  • vitest
Share this project:

Updates