Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Convert an approved PRD into a phase-gated implementation SPEC. User-facing entry point that dispatches to the prd-to-spec babysitter process via /babysitter:call (interactive) or /babysitter:yolo (auto). Stack-agnostic.
.claude/skills/a5c-ai-prd-to-spec/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-18 | ✗→✓ | ▲ Improved | -3% | 0% |
User-facing entry point for the PRD → SPEC pipeline. The user runs /prd-to-spec and this skill dispatches to the companion babysitter process via /babysitter:call (interactive, with breakpoints) or /babysitter:yolo (non-interactive, auto-approve).
/prd-to-spec <PRD-path-or-inline-text>Examples:
/prd-to-spec docs/active/feature-X-PRD.md/prd-to-spec "Build a notification dashboard with real-time alerts"library/specializations/product-management/prd-to-spec.js~/.a5c/processes/prd-to-spec.jsThe process file is the source of truth for the pipeline. This skill intentionally stays thin so users only need to remember /prd-to-spec.
featureBranch — read the current git branch viagit branch --show-current. If it is main / develop / dev, ask the user for a feature-branch name.
contextDoc — project conventions doc (default CLAUDE.md)archiveDir — past SPEC archive directory (default empty)failureLogPath — project-local failure-log.md (default empty)secondaryReviewer — hint like codex, gemini, peer (default empty)> Run mode for the babysitter prd-to-spec process: > > 1. Interactive (/babysitter:call) — recommended. Pauses at > every breakpoint (discovery review, SPEC approval, etc.) for > explicit user confirmation. > 2. Auto / yolo (/babysitter:yolo) — non-interactive. Skips > all breakpoints; auto-approves every gate. Use only when the > pipeline is well-tested and the inputs are trusted.
Default to option 1 if the user does not respond.
For interactive: Skill('babysitter:call', 'Run the product-management/prd-to-spec process with inputs: prdPath=<resolved>, featureBranch=<resolved>, contextDoc=<resolved>, archiveDir=<resolved>, failureLogPath=<resolved>, secondaryReviewer=<resolved>')
For auto / yolo: Skill('babysitter:yolo', '<same instruction as above>')
process to the user.
If neither /babysitter:call nor /babysitter:yolo is available:
ctx.breakpoint(...) for explicit user approval(interactive equivalent) or skip every breakpoint (yolo equivalent), matching the mode the user picked in step 4.
All flow through the process inputs (none required):
trackerHint input. Examples: jira(/jira or acli jira workitem update), linear (CLI / MCP), gh-issues (gh issue edit).
secondaryReviewer input. Examples: codex(/codex:review), gemini (/gemini-review), deep-verify-plan (/deep-verify-plan), peer (notify a teammate).
Airflow, dbt, Prefect, K8s preview.
Storybook.
The process works end-to-end without any of them.
The process reads a project-local failure-log.md in Phase 1 to internalize lessons from prior failed runs. Setup:
~/.claude/skills/<your-namespace>/failure-log.md<repo-root>/.claude/failure-log.mdEach entry follows:
markdown### [YYYY-MM-DD] <short-pattern-name> **Context:** <what we tried to do> **What went wrong:** <the failure mode in 1-2 sentences> **Constraint going forward:** <the binding rule for future runs>
If the file doesn't exist, the process notes "no prior failures recorded" and continues.
The process executes this gate as part of Phase 7 (Deliver) of the generated SPEC. Procedure:
git diff --name-only origin/<base-branch>...HEADlegitimate / personal-doc / ambiguousSPEC*.md, PRD*.md, HANDOFF*.md,SUMMARY*.md, *-NOTES.md, anything under docs/plans/, ai_docs/, .claude/scratch/, tmp/, investigation-*, analysis-*, playbook-*, AI-generated plans/specs not explicitly approved.
unstage / keep /gitignore. Do NOT skip even if rushed.
and dispatches to the process via /babysitter:call or /babysitter:yolo.
/babysitter:call (interactive) when in doubt.are first-class in the process.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 47,724 | 11,016 | -77% | 1 | 1 | 0% | 7,821 | 1,911 | -76% | 0 | 0 | — |
case-02 | fail→fail | 51,186 | 5,890 | -88% | 1 | 1 | 0% | 8,205 | 1,957 | -76% | 0 | 0 | — |
case-03 | fail→fail | 5,279 | 7,551 | +43% | 1 | 1 | 0% | 346 | 2,006 | +480% | 0 | 0 | — |
case-04 | pass→pass | 9,445 | 16,628 | +76% | 1 | 1 | 0% | 1,595 | 4,414 | +177% | 0 | 0 | — |
case-05 | pass→pass | 2,351 | 5,401 | +130% | 1 | 1 | 0% | 438 | 2,442 | +458% | 0 | 0 | — |
case-06 | pass→pass | 4,331 | 10,673 | +146% | 1 | 1 | 0% | 782 | 3,679 | +370% | 0 | 0 | — |
case-07 | pass→pass | 6,428 | 3,981 | -38% | 1 | 1 | 0% | 1,248 | 2,306 | +85% | 0 | 0 | — |
case-08 | fail→pass | 12,118 | 3,937 | -68% | 1 | 1 | 0% | 1,747 | 2,209 | +26% | 0 | 0 | — |
case-09 | fail→fail | 8,537 | 6,762 | -21% | 1 | 1 | 0% | 1,494 | 2,876 | +93% | 0 | 0 | — |
case-10 | fail→fail | 19,443 | 2,681 | -86% | 1 | 1 | 0% | 3,312 | 2,040 | -38% | 0 | 0 | — |
case-11 | fail→pass | 14,084 | 3,482 | -75% | 1 | 1 | 0% | 2,263 | 1,976 | -13% | 0 | 0 | — |
case-12 | fail→pass | 8,354 | 4,586 | -45% | 1 | 1 | 0% | 1,404 | 2,311 | +65% | 0 | 0 | — |
case-13 | pass→pass | 6,850 | 3,053 | -55% | 1 | 1 | 0% | 1,068 | 1,997 | +87% | 0 | 0 | — |
case-14 | pass→pass | 15,521 | 1,831 | -88% | 1 | 1 | 0% | 2,661 | 1,837 | -31% | 0 | 0 | — |
case-15 | pass→pass | 9,346 | 2,005 | -79% | 1 | 1 | 0% | 1,664 | 1,816 | +9% | 0 | 0 | — |
case-16 | fail→pass | 11,179 | 2,931 | -74% | 1 | 1 | 0% | 1,947 | 2,106 | +8% | 0 | 0 | — |
case-17 | pass→pass | 9,513 | 2,541 | -73% | 1 | 1 | 0% | 1,669 | 1,984 | +19% | 0 | 0 | — |
case-18 | fail→pass | 11,230 | 1,795 | -84% | 1 | 1 | 0% | 1,801 | 1,755 | -3% | 0 | 0 | — |
case-19 | fail→pass | 13,033 | 7,099 | -46% | 1 | 1 | 0% | 2,082 | 2,683 | +29% | 0 | 0 | — |
case-20 | fail→pass | 6,762 | 3,458 | -49% | 1 | 1 | 0% | 1,363 | 2,193 | +61% | 0 | 0 | — |
case-21 | fail→fail | 12,019 | 2,702 | -78% | 1 | 1 | 0% | 2,066 | 2,079 | +1% | 0 | 0 | — |
case-22 | pass→pass | 13,720 | 2,754 | -80% | 1 | 1 | 0% | 2,290 | 2,002 | -13% | 0 | 0 | — |
case-23 | pass→pass | 16,093 | 11,656 | -28% | 1 | 1 | 0% | 2,463 | 3,356 | +36% | 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 20 counted toward the lift figure. The other 3 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 +30 percentage points is the difference between those two pass rates over the 20 comparable cases.
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.