Design-only change agent-v16-sp-estimation (#53)
Оценка из ensure_fields через /rest/agile/1.0/issue/{key}/estimation доски: поле оценки
не на экране редактирования Jira банка. Контракт — sdlc-hub#113.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
2a82f13433
commit
3dbca034ad
34
openspec/changes/agent-v16-sp-estimation/design.md
Normal file
34
openspec/changes/agent-v16-sp-estimation/design.md
Normal file
@ -0,0 +1,34 @@
|
||||
# agent-v16-sp-estimation — решения агента
|
||||
|
||||
Спека и дизайн изменения — в `sdlc-hub/openspec/changes/sp-estimation-board/` (issue aep/sdlc-hub#113, aep/jira-agent#53).
|
||||
Агентская часть: требование `agent` «Спринты, ранг и оценки» (MODIFIED: оценка через доску) и строка `ensure_fields`
|
||||
в `commands` «Команда — желаемый результат на одной задаче» (MODIFIED: `board_id` при `story_points`, чтение и запись
|
||||
оценки через `/rest/agile/1.0/issue/{key}/estimation`). Версия агента — 16.
|
||||
|
||||
## Причина
|
||||
|
||||
Jira банка 25.10.2026 отклонила `PUT /rest/api/2/issue/{key}` с `customfield_15852`: «Field cannot be set. It is not on
|
||||
the appropriate screen, or unknown». Поле оценки не на экране редактирования; бэклог Scrum ставит его через доску.
|
||||
Владелец проверил в браузере: `GET /rest/agile/1.0/issue/AURORA-1704/estimation?boardId=4216` →
|
||||
`{"fieldId":"customfield_15852","value":1.0}`.
|
||||
|
||||
## Решения агента
|
||||
|
||||
1. **`ensure_fields` с `story_points` и `board_id`:** `GET AGILE/issue/{key}/estimation?boardId=<board_id>`, сравнение
|
||||
`_same_points(value, want)`; отличается — `PUT` туда же `{"value": want}` (`null` — очистить). `field_ids.story_points`
|
||||
и `GET /field` для этого не нужны.
|
||||
2. **Остальные поля — как v15**, `PUT /issue` только с ними; `GET /issue` — только если в команде есть поля, кроме
|
||||
оценки (`key`, `board_id`, `story_points` не считаются).
|
||||
3. **Порядок:** сначала `PUT /issue` с остальными полями, затем оценка. Ошибка оценки — исключение HTTP наружу, как у
|
||||
прочих вызовов Jira (команда `failed` с текстом Jira).
|
||||
4. **Без `board_id`** — оценка через `PUT /issue` в поле `field_ids.story_points`/найденное по имени, как v15.
|
||||
5. **Проверка значения** (`число ≥ 0 или null`) — до любых вызовов Jira, как v15.
|
||||
|
||||
## Decisions made without discussion
|
||||
|
||||
| Дата | Решение | Обоснование | Цена ошибки |
|
||||
|---|---|---|---|
|
||||
| 25.10.2026 | R-1: без `board_id` — путь v15 | совместимость с хабом до #113 | нет |
|
||||
| 25.10.2026 | R-2: сначала остальные поля, затем оценка | новый путь не должен ломать остальные поля | частичная запись, повтор безопасен |
|
||||
| 25.10.2026 | R-3: без `GET /issue`, если в команде только оценка | минус вызов Jira на команду в пакете оценок | нет |
|
||||
| 25.10.2026 | R-5: `value` — число как есть | Jira отдаёт число; живая проверка до пакета | одна правка агента |
|
||||
Loading…
x
Reference in New Issue
Block a user