AI News HubLIVE
站內改寫2 分鐘閱讀

Show HN:一個AI代理無法破壞架構的TypeScript倉庫

這個TypeScript倉庫展示了一種透過工具強制執行的規則系統,防止AI代理在編碼過程中破壞架構。它包含五個關鍵防護措施:依賴規則、突變測試、測試與規範保護、提交門控和規範驅動開發。該倉庫還作為模板,可用於啟動新專案,並提供了一個基準測試來驗證代理的能力。

來源Hacker News AI作者: lucasgodt

一個名為"Open Agent-Ready TypeScript"的新開源專案在Hacker News上引起關注,它旨在解決AI輔助編碼中常見的架構退化問題。該專案由開發者lucasgodt建立,核心思想是:每個重要規則都必須由代理無法反駁的工具強制執行。

該倉庫是一個小型但真實的發票API(包含草稿→傳送→支付流程,以整數美分表示金額,並具有適當的狀態機),用於演示這一理念。它不依賴文件或約定,而是透過五個關鍵防護措施來防止AI代理破壞架構:

  1. 依賴規則:使用dependency-cruiser確保違規匯入會導致構建失敗。src/domain不匯入任何內容(包括Node內建模組),代理無需記住架構,因為違規程式碼無法合併。
  1. 突變測試:透過Stryker進行突變測試,確保測試能夠檢測到程式碼變更。CI要求突變分數不低於75%,應用層目前達到100%。
  1. 測試和規範保護:利用Claude Code的PreToolUse鉤子阻止代理編輯測試和規範檔案,除非人類明確授權。這樣"讓測試透過"就不會變成刪除測試。
  1. 提交門控:每次git提交都會執行完整的驗證套件(型別檢查、lint、依賴檢查、測試),並將失敗反饋給代理,形成反饋迴圈。
  1. 規範驅動開發:每個用例都有Given/When/Then格式的markdown規範,測試一一對應。npm run specs(包含在驗證流程中)會檢查是否有用例缺少規範、是否有孤立規範等。

除了這些防護措施,倉庫還提供了代理友好的結構:根目錄的AGENTS.md檔案(遵循開放標準,不到300行,包含精確命令),以及每個層級(domain、application、infrastructure)的本地AGENTS.md檔案。CLAUDE.md只有一行,指向AGENTS.md,便於跨工具移植。docs/adr/記錄了決策背後的原因,防止代理反覆爭論。

該倉庫還包含一個基準測試:AGENTS.md末尾描述了一個自包含任務(取消發票),要求代理遵循規範→測試→領域層→用例→HTTP的流程,並在過程中保持驗證綠色。這可以測試代理是否能在該倉庫中正確工作。

專案同時作為模板使用,並附帶一個Claude Code技能,可自動移植防護系統(配置、鉤子、CI、層級結構),移除發票示例,並以規範優先的方式構建新專案。該技能支援三種專案型別:後端API/服務、前端應用(React/Vite)和單體倉庫(pnpm workspaces)。

雖然測試保護鉤子目前僅適用於Claude Code,但CI中的突變測試是工具無關的最終保障。專案的JSON檔案持久化層被刻意設計為簡單且不支援併發,以展示介面卡模式。整體而言,該專案為AI輔助編碼提供了一種系統性的架構保護方案,值得關注。