Files
board-viewer/.tasks/board-viewer-ux-done-cutoff.md
vitya cfa4572731 tasks: round1 UX feedback — 6 dev-tasks + review umbrella [board-viewer-ux-round1-review]
User первые впечатления после go-live board.kzntsv.site:
- drawer падает TypeError (приватные репо + no browser token; bundle md
  в build-time — единственно верное решение)
- slug не виден на карточке (только в data-attr)
- дата без времени, неясный формат
- owner-pill дублируется (single-owner whitelist → visual noise)
- нет нумерации задач (BV-12 / T-001 shorthand нужен)
- done-tail слишком длинный (нужен render-side cutoff/collapse)

Все 6 — code-impl в board-viewer (не deploy → не в .admin, per workshop §5).
TDD posture везде (project follow tdd-criteria).

Drawer bug = critical (clear-impl: bundle md в build-time, root-cause grounded).
Show-slug + full-datetime = clear-impl, простой TDD-цикл.
Owner-conditional = clear-impl (single vs multi owner branches), 2 fixtures.
Task-numbers + done-cutoff = design-first (4 open questions каждый),
brainstorm если recommendations не пройдут single-session.

+ review umbrella 🔵 blocked-by 6 slug'ами (workshop §4 mandatory).

Ops-handoff (rebuild image + Portainer pull) — отдельная taska в
.admin/[board-viewer-redeploy-ux-round1] (workshop §5).
2026-05-22 18:39:01 +03:00

41 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 -->