mcpField
G
groove-groovebook-publish

groove-groovebook-publish

github.com/andreadellacorteAgent 工作流6506 次安装14 周前更新
代码仓库

关于 groove-groovebook-publish

将当前项目中的经验整理后,发布到已配置的 groovebook 仓库并创建 PR。该技能面向希望分享可复用经验的项目工作流,并包含脱敏检查和 PR 格式要求。

主要功能

  1. 01读取学习内容或接收用户输入
  2. 02检查并处理项目特定信息
  3. 03生成安全的分支名和文件路径
  4. 04按模板创建学习文件与 PR
  5. 05输出 PR 链接

适用场景

  1. 01将项目经验提交到 groovebook
  2. 02发布经过脱敏的通用工作流经验
  3. 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

步骤

  1. 从 .groove/index.md 读取 groovebook:;如果不存在,则退出并显示: groovebook is not configured. Add 'groovebook: <owner>/<repo>' to .groove/index.md to enable.

  2. 检查 gh auth status;如果未通过身份验证,则退出并显示: Not authenticated with GitHub. Run: gh auth login

  3. 验证 groovebook 仓库是否可访问:gh repo view <groovebook>;如果失败,则显示清晰的错误消息并退出。

  4. 获取学习内容:

    • 如果提供了 $ARGUMENTS,则将其用作起始内容
    • 否则,询问:“你想发布哪条学习内容?(请粘贴内容或简要描述)”
    • 询问一句话摘要(用于 PR 标题和文件名 slug)
  5. 显示学习内容预览,并询问: 这是否包含需要删去的仓库专属上下文?(文件路径、内部名称、产品名称)

    • 如果有:协助用户删去这些内容——将具体名称替换为通用描述
    • 如果没有:继续
  6. 询问主题(例如 patterns、tools、anti-patterns、workflow)和技能领域(例如 compound、plan、review、daily)

  7. 生成 slug:将摘要转为小写,用连字符替换空格,删除特殊字符,截断至 40 个字符。构造:

    • 分支名称:learning/<YYYY-MM-DD>-<slug>
    • 文件路径:learned/<topic>/<YYYY-MM-DD>-<slug>.md
  8. 如果尚未 fork groovebook 仓库,则执行:gh repo fork <groovebook> --clone=false

    • 如果 fork 已存在,则静默跳过
  9. 创建分支和文件:

    • 使用 gh api repos/<user-fork>/git/refs 检查分支是否存在;如果存在,则追加简短的唯一后缀
    • 写入文件内容(见下方格式),并通过 gh api 提交
    • 或者:如果 gh api 方式过于复杂,则使用 git 操作 fork URL——优先选择更简单的方式
  10. 创建 PR:

    gh pr create --repo <groovebook> \
      --title "<one-sentence summary>" \
      --body "<formatted body>" \
      --head "<fork-user>:<branch-name>"
    
  11. 打印 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 等,直到找到可用名称

评论

支持 Markdown