From 9460b768335dcaf7f89020caf00f1a125de14b20 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Fri, 17 Jul 2026 22:28:08 +0000 Subject: Document deferred UI screens for chains and buckets Fleshes out the "not built" notes in both specs into actionable follow-up scope: what data/API layer already exists, what the screen needs to do, and precedent to follow. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL --- .../superpowers/specs/2026-07-15-linear-task-chains-design.md | 11 +++++++++++ .../specs/2026-07-15-recurring-maintenance-buckets-design.md | 9 +++++++++ 2 files changed, 20 insertions(+) (limited to 'docs/superpowers') diff --git a/docs/superpowers/specs/2026-07-15-linear-task-chains-design.md b/docs/superpowers/specs/2026-07-15-linear-task-chains-design.md index 98198b2..16e5337 100644 --- a/docs/superpowers/specs/2026-07-15-linear-task-chains-design.md +++ b/docs/superpowers/specs/2026-07-15-linear-task-chains-design.md @@ -61,3 +61,14 @@ Store-layer tests for: creating a chain seeds positions correctly (only position - Looping chains for ongoing practice — always terminates, per the interview. - Interaction with maintenance buckets ([[doot-future-task-scheduling-ideas]] item 3) — independent concepts, not designed to compose. - Web UI specifics for the chain/checklist view. + +## Deferred: Android chain-checklist screen + +Not built as of 2026-07-17. What exists today: a row-level "N/M" badge on the currently-unlocked task (`WidgetRows.kt`'s `TaskRow`), and the data layer to fetch the full ordered list (`WidgetRepository.fetchChain(id)` → `ChainDetail{chain, tasks}`, hitting `GET /api/widget/chains/{id}`; `Chain`/`ChainTask` models already defined in `WidgetItem.kt`). What's missing is the actual screen: tapping the badge does nothing yet (no `clickable`/`actionStartActivity` wired on it). + +Rough shape for whoever picks this up: +- A new Activity (matching the existing pattern of `TaskDetailActivity`/`EventDetailActivity`-style popups — check current detail-popup activities for the `taskAffinity` fix mentioned in the 2026-07-12 worklog entry, so it doesn't reopen behind Settings) launched via `actionStartActivity` from the chain badge, passing the chain id. +- On launch: call `WidgetRepository.fetchChain(id)`, render `tasks` in `chain_position` order — locked items dimmed/non-interactive (no due date, not completable from here), the one `chain_unlocked` item shown with its existing Complete affordance. +- Chain-level actions (pause/resume/abandon) as a small menu or buttons — repository methods `pauseChain`/`resumeChain`/`abandonChain` already exist and are ready to call. +- No automated Compose UI test harness in this project (established convention) — verify by building and a manual on-device/emulator check, same as every prior widget UI task this session. +- Web gets nothing here per the original spec ("Web UI specifics... out of scope") — this is Android-only follow-up work. diff --git a/docs/superpowers/specs/2026-07-15-recurring-maintenance-buckets-design.md b/docs/superpowers/specs/2026-07-15-recurring-maintenance-buckets-design.md index 2bfb5ba..69ce370 100644 --- a/docs/superpowers/specs/2026-07-15-recurring-maintenance-buckets-design.md +++ b/docs/superpowers/specs/2026-07-15-recurring-maintenance-buckets-design.md @@ -68,3 +68,12 @@ Store-layer tests for the selection algorithm (given a pool with known staleness - UI design. - Multi-bucket item membership (exactly one bucket per item, per the interview). - Any interaction with the linear-task-chains feature ([[doot-future-task-scheduling-ideas]] item 4) — buckets and chains are independent concepts, not designed to compose. + +## Deferred: bucket-management UI + +Not built as of 2026-07-17. What exists: the full CRUD API and store layer (`CreateBucket`, `GetBuckets`, `AddBucketItem`, `RemoveBucketItem`, all with store+handler tests), reachable at `GET/POST /api/widget/buckets`, `POST /api/widget/buckets/{id}/items`, `POST /api/widget/buckets/{id}/items/remove`. The Defer action itself (the part end users actually interact with day-to-day) IS live on both web timeline rows and the Android widget row. What's missing is the create/configure/manage surface — there is currently no way to create a bucket or assign a task to one except direct API calls. + +Rough shape for whoever picks this up, per the spec's own minimum bar ("create bucket, add/remove pool items, see cycle settings"): +- **Web**: closest existing precedent is the Projects list under Settings (`HandleWidgetProjectsGet`/`Create` + whatever template renders it) — a Buckets management page would follow the same shape: a list of buckets (name, cycle_days, pick_n, pool size), a create form, and per-bucket pool membership (search/pick an existing task, or type a new title, to add; remove from the same list). +- **Android**: per the spec's explicit scoping, this is web-only — the widget only needs Complete/Defer on items it already displays, which is done. +- No scoring-formula tuning UI needed — that's explicitly out of scope in the spec above, not just deferred. -- cgit v1.2.3