feat(validate): brief output by default, -Detailed for verbose

All 10 validation skills (meta, epf, skd, cf, cfe, form, mxl, role,
subsystem, interface) now output a single summary line on success:
=== Validation OK: Type.Name (N checks) ===

Errors/warnings always shown. Full per-check [OK] output behind -Detailed flag.
Removed all N/A check lines. Unified role-validate output format.
Trimmed SKILL.md files from 42-119 to 51-67 lines.
Version bumps: meta-validate v1.2, all others v1.1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-03-09 18:14:44 +03:00
co-authored by Claude Opus 4.6
parent 93e4130ff2
commit 422e397381
30 changed files with 685 additions and 816 deletions
@@ -1,9 +1,11 @@
# skd-validate v1.0 — Validate 1C DCS structure
# skd-validate v1.1 — Validate 1C DCS structure
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
[string]$TemplatePath,
[switch]$Detailed,
[int]$MaxErrors = 20,
[string]$OutFile
@@ -33,6 +35,7 @@ $fileName = [System.IO.Path]::GetFileName($resolvedPath)
$script:errors = 0
$script:warnings = 0
$script:okCount = 0
$script:stopped = $false
$script:output = New-Object System.Text.StringBuilder 4096
@@ -43,7 +46,8 @@ function Out-Line {
function Report-OK {
param([string]$msg)
Out-Line "[OK] $msg"
$script:okCount++
if ($Detailed) { Out-Line "[OK] $msg" }
}
function Report-Error {
@@ -62,10 +66,14 @@ function Report-Warn {
}
$finalize = {
Out-Line ""
Out-Line "=== Result: $($script:errors) errors, $($script:warnings) warnings ==="
$result = $script:output.ToString()
$checks = $script:okCount + $script:errors + $script:warnings
if ($script:errors -eq 0 -and $script:warnings -eq 0 -and -not $Detailed) {
$result = "=== Validation OK: $fileName ($checks checks) ==="
} else {
Out-Line ""
Out-Line "=== Result: $($script:errors) errors, $($script:warnings) warnings ($checks checks) ==="
$result = $script:output.ToString()
}
Write-Host $result
if ($OutFile) {
@@ -1,4 +1,4 @@
# skd-validate v1.0 — Validate 1C DCS structure (Python port)
# skd-validate v1.1 — Validate 1C DCS structure (Python port)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import os
@@ -13,11 +13,13 @@ sys.stderr.reconfigure(encoding="utf-8")
parser = argparse.ArgumentParser(allow_abbrev=False)
parser.add_argument("-TemplatePath", required=True)
parser.add_argument("-Detailed", action="store_true")
parser.add_argument("-MaxErrors", type=int, default=20)
parser.add_argument("-OutFile", default="")
args = parser.parse_args()
template_path = args.TemplatePath
detailed = args.Detailed
max_errors = args.MaxErrors
out_file = args.OutFile
@@ -39,6 +41,7 @@ file_name = os.path.basename(resolved_path)
errors = 0
warnings = 0
ok_count = 0
stopped = False
output_lines = []
@@ -48,7 +51,10 @@ def out_line(msg):
def report_ok(msg):
out_line(f"[OK] {msg}")
global ok_count
ok_count += 1
if detailed:
out_line(f"[OK] {msg}")
def report_error(msg):
@@ -66,9 +72,13 @@ def report_warn(msg):
def finalize():
out_line("")
out_line(f"=== Result: {errors} errors, {warnings} warnings ===")
result = "\n".join(output_lines)
checks = ok_count + errors + warnings
if errors == 0 and warnings == 0 and not detailed:
result = f"=== Validation OK: {file_name} ({checks} checks) ==="
else:
out_line("")
out_line(f"=== Result: {errors} errors, {warnings} warnings ({checks} checks) ===")
result = "\n".join(output_lines)
print(result)
if out_file:
with open(out_file, "w", encoding="utf-8-sig") as f: