This repository was archived by the owner on Jun 23, 2026. It is now read-only.
v1.6.1 — Enforce discovery-first; planner owns file placement
v1.6.1 — Enforce discovery-first; planner owns file placement (2026-05-25)
English
A live test run revealed the PM still self-composing a contract for a "trivial" task and skipping the planner — the prompt said "always discover" but didn't enforce it. Fixed:
- Enforcement hook (
scripts/guard-orchestrator-agy-require-planner.sh): blockstask insertof aworker-coder/worker-frontendcontract unless aworker-plannerdiscovery job has run this session. The PM can no longer skip discovery, even on trivial tasks. - Planner owns file placement + wiring: even a brand-new isolated file is the planner's call — it decides the exact path and how it is wired (imports / exports / registration / route table / DI), not the PM.
- Standing rule: the orchestrator never composes an implementation contract from its own judgment — every impl contract comes from a planner run.
- Observability:
orchestrator-tracehook now coversdev-orchestrator-agy+ allworker-*(wasdev-orchestratoronly), so PM tool calls are traced.
Русский
Живой прогон показал, что PM всё ещё сам сочиняет контракт на «тривиальной» задаче, минуя планировщика — промт говорил «всегда discovery», но не принуждал. Исправлено:
- Хук-принуждение (
scripts/guard-orchestrator-agy-require-planner.sh): блокируетtask insertконтрактаworker-coder/worker-frontend, если в этой сессии не было discovery-джобыworker-planner. PM больше не может пропустить discovery даже на тривиальном. - Планировщик владеет размещением + вшиванием файла: даже новый изолированный файл — его решение: где лежит и как вшит (импорты / экспорты / регистрация / роут-таблица / DI), а не PM.
- Standing-rule: оркестратор никогда не сочиняет implementation-контракт сам — только из прогона планировщика.
- Наблюдаемость: хук
orchestrator-traceтеперь покрываетdev-orchestrator-agy+ всеworker-*(был толькоdev-orchestrator), трейс PM пишется.