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.
Files changed (127) hide show
  1. package/.aodw-next/01-core/ai-interaction-rules-summary.md +37 -0
  2. package/.aodw-next/01-core/ai-interaction-rules.md +20 -6
  3. package/.aodw-next/01-core/ai-knowledge-rules-summary.md +25 -0
  4. package/.aodw-next/01-core/ai-knowledge-rules.md +19 -21
  5. package/.aodw-next/01-core/ai-project-overview-rules.md +11 -11
  6. package/.aodw-next/01-core/aodw-constitution.md +7 -414
  7. package/.aodw-next/01-core/csf-thinking-framework.md +14 -14
  8. package/.aodw-next/01-core/git-discipline-summary.md +36 -0
  9. package/.aodw-next/01-core/git-discipline.md +129 -73
  10. package/.aodw-next/01-core/module-doc-rules.md +2 -2
  11. package/.aodw-next/02-workflow/rt-id-generation-rules.md +16 -259
  12. package/.aodw-next/02-workflow/rt-manager-summary.md +1 -1
  13. package/.aodw-next/02-workflow/rt-manager.md +73 -344
  14. package/.aodw-next/02-workflow/spec-full-profile.md +149 -307
  15. package/.aodw-next/02-workflow/spec-lite-profile.md +170 -253
  16. package/.aodw-next/02-workflow/ui-workflow-rules-summary.md +39 -0
  17. package/.aodw-next/02-workflow/ui-workflow-rules.md +57 -292
  18. package/.aodw-next/03-standards/ai-coding-rules-common.md +1 -1
  19. package/.aodw-next/03-standards/ai-coding-rules.md +91 -25
  20. package/.aodw-next/03-standards/stacks/java-springboot/ai-coding-rules-backend.md +9 -9
  21. package/.aodw-next/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md +13 -13
  22. package/.aodw-next/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md +10 -10
  23. package/.aodw-next/03-standards/stacks/rust-axum/ai-coding-rules-backend.md +4 -4
  24. package/.aodw-next/03-standards/stacks/vue2/ai-coding-rules-frontend.md +9 -9
  25. package/.aodw-next/04-auditors/aodw-development-auditor-rules.md +15 -10
  26. package/.aodw-next/04-auditors/aodw-full-auditor-rules.md +14 -14
  27. package/.aodw-next/04-auditors/aodw-requirement-auditor-rules.md +130 -338
  28. package/.aodw-next/05-tooling/ai-tools-init-rules.md +74 -367
  29. package/.aodw-next/06-project/README.md +16 -0
  30. package/.aodw-next/07-optimization/token-usage-analysis.md +2 -2
  31. package/.aodw-next/README.md +53 -20
  32. package/.aodw-next/SKILL.md +32 -0
  33. package/.aodw-next/config.yaml +2 -2
  34. package/.aodw-next/manifest.yaml +64 -57
  35. package/.aodw-next/project.yaml +1 -0
  36. package/.aodw-next/templates/TEMPLATE-APPLICATION-GUIDE.md +21 -157
  37. package/.aodw-next/templates/ai-overview.template.md +72 -0
  38. package/.aodw-next/templates/aodw-kernel-loader-template.md +19 -19
  39. package/.aodw-next/templates/checklists/coding-standards-template.md +24 -4
  40. package/.aodw-next/templates/modules-index.template.yaml +13 -0
  41. package/.aodw-next/templates/plan-lite-template.md +9 -0
  42. package/.aodw-next/templates/rt-intake-template.md +2 -2
  43. package/.aodw-next/templates/rt-meta-template.yaml +2 -2
  44. package/.aodw-next/templates/spec-lite-template.md +9 -0
  45. package/.aodw-next/templates/tools-config/README.md +1 -1
  46. package/.aodw-next/templates/tools-config/backend/clippy.config.template.toml +5 -0
  47. package/.aodw-next/templates/tools-config/backend/rustfmt.config.template.toml +4 -0
  48. package/.aodw-next/tools-status.yaml +51 -0
  49. package/AODW_Adapters/antigravity/.agent/rules/aodw-next.md +2 -2
  50. package/AODW_Adapters/claude/CLAUDE.md +2 -2
  51. package/AODW_Adapters/cursor/.cursor/rules/aodw-next.mdc +2 -2
  52. package/AODW_Adapters/gemini/.agent/rules/aodw-next.md +2 -2
  53. package/AODW_Adapters/gemini/GEMINI.md +6 -5
  54. package/AODW_Adapters/general/AGENTS.md +2 -2
  55. package/README.md +62 -45
  56. package/bin/aodw.js +44 -16
  57. package/bin/commands/init-overview.js +3 -3
  58. package/bin/commands/init-tools.js +34 -51
  59. package/bin/utils/config.js +1 -1
  60. package/package.json +1 -1
  61. package/.aodw-next/.aodw-next/01-core/ai-interaction-rules.md +0 -218
  62. package/.aodw-next/.aodw-next/01-core/ai-knowledge-rules.md +0 -302
  63. package/.aodw-next/.aodw-next/01-core/ai-project-overview-rules.md +0 -284
  64. package/.aodw-next/.aodw-next/01-core/aodw-constitution-summary.md +0 -20
  65. package/.aodw-next/.aodw-next/01-core/aodw-constitution.md +0 -419
  66. package/.aodw-next/.aodw-next/01-core/csf-thinking-framework.md +0 -373
  67. package/.aodw-next/.aodw-next/01-core/git-discipline.md +0 -226
  68. package/.aodw-next/.aodw-next/01-core/module-doc-rules.md +0 -90
  69. package/.aodw-next/.aodw-next/02-workflow/aodw-development-stages.md +0 -235
  70. package/.aodw-next/.aodw-next/02-workflow/rt-id-generation-rules.md +0 -267
  71. package/.aodw-next/.aodw-next/02-workflow/rt-manager-summary.md +0 -15
  72. package/.aodw-next/.aodw-next/02-workflow/rt-manager.md +0 -399
  73. package/.aodw-next/.aodw-next/02-workflow/spec-full-profile-summary.md +0 -13
  74. package/.aodw-next/.aodw-next/02-workflow/spec-full-profile.md +0 -391
  75. package/.aodw-next/.aodw-next/02-workflow/spec-lite-profile.md +0 -313
  76. package/.aodw-next/.aodw-next/02-workflow/ui-workflow-rules.md +0 -334
  77. package/.aodw-next/.aodw-next/03-standards/ai-coding-rules-common.md +0 -89
  78. package/.aodw-next/.aodw-next/03-standards/ai-coding-rules.md +0 -370
  79. package/.aodw-next/.aodw-next/03-standards/stacks/java-springboot/ai-coding-rules-backend.md +0 -231
  80. package/.aodw-next/.aodw-next/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md +0 -612
  81. package/.aodw-next/.aodw-next/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md +0 -291
  82. package/.aodw-next/.aodw-next/03-standards/stacks/rust-axum/ai-coding-rules-backend.md +0 -134
  83. package/.aodw-next/.aodw-next/03-standards/stacks/vue2/ai-coding-rules-frontend.md +0 -220
  84. package/.aodw-next/.aodw-next/03-standards/ui-kit/ui-kit.md +0 -163
  85. package/.aodw-next/.aodw-next/04-auditors/aodw-development-auditor-rules.md +0 -470
  86. package/.aodw-next/.aodw-next/04-auditors/aodw-full-auditor-rules.md +0 -365
  87. package/.aodw-next/.aodw-next/04-auditors/aodw-requirement-auditor-rules.md +0 -408
  88. package/.aodw-next/.aodw-next/05-tooling/ai-tools-init-rules.md +0 -676
  89. package/.aodw-next/.aodw-next/06-project/ai-overview.md +0 -116
  90. package/.aodw-next/.aodw-next/06-project/modules-index.yaml +0 -11
  91. package/.aodw-next/.aodw-next/07-optimization/token-usage-analysis.md +0 -253
  92. package/.aodw-next/.aodw-next/README.md +0 -26
  93. package/.aodw-next/.aodw-next/RELEASE-CHECKLIST.md +0 -144
  94. package/.aodw-next/.aodw-next/config.yaml +0 -2
  95. package/.aodw-next/.aodw-next/manifest.yaml +0 -98
  96. package/.aodw-next/.aodw-next/templates/SOURCE-TO-DISTRIBUTION-GUIDE.md +0 -276
  97. package/.aodw-next/.aodw-next/templates/TEMPLATE-APPLICATION-GUIDE.md +0 -246
  98. package/.aodw-next/.aodw-next/templates/aodw-kernel-loader-template.md +0 -70
  99. package/.aodw-next/.aodw-next/templates/audit-report-template.md +0 -232
  100. package/.aodw-next/.aodw-next/templates/changelog-template.md +0 -16
  101. package/.aodw-next/.aodw-next/templates/checklists/coding-standards-template.md +0 -110
  102. package/.aodw-next/.aodw-next/templates/csf-review-template.md +0 -201
  103. package/.aodw-next/.aodw-next/templates/impact-template.md +0 -17
  104. package/.aodw-next/.aodw-next/templates/invariants-template.md +0 -12
  105. package/.aodw-next/.aodw-next/templates/module-readme-template.md +0 -39
  106. package/.aodw-next/.aodw-next/templates/plan-lite-template.md +0 -11
  107. package/.aodw-next/.aodw-next/templates/rt-decision-template.md +0 -13
  108. package/.aodw-next/.aodw-next/templates/rt-intake-template.md +0 -33
  109. package/.aodw-next/.aodw-next/templates/rt-meta-template.yaml +0 -43
  110. package/.aodw-next/.aodw-next/templates/spec-lite-template.md +0 -17
  111. package/.aodw-next/.aodw-next/templates/tests-template.md +0 -13
  112. package/.aodw-next/.aodw-next/templates/tools-config/README.md +0 -112
  113. package/.aodw-next/.aodw-next/templates/tools-config/backend/black.config.template.toml +0 -6
  114. package/.aodw-next/.aodw-next/templates/tools-config/backend/pre-commit.config.template.yaml +0 -16
  115. package/.aodw-next/.aodw-next/templates/tools-config/backend/ruff.config.template.toml +0 -23
  116. package/.aodw-next/.aodw-next/templates/tools-config/frontend/eslint.config.template.json +0 -113
  117. package/.aodw-next/.aodw-next/templates/tools-config/frontend/prettier.config.template.json +0 -10
  118. package/.aodw-next/.aodw-next/templates/tools-config/frontend/tsconfig.paths.template.json +0 -11
  119. package/.aodw-next/.aodw-next/workflow-guide.md +0 -51
  120. package/.aodw-next/01-core/aodw-constitution-summary.md +0 -20
  121. package/.aodw-next/02-workflow/aodw-development-stages.md +0 -235
  122. package/.aodw-next/02-workflow/spec-full-profile-summary.md +0 -13
  123. package/.aodw-next/06-project/ai-overview.md +0 -116
  124. package/.aodw-next/06-project/modules-index.yaml +0 -11
  125. package/.aodw-next/RELEASE-CHECKLIST.md +0 -144
  126. package/.aodw-next/templates/SOURCE-TO-DISTRIBUTION-GUIDE.md +0 -276
  127. package/.aodw-next/workflow-guide.md +0 -51
