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.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add a5c-ai/babysitter --skill prd-to-spec --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Prd To Spec?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/a5c-ai-prd-to-spec)More formats (shields.io, HTML) on the badges page.
---
name: prd-to-spec
description: "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."
author: Yehuda Yungstein
graph:
domains: [domain:software-engineering]
specializations: [specialization:product-management]
skillAreas: [skill-area:product-discovery, skill-area:roadmap-planning]
roles: [role:product-manager, role:product-analyst]
workflows: [workflow:product-discovery, workflow:competitive-analysis]
---
# PRD to SPEC Generator
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).
## Usage
```
/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"`
## Companion process
- Library path: `library/specializations/product-management/prd-to-spec.js`
- Locally installed: `~/.a5c/processes/prd-to-spec.js`
The process file is the source of truth for the pipeline. This skill
intentionally stays thin so users only need to remember `/prd-to-spec`.
## What this skill does when invoked
1. **Parse input** — resolve the PRD path or capture the inline text.
2. **Infer `featureBranch`** — read the current git branch via
`git branch --show-current`. If it is `main` / `develop` / `dev`,
ask the user for a feature-branch name.
3. **Detect optional inputs** from the project context:
- `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)
4. **Ask the user to pick the run mode:**
> 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.
5. **Dispatch** by invoking the chosen babysitter command via the Skill tool:
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>')
```
6. **Return** the SPEC path and the execution prompt produced by the
process to the user.
## Fallback (no babysitter runtime)
If neither `/babysitter:call` nor `/babysitter:yolo` is available:
1. Read the process source at the location above.
2. Execute each task's agent prompt manually, in phase order.
3. Pause at every `ctx.breakpoint(...)` for explicit user approval
(interactive equivalent) or skip every breakpoint (yolo equivalent),
matching the mode the user picked in step 4.
4. Return the same outputs the process would have returned.
## Optional Integration Hooks
All flow through the process inputs (none required):
- **Tracker integration** — `trackerHint` input. Examples: `jira`
(`/jira` or `acli jira workitem update`), `linear` (CLI / MCP),
`gh-issues` (`gh issue edit`).
- **Secondary reviewer** — `secondaryReviewer` input. Examples: `codex`
(`/codex:review`), `gemini` (`/gemini-review`), `deep-verify-plan`
(`/deep-verify-plan`), `peer` (notify a teammate).
- **Pipeline framework** for Phase 3 verification — examples: Dagster,
Airflow, dbt, Prefect, K8s preview.
- **UI framework** for Phase 3 verification — examples: Vite, Next,
Storybook.
The process works end-to-end without any of them.
## Failure Log Mechanism
The process reads a project-local `failure-log.md` in Phase 1 to
internalize lessons from prior failed runs. Setup:
- Cross-project lessons: `~/.claude/skills/<your-namespace>/failure-log.md`
- Project-specific lessons: `<repo-root>/.claude/failure-log.md`
Each 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.
## Pre-Push Personal Docs Check
The process executes this gate as part of Phase 7 (Deliver) of the
generated SPEC. Procedure:
1. List candidates: `git diff --name-only origin/<base-branch>...HEAD`
2. Classify each file: `legitimate` / `personal-doc` / `ambiguous`
3. Block by default for: `SPEC*.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.
4. Block-and-ask gate: per-file decision of `unstage` / `keep` /
`gitignore`. Do NOT skip even if rushed.
5. Proceed with push only after all blocked files are resolved.
## Rules
- The skill itself does not produce the SPEC. It only sets up inputs
and dispatches to the process via `/babysitter:call` or `/babysitter:yolo`.
- Default to `/babysitter:call` (interactive) when in doubt.
- Never bypass user-approval breakpoints in interactive mode — they
are first-class in the process.
- The SPEC must be proportional to the task (the process honors this).
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!