{ "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" } ] }