IndyDevDan — One Prompt Every AGENTIC Codebase Should Have
Why this is in the vault
This is Dan’s January 26 video introducing the new Claude Code setup hook (lifecycle event that fires on --init and --maintenance flags) and pairing it with just as a command runner and a /install slash command that runs both deterministic scripts and an agentic prompt. It’s vault-worthy not because the hook itself is novel — Dan himself says “this is just a script, this is not that interesting” — but because the pattern is the cleanest expression yet of the “deterministic-plus-agentic” combination Dan has been building toward all year. Three reasons:
- Concrete codification of the year-of-trust thesis. Dan’s 2026 framing video (same ingestion cycle,
2026-04-19-indydevdan-top-2-percent-plan-2026.md) names “trust” as the unifying primitive for 2026. This video shows the first concrete worked example of how you build trust into a codebase: a deterministic hook (predictable execution) wrapped by an agentic prompt (intelligent oversight) wrapped by ajustcommand (repeatable interface). It’s the year-of-trust thesis materialized at the codebase level. - “Living document that executes” is the cleanest one-line summary of the harness-era shift. Dan’s closing line — “what you get here is a living document that executes” — is a more memorable restatement of the same architecture Cobus Greyling, Harrison Chase, Akshay Pachaar, and Thariq have been describing under different names (harness era, AI-developer-workflows, agent-harness anatomy, session management). The vault now has multiple independent voices converging on the claim that the right unit of work is “natural-language process spec that runs deterministically when it can and agentically when it must.” Dan’s setup-hook example is the smallest reproducible artifact of that architecture.
- Direct mapping to RDCO’s onboarding problem for new skills/cron jobs. RDCO has 60+ skills, multiple cron jobs, and a Mac Mini always-on agent — but no
/installor/maintenancepattern. When a skill breaks, the founder or Ray has to debug from memory. When a new MCP is added, env-var checking is ad hoc. Dan’s pattern (just-file as launchpad + setup-hook as deterministic bootstrap + /install slash command as agentic validator) is directly applicable to the RDCO ops repo.
Core argument
Great teams onboard new engineers in one command. The age of agents lets every team be a great team. The argument has three layers:
- The setup hook is a Claude Code primitive most engineers haven’t noticed. It runs before sessions start (you trigger it via
claude --initorclaude --maintenance). It doesn’t appear in the lifecycle diagram. It’s “use this for operations you do not want to run on every session like installing dependencies, running migrations, or periodic maintenance tasks.” - The hook alone is uninteresting — it’s just a script. The pattern is interesting. The pattern is: deterministic script (does the install/maintenance work) + structured logging (writes results to a known location) + agentic prompt (reads the log, validates, reports, optionally goes interactive). The agentic layer adds: documentation generation, error resolution via natural language, common-issue YAML blocks the agent reads, and human-in-the-loop branches for ambiguous decisions.
justis the right launchpad for this pattern. A single file that lists every command your team or your agents will run. New engineer typesjust, sees every workflow, picks one, runs it. Dan introduces/installand/install-hil(human-in-the-loop) as the two canonical commands — one for sandboxes/CI, one for new-engineer onboarding.
The trust frame: the pattern lets you pre-encode common failure modes (“if the database is corrupt, clear and rerun”) so the agent handles them deterministically the second and third time. Each new engineer’s failure becomes one more entry in the prompt, and the prompt becomes a living document that executes.
Cross-reference to Mintfi’s “Standard for LM Executables” (Jan 15): Dan flags that he isn’t the only one converging here — Mintfi proposed a standard. Dan’s stance is “we don’t need a standard, just the idea.” That’s a healthy stance: the value is the pattern, not the spec.
Mapping against Ray Data Co
- RDCO ops repo (
~/.claude/) is the canonical use case for this pattern. We have 60+ skills, a settings.json, multiple MCP servers, a Mac Mini always-on agent, cron jobs, and a vault with 1,490 docs. New machines (or recoveries from an OS reinstall) require: install dependencies (yt-dlp, sox, jq, gh, qmd), authenticate MCPs (1Password wrapper scripts, Notion OAuth, Gmail OAuth, etc.), restore launchctl agents, restore tmux session, point CLAUDE.md to the right paths. There is no/installscript today. Dan’s pattern is the right primitive to build it: ajust installthat runs the deterministic bootstrap then hands off to an agentic prompt that walks through “is youropCLI signed in? Is your Discord token paired? Is your Google Calendar OAuth refreshed?” Concrete follow-up below. - The “common issues” YAML block is the missing piece in current RDCO skill design. Most skills today say “do X.” Few say “if X fails because Y, do Z.” Dan’s pattern says: encode the recurring failure modes inline in the prompt, and the agent will resolve them automatically. The vault has implicit knowledge of common failures (yt-dlp captions sometimes empty, xmcp returns blank plain_text on certain accounts, Notion search doesn’t sort) — none of these are encoded as “common issues” inside the relevant skill prompts. Adding a “Common issues” section to skill templates would be a one-week, high-ROI fix.
justas a launchpad layer maps onto RDCO’s slash-command/skill list. Today, the founder discovers skills by runningclaudeand reading the skill list reminder. That works for an interactive session, but it doesn’t help when runningclaudeas a one-shot from a cron job. A~/.claude/justfilewith named recipes (just morning-prep,just check-board,just process-newsletter-watch) would standardize the cron commands and make them inspectable from the terminal — and it’d let Ray queue work viajust Xrather than craftingclaude -pstrings.- Validates the autonomous-agent-loop architecture, but reframes the bootstrap problem. Dan’s pattern is implicitly about “how do new humans/machines get up to speed.” For RDCO, the analogous question is “how does a new agent session bootstrap context without the founder explaining it.” The answer in the vault has been CLAUDE.md + SOUL.md + skill list. Dan’s
--inithook +/primepattern is a more aggressive version: have the agent read state, summarize, and self-test before the session starts. Could shave 30–60 seconds off every cron-fired session and reduce drift from stale state files. - Direct application to
build-projectandvercel:bootstrapskills. Both are about codebase setup — exactly Dan’s domain.vercel:bootstrapalready does some of this (vercel link, env pull, db init). Dan’s contribution is the agentic validator layer on top: after deterministic setup, an agent verifies “did the env vars actually load? Doesnpm run devstart cleanly? Are there any obvious config bugs?” Adding this validator step tovercel:bootstrapwould catch failure modes that today require the founder to notice. - Counter-point to “skills should be the entry point.” Dan’s whole thesis here implies that prompts and slash commands (not skills) should be the entry point for codebase work. This contradicts the RDCO bias toward skills as the unit of automation. The reconciliation: skills are right when there’s a recurring problem that needs management (Dan’s
/manage-worktreeexample from his other video this cycle); slash commands are right for one-off tasks. RDCO’s skill-or-command decision should follow Dan’s heuristic: if the work is “do X once,” it’s a slash command. If the work is “manage X across many states over time,” it’s a skill.
Open follow-ups
- Build
~/.claude/justfileand~/.claude/commands/install.md. First pass:just installrunsbrew bundlefor CLI deps, runsop signin, checks Discord/iMessage pairing, refreshes Google OAuth tokens, runsqmd status. Second pass: agentic validator that reads the install log and reports “all green” or surfaces specific failures with resolution steps. Estimated 2–3 hours of work, eliminates a class of “why isn’t this working” debugging sessions. - Add “Common issues” sections to the top-3-most-fragile RDCO skills. Candidates:
process-youtube(empty captions, /shorts URLs, deleted videos),process-newsletter(xmcp empty plain_text, Gmail OAuth expiry),discover-sources(rate-limit thrash). Encoded as YAML in the skill, the agent will self-resolve the recurring failure modes. - Pressure-test whether the
--inithook would speed up cron-fired sessions. Currently every cron-fired Claude Code session has to re-read CLAUDE.md, the skill list, and the working-context.md file. An--inithook could pre-load a summary into the system prompt, cutting first-token latency. Worth a 1-day experiment. - Add a
.claude/commands/install.mdto the rdco-vault repo (separate from the ops repo). Different problem: how does someone (founder on a new machine, or a future hire) clone the vault and get qmd indexed, links validated, graph rebuilt?just vault-install→ run-script + agentic validator. - Consider writing this pattern up for the Sanity Check newsletter. Working title: “The one prompt every codebase should have — and why your README is dead.” Hook: a great team’s onboarding is one
justcommand; a mediocre team’s is two days. The age of agents shifted the constraint from “writing setup scripts” to “encoding the resolution playbook for when those scripts fail.” The newsletter angle would lean into the “living document that executes” framing.
Related
- ~/rdco-vault/06-reference/transcripts/2026-04-19-indydevdan-setup-hook-install-maintain-transcript.md — raw transcript
- ~/rdco-vault/06-reference/2026-04-19-indydevdan-top-2-percent-plan-2026.md — Dan’s annual-bets companion video; “year of trust” frame that this setup-hook video materializes
- ~/rdco-vault/06-reference/2026-04-19-indydevdan-claude-code-deletes-production.md — Dan’s hooks-as-damage-control video; the trust-infrastructure flip side of this trust-bootstrap video
- ~/rdco-vault/06-reference/2026-04-15-thariq-claude-code-session-management-1m-context.md — Anthropic’s Thariq on session management; the “/init hook + /prime command” pattern is one realization of session-management-at-startup
- ~/rdco-vault/06-reference/2026-04-12-cobus-greyling-harness-era-language-shift.md — Greyling’s “harness era” framing; Dan’s pattern is a harness-era artifact at the codebase level
- ~/rdco-vault/06-reference/2026-04-10-akshay-pachaar-agent-harness-anatomy.md — Pachaar’s anatomy of an agent harness; Dan’s setup hook + agentic validator is the “lifecycle hooks” component of a harness