analyst(ET): auto-commit from analyst run_id=3
All checks were successful
CI / lint (push) Successful in 31s
CI / test (push) Successful in 49s
CI / build (push) Successful in 34s

This commit is contained in:
2026-06-14 01:45:40 +03:00
parent 03b9a919ae
commit 12b239eebd
4 changed files with 83 additions and 9 deletions

View File

@@ -2,7 +2,7 @@
type: brd
work_item_id: ET-001
title: "BRD: Чекбокс показа/скрытия POI в кнопке рельефа"
version: 3
version: 4
status: proposed
created_at: 2026-06-14
updated_at: 2026-06-14
@@ -77,7 +77,7 @@ relates_to: ET-002
| Риск | Митигация |
|------|-----------|
| Переименование подписи ломает unit-тест, проверяющий текст | Проверить `tests/unit/poi_toggle.test.js` / `tests/unit/test_poi_toggle.py`; обновить ожидание текста синхронно с правкой |
| Переименование подписи ломает существующий регресс-тест ET-002: `tests/unit/test_poi_toggle.py:54` жёстко проверяет `assert "<span>POI</span>" in html` | Обновить ожидание текста в этом тесте на `<span>Показывать POI</span>` **в том же коммите**, что и правку `index.html:88`. JS-тест `poi_toggle.test.js` подпись не проверяет — его трогать не нужно |
| Восприятие задачи как «нечего делать» (дубликат ET-002) | Чёткая дельта BR-2 + полный регресс-пакет верификации |
| Коллизия артефактов с барьерной задачей под тем же ID | Барьерные артефакты заархивированы; данный пакет — канонический для POI-ET-001 |

View File

@@ -2,9 +2,10 @@
type: trz
work_item_id: ET-001
title: "ТЗ: Чекбокс показа/скрытия POI в кнопке рельефа"
version: 2
version: 3
status: proposed
created_at: 2026-06-14
updated_at: 2026-06-14
author: "agent:analyst"
relates_to: ET-002
---
@@ -22,8 +23,15 @@ relates_to: ET-002
### REQ-F-01 — Подпись чекбокса «Показывать POI» (НОВАЯ ПРАВКА)
- В попапе рельефа (`#terrain-popup`) чекбокс `#poi-visible-cb` должен
иметь текстовую подпись **«Показывать POI»**.
- Текущее состояние: подпись — «POI» (`src/web/index.html`, узел
`<span>` рядом с `#poi-visible-cb`).
- Текущее состояние: подпись — «POI» (`src/web/index.html:88`, узел
`<span>POI</span>` рядом с `#poi-visible-cb`).
- **Жёсткая связь с существующим тестом (важно для исполнителя):** правка
ломает регресс ET-002 `tests/unit/test_poi_toggle.py:54`
`assert "<span>POI</span>" in html`. Эту проверку нужно обновить на
`<span>Показывать POI</span>` **в том же коммите**, иначе `make test`
упадёт. (JS-тест `tests/unit/poi_toggle.test.js` текст подписи **не**
проверяет — он извлекает поведенческий блок по маркерам и подписи не
касается.)
- Приёмка: видимый текст подписи равен «Показывать POI»; layout попапа не
ломается (одна строка, без обрезки) на desktop и mobile.
@@ -88,10 +96,13 @@ relates_to: ET-002
## 4. Объём изменений для ET-001
1. `src/web/index.html`: заменить текст подписи `<span>POI</span>` →
1. `src/web/index.html:88`: заменить текст подписи `<span>POI</span>` →
`<span>Показывать POI</span>` у `#poi-visible-cb`.
2. Синхронно обновить unit-тест, если он проверяет текст подписи
(`tests/unit/poi_toggle.test.js`).
2. **Синхронно** обновить ожидание текста в существующем регресс-тесте
ET-002 `tests/unit/test_poi_toggle.py:54` (`assert "<span>POI</span>"
in html` → `assert "<span>Показывать POI</span>" in html`). Без этого
`make test` упадёт. *(Уточнение: текст подписи проверяет именно
python-тест; JS-тест `poi_toggle.test.js` его не трогает.)*
3. Прогнать регрессию по REQ-F-02…REQ-F-07 (поведение ET-002 не должно
измениться).

View File

@@ -2,9 +2,10 @@
type: acceptance-criteria
work_item_id: ET-001
title: "Критерии приёмки: Чекбокс показа/скрытия POI"
version: 2
version: 3
status: proposed
created_at: 2026-06-14
updated_at: 2026-06-14
author: "agent:analyst"
relates_to: ET-002
---

View File

