amazingteam 3.0.0
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/.ai-team/agents/architect.md +144 -0
- package/.ai-team/agents/ci-analyst.md +188 -0
- package/.ai-team/agents/developer.md +176 -0
- package/.ai-team/agents/planner.md +355 -0
- package/.ai-team/agents/qa.md +189 -0
- package/.ai-team/agents/reviewer.md +211 -0
- package/.ai-team/agents/triage.md +146 -0
- package/.ai-team/commands/ci-analyze.md +116 -0
- package/.ai-team/commands/design.md +100 -0
- package/.ai-team/commands/implement.md +108 -0
- package/.ai-team/commands/release-check.md +142 -0
- package/.ai-team/commands/review.md +142 -0
- package/.ai-team/commands/test.md +115 -0
- package/.ai-team/commands/triage.md +138 -0
- package/.ai-team/memory/architect/architecture_notes.md +67 -0
- package/.ai-team/memory/architect/design_rationale.md +113 -0
- package/.ai-team/memory/architect/module_map.md +84 -0
- package/.ai-team/memory/ci-analyst/failure_patterns.md +102 -0
- package/.ai-team/memory/ci-analyst/runbook_references.md +87 -0
- package/.ai-team/memory/developer/bug_investigation.md +102 -0
- package/.ai-team/memory/developer/build_issues.md +115 -0
- package/.ai-team/memory/developer/implementation_notes.md +83 -0
- package/.ai-team/memory/failures/failure_library.md +103 -0
- package/.ai-team/memory/planner/decomposition_notes.md +82 -0
- package/.ai-team/memory/planner/flow_rules.md +86 -0
- package/.ai-team/memory/planner/github_issue_patterns.md +229 -0
- package/.ai-team/memory/qa/regression_cases.md +101 -0
- package/.ai-team/memory/qa/test_strategy.md +138 -0
- package/.ai-team/memory/qa/validation_notes.md +110 -0
- package/.ai-team/memory/reviewer/quality_rules.md +105 -0
- package/.ai-team/memory/reviewer/recurring_risks.md +109 -0
- package/.ai-team/memory/reviewer/review_notes.md +124 -0
- package/.ai-team/memory/triage/classification_heuristics.md +82 -0
- package/.ai-team/memory/triage/debug_notes.md +87 -0
- package/.ai-team/opencode.template.jsonc +216 -0
- package/.ai-team/skills/bugfix-playbook/skill.md +174 -0
- package/.ai-team/skills/ci-failure-analysis/skill.md +176 -0
- package/.ai-team/skills/issue-triage/skill.md +163 -0
- package/.ai-team/skills/regression-checklist/skill.md +176 -0
- package/.ai-team/skills/release-readiness-check/skill.md +216 -0
- package/.ai-team/skills/repo-architecture-reader/skill.md +139 -0
- package/.ai-team/skills/safe-refactor-checklist/skill.md +215 -0
- package/.ai-team/skills/task-breakdown-and-dispatch/skill.md +151 -0
- package/.ai-team/skills/test-first-feature-dev/skill.md +205 -0
- package/.ai-team/workflows/ci.yml +81 -0
- package/.ai-team/workflows/nightly-ai-maintenance.yml +129 -0
- package/.ai-team/workflows/opencode.yml +33 -0
- package/.ai-team/workflows/pr-check.yml +41 -0
- package/.foundation/foundation.lock +38 -0
- package/.foundation/local-overrides.md +97 -0
- package/.foundation/upgrade-history.md +38 -0
- package/.opencode/agents/architect.md +38 -0
- package/.opencode/agents/ci-analyst.md +38 -0
- package/.opencode/agents/developer.md +43 -0
- package/.opencode/agents/planner.md +47 -0
- package/.opencode/agents/qa.md +34 -0
- package/.opencode/agents/reviewer.md +38 -0
- package/.opencode/agents/triage.md +37 -0
- package/.opencode/commands/auto.md +264 -0
- package/.opencode/commands/breakdown-issue.md +94 -0
- package/.opencode/commands/ci-analyze.md +15 -0
- package/.opencode/commands/close-parent-task.md +122 -0
- package/.opencode/commands/design.md +15 -0
- package/.opencode/commands/dispatch-next.md +102 -0
- package/.opencode/commands/implement.md +16 -0
- package/.opencode/commands/release-check.md +16 -0
- package/.opencode/commands/resume.md +88 -0
- package/.opencode/commands/review.md +15 -0
- package/.opencode/commands/show-blockers.md +97 -0
- package/.opencode/commands/summarize-parent.md +121 -0
- package/.opencode/commands/test.md +15 -0
- package/.opencode/commands/triage.md +109 -0
- package/.opencode/skills/bugfix-playbook/SKILL.md +81 -0
- package/.opencode/skills/ci-failure-analysis/SKILL.md +94 -0
- package/.opencode/skills/issue-triage/SKILL.md +80 -0
- package/.opencode/skills/regression-checklist/SKILL.md +81 -0
- package/.opencode/skills/release-readiness-check/SKILL.md +81 -0
- package/.opencode/skills/repo-architecture-reader/SKILL.md +65 -0
- package/.opencode/skills/safe-refactor-checklist/SKILL.md +76 -0
- package/.opencode/skills/task-breakdown-and-dispatch/SKILL.md +255 -0
- package/.opencode/skills/test-first-feature-dev/SKILL.md +78 -0
- package/AGENTS.md +879 -0
- package/CHANGELOG.md +261 -0
- package/LICENSE +21 -0
- package/README.md +1215 -0
- package/VERSION +1 -0
- package/action/__tests__/downloader.test.js +251 -0
- package/action/__tests__/merger.test.js +156 -0
- package/action/__tests__/path-resolver.test.js +199 -0
- package/action/__tests__/validator.test.js +310 -0
- package/action/action.yml +61 -0
- package/action/index.js +223 -0
- package/action/lib/downloader.js +344 -0
- package/action/lib/merger.js +170 -0
- package/action/lib/path-resolver.js +176 -0
- package/action/lib/setup.js +286 -0
- package/action/lib/validator.js +324 -0
- package/cli/__tests__/cli.test.js +270 -0
- package/cli/amazingteam.cjs +225 -0
- package/cli/commands/check-update.cjs +159 -0
- package/cli/commands/init.cjs +412 -0
- package/cli/commands/local.cjs +264 -0
- package/cli/commands/migrate.cjs +316 -0
- package/cli/commands/status.cjs +241 -0
- package/cli/commands/upgrade.cjs +213 -0
- package/cli/commands/validate.cjs +259 -0
- package/cli/commands/version.cjs +59 -0
- package/cli/sync.cjs +237 -0
- package/dist/index.js +35 -0
- package/docs/architecture/overview.md +138 -0
- package/docs/blocker_resolution_design.md +372 -0
- package/docs/bootstrap-model.md +356 -0
- package/docs/config-reference.md +458 -0
- package/docs/how-to-use.md +178 -0
- package/docs/migration-to-v3.md +355 -0
- package/docs/overlay-guide.md +156 -0
- package/docs/patterns/README.md +67 -0
- package/docs/quick-start-v3.md +330 -0
- package/docs/releases/README.md +64 -0
- package/docs/runbooks/ci/README.md +62 -0
- package/docs/runbooks/ci/build-debug.md +120 -0
- package/docs/runbooks/ci/flaky-tests.md +127 -0
- package/docs/runbooks/getting-started.md +81 -0
- package/docs/upgrade-policy.md +188 -0
- package/docs/versioning.md +199 -0
- package/overlays/README.md +30 -0
- package/overlays/ai-agent-product/.ai-team/skills/llm-integration/skill.md +99 -0
- package/overlays/ai-agent-product/docs/ai-agent-architecture.md +68 -0
- package/overlays/ai-agent-product/overlay.yaml +26 -0
- package/overlays/cpp-qt-desktop/.ai-team/skills/qt-signals-slots/skill.md +60 -0
- package/overlays/cpp-qt-desktop/docs/qt-conventions.md +64 -0
- package/overlays/cpp-qt-desktop/overlay.yaml +22 -0
- package/overlays/python-backend/.ai-team/skills/python-testing/skill.md +90 -0
- package/overlays/python-backend/docs/python-style.md +78 -0
- package/overlays/python-backend/overlay.yaml +22 -0
- package/overlays/web-fullstack/.ai-team/skills/frontend-testing/skill.md +70 -0
- package/overlays/web-fullstack/docs/frontend-conventions.md +68 -0
- package/overlays/web-fullstack/overlay.yaml +26 -0
- package/package.json +84 -0
- package/presets/default.yaml +161 -0
- package/presets/go.yaml +43 -0
- package/presets/python.yaml +43 -0
- package/presets/typescript.yaml +40 -0
- package/schemas/config.schema.json +239 -0
- package/scripts/diff_foundation_vs_project.sh +134 -0
- package/scripts/generate_docs.sh +200 -0
- package/scripts/init_project.sh +455 -0
- package/scripts/plan_upgrade.sh +268 -0
- package/scripts/upgrade_foundation.sh +365 -0
- package/scripts/validate-foundation.cjs +278 -0
- package/scripts/validate_foundation.sh +192 -0
- package/scripts/validate_project_setup.sh +171 -0
- package/tasks/README.md +94 -0
- package/tasks/_template/analysis.md +76 -0
- package/tasks/_template/design.md +121 -0
- package/tasks/_template/implementation.md +121 -0
- package/tasks/_template/release.md +119 -0
- package/tasks/_template/review.md +131 -0
- package/tasks/_template/subtasks/task.yaml +24 -0
- package/tasks/_template/task.yaml +75 -0
- package/tasks/_template/validation.md +128 -0
- package/templates/amazingteam.yml +81 -0
- package/templates/gitignore +14 -0
- package/templates/opencode.jsonc +216 -0
package/README.md
ADDED
|
@@ -0,0 +1,1215 @@
|
|
|
1
|
+
# AmazingTeam
|
|
2
|
+
|
|
3
|
+
**可复用的 AI 开发团队底座** - 基于 OpenCode + GitHub + GitHub Actions 的半自动化软件开发系统。
|
|
4
|
+
|
|
5
|
+
具备受控的自举能力,支持初始化、验证、规划和升级下游项目。
|
|
6
|
+
|
|
7
|
+
## 特性
|
|
8
|
+
|
|
9
|
+
- 🤖 **七个 AI 角色**: Planner, Architect, Developer, QA, Reviewer, Triage, CI Analyst
|
|
10
|
+
- 🧠 **分层记忆系统**: 全局记忆、角色记忆、任务记忆、失败库隔离
|
|
11
|
+
- 📋 **任务系统**: task.yaml 任务清单,状态机驱动工作流
|
|
12
|
+
- 🔀 **GitHub Issue 编排**: 大任务分解为子Issue,依赖追踪,逐个派发
|
|
13
|
+
- 🔄 **可升级底座**: 项目开发期间可同步最新模板更新
|
|
14
|
+
- 📦 **开箱即用**: 一键初始化新项目
|
|
15
|
+
- 🔒 **安全可控**: 人工审批保留在关键节点,治理模型保护核心知识
|
|
16
|
+
- 🚀 **受控自举**: 支持初始化、验证、规划、升级,但不会无监管自我修改
|
|
17
|
+
|
|
18
|
+
## 快速开始
|
|
19
|
+
|
|
20
|
+
### 方式一:使用 Bootstrap 脚本 (推荐)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# 克隆 Foundation
|
|
24
|
+
git clone https://github.com/your-org/amazingteam.git
|
|
25
|
+
cd amazingteam
|
|
26
|
+
|
|
27
|
+
# 初始化新项目
|
|
28
|
+
./scripts/init_project.sh my-project
|
|
29
|
+
|
|
30
|
+
# 或使用 overlay
|
|
31
|
+
./scripts/init_project.sh -o python-backend -l python my-api
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 方式二:作为模板使用
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# 使用 GitHub Template 创建新仓库
|
|
38
|
+
# 或者克隆此仓库
|
|
39
|
+
git clone https://github.com/your-org/amazingteam.git my-project
|
|
40
|
+
cd my-project
|
|
41
|
+
|
|
42
|
+
# 初始化配置
|
|
43
|
+
node cli/amazingteam.cjs init
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 方式三:添加到现有项目
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
cd your-existing-project
|
|
50
|
+
|
|
51
|
+
# 下载并运行初始化脚本
|
|
52
|
+
npx amazingteam init
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 方式四:全局安装
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g amazingteam
|
|
59
|
+
|
|
60
|
+
# 创建新项目
|
|
61
|
+
amazingteam init my-project
|
|
62
|
+
|
|
63
|
+
# 或在现有项目中初始化
|
|
64
|
+
cd your-project
|
|
65
|
+
amazingteam init
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 项目结构
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
amazingteam/
|
|
72
|
+
├── .opencode/ # OpenCode 配置入口
|
|
73
|
+
│ ├── agents/ # Agent 入口文件 (YAML配置+简要描述)
|
|
74
|
+
│ │ ├── planner.md # 指向 .ai-team/agents/planner.md
|
|
75
|
+
│ │ ├── architect.md # 指向 .ai-team/agents/architect.md
|
|
76
|
+
│ │ └── ... # 其他角色入口
|
|
77
|
+
│ ├── skills/ # 可复用技能
|
|
78
|
+
│ └── commands/ # 工作流命令
|
|
79
|
+
│
|
|
80
|
+
├── .ai-team/ # AI Team 核心配置 (升级时覆盖)
|
|
81
|
+
│ ├── agents/ # AI 角色详细行为定义
|
|
82
|
+
│ │ ├── planner.md # 完整职责、约束、工作流程
|
|
83
|
+
│ │ ├── architect.md # 完整职责、约束、工作流程
|
|
84
|
+
│ │ ├── developer.md # 完整职责、约束、工作流程
|
|
85
|
+
│ │ ├── qa.md # 完整职责、约束、工作流程
|
|
86
|
+
│ │ ├── reviewer.md # 完整职责、约束、工作流程
|
|
87
|
+
│ │ ├── triage.md # 完整职责、约束、工作流程
|
|
88
|
+
│ │ └── ci-analyst.md # 完整职责、约束、工作流程
|
|
89
|
+
│ └── memory/ # 角色记忆模板
|
|
90
|
+
│ ├── planner/
|
|
91
|
+
│ │ ├── flow_rules.md # 状态机规则
|
|
92
|
+
│ │ ├── decomposition_notes.md # 分解模式
|
|
93
|
+
│ │ └── github_issue_patterns.md # GitHub编排模式
|
|
94
|
+
│ ├── architect/
|
|
95
|
+
│ ├── developer/
|
|
96
|
+
│ ├── qa/
|
|
97
|
+
│ ├── reviewer/
|
|
98
|
+
│ ├── triage/
|
|
99
|
+
│ ├── ci-analyst/
|
|
100
|
+
│ └── failures/ # 共享失败库
|
|
101
|
+
│
|
|
102
|
+
├── scripts/ # Bootstrap 脚本
|
|
103
|
+
│ ├── init_project.sh # 初始化新项目
|
|
104
|
+
│ ├── validate_foundation.sh # 验证 Foundation
|
|
105
|
+
│ ├── validate_project_setup.sh # 验证项目配置
|
|
106
|
+
│ ├── plan_upgrade.sh # 规划升级
|
|
107
|
+
│ ├── upgrade_foundation.sh # 执行升级
|
|
108
|
+
│ ├── diff_foundation_vs_project.sh # 对比差异
|
|
109
|
+
│ └── generate_docs.sh # 生成文档
|
|
110
|
+
│
|
|
111
|
+
├── .foundation/ # Foundation 元数据模板
|
|
112
|
+
│ ├── foundation.lock # 版本锁定模板
|
|
113
|
+
│ ├── upgrade-history.md # 升级历史模板
|
|
114
|
+
│ └── local-overrides.md # 本地覆盖模板
|
|
115
|
+
│
|
|
116
|
+
├── cli/ # CLI 工具
|
|
117
|
+
│ ├── ai-team.cjs # 主命令
|
|
118
|
+
│ └── sync.cjs # 同步脚本
|
|
119
|
+
│
|
|
120
|
+
├── overlays/ # 技术栈 overlay
|
|
121
|
+
│ ├── cpp-qt-desktop/ # C++ Qt 桌面应用
|
|
122
|
+
│ ├── python-backend/ # Python 后端
|
|
123
|
+
│ ├── web-fullstack/ # 全栈 Web
|
|
124
|
+
│ └── ai-agent-product/ # AI Agent 产品
|
|
125
|
+
│
|
|
126
|
+
├── .github/ # GitHub 配置 (可自定义)
|
|
127
|
+
│ ├── workflows/ # CI/CD 工作流
|
|
128
|
+
│ └── ISSUE_TEMPLATE/ # Issue 模板
|
|
129
|
+
│
|
|
130
|
+
├── docs/ # 文档目录
|
|
131
|
+
│ ├── architecture/ # 架构文档
|
|
132
|
+
│ ├── decisions/ # 决策记录
|
|
133
|
+
│ ├── patterns/ # 实现模式库
|
|
134
|
+
│ ├── releases/ # 发布文档
|
|
135
|
+
│ ├── runbooks/ci/ # CI 运维手册
|
|
136
|
+
│ ├── bootstrap-model.md # Bootstrap 模型
|
|
137
|
+
│ ├── upgrade-policy.md # 升级策略
|
|
138
|
+
│ └── overlay-guide.md # Overlay 指南
|
|
139
|
+
│
|
|
140
|
+
├── tasks/ # 任务记忆存储
|
|
141
|
+
│ ├── _template/ # 任务模板
|
|
142
|
+
│ │ ├── task.yaml # 任务清单模板
|
|
143
|
+
│ │ └── release.md # 发布检查模板
|
|
144
|
+
│ └── issue-{id}/ # 具体任务目录
|
|
145
|
+
│
|
|
146
|
+
├── src/ # 源代码
|
|
147
|
+
│
|
|
148
|
+
├── VERSION # Foundation 版本
|
|
149
|
+
├── CHANGELOG.md # 版本变更记录
|
|
150
|
+
├── amazingteam.config.yaml # 项目配置 (自定义)
|
|
151
|
+
├── AGENTS.md # 全局规则 (自定义)
|
|
152
|
+
└── README.md
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 使用指南
|
|
156
|
+
|
|
157
|
+
### 1. 初始化项目
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# 交互式初始化
|
|
161
|
+
amazingteam init
|
|
162
|
+
|
|
163
|
+
# 指定参数
|
|
164
|
+
amazingteam init my-project \
|
|
165
|
+
--language typescript \
|
|
166
|
+
--framework node \
|
|
167
|
+
--description "My awesome project"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 2. 配置 GitHub Secrets
|
|
171
|
+
|
|
172
|
+
在仓库 Settings → Secrets and variables → Actions 添加:
|
|
173
|
+
|
|
174
|
+
| Secret | 说明 |
|
|
175
|
+
|--------|------|
|
|
176
|
+
| `OPENCODE_API_KEY` | OpenCode API 密钥 |
|
|
177
|
+
| `GITHUB_TOKEN` | 自动提供,无需手动配置 |
|
|
178
|
+
|
|
179
|
+
### 3. 使用 AI Team
|
|
180
|
+
|
|
181
|
+
创建 Issue 后,评论命令触发 AI:
|
|
182
|
+
|
|
183
|
+
**推荐:一条命令自动完成全流程**
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
/oc /auto
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
这会自动执行:Triage → Design → Implement → Test → Create PR,等待人工审核合并。
|
|
190
|
+
|
|
191
|
+
**手动分步流程(高级用户):**
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
新Issue → /triage → 判断是否需要分解
|
|
195
|
+
│
|
|
196
|
+
┌───────────┴───────────┐
|
|
197
|
+
↓ ↓
|
|
198
|
+
需要分解 无需分解
|
|
199
|
+
│ │
|
|
200
|
+
↓ ↓
|
|
201
|
+
/breakdown-issue /design
|
|
202
|
+
│ │
|
|
203
|
+
↓ ↓
|
|
204
|
+
创建子Issue /implement
|
|
205
|
+
│ │
|
|
206
|
+
↓ ↓
|
|
207
|
+
/dispatch-next ...
|
|
208
|
+
│
|
|
209
|
+
↓ (循环直到完成)
|
|
210
|
+
│
|
|
211
|
+
/close-parent-task
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**可用命令:**
|
|
215
|
+
|
|
216
|
+
| 命令 | 角色 | 作用 |
|
|
217
|
+
|------|------|------|
|
|
218
|
+
| `/auto` | Planner | **全自动**:分类 → 设计 → 实现 → 测试 → 创建 PR(含阻塞处理) |
|
|
219
|
+
| `/resume` | Planner | 阻塞解决后恢复工作流 |
|
|
220
|
+
| `/triage` | Triage | Issue分类,确定是否需要分解 |
|
|
221
|
+
| `/breakdown-issue` | Planner | 分解大任务为GitHub子Issue |
|
|
222
|
+
| `/dispatch-next` | Planner | 派发下一个活跃子任务 |
|
|
223
|
+
| `/show-blockers` | Planner | 显示被阻塞的任务 |
|
|
224
|
+
| `/summarize-parent` | Planner | 汇总父任务进度 |
|
|
225
|
+
| `/close-parent-task` | Planner | 验证并关闭父任务 |
|
|
226
|
+
| `/design` | Architect | 分析需求,设计方案 |
|
|
227
|
+
| `/implement` | Developer | 实现代码 |
|
|
228
|
+
| `/test` | QA | 测试验证 |
|
|
229
|
+
| `/review` | Reviewer | 代码审查 |
|
|
230
|
+
| `/ci-analyze` | CI Analyst | CI 失败分析、阻塞诊断 |
|
|
231
|
+
| `/release-check` | Reviewer | 发布就绪检查 |
|
|
232
|
+
|
|
233
|
+
### 4. 工作流程
|
|
234
|
+
|
|
235
|
+
#### 全自动流程(推荐)
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
Issue 创建
|
|
239
|
+
│
|
|
240
|
+
▼
|
|
241
|
+
/oc /auto
|
|
242
|
+
│
|
|
243
|
+
▼
|
|
244
|
+
┌─────────────────────────────────────────────────────┐
|
|
245
|
+
│ Planner (Coordinator) │
|
|
246
|
+
│ │ │
|
|
247
|
+
│ ├── Triage (分类) │
|
|
248
|
+
│ │ │
|
|
249
|
+
│ ├── 决策点 │
|
|
250
|
+
│ │ ├── 简单任务 → 直接执行 │
|
|
251
|
+
│ │ └── 复杂任务 → 创建子Issue → 逐个执行 │
|
|
252
|
+
│ │ │
|
|
253
|
+
│ ├── Architect (设计) │
|
|
254
|
+
│ ├── Developer (实现) │
|
|
255
|
+
│ ├── QA (测试) │
|
|
256
|
+
│ └── Developer (创建 PR) │
|
|
257
|
+
└─────────────────────────────────────────────────────┘
|
|
258
|
+
│
|
|
259
|
+
▼
|
|
260
|
+
┌─────────────┐
|
|
261
|
+
│ Human │ ─── 审核合并
|
|
262
|
+
└─────────────┘
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
#### 阻塞处理流程
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
工作流执行中
|
|
269
|
+
│
|
|
270
|
+
▼ (遇到问题)
|
|
271
|
+
┌─────────────┐
|
|
272
|
+
│ 暂停 │
|
|
273
|
+
└──────┬──────┘
|
|
274
|
+
│
|
|
275
|
+
▼
|
|
276
|
+
┌─────────────┐
|
|
277
|
+
│ CI Analyst │ ─── 诊断问题
|
|
278
|
+
└──────┬──────┘
|
|
279
|
+
│
|
|
280
|
+
▼
|
|
281
|
+
┌────┴────┐
|
|
282
|
+
│ 决策 │
|
|
283
|
+
└────┬────┘
|
|
284
|
+
│
|
|
285
|
+
┌────┼────────────┐
|
|
286
|
+
↓ ↓ ↓
|
|
287
|
+
简单 中等 需人类
|
|
288
|
+
│ │ │
|
|
289
|
+
↓ ↓ ↓
|
|
290
|
+
自动 创建 创建子Issue
|
|
291
|
+
修复 子Issue 通知人类
|
|
292
|
+
│ AI解决 等待/resume
|
|
293
|
+
│ │ │
|
|
294
|
+
└────┴────────────┘
|
|
295
|
+
│
|
|
296
|
+
▼
|
|
297
|
+
恢复原工作流
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**阻塞处理示例:**
|
|
301
|
+
|
|
302
|
+
```markdown
|
|
303
|
+
# 简单问题 - 自动修复
|
|
304
|
+
Error: Cannot find module './utils'
|
|
305
|
+
→ 自动添加 import,继续工作流
|
|
306
|
+
|
|
307
|
+
# 中等问题 - 创建子Issue AI解决
|
|
308
|
+
Error: API endpoint /v2/users not found
|
|
309
|
+
→ 创建子Issue #205: 更新 API 端点
|
|
310
|
+
→ AI 解决子Issue
|
|
311
|
+
→ 恢复原工作流
|
|
312
|
+
|
|
313
|
+
# 需要人类 - 创建子Issue 通知人类
|
|
314
|
+
Error: Permission denied: Cannot push to 'main'
|
|
315
|
+
→ 创建子Issue #206: [Blocker] 权限问题
|
|
316
|
+
→ 通知人类
|
|
317
|
+
→ 等待人类解决后评论 `/oc /resume`
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
#### 功能开发流程(大任务 - 手动分步)
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
Issue 创建
|
|
324
|
+
│
|
|
325
|
+
▼
|
|
326
|
+
┌─────────────┐
|
|
327
|
+
│ Triage │ ─── 分类,判断是否需要分解
|
|
328
|
+
└─────┬───────┘
|
|
329
|
+
│
|
|
330
|
+
▼
|
|
331
|
+
┌─────────────┐
|
|
332
|
+
│ Planner │ ─── 分解为子Issue,建立依赖关系
|
|
333
|
+
└─────┬───────┘
|
|
334
|
+
│
|
|
335
|
+
▼ (逐个派发子任务)
|
|
336
|
+
│
|
|
337
|
+
┌─────────────┐
|
|
338
|
+
│ Architect │ ─── 分析需求,设计方案
|
|
339
|
+
└─────┬───────┘
|
|
340
|
+
│
|
|
341
|
+
▼
|
|
342
|
+
┌─────────────┐
|
|
343
|
+
│ Developer │ ─── 实现代码,创建 PR
|
|
344
|
+
└─────┬───────┘
|
|
345
|
+
│
|
|
346
|
+
▼
|
|
347
|
+
┌─────────────┐
|
|
348
|
+
│ QA │ ─── 测试验证
|
|
349
|
+
└─────┬───────┘
|
|
350
|
+
│
|
|
351
|
+
▼
|
|
352
|
+
┌─────────────┐
|
|
353
|
+
│ Reviewer │ ─── 代码审查
|
|
354
|
+
└─────┬───────┘
|
|
355
|
+
│
|
|
356
|
+
▼
|
|
357
|
+
┌─────────────┐
|
|
358
|
+
│ Planner │ ─── 验证子任务完成,派发下一个
|
|
359
|
+
└─────┬───────┘
|
|
360
|
+
│
|
|
361
|
+
▼ (循环直到所有子任务完成)
|
|
362
|
+
│
|
|
363
|
+
┌─────────────┐
|
|
364
|
+
│ Human │ ─── 审批合并,关闭父Issue
|
|
365
|
+
└─────────────┘
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
#### 功能开发流程(小任务)
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
Issue 创建
|
|
372
|
+
│
|
|
373
|
+
▼
|
|
374
|
+
┌─────────────┐
|
|
375
|
+
│ Triage │ ─── 分类,判断无需分解
|
|
376
|
+
└─────┬───────┘
|
|
377
|
+
│
|
|
378
|
+
▼
|
|
379
|
+
┌─────────────┐
|
|
380
|
+
│ Architect │ ─── 分析需求,设计方案
|
|
381
|
+
└─────┬───────┘
|
|
382
|
+
│
|
|
383
|
+
▼
|
|
384
|
+
┌─────────────┐
|
|
385
|
+
│ Developer │ ─── 实现代码,创建 PR
|
|
386
|
+
└─────┬───────┘
|
|
387
|
+
│
|
|
388
|
+
▼
|
|
389
|
+
┌─────────────┐
|
|
390
|
+
│ QA │ ─── 测试验证
|
|
391
|
+
└─────┬───────┘
|
|
392
|
+
│
|
|
393
|
+
▼
|
|
394
|
+
┌─────────────┐
|
|
395
|
+
│ Reviewer │ ─── 代码审查
|
|
396
|
+
└─────┬───────┘
|
|
397
|
+
│
|
|
398
|
+
▼
|
|
399
|
+
┌─────────────┐
|
|
400
|
+
│ Human │ ─── 审批合并
|
|
401
|
+
└─────────────┘
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
#### Bug 修复流程
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
Bug 报告
|
|
408
|
+
│
|
|
409
|
+
▼
|
|
410
|
+
┌─────────────┐
|
|
411
|
+
│ Triage │ ─── 分类,初步调试分析
|
|
412
|
+
└─────┬───────┘
|
|
413
|
+
│
|
|
414
|
+
▼
|
|
415
|
+
┌─────────────┐
|
|
416
|
+
│ Developer │ ─── 修复代码
|
|
417
|
+
└─────┬───────┘
|
|
418
|
+
│
|
|
419
|
+
▼
|
|
420
|
+
┌─────────────┐
|
|
421
|
+
│ QA │ ─── 回归测试
|
|
422
|
+
└─────┬───────┘
|
|
423
|
+
│
|
|
424
|
+
▼
|
|
425
|
+
┌─────────────┐
|
|
426
|
+
│ Reviewer │ ─── 代码审查
|
|
427
|
+
└─────────────┘
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
#### CI 失败流程
|
|
431
|
+
|
|
432
|
+
```
|
|
433
|
+
CI 失败
|
|
434
|
+
│
|
|
435
|
+
▼
|
|
436
|
+
┌─────────────┐
|
|
437
|
+
│ CI Analyst │ ─── 分析失败原因,提供修复建议
|
|
438
|
+
└─────┬───────┘
|
|
439
|
+
│
|
|
440
|
+
▼
|
|
441
|
+
┌─────────────┐
|
|
442
|
+
│ Developer │ ─── 应用修复
|
|
443
|
+
└─────┬───────┘
|
|
444
|
+
│
|
|
445
|
+
▼
|
|
446
|
+
┌─────────────┐
|
|
447
|
+
│ QA │ ─── 验证修复
|
|
448
|
+
└─────────────┘
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
## 任务系统
|
|
452
|
+
|
|
453
|
+
### task.yaml 任务清单
|
|
454
|
+
|
|
455
|
+
每个任务都有一个 `task.yaml` 文件:
|
|
456
|
+
|
|
457
|
+
```yaml
|
|
458
|
+
id: issue-123
|
|
459
|
+
title: 实现用户认证
|
|
460
|
+
type: feature
|
|
461
|
+
status: in_implementation
|
|
462
|
+
priority: high
|
|
463
|
+
owner_role: developer
|
|
464
|
+
depends_on: []
|
|
465
|
+
blocked_by: []
|
|
466
|
+
acceptance_criteria:
|
|
467
|
+
- 用户可以使用邮箱密码登录
|
|
468
|
+
- 登录失败有合理的错误提示
|
|
469
|
+
risk_level: medium
|
|
470
|
+
module_scope:
|
|
471
|
+
- auth
|
|
472
|
+
- api
|
|
473
|
+
|
|
474
|
+
github_issue: 123
|
|
475
|
+
github_url: https://github.com/org/repo/issues/123
|
|
476
|
+
parent_task: null
|
|
477
|
+
requires_decomposition: false
|
|
478
|
+
|
|
479
|
+
subtasks:
|
|
480
|
+
- id: issue-123-subtask-01
|
|
481
|
+
github_issue: 201
|
|
482
|
+
title: "[Subtask] 设计认证API"
|
|
483
|
+
type: design
|
|
484
|
+
owner_role: architect
|
|
485
|
+
status: done
|
|
486
|
+
- id: issue-123-subtask-02
|
|
487
|
+
github_issue: 202
|
|
488
|
+
title: "[Subtask] 实现登录接口"
|
|
489
|
+
type: implementation
|
|
490
|
+
owner_role: developer
|
|
491
|
+
status: in_progress
|
|
492
|
+
depends_on: [201]
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
### 大任务分解原则
|
|
496
|
+
|
|
497
|
+
**需要分解的情况:**
|
|
498
|
+
- 涉及多个模块
|
|
499
|
+
- 需要先设计再实现
|
|
500
|
+
- 影响公共接口
|
|
501
|
+
- 需要多个 PR
|
|
502
|
+
- 有明显的依赖顺序
|
|
503
|
+
|
|
504
|
+
**不需要分解的情况:**
|
|
505
|
+
- 单模块变更
|
|
506
|
+
- 范围清晰
|
|
507
|
+
- 一个 PR 足够
|
|
508
|
+
|
|
509
|
+
### 任务状态机
|
|
510
|
+
|
|
511
|
+
```
|
|
512
|
+
backlog → ready → in_analysis → in_design → in_implementation → in_validation → in_review → release_candidate → done
|
|
513
|
+
↓ ↓
|
|
514
|
+
blocked ←───────────────────────────────────────── ←
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### GitHub Issue 编排
|
|
518
|
+
|
|
519
|
+
大任务通过 `/breakdown-issue` 命令分解为子Issue:
|
|
520
|
+
|
|
521
|
+
```
|
|
522
|
+
父Issue #120: 改进启动可靠性
|
|
523
|
+
│
|
|
524
|
+
├── 子Issue #201: [Subtask] 隔离配置验证 (architect)
|
|
525
|
+
│ ↓
|
|
526
|
+
├── 子Issue #202: [Subtask] 重构启动错误路径 (developer)
|
|
527
|
+
│ ↓
|
|
528
|
+
└── 子Issue #203: [Subtask] 添加回归测试 (qa)
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
**编排规则:**
|
|
532
|
+
- 一个子任务一个 PR
|
|
533
|
+
- 逐个派发,不并行(除非明确说明)
|
|
534
|
+
- 依赖关系显式记录
|
|
535
|
+
- 父Issue在所有子Issue完成后才关闭
|
|
536
|
+
|
|
537
|
+
**常用命令流程:**
|
|
538
|
+
|
|
539
|
+
```bash
|
|
540
|
+
# 1. 分类新Issue
|
|
541
|
+
/triage
|
|
542
|
+
|
|
543
|
+
# 2. 分解大任务(如需要)
|
|
544
|
+
/breakdown-issue
|
|
545
|
+
|
|
546
|
+
# 3. 派发子任务
|
|
547
|
+
/dispatch-next
|
|
548
|
+
|
|
549
|
+
# 4. 查看阻塞情况
|
|
550
|
+
/show-blockers
|
|
551
|
+
|
|
552
|
+
# 5. 查看进度
|
|
553
|
+
/summarize-parent
|
|
554
|
+
|
|
555
|
+
# 6. 验证完成
|
|
556
|
+
/close-parent-task
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
## 升级底座
|
|
560
|
+
|
|
561
|
+
当模板仓库有更新时,可以同步到你的项目:
|
|
562
|
+
|
|
563
|
+
```bash
|
|
564
|
+
# 检查状态
|
|
565
|
+
amazingteam status
|
|
566
|
+
|
|
567
|
+
# 升级到最新版本
|
|
568
|
+
amazingteam upgrade
|
|
569
|
+
|
|
570
|
+
# 强制升级
|
|
571
|
+
amazingteam upgrade --force
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
**升级注意事项:**
|
|
575
|
+
|
|
576
|
+
| 目录 | 升级行为 | 说明 |
|
|
577
|
+
|------|---------|------|
|
|
578
|
+
| `.opencode/agents/` | 覆盖 | 入口文件,通常不需要自定义 |
|
|
579
|
+
| `.ai-team/agents/` | 覆盖 | 行为规范,自定义前先备份 |
|
|
580
|
+
| `.ai-team/memory/` | 合并 | 保留现有记忆,添加新模式 |
|
|
581
|
+
| `amazingteam.config.yaml` | 跳过 | 项目自定义配置 |
|
|
582
|
+
| `AGENTS.md` | 跳过 | 项目全局规则 |
|
|
583
|
+
| `docs/` | 跳过 | 项目文档 |
|
|
584
|
+
|
|
585
|
+
**升级流程:**
|
|
586
|
+
|
|
587
|
+
```
|
|
588
|
+
1. amazingteam status → 检查版本差异
|
|
589
|
+
2. amazingteam upgrade --dry-run → 预览变更
|
|
590
|
+
3. amazingteam upgrade → 执行升级
|
|
591
|
+
4. 检查变更,恢复自定义行为(如有)
|
|
592
|
+
5. 测试项目
|
|
593
|
+
6. 提交变更
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
**自定义行为保护:**
|
|
597
|
+
|
|
598
|
+
如果自定义了 `.ai-team/agents/` 中的行为规范:
|
|
599
|
+
|
|
600
|
+
1. 升级前备份自定义内容
|
|
601
|
+
2. 升级后合并新功能和自定义内容
|
|
602
|
+
3. 或者在 `amazingteam.config.yaml` 中标记:
|
|
603
|
+
|
|
604
|
+
```yaml
|
|
605
|
+
upgrade:
|
|
606
|
+
protected_files:
|
|
607
|
+
- ".ai-team/agents/developer.md"
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
## Bootstrap 脚本
|
|
611
|
+
|
|
612
|
+
Foundation 提供一组 Bootstrap 脚本,用于初始化、验证和升级项目。
|
|
613
|
+
|
|
614
|
+
### 脚本列表
|
|
615
|
+
|
|
616
|
+
| 脚本 | 用途 | 模式 |
|
|
617
|
+
|------|------|------|
|
|
618
|
+
| `init_project.sh` | 初始化新项目 | init |
|
|
619
|
+
| `validate_foundation.sh` | 验证 Foundation 完整性 | validate |
|
|
620
|
+
| `validate_project_setup.sh` | 验证项目配置 | validate |
|
|
621
|
+
| `plan_upgrade.sh` | 生成升级计划 (只读) | plan-upgrade |
|
|
622
|
+
| `upgrade_foundation.sh` | 执行受控升级 | apply-upgrade |
|
|
623
|
+
| `diff_foundation_vs_project.sh` | 对比 Foundation 与项目 | validate |
|
|
624
|
+
| `generate_docs.sh` | 生成文档 | - |
|
|
625
|
+
|
|
626
|
+
### 初始化新项目
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
# 基本用法
|
|
630
|
+
./scripts/init_project.sh my-project
|
|
631
|
+
|
|
632
|
+
# 指定 overlay 和语言
|
|
633
|
+
./scripts/init_project.sh -o python-backend -l python my-api
|
|
634
|
+
|
|
635
|
+
# 使用 C++ Qt overlay
|
|
636
|
+
./scripts/init_project.sh -o cpp-qt-desktop -l cpp my-desktop-app
|
|
637
|
+
|
|
638
|
+
# 完整参数
|
|
639
|
+
./scripts/init_project.sh \
|
|
640
|
+
--language typescript \
|
|
641
|
+
--framework node \
|
|
642
|
+
--description "My awesome project" \
|
|
643
|
+
--overlay web-fullstack \
|
|
644
|
+
my-project
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
**创建的内容**:
|
|
648
|
+
- `.ai-team/` - AI Team 配置
|
|
649
|
+
- `.github/` - GitHub 工作流和模板
|
|
650
|
+
- `.foundation/` - Foundation 元数据
|
|
651
|
+
- `docs/`, `tasks/`, `src/` - 项目目录
|
|
652
|
+
- `amazingteam.config.yaml`, `opencode.jsonc` - 项目配置
|
|
653
|
+
|
|
654
|
+
### 验证项目
|
|
655
|
+
|
|
656
|
+
```bash
|
|
657
|
+
# 验证 Foundation 自身
|
|
658
|
+
./scripts/validate_foundation.sh
|
|
659
|
+
|
|
660
|
+
# 验证项目配置
|
|
661
|
+
./scripts/validate_project_setup.sh /path/to/project
|
|
662
|
+
|
|
663
|
+
# 或在项目目录中
|
|
664
|
+
cd my-project
|
|
665
|
+
../scripts/validate_project_setup.sh .
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
**验证内容**:
|
|
669
|
+
- 必需目录是否存在
|
|
670
|
+
- Agent/Skill/Command 文件是否完整
|
|
671
|
+
- Memory 目录是否正确
|
|
672
|
+
- GitHub 工作流和模板是否存在
|
|
673
|
+
- Foundation lock 文件是否有效
|
|
674
|
+
|
|
675
|
+
### 规划升级
|
|
676
|
+
|
|
677
|
+
```bash
|
|
678
|
+
# 生成升级计划 (只读,不修改文件)
|
|
679
|
+
./scripts/plan_upgrade.sh /path/to/project
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
**输出**:
|
|
683
|
+
- 缺失文件列表
|
|
684
|
+
- 过期文件列表
|
|
685
|
+
- 受保护文件列表
|
|
686
|
+
- 风险评估
|
|
687
|
+
- 升级计划报告 (`.foundation/upgrade-plan.md`)
|
|
688
|
+
|
|
689
|
+
### 执行升级
|
|
690
|
+
|
|
691
|
+
```bash
|
|
692
|
+
# 执行升级
|
|
693
|
+
./scripts/upgrade_foundation.sh /path/to/project
|
|
694
|
+
|
|
695
|
+
# 预览变更 (不实际执行)
|
|
696
|
+
./scripts/upgrade_foundation.sh --dry-run /path/to/project
|
|
697
|
+
|
|
698
|
+
# 强制升级 (跳过确认)
|
|
699
|
+
./scripts/upgrade_foundation.sh --force /path/to/project
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
**升级行为**:
|
|
703
|
+
- 自动添加缺失文件 (Class A)
|
|
704
|
+
- 生成变更 diff 供审查 (Class B)
|
|
705
|
+
- 跳过受保护文件 (Class C)
|
|
706
|
+
- 创建备份
|
|
707
|
+
- 更新 `.foundation/` 元数据
|
|
708
|
+
|
|
709
|
+
### 对比差异
|
|
710
|
+
|
|
711
|
+
```bash
|
|
712
|
+
# 对比 Foundation 和项目的所有关键文件
|
|
713
|
+
./scripts/diff_foundation_vs_project.sh /path/to/project
|
|
714
|
+
|
|
715
|
+
# 对比特定文件
|
|
716
|
+
./scripts/diff_foundation_vs_project.sh /path/to/project .ai-team/agents/planner.md
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
### 文件分类
|
|
720
|
+
|
|
721
|
+
| 类别 | 说明 | 升级行为 |
|
|
722
|
+
|------|------|---------|
|
|
723
|
+
| **Class A** | 自动生成 (模板、空目录) | 可自动创建/替换 |
|
|
724
|
+
| **Class B** | 需审查 (Agent、Skill、Command) | 生成 diff,人工审查 |
|
|
725
|
+
| **Class C** | 受保护 (架构文档、决策记录) | 人工批准,禁止自动修改 |
|
|
726
|
+
|
|
727
|
+
### Foundation 元数据
|
|
728
|
+
|
|
729
|
+
每个下游项目都有 `.foundation/` 目录:
|
|
730
|
+
|
|
731
|
+
```
|
|
732
|
+
.foundation/
|
|
733
|
+
├── foundation.lock # 版本锁定
|
|
734
|
+
├── upgrade-history.md # 升级历史
|
|
735
|
+
└── local-overrides.md # 本地自定义记录
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
**foundation.lock**:
|
|
739
|
+
```yaml
|
|
740
|
+
foundation_repo: amazingteam
|
|
741
|
+
foundation_version: 2.0.0
|
|
742
|
+
overlay: python-backend
|
|
743
|
+
initialized_at: 2026-03-14
|
|
744
|
+
last_upgrade_at: 2026-03-20
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
**升级流程**:
|
|
748
|
+
|
|
749
|
+
```
|
|
750
|
+
1. plan_upgrade.sh → 生成升级计划 (只读)
|
|
751
|
+
2. 审查 upgrade-plan.md
|
|
752
|
+
3. upgrade_foundation.sh --dry-run → 预览变更
|
|
753
|
+
4. upgrade_foundation.sh → 执行升级
|
|
754
|
+
5. validate_project_setup.sh → 验证结果
|
|
755
|
+
6. 测试项目
|
|
756
|
+
7. 提交变更
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
## 记忆系统
|
|
760
|
+
|
|
761
|
+
### 四层记忆架构
|
|
762
|
+
|
|
763
|
+
```
|
|
764
|
+
┌─────────────────────────────────────┐
|
|
765
|
+
│ GLOBAL MEMORY (docs/) │
|
|
766
|
+
│ 项目级知识,需要人工审批修改 │
|
|
767
|
+
└─────────────────┬───────────────────┘
|
|
768
|
+
│
|
|
769
|
+
┌─────────────────▼───────────────────┐
|
|
770
|
+
│ ROLE MEMORY (.ai-team/memory/) │
|
|
771
|
+
│ 角色专属记忆,自动更新 │
|
|
772
|
+
└─────────────────┬───────────────────┘
|
|
773
|
+
│
|
|
774
|
+
┌─────────────────▼───────────────────┐
|
|
775
|
+
│ FAILURES LIBRARY │
|
|
776
|
+
│ 共享失败模式库,CI Analyst 维护 │
|
|
777
|
+
└─────────────────┬───────────────────┘
|
|
778
|
+
│
|
|
779
|
+
┌─────────────────▼───────────────────┐
|
|
780
|
+
│ TASK MEMORY (tasks/) │
|
|
781
|
+
│ 任务级记忆,自动创建归档 │
|
|
782
|
+
└─────────────────────────────────────┘
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
### 记忆权限矩阵
|
|
786
|
+
|
|
787
|
+
| 角色 | 全局 | Planner | Architect | Developer | QA | Reviewer | Triage | CI Analyst | 失败库 | 任务 |
|
|
788
|
+
|------|------|---------|-----------|-----------|-----|----------|--------|------------|--------|------|
|
|
789
|
+
| Planner | 只读 | 读写 | 只读 | - | - | - | 只读 | - | 只读 | 读写 |
|
|
790
|
+
| Architect | 只读 | 只读 | 读写 | 只读 | - | - | - | - | 只读 | 读写 |
|
|
791
|
+
| Developer | 只读 | 只读 | 只读 | 读写 | - | - | - | - | 只读 | 读写 |
|
|
792
|
+
| QA | 只读 | 只读 | 只读 | - | 读写 | - | - | - | 只读 | 读写 |
|
|
793
|
+
| Reviewer | 只读 | 只读 | 只读 | 只读 | 只读 | 读写 | - | - | 只读 | 读写 |
|
|
794
|
+
| Triage | 只读 | - | - | - | - | - | 读写 | - | 只读 | 读写 |
|
|
795
|
+
| CI Analyst | 只读 | - | - | - | - | - | - | 读写 | 读写 | 读写 |
|
|
796
|
+
|
|
797
|
+
## 治理模型
|
|
798
|
+
|
|
799
|
+
### 变更范围保护
|
|
800
|
+
|
|
801
|
+
- Bug 修复不应进行无关重构
|
|
802
|
+
- 功能开发不应在未审批时重新设计公共接口
|
|
803
|
+
- 重构应保持行为不变
|
|
804
|
+
- 审查者不应静默修改实现
|
|
805
|
+
|
|
806
|
+
### 受保护知识区域
|
|
807
|
+
|
|
808
|
+
AI 不能直接修改以下区域,需要人工审批:
|
|
809
|
+
|
|
810
|
+
- `docs/architecture/`
|
|
811
|
+
- `docs/decisions/`
|
|
812
|
+
- 发布策略
|
|
813
|
+
- 标准文档
|
|
814
|
+
|
|
815
|
+
### 人工审批关卡
|
|
816
|
+
|
|
817
|
+
以下操作需要人工审批:
|
|
818
|
+
|
|
819
|
+
- 架构变更
|
|
820
|
+
- 合并到受保护分支
|
|
821
|
+
- 发布操作
|
|
822
|
+
- 修改全局知识
|
|
823
|
+
- 高风险任务分解
|
|
824
|
+
|
|
825
|
+
## 自定义配置
|
|
826
|
+
|
|
827
|
+
### Agent 文件结构
|
|
828
|
+
|
|
829
|
+
Agent 定义分为两部分:
|
|
830
|
+
|
|
831
|
+
| 目录 | 职责 | 内容 |
|
|
832
|
+
|------|------|------|
|
|
833
|
+
| `.opencode/agents/` | 入口文件 | YAML配置、工具权限、简要描述 |
|
|
834
|
+
| `.ai-team/agents/` | 行为规范 | 完整职责、约束、工作流程、输出格式 |
|
|
835
|
+
|
|
836
|
+
**入口文件示例** (`.opencode/agents/planner.md`):
|
|
837
|
+
```yaml
|
|
838
|
+
---
|
|
839
|
+
description: Decomposes tasks into GitHub sub-issues
|
|
840
|
+
tools:
|
|
841
|
+
write: false
|
|
842
|
+
bash:
|
|
843
|
+
"gh issue*": allow
|
|
844
|
+
---
|
|
845
|
+
You are the Planner agent. See `.ai-team/agents/planner.md` for details.
|
|
846
|
+
```
|
|
847
|
+
|
|
848
|
+
**行为规范文件** (`.ai-team/agents/planner.md`):
|
|
849
|
+
- 完整职责列表
|
|
850
|
+
- 约束和反模式
|
|
851
|
+
- 工作流程
|
|
852
|
+
- 输出格式模板
|
|
853
|
+
|
|
854
|
+
### amazingteam.config.yaml
|
|
855
|
+
|
|
856
|
+
```yaml
|
|
857
|
+
project:
|
|
858
|
+
name: "my-project"
|
|
859
|
+
description: "My project description"
|
|
860
|
+
language: "typescript"
|
|
861
|
+
framework: "node"
|
|
862
|
+
|
|
863
|
+
ai_team:
|
|
864
|
+
version: "2.0.0"
|
|
865
|
+
agents:
|
|
866
|
+
planner: true
|
|
867
|
+
architect: true
|
|
868
|
+
developer: true
|
|
869
|
+
qa: true
|
|
870
|
+
reviewer: true
|
|
871
|
+
triage: true
|
|
872
|
+
ci_analyst: true
|
|
873
|
+
|
|
874
|
+
rules:
|
|
875
|
+
coding:
|
|
876
|
+
max_function_lines: 30
|
|
877
|
+
test_coverage_threshold: 80
|
|
878
|
+
git:
|
|
879
|
+
commit_convention: "conventional"
|
|
880
|
+
governance:
|
|
881
|
+
protected_paths:
|
|
882
|
+
- "docs/architecture/"
|
|
883
|
+
- "docs/decisions/"
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
### 添加自定义角色
|
|
887
|
+
|
|
888
|
+
1. 创建角色文件 `.ai-team/agents/custom-role.md`
|
|
889
|
+
2. 在配置中启用:
|
|
890
|
+
|
|
891
|
+
```yaml
|
|
892
|
+
ai_team:
|
|
893
|
+
custom_agents:
|
|
894
|
+
- name: product-manager
|
|
895
|
+
enabled: true
|
|
896
|
+
```
|
|
897
|
+
|
|
898
|
+
### 添加自定义技能
|
|
899
|
+
|
|
900
|
+
1. 创建技能文件 `.ai-team/skills/my-skill/skill.md`
|
|
901
|
+
2. 在 `opencode.jsonc` 中注册
|
|
902
|
+
|
|
903
|
+
## 开发此模板
|
|
904
|
+
|
|
905
|
+
```bash
|
|
906
|
+
# 安装依赖
|
|
907
|
+
npm install
|
|
908
|
+
|
|
909
|
+
# 运行测试
|
|
910
|
+
npm test
|
|
911
|
+
|
|
912
|
+
# 构建
|
|
913
|
+
npm run build
|
|
914
|
+
|
|
915
|
+
# 本地测试 CLI
|
|
916
|
+
node cli/amazingteam.cjs init test-project
|
|
917
|
+
```
|
|
918
|
+
|
|
919
|
+
## 常见问题
|
|
920
|
+
|
|
921
|
+
### Q: 如何保留自定义修改?
|
|
922
|
+
|
|
923
|
+
A: 以下文件不会被升级覆盖:
|
|
924
|
+
- `amazingteam.config.yaml`
|
|
925
|
+
- `AGENTS.md`
|
|
926
|
+
- `docs/`
|
|
927
|
+
- `src/`
|
|
928
|
+
- `tests/`
|
|
929
|
+
|
|
930
|
+
### Q: 如何自定义 Agent 行为?
|
|
931
|
+
|
|
932
|
+
A: 两种方式:
|
|
933
|
+
|
|
934
|
+
1. **修改行为规范** - 编辑 `.ai-team/agents/{role}.md`
|
|
935
|
+
- 添加项目特定的职责
|
|
936
|
+
- 修改输出格式
|
|
937
|
+
- 调整工作流程
|
|
938
|
+
|
|
939
|
+
2. **修改入口权限** - 编辑 `.opencode/agents/{role}.md`
|
|
940
|
+
- 调整工具权限
|
|
941
|
+
- 添加/删除允许的 bash 命令
|
|
942
|
+
|
|
943
|
+
示例:让 Developer 可以运行数据库迁移
|
|
944
|
+
```yaml
|
|
945
|
+
# .opencode/agents/developer.md
|
|
946
|
+
permission:
|
|
947
|
+
bash:
|
|
948
|
+
"npm run db:migrate": allow
|
|
949
|
+
```
|
|
950
|
+
|
|
951
|
+
### Q: 如何回滚升级?
|
|
952
|
+
|
|
953
|
+
A: 升级时会自动创建备份目录 `.ai-team-backup-{timestamp}`,可以手动恢复。
|
|
954
|
+
|
|
955
|
+
### Q: 支持 GitHub 以外的平台吗?
|
|
956
|
+
|
|
957
|
+
A: 目前主要支持 GitHub。GitLab 支持计划中。
|
|
958
|
+
|
|
959
|
+
### Q: v1 升级到 v2 需要做什么?
|
|
960
|
+
|
|
961
|
+
A: v2 新增了:
|
|
962
|
+
- Planner 角色(任务分解、GitHub Issue编排)
|
|
963
|
+
- Triage 角色(Issue分类)
|
|
964
|
+
- CI Analyst 角色(CI失败分析)
|
|
965
|
+
- GitHub Issue 子任务编排
|
|
966
|
+
- 任务系统
|
|
967
|
+
|
|
968
|
+
运行 `amazingteam upgrade` 会自动添加新组件。
|
|
969
|
+
|
|
970
|
+
### Q: 大任务什么时候需要分解?
|
|
971
|
+
|
|
972
|
+
A: 以下情况建议分解:
|
|
973
|
+
- 涉及多个模块
|
|
974
|
+
- 需要先设计再实现
|
|
975
|
+
- 影响公共接口/API
|
|
976
|
+
- 可能需要多个 PR
|
|
977
|
+
- 有明显的依赖步骤
|
|
978
|
+
|
|
979
|
+
以下情况无需分解:
|
|
980
|
+
- 单模块、单 PR 足够
|
|
981
|
+
- 范围清晰、验证简单
|
|
982
|
+
|
|
983
|
+
## 贡献
|
|
984
|
+
|
|
985
|
+
欢迎提交 Issue 和 Pull Request!
|
|
986
|
+
|
|
987
|
+
## v3.0.0 开发进度
|
|
988
|
+
|
|
989
|
+
### 概述
|
|
990
|
+
|
|
991
|
+
v3.0.0 将实现**远程加载功能**,用户项目无需提交 Foundation 源码,只需几个配置文件即可使用 AI Team。
|
|
992
|
+
|
|
993
|
+
### 用户项目结构(v3.0.0)
|
|
994
|
+
|
|
995
|
+
```
|
|
996
|
+
your-project/
|
|
997
|
+
├── .github/workflows/amazingteam.yml # 引用 Foundation 版本
|
|
998
|
+
├── opencode.jsonc # 自动生成
|
|
999
|
+
├── amazingteam.config.yaml # 用户配置
|
|
1000
|
+
├── .ai-team/memory/ # 运行时状态
|
|
1001
|
+
└── src/ # 用户代码
|
|
1002
|
+
```
|
|
1003
|
+
|
|
1004
|
+
### 升级方式
|
|
1005
|
+
|
|
1006
|
+
```bash
|
|
1007
|
+
# 一键升级
|
|
1008
|
+
npx amazingteam upgrade
|
|
1009
|
+
|
|
1010
|
+
# 或指定版本
|
|
1011
|
+
npx amazingteam upgrade --to 3.1.0
|
|
1012
|
+
```
|
|
1013
|
+
|
|
1014
|
+
### 开发进度
|
|
1015
|
+
|
|
1016
|
+
| 阶段 | 任务数 | 完成数 | 进度 |
|
|
1017
|
+
|------|--------|--------|------|
|
|
1018
|
+
| Phase 1: 基础准备 | 16 | 16 | ✅ 100% |
|
|
1019
|
+
| Phase 2: CLI 工具 | 23 | 23 | ✅ 100% |
|
|
1020
|
+
| Phase 3: GitHub Action | 12 | 12 | ✅ 100% |
|
|
1021
|
+
| Phase 4: 文档更新 | 12 | 12 | ✅ 100% |
|
|
1022
|
+
| Phase 5: 测试 | 14 | 14 | ✅ 100% |
|
|
1023
|
+
| Phase 6: 发布 | 9 | 7 | ✅ 78% |
|
|
1024
|
+
| **总计** | **86** | **84** | **98%** |
|
|
1025
|
+
|
|
1026
|
+
### Phase 1 已完成内容
|
|
1027
|
+
|
|
1028
|
+
| 组件 | 文件 | 说明 |
|
|
1029
|
+
|------|------|------|
|
|
1030
|
+
| **Presets** | `presets/*.yaml` | 默认配置、TypeScript、Python、Go 预设 |
|
|
1031
|
+
| **Templates** | `templates/*` | OpenCode 配置模板、GitHub Workflow 模板 |
|
|
1032
|
+
| **Schemas** | `schemas/config.schema.json` | 配置文件 JSON Schema |
|
|
1033
|
+
| **Action** | `action/*` | GitHub Action 入口和核心模块 |
|
|
1034
|
+
| **Merger** | `action/lib/merger.js` | 配置合并逻辑 |
|
|
1035
|
+
| **Path Resolver** | `action/lib/path-resolver.js` | 路径解析 |
|
|
1036
|
+
| **Validator** | `action/lib/validator.js` | 配置校验 |
|
|
1037
|
+
| **Downloader** | `action/lib/downloader.js` | NPM/GitHub 下载 |
|
|
1038
|
+
| **Setup** | `action/lib/setup.js` | 运行时初始化 |
|
|
1039
|
+
|
|
1040
|
+
### Phase 2 已完成内容
|
|
1041
|
+
|
|
1042
|
+
| 命令 | 文件 | 说明 |
|
|
1043
|
+
|------|------|------|
|
|
1044
|
+
| **CLI 入口** | `cli/amazingteam.cjs` | 主入口,命令解析,帮助信息 |
|
|
1045
|
+
| **init** | `cli/commands/init.cjs` | 初始化项目,交互式提示 |
|
|
1046
|
+
| **version** | `cli/commands/version.cjs` | 显示版本信息 |
|
|
1047
|
+
| **check-update** | `cli/commands/check-update.cjs` | 检查更新 |
|
|
1048
|
+
| **upgrade** | `cli/commands/upgrade.cjs` | 升级到新版本 |
|
|
1049
|
+
| **local** | `cli/commands/local.cjs` | 下载 Foundation 到本地 |
|
|
1050
|
+
| **validate** | `cli/commands/validate.cjs` | 验证配置和结构 |
|
|
1051
|
+
| **migrate** | `cli/commands/migrate.cjs` | v2 迁移到 v3 |
|
|
1052
|
+
| **status** | `cli/commands/status.cjs` | 显示项目状态 |
|
|
1053
|
+
|
|
1054
|
+
### Phase 3 已完成内容
|
|
1055
|
+
|
|
1056
|
+
| 组件 | 文件 | 说明 |
|
|
1057
|
+
|------|------|------|
|
|
1058
|
+
| **Action Tests** | `action/__tests__/*.test.js` | Merger, PathResolver, Validator, Downloader 测试 |
|
|
1059
|
+
| **Merger Tests** | `action/__tests__/merger.test.js` | 深拷贝、配置合并、预设合并测试 |
|
|
1060
|
+
| **PathResolver Tests** | `action/__tests__/path-resolver.test.js` | 路径解析、内存目录、任务路径测试 |
|
|
1061
|
+
| **Validator Tests** | `action/__tests__/validator.test.js` | Schema 验证、类型检查、必填字段测试 |
|
|
1062
|
+
| **Downloader Tests** | `action/__tests__/downloader.test.js` | 缓存逻辑、重试机制、降级逻辑测试 |
|
|
1063
|
+
|
|
1064
|
+
### Phase 4 已完成内容
|
|
1065
|
+
|
|
1066
|
+
| 文档 | 文件 | 说明 |
|
|
1067
|
+
|------|------|------|
|
|
1068
|
+
| **Migration Guide** | `docs/migration-to-v3.md` | v2 到 v3 迁移指南,步骤和故障排除 |
|
|
1069
|
+
| **Config Reference** | `docs/config-reference.md` | 完整配置字段参考和示例 |
|
|
1070
|
+
| **Quick Start v3** | `docs/quick-start-v3.md` | v3 快速入门指南 |
|
|
1071
|
+
| **v3 Implementation Checklist** | `infra/v3-implementation-checklist.md` | 实施进度跟踪 |
|
|
1072
|
+
|
|
1073
|
+
### Phase 5 已完成内容
|
|
1074
|
+
|
|
1075
|
+
| 测试类型 | 文件 | 说明 |
|
|
1076
|
+
|---------|------|------|
|
|
1077
|
+
| **CLI Tests** | `cli/__tests__/cli.test.js` | CLI 命令测试:help, version, init, validate 等 |
|
|
1078
|
+
| **Integration Tests** | `tests/integration.test.js` | 完整工作流测试:init → local → validate |
|
|
1079
|
+
| **Error Tests** | `tests/error-scenarios.test.js` | 错误场景测试:无效配置、网络失败、目录缺失 |
|
|
1080
|
+
| **Overlay Tests** | `tests/overlay.test.js` | Overlay 测试:python-backend, web-fullstack, cpp-qt |
|
|
1081
|
+
| **Unit Tests** | `action/__tests__/*.test.js` | 模块单元测试(Phase 3 完成) |
|
|
1082
|
+
|
|
1083
|
+
### Phase 6 已完成内容
|
|
1084
|
+
|
|
1085
|
+
| 任务 | 说明 |
|
|
1086
|
+
|------|------|
|
|
1087
|
+
| **VERSION 更新** | 更新到 `3.0.0` |
|
|
1088
|
+
| **package.json 更新** | 版本号更新到 `3.0.0` |
|
|
1089
|
+
| **CHANGELOG.md 更新** | 添加 v3.0.0 完整变更记录 |
|
|
1090
|
+
| **Git Tag** | 待创建 `v3.0.0` |
|
|
1091
|
+
| **NPM 发布** | 待发布 |
|
|
1092
|
+
| **GitHub Release** | 待创建 |
|
|
1093
|
+
|
|
1094
|
+
### 相关文档
|
|
1095
|
+
|
|
1096
|
+
- [设计文档](./infra/remote_foundation_loading_design.md)
|
|
1097
|
+
- [评审报告](./infra/remote_foundation_loading_review.md)
|
|
1098
|
+
- [实施清单](./infra/v3-implementation-checklist.md)
|
|
1099
|
+
- [快速开始指南](./docs/quick-start-v3.md)
|
|
1100
|
+
|
|
1101
|
+
## 版本历史
|
|
1102
|
+
|
|
1103
|
+
### v3.0.0 - 远程加载 ✅ 已发布
|
|
1104
|
+
|
|
1105
|
+
**新增:**
|
|
1106
|
+
- 远程加载:Foundation 作为 NPM 包/ GitHub Release 加载,无需提交到项目
|
|
1107
|
+
- GitHub Action:`amazingteam-action` 自动下载和配置 Foundation
|
|
1108
|
+
- CLI 工具:完整的命令行工具(init, version, upgrade, local, validate, migrate, status)
|
|
1109
|
+
- 配置预设:TypeScript、Python、Go 等语言预设
|
|
1110
|
+
- JSON Schema:配置文件校验
|
|
1111
|
+
- 完整测试套件:单元测试、集成测试、错误场景测试
|
|
1112
|
+
|
|
1113
|
+
**用户项目变化:**
|
|
1114
|
+
- 从 50+ 文件减少到 3-5 个配置文件
|
|
1115
|
+
- Foundation 通过 workflow 引用,不占用项目空间
|
|
1116
|
+
- 升级只需改版本号或运行命令
|
|
1117
|
+
|
|
1118
|
+
**迁移指南:** 见 [docs/migration-to-v3.md](./docs/migration-to-v3.md)
|
|
1119
|
+
|
|
1120
|
+
### v2.2.0 - 阻塞处理机制
|
|
1121
|
+
|
|
1122
|
+
**新增:**
|
|
1123
|
+
- 阻塞处理流程:工作流遇到问题时自动诊断和处理
|
|
1124
|
+
- `/resume` 命令:阻塞解决后恢复工作流
|
|
1125
|
+
- CI Analyst 角色增强:阻塞诊断和分类
|
|
1126
|
+
- 自动修复:简单问题现场修复
|
|
1127
|
+
- Sub-issue 阻塞处理:复杂问题创建子 Issue 解决
|
|
1128
|
+
- 人工通知:需要人类介入时自动通知
|
|
1129
|
+
|
|
1130
|
+
**阻塞处理流程:**
|
|
1131
|
+
|
|
1132
|
+
```
|
|
1133
|
+
工作流执行中 → 遇到问题 → CI Analyst 诊断
|
|
1134
|
+
│
|
|
1135
|
+
┌───────────────┼───────────────┐
|
|
1136
|
+
↓ ↓ ↓
|
|
1137
|
+
简单问题 中等复杂度 需要人类
|
|
1138
|
+
│ │ │
|
|
1139
|
+
↓ ↓ ↓
|
|
1140
|
+
自动修复 创建子Issue 创建子Issue
|
|
1141
|
+
│ AI解决 通知人类
|
|
1142
|
+
│ │ 等待/resume
|
|
1143
|
+
└───────────────┴───────────────┘
|
|
1144
|
+
│
|
|
1145
|
+
↓
|
|
1146
|
+
恢复原工作流
|
|
1147
|
+
```
|
|
1148
|
+
|
|
1149
|
+
**阻塞分类决策:**
|
|
1150
|
+
|
|
1151
|
+
| 因素 | 低 | 中 | 高 |
|
|
1152
|
+
|------|----|----|-----|
|
|
1153
|
+
| 复杂度 | 自动修复 | Sub-issue (AI) | 通知人类 |
|
|
1154
|
+
| 风险 | 自动修复 | Sub-issue (AI) | 通知人类 |
|
|
1155
|
+
| 权限 | Sub-issue (AI) | 通知人类 | 通知人类 |
|
|
1156
|
+
|
|
1157
|
+
### v2.1.0 - 全自动工作流
|
|
1158
|
+
|
|
1159
|
+
**新增:**
|
|
1160
|
+
- `/auto` 命令:一条命令完成 Triage → Design → Implement → Test → Create PR 全流程
|
|
1161
|
+
- 自动 GitHub Sub-issue 创建:复杂任务自动分解为子 Issue
|
|
1162
|
+
- 依赖调度:自动处理子任务依赖关系,按序执行
|
|
1163
|
+
- Git 身份配置:`opencode-bot` 作为自动化提交的默认身份
|
|
1164
|
+
|
|
1165
|
+
**改进:**
|
|
1166
|
+
- 工作流优化:Planner 作为协调者调度各角色,而非自己执行
|
|
1167
|
+
- 无需人工确认:Triage 后自动执行,无需用户确认
|
|
1168
|
+
- GitHub Actions 权限:增加 `contents: write`、`pull-requests: write` 支持 PR 创建
|
|
1169
|
+
- 开发者角色:明确 PR 创建规则,禁止直接提交到 main
|
|
1170
|
+
|
|
1171
|
+
**工作流程:**
|
|
1172
|
+
|
|
1173
|
+
```
|
|
1174
|
+
/oc /auto
|
|
1175
|
+
│
|
|
1176
|
+
▼
|
|
1177
|
+
┌─────────────────────────────────────────────────────────┐
|
|
1178
|
+
│ Triage → (Decompose?) → Design → Implement → Test → PR │
|
|
1179
|
+
└─────────────────────────────────────────────────────────┘
|
|
1180
|
+
│
|
|
1181
|
+
▼
|
|
1182
|
+
Human Review & Merge
|
|
1183
|
+
```
|
|
1184
|
+
|
|
1185
|
+
**依赖处理:**
|
|
1186
|
+
|
|
1187
|
+
```
|
|
1188
|
+
Parent Issue #120
|
|
1189
|
+
├── Sub-issue #201 (architect) → PR merged
|
|
1190
|
+
│ ↓
|
|
1191
|
+
├── Sub-issue #202 (developer) → wait for #201
|
|
1192
|
+
│ ↓
|
|
1193
|
+
└── Sub-issue #203 (qa) → wait for #202
|
|
1194
|
+
```
|
|
1195
|
+
|
|
1196
|
+
### v2.0.0 - GitHub Issue 编排
|
|
1197
|
+
|
|
1198
|
+
**新增:**
|
|
1199
|
+
- Planner 角色增强:支持 GitHub Issue 分解和编排
|
|
1200
|
+
- `/breakdown-issue` 命令:分解大任务为子 Issue
|
|
1201
|
+
- `/dispatch-next` 命令:派发下一个子任务
|
|
1202
|
+
- `/show-blockers` 命令:显示阻塞任务
|
|
1203
|
+
- `/summarize-parent` 命令:汇总父任务进度
|
|
1204
|
+
- `/close-parent-task` 命令:验证并关闭父任务
|
|
1205
|
+
- task.yaml 增强:支持 `github_issue`、`parent_task`、`subtasks` 字段
|
|
1206
|
+
- Agent 文件结构优化:分离入口文件和行为规范
|
|
1207
|
+
|
|
1208
|
+
**改进:**
|
|
1209
|
+
- Triage 命令增强:增加分解决策
|
|
1210
|
+
- 工作流程更新:大任务分解后再派发
|
|
1211
|
+
- 升级流程优化:保护自定义行为
|
|
1212
|
+
|
|
1213
|
+
## License
|
|
1214
|
+
|
|
1215
|
+
MIT
|