Skip to main content
skill CX Codex

groove-groovebook-publish — Claude Code skill: publish learnings

This skill sends a workflow learning from your project to the shared groovebook repo as a pull request. Handy after groove-work-compound, when a finding deserves a wider audience.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a claude-code
Open on GitHub

What groove-groovebook-publish does

The skill takes your learning text, strips project-specific context, and opens a PR against the configured groovebook repo. The file lands at learned/<topic>/<YYYY-MM-DD>-<slug>.md, and the PR body follows the groovebook template: Summary, Context, Learning, Groove skill area. When it finishes, it prints the PR URL.

Two things must be in place first: a groovebook: <owner>/<repo> line in .groove/index.md and GitHub auth via gh auth login. Without the config line the skill exits with a message that groovebook is not configured, so check that file before you run it. It also forks the repo if you have no fork yet and creates a branch named learning/<YYYY-MM-DD>-<slug>.

Expect a few questions: topic, skill area, and a one-sentence summary. Before publishing, the skill previews the text and asks whether it holds internal names, file paths or product names. If it does, it helps you swap them for generic wording. Slugs are lowercased and cut to 40 characters, and a taken branch name gets a -2, -3 suffix.

What it helps with

  • publish a project learning to a shared repo as a PR
  • redact internal names and file paths before publishing
  • build a learning file in the groovebook template
  • fork the repo and create a branch without manual git work
  • share a pattern or anti-pattern with the community

Example prompts for the agent

  • Publish this learning to groovebook: run the linter before waiting on CI in a review PR.
  • groove-groovebook-publish: topic patterns, skill area compound, summary — test migrations against a database copy.
  • Send the groovebook learning about how we split long tasks into steps.

How to install groove-groovebook-publish

1Skills CLI (Vercel)

npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a claude-code

2Manually: put the files in place

~/.claude/skills/groove-groovebook-publish/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/groove-groovebook-publish/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about groove-groovebook-publish

How do I install groove-groovebook-publish in Claude?

Run npx skills add andreadellacorte/groove --skill groove-groovebook-publish -a claude-code. The skill then lives at ~/.claude/skills/groove-groovebook-publish/SKILL.md.

What does groove-groovebook-publish do?

It publishes a learning from the current project to the groovebook repo as a pull request. The text is cleaned of project specifics, the file follows the groovebook template, and the PR URL is printed at the end.

What has to be set up before running it?

A groovebook: <owner>/<repo> line in .groove/index.md and GitHub auth through gh auth login. Without the config line the skill exits saying groovebook is not configured.

Source text

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

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set13

groove-work-plan Researches your codebase and writes a concrete implementation plan with ordered steps, file paths and function names. Meant to run after brainstorming. CX Codex +1 544installs groove-work-compound This skill documents lessons after a review or planning session, updates project rules and templates, and traces root causes of mistakes. CX Codex +1 540installs groove-work-exec This skill takes a finished implementation plan and writes the code, tests and docs for it, logging progress in your task backend. Use it once planning is done. CX Codex +1 536installs groove-admin-update Pulls the latest groove skills and applies pending migrations to your local groove state. Useful when a new release lands but your config and memory are still on the old one. CX Codex +1 528installs groove-admin-cursor-hooks Registers groove's native Cursor hooks in .cursor/hooks.json: context re-priming after compaction, end-of-day reminders, a git commit buffer and managed-path protection. CX Codex +1 518installs groove-utilities-memory-graduate Promotes a stable workflow insight from .groove/memory/learned/ into AGENTS.md, so the rule applies to every future session without running prime. CX Codex +1 510installs groove-utilities-onboard Writes a GROOVE.md at the project root so a new contributor knows which commands to run and where logs live. Handy when someone joins a groove project. CX Codex +1 505installs groove-admin-claude-statusline Installs a single-line statusline in Claude showing model, git context, token usage and rate limits. Useful when you want session state visible at a glance. CX Codex +1 501installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor