Communitygithub.com

cstrlcs/skills

實作、除錯、重構並驗證後端、前端、資料與基礎架構的軟體。適用於軟體變更,不適用於僅調查或僅審查的要求。

skills 是什麼?

此技能旨在協助 AI 代理以最小且連貫的變更來交付軟體要求,涵蓋後端、前端、資料與基礎架構。它定義了一套結構化的流程:首先理解預期行為與受影響的呼叫路徑,並引導代理參考專門的流程文件(例如委派、測試、除錯、前端 UI 與服務/資料)。實作階段強調程式碼風格規則,例如使用防衛子句、避免過早抽象化、簡潔命名以及謹慎管理相依性。最後,它要求執行格式化、lint、型別檢查、測試與建置等驗證步驟,並確認每一行程式碼改動都與要求或聲明的範圍擴充相關,從而確保變更的完整性與可追溯性。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cstrlcs/skills/tree/HEAD/skills/develop

在你喜歡的 AI 中提問

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

說明文件

Developer

以最小且連貫的變更來交付符合專案要求行為。

理解

在編輯前,先確定預期行為與受影響的呼叫路徑。對於錯誤,盡可能先在修復前重現失敗。

當相關分支適用時,閱讀參考文件:

  • 需要獨立實作工作流程的大型任務:當子代理可用時,遵循委派;將小型或緊密耦合的任務保留給主代理。
  • 撰寫或修改測試:先閱讀測試;當使用者要求測試驅動開發時,遵循其測試優先的工作流程。
  • 原因不明、修復失敗、間歇性錯誤或效能回歸:遵循除錯,在形成假設前建立其回饋迴圈。
  • 建置或修改使用者介面(頁面、畫面、標記、樣式、介面文案、焦點或輸入處理):在撰寫前先閱讀前端與 UI,然後閱讀它連結的分支檔案。
  • API、持久化、遷移、事件、分散式工作流程、背景工作、整合或執行時期變更:服務與資料。

實作

  • 使用防衛子句:先用早期回傳或拋出處理每個結束情況,然後撰寫未縮排的主路徑。即使主路徑只有單一陳述式也適用,因此每個函式的讀法都相同:阻止它的條件在最上方,工作則在下方。三元運算子或 else 在兩個結果之間做選擇,就是需要替換的模式。
  • 將單次使用的敘述內聯在其呼叫處。只有在敘述被重複使用、包裝的邏輯太長無法在原地閱讀,或需要獨立測試時,才提取出命名函式,因為一行式的包裝函式會讓讀者必須跳到別處才能了解該敘述已經說明的內容。只為既有共用行為、真實的邊界或已證明的測試需求新增抽象層。
  • 當名稱仍能描述參數或屬性時,以該名稱命名值,並使用簡寫傳遞:const base = … 然後 { base },而不是 const projectsBase = … 然後 base: projectsBase。只有在周圍程式碼未提供的資訊才加上限定詞,例如在同一作用域中區分兩個值,因為別名會讓讀者需要在兩個名稱之間對應到同一個事物。
  • 這些風格規則適用於你撰寫的程式碼行。保留周圍程式碼及其既有的註解,除非你的變更使其不正確,因為重新格式化未觸及的程式碼會使變更在差異中難以辨識。
  • 在邊界處驗證不受信任的輸入,並在該點之後信任它;僅在錯誤可能發生且呼叫者可以採取行動的地方處理錯誤,保留錯誤上下文與清理作業。
  • 當變更需要新增相依性時,在註冊表中確認確切的套件(名稱、發行者、年齡、安裝腳本),並透過鎖定檔案固定它,因為代理容易產生幻覺與錯字偽裝的套件名稱。
  • 更新受影響的合約、設定範例與文件。

驗證與交付

執行專案的相關檢查:格式化、lint、型別、測試與建置。在完成前,確認每一行變更的程式碼都與要求或已陳述的範圍擴充相關。對於明確的驗收標準,將每一個標準對應至證明其達成的驗證;僅通過一般檢查並不能證明驗收標準已達成。當行為已驗證時完成,否則確切說明哪些部分尚未驗證及其原因。

回報結果行為、你在要求不明確時選擇的解釋、任何範圍擴充及其原因、你執行的檢查以及重大限制。

相關技能