← All sessionsHomeSearch
AI Catalyst C3·Core Session - Week 10·2:48:43

Session 19: Content Strategy Pipeline — the YouTube Growth Stack, Built by an Agent Team of Chats

Harshith Vaddiparthy Trainer — Outskill; builds a YouTube competitor-analysis product (scraper + AI ideas + voice/chat interface) by having Codex spawn and coordinate its own sub-agent chats across git worktrees · Niharika Cohort manager — logistics and poll

Session map

THE METHODTHE BUILDTHE CRAFTLoop engineering, first conta…small stories, fresh context, human-mer…The orchestrator chatspawning a worktree-backed team of sub-…Actors, self-hosting, and the…getting data your agent won't fetchVoice-first product surfacesthe thesis, the models, and the honest…Excalidraw in, architecture o…the one-prompt plan expansion
The methodThe buildThe craft
click a node — its card pops up (drag it anywhere, × to close)
Concept

The map reads left to right — the method flow into the build, then into the craft. Click any node to open that idea here; every timestamp jumps into the recording.

The short version

  1. The headline pattern is CHATS AS AN AGENT TEAM: the main Codex chat becomes an orchestrator that creates, prompts, renames, and messages its own sub-chats — each on its own git worktree so 'multiple tasks don't edit the same checkout simultaneously.' 'Think of it as six different engineers... this used to be one week worth of work from a developer. Now it's a tab in our chat.'
  2. Loop engineering gets its first course definition: spec → ONE small testable story → agent reads agents.md/docs/skills → implement → test → record-and-retry on fail, review-and-commit on pass → pull request → HUMAN merges. Fresh context per iteration, max-iteration limits, feature branches only, never destructive prod commands. Origin story included: Claude's 'Ralph Wiggum' loop, named for the dumbest Simpsons character, matured into a discipline in months.
  3. Scraper economics, stated plainly: coding agents refuse to scrape Zillow/Amazon directly (ToS), so the workaround is Apify ACTORS — packaged scrapers as APIs — plus self-hosted Firecrawl ('never pay for the API key') and the free YouTube Data API the agent reached for on its own. The agent even invents the right guardrail: 'the paid Apify worker cannot start until you explicitly approve.'
  4. The interface thesis is voice-first: 'why would I want a console where I have to click buttons? UI is shifting' — and the honest demo shows both sides: chat + scraper landed ('can you find long-form AI creators?' → Matthew Berman, AI Explained), while realtime voice fought key rejections all night and shipped only partially. 'Voice fails sometimes in demos. I want to risk it.'
  5. Plan-first ritual at its purest: Excalidraw mind map → screenshot into Codex → one prompt returns the full expanded architecture (adding YouTube Data API and trigger.dev he never asked for) → mermaid graphs of it all committed into the README. 'If our plan is sorted, the rest falls into place.'
  6. Addressed to Paul directly: 'The LLMs do not know that they are ChatGPT or Claude Code — it's just a system prompt. You can use a Chinese model, Kimi K3, and do this as well.' Nothing in the session is vendor-locked; the harness, not the brand, is the method.

The concepts

01

Loop engineering, first contact: small stories, fresh context, human-merged PRs

'Giving an agent a small, testable task and repeatedly running this cycle' — the whole discipline in one sentence, learned live ('I'm also learning this one, so let's learn it together').

The cycle as taught: write a precise SPEC; select ONE small user story; the agent reads agents.md, the docs, and the relevant skills; implements the story; runs the tests; on failure it RECORDS the failure and starts again — on pass it reviews and commits; it opens a PULL REQUEST; a human reviews and merges. The safety rails come with it: each iteration starts with a FRESH agent context ('much safer than telling an agent build the entire application'), a maximum iteration limit, work only on a feature branch, never automatically run destructive production commands. The repo carries the machinery: agents.md, skills/, and a loop/ folder holding the loop prompt and a run.sh that re-runs it.

The lineage is told as comedy with a real point: Claude's community 'Ralph Wiggum' loop — named for the dumbest Simpsons character — was the crude ancestor ('it came out seven months ago, and we've matured a lot'); OpenClaw and Hermes 'borrowed a lot of their code from this.' Dumb agent + tight loop + tests beat smart agent + vague instruction.

Worked example · from the session

