meta(tasks): update [setup-agents-task-runner-windows-fixes] in OpeItcLoc03/claude-skills

This commit is contained in:
2026-06-18 08:26:55 +00:00
parent f66f5a50b2
commit cf8d247250

View File

@@ -1349,6 +1349,40 @@ Findings → follow-up tasks в claude-skills.
## ⚪ [setup-agents-task-runner-windows-fixes] — Починить `setup-agents-task-runner` по итогам первого реального Windows-прогона. Скил v0.1.0 устанавливал, но службы вставали сломанными — 5 дефектов, все диагностированы и воркэраунд-починены в `OpeItcLoc03/common` dev-шаблонах. Нужно перенести в SKILL.md, чтобы fresh-install на новой машине работал без ручной отладки. ## ⚪ [setup-agents-task-runner-windows-fixes] — Починить `setup-agents-task-runner` по итогам первого реального Windows-прогона. Скил v0.1.0 устанавливал, но службы вставали сломанными — 5 дефектов, все диагностированы и воркэраунд-починены в `OpeItcLoc03/common` dev-шаблонах. Нужно перенести в SKILL.md, чтобы fresh-install на новой машине работал без ручной отладки.
## Дефекты (с проверенными фиксами в OpeItcLoc03/common)
1. **winsw serviceaccount: v3-схема при v2.12.0 пине.** Шаблоны: `<username>.\{{USER}}</username>` + `<allowservicelogonright>` (схема winsw v3). Пин — v2.12.0, молча игнорит незнакомые элементы → служба падает на LocalSystem без ошибки. Эталон из `sample-allOptions.xml` v2.12.0: `<domain>`+`<user>`+`<allowservicelogon>`. Фикс: коммит 681fcda. → привести serviceaccount-блок шаблонов к v2-схеме + заметка «схема обязана совпадать с major пина winsw».
2. **projects-meta-mcp не разворачивается в install-layout.** appeals импортит `projects-meta-mcp/dist/...` (bare, `file:../projects-meta-mcp` junction); watchdog — `../../../projects-meta-mcp/dist/...` (относит., ждёт соседа install-dir). Phase 4 копирует изолированно → junction виснет на `%LOCALAPPDATA%\projects-meta-mcp` → ERR_MODULE_NOT_FOUND краш-луп. → Phase 4: развернуть `projects-meta-mcp` соседом install-dir (junction на dev-дерево либо deploy-копия) + перенаправить appeals node_modules junction.
3. **PORT 3000 — коллизия с дев-портом.** Перенесён на 4316 во всех хост-юнитах (winsw/systemd/launchd) + watchdog TASK_RUNNER_URL. Docker-внутренний 3000 не трогали. Коммит 211d662. → дефолт хост-порта 4316.
4. **Home-резолюция.** Под LocalSystem `os.homedir()` → systemprofile → auth.toml не найден. После фикса run-as-user снимается само. На машине добавлен USERPROFILE/HOME env в рендеренные XML (не в dev-шаблоны). → решить: полагаться на run-as-user ИЛИ добавить env в шаблоны (тест на fresh-машине).
5. **Phase 8 не ловил LocalSystem** (службы Running как SYSTEM, прошли). → Phase 8 ассертить SERVICE_START_NAME/StartName == целевой юзер + порт-проверку.
Мелочь: PIN.md стух (.NET461 заметка vs self-contained Core 18МБ). Фикс 31bd5a9.
## Acceptance
- Fresh Windows-установка через обновлённый скил: 3 службы run-as-user (не LocalSystem), не-дев порты, отвечают по HTTP — без ручной правки junction/схемы/порта.
- Phase 8 реально ассертит аккаунт + порты.
- Linux/mac-ветки проверены на тот же класс (sibling-deploy, схема юнитов); winsw-специфична только деф.1.
- ВЕРИФИКАЦИЯ install-результата требует Windows-машины — если раннер на не-Windows, правки портируются и коммитятся, full-install проверка деферится (отметить в close-ноте).
## Обязательные скилы — вызвать до начала работы
- invoke `using-tasks` — статус задачи
- invoke `project-discipline` — semver-bump SKILL.md + дисциплина коммитов/пушей
- invoke `writing-skills` — правка скила по канону (Iron Law: тест-сценарий до правки)
- invoke `using-projects-meta` — контекст в OpeItcLoc03/common
**Контекст:** проверенные фиксы — `OpeItcLoc03/common` коммиты 681fcda / 211d662 / 31bd5a9, шаблоны `lib/agents-task-runner/service/`. Ops-runbook `concepts/agents-task-runner-ops.md` (who-does-what).
**TDD:** нет (правка процедуры; верификация = реальная установка).
**Разрешения:** интерны: нет | автопуш: нет
**Weight:** needs-claude
**Notify:** OpeItcLoc03/workshop
## Дефекты (с проверенными фиксами) ## Дефекты (с проверенными фиксами)
1. **winsw serviceaccount: v3-схема при v2.12.0 пине.** Шаблоны использовали `<username>.\{{USER}}</username>` + `<allowservicelogonright>` — это схема winsw **v3**. Пин — v2.12.0, который **молча игнорит** незнакомые элементы → служба падает на **LocalSystem** (без ошибки!). Эталон из `sample-allOptions.xml` v2.12.0: `<domain>` + `<user>` + `<allowservicelogon>`. Фикс в common: коммит 681fcda. → Skill: serviceaccount-блок шаблонов привести к v2-схеме; добавить заметку «схема обязана совпадать с major пина winsw». 1. **winsw serviceaccount: v3-схема при v2.12.0 пине.** Шаблоны использовали `<username>.\{{USER}}</username>` + `<allowservicelogonright>` — это схема winsw **v3**. Пин — v2.12.0, который **молча игнорит** незнакомые элементы → служба падает на **LocalSystem** (без ошибки!). Эталон из `sample-allOptions.xml` v2.12.0: `<domain>` + `<user>` + `<allowservicelogon>`. Фикс в common: коммит 681fcda. → Skill: serviceaccount-блок шаблонов привести к v2-схеме; добавить заметку «схема обязана совпадать с major пина winsw».