-
Nikitos создал
api_docs_sync ругался на два имени, разобраны по факту: - $.audio.musicStop — осознанный делегат в $.sound, ОПИСАН (строки в AGENT_API.md и абзац в sound.md: «продублированы в $.audio: тонкие делегаты, поведение одно»); - $.ctx.clip — внутренний мусор: ссылка контекста, выставленная для api.js. Сделана приватной (ctx._clip) и ушла из публичной поверхности; проверено живьём: typeof $.ctx.clip → undefined, typeof $.ctx._clip → object, $.clip работает. После этого api_freeze --write выполнен ОСОЗНАННО (переименование в снимке), 3064 имени. doc_coverage ругался на отсутствие страницы модуля: создан docs/highlevel/clip.md (56 строк) в стиле остальных — что такое клип, таблица define/get/list/remove, frames спрайтами и регионами С РАЗНЫХ ЛИСТОВ (+ skipped), fps/loop/pivot, пример, раздел «Границы и отличия» (размер узла клип НЕ меняет — граница с H10; клип по кадрам ≠ $.anim, где клипы по свойствам — можно сочетать) и команда прогона теста. Строка в навигации HIGH_LEVEL_API.md рядом с $.anim; прежний раздел про $.clip в anim.md заменён короткой ссылкой, чтобы не было двух описаний одного имени. Про $.звук.*: это ССЫЛКА-ЗЕРКАЛО на $.sound (таблица RU_NAMESPACES, звук → sound), а не отдельный набор имён — $.звук.stemsState появляется автоматически вместе с $.sound.stemsState и ведёт в ту же функцию. Гейт считает алиас задокументированным ровно тогда, когда задокументирован английский оригинал, отдельной страницы не нужно. Убирать алиас не стоит: это часть русского набора $ (как $.мир, $.камера), его отсутствие было бы дырой в наборе. Проверки: api_freeze rc=0 (заморозка держится), api_docs_sync rc=0 (3064 имени), doc_coverage rc=0, repository_hygiene rc=0 (Failures: 0); после переименования внутренней ссылки перепроверены clip_pitch, sound_music_api, highlevel_ui_contract, scene_audio_ownership — rc=0.
32da6d61