Skip to content
Back to skills

Mxl Decompile

ASecurity

Чтение структуры макета табличного документа (MXL) через unica.view. Используй когда нужно разобрать существующий макет; обратной сборки в JSON-определение на поверхности нет

  • 213 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 11, 2026
toolsbash

Works with

  • mcp

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add IngvarConsulting/unica --skill mxl-decompile --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mxl Decompile?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mxl Decompile
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ingvarconsulting-mxl-decompile/badge)](https://www.skillsdirectory.com/skills/ingvarconsulting-mxl-decompile)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mxl-decompile
description: Чтение структуры макета табличного документа (MXL) через unica.view. Используй когда нужно разобрать существующий макет; обратной сборки в JSON-определение на поверхности нет
allowed-tools:
  - Bash
  - Read
  - Write
  - Glob
---

# /mxl-decompile — Декомпилятор макета в DSL

## MCP routing

- Preferred path: use MCP `unica` tool `unica.view` по адресу макета.
- Не зови внутренние адаптеры напрямую: они спрятаны за MCP `unica`.
- Чтение не меняет исходники: `view` отвечает проекцией узла и его ревизией.

Макет — узел логического дерева: `<набор>:<Вид>.<Имя>.Template.<Макет>`. Узел
макета отдаёт именованные области, параметры и наборы колонок; ветвь `Area`
раскрывает одну область, а её тело — ячейки. Файлового селектора у чтения нет;
путь, пришедший снаружи (из диффа, лога сборки), переводит в адрес аварийный
`unica.resolve`.

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.view",
    "arguments": {
      "at": "main:Report.Продажи.Template.ПФ_MXL_Продажи"
    }
  }
}
```

Одна область — адресом её ветви:

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.view",
    "arguments": {
      "at": "main:Report.Продажи.Template.ПФ_MXL_Продажи.Area.Шапка"
    }
  }
}
```

## Чего на поверхности нет

Обратной сборки макета в JSON-определение DSL **нет**: `view` отвечает своей
проекцией узла, а не форматом, который принимал бы обратный компилятор. DSL
ниже остаётся описанием формата для чтения, а не выходом инструмента. Если
задача требует ровно такого JSON — сообщи это как пробел контракта Unica MCP.

Правка макета идёт через `unica.apply` (`mxl.set`), см. `mxl-compile`.

## JSON-схема DSL

Полная спецификация формата: **`../../references/specs/mxl-dsl-spec.md`** (прочитать через Read tool).

## Генерация имён

Скрипт автоматически генерирует осмысленные имена:

- **Шрифты**: `default`, `bold`, `header`, `small`, `italic` — или описательные имена по свойствам
- **Стили**: `bordered`, `bordered-center`, `bold-right`, `border-top` и т.д. — по комбинации свойств

## Детектирование `rowStyle`

Если в строке есть пустые ячейки (без параметров/текста) и все они имеют одинаковый формат — этот формат распознаётся как `rowStyle`, а пустые ячейки исключаются из вывода.

## Адрес, а не путь

Имя набора даёт `unica.view {}`, адрес по имени объекта —
`unica.search {corpus: "names"}`, а путь, найденный иначе, переводит в адрес
аварийный `unica.resolve`. Файлового селектора у чтения нет вовсе: узел
адресуется логически.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…