Community研究與資料分析github.com

dofastted/AgentDock

全面的程式碼品質驗證:規格符合度、語法檢查、型別檢查、測試、跨層資料流、程式碼重複利用與一致性檢查。在撰寫完程式碼需要品質驗證、提交變更前,或是在長時間工作階段中偵測到上下文偏移時使用。

AgentDock 是什麼?

此技能提供一個結構化的多步驟流程,用於對最近編寫的程式碼進行全面的品質驗證。它結合了規格符合性檢查、跨層安全考量與預先提交檢查,幫助開發者與 AI 代理在提交變更前系統性地識別問題。技能支援基於 Git 的專案,並利用 `.trellis/` 目錄中的規格文件進行引導。 流程包含:識別變更、讀取任務文件與相關規格、執行專案檢查(如 lint、型別檢查與測試),以及根據一份包含程式碼品質、測試覆蓋率、規格同步與範圍紀律的詳細清單進行審查。此外,對於跨多層的變更,它還包含跨層維度檢查(資料流、程式碼重複利用、匯入/依賴關係以及同層一致性)。 此技能的主要優勢在於其徹底性與機械化方法。它會報告發現的每個違規事項,並區分可直接修復的局部問題(如 lint 錯誤、缺失的型別),以及需要謹慎判斷的設計問題(如重新命名共享概念或移動模組邊界)。這種結構有助於防止 AI 代理在未經審查的情況下進行大規模重構,確保變更範圍可控,並維持程式碼庫的完整性。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dofastted/AgentDock/tree/HEAD/.claude/skills/trellis-check

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

程式碼品質檢查

對最近撰寫的程式碼進行全面性的品質驗證。結合規格符合度、跨層安全性以及預先提交檢查。


步驟 1:識別變更內容

git diff --name-only HEAD
git status

步驟 2:閱讀任務文件與適用規格

按順序閱讀當前任務的文件:

  • prd.md
  • design.md(若存在)
  • implement.md(若存在)
python3 ./.trellis/scripts/get_context.py --mode packages

針對每個變更的套件/層,閱讀其規格索引並遵循其中的品質檢查章節:

cat .trellis/spec/<package>/<layer>/index.md

閱讀所引用的具體指引文件——索引僅是導引,並非最終目標。

步驟 3:執行專案檢查

執行專案的 lint、型別檢查與測試指令。在繼續之前修正所有失敗。

步驟 4:根據清單進行審查

程式碼品質

  • Linter 通過?
  • 型別檢查器通過(若適用)?
  • 測試通過?
  • 沒有遺留除錯用的日誌?
  • 沒有被壓制的警告或型別安全繞過?

測試覆蓋率

  • 新功能 → 是否已新增單元測試?
  • 錯誤修正 → 是否已新增回歸測試?
  • 行為變更 → 是否更新了既有測試?

規格同步

  • 是否需要更新 .trellis/spec/?(新的模式、慣例、學到的教訓)

「如果我修正了一個錯誤或發現了不顯而易見的事情,我應該記錄下來,讓未來的我不會再遇到同樣的問題嗎?」→ 如果是,請更新相關的規格文件。

範圍紀律

  • 是否對任務未要求的程式碼進行了整理?
  • 是否針對尚未存在的案例新增了抽象、設定或擴充點?
  • 是否針對不可能發生的狀態添加了推測性的備援?
  • 是否修改了驗收標準中未提及的檔案?
  • 是否在呼叫端添加了解決方案,而非在問題實際發生的位置進行修復?

步驟 5:跨層維度(若適用)

若您的變更僅限於單一層,請跳過此步驟。

A. 資料流(變更觸及 3 層以上)

  • 讀取流程追蹤正確:儲存層 → 服務層 → API → UI
  • 寫入流程追蹤正確:UI → API → 服務層 → 儲存層
  • 型別/結構是否在層之間正確傳遞?
  • 錯誤是否正確傳播給呼叫端?

B. 程式碼重複利用(修改常數、建立工具函式)

  • 在建立新程式碼前,是否搜尋過既有相似程式碼?
    grep -r "pattern" src/
    
  • 如果相同的值重複出現,它是否代表一個穩定的概念,且所有呼叫端必須同時變更?只有在此情況下才進行提取——兩個今天恰好相同的文字字串應該保持分離。
  • 在批量修改後,所有出現的位置是否都已更新?

C. 匯入/依賴(建立新檔案)

  • 匯入路徑正確(相對路徑 vs 絕對路徑)?
  • 沒有循環相依性?

D. 同層一致性

  • 其他使用相同概念的地方是否一致?

步驟 6:報告與修復

報告您發現的每一個違規事項。然後:

  • 機械性與局部問題(lint 小問題、遺漏的型別、錯誤匯入、無用分支、失敗的斷言)→ 就地修正,然後重新執行專案檢查。
  • 設計或判斷問題(為共享概念命名、移動模組邊界、變更公開介面、重新分配行為的歸屬)→ 記錄證據與您的建議,然後停止。請勿無聲地重寫它。

如果某項修正會觸及當前任務範圍之外的檔案,請說明此事並停止,而不是擴大變更範圍。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相關技能