Files
ralph-vibe/.claude/ralph-loop.local.md
Debian ae0165a802 Implement Phase 2: Core API Integration
- Add Claude API client with Anthropic SDK
  - Retry logic with exponential backoff (3 attempts)
  - Handle auth errors, rate limits, and server errors
  - Architecture classification with JSON parsing
  - Research query generation from architecture
- Add Perplexity API client with native fetch
  - Retry logic with exponential backoff
  - Parse responses with sources and citations
  - Execute multiple research queries
- Add prompt templates for architecture classification
- Add default query generation as fallback
- Add ArchitectureGenerator combining Claude + Perplexity
- Add 44 new tests (80 total, all passing)

All Phase 2 acceptance criteria met:
- Claude client sends prompts and retries on failure
- Perplexity client searches and parses with sources
- Architecture classification returns valid JSON
- Research queries generated (4-6 per architecture)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 12:17:42 +00:00

41 lines
1.0 KiB
Markdown

---
active: true
iteration: 1
max_iterations: 40
completion_promise: "PHASE_2_COMPLETE"
started_at: "2026-01-10T12:10:57Z"
---
Execute Phase 2 - Core API Integration from PROMPT.md.
Phase 1 is complete. Now implement Phase 2.
Read PROMPT.md for API specifications.
Read prd.json for Phase 2 features.
Phase 2 tasks:
1. Claude API client with Anthropic SDK
2. Perplexity API client with fetch
3. Architecture classification prompt and parser
4. Research query generation
5. Tests for all API clients
API Integration notes:
- Use environment variables for API keys during testing
- Implement retry logic with 3 attempts and exponential backoff
- Handle rate limits gracefully
- Parse JSON responses safely
For each feature:
1. Write tests first using mocked API calls
2. Implement the feature
3. Verify: npm run build && npm run test && npm run lint
4. Update prd.json when feature passes
5. Commit and log progress
When ALL Phase 2 features pass:
Output <promise>PHASE_2_COMPLETE</promise>
If blocked:
Output <promise>PHASE_2_BLOCKED</promise>