b978738be6aa73f4cbe6a10d2c4edd4dd42a95e1
Судья мог судить/печатать план, который наставник завернул: mentor-GO привязан к plan_hash = planId(steps) (только шаги), пишется ТОЛЬКО на GO и НЕ стирался на NO-GO. При идентичных steps (менялся лишь текст плана) старое «да» переживало смену содержания — судья находил устаревшее одобрение (mentor-go-store::mentorGoValidFor по plan_hash) и проходил mentorApproved-гейт несмотря на свежий NO-GO наставника. Вскрыто живым прогоном (план опечатался при mentor NO-GO + judge GO). Фикс: clearMentorGo стирает запись; enforce-mentor-on-plan-write на реальном NO-GO (blocked) её зовёт (degraded не трогаем — verdict неизвестен). Инвариант: «да» наставника живёт ⟺ последний проход одобрил. Свод 4376 зелёный. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
No description provided
Languages
JavaScript
98.7%
Python
1.1%
Shell
0.2%