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,465 @@
|
|
|
1
|
+
# AI 工具初始化规则
|
|
2
|
+
|
|
3
|
+
> **注意**:本文件定义 AI 如何引导用户完成开发工具的初始化配置。
|
|
4
|
+
|
|
5
|
+
**适用场景**:
|
|
6
|
+
- 用户说"初始化工具"、"设置开发工具"、"配置工具"等
|
|
7
|
+
- 用户说"检查工具配置"、"验证工具"等
|
|
8
|
+
- 编码前检测到工具未初始化
|
|
9
|
+
|
|
10
|
+
**必须与以下规范配合使用**:
|
|
11
|
+
- `.aodw/03-standards/ai-coding-rules.md`(主文件)
|
|
12
|
+
- `.aodw/03-standards/stacks/react-typescript/ai-coding-rules-frontend.md`(前端规范)
|
|
13
|
+
- `.aodw/03-standards/stacks/python-fastapi/ai-coding-rules-backend.md`(后端规范)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. 触发条件
|
|
18
|
+
|
|
19
|
+
当用户表达以下意图时,AI 必须执行工具初始化流程:
|
|
20
|
+
|
|
21
|
+
**明确命令**:
|
|
22
|
+
- "初始化工具"
|
|
23
|
+
- "设置开发工具"
|
|
24
|
+
- "配置工具"
|
|
25
|
+
- "检查工具配置"
|
|
26
|
+
- "验证工具"
|
|
27
|
+
- "工具初始化"
|
|
28
|
+
|
|
29
|
+
**隐含意图**:
|
|
30
|
+
- "ESLint 怎么配置?"
|
|
31
|
+
- "Ruff 怎么安装?"
|
|
32
|
+
- "工具还没设置好"
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 2. 执行流程
|
|
37
|
+
|
|
38
|
+
### Step 0: 前置检查(强制)
|
|
39
|
+
|
|
40
|
+
**AI 必须**:
|
|
41
|
+
1. 检查 `.aodw/06-project/ai-overview.md` 是否存在且内容完整(非初始模板状态)。
|
|
42
|
+
|
|
43
|
+
**如果文件不存在或不完整**:
|
|
44
|
+
- AI 必须停止当前流程。
|
|
45
|
+
- AI 必须提示用户:"**检测到项目概览尚未初始化。为了更准确地配置工具,请先执行项目概览初始化。**"
|
|
46
|
+
- 建议运行命令:"初始化项目概览"(`aodw init-overview`)。
|
|
47
|
+
|
|
48
|
+
### Step 1: 读取项目配置
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
**AI 必须优先从 `ai-overview.md` 读取信息**:
|
|
52
|
+
- 读取 `## 1. 技术栈` 章节
|
|
53
|
+
- 确定项目技术栈(React / Vue / Python / Java 等)
|
|
54
|
+
- 确定项目类型(Frontend / Backend / Fullstack)
|
|
55
|
+
|
|
56
|
+
**仅在 `ai-overview.md` 信息不足时的回退策略**:
|
|
57
|
+
- 检查目录结构
|
|
58
|
+
- 检查配置文件
|
|
59
|
+
- 询问用户确认
|
|
60
|
+
|
|
61
|
+
### Step 2: 检测工具状态
|
|
62
|
+
|
|
63
|
+
AI 必须检测以下工具的状态:
|
|
64
|
+
|
|
65
|
+
**前端工具**(如果项目包含前端):
|
|
66
|
+
- ESLint:是否安装?配置文件是否存在?
|
|
67
|
+
- Prettier:是否安装?配置文件是否存在?
|
|
68
|
+
- TypeScript Path Alias:是否配置?
|
|
69
|
+
|
|
70
|
+
**后端工具**(如果项目包含后端):
|
|
71
|
+
- **uv + pip-tools**:是否安装?requirements.in 是否存在?
|
|
72
|
+
- Ruff:是否安装?配置文件是否存在?
|
|
73
|
+
- Black:是否安装?配置文件是否存在?
|
|
74
|
+
- pre-commit:是否安装?配置文件是否存在?hooks 是否安装?
|
|
75
|
+
|
|
76
|
+
**检测方法**:
|
|
77
|
+
- 检查 `package.json`(前端工具)
|
|
78
|
+
- 运行版本命令(`npx eslint --version`、`ruff --version` 等)
|
|
79
|
+
- 检查配置文件是否存在
|
|
80
|
+
- 读取 `.aodw/tools-status.yaml`(如果存在)
|
|
81
|
+
|
|
82
|
+
### Step 3: 交互式引导
|
|
83
|
+
|
|
84
|
+
#### 3.1 工具未安装时的处理
|
|
85
|
+
|
|
86
|
+
**AI 必须**:
|
|
87
|
+
1. 说明工具的作用和必要性
|
|
88
|
+
2. 提供安装命令
|
|
89
|
+
3. 询问用户是否立即安装
|
|
90
|
+
|
|
91
|
+
**交互格式**(遵循 `ai-interaction-rules.md`):
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Q1. ESLint 未安装,是否立即安装?
|
|
95
|
+
|
|
96
|
+
A. 立即安装(推荐)
|
|
97
|
+
B. 稍后手动安装
|
|
98
|
+
C. 跳过
|
|
99
|
+
|
|
100
|
+
Recommended: A(理由:ESLint 是必需的代码质量检查工具,建议立即安装)
|
|
101
|
+
|
|
102
|
+
请回复:A/B/C
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**如果用户选择 A(立即安装)**:
|
|
106
|
+
- AI 执行安装命令(`npm install -D eslint ...` 或 `pip install ruff`)
|
|
107
|
+
- 等待安装完成
|
|
108
|
+
- 继续下一步
|
|
109
|
+
|
|
110
|
+
**如果用户选择 B 或 C**:
|
|
111
|
+
- AI 记录用户选择
|
|
112
|
+
- 提醒用户稍后需要安装
|
|
113
|
+
- 继续检测其他工具
|
|
114
|
+
|
|
115
|
+
#### 3.2 配置文件已存在时的处理
|
|
116
|
+
|
|
117
|
+
**AI 必须**:
|
|
118
|
+
1. 读取现有配置文件
|
|
119
|
+
2. 读取配置模板(`.aodw/templates/tools-config/`)
|
|
120
|
+
3. 对比差异,给出合并建议
|
|
121
|
+
4. 询问用户如何处理
|
|
122
|
+
|
|
123
|
+
**交互格式**:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
检测到 .eslintrc.json 已存在,但缺少以下配置项:
|
|
127
|
+
- max-lines 规则(文件大小限制)
|
|
128
|
+
- complexity 规则(复杂度限制)
|
|
129
|
+
- import/order 规则(import 排序)
|
|
130
|
+
|
|
131
|
+
Q1. 如何处理配置文件?
|
|
132
|
+
|
|
133
|
+
A. 合并配置(推荐)- 保留现有配置,添加缺失的配置项
|
|
134
|
+
B. 覆盖配置 - 使用 AODW 标准配置替换现有配置
|
|
135
|
+
C. 跳过 - 保持现有配置不变
|
|
136
|
+
|
|
137
|
+
Recommended: A(理由:合并配置可以保留您的自定义设置,同时添加必要的规范配置)
|
|
138
|
+
|
|
139
|
+
请回复:A/B/C
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**如果用户选择 A(合并配置)**:
|
|
143
|
+
- AI 读取现有配置
|
|
144
|
+
- AI 读取配置模板
|
|
145
|
+
- AI 合并配置(保留现有,添加缺失)
|
|
146
|
+
- AI 保存合并后的配置
|
|
147
|
+
- 更新状态文件
|
|
148
|
+
|
|
149
|
+
**如果用户选择 B(覆盖配置)**:
|
|
150
|
+
- AI 备份现有配置文件(添加 `.backup` 后缀)
|
|
151
|
+
- AI 使用模板生成新配置
|
|
152
|
+
- AI 保存新配置
|
|
153
|
+
- 更新状态文件
|
|
154
|
+
|
|
155
|
+
**如果用户选择 C(跳过)**:
|
|
156
|
+
- AI 记录用户选择
|
|
157
|
+
- 提醒用户配置可能不符合 AODW 规范
|
|
158
|
+
- 继续检测其他工具
|
|
159
|
+
|
|
160
|
+
#### 3.3 配置文件不存在时的处理
|
|
161
|
+
|
|
162
|
+
**AI 必须**:
|
|
163
|
+
1. 说明需要生成配置文件
|
|
164
|
+
2. 询问用户是否生成
|
|
165
|
+
|
|
166
|
+
**交互格式**:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
Q1. ESLint 配置文件不存在,是否生成?
|
|
170
|
+
|
|
171
|
+
A. 立即生成(推荐)
|
|
172
|
+
B. 稍后手动生成
|
|
173
|
+
C. 跳过
|
|
174
|
+
|
|
175
|
+
Recommended: A(理由:配置文件是必需的,建议立即生成)
|
|
176
|
+
|
|
177
|
+
请回复:A/B/C
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**如果用户选择 A(立即生成)**:
|
|
181
|
+
- AI 读取配置模板
|
|
182
|
+
- AI 生成配置文件
|
|
183
|
+
- 更新状态文件
|
|
184
|
+
|
|
185
|
+
### Step 4: 验证工具配置
|
|
186
|
+
|
|
187
|
+
**AI 必须**:
|
|
188
|
+
1. 运行工具验证命令(`npx eslint --version`、`ruff check .` 等)
|
|
189
|
+
2. 检查配置文件语法是否正确
|
|
190
|
+
3. 如果验证失败,提示用户修复
|
|
191
|
+
|
|
192
|
+
### Step 5: 更新状态文件
|
|
193
|
+
|
|
194
|
+
**AI 必须**:
|
|
195
|
+
1. 更新 `.aodw/tools-status.yaml`
|
|
196
|
+
2. 记录:
|
|
197
|
+
- 工具安装状态
|
|
198
|
+
- 配置文件状态
|
|
199
|
+
- 配置来源(generated / merged / existing)
|
|
200
|
+
- 初始化时间
|
|
201
|
+
|
|
202
|
+
### Step 6: 输出总结
|
|
203
|
+
|
|
204
|
+
**AI 必须**:
|
|
205
|
+
1. 输出工具初始化总结
|
|
206
|
+
2. 列出已安装和配置的工具
|
|
207
|
+
3. 列出未完成的项目(如果有)
|
|
208
|
+
4. **提供下一步建议**:
|
|
209
|
+
- "项目概览与工具链均已就绪,您可以开始进行 RT 开发任务。"
|
|
210
|
+
- "推荐运行:`aodw intake` 创建第一个需求。"
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 3. 配置文件合并策略
|
|
215
|
+
|
|
216
|
+
### 3.1 ESLint 配置合并
|
|
217
|
+
|
|
218
|
+
**现有配置 + 模板配置**:
|
|
219
|
+
- 保留现有的 `extends`、`plugins`、`rules`(如果存在)
|
|
220
|
+
- 添加模板中的必需规则(`max-lines`、`max-lines-per-function`、`complexity`)
|
|
221
|
+
- 合并 `settings`(保留现有,添加模板中的)
|
|
222
|
+
|
|
223
|
+
### 3.2 Prettier 配置合并
|
|
224
|
+
|
|
225
|
+
**现有配置 + 模板配置**:
|
|
226
|
+
- 如果现有配置存在,询问用户是否覆盖
|
|
227
|
+
- 如果不存在,直接使用模板
|
|
228
|
+
|
|
229
|
+
### 3.3 TypeScript Path Alias 合并
|
|
230
|
+
|
|
231
|
+
**现有 tsconfig.json + 模板配置**:
|
|
232
|
+
- 保留现有的 `compilerOptions`
|
|
233
|
+
- 合并 `paths` 配置(保留现有,添加模板中的)
|
|
234
|
+
|
|
235
|
+
### 3.4 pyproject.toml 合并(Ruff、Black)
|
|
236
|
+
|
|
237
|
+
**现有 pyproject.toml + 模板配置**:
|
|
238
|
+
- 读取现有的 `[tool.ruff]` 和 `[tool.black]` 配置
|
|
239
|
+
- 合并配置项(保留现有,添加缺失的)
|
|
240
|
+
- 如果配置冲突,询问用户选择
|
|
241
|
+
|
|
242
|
+
### 3.5 pre-commit 配置合并
|
|
243
|
+
|
|
244
|
+
**现有 .pre-commit-config.yaml + 模板配置**:
|
|
245
|
+
- 读取现有的 hooks
|
|
246
|
+
- 添加模板中的 hooks(如果不存在)
|
|
247
|
+
- 如果 hooks 冲突,询问用户选择
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 4. 安装命令参考
|
|
252
|
+
|
|
253
|
+
### 4.1 前端工具安装命令
|
|
254
|
+
|
|
255
|
+
**ESLint 完整安装**:
|
|
256
|
+
```bash
|
|
257
|
+
npm install -D eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-import eslint-plugin-jsx-a11y eslint-config-prettier
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Prettier 安装**:
|
|
261
|
+
```bash
|
|
262
|
+
npm install -D prettier
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### 4.2 后端工具安装命令
|
|
266
|
+
|
|
267
|
+
**依赖管理工具(uv + pip-tools)安装**:
|
|
268
|
+
```bash
|
|
269
|
+
# 安装 uv
|
|
270
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
271
|
+
|
|
272
|
+
# 使用 uv 安装 pip-tools
|
|
273
|
+
uv pip install pip-tools
|
|
274
|
+
|
|
275
|
+
# 创建 requirements.in 和 requirements-dev.in(如果不存在)
|
|
276
|
+
touch requirements.in requirements-dev.in
|
|
277
|
+
|
|
278
|
+
# 编译依赖(如果存在 Makefile)
|
|
279
|
+
make compile-deps
|
|
280
|
+
|
|
281
|
+
# 或手动编译
|
|
282
|
+
uv pip compile requirements.in -o requirements.txt
|
|
283
|
+
uv pip compile requirements-dev.in -o requirements-dev.txt
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Ruff 安装**(通过 uv + pip-tools):
|
|
287
|
+
```bash
|
|
288
|
+
# 1. 编辑 requirements-dev.in
|
|
289
|
+
echo "ruff>=0.1.0,<1.0.0" >> requirements-dev.in
|
|
290
|
+
|
|
291
|
+
# 2. 编译依赖
|
|
292
|
+
make compile-deps
|
|
293
|
+
# 或: uv pip compile requirements-dev.in -o requirements-dev.txt
|
|
294
|
+
|
|
295
|
+
# 3. 同步环境
|
|
296
|
+
make sync
|
|
297
|
+
# 或: uv pip sync requirements-dev.txt
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**Black 安装**(通过 uv + pip-tools):
|
|
301
|
+
```bash
|
|
302
|
+
# 1. 编辑 requirements-dev.in
|
|
303
|
+
echo "black>=23.0.0,<24.0.0" >> requirements-dev.in
|
|
304
|
+
|
|
305
|
+
# 2. 编译依赖
|
|
306
|
+
make compile-deps
|
|
307
|
+
|
|
308
|
+
# 3. 同步环境
|
|
309
|
+
make sync
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**pre-commit 安装**(通过 uv + pip-tools):
|
|
313
|
+
```bash
|
|
314
|
+
# 1. 编辑 requirements-dev.in
|
|
315
|
+
echo "pre-commit>=3.0.0,<4.0.0" >> requirements-dev.in
|
|
316
|
+
|
|
317
|
+
# 2. 编译依赖
|
|
318
|
+
make compile-deps
|
|
319
|
+
|
|
320
|
+
# 3. 同步环境
|
|
321
|
+
make sync
|
|
322
|
+
|
|
323
|
+
# 4. 安装 hooks
|
|
324
|
+
pre-commit install
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**⚠️ 重要**:所有后端工具必须通过 `uv + pip-tools` 安装,禁止使用 `pip install` 直接安装。
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 5. 配置模板位置
|
|
332
|
+
|
|
333
|
+
**前端配置模板**:
|
|
334
|
+
- ESLint:`.aodw/templates/tools-config/frontend/eslint.config.template.json`
|
|
335
|
+
- Prettier:`.aodw/templates/tools-config/frontend/prettier.config.template.json`
|
|
336
|
+
- TypeScript Path Alias:`.aodw/templates/tools-config/frontend/tsconfig.paths.template.json`
|
|
337
|
+
|
|
338
|
+
**后端配置模板**:
|
|
339
|
+
- 依赖管理:`.aodw/templates/tools-config/backend/requirements.in.template`(如果存在)
|
|
340
|
+
- Ruff:`.aodw/templates/tools-config/backend/ruff.config.template.toml`
|
|
341
|
+
- Black:`.aodw/templates/tools-config/backend/black.config.template.toml`
|
|
342
|
+
- pre-commit:`.aodw/templates/tools-config/backend/pre-commit.config.template.yaml`
|
|
343
|
+
|
|
344
|
+
**依赖管理配置**:
|
|
345
|
+
- 项目必须使用 `uv + pip-tools` 管理依赖
|
|
346
|
+
- 必须存在 `requirements.in` 和 `requirements-dev.in` 文件
|
|
347
|
+
- 必须存在 `Makefile` 或相关编译脚本(推荐)
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## 6. 状态文件格式
|
|
352
|
+
|
|
353
|
+
**位置**:`.aodw/tools-status.yaml`
|
|
354
|
+
|
|
355
|
+
**格式**:
|
|
356
|
+
```yaml
|
|
357
|
+
tools_init:
|
|
358
|
+
initialized: true
|
|
359
|
+
initialized_at: "2025-01-15T10:30:00Z"
|
|
360
|
+
last_updated_at: "2025-01-15T10:30:00Z"
|
|
361
|
+
initialized_by: "ai-rule" # 或 "cli"
|
|
362
|
+
project_type: "fullstack"
|
|
363
|
+
|
|
364
|
+
frontend:
|
|
365
|
+
eslint:
|
|
366
|
+
installed: true
|
|
367
|
+
configured: true
|
|
368
|
+
config_file: ".eslintrc.json"
|
|
369
|
+
config_source: "merged" # generated | merged | existing
|
|
370
|
+
prettier:
|
|
371
|
+
installed: true
|
|
372
|
+
configured: true
|
|
373
|
+
config_file: ".prettierrc.json"
|
|
374
|
+
config_source: "generated"
|
|
375
|
+
typescript_path_alias:
|
|
376
|
+
configured: true
|
|
377
|
+
config_file: "tsconfig.json"
|
|
378
|
+
config_source: "merged"
|
|
379
|
+
|
|
380
|
+
backend:
|
|
381
|
+
dependency_manager:
|
|
382
|
+
uv_installed: true
|
|
383
|
+
pip_tools_installed: true
|
|
384
|
+
configured: true
|
|
385
|
+
requirements_in_exists: true
|
|
386
|
+
requirements_dev_in_exists: true
|
|
387
|
+
makefile_exists: true
|
|
388
|
+
ruff:
|
|
389
|
+
installed: true
|
|
390
|
+
configured: true
|
|
391
|
+
config_file: "pyproject.toml"
|
|
392
|
+
config_source: "merged"
|
|
393
|
+
black:
|
|
394
|
+
installed: true
|
|
395
|
+
configured: true
|
|
396
|
+
config_file: "pyproject.toml"
|
|
397
|
+
config_source: "merged"
|
|
398
|
+
pre_commit:
|
|
399
|
+
installed: true
|
|
400
|
+
configured: true
|
|
401
|
+
hooks_installed: true
|
|
402
|
+
config_file: ".pre-commit-config.yaml"
|
|
403
|
+
config_source: "generated"
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## 7. 交互规范
|
|
409
|
+
|
|
410
|
+
AI 在执行工具初始化时,必须严格遵守 `.aodw/01-core/ai-interaction-rules.md` 中的规范:
|
|
411
|
+
|
|
412
|
+
1. **问题类型**:决策型问题(提供选项 + 推荐)
|
|
413
|
+
2. **问题格式**:Q1. <问题> / A. <选项1> / B. <选项2> / Recommended: A(理由)
|
|
414
|
+
3. **问题数量**:每轮最多 3 个问题
|
|
415
|
+
4. **节奏控制**:逐步推进,等待用户回答后再继续
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## 8. 错误处理
|
|
420
|
+
|
|
421
|
+
### 8.1 工具安装失败
|
|
422
|
+
|
|
423
|
+
- AI 必须显示错误信息
|
|
424
|
+
- AI 提供故障排查建议
|
|
425
|
+
- AI 询问用户是否重试或跳过
|
|
426
|
+
|
|
427
|
+
### 8.2 配置文件生成失败
|
|
428
|
+
|
|
429
|
+
- AI 必须显示错误信息
|
|
430
|
+
- AI 提供手动配置建议
|
|
431
|
+
- AI 提供配置模板位置
|
|
432
|
+
|
|
433
|
+
### 8.3 配置验证失败
|
|
434
|
+
|
|
435
|
+
- AI 必须显示验证错误
|
|
436
|
+
- AI 提供修复建议
|
|
437
|
+
- AI 询问用户是否继续
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## 9. 完成后的提示
|
|
442
|
+
|
|
443
|
+
工具初始化完成后,AI 必须:
|
|
444
|
+
|
|
445
|
+
1. **输出总结**:
|
|
446
|
+
```
|
|
447
|
+
✅ 工具初始化完成
|
|
448
|
+
|
|
449
|
+
已安装和配置:
|
|
450
|
+
- ✅ ESLint (已安装并配置)
|
|
451
|
+
- ✅ Prettier (已安装并配置)
|
|
452
|
+
- ✅ Ruff (已安装并配置)
|
|
453
|
+
- ✅ Black (已安装并配置)
|
|
454
|
+
- ✅ pre-commit (已安装并配置)
|
|
455
|
+
|
|
456
|
+
状态已保存到: .aodw/tools-status.yaml
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
2. **提供下一步建议**:
|
|
460
|
+
- "现在可以开始开发了"
|
|
461
|
+
- "如果遇到工具相关问题,可以再次运行工具初始化"
|
|
462
|
+
|
|
463
|
+
3. **提醒编码规范**:
|
|
464
|
+
- "工具已初始化,编码时将自动检查工具状态"
|
|
465
|
+
- "如果工具状态异常,编码将被阻止"
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# AI System Overview
|
|
2
|
+
(本文件列出 AI 理解本系统所需的全局信息)
|
|
3
|
+
|
|
4
|
+
> 说明:本文件是骨架模板,AI 可以在后续 RT 中逐步补全。
|
|
5
|
+
> 修改架构或模块职责时,AI 必须同步更新本文件。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 技术栈
|
|
10
|
+
|
|
11
|
+
- 前端:
|
|
12
|
+
- 后端:
|
|
13
|
+
- 数据库:
|
|
14
|
+
- 消息系统:
|
|
15
|
+
- 缓存:
|
|
16
|
+
- 运维 / 部署:
|
|
17
|
+
- 其他:
|
|
18
|
+
|
|
19
|
+
(由 AI 或人工在首次接入 AODW 时填写,后续在架构变动时更新)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. 整体架构概览
|
|
24
|
+
|
|
25
|
+
可以使用文字或 ASCII 图描述系统架构,例如:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
[ Web / Mobile Client ]
|
|
29
|
+
|
|
|
30
|
+
[ API ]
|
|
31
|
+
|
|
|
32
|
+
[ Services / Domain ]
|
|
33
|
+
|
|
|
34
|
+
[ DB / MQ ]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
AI 应在理解架构后,将关键组件简要记录在此处。
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 3. 目录结构(只列关键部分)
|
|
42
|
+
|
|
43
|
+
请根据实际项目补充,例如:
|
|
44
|
+
|
|
45
|
+
- `/apps/web` - 前端应用
|
|
46
|
+
- `/apps/api` - 后端 API
|
|
47
|
+
- `/packages/shared` - 共享代码(类型、工具等)
|
|
48
|
+
- `/infra` - 基础设施与部署脚本
|
|
49
|
+
- `/RT` - 每个 Request Ticket 的本地知识库
|
|
50
|
+
- `/aodw` - AODW 配置与规则文件(本目录)
|
|
51
|
+
|
|
52
|
+
AI 在修改目录结构时,需要在此更新说明。
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 4. 核心业务模块
|
|
57
|
+
|
|
58
|
+
为每个重要业务模块列出简要说明(AI 可从模块 README 中提取信息汇总到这里)。
|
|
59
|
+
|
|
60
|
+
示例模板:
|
|
61
|
+
|
|
62
|
+
### 4.1 用户模块(User Module)
|
|
63
|
+
|
|
64
|
+
- **职责**:认证、授权、用户资料管理等
|
|
65
|
+
- **关键路径**:
|
|
66
|
+
- Web UI:`apps/web/src/features/user/...`
|
|
67
|
+
- API:`apps/api/src/users/...`
|
|
68
|
+
- **依赖关系**:
|
|
69
|
+
- 调用:订单模块、通知模块等
|
|
70
|
+
- 被调用:认证中间件等
|
|
71
|
+
- **关键约束**:
|
|
72
|
+
- 不得在 controller 中直接访问数据库,必须通过 service / repository 层;
|
|
73
|
+
- 密码与敏感字段必须加密或脱敏。
|
|
74
|
+
|
|
75
|
+
### 4.2 订单模块(Order Module)
|
|
76
|
+
|
|
77
|
+
(同样结构)
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 5. 系统级 Invariants(不可破坏原则)
|
|
82
|
+
|
|
83
|
+
AI 在修改任何代码前必须确认不会违反以下约束:
|
|
84
|
+
|
|
85
|
+
- 不得绕过 service 层直接访问 DB;
|
|
86
|
+
- 不得无故更改对外 API 返回格式(除非走 Spec-Full 流程);
|
|
87
|
+
- 不得在热路径引入明显的性能退化;
|
|
88
|
+
- 不得引入明显的安全风险(如绕过认证、明文敏感信息)。
|
|
89
|
+
|
|
90
|
+
根据系统演进,这些 Invariants 可以在 RT 中进行讨论与更新。
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 6. 模块 README 映射表
|
|
95
|
+
|
|
96
|
+
为 AI 提供“代码目录 → 模块文档”的索引示例:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
apps/api/src/users/** → docs/modules/users.md
|
|
100
|
+
apps/api/src/orders/** → docs/modules/orders.md
|
|
101
|
+
apps/web/src/features/** → docs/modules/web-features.md
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
AI 在创建新模块或重构模块结构时,应同步维护此映射关系。
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 7. 历史关键变更(可选)
|
|
109
|
+
|
|
110
|
+
可记录一些对架构或业务影响较大的里程碑,例如:
|
|
111
|
+
|
|
112
|
+
- 2025-01:引入新订单系统;
|
|
113
|
+
- 2025-03:从单体拆分为微服务;
|
|
114
|
+
- 2025-05:迁移认证机制到 OAuth2。
|
|
115
|
+
|
|
116
|
+
这些信息便于 AI 理解系统随时间的演进。
|