meta(tasks): migrate .tasks to v2 (global numbering 16 tasks)

This commit is contained in:
vitya
2026-08-23 10:18:33 +03:00
parent f50e37804f
commit 695c1aad1e
16 changed files with 32 additions and 16 deletions

View File

@@ -0,0 +1,40 @@
# board-viewer-ux-done-cutoff
## Goal
User: «чаще нужна архивная чистка — очень длинный хвост в done». Колонка 🟢 done растёт без ограничения; visual noise. Нужна фильтрация / cutoff / collapse.
## Design open questions — РЕШИТЬ ДО ИМПЛА
1. **Что архивная чистка должна делать на UI-стороне** (источник = STATUS.md остаётся неизменным, чистка — render-time)?
- Hide-by-default + toggle «show done» (текущий `toggleArchived` уже близко к этому, но done ≠ archived)
- Last-N cutoff: показать последние N done (например 10) per column, остальные за «N more…»
- Date-cutoff: показать done за последние 7 / 14 / 30 дней, остальные скрыты
- Combined: hide by default, expander «show older»
2. **Что считается «done для скрытия»?** Все 🟢 или только те у которых close-date старше N дней?
3. **Должен ли source (STATUS.md) фактически archive'ить старые** (физически переносить в отдельный `.tasks/_archive/<date>.md`)? Это уже не UI а layout-вопрос. Recommend: **нет**, source неизменен, всё на UI-стороне — иначе любая повторная сборка ломается при reorganization.
4. **Default:** hide-done by default или show-all? Если hide — user тыкает один раз чтобы увидеть, плюс — чистый default-вид. Recommend hide-by-default + видимый toggle в шапке.
## Pre-impl
- Brainstorm перед импл. Если решения 4-х вопросов выше bundle'ятся в один очевидный recommendation — стартовать impl сразу с design-комментарием в decisions log. Если возникает дилемма — `.workshop/.brainstorm/board-viewer-done-cutoff.md`.
## TDD posture
**Mode = TDD** (после resolve design). Failing test: render с N done > cutoff показывает только cutoff штук + «N more» link/button. Цикл RED→GREEN.
## Key files
- `src/render.ts` (column-rendering — добавить cutoff + expander)
- `static/board.js` (expander click handler)
- `static/board.css` (styling collapsed state)
- `tests/render.test.ts`
## Acceptance
- В колонке 🟢 done видны только последние N (число согласовано в design) — остальные скрыты под expander
- Toggle / expander работает (DevTools click test)
- Source STATUS.md не модифицируется (verify через `git status` after smoke)
- Тесты pass
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: .workshop / 2026-05-22 / trigger: user-ux-feedback-round1 -->