基于pi.dev的SDLC工厂:从意图到测试代码
速览
这个项目在pi.dev平台上构建了一个软件开发生命周期工厂,将用户意图转化为领域驱动设计(DDD),进而生成架构和经过测试的代码。它旨在自动化整个开发流程,提升效率。该工具可能对敏捷开发和代码质量有积极影响,但尚未公开广泛使用。
AI 深度解读
背景
在 AI 辅助软件开发快速发展的当下,如何确保 AI 生成的代码与架构设计保持一致、避免架构漂移,成为工程团队的核心难题。传统的文档驱动或代码评审方式往往滞后且容易遗漏。Hacker News 上发布的 Guardian 项目(基于 pi.dev 平台)提出了一种全新的 SDLC(软件开发生命周期)编排器:从业务意图出发,经过领域驱动设计(DDD)生成架构,再自动产出实现代码与测试,并通过 CI 流水线强制执行架构合规性。该项目已在真实项目 Rigorix 中得到验证:单一开发者在 11 天内用 Rust 编写了 146,312 行代码、30 个模块、580 次提交,整个过程中架构持续被验证,任何漂移在合并到主分支前即被拦截。
核心内容
Guardian 是一个端到端的 SDLC 编排器,专为 AI 辅助开发而设计。它将从业务意图到执行流水线的整个生命周期集中在一个 .pi/ 目录下。所有产物(模块、架构决策记录 ADR、路线图、议题、CI 脚本、智能体技能)都从这个目录生成,无需重复手写任何内容,从根本上杜绝信息漂移。
工作流程如下:
- 业务意图输入:用户提出业务需求,例如“我需要为受监管的金融交易构建审计日志系统”。
- 领域探索:用户与 AI 智能体反复交互,探索、迭代、细化领域模型。用户可以通过自然语言指令调整有界上下文、术语(如将“审计记录”改为“证据记录”)。
- 架构模块生成:用户确认领域模型后,Guardian 为每个有界上下文生成一个架构模块,包含分层结构、聚合、仓库接口、领域事件等。例如审计模块会生成 Rust 的
AuditRecordRepositorytrait。 - 丰富模块文档:智能体读取领域探索结果,为每个模块填充完整的 DDD 内容,包括 Mermaid 数据流图、真实的 Rust 结构体桩代码、API 端点表、通用语言、跨上下文依赖、安全考虑等,产生生产级架构文档(每份 5-20 KB)。
- 人工审查与决策记录:用户审查生成的架构,修改依赖关系(如将幂等处理器与签名验证器改为并行)、要求添加 ADR(如解释为何选择 HMAC-SHA256 而非 ECDSA)、生成系统总览图。每个关键决策都记录为 ADR。
- 锁定路线图:架构确定后,Guardian 生成分阶段路线图,每个阶段包含依赖、迁移和验收标准。用户采纳后,Guardian 为每个模块生成一个 Epic,每个组件生成一个 Issue,Issue 携带架构上下文和 DDD 模式。
- 智能体执行:智能体按阶段自动实现代码,用户审查 PR。Guardian 自动推进流水线:实现→验证→创建 MR→合并。如果使用
--tdd标志,Guardian 会先生成确定性失败的单测(基于组件契约而非 LLM),引导智能体遵循红-绿-重构流程。 - 架构强制执行:所有变更都通过架构验证脚本(如
check_ddd_structure.sh)检查。如果某个 AI 或开发者在领域层引入了对基础设施层的依赖,CI 将直接失败,阻止合并。
Guardian 的核心哲学是:架构漂移变成编译时错误,而不是文档注释或代码评审中容易被忽略的备注。
关键要点
- 全生命周期集中管理:所有产物存储在单个
.pi/目录下,无需手动维护多个文档或配置文件。 - 人机协作的领域建模:AI 辅助但人类主导,用户可以通过自然语言反复调整领域模型,直到准确反映业务需求。
- 自动生成生产级架构文档:基于领域探索结果,自动生成包含图表、代码桩、API 表、术语表等高质量文档,可直接用于实现。
- 架构决策记录(ADR)机制:每个关键设计选择都生成标准化的 ADR,确保决策可追溯。
- 确定性测试生成(TDD 模式):测试不是由 LLM 生成,而是从组件结构化数据(名称、描述、依赖、影响层)派生,确保测试与架构契约严格一致。
- CI 级架构合规检查:任何违反 DDD 分层规则的变更都会导致 CI 失败,从根本上阻止架构漂移进入主分支。
- 真实案例验证:在 Rigorix 项目中,单一开发者在 11 天内使用 Guardian 构建了 30 个模块、14.6 万行 Rust 代码,所有架构约束均被强制执行。
- 无 LLM 参与测试生成:避免 LLM 产生幻觉或不一致,测试完全基于结构化组件数据。
意义与影响
Guardian 代表了一种将架构治理与 AI 代码生成深度结合的新范式。它解决了当前 AI 辅助开发中的几个关键痛点:
- 架构一致性:AI 生成的代码往往遵循隐式模式,但容易与预定义的架构产生漂移。Guardian 通过 CI 强制约束,使得架构真正成为可执行的规范。
- 可追溯性与文档同步:传统开发中,架构文档与实现容易脱节。Guardian 的
.pi/目录作为单一事实源,所有产物自动保持同步。 - 降低认知负载:开发者只需要关注业务意图和架构决策,复杂的实现细节(如 DDD 样板代码、测试、CI 脚本)由系统自动生成。
- 可复现性:整个开发过程以代码和配置的形式被版本化,团队可以轻松回放、审查或复现任何阶段的设计决策。
- 对 AI 代码生成工具的约束:Guardian 实际上为 AI(如 GPT 类模型)设置了一道“安全带”,防止其生成违反架构的代码,使得 AI 能够在更可控的环境下发挥生产力。
虽然当前 Guardian 是一个展示项目,但其设计理念可能对未来 SDLC 工具的发展产生深远影响——当架构本身成为可执行的程序的一部分,软件工程的迭代速度和可靠性有望得到质的提升。
