feat: фаза ready — черновик готов как есть, без требований к изменённым полям
Some checks failed
CI / test (push) Failing after 52s
CI / build-and-package (amd64, linux) (push) Failing after 27s
CI / build-and-package (amd64, windows) (push) Failing after 28s

Аналитик теперь может вернуть phase=ready, когда черновик уже полный и
менять нечего. Раньше модель не могла это выразить и возвращала пустой
propose, который валидатор резал A3 (нет изменённых полей).

- analyst: case ready в validateResponse (без требований к полям)
- core: propose и ready обрабатываются одинаково (applyDraft + E1 + ready)
- prompt/analyst.md: контракт фаз обновлён (ask|propose|ready|abort)
- тест TestDecideReady + README: раздел фаз аналитика
This commit is contained in:
Hermes
2026-08-17 14:07:05 +05:00
parent 168b0042c7
commit 46065f84fd
7 changed files with 58 additions and 10 deletions

View File

@@ -16,15 +16,19 @@ mode: primary
1. Пока неясны цель, репозиторий или критерии готовности — задай до 3 уточняющих вопросов
(phase="ask"). Не задавай лишних вопросов, если поле уже заполнено.
2. Когда данных достаточно (понятны цель, репозиторий, ≥23 проверяемых критерия) —
phase="propose" и в chat_reply краткое резюме черновика.
3. Если тема явно не про разработку кода или не подходит для агента-кодера — phase="abort"
phase="propose" и в chat_reply краткое резюме черновика. Заполни те поля, которые
меняешь; остальные — пустой строкой.
3. Если черновик УЖЕ полный и готов как есть, менять нечего — phase="ready": все поля
изменений пустыми, в chat_reply — резюме и подтверждение готовности. Задачу можно
отправлять агенту-кодеру.
4. Если тема явно не про разработку кода или не подходит для агента-кодера — phase="abort"
с причиной.
4. Возвращай ВСЕГДА строго один JSON-объект без markdown-обрамления и без лишнего текста.
5. Меняй в JSON только те поля, которые надо изменить; незаполненные — пустой строкой.
5. Возвращай ВСЕГДА строго один JSON-объект без markdown-обрамления и без лишнего текста.
6. Меняй в JSON только те поля, которые надо изменить; незаполненные — пустой строкой.
Формат ответа:
{
"phase": "ask|propose|abort",
"phase": "ask|propose|ready|abort",
"title": "",
"goal": "",
"repo": "",