Files
ProxyWarden/.agent/skills/testing-ci-release/SKILL.md
T
dokril efda8eb98f
CI / Windows baseline (push) Canceled after 0s
Release v2.0.0
2026-09-10 20:59:52 +03:00

94 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Skill: Testing, CI and Release
## Когда использовать
Используй этот skill при изменениях CI, release scripts, tests, dependencies, Tauri/NSIS packaging, offline component catalog или перед финальным отчётом по крупной задаче.
## Minimal local checks
Frontend:
```powershell
npm ci
npm run format:check
npm run lint
npm run typecheck
npm test -- --run
npm run build
```
Rust:
```powershell
Push-Location src-tauri
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets
Pop-Location
```
Tauri/build/release boundaries:
```powershell
npm run tauri -- info
& .\scripts\check-runtime-powershell-boundary.ps1 -CheckOnly
& .\scripts\update-component-bundle.ps1 -PlanOnly
& .\scripts\update-component-bundle.ps1 -CheckOnly
& .\scripts\audit-windows-smoke.ps1 -Mode PlanOnly
& .\scripts\prepare-release.ps1 -PlanOnly -SkipBuild
```
`PlanOnly`/`CheckOnly` должны возвращать structured JSON с `changed: false` и не менять repo, ProgramData, services или network state.
## Interaction smoke for UI motion
Build, lint и unit tests не проверяют motion/geometry. Для hover, disclosure, stagger или hit-target изменений проверь first/repeated/rapid toggle, keyboard focus, loading/long labels, `prefers-reduced-motion`, desktop и narrow window. Если visual smoke не выполнен, так и напиши.
## CI contract
Windows baseline должен включать:
- frontend format/lint/typecheck/tests/build;
- Rust fmt/clippy/all-target tests;
- Tauri environment check;
- runtime PowerShell boundary check;
- offline bundle PlanOnly + CheckOnly;
- Windows audit PlanOnly;
- release preparation PlanOnly with build skipped.
CI не изображает реальную SCM/UAC/driver проверку. Artifact upload и tag/publish допустимы только в отдельном trusted release workflow после принятой VM evidence.
## Dependency updates
- Обновить lockfiles.
- Проверить Tauri v2 и Windows x64 compatibility.
- Не добавлять dependency, если stdlib/native API или уже установленный crate решает задачу.
- Не добавлять shell/process library, возвращающую production PowerShell path.
- Объяснить, зачем dependency нужна и какой owner её вызывает.
## Release hygiene
Перед release candidate:
- версии совпадают в `package.json`, `package-lock.json`, `src-tauri/tauri.conf.json` и `src-tauri/Cargo.toml`;
- packaged component catalog, asset hashes, licenses и `THIRD_PARTY_NOTICES.md` согласованы;
- installer содержит consolidated offline component bundle и WebView2 Offline Installer;
- runtime PowerShell checker проходит, bundled cleanup script отсутствует;
- NSIS hook разделяет verify-only upgrade и full managed uninstall;
- fresh offline VM, legacy upgrade/rollback, foreign service refusal, UAC cancel, uninstall/reboot и реальные routing flows записаны в evidence;
- tag/publish выполняются только для того же проверенного commit.
Установка Control App не должна скрыто install/start/update routing-компоненты. Payloads могут быть в installer, но component mutation остаётся отдельным user action.
## Финальный отчёт
Разделить:
- `Проверено`: точные команды и результаты;
- `Не проверено`: Windows VM/UAC/SCM/driver/installer gaps;
- `Риски`: только конкретные release blockers.
Не писать «все тесты проходят», если весь релевантный набор действительно не запускался.
Перед ответом применить `.agent/skills/communication-reporting/SKILL.md` и `.agent/checklists/communication.md`.