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

4.1 KiB
Raw Blame History

Skill: Testing, CI and Release

Когда использовать

Используй этот skill при изменениях CI, release scripts, tests, dependencies, Tauri/NSIS packaging, offline component catalog или перед финальным отчётом по крупной задаче.

Minimal local checks

Frontend:

npm ci
npm run format:check
npm run lint
npm run typecheck
npm test -- --run
npm run build

Rust:

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:

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.