Community生產力與協作github.com

BranchCrypto/agent-skills

強制執行 GitHub 貢獻者限制與標準化的 [XX] 提交訊息慣例。每當任務涉及 GitHub 或 Git 操作(提交、修正、推送、拉取請求、分支、協作者、儲存庫設定或工作流程)時使用。

agent-skills 是什麼?

這個技能強制執行一套嚴格的 GitHub 與 Git 作業規範,特別著重於防止 AI 代理被識別為貢獻者或提交作者。它定義了一個標準化的提交訊息格式 `[XX]xxxxx`,使用一組預定義的雙字母前綴(例如 `[FT]` 代表功能、`[FX]` 代表修復),以確保提交歷史清晰且一致。技能也明確禁止將 AI 代理(如 Cursor、Codex 或 ChatGPT)新增為 GitHub 協作者或貢獻者,並禁止在提交訊息中加入任何 AI 歸屬標記。此技能支援所有 Git/GitHub 作業,包括提交、推送、拉取請求、分支與儲存庫設定,並優先遵循使用者明確指定的前綴或格式。其目標是在協作開發環境中保持乾淨、人類可讀且無 AI 歸屬的 Git 歷史紀錄。

相容平台~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. 提交作者與身份限制

提交不得將程式代理識別為作者、共同作者或產生者。

禁止在提交主旨、正文、尾部標記、Git 作者後設資料或 Git 提交者後設資料中加入 AI 代理歸屬。

除非使用者現有的儲存庫設定明確要求且無法安全變更,否則禁止以下項目:

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] Frontend
[BE] Backend
[AP] API
[DB] Database
[UI] UI
[CF] Config
[CI] CI/CD
[TS] Test
[DC] Docs
[RF] Refactor
[FX] Fix
[FT] Feature
[OP] Optimize
[SC] Security
[DP] Dependency
[CH] Chore

選擇規則

除非使用者明確指定其他前綴:

  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.

相關技能