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輔助編碼提供了一種系統性的架構保護方案,值得關注。