From the code you ship

Understand the code you ship

Shipping got easy. Knowing what you merged is still on you. Point this at a repo or a PR. You get tours, quizzes, and flashcards from the real files.

tech-professor / tp_answers.sql reading
1 <section class="rls">
2 create policy "answers
3 personal" on tp_answers
4 using (uid()=row)
5 fn diff(range)->Pkg
6 read_only(repo).scan()
7 </section>
generate
Tour generated
1 Reading the diff
2 Reading the repo, safely
3 Materialising sessions
Quiz generated
Where do answers stay personal?
RLS on tp_answers
A shared record
Flashcards generated
What is SM-2?
AgainHardGoodEasy
Learn from a repo, PR, or docs
github.com/org/repo PR #284 v1.4.0..HEAD docs/*.md a website URL a PDF
Courses

A path, not a pile

A course is an ordered set of tours, quizzes, playgrounds, and exams. Same material for everyone. Each person has their own progress.

Ordered steps Own progress per person Learn · Practice · Exam
Payments onboarding
Platform Team · 6 steps
3/6 done
Your progress 50%
  1. Learn
  2. Tour
    Payment retries, end to end
    9 steps
  3. Quiz
    Retry logic essentials
    12 questions
  4. Practice
  5. Playground
    Make the charge idempotent
    1 problem
  6. 4
    Flashcards Up next
    Idempotency gotchas
    18 cards
  7. Exam
  8. 5
    Exam
    Payments onboarding exam
    10 items
  9. 6
    Syllabus
    Charge API reading list
    3 documents
Payments onboarding exam
8 items · mixed
4/8 done · score 50%
12457 Summary
Item 4 of 8 multiple choice

How should the charge API make retries safe?

A Retry every failed charge immediately
B Key each attempt by a client-supplied idempotency token
C Deduplicate only inside the same HTTP connection
Previous Submit answer
Next up · hands-on exercise
Make the charge idempotent
Exams

Questions plus code

An exam mixes multiple-choice with playgrounds. You have to reason about the change and make the code work.

Questions + playgrounds Live score Hands-on code
How it is built

Watch the run

Each run moves through reading the diff, scanning the repo, planning, generating, and saving. Jobs keep running if you leave.

Read-only
Secret files stay out. Size caps apply before anything is processed.
Starts from a commit or PR
It looks at what changed, not the whole tree.
Runs in the background
Stack jobs and keep working. The tracker follows you around the app.
Generation queue
External ingest API · quiz + playground + exam
58%
Reading the diff
done
Scanning repo
done
Planning topics
done
Calling the model
Parsing the package
Materializing sessions
Runs in the background. Leave or keep working.
Platform Team
8 members · shared by default
Your seat: Write
JD
Jordan DaleYou
41 sessions · 92% acc
Owner
ML
Mara Lin
47 sessions · 89% acc
Admin
DP
Devon Park
38 sessions · 94% acc
Write
PN
Priya Nair
33 sessions · 87% acc
Read
SO
Sam Okafor
29 sessions · 81% acc
Read
Teams

Share the material

A team is a shared space. Everyone works through the same sessions. Each person keeps their own progress.

Anyone with the link can join
tech-professor.com/j/platform-9f3a

New members join as Readers. Free, no seat required. They get their own account and their own saved progress.

Pull requests

Learning attached to the PR

A green check is not understanding. Tech Professor turns the diff into a quiz or a tour. You can see who has been through it.

Open
Add idempotency keys to the charge API #128
acme/payments @mara wants to merge feat/idempotency main
CI · all checks have passed
Vercel · deployment ready
TechProfessor Ready

Quiz, tour, playground, and exam for this change.

Idempotency quiz
8 questions
What changed, a tour
5 stops
Make the charge idempotent
1 playground
Idempotency exam
6 items
Completed by
JDMLDP
3 of 5
Tutor

Help with the line you are on

The Tutor searches the repo, opens the files, and cites the line. It will not take the quiz for you.

Searches your repo Cites real files & lines Read-only & grounded
Tutor · Sharing & Permissions · Q4
Why do shared sessions keep my progress separate from my teammates?
search_repo(tp_answers RLS policy) · 3 matches
read_file(tp_answers.sql · L1–L40) · read 40 lines
The sharing model splits reads from writes. A share grants org members read access to the content via RLS, but every write is keyed to auth.uid(), so answers only ever belong to you.
tp_answers.sql · L12
Ask about this line…
MCP

From the tool that shipped it

Connect the Tech Professor MCP server. Your coding tool can turn a merged change into a tour, a quiz, and a course. It writes the material. You still do the learning.

One command to connect
$ claude mcp add-json techprofessor '{"type":"http",…}'
Claude Code and other MCP clients Scoped by your API token Tours, quizzes, playgrounds & courses
Your agent · techprofessor mcp connected
We just merged the payment-retry rework. Build the team an onboarding course for it.
Reading the merged diff now. I'll write a tour, quiz, playground, and exam, then assemble them into a course in Tech Professor.
push_artifact (type: "tour" · Payment retries, end to end) · 9 steps
push_artifact (type: "quiz" · Retry logic essentials) · 12 questions
push_artifact (type: "playground" · Make the charge idempotent) · 1 challenge
push_artifact (type: "exam" · Payments onboarding exam) · 10 items
create_course (title: "Payments onboarding") · course created
add_course_item (tour + quiz + playground + exam) · 4 steps added
Done. Payments onboarding is live for your team.
Payments onboarding
4 steps · tour → quiz → playground → exam
live
mcp: techprofessor · 6 tool calls · scoped to your token
Progress

Who learned what

Leaderboards and coverage maps for a private team or a public community.

Leaderboard by points
1
ML
Mara Lin
331 answered
3,420
2
DP
Devon Park
254 answered
3,290
3
JD
Jordan Dale
286 answered
3,180
4
PN
Priya Nair
219 answered
2,540
5
SO
Sam Okafor
198 answered
2,210
Repo coverage
Architecture 88%
Data & RLS 81%
Frontend 64%
Auth & OAuth 52%
Security 71%

Keep learning from the code you ship.

Sign in, or browse public communities as a guest.