mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-12 21:20:52 +03:00
feat(skd,subsystem): add -Value param to skd-compile, full mode to skd-info and subsystem-info
- skd-compile: replace mandatory -JsonPath with -DefinitionFile/-Value pair, allowing inline JSON without temp files - skd-info: extract 6 mode bodies into functions, add -Mode full combining overview+query+fields+resources+params+variant in one call - subsystem-info: extract overview/content/ci into functions, add -Mode full combining all three in one call - Update SKILL.md docs and guides accordingly Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
2a4d2bf8df
commit
7268b169d8
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: skd-info
|
||||
description: Анализ структуры схемы компоновки данных 1С (СКД) — наборы, поля, параметры, варианты. Используй для понимания отчёта — источник данных (запрос), доступные поля, параметры
|
||||
argument-hint: <TemplatePath> [-Mode overview|query|fields|links|calculated|resources|params|variant|templates|trace] [-Name <dataset|variant|field|group>]
|
||||
argument-hint: <TemplatePath> [-Mode overview|query|fields|links|calculated|resources|params|variant|templates|trace|full] [-Name <dataset|variant|field|group>]
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
@@ -54,8 +54,9 @@ powershell.exe -NoProfile -File .claude\skills\skd-info\scripts\skd-info.ps1 -Te
|
||||
| `variant` | Список вариантов | Структура группировок + фильтры + вывод |
|
||||
| `templates` | Карта привязок шаблонов (field/group) | Содержимое шаблона: строки, ячейки, выражения |
|
||||
| `trace` | — | Полная цепочка: набор → вычисление → ресурс |
|
||||
| `full` | Полная сводка: overview + query + fields + resources + params + variant | — |
|
||||
|
||||
Паттерн: без `-Name` — карта/индекс, с `-Name` — деталь конкретного элемента.
|
||||
Паттерн: без `-Name` — карта/индекс, с `-Name` — деталь конкретного элемента. Режим `full` объединяет 6 ключевых режимов в один вызов.
|
||||
|
||||
## Типичный workflow
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$TemplatePath,
|
||||
[ValidateSet("overview", "query", "fields", "links", "calculated", "resources", "params", "variant", "trace", "templates")]
|
||||
[ValidateSet("overview", "query", "fields", "links", "calculated", "resources", "params", "variant", "trace", "templates", "full")]
|
||||
[string]$Mode = "overview",
|
||||
[string]$Name,
|
||||
[int]$Batch = 0,
|
||||
@@ -289,11 +289,7 @@ for ($i = $pathParts.Count - 1; $i -ge 0; $i--) {
|
||||
|
||||
$totalXmlLines = (Get-Content $resolvedPath).Count
|
||||
|
||||
# ============================================================
|
||||
# MODE: overview
|
||||
# ============================================================
|
||||
if ($Mode -eq "overview") {
|
||||
|
||||
function Show-Overview {
|
||||
$lines.Add("=== DCS: $templateName ($totalXmlLines lines) ===")
|
||||
$lines.Add("")
|
||||
|
||||
@@ -482,7 +478,9 @@ if ($Mode -eq "overview") {
|
||||
$lines.Add(" [$varIdx] $vName$vPresStr$structStr$filterStr")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Show-OverviewHints {
|
||||
# Hints — suggest next commands
|
||||
$lines.Add("")
|
||||
$hints = @()
|
||||
@@ -519,27 +517,35 @@ if ($Mode -eq "overview") {
|
||||
if ($totalCount -gt 0) {
|
||||
$hints += "-Mode resources resource aggregation ($totalCount)"
|
||||
}
|
||||
$params = $root.SelectNodes("s:parameter", $ns)
|
||||
if ($params.Count -gt 0) {
|
||||
$hints += "-Mode params parameter details"
|
||||
}
|
||||
$variants = $root.SelectNodes("s:settingsVariant", $ns)
|
||||
if ($variants.Count -eq 1) {
|
||||
$hints += "-Mode variant variant structure"
|
||||
} elseif ($variants.Count -gt 1) {
|
||||
$hints += "-Mode variant -Name <N> variant structure (1..$($variants.Count))"
|
||||
}
|
||||
$tplDefs = $root.SelectNodes("s:template", $ns)
|
||||
if ($tplDefs.Count -gt 0) {
|
||||
$hints += "-Mode templates template bindings and expressions"
|
||||
}
|
||||
$hints += "-Mode trace -Name <f> trace field origin (by name or title)"
|
||||
$hints += "-Mode full all sections at once"
|
||||
$lines.Add("Next:")
|
||||
foreach ($h in $hints) { $lines.Add(" $h") }
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: query
|
||||
# MODE: overview
|
||||
# ============================================================
|
||||
elseif ($Mode -eq "query") {
|
||||
if ($Mode -eq "overview") {
|
||||
Show-Overview
|
||||
Show-OverviewHints
|
||||
}
|
||||
|
||||
function Show-Query {
|
||||
# Find dataset
|
||||
$dataSets = $root.SelectNodes("s:dataSet", $ns)
|
||||
$targetDs = $null
|
||||
@@ -666,10 +672,13 @@ elseif ($Mode -eq "query") {
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: fields
|
||||
# MODE: query
|
||||
# ============================================================
|
||||
elseif ($Mode -eq "fields") {
|
||||
if ($Mode -eq "query") {
|
||||
Show-Query
|
||||
}
|
||||
|
||||
function Show-Fields {
|
||||
$dataSets = $root.SelectNodes("s:dataSet", $ns)
|
||||
|
||||
function Show-DataSetFields($dsNode) {
|
||||
@@ -881,6 +890,13 @@ elseif ($Mode -eq "fields") {
|
||||
}
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: fields
|
||||
# ============================================================
|
||||
if ($Mode -eq "fields") {
|
||||
Show-Fields
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: links
|
||||
# ============================================================
|
||||
@@ -980,11 +996,7 @@ elseif ($Mode -eq "calculated") {
|
||||
}
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: resources
|
||||
# ============================================================
|
||||
elseif ($Mode -eq "resources") {
|
||||
|
||||
function Show-Resources {
|
||||
$totalFields = $root.SelectNodes("s:totalField", $ns)
|
||||
if ($totalFields.Count -eq 0) {
|
||||
$lines.Add("(no resources)")
|
||||
@@ -1031,10 +1043,13 @@ elseif ($Mode -eq "resources") {
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: params
|
||||
# MODE: resources
|
||||
# ============================================================
|
||||
elseif ($Mode -eq "params") {
|
||||
if ($Mode -eq "resources") {
|
||||
Show-Resources
|
||||
}
|
||||
|
||||
function Show-Params {
|
||||
$params = $root.SelectNodes("s:parameter", $ns)
|
||||
$lines.Add("=== Parameters ($($params.Count)) ===")
|
||||
$lines.Add(" Name Type Default Visible Expression")
|
||||
@@ -1096,10 +1111,13 @@ elseif ($Mode -eq "params") {
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: variant
|
||||
# MODE: params
|
||||
# ============================================================
|
||||
elseif ($Mode -eq "variant") {
|
||||
if ($Mode -eq "params") {
|
||||
Show-Params
|
||||
}
|
||||
|
||||
function Show-Variant {
|
||||
$variants = $root.SelectNodes("s:settingsVariant", $ns)
|
||||
|
||||
if (-not $Name) {
|
||||
@@ -1274,6 +1292,30 @@ elseif ($Mode -eq "variant") {
|
||||
} # end else (variant detail)
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: variant
|
||||
# ============================================================
|
||||
if ($Mode -eq "variant") {
|
||||
Show-Variant
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: full
|
||||
# ============================================================
|
||||
elseif ($Mode -eq "full") {
|
||||
Show-Overview
|
||||
$lines.Add(""); $lines.Add("--- query ---"); $lines.Add("")
|
||||
Show-Query
|
||||
$lines.Add(""); $lines.Add("--- fields ---"); $lines.Add("")
|
||||
Show-Fields
|
||||
$lines.Add(""); $lines.Add("--- resources ---"); $lines.Add("")
|
||||
Show-Resources
|
||||
$lines.Add(""); $lines.Add("--- params ---"); $lines.Add("")
|
||||
Show-Params
|
||||
$lines.Add(""); $lines.Add("--- variant ---"); $lines.Add("")
|
||||
Show-Variant
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# MODE: trace
|
||||
# ============================================================
|
||||
|
||||
Reference in New Issue
Block a user