From 717f3d8cc5385900d1fa56903e0786f1598c2575 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 14 Jun 2026 11:53:52 +0300 Subject: [PATCH] =?UTF-8?q?docs(form-decompile):=20=D1=81=D0=B6=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=20=C2=AB?= =?UTF-8?q?=D0=A7=D1=82=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B0=D0=B5?= =?UTF-8?q?=D1=88=D1=8C=C2=BB=20+=20=D0=B0=D0=BA=D1=82=D1=83=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20ring3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раздел разросся; ужал до сути (черновик, не обратим, теряет молча). Исправлен устаревший факт: CommandInterface и ConditionalAppearance (без scope) теперь поддерживаются (эмитятся), не валят скрипт. Падение — только CA со scope / design-time диаграммы-планировщики / неизвестный элемент / не-Form root. Убраны детали реализации (disable-model-invocation — во фронтматтере) и нишевый абзац про GroupList. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/skills/form-decompile/SKILL.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.claude/skills/form-decompile/SKILL.md b/.claude/skills/form-decompile/SKILL.md index 82b93a90..dfc904df 100644 --- a/.claude/skills/form-decompile/SKILL.md +++ b/.claude/skills/form-decompile/SKILL.md @@ -36,12 +36,9 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-decompile.ps1" ## Что получаешь -JSON-черновик в формате `/form-compile` — **не полное обратимое представление формы**. Раундтрип `xml → json → xml` пока не гарантируется: ряд конструкций управляемой формы DSL не покрывает. +JSON-черновик в формате `/form-compile` — **не полное обратимое представление**: раундтрип `xml → json → xml` не гарантируется, часть конструкций DSL не покрывает и **теряет молча**. -- **Покрытые узлы** — метаданные формы, реквизиты, параметры, команды, события, дерево базовых элементов (группы, поля, таблицы, страницы, кнопки и т.п.) ложатся в JSON как обычные узлы DSL. -- **Непокрытое теряется молча** — конструкции вне зоны поддержки (богатые настройки полей, источники строк поиска, командные интерфейсы и др.) при декомпиляции опускаются. Поэтому навык **исключён из автоматического использования моделью** (`disable-model-invocation: true`): риск неполноты принимает на себя пользователь, явно вызывая `/form-decompile`. -- **`` (форменное свойство) не покрывается осознанно** — ссылка на члена формы в формате `id:uuid` с непрозрачным uuid и оригинальным id (компилятор раздаёт id заново → не воспроизводит), корректный раундтрип требует имя-резолва с предпроходом присвоения id. Редкое (30 на корпус), опускается. -- **Критичные конструкции** (`CommandInterface`, `ConditionalAppearance`, неизвестный тип элемента, не-Form root) — скрипт падает с ненулевым кодом и сообщением в stderr; такую форму как образец брать нельзя, для правок — `/form-edit`. +Критичные конструкции (`ConditionalAppearance` со scope, design-time диаграммы/планировщики на реквизите, неизвестный тип элемента, не-Form root) → скрипт падает с ненулевым кодом и сообщением в stderr; для правок такой формы — `/form-edit`. ## Workflow