mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-30 14:05:53 +03:00
feat(skd-validate): проверка схемы компоновки по XSD платформы (#101)
Если в проекте есть схемы /v8-xsd-fetch, skd-validate дополнительно
проверяет порядок элементов, типы и значения по XSD версии формата
выгрузки (штамп Configuration.xml или корня внешнего отчёта). Схемы
точной версии — ошибки, только более новой — предупреждения, иначе
проверка пропускается. Места, которые платформа пишет иначе, чем
описывает XSD, отсекаются по месту нарушения: на 2606 схемах компоновки
выгрузок БП, УНФ и ERP (форматы 2.17–2.21) — ни одного срабатывания в
обоих портах.
Runner: поле кейса requires (путь от корня репозитория, нет — skipped)
и плейсхолдер {repoRoot} — кейсы на настоящих схемах, которые в
репозиторий не входят.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018dc2yLQfw6wppbopM1Y4Ps
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
9293305a12
commit
5465a7803c
@@ -24,7 +24,8 @@ Exit code: 0 = все прошли, 1 = есть падения.
|
||||
### Сколько кейсов должно быть пропущено
|
||||
|
||||
`○ skipped` — норма, а не падение: кейс может гейтиться по ОС (`osOnly`), по порту
|
||||
(`runtimeOnly`) или требовать внешней выгрузки (`setup: external:`), которой на машине нет.
|
||||
(`runtimeOnly`), требовать внешней выгрузки (`setup: external:`), которой на машине нет, или
|
||||
локальных данных вне репозитория (`requires`, например XSD-схемы 1С в `.v8-xsd`).
|
||||
Но само число ни о чём не говорит, пока не с чем сверить, а запоминать его нельзя — оно растёт
|
||||
с набором кейсов.
|
||||
|
||||
@@ -402,6 +403,7 @@ ibcmd-проход автоматически `○ skipped`, если рядом
|
||||
| `noSnapshot` | нет | Непустая строка с причиной — кейс объявляет, что эталон не нужен (см. «Эталоны») |
|
||||
| `idempotent` | нет | `true` — повторный прогон с теми же аргументами должен дать байт-в-байт тот же `workDir` |
|
||||
| `runtimeOnly` | нет | `"powershell"` / `"python"` — кейс имеет смысл только на одном порте, на другом `○ skipped` |
|
||||
| `requires` | нет | Путь или массив путей от корня репозитория, без которых кейс не имеет смысла (например `".v8-xsd/2.20"` — схемы 1С не входят в репозиторий). Нет пути — `○ skipped`. В `writeFile` путь к корню — плейсхолдер `{repoRoot}` |
|
||||
| `osOnly` | нет | `"win32"` / `"darwin"` / `"linux"` — кейс работает только на этой ОС, на других `○ skipped`. Принимает и массив: `["darwin","linux"]`. Для фейка платформы **не нужен**: см. `fakePlatform` |
|
||||
| `fakePlatform` | нет | `{ "log": "…", "exit": 0 }` — кейсу нужна фейковая платформа (см. ниже) |
|
||||
| `cwd` | нет | `"workDir"` — запустить навык из рабочего каталога (нужно, если кейс кладёт туда `.v8-project.json`) |
|
||||
|
||||
Reference in New Issue
Block a user