# Skill: Testing, CI and Release ## Когда использовать Используй этот skill при добавлении CI, release scripts, build fixes, test changes, dependency updates, packaging changes или перед финальным отчетом по крупной задаче. ## Minimal local checks Frontend: ```powershell npm ci npm run build ``` Rust: ```powershell cd src-tauri cargo fmt --all -- --check cargo clippy --all-targets --all-features -- -D warnings cargo test --all-targets ``` Tauri: ```powershell npm run tauri -- info npm run tauri -- build ``` PowerShell plan-only: ```powershell & .\scripts\install-control-app.ps1 -PlanOnly & .\scripts\install-proxyfier.ps1 -PlanOnly & .\scripts\install-singbox.ps1 -PlanOnly ``` ## CI recommendation Add GitHub Actions with at least: - frontend build on Windows and Ubuntu if practical; - Rust fmt/clippy/test; - PowerShell syntax/plan-only smoke on Windows; - Tauri build on Windows for release branches/tags; - artifact upload only for trusted release workflow. ## Dependency updates When changing dependencies: - Update lockfiles. - Check Tauri v2 compatibility. - Avoid adding large UI/runtime dependencies for tiny tasks. - Avoid adding shell/process libraries that bypass existing backend boundaries. - Note why dependency is needed. ## Release hygiene Before release: - Verify app version in `package.json` and Tauri config if applicable. - Verify icons/assets size. - Verify CSP and capabilities. - Verify no raw secrets/test URLs in repo. - Verify installer scripts with `-PlanOnly`. - Verify clean install on Windows VM. - Verify external SOCKS5 flow. - Verify local sing-box subscription flow. - Verify uninstall/safe cleanup behavior. ## Final report format ```text Changed: - ... Verified: - npm run build - cargo test Not verified: - Windows elevated install/uninstall, because ... Risks: - ... ``` Do not write “all tests pass” unless all listed relevant tests actually ran. Humanity has enough fictional dashboards. ## Как отчитываться Перед финальным ответом применить `.agent/skills/communication-reporting/SKILL.md` и `.agent/checklists/communication.md`. Минимум для нетривиальной задачи: - короткая сводка; - таблица файлов `Файл / Что изменилось / Зачем`; - важные места без пересказа каждой строки; - что проверено; - что не проверено; - конкретные риски.