From 1a601a4d0cf9e2b6dd1f8427e684b57ea7151658 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Tue, 9 Jun 2026 12:11:42 +0300 Subject: [PATCH] =?UTF-8?q?docs(form-decompile):=20GroupList=20=E2=80=94?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BE=20=D0=BA=D0=B0=D0=BA?= =?UTF-8?q?=20=D0=BE=D1=81=D0=BE=D0=B7=D0=BD=D0=B0=D0=BD=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=82=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Форменное свойство id:uuid ссылается на члена формы по оригинальному id + непрозрачному uuid. Компилятор раздаёт id заново (глобальный счётчик по порядку эмиссии) → оригинальный id не воспроизводится; uuid нигде больше в форме нет. Корректный раундтрип требовал бы имя-резолва с предпроходом присвоения id (свойство эмитится до реквизитов) — рефактор ради редкого (30 на корпус) свойства неясной семантики. Verbatim прошёл бы harness, но молча испортил бы ссылку при загрузке. Решение: честный LOST, документируем ограничение. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/skills/form-decompile/SKILL.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.claude/skills/form-decompile/SKILL.md b/.claude/skills/form-decompile/SKILL.md index 02f69af4..82b93a90 100644 --- a/.claude/skills/form-decompile/SKILL.md +++ b/.claude/skills/form-decompile/SKILL.md @@ -40,6 +40,7 @@ JSON-черновик в формате `/form-compile` — **не полное - **Покрытые узлы** — метаданные формы, реквизиты, параметры, команды, события, дерево базовых элементов (группы, поля, таблицы, страницы, кнопки и т.п.) ложатся в JSON как обычные узлы DSL. - **Непокрытое теряется молча** — конструкции вне зоны поддержки (богатые настройки полей, источники строк поиска, командные интерфейсы и др.) при декомпиляции опускаются. Поэтому навык **исключён из автоматического использования моделью** (`disable-model-invocation: true`): риск неполноты принимает на себя пользователь, явно вызывая `/form-decompile`. +- **`` (форменное свойство) не покрывается осознанно** — ссылка на члена формы в формате `id:uuid` с непрозрачным uuid и оригинальным id (компилятор раздаёт id заново → не воспроизводит), корректный раундтрип требует имя-резолва с предпроходом присвоения id. Редкое (30 на корпус), опускается. - **Критичные конструкции** (`CommandInterface`, `ConditionalAppearance`, неизвестный тип элемента, не-Form root) — скрипт падает с ненулевым кодом и сообщением в stderr; такую форму как образец брать нельзя, для правок — `/form-edit`. ## Workflow