prd-to-spec
Transform a PRD into a technical SPEC document — architecture, API design, data model, error handling, and implementation contracts. Triggers on: prd-to-spec, prd to spec, prd转spec, 需求转设计, 需求转规格, generate spec from prd, design from prd, 技术方案, 设计方案.
By smallnest · 424 installs
npx skills add smallnest/goal-workflow --skill prd-to-spec
Source repository · Upstream listing
prd to spec — PRD to Technical Specification
Transform a Product Requirements Document (PRD) into a detailed technical SPEC that an engineer or AI agent can implement against. The PRD says what to build; the SPEC says how to build it.
When to Use
A /prd has been generated and you need to bridge the gap to implementation
You want architecture decisions documented before coding starts
Multiple developers/agents will implement the feature and need a shared contract
You need to validate technical feasibility before committing to a PRD
You want to catch design issues early — before code is written
The Job
1. Locate PRD — find or receive the PRD document
2. Analyze context (optional) — if a codebase exists, scan it to understand current architecture, patterns, and constraints
3. Ask clarifying questions — resolve technical ambiguities (max 3 5 questions)
4. Generate SPEC — produce a structured technical specification
5. Review — present to user for feedback and iteration
6. Save — write final SPEC to agreed location
Step 1: Locate PRD
Find the input PRD in one of these ways:
If auto detecting, list available PRDs and let the user choose:
Step 2: Analyze Context (Optional)
Skip this step if no codebase exists yet (greenfield project). In that case, the SPEC will propose architecture from scratch based on the PRD requirements and clarifying questions.
If a codebase exists, scan it to understand:
Existing architecture — how the current system is structured
Tech stack — languages, frameworks, libraries already in use
Patterns — naming conventions, file organization, error handling approach
Database — current schema, migration tool, ORM
API style — REST/GraphQL/gRPC, authentication method, response format
Testing — test framework, coverage patterns, test utilities
This ensures the SPEC aligns with the existing system rather than proposing incompatible solutions.
Step 3: Clarifying Questions
Ask only when the PRD leaves technical decisions ambiguous. Focus on:
Architecture choices — where does this feature live? New service or extend existing?
Data storage — new table? Extend existing? Cache strategy?
API design — new endpoints? Extend existing? Breaking changes?
Dependencies — any new libraries needed? Version constraints?
Performance — expected load? Latency requirements? Batch size limits?
Format:
If user selects "let me decide" options, make the best choice based on codebase analysis and document the rationale in the SPEC.
Step 4: SPEC Document Structure
src/
├── services/
│ └── priority.service.ts [NEW]
├── controllers/
│ └── task.controller.ts [MODIFY: add priority endpoints]
├── models/
│ └── priority.model.ts [NEW]
└── migrations/
└── 20240315 add priority.ts [NEW]
Step 5: Review & Iteration
After generating the SPEC, present it and ask:
Step 6: Save
Ask user for save location:
Mapping Strategy: PRD → SPEC
How PRD elements translate to SPEC sections:
PRD Section SPEC Section(s) Transformation
User Stories 5. Business Logic, 9.4 Acceptance Mapping Stories → algorithms + test cases
Functional Requirements 4. API Design, 5. Business Logic FRs → endpoints + logic
Acceptance Criteria 9. Testing Strategy Criteria → specific test scenarios
Non Goals 11.1 Open Questions Clarify what's explicitly excluded
Technical Considerations 2. Architecture, 8. Performance Constraints → design decisions
Success Metrics 8.1 Expected Load, 10.3 Delivery Metrics → monitoring + rollout plan
Quality Criteria
A good SPEC should pass these checks:
[ ] Every PRD User Story has corresponding SPEC sections
[ ] Every Functional Requirement maps to an API endpoint or business logic rule
[ ] Every Acceptance Criterion maps to at least one test case
[ ] Architecture choices are justified with rationale
[ ] API schemas are specific enough to generate client code
[ ] Error handling covers all identified failure modes
[ ] Implementation order respects dependencies
[ ] No "TBD" or "TODO" items — resolve or move to Open Questions
Edge Cases & Fallback
Scenario Handling
PRD is vague or incomplete Generate SPEC with best effort choices, mark assumptions in Section 11.3
PRD conflicts with existing code Flag conflicts explicitly, propose resolution in Section 11.1
Feature is too large for one SPEC Split into multiple SPECs (one per service boundary), link them
No existing codebase (greenfield) Skip Step 2, propose architecture from scratch based on PRD + clarifying questions
PRD has no User Stories (just bullet points) Infer structure, map bullets to SPEC sections, note in Summary
User wants SPEC without reading codebase Skip Step 2, note that assumptions about existing code are unverified
Multiple PRDs need one SPEC Merge PRD inputs, deduplicate requirements, note source for each
Anti Patterns to Avoid
Don't restate the PRD. The SPEC adds technical depth, not a copy of requirements in different words.
Don't over specify trivial operations. CRUD with no special logic doesn't need a full algorithm section.
Don't pick technologies without context. Always check what the project already uses before suggesting new tools.
Don't design in isolation. The SPEC must fit the existing system — same patterns, same conventions, same style.
Don't leave decisions implicit. If you made a choice (e.g., "add column to existing table"), state it and say why.
Don't write implementation code. The SPEC describes contracts and behavior, not code. Pseudocode is acceptable for complex algorithms.
Relationship to Other Skills
/prd produces the PRD (input to this skill)
/prd to spec produces the SPEC (this skill)
/goal implements Issues with SPEC as the technical reference
/code to spec reverse engineers SPEC from existing code (complementary — forward vs. reverse)