docs(mxl-compile,mxl-decompile): каскад инструкций — файл на задачу

Каскад повторял спецификацию: reference/dsl-spec.md был её копией, а styles
и format-properties — копиями двух других файлов документации. Модель, чтобы
что-то сделать, читала спеку целиком.

Теперь в SKILL.md лежит то, что нужно почти всегда: компактный пример
печатной формы, структура DSL, области, строки, ячейки с короткой формой,
rowStyle и оформление из десяти частых ключей. Остальное — по файлу на
задачу: layout, print, drawings, input-cells, groups, notes,
style-properties, каждый 26-81 строка; читать нужно только свой.

Состав ядра выбран по частоте в обычных макетах (корпус без регламентированной
отчётности, которая перекашивала статистику): шрифт 93%, выравнивание 88/87%,
размещение текста 86%, рамки 57-72%, формат 52%; поля ввода и группы, наоборот,
оказались редкими — 7%.

В mxl-decompile переехало то, что относится к чтению чужого макета, а не
к авторингу: пересборка — полная перегенерация, побайтового совпадения ждать
не всегда стоит, и перечень конструкций, которые цикл не переживают.
This commit is contained in:
Nick Shirokov
2026-08-17 12:51:53 +03:00
parent da76bb6f01
commit 93ced4b239
11 changed files with 469 additions and 651 deletions
+21 -1
View File
@@ -41,4 +41,24 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-decompile.ps1"
3. Вызвать `/mxl-compile` для генерации нового Template.xml
4. Вызвать `/mxl-validate` для проверки
Формат JSON на выходе — тот же DSL, что принимает `/mxl-compile`; его полное описание живёт в навыке `/mxl-compile`.
Формат JSON на выходе — тот же DSL, что принимает `/mxl-compile`; его описание живёт в навыке `/mxl-compile`.
## Что нужно знать о пересборке
Правка через DSL — это полная перегенерация макета, а не точечное изменение XML. Поэтому
diff после цикла «декомпиляция → компиляция» обычно шире фактической доработки, даже когда
содержание сохранено целиком.
Побайтового совпадения с исходником ждать не всегда стоит. В макетах, которые долго правили
в Конфигураторе, остаются следы прежних состояний: например, формат ячейки несёт ширину
колонки, которая с тех пор изменилась. Из итогового документа такие значения не выводятся,
и в пересобранный файл они не возвращаются.
Не переживают цикл вовсе (в JSON не попадают, в XML не возвращаются):
- объединения, не привязанные к ячейке — по всей высоте или ширине документа;
- настройки диаграмм (`Chart`, `GanttChart`) — сам рисунок сохраняется, его содержимое нет;
- область печати.
Если задача — сохранить чужой макет как есть и поправить в нём малое, сверяйте результат
`/mxl-info` или diff-ом: перечисленное выше нужно вернуть руками.