Student Workbook · THU–FRI · Codex + GStack

Build it in one Thursday.
Present it on Friday.

You are not building a finished app. You are building a story that holds together + evidence + one screen to show. Nothing to install — you just paste prompts into the Codex app chat.

Talk 7 min each + 5 min Q&A Tool Codex app (desktop) Grading zero points for polish

0The Two-Day Thesis

Tomorrow you are graded not on “what did you build” but on “what did you find out”.
The demo is not the star of the show. It is evidence.

The talk that fails

Beautiful screens, but “who will use it? Still figuring that out…”

The talk that wins

An ugly mockup, but “I asked 2 people and one of them showed me I was wrong”

Being honest — this is outside our course

Business models are not part of this course’s curriculum. You will not be graded on BM theory.

What we grade instead — how precisely you narrowed the problem / how much you touched reality / whether you say out loud what you could not do. So what you are learning today is not startup methodology. It is how to use AI to raise the quality of your judgment. And that is exactly our course.

As the cost of building falls toward zero, all the value moves to the ability to choose what to build.

Do not misread this. “Build small” means Minimum, not Mediocre. Cut down to 1 screen, but that 1 screen has to hold up — empty states and errors included. A demo full of bugs is not tight scope. It is just badly built.

1Four Things You Make Today — No More

One-sentence hypothesis
who · when · because of what · losing what

2 pieces of evidence
records of asking real people

One demo path
3 clicks · 90 seconds

5-slot script
the skeleton of tomorrow’s talk

These four are everything. The urge to build a fifth is today’s biggest risk.

Thursday Timetable

09:3015:00330 minutes — only 185 of them produce anythingA Interrogate65 minB Cut Scope40 minLunchreplies come inC Demo40 minD The Talk40 min
TimeWhat happensWhat must be in your hands at the end
09:30Kickoff · install check (show of hands, 5 min)
10:05Block A — Interrogate the Problem (65 min)one-sentence hypothesis + risky assumption + 2 real names to contact
11:10Block B — Cut Scope + Send Questions (40 min)1 feature · questions actually sent
11:50Lunch — when replies come incheck replies
12:50Block C — One Demo Path (40 min)90-second path + fake list
13:30Lecture — the danger of auto-fix
13:50Block D — Design the Talk + rehearsal (40 min)5-slot script · 2 rehearsals
14:30Open rehearsal + briefing for tomorrow
Never do these in the morning

Forbidden

  • Building a new feature
  • Polishing the design
  • Agonizing over the tech stack
  • Window-shopping gstack commands

Allowed

  • Rewriting your problem sentence
  • Asking people
  • Deleting features

The morning’s two hours succeed or fail on how much you deleted.

2The Tool — Nothing to Install

We use the Codex desktop app. Today’s default is pasting prompts.

Default ✅ everyone

Paste the §prompt pack (P1–P8) straight into the app chat.
Zero install, zero setup. Works 100% of the time.

Optional · if you have spare time

Install gstack and call it with $office-hours.
May not show up in the app

Why installing is not the default

There is a known unresolved issue where the Codex app fails to list personal skills (openai/codex #28505). Even after a clean install, typing $ may give you “No skills or apps found”.

So today, pasting the prompt is the default. The output is exactly the same — because a gstack command is, under the hood, a Markdown prompt.

What Is gstack — 90 Seconds

MIT-licensed open source, released by Garry Tan (Y Combinator CEO). It does not give the AI abilities — it puts roles on it. A rulebook. The official docs are written for Claude Code.

“The browser is the hard part — everything else is Markdown.”
ARCHITECTURE.md

In other words, one command = one Markdown file. Install it and the prompt sits right there in .agents/skills/, in plain sight. That is why “copy and paste” is equivalent to the real thing. That is the whole basis for today’s default track.

Open It Yourself — 5 Minutes

github.com/garrytan/gstackMIT license · full source in the open

Open exactly two files. That’s it.

How to Make Claude Code Your AI Engineering TeamY Combinator · Garry Tan himself · click to start at 2:45

Watch for just these three things

  1. The questions come first — the scene that opens with questions, not code. You will live through the same thing in Block A today
  2. The roles switch — the same AI is CEO one minute and reviewer the next, because a human assigns the role
  3. The human says no — the scene where a proposal gets rejected. This is everything you are here to learn today

The flashy automation will pull your eyes, but what we are stealing is ① and ③.

The Skill Catalog — When to Use What

Finish these before writing a line of codeIs this worth building?a skeptic grills you for 30 minutesoffice-hoursWhat do you cut?if it will not fit in 40 minutes, cut itplan-ceo-reviewWhat do you check first?ask people, not tools(2 contacts)Get these wrong and nothing below can save youthenCode — the part that got cheapAI handles this side for youdesign-htmlone screenreviewthe risksqaclick through itshiprelease · not todayThe value of gstack is not that it writes code for you.It is that it stops you from building what should not be built.6 of 54 skills todayThe left side is today. The right side is what the tool mostly handles for you.

There are 50+ skills, but the structure is simple. One role attaches at each step of building a product.

One AI — you just swap the role it playsTHINKThe Skeptic“Is this worth building?”office-hourswhen · before any codePLANScope Cutter“What do we cut?”plan-ceo-reviewwhen · right before buildingBUILDDesigner“Make me one screen”design-htmlwhen · nothing to show yetREVIEWReviewer“What is risky here?”reviewwhen · before you commitTESTQA Lead“Click like a user”qawhen · before anyone sees itSHIP · optionalRelease“Ship it safely”shipwhen · optional · not todayThis straight line is a lie — real work loops back from hereSafety toolscareful · freeze · guardThey pause before dangerous commands (rm -rf, DROP TABLE) — but in Codex they have no enforcement. Your real safety net is frequent commitsPeople make the decisionsChoosing what to build · approving and rejecting proposals · gathering evidence — AI cannot do these threeAI models recommend.Users decide.Friday grading linkPresent AI-written lines as your own and you lose Honesty points (15). Name one AI suggestion you rejected and you gain.The gstack repo has 54 SKILL.md files (the README counts 31 — we cover that gap too). This diagram shows 6 of them
StageSkillWhenWhy it helpsToday
Thinkoffice-hoursbefore writing codeTells you in 10 minutes that you mistook a solution for a problem✅ A
Planplan-ceo-reviewright before you buildLeft alone, AI always adds scope. The mode forces the cut✅ B
Builddesign-htmlwhen you have nothing to showOne presentable screen in 40 minutes, no backend✅ C
Reviewreviewright before commitTraces beyond the diff — defects humans are structurally unable to catch✅ C
Testqabefore anyone else sees itLooks at what other people experience, not “what I think”✅ C
Safetycareful freezebefore dangerous commandsBlocks on Claude. On Codex, advisory onlyFYI

Not used today, but worth knowing — spec (intent → document) · investigate (never fix without a cause) · cso (security) · ship (release gate) · retro (retrospective). Bolt them onto a personal project after the semester — they pay off.

Installing — Mon or Tue, Whenever Suits You (If It Fails, Just Paste)

gstack is the only thing you install. Install other skill packs alongside it and the names collide — your $ list runs past 30 entries and you can no longer tell which one to pick.

Install on Mon or Tue (paste from the workbook)Type $officeOffice Hours shows upnothing / not installedTrack A · defaultCall it: $office-hourstype $off and pick from the listTrack B · safety netPaste prompts P1-P8 from the workbookzero install · zero setup · always worksSame output either way. Track B is not a punishment — Track A just saves you the pasting.

Paste that paragraph exactly as it is — do not shorten it, do not reword it. When it finishes, quit and reopen the Codex app, type $office, and check that Office Hours shows up. If it doesn’t install, no problem — paste the prompts instead; grading is unaffected. Just tell your instructor “it didn’t work” and move on.

On Windows — You Need 3 More Things

What you needMacWindows
ShellTerminal — already thereInstall Git Bash separately
git-scm.com/download/win
Node.jsNot neededRequired — nodejs.org
buncurl -fsSL https://bun.sh/install | bashIn PowerShell
powershell -c "irm bun.sh/install.ps1|iex"
Running the installTerminal, as-isIn a Git Bash window (not PowerShell)

Windows takes longer — there is more to prepare. Set aside generous time on Mon/Tue, or just go with pasting the prompts. Whether you use the tool is worth exactly 0 points in today’s grading.

# No commands to memorize. Paste the paragraph below into the Codex chat, as-is. # Codex runs it on its own, and when it hits a wall, it fixes it on its own. Run the following in order. If anything fails along the way, find the cause and fix it. 1) If bun is missing, install it: curl -fsSL https://bun.sh/install | bash 2) git clone --single-branch --depth 1 \ https://github.com/garrytan/gstack.git ~/gstack 3) cd ~/gstack && ./setup --host codex 4) If it asks about naming style, choose option 1 (short names) # Prerequisites: Git + Bun (Windows also needs Node.js) # When it finishes, restart the Codex app and type $office in the chat Office Hours YC Office Hours — two modes. (gstack) ← this shows up = success

You must include --host codex (the default is claude). If it takes more than 5 minutes, stop and switch to the prompt track. Nothing to be embarrassed about — the result is the same.

You call it with $, not a slash

The gstack docs write /office-hours, but that is Claude Code notation. On Codex it is $ — type just $ in the chat and the list appears.

Skills install under short names$office-hours. Typing as little as $offi filters the list. The similar-looking Gstack Openclaw Office Hours is for a different agent — do not pick it. If nothing shows up, paste the prompt; the result is the same.

6 Things That Are Different on Codex

FeatureWhat the docs sayWhat actually happens on Codex
Multiple-choice questionsButtons appearThey don’t. Questions arrive as prose; you answer in your next message
/careful /freezeBlocks dangerous commandsNo hooks. Advisory text only — nothing gets blocked
Second opinion/codexnot used today
Parallel expert reviewRunsRemoved
Invoking a skill/name$name or auto-detected
In the app (GUI)Personal skills may not appear in the list

The second row is today’s most important one. On Codex, the safety rails block nothing. The only thing standing between you and rm -rf · git reset --hard is committing often.

The 6 You Use Today — the Left Column Is the Default

BlockDefault (everyone)Optional (installed and recognized)
A Interrogate the ProblemPaste P1$office-hours
B Cut ScopePaste P3$plan-ceo-review
C MockupPaste P5$design-html
C Code checkPaste P6$review
C Screen checkP7 — hand it to your neighbor to click through$qa
C Cross reviewSwap code with your neighbornot used today

The left column alone gets you through today, complete. The repo holds 50+ commands; today you use 6.

If you remember only one thing

“AI models recommend. Users decide. This is the one rule that overrides all others.”
gstack ETHOS.md

“The AI told me to” is not a justification. If you insist on calling it your CTO — fine, then you are the CEO. And the CEO’s job is to reject.

ABlock A — Interrogate the Problem (10:05–11:10)

30 min solo → 20 min in pairs → 15 min whole class. The goal: a one-sentence hypothesis + 1 risky assumption.

The 6 Questions — Know Them Before You Walk In

QuestionThe pointAnswers that fail
Q1 Is the demand realWould anyone truly be stuck if this vanished“My friends said they’d love it” · “80% in my survey said…”
Q2 How do they cope nowHow are they getting by today“There’s nothing out there — that’s the opportunity”
Q3 Who exactly is that personOne person, not a category“university students” · “students in the hostels” — You can’t email a category
Q4 The narrowest versionThe smallest version someone would pay for this week“Once we build the whole platform…”
Q5 ObservationHave you watched without helping“I ran a survey” — Surveys lie
Q6 Three years outMore necessary then, or less“The market grows 20% a year” — a growth rate is not a vision

“Push on each one until the answer is specific, evidence-based, and uncomfortable. Comfort means the founder hasn’t gone deep enough.”

If you are getting uncomfortable, you are on the right track. Q5 cannot be satisfied today — there is no time. Admitting “we couldn’t do it” is itself part of tomorrow’s honesty score.

✍️ Worksheet A-1 — One-Sentence Hypothesis

[who], during [when · what situation], suffers [what loss] because [what cause]. # Example A 300-level business admin student who commutes to campus, during the Tue/Thu 3-hour gap between lectures, suffers a snack-bar lunch and a wrecked afternoon of concentration because she can’t find anyone to eat with on the spot.
Write your hypothesis here →

If this sentence contains a product name, it is wrong. The solution does not appear yet.

✍️ Worksheet A-2 — Your Single Riskiest Assumption

☠ Break this todayIf this is wrong everything collapses — and nobody has asked yete.g. people actually want instant matching / will open an appBoth of your 2 contacts aim at this boxAlready knownCertain and important — no need to aske.g. students are short on moneyLaterUncertain, but being wrong costs littlee.g. button colours, the nameIgnoreCertain and trivial← uncertaincertain →← low impacthigh impact →

If your hypothesis collapses, at which point does it collapse?

My riskiest assumption →

e.g. “People want on-the-spot matching” — or maybe they simply prefer eating alone / “They will open an app” — or maybe the class WhatsApp group they already have is enough

✍️ Worksheet A-3 — 2 People to Contact This Afternoon (Real Names)

#NameRelationshipHow you will reach them
1
2

If these rows are empty, you cannot move on to Block B. Can’t fill them? Switch to one of the starter topics below.

No topic? — 6 starters (pick one within 10 minutes)

① Campus cafeteria & free periods
eating alone in the cafeteria, endless queues, what’s on the menu

② Secondhand resale
on-campus resale deals, buyers who never show up

③ Club & association dues
collecting club dues in cash and transfers, keeping the ledger straight

④ Tutoring & study groups
finding tutoring gigs, matching, scheduling, people dropping out

⑤ Cooking on a student budget
splitting groceries, expiry dates, group buying

⑥ Gym & fitness
waiting for gym equipment, workout partners, tracking progress

If you pick one, pick only a topic where you can reach an actually affected person this afternoon.

Pair Cross-Examination — the 20-Minute Rules

  1. 10 minutes each, then swap. The speaker reads the one-sentence hypothesis and then stays silent
  2. The listener asks questions only. No pitching ideas
  3. Three mandatory questions — “How would you know if this is wrong?” / “Has anyone already spent money or time on this problem?” / “Who will you ask besides people you already know?”
  4. Final minute: the listener repeats the hypothesis back in one sentence. If they can’t, the hypothesis is still blurry
To pass Block A
  • One-sentence hypothesis (no product name)
  • 1 riskiest assumption
  • 2 real names to contact
  • Your pair could repeat your hypothesis back

BBlock B — Cut Scope + Send Questions (11:10–11:50)

20 min cutting → 10 min writing questions → 10 min actually sending them. Block B is not done until you hit send.

Today’s Hard Limits

1
core feature

2
screens, max

3
clicks and it works

40
minutes to build

If it cannot be built in 40 minutes, it is not what you are building today. Cutting scope is skill, not surrender.

✍️ Worksheet B-1 — What You Cut

Run /plan-ceo-review (SCOPE REDUCTION) or prompt P3, then write down what got cut, here. This is the raw material for slot 4 of tomorrow’s talk.

Feature you cutWhy you cut it
The 1 feature you kept →

The Ladder of Evidence — Today’s Target Is ③

stronger →① My hunchin my head② Friends complainingthings I overheard③ Answers I asked fortoday · 2 contacts④ Observationnot possible in a day⑤ Usage logsnot possible in a daySaying “we only got to ③” tomorrow scores higher than pretending you reached ⑤.
My hunch
Friends complaining
Answers I asked for ← today’s target (2 of them)
Observation
Usage logs

④ and ⑤ are impossible in a single day. Saying “we only got as far as ③” scores higher than pretending you reached ⑤.

The 3 Questions to Ask — and the Forbidden Ones

Ask these (past behavior)
  • When was the last time that happened to you?”
  • “What did you do about it that time?”
  • “Have you ever spent money or time because of it?”
Forbidden (future intent)
  • “Would you use an app like this?” — everyone says yes
  • “What do you think of this feature?” — ask for a verdict and you get politeness back

Ask about past behavior, not future intent.

✍️ The 3 questions I will send →
1.
2.
3.
Friend bias — don’t hide it, write it down

The 2 people you contact today will almost certainly be people you know. That is not the problem. Pretending otherwise is.

Loses points: “We validated with 2 users” (both are your roommates)
Earns points: “Both are friends of mine, so there is bias. Here is how I discounted their answers because of it.”

✍️ Worksheet B-2 — Evidence Log

#WhoFriend?What they actually did (in the past tense)Where it differed from my assumption
1
2
3

If the last column is empty, you didn’t listen to that interview. You just went to get your own opinion confirmed.

To pass Block B
  • Cut down to 1 feature · 2 screens or fewer
  • The cut list survives, with reasons
  • Your 3 questions ask about past behavior
  • You actually sent them (screenshot check)

Lunch (11:50–12:50) is when the replies come in. It is fine to watch your phone while you eat. The moment an answer lands, fill in the last column of the evidence log. If nothing comes, send to 1 more person at the start of the afternoon.

CBlock C — One Demo Path (12:50–13:30)

Two routes. Same destination — the 3 clicks you will show in 90 seconds tomorrow.

Already built something

Check it with $review → confirm the click path → keep only the one path you will show and hide the rest

Nothing yet (normal)

Use $design-html or prompt P5 to make one static screen + fake data. 40 minutes is plenty

“Nothing yet” is not the embarrassing route. If anything, the people who already built something suffer more — they can’t bring themselves to cut screens.

Building the Mockup — the 4 Mandatory States

Empty
nothing there yet

Loading
still waiting

Results
working normally

Error
when it fails

No lorem ipsum. Fill it with real sentences — real content runs longer and messier than lorem, so a layout that survives lorem breaks on the real thing.

AI slop — what erodes your credibility tomorrow

The signals

  • Over-the-top purple-teal gradients
  • Meaningless emoji icons
  • Every card with the identical drop shadow
  • Leftover placeholder dummy text

The alternative

  • Lay out with real sentences
  • Build the empty and error states first
  • Use color only where it means something

Slop is not an aesthetics problem — it is a trust problem. The moment your screen reads as “an AI made this”, nobody hears your content.

Got Code? — What /review Catches

  1. SQL & data safety — string interpolation, writes that bypass validation
  2. Race conditions — duplicate submits, unsafe HTML rendering
  3. LLM output trust boundaries — model-generated values reaching the DB, email, or fetch unvalidated
  4. Shell injection — string-interpolated command execution
  5. Constant completeness — tracing new values to every consumer, beyond the diff

What actually gets caught in student projects is #3 and #5. #5 is a defect humans are structurally unable to catch — it never shows up in the diff.

Auto-fix — a commit you haven’t read is not your code

/review auto-fixes some findings. That list includes N+1 query fixes and added LLM output validation — both changes that can alter behavior. $qa fixes things and commits them too.

Rule: read every auto-fix commit line by line with git show. Saying tomorrow “the AI fixed this part and I didn’t check it” beats presenting without knowing.

✍️ Worksheet C-1 — the Fake List (you will present this tomorrow, as-is)

# The parts of this demo that are lying, right now · Recommendation algorithm: none — just sorted by most recent · The 3 users are dummies I created · Login does not work — it is only a button · Notifications appear on screen only. Nothing is actually sent
My fake list →


Get caught hiding it in Q&A and that talk is over. Say it first and it becomes your honesty score.

✍️ Worksheet C-2 — One Demo Path

StepScreen / actionThe one sentence you will say
Start
Click 1
Click 2
Result

You must be able to show it in under 90 seconds, without speaking. If it needs an explanation halfway through, that is not a path — it is an excuse. Practice it 3 times and delete any click that fails.

To pass Block C
  • A click path that finishes inside 90 seconds
  • Fake / not-implemented list written down
  • Opened it once on someone else’s laptop or phone
  • (Recommended) a 3-minute backup recording

DBlock D — Design the Talk (13:50–14:30)

Tomorrow’s Talk — 5 Slots

0:005:00① Problemwhose loss + one quote45s② Hypothesishow it changed45s③ Demo3 clicks, one path only90s④ What we got wrongwrong · unbuilt · faked60s⑤ Next testwhat you will check, and how60sEmpty slot ④ makes it an investor pitch. A full slot ④ makes it a validation report.
SlotTimeContent✍️ My script (one line each)
10:00–0:45The problem + 1 quote
20:45–1:30How the hypothesis changed — then → now
31:30–3:00Demo — 3 clicks
43:00–4:00What we got wrong
54:00–5:00The next test

Slot 4 decides what these two days were. Empty, and it is an investor pitch; filled, and it is a validation report. You get a 7-minute slot, but script for 5 minutes — the spare 2 minutes are for when the demo stutters.

5 Things to Delete From Your Talk

  1. Tech stack explanations — even “we used all 6 gstack commands” gets deleted
  2. Market sizes with no source
  3. The full screen tour → cut to one path
  4. Roadmaps of features you didn’t build
  5. No quotes → add 1 direct quote, mandatory

Take those five out of 5 minutes and 3 minutes remain. Those 3 minutes are the real content.

Do not say “we validated it”

Asking 2 people cannot verify a hypothesis. All you can do is attempt to falsify it.

Wrong: “We validated the user need”
Accurate: “1 of the 2 gave us a falsifying signal, so we changed the hypothesis like this”

Pair Rehearsal — the 2-Run Rule

  1. Run 1 — time it, nothing else. Over 5 minutes? Trim slot 3 (the demo)
  2. Run 2 — the listener throws 2 Q&A questions; the mandatory one is “How would you know if this is wrong?”
  3. If an answer stalls, write it into slot 5 on the spot

A question that stumps you is not something to hide — it is material for slot 5. Know it in advance and Q&A stops being scary.

Tonight’s final checklist
  • One-sentence hypothesis (final)
  • 2 evidence log entries — including the last column
  • 90-second demo path + fake list
  • 5-slot script + 2 rehearsals
  • Laptop · adapter · backup file (or recording)
  • Notifications off — checked

Presenting “this turned out to be wrong” tomorrow costs you nothing. Finding that out in one day is an achievement.
What costs you is inventing results you don’t have.

FFriday — DEMO DAY

How the Day Runs

TimeWhat happens
09:30Opening · speaking order drawn by lot · peer feedback cards handed out
09:50Session A — 8 students (15 min each: 7 talk + 5 Q&A + 3 changeover)
11:50Lunch
12:50Morning-patterns briefing (3 min)
12:53Session B — 6 students
14:23Peer feedback delivered · best comments
14:40Closing — how to doubt your tools

When the timer sounds at 7 minutes, you stop — even mid-sentence. Order is drawn in the morning.

Grading Rubric (100 points)

Problem clarity20 ptsEvidence of real contact25 ptsHypothesis updates20 ptsDemo fit20 ptsHonesty15 ptsPolish: 0 points. Business-model theory: 0 points — it is not what this course teaches.
CriterionPointsFull marksZero
Problem clarity20Pinned down to a single person“Students find it inconvenient”
Evidence of real contact252 contacts + past behavior + friend ratio disclosed0 contacts, or intent only
Hypothesis updates20Says what changedOnly “it went as expected”
Demo fit20Serves the hypothesis checkA feature tour
Honesty15States the limits firstSomething hidden surfaces in Q&A

Polish and BM-theory correctness carry zero points.

30 Seconds Before You Present

When You Are the Audience — 3 Kinds of Questions

  1. Falsify — “How would you know if that’s wrong?”
  2. Evidence — “Of the people you asked, had anyone already spent money or time on this?”
  3. Honesty — “Which part of this demo is fake?”

Of each 5-minute Q&A, students ask at least 2 of the questions. Write a question into box ③ of your peer feedback card as well.

Peer feedback card — no scores, 3 sentence boxes

① The strongest single lineCopy it down word for word
② The weakest linkThe leap from problem → solution, or evidence → conclusion
③ 1 question you want to askEven if you couldn’t ask it in Q&A

Cards are collected anonymously and handed straight to the presenter. We don’t put scores on them because relationships contaminate grading.

PPrompt Pack — Copy and Paste These

How to use it: delete the first line (/command) and paste the rest straight into the Codex app chat. If gstack is installed and recognized, you may swap the first line for $office-hours and friends instead.

P1 · Interrogate the Problem (Block A)

/office-hours ← Track B: delete this line You are a cold-blooded early-stage investor. No compliments. My idea: [one sentence] Ask me the 6 questions below, one at a time. Do not move on to the next question until I have answered. If my answer is vague, ask the question again. 1) What is the strongest evidence that someone would genuinely struggle if this disappeared? 2) How is that person coping with the problem right now? What does coping cost them? 3) Describe that person as one individual, not a category. 4) What is the smallest version they would pay for this week? 5) Have I ever watched them without helping? What surprised me? 6) Three years from now, is this more necessary or less? At the end, score my hypothesis out of 100 and explain why.

P2 · Sharpen the One-Sentence Hypothesis

Rewrite the sentence below in the form “[who], during [when], suffers [what loss] because [what cause]”. Do not include a product name or a solution. Then point out the single riskiest assumption in this hypothesis, and tell me what we would observe if it turned out to be wrong. My sentence: [paste it here]

P3 · Cut Scope (Block B)

/plan-ceo-review ← Track B: delete this line Mode: SCOPE REDUCTION (cut like a surgeon) Constraints: 40 minutes this afternoon, working alone, coding experience [high/medium/low] Hypothesis: [one sentence] Success criterion: [the single scene I will show in tomorrow’s 5-minute talk] Cut everything that does not serve this criterion. Keep a list of what you cut, with the reason for each item. If what remains is more than 2 screens, cut deeper.

P4 · Write the Contact Questions

I want to test the hypothesis below. Write 3 questions I can send over WhatsApp today. Rules: · Ask only about past behavior. Future intent is forbidden · Never include questions like “Would you use something like this?” · Keep each question short enough to answer in under 1 minute Hypothesis: [one sentence] / Riskiest assumption: [one sentence]

P5 · One-Screen Mockup (Block C)

/design-html ← Track B: delete this line Build a single-page, self-contained HTML file. No external CDNs, fonts, or images. It must open as one file. The screen: [what this screen shows] Required states: empty / loading / results / error — all four Fill it with realistic-looking fake data — real names, plausible naira amounts, real sentences. No lorem ipsum. Check that nothing breaks at 375px mobile width and report back.

P6 · Code Check (Block C)

/review ← Track B: delete this line Review this code in 2 passes, with the eyes of a paranoid senior engineer. Pass 1 (critical): SQL string interpolation / race conditions / anywhere LLM output reaches the DB, email, or fetch unvalidated / shell injection / trace every use of new constants beyond the diff Pass 2 (quality): dead code / stale comments / type coercion / completeness gaps For each finding, quote the exact lines of code as evidence and rate your confidence out of 10. Do not fix anything — give me the list only.

P7 · Screen Check (Track B recommended)

# The most effective method is not a prompt Hand your laptop to the person next to you, tell them only the goal, and let them click for 3 minutes with no explanation at all. Watch where they get stuck. # If you insist on using AI Check the user flow of this screen. Look only for the following: · dead buttons / missing empty states / no feedback for over 500ms · error messages as meaningless as “Something went wrong” · missing alt text and labels Attach reproduction steps to every item.

P8 · Talk Script (Block D)

Using the material below, write a 5-minute talk script. Slots: problem (45s) / how the hypothesis changed (45s) / one demo path (90s) / What we got wrong (60s) / the next test (60s) Rules: · No tech stack explanations · No market sizes without a source · Include 1 direct quote from an interview — mandatory · The unfinished-and-fake list must be included · Say “we attempted to falsify”, never “we validated” Hypothesis: [ ] / Evidence log: [ ] / Demo path: [ ] / Fake list: [ ]

TTroubleshooting

SymptomCauseFix
Typed $ and nothing shows upKnown app issue (openai/codex #28505)Just paste the prompt pack. Same result. Do not waste time on it
Can’t find the commandCalled it with a slash (/) or typed the whole name by handType up to $off and pick from the list. Even $ alone opens the list
“Skipped loading skill(s)…”Stale skill descriptioncd ~/gstack && git pull && ./setup --host codex
Looks like it installed for ClaudeMissing --host codexRe-run the same command with --host codex
No choice buttons appearNormal — Codex has noneQuestions come as prose. Answer in your next message
Install still failing after 5 minutesGive up and go to the prompt pack. The result is the same
Bun errorBun not installedCheck bun --versionbun.sh
The AI starts writing code without asking anythingYou didn’t give it the promptPaste P1, or use $office-hours
Fixed one thing, something else brokePiled-up auto-fixesRoll back to the last commit and go one change at a time. Committing often is the only line of defense
The screen looks “AI-made”AI slopRefill it with real content and draw the empty/error states first
No replies coming inSend to 1 more person. Still nothing? Put “we reached out but got no reply” in the talk — that is information too

Want to Go Deeper

ResourceNotes
How to Make Claude Code Your AI Engineering Team
youtube.com/watch?v=wkv2ifxPpF8
Y Combinator · Garry Tan himself. 30 min. The canonical one
Harness Engineering — putting Claude Code and Codex properly to work with gstack
youtube.com/watch?v=PeRUUFHvKq0
Bloom AI · in Korean
github.com/garrytan/gstackThe primary source. Start with ETHOS.md — it takes 10 minutes
The 5-day, 130p deep-dive guideEverything cut from these two days — TDD, deployment, security audits, and how to criticize your tools

※ A high view count does not mean accuracy. The primary source is always the repository.