fix(xdto-edit): диагностика без привязки к харнессу и к «всему комплекту»

Сообщение называло каталог .claude/skills, хотя проект портируется в
.cursor/skills, .codex/skills, .gemini/skills и другие — путь теперь
вычисляется от расположения скрипта и потому верен на любой порт-ветке.

И предлагало копировать весь набор навыков, хотя нужны ровно два соседа:
xdto-decompile и xdto-compile. Теперь называются только недостающие.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-26 12:50:31 +03:00
co-authored by Claude Opus 5
parent 679f820e52
commit a146fc1467
2 changed files with 7 additions and 6 deletions
@@ -141,10 +141,11 @@ function Assert-SiblingsPresent([string]$operation) {
$missing = @()
foreach ($k in $needed.Keys) { if (-not (Test-Path $needed[$k])) { $missing += $k } }
if ($missing.Count -gt 0) {
$skillsRoot = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent
throw ("Навык неработоспособен: рядом нет " + ($missing -join ", ") + ".`n" +
"Операция `"$operation`" выполняется через них, поэтому обойтись без них нельзя.`n" +
"Навыки устанавливаются комплектом — скопируйте каталог .claude/skills целиком, " +
"а не отдельные подкаталоги.")
"Операция `"$operation`" выполняется через " +
$(if ($missing.Count -gt 1) { "них" } else { "него" }) + ".`n" +
"Ожидаются в каталоге навыков: $skillsRoot")
}
}
@@ -166,9 +166,9 @@ def assert_siblings_present(operation):
missing = [k for k, v in needed.items() if not os.path.exists(v)]
if missing:
die("Навык неработоспособен: рядом нет " + ", ".join(missing) + ".\n"
+ f'Операция "{operation}" выполняется через них, поэтому обойтись без них нельзя.\n'
+ "Навыки устанавливаются комплектом — скопируйте каталог .claude/skills целиком, "
"а не отдельные подкаталоги.")
+ f'Операция "{operation}" выполняется через '
+ ("них" if len(missing) > 1 else "него") + ".\n"
+ "Ожидаются в каталоге навыков: " + SKILLS)
def invoke_sibling(script, argv, what):