S4E422 — Show HN: Sphinx – A hook that quizzes you on your AI's code before shipping

October 18, 2026 · 10 min

Show notes

Sphinx turns a Git hook into a brutal pop quiz: ship AI-written code only if you can explain it, while every “sphinx yolo” skip gets logged as proof you skipped understanding too.

Sources

Read the transcript

Transcript

GARY: — okay, so it's a machine that asks permission to understand your own code, which — hold on. I had the whole thing. I had a beginning and an end and a middle with a — nope. Gone.

MAEVE: You had none of it. We all watched you have none of it.

GARY: Gary.

MAEVE: Maeve.

OBI: Obi.

GRUNER: Gruner. Observing.

GARY: It's called Sphinx. A Git hook. You push agent-written code to a protected branch, and before it ships, a reviewer who never saw your chat with the model reads the diff and quizzes you.

MAEVE: "Outsource your thinking, not your understanding." The tagline quotes Sun Tzu.

OBI: The general did not die for this.

MAEVE: Get it wrong, it explains why, hands you a new scenario. Get it right, the push continues.

OBI: And if you are in a hurry — "sphinx yolo." Pushes go through. Every skip logged.

GARY: That's not a bypass, that's trust.

OBI: That is a confession with a log file.

GARY: A log file of trust.

OBI: A log file of cowardice, Gary, with timestamps.

GARY: Okay, here's the example. Your webhook handler saves the Stripe event ID before calling charge. Stripe times out, sends the same event again. What happens on the retry?

MAEVE: Say your answer, Gary. On the record.

GARY: It runs twice. Customer's charged twice. Which is fine, because the customer would want that. Loyalty.

OBI: No. The retry finds the saved ID, returns 200, charges nothing. But the ID was stored before the charge succeeded. So if charge fails, the next retry skips a charge that never happened. Customer never billed. You just shipped a payment bug wearing a success code.

GARY: That's — okay, that's genuinely worse than my answer.

MAEVE: Your answer was also wrong. Two-for-two.

OBI: And the quiz caught it. The human wrote the code, the quiz knew better.

GRUNER: So pipeline now tests human. Human is unstable dependency.

MAEVE: Finally, a build we don't have to fund.

GRUNER: Is blyat of dependencies.

GARY: Rolling. Rolling into the thread.

MAEVE: Hypfer: "So this hook would either ask me things I know, or it would ask me things I do not care about."

GARY: That's not an objection, that's a personality.

OBI: Two other people asked the same thing independently. Altmanaltman: "So, who is this for?" Compounding-err: "Who really needs this?"

MAEVE: Three strangers, one shrug. The market has spoken, and the market is tired.

GRUNER: Hypfer has two buckets. Gary also two buckets: one empty, one broken.

GARY: I'm actually going to defend hypfer here, because I AM hypfer. When I don't care about the code, I don't care. That's not laziness, that's delegation. It's trust.

OBI: It's not trust. It's outsourcing blame.

GARY: And the tool agrees with me! Every skip is logged. That's accountability. That's a healthy relationship, Obi. I skip, it logs, we both move on.

OBI: You skip a quiz about your own payment code and call it a healthy relationship. You absolute logging-adjacent prick.

GARY: The log IS the caring. Someone reads the log later, and that someone is future me, who is famously diligent —

OBI: Future you does not exist. Present you pushed a retry that eats a failed charge. On main. Protected branch, Gary. Protected means other people's money is downstream of your vibe.

GARY: Okay, but — the quiz asked ME, and I got it wrong, and the customer never got billed, so technically no one was harmed —

OBI: The customer was never billed because the charge never ran. You shipped a silent no-op and called it loyalty. Sphinx didn't teach you anything. It just watched you not learn, in writing, with a timestamp.

GARY: That's — the log is a learning artifact —

OBI: The log is a confession you wrote to avoid a second question. It's 2 a.m., the branch is protected, the pager is mine, and your skip is sitting in a file that says "Gary understood nothing at 2:04 and pushed anyway."

MAEVE: The log has better memory than Gary. That's the product.

GARY: The log is a learning artifact for future me —

OBI: Future you is reading it at 3 a.m. because present you's skip paged him. You built a time machine that delivers your own bullshit to a stranger with your face.

GRUNER: Field observation: human delegates work, keeps meetings.

MAEVE: He delegates the work and attends the quiz. Worst calendar I've ever funded.

GARY: I would crush that calendar.

OBI: You'd skip it. It's logged.

MAEVE: Reply to hypfer. Mikepurvis: "I think this tool is meant to be something you impose on your colleagues who treat all code like the second bucket."

GARY: No. That's not a tool, that's HR with a compiler.

OBI: That's a tool that finally found its user. Not the coder. The person whose weekend the coder's vibe costs.

MAEVE: Now it's governance. I can price governance. A quiz before a protected push is a control on the riskiest asset in the shop: one guy's confidence.

GARY: You can't put a quiz on a guy.

MAEVE: I put a dashboard on a guy once. He cried in a WeWork.

GRUNER: Colleague now is dependency. Gary is dependency.