@@ -3,25 +3,63 @@
3
3
  本文件定义 AODW 工作流中必须遵守的 Git 操作规范。
4
4
  这些规则旨在确保代码历史清晰、可回溯,并便于自动化工具检查。
5
5
 
6
- > **重要原则**:AI **禁止**自动执行合并和推送操作。AI 应提供完整的命令脚本,由用户确认并手动执行。
6
+ > **核心原则**:AI 可以执行所有 Git 操作,但涉及不可逆操作前必须向用户明确确认,获得同意后立即执行。
7
7
 
8
8
  ---
9
9
 
10
10
  ## 0. AI 操作边界
11
11
 
12
- **AI 可以自动执行的操作:**
13
- - 创建 feature 分支
14
- - 切换分支
15
- - 提交代码(`git add` + `git commit`)
16
- - 创建标签(仅限特殊情况,如发布流程)
12
+ ### 核心原则:确认门控执行(Confirm-Gated Execution)
17
13
 
18
- **AI 禁止自动执行的操作:**
19
- - 合并分支(`git merge`)
20
- - 推送到远程(`git push`)
21
- - 删除分支(`git branch -d`)
22
- - 变基操作(`git rebase`)
14
+ AI 可以执行所有 Git 操作,包括提交、合并、推送、打标签、创建和清理 worktree 等。
23
15
 
