---
name: joshukraine/bootstrap-prd
source: https://app.decimal.ai/s/joshukraine-bootstrap-prd@1/SKILL.md
source_sha256: 16d95eef8d1d
---

# Bootstrap PRD

Set up PRD-driven development infrastructure for a new project. This skill handles two workflows: **PRD-first** (PRD files already exist, scaffold the project around them) and **scaffold-first** (no PRD yet, create template files to be filled in). The skill detects which situation applies and adapts.

## Your task

Work through the steps below in order. Each step has a hard stop — do not proceed past a CHECKPOINT without explicit user approval.

---

### Step 1: Detect existing PRD files

Check whether `docs/prd/` exists and contains any `.md` files.

**If PRD files exist** → enter **PRD-first** mode:

- Read all `.md` files in `docs/prd/` to understand the project
- Extract: project name, description, tech stack, personas, and any quick-start commands mentioned
- Skip to Step 3 (no need to gather information the PRD already contains)

**If no PRD files exist** → enter **scaffold-first** mode:

- Proceed to Step 2 to gather project information

---

### Step 2: Gather project information (scaffold-first mode only)

Ask the user for the following. Skip anything already provided in the conversation context.

- **Project name** (e.g., "Acme Dashboard")
- **One-paragraph description** of what the project does and who it serves
- **Tech stack** — framework, database, frontend approach, linter, test framework
- **Key personas** — 1-3 user types with a sentence each
- **Quick-start commands** — how to start the app, run tests, run the linter

If the user provides a framework name, pre-fill quick-start commands from this lookup table (the user can override):

| Framework | Start | Test | Lint |
| --- | --- | --- | --- |
| Rails | `bin/dev` | `bin/rails test` | `bin/standardrb --fix` |
| Next.js | `npm run dev` | `npm test` | `npm run lint` |
| Hugo | `hugo server -D` | _(none)_ | _(none)_ |
| Static (no build) | Open `index.html` or use a local server | _(none)_ | _(none)_ |
| Generic | `<!-- TODO: start command -->` | `<!-- TODO: test command -->` | `<!-- TODO: lint command -->` |

---

### Step 3: Read templates

Read the template files that may be needed:

- `~/.claude/docs/prd-workflow/templates/CLAUDE.md`
- `~/.claude/docs/prd-workflow/templates/prd/README.md`
- `~/.claude/docs/prd-workflow/templates/prd/ROADMAP.md`
- `~/.claude/docs/prd-workflow/templates/prd/CHANGELOG.md`
- `~/.claude/docs/prd-workflow/templates/prd/01-overview.md`

In PRD-first mode, only `CLAUDE.md` is typically needed — the PRD files already exist.

---

### Step 4: Check for existing files and determine what needs to be created

Check which of the following already exist in the project:

- `CLAUDE.md` (repo root)
- `docs/prd/README.md`
- `docs/prd/ROADMAP.md`
- `docs/prd/CHANGELOG.md`
- `docs/prd/01-overview.md`
- `.git/` directory (is this already a git repo?)

Build a list of files to create (those that don't already exist) and files to skip (those that do).

---

### Step 5: Present the plan

**CHECKPOINT 1**: Present a summary and wait for explicit approval before writing any files.

**In PRD-first mode**, the summary should include:

- **Mode**: PRD-first (existing PRD files detected)
- **Project**: Name and one-line description (extracted from the PRD)
- **PRD files found**: List the existing files in `docs/prd/`
- **Files to create**: Typically just `CLAUDE.md` — list with full paths
- **What gets customized in CLAUDE.md**: Project name, description, tech stack, quick-start commands (all extracted from the PRD)
- **What stays as TODO**: Any CLAUDE.md sections that can't be inferred from the PRD (guardrails, linter specifics, etc.)
- **Git setup**: Whether `git init` is needed, whether to create a GitHub repo
- **Conflicts**: Any files that already exist where creation was expected

**In scaffold-first mode**, the summary should include:

- **Mode**: Scaffold-first (creating template PRD files)
- **Project**: Name and one-line description
- **Files to create** (full paths):
  - `CLAUDE.md`
  - `docs/prd/README.md`
  - `docs/prd/ROADMAP.md`
  - `docs/prd/CHANGELOG.md`
  - `docs/prd/01-overview.md`
- **What gets customized**: Project name, description, tech stack table, personas, quick-start commands
- **What stays as TODO**: Guardrails, terminology, linter/test details — marked with `<!-- TODO: ... -->` comments
- **Conflicts**: Any existing files detected

Do not create any files until the user approves.

---

### Step 6: Create files

After approval, create each file:

**In PRD-first mode:**

1. **Create `CLAUDE.md`** from the template, populated with information extracted from the existing PRD files (project name, description, tech stack, quick-start commands, key file references)
2. **Initialize git** if `.git/` doesn't exist: `git init`
3. **Create GitHub repo** if the user approved it in the checkpoint: `gh repo create <repo-name> --public --source=. --push` (or `--private` based on user preference)
4. **Skip PRD files** — they already exist

**In scaffold-first mode:**

1. **Create all PRD template files** by copying templates and applying substitutions:
   - Replace `[Project Name]` with the actual project name in all files
   - Fill in gathered details: description paragraph, tech stack table rows, persona sections, quick-start commands
   - Leave unfillable placeholders as `<!-- TODO: ... -->` comments
2. **Create `docs/prd/` directory** as needed
3. **Create `CLAUDE.md`** from template with gathered details
4. **Initialize git** if `.git/` doesn't exist: `git init`
5. **Skip any files** the user chose not to overwrite in the checkpoint

---

### Step 7: Report

**CHECKPOINT 2**: Present a summary of what was created and what remains.

**In PRD-first mode:**

- **Files created**: List each file with its path
- **Remaining TODOs**: List the `<!-- TODO: ... -->` placeholders left in `CLAUDE.md`
- **Suggested next steps**:
  1. Review and fill in architectural guardrails in `CLAUDE.md`
  2. If GitHub repo was created: verify it's accessible and Pages is configured (if applicable)
  3. Set up GitHub labels if using the issue tracker (see `~/.claude/docs/label-taxonomy.md`)
  4. Begin Phase 0 of the ROADMAP

**In scaffold-first mode:**

- **Files created**: List each file with its path
- **Remaining TODOs**: List the `<!-- TODO: ... -->` placeholders left in each file
- **Suggested next steps**:
  1. Fill in architectural guardrails in `CLAUDE.md`
  2. Add project-specific phases to `docs/prd/ROADMAP.md`
  3. Set up GitHub labels (see `~/.claude/docs/label-taxonomy.md`)
  4. Commit the scaffolded files (Conventional Commits — see CLAUDE.md "Git Commit Protocol")

---

## Important

- **This skill creates project files only.** It does not write application code or call any external APIs beyond `git` and `gh`.
- **Both checkpoints are hard stops.** Do not proceed without explicit approval.
- **Shared docs are NOT copied.** `~/.claude/docs/label-taxonomy.md` remains a global reference — it should not be duplicated into individual projects.
- **If a context window clear is needed**, it is safe to do so after Step 7 — the files exist on disk and will survive the clear.