# Roadmap: TaskPlanner

## Milestones

- ✅ **v1.0 MVP** - Phases 1-6 (shipped 2026-02-01)
- 🚧 **v2.0 Production Operations** - Phases 7-9 (in progress)

## Overview

TaskPlanner delivers personal task and notes management with image attachments, accessible from any device via web browser. v1.0 established core functionality. v2.0 adds production-grade operations: GitOps deployment automation via ArgoCD, comprehensive observability via Prometheus/Grafana/Loki, and CI pipeline hardening with automated testing.

## Phases

**Phase Numbering:**
- Integer phases (1, 2, 3): Planned milestone work
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)

Decimal phases appear between their surrounding integers in numeric order.

<details>
<summary>v1.0 MVP (Phases 1-6) - SHIPPED 2026-02-01</summary>

- [x] **Phase 1: Foundation** - Data model, repository layer, and project structure
- [x] **Phase 2: Core CRUD** - Entry management, quick capture, and responsive UI
- [x] **Phase 3: Images** - Image attachments with mobile camera support
- [x] **Phase 4: Tags & Organization** - Tagging system with pinning and due dates
- [x] **Phase 5: Search** - Full-text search and filtering
- [x] **Phase 6: Deployment** - Docker containerization and production configuration

### Phase 1: Foundation
**Goal**: Data persistence and project structure are ready for feature development
**Plans**: 2/2 complete

### Phase 2: Core CRUD
**Goal**: Users can create, manage, and view entries with a responsive, accessible UI
**Plans**: 4/4 complete

### Phase 3: Images
**Goal**: Users can attach, view, and manage images on entries from any device
**Plans**: 4/4 complete

### Phase 4: Tags & Organization
**Goal**: Users can organize entries with tags and quick access features
**Plans**: 3/3 complete

### Phase 5: Search
**Goal**: Users can find entries through search and filtering
**Plans**: 3/3 complete

### Phase 6: Deployment
**Goal**: Application runs in Docker with persistent data and easy configuration
**Plans**: 2/2 complete

</details>

### 🚧 v2.0 Production Operations (In Progress)

**Milestone Goal:** Production-grade operations with GitOps deployment, observability stack, and CI test pipeline

- [x] **Phase 7: GitOps Foundation** - ArgoCD deployment automation with Git as source of truth ✓
- [ ] **Phase 8: Observability Stack** - Metrics, dashboards, logs, and alerting
- [ ] **Phase 9: CI Pipeline Hardening** - Automated testing before build

## Phase Details

### Phase 7: GitOps Foundation
**Goal**: Deployments are fully automated via Git - push triggers deploy, manual changes self-heal
**Depends on**: Phase 6 (running deployment)
**Requirements**: GITOPS-01, GITOPS-02, GITOPS-03, GITOPS-04
**Success Criteria** (what must be TRUE):
  1. ArgoCD server is running and accessible at argocd.tricnet.be
  2. TaskPlanner Application shows "Synced" status in ArgoCD UI
  3. Pushing a change to helm/taskplaner/values.yaml triggers automatic deployment within 3 minutes
  4. Manually deleting a pod results in ArgoCD restoring it to match Git state
  5. ArgoCD UI shows deployment history with sync status for each revision
**Plans**: 2 plans

Plans:
- [x] 07-01-PLAN.md — Register TaskPlanner Application with ArgoCD
- [x] 07-02-PLAN.md — Verify auto-sync and self-heal behavior

### Phase 8: Observability Stack
**Goal**: Full visibility into cluster and application health via metrics, logs, and dashboards
**Depends on**: Phase 7 (ArgoCD can deploy observability stack)
**Requirements**: OBS-01, OBS-02, OBS-03, OBS-04, OBS-05, OBS-06, OBS-07, OBS-08
**Success Criteria** (what must be TRUE):
  1. Grafana is accessible at grafana.tricnet.be with pre-built Kubernetes dashboards
  2. Prometheus scrapes metrics from TaskPlanner, Traefik, and k3s nodes
  3. Logs from all pods are queryable in Grafana Explore via Loki
  4. Alert fires when a pod crashes or restarts repeatedly (KubePodCrashLooping)
  5. TaskPlanner /metrics endpoint returns Prometheus-format metrics
**Plans**: 3 plans

Plans:
- [ ] 08-01-PLAN.md — TaskPlanner /metrics endpoint and ServiceMonitor
- [ ] 08-02-PLAN.md — Promtail to Alloy migration for log collection
- [ ] 08-03-PLAN.md — End-to-end observability verification

### Phase 9: CI Pipeline Hardening
**Goal**: Tests run before build - type errors and test failures block deployment
**Depends on**: Phase 8 (observability shows test/build failures)
**Requirements**: CI-01, CI-02, CI-03, CI-04, CI-05
**Success Criteria** (what must be TRUE):
  1. `npm run test:unit` runs Vitest and reports pass/fail
  2. `npm run check` runs svelte-check and catches type errors
  3. Pipeline fails before Docker build when unit tests fail
  4. Pipeline fails before Docker build when type checking fails
  5. E2E tests run in pipeline using Playwright Docker image
**Plans**: TBD

Plans:
- [ ] 09-01: Vitest setup and unit test structure
- [ ] 09-02: Pipeline integration with fail-fast behavior

## Progress

**Execution Order:**
Phases execute in numeric order: 7 -> 8 -> 9

| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|--------|-----------|
| 1. Foundation | v1.0 | 2/2 | Complete | 2026-01-29 |
| 2. Core CRUD | v1.0 | 4/4 | Complete | 2026-01-29 |
| 3. Images | v1.0 | 4/4 | Complete | 2026-01-31 |
| 4. Tags & Organization | v1.0 | 3/3 | Complete | 2026-01-31 |
| 5. Search | v1.0 | 3/3 | Complete | 2026-01-31 |
| 6. Deployment | v1.0 | 2/2 | Complete | 2026-02-01 |
| 7. GitOps Foundation | v2.0 | 2/2 | Complete ✓ | 2026-02-03 |
| 8. Observability Stack | v2.0 | 0/3 | Planned | - |
| 9. CI Pipeline Hardening | v2.0 | 0/2 | Not started | - |

---
*Roadmap created: 2026-01-29*
*v2.0 phases added: 2026-02-03*
*Phase 7 planned: 2026-02-03*
*Phase 8 planned: 2026-02-03*
*Depth: standard*
*v1.0 Coverage: 31/31 requirements mapped*
*v2.0 Coverage: 17/17 requirements mapped*
