release · ypollak2 — скилл для Claude Code: релиз и установка
Скилл ведёт релиз llm-router от выбора версии до публикации в PyPI и GitHub. Запускайте /release, когда готовы выпустить новую версию.
npx skills add ypollak2/llm-router --skill release -a claude-codeЧто делает release
Скилл просит указать версию, синхронизирует её в pyproject.toml и двух файлах плагина, затем добавляет запись в CHANGELOG.md. После этого он запускает тесты и Ruff, проверяет совпадение версий и при изменении хуков копирует их в ~/.claude/hooks/.
Дальше сценарий коммитит изменения, создаёт тег и отправляет его в Git, публикует пакет в PyPI, создаёт GitHub Release и переустанавливает плагин. В конце он записывает решение в docs/decisions.md. Тесты выполняются через uv run, а для публикации нужен токен PyPI из /Users/yali.pollak/.pypirc; если проверки завершатся с ошибкой, релиз прерывается.
Какие задачи решает
- Синхронизировать номер версии в файлах проекта и плагина
- Обновить
CHANGELOG.mdперед выпуском - Проверить тесты и совпадение версий до публикации
- Собрать и опубликовать релиз в PyPI и GitHub
Примеры запросов агенту
- Подготовь выпуск версии
4.0.1через/release. - Запусти
/releaseи проведи релиз по шагам. - Выпусти текущую версию llm-router командой
/release.
Как установить release
1Через Skills CLI (Vercel)
npx skills add ypollak2/llm-router --skill release -a claude-code2Вручную: положить файлы
~/.claude/skills/release/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/release/
1Через Skills CLI (Vercel)
npx skills add ypollak2/llm-router --skill release -a codex2Вручную: положить файлы
.agents/skills/release/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add ypollak2/llm-router --skill release -a cursor2Вручную: положить файлы
.cursor/skills/release/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install ypollak2/llm-router release2Вручную: положить файлы
.github/skills/release/SKILL.md1Через Skills CLI (Vercel)
npx skills add ypollak2/llm-router --skill release -a gemini-cli2Командой платформы
gemini skills install https://github.com/ypollak2/llm-router --path skills/releaseВручную: положить файлы
.devin/skills/release/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add ypollak2/llm-router --skill release -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о release
Как установить release в Claude Code?
Выполните npx skills add ypollak2/llm-router --skill release -a claude-code. Файл скилла находится по пути ~/.claude/skills/release/SKILL.md.
Что делает скилл release?
Он проводит релиз llm-router: обновляет версии и журнал изменений, запускает проверки, создаёт тег, публикует пакет и GitHub Release.
Что нужно для публикации в PyPI?
Скилл читает токен из /Users/yali.pollak/.pypirc и передаёт его команде uv publish. Если тесты или проверка Ruff завершаются ошибкой, релиз прекращается.
Исходный текст
SKILL.md · MIT
---
name: release
description: Run the full llm-router release pipeline: version bump, checks, tag and publish
trigger: /release
---
# /release — llm-router Release Skill
Automates the full release pipeline for llm-router. Run this skill whenever
you are ready to ship a new version.
## Steps
### 1. Confirm version
Ask the user: "What version are we releasing?" (e.g. `4.0.1`)
### 2. Sync all version strings
Update ALL of the following to the new version — grep first to catch any extras:
```bash
grep -rn "version" pyproject.toml .claude-plugin/plugin.json .claude-plugin/marketplace.json --include="*.toml" --include="*.json" | grep -v ".venv"
```
Files to update:
- `pyproject.toml` → `version = "X.Y.Z"`
- `.claude-plugin/plugin.json` → `"version": "X.Y.Z"`
- `.claude-plugin/marketplace.json` → `"version": "X.Y.Z"`
### 3. Update CHANGELOG.md
Add entry at the top:
```
## vX.Y.Z — YYYY-MM-DD
### What's new
- <bullet points>
### Technical notes
- <any migration notes>
```
### 4. Run tests — abort if any fail
```bash
uv run pytest tests/ -q --ignore=tests/test_integration.py
uv run ruff check src/ tests/
```
### 5. Verify version sync
```bash
python3 -c "
import tomllib, json
v1 = tomllib.load(open('pyproject.toml','rb'))['project']['version']
v2 = json.load(open('.claude-plugin/plugin.json'))['version']
v3 = json.load(open('.claude-plugin/marketplace.json'))['version']
assert v1==v2==v3, f'MISMATCH: pyproject={v1} plugin={v2} marketplace={v3}'
print(f'✅ All versions in sync: {v1}')
"
```
### 6. Deploy hooks (if any hook changed)
```bash
install -m 755 src/llm_router/hooks/auto-route.py ~/.claude/hooks/llm_router-auto-route.py
install -m 755 src/llm_router/hooks/session-end.py ~/.claude/hooks/llm_router-session-end.py
install -m 755 src/llm_router/hooks/session-start.py ~/.claude/hooks/llm_router-session-start.py
install -m 755 src/llm_router/hooks/enforce-route.py ~/.claude/hooks/llm_router-enforce-route.py
```
### 7. Commit and tag
```bash
git add -p # stage deliberately — never git add .
git commit -m "feat(vX.Y.Z): <headline>"
git tag vX.Y.Z
git push && git push origin --tags
```
### 8. Publish to PyPI
```bash
rm -rf dist/ && uv build
PYPI_TOKEN=$(python3 -c "import configparser; c=configparser.ConfigParser(); c.read('/Users/yali.pollak/.pypirc'); print(c['pypi']['password'])")
uv publish --token "$PYPI_TOKEN"
```
### 9. Create GitHub Release
```bash
gh release create vX.Y.Z \
--title "vX.Y.Z — <headline>" \
--latest \
--notes "## What's new
- <bullets from CHANGELOG>
## Upgrade
\`\`\`bash
pip install --upgrade llm-routing && llm-router install
\`\`\`"
```
### 10. Reinstall plugin locally
```bash
claude plugin reinstall llm-router
claude plugin list | grep llm-router
```
### 11. Log the decision
Append to `docs/decisions.md`:
```
## YYYY-MM-DD — Release vX.Y.Z
**Decision**: shipped version X.Y.Z
**What changed**: <summary>
**Outcome**: published to PyPI, plugin reinstalled
```
© ypollak2 · MIT · ypollak2/llm-router
Похожие скиллы
Все скиллы по теме «DevOps и инфраструктура» →Сначала — release от других авторов.