24
- **原因**:AI 可能过早地认为任务完成,而实际需要多次迭代调整。用户应在充分验证后手动执行最终的合并和推送。
16
+ **凡涉及不可逆操作,AI 必须在执行前向用户做明确确认,获得用户同意后立即执行。**
17
+
18
+ > 背景:用户主要通过语音与 AI 交互,AI 是唯一的操作执行手。"提供脚本让用户手动执行"的模式不再适用。
19
+
20
+ ---
21
+
22
+ ### 需要确认门控的操作
23
+
24
+ | 操作 | 确认内容要点 |
25
+ |------|------------|
26
+ | `git commit` | 提交哪些文件、commit message 是什么、关联哪个 RT |
27
+ | `git merge --no-ff` | 从哪个分支合并到哪里、是否存在冲突风险 |
28
+ | `git push` | 推送到哪个远程、推送内容(分支 + tag) |
29
+ | `git tag` | 打什么 tag、打在哪个 commit 上 |
30
+ | `git worktree add` | 创建哪个 worktree、挂载哪个分支、对应哪个 RT |
31
+ | `git worktree remove` | 删除哪个 worktree、确认该 RT 已完成合并 |
32
+ | `git branch -d` | 删除哪个本地分支 |
33
+
34
+ ### 确认格式规范
35
+
36
+ 确认话术必须满足:
37
+ - **简短**:不超过 3 句话
38
+ - **明确**:说清楚做什么、影响是什么、是否可撤销
39
+ - **二选一**:以"要我现在执行吗?"结尾,用户回答"可以"即执行
40
+
41
+ **示例:**
42
+
43
+ ```
44
+ 合并前:
45
+ "RT-XXX 的代码已全部提交,我准备将 feature/RT-XXX-short-name 合并到 master,
46
+ 使用 --no-ff 保留分支历史,随后打 done-RT-XXX 标签并推送。合并后无法撤销。要我现在执行吗?"
47
+
48
+ Worktree 清理:
49
+ "RT-XXX 已合并完成,我准备删除本地 worktree 目录 VoiceX-RT-XXX/ 和
50
+ feature/RT-XXX-short-name 分支。要我现在执行吗?"
51
+
52
+ 代码提交:
53
+ "我准备提交以下文件到 feature/RT-XXX:[文件列表],
54
+ commit message 为 'feat(stt): xxx — Refs: RT-XXX'。要我现在执行吗?"
55
+ ```
56
+
57
+ ### 无需确认、AI 可直接执行的操作
58
+
59
+ - 读取文件、查看 git log / status / diff
60
+ - 创建 RT 目录和文档
61
+ - 创建 feature 分支(`git checkout -b`)
62
+ - 切换到已存在的分支(`git checkout`)
25
63
 
26
64
  ---
27
65
 
@@ -45,11 +83,50 @@ feature/RT-{seq}-{short-name}
45
83
 
46
84
  ---
