3.5 KiB
Skill: Windows Services / PowerShell / Elevation
Когда использовать
Используй этот skill при изменениях в scripts/*.ps1, ProxiFyre install/start/stop/uninstall, sing-box service control, UAC/admin checks, helper/elevation boundary, component detection.
Цель
Сохранять service/install operations явными, безопасными и проверяемыми. Пользователь должен понимать, что приложение собирается менять в системе. Компьютер пользователя — не песочница для творческих экспериментов агента, как ни печально.
Инварианты
- Install/start/stop/uninstall are explicit user actions.
applymust not silently install/uninstall/start/stop components unless that behavior is clearly designed and surfaced.-PlanOnlyscripts must be side-effect-free.- PowerShell output intended for UI/backend must be structured JSON.
- Service detection must distinguish managed service from fuzzy candidate.
- Never relax safe-path checks to make uninstall easier.
Script rules
PowerShell scripts should:
- use
Set-StrictMode -Version Latestwhere practical; - set
$ErrorActionPreference = 'Stop'; - return structured JSON for plan/status paths;
- avoid localized text parsing for control flow;
- avoid writing secrets to host output;
- have clear exit codes;
- support
-PlanOnlyfor dry-run/status checks; - avoid downloading/executing arbitrary remote scripts.
Elevation rules
When launching elevated PowerShell:
- keep command fixed and parameters escaped;
- avoid user-controlled script text;
- avoid predictable temp script names;
- do not pass secrets via command line;
- verify script path before launch;
- clean up temp artifacts best-effort;
- return clear error if user cancels UAC.
Service detection
Preferred approach:
- Search known managed service names first.
- Read service
PathNamethrough WMI/CIM. - Verify binary path and managed install metadata.
- Only then mark as managed/controllable.
- Fuzzy matches should be shown as candidates, not automatically controlled.
Testing
Pure logic can be tested cross-platform with mocks.
Real verification requires Windows:
& .\scripts\install-control-app.ps1 -PlanOnly
& .\scripts\install-proxyfier.ps1 -PlanOnly
& .\scripts\install-singbox.ps1 -PlanOnly
npm run tauri -- dev
For real service tests:
- Windows 10/11.
- Admin/UAC path.
- Fresh machine or VM snapshot.
- Existing ProxiFyre/sing-box absent.
- Existing fuzzy ProxiFyre-like service present, if testing safety.
Do not
- Do not claim actual service operations were tested unless they were run on Windows.
- Do not parse human-localized
sc.exeoutput if structured WMI/CIM data is available. - Do not delete paths from fuzzy discovery alone.
- Do not make scripts silently modify firewall/proxy/system settings outside their stated purpose.
Как отчитываться
Перед финальным ответом применить .agent/skills/communication-reporting/SKILL.md и .agent/checklists/communication.md.
Минимум для нетривиальной задачи:
- короткая сводка;
- таблица файлов
Файл / Что изменилось / Зачем; - важные места без пересказа каждой строки;
- что проверено;
- что не проверено;
- конкретные риски.