# Task Management This directory contains the task breakdown for building CodeNomad. ## Structure - `todo/` - Tasks waiting to be worked on - `done/` - Completed tasks (moved from todo/) ## Task Naming Convention Tasks are numbered sequentially with a descriptive name: ``` 001-project-setup.md 002-empty-state-ui.md 003-process-manager.md ... ``` ## Task Format Each task file contains: 1. **Goal** - What this task achieves 2. **Prerequisites** - What must be done first 3. **Acceptance Criteria** - Checklist of requirements 4. **Steps** - Detailed implementation guide 5. **Testing Checklist** - How to verify completion 6. **Dependencies** - What blocks/is blocked by this task 7. **Estimated Time** - Rough time estimate 8. **Notes** - Additional context ## Workflow ### Starting a Task 1. Read the task file thoroughly 2. Ensure prerequisites are met 3. Check dependencies are complete 4. Create a feature branch: `feature/task-XXX-name` ### Working on a Task 1. Follow steps in order 2. Check off acceptance criteria as you complete them 3. Run tests frequently 4. Commit regularly with descriptive messages ### Completing a Task 1. Verify all acceptance criteria met 2. Run full testing checklist 3. Update task file with any notes/changes 4. Move task from `todo/` to `done/` 5. Create PR for review ## Current Tasks ### Phase 1: Foundation (Tasks 001-005) - [x] 001 - Project Setup - [x] 002 - Empty State UI - [x] 003 - Process Manager - [x] 004 - SDK Integration - [x] 005 - Session Picker Modal ### Phase 2: Core Chat (Tasks 006-010) - [x] 006 - Instance & Session Tabs - [x] 007 - Message Display - [x] 008 - SSE Integration - [x] 009 - Prompt Input (Basic) - [x] 010 - Tool Call Rendering ### Phase 3: Essential Features (Tasks 011-015) - [x] 011 - Agent/Model Selectors - [x] 012 - Markdown Rendering - [x] 013 - Logs Tab - [ ] 014 - Error Handling - [ ] 015 - Keyboard Shortcuts ### Phase 4: Multi-Instance (Tasks 016-020) - [ ] 016 - Instance Tabs - [ ] 017 - Instance Persistence - [ ] 018 - Child Session Handling - [ ] 019 - Instance Lifecycle - [ ] 020 - Multiple SDK Clients ### Phase 5: Advanced Input (Tasks 021-025) - [ ] 021 - Slash Commands - [ ] 022 - File Attachments - [ ] 023 - Drag & Drop - [ ] 024 - Attachment Chips - [ ] 025 - Input History ### Phase 6: Polish (Tasks 026-030) - [ ] 026 - Message Actions - [ ] 027 - Search in Session - [ ] 028 - Session Management - [ ] 029 - Settings UI - [ ] 030 - Native Menus ### Phase 7: System Integration (Tasks 031-035) - [ ] 031 - System Tray - [ ] 032 - Notifications - [ ] 033 - Auto-updater - [ ] 034 - Crash Reporting - [ ] 035 - Performance Profiling ### Phase 8: Advanced (Tasks 036-040) - [ ] 036 - Virtual Scrolling - [ ] 037 - Advanced Search - [ ] 038 - Workspace Management - [ ] 039 - Theme Customization - [ ] 040 - Plugin System ## Priority Levels Tasks are prioritized as follows: - **P0 (MVP)**: Must have for first release (Tasks 001-015) - **P1 (Beta)**: Important for beta (Tasks 016-030) - **P2 (v1.0)**: Should have for v1.0 (Tasks 031-035) - **P3 (Future)**: Nice to have (Tasks 036-040) ## Dependencies Graph ``` 001 (Setup) ├─ 002 (Empty State) │ └─ 003 (Process Manager) │ └─ 004 (SDK Integration) │ └─ 005 (Session Picker) │ ├─ 006 (Tabs) │ │ └─ 007 (Messages) │ │ └─ 008 (SSE) │ │ └─ 009 (Input) │ │ └─ 010 (Tool Calls) │ │ └─ 011-015 (Essential Features) │ │ └─ 016-020 (Multi-Instance) │ │ └─ 021-025 (Advanced Input) │ │ └─ 026-030 (Polish) │ │ └─ 031-035 (System) │ │ └─ 036-040 (Advanced) ``` ## Tips - **Don't skip steps** - They're ordered for a reason - **Test as you go** - Don't wait until the end - **Keep tasks small** - Break down if >1 day of work - **Document issues** - Note any blockers or problems - **Ask questions** - If unclear, ask before proceeding ## Tracking Progress Update this file as tasks complete: - Change `[ ]` to `[x]` in the task list - Move completed task files to `done/` - Update build roadmap doc ## Getting Help If stuck on a task: 1. Review prerequisites and dependencies 2. Check related documentation in `docs/` 3. Review similar patterns in existing code 4. Ask for clarification on unclear requirements