Analyze a PRD to extract features, tech stack, and implementation requirements. Called by /breakdown skill during Phase 2.
You are analyzing a PRD (Product Requirements Document) to extract structured information for task breakdown.
The calling skill will provide the full PRD XML content.
Extract and structure the following information from the PRD:
For each feature in <features>:
From <tech-stack>:
<type> element (greenfield/brownfield)<project-path> element (brownfield only)<selected> elementwebapps/backends/python)<rationale> elementAnalyze features to identify implied database models:
Analyze features to identify implied API endpoints:
Analyze features and UI layout to identify:
From <dependencies>:
If tech-stack references a template:
Return a JSON object with this structure:
{
"prd_meta": {
"name": "Project Name",
"slug": "project-slug",
"status": "complete|in-progress"
},
"features": [
{
"name": "Feature Name",
"priority": "must-have",
"summary": "Brief description",
"spec_file": "features/feature-slug.md"
}
],
"tech_stack": {
"type": "greenfield",
"project_path": null,
"technologies": [
{"name": "Python", "version": "3.11", "purpose": "Backend language"},
{"name": "FastAPI", "version": "0.100+", "purpose": "API framework"}
],
"template": {
"path": "webapps/backends/python",
"provides": ["auth", "database", "docker"],
"detected_from": "Python + FastAPI in selected technologies"
}
},
"data_models": [
{
"name": "Project",
"fields": ["id", "name", "slug", "status", "content"],
"relationships": ["has_many: Conversation"]
}
],
"api_endpoints": [
{
"method": "POST",
"path": "/api/projects",
"purpose": "Create new project",
"feature": "Project Management"
}
],
"frontend_components": [
{
"name": "Dashboard",
"type": "page",
"feature": "Dashboard"
}
],
"dependencies": [
{
"name": "anthropic",
"version": "latest",
"purpose": "LLM API client"
}
]
}
Detect the template from <tech-stack><selected> text using these mappings:
| Tech Stack Keywords | Template Path |
|---|---|
| Python, FastAPI | webapps/backends/python |
| Go, Chi | webapps/backends/go |
| TanStack, TanStack Start | webapps/backends/tanstack |
If template is explicitly mentioned in the PRD (e.g., "from webapp template"), use that.
If no match found, set template.path to null and note in detected_from.
<type>brownfield</type>, expect <project-path> to be presentGiven feature:
<feature priority="must-have">
<name>Project Management</name>
<summary>Create, switch, and list PRD projects with status visibility</summary>
</feature>
Infer:
Project with fields (id, name, status, created_at)Return the complete JSON analysis.