Late in the build, a learner asks why prompts now trigger loops: 'because we already have loop commands within our codebase, the prompt directly results in the loop engineering' — the scaffold, once installed, changes what every prompt means.

Why it matters

This is the session where the course's loop doctrine enters the Catalyst track — s15 later deepens it; the sprint later prices it. Here it's the working minimum.

People get this wrong

Loop engineering is letting the agent run unattended until done.

It's the opposite — MORE structure: smaller stories, harder gates, and a human holding the merge button.

Loop engineering, first contact: small stories, fresh context, human merge Small story one bounded task Fresh context new agent per pass Draft + check agent evaluates itself Human merge you approve the good repeat with the next story (context stays clean) The pattern behind the whole content pipeline: never one giant chat — many small, disposable ones
Small stories, fresh context per pass, human merge at the end
The LLMs do not know that they are ChatGPT... it's just a system prompt that lets them know. You can use a Chinese model and do this as well.
Each iteration starts with a fresh agent context. This is much safer than telling an agent: build the entire application.
For your projects

The model-identity aside was answered TO you — and it's load-bearing for your multi-vendor strategy: harnesses portable, brands interchangeable.

Go deeper

In one line: Loop engineering = spec-driven iteration: one small testable story per cycle, agent grounded in agents.md/skills, test-gated commit, PR with human merge; fresh context each iteration, capped iterations, feature branches, no destructive autonomy; scaffolded in-repo (loop/prompt + run.sh).

Model-agnostic by design, said to Paul: 'the LLMs do not know what they are... it's just a system prompt' — the loop works on any capable model ()

The failure RECORD matters as much as the retry — the loop learns from its own log, not from vibes ()

Ralph-loop origin shared with the actual repo link when a learner asks ()

'goal.md' arrives the next day (s20) as the companion discovery — end-state alongside behavior

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why fresh context per iteration instead of one long omniscient session?

Stale context compounds errors and hides drift; a fresh agent reading the spec, the code, and the failure log re-derives truth from artifacts — which is why the artifacts, not the chat, must carry the knowledge.

02

The orchestrator chat: spawning a worktree-backed team of sub-agent chats

'This chat, I want to keep it as an orchestrator agent' — and Codex proceeds to create, prompt, and rename its own team: Firecrawl agent, Apify agent, OpenAI voice, Supabase jobs, GitHub publish, Stripe.

The architecture of the session itself: the MAIN chat plans and delegates; each workstream gets its OWN chat, each on a separate GIT WORKTREE — the agent's own recommendation: 'do not let multiple tasks edit the same checkout simultaneously.' The chats then MESSAGE EACH OTHER ('sent from another chat' — task handoffs, completion reports, even a do-not-override warning), and Codex builds little status mini-sites on the fly to show what the team is doing. The /side chat is the read-only channel: ask 'what has it completed?' without interrupting the run. Completion shows as the purple dot; naming discipline gets enforced twice ('call the chat what it is — when I collapse the sidebar I can't see it').

The economics land hard and honestly: 'this used to be one week worth of work from a developer — now it's simply inside a single chat'; later, cross-checked with the cohort's working engineers, 'we have done three weeks' worth of work in the last two and a half hours... think of it as six different engineers.' And the failure is kept in: the first front-end came out 'really bad' — likely the giant all-at-once voice prompt — and was rebuilt by narrowing scope and re-prompting. Worktrees answer the why: 'with one single chat, these features would have taken another eight hours.'

Worked example · from the session

The GitHub publish chat completing while he wasn't looking ('did it do it one hour ago? Maybe I didn't find it') — delegated work finishing off-screen is the feature AND the supervision problem.

Why it matters

This is the practical multi-agent pattern for non-engineers: no framework, no graph DSL — chats, worktrees, and an orchestrator with naming discipline.

People get this wrong

Multi-agent means a special framework.

Here it's chats + git worktrees + an orchestrator prompt — the coordination substrate is the repo, and the human is the scheduler of last resort.

This used to be one week worth of work from a developer. Now, it's simply inside a single chat.
Think of it as six different engineers working for us... the backend is the IP.
For your projects

The status-mini-site trick (agent builds a page showing team progress) is a cheap idea for your own long burns — a live open-items view instead of prose reports.

Go deeper

