KB Orchestrator Workflow
Цель
Сделать выполнение задач через оркестратор воспроизводимым: чёткие этапы → артефакты → проверки → ревью → фиксы → (для UI) Playwright‑проверка → финальный отчёт.
Codex-like Tasks (продуктовый режим)
- Пользователь ставит задачу как
Task(repo + base ref + prompt +Nверсий). - Каждая версия (
TaskVersion) живёт в своём изолированном окружении (у нас: отдельныйworktree/workspaceна worker’е). - Запуск “как в Codex”:
Taskсразу попадает в очередь, а worker сам берёт следующее из очереди (без ручного “run-next”/кнопок запуска воркера). - Пайплайн стадий (MVP):
research? → execute → tests → review → fix.researchопционален: orchestrator решает, нужен ли он по контексту/задаче.testsможет включать “run/smoke/Playwright” для веб‑приложений → обычно это делаетtesterсcapability=network.- “user‑facing deploy” (URL/порт для пользователя) — отдельный опциональный Job/подстадия, включаемая только при явной необходимости.
reviewдолжен быть read-only (например,codex exec -s read-only ...), результат — отчёт, а не изменения.fixприменяет выводы ревью; при необходимости повторитьtests.
- UX “версий”:
- Код-ревью: параллельно запустить
Nверсий, собрать фидбэк и агрегировать уникальное. - Креатив: выбрать лучшую версию/вариант и продолжать только её (или разветвить выбранную ещё на
2–4).
- Код-ревью: параллельно запустить
Связанные навыки (использовать как подпроцессы)
- Code review request:
.codex/skills/requesting-code-review/SKILL.md - Code review apply:
.codex/skills/receiving-code-review/SKILL.md - Frontend дизайн:
.codex/skills/frontend-design/SKILL.md - Отправка файлов в Telegram:
.codex/skills/tg-mcp-send-files/SKILL.md
Инварианты (safety)
- Не делать
git pushбез явного запроса пользователя. - Не использовать
sudo. - Держать рабочее дерево чистым: всё нужное — закоммитить, рантайм/артефакты — в
.gitignore. - Для “executor без сети”: не полагаться на удачу. Если нужен интернет — добывать материалы control‑plane’ом и передавать локально.
Артефакты (канонично)
- В целевом проекте держать
ORCH_RUN.md: старт/финиш, исходный prompt, точные команды, ссылки, итерации, job_id. - В оркестраторе использовать артефакты
orchestrator/state/artifacts/<job_id>/summary.jsonиiterations.jsonкак источник правды по времени/итерациям.
Этапы (строго по порядку)
0) Зафиксировать вводные
- Зафиксировать
pwdи целевую папку работы (если нужно “не захламлять” — подняться уровнем выше и работать рядом). - Создать/обновить
ORCH_RUN.md(в целевом репо):Start, цель, URL (если UI), критерии DoD. - Сформулировать DoD и stop‑условие (по умолчанию
COMPLETEDстрого последней строкой stdout).
1) Подготовить целевой репозиторий
- Создать папку/репо, настроить git‑identity (локально).
- Добавить
.gitignore, базовыйREADME.md, тестовый каркас,ruff/mypy. - Прогнать проверки локально и сделать baseline commit.
2) Сформировать prompt для executor (качество постановки)
- Явно перечислить: ограничения (no push/sudo), DoD, команды проверок, артефакты.
- Если задача про UI: указать URL и требование проверить сценарии через Playwright MCP.
- Встроить “loop hook”:
COMPLETED(и опциональноBLOCKER) как последняя строка stdout. - Записать prompt в
ORCH_RUN.md(как “исходный запрос”).
3) Выполнить реализацию (executor)
- Делать маленькие, проверяемые шаги.
- Коммитить осмысленными порциями; не оставлять мусор/временные файлы вне
.gitignore. - Не менять тесты executor’ом (если политика включена) — для тестов использовать отдельный этап/роль.
4) Прогнать проверки через KB Orchestrator (валидировать и собрать артефакты)
- Зарегистрировать repo:
cd orchestrator../.venv/bin/python -m kb_orchestrator repo add --id <id> --path <abs_path>
- Создать job на проверки (пример):
../.venv/bin/python -m kb_orchestrator job create --repo <id> --max-iters 3 --completion-keyword COMPLETED -- bash -lc '<checks...>; echo COMPLETED'
- Запустить worker:
../.venv/bin/python -m kb_orchestrator worker run(по умолчанию в цикле;--onceчтобы выполнить один job)
- Если
blocked:- “грязное дерево” → создать отдельную cleanup‑подзадачу (commit/ignore), без авто‑удалений.
- “executor modified tests” → откатить/перенести изменения тестов в отдельный этап.
5) Создать агента на code review (requesting-code-review)
- В отдельном запуске/топике попросить review по
{BASE_SHA}..{HEAD_SHA}. - Следовать
.codex/skills/requesting-code-review/SKILL.md. - Сохранить результат в целевом репо (например
CODE_REVIEW.md) и залинковать изORCH_RUN.md.
6) Создать агента на фиксы по ревью (receiving-code-review)
- В отдельном запуске/топике применить рекомендации, проверяя техническую корректность.
- Следовать
.codex/skills/receiving-code-review/SKILL.md. - После каждого батча фиксов повторить этап 4 (оркестратор‑проверки).
7) Для UI: проверить поведение через Playwright MCP
- Поднять сервер на
0.0.0.0(и зафиксировать PID/лог/stop‑команду вORCH_RUN.md). - Проверить сценарий “как пользователь” через MCP Playwright:
mcp__playwright__browser_navigate→ URL (напримерhttp://192.168.77.4:8000)mcp__playwright__browser_snapshot→ зафиксировать состояние- при проблемах:
mcp__playwright__browser_console_messages,mcp__playwright__browser_network_requests
- Если найдены ошибки/несостыковки: создать fix‑подзадачу и повторить 4 → 7.
8) Финализировать и отчитаться
- Обновить
ORCH_RUN.md:- время (start/end), итерации, job_id, список команд, исходный prompt, ссылку на результат.
- В ответ пользователю всегда дать:
- сколько времени заняло
- сколько итераций (по
iterations.json) .mdс командами+prompt- ссылку/URL
- доп. заметки/риски/ограничения
- Отправить
ORCH_RUN.mdв Telegram документом через MCP (см..codex/skills/tg-mcp-send-files/SKILL.md).