groove-groovebook-publish — скилл для Claude Code: публикация
Скилл отправляет рабочую находку из проекта в общий репозиторий groovebook отдельным pull request. Пригодится после groove-work-compound, когда наработку стоит показать сообществу.
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a claude-codeЧто делает groove-groovebook-publish
Скилл берёт текст наработки, вычищает из него всё привязанное к конкретному проекту и открывает PR в настроенный репозиторий groovebook. Файл ложится по пути learned/<topic>/<YYYY-MM-DD>-<slug>.md, тело PR собирается по шаблону groovebook: Summary, Context, Learning, Groove skill area. В конце скилл печатает ссылку на PR.
Перед запуском нужно прописать groovebook: <owner>/<repo> в .groove/index.md и авторизоваться в GitHub через gh auth login. Без строки в .groove/index.md скилл просто выходит с сообщением, что groovebook не настроен, поэтому проверьте конфиг заранее. Ещё он форкает репозиторий, если форка нет, и создаёт ветку вида learning/<YYYY-MM-DD>-<slug>.
Скилл спросит тему, область скилла и односложное резюме, а перед публикацией покажет превью текста и уточнит, нет ли в нём внутренних имён, путей или названий продуктов. Если есть — поможет заменить их на общие описания. Слаг обрезается до 40 символов, а при занятом имени ветки добавляется суффикс -2, -3 и так далее.
Какие задачи решает
- опубликовать наработку из проекта в общий репозиторий через PR
- вычистить из текста внутренние имена и пути перед публикацией
- собрать файл наработки по шаблону groovebook
- создать ветку и форк репозитория без ручных команд git
- поделиться паттерном или анти-паттерном с сообществом
Примеры запросов агенту
- Опубликуй эту наработку в groovebook: при ревью PR лучше сначала прогонять линтер, чем ждать CI.
- groove-groovebook-publish: тема patterns, область compound, резюме — проверяй миграции на копии базы.
- Отправь в groovebook находку про то, как мы разбивали длинные задачи на шаги.
Как установить groove-groovebook-publish
1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a claude-code2Вручную: положить файлы
~/.claude/skills/groove-groovebook-publish/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/groove-groovebook-publish/
1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a codex2Вручную: положить файлы
.agents/skills/groove-groovebook-publish/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a cursor2Вручную: положить файлы
.cursor/skills/groove-groovebook-publish/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install andreadellacorte/groove groove-groovebook-publish2Вручную: положить файлы
.github/skills/groove-groovebook-publish/SKILL.md1Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a gemini-cli2Командой платформы
gemini skills install https://github.com/andreadellacorte/groove --path skills/groove-groovebook-publishВручную: положить файлы
.devin/skills/groove-groovebook-publish/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора13
Похожие
Рядом в теме «Настройка агента: память, контекст, субагенты»
Всё по теме «Настройка агента: память, контекст, субагенты» →Вопросы о groove-groovebook-publish
Как установить groove-groovebook-publish в Claude?
Выполните npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a claude-code. Скилл появится в ~/.claude/skills/groove-groovebook-publish/SKILL.md.
Что делает groove-groovebook-publish?
Публикует наработку из текущего проекта в репозиторий groovebook как pull request. Текст очищается от проектной специфики, файл пишется по шаблону groovebook, а в конце выводится ссылка на PR.
Что нужно настроить до запуска?
Строку groovebook: <owner>/<repo> в .groove/index.md и авторизацию GitHub через gh auth login. Если строка не задана, скилл завершится с сообщением о ненастроенном groovebook.
Исходный текст
SKILL.md · MIT
---
name: groove-groovebook-publish
description: "Publish a workflow learning to the groovebook shared commons as a GitHub PR. Use after groove-work-compound when a learning is worth sharing."
license: MIT
allowed-tools: Read Write Edit Glob Grep Bash(git:*) Bash(gh:*) AskUserQuestion
metadata:
author: andreadellacorte
---
# groove-groovebook-publish
Use $ARGUMENTS as the learning text if provided.
## Outcome
A learning from the current project is published to the configured groovebook repo as a pull request, stripped of any project-specific context, ready for community review.
## Acceptance Criteria
- Learning is published as a PR to `<groovebook>` repo
- PR uses the groovebook PR template format (Summary, Context, Learning, Groove skill area)
- File is written at `learned/<topic>/<YYYY-MM-DD>-<slug>.md` in the groovebook repo
- PR URL is printed to the user
## Steps
1. Read `groovebook:` from `.groove/index.md`; if absent, exit with:
`groovebook is not configured. Add 'groovebook: <owner>/<repo>' to .groove/index.md to enable.`
2. Check `gh auth status`; if not authenticated, exit with:
`Not authenticated with GitHub. Run: gh auth login`
3. Verify the groovebook repo is accessible: `gh repo view <groovebook>`; if it fails, exit with a clear message.
4. Get the learning text:
- If $ARGUMENTS is provided, use it as a starting point
- Otherwise: ask "What's the learning you'd like to publish? (paste it or describe briefly)"
- Ask for a one-sentence summary (used as PR title and filename slug)
5. Show a preview of the learning text and ask:
`Does this contain any repo-specific context to redact? (file paths, internal names, product names)`
- If yes: help the user redact it — replace specific names with generic descriptions
- If no: proceed
6. Ask for topic (e.g. `patterns`, `tools`, `anti-patterns`, `workflow`) and skill area (e.g. `compound`, `plan`, `review`, `daily`)
7. Generate slug: lowercase the summary, replace spaces with hyphens, strip special characters, truncate to 40 chars. Construct:
- Branch name: `learning/<YYYY-MM-DD>-<slug>`
- File path: `learned/<topic>/<YYYY-MM-DD>-<slug>.md`
8. Fork the groovebook repo if not already forked: `gh repo fork <groovebook> --clone=false`
- If fork already exists, skip silently
9. Create the branch and file:
- `gh api repos/<user-fork>/git/refs` to check if branch exists; if so, append a short unique suffix
- Write the file content (see format below) and commit via `gh api`
- Or: use `git` operations against the fork URL if `gh api` approach is too complex — prefer the simpler path
10. Open the PR:
```
gh pr create --repo <groovebook> \
--title "<one-sentence summary>" \
--body "<formatted body>" \
--head "<fork-user>:<branch-name>"
```
11. Print the PR URL
## Learning file format
```markdown
---
date: YYYY-MM-DD
topic: <topic>
skill-area: <skill-area>
source: groovebook-publish
---
# <One-sentence summary>
## Context
<What triggered this learning — what problem were you solving? Generic, no project specifics.>
## Learning
<The insight itself — what to do, what to avoid, or what pattern works.>
## Groove skill area
`<skill-area>` (e.g. `groove-work-compound`, `groove-work-plan`)
```
## PR body format
```
## Summary
<one-sentence summary>
## Context
<what triggered this>
## Learning
<the insight>
## Groove skill area
`<skill-area>`
---
*Published via groove-groovebook-publish*
```
## Constraints
- Never publish learning text that contains project-specific names, file paths, or internal identifiers without explicit user confirmation that it's intentional
- If the fork step fails due to permissions: suggest the user fork manually and set their fork as the `groovebook:` value
- Slug must be safe for use as a filename: lowercase, hyphens only, no path separators or special characters
- If branch already exists: append `-2`, `-3`, etc. until a free name is found
© andreadellacorte · MIT · andreadellacorte/groove