- 11 записей типа goal закрыты с причиной, называющей задачи-наследники; ROADMAP.md удалён, индекс остался один — BACKLOG.md; - 33 записи переписаны: ссылка «Двигает пункты N «Завершения» цели» уступила место прямому утверждению — без целей номера пунктов вели в никуда; - шапка BACKLOG.md размечена парой <!-- стадия -->, порядок строк теперь объявлен зависимостью, а не важностью.
3.5 KiB
3.5 KiB
✨ Считать заголовок, темы и пересказ внешней моделью
- Тип: feature
- Категория: Очередь — Уровни текста: сюда приходит пятая внешняя зависимость, и конвейер к этому моменту покрыт тестами.
- Зачем: Расшифровка доходит стеной текста: ни заголовка, ни тем, ни пересказа сервис не считает, и клиента языковой модели в нём нет.
У готовой записи появляются заголовок, пересказ и темы, а отказ и молчание модели не роняют задачу.
Здесь появляется пятая внешняя зависимость — языковая модель с OpenAI-совместимым интерфейсом за шлюзом bifrost, — и текст расшифровки уходит ещё на одну сторону.
Затрагивает
internal/contract— интерфейс расчёта выводов из текста;- новый адаптер OpenAI-совместимого клиента и подставной адаптер для тестов;
- конвейер: шаг после
transcribe, его состояние и место в цепочке; - колонки заголовка, тем и пересказа у задачи и их миграция;
- контракт чтения записи: новые поля ответа;
- секция конфигурации: адрес шлюза, имя модели, ключ;
docs/architecture.md— внешняя зависимость и чем она отказывает;docs/security.md— текст расшифровки уходит на внешний сервис.
Критерии приёмки
- Дошедшая до
doneзапись несёт заголовок в одну строку, список тем и пересказ в два-три предложения. Оракул — тест конвейера на подставной модели: три поля заполнены, заголовок без переносов строки. - Отказ и молчание модели не роняют задачу: текст доходит до человека без
выводов. Оракул — тест с моделью, возвращающей ошибку и таймаут: задача в
done, текст на месте, в журнале одна запись уровняWARN. - Ключ и адрес шлюза не попадают ни в журнал, ни в ответ. Оракул — тест шага с перехваченным журналом.
Рамки
Литературный текст сюда не входит — это literary-text-level. Выборочность по
настройкам пользователя тоже: здесь считаются все уровни, а выключать их учит
settings-applied-in-pipeline. Своей модели не
держим и промптов в код не зашиваем сверх необходимого. Прогон на боевом ключе
ради проверки запрещён: подставной адаптер. Обращение к модели платное, и
объём расхода учитывает usage-accounting.