main
merge: comment-hygiene-2 — чистка комментариев std (batch 1-20) + линт-свип 330→13
fix(№453): EXPECT_TIMEOUT_MS больше не уносит фикстуру в timeout-лейн (подстрочный матч выбрасывал 7 конкурентных фикстур из гейта); неизвестные маркеры вычищены (EXPECT_OUTPUT->EXPECT_STDOUT ×5, мусорный EXPECT_RUN_OK ×3) + страж check-expect-markers со селфтестом 4/4; конвенция: миграция как четвёртое основание для инварианта (вопрос про план 196) и место контрактов в иерархии
style(225.1): вертикальный ритм — sweep классов a-e (std/src)
docs(endocs): encoding — translate csv/hex/ini/toml /// docs to English
195: std/ -> std/src/ (git mv, module-path без изменений)
std(naming): collections/hashmap → hash_map — единственный нарушитель snake_case-правила модулей
fix(221.1, №433): Lexer.char_at возвращает Option, не бросает !! на конце ввода
fix(std/encoding/json, реестр 221.1 №148): JsonObject — детерминированный порядок полей [M-json-encode-record-field-order-nondeterministic]
refactor(p-tryfrom): migrate str→numeric call sites off retracted try_from