Community寫作與編輯github.com

JawsomeJason/jawsome-agents

將程式碼倉庫的審查歷史轉換為編號的編碼標準,每個規則附帶原因和背後的審查評論,然後根據這些標準審查差異,並保持標準精簡。在撰寫或稽核編碼標準/慣例時使用(mine, write),審查差異、分支或合併請求是否符合標準(review),修剪無需提示即可遵循的標準(prune),或檢查標準漂移,例如檔案已消失的規則或基於舊預設模型的修剪資料(doctor)。

jawsome-agents 是什麼?

這個技能旨在將程式碼審查的歷史記錄轉化為結構化、可追蹤的編碼標準。它首先從審查評論中挖掘並分類慣例,生成聚類,然後將這些聚類轉換為帶有編號的規則(§),每個規則都附有原因(why)和支撐它的具體審查評論,形成一個可審查的標準庫。之後,它可以針對任何差異或合併請求運行審查,自動比對觸發的標準並報告不符之處。此外,它還包含修剪功能,通過A/B測試找出代理無需提示就會遵循的規則並予以刪除,以及一個檢查功能,用於標記標準中的漂移問題,如失效的檔案路徑。此技能適用於Claude Code、Cursor、Codex等AI代理平台,旨在將口頭或隱性的團隊慣例系統化,自動化審查流程,減少人工重複勞動,並確保標準隨程式碼庫演進保持相關且精簡。其工作流程包含`mine`、`write`、`review`、`prune`和`doctor`等命令,並依賴於`git`,可選用`gh`或`glab`等工具獲取審查評論。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JawsomeJason/jawsome-agents/tree/HEAD/plugins/standards/skills/standards

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Standards

審查者一遍又一遍地手動執行相同的慣例,留下一條條評論。這個技能將這些評論轉化為書面標準,然後檢查差異是否符合這些標準。每個標準將代理在撰寫程式碼時遵循的規則,與審查者在審查差異時應用的視角(lens)配對。每個編號的 § 都引用了其背後的審查評論,因此任何人都可以將規則追溯到執行該規則的審查者。

核心原則

  • 證據優先。一個 § 需要來自至少 3 個不同變更和 2 個不同審查者的審查評論,因為同一變更或同一人的多條評論可能只是單一審查者的個人偏好。
  • 每個規則都帶有其原因。即使規則周圍的程式碼形式發生變化,原因仍然能引導代理。
  • 每個慣例只有一個歸屬地。兩份副本會產生分歧,而代理只會遵循它先讀到的那個。
  • 檢查優於 §。可以被 linter、類型檢查或測試捕捉到的慣例應歸屬於該工具,因為檢查每次都會執行。
  • 刪除代理已能遵循的規則。一個無需提示即可遵循的規則,只會在每次載入時浪費上下文,卻不會改變任何行為。
  • 腳本是捷徑。每個輸出檔案在 references/schemas/ 中都有對應的 schema,因此當腳本遺失或失敗時,可以手動編寫相同的檔案。
  • git 是唯一的硬依賴。forge 的 CLI(例如 gh 或 glab)用於添加審查評論,若無此類工具,git log 可作為替代方案。

命令

命令用途輸出參考文件
mine提取審查評論,按慣例標記,根據頻率乘以嚴重性對聚類進行排名.standards/clusters.jsonreferences/mine.md
write將排名後的聚類轉換為倉庫中的標準技能,每個 § 包含其原因和證據標準技能references/write.md
review應用差異觸發的每個視角,並報告附有 § 引用的發現回覆中的發現references/review.md
prune在多個測試場景中對每個規則進行 A/B 測試,並刪除那些代理無需提示即遵循的規則prune.jsonreferences/prune.md
doctor標記漂移:無法匹配任何檔案的 glob、已消失的引用檔案、從未觸發的視角、過時的修剪資料.standards/doctor.jsonreferences/doctor.md

路由

調用方式為 standards [command] [scope]。scope 可以是路徑或 glob、來自生成索引的區域 slug,或 § 編號(§2、§2.3)。根據 references/scope.md 解析 scope。mine 只能接受路徑,因為區域只有在 write 之後才存在。

  • **無參數。**顯示下方選單並等待選擇。絕不自動執行命令,因為每個命令都會讀取歷史、編輯倉庫或消耗大量代理執行次數。
  • **有 scope 但無命令。**在不詢問的情況下對該 scope 執行 review,因為 review 僅讀取資料。
  • **有明確或清晰暗示的命令。**載入其參考文件並逐步遵循。
  • **兩個命令都符合。**詢問一次要執行哪一個,說明兩者名稱及其作用。然後遵循答案。
  • **從無到有建立標準。**從 mine 開始,因為 write 需要 clusters.json。當 mine 完成時,提供 write 選項。
  • **關於技能本身的問題。**直接從此檔案回答,無需執行任何命令。

選單

standards: 我該做什麼?
  mine    從審查評論中挖掘出排名後的慣例
  write   根據排名後的慣例撰寫標準
  review  根據標準審查差異
  prune   測試每個規則並刪除代理已遵循的規則
  doctor  檢查標準是否有漂移
每個命令都可以接受一個可選的 scope:路徑、區域或 §。

當生成的標準存在時,在選單下方以 § 編號和 slug 的形式列出其區域。

流程

mine 提供資料給 write,而 write 產出 review 所應用的標準。prune 和 doctor 在之後維護這些標準。

工作檔案位於目標倉庫根目錄的 .standards/ 中。將該資料夾排除在版本控制之外,因為審查評論會引用程式碼和人員。prune.json 是例外,它與生成的標準放在一起,因為 doctor 會從該位置讀取它。

參考文件中的 <skill-dir> 指的是存放此檔案的資料夾。<skill-dir>/scripts/ 中的腳本可以加速 mine,並且只需要 JavaScript 執行環境的標準庫。

判斷模型

mine、prune 和 doctor 會提出許多小型的類型化問題。判斷模型是一種快速模型,能夠以校準後的機率回答類型化問題(從一組選項中選一個、回答是/否的機率、給出分數)。如果你的環境提供判斷模型,請用它來回答這些問題;否則,由你自己回答。你環境自身的指令會決定哪個模型是判斷模型。

生成的標準

  • 預設輸出是一個技能,包含一個由一行摘要組成的索引,每個摘要連結到一個 § 檔案。模板:index 和 section。
  • 每個區域一個技能是一個可選項,根據 references/write.md 中的形狀實驗(shape experiment)按倉庫設定。
  • 生成的標準遵循與此技能相同的規則:僅規範 frontmatter、無 URL、無日期,以及每個規則都要有原因。

Individual skills in this repo

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

相關技能