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辅助编码提供了一种系统性的架构保护方案,值得关注。