mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 15:03:20 +03:00
docs(mxl): убрать из спеки результаты исследования, привести правила в порядок
Продолжение чистки после перечитывания глазами модели, которая применяет навык. - из раздела ограничений убраны доли по корпусу ERP. Это результат исследования, а не то, что помогает применять навык: модель работает с конкретным макетом, а не с популяцией, и числа стареют. Перечень того, что теряется при round-trip, остался списком; замеры живут в материалах кампании; - фраза про ошибки короткой формы была вырвана из контекста: шла после списка ограничений, начиналась с символа в кавычках, и до самого конца было непонятно, что речь про отказ. Плюс в один ряд попало разнородное — три случая про сам шорткат и переполнение columns, которое к короткой форме не привязано. Переписано правилами: маркеру нужно, что продолжать; объектный элемент не несёт col; элементов не больше columns. Поведение при нарушении — одной фразой в конце; - в SKILL.md ключевые правила шли вперемешку по уровням (страница, ячейка, строка, ячейка, область). Пересобраны сверху вниз: документ → область → строка → ячейка; - буллет про namedAreas сокращён: обнаружимость ключа даёт карта структуры, а из правил там неочевидно только отсутствие ключа type. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e268fbd71f
commit
8cae947f4b
@@ -60,14 +60,14 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J
|
||||
|
||||
Ключевые правила:
|
||||
- `page` — формат страницы (`"A4-landscape"`, `"A4-portrait"` или число). Автоматически вычисляет `defaultWidth` из суммы пропорций `"Nx"`
|
||||
- `col` — 1-based позиция колонки
|
||||
- `name` у области в `areas` необязателен: область без имени — просто кусок сетки, именованной она не станет
|
||||
- `namedAreas` — области, которые не описываются диапазоном подряд идущих строк: полоса колонок, прямоугольник, ячейка. Тип не указывается, он следует из того, какие оси заданы
|
||||
- `rowStyle` — автозаполнение пустот стилем (рамки по всей ширине)
|
||||
- Тип заполнения определяется автоматически: `param` → Parameter, `text` → Text, `template` → Template
|
||||
- `rowspan` — объединение строк вниз (rowStyle учитывает занятые ячейки)
|
||||
- `empty` в строке — шорткат для N подряд пустых строк (`{ "empty": 3 }` = три `{}`)
|
||||
- `name` у области в `areas` необязателен: область без имени — просто кусок сетки, в макет как именованная она не попадёт
|
||||
- `namedAreas` — области, которые не описываются диапазоном подряд идущих строк (полоса колонок, прямоугольник, ячейка). Тип не указывается: только `rows` → полоса строк, только `cols` → полоса колонок, обе оси → прямоугольник
|
||||
- Строку можно писать массивом ячеек — позиция из порядка, `col` не нужен: `"текст"`, `"{Имя}"` — параметр, `">"` — продолжить ячейку слева, `"|"` — сверху, `null` — пропуск колонки
|
||||
- `col` — 1-based позиция колонки
|
||||
- `rowspan` — объединение строк вниз (rowStyle учитывает занятые ячейки)
|
||||
- Тип заполнения определяется автоматически: `param` → Parameter, `text` → Text, `template` → Template
|
||||
|
||||
Двухуровневая шапка массивами:
|
||||
```json
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`;
|
||||
- `"|"` продолжает ячейку из предыдущей строки, только если её позиция известна явно (`col` задан или строка записана массивом).
|
||||
|
||||
`">"` без ячейки слева, `"|"` без ячейки сверху, объектный элемент с `col`, элементов больше `columns` → ненулевой код выхода и сообщение в stderr.
|
||||
Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.
|
||||
|
||||
## Ячейки (`cells[]`)
|
||||
|
||||
@@ -211,22 +211,18 @@
|
||||
|
||||
DSL описывает не все конструкции табличного документа. Перечисленное ниже **теряется при
|
||||
round-trip** (`/mxl-decompile` → `/mxl-compile`): в JSON оно не попадает, в сгенерированный
|
||||
XML не возвращается. Доля — по корпусу типовой ERP 8.3.24 (10 924 макета), где измерялась.
|
||||
XML не возвращается.
|
||||
|
||||
| Конструкция | Доля макетов |
|
||||
|-------------|--------------|
|
||||
| Ячейки-поля ввода (`containsValue` / `valueType` / `controlType`) | 53% |
|
||||
| Несколько наборов колонок (`columnsID`) — свои ширины у группы строк | 63% |
|
||||
| Объединения, не привязанные к ячейке (по всей высоте или ширине) | 16% |
|
||||
| Рисунки и картинки (в т.ч. штрихкоды) | 2% |
|
||||
| Цвет текста, цвет фона ячейки, скрытые строки/колонки, отступ | — |
|
||||
| Рамка с разным стилем у разных сторон; стили линий кроме сплошной | — |
|
||||
| Группировки строк и колонок | — |
|
||||
| Колонтитулы, параметры печати, область печати | — |
|
||||
- ячейки-поля ввода (`containsValue` / `valueType` / `controlType`);
|
||||
- несколько наборов колонок (`columnsID`) — свои ширины у группы строк;
|
||||
- объединения, не привязанные к ячейке (по всей высоте или ширине документа);
|
||||
- рисунки и картинки, в том числе штрихкоды;
|
||||
- цвет текста, цвет фона ячейки, скрытые строки и колонки, отступ;
|
||||
- рамка с разным стилем у разных сторон; стили линий кроме сплошной;
|
||||
- группировки строк и колонок;
|
||||
- колонтитулы, параметры печати, область печати;
|
||||
- многоязычные надписи: при разборе берётся первый вариант текста, при генерации язык
|
||||
всегда `ru`, остальные теряются.
|
||||
|
||||
**Многоязычные надписи не поддерживаются:** при разборе берётся первый вариант текста,
|
||||
при генерации язык всегда `ru`. Для двуязычных макетов (в ERP это почти весь корпус)
|
||||
надписи на остальных языках теряются.
|
||||
|
||||
Отдельно: пересборка макета из DSL — это полная перегенерация, а не точечная правка XML,
|
||||
поэтому diff после round-trip обычно шире фактической доработки.
|
||||
Пересборка макета из DSL — это полная перегенерация, а не точечная правка XML, поэтому
|
||||
diff после round-trip обычно шире фактической доработки.
|
||||
|
||||
+14
-18
@@ -178,7 +178,7 @@
|
||||
- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`;
|
||||
- `"|"` продолжает ячейку из предыдущей строки, только если её позиция известна явно (`col` задан или строка записана массивом).
|
||||
|
||||
`">"` без ячейки слева, `"|"` без ячейки сверху, объектный элемент с `col`, элементов больше `columns` → ненулевой код выхода и сообщение в stderr.
|
||||
Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.
|
||||
|
||||
## Ячейки (`cells[]`)
|
||||
|
||||
@@ -211,22 +211,18 @@
|
||||
|
||||
DSL описывает не все конструкции табличного документа. Перечисленное ниже **теряется при
|
||||
round-trip** (`/mxl-decompile` → `/mxl-compile`): в JSON оно не попадает, в сгенерированный
|
||||
XML не возвращается. Доля — по корпусу типовой ERP 8.3.24 (10 924 макета), где измерялась.
|
||||
XML не возвращается.
|
||||
|
||||
| Конструкция | Доля макетов |
|
||||
|-------------|--------------|
|
||||
| Ячейки-поля ввода (`containsValue` / `valueType` / `controlType`) | 53% |
|
||||
| Несколько наборов колонок (`columnsID`) — свои ширины у группы строк | 63% |
|
||||
| Объединения, не привязанные к ячейке (по всей высоте или ширине) | 16% |
|
||||
| Рисунки и картинки (в т.ч. штрихкоды) | 2% |
|
||||
| Цвет текста, цвет фона ячейки, скрытые строки/колонки, отступ | — |
|
||||
| Рамка с разным стилем у разных сторон; стили линий кроме сплошной | — |
|
||||
| Группировки строк и колонок | — |
|
||||
| Колонтитулы, параметры печати, область печати | — |
|
||||
- ячейки-поля ввода (`containsValue` / `valueType` / `controlType`);
|
||||
- несколько наборов колонок (`columnsID`) — свои ширины у группы строк;
|
||||
- объединения, не привязанные к ячейке (по всей высоте или ширине документа);
|
||||
- рисунки и картинки, в том числе штрихкоды;
|
||||
- цвет текста, цвет фона ячейки, скрытые строки и колонки, отступ;
|
||||
- рамка с разным стилем у разных сторон; стили линий кроме сплошной;
|
||||
- группировки строк и колонок;
|
||||
- колонтитулы, параметры печати, область печати;
|
||||
- многоязычные надписи: при разборе берётся первый вариант текста, при генерации язык
|
||||
всегда `ru`, остальные теряются.
|
||||
|
||||
**Многоязычные надписи не поддерживаются:** при разборе берётся первый вариант текста,
|
||||
при генерации язык всегда `ru`. Для двуязычных макетов (в ERP это почти весь корпус)
|
||||
надписи на остальных языках теряются.
|
||||
|
||||
Отдельно: пересборка макета из DSL — это полная перегенерация, а не точечная правка XML,
|
||||
поэтому diff после round-trip обычно шире фактической доработки.
|
||||
Пересборка макета из DSL — это полная перегенерация, а не точечная правка XML, поэтому
|
||||
diff после round-trip обычно шире фактической доработки.
|
||||
|
||||
Reference in New Issue
Block a user