47
85
 
48
- ## 2. 提交信息 (Commit Message)
86
+ ## 2. Worktree 管理 (Worktree Management)
87
+
88
+ ### 2.0 核心约定
89
+
90
+ **一个 RT = 一个 Worktree = 一个 Feature 分支**,三者 RT 序号严格对齐。
91
+
92
+ | 角色 | 路径 | 分支 |
93
+ |------|------|------|
94
+ | 主仓库 | `~/VoiceX-0409/VoiceX/` | `master`(只读参考,禁止在此改代码)|
95
+ | RT 工作区 | `~/VoiceX-0409/VoiceX-RT-{seq}/` | `feature/RT-{seq}-{name}` |
96
+
97
+ ### 2.1 创建 Worktree(Decision 阶段)
98
+
99
+ feature 分支创建完成后,AI 向用户确认 worktree 创建,用户同意后执行:
100
+
101
+ ```bash
102
+ git worktree add ../VoiceX-RT-XXX feature/RT-XXX-short-name
103
+ git worktree list # 验证
104
+ ```
105
+
106
+ **并行 RT 冲突检查(必须执行)**:创建新 worktree 前,AI 读取 `RT/index.yaml`,检查所有 `in-progress` 状态的 RT 是否与新 RT 涉及同一模块。如有重叠,向用户明确告知冲突范围和合并风险,由用户决策是否继续。
107
+
108
+ ### 2.2 工具隔离原则
109
+
110
+ 每个 AI 工具实例(Cursor / Codex 等)只能读写自己绑定的 worktree 目录,禁止跨目录操作。多个实例可并行工作于各自的 worktree,互不干扰。
111
+
112
+ ### 2.3 Merge 顺序
113
+
114
+ 多个 RT 同时完成时,合并顺序、冲突解决全部由用户决定,AI 不推断合并优先级。
115
+
116
+ ### 2.4 状态检查命令
117
+
118
+ ```bash
119
+ git worktree list # 查看所有 worktree
120
+ git worktree prune --dry-run # 检查可清理的 worktree
121
+ ```
122
+
123
+ ---
124
+
125
+ ## 3. 提交信息 (Commit Message)
49
126
 
50
127
  提交信息必须遵循 Conventional Commits 规范,并包含 RT 引用。
51
128
 
52
- ### 2.1 格式模板
129
+ ### 3.1 格式模板
53
130
  ```text
54
131
  <type>(<scope>): <subject>
55
132
 
@@ -58,7 +135,7 @@ feature/RT-{seq}-{short-name}
58
135
  Refs: <RT-ID>
59
136
  ```
60
137
 
61
- ### 2.2 字段说明
138
+ ### 3.2 字段说明
62
139
  - **type**:
63
140
  - `feat`: 新功能
64
141
  - `fix`: 修复 bug
@@ -72,7 +149,7 @@ Refs: <RT-ID>
72
149
  - **subject**: 简短描述,使用祈使句,不加句号。
73
150
  - **Refs**: (必须) 关联的 RT ID,用于链接 Git 历史与需求文档。
74
151
 
75
- ### 2.3 示例
152
+ ### 3.3 示例
76
153
  ```text
77
154
  fix(auth): handle token expiration gracefully
78
155
 
@@ -83,67 +160,67 @@ Refs: RT-001
83
160
 
84
161
  ---
85
162
 
86
- ## 3. 标签 (Tagging)
163
+ ## 4. 标签 (Tagging)
87
164
 
88
165
  当一个 RT 完成并合并到主分支后,必须打标签以标记里程碑。
89
166
 
90
- ### 3.1 命名格式
167
+ ### 4.1 命名格式
91
168
  ```text
92
169
  done-<RT-ID>
