Community生产力与协作github.com

BranchCrypto/agent-skills

强制执行 GitHub 贡献者限制和标准化 [XX] 提交消息规范。每当任务涉及 GitHub 或 Git 操作——提交、修改、推送、拉取请求、分支、协作者、仓库设置或工作流时使用。

agent-skills 是什么?

该技能定义了一套严格的规则,用于管理 AI 代码代理在与 GitHub 和 Git 仓库交互时的行为。其核心目标是防止 AI 代理被错误地标识为仓库贡献者或协作者,并确保所有提交消息遵循一致的 [XX]xxxxx 格式,使用预定义的类型前缀(如 [FT] 表示功能,[FX] 表示修复)。通过强制执行这些规则,技能有助于维护仓库的清晰归属和干净的 Git 历史记录,这对团队协作和自动化工作流至关重要。该技能支持所有主流 AI 编码代理(如 Cursor、Codex 和 ChatGPT),并可在任何与 Git 或 GitHub 交互的任务中应用,涵盖从创建提交到管理仓库设置等所有操作。它通过在每次提交前进行验证并拒绝不符合要求的操作来工作,同时还提供了处理现有不符合要求的提交和冲突指令的指南。

兼容平台~Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/BranchCrypto/agent-skills/tree/HEAD/skills/engineering/github-hygiene

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

GitHub 卫生规范

无论仓库、分支或任务上下文如何,对每个 GitHub 或 Git 操作都应用以下规则。

使用时机

当任务涉及以下任何内容时应用:

  • 创建或修改 GitHub 仓库
  • 克隆或使用 Git 仓库
  • 创建、修改或推送提交
  • 创建或更新拉取请求
  • 管理分支、工作流、协作者或仓库设置
  • 任何其他更改或与 GitHub 仓库交互的操作

1. 代码代理贡献者限制

绝不要将代码代理添加为 GitHub 贡献者或协作者。

不要:

  • 邀请 AI/代码代理账户作为仓库协作者
  • 将 AI/代码代理账户添加到 GitHub 组织或仓库
  • 授予 AI/代码代理账户仓库权限
  • 更改仓库权限以使 AI/代码代理账户成为贡献者
  • 创建或使用专门的 AI 代理 GitHub 账户作为贡献者身份

此规则适用于所有 AI/代码代理身份,包括 Cursor、Codex、ChatGPT、其他 AI 编码代理、自动化编码机器人,以及任何其目的是代表编码代理的账户。

使用用户现有的 Git/GitHub 身份进行操作,除非用户明确请求使用不同的个人身份。

2. 提交作者和身份限制

提交不得将代码代理标识为作者、共同作者或生成器。

不要将 AI 代理署名添加到提交主题、正文、尾注、Git 作者元数据或 Git 提交者元数据中。

除非用户现有的仓库配置明确要求且无法安全更改,否则以下内容均被禁止:

Co-authored-by: Cursor
Co-authored-by: Codex
Co-authored-by: ChatGPT
Generated-by: AI
Generated-by: Codex
Generated-by: Cursor
AI-generated
Generated with Cursor
Generated with Codex
Generated with ChatGPT

不要故意配置 Git 身份以代表代码代理。

3. 提交消息格式

除非用户明确指定其他格式,否则每个提交消息必须遵循:

[xx]xxxxx

其中:

  • xx 是预定义的两个大写字母前缀
  • 前缀用方括号括起来
  • 前缀后紧跟着简洁的提交描述
  • 描述解释更改的主要目的
  • 不要添加 AI 代理名称、署名或不相关的元数据

允许

[FT]add user authentication
[FX]fix token expiration
[FE]update login page
[BE]add user service
[AP]add auth endpoint
[DB]add user table
[TS]add authentication tests
[RF]simplify auth middleware
[CI]update github workflow
[DC]update api documentation

禁止

update login page
AI: update login page
[AI]add authentication
[Cursor]fix login bug
[Codex]add api endpoint
[FT] Generated with Codex
Co-authored-by: Codex

4. 预定义提交前缀

权威默认前缀列表:

[FE] 前端
[BE] 后端
[AP] API
[DB] 数据库
[UI] UI
[CF] 配置
[CI] CI/CD
[TS] 测试
[DC] 文档
[RF] 重构
[FX] 修复
[FT] 功能
[OP] 优化
[SC] 安全
[DP] 依赖
[CH] 杂务

选择规则

除非用户明确指定其他前缀:

  1. 尽可能使用预定义前缀
  2. 绝不要发明新的前缀
  3. 绝不要修改预定义前缀的拼写或大写
  4. 在括号内使用恰好两个大写字母
  5. 根据更改的主要目的选择前缀
  6. 当多个前缀可能适用时,选择最能代表主要目的的那个
