# AI-Native Software Engineering Standard (AI-NSES) | 项 | 内容 | | --- | --- | | Version | 0.1 | | Scope | 可复用软件工程标准 | | Audience | 人类开发者、产品人员、架构师、AI Agent | ## 1. Purpose AI-NSES 是一套面向 AI 协作开发的软件工程标准。 它不属于某一个具体项目,而是描述: - 项目应该如何组织。 - 文档应该如何维护。 - AI Agent 应该如何工作。 - 开发流程应该如何闭环。 目标是让任何新的 AI Agent 在几分钟内理解项目,而不依赖历史聊天记录。 ## 2. Design Philosophy ### Documentation First 复杂软件首先是知识,其次才是代码。代码是项目知识的一种实现形式。 ### Context Driven Prompt 是临时的,Context 是长期资产。重要知识应该沉淀在仓库,而不是沉淀在聊天记录里。 ### Living Documentation 文档不是一次性产物。文档随着项目成长,开发结束时文档也应该同步结束。 ### AI as Team Member AI 不是单纯的代码生成器,而是项目成员。它可以参与需求分析、产品设计、架构设计、开发、Review 和维护。 ## 3. Core Principle Build a project that teaches AI. Do not teach AI every day. 中文说明:让项目成为 AI 的长期记忆,而不是每次都重新解释项目。 ## 4. Recommended Project Structure ```text project/ ├── AGENTS.md ├── CONTEXT.md ├── PROJECT_STATE.md ├── docs/ │ ├── domain/ │ ├── architecture/ │ ├── workflows/ │ ├── adr/ │ ├── specs/ │ └── guidelines/ ├── src/ └── tests/ ``` 中文说明:实际项目可以使用 `client/`、`server/`、`backend/`、`frontend/` 等目录,只要在 `CONTEXT.md` 或项目架构文档中说明映射关系即可。 ## 5. Document Responsibilities ### AGENTS.md 读者:所有 AI Agent。 职责:规定 Agent 如何工作,包括默认工作流程、Debug 原则、Spec 原则、文档更新原则和 Review 原则。 更新频率:极低。 ### CONTEXT.md 读者:人类成员和 AI Agent。 职责:介绍项目整体背景,包括产品目标、技术栈、系统组成、当前模块和当前开发方向。 更新频率:低。 ### PROJECT_STATE.md 读者:人类成员和 AI Agent。 职责:记录当前项目状态,包括当前 Sprint、当前 Feature、当前 Priority、Known Issues 和 Next Steps。 更新频率:高。建议每完成一个 Feature 或 Checkpoint 更新一次。 ### docs/domain/ 读者:产品、业务、开发和 AI Agent。 职责:记录业务知识。建议一个业务对象一个文档,例如 `Guest.md`、`Hotel.md`、`Order.md`、`Reservation.md`、`Email.md`、`Task.md`、`PMS.md`。 内容包括定义、生命周期、业务规则和关系。禁止记录实现细节。 更新频率:低。 ### docs/architecture/ 读者:架构、开发和 AI Agent。 职责:记录系统设计,例如 `ARCHITECTURE.md`、`DATABASE.md`、`EVENTS.md`、`MODULES.md`。 重点描述模块边界、系统通信、数据库、事件和部署边界。 更新频率:低。 ### docs/workflows/ 读者:产品、业务、开发和 AI Agent。 职责:记录业务流程,例如 Email Processing、Reservation Sync、Task Generation、Webhook Processing。 重点描述输入、输出、状态流转、异常和补偿。 更新频率:中。 ### docs/adr/ 读者:架构、开发和 AI Agent。 职责:记录重要架构决策。每个重要设计决策一份文档。 建议格式:背景、为什么、备选方案、最终选择、影响。 规则:ADR 永远追加,不覆盖历史。 ### docs/specs/ 读者:产品、开发、测试和 AI Agent。 职责:记录具体功能规格。每一个 Feature 对应一个 Spec。 生命周期:Draft -> Approved -> Implemented -> Archived。 规则:Spec 完成以后保留,不删除。 ### docs/guidelines/ 读者:开发、测试和 AI Agent。 职责:记录长期规范,例如 API、UI、CODING、TESTING、SECURITY。 更新频率:极低。 ## 6. Knowledge Layers ### Long-term Knowledge 生命周期:整个项目。 包括 Vision、Domain、Architecture、Guidelines。 ### Medium-term Knowledge 生命周期:一个版本或一个阶段。 包括 Workflow、ADR、Spec。 ### Short-term Knowledge 生命周期:一个 Sprint 或一个开发周期。 包括 Current Sprint、Known Issues、Next Steps、Backlog。 ## 7. Stable vs Dynamic Documents 长期稳定: - `AGENTS.md` - `CONTEXT.md` - `docs/domain/` - `docs/architecture/` - `docs/guidelines/` 中期演进: - `docs/workflows/` - `docs/adr/` - `docs/specs/` 高频更新: - `PROJECT_STATE.md` 中文说明:这样可以避免整个仓库每天发生无意义变化,也能让新 Agent 快速判断哪些文档代表长期事实,哪些文档代表当前状态。 ## 8. Feature Lifecycle 任何 Feature 默认按以下顺序推进: ```text Idea -> Requirement -> Discussion -> Specification -> Implementation -> Verification -> Documentation Update -> Done ``` Documentation Update 属于 Definition of Done,不能跳过。 ## 9. AI Working Principles - AI 应先理解,再开发。 - 复杂需求默认先讨论,不立即编码。 - 复杂功能默认先 Spec,不直接实现。 - Bug 默认先定位,不猜测修复。 - UI 默认保持一致性,不过度设计。 - 代码修改前先确认目标、边界和验收标准。 - 涉及接口、安全、权限、数据模型或外部系统时,先读相关契约文档。 ## 10. Documentation Rules 所有文档必须回答一个问题: 未来的新 Agent 为什么需要阅读它? 如果回答不了,就不要创建,也不要维护。 文档应该小、独立、易维护。 不要维护一个 8000 行的 `DOMAIN.md`。应该按对象拆分成 `Order.md`、`Guest.md`、`Hotel.md`、`Email.md`、`Task.md`。 ## 11. Documentation Update Rules 完成 Feature 后必须检查: - Domain 是否需要更新。 - Architecture 是否需要更新。 - Workflow 是否需要更新。 - ADR 是否需要新增。 - Spec 是否需要改为 Implemented 或补充结果。 - Project State 是否需要更新。 - 安全、权限、接口契约是否需要同步。 如果没有文档变化,应明确说明: ```text No documentation changes required. ``` 不要为了修改而修改文档。 ## 12. Success Criteria 一个新的 AI Agent 进入项目后,阅读以下有限文档即可开始工作: ```text AGENTS.md -> CONTEXT.md -> PROJECT_STATE.md -> 相关 Domain -> 相关 Workflow -> 相关 Spec 或 ADR ``` 无需阅读整个代码库。 无需依赖历史聊天记录。 ## 13. Scope AI-NSES 不限制编程语言、框架、数据库或 AI 模型。 它适用于 Codex、Claude Code、Gemini CLI、Cursor,以及未来任何 AI Agent。 它描述的是软件工程,不是某个具体工具。