- Generate prompts/phase{1-4}-prompt.txt files with phase-specific tasks
- Update GUIDE.md with phase-by-phase execution instructions
- Include both /ralph-wiggum and bash loop alternatives for each phase
- Each phase prompt references PROMPT.md and focuses on one phase only
- Add tech-stack-specific build/test/lint commands per phase
Also includes fix for JSON parsing with markdown code fences.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
166 lines
7.7 KiB
Plaintext
166 lines
7.7 KiB
Plaintext
# Progress Log - Ralph PRD Generator
|
|
# Format: [TIMESTAMP] [ITERATION] [STATUS] - [DETAILS]
|
|
# Agent: Append only, never modify previous entries
|
|
|
|
---
|
|
|
|
[2026-01-10T12:08:00Z] [1] [COMPLETE] - Phase 1 Foundation implemented
|
|
- TypeScript project with strict mode configured
|
|
- tsup build system with ESM output
|
|
- vitest testing framework (36 tests passing)
|
|
- ESLint flat config with TypeScript support
|
|
- Commander.js CLI framework with all 4 commands
|
|
- Config management for API keys (~/.ralph-generator/config.json)
|
|
- Keys stored with 600 permissions, env vars override file config
|
|
- Validation command works (tested on PROMPT.md)
|
|
- All Phase 1 acceptance criteria met:
|
|
* ralph-vibe --help shows all commands
|
|
* ralph-vibe init/new/validate/research exist
|
|
* ralph-vibe new fails gracefully without keys
|
|
|
|
[2026-01-10T12:18:00Z] [2] [COMPLETE] - Phase 2 Core API Integration implemented
|
|
- Claude API client with Anthropic SDK
|
|
* Retry logic with exponential backoff (3 attempts)
|
|
* Handles auth errors, rate limits, server errors
|
|
* Architecture classification with JSON parsing
|
|
* Research query generation
|
|
- Perplexity API client with native fetch
|
|
* Retry logic with exponential backoff
|
|
* Response parsing with sources and citations
|
|
* Research queries execution
|
|
- Prompt templates for architecture classification
|
|
- Default query generation for fallback
|
|
- ArchitectureGenerator for full pipeline
|
|
- 80 tests passing, all lint checks pass
|
|
- All Phase 2 acceptance criteria met:
|
|
* Can send prompt to Claude and receive response
|
|
* Retries on failure with exponential backoff
|
|
* Can search Perplexity and parse response with sources
|
|
* Given idea text, returns valid Architecture JSON
|
|
* Given architecture, generates 4-6 relevant search queries
|
|
|
|
[2026-01-10T21:10:00Z] [3] [COMPLETE] - Phase 3 Generation Pipeline implemented
|
|
- SpecificationGenerator: generates features, data models, interfaces from idea + research
|
|
* Parses Claude JSON response with validation
|
|
* Handles markdown code blocks in responses
|
|
* Normalizes all specification fields
|
|
- PRDGenerator: generates all PRD files
|
|
* PROMPT.md with Ralph Method structure
|
|
* prd.json with features set to passes: false
|
|
* GUIDE.md personalized to project
|
|
* CLAUDE.md with tech stack commands
|
|
* progress.txt initialized
|
|
- ScaffoldGenerator: creates complete project structure
|
|
* App-type aware directory structure (CLI, web, desktop, library)
|
|
* docs/ folder with all documentation
|
|
* agent_docs/ folder with tech stack, code patterns, testing guides
|
|
* .gitignore appropriate for tech stack
|
|
* Git initialization with initial commit
|
|
* Atomic file writes using temp + rename
|
|
- Interactive prompts with Inquirer.js
|
|
* Architecture confirmation/modification
|
|
* Research query confirmation/modification
|
|
* Specification confirmation
|
|
* Scaffold creation confirmation
|
|
- Full pipeline integration in new command
|
|
* --idea-file support for file input
|
|
* --skip-research to bypass Perplexity
|
|
* --skip-confirm for non-interactive mode
|
|
* --dry-run to preview without writing
|
|
* Graceful handling when Perplexity key missing
|
|
- 110 tests passing, all lint checks pass
|
|
- All Phase 3 acceptance criteria met:
|
|
* SpecificationGenerator produces valid Specification object
|
|
* PRD generation creates all required files with promise tags
|
|
* ralph-vibe new test-app creates complete directory with all files
|
|
* User can confirm or modify architecture classification interactively
|
|
|
|
[2026-01-10T21:15:00Z] [4] [COMPLETE] - Phase 4 Polish implemented
|
|
- Validate command fully implemented
|
|
* Checks required sections (Objective, Application Type, Tech Stack, Completion Criteria)
|
|
* Detects missing promise tags
|
|
* Detects ambiguous language (should, might, could, possibly, maybe)
|
|
* Checks for verification commands in completion criteria
|
|
* Outputs specific suggestions for fixes
|
|
* Exit code 0 if valid, 1 if issues found
|
|
- Standalone research command implemented
|
|
* Uses Perplexity API to research any topic
|
|
* Outputs formatted markdown with sources
|
|
* Supports --output flag to save to file
|
|
* Supports --verbose for detailed progress
|
|
- Dry-run mode verified working
|
|
* --dry-run flag shows structure without writing files
|
|
* Logs all files that would be created
|
|
- Comprehensive documentation created
|
|
* README.md with full installation, usage, commands, options
|
|
* All commands documented with examples
|
|
* Environment variable configuration documented
|
|
* Troubleshooting section included
|
|
- Examples directory created
|
|
* examples/test-idea.txt - sample idea for testing
|
|
* examples/sample-PROMPT.md - example generated PROMPT.md
|
|
* examples/sample-prd.json - example generated prd.json
|
|
* examples/README.md - documentation for examples
|
|
- npm packaging verified
|
|
* npm pack succeeds
|
|
* npm publish --dry-run succeeds
|
|
* prepublishOnly hook runs build, test, lint
|
|
- 110 tests passing, all lint checks pass
|
|
- All Phase 4 acceptance criteria met:
|
|
* ralph-vibe validate reports issues or confirms valid
|
|
* ralph-vibe research outputs formatted research
|
|
* --dry-run flag shows output without creating files
|
|
* README.md covers all commands, examples directory exists
|
|
* npm pack succeeds, npm publish --dry-run succeeds
|
|
|
|
[2026-01-10T21:15:00Z] [4] [PROJECT COMPLETE] - All completion criteria verified:
|
|
1. npm run build exits 0 ✓
|
|
2. npm run test exits 0 with 110 tests passing ✓
|
|
3. npm run lint exits 0 ✓
|
|
4. ralph-vibe --help displays all commands ✓
|
|
5. ralph-vibe init stores and validates keys ✓
|
|
6. ralph-vibe new generates complete scaffold ✓
|
|
7. Generated PROMPT.md passes ralph-vibe validate ✓
|
|
8. All generated files are syntactically valid ✓
|
|
9. README.md documents all commands and options ✓
|
|
10. npm publish --dry-run succeeds ✓
|
|
|
|
[2026-01-11T03:21:00Z] [5] [FIX] - Fixed JSON parsing for Claude responses wrapped in markdown code fences
|
|
- Added stripCodeFences() utility function to src/utils/files.ts
|
|
- Updated src/generators/specification.ts to use stripCodeFences
|
|
- Updated src/clients/claude.ts in 3 places:
|
|
* parseArchitectureResponse()
|
|
* parseQueriesResponse()
|
|
* generateSpec()
|
|
- The new approach handles edge cases better than the regex match approach
|
|
- Build and all 110 tests pass
|
|
|
|
[2026-01-11T04:37:00Z] [6] [FEATURE] - Phase-by-phase prompt generation
|
|
- Modified src/generators/scaffold.ts:
|
|
* Added prompts/ directory creation
|
|
* Added writePhasePrompts() method to generate 4 phase-specific prompt files
|
|
* Added generatePhasePrompt() to create individual phase prompts
|
|
* Added helper methods for build/test/lint commands per language
|
|
* Updated dry-run structure logging to include prompts/
|
|
- Modified src/generators/prd.ts:
|
|
* Rewrote generateGuideMd() to generate deterministic phase-by-phase guide
|
|
* GUIDE.md now includes 4 phases with:
|
|
- /ralph-wiggum:ralph-loop command for each phase
|
|
- Verification command after each phase
|
|
- Bash loop alternative for each phase
|
|
* Still includes full project execution as alternative
|
|
- Updated test in src/__tests__/prd.test.ts to match new GUIDE.md format
|
|
- Generated files:
|
|
* prompts/phase1-prompt.txt - Foundation phase
|
|
* prompts/phase2-prompt.txt - Core phase
|
|
* prompts/phase3-prompt.txt - Integration phase
|
|
* prompts/phase4-prompt.txt - Polish phase
|
|
- Each phase prompt includes:
|
|
* Reference to PROMPT.md for context
|
|
* Phase-specific tasks from prd.json
|
|
* Working instructions with tech-stack-specific commands
|
|
* Phase-specific completion promise (PHASE_X_COMPLETE)
|
|
- Build succeeds, all 110 tests pass, lint clean
|
|
- Tested with ralph-vibe new word-counter - all phase files generated correctly
|
|
|