From 9138dfac59d3bff5daa46c4a00a27058709e7f81 Mon Sep 17 00:00:00 2001 From: mAi Date: Tue, 26 May 2026 13:15:53 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20Phase=205i=20Views=20=E2=80=94=20fold?= =?UTF-8?q?=20in=20m's=20decisions=20on=20the=209=20open=20Qs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit m answered every open question directly via AskUserQuestion (greenlit for inventor 2026-05-26 13:12). New §8.5 captures the picks + slice implications. Inventor picks held on 6 of 9; m differed on Q5 (project filter descendants) — wants an include-descendants toggle on the chip rather than always-on, so Slice A grows an `IncludeDescendants` field on TreeFilter + a toggle on the picker chip. view_type enum locks at 5 (card/list/calendar/kanban/timeline). All four out-of-scope items stay parked. No other slice changes. --- docs/plans/views-system.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/plans/views-system.md b/docs/plans/views-system.md index 777d2f9..0101290 100644 --- a/docs/plans/views-system.md +++ b/docs/plans/views-system.md @@ -391,6 +391,37 @@ Each slice is its own coder shift, its own branch, its own PR. No bundled big-ba --- +## §8.5 — m's decisions (2026-05-26) + +All open questions answered by m directly via AskUserQuestion (m greenlit chip-picker for inventor 2026-05-26 13:12). Decisions captured below; §9 stays as the historical record of what was open. + +| # | header | m picked | matches inventor pick? | +|---|---|---|---| +| Q1 | Timeline | Fifth view_type | yes | +| Q2 | View scope | Page-agnostic | yes | +| Q3 | enum size | 5 values (follows Q1) | yes | +| Q4 | Picker | Sidebar section under main nav | yes | +| Q5 | Proj scope | **Toggle on the chip** (include-descendants on/off) | **no** — inventor picked "always include descendants"; m wants explicit control | +| Q6 | Kanban grp | status (active/done/archived) | yes | +| Q7 | Save UI | HTMX modal | yes | +| Q8 | rename safety | (already resolved in §4: id authoritative, path display-only) | n/a | +| Q9 | Pull back into scope | none — all four stay parked | yes | + +### Implications for the slicing + +- **Q5 changes Slice A**: project filter chip needs an `include-descendants` boolean toggle next to the picker. Default state and TreeFilter field: `IncludeDescendants bool` (default `true` to match the most common case; toggle flips to `false` for single-item scope). URL param: `?project_descendants=0` when off (default-elided, so URLs stay short in the common case). Cache key implication: covered automatically by `QueryString()` once the field is in the emit set. +- **Q1 + Q3 lock the view_type enum at 5**: `card | list | calendar | kanban | timeline`. Migration `0016_views.sql` CHECK constraint uses all five. +- **Q9 confirms all four parked**: drag-to-change-group on kanban, multi-user/sharing, per-view notifications, cross-view diffs all stay out of Phase 5i. Slice C stays read-only as designed. +- **Q2 + Q4 + Q7 all match inventor picks**: design ships as drafted on those fronts. + +### Concrete edits to the slicing in §7 + +- **Slice A** adds: `IncludeDescendants` field on TreeFilter, default true; toggle chip rendered next to the project picker on every Views-supporting page; `Matches` falls back to "primary path equality only" when off; round-trip test for the toggle. +- **Slice D** schema: `view_type` CHECK now includes `timeline`. No other change. +- All other slices unchanged. + +--- + ## §9 — Open questions for head delegation These are forks where data + code alone can't resolve the design. Single delegation to head with these batched; head surfaces to m; head relays answers.