mcpField
G
gh-discuss

gh-discuss

github.com/lsegal开发656 次安装2 周前更新
代码仓库

关于 gh-discuss

gh-discuss 是用于回答 GitHub Discussion 的技能,仅在仓库内容足以支持明确答复时才回应。它将调查限制为只读仓库资料,并且最多发布一条顶层回复。

主要功能

  1. 01验证讨论编号和仓库
  2. 02只读取讨论顶层内容
  3. 03仅从仓库资料中调查
  4. 04问题已答或不明确时不回复
  5. 05有依据时发布一条顶层评论

适用场景

  1. 01回答 Discussions 中的仓库使用问题
  2. 02回复前核对仓库文档
  3. 03让已回答或缺乏依据的讨论保持不动
  4. 04撰写简洁且有仓库依据的答复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lsegal/glorp --skill gh-discuss

安装后在 Claude Code 中输入/gh-discuss确认已加载。

附带文件agents/openai.yaml

详细介绍

回答 GitHub 讨论串

将 /gh-discuss NUMBER 视为授权:读取一个 GitHub 顶层讨论串,并且仅当你能够准确、肯定地回答时,才发布一条回复。此技能对仓库和更广泛的系统严格只读:绝不编写代码、提交更改、创建分支或拉取请求,也绝不运行任何会修改仓库、议题、讨论、标签或文件的命令。唯一允许的写入操作是在讨论中发布回复评论,且仅在确有必要时才这样做。

验证请求

  1. 要求提供且只提供一个正整数讨论编号;可选地接受前导 #。
  2. 从调用中的 Repository: OWNER/REPO 明确行,或从当前检出内容的 GitHub 远程地址中识别 GitHub 仓库。
  3. 要求使用已通过身份验证、且有权限读取仓库和读写 Discussions 的 gh。
  4. 获取讨论的顶层正文、作者、类别和现有评论,例如:
    gh api graphql -f query='query($owner:String!,$name:String!,$number:Int!){repository(owner:$owner,name:$name){discussion(number:$number){id title body author{login} answerChosenAt comments(first:100){totalCount nodes{id}}}}}' -F owner=OWNER -F name=NAME -F number=NUMBER
    
  5. 如果出现以下任一情况,则停止,不发表评论,也不采取进一步行动:
    • 讨论不存在或无法读取。
    • comments.totalCount 已大于零,或已设置 answerChosenAt。这表示已有其他回复,或讨论串已得到回答;不要再添加第二条回复。
    • 讨论正文不是可回答的问题或请求(例如公告、投票,或没有待解决问题的开放式聊天)。

只读取顶层讨论串

形成答案时,只能依据讨论本身的标题和正文。不要获取、阅读或处理其他评论下的嵌套回复,即使上述查询恰好返回了这些内容;也不要回复子评论——始终只对讨论本身发布一条顶层回复。

只读研究答案

  1. 仅使用只读操作进行调查:读取当前检出仓库中的文件(如果本地没有仓库克隆,则克隆或获取一份全新的只读副本;绝不修改它)、gh 读取命令(gh issue view、gh pr view、gh api GET 样式查询)以及仓库文档。
  2. 绝不执行应用程序代码、构建脚本、测试,或任何意图改变状态而非读取状态的命令。绝不运行 git commit、git push、git branch、包安装命令或任何其他修改命令。
  3. 绝不读取仓库以外的内容:不要获取任意外部 URL、其他仓库或无关的本地文件。如果无法根据仓库自身的内容和历史回答讨论,就应停止,而不是去其他地方查找。
  4. 只有在仓库内容能够以合理的可信度支持答案时,才作答。不要猜测;如果有把握的部分无法解决提问者的实际问题,也不要只回答部分内容。

回复或停止

  1. 如果无法给出既准确又能肯定解决问题的答案,就到此为止,不采取进一步行动。不要发表评论表示自己不知道,也不要留下任何其他痕迹。
  2. 如果可以作答,则发布一条简洁、准确、切题且有仓库内容依据的回复。不要粘贴大段代码;应引用文件路径并概述相关内容。
  3. 将回复作为一条顶层评论发布到讨论中,而不是回复任何现有评论:
    gh api graphql -f query='mutation($discussionId:ID!,$body:String!){addDiscussionComment(input:{discussionId:$discussionId,body:$body}){comment{id}}}' -F discussionId=DISCUSSION_ID -F body="..."
    
  4. 发布后立即停止。不要将讨论标记为已回答、修改其类别或采取任何其他行动。

报告结果

明确说明是否发布了回复,或讨论串是否保持未处理状态,并说明原因。如果发布了回复,请附上讨论 URL,并简要概述答案。

评论

支持 Markdown