meta(tasks): update [claude-skills-update-skill] in claude-skills
This commit is contained in:
@@ -574,7 +574,7 @@ Pre-commit hooks have `--no-verify`. Per `project-discipline` Rule 4 («never sk
|
||||
|
||||
---
|
||||
|
||||
## 🔴 [claude-skills-update-skill] — Orchestrator-скил `update-claude-skills` — Claude-Code-сторона аналог `hermes-installer-skill`. Триггеры: «обнови claude-skills», «sync claude-skills», «update claude-skills», «обнови всё». На Windows + Claude Code (а также Linux/Mac) прогоняет в одну команду полный uplift существующей установки:
|
||||
## ⚪ [claude-skills-update-skill] — Orchestrator-скил `update-claude-skills` — Claude-Code-сторона аналог `hermes-installer-skill`. Триггеры: «обнови claude-skills», «sync claude-skills», «update claude-skills», «обнови всё». На Windows + Claude Code (а также Linux/Mac) прогоняет в одну команду полный uplift существующей установки:
|
||||
|
||||
1. `git pull --ff-only` в `~/projects/claude-skills/` (если репа есть; иначе подсказать `git clone`).
|
||||
2. `git pull` + `npm run build` в `~/projects/.common/lib/projects-meta-mcp/` — только если изменения в source.
|
||||
@@ -590,8 +590,18 @@ Cross-platform: PowerShell-ветка + bash-ветка (как у `install.ps1`
|
||||
|
||||
Возможное пересечение с `factory-bootstrap` (проект `factory`, промоутнут 2026-05-06): выяснить scope-границу до начала работы. Если factory покрывает «инициализация машины с нуля до рабочего Claude Code» — этот скил фокусируется только на uplift существующей установки, не дублируя greenfield-bootstrap.
|
||||
|
||||
**Status:** done
|
||||
**Where I stopped:** Shipped. `scripts/update.sh` + `scripts/update.ps1` — pull/build/install/version-diff/reload-hint cycle. `skills/update-claude-skills/SKILL.md` v0.1.0 — thin wrapper, detects platform, calls script. `hermes/mapping.yaml` — mode: skip (Claude-Code-only). Build+install verified: `dist/update-claude-skills.skill` (1942 bytes), `~/.claude/skills/update-claude-skills/SKILL.md` v0.1.0, SKIPPED.md lists reason. Hermes rebuild: 24 skills (13 auto, 2 manual, 9 skip, 0 pending).
|
||||
**Status:** ready
|
||||
**Where I stopped:** **Приоритизировано 2026-05-07** — high priority, следующая для пика. После трёх живых incident'ов на stostayer.new машине, каждый из которых был ритуалом «обновить claude-skills на удалённой машине»:
|
||||
|
||||
1. **Bootstrap upgrade-mode false-positive** на claude-skills (template-литерал не имел tdd-criteria + recommend-dont-menu). Зафиксили через `[bootstrap-fix-tdd-recommend-template]` ✅ → v1.10.1.
|
||||
2. **`setup-interns` отсутствие clone-fallback** (skill bail-out на missing source) → `[setup-interns-clone-fallback]` + `[setup-interns-fix-paths]` ✅ → setup-interns v0.3.0.
|
||||
3. **`projects-meta-mcp` legacy standalone-install** на той машине + `npm install` не запускался при ручной миграции (silent skip из-за отсутствия node_modules).
|
||||
|
||||
Каждый раз ритуал: 1) git pull claude-skills 2) install.ps1 на конкретный изменённый skill 3) для MCP-серверов `cd .common/lib/<server> ; npm install ; npm run build` 4) `/reload-plugins`. На N машинах = N×ритуал на каждую правку. Все три incident'а были бы избежаны если бы на той машине жил скил `update-claude-skills`, выполняющий ровно эти 4 шага автоматом.
|
||||
|
||||
Дополнительный gain: при следующем добавлении нового MCP-сервера в `.common/lib/` (3-й, 4-й, ...) — нужна нулевая дополнительная работа на удалённых машинах. update-claude-skills скил детектит «появилась новая subdir в `.common/lib/<name>/` с pyproject.toml или package.json», предлагает запустить соответствующий setup-* (если есть в каталоге), либо просто билдит и не регистрирует (если setup-skill ещё не написан).
|
||||
|
||||
**Рекомендую** делать одной сессией в `~/projects/claude-skills/` — спека полная, scope узкий, ничего не блокирует.
|
||||
**Next action:** ⚠️ **ARCH-note (2026-05-07, после ревизии `.factory/factory.yaml`):** таска НЕ дубликат factory L1 — она Layer 2 citizen в дизайне factory. `factory.yaml` line 83-91 уже включает `claude-skills` как компонент с `post_install: 'bash {target}/scripts/install.sh'`. **Recommended shape (вариант B с оглядкой на A):** реальная update-логика — в `scripts/update.{ps1,sh}` (рядом с `install.{ps1,sh}`), один источник истины. Скил `update-claude-skills` — короткий wrapper, на триггер вызывает нужный скрипт по `active-platform`. Когда L1 Go-бинарь дойдёт — `factory update` использует те же скрипты без duplication.
|
||||
|
||||
1) Скрипты: `scripts/update.ps1` + `scripts/update.sh` в корне репы. Логика: pull/build/install в трёх местах (claude-skills + .common/lib/projects-meta-mcp + .common/lib/interns-mcp), version-diff, reload-hint. **Возможность совмещения с `[install-ps1]`:** добавить `--prune` flag сразу в `update.{ps1,sh}` и в `install.{ps1,sh}` (там 1 of 3 criteria из install-ps1). 2) Скил-структура: `skills/update-claude-skills/SKILL.md`, frontmatter `version: 0.1.0`, описание с триггерами («обнови claude-skills», «sync claude-skills»). Скил — wrapper, не содержит логику. 3) Build + install: `pwsh ./scripts/build.ps1 update-claude-skills`, `pwsh ./scripts/install.ps1 update-claude-skills`. 4) Smoke на текущей машине — должно быть no-op (всё свежее, идемпотентность). 5) Mapping в `hermes/mapping.yaml` (`mode: skip` — Claude-Code-only) или `mode: manual` если параллельно делаем Hermes-twin (логика та же, но Hermes-side скрипт другой — там не install.sh а skill_manage). 6) Обновить `.factory/factory.yaml` post_install: `bash {target}/scripts/update.sh` (или `pwsh ... update.ps1` если factory детектит OS) — отдельный 1-line PR в `.factory`. 7) Doc `.wiki/concepts/claude-skills-update-flow.md` (опционально слить с `install-cross-platform.md` из `[install-ps1]`). 8) `tasks_close`.
|
||||
|
||||
Reference in New Issue
Block a user