docs: start milestone v1.2 Polish & Task Management
Define requirements (9 total: task delete, creation UX, cleanup), create roadmap (phases 8-10), and update PROJECT.md with new milestone goals. Room cover photos dropped from scope. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,16 @@ A local-first Flutter app for organizing household chores, built for personal/co
|
|||||||
|
|
||||||
Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
|
Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
|
||||||
|
|
||||||
|
## Current Milestone: v1.2 Polish & Task Management
|
||||||
|
|
||||||
|
**Goal:** Add task delete with smart soft/hard behavior, rework the task creation frequency picker for better UX, and clean up dead code from v1.0.
|
||||||
|
|
||||||
|
**Target features:**
|
||||||
|
- Delete action in task edit form (hard delete if never completed, soft delete if completed at least once)
|
||||||
|
- Intuitive "Every [N] [unit]" frequency picker replacing the flat preset chip grid
|
||||||
|
- Common frequency shortcuts (daily, weekly, biweekly, monthly) as quick-select
|
||||||
|
- Dead code cleanup (orphaned v1.0 daily plan files)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
### Validated
|
### Validated
|
||||||
@@ -27,9 +37,11 @@ Users can see what needs doing today, mark it done, and trust the app to schedul
|
|||||||
|
|
||||||
### Active
|
### Active
|
||||||
|
|
||||||
- [ ] Data export/import (JSON)
|
- [ ] Task delete with smart soft/hard behavior
|
||||||
- [ ] English localization
|
- [ ] Task creation frequency picker UX rework
|
||||||
- [ ] Room cover photos from camera or gallery
|
- [ ] Dead code cleanup (v1.0 daily plan files)
|
||||||
|
- [ ] Data export/import (JSON) — deferred
|
||||||
|
- [ ] English localization — deferred
|
||||||
|
|
||||||
### Out of Scope
|
### Out of Scope
|
||||||
|
|
||||||
@@ -46,6 +58,7 @@ Users can see what needs doing today, mark it done, and trust the app to schedul
|
|||||||
- Weekly/monthly calendar views — date strip is sufficient for task app
|
- Weekly/monthly calendar views — date strip is sufficient for task app
|
||||||
- Drag tasks between days — tasks auto-schedule based on frequency
|
- Drag tasks between days — tasks auto-schedule based on frequency
|
||||||
- Calendar sync (Google/Apple) — contradicts local-first, offline-only design
|
- Calendar sync (Google/Apple) — contradicts local-first, offline-only design
|
||||||
|
- Room cover photos from camera or gallery — dropped, clean design preferred
|
||||||
- Statistics & insights dashboard — v2.0
|
- Statistics & insights dashboard — v2.0
|
||||||
- Onboarding wizard — v2.0
|
- Onboarding wizard — v2.0
|
||||||
- Custom accent color picker — v2.0
|
- Custom accent color picker — v2.0
|
||||||
@@ -90,4 +103,4 @@ Users can see what needs doing today, mark it done, and trust the app to schedul
|
|||||||
| PopupMenuButton for sort UI | Material 3 AppBar action pattern, overlay menu | Good — clean integration in both HomeScreen and TaskListScreen AppBars |
|
| PopupMenuButton for sort UI | Material 3 AppBar action pattern, overlay menu | Good — clean integration in both HomeScreen and TaskListScreen AppBars |
|
||||||
|
|
||||||
---
|
---
|
||||||
*Last updated: 2026-03-16 after v1.1 milestone completed*
|
*Last updated: 2026-03-18 after v1.2 milestone started*
|
||||||
|
|||||||
91
.planning/REQUIREMENTS.md
Normal file
91
.planning/REQUIREMENTS.md
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# Requirements: HouseHoldKeaper
|
||||||
|
|
||||||
|
**Defined:** 2026-03-18
|
||||||
|
**Core Value:** Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
|
||||||
|
|
||||||
|
## v1.2 Requirements
|
||||||
|
|
||||||
|
Requirements for milestone v1.2 Polish & Task Management. Each maps to roadmap phases.
|
||||||
|
|
||||||
|
### Task Delete
|
||||||
|
|
||||||
|
- [ ] **DEL-01**: User can delete a task from the task edit form via a clearly visible delete action
|
||||||
|
- [ ] **DEL-02**: Deleting a task that has never been completed removes it from the database entirely (hard delete)
|
||||||
|
- [ ] **DEL-03**: Deleting a task that has been completed at least once deactivates it instead (soft delete) — task is hidden from all active views but preserved in the database for future statistics
|
||||||
|
- [ ] **DEL-04**: User sees a confirmation before deleting/deactivating a task
|
||||||
|
|
||||||
|
### Task Creation UX
|
||||||
|
|
||||||
|
- [ ] **TCX-01**: Frequency picker presents an intuitive "Every [N] [unit]" interface instead of a flat grid of preset chips
|
||||||
|
- [ ] **TCX-02**: Common frequencies (daily, weekly, biweekly, monthly) are available as quick-select shortcuts without scrolling through all options
|
||||||
|
- [ ] **TCX-03**: User can set any arbitrary interval (e.g., every 5 days, every 3 weeks, every 2 months) without needing to select "Custom" first
|
||||||
|
- [ ] **TCX-04**: The frequency picker preserves all existing interval types and scheduling behavior (calendar-anchored monthly/quarterly/yearly with anchor memory)
|
||||||
|
|
||||||
|
### Cleanup
|
||||||
|
|
||||||
|
- [ ] **CLN-01**: Dead code from v1.0 daily plan (daily_plan_providers.dart, daily_plan_task_row.dart, progress_card.dart) is removed without breaking notification service (DailyPlanDao must be preserved)
|
||||||
|
|
||||||
|
## Future Requirements
|
||||||
|
|
||||||
|
Deferred to future release. Tracked but not in current roadmap.
|
||||||
|
|
||||||
|
### Data
|
||||||
|
|
||||||
|
- **DATA-01**: User can export all data as JSON
|
||||||
|
- **DATA-02**: User can import data from JSON backup
|
||||||
|
|
||||||
|
### Localization
|
||||||
|
|
||||||
|
- **LOC-01**: User can switch UI language to English
|
||||||
|
|
||||||
|
### v2.0
|
||||||
|
|
||||||
|
- **ONB-01**: Onboarding wizard for first-time users
|
||||||
|
- **ACC-01**: User can pick a custom accent color for the app theme
|
||||||
|
- **STAT-01**: Statistics & insights dashboard showing task completion trends
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
Explicitly excluded. Documented to prevent scope creep.
|
||||||
|
|
||||||
|
| Feature | Reason |
|
||||||
|
|---------|--------|
|
||||||
|
| Room cover photos from camera or gallery | Dropped — clean design system preferred |
|
||||||
|
| User accounts & cloud sync | Local-only by design |
|
||||||
|
| Leaderboards & points ranking | Not a gamification app |
|
||||||
|
| Subscription model / in-app purchases | Free forever |
|
||||||
|
| Family profile sharing across devices | Single-device app |
|
||||||
|
| Server-side infrastructure | Zero backend |
|
||||||
|
| AI-powered task suggestions | Overkill for curated templates |
|
||||||
|
| Per-task push notifications | Daily summary is more effective |
|
||||||
|
| Firebase or any Google cloud services | Contradicts local-first design |
|
||||||
|
| Real-time cross-device sync | Potential future self-hosted feature |
|
||||||
|
| Tablet-optimized layout | Future enhancement |
|
||||||
|
| Weekly/monthly calendar views | Date strip is sufficient for task app |
|
||||||
|
| Drag tasks between days | Tasks auto-schedule based on frequency |
|
||||||
|
| Calendar sync (Google/Apple) | Contradicts local-first, offline-only design |
|
||||||
|
|
||||||
|
## Traceability
|
||||||
|
|
||||||
|
Which phases cover which requirements. Updated during roadmap creation.
|
||||||
|
|
||||||
|
| Requirement | Phase | Status |
|
||||||
|
|-------------|-------|--------|
|
||||||
|
| DEL-01 | Phase 8 | Planned |
|
||||||
|
| DEL-02 | Phase 8 | Planned |
|
||||||
|
| DEL-03 | Phase 8 | Planned |
|
||||||
|
| DEL-04 | Phase 8 | Planned |
|
||||||
|
| TCX-01 | Phase 9 | Planned |
|
||||||
|
| TCX-02 | Phase 9 | Planned |
|
||||||
|
| TCX-03 | Phase 9 | Planned |
|
||||||
|
| TCX-04 | Phase 9 | Planned |
|
||||||
|
| CLN-01 | Phase 10 | Planned |
|
||||||
|
|
||||||
|
**Coverage:**
|
||||||
|
- v1.2 requirements: 9 total
|
||||||
|
- Mapped to phases: 9
|
||||||
|
- Unmapped: 0
|
||||||
|
|
||||||
|
---
|
||||||
|
*Requirements defined: 2026-03-18*
|
||||||
|
*Last updated: 2026-03-18 after roadmap creation (phases 8-10)*
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
- ✅ **v1.0 MVP** — Phases 1-4 (shipped 2026-03-16)
|
- ✅ **v1.0 MVP** — Phases 1-4 (shipped 2026-03-16)
|
||||||
- ✅ **v1.1 Calendar & Polish** — Phases 5-7 (shipped 2026-03-16)
|
- ✅ **v1.1 Calendar & Polish** — Phases 5-7 (shipped 2026-03-16)
|
||||||
|
- **v1.2 Polish & Task Management** — Phases 8-10 (in progress)
|
||||||
|
|
||||||
## Phases
|
## Phases
|
||||||
|
|
||||||
@@ -30,6 +31,46 @@ See `milestones/v1.1-ROADMAP.md` for full phase details.
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
**v1.2 Polish & Task Management (Phases 8-10):**
|
||||||
|
|
||||||
|
- [ ] **Phase 8: Task Delete** - Add smart delete action to tasks — hard delete if never completed, soft delete (deactivate) if completed at least once
|
||||||
|
- [ ] **Phase 9: Task Creation UX** - Rework the frequency picker from flat preset chips to an intuitive "Every N units" interface with quick-select shortcuts
|
||||||
|
- [ ] **Phase 10: Dead Code Cleanup** - Remove orphaned v1.0 daily plan files and verify no regressions
|
||||||
|
|
||||||
|
## Phase Details
|
||||||
|
|
||||||
|
### Phase 8: Task Delete
|
||||||
|
**Goal**: Users can remove tasks they no longer need, with smart preservation of completion history for future statistics
|
||||||
|
**Depends on**: Phase 7 (v1.1 shipped — calendar, history, and sorting all in place)
|
||||||
|
**Requirements**: DEL-01, DEL-02, DEL-03, DEL-04
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
1. The task edit form has a clearly visible delete action (button or icon)
|
||||||
|
2. Deleting a task with zero completions removes it from the database entirely
|
||||||
|
3. Deleting a task with one or more completions sets it to inactive/archived — the task disappears from all active views (calendar, room task lists) but its completion records remain in the database
|
||||||
|
4. A confirmation dialog appears before any delete/archive action
|
||||||
|
5. The tasks table has an `isActive` (or equivalent) column, with all existing tasks defaulting to active via migration
|
||||||
|
|
||||||
|
### Phase 9: Task Creation UX
|
||||||
|
**Goal**: Users can set any recurring frequency intuitively without hunting through a grid of preset chips — common frequencies are one tap away, custom intervals are freeform
|
||||||
|
**Depends on**: Phase 8
|
||||||
|
**Requirements**: TCX-01, TCX-02, TCX-03, TCX-04
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
1. The frequency section presents a primary "Every [N] [unit]" picker where users can type a number and select days/weeks/months
|
||||||
|
2. Common frequencies (daily, weekly, biweekly, monthly) are available as quick-select shortcuts that populate the picker
|
||||||
|
3. Any arbitrary interval is settable without a separate "Custom" mode — the picker is inherently freeform
|
||||||
|
4. All existing interval types and calendar-anchored scheduling behavior continue to work correctly (monthly/quarterly/yearly anchor memory)
|
||||||
|
5. Existing tasks load their current interval into the new picker correctly in edit mode
|
||||||
|
|
||||||
|
### Phase 10: Dead Code Cleanup
|
||||||
|
**Goal**: Remove orphaned v1.0 daily plan files that are no longer used after the calendar strip replacement, keeping the codebase clean
|
||||||
|
**Depends on**: Phase 8 (cleanup after feature work is done)
|
||||||
|
**Requirements**: CLN-01
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
1. daily_plan_providers.dart, daily_plan_task_row.dart, and progress_card.dart are deleted
|
||||||
|
2. DailyPlanDao is preserved (still used by notification service)
|
||||||
|
3. All 108+ tests pass after cleanup
|
||||||
|
4. `dart analyze` reports zero issues
|
||||||
|
|
||||||
## Progress
|
## Progress
|
||||||
|
|
||||||
| Phase | Milestone | Plans Complete | Status | Completed |
|
| Phase | Milestone | Plans Complete | Status | Completed |
|
||||||
@@ -41,3 +82,6 @@ See `milestones/v1.1-ROADMAP.md` for full phase details.
|
|||||||
| 5. Calendar Strip | v1.1 | 2/2 | Complete | 2026-03-16 |
|
| 5. Calendar Strip | v1.1 | 2/2 | Complete | 2026-03-16 |
|
||||||
| 6. Task History | v1.1 | 1/1 | Complete | 2026-03-16 |
|
| 6. Task History | v1.1 | 1/1 | Complete | 2026-03-16 |
|
||||||
| 7. Task Sorting | v1.1 | 2/2 | Complete | 2026-03-16 |
|
| 7. Task Sorting | v1.1 | 2/2 | Complete | 2026-03-16 |
|
||||||
|
| 8. Task Delete | v1.2 | - | Planned | - |
|
||||||
|
| 9. Task Creation UX | v1.2 | - | Planned | - |
|
||||||
|
| 10. Dead Code Cleanup | v1.2 | - | Planned | - |
|
||||||
|
|||||||
@@ -1,46 +1,47 @@
|
|||||||
---
|
---
|
||||||
gsd_state_version: 1.0
|
gsd_state_version: 1.0
|
||||||
milestone: v1.1
|
milestone: v1.2
|
||||||
milestone_name: Calendar & Polish
|
milestone_name: Polish & Task Management
|
||||||
status: completed
|
status: planning
|
||||||
stopped_at: Milestone v1.1 archived
|
stopped_at: Milestone v1.2 roadmap created
|
||||||
last_updated: "2026-03-16T23:26:00.000Z"
|
last_updated: "2026-03-18"
|
||||||
last_activity: 2026-03-16 — Milestone v1.1 archived
|
last_activity: 2026-03-18 — Created v1.2 milestone with requirements and roadmap
|
||||||
progress:
|
progress:
|
||||||
total_phases: 3
|
total_phases: 3
|
||||||
completed_phases: 3
|
completed_phases: 0
|
||||||
total_plans: 5
|
total_plans: 0
|
||||||
completed_plans: 5
|
completed_plans: 0
|
||||||
percent: 100
|
percent: 0
|
||||||
---
|
---
|
||||||
|
|
||||||
# Project State
|
# Project State
|
||||||
|
|
||||||
## Project Reference
|
## Project Reference
|
||||||
|
|
||||||
See: .planning/PROJECT.md (updated 2026-03-16)
|
See: .planning/PROJECT.md (updated 2026-03-18)
|
||||||
|
|
||||||
**Core value:** Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
|
**Core value:** Users can see what needs doing today, mark it done, and trust the app to schedule the next occurrence — without thinking about it.
|
||||||
**Current focus:** Planning next milestone
|
**Current focus:** v1.2 Polish & Task Management — Phase 8: Task Delete
|
||||||
|
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Milestone: v1.1 Calendar & Polish — SHIPPED
|
Milestone: v1.2 Polish & Task Management
|
||||||
Status: Milestone Complete
|
Phase: 8 — Task Delete (not yet planned)
|
||||||
Last activity: 2026-03-16 — Archived milestone v1.1
|
Status: Ready for /gsd:plan-phase 8
|
||||||
|
Last activity: 2026-03-18 — Created v1.2 milestone
|
||||||
|
|
||||||
```
|
```
|
||||||
Progress: [██████████] 100% (v1.1 shipped)
|
Progress: [░░░░░░░░░░] 0% (0/3 phases)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Performance Metrics
|
## Performance Metrics
|
||||||
|
|
||||||
| Metric | v1.0 | v1.1 |
|
| Metric | v1.0 | v1.1 | v1.2 |
|
||||||
|--------|------|------|
|
|--------|------|------|------|
|
||||||
| Phases | 4 | 3 |
|
| Phases | 4 | 3 | 3 planned |
|
||||||
| Plans | 13 | 5 |
|
| Plans | 13 | 5 | TBD |
|
||||||
| LOC (lib) | 7,773 | 9,051 |
|
| LOC (lib) | 7,773 | 9,051 | TBD |
|
||||||
| Tests | 89 | 108 |
|
| Tests | 89 | 108 | TBD |
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
@@ -54,11 +55,11 @@ None.
|
|||||||
|
|
||||||
### Blockers/Concerns
|
### Blockers/Concerns
|
||||||
|
|
||||||
- Dead code from v1.0: daily_plan_providers.dart, daily_plan_task_row.dart, progress_card.dart (DailyPlanDao still used by notification service)
|
- Dead code from v1.0: daily_plan_providers.dart, daily_plan_task_row.dart, progress_card.dart (DailyPlanDao still used by notification service) — scheduled for Phase 10
|
||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-03-16
|
Last session: 2026-03-18
|
||||||
Stopped at: Milestone v1.1 archived
|
Stopped at: Milestone v1.2 roadmap created
|
||||||
Resume file: None
|
Resume file: None
|
||||||
Next action: /gsd:new-milestone
|
Next action: /gsd:plan-phase 8
|
||||||
|
|||||||
Reference in New Issue
Block a user