# Requirements: TaskPlanner v1.0

**Defined:** 2026-01-29
**Shipped:** 2026-02-01
**Core Value:** Capture and find anything from any device — especially laptop. If cross-device capture with images doesn't work, nothing else matters.

## v1 Requirements (All Complete)

### Core (6/6)

- [x] **CORE-01**: User can create a new entry (task or thought)
- [x] **CORE-02**: User can edit an existing entry
- [x] **CORE-03**: User can delete an entry
- [x] **CORE-04**: User can mark entry as task or thought when creating
- [x] **CORE-05**: User can mark a task as complete
- [x] **CORE-06**: User can add notes to an existing entry

### Images (4/4)

- [x] **IMG-01**: User can attach images to an entry via file upload
- [x] **IMG-02**: User can attach images via camera capture (mobile)
- [x] **IMG-03**: User can view attached images on an entry
- [x] **IMG-04**: User can remove an image attachment

### Tags (4/4)

- [x] **TAG-01**: User can add tags to an entry
- [x] **TAG-02**: User can remove tags from an entry
- [x] **TAG-03**: User sees autocomplete suggestions from existing tags
- [x] **TAG-04**: Tags are case-insensitive ("work" = "Work" = "WORK")

### Organization (3/3)

- [x] **ORG-01**: User can pin/favorite an entry for quick access
- [x] **ORG-02**: User can set a due date on a task
- [x] **ORG-03**: Pinned entries appear in a dedicated section

### Search (4/4)

- [x] **SRCH-01**: User can search entries by text (title and content)
- [x] **SRCH-02**: User can filter entries by tag
- [x] **SRCH-03**: User can filter entries by date range
- [x] **SRCH-04**: User can filter to show only tasks or only thoughts

### Capture (3/3)

- [x] **CAPT-01**: User can quickly capture a new entry with minimal friction
- [x] **CAPT-02**: Quick capture defaults to thought (less friction than choosing)
- [x] **CAPT-03**: Quick capture is accessible from main view

### UX (3/3)

- [x] **UX-01**: UI works well on mobile devices (touch targets, layout)
- [x] **UX-02**: Font sizes are readable for older eyes (configurable or large default)
- [x] **UX-03**: UI works in any modern browser (Chrome, Firefox, Safari, Edge)

### Deployment (4/4)

- [x] **DEPLOY-01**: App runs in a Docker container
- [x] **DEPLOY-02**: Configuration via environment variables
- [x] **DEPLOY-03**: Data persists via named Docker volumes
- [x] **DEPLOY-04**: Single docker-compose.yml for easy deployment

## v2 Requirements (Deferred)

### Polish

- **POL-01**: Dark mode with theme toggle
- **POL-02**: Keyboard shortcuts for common actions
- **POL-03**: Export entries to JSON/Markdown
- **POL-04**: Drag-and-drop reorder of entries

### Advanced

- **ADV-01**: Markdown support in entry content
- **ADV-02**: Natural language date parsing ("tomorrow", "next Monday")
- **ADV-03**: Recurring tasks
- **ADV-04**: OCR text extraction from images
- **ADV-05**: Note linking with backlinks
- **ADV-06**: Offline support with sync

## Out of Scope

| Feature | Reason |
|---------|--------|
| Real-time collaboration | Personal tool, single user — massive complexity for no value |
| Multi-user authentication | Single-user by design, no need for user management |
| AI-powered categorization | Over-engineering; manual tags are clearer and simpler |
| Complex folder hierarchies | Flat + tags is more flexible; nesting creates friction |
| Kanban boards | Overhead for personal tasks; simple list is enough |
| Multiple note types | Task/thought distinction is enough; more types complicate model |
| Social features | Out of scope for self-hosted personal app |
| Heavy WYSIWYG editor | Bloated and complex; plain text or defer to Markdown |
| Push notifications | Browser notifications are unreliable and annoying |
| Version history | Storage overhead; simple edit is fine for personal use |
| Mobile native app | Web-first; browser works on all devices |

## Traceability

| Requirement | Phase | Status |
|-------------|-------|--------|
| CORE-01 | Phase 2 | Complete |
| CORE-02 | Phase 2 | Complete |
| CORE-03 | Phase 2 | Complete |
| CORE-04 | Phase 2 | Complete |
| CORE-05 | Phase 2 | Complete |
| CORE-06 | Phase 2 | Complete |
| IMG-01 | Phase 3 | Complete |
| IMG-02 | Phase 3 | Complete |
| IMG-03 | Phase 3 | Complete |
| IMG-04 | Phase 3 | Complete |
| TAG-01 | Phase 4 | Complete |
| TAG-02 | Phase 4 | Complete |
| TAG-03 | Phase 4 | Complete |
| TAG-04 | Phase 4 | Complete |
| ORG-01 | Phase 4 | Complete |
| ORG-02 | Phase 4 | Complete |
| ORG-03 | Phase 4 | Complete |
| SRCH-01 | Phase 5 | Complete |
| SRCH-02 | Phase 5 | Complete |
| SRCH-03 | Phase 5 | Complete |
| SRCH-04 | Phase 5 | Complete |
| CAPT-01 | Phase 2 | Complete |
| CAPT-02 | Phase 2 | Complete |
| CAPT-03 | Phase 2 | Complete |
| UX-01 | Phase 2 | Complete |
| UX-02 | Phase 2 | Complete |
| UX-03 | Phase 2 | Complete |
| DEPLOY-01 | Phase 6 | Complete |
| DEPLOY-02 | Phase 6 | Complete |
| DEPLOY-03 | Phase 6 | Complete |
| DEPLOY-04 | Phase 6 | Complete |

**Coverage:** 31/31 requirements complete

---
*Archived: 2026-02-01 as part of v1.0 milestone completion*