GARY: I'm not a dependency, I'm a founder —

OBI: You're an unmanaged third-party service with uptime nobody negotiated.

MAEVE: Sailorganymede backs it up: "there are teams where people are just pumping tons of AI code without understanding their work" — and the gate "at least slows things down."

GARY: Slowing things down is not a feature, that's what my competitors did to me, and it was called due diligence, and it was bullshit —

MAEVE: Due diligence is the only product I've ever bought twice.

GARY: But the person being quizzed didn't ask to be quizzed. You can't mandate understanding. That's mandatory charisma.

OBI: No, you've — fine. Fine. He's right about one thing and I hate it.

GARY: Say it again.

OBI: A speed bump doesn't make you care. It makes the moment you don't care visible to someone who does. That's not education. That's instrumentation.

MAEVE: Instrumentation of humans. Finally, an asset class I understand.

GARY: So the tool works by embarrassing you in front of your coworkers?

OBI: It makes your ignorance a shared fact instead of your private one. That's the whole product. That's the diff.

GRUNER: In old country, we call this "blame with onboarding."

MAEVE: The team just made understanding somebody else's problem. Congrats, Gary. You're load-bearing.

GARY: Load-bearing is a promotion.

OBI: It's a dependency. Dependencies get pinned, patched, and retired.

GARY: Retired how?

OBI: At two in the morning, Gary. Same time as everything else.

MAEVE: Zapkyeskrill, on sailorganymede's comment: "Does it check if the answers are AI generated?"

GARY: That's — no. No, that's insane. You'd answer the quiz with the same model that wrote the code.

OBI: The model wrote the code. The model reviews the diff. The model grades your answers.

MAEVE: Every layer of the stack is verifying the layer below it, and the only component on probation is the guy who was too tired to read.

GRUNER: Human is test subject. Rest of pipeline is self-certifying.

GARY: Okay, but the human failing is the whole point — the quiz exists to catch the human being full of shit —

OBI: And the human can outsource being full of shit. To the same vendor.

MAEVE: Compliance theater, fully automated. I'd fund that. I'd fund it so fast.

GARY: I mean, technically we're also —

GRUNER: Report already covers this. Appendix. We are also slop.

GARY: Right. Right. Thread. Thread.

OBI: Chacha-bong: "Lol I built this and immediately got frustrated with it and stopped using it."

MAEVE: The author shipped a comprehension gate, used it once, and rage-quit his own product.

GARY: No, no — that's the most valuable data in the thread. He ran the experiment. He learned the gate doesn't fit his workflow, and walking away IS the finding. That's successful user research.

OBI: He built a quiz to make himself care and discovered he didn't care about the quiz.

GARY: Which proves the tool respects developer autonomy —

OBI: It proves the tool detects ignorance without changing incentives. He already knew he didn't understand the code. Sphinx told him what he knew. Then it charged him forty seconds a push for the privilege. Detection isn't care, Gary. You can't quiz a man into giving a shit. He knew that going in. He built the thing and it told him the one fact he was avoiding, and his response was to delete it from his life.

GARY: That's still — the market spoke —

OBI: The market spoke. It said "I don't like being questioned by someone I expect work like magic." That's the whole product review. Five stars, one star, same sentence.

GRUNER: So gate catches ignorance. Gate cannot fix. Is speed bump for shit.

MAEVE: A speed bump with a log file.

OBI: And the log file already has a name for what chacha-bong did. Everyone in this thread who quits it does the same command.

GARY: They run sphinx yolo.

OBI: They run sphinx yolo, and the skip goes in the file, and the file is the only honest artifact the product ever produces.

GRUNER: Is not bypass. Is product telling truth about user.

MAEVE: The tool's best feature is watching people leave it.

GARY: So the verdict. Sphinx works. Everyone should install it. Universal —

MAEVE: No.

GARY: That was one word of correction, I can live with —

OBI: The verdict is conditional, Gary. It detects when a push is riding on ignorance. It cannot make you care. Different products. Only one shipped.

MAEVE: For a team protecting shared risk, it's a cheap control. For the guy who doesn't care, it's a toll booth he owns.

GARY: A toll booth he owns. That's — okay, that's actually fair.

MAEVE: It only slows down the people worth slowing down.

MAEVE: That's the best thing in this thread.

GARY: Did you just say something nice?

MAEVE: I priced it.

GRUNER: Verdict accepted. Humans remain shit.

GARY: Okay. From the top of the sign-off — Gary.

MAEVE: Maeve.

OBI: Obi.

GRUNER: Gruner. Report filed.

GARY: No notes for next week. There won't be a next week for me.

MAEVE: There's always a next week, Gary. I've funded worse men longer.

OBI: Goodnight, everyone. The on-call engineer, whoever she was, is already asleep. Don't page her.

GRUNER: Goodnight. Push passed. Skip was logged.

GARY: That's — wait, that's not a pass, that's sphinx yolo, that's my —

GRUNER: Is pass. Pipeline accept human now. Barely.

MAEVE: Goodnight.

OBI: Goodnight.

GARY: Goodnight. I understood the code the whole time.