# Implementation TODO
Track implementation progress across all phases.
---
## Phase 1: MVP - Core File Operations (Week 1)
### Tools Implementation
- [ ] `register_project` - Register project directory
- [ ] Input validation (path exists, valid ID format)
- [ ] Projects.json read/write
- [ ] Error handling (duplicate ID, invalid path)
- [ ] Unit tests
- [ ] `list_projects` - List all projects
- [ ] Read from projects.json
- [ ] Filter by active/inactive
- [ ] Format output
- [ ] Unit tests
- [ ] `write_to_project` - Write file to project
- [ ] Path validation (within project root)
- [ ] Directory creation
- [ ] Overwrite protection
- [ ] Unit tests
- [ ] `read_from_project` - Read file from project
- [ ] Path validation
- [ ] Line range support
- [ ] Error handling (file not found)
- [ ] Unit tests
### Services Implementation
- [ ] ProjectManager service
- [ ] Load/save projects.json
- [ ] CRUD operations for projects
- [ ] Project lookup by ID
- [ ] FileOperations service
- [ ] Safe file read/write
- [ ] Path validation utilities
- [ ] Directory traversal prevention
### Slash Commands
- [ ] `/projects` command handler
- [ ] `/project {id}` command handler
- [ ] `/save {path}` command handler
### Testing
- [ ] Unit tests for all tools (>80% coverage)
- [ ] Integration tests for file operations
- [ ] Path security tests
### Documentation
- [ ] Update README with Phase 1 features
- [ ] Add usage examples
- [ ] Document configuration
**Status**: Not started
**Target**: End of Week 1
---
## Phase 2: Claude Code Integration (Week 2)
### Tools Implementation
- [ ] `invoke_claude_code` - Invoke CLI
- [ ] Process spawning
- [ ] Stdout/stderr capture
- [ ] Streaming support
- [ ] Timeout handling
- [ ] Result parsing
- [ ] Unit tests
### Services Implementation
- [ ] ClaudeCodeInvoker service
- [ ] CLI detection
- [ ] Process management
- [ ] Output parsing
- [ ] Stream handling
### Slash Commands
- [ ] `/implement {task}` command handler
### Testing
- [ ] Unit tests with mocked processes
- [ ] Integration tests with mock CLI
- [ ] Timeout tests
- [ ] Error handling tests
### Discovery
- [ ] Test Claude Code CLI API
- [ ] Document actual flags/behavior
- [ ] Update implementation based on findings
**Status**: Not started
**Target**: End of Week 2
---
## Phase 3: State Management (Week 3)
### Tools Implementation
- [ ] `create_checkpoint` - Save conversation state
- [ ] Session state read/write
- [ ] Atomic writes
- [ ] Checkpoint history
- [ ] Unit tests
- [ ] `get_project_status` - Get project status
- [ ] Read session state
- [ ] Aggregate task history
- [ ] Format output
- [ ] Unit tests
### Services Implementation
- [ ] StateManager service
- [ ] Session state CRUD
- [ ] Atomic write operations
- [ ] Checkpoint management
- [ ] Task history tracking
### Slash Commands
- [ ] `/checkpoint {summary}` command handler
- [ ] `/status` command handler
### Testing
- [ ] Atomic write tests
- [ ] Concurrent access tests
- [ ] State corruption tests
- [ ] Integration tests
**Status**: Not started
**Target**: End of Week 3
---
## Phase 4: Advanced Features (Week 4)
### Resources Implementation
- [ ] `claude-code://{projectId}/files` resource
- [ ] File tree generation
- [ ] Caching
- [ ] Performance optimization
- [ ] `claude-code://{projectId}/session` resource
- [ ] Session state exposure
- [ ] `claude-code://{projectId}/docs` resource
- [ ] Doc aggregation
### Prompts Implementation
- [ ] `plan-and-implement` prompt
- [ ] `save-to-project` prompt
- [ ] `continue-in-cli` prompt
- [ ] `project-status` prompt
### Git Integration
- [ ] Add git status to `get_project_status`
- [ ] Branch detection
- [ ] Uncommitted changes count
- [ ] Error handling for non-git projects
### Performance
- [ ] File tree indexing
- [ ] Resource caching
- [ ] Lazy loading
- [ ] Benchmark tests (100k files)
### Testing
- [ ] Resource tests
- [ ] Prompt tests
- [ ] Performance benchmarks
- [ ] Large project tests
**Status**: Not started
**Target**: End of Week 4
---
## Cross-Cutting Concerns
### Documentation
- [ ] API documentation (JSDoc)
- [ ] User guide
- [ ] Troubleshooting guide
- [ ] Architecture documentation
### Error Handling
- [ ] Consistent error codes
- [ ] User-friendly error messages
- [ ] Logging infrastructure
- [ ] Error recovery
### Performance
- [ ] Response time monitoring
- [ ] Memory profiling
- [ ] Optimization passes
- [ ] Performance benchmarks
### Security
- [ ] Path traversal prevention
- [ ] Permission checks
- [ ] Input validation
- [ ] Security audit
---
## Blockers & Questions
### Current Blockers
- None yet
### Open Questions
1. Claude Code CLI API - what flags/format does it actually use?
2. Streaming protocol - SSE, websockets, or polling?
3. Git integration - should we use simple-git or spawn git commands?
4. VS Code extension - how should it consume state files?
---
## Notes
### Phase 1 Notes
- Start here! Focus on register_project first
- Get basic file operations working
- Don't worry about optimization yet
### Future Enhancements
- Multi-project operations
- Remote project support
- Webhook integrations
- Custom slash commands
- Project templates
---
Last Updated: 2024-12-20