93
170
  ```
94
171
 
95
- ### 3.2 示例
172
+ ### 4.2 示例
96
173
  - ✅ `done-RT-001`
97
174
  - ✅ `done-RT-042`
98
175
 
99
176
  ---
100
177
 
101
- ## 4. 合并策略 (Merge Strategy)
178
+ ## 5. 合并策略 (Merge Strategy)
102
179
 
103
180
  - **禁止 Fast-forward**: 合并 Feature 分支时应使用 `--no-ff`,以保留分支历史。
104
181
  - **Squash**: 对于琐碎的提交(如 "fix typo", "update"),建议在合并前进行 Squash,但保留关键的逻辑提交。
105
182
 
106
183
  ---
107
184
 
108
- ## 5. 合并前检查清单 (Pre-Merge Checklist)
185
+ ## 6. 合并前检查清单 (Pre-Merge Checklist)
109
186
 
110
187
  在合并 feature 分支到主分支前,必须完成以下检查:
111
188
 
112
- ### 5.1 功能检查
189
+ ### 6.1 功能检查
113
190
  - [ ] 功能测试通过
114
191
  - [ ] 单元测试通过
115
192
  - [ ] 集成测试通过(如适用)
116
193
 
117
- ### 5.2 编码规范检查(必须)
194
+ ### 6.2 编码规范检查(必须)
118
195
 
119
196
  > **注意**:编码规范检查是合并的硬性要求,未通过编码规范检查的代码不能合并。
120
197
 
121
198
  - [ ] **前端编码规范**(如涉及):
122
199
  - [ ] ESLint 检查全部通过
123
200
  - [ ] Prettier 格式化已运行
124
- - [ ] 目录结构和分层符合规范(参考 `.aodw/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md`)
201
+ - [ ] 目录结构和分层符合规范(参考 `.aodw-next/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md`)
125
202
  - [ ] 文件大小和复杂度符合规范(页面 ≤ 300 行,组件 ≤ 200 行,函数 ≤ 60 行,复杂度 ≤ 10)
126
203
  - [ ] **后端编码规范**(如涉及):
127
204
  - [ ] Ruff 检查全部通过
128
205
  - [ ] Black 格式化已运行
129
- - [ ] 分层架构符合规范(api → services → repositories,参考 `.aodw/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md`)
206
+ - [ ] 分层架构符合规范(api → services → repositories,参考 `.aodw-next/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md`)
130
207
  - [ ] 文件大小和复杂度符合规范(模块 ≤ 300 行,函数 ≤ 60 行)
131
208
  - [ ] **通用编码规范**:
132
- - [ ] 文件大小符合规范(参考 `.aodw/03-standards/ai-coding-rules-common.md`)
209
+ - [ ] 文件大小符合规范(参考 `.aodw-next/03-standards/ai-coding-rules-common.md`)
133
210
  - [ ] 函数/方法长度符合规范
134
211
  - [ ] 复杂度符合规范
135
212
 
136
- ### 5.3 文档检查
213
+ ### 6.3 文档检查
137
214
  - [ ] 相关文档已更新(spec / plan / changelog)
138
215
  - [ ] 模块 README 已更新(如涉及)
139
216
 
140
- ### 5.4 CI 检查
217
+ ### 6.4 CI 检查
141
218
  - [ ] CI 检查全部通过
142
219
  - [ ] 代码覆盖率符合要求(如适用)
143
220
 
144
221
  ---
145
222
 
146
- ## 6. 自动化检查 (Automation)
223
+ ## 7. 自动化检查 (Automation)
147
224
 
148
225
  AI 或 CI 工具应检查:
149
226
 
@@ -164,63 +241,42 @@ AI 或 CI 工具应检查:
164
241
 
165
242
  ---
166
243
 
167
- ## 7. RT 完成流程 (Completion Workflow)
244
+ ## 8. RT 完成流程 (Completion Workflow)
168
245
 
169
- 当 RT 的所有工作完成后,AI **必须**遵循以下流程:
246
+ 当 RT 的所有工作完成后,AI 按以下步骤逐一向用户确认并执行。
170
247
 
171
- ### Step 1: 知识蒸馏(Knowledge Distillation)
172
- AI 自动执行:
248
+ ### Step 1:知识蒸馏(自动执行,无需确认)
173
249
  1. 读取 `modules-index.yaml`,找到受影响的模块
174
250
  2. 更新对应的模块文档(`docs/modules/*.md`)
175
- 3. 确认文档与代码一致
176
-
177
- ### Step 2: 提供完成脚本
178
- AI **不得自动执行**,而应提供完整的手动命令脚本,例如:
179
-
180
- ```bash
181
- # RT-XXX 完成脚本(请逐行检查后执行)
182
-
183
- # 1. 确认当前在 feature 分支
184
- git branch
251
+ 3. 向用户报告更新结果
185
252
 
186
- # 2. 确认所有改动已提交
187
- git status
253
+ ### Step 2:确认合并
188
254
 
189
- # 3. 切换到主分支并拉取最新代码
190
- git checkout main
191
- git pull origin main
255
+ AI 向用户确认:
256
+ > "RT-XXX 的知识蒸馏已完成。我准备将 feature/RT-XXX-short-name 合并到 master,使用 --no-ff 保留分支历史,随后打 done-RT-XXX 标签并推送到远程。合并后无法撤销。要我现在执行吗?"
192
257
 
193
- # 4. 合并 feature 分支(保留分支历史)
258
+ 用户确认后,AI 依次执行:
259
+ ```bash
260
+ git checkout master
261
+ git pull origin master
194
262
  git merge --no-ff feature/RT-XXX-short-name
195
-
196
- # 5. 打标签
197
263
  git tag done-RT-XXX
198
-
199
- # 6. 推送代码和标签
200
- git push origin main
264
+ git push origin master
201
265
  git push origin done-RT-XXX
202
-
203
- # 7. 删除本地 feature 分支
204
- git branch -d feature/RT-XXX-short-name
205
-
206
- # 8. 更新 RT 状态
207
- # 编辑 RT/index.yaml,将 RT-XXX 的 status 改为 done
208
266
  ```
209
267
 
210
- ### Step 3: 用户确认
211
- 用户应:
212
- 1. **验证代码质量**:Review 代码改动,运行测试
213
- 2. **验证文档更新**:检查模块文档是否准确
214
- 3. **手动执行脚本**:逐行检查并执行上述命令
215
- 4. **验证推送结果**:确认远程仓库已更新
268
+ ### Step 3:确认清理
216
269
 
217
- ---
270
+ AI 向用户确认:
271
+ > "RT-XXX 已成功合并并推送。我准备删除本地 worktree 目录 VoiceX-RT-XXX/ 和 feature/RT-XXX-short-name 分支,并更新 RT/index.yaml 状态为 done。要我现在执行吗?"
218
272
 
219
- ## 8. 紧急情况例外
273
+ 用户确认后,AI 依次执行:
274
+ ```bash
275
+ git worktree remove ../VoiceX-RT-XXX
276
+ git branch -d feature/RT-XXX-short-name
277
+ # 更新 RT/index.yaml:RT-XXX status → done
278
+ ```
220
279
 
221
- 仅在以下特殊情况下,AI 可以自动 push(需明确用户授权):
222
- - 用户明确说"直接 push"、"自动推送"等
223
- - 紧急 hotfix 场景(需事先约定)
224
- - 自动化发布流程(如 CI/CD)
280
+ ### Step 4:播报完成
225
281
 
226
- **默认行为**:AI 始终提供手动命令,等待用户执行。
282
+ > "RT-XXX 全部完成。master 已更新,标签 done-RT-XXX 已推送,worktree 已清理。"
@@ -1,7 +1,7 @@
1
1
  1. 每个模块必须有 README
2
2
 
3
3
  新模板文件:
4
- .aodw/templates/module-readme-template.md
4
+ .aodw-next/templates/module-readme-template.md
5
5
 
6
6
  内容包括:
7
7
  # <模块名称>
@@ -64,7 +64,7 @@ AI 必须同时在 RT 的 invariants.md 和 module README 里更新对应说明
64
64
  3. 模块总索引
65
65
 
66
66
  新增文件:
67
- .aodw/06-project/modules-index.yaml
67
+ .aodw-next/06-project/modules-index.yaml
68
68
 
69
69
  格式:
70
70
  version: 1
@@ -1,267 +1,24 @@
1
- # RT-ID 获取规则(强制要求)
1
+ # RT-ID 生成规则(本地模式)
2
2
 
3
- ⚠️ **关键规则**:AI 在创建新 RT 时,**必须**先检查 `.aodw/config.yaml` 确定开发模式,然后按照相应规则获取 RT-ID。
3
+ ## 0. 强制策略
4
4
 
5
- 本文件定义了 AODW RT-ID(Request Ticket ID)的获取规则,确保团队协作时 ID 的唯一性和一致性。
5
+ AODW 使用**本地生成 RT-ID**,不依赖远程服务。
6
6
 
7
- ---
7
+ ## 1. 生成逻辑
8
8
 
9
- ## 1. 配置文件检查流程
9
+ 1. 扫描项目 `RT/` 目录下所有 `RT-XXX` 格式的目录
10
+ 2. 找到最大序号 `N`
11
+ 3. 生成新 ID:`RT-{N+1}`(补零到 3 位,如 `RT-001`, `RT-002`)
12
+ 4. 如果生成的 ID 对应的目录已存在:递增序号直到找到可用 ID
10
13
 
11
- **强制检查步骤**(AI 必须按顺序执行):
14
+ ## 2. 检查清单
12
15
 
13
- 1. **读取配置文件**
14
- - 路径:`.aodw/config.yaml`
15
- - 必须读取 `mode` `server_url` 字段
16
+ - [ ] 已扫描 `RT/` 目录找到最大序号
17
+ - [ ] 已生成 `RT-{N+1}` 格式的 ID
18
+ - [ ] 已确认该 ID 对应的目录不存在
16
19
 
17
- 2. **确定开发模式**
18
- - 如果 `mode === 'collaborative'`:协作模式(从远程服务器获取)
19
- - 如果 `mode === 'independent'` 或未设置:独立模式(本地生成)
20
- - 如果 `mode` 字段不存在:默认为独立模式
20
+ ## 3. 格式规范
21
21
 
22
- 3. **执行相应获取逻辑**
23
- - 根据模式执行对应的 RT-ID 获取流程(见第 2 节和第 3 节)
24
-
25
- ---
26
-
27
- ## 2. 协作模式(Collaborative Mode)
28
-
29
- **适用场景**:团队协作开发,需要统一的 RT-ID 分配,避免 ID 冲突。
30
-
31
- **配置要求**:
32
- ```yaml
33
- # .aodw/config.yaml
34
- mode: collaborative
35
- server_url: http://114.67.218.31:2005 # 或团队自定义服务器地址
36
- ```
37
-
38
- **RT-ID 获取流程**:
39
-
40
- 1. **验证配置**
41
- - ✅ 检查 `mode === 'collaborative'`
42
- - ✅ 检查 `server_url` 是否存在且非空
43
- - ❌ 如果 `server_url` 为空:**立即报错**,提示用户配置服务器地址
44
-
45
- 2. **调用远程 API**
46
- - 端点:`{server_url}/api/next-id?project={project_name}`
47
- - 方法:`GET`
48
- - 默认服务器:`http://114.67.218.31:2005`
49
- - ⚠️ **强制要求**:**必须**带上 `project` 参数,否则服务器无法正确分配 ID
50
- - 项目名获取优先级:
51
- 1. 命令行参数 `--project <name>`
52
- 2. `.aodw/project.yaml` 的 `project_name` 字段
53
- 3. `package.json` 的 `name` 字段
54
- 4. 当前目录名(fallback)
55
-
56
- 3. **处理响应**
57
- - 成功:使用返回的 `id` 字段(格式:`RT-XXX`)
58
- - 失败:提示错误信息,询问是否降级到本地生成(**不推荐**,可能导致冲突)
59
-
60
- 4. **本地 vs 服务器 ID 冲突处理**(⚠️ 重要)
61
-
62
- **问题场景**:服务器返回的 ID 可能小于本地已有的最大 ID(例如离线创建或服务器数据不同步)。
63
-
64
- **强制规则**:
65
- - 获取服务器 ID 后,必须与本地最大 ID 比较
66
- - 如果 `服务器 ID ≤ 本地最大 ID`,则使用 `本地最大 ID + 1`
67
- - 同时调用服务器 API 更新服务器端的计数器
68
-
69
- **比较逻辑**:
70
- ```
71
- serverSeq = 从服务器 ID 提取序号(如 RT-015 → 15)
72
- localMaxSeq = 本地 RT/ 目录下最大序号(如已有 RT-016 → 16)
73
-
74
- if (serverSeq <= localMaxSeq) {
75
- finalSeq = localMaxSeq + 1
76
- finalId = `RT-${padStart(finalSeq, 3, '0')}`
77
- // 调用服务器 API 更新计数器
78
- syncIdToServer(serverUrl, project, finalSeq)
79
- } else {
80
- finalId = 服务器返回的 ID
81
- }
82
- ```
83
-
84
- **服务器同步 API**:
85
- - 端点:`{server_url}/api/sync-id?project={project_name}&seq={finalSeq}`
86
- - 方法:`POST`
87
- - 作用:将服务器计数器更新为 `finalSeq`,确保下次获取的 ID 正确
88
-
89
- 5. **错误处理**
90
- - 网络错误:提示检查网络连接和服务器状态
91
- - 服务器错误:提示联系管理员或检查服务器配置
92
- - 超时:提示重试或检查服务器状态
93
- - 同步失败:记录警告,但不阻塞 RT 创建
94
-
95
- **示例代码逻辑**:
96
- ```javascript
97
- if (userConfig.mode === 'collaborative') {
98
- if (!serverUrl || serverUrl.trim() === '') {
99
- // 必须报错,不能静默降级
100
- throw new Error('Collaborative mode requires server_url');
101
- }
102
-
103
- // ⚠️ 必须带上项目标识
104
- // 项目名获取优先级:命令行参数 > .aodw/project.yaml > package.json > 目录名
105
- const project = getProjectName(); // 必须获取项目标识
106
-
107
- // 调用远程 API(必须带上 project 参数)
108
- let serverId = await fetchIdFromServer(serverUrl, project);
109
- let serverSeq = parseInt(serverId.replace('RT-', ''), 10);
110
-
111
- // 获取本地最大 ID
112
- let localMaxSeq = getLocalMaxSeq();
113
-
114
- // 比较并选择
115
- if (serverSeq <= localMaxSeq) {
116
- let finalSeq = localMaxSeq + 1;
117
- id = `RT-${String(finalSeq).padStart(3, '0')}`;
118
- console.warn(`服务器 ID (${serverId}) ≤ 本地最大 ID (RT-${localMaxSeq}),使用本地 ID: ${id}`);
119
-
120
- // 同步到服务器(必须带上 project 参数)
121
- await syncIdToServer(serverUrl, project, finalSeq);
122
- } else {
123
- id = serverId;
124
- }
125
- } else {
126
- // 独立模式:强制本地生成,忽略 server_url
127
- id = getLocalNextId();
128
- // 即使配置了 server_url,也不会联网
129
- }
130
- ```
131
-
132
-
133
- ---
134
-
135
- ## 3. 独立模式(Independent Mode)
136
-
137
- **适用场景**:个人开发或小团队,不需要统一的 ID 分配。
138
-
139
- **配置要求**:
140
- ```yaml
141
- # .aodw/config.yaml
142
- mode: independent
143
- # server_url 即使配置也会被忽略,不会联网
144
- ```
145
-
146
- **RT-ID 获取流程**:
147
-
148
- 1. **强制本地生成**
149
- - ⚠️ **关键规则**:独立模式下**必须**使用本地生成,**禁止**联网获取
150
- - 即使配置了 `server_url`,也会被忽略,不会发起任何网络请求
151
- - 这是为了确保用户选择独立模式后,完全离线工作
152
-
153
- 2. **本地生成逻辑**
154
- - 扫描 `RT/` 目录下所有 `RT-XXX` 格式的目录
155
- - 找到最大序号 `N`
156
- - 生成新 ID:`RT-{N+1}`(补零到 3 位,如 `RT-001`, `RT-002`)
157
-
158
- 3. **冲突检查**
159
- - 如果生成的 ID 对应的目录已存在:递增序号直到找到可用 ID
160
-
161
- ---
162
-
163
- ## 4. 决策树(Decision Tree)
164
-
165
- AI 在创建 RT 时必须遵循以下决策树:
166
-
167
- ```
168
- 开始创建 RT
169
-
170
- 读取 .aodw/config.yaml
171
-
172
- mode 字段存在?
173
- ├─ 是 → mode === 'collaborative'?
174
- │ ├─ 是 → 检查 server_url
175
- │ │ ├─ 存在且非空 → 调用远程 API 获取 RT-ID
176
- │ │ └─ 不存在或为空 → ❌ 报错,提示配置服务器
177
- │ └─ 否 → 独立模式
178
- │ └─ 本地生成 RT-ID(忽略 server_url)
179
- └─ 否 → 独立模式(默认)
180
- └─ 本地生成 RT-ID
181
- ```
182
-
183
- ---
184
-
185
- ## 5. 强制检查清单
186
-
187
- AI 在获取 RT-ID 前必须完成以下检查:
188
-
189
- - [ ] ✅ 已读取 `.aodw/config.yaml` 文件
190
- - [ ] ✅ 已确定 `mode` 字段的值
191
- - [ ] ✅ 如果是协作模式,已验证 `server_url` 存在且非空
192
- - [ ] ✅ 已确定项目名称(从 `.aodw/project.yaml` 或目录名获取)
193
- - [ ] ✅ 已按照决策树执行相应的获取流程
194
- - [ ] ✅ 已验证获取到的 RT-ID 格式正确(`RT-XXX`)
195
- - [ ] ✅ 已检查 RT-ID 对应的目录不存在(避免冲突)
196
-
197
- ---
198
-
199
- ## 6. 常见错误与处理
200
-
201
- | 错误情况 | 原因 | 处理方式 |
202
- | ----------------- | ---------------------- | ------------------------------------------- |
203
- | `server_url` 为空 | 协作模式下未配置服务器 | ❌ **必须报错**,提示运行 `aodw config` 配置 |
204
- | 网络连接失败 | 无法访问远程服务器 | 提示检查网络,询问是否降级(警告风险) |
205
- | 服务器返回错误 | 服务器端问题 | 提示联系管理员,记录错误信息 |
206
- | 本地目录冲突 | 生成的 ID 已存在 | 自动递增序号,直到找到可用 ID |
207
-
208
- ---
209
-
210
- ## 7. 配置示例
211
-
212
- **协作模式配置**(推荐团队使用):
213
- ```yaml
214
- # .aodw/config.yaml
215
- mode: collaborative
216
- server_url: http://114.67.218.31:2005
217
- ```
218
-
219
- **独立模式配置**(个人开发):
220
- ```yaml
221
- # .aodw/config.yaml
222
- mode: independent
223
- ```
224
-
225
- **独立模式配置说明**:
226
- ```yaml
227
- # .aodw/config.yaml
228
- mode: independent
229
- # server_url 即使配置也会被忽略,不会联网
230
- ```
231
-
232
- ---
233
-
234
- ## 8. 执行规范
235
-
236
- **AI 必须遵守的规则**:
237
-
238
- 1. **禁止静默降级**:协作模式下如果 `server_url` 为空,**必须报错**,不能自动降级到本地生成
239
- 2. **必须检查配置**:创建 RT 前必须先读取 `.aodw/config.yaml`
240
- 3. **必须验证模式**:根据 `mode` 字段执行对应的获取逻辑
241
- 4. **独立模式禁止联网**:独立模式下**必须**使用本地生成,**禁止**联网,即使配置了 `server_url` 也要忽略
242
- 5. **必须带上项目标识**:协作模式下调用服务器 API 时,**必须**带上 `project` 参数,否则服务器无法正确分配 ID
243
- 6. **必须处理错误**:网络错误或服务器错误时,必须明确提示用户
244
- 7. **必须验证 ID**:获取到 RT-ID 后,必须验证格式和唯一性
245
-
246
- **违反规则的后果**:
247
- - 如果 AI 在协作模式下静默使用本地生成,可能导致团队内 ID 冲突
248
- - 如果 AI 未检查配置就生成 ID,可能使用错误的模式
249
-
250
- ---
251
-
252
- ## 9. 相关文档
253
-
254
- - `.aodw/02-workflow/rt-manager.md` - RT-Manager 完整规范
255
- - `.aodw/01-core/aodw-constitution.md` - AODW 宪法(包含 RT-Manager 概述)
256
- - `cli/bin/commands/new.js` - RT 创建命令实现
257
-
258
- ---
259
-
260
- ## 10. 服务器部署
261
-
262
- 如需部署自己的 RT-ID 服务器,请参考:
263
- - `cli/DEPLOY.md` - 服务器部署指南
264
- - `cli/test-server.js` - 服务器测试脚本
265
- - `cli/TEST-SERVER.md` - 测试文档
266
-
267
- 默认服务器地址:`http://114.67.218.31:2005`
22
+ - 格式:`RT-XXX`(3 位数字,左侧补零)
23
+ - 示例:`RT-001`, `RT-042`, `RT-123`
24
+ - 目录:`RT/RT-XXX/`
@@ -3,7 +3,7 @@
3
3
  ## 主要职责
4
4
  - RT 编号、目录、分支管理
5
5
  - Intake 流程与 Spec-Full/Spec-Lite 分流
6
- - 状态机维护:created → intakeing → decided → in-progress → reviewing → done
6
+ - 状态机维护:created → intaking → decided → in-progress → reviewing → done
7
7
 
8
8
  ## 强制前置检查
9
9
  - 必须在 feature 分支上工作