Skip to content
Development
Skill

/bootstrap-prd

Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.

BOOST
From plugin
joshukraine-dotfiles
42924 skills
Install
$ npx -y skills add joshukraine/dotfiles --skill bootstrap-prd --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/bootstrap-prd

Context preview

The summary Claude sees to decide when to auto-load this skill.

Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.

SKILL.md

bootstrap-prd.SKILL.md
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`
  • **S
Read more
Ships withjoshukraine-dotfiles

:round_pushpin: My dotfiles for macOS using Neovim, Zsh, and Ghostty + Tmux

Get the whole plugin

Other skills on joshukraine-dotfiles.