Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Set up PRD-driven development infrastructure for a new project, including directory structure, templates, and roadmap.
.claude/skills/joshukraine-bootstrap-prd/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 84% | 0% |
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.
Work through the steps below in order. Each step has a hard stop — do not proceed past a CHECKPOINT without explicit user approval.
Check whether docs/prd/ exists and contains any .md files.
If PRD files exist → enter PRD-first mode:
.md files in docs/prd/ to understand the projectIf no PRD files exist → enter scaffold-first mode:
Ask the user for the following. Skip anything already provided in the conversation context.
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 --> |
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.mdIn PRD-first mode, only CLAUDE.md is typically needed — the PRD files already exist.
Check which of the following already exist in the project:
CLAUDE.md (repo root)docs/prd/README.mddocs/prd/ROADMAP.mddocs/prd/CHANGELOG.mddocs/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).
CHECKPOINT 1: Present a summary and wait for explicit approval before writing any files.
In PRD-first mode, the summary should include:
docs/prd/CLAUDE.md — list with full pathsgit init is needed, whether to create a GitHub repoIn scaffold-first mode, the summary should include:
CLAUDE.mddocs/prd/README.mddocs/prd/ROADMAP.mddocs/prd/CHANGELOG.mddocs/prd/01-overview.md<!-- TODO: ... --> commentsDo not create any files until the user approves.
After approval, create each file:
In PRD-first mode:
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).git/ doesn't exist: git initgh repo create <repo-name> --public --source=. --push (or --private based on user preference)In scaffold-first mode:
[Project Name] with the actual project name in all files<!-- TODO: ... --> commentsdocs/prd/ directory as neededCLAUDE.md from template with gathered details.git/ doesn't exist: git initCHECKPOINT 2: Present a summary of what was created and what remains.
In PRD-first mode:
<!-- TODO: ... --> placeholders left in CLAUDE.mdCLAUDE.md~/.claude/docs/label-taxonomy.md)In scaffold-first mode:
<!-- TODO: ... --> placeholders left in each fileCLAUDE.mddocs/prd/ROADMAP.md~/.claude/docs/label-taxonomy.md)git and gh.~/.claude/docs/label-taxonomy.md remains a global reference — it should not be duplicated into individual projects.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,445 | 4,548 | -52% | 1 | 1 | 0% | 1,406 | 2,161 | +54% | 0 | 0 | — |
case-02 | fail→fail | 19,925 | 5,165 | -74% | 1 | 1 | 0% | 3,382 | 2,156 | -36% | 0 | 0 | — |
case-03 | fail→fail | 11,499 | 7,108 | -38% | 1 | 1 | 0% | 1,876 | 2,170 | +16% | 0 | 0 | — |
case-04 | pass→fail | 10,432 | 5,594 | -46% | 1 | 1 | 0% | 1,893 | 2,109 | +11% | 0 | 0 | — |
case-05 | fail→fail | 6,353 | 6,020 | -5% | 1 | 1 | 0% | 1,152 | 2,238 | +94% | 0 | 0 | — |
case-06 | fail→fail | 24,753 | 4,544 | -82% | 1 | 1 | 0% | 1,978 | 2,429 | +23% | 0 | 0 | — |
case-07 | fail→fail | 5,851 | 8,170 | +40% | 1 | 1 | 0% | 1,001 | 2,379 | +138% | 0 | 0 | — |
case-08 | fail→pass | 9,782 | 3,997 | -59% | 1 | 1 | 0% | 1,586 | 2,543 | +60% | 0 | 0 | — |
case-19 | pass→pass | 3,502 | 2,296 | -34% | 1 | 1 | 0% | 545 | 2,263 | +315% | 0 | 0 | — |
case-09 | fail→pass | 16,663 | 5,084 | -69% | 1 | 1 | 0% | 2,391 | 2,763 | +16% | 0 | 0 | — |
case-10 | fail→pass | 12,495 | 5,088 | -59% | 1 | 1 | 0% | 2,177 | 2,849 | +31% | 0 | 0 | — |
case-11 | fail→pass | 12,686 | 5,238 | -59% | 1 | 1 | 0% | 1,892 | 2,866 | +51% | 0 | 0 | — |
case-12 | fail→fail | 21,029 | 6,316 | -70% | 1 | 1 | 0% | 4,313 | 2,246 | -48% | 0 | 0 | — |
case-13 | fail→pass | 8,570 | 3,718 | -57% | 1 | 1 | 0% | 1,387 | 2,559 | +84% | 0 | 0 | — |
case-14 | fail→pass | 15,208 | 2,375 | -84% | 1 | 1 | 0% | 2,536 | 2,347 | -7% | 0 | 0 | — |
case-15 | fail→pass | 9,074 | 4,372 | -52% | 1 | 1 | 0% | 1,274 | 2,590 | +103% | 0 | 0 | — |
case-16 | fail→fail | 15,901 | 5,837 | -63% | 1 | 1 | 0% | 2,665 | 2,154 | -19% | 0 | 0 | — |
case-17 | pass→fail | 14,967 | 5,212 | -65% | 1 | 1 | 0% | 2,351 | 2,213 | -6% | 0 | 0 | — |
case-18 | pass→pass | 9,393 | 3,900 | -58% | 1 | 1 | 0% | 1,414 | 2,593 | +83% | 0 | 0 | — |
case-20 | pass→fail | 26,833 | 5,682 | -79% | 1 | 1 | 0% | 4,544 | 2,105 | -54% | 0 | 0 | — |
case-21 | pass→fail | 17,104 | 7,884 | -54% | 1 | 1 | 0% | 3,555 | 2,387 | -33% | 0 | 0 | — |
case-22 | pass→fail | 12,627 | 4,740 | -62% | 1 | 1 | 0% | 2,355 | 2,172 | -8% | 0 | 0 | — |
case-23 | pass→pass | 8,063 | 6,061 | -25% | 1 | 1 | 0% | 1,397 | 2,991 | +114% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 12 counted toward the lift figure. The other 11 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 12 comparable cases. 6 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.