Use this when hello-world-ai doesn’t fit your stack — you’re building in Python, Go, Rust, or any non-Next.js project. This recipe documents the seven files every AI-assisted project should have from day one, and where each one comes from.
Day-1 minimum path: clone hello-world-ai instead. clone-the-starter.md. This page is the fallback.
Every repo bootstrapped this way gets these seven files on the first commit:
| # | File | Purpose | Template |
|---|---|---|---|
| 1 | README.md |
What this repo is, how to boot it | You write this |
| 2 | CLAUDE.md |
Rules for Claude in this repo | templates/CLAUDE.md.template |
| 3 | .gitignore |
Keep junk out of git | templates/gitignore.template |
| 4 | docker-compose.yml |
Docker-first dev env | templates/docker-compose.yml.template |
| 5 | .env.example |
Secret variable names only | templates/env.example.template |
| 6 | .claude/commands/prep.md |
Silent CLAUDE.md reader | Copy from 03-slash-commands/starter-kit/.claude/commands/prep.md |
| 7 | .claude/commands/commit.md |
Lint + type-check + commit | Copy from 03-slash-commands/starter-kit/.claude/commands/commit.md |
Those seven files get you to the same place hello-world-ai gets you: a repo where /prep and /commit work on Day 1.
# 1. Create the directory
mkdir ~/repos/my-new-project
cd ~/repos/my-new-project
# 2. Initialize git
git init
# 3. Copy the templates
cp ~/repos/AI_Workflow/01-bootstrap-a-repo/templates/CLAUDE.md.template ./CLAUDE.md
cp ~/repos/AI_Workflow/01-bootstrap-a-repo/templates/gitignore.template ./.gitignore
cp ~/repos/AI_Workflow/01-bootstrap-a-repo/templates/docker-compose.yml.template ./docker-compose.yml
cp ~/repos/AI_Workflow/01-bootstrap-a-repo/templates/env.example.template ./.env.example
# 4. Copy the two Day-1 commands
mkdir -p .claude/commands
cp ~/repos/AI_Workflow/03-slash-commands/starter-kit/.claude/commands/prep.md .claude/commands/
cp ~/repos/AI_Workflow/03-slash-commands/starter-kit/.claude/commands/commit.md .claude/commands/
# 5. Fill in the placeholders in CLAUDE.md and docker-compose.yml
$EDITOR CLAUDE.md docker-compose.yml
# 6. Write a real README
$EDITOR README.md
# 7. First commit
git add -A
git commit -m "chore: bootstrap project skeleton"
CLAUDE.mdThe template has ,, and `` placeholders. Replace them before your first commit. Chapter 02 explains the anatomy of CLAUDE.md in detail — skim it before writing your own.
docker-compose.ymlThe template is a minimal Node.js service. For other stacks:
image to python:3.12-slim, change command to python -m uvicorn app:app or similarimage to golang:1.22, change command to go run .image to rust:1.78, change command to cargo watch -x runThe important part isn’t the stack; it’s that your dev loop runs inside the container from day one. See principles/docker-first.md for why.
.env.exampleList every secret name your project will use, with empty values or inert placeholders. Never commit real values.
# .env.example
DATABASE_URL=postgres://postgres:change-me@db:5432/dev
API_KEY=set-in-local-env-file
Your real .env file stays gitignored.
docker compose up — confirm the dev loop bootsclaude, then /prep — confirm you see only Read project context. Ready./commit — confirm lint/type-check run and the commit landsIf all three work, your bootstrap is complete. Move on to Chapter 02.
CLAUDE.md you just createdprinciples/docker-first.md — the “why” behind docker-compose.yml from day one