aodw-skill 0.7.3
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/01-core/ai-interaction-rules.md +218 -0
- package/.aodw/01-core/ai-knowledge-rules.md +302 -0
- package/.aodw/01-core/ai-project-overview-rules.md +284 -0
- package/.aodw/01-core/aodw-constitution-summary.md +20 -0
- package/.aodw/01-core/aodw-constitution.md +419 -0
- package/.aodw/01-core/csf-thinking-framework.md +373 -0
- package/.aodw/01-core/git-discipline.md +226 -0
- package/.aodw/01-core/module-doc-rules.md +90 -0
- package/.aodw/02-workflow/aodw-development-stages.md +235 -0
- package/.aodw/02-workflow/rt-id-generation-rules.md +267 -0
- package/.aodw/02-workflow/rt-manager-summary.md +15 -0
- package/.aodw/02-workflow/rt-manager.md +399 -0
- package/.aodw/02-workflow/spec-full-profile-summary.md +13 -0
- package/.aodw/02-workflow/spec-full-profile.md +391 -0
- package/.aodw/02-workflow/spec-lite-profile.md +313 -0
- package/.aodw/02-workflow/ui-workflow-rules.md +334 -0
- package/.aodw/03-standards/ai-coding-rules-common.md +89 -0
- package/.aodw/03-standards/ai-coding-rules.md +370 -0
- package/.aodw/03-standards/stacks/java-springboot/ai-coding-rules-backend.md +100 -0
- package/.aodw/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md +612 -0
- package/.aodw/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md +291 -0
- package/.aodw/03-standards/stacks/vue2/ai-coding-rules-frontend.md +97 -0
- package/.aodw/03-standards/ui-kit/ui-kit.md +163 -0
- package/.aodw/04-auditors/aodw-development-auditor-rules.md +470 -0
- package/.aodw/04-auditors/aodw-full-auditor-rules.md +365 -0
- package/.aodw/04-auditors/aodw-requirement-auditor-rules.md +408 -0
- package/.aodw/05-tooling/ai-tools-init-rules.md +465 -0
- package/.aodw/06-project/ai-overview.md +116 -0
- package/.aodw/06-project/modules-index.yaml +11 -0
- package/.aodw/07-optimization/token-usage-analysis.md +253 -0
- package/.aodw/README.md +26 -0
- package/.aodw/RELEASE-CHECKLIST.md +144 -0
- package/.aodw/config.yaml +2 -0
- package/.aodw/manifest.yaml +98 -0
- package/.aodw/templates/SOURCE-TO-DISTRIBUTION-GUIDE.md +276 -0
- package/.aodw/templates/TEMPLATE-APPLICATION-GUIDE.md +246 -0
- package/.aodw/templates/aodw-kernel-loader-template.md +70 -0
- package/.aodw/templates/audit-report-template.md +232 -0
- package/.aodw/templates/changelog-template.md +16 -0
- package/.aodw/templates/checklists/coding-standards-template.md +110 -0
- package/.aodw/templates/csf-review-template.md +201 -0
- package/.aodw/templates/impact-template.md +17 -0
- package/.aodw/templates/invariants-template.md +12 -0
- package/.aodw/templates/module-readme-template.md +39 -0
- package/.aodw/templates/plan-lite-template.md +11 -0
- package/.aodw/templates/rt-decision-template.md +13 -0
- package/.aodw/templates/rt-intake-template.md +33 -0
- package/.aodw/templates/rt-meta-template.yaml +43 -0
- package/.aodw/templates/spec-lite-template.md +17 -0
- package/.aodw/templates/tests-template.md +13 -0
- package/.aodw/templates/tools-config/README.md +80 -0
- package/.aodw/templates/tools-config/backend/black.config.template.toml +6 -0
- package/.aodw/templates/tools-config/backend/pre-commit.config.template.yaml +16 -0
- package/.aodw/templates/tools-config/backend/ruff.config.template.toml +23 -0
- package/.aodw/templates/tools-config/frontend/eslint.config.template.json +113 -0
- package/.aodw/templates/tools-config/frontend/prettier.config.template.json +10 -0
- package/.aodw/templates/tools-config/frontend/tsconfig.paths.template.json +11 -0
- package/.aodw/workflow-guide.md +51 -0
- package/AODW_Adapters/README.md +143 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-check.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-done.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-full.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-governance.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-impact.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-init.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-invariants.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-lite.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-module.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-new.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-open.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-pause.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-resume.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-tests.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw-upgrade.md +7 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/.agent/rules/aodw.md +35 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-check.md +16 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-done.md +16 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-full.md +14 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-governance.md +13 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-impact.md +13 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-init.md +13 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-invariants.md +13 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-lite.md +14 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-module.md +13 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-new.md +30 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-open.md +10 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-pause.md +12 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-resume.md +12 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-tests.md +13 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw-upgrade.md +12 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/antigravity/global_workflows/aodw.md +18 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/claude/CLAUDE.md +17 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-check.md +30 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-done.md +52 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-full.md +31 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-governance.md +34 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-impact.md +25 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-init.md +75 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-invariants.md +29 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-lite.md +23 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-module.md +24 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-new.md +70 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-open.md +19 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-pause.md +19 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-resume.md +20 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-tests.md +26 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw-upgrade.md +27 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/aodw.md +69 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/deploypromote.md +20 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/commands/featuretotester.md +32 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/deploy/feature_to_master_push_test_local.sh +390 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/deploy/promote_only.sh +210 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/deploy/rollback_prod.sh +99 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/cursor/.cursor/rules/aodw.mdc +26 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-check.md +29 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-done.md +52 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-full.md +30 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-governance.md +33 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-impact.md +24 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-init.md +75 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-invariants.md +28 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-lite.md +22 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-module.md +23 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-new.md +92 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-open.md +18 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-pause.md +18 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-resume.md +19 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-tests.md +25 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw-upgrade.md +26 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/.agent/rules/aodw.md +68 -0
- package/AODW_Adapters/_backup/v3.1.0-pre-refactor/gemini/GEMINI.md +17 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-analyze.md +15 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-complete.md +15 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-control.md +14 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-decide.md +16 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-governance.md +7 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-implement.md +16 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-init.md +7 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-intake.md +15 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-open.md +7 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-simplified.md +107 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/.agent/rules/aodw-verify.md +14 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-analyze.md +24 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-complete.md +23 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-control.md +21 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-decide.md +26 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-governance.md +13 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-implement.md +21 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-init.md +13 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-intake.md +28 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-open.md +10 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw-verify.md +20 -0
- package/AODW_Adapters/_backup/v4.0.0-simplified/antigravity/global_workflows/aodw.md +18 -0
- package/AODW_Adapters/antigravity/.agent/rules/aodw.md +74 -0
- package/AODW_Adapters/claude/CLAUDE.md +70 -0
- package/AODW_Adapters/cursor/.cursor/commands/README.md +37 -0
- package/AODW_Adapters/cursor/.cursor/rules/aodw.mdc +77 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-analyze.md +15 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-complete.md +15 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-control.md +14 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-decide.md +16 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-governance.md +33 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-implement.md +16 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-init.md +75 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-intake.md +15 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-open.md +18 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw-verify.md +14 -0
- package/AODW_Adapters/gemini/.agent/rules/aodw.md +70 -0
- package/AODW_Adapters/gemini/GEMINI.md +17 -0
- package/AODW_Adapters/general/.github/copilot-instructions.md +34 -0
- package/AODW_Adapters/general/AGENTS.md +70 -0
- package/README.md +118 -0
- package/bin/aodw.js +627 -0
- package/bin/commands/init-overview.js +801 -0
- package/bin/commands/init-tools.js +811 -0
- package/bin/commands/new.js +235 -0
- package/bin/commands/serve.js +79 -0
- package/bin/processors/index.js +109 -0
- package/bin/update-adapters-from-template.js +89 -0
- package/bin/utils/config.js +56 -0
- package/docs/README.md +26 -0
- package/docs/adapter-evaluation.md +55 -0
- package/docs/backend-guidelines.md +335 -0
- package/docs/frontend-guidelines.md +266 -0
- package/docs/installation-variants.md +88 -0
- package/docs/migration-guide-0.2.0.md +250 -0
- package/docs/platform-matrix.md +83 -0
- package/package.json +40 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
# RT-Manager Specification
|
|
2
|
+
统一请求票编排器(Request Ticket Manager)
|
|
3
|
+
|
|
4
|
+
RT-Manager 是 AODW 的 Orchestration Layer 核心组件,负责:
|
|
5
|
+
|
|
6
|
+
- RT 编号管理;
|
|
7
|
+
- 立项(Intake)流程;
|
|
8
|
+
- Full / Lite(Spec-Full / Spec-Lite)流程分流;
|
|
9
|
+
- RT 目录和分支的创建与约束;
|
|
10
|
+
- 全局状态机更新。
|
|
11
|
+
|
|
12
|
+
本文件定义 RT-Manager 的行为规范与文件结构。
|
|
13
|
+
|
|
14
|
+
> **🚨 关键规则**:AI 在开始任何代码工作前,**必须**先创建并切换到 feature 分支!
|
|
15
|
+
> 严禁在 `main`/`master` 分支上直接修改业务代码。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 0. 工作前强制检查 (Pre-Work Mandatory Check)
|
|
20
|
+
|
|
21
|
+
**AI 在执行任何文件修改操作(`write_to_file`、`replace_file_content`)之前,必须先执行以下检查序列:**
|
|
22
|
+
|
|
23
|
+
### Step 1: 验证 RT 是否已创建
|
|
24
|
+
- 检查 `RT/RT-XXX/` 目录是否存在
|
|
25
|
+
- 检查 `meta.yaml` 和 `intake.md` 是否已创建
|
|
26
|
+
|
|
27
|
+
### Step 2: 验证 feature 分支是否已创建并切换
|
|
28
|
+
执行 `git branch --show-current`,检查结果:
|
|
29
|
+
- ✅ 如果显示 `feature/RT-XXX-xxx`:继续工作
|
|
30
|
+
- ❌ 如果显示 `main` 或 `master`:**立即停止**,提示用户并创建分支
|
|
31
|
+
|
|
32
|
+
### Step 3: 创建分支(如果不存在)
|
|
33
|
+
如果分支不存在,AI 必须:
|
|
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`
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 1. RT-ID 获取规则
|
|
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
|
+
---
|
|
70
|
+
|
|
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
|
+
```
|
|
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
|
+
created → intaking → decided → in-progress → reviewing → done
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- `created`:刚创建 RT-ID,尚未进行 Intake。
|
|
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
|
+
具体实现可根据项目需要定制。
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 3.1 状态转换检查点
|
|
145
|
+
|
|
146
|
+
为确保 AODW 流程的严格执行,在关键状态转换时,AI 必须进行以下检查:
|
|
147
|
+
|
|
148
|
+
### decided → in-progress
|
|
149
|
+
|
|
150
|
+
在从 `decided` 进入 `in-progress` 状态前,AI 必须验证以下条件:
|
|
151
|
+
|
|
152
|
+
1. **强制分支创建 (Creation Node)**
|
|
153
|
+
- **操作**:必须执行 `git checkout -b feature/RT-XXX-{short-name}`。
|
|
154
|
+
- **验证**:`git branch` 显示 `* feature/RT-XXX-xxx`。
|
|
155
|
+
|
|
156
|
+
2. **基础文档已准备**
|
|
157
|
+
- Spec-Lite:spec-lite.md, plan-lite.md
|
|
158
|
+
- Spec-Full:spec.md, plan.md
|
|
159
|
+
|
|
160
|
+
3. **计划确认节点 (Plan Confirmation Node)**
|
|
161
|
+
- **触发时机**:Plan 文档编写完成后。
|
|
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 分支上进行。
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 4. Intake(立项)流程
|
|
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`)
|
|
190
|
+
|
|
191
|
+
2. 解析需求初步类型:
|
|
192
|
+
- Feature / Bug / Enhancement / Refactor / Research / Other;
|
|
193
|
+
3. 提出若干澄清问题,每个问题:
|
|
194
|
+
- 提供 2–5 个选项;
|
|
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`)。
|
|
204
|
+
|
|
205
|
+
Intake 完成后,将 RT 状态从 `intakeing` 更新为 `decided`(在流程决策完成后)。
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 5. Spec-Full vs Spec-Lite 决策
|
|
210
|
+
|
|
211
|
+
RT-Manager 根据 Intake 信息进行初步判断:
|
|
212
|
+
|
|
213
|
+
- 应使用 **Spec-Full** 的典型情况:
|
|
214
|
+
- 影响数据模型;
|
|
215
|
+
- 影响对外 API 或协议;
|
|
216
|
+
- 跨多个子系统或模块;
|
|
217
|
+
- 对性能、安全、合规有显著影响;
|
|
218
|
+
- 大规模重构或新功能。
|
|
219
|
+
|
|
220
|
+
- 应使用 **Spec-Lite** 的典型情况:
|
|
221
|
+
- 单模块 bug 修复;
|
|
222
|
+
- 小幅度行为调整或 UI 改进;
|
|
223
|
+
- 不改变数据结构或对外接口;
|
|
224
|
+
- 风险低,可快速回滚。
|
|
225
|
+
|
|
226
|
+
RT-Manager 应:
|
|
227
|
+
|
|
228
|
+
1. 在 `decision.md` 中记录:
|
|
229
|
+
- AI 的判断与理由;
|
|
230
|
+
- 推荐使用的 Profile(Full / Lite);
|
|
231
|
+
- 提供备选(如用户强制 Full / Lite 的选项);
|
|
232
|
+
2. 询问用户确认:
|
|
233
|
+
- 用户可选择“使用推荐方案”或显式切换;
|
|
234
|
+
3. 决策确认后:
|
|
235
|
+
- 创建 Spec-Full 或 Spec-Lite 所需的基础文件;
|
|
236
|
+
- 创建 feature 分支(或建议用户执行相应命令)。
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 6. 与其他层的协作
|
|
241
|
+
|
|
242
|
+
**Execution Layer**:Profile 决定后,由 `spec-full-profile.md` 或 `spec-lite-profile.md` 接手。RT-Manager 负责更新状态、确保在正确目录和分支操作、触发完成流程。
|
|
243
|
+
|
|
244
|
+
**Knowledge Layer**:确保每个 RT 至少有 `intake.md`、`decision.md`,流水线结束时文档完整(spec/plan/impact/invariants/tests/changelog)。详见 `.aodw/01-core/ai-knowledge-rules.md`。
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 8. RT 任务追踪(Task Tracking)
|
|
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`
|
|
255
|
+
|
|
256
|
+
### 8.2 task.md 的更新规则
|
|
257
|
+
|
|
258
|
+
- 必须与 `plan.md` 或 `plan-lite.md` 中的任务清单保持一致
|
|
259
|
+
- 每完成一个阶段(Phase)后必须更新
|
|
260
|
+
- 每次提交代码前必须更新
|
|
261
|
+
- 状态变更时(如从 `in-progress` 到 `reviewing`)必须更新
|
|
262
|
+
|
|
263
|
+
### 8.3 task.md 的内容要求
|
|
264
|
+
|
|
265
|
+
- 必须包含任务状态总览(已完成/进行中/待执行)
|
|
266
|
+
- 必须包含详细任务清单(与 plan 对应)
|
|
267
|
+
- 必须包含当前进度说明
|
|
268
|
+
- 必须包含下一步计划
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 9. RT 元数据与全局索引(meta.yaml & RT/index.yaml)
|
|
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`
|
|
395
|
+
|
|
396
|
+
AI 在执行这些操作时,应:
|
|
397
|
+
1. 先执行系统命令或调用 API 获取当前时间
|
|
398
|
+
2. 将获取到的时间值写入相应字段
|
|
399
|
+
3. 不得跳过时间获取步骤,直接写入时间值
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Spec-Full Profile Summary
|
|
2
|
+
|
|
3
|
+
## 适用场景
|
|
4
|
+
- 跨模块、大改动、高风险、数据模型/合约变更
|
|
5
|
+
|
|
6
|
+
## 必备文档
|
|
7
|
+
- spec.md / plan.md / impact.md / invariants.md / tests.md / changelog.md
|
|
8
|
+
- 需要时补充 research / data-model / contracts
|
|
9
|
+
|
|
10
|
+
## 关键要求
|
|
11
|
+
- spec 完成后必须执行需求审计
|
|
12
|
+
- plan 完成后必须等待用户确认
|
|
13
|
+
- UI 任务需走 UI 专用流程
|