@@ -6,6 +6,13 @@ status: blocked-needs-owner-decision
created_at: 2026-06-12
author: "agent:analyst"
recommendation: close-as-duplicate-of-ET-002
analyst_stage: complete # POI BRD/ТЗ/AC/тест-план/UI закоммичены (см. §10, прогон #22)
correction_note: >
Прогон #22 (2026-06-14): инвентаризация §3/§9 устарела. Вопреки прежней
формулировке «стандартный пакет осознанно не выпущен», аналитический пакет
POI (01-brd/02-trz/03-ac/04-test-plan/04b-ui) УЖЕ закоммичен как POI
(HEAD == рабочее дерево). Аналитический этап завершён; блокер — только
решение Owner. Детали — §10.
supersedes_note: >
Краткая авторитетная сводка по ET-001. Подробный (избыточный) лог
предыдущих прогонов — в 08-analyst-finding-duplicate.md. Это 19-я
@@ -184,3 +191,58 @@ ET-002) + коллизия ID ET-001 с барьерной задачей. Бе
с «POI».
- **Новый ID** → выдать POI-запросу свежий ID (действие оркестратора), `ET-001`
оставить барьерной задачей (вернуть POI-файлы из `archive/`).
## 10. Прогон #22 (2026-06-14) — независимая ре-верификация + корректировка факта
Перепроверил все ключевые утверждения по **живому коду** и `git` (рабочее
дерево `docs/work-items/ET-001/` = HEAD, чисто). Итоги:
**(A) Функция в проде — подтверждено (дубликат ET-002).**
- `src/web/index.html:8689``#poi-visible-cb` (`checked`) внутри `#terrain-popup`,
подпись `<span>POI</span>`.
- `src/web/app.js:29062960` — блок `>>> ET-002 POI visibility block <<<`:
`applyPoiVisibility()`, `onPoiCheckbox()``localStorage['poi-visible']`,
`restorePoiState()`; вызывается при загрузке (`:136`) и смене стиля/темы
(`:3485`, `:3499`) → персистентность между сессиями И при смене темы.
- Реальные unit-тесты присутствуют: `tests/unit/poi_toggle.test.js`,
`tests/unit/test_poi_toggle.py`.
**(B) КОРРЕКТИРОВКА устаревшего факта из §3/§4/§9.** Инвентаризация прежних
прогонов утверждала, что HEAD `01-brd.md` — барьерный и что «стандартный
пакет осознанно не выпущен». Это **неверно** по фактическому HEAD. Истинная
классификация закоммиченных файлов (по `git show HEAD:…` + заголовкам):
| Файл @ HEAD | Факт (прогон #22) | Этап |
|---|---|---|
| `00-business-request.md` | 🚧 барьеры | вход (не мой) |
| `01-brd.md` | 📍 **POI** (v3) | аналитик ✅ |
| `02-trz.md` | 📍 **POI** | аналитик ✅ |
| `03-acceptance-criteria.md` | 📍 **POI** | аналитик ✅ |
| `04-test-plan.yaml` | 📍 **POI** (v2, AC-01..10) | аналитик ✅ |
| `04b-ui-test-cases.md` | 📍 **POI** | аналитик ✅ |
| `06-adr/ADR-001-barrier-blocking.md` | 🚧 барьеры | архитектор (не мой) |
| `07-infra-requirements.md` | 🚧 барьеры | архитектор/инфра (не мой) |
| `12-review.md`, `13-test-report.md` | 🚧 барьеры | ревью/тест (не мои) |
Вывод: **аналитический пакет POI уже выпущен и закоммичен** (его создал
более ранний прогон, ср. `git log` `run_id=5/6`). Все пять артефактов
аналитика — POI, без барьерного содержимого (упоминания барьеров в 01/02 —
лишь контекст про архив/коллизию ID). **Этап «Анализ» по POI — завершён;
новой аналитической работы нет.** Барьерные остатки — в файлах ЧУЖИХ этапов
(00/06/07/12/13), править их аналитику запрещено (CLAUDE.md №2).
**(C) Единственная дельта поведения** между запросом и продом — косметическая:
подпись «POI» (в UI) vs «Показывать POI» (в запросе). Это правка кода (этап
разработки), не аналитики.
**(D) Действие прогона.** Эскалация Owner в этом (интерактивном) прогоне —
запрос с 3 вариантами §5 **отклонён без выбора**. Зацикливать эскалацию не
стал. Применён безопасный дефолт: деструктивных действий нет, барьерные и
POI закоммиченные артефакты не тронуты, дубликат не создан, разработка не
начата. Внесена только данная корректировка факта в собственный
аналитический мета-артефакт (этот файл) — чтобы будущие прогоны не выводили
повторно ложный вывод «пакет не выпущен».
**Итог.** Этап «Анализ» завершён (пакет POI в наличии и корректен). Задача
остаётся `blocked-needs-owner-decision`; рекомендация прежняя —
**закрыть ET-001 как дубликат ET-002** (закрытие за Owner/CI, CLAUDE.md №4).