From 730daf108993cde5122be6c0c156b19c038e348a Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 8 Mar 2026 17:18:29 +0300 Subject: [PATCH] fix(meta-compile): default bare String to String(10), fix SKILL.md examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bare `String` type (without length qualifier) now defaults to String(10) instead of String(0) — matching 1C Designer behavior. String(0) means unlimited length (NTEXT in SQL), which is rarely intended. Also fixes SKILL.md: removes misleading `"synonym": "авто"` from JSON example, clarifies synonym auto-generation from CamelCase name. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/meta-compile/SKILL.md | 6 +++--- .claude/skills/meta-compile/scripts/meta-compile.ps1 | 2 +- .claude/skills/meta-compile/scripts/meta-compile.py | 2 +- docs/meta-dsl-spec.md | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.claude/skills/meta-compile/SKILL.md b/.claude/skills/meta-compile/SKILL.md index e6d60e5d..e0a6bcc5 100644 --- a/.claude/skills/meta-compile/SKILL.md +++ b/.claude/skills/meta-compile/SKILL.md @@ -29,17 +29,17 @@ powershell.exe -NoProfile -File .claude/skills/meta-compile/scripts/meta-compile ### Общая структура ```json -{ "type": "Catalog", "name": "Номенклатура", "synonym": "авто", ...свойства типа... } +{ "type": "Catalog", "name": "Номенклатура", ...свойства типа... } ``` -`type` и `name` — обязательные. `synonym` генерируется из `name` автоматически. +`type` и `name` — обязательные. `synonym` генерируется из `name` автоматически (CamelCase → слова через пробел). Можно задать явно: `"synonym": "Мой синоним"`. ### Shorthand реквизитов Используется в `attributes`, `dimensions`, `resources`, `tabularSections`: ``` -"ИмяРеквизита" → String без квалификаторов +"ИмяРеквизита" → String(10) по умолчанию "ИмяРеквизита: Тип" → с типом "ИмяРеквизита: Тип | req, index" → с флагами ``` diff --git a/.claude/skills/meta-compile/scripts/meta-compile.ps1 b/.claude/skills/meta-compile/scripts/meta-compile.ps1 index 0efa10fe..ed8cc6f4 100644 --- a/.claude/skills/meta-compile/scripts/meta-compile.ps1 +++ b/.claude/skills/meta-compile/scripts/meta-compile.ps1 @@ -239,7 +239,7 @@ function Emit-TypeContent { # String or String(N) if ($typeStr -match '^String(\((\d+)\))?$') { - $len = if ($Matches[2]) { $Matches[2] } else { "0" } + $len = if ($Matches[2]) { $Matches[2] } else { "10" } X "$indentxs:string" X "$indent" X "$indent`t$len" diff --git a/.claude/skills/meta-compile/scripts/meta-compile.py b/.claude/skills/meta-compile/scripts/meta-compile.py index f2528cc1..f1e9db8b 100644 --- a/.claude/skills/meta-compile/scripts/meta-compile.py +++ b/.claude/skills/meta-compile/scripts/meta-compile.py @@ -244,7 +244,7 @@ def emit_type_content(indent, type_str): # String or String(N) m = re.match(r'^String(\((\d+)\))?$', type_str) if m: - length = m.group(2) if m.group(2) else '0' + length = m.group(2) if m.group(2) else '10' X(f'{indent}xs:string') X(f'{indent}') X(f'{indent}\t{length}') diff --git a/docs/meta-dsl-spec.md b/docs/meta-dsl-spec.md index 3f986e8d..dee4aba0 100644 --- a/docs/meta-dsl-spec.md +++ b/docs/meta-dsl-spec.md @@ -112,7 +112,7 @@ JSON DSL для описания объектов метаданных конф ### 4.1 Строковая форма ``` -"ИмяРеквизита" → String (без квалификаторов) +"ИмяРеквизита" → String(10) по умолчанию "ИмяРеквизита: Тип" → с типом "ИмяРеквизита: Тип | req, index" → с флагами ```