Спека: зазор и сверка поля оценки доски в агенте v16 (#113, I-1, I-2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-25 22:28:23 +04:00
parent 01c41d5767
commit dc9792cf34
2 changed files with 10 additions and 1 deletions

View File

@ -47,3 +47,5 @@
| 25.10.2026 | R-3. `GET /issue` не делается, если в команде только оценка | пакет оценок — 64 команды; минус один вызов Jira на команду | нет |
| 25.10.2026 | R-4. Текст 422 для канбана у `ensure_fields` — отдельный | «спринтов нет» вводит в заблуждение для оценки | косметика |
| 25.10.2026 | R-5. `value` в `PUT …/estimation` — число (`null` — очистить) | Jira отдаёт значение числом; проверяется вживую до пакета | одна правка агента |
| 25.10.2026 | I-1 (финальное ревью): между `PUT /issue` и `PUT …/estimation` одной команды — зазор `ensure_fields` | политика темпа: зазор между записями внутри команды | пакет «оценка + поля» идёт медленнее |
| 25.10.2026 | I-2 (финальное ревью): `fieldId` оценки доски сверяется с `field_ids.story_points` (если задан), расхождение — `failed` без записи | иначе число уйдёт в чужое поле доски другого проекта | лишний отказ, если поле настроено неверно — правится настройкой |

View File

@ -23,7 +23,10 @@ or unknown» (Jira банка, 25.10.2026), а бэклог Scrum ставит
`GET /rest/agile/1.0/issue/{key}/estimation?boardId=<board_id>` (`{fieldId, value}`); отличается — `PUT` туда же с
`{"value": …}` (`null` — очистить); сравнение — как у v15 (`3` равно `3.0`, `null` — только `null`). `field_ids.story_points`
для записи с доской не нужен. `GET /issue` и `PUT /issue` агент делает только для остальных полей команды; в `changed` —
`story_points`, если оценка записана. Команда без `board_id` — оценка через `PUT /issue`, как v15. Ошибка Jira на
`story_points`, если оценка записана. Если в той же команде записан и `PUT /issue`, перед записью оценки — зазор типа
`ensure_fields` (политика темпа). Если `field_ids.story_points` задан и `fieldId` оценки доски с ним не совпадает —
`failed` «у доски <id> оценка — поле <fieldId>, а не story points (<field_ids.story_points>)», без записи. Команда без
`board_id` — оценка через `PUT /issue`, как v15. Ошибка Jira на
`estimation` — `failed` с текстом Jira; остальные поля к этому моменту уже записаны (повтор их не меняет).
#### Scenario: Доска с закрытыми спринтами
@ -41,6 +44,10 @@ or unknown» (Jira банка, 25.10.2026), а бэклог Scrum ставит
- **THEN** `GET /rest/agile/1.0/issue/AURORA-1704/estimation?boardId=4216`, затем `PUT` туда же `{"value": 2}`; `PUT /issue`
нет; отчёт `done` с `changed: ["story_points"]`, `jira_calls = 2`
#### Scenario: Доска оценивает другим полем
- **WHEN** `field_ids.story_points = customfield_15852`, `GET …/estimation?boardId=5120` отдаёт `fieldId: timeoriginalestimate`
- **THEN** `failed` «у доски 5120 оценка — поле timeoriginalestimate, а не story points (customfield_15852)», `PUT` нет
#### Scenario: Оценка уже стоит
- **WHEN** та же команда, оценка в Jira — `2.0`
- **THEN** только `GET …/estimation`; отчёт `done` с `changed: []`, `jira_calls = 1`