main
docs(231): README для guards/tools/githooks под новой структурой + фикс самоссылок
guard(arch-ratchet): селфтест 5/5 — аудит стражей 2026-08-08 нашёл его единственным храповиком без селфтеста; ловит рост метрики, снижение, равенство базе и повторяет прецедент 2026-08-07 (infer считал вхождения в комментариях вместо вызовов, база была завышена на 111) как отдельный проверяемый случай. Подключён в gate.sh рядом со стражем; строка в RATCHETS.md.
guard(#594, #595): accepted work must be merged, and the worktree count is now counted
guards(#597): a build that reports success without finishing
fix(№404, класс переносимости): бит исполнения выставлен всем 50 .sh (на Linux прямой вызов давал 126 — падали самотесты no-runtime-copy и build-test-identity) + check-ci-status выбирает интерпретатор по ФАКТУ исполнения (python3 в git-bash = заглушка Microsoft Store, python в Ubuntu отсутствует)
guard(262): wire the two new guards into the repo's selftest convention
guard(#585): check-ci-status refuses when it cannot read a commit's date
gate: close four of our own refusals, and flip multi-TU on by default
механизм: хук commit-msg закрывает четыре правила, которые я выполнял руками
gate: build all five flagship targets; enforce English commit messages
feat(№455): страж check-doc-truth — маркеры EXPECT_* + исполнимость `nova` команд
guard(#473): check-expect-markers derives KNOWN from test_runner.rs
guard: a flag nobody sets and nobody documents is not a feature
страж инвариантов: покрытие подписей 33%->86% по замеру владельца (широкий невод 131 признание, ловилось 43); добавлены группы «энфорса нет» и «обязательство без проверки»; расширение бесплатно — страж смотрит только добавляемые строки; исключён scripts/** как машинерия энфорса; селфтест 8 случаев
merge(249 Ф.5): http_proxy_chain разнесён на шесть файлов, Upstream — эффект, конфигурация по канону
manifests: English, enforced by a guard, and the generator fixed too
механизм: в main вливается только проверенное гейтом — хук pre-merge-commit
fix(гейт): селфтест накопления проверяет СВОЙСТВО, а не число из среды
верификация(№437): SMT выключена по умолчанию, включается флагом --verify (решение владельца — флаг, не догадка по содержимому); манифест(№444): E_DEP_PATH_OUTSIDE_REPO — кросс-реповый path теперь ЖЁСТКАЯ ошибка (был warning, месяцами пролистывался); страж путей + селфтест 4/4; терминология гейт/страж/храповик закреплена; удалён рабочий мусор probes-pk2 и scratch38
guard(262-b): nova:expect ratchet + D428 amendment
registry: every open K1 now says whether it blocks the tag, and why
onboarding: one page telling an agent what it may not do, and two guards keeping it honest
guard(221.1 №446/№447): check-single-mco-resume — единственный resume-сайт
spec: the hex blob literal is implemented, and a guard now says so
реестр: №467 К1 — ro не различает заимствование и копию, это корень дыр №375/№387/№370; РЕШЕНИЕ: ro всегда заимствование, копия явная (.clone()), режим становится честным перечислением; fix(селфтест measure): переключатель, снимающий все ворота занятости — селфтест падал внутри гейта не по своей теме
механизм(№482): пересборка после слияния — только если задет компилятор