README: установка и обновление командами для терминала
Обновление вынесено отдельным разделом, потому что главное в нём — шагов два, и первого мало: marketplace update тянет git-клон, а снимки плагинов лежат в ~/.claude/plugins/cache/<маркетплейс>/<плагин>/<версия>/ и двигаются только plugin update. Один шаг без второго выглядит как «обновил, а ничего не изменилось». Проверено на этой машине, а не выведено из документации: - cd в проект обязателен — вызов двигает одну запись реестра; av-dev-git стоит в шести проектах, вызов из dev-skills поднял версию ровно в одном, и не в том, откуда звали; - plugin update идемпотентен: на свежем плагине говорит already at the latest version; - сниппет со списком установленного скопирован из README и выполнен через bash — работает как написано; - версия реестра это первые 12 знаков хеша коммита, поэтому в тексте git rev-parse HEAD | cut -c1-12, а не git log --oneline. У install и marketplace add умолчание scope — user, и без --scope project плагин уедет не туда, куда указывает settings.json проекта; сказано в самих командах. Абзац про снос проектных копий вернулся под «Подключение»: он про установку. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,16 +97,23 @@ openspec/
|
|||||||
## Подключение
|
## Подключение
|
||||||
|
|
||||||
Плагин подключается **на уровне проекта**, чтобы был активен у всех, кто
|
Плагин подключается **на уровне проекта**, чтобы был активен у всех, кто
|
||||||
открывает репозиторий:
|
открывает репозиторий. Из терминала, в каталоге проекта:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
/plugin marketplace add https://git.vakhrushev.me/av/dev-skills.git --scope project
|
cd /path/to/project
|
||||||
/plugin install av-dev-pm@av-dev-skills --scope project
|
|
||||||
/plugin install av-dev-pipeline@av-dev-skills --scope project
|
# маркетплейс: один раз на проект. --scope project кладёт его
|
||||||
/plugin install av-dev-git@av-dev-skills --scope project
|
# в extraKnownMarketplaces этого репозитория (см. ниже), без флага — в user
|
||||||
|
claude plugin marketplace add https://git.vakhrushev.me/av/dev-skills.git --scope project
|
||||||
|
|
||||||
|
# плагины: scope обязателен, умолчание у команды — user, а нам нужен project
|
||||||
|
claude plugin install av-dev-pm@av-dev-skills --scope project
|
||||||
|
claude plugin install av-dev-pipeline@av-dev-skills --scope project
|
||||||
|
claude plugin install av-dev-git@av-dev-skills --scope project
|
||||||
```
|
```
|
||||||
|
|
||||||
…или те же команды из терминала через `claude plugin …`. Обе формы дописывают в
|
Те же команды изнутри Claude Code — со слешем: `/plugin marketplace add …`,
|
||||||
|
`/plugin install … --scope project`. Обе формы дописывают в
|
||||||
`.claude/settings.json` проекта то, что можно внести и руками:
|
`.claude/settings.json` проекта то, что можно внести и руками:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@@ -124,17 +131,61 @@ openspec/
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Маркетплейс — git-клон удалённого репозитория, и он обновляется явно:**
|
|
||||||
`claude plugin marketplace update av-dev-skills`. Локальные коммиты, не
|
|
||||||
отправленные на origin, до него не доедут — это уже однажды выглядело как
|
|
||||||
«плагин не работает».
|
|
||||||
|
|
||||||
**При установке в проект, где лежали проектные копии** скиллов и агентов
|
**При установке в проект, где лежали проектные копии** скиллов и агентов
|
||||||
(`.claude/skills/` — голые `task-pipeline`, `review-pipeline`, `task-batch`
|
(`.claude/skills/` — голые `task-pipeline`, `review-pipeline`, `task-batch`
|
||||||
и с префиксом проекта `<проект>-task-pipeline`,
|
и с префиксом проекта `<проект>-task-pipeline`,
|
||||||
`.claude/agents/<проект>-review-*.md`) — снеси их. Две копии одного скилла
|
`.claude/agents/<проект>-review-*.md`) — снеси их. Две копии одного скилла
|
||||||
расходятся, и побеждает та, что короче названа.
|
расходятся, и побеждает та, что короче названа.
|
||||||
|
|
||||||
|
## Обновление
|
||||||
|
|
||||||
|
**Обновление — два шага, и первого мало.** `marketplace update` тянет git-клон
|
||||||
|
маркетплейса, но снимки плагинов лежат отдельно, в
|
||||||
|
`~/.claude/plugins/cache/av-dev-skills/<плагин>/<версия>/`, и обновляются только
|
||||||
|
командой `plugin update`. Один шаг без второго выглядит как «обновил, а ничего не
|
||||||
|
изменилось» — так и было в первый раз.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 0. отправить свои коммиты: до клона доезжает только то, что на origin
|
||||||
|
git -C /path/to/dev-skills push origin master
|
||||||
|
|
||||||
|
# 1. клон маркетплейса
|
||||||
|
claude plugin marketplace update av-dev-skills
|
||||||
|
|
||||||
|
# 2. снимки плагинов — из каталога проекта, где они установлены
|
||||||
|
cd /path/to/project
|
||||||
|
claude plugin update av-dev-pm@av-dev-skills --scope project
|
||||||
|
claude plugin update av-dev-pipeline@av-dev-skills --scope project
|
||||||
|
claude plugin update av-dev-git@av-dev-skills --scope project
|
||||||
|
```
|
||||||
|
|
||||||
|
**`cd` в проект обязателен, и это не педантизм.** Команда правит запись реестра, а
|
||||||
|
записей столько, во скольких проектах плагин установлен; за вызов двигается
|
||||||
|
**одна**. Запущенная не из проекта, она обновит какую-то из них — наблюдалось:
|
||||||
|
`av-dev-git` стоял в шести проектах, один вызов поднял версию ровно в одном, и не
|
||||||
|
в том, из которого звали. Проекты обновляются поштучно.
|
||||||
|
|
||||||
|
Что стоит и какой версии — одной командой:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 - <<'EOF'
|
||||||
|
import json, pathlib
|
||||||
|
d = json.loads(pathlib.Path.home().joinpath(".claude/plugins/installed_plugins.json").read_text())
|
||||||
|
for name, entries in sorted(d["plugins"].items()):
|
||||||
|
if "av-dev" not in name:
|
||||||
|
continue
|
||||||
|
for e in entries:
|
||||||
|
print(f"{e['version']:14} {name:30} {e.get('projectPath', e.get('scope', ''))}")
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Версия — первые 12 знаков хеша коммита этого репозитория, так что сверяется
|
||||||
|
глазами с `git rev-parse HEAD | cut -c1-12`. Команда идемпотентна: на уже свежем
|
||||||
|
плагине скажет `already at the latest version`.
|
||||||
|
|
||||||
|
**Изменения применяются после перезапуска Claude Code** — работающая сессия
|
||||||
|
держит скиллы в контексте и про новый снимок не знает.
|
||||||
|
|
||||||
## Структура репозитория
|
## Структура репозитория
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user