aodw-skill 0.7.13 → 0.7.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aodw-next/01-core/ai-interaction-rules-summary.md +37 -0
- package/.aodw-next/01-core/ai-interaction-rules.md +20 -6
- package/.aodw-next/01-core/ai-knowledge-rules-summary.md +25 -0
- package/.aodw-next/01-core/ai-knowledge-rules.md +19 -21
- package/.aodw-next/01-core/ai-project-overview-rules.md +11 -11
- package/.aodw-next/01-core/aodw-constitution.md +7 -414
- package/.aodw-next/01-core/csf-thinking-framework.md +14 -14
- package/.aodw-next/01-core/git-discipline-summary.md +36 -0
- package/.aodw-next/01-core/git-discipline.md +129 -73
- package/.aodw-next/01-core/module-doc-rules.md +2 -2
- package/.aodw-next/02-workflow/rt-id-generation-rules.md +16 -259
- package/.aodw-next/02-workflow/rt-manager-summary.md +1 -1
- package/.aodw-next/02-workflow/rt-manager.md +73 -344
- package/.aodw-next/02-workflow/spec-full-profile.md +149 -307
- package/.aodw-next/02-workflow/spec-lite-profile.md +170 -253
- package/.aodw-next/02-workflow/ui-workflow-rules-summary.md +39 -0
- package/.aodw-next/02-workflow/ui-workflow-rules.md +57 -292
- package/.aodw-next/03-standards/ai-coding-rules-common.md +1 -1
- package/.aodw-next/03-standards/ai-coding-rules.md +91 -25
- package/.aodw-next/03-standards/stacks/java-springboot/ai-coding-rules-backend.md +9 -9
- package/.aodw-next/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md +13 -13
- package/.aodw-next/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md +10 -10
- package/.aodw-next/03-standards/stacks/rust-axum/ai-coding-rules-backend.md +4 -4
- package/.aodw-next/03-standards/stacks/vue2/ai-coding-rules-frontend.md +9 -9
- package/.aodw-next/04-auditors/aodw-development-auditor-rules.md +15 -10
- package/.aodw-next/04-auditors/aodw-full-auditor-rules.md +14 -14
- package/.aodw-next/04-auditors/aodw-requirement-auditor-rules.md +130 -338
- package/.aodw-next/05-tooling/ai-tools-init-rules.md +74 -367
- package/.aodw-next/06-project/README.md +16 -0
- package/.aodw-next/07-optimization/token-usage-analysis.md +2 -2
- package/.aodw-next/README.md +53 -20
- package/.aodw-next/SKILL.md +32 -0
- package/.aodw-next/config.yaml +2 -2
- package/.aodw-next/manifest.yaml +64 -57
- package/.aodw-next/project.yaml +1 -0
- package/.aodw-next/templates/TEMPLATE-APPLICATION-GUIDE.md +21 -157
- package/.aodw-next/templates/ai-overview.template.md +72 -0
- package/.aodw-next/templates/aodw-kernel-loader-template.md +19 -19
- package/.aodw-next/templates/checklists/coding-standards-template.md +24 -4
- package/.aodw-next/templates/modules-index.template.yaml +13 -0
- package/.aodw-next/templates/plan-lite-template.md +9 -0
- package/.aodw-next/templates/rt-intake-template.md +2 -2
- package/.aodw-next/templates/rt-meta-template.yaml +2 -2
- package/.aodw-next/templates/spec-lite-template.md +9 -0
- package/.aodw-next/templates/tools-config/README.md +1 -1
- package/.aodw-next/templates/tools-config/backend/clippy.config.template.toml +5 -0
- package/.aodw-next/templates/tools-config/backend/rustfmt.config.template.toml +4 -0
- package/.aodw-next/tools-status.yaml +51 -0
- package/AODW_Adapters/antigravity/.agent/rules/aodw-next.md +2 -2
- package/AODW_Adapters/claude/CLAUDE.md +2 -2
- package/AODW_Adapters/cursor/.cursor/rules/aodw-next.mdc +2 -2
- package/AODW_Adapters/gemini/.agent/rules/aodw-next.md +2 -2
- package/AODW_Adapters/gemini/GEMINI.md +6 -5
- package/AODW_Adapters/general/AGENTS.md +2 -2
- package/README.md +62 -45
- package/bin/aodw.js +44 -16
- package/bin/commands/init-overview.js +3 -3
- package/bin/commands/init-tools.js +34 -51
- package/bin/utils/config.js +1 -1
- package/package.json +1 -1
- package/.aodw-next/.aodw-next/01-core/ai-interaction-rules.md +0 -218
- package/.aodw-next/.aodw-next/01-core/ai-knowledge-rules.md +0 -302
- package/.aodw-next/.aodw-next/01-core/ai-project-overview-rules.md +0 -284
- package/.aodw-next/.aodw-next/01-core/aodw-constitution-summary.md +0 -20
- package/.aodw-next/.aodw-next/01-core/aodw-constitution.md +0 -419
- package/.aodw-next/.aodw-next/01-core/csf-thinking-framework.md +0 -373
- package/.aodw-next/.aodw-next/01-core/git-discipline.md +0 -226
- package/.aodw-next/.aodw-next/01-core/module-doc-rules.md +0 -90
- package/.aodw-next/.aodw-next/02-workflow/aodw-development-stages.md +0 -235
- package/.aodw-next/.aodw-next/02-workflow/rt-id-generation-rules.md +0 -267
- package/.aodw-next/.aodw-next/02-workflow/rt-manager-summary.md +0 -15
- package/.aodw-next/.aodw-next/02-workflow/rt-manager.md +0 -399
- package/.aodw-next/.aodw-next/02-workflow/spec-full-profile-summary.md +0 -13
- package/.aodw-next/.aodw-next/02-workflow/spec-full-profile.md +0 -391
- package/.aodw-next/.aodw-next/02-workflow/spec-lite-profile.md +0 -313
- package/.aodw-next/.aodw-next/02-workflow/ui-workflow-rules.md +0 -334
- package/.aodw-next/.aodw-next/03-standards/ai-coding-rules-common.md +0 -89
- package/.aodw-next/.aodw-next/03-standards/ai-coding-rules.md +0 -370
- package/.aodw-next/.aodw-next/03-standards/stacks/java-springboot/ai-coding-rules-backend.md +0 -231
- package/.aodw-next/.aodw-next/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md +0 -612
- package/.aodw-next/.aodw-next/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md +0 -291
- package/.aodw-next/.aodw-next/03-standards/stacks/rust-axum/ai-coding-rules-backend.md +0 -134
- package/.aodw-next/.aodw-next/03-standards/stacks/vue2/ai-coding-rules-frontend.md +0 -220
- package/.aodw-next/.aodw-next/03-standards/ui-kit/ui-kit.md +0 -163
- package/.aodw-next/.aodw-next/04-auditors/aodw-development-auditor-rules.md +0 -470
- package/.aodw-next/.aodw-next/04-auditors/aodw-full-auditor-rules.md +0 -365
- package/.aodw-next/.aodw-next/04-auditors/aodw-requirement-auditor-rules.md +0 -408
- package/.aodw-next/.aodw-next/05-tooling/ai-tools-init-rules.md +0 -676
- package/.aodw-next/.aodw-next/06-project/ai-overview.md +0 -116
- package/.aodw-next/.aodw-next/06-project/modules-index.yaml +0 -11
- package/.aodw-next/.aodw-next/07-optimization/token-usage-analysis.md +0 -253
- package/.aodw-next/.aodw-next/README.md +0 -26
- package/.aodw-next/.aodw-next/RELEASE-CHECKLIST.md +0 -144
- package/.aodw-next/.aodw-next/config.yaml +0 -2
- package/.aodw-next/.aodw-next/manifest.yaml +0 -98
- package/.aodw-next/.aodw-next/templates/SOURCE-TO-DISTRIBUTION-GUIDE.md +0 -276
- package/.aodw-next/.aodw-next/templates/TEMPLATE-APPLICATION-GUIDE.md +0 -246
- package/.aodw-next/.aodw-next/templates/aodw-kernel-loader-template.md +0 -70
- package/.aodw-next/.aodw-next/templates/audit-report-template.md +0 -232
- package/.aodw-next/.aodw-next/templates/changelog-template.md +0 -16
- package/.aodw-next/.aodw-next/templates/checklists/coding-standards-template.md +0 -110
- package/.aodw-next/.aodw-next/templates/csf-review-template.md +0 -201
- package/.aodw-next/.aodw-next/templates/impact-template.md +0 -17
- package/.aodw-next/.aodw-next/templates/invariants-template.md +0 -12
- package/.aodw-next/.aodw-next/templates/module-readme-template.md +0 -39
- package/.aodw-next/.aodw-next/templates/plan-lite-template.md +0 -11
- package/.aodw-next/.aodw-next/templates/rt-decision-template.md +0 -13
- package/.aodw-next/.aodw-next/templates/rt-intake-template.md +0 -33
- package/.aodw-next/.aodw-next/templates/rt-meta-template.yaml +0 -43
- package/.aodw-next/.aodw-next/templates/spec-lite-template.md +0 -17
- package/.aodw-next/.aodw-next/templates/tests-template.md +0 -13
- package/.aodw-next/.aodw-next/templates/tools-config/README.md +0 -112
- package/.aodw-next/.aodw-next/templates/tools-config/backend/black.config.template.toml +0 -6
- package/.aodw-next/.aodw-next/templates/tools-config/backend/pre-commit.config.template.yaml +0 -16
- package/.aodw-next/.aodw-next/templates/tools-config/backend/ruff.config.template.toml +0 -23
- package/.aodw-next/.aodw-next/templates/tools-config/frontend/eslint.config.template.json +0 -113
- package/.aodw-next/.aodw-next/templates/tools-config/frontend/prettier.config.template.json +0 -10
- package/.aodw-next/.aodw-next/templates/tools-config/frontend/tsconfig.paths.template.json +0 -11
- package/.aodw-next/.aodw-next/workflow-guide.md +0 -51
- package/.aodw-next/01-core/aodw-constitution-summary.md +0 -20
- package/.aodw-next/02-workflow/aodw-development-stages.md +0 -235
- package/.aodw-next/02-workflow/spec-full-profile-summary.md +0 -13
- package/.aodw-next/06-project/ai-overview.md +0 -116
- package/.aodw-next/06-project/modules-index.yaml +0 -11
- package/.aodw-next/RELEASE-CHECKLIST.md +0 -144
- package/.aodw-next/templates/SOURCE-TO-DISTRIBUTION-GUIDE.md +0 -276
- package/.aodw-next/workflow-guide.md +0 -51
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
# RT-Manager Specification
|
|
1
|
+
# RT-Manager Specification
|
|
2
|
+
|
|
2
3
|
统一请求票编排器(Request Ticket Manager)
|
|
3
4
|
|
|
4
|
-
RT-Manager 是 AODW
|
|
5
|
+
RT-Manager 是 AODW 的核心组件,负责:
|
|
6
|
+
- RT 编号管理
|
|
7
|
+
- 立项流程
|
|
8
|
+
- Full / Lite(Spec-Full / Spec-Lite)流程分流
|
|
9
|
+
- RT 目录和分支的创建与约束
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
- 立项(Intake)流程;
|
|
8
|
-
- Full / Lite(Spec-Full / Spec-Lite)流程分流;
|
|
9
|
-
- RT 目录和分支的创建与约束;
|
|
10
|
-
- 全局状态机更新。
|
|
11
|
+
---
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
## 0. 核心原则
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
**简洁至上**:保持简单清晰的流程,避免复杂度
|
|
16
|
+
**自动化优先**:自动化可自动化的操作(RT-ID 生成、目录创建)
|
|
17
|
+
**分支隔离**:每个 RT 独立工作分支,避免相互干扰
|
|
16
18
|
|
|
17
19
|
---
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## 1. 工作前强制检查
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
AI 在执行任何文件修改操作前,必须先执行以下检查序列:
|
|
22
24
|
|
|
23
25
|
### Step 1: 验证 RT 是否已创建
|
|
24
26
|
- 检查 `RT/RT-XXX/` 目录是否存在
|
|
@@ -29,371 +31,98 @@ RT-Manager 是 AODW 的 Orchestration Layer 核心组件,负责:
|
|
|
29
31
|
- ✅ 如果显示 `feature/RT-XXX-xxx`:继续工作
|
|
30
32
|
- ❌ 如果显示 `main` 或 `master`:**立即停止**,提示用户并创建分支
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
1. 建议分支名:`feature/RT-XXX-{short-name}`
|
|
35
|
-
2. 创建并切换:`git checkout -b feature/RT-XXX-{short-name}`
|
|
36
|
-
3. 验证切换成功:`git branch` 显示 `* feature/RT-XXX-xxx`
|
|
37
|
-
4. **仅在验证通过后**才允许进行代码修改
|
|
38
|
-
|
|
39
|
-
### Step 4: 暂停并通知用户(首次创建分支时)
|
|
40
|
-
首次为 RT 创建分支时,AI 应暂停并告知用户:
|
|
41
|
-
```
|
|
42
|
-
已创建 feature 分支:feature/RT-XXX-{short-name}
|
|
43
|
-
当前分支:* feature/RT-XXX-xxx ✅
|
|
44
|
-
即将开始代码工作,请确认。
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**违规处理**:如果 AI 在 main/master 分支上修改了业务代码,必须立即回滚并切换到正确的分支。
|
|
48
|
-
|
|
49
|
-
**RT-ID 使用位置**:
|
|
50
|
-
- 分支名:`feature/RT-XXX-short-name`
|
|
51
|
-
- 提交信息:`Refs: RT-XXX`
|
|
52
|
-
- 标签名:`done-RT-XXX`
|
|
34
|
+
**🚨 强制规则**:AI 在开始任何代码工作前,必须先创建并切换到 feature 分支!
|
|
35
|
+
严禁在 `main`/`master` 分支上直接修改业务代码。
|
|
53
36
|
|
|
54
37
|
---
|
|
55
38
|
|
|
56
|
-
##
|
|
57
|
-
|
|
58
|
-
⚠️ **关键规则**:AI 在创建新 RT 时,**必须**先检查 `.aodw/config.yaml` 确定开发模式,然后按照相应规则获取 RT-ID。
|
|
59
|
-
|
|
60
|
-
**详细规则请参考**:`.aodw/02-workflow/rt-id-generation-rules.md`
|
|
61
|
-
|
|
62
|
-
本文件包含完整的 RT-ID 获取规则,包括:
|
|
63
|
-
- 配置文件检查流程
|
|
64
|
-
- 协作模式(从远程服务器获取)
|
|
65
|
-
- 独立模式(本地生成)
|
|
66
|
-
- 决策树和执行规范
|
|
67
|
-
- 错误处理机制
|
|
68
|
-
|
|
69
|
-
---
|
|
39
|
+
## 2. 流程状态机
|
|
70
40
|
|
|
71
|
-
## 2. 目录与分支创建
|
|
72
|
-
|
|
73
|
-
当用户提出新需求或问题时:
|
|
74
|
-
|
|
75
|
-
1. RT-Manager 为其分配新的 RT-ID;
|
|
76
|
-
2. 创建对应目录:
|
|
77
|
-
|
|
78
|
-
```text
|
|
79
|
-
/RT/RT-XXX/
|
|
80
|
-
meta.yaml
|
|
81
|
-
intake.md
|
|
82
|
-
decision.md
|
|
83
|
-
task.md # 任务追踪文档(复杂任务必须)
|
|
84
|
-
docs/ # 过程文档目录(可选,按需创建)
|
|
85
|
-
(其他文件由后续流程按需创建)
|
|
86
41
|
```
|
|
87
|
-
|
|
88
|
-
**目录结构说明**:
|
|
89
|
-
- **核心文档**:位于 RT 目录根目录,包括 `intake.md`、`decision.md`、`spec.md`、`plan.md` 等标准文档
|
|
90
|
-
- **任务追踪文档**:`task.md` 用于复杂任务的进度追踪(详见第 8 节)
|
|
91
|
-
- **过程文档目录**:`docs/` 子目录用于存放执行过程中产生的分析、调研、决策等过程文档
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
3. 生成 feature 分支名建议,例如:
|
|
95
|
-
|
|
96
|
-
```text
|
|
97
|
-
feature/RT-XXX-{short-name}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
其中 `{short-name}` 为 2–4 个词组成的短英文标识(例如 `user-auth-bugfix`)。
|
|
101
|
-
|
|
102
|
-
AI 应:
|
|
103
|
-
|
|
104
|
-
- 建议一个 `{short-name}`(简短、描述性,使用小写和连字符);
|
|
105
|
-
- 解释命名含义;
|
|
106
|
-
- 根据 Profile 创建分支:
|
|
107
|
-
- **Spec-Lite**:自动创建并切换到分支(用户可在后续调整)
|
|
108
|
-
- **Spec-Full**:建议分支名,等待用户确认后创建
|
|
109
|
-
- 创建分支后,必须立即切换到该分支
|
|
110
|
-
- 验证当前分支:执行 `git branch`,应显示 `* feature/RT-XXX-xxx`
|
|
111
|
-
|
|
112
|
-
**强制要求**:在进入 `in-progress` 状态前,必须确保已在正确的 feature 分支上。
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## 3. 状态机
|
|
117
|
-
|
|
118
|
-
RT 的状态机定义如下:
|
|
119
|
-
|
|
120
|
-
```text
|
|
121
42
|
created → intaking → decided → in-progress → reviewing → done
|
|
122
43
|
```
|
|
123
44
|
|
|
124
|
-
|
|
125
|
-
- `intaking`:AI 与用户进行互动提问,补充立项信息。
|
|
126
|
-
- `decided`:Spec-Full / Spec-Lite 决策已完成,**feature 分支已创建且已切换**,基础文件已创建。
|
|
127
|
-
- 检查点:
|
|
128
|
-
- ✅ feature 分支存在:`git branch` 列表中有 `feature/RT-XXX-xxx`
|
|
129
|
-
- ✅ 已切换到该分支:`git branch` 显示 `* feature/RT-XXX-xxx`
|
|
130
|
-
- ✅ 基础文档已创建:spec/spec-lite.md, plan/plan-lite.md 等
|
|
131
|
-
- `in-progress`:正在实现(包括 Spec 编写、Plan 制定、代码修改等)。
|
|
132
|
-
- `reviewing`:实现完成,正在进行代码与文档审查与测试验证。
|
|
133
|
-
- `done`:本 RT 正式完成(分支合并 / tag 打上 / 文档更新完毕)。
|
|
134
|
-
|
|
135
|
-
RT 状态可以记录在:
|
|
136
|
-
|
|
137
|
-
- 一个集中式索引文件(例如 `RT/index.yaml`),或
|
|
138
|
-
- 每个 `RT-XXX` 目录中的元数据文件(如 `meta.yaml`)。
|
|
139
|
-
|
|
140
|
-
具体实现可根据项目需要定制。
|
|
45
|
+
RT-Manager 统一管理全局状态机更新。
|
|
141
46
|
|
|
142
47
|
---
|
|
143
48
|
|
|
144
|
-
## 3.
|
|
145
|
-
|
|
146
|
-
为确保 AODW 流程的严格执行,在关键状态转换时,AI 必须进行以下检查:
|
|
147
|
-
|
|
148
|
-
### decided → in-progress
|
|
149
|
-
|
|
150
|
-
在从 `decided` 进入 `in-progress` 状态前,AI 必须验证以下条件:
|
|
49
|
+
## 3. Intake(立项)流程
|
|
151
50
|
|
|
152
|
-
1
|
|
153
|
-
|
|
154
|
-
|
|
51
|
+
### 3.1 触发条件
|
|
52
|
+
用户表达以下意图时:
|
|
53
|
+
- 新功能
|
|
54
|
+
- Bug 修复
|
|
55
|
+
- 需求
|
|
56
|
+
- 改进
|
|
57
|
+
- 重构
|
|
155
58
|
|
|
156
|
-
2
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
- **行为**:AI 必须暂停,展示 Plan 的摘要,并询问:“计划已就绪,是否批准执行?”
|
|
163
|
-
- **禁止**:严禁在未获批准前直接开始修改代码。
|
|
164
|
-
|
|
165
|
-
### 持续分支检查 (Continuous Branch Check)
|
|
166
|
-
|
|
167
|
-
**规则**:每次写代码前,必须检查当前分支。如在 `main`/`master` 分支,立即切换到 feature 分支。
|
|
168
|
-
|
|
169
|
-
**严禁**:在 `main`/`master` 分支上修改业务代码(仅允许修改 meta.yaml 或 index.yaml 等管理文件)。
|
|
170
|
-
|
|
171
|
-
### 提交前确认节点 (Pre-Commit Node)
|
|
172
|
-
|
|
173
|
-
- **触发时机**:代码修改完成,准备 Git Commit 前。
|
|
174
|
-
- **行为**:AI 必须展示 `git status` 和关键 `diff`,询问:“修改已完成,是否提交?”
|
|
175
|
-
- **禁止**:严禁在未获用户确认前直接 Commit。
|
|
176
|
-
|
|
177
|
-
**严格禁止**:在 master/main 分支上直接修改代码。所有代码修改必须在 feature 分支上进行。
|
|
59
|
+
### 3.2 执行步骤
|
|
60
|
+
1. 生成 RT-ID(使用本地生成或远程获取)
|
|
61
|
+
2. 创建 RT 目录结构
|
|
62
|
+
3. 执行交互式澄清(选项化提问)
|
|
63
|
+
4. 记录立项信息到 `intake.md`
|
|
64
|
+
5. 决定使用 Spec-Full 还是 Spec-Lite profile
|
|
178
65
|
|
|
179
66
|
---
|
|
180
67
|
|
|
181
|
-
## 4.
|
|
182
|
-
|
|
183
|
-
当用户提出自然语言需求时,RT-Manager:
|
|
184
|
-
|
|
185
|
-
1. **UI 任务识别(前置检查)**
|
|
186
|
-
- 在执行 Intake 前,必须首先判断是否为 UI 相关任务
|
|
187
|
-
- 判断标准:参考 `.aodw/01-core/ai-interaction-rules.md` 第 0 节
|
|
188
|
-
- 如果识别为 UI 任务,在后续记录中标注 `ui_related: true`
|
|
189
|
-
- 提示:此 RT 将进入 UI 专用流程(详见 `.aodw/02-workflow/ui-workflow-rules.md`)
|
|
68
|
+
## 4. 流程分流决策
|
|
190
69
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
- 允许短自定义答案(≤ 5 词);
|
|
197
|
-
- **必须停止并等待**:输出必须以提问或选项列表结束,**严禁**在同一回复中自问自答并继续执行。
|
|
198
|
-
4. 在 `intake.md` 中记录:
|
|
199
|
-
- 原始描述;
|
|
200
|
-
- 问题与答案摘要;
|
|
201
|
-
- 需求类型、范围、风险等级、影响模块估计;
|
|
202
|
-
- **UI 相关标识**(如适用):`ui_related: true`
|
|
203
|
-
- **技术约束**(如涉及前端/后端开发,标注相关编码规范,参考 `.aodw/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md` 或 `.aodw/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md`)。
|
|
70
|
+
### 4.1 Spec-Full 适用场景
|
|
71
|
+
- 跨模块影响
|
|
72
|
+
- 数据模型/schema 变更
|
|
73
|
+
- 外部 API/协议变更
|
|
74
|
+
- 高风险或高复杂度变更
|
|
204
75
|
|
|
205
|
-
|
|
76
|
+
### 4.2 Spec-Lite 适用场景
|
|
77
|
+
- Bug 修复
|
|
78
|
+
- 单模块小改进
|
|
79
|
+
- 简单 UI 或交互调整
|
|
80
|
+
- 不涉及数据结构与 API 约约变更的工作
|
|
206
81
|
|
|
207
82
|
---
|
|
208
83
|
|
|
209
|
-
## 5.
|
|
210
|
-
|
|
211
|
-
RT-Manager 根据 Intake 信息进行初步判断:
|
|
212
|
-
|
|
213
|
-
- 应使用 **Spec-Full** 的典型情况:
|
|
214
|
-
- 影响数据模型;
|
|
215
|
-
- 影响对外 API 或协议;
|
|
216
|
-
- 跨多个子系统或模块;
|
|
217
|
-
- 对性能、安全、合规有显著影响;
|
|
218
|
-
- 大规模重构或新功能。
|
|
84
|
+
## 5. 目录结构
|
|
219
85
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
- 创建 feature 分支(或建议用户执行相应命令)。
|
|
86
|
+
```
|
|
87
|
+
RT/RT-XXX/
|
|
88
|
+
meta.yaml ← RT 元数据
|
|
89
|
+
intake.md ← 立项记录
|
|
90
|
+
decision.md ← Profile 决策
|
|
91
|
+
spec.md ← Spec-Full 完整需求
|
|
92
|
+
plan.md ← Spec-Full 技术方案
|
|
93
|
+
impact.md ← 影响分析
|
|
94
|
+
invariants.md ← 不可破坏边界
|
|
95
|
+
tests.md ← 验证计划
|
|
96
|
+
task.md ← AI 任务追踪(仅 Spec-Full)
|
|
97
|
+
changelog.md ← 变更记录
|
|
98
|
+
|
|
99
|
+
或(Spec-Lite):
|
|
100
|
+
rt-lite.md ← 单文件整合所有内容
|
|
101
|
+
```
|
|
237
102
|
|
|
238
103
|
---
|
|
239
104
|
|
|
240
|
-
## 6.
|
|
105
|
+
## 6. 分支命名与隔离策略
|
|
241
106
|
|
|
242
|
-
|
|
107
|
+
**分支命名**:`feature/RT-XXX-short-name`
|
|
108
|
+
**工作区隔离**:每个 RT 对应一个独立的 Git worktree
|
|
243
109
|
|
|
244
|
-
|
|
110
|
+
**🚨 关键规则**:一个 RT = 一个 Worktree = 一个 Feature 分支
|
|
245
111
|
|
|
246
112
|
---
|
|
247
113
|
|
|
248
|
-
##
|
|
249
|
-
|
|
250
|
-
### 8.1 task.md 的创建时机
|
|
251
|
-
|
|
252
|
-
- **Spec-Full RT**:在创建 `plan.md` 后,必须立即创建 `task.md`
|
|
253
|
-
- **Spec-Lite RT**:如果 `plan-lite.md` 中任务项 > 3,必须创建 `task.md`
|
|
254
|
-
- **位置**:`RT/RT-XXX/task.md`
|
|
114
|
+
## 7. Profile 调用规范
|
|
255
115
|
|
|
256
|
-
|
|
116
|
+
AI 根据决策结果,加载对应的 Profile:
|
|
257
117
|
|
|
258
|
-
-
|
|
259
|
-
-
|
|
260
|
-
- 每次提交代码前必须更新
|
|
261
|
-
- 状态变更时(如从 `in-progress` 到 `reviewing`)必须更新
|
|
262
|
-
|
|
263
|
-
### 8.3 task.md 的内容要求
|
|
264
|
-
|
|
265
|
-
- 必须包含任务状态总览(已完成/进行中/待执行)
|
|
266
|
-
- 必须包含详细任务清单(与 plan 对应)
|
|
267
|
-
- 必须包含当前进度说明
|
|
268
|
-
- 必须包含下一步计划
|
|
118
|
+
- Spec-Full → 加载 `02-workflow/spec-full-profile.md`
|
|
119
|
+
- Spec-Lite → 加载 `02-workflow/spec-lite-profile.md`
|
|
269
120
|
|
|
270
121
|
---
|
|
271
122
|
|
|
272
|
-
##
|
|
273
|
-
|
|
274
|
-
为便于 AI 与人类快速了解所有 RT 的状态与分布,AODW 定义了两层元数据:
|
|
275
|
-
|
|
276
|
-
1. 每个 RT 自身的元数据文件:`RT/RT-XXX/meta.yaml`
|
|
277
|
-
2. 全局 RT 索引文件:`RT/index.yaml`
|
|
278
|
-
|
|
279
|
-
### 9.1 meta.yaml:单个 RT 的权威来源
|
|
280
|
-
|
|
281
|
-
- 路径:`RT/RT-XXX/meta.yaml`
|
|
282
|
-
- 格式:参考 `.aodw/templates/rt-meta-template.yaml`
|
|
283
|
-
- 内容包括:
|
|
284
|
-
- id / title / type / profile / status
|
|
285
|
-
- modules / tool / owner
|
|
286
|
-
- created_at / updated_at / closed_at
|
|
287
|
-
- external_ids / notes
|
|
288
|
-
|
|
289
|
-
规则:**meta.yaml 是本 RT 的权威来源(single source of truth)。**
|
|
290
|
-
任何关于状态、类型、模块范围等的变更,都必须首先更新 meta.yaml。
|
|
291
|
-
|
|
292
|
-
### 9.2 index.yaml:全局缩影视图
|
|
293
|
-
|
|
294
|
-
- 路径:`RT/index.yaml`
|
|
295
|
-
- 初始结构:
|
|
296
|
-
|
|
297
|
-
```yaml
|
|
298
|
-
version: 1
|
|
299
|
-
last_updated_at: null
|
|
300
|
-
items: []
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
- `items` 为数组,每个元素为某个 RT 的摘要信息,字段是 meta.yaml 的子集:
|
|
304
|
-
- id, title, type, profile, status, modules, owner, tool, created_at, closed_at
|
|
305
|
-
|
|
306
|
-
规则:**index.yaml 是基于各 RT meta.yaml 构建的汇总视图。**
|
|
307
|
-
如 meta.yaml 与 index.yaml 不一致,以 meta.yaml 为准,AI 应尝试用 meta.yaml 修正 index.yaml。
|
|
308
|
-
|
|
309
|
-
### 9.3 RT-Manager 在不同阶段的职责补充
|
|
310
|
-
|
|
311
|
-
RT 创建时:
|
|
312
|
-
|
|
313
|
-
1. 生成 RT-ID(RT-XXX);
|
|
314
|
-
2. 创建目录 `RT/RT-XXX/`;
|
|
315
|
-
3. 复制 `.aodw/templates/rt-meta-template.yaml` 为 `RT/RT-XXX/meta.yaml`:
|
|
316
|
-
- 填写:
|
|
317
|
-
- id
|
|
318
|
-
- title(从 intake 中提炼)
|
|
319
|
-
- type(初步判断结果)
|
|
320
|
-
- profile(在 Full / Lite 决策后填写)
|
|
321
|
-
- status = `created`
|
|
322
|
-
- created_at / updated_at(必须使用系统命令或 API 获取真实时间,见第 10 节)
|
|
323
|
-
4. 在 `RT/index.yaml` 的 `items` 中新增一条记录,内容与 meta.yaml 对应;
|
|
324
|
-
5. 更新 `RT/index.yaml.last_updated_at`(必须使用系统命令或 API 获取真实时间,见第 10 节)。
|
|
325
|
-
|
|
326
|
-
RT 状态或基本属性变化时(例如:decided → in-progress → reviewing → done):
|
|
327
|
-
|
|
328
|
-
1. 更新 `RT/RT-XXX/meta.yaml` 中的:
|
|
329
|
-
- status
|
|
330
|
-
- updated_at(必须使用系统命令或 API 获取真实时间,见第 10 节)
|
|
331
|
-
- 如完成则写入 closed_at(必须使用系统命令或 API 获取真实时间,见第 10 节)
|
|
332
|
-
2. 在 `RT/index.yaml.items` 中找到 id = RT-XXX 的条目,并同步修改:
|
|
333
|
-
- status / owner / modules / tool / created_at / closed_at 等必要字段;
|
|
334
|
-
3. 更新 `RT/index.yaml.last_updated_at`(必须使用系统命令或 API 获取真实时间,见第 10 节)。
|
|
335
|
-
|
|
336
|
-
从 Spec-Lite 升级为 Spec-Full 时:
|
|
337
|
-
|
|
338
|
-
1. 在 `meta.yaml` 中将 `profile` 从 `Spec-Lite` 改为 `Spec-Full`;
|
|
339
|
-
2. 在 `RT/index.yaml.items` 中同步修改该 RT 的 profile;
|
|
340
|
-
3. 在本 RT 的 `changelog.md` 中记录本次 Profile 变更。
|
|
341
|
-
|
|
342
|
-
RT-Manager 和所有执行 AODW 的 AI 工具,在处理任何 RT 时,
|
|
343
|
-
应优先读取 `meta.yaml` 来确定当前 RT 的基础信息。
|
|
344
|
-
|
|
345
|
-
---
|
|
346
|
-
|
|
347
|
-
## 10. 时间字段获取规则(强制要求)
|
|
348
|
-
|
|
349
|
-
⚠️ **重要**:所有时间字段必须使用系统真实时间,严禁 AI 自行推断或使用假时间。
|
|
350
|
-
|
|
351
|
-
### 10.1 适用范围
|
|
352
|
-
|
|
353
|
-
以下时间字段必须遵循本规则:
|
|
354
|
-
- `meta.yaml` 中的 `created_at`, `updated_at`, `closed_at`
|
|
355
|
-
- `RT/index.yaml` 中的 `created_at`, `closed_at`, `last_updated_at`
|
|
356
|
-
- `AODW_Governance/version.md` 中的 `updated_at` 和 changelog 中的 `date`
|
|
357
|
-
|
|
358
|
-
### 10.2 获取方法
|
|
359
|
-
|
|
360
|
-
在创建或更新 RT 时,必须通过以下方式之一获取当前时间:
|
|
361
|
-
|
|
362
|
-
**命令行方式**(推荐):
|
|
363
|
-
```bash
|
|
364
|
-
# Unix/Linux/macOS
|
|
365
|
-
date -u +"%Y-%m-%dT%H:%M:%SZ" # UTC 时间
|
|
366
|
-
date +"%Y-%m-%dT%H:%M:%S%z" # 本地时间带时区
|
|
367
|
-
|
|
368
|
-
# Windows PowerShell
|
|
369
|
-
Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ"
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
**编程方式**:
|
|
373
|
-
- Node.js: `new Date().toISOString()`
|
|
374
|
-
- Python: `datetime.now(timezone.utc).isoformat().replace('+00:00', 'Z')` 或 `datetime.now().astimezone().isoformat()`
|
|
375
|
-
|
|
376
|
-
### 10.3 时间格式
|
|
377
|
-
|
|
378
|
-
- 格式:ISO8601 格式
|
|
379
|
-
- 示例:`2025-11-28T11:54:45Z` (UTC) 或 `2025-11-28T19:54:45+08:00` (带时区)
|
|
380
|
-
|
|
381
|
-
### 10.4 禁止行为
|
|
382
|
-
|
|
383
|
-
❌ 禁止使用 AI 训练数据中的时间
|
|
384
|
-
❌ 禁止使用对话上下文中的时间
|
|
385
|
-
❌ 禁止自行推断或猜测时间
|
|
386
|
-
❌ 禁止使用固定的示例时间
|
|
387
|
-
❌ 禁止使用 `2024-01-01T00:00:00Z` 等占位符时间
|
|
388
|
-
|
|
389
|
-
### 10.5 执行要求
|
|
390
|
-
|
|
391
|
-
- 在 RT 创建时,必须通过系统命令或 API 获取 `created_at` 和 `updated_at`
|
|
392
|
-
- 在 RT 状态更新时,必须通过系统命令或 API 获取 `updated_at`
|
|
393
|
-
- 在 RT 完成时,必须通过系统命令或 API 获取 `closed_at`
|
|
394
|
-
- 在更新 `RT/index.yaml` 时,必须通过系统命令或 API 获取 `last_updated_at`
|
|
123
|
+
## 8. 集成规范
|
|
395
124
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
125
|
+
与以下规范配合使用:
|
|
126
|
+
- `01-core/git-discipline.md`(分支与提交规范)
|
|
127
|
+
- `01-core/ai-interaction-rules.md`(交互规范)
|
|
128
|
+
- `01-core/ai-knowledge-rules.md`(知识同步规范)
|