AI-DLC项目地址:https://github.com/awslabs/aidlc-workflows/
1. 项目概述
AI-DLC 是一个AI驱动的自适应软件开发生命周期框架。它不像传统的瀑布流或敏捷开发那样死板,而是模拟了一个经验丰富的软件架构师的角色:它会根据项目的复杂度、现有代码库的状态(Greenfield 新项目 或 Brownfield 旧项目)以及用户的意图,智能地决定需要执行哪些开发阶段,跳过哪些不必要的步骤。
2. 核心入口 (Core Entry Point)
整个系统的核心大脑和逻辑入口是:
myproject/aidlc-rules/aws-aidlc-rules/core-workflow.md
作用:
它是最高优先级的规则文件,定义了整个 AI-DLC 的"主循环"。它规定了 AI 在收到用户请求时必须遵循的 strict protocol(严格协议),包括:
-
加载通用规则(如术语、错误处理、验证规则)。
-
强制执行的检查(如内容验证、提问格式)。
-
生命周期调度 :它硬编码了从
INCEPTION(初始规划)到CONSTRUCTION(构建)再到OPERATIONS(运维)的流转逻辑。 -
自适应判断:它定义了何时执行某个阶段,何时跳过(例如:只有检测到旧代码时才执行逆向工程)。
3. 核心流程 (Core Workflow)
AI-DLC 的工作流分为三个主要阶段。流程是自适应的,部分步骤是条件触发的。
第一阶段:INCEPTION PHASE (规划与架构)
目标:确定"做什么" (What) 和"为什么做" (Why)
-
Workspace Detection (总是执行):扫描工作区,判断是新项目还是旧项目。
-
Reverse Engineering (条件触发):如果是旧项目 (Brownfield),分析现有架构、API 和代码结构。
-
Requirements Analysis (总是执行):分析用户需求,深度自适应(简单需求简单分析,复杂需求深度追踪)。
-
User Stories (条件触发):如果涉及用户交互或复杂业务,生成用户故事和画像。
-
Workflow Planning (总是执行) :关键决策点 。AI 在此阶段综合所有信息,生成一份
Execution Plan(执行计划),明确后续要跑哪些步骤,并由用户审批。 -
Application Design (条件触发):设计高层组件、服务接口和依赖关系。
-
Units Generation (条件触发):将大系统拆解为独立的"工作单元" (Units of Work),如微服务或模块。
第二阶段:CONSTRUCTION PHASE (详细设计与构建)
目标:确定"怎么做" (How) 并落地代码
注:此阶段通常包含一个"Per-Unit Loop"(按单元循环),即对每个拆分出来的单元(Unit)独立执行以下步骤:
-
Functional Design (条件触发):设计具体的业务逻辑、领域模型和规则。
-
NFR Requirements & Design (条件触发):处理非功能性需求(性能、安全、高并发)及其设计模式。
-
Infrastructure Design (条件触发):设计基础设施(如 AWS 服务映射、数据库选型)。
-
Code Generation (总是执行):
-
Part 1 Planning:先写代码生成计划。
-
Part 2 Generation:执行计划,生成实际代码和测试。
-
-
Build and Test (总是执行):所有单元开发完成后,进行统一构建、单元测试、集成测试和性能测试。
第三阶段:OPERATIONS PHASE (运维)
目标:部署和运行 (Deploy & Run)
- Operations:目前的占位符,未来扩展用于部署流水线、监控告警等配置。
4. 文件详细用途分析 (File Analysis)
为了便于团队分享,我将所有文件按目录结构进行了归类解析。
A. 核心规则目录 (aidlc-rules/aws-aidlc-rules/)
| 文件名 | 用途描述 |
|---|---|
| core-workflow.md | 总控文件。定义了完整的自适应工作流逻辑、阶段流转条件以及必须遵守的元规则(如强制日志记录、审批流程)。 |
B. 通用模块目录 (.../common/)
这些文件被其他所有阶段引用,提供标准和工具支持。
| 文件名 | 用途描述 |
|---|---|
| process-overview.md | 流程图与概览。包含 Mermaid 流程图,供 AI 理解各阶段的关系,也可用于向用户展示流程全貌。 |
| welcome-message.md | 欢迎语。用户首次交互时显示的标准化欢迎信息,介绍 AI-DLC 的理念。 |
| terminology.md | 术语表。统一团队语言,定义了 Phase vs Stage,Unit vs Service vs Component 等核心概念。 |
| depth-levels.md | 自适应深度标准。指导 AI 如何根据任务复杂度(简单Bug修复 vs 系统重构)调整文档的详细程度。 |
| question-format-guide.md | 提问规范。强制 AI 使用标准化格式(如多选题 + "Other" 选项)向用户提问,禁止在聊天框直接随意提问。 |
| overconfidence-prevention.md | 防过度自信机制。矫正 AI 倾向于"瞎猜"的行为,强制在有歧义时必须提问,宁可多问不可错做。 |
| error-handling.md | 错误处理与恢复。定义了当步骤失败、文件丢失或状态不一致时,AI 应如何引导用户进行恢复。 |
| workflow-changes.md | 变更管理。处理用户在流程中途提出的变更(如"想跳过这个阶段"或"想重做上一步")。 |
| session-continuity.md | 会话保持 。当用户第二天回来继续工作时,AI 如何读取 aidlc-state.md 并恢复上下文。 |
| content-validation.md | 内容校验。在写入文件前,强制检查 Markdown 语法、Mermaid 图表和特殊字符,防止生成损坏的文件。 |
| ascii-diagram-standards.md | 绘图标准。规定 ASCII 图表的绘制规范,确保在不同编辑器中的兼容性。 |
C. 初始规划目录 (.../inception/)
决定做什么 (What) 和规划 (Planning)
| 文件名 | 用途描述 |
|---|---|
| workspace-detection.md | 侦察兵。检测目录下的现有代码,判断项目类型,生成初始的状态文件。 |
| reverse-engineering.md | 逆向分析。针对旧项目,分析代码结构、API、依赖关系,生成当前架构文档。 |
| requirements-analysis.md | 需求分析 。引导用户明确需求,生成 requirements.md。包含需求澄清的问答逻辑。 |
| user-stories.md | 用户故事。基于需求生成用户画像 (Personas) 和 INVEST 原则的用户故事。 |
| workflow-planning.md | 战术指挥官 。根据需求和现状,决定后续要执行哪些步骤(Execute/Skip),生成 execution-plan.md。 |
| application-design.md | 顶层设计。定义系统组件、服务边界和交互模式,不涉及具体代码实现细节。 |
| units-generation.md | 拆单。将大系统拆解为具体的开发任务单元(Units),为并行开发做准备。 |
D. 构建实施目录 (.../construction/)
决定怎么做 (How) 和实施 (Coding)
| 文件名 | 用途描述 |
|---|---|
| functional-design.md | 详细设计。针对具体单元,设计业务规则、数据模型和验证逻辑。 |
| nfr-requirements.md | 非功能需求。确定技术栈、性能指标、安全合规等要求。 |
| nfr-design.md | 架构模式。设计如何实现高可用、缓存策略、熔断降级等架构模式。 |
| infrastructure-design.md | 基础设施。将逻辑组件映射到物理设施(如 Docker, Lambda, RDS 等)。 |
| code-generation.md | 编码实现。核心编码规则。包含两步:先写计划(Plan),审批后再写代码(Generate)。明确规定代码不许写在文档目录里。 |
| build-and-test.md | 构建与测试。生成构建脚本、单元测试指令、集成测试方案和性能测试计划。 |
E. 运维目录 (.../operations/)
| 文件名 | 用途描述 |
|---|---|
| operations.md | 运维占位。目前作为占位符,预留给未来的 CI/CD、监控配置等流程。 |
F. 其他文件
| 文件名 | 用途描述 |
|---|---|
.gitignore |
标准 Git 忽略文件,防止提交临时文件。 |
5. 团队分享建议
在向团队分享时,建议强调以下 AI-DLC 的三大核心价值:
-
自适应性 (Adaptability):它不是死板的流程。简单的 Bug 修复会直接跳过设计阶段进入编码;复杂的系统重构则会完整执行所有设计和规划步骤。
-
规划先行 (Planning First):每个关键阶段(如编码、设计)都遵循 "Plan -> Approve -> Execute" 模式。AI 必须先告诉用户它打算怎么做,用户同意后才动手,极大减少了返工。
-
防幻觉机制 (Anti-Hallucination) :通过 overconfidence-prevention.md 和 question-format-guide.md,系统被设计为"不知道就问",而不是"不知道就编",这对于 AI 辅助开发至关重要。