Files
poimen-workflows/README_IMPLEMENTATION.md
T

361 lines
9.0 KiB
Markdown
Raw Normal View History

# Poimen Routing Workflow - Complete Implementation Guide
## 📚 DOCUMENTATION STRUCTURE
You now have **4 complete documents** that form a complete specification:
### 1. `ROUTING_WORKFLOW_SPEC.md` (30+ KB)
**The Technical Specification** - Everything about the system design
Contains:
- ActivityKnowledgeBase.json format
- llm-router Activity (intelligent workflow generator)
- RoutingWorkflow (generic executor)
- Go type definitions (copy-paste ready)
- Implementation architecture
- State types (Task, Pass, Fail)
- CronWorkflowSpec (scheduled workflows)
- Execution flow examples
- Cron syntax reference
**When to use**: Building the system, understanding architecture
---
### 2. `CRON_JOBS_QUICK_REFERENCE.md` (4 KB)
**Quick Reference for Cron Jobs**
Contains:
- Cron syntax examples
- How llm-router detects scheduled jobs
- Execution tracking
- API endpoints for cron
- One-time vs Cron comparison
**When to use**: Testing cron features, quick lookup
---
### 3. `IMPLEMENTATION_TASKS.md` (30+ KB)
**The Complete Task Breakdown** - What to build, in what order
Contains:
- 27 specific, actionable tasks
- Effort estimates per task (2-5 hours each)
- Acceptance criteria for each task
- Dependencies between tasks
- Timeline (3 weeks, 1-2 engineers)
- Resource allocation
- Blockers to watch
- Success criteria
**Structure**:
```
Phase 1: Foundation (8-10 hours)
├─ Task 1.1: Types
├─ Task 1.2: Knowledge Base
├─ Task 1.3: KB Loader
└─ Task 1.4: Validator
Phase 2: LLM-Router (12-15 hours)
├─ Task 2.1: JSONPath Resolver
├─ Task 2.2: Activity Skeleton
├─ Task 2.3: Intent Analysis
├─ Task 2.4: Spec Builder
└─ Task 2.5: Cron Builder
Phase 3: RoutingWorkflow (15-18 hours)
├─ Task 3.1-3.6: Executors & State Machine
Phase 4: API/CLI (12-15 hours)
├─ Task 4.1-4.4: Handlers, Commands, Validation
Phase 5: Testing (8-12 hours)
├─ Task 5.1-5.4: Unit, Integration, E2E, Load tests
Phase 6: Docs & Deployment (5-8 hours)
├─ Task 6.1-6.4: API.md, CLI.md, Deployment.md, User Guide
```
**When to use**: Planning sprints, assigning work, tracking progress
---
### 4. `DESIGN_MASTER_REVIEW.md` (25+ KB)
**Executive Summary for Stakeholders**
Contains:
- Problem/solution
- 3 patterns (Sequential, Await-Task-Complete, Retry)
- 3 entry points (CLI, API, Legacy)
- Phases 1-5 (52-58 hours)
- KMSvc questions (Q1-Q6)
- Risks & mitigations
- Success criteria
- Approval checklist
**When to use**: Stakeholder review, getting buy-in, architecture approval
---
## 🎯 THE ARCHITECTURE AT A GLANCE
```
User Message: "Analyze repo for security and quality every day at 2 AM"
[llm-router Activity]
Reads: ActivityKnowledgeBase.json
Uses LLM to understand intent
Decides: Clone → AnalyzeCode → SecurityScan → Combine → Notify
Decides timeouts, retries from knowledge base
Detects schedule: "0 2 * * *"
Generates: CronWorkflowSpec
[RoutingWorkflow] (Generic Executor)
Registers with Temporal cron: "0 2 * * *"
Every day at 2 AM:
1. Clone repo
2. Analyze code (timeout 10m, retry 3x if flaky)
3. Security scan (timeout 15m, retry 2x)
4. Combine results
5. Send notification
Tracks each execution
[Results]
Full execution history
Can check status anytime
```
---
## ✨ KEY FEATURES
| Feature | Status | Docs | Tasks |
|---------|--------|------|-------|
| One-time workflows | ✅ | ROUTING_WORKFLOW_SPEC.md | 2.1-2.4, 3.x, 4.x |
| Scheduled workflows (cron) | ✅ | CRON_JOBS_QUICK_REFERENCE.md | 2.5, 3.4, 5.x |
| Intelligent routing (LLM) | ✅ | ROUTING_WORKFLOW_SPEC.md Part 2 | 2.x |
| Smart timeouts | ✅ | ROUTING_WORKFLOW_SPEC.md | 1.2, 2.4 |
| Smart retries | ✅ | ROUTING_WORKFLOW_SPEC.md | 1.2, 2.4 |
| Error handling | ✅ | ROUTING_WORKFLOW_SPEC.md | 3.4 |
| Parameter chaining | ✅ | ROUTING_WORKFLOW_SPEC.md | 2.1 |
| Temporal durability | ✅ | ROUTING_WORKFLOW_SPEC.md | 3.4 |
| HTTP API | ✅ | ROUTING_WORKFLOW_SPEC.md | 4.1-4.4 |
| CLI | ✅ | CRON_JOBS_QUICK_REFERENCE.md | 4.2 |
| Execution tracking | ✅ | CRON_JOBS_QUICK_REFERENCE.md | 5.x |
---
## 📋 QUICK START FOR IMPLEMENTATION
### Week 1: Foundation + LLM-Router
```
Day 1-2 (Mon-Tue):
Task 1.1: Go types (2h)
Task 1.2: Knowledge base JSON (3h)
Task 1.3: KB loader (2h)
Task 1.4: Validator (3h)
→ Deliverable: Core data structures working
Day 3-5 (Wed-Fri):
Task 2.1: JSONPath resolver (3h)
Task 2.2: Activity skeleton (2h)
Task 2.3: LLM intent analysis (5h)
Task 2.4: Spec builder (4h)
Task 2.5: Cron builder (2h)
→ Deliverable: llm-router generates valid specs
```
### Week 2: RoutingWorkflow + API/CLI
```
Day 1-3 (Mon-Wed):
Task 3.1-3.6: RoutingWorkflow & executors (15-18h)
Task 3.5: Register in worker
→ Deliverable: Workflows execute, can submit via API
Day 4-5 (Thu-Fri):
Task 4.1: API handlers (4h)
Task 4.2: CLI commands (5h)
Task 4.3: Server bootstrap (2h)
Task 4.4: Validation (2h)
→ Deliverable: Full HTTP API + CLI working
```
### Week 3: Testing + Documentation
```
Day 1-3 (Mon-Wed):
Task 5.1-5.4: All tests (8-12h)
→ Deliverable: >90% coverage, all tests pass
Day 4-5 (Thu-Fri):
Task 6.1-6.4: Documentation (5-8h)
→ Deliverable: Complete docs, ready to ship
```
---
## 🚀 HOW TO START TODAY
### Step 1: Read & Understand (1-2 hours)
1. Read `ROUTING_WORKFLOW_SPEC.md` (main spec)
2. Read `IMPLEMENTATION_TASKS.md` (what to build)
3. Scan `CRON_JOBS_QUICK_REFERENCE.md` (understand cron)
### Step 2: Assign Tasks
1. Engineer 1: Tasks 1.1-1.4, 2.1-2.5, 3.1-3.6
2. Engineer 2: Tasks 4.1-4.4, 5.1-5.4, 6.1-6.4
### Step 3: Start Building
1. Begin with Task 1.1 (types.go)
2. Follow dependency order
3. Daily sync on blockers
### Step 4: Gate Each Phase
- Phase 1 done? → Start Phase 2
- Phase 2 done? → Start Phase 3
- etc.
---
## 📊 EFFORT SUMMARY
| Phase | Hours | Duration | Parallel |
|-------|-------|----------|----------|
| Phase 1: Foundation | 8-10 | Mon-Tue | No |
| Phase 2: LLM-Router | 12-15 | Wed-Fri + Mon | No |
| Phase 3: RoutingWorkflow | 15-18 | Tue-Thu | Can overlap w/ Phase 4 |
| Phase 4: API/CLI | 12-15 | Fri-Tue | Can overlap w/ Phase 3 |
| Phase 5: Testing | 8-12 | Wed-Fri | Sequential |
| Phase 6: Docs | 5-8 | Fri-Mon | Parallel w/ Phase 5 |
| **TOTAL** | **60-70** | **3-4 weeks** | **2 engineers** |
---
## ✅ SUCCESS CRITERIA
**Phase 1 Complete**:
- All types compile
- Knowledge base loads
- Validator catches errors
- All unit tests pass
**Phase 2 Complete**:
- llm-router generates valid specs
- JSONPath resolution works
- Cron detection works
- Integration tests pass
**Phase 3 Complete**:
- RoutingWorkflow executes any spec
- Error handling works
- State machine flow correct
- Registered in worker
**Phase 4 Complete**:
- HTTP API working (all endpoints)
- CLI working (all commands)
- Input validation
- Can submit and check status
**Phase 5 Complete**:
- >90% code coverage
- All scenarios pass
- Performance targets met
- No flaky tests
**Phase 6 Complete**:
- API documentation complete
- CLI documentation complete
- Deployment guide complete
- User guide with examples
---
## 🔗 FILE LOCATIONS
```
Core Specification:
~/workplace/Poimen/workflows/ROUTING_WORKFLOW_SPEC.md
Task Breakdown:
~/workplace/Poimen/workflows/IMPLEMENTATION_TASKS.md
Cron Reference:
~/workplace/Poimen/workflows/CRON_JOBS_QUICK_REFERENCE.md
Stakeholder Review:
~/workplace/Poimen/workflows/DESIGN_MASTER_REVIEW.md
This README:
~/workplace/Poimen/workflows/README_IMPLEMENTATION.md
```
---
## 💡 TIPS FOR SUCCESS
1. **Start with types** (Task 1.1)
- Everything depends on these
- Make them flexible
- Good JSON schema helps
2. **Knowledge base is critical** (Task 1.2)
- LLM decisions are based on this
- Make it comprehensive
- Document each activity well
3. **Test llm-router early** (Task 2.3)
- This is highest risk
- Test with real LLM calls
- Validate output quality
4. **RoutingWorkflow is the heart** (Task 3.4)
- Make sure state machine is solid
- Test error paths thoroughly
- Performance matters
5. **API/CLI can be simple** (Tasks 4.x)
- Just thin wrappers
- Focus on DX (developer experience)
- Good error messages
6. **Test everything** (Phase 5)
- Unit tests catch bugs early
- Integration tests find edge cases
- E2E tests validate full flow
- Load tests validate performance
---
## 🎓 LEARNING RESOURCES
- **Temporal**: https://docs.temporal.io/
- **Cron syntax**: https://crontab.guru/
- **JSONPath**: https://goessner.net/articles/JsonPath/
- **Go workflow patterns**: https://golang.org/pkg/workflow
---
## 📞 DECISION MAKER'S CHECKLIST
Before starting implementation:
- [ ] Do we have LLM access? (for llm-router)
- [ ] Is Temporal deployed? (task queue "poimen-taskqueue")
- [ ] Are activities registered? (CloneRepoActivity, etc)
- [ ] Do we have memory service? (for LLM calls)
- [ ] Team aligned on architecture?
- [ ] Timeline acceptable? (3-4 weeks)
- [ ] Resources allocated? (2 engineers)
All yes? → Ready to build! 🚀
---
**This is a complete, implementable specification.**
Start with Phase 1, Task 1.1 today!