更改类型前缀
新功能[FT]
错误修复[FX]
前端实现[FE]
后端实现[BE]
API 更改[AP]
数据库更改[DB]
仅 UI 更改[UI]
配置更改[CF]
CI/CD 更改[CI]
测试[TS]
文档[DC]
不改变行为重构[RF]
性能优化[OP]
安全相关更改[SC]
依赖更改[DP]
常规维护[CH]

5. 用户指定的前缀优先

预定义前缀列表是默认值,而非绝对限制。

如果用户明确指定了不同的提交前缀或提交格式,则遵循用户的明确指示。

示例:用户说 对此提交使用 [HOT] → 使用 [HOT]fix production issue。

  • 不要将用户明确请求的前缀替换为预定义前缀
  • 如果用户未指定前缀,则使用预定义列表
  • 如果用户只指定了描述,则选择合适的预定义前缀

6. 提交描述

前缀后的描述应:

  • 简洁且具体
  • 用英语书写,除非用户明确请求使用其他语言
  • 专注于实际更改
  • 不包含 AI 代理署名

优选:

[FX]fix expired access token handling
[FT]add password reset endpoint
[FE]update account settings page
[RF]simplify request validation

避免:

[FX]fix stuff
[FT]changes
[RF]update code
[BE]AI generated backend changes

7. 提交范围

在可行的情况下,每个提交应包含一个逻辑更改。

当任务包含多个不相关的更改时:

  • 不要编造单个误导性的提交描述
  • 在可行时优先使用单独的提交
  • 为每个提交独立选择前缀
  • 保持每个提交消息能代表其实际内容

如果用户明确请求单个提交,则遵循该指示,并选择最能代表合并更改主要目的的前缀。

8. 提交前验证

在创建提交之前,验证:

身份

  • Git 作者是用户配置的身份
  • Git 提交者不是 AI/代码代理身份
  • 不会添加 AI 代理署名

消息

  1. 以有效前缀开头
  2. 使用预定义前缀,除非用户明确指定了其他
  3. 对于默认前缀,使用恰好两个大写字母
  4. 前缀用 [] 括起来
  5. 包含前缀后的简洁描述
  6. 不提及 Cursor、Codex、ChatGPT、AI 代理或类似的代理身份
  7. 不包含禁止的署名尾注

GitHub 权限

在更改仓库权限或协作者之前:

  • 验证目标不是 AI/代码代理身份
  • 绝不要授予代码代理贡献者或协作者访问权限

9. 推送和 GitHub 操作

在推送提交之前:

  • 确保提交消息符合本技能要求
  • 确保提交不包含禁止的 AI 署名
  • 确保代码代理未被添加为 GitHub 贡献者
  • 不要仅仅为了便于代理操作而修改 GitHub 权限

如果现有提交违反这些规则,而用户要求推送,则应在推送前修复违规,前提是这样做是安全的且与用户请求的工作流一致。

对于已推送到共享/公共分支的提交,不要自动重写历史记录。在以下操作前询问用户:

git commit --amend
git rebase
git reset --hard
git push --force
git push --force-with-lease

10. 拉取请求

当创建或更新拉取请求时:

  • 不要将代码代理标识为贡献者
  • 除非用户明确请求,否则不要添加 AI 代理署名
  • 保持 PR 标题和描述侧重于实际更改
  • 当存在仓库 PR 模板时,遵循该模板
  • 不要修改仓库权限来创建或更新 PR

11. 冲突解决

如果其他仓库级指令、项目规则或用户指令与本技能冲突:

  1. 遵循优先级更高的指令
  2. 如果用户明确指定了提交前缀或提交格式,则遵循用户的明确请求
  3. 否则,使用本技能中的预定义前缀列表和提交格式
  4. 绝不要将代码代理添加为 GitHub 贡献者

不要默默地发明替代规则。

12. 最终执行检查清单

在完成任何与 GitHub 相关的任务之前:

[ ] 代码代理未被添加为 GitHub 贡献者。
[ ] 代码代理未被添加为 GitHub 协作者。
[ ] Git 作者不是 AI 代理身份。
[ ] Git 提交者不是 AI 代理身份。
[ ] 默认情况下提交消息遵循 [xx]xxxxx 格式。
[ ] 默认前缀来自预定义列表。
[ ] 用户指定的前缀优先于预定义列表。
[ ] 提交消息中没有 AI 代理署名。
[ ] 提交尾注中没有 AI 代理署名。
[ ] GitHub 操作不会不必要地修改仓库权限。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能