mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-10 13:33:21 +03:00
Прямой ответ на вопрос ишью #60. Гард inline-реализаций держал функции, но не словари — а именно там расхождение и накапливалось молча: тип Bot существовал в таблице спецификации и в трёх навыках, в остальных двенадцати его не было, и заметить это было нечем. Эталон — таблица «Порядок типов в ChildObjects» из docs/1c-configuration-spec.md (45 типов: имя, каталог, позиция). Берём документацию, а не отдельный JSON: тогда спека и код не расходятся молча, что и было целью ишью. Модель двухуровневая, как и предлагалось в обсуждении: общее ядро (имя, каталог, порядок) обязано совпадать у всех, а навык объявляет своё подмножество — исключение с ПРИЧИНОЙ. Проверка отличает намеренное ограничение от забытого типа. Сейчас исключение ровно одно: Language в cfe-diff, где записи в карте были бы недостижимы. Вокабуляры навыков (TYPE_ALIASES, TYPE_NORM_MAP, CONTENT_TYPE_MAP, TYPE_PLURAL_MAP) проверяются слабее: полнота не требуется, но каждое каноническое имя обязано существовать в таблице — это ловит опечатки. Пустое извлечение карты считается ошибкой разбора, иначе непонятый формат прошёл бы вхолостую. Проверено негативом: убранный тип, подменённый каталог и переставленный порядок дают ERROR и exit 1. cfe-borrow/SKILL.md: убрано обещание про количество поддерживаемых типов — оно уже протухло (было 44) и является обязательством, которое навык не проверяет. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>