关于 groove-groovebook-publish
将当前项目中的经验整理后,发布到已配置的 groovebook 仓库并创建 PR。该技能面向希望分享可复用经验的项目工作流,并包含脱敏检查和 PR 格式要求。
主要功能
- 01读取学习内容或接收用户输入
- 02检查并处理项目特定信息
- 03生成安全的分支名和文件路径
- 04按模板创建学习文件与 PR
- 05输出 PR 链接
适用场景
- 01将项目经验提交到 groovebook
- 02发布经过脱敏的通用工作流经验
- 03为社区评审创建学习 PR
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ andreadellacorte/ groove --skill groove-groovebook-publish安装后在 Claude Code 中输入/groove-groovebook-publish确认已加载。
详细介绍
groove-groovebook-publish
如果提供了 $ARGUMENTS,则将其用作学习内容。
结果
将当前项目中的一条学习内容发布到配置的 groovebook 仓库,作为拉取请求提交。发布内容会去除任何项目专属上下文,并可供社区评审。
验收标准
- 学习内容已作为 PR 发布到
<groovebook>仓库 - PR 使用 groovebook PR 模板格式(Summary、Context、Learning、Groove skill area)
- 文件写入 groovebook 仓库中的
learned/<topic>/<YYYY-MM-DD>-<slug>.md - 向用户打印 PR URL
步骤
-
从
.groove/index.md读取groovebook:;如果不存在,则退出并显示:groovebook is not configured. Add 'groovebook: <owner>/<repo>' to .groove/index.md to enable. -
检查
gh auth status;如果未通过身份验证,则退出并显示:Not authenticated with GitHub. Run: gh auth login -
验证 groovebook 仓库是否可访问:
gh repo view <groovebook>;如果失败,则显示清晰的错误消息并退出。 -
获取学习内容:
- 如果提供了 $ARGUMENTS,则将其用作起始内容
- 否则,询问:“你想发布哪条学习内容?(请粘贴内容或简要描述)”
- 询问一句话摘要(用于 PR 标题和文件名 slug)
-
显示学习内容预览,并询问:
这是否包含需要删去的仓库专属上下文?(文件路径、内部名称、产品名称)- 如果有:协助用户删去这些内容——将具体名称替换为通用描述
- 如果没有:继续
-
询问主题(例如
patterns、tools、anti-patterns、workflow)和技能领域(例如compound、plan、review、daily) -
生成 slug:将摘要转为小写,用连字符替换空格,删除特殊字符,截断至 40 个字符。构造:
- 分支名称:
learning/<YYYY-MM-DD>-<slug> - 文件路径:
learned/<topic>/<YYYY-MM-DD>-<slug>.md
- 分支名称:
-
如果尚未 fork groovebook 仓库,则执行:
gh repo fork <groovebook> --clone=false- 如果 fork 已存在,则静默跳过
-
创建分支和文件:
- 使用
gh api repos/<user-fork>/git/refs检查分支是否存在;如果存在,则追加简短的唯一后缀 - 写入文件内容(见下方格式),并通过
gh api提交 - 或者:如果
gh api方式过于复杂,则使用git操作 fork URL——优先选择更简单的方式
- 使用
-
创建 PR:
gh pr create --repo <groovebook> \ --title "<one-sentence summary>" \ --body "<formatted body>" \ --head "<fork-user>:<branch-name>" -
打印 PR URL
学习文件格式
---
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 正文格式
## Summary
<one-sentence summary>
## Context
<what triggered this>
## Learning
<the insight>
## Groove skill area
`<skill-area>`
---
*Published via groove-groovebook-publish*
约束
- 未经用户明确确认有意为之,绝不发布包含项目专属名称、文件路径或内部标识符的学习内容
- 如果 fork 步骤因权限问题失败:建议用户手动 fork,并将其 fork 仓库设为
groovebook:的值 - slug 必须可安全用作文件名:使用小写字母,只能包含连字符,不得包含路径分隔符或特殊字符
- 如果分支已存在:依次追加
-2、-3等,直到找到可用名称