From fcc85c9c6ef682e91c95335a5d2675622a25cd98 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 15 Feb 2026 20:05:37 +0300 Subject: [PATCH] fix(db): improve skill docs after comprehensive testing - Add Russian morphology-aware matching for aliases and names - Standardize empty password handling: omit /P entirely - Add server base examples to db-create, db-load-cf, db-dump-xml, db-load-git - Fix Unstaged description to include untracked files - Add Partial mode hint to db-dump-xml Co-Authored-By: Claude Opus 4.6 --- .claude/skills/db-create/SKILL.md | 5 ++++- .claude/skills/db-dump-xml/SKILL.md | 11 ++++++++--- .claude/skills/db-list/SKILL.md | 6 +++--- .claude/skills/db-load-cf/SKILL.md | 10 +++++++--- .claude/skills/db-load-git/SKILL.md | 7 +++++-- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/.claude/skills/db-create/SKILL.md b/.claude/skills/db-create/SKILL.md index e6aad2af..28c8b426 100644 --- a/.claude/skills/db-create/SKILL.md +++ b/.claude/skills/db-create/SKILL.md @@ -68,7 +68,7 @@ allowed-tools: 2. Предложи зарегистрировать базу в `.v8-project.json` (через `/db-list add`) 3. Если указан шаблон `/UseTemplate` — предупреди что конфигурация будет загружена из шаблона -## Пример +## Примеры ```powershell $v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 @@ -76,6 +76,9 @@ $v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descen # Создать файловую базу & $v8.FullName CREATEINFOBASE File="C:\Bases\NewDB" /DisableStartupDialogs /Out "create.log" +# Создать серверную базу +& $v8.FullName CREATEINFOBASE Srvr="srv01";Ref="MyApp_Test" /DisableStartupDialogs /Out "create.log" + # Создать из шаблона CF & $v8.FullName CREATEINFOBASE File="C:\Bases\NewDB" /UseTemplate "C:\Templates\config.cf" /DisableStartupDialogs /Out "create.log" ``` diff --git a/.claude/skills/db-dump-xml/SKILL.md b/.claude/skills/db-dump-xml/SKILL.md index b21aa85c..a2972be2 100644 --- a/.claude/skills/db-dump-xml/SKILL.md +++ b/.claude/skills/db-dump-xml/SKILL.md @@ -78,18 +78,23 @@ powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.p | 0 | Успешно | | 1 | Ошибка (см. лог) | +> Если пользователь просит выгрузить конкретные объекты — используй `-Mode Partial` с `-Objects`. + ## Примеры ```powershell -# Полная выгрузка -powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -Password "" -ConfigDir "C:\WS\cfsrc" -Mode Full +# Полная выгрузка (файловая база) +powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Full # Инкрементальная выгрузка -powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Changes +powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Changes # Частичная выгрузка powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Mode Partial -Objects "Справочник.Номенклатура,Документ.Заказ" +# Серверная база +powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Dev" -UserName "Admin" -Password "secret" -ConfigDir "C:\WS\cfsrc" -Mode Full + # Выгрузка расширения powershell.exe -NoProfile -File .claude\skills\db-dump-xml\scripts\db-dump-xml.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\ext_src" -Mode Full -Extension "МоёРасширение" ``` diff --git a/.claude/skills/db-list/SKILL.md b/.claude/skills/db-list/SKILL.md index 3e6bb65a..be466520 100644 --- a/.claude/skills/db-list/SKILL.md +++ b/.claude/skills/db-list/SKILL.md @@ -87,9 +87,9 @@ allowed-tools: 1. Прочитай `.v8-project.json` (в корне проекта или ближайшем родительском каталоге) 2. Если пользователь указал базу — ищи совпадение в таком порядке: 1. По `id` (точное совпадение) - 2. По `aliases` (точное совпадение в массиве) + 2. По `aliases` (совпадение в массиве с учётом морфологии: «тестовую» = «тестовая» = «тестовой») 3. По `branches` (совпадение с текущей Git-веткой) - 4. По `name` (нечёткое совпадение) + 4. По `name` (нечёткое совпадение с учётом морфологии и регистра) 3. Если пользователь не указал базу — используй `default` 4. Если не найдено или неоднозначно — спроси пользователя 5. Если файл `.v8-project.json` не найден — спроси параметры подключения и предложи создать файл @@ -151,4 +151,4 @@ test Тестовая server srv01/MyApp_Test /N"" /P"" ``` -> **Важно**: между `/N` и именем пробела нет. Между `/P` и паролем пробела нет. Если пароль пустой — `/P""` или опустить `/P`. +> **Важно**: между `/N` и именем пробела нет. Между `/P` и паролем пробела нет. Если пароль пустой — опусти `/P` целиком. diff --git a/.claude/skills/db-load-cf/SKILL.md b/.claude/skills/db-load-cf/SKILL.md index dd6878fb..2b5556a9 100644 --- a/.claude/skills/db-load-cf/SKILL.md +++ b/.claude/skills/db-load-cf/SKILL.md @@ -66,13 +66,17 @@ $v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descen 1. Прочитай лог-файл и покажи результат 2. **Предложи выполнить `/db-update`** — загрузка CF обновляет только «основную» конфигурацию конфигуратора, для применения к БД нужен `/UpdateDBCfg` -## Пример +## Примеры ```powershell $v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1 -& $v8.FullName DESIGNER /F "C:\Bases\MyDB" /N"Admin" /P"" /LoadCfg "C:\backup\config.cf" /DisableStartupDialogs /Out "load.log" +# Файловая база +& $v8.FullName DESIGNER /F "C:\Bases\MyDB" /N"Admin" /LoadCfg "C:\backup\config.cf" /DisableStartupDialogs /Out "load.log" + +# Серверная база +& $v8.FullName DESIGNER /S "srv01/MyApp_Test" /N"Admin" /P"secret" /LoadCfg "config.cf" /DisableStartupDialogs /Out "load.log" # Не забудь обновить БД после загрузки! -& $v8.FullName DESIGNER /F "C:\Bases\MyDB" /N"Admin" /P"" /UpdateDBCfg /DisableStartupDialogs /Out "update.log" +& $v8.FullName DESIGNER /F "C:\Bases\MyDB" /N"Admin" /UpdateDBCfg /DisableStartupDialogs /Out "update.log" ``` diff --git a/.claude/skills/db-load-git/SKILL.md b/.claude/skills/db-load-git/SKILL.md index 942c6ca0..908d4f5b 100644 --- a/.claude/skills/db-load-git/SKILL.md +++ b/.claude/skills/db-load-git/SKILL.md @@ -70,7 +70,7 @@ powershell.exe -NoProfile -File .claude\skills\db-load-git\scripts\db-load-git.p |--------|----------| | `All` | Все незафиксированные: staged + unstaged + untracked | | `Staged` | Только проиндексированные (git add) | -| `Unstaged` | Только изменённые но не проиндексированные | +| `Unstaged` | Изменённые но не проиндексированные + новые (untracked) файлы | | `Commit` | Файлы из диапазона коммитов (требует `-CommitRange`) | ### Логика маппинга BSL → XML @@ -96,12 +96,15 @@ powershell.exe -NoProfile -File .claude\skills\db-load-git\scripts\db-load-git.p ## Примеры ```powershell -# Загрузить все незафиксированные изменения +# Загрузить все незафиксированные изменения (файловая база) powershell.exe -NoProfile -File .claude\skills\db-load-git\scripts\db-load-git.ps1 -V8Path "C:\Program Files\1cv8\8.3.25.1257\bin" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Source All # Только staged powershell.exe -NoProfile -File .claude\skills\db-load-git\scripts\db-load-git.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Source Staged +# Серверная база +powershell.exe -NoProfile -File .claude\skills\db-load-git\scripts\db-load-git.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyApp_Dev" -UserName "Admin" -Password "secret" -ConfigDir "C:\WS\cfsrc" -Source All + # Из диапазона коммитов powershell.exe -NoProfile -File .claude\skills\db-load-git\scripts\db-load-git.ps1 -InfoBasePath "C:\Bases\MyDB" -UserName "Admin" -ConfigDir "C:\WS\cfsrc" -Source Commit -CommitRange "HEAD~3..HEAD"