Initial Ralph scaffold for ralph-vibe
This commit is contained in:
141
prd.json
Normal file
141
prd.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"project": "ralph-prd-generator",
|
||||
"version": "1.0.0",
|
||||
"features": [
|
||||
{
|
||||
"id": "config-management",
|
||||
"phase": 1,
|
||||
"name": "API Key Management",
|
||||
"description": "Store and retrieve API keys securely",
|
||||
"priority": 1,
|
||||
"passes": false,
|
||||
"acceptance": "ralph-vibe init stores keys and ralph-vibe new fails gracefully without keys"
|
||||
},
|
||||
{
|
||||
"id": "cli-framework",
|
||||
"phase": 1,
|
||||
"name": "CLI Framework",
|
||||
"description": "Commander.js setup with all commands stubbed",
|
||||
"priority": 2,
|
||||
"passes": false,
|
||||
"acceptance": "ralph-vibe --help shows all commands, ralph-vibe init/new/validate/research exist"
|
||||
},
|
||||
{
|
||||
"id": "claude-client",
|
||||
"phase": 2,
|
||||
"name": "Claude API Client",
|
||||
"description": "Anthropic SDK integration with retry logic",
|
||||
"priority": 1,
|
||||
"passes": false,
|
||||
"acceptance": "Can send prompt to Claude and receive response, retries on failure"
|
||||
},
|
||||
{
|
||||
"id": "perplexity-client",
|
||||
"phase": 2,
|
||||
"name": "Perplexity API Client",
|
||||
"description": "Perplexity REST API integration",
|
||||
"priority": 2,
|
||||
"passes": false,
|
||||
"acceptance": "Can search Perplexity and parse response with sources"
|
||||
},
|
||||
{
|
||||
"id": "architecture-classification",
|
||||
"phase": 2,
|
||||
"name": "Architecture Classification",
|
||||
"description": "Claude prompt for classifying app type",
|
||||
"priority": 3,
|
||||
"passes": false,
|
||||
"acceptance": "Given idea text, returns valid Architecture JSON"
|
||||
},
|
||||
{
|
||||
"id": "research-queries",
|
||||
"phase": 2,
|
||||
"name": "Research Query Generation",
|
||||
"description": "Generate Perplexity queries from architecture",
|
||||
"priority": 4,
|
||||
"passes": false,
|
||||
"acceptance": "Given architecture, generates 4-6 relevant search queries"
|
||||
},
|
||||
{
|
||||
"id": "spec-generation",
|
||||
"phase": 3,
|
||||
"name": "Specification Generation",
|
||||
"description": "Generate features, data models, interfaces from idea plus research",
|
||||
"priority": 1,
|
||||
"passes": false,
|
||||
"acceptance": "Produces valid Specification object with all required fields"
|
||||
},
|
||||
{
|
||||
"id": "prd-generation",
|
||||
"phase": 3,
|
||||
"name": "PRD Generation",
|
||||
"description": "Generate PROMPT.md, prd.json, GUIDE.md",
|
||||
"priority": 2,
|
||||
"passes": false,
|
||||
"acceptance": "Generated PROMPT.md contains all required sections and promise tags"
|
||||
},
|
||||
{
|
||||
"id": "scaffold-generation",
|
||||
"phase": 3,
|
||||
"name": "Project Scaffold",
|
||||
"description": "Create directory structure and all files",
|
||||
"priority": 3,
|
||||
"passes": false,
|
||||
"acceptance": "ralph-vibe new test-app creates complete directory with all files"
|
||||
},
|
||||
{
|
||||
"id": "interactive-flow",
|
||||
"phase": 3,
|
||||
"name": "Interactive Prompts",
|
||||
"description": "Inquirer.js prompts for user confirmation",
|
||||
"priority": 4,
|
||||
"passes": false,
|
||||
"acceptance": "User can confirm or modify architecture classification interactively"
|
||||
},
|
||||
{
|
||||
"id": "validation-command",
|
||||
"phase": 4,
|
||||
"name": "Validate Command",
|
||||
"description": "Validate existing PROMPT.md files",
|
||||
"priority": 1,
|
||||
"passes": false,
|
||||
"acceptance": "ralph-vibe validate ./PROMPT.md reports issues or confirms valid"
|
||||
},
|
||||
{
|
||||
"id": "research-command",
|
||||
"phase": 4,
|
||||
"name": "Standalone Research",
|
||||
"description": "Research a topic without full generation",
|
||||
"priority": 2,
|
||||
"passes": false,
|
||||
"acceptance": "ralph-vibe research topic outputs formatted research"
|
||||
},
|
||||
{
|
||||
"id": "dry-run",
|
||||
"phase": 4,
|
||||
"name": "Dry Run Mode",
|
||||
"description": "Show what would be generated without writing",
|
||||
"priority": 3,
|
||||
"passes": false,
|
||||
"acceptance": "The --dry-run flag shows output without creating files"
|
||||
},
|
||||
{
|
||||
"id": "documentation",
|
||||
"phase": 4,
|
||||
"name": "Documentation",
|
||||
"description": "README, help text, examples",
|
||||
"priority": 4,
|
||||
"passes": false,
|
||||
"acceptance": "README.md covers all commands, examples directory exists"
|
||||
},
|
||||
{
|
||||
"id": "packaging",
|
||||
"phase": 4,
|
||||
"name": "npm Packaging",
|
||||
"description": "Package ready for npm publish",
|
||||
"priority": 5,
|
||||
"passes": false,
|
||||
"acceptance": "npm pack succeeds, npm publish --dry-run succeeds"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user