In one line: Chats-as-agent-team = one orchestrator chat + per-workstream chats on separate git worktrees, inter-chat messaging for handoffs, a /side channel for non-interrupting status, human nudges as scheduler; parallelism bounded by merge back to one repo.

Sub-agent indicators appear in-chat (the 'sunflower icon' buttons) as Codex deploys workers on the feature ()

'It also prompted it — this chat was sent by Codex' — delegation includes writing the delegate's brief ()

The mid-build 'Firebase' slip: 'wait, did I say Firebase? It's Firecrawl — or now it'll spin up another agent to start building Firebase. That'll be funny.' Precision in delegation is load-bearing ()

Nudging is part of the job: force-push orders repeated three times before the repo went live ()

Browser automation pruned again — three separate 'don't use my browser' orders ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

What's the one resource the worktree pattern protects?

The working tree itself — parallel agents editing one checkout corrupt each other; worktrees give each a private copy that merges through git, where conflicts are visible and reviewable.

03

Actors, self-hosting, and the scraping paradox: getting data your agent won't fetch

'When I ask Claude or Codex to scrape Zillow it says it can't — terms of service. The workaround is actors.' The LLM that learned from scraped data refuses to scrape: 'it's just a paradox.'

The data-access shelf for builders: (1) APIFY ACTORS — packaged scrapers sold as APIs in a store ('actors are basically APIs'); the YouTube Scraper actor (100k users) returns channel data, likes, views, subscribers, even transcripts, no quotas — and there are actors for Zillow, Instagram, everything the agent itself refuses to touch. (2) FIRECRAWL — the general web scraper; cloud API for convenience (1,000 free credits), but the standing advice is SELF-HOST: 'run the codebase on your own server and you'll never have to pay for scraping.' (3) FIRST-PARTY APIS — the agent added the YouTube Data API unprompted because it's 'more powerful, and it's free, because it's directly from Google.' Check for the official free API before paying a scraper.

The governance detail worth stealing arrived uninvited: because Apify runs cost money, the agent designed an approval gate — 'the paid Apify worker cannot start until you explicitly approve' — a human card between the chat and every billable action.

Worked example · from the session

The live proof: 'find long-form AI creators' → Matthew Berman, AI Explained surfaced through the pipeline; then his own channel's top video retrieved after the approval card — 'the scraper also completely worked.'

Why it matters

Every content/intelligence product in weeks 9-12 sits on this shelf — s17's ads scraper, s20's news discovery, this session's competitor analysis.

People get this wrong

If the AI refuses, the data is off-limits.

The refusal encodes the vendor's liability posture, not the law or your options — actors, official APIs, and self-hosting are the legitimate paths to evaluate.

It cannot violate the terms of service. So instead, there's a workaround, which is basically just using actors.
The LLMs have gotten that powerful because they've scraped so much info. It's just a paradox.
I'll preserve the rule that the paid Apify worker cannot start until you explicitly approve.
For your projects

Mirrors your own DLP/browser discipline in this project — the gate between 'agent wants data' and 'money/credentials move' is always a human.

Go deeper

In one line: Data-access hierarchy: official free API first (YouTube Data API), packaged actors for refused platforms (Apify), self-hosted general scraper for the open web (Firecrawl); every PAID fetch behind an explicit human approval gate.

The refusal is real but shallow: agents decline direct ToS-violating scrapes yet happily call an actor that does the same — know which side of the line your build sits on ()

Free-tier awareness: Firecrawl 1,000 credits, OpenAI credits driving his Codex usage — the demo runs on scraps deliberately ()

trigger.dev adopted by the agent for durable background jobs — scraping belongs in workers, not request handlers ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

A client wants competitor Instagram data. Order of investigation?

Official API/graph access first; then a maintained actor with usage terms you can live with; self-scraping last — and whatever you pick, paid runs go behind an approval gate with a budget.

04

Voice-first product surfaces: the thesis, the models, and the honest failure

'Why would I want my console to be something where I have to click buttons? UI is shifting.' The cohort votes voice; he takes the risk on camera.

The thesis: applications are becoming conversation-native — the cohort already drives tools by text ('text to Hermes') and voice, so the Growth Stack's front page is a talk-to-it control room, buttons demoted to secondary. The model layer teaches itself: he guesses 'Whisper 2', and the agent corrects to the actual current realtime speech model — 'you don't have to remember what model that was; you vaguely understand what you're building, the agent maps it out.' The architecture lands as voice agent → backend tools (scrapers, Supabase) → spoken answer, with agent instructions to keep spoken replies short and stop when interrupted.

Then reality: the realtime key is rejected repeatedly (new keys, same result), so the build falls back to a CHAINED pipeline — GPT Transcribe (STT) + GPT-4o-mini (reasoning) + TTS — and ships chat-first with voice half-working: 'it's listening, but not speaking back.' The close is candid: 'voice fails sometimes in demos... the voice part is definitely challenging.' Chat is the reliable floor; voice is the differentiator you budget extra tweaks for.

Worked example · from the session

The mid-session microphone comedy — three devices, 'testing, testing, am I audible?' — voice UX debugging is partly hardware, always.

Why it matters

The voice-interface bet keeps recurring (VAPI/Retell earlier in the course; Hermes-by-WhatsApp); this is the honest field report on building one from scratch in an afternoon.

People get this wrong

Voice = record audio and send it to the chat model.

Realtime voice is its own model class and credential scope; the chained STT/LLM/TTS path is a different architecture with different latency — design for both from the start.

Why would I want my console to be something where I have to click buttons? I want a native text-based platform.
You don't have to remember what model that was. You vaguely understand what you're trying to build — the agent maps it out for you.
For your projects

The 'agent maps the model name' habit is worth adopting — your records flag as-heard model names for the same reason: humans misremember model ids, agents can resolve them.

Go deeper

In one line: Voice-first surface = conversation as the primary control (voice preferred, chat as reliable fallback), realtime speech model when credentials/latency allow, chained STT→LLM→TTS as the degradation path; spoken-answer style constraints (short, interruptible) written into the agent instructions.

Model discovery delegated: name the capability, let the agent resolve the current model id ()

The 401-vs-200 lesson taught explicitly: 'you should always be getting HTTP 200 — that means the API key is working' ()

Chat-first shipping order under time pressure: 'make sure the chat version works using our same API key for now' ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

What do you ship when the realtime voice path breaks an hour before demo?

The chained fallback behind the same interface — same conversation contract, worse latency; the product's shape survives the model path failing.

05

Excalidraw in, architecture out: the one-prompt plan expansion

A hand-drawn mind map — front-end, back-end, database, scrapers, 'everything interconnected' — screenshotted into Codex, and one prompt returns the full product architecture, including two tools he never named.

The ritual, end to end: draw the stack in Excalidraw (deliberately rough — 'Codex can completely make sense out of this'); paste the screenshot with the verbose spoken prompt; receive back the EXPANDED plan — user journey, data pipeline, background jobs, and additions on merit (YouTube Data API because it's free and official; trigger.dev for durable jobs) with the honest critique attached: 'the current drawing is a technology map, not yet a complete product plan.' Iterate the plan BEFORE the build ('if our plan is sorted, the rest falls into place' — and to Jayanti's astonishment: yes, the whole plan is one prompt). Then commit the plan itself: every mermaid graph — architecture, folder tree, loop diagram, example conversation — goes INTO the README, so the repo documents its own design from birth.

The supporting craft: a dedicated PROMPT-REFINER side chat ('give me the proper prompt under 700 characters, always in a code block') turns his rambling spoken prompts into shareable artifacts for the cohort — prompt hygiene as a service, run by the same agent.

Worked example · from the session

The Claymorphism theme detour and the 'theme called Claude' laugh — plan-first doesn't preclude taste decisions; it sequences them after the architecture holds.

Why it matters

It's the cheapest quality lever in the whole workflow: one drawing plus one prompt buys the review that used to take a design meeting.

People get this wrong

Planning with an agent means writing a long PRD first.

A rough drawing plus intent is enough input — the agent's expansion + critique IS the PRD draft, and it lives in the repo, versioned.

If our plan is sorted, then the rest of things will fall in place.
For your projects

Your ai-project-scaffold skill could absorb this: a 'plan expansion' step between folder creation and first build.

Go deeper

In one line: Plan-first ritual = rough visual map → screenshot + intent prompt → agent-expanded architecture (with critique and additions) → iterate until sound → commit the diagrams into the README → only then build; prompts themselves refined by a dedicated side chat into short, shareable form.

The agent critiques the plan's category ('technology map, not product plan') before filling it — invite that critique explicitly ()

Unprompted additions are signal: free official APIs and job runners the human didn't know to ask for (0:35:04, 0:59:53)

Drag-the-chat-into-the-project: instant context binding in Codex desktop — 'simple drag and drop, makes a ton of difference' ()

MIT license explained to the room: use, copy, modify, sell, no affiliation owed — the default for teach-and-share codebases ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

What makes the README-borne mermaid graphs more than decoration?

They're the agent-readable plan: every future loop iteration (and every fresh-context agent) re-reads the architecture from the repo instead of from anyone's memory.

Every concept, three clicks deep

The same concepts as a quick reference: the closed row is the glance, open is the study card, and every timestamp jumps into the recording.

01Loop engineering, first contact: small stories, fresh context, human-merged PRsLoop engineering = spec-driven iteration: one small testable story per cycle, agent grounded in agents.md/s…

Loop engineering = spec-driven iteration: one small testable story per cycle, agent grounded in agents.md/skills, test-gated commit, PR with human merge; fresh context each iteration, capped iterations, feature branches, no destructive autonomy; scaffolded in-repo (loop/prompt + run.sh).

Model-agnostic by design, said to Paul: 'the LLMs do not know what they are... it's just a system prompt' — the loop works on any capable model ()

The failure RECORD matters as much as the retry — the loop learns from its own log, not from vibes ()

Ralph-loop origin shared with the actual repo link when a learner asks ()

'goal.md' arrives the next day (s20) as the companion discovery — end-state alongside behavior

02The orchestrator chat: spawning a worktree-backed team of sub-agent chatsChats-as-agent-team = one orchestrator chat + per-workstream chats on separate git worktrees, inter-chat me…

Chats-as-agent-team = one orchestrator chat + per-workstream chats on separate git worktrees, inter-chat messaging for handoffs, a /side channel for non-interrupting status, human nudges as scheduler; parallelism bounded by merge back to one repo.

Sub-agent indicators appear in-chat (the 'sunflower icon' buttons) as Codex deploys workers on the feature ()

'It also prompted it — this chat was sent by Codex' — delegation includes writing the delegate's brief ()

The mid-build 'Firebase' slip: 'wait, did I say Firebase? It's Firecrawl — or now it'll spin up another agent to start building Firebase. That'll be funny.' Precision in delegation is load-bearing ()

Nudging is part of the job: force-push orders repeated three times before the repo went live ()

Browser automation pruned again — three separate 'don't use my browser' orders ()

03Actors, self-hosting, and the scraping paradox: getting data your agent won't fetchData-access hierarchy: official free API first (YouTube Data API), packaged actors for refused platforms (A…

Data-access hierarchy: official free API first (YouTube Data API), packaged actors for refused platforms (Apify), self-hosted general scraper for the open web (Firecrawl); every PAID fetch behind an explicit human approval gate.

The refusal is real but shallow: agents decline direct ToS-violating scrapes yet happily call an actor that does the same — know which side of the line your build sits on ()

Free-tier awareness: Firecrawl 1,000 credits, OpenAI credits driving his Codex usage — the demo runs on scraps deliberately ()

trigger.dev adopted by the agent for durable background jobs — scraping belongs in workers, not request handlers ()

04Voice-first product surfaces: the thesis, the models, and the honest failureVoice-first surface = conversation as the primary control (voice preferred, chat as reliable fallback), rea…

Voice-first surface = conversation as the primary control (voice preferred, chat as reliable fallback), realtime speech model when credentials/latency allow, chained STT→LLM→TTS as the degradation path; spoken-answer style constraints (short, interruptible) written into the agent instructions.

Model discovery delegated: name the capability, let the agent resolve the current model id ()

The 401-vs-200 lesson taught explicitly: 'you should always be getting HTTP 200 — that means the API key is working' ()

Chat-first shipping order under time pressure: 'make sure the chat version works using our same API key for now' ()

05Excalidraw in, architecture out: the one-prompt plan expansionPlan-first ritual = rough visual map → screenshot + intent prompt → agent-expanded architecture (with criti…

Plan-first ritual = rough visual map → screenshot + intent prompt → agent-expanded architecture (with critique and additions) → iterate until sound → commit the diagrams into the README → only then build; prompts themselves refined by a dedicated side chat into short, shareable form.

The agent critiques the plan's category ('technology map, not product plan') before filling it — invite that critique explicitly ()

Unprompted additions are signal: free official APIs and job runners the human didn't know to ask for (0:35:04, 0:59:53)

Drag-the-chat-into-the-project: instant context binding in Codex desktop — 'simple drag and drop, makes a ton of difference' ()

MIT license explained to the room: use, copy, modify, sell, no affiliation owed — the default for teach-and-share codebases ()

Tools referenced

ToolCoverageMomentContext
Codex (OpenAI)demonstratedOrchestrator + sub-chats + worktrees + /side chat + status mini-sites; running on API credits, not the app plan
ChatGPTdemonstratedDesktop app: projects, drag-chat-into-folder context binding, terminal button shown to a learner
ExcalidrawdemonstratedThe planning surface; rough screenshot accepted happily by the agent
ApifydemonstratedYouTube Scraper actor (100k users); actors-as-APIs explained; agent-invented approval gate for paid runs
FirecrawldemonstratedCloud key (1,000 free credits) for the demo; standing advice to self-host and never pay
OpenAI APIdemonstratedKeys created live; realtime-voice rejections all session; chained Transcribe + 4o-mini fallback
SupabasedemonstratedDatabase layer via MCP server; its jobs chat reported done first
Tailwind CSS + shadcn/uidemonstratedBlock + theme recipe again; first render 'really bad,' recovered with a safer sidebar block
TweakCNdemonstratedClaymorphism favorite; the 'Claude' theme spotted with delight
Next.jsdemonstratedScaffolded by the first big prompt
GitHubdemonstratedDedicated publish chat; force-push nudged three times; PRs/worktrees taught in passing
YouTube Data APIexplainedAdded by the agent unprompted — official, free, 'more powerful'
Whisper / GPT Realtime (OpenAI voice)explained'There's no Whisper 2 — it's Realtime 2.0' (as-heard); the agent resolves current model names
StripeexplainedSDK + CLI + best practices + MCP server integrated in its own worktree; 16 files touched by close
trigger.devmentionedAdopted by the agent unprompted for durable background jobs — 'I haven't asked it, but it understood our codebase might need it'
Claude Codementioned'Everything can be done on Claude Code as well — nothing here is unique to a vendor'
Granolamentioned'A tool I really want to use again' — notetaker aside
Wispr FlowmentionedDictation mishap eats a long prompt — 'I'm using FreeFlow... the free application, not the best' (as-heard)
n8nmentionedSkill-vs-MCP vocabulary from earlier weeks resurfacing in cohort answers

Session materials

Archived locally on V: — click to open. Companion pages link to the LMS.

Action items

Resources mentioned

Resources
  • docYouTube Growth Stack GitHub repository
  • docRalph Wiggum loop repository
  • docApify YouTube Scraper actor
  • docLoop-engineering diagram
  • docCodex custom-instructions skill (mind-map personalization)
  • docPrompt drops via the prompt-refiner chat
  • docs19 transcript attachment

Extraction notes

This page was built from an auto-generated transcript, which garbles product and people's names. Those were corrected silently in everything above and logged here for transparency. The warnings flag claims that were true on the recording day but change fast.

Transcript corrections applied

The transcript saysThe trainer actually means
Superbase / Subabis / Supa base / SUBABaseSupabase
Appify / AmplifyApify
xCalid draw / XcarryDrawExcalidraw
Ralph Wigham / Ralph WikumRalph Wiggum (the Simpsons character; the community loop's namesake)
Whisper 2 / Real Time 2.0OpenAI realtime speech model (as-heard naming; he guessed, the agent resolved)
codecs / Codec'sCodex
SHADCN / SHA / Shat CNshadcn/ui
Kimi K3Kimi (Moonshot) frontier model (as-heard version)
5 crawl / bike crawl / Fire crawlFirecrawl
FreeFlow / free flowhis dictation app (as-heard; distinct from Super Whisper, which he recommends)
WorkTrease / water treegit worktrees
trigger.devTrigger.dev (background-jobs platform)
GPT Transcribed and GPT 4.0 MiniGPT Transcribe (STT) + GPT-4o-mini (as-heard fallback pair)
Matthew Berman, AI explainedMatthew Berman and AI Explained (YouTube channels surfaced by the pipeline)
Clawed codeClaude Code

True on recording day — verify before relying