a8481b68c0
Седьмое место — шапка столбца sso_provider у таблицы админов. Там стояло голое обещание «Логика guard'ов — в SaasAdminAuthService», без единой оговорки. Класса нет. Место опаснее прочих шести: речь об аварийном входе, который нарочно обходит единый вход. Ни SSO, ни обязательный второй ключ, ни ограничение аварийного входа кодом не проверяются. Сторож заведён отдельной новой проверкой портала: app/tests/Unit/Schema/KanonNeObeshchaetOhrannikaTest.php. Общих файлов не трогает, базы не требует, ходит сам при каждом полном прогоне. Краснеет, когда канон называет поимённо кусок кода портала, которого нет в проекте, а рядом не сказано, что его нет. Перечень известного долга внутри проверки видимый, у каждой строки сказано почему. Это не разрешение, а замер точным числом: нельзя ни дописать упоминание разрешённому имени, ни оставить строку, когда долг закрыли. На строках про запрет обработки перечень не действует вовсе. Показан красным тремя ножами. Второй нож вскрыл дыру в самом стороже: мерка «пометка в пределах восьми строк» давала ложное зелёное — новая ложь укрывалась за честной пометкой соседнего абзаца через две строки живого SQL. Правило переделано принципиально: пояснение засчитывается, только если от имени до него идут одни пояснения. Полный прогон: 5011 проверок, красных 0, ровно плюс две мои. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>