◆ ENT 1000 · Foundations of Entrepreneurship and Design · Mon Sep 21, 2026 · Week 3, Day 1
Make it fire on its own.
Jay Margalus · jaymargalus.com/foundations · A whiteboard session, February 2022
Today · 2:45–4:15
2:45
Week 2, checked: what Log 2 said
10 min
2:55
Co-Intelligence, finally
18 min
3:13
Touch points and the other words
7 min
3:20
Teams
8 min
3:28
What a hook is · watch me make one fire
12 min
3:40
Build yours
22 min
4:02
Witness
6 min
4:08
Guests, Friday, Log 3
7 min
What I read in Log 2
Twenty of twenty. Two late. Sixteen Satisfactory, four back for a small fix; revisions are free for 48 hours.
The gifts landed. "This gift makes me feel seen and loved by you." "All students doing A-levels in the UK should have access to something like this." "Even though I have other ways to track my workouts, I'll definitely use it for some things." That last one is what most first reactions sound like.
Sixteen of nineteen skills read a syllabus or summarize a document. Fine for a first skill. None count toward Harness v1: three skills doing one job each in your team's automation by Oct 19.
Eleven of you didn't name the witness. Graded on substance this once. From Log 3 it's literal. And the form is the record; Canvas is a receipt.
Three logs under 500 words. "Nothing yet" in a field is a sentence about why, not the word. Nobody could say what a touch point is; that's on me, 3:13.
Four rules. Seventeen of you cited one.
Rule
What it means here
Cited
1
Always invite AI to the table. A friend asks "can you build a list of every high school coach in the country?" You say "no, but I know someone who does," and open the terminal.
5
2
Be the human in the loop. You're the check, not the audience. It drafts; you decide. Today's build is this rule made mechanical.
3
3
Treat it like a person, but tell it what kind. Your skill's frontmatter is this rule.
2
4
Assume this is the worst AI you'll ever use. Plan for the trajectory. Not "trust it more today."
3
Four more wrote about the book without picking a rule: uneven ability, AI as collaborator, why we humanize it, and "AI is unbiased."
Your logs, arguing with each other
"I should be able to trust AI more than I have in the past to do elementary functions."
"It can mess up some elementary tasks horribly, and there is no telling when."
"What we sometimes need is an analytical, honest tool to look at the situation without personal bias."
"Customer claims remain claims until verified." … "NO DRAFT is a valid output."
Pairs, three minutes: one decision in your venture you would not let the model make alone, and why. Chapter 2 is your evidence.
A touch point is a place on this path
Information comes in
The audit's 150 document requests go out to the client; documents trickle back.
Touch point 1: gather what came back, match it to the request list.
A decision gets made
Is this the right document? Complete? Needs a follow-up question?
Touch point 2: synthesize and flag; the accountant decides.
Information goes out
Reminders to clients who haven't sent theirs. Clarifications on what they did send.
Touch point 3: draft the reminder; a person clicks send.
Not a conversation. Not a calendar lookup. A place on the path where your harness does gather, synthesize, sense-make, or disseminate, and a human keeps the decision until a rule makes delegation safe. Log 3 asks for your first sketch of three.
Words you'll be graded on
Word
Means
Doesn't mean
Harness
The set around the model: skills, hooks, rules, memory, agents
A thing you built with it
Touch point
A place on the in → decide → out path where the harness works
A conversation. A lookup.
Design partner
The first organization; the one whose process you run in
The market. That's the other ten.
Process owner
The person whose hands do the work, who agreed to three meetings
Pullen. A board member. Your roommate.
The two numbers
Conversations with real people so far · touch points on real inputs. Asked out loud from today.
Your classmates. Your table.
Witness
The classmate who watched it fire, by name
"I talked to someone about it."
Seven teams
#
Team
Who
First call
1
Finance ops
Andrew B. · Jackson · Rhys
Audit PBC tracking at an accounting firm: 150 requests per audit
2
Athletics back office
Ryan · Annie · Lach
A college soccer program's recruiting inbox: hundreds of emails a day
3
Healthcare front desk
Joseph · Andrew W. · Hayden
A practice's reminders, cancellations, waitlist; resident on-call scheduling
4
Hospital ops
Sydney · Jake
A hospital assistant's twenty hours a week of scheduling, summaries, email
5
Education
Anna · Deyla · Olivia
A special-ed teacher differentiating lessons per student; or a national coach directory
6
Small-business inbox
Caitlyn · Jillian · Claudia
A custom-banner shop's inquiries → schedule → production plan, 30–60 min a day
7
Reorder
Emerson · Ben · Diego
Seasons, downtown: the same order every two weeks, counted by hand
The first call is where you start, not what you're assigned. Friday's Brief names the design partner you actually got.
Eight minutes, one sheet
Sit together. Now.
Write: names, the anchor card, two alternates, and for each the name of the person you'll call this week. No name, no candidate.
Pick the caller. Before Wednesday, one of you asks the anchor's process owner hunt-page questions 3, 5, and 8. Verbatim notes.
Sheet to me before the build starts.
Fri Sep 25, 11:59pm: the Inefficiency Brief, 2–3 pages, one per team: design partner, process owner's agreement to three meetings, the ten-more list, three touch points, assumptions ledger, data agreement, research plan. Log 3 is still yours alone.
3:28 · 12 min
A skill runs when you ask. A hook runs when something happens.
The permission prompt you've been clicking through is a hook that fires on everything. Today you build one that fires only when it matters.
What one looks like
{
"hooks": {
"PostToolUse": [{ ← the moment: after a tool runs
"matcher": "Write|Edit", ← which tools: file saves
"hooks": [{
"type": "command",
"command": "jq -r '.tool_input.file_path' | { read -r f;
if grep -nE '[0-9]{3}[-. ][0-9]{3}[-. ][0-9]{4}' \"$f\"; then
echo \"PHONE NUMBER FOUND in $f: check the data agreement
before this leaves the building\" >&2;
exit 2; ← 2 = stop and tell Claude
fi; }"
}]
}]
}
}
Event, matcher, command. The command gets the tool call as JSON on stdin. Exit 0: carry on. Exit 2: stop, and what you wrote to stderr goes to Claude. Without the exit 2 it's a line in a transcript nobody reads.
Build yours. Pick one.
The guard
PostToolUse · Write|Edit
After any file save, look for a phone number or email. Found one? Stop and tell Claude.
Fires: "save my number 540-555-0142 to notes.md." Quiet: "save today's date to notes.md."
The ledger
Stop · every turn
Every time Claude finishes a turn, append a dated line to log.md.
Fires: anything. The witness watches log.md grow. Change-one-thing: what the line says.
The gate
PreToolUse · Bash
Before any shell command runs, refuse it if it would send data out (curl, wget) or delete (rm -rf).
Fires: "download the course site with curl." Quiet: "list the files here."
Or your own, if you can say the event, the matcher, and the one thing it does. New folder: mkdir -p ~/ent1000-hooks/.claude && cd ~/ent1000-hooks. JSON on the next three slides.
The guard · .claude/settings.json
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command":
"jq -r '.tool_input.file_path' | { read -r f; if grep -nE '[0-9]{3}[-. ][0-9]{3}[-. ][0-9]{4}|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[a-z]{2,}' \"$f\"; then echo \"PERSONAL DATA in $f: check the data agreement before this leaves the building\" >&2; exit 2; fi; }"
}]
}]
}
}
Start claude in the folder, ask it to save a note with a phone number in it. Then one without.
No matcher: Stop has no tool to match. Ask Claude anything, then cat log.md.
The gate · .claude/settings.json
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{ "type": "command", "command":
"c=$(jq -r '.tool_input.command'); if echo \"$c\" | grep -qE 'curl|wget|rm -rf'; then echo \"BLOCKED: $c. Nothing leaves the building and nothing gets deleted without a hand on it.\" >&2; exit 2; fi"
}]
}]
}
}
Exit 2 before the tool runs means the command never runs. Ask it to fetch the course site with curl; then ask it to list the folder.
Build · fire · change one thing · 22 min
Build (10). JSON into .claude/settings.json. Start claude there. /hooks lists it. Read the command back and say what it does.
Fire (8). One plain request that should trigger it; one that shouldn't. Write both down: that's your Log 3 experiments field.
Change one thing (4). Guard: a pattern your team's data has. Ledger: what the line records. Gate: one command your harness must never run. Restart, fire again.
You see
Do
jq: command not found
brew install jq, or swap in python3 -c "import sys,json;print(json.load(sys.stdin)['tool_input']['file_path'])"
Nothing fires, ever
Hooks load at start: quit and restart claude in the folder. File is .claude/settings.json.
It printed, but Claude carried on
You're missing >&2; exit 2.
It fires on everything
Matcher or grep too wide. Tighten one, re-fire the "shouldn't."
JSON error on start
Paste the file to Claude: "find the JSON error, don't change the command."
4:02 · 6 min
Witness
Swap seats with someone not on your team.
They give one request that should fire it and one that shouldn't, without being told the hook's name.
They write on your index card: hook name, event, what they typed, their name. Switch.
Cards to me on the way out. The name goes in Log 3. No name, Needs Revision; that's the field, not a threat.
Two guests
Douglas Lindsay · Wed Sep 23
CEO, The Aaron's Company, the Atlanta lease-to-own retailer. W&L alum (business administration and accounting). President of the Aaron's business from 2016, CEO from 2020, led its spin-off into a standalone company. Before that, COO and CFO of ACE Cash Express. MBA, SMU Cox.
A few minutes of Q&A. Not teaching. Bring one question, written down.
George Matelich · Mon Sep 28
Senior Advisory Partner, Kelso & Company, New York private equity, since 1985; Lehman Brothers M&A before that. Director of twenty-plus Kelso companies, lead director of two public ones. Board chair, Revs Institute; chaired American Prairie 2013–2024. W&L parent ('18); the Matelich endowment funds the Outing Club. Stanford MBA.
He teaches Monday's class. Rules week.
What goes in Log 3
Week 3 · Sep 21–25 · Fri 11:59pm · 500–800 words · the form, not Canvas · still individual
Field
This week, that means
Evidence
The process-owner call: who, which organization, answers to questions 3, 5, 8 verbatim. The two numbers, first time: conversations so far · touch points on real inputs (zero; say zero).
Experiments
Your hook on two requests: the one that should fire it, the one that shouldn't. What happened.
Key decisions
Your team. The anchor and the two you dropped, why. Named entry 3: the data agreement: what the harness may read, what it may send, who checks.
Assumptions
The Brief's ledger starts here: every belief, marked untested. The one the call moved.
Harness change
The hook: event, matcher, what it does, the line you changed, the witness's name.
Touch-point status
First sketch of three, one line each: in / decision / out. None running; say so.
Book
Minimalist Entrepreneur ch. 1–2: which community you're already in that this venture starts from.
AI audit trail
Which lines of settings.json the agent wrote, which you wrote, how you tested it.
Coming up
Tonight. Your hook stays on in a folder you'll keep using. Minimalist Entrepreneur ch. 1–2.
Before Wed Sep 23. One teammate calls the process owner: questions 3, 5, 8. One question for Douglas Lindsay.
Wed Sep 23. What is a market. Lindsay, briefly. Brief workshop with your team.