Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add joshukraine/dotfiles --skill bootstrap-prd --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bootstrap Prd?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/joshukraine-bootstrap-prd)More formats (shields.io, HTML) on the badges page.
---
name: bootstrap-prd
description: Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.
disable-model-invocation: true
---
# 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!