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).
This commit is contained in:
vitya
2026-05-22 18:39:01 +03:00
parent ff778ea37f
commit cfa4572731
7 changed files with 277 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
# board-viewer-ux-task-numbers
## Goal
User: «нам явно не хватает нумерации задач». Сейчас каждая задача — slug (`board-viewer-pointers`). Slug informative, но длинный. Хочется shorthand (`T-001` / `BV-12` / etc.) для разговора, ссылок, memory-references.
## Design open questions — РЕШИТЬ ДО ИМПЛА
1. **Scope нумерации:** per-repo (BV-12, BO-3) или global cross-repo (T-78)? Per-repo стабильнее (новый репо не сдвигает существующие numbers).
2. **Источник truth:** хранить number в STATUS.md (комментарий или новый field в block)? Или auto-derive из order/position?
- **Source-of-truth в STATUS.md** — стабильно (number не меняется), но требует ручной maintenance при создании каждой таски.
- **Auto-derive** — нулевая maintenance, но number меняется при reorder/insert.
- Recommend: source-of-truth, с конвенцией «при создании новой таски вписать `<!-- num: BV-NN -->` сразу после `## ...` строки». Reader парсит, рендер показывает.
3. **Format:** `BV-12`, `BV12`, `T-001`, `#12`? Recommend `BV-12` — short, читается, не конфликтует с slug.
4. **Старые таски:** нумеровать ретроактивно? Recommend да, один проход — выписать number для каждой существующей таски в каждом репо, commit отдельно «chore: number existing tasks».
## TDD posture
**Mode = TDD** (после resolve design-вопросов). Failing test: парсер извлекает `num` из STATUS.md block, render показывает badge с number в карточке. Затем impl.
## Pre-impl
- Brainstorm перед коммитом первой строки кода. Дизайн — короткий (4 вопроса выше), может занять одну session-петлю с user. Если будет нужен heavy brainstorm — стартовать `.workshop/.brainstorm/board-viewer-task-numbers.md` через `recommend-don't-menu` мод.
## Key files
- `src/parser.ts` (парсинг `<!-- num: ... -->` comment)
- `src/render.ts` (badge на карточке)
- STATUS.md всех 5 репо в whitelist (ретроактивная нумерация)
- `tests/parser.test.ts` + `tests/render.test.ts`
## Acceptance
- Каждая карточка показывает number-badge (`BV-12`) рядом со slug
- Тесты pass
- Все существующие таски в whitelist-репо имеют `<!-- num: ... -->` (или эквивалент)
- Конвенция документирована в `using-tasks` skill (или эквиваленте) — «новые таски имеют number с момента создания»
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: .workshop / 2026-05-22 / trigger: user-ux-feedback-round1 -->