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

3.0 KiB
Raw Blame History

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