Files
ralph-vibe/prd.json
Debian 0352e56a20 Implement Phase 3 & 4: Generation Pipeline and Polish
Phase 3 - Generation Pipeline:
- SpecificationGenerator: generates features, data models, interfaces
- PRDGenerator: generates PROMPT.md, prd.json, GUIDE.md, CLAUDE.md
- ScaffoldGenerator: creates complete project structure with git init
- Interactive prompts with Inquirer.js for user confirmation
- Full pipeline integration in new command

Phase 4 - Polish:
- Validate command for PROMPT.md files
- Standalone research command using Perplexity
- Dry-run mode with --dry-run flag
- Comprehensive README.md documentation
- Examples directory with sample outputs
- npm packaging verified (npm pack, npm publish --dry-run)

Bug fixes:
- Fix EXDEV error in atomic file writes (use same-dir temp files)
- Update Claude model to claude-sonnet-4-5-20250929

All 110 tests passing, all completion criteria met.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 01:20:13 +00:00

142 lines
4.3 KiB
JSON

{
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"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": true,
"acceptance": "The --dry-run flag shows output without creating files"
},
{
"id": "documentation",
"phase": 4,
"name": "Documentation",
"description": "README, help text, examples",
"priority": 4,
"passes": true,
"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": true,
"acceptance": "npm pack succeeds, npm publish --dry-run succeeds"
}
]
}