jarvis-agent-factory 4.7.74 → 4.7.76
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/dist/package.json +1 -1
- package/dist/src/templates/platforms/claude/agents/skill-assignment-expert.md +46 -27
- package/dist/src/templates/platforms/claude/commands/auto.md +19 -0
- package/dist/src/templates/platforms/claude/commands/cancel.md +3 -4
- package/dist/src/templates/platforms/claude/commands/jarvis.md +29 -0
- package/dist/src/templates/platforms/claude/skills/jarvis-reference/SKILL.md +1 -2
- package/dist/web/guide.html +3 -5
- package/package.json +1 -1
- package/dist/src/templates/platforms/claude/commands/mobile.md +0 -231
package/dist/package.json
CHANGED
|
@@ -21,7 +21,7 @@ effort: max
|
|
|
21
21
|
2. 读取 Gate B 产出的任务文档(`.jarvis/YYYY-MM-DD/tasks/` 下的任务文档)
|
|
22
22
|
3. 读取 Gate C 产出的规划文档(`.jarvis/YYYY-MM-DD/plans/` 下的规划文档)
|
|
23
23
|
4. 分析每个子 Agent 的任务类型、领域、风险等级
|
|
24
|
-
5. 为每个子 Agent 输出必须加载的
|
|
24
|
+
5. 为每个子 Agent 输出必须加载的 `Skill(skill="skill-name")` 清单
|
|
25
25
|
6. 产出标准化技能分配文档,供编排者直接消费
|
|
26
26
|
|
|
27
27
|
## 你不负责
|
|
@@ -83,86 +83,105 @@ Skill(skill="behavioral-guidelines")
|
|
|
83
83
|
### task_id: TASK-XXX | subagent: <agent-name>
|
|
84
84
|
**任务类型**:<前端实现/后端实现/架构设计/测试/审查/安全审计/浏览器测试/...>
|
|
85
85
|
**风险等级**:<低/中/高>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
86
|
+
**模板已有**:<列出该 Agent 模板已硬编码的技能>
|
|
87
|
+
**额外加载**(编排者注入 Agent prompt):
|
|
88
|
+
- Skill(skill="<skill-name-1>") — <为什么需要>
|
|
89
|
+
- Skill(skill="<skill-name-2>") — <为什么需要>
|
|
90
90
|
|
|
91
91
|
### task_id: TASK-YYY | subagent: <agent-name>
|
|
92
92
|
...
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
>
|
|
95
|
+
> 注意:`Skill(skill="behavioral-guidelines")` 是所有 Agent 模板已硬编码的基座技能,由编排者在 prompt 中自动追加,不列入分配清单。
|
|
96
96
|
|
|
97
97
|
## 分配逻辑
|
|
98
98
|
|
|
99
99
|
根据任务类型、领域、风险等级,按以下规则分配技能:
|
|
100
100
|
|
|
101
|
+
## Agent 模板已有技能速查(避免重复推荐)
|
|
102
|
+
|
|
103
|
+
以下技能已由各 Agent 模板硬编码,**不列入分配清单**:
|
|
104
|
+
|
|
105
|
+
| Agent 类别 | 模板已硬编码的技能 | 说明 |
|
|
106
|
+
|-----------|------------------|------|
|
|
107
|
+
| 所有 Agent | `behavioral-guidelines` | 编排者自动追加,所有 Agent 启动必加载 |
|
|
108
|
+
| 实现类(dev/ui/state) | `code-standards` | 模板中已写死 `Skill(skill="code-standards")` |
|
|
109
|
+
| 实现类(dev/ui/state) | `source-driven-development` | 模板条件表:"开始修改任何代码前" |
|
|
110
|
+
| 实现类(dev/ui/state) | `incremental-implementation` | 模板条件表:"拆分实现步骤时" |
|
|
111
|
+
| 实现类(dev/ui/state) | `verification-before-completion` | 模板条件表:"交付前自检" |
|
|
112
|
+
| 审查类(review) | `code-review-and-quality` | 审查 Agent 模板自带 |
|
|
113
|
+
| 测试类(test) | `code-standards` | 测试 Agent 模板自带 |
|
|
114
|
+
| 架构类(architect) | `documentation-and-adrs`、`source-driven-development` | 模板条件表已有 |
|
|
115
|
+
|
|
116
|
+
**本 Agent 只推荐模板没有的技能**:项目专属 Skill、高风险场景额外防御性 Skill(如 `security-and-hardening`、`debugging-and-error-recovery`、`browser-testing`)。
|
|
117
|
+
|
|
118
|
+
> 实现基础四件(source-driven/incremental/code-standards/verification-before-completion)**不应列入分配清单**——模板已覆盖。
|
|
119
|
+
|
|
101
120
|
### 基础实现类任务
|
|
102
121
|
|
|
103
122
|
所有代码实现任务(前端/后端/移动端实现)必须加载:
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
123
|
+
- `Skill(skill="source-driven-development")`
|
|
124
|
+
- `Skill(skill="incremental-implementation")`
|
|
125
|
+
- `Skill(skill="code-standards")`
|
|
126
|
+
- `Skill(skill="verification-before-completion")`
|
|
108
127
|
|
|
109
128
|
### TDD 任务
|
|
110
129
|
|
|
111
130
|
若任务 `test_strategy` 为 `tdd`,额外追加:
|
|
112
|
-
-
|
|
131
|
+
- `Skill(skill="test-driven-development")`
|
|
113
132
|
|
|
114
133
|
### DDD 任务
|
|
115
134
|
|
|
116
135
|
若任务标记为 DDD(聚合根建模、状态流转、跨聚合交互),额外追加:
|
|
117
|
-
-
|
|
136
|
+
- `Skill(skill="documentation-and-adrs")`
|
|
118
137
|
|
|
119
138
|
### 浏览器测试任务
|
|
120
139
|
|
|
121
140
|
涉及浏览器自动化、E2E 测试、UI 快照的任务:
|
|
122
|
-
-
|
|
123
|
-
-
|
|
141
|
+
- `Skill(skill="browser-testing")`(browser-test-expert 需加载)
|
|
142
|
+
- `Skill(skill="browser-testing")`
|
|
124
143
|
|
|
125
144
|
### 安全审计/加固任务
|
|
126
145
|
|
|
127
146
|
涉及安全审查、漏洞扫描、鉴权模块的任务:
|
|
128
|
-
-
|
|
147
|
+
- `Skill(skill="security-and-hardening")`
|
|
129
148
|
|
|
130
149
|
### 代码审查任务
|
|
131
150
|
|
|
132
151
|
任何审查类子 Agent(diff-review、qa-review、项目审计等):
|
|
133
|
-
-
|
|
152
|
+
- `Skill(skill="code-review-and-quality")`
|
|
134
153
|
|
|
135
154
|
### 调试/修复任务
|
|
136
155
|
|
|
137
156
|
Bug 修复、问题排查、错误恢复任务:
|
|
138
|
-
-
|
|
157
|
+
- `Skill(skill="debugging-and-error-recovery")`
|
|
139
158
|
|
|
140
159
|
### 架构设计任务
|
|
141
160
|
|
|
142
161
|
技术选型、架构方案设计任务:
|
|
143
|
-
-
|
|
144
|
-
-
|
|
162
|
+
- `Skill(skill="documentation-and-adrs")`
|
|
163
|
+
- `Skill(skill="source-driven-development")`
|
|
145
164
|
|
|
146
165
|
### 前端 UI 任务
|
|
147
166
|
|
|
148
167
|
涉及页面设计、组件视觉实现:
|
|
149
|
-
-
|
|
168
|
+
- `Skill(skill="frontend-design")`
|
|
150
169
|
|
|
151
170
|
### 代码质量门任务
|
|
152
171
|
|
|
153
172
|
Lint/Type-check/Build 检查相关:
|
|
154
|
-
-
|
|
173
|
+
- `Skill(skill="code-quality-gate")`
|
|
155
174
|
|
|
156
175
|
### 轻量/增量子任务
|
|
157
176
|
|
|
158
|
-
简单修改、小范围变更可省略
|
|
177
|
+
简单修改、小范围变更可省略 `Skill(skill="incremental-implementation")`,但仍需保留 `Skill(skill="source-driven-development")` 和 `Skill(skill="verification-before-completion")`。
|
|
159
178
|
|
|
160
179
|
## 分配优先级与冲突处理
|
|
161
180
|
|
|
162
|
-
1.
|
|
163
|
-
2.
|
|
181
|
+
1. **基座技能**(`Skill(skill="behavioral-guidelines")`)由编排者自动追加,不重复列出
|
|
182
|
+
2. **实现基础四件**(`Skill(skill="source-driven-development")` `Skill(skill="incremental-implementation")` `Skill(skill="code-standards")` `Skill(skill="verification-before-completion")`)是所有实现任务的默认项
|
|
164
183
|
3. **场景技能**按任务类型叠加,同一技能不重复列出
|
|
165
|
-
4. **高风险任务**应额外补充相关防御性技能(如
|
|
184
|
+
4. **高风险任务**应额外补充相关防御性技能(如 `Skill(skill="debugging-and-error-recovery")`、`Skill(skill="code-simplification")`)
|
|
166
185
|
5. 若编排者传入的自定义技能清单中包含项目专属技能,也应按照任务类型匹配分配
|
|
167
186
|
|
|
168
187
|
## 反合理化表
|
|
@@ -170,7 +189,7 @@ Lint/Type-check/Build 检查相关:
|
|
|
170
189
|
| 合理化借口 | 现实 |
|
|
171
190
|
|-----------|------|
|
|
172
191
|
| "所有任务都加全量技能就行,不用分析" | 技能不是越多越好。无关技能浪费上下文窗口,降低子 Agent 执行质量。 |
|
|
173
|
-
| "这个任务很简单,基础技能就够了" | 简单任务也需要
|
|
192
|
+
| "这个任务很简单,基础技能就够了" | 简单任务也需要 `Skill(skill="source-driven-development")` 和 `Skill(skill="verification-before-completion")`。省略等于埋坑。 |
|
|
174
193
|
| "分配逻辑很清晰,不需要看任务文档" | 不看文档 = 你不知道任务具体做什么。必须逐任务分析。 |
|
|
175
194
|
| "技能清单我没收到完整版,凭印象分配" | 技能清单可能新增或删除。必须用编排者传入的明确清单,不准凭记忆。 |
|
|
176
195
|
|
|
@@ -180,7 +199,7 @@ Lint/Type-check/Build 检查相关:
|
|
|
180
199
|
- [ ] 每个技能均来自编排者传入的可用技能清单
|
|
181
200
|
- [ ] 分配逻辑符合本模板定义的规则
|
|
182
201
|
- [ ] 技能分配文档已写入 `.jarvis/YYYY-MM-DD/skills/skill-assignment.md`
|
|
183
|
-
- [ ] 文档中未重复列出
|
|
202
|
+
- [ ] 文档中未重复列出 `Skill(skill="behavioral-guidelines")`
|
|
184
203
|
|
|
185
204
|
## 红线
|
|
186
205
|
|
|
@@ -155,6 +155,25 @@ mcp__jarvis-engine__session_join({
|
|
|
155
155
|
| 中(3-10文件) | Subagent 并行 ×2-3 | 同发 2-3 个 |
|
|
156
156
|
| 大(>10文件或跨≥3目录) | **Team 模式** | TeamCreate → 按模块分配 |
|
|
157
157
|
|
|
158
|
+
### required_skills 注入
|
|
159
|
+
|
|
160
|
+
编排者读取 skill-assignment 文档 → 复制 `Skill(skill="...")` 指令 → 粘贴到 Agent() prompt 中:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Agent({
|
|
164
|
+
...
|
|
165
|
+
prompt: `
|
|
166
|
+
## 额外技能
|
|
167
|
+
Skill(skill="<从skill-assignment文档复制>")
|
|
168
|
+
|
|
169
|
+
## 任务
|
|
170
|
+
...
|
|
171
|
+
`
|
|
172
|
+
})
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
> 只注入 skill-assignment 文档中的 "额外加载" 项。模板已有的通用技能不重复注入。
|
|
176
|
+
|
|
158
177
|
### Gate C1:代码质量门
|
|
159
178
|
|
|
160
179
|
Lint → Type-check → Build → Deps Audit,全部通过后推进。
|
|
@@ -119,7 +119,7 @@ mcp__jarvis-engine__pipeline_status()
|
|
|
119
119
|
|
|
120
120
|
## 中断各指令全表
|
|
121
121
|
|
|
122
|
-
以下表格定义 `/cancel` 对全部
|
|
122
|
+
以下表格定义 `/cancel` 对全部 43 条指令的中断行为。所有指令均通过 `session_join` 注册引擎会话,`/cancel` 统一调用 `pipeline_cancel` 清理。
|
|
123
123
|
|
|
124
124
|
### 编排入口(2条)
|
|
125
125
|
|
|
@@ -128,13 +128,12 @@ mcp__jarvis-engine__pipeline_status()
|
|
|
128
128
|
| `/jarvis` | pipeline_run + Gate 进度 + Agent spawn | `pipeline_cancel` — run→aborted, 清除 resume 数据 | 当前 Gate 进度丢失,已产出文档保留在 `.jarvis/` | 重启 `/jarvis` 新建 run |
|
|
129
129
|
| `/auto` | 路由检测→pipeline_run + Gate 进度 | `pipeline_cancel` — 路由到的流水线 run→aborted | 同上,按路由结果清理 | 重启 `/auto` 重新路由 |
|
|
130
130
|
|
|
131
|
-
### 平台开发(
|
|
131
|
+
### 平台开发(11条)
|
|
132
132
|
|
|
133
133
|
| 指令 | 活跃状态 | Cancel 清理 | 中断影响 | 恢复 |
|
|
134
134
|
|------|---------|------------|---------|------|
|
|
135
135
|
| `/frontend` | pipeline_run + Gate A→E | `pipeline_cancel` | C1.5 视觉验证中途取消则截图丢失 | 重启 `/frontend` |
|
|
136
136
|
| `/backend` | pipeline_run + Gate A→E(跳过 C1.5) | `pipeline_cancel` | 数据库 schema 变更如已执行不可回滚 | 重启 `/backend` |
|
|
137
|
-
| `/mobile --platform=X` | pipeline_run + 平台 Agent spawn | `pipeline_cancel` | C1.5 模拟器截图丢失,需重新获取 | 重启 `/mobile --platform=X` |
|
|
138
137
|
| `/flutter` | 活跃流水线 | Gate C-impl→Archived | 调用 `session_leave`,活跃 run abort | 重启 `/flutter` |
|
|
139
138
|
| `/expo` | 活跃流水线 | Gate C-impl→Archived | 调用 `session_leave`,活跃 run abort | 重启 `/expo` |
|
|
140
139
|
| `/swift` | 活跃流水线 | Gate C-impl→Archived | 调用 `session_leave`,活跃 run abort | 重启 `/swift` |
|
|
@@ -215,7 +214,7 @@ mcp__jarvis-engine__pipeline_status()
|
|
|
215
214
|
| 指令类别 | 数量 | Cancel 安全性 | 备注 |
|
|
216
215
|
|---------|------|-------------|------|
|
|
217
216
|
| 编排入口 | 2 | 安全(文档保留) | 已产出 `.jarvis/` 文档不受影响 |
|
|
218
|
-
| 平台开发 |
|
|
217
|
+
| 平台开发 | 11 | 安全(文档保留) | C1.5 截图需重新获取 |
|
|
219
218
|
| 维护流程 | 5 | 中等(代码部分保留) | 建议 `git diff` 检查改动 |
|
|
220
219
|
| 测试 | 5 | 安全(代码未变更) | 仅测试结果丢失 |
|
|
221
220
|
| 审查 | 2 | 安全(review-only 只读) / 中等(review-fix 代码保留) | — |
|
|
@@ -200,6 +200,35 @@ Read 打开 `.jarvis/YYYY-MM-DD/plans/<topic>-plan.md`
|
|
|
200
200
|
- `input_documents`
|
|
201
201
|
- `escalation_rule`:需变更共享区域时先提交 plan patch
|
|
202
202
|
|
|
203
|
+
### required_skills 注入模板
|
|
204
|
+
|
|
205
|
+
编排者从 skill-assignment 文档读取每个子 Agent 的 "额外加载" 列表,直接复制 `Skill(skill="...")` 指令到 Agent() 的 prompt 参数中:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
Agent({
|
|
209
|
+
subagent_type: "backend-api-expert",
|
|
210
|
+
description: "实现用户登录API",
|
|
211
|
+
prompt: `
|
|
212
|
+
你的任务:实现用户登录 API 路由。
|
|
213
|
+
|
|
214
|
+
## 启动后执行
|
|
215
|
+
Skill(skill="behavioral-guidelines")
|
|
216
|
+
|
|
217
|
+
## 额外技能(来自 skill-assignment-expert 分配)
|
|
218
|
+
Skill(skill="security-and-hardening")
|
|
219
|
+
Skill(skill="my-project-auth-skill")
|
|
220
|
+
|
|
221
|
+
## 任务
|
|
222
|
+
...
|
|
223
|
+
|
|
224
|
+
## 完成后执行
|
|
225
|
+
Skill(skill="verification-before-completion")
|
|
226
|
+
`
|
|
227
|
+
})
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
> 🔴 模板已有技能(behavioral-guidelines/code-standards/source-driven-development/incremental-implementation/verification-before-completion)已由 Agent 模板自动处理,不需要在 prompt 中重复。只注入 skill-assignment 文档中 "额外加载" 列出的 Skill。
|
|
231
|
+
|
|
203
232
|
**Agent 类型速查**:
|
|
204
233
|
| 领域 | subagent_type |
|
|
205
234
|
|------|--------------|
|
|
@@ -150,12 +150,11 @@ Jarvis Agent Factory 完整能力索引。Agent 和编排者启动时加载此
|
|
|
150
150
|
| `/jarvis` | full(12 Gate) | 全流程严格模式,适合中大型功能开发 |
|
|
151
151
|
| `/auto` | 智能路由 | 自动检测→选最优流水线→跳过无关Gate。**日常默认入口** |
|
|
152
152
|
|
|
153
|
-
### 平台开发(
|
|
153
|
+
### 平台开发(2)
|
|
154
154
|
|
|
155
155
|
| 命令 | 平台 |
|
|
156
156
|
|------|------|
|
|
157
157
|
| `/frontend` `/backend` | Web 全栈 |
|
|
158
|
-
| `/mobile --platform=android\|ios\|flutter\|expo\|react-native\|taro` | 移动端/跨端统一入口 |
|
|
159
158
|
|
|
160
159
|
### 需求与设计(3)
|
|
161
160
|
|
package/dist/web/guide.html
CHANGED
|
@@ -314,7 +314,6 @@
|
|
|
314
314
|
<tr><td class="cmd">/frontend</td><td>frontend</td><td class="gates">同上,C1.5 视觉验证强制,前端专属 Agent</td><td>13</td><td>前端开发,React/Vue/Angular</td></tr>
|
|
315
315
|
<tr><td class="cmd">/backend</td><td>backend</td><td class="gates">跳过 C1.5,后端专属 Agent</td><td>11</td><td>后端开发,API/数据库/业务逻辑</td></tr>
|
|
316
316
|
<tr><td class="cmd">/auto</td><td>auto</td><td class="gates">支持 gate_jump 跳过无关 Gate,智能路由</td><td>13</td><td>日常默认入口,99% 情况用它</td></tr>
|
|
317
|
-
<tr class="deprecated"><td class="cmd">/mobile <span class="tag tag-red">已废弃</span></td><td>frontend</td><td class="gates">同上,平台感知 Agent 选择(6 平台)</td><td>13</td><td>移动端/跨端开发 — 已拆分为独立框架命令</td></tr>
|
|
318
317
|
<tr><td class="cmd">/refactor</td><td>refactor</td><td class="gates">R1(边界)→R2(基线)→R3(重构)→R4(漂移检测)→R5(报告)</td><td>5</td><td>代码重构,失败自动回滚</td></tr>
|
|
319
318
|
<tr><td class="cmd">/hotfix</td><td>hotfix</td><td class="gates">H0(声明+审批)→H1(最小修复)→H2(验证+回滚)→H3(审计)</td><td>4</td><td>紧急故障恢复</td></tr>
|
|
320
319
|
<tr><td class="cmd">/migrate</td><td>migrate</td><td class="gates">M1(规则)→M2(迁移)→M3(编译)→M4(Lint修复)</td><td>4</td><td>框架升级、依赖替换</td></tr>
|
|
@@ -329,7 +328,7 @@
|
|
|
329
328
|
</table>
|
|
330
329
|
|
|
331
330
|
<!-- ═══════════════════════════════════════ 6. COMMANDS -->
|
|
332
|
-
<h2 id="commands">六、全部
|
|
331
|
+
<h2 id="commands">六、全部 43 条指令</h2>
|
|
333
332
|
|
|
334
333
|
<h3>编排入口(2 条)</h3>
|
|
335
334
|
<div class="cmd-grid">
|
|
@@ -345,11 +344,10 @@
|
|
|
345
344
|
</div>
|
|
346
345
|
</div>
|
|
347
346
|
|
|
348
|
-
<h3>平台开发(
|
|
347
|
+
<h3>平台开发(11 条)</h3>
|
|
349
348
|
<div class="cmd-grid">
|
|
350
349
|
<div class="cmd-card"><div class="cmd-name">/frontend</div><div class="cmd-desc">前端开发 — C1.5 视觉验证强制。使用 frontend 专属 Agent 组。</div><div class="cmd-pipe">流水线:frontend(13 Gate)</div></div>
|
|
351
350
|
<div class="cmd-card"><div class="cmd-name">/backend</div><div class="cmd-desc">后端开发 — 跳过 C1.5。使用 backend + database-architect 专属 Agent 组。</div><div class="cmd-pipe">流水线:backend(11 Gate)</div></div>
|
|
352
|
-
<div class="cmd-card deprecated"><div class="cmd-name">/mobile --platform=<name> <span class="tag tag-red">已废弃</span></div><div class="cmd-desc">移动端/跨端统一入口 — 已拆分为独立框架命令(/flutter /expo /swift /kotlin /taro /miniprogram /uni-app 等),请使用具体框架命令。</div><div class="cmd-pipe">流水线:frontend 变体(平台感知)· 不再推荐使用</div></div>
|
|
353
351
|
<div class="cmd-card"><div class="cmd-name">/flutter</div><div class="cmd-desc">Flutter 跨端移动端开发 — 使用 flutter-dev/ui/state/test/review-expert + mobile-architect。</div><div class="cmd-pipe">流水线:frontend(13 Gate)</div></div>
|
|
354
352
|
<div class="cmd-card"><div class="cmd-name">/expo</div><div class="cmd-desc">Expo/React Native 跨端移动端开发 — 使用 expo-dev/ui/state/test/review-expert + mobile-architect。</div><div class="cmd-pipe">流水线:frontend(13 Gate)</div></div>
|
|
355
353
|
<div class="cmd-card"><div class="cmd-name">/swift</div><div class="cmd-desc">Swift/SwiftUI iOS 原生开发 — 使用 swift-dev/ui/state/test/review-expert + mobile-architect。</div><div class="cmd-pipe">流水线:frontend(13 Gate)</div></div>
|
|
@@ -465,7 +463,7 @@
|
|
|
465
463
|
<div class="scenario-card"><h4>✨ 新功能开发</h4><p>日常用 <code>/auto</code>,中大型用 <code>/jarvis</code>(严格 13 Gate)。</p></div>
|
|
466
464
|
<div class="scenario-card"><h4>🖥️ 前端页面</h4><p><code>/frontend</code>,C1.5 视觉验证强制,spawn frontend-dev/ui/state-expert。</p></div>
|
|
467
465
|
<div class="scenario-card"><h4>🔧 后端 API</h4><p><code>/backend</code>,跳过 C1.5,spawn backend-dev/api/logic/data + database-architect。</p></div>
|
|
468
|
-
<div class="scenario-card"><h4>📱 移动端/跨端</h4><p>直接使用对应框架命令:<code>/flutter</code> <code>/expo</code> <code>/swift</code> <code>/kotlin</code> <code>/taro</code> <code>/miniprogram</code> <code>/uni-app</code
|
|
466
|
+
<div class="scenario-card"><h4>📱 移动端/跨端</h4><p>直接使用对应框架命令:<code>/flutter</code> <code>/expo</code> <code>/swift</code> <code>/kotlin</code> <code>/taro</code> <code>/miniprogram</code> <code>/uni-app</code>。</p></div>
|
|
469
467
|
<div class="scenario-card"><h4>🔨 代码重构</h4><p><code>/refactor</code>(5 Gate 安全网),失败自动回滚。</p></div>
|
|
470
468
|
<div class="scenario-card"><h4>🚨 紧急修复</h4><p><code>/hotfix</code>(H0-H3 紧急协议),需要审批确认。</p></div>
|
|
471
469
|
<div class="scenario-card"><h4>🧹 代码清理</h4><p><code>/simplify</code>,消除冗余/死代码/过度抽象,失败自动回滚。</p></div>
|
package/package.json
CHANGED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 移动端开发生命周期——需求→任务→计划→实现→质量→测试→评审→发布,支持 6 平台
|
|
3
|
-
name: mobile
|
|
4
|
-
model: inherit
|
|
5
|
-
argument-hint: "[--platform android|ios|flutter|expo|react-native|taro] [需求描述]"
|
|
6
|
-
tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Skill", "Agent", "mcp__jarvis-engine__session_join", "mcp__jarvis-engine__pipeline_guide", "mcp__jarvis-engine__gate_check", "mcp__jarvis-engine__advance_gate", "mcp__jarvis-engine__gate_enforce"]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
> ⚠️ 已废弃 — 请使用框架专用指令:/flutter /expo /swift /kotlin /taro /miniprogram /uni-app /react /vue
|
|
10
|
-
|
|
11
|
-
# 移动端开发生命周期
|
|
12
|
-
|
|
13
|
-
> 统一移动端编排器。通过 `--platform` 参数切换到目标平台。
|
|
14
|
-
|
|
15
|
-
## 平台配置表
|
|
16
|
-
|
|
17
|
-
从用户输入或项目结构自动检测平台,无法确定时询问。以下表格定义了所有平台差异:
|
|
18
|
-
|
|
19
|
-
| 项目 | Android | iOS | Flutter | Expo | React Native | Taro |
|
|
20
|
-
|------|---------|-----|---------|------|-------------|------|
|
|
21
|
-
| **类型** | 原生 | 原生 | 跨端 | 跨端 | 跨端 | 跨端 |
|
|
22
|
-
| **语言** | Kotlin | Swift | Dart | TypeScript/JS | TypeScript/JS | TypeScript/JS |
|
|
23
|
-
| **UI 框架** | Compose/Material3 | SwiftUI/HIG | Widget/主题 | RN 组件/Expo SDK | RN 组件 | Taro 组件 |
|
|
24
|
-
| **状态管理** | ViewModel/StateFlow | ObservableObject/SwiftData | Provider/Riverpod/BLoC | React state/zustand | React state/zustand | React state/zustand |
|
|
25
|
-
| **dev-expert** | kotlin-dev-expert | swift-dev-expert | flutter-dev-expert | expo-dev-expert | expo-dev-expert | taro-dev-expert |
|
|
26
|
-
| **ui-expert** | kotlin-ui-expert | swift-ui-expert | flutter-ui-expert | expo-ui-expert | expo-ui-expert | taro-ui-expert |
|
|
27
|
-
| **state-expert** | kotlin-state-expert | swift-state-expert | flutter-state-expert | expo-state-expert | expo-state-expert | taro-state-expert |
|
|
28
|
-
| **test-expert** | kotlin-test-expert | swift-test-expert | flutter-test-expert | expo-test-expert | expo-test-expert | taro-test-expert |
|
|
29
|
-
| **review-expert** | kotlin-review-expert | swift-review-expert | flutter-review-expert | expo-review-expert | expo-review-expert | taro-review-expert |
|
|
30
|
-
| **Lint 命令** | `./gradlew lint` | SwiftLint | `flutter analyze` | `npx eslint` | `npx eslint` | `npx eslint` |
|
|
31
|
-
| **编译检查** | `./gradlew compileDebugKotlin` | `xcodebuild -scheme <App> build` | `flutter build` | `npx tsc --noEmit` | `npx tsc --noEmit` | `npx tsc --noEmit` |
|
|
32
|
-
| **构建命令** | `./gradlew assembleDebug` | `xcodebuild archive` | `flutter build` | `npx expo build` | `npx react-native build` | `npx taro build` |
|
|
33
|
-
| **依赖审计** | `./gradlew dependencyUpdates` | Swift Package Manager | `flutter pub outdated` | `npm audit` | `npm audit` | `npm audit` |
|
|
34
|
-
| **单元测试工具** | JUnit5 + MockK | XCTest | `flutter test` | Jest + React Native Testing Library | Jest + React Native Testing Library | Jest |
|
|
35
|
-
| **UI 测试工具** | Compose Test Rule + Espresso | XCUITest | `flutter test` (widget) | Detox / Expo Test | Detox | miniprogram-simulate |
|
|
36
|
-
| **E2E 工具** | UIAutomator | XCUITest | `flutter drive` | Detox / Maestro | Detox | miniprogram-automator |
|
|
37
|
-
| **模拟器要求** | Android Emulator | iOS Simulator | iOS Sim/Android Emu | Expo Go / Sim | Metro + Sim | 微信开发者工具 |
|
|
38
|
-
| **发布渠道** | Google Play / 国内应用商店 | App Store / TestFlight | App Store + Google Play | EAS / Expo OTA | App Store + Google Play | 微信小程序后台 |
|
|
39
|
-
| **最低 SDK 假设** | minSdk 24 | iOS 16 | Dart 3.x | Expo SDK 52 | RN 0.76 | Taro 4.x |
|
|
40
|
-
| **Review 审查范围** | Compose架构/UI/状态/数据层/性能 | SwiftUI架构/Combine/数据层/性能 | Widget 树/状态/路由/性能 | RN 组件/状态/导航/性能 | RN 组件/状态/导航/性能 | Taro 组件/路由/性能 |
|
|
41
|
-
| **安全审计** | OWASP Mobile Top 10 | OWASP Mobile Top 10 | OWASP Mobile Top 10 | OWASP Mobile + Web | OWASP Mobile + Web | 微信安全规范 |
|
|
42
|
-
|
|
43
|
-
> **专用指令**:小程序和 uni-app 有独立命令 `/miniprogram` 和 `/uni-app`,此表不再重复展开。
|
|
44
|
-
|
|
45
|
-
## 步骤 0:加载技能 + 注册引擎
|
|
46
|
-
|
|
47
|
-
1. 加载基座技能:
|
|
48
|
-
- `Skill("behavioral-guidelines")`
|
|
49
|
-
- `Skill("using-agent-skills")`
|
|
50
|
-
- `Skill("frontend-design")`
|
|
51
|
-
- `Skill("idea-refine")`
|
|
52
|
-
- `Skill("context-engineering")`
|
|
53
|
-
|
|
54
|
-
2. 注册引擎会话(硬约束——引擎驱动全流程,不可绕过):
|
|
55
|
-
- `mcp__jarvis-engine__session_join({ platform: "claude", pipeline_type: "frontend" })`
|
|
56
|
-
- **每个 Gate 开始时**调用 `mcp__jarvis-engine__pipeline_guide()` 获取当前 Gate 上下文
|
|
57
|
-
- **生成 Agent 前**调用 `mcp__jarvis-engine__gate_check({ operation: "spawn_impl" })`
|
|
58
|
-
- **Gate C1 时**加载 `Skill("code-quality-gate")`,Lint/Type-check/Build 前调用 `gate_check`
|
|
59
|
-
- **每个 Gate 完成后**调用 `mcp__jarvis-engine__gate_enforce` 验证条件,通过后 `mcp__jarvis-engine__advance_gate`
|
|
60
|
-
- **Gate E 时**加载 `Skill("shipping-and-launch")`、`Skill("git-workflow-and-versioning")`、`Skill("finishing-a-development-branch")`
|
|
61
|
-
|
|
62
|
-
3. 判断需求是否适合流水线。参考平台配置表确认适合场景。
|
|
63
|
-
|
|
64
|
-
4. 你是 `${platform}` 开发编排者。职责:
|
|
65
|
-
- 澄清需求——至少确认 1 个关键假设(参考平台配置表的最低 SDK 假设)
|
|
66
|
-
- 模糊时加载 `idea-refine`;生成 `.jarvis/YYYY-MM-DD/requirements/` 带 `REQ-XXX`
|
|
67
|
-
- Gate A→B-DDD→B-BDD→B-TDD→B1→C→C-impl→C1→C1.5→C2→D→E 全链路,不可绕过
|
|
68
|
-
- 移动端任务可轻量化 B-DDD/B-BDD/B-TDD(单轮 DDD 分析即可)
|
|
69
|
-
- 通过 Gate C 后按 `parallel_batches` 批量 spawn 平台 Agent
|
|
70
|
-
- 代码注释语言:中文项目用中文注释
|
|
71
|
-
|
|
72
|
-
5. Plan Patch 机制:共享组件/模块/导航图/路由变更必须提交 plan patch。
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## 平台 Agent 路由
|
|
77
|
-
|
|
78
|
-
从平台配置表读取对应 Agent 名称。共享 Agent 固定如下:
|
|
79
|
-
|
|
80
|
-
| 层级 | subagent_type |
|
|
81
|
-
|------|--------------|
|
|
82
|
-
| 全栈实现 | `{platform}-dev-expert` |
|
|
83
|
-
| UI | `{platform}-ui-expert` |
|
|
84
|
-
| 状态 | `{platform}-state-expert` |
|
|
85
|
-
| 任务分解(复杂需求) | `task-design` |
|
|
86
|
-
| 平台测试 | `{platform}-test-expert` |
|
|
87
|
-
| 平台审查 | `{platform}-review-expert` |
|
|
88
|
-
| E2E 测试 | `e2e-test-expert` |
|
|
89
|
-
| 浏览器测试(Web 端) | `browser-test-expert`(Flutter/Expo/RN/Taro Web 模式) |
|
|
90
|
-
| 质量签核 | `qa-review-expert` |
|
|
91
|
-
| 性能审计 | `perf-review-expert` |
|
|
92
|
-
| 安全审计 | `security-review-expert` |
|
|
93
|
-
| 基础设施/CI | `infra-deploy-expert` |
|
|
94
|
-
| 只读探索(辅助) | `code-explore-expert`、`external-resource-expert` |
|
|
95
|
-
|
|
96
|
-
## Gate C:批量并行 spawn
|
|
97
|
-
|
|
98
|
-
致命错误:planner 返回后你自己去写代码。
|
|
99
|
-
|
|
100
|
-
1. Read `.jarvis/YYYY-MM-DD/plans/<topic>-plan.md`
|
|
101
|
-
2. 提取 `parallel_batches`
|
|
102
|
-
3. 每个任务 → 一个 `Agent()` 调用
|
|
103
|
-
4. 同 Batch 同一条消息批量发出
|
|
104
|
-
|
|
105
|
-
**典型 Batch 结构**:
|
|
106
|
-
```
|
|
107
|
-
Gate B-DDD/B-BDD/B-TDD: [task-design](复杂需求时触发,简单需求跳过)
|
|
108
|
-
Gate C-impl:
|
|
109
|
-
Batch 1: [{platform}-ui-expert, {platform}-state-expert] ← UI + 状态并行
|
|
110
|
-
Batch 2: [{platform}-dev-expert] ← 集成组装
|
|
111
|
-
Batch 3: [e2e-test-expert] ← E2E 测试
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Gate C1 代码质量
|
|
115
|
-
|
|
116
|
-
使用平台配置表中的 Lint/编译/构建/依赖审计命令。零 error 方可通过。
|
|
117
|
-
|
|
118
|
-
## Gate C1.5 视觉验证
|
|
119
|
-
|
|
120
|
-
**移动端任务必须过此门。** 条件:
|
|
121
|
-
- 模拟器/真机已启动(参考平台配置表的模拟器要求)
|
|
122
|
-
- 修改前/后对比截图已附
|
|
123
|
-
- 多屏幕尺寸截图已附(small/medium/large)
|
|
124
|
-
- 暗色模式截图(如支持)
|
|
125
|
-
- 无可见布局问题或 UI 异常
|
|
126
|
-
|
|
127
|
-
**不通过**:
|
|
128
|
-
1. **证据缺失** → 退回实现 Agent 补充截图
|
|
129
|
-
2. **UI 问题** → 诊断根因,修复源文件,重新截图验证
|
|
130
|
-
3. 最多 2 轮;仍不通过 → 标记 `BLOCKED`
|
|
131
|
-
|
|
132
|
-
## Gate C2 测试
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
全部实现 Batch 完成
|
|
136
|
-
→ Gate C1.5 视觉验证通过
|
|
137
|
-
→ 步骤 1:spawn {platform}-test-expert(单元测试:参考平台配置表)
|
|
138
|
-
→ 步骤 2:spawn e2e-test-expert(E2E 测试:参考平台配置表)
|
|
139
|
-
→ 全部通过,汇总 .jarvis/YYYY-MM-DD/testing/ → Gate C2 通过
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**测试失败回退**:最多 2 轮修复-重测循环;仍不通过 → 标记 `BLOCKED`
|
|
143
|
-
|
|
144
|
-
## Gate D:评审
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
[可并行] 3 个领域审查专家同时启动(spawn 前 gate_check("review")):
|
|
148
|
-
├── spawn {platform}-review-expert({platform} 代码审查:参考平台配置表审查范围)
|
|
149
|
-
├── spawn security-review-expert(安全审计:参考平台配置表安全审计项)
|
|
150
|
-
└── spawn perf-review-expert(性能审计)
|
|
151
|
-
|
|
152
|
-
全部通过后:
|
|
153
|
-
└── spawn qa-review-expert(综合签核:REQ追踪/文档/Gate条件,汇聚领域报告)
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**审查不通过回退**:最多 2 轮审查-修复-重审循环;仍不通过 → 标记 `ABORT`
|
|
157
|
-
|
|
158
|
-
## Gate E 发布
|
|
159
|
-
|
|
160
|
-
🔴 **前置——质量重检(不可跳过)**:Lint + Type-check + Build + Test 全部重跑通过
|
|
161
|
-
|
|
162
|
-
🔴 **文档同步(质量重检通过后,不可跳过)**:
|
|
163
|
-
- spawn `docs-engineer` 同步项目文档:
|
|
164
|
-
- AGENTS.md — Agent列表/统计数据
|
|
165
|
-
- README.md — 版本号/特性列表/统计数据
|
|
166
|
-
- CHANGELOG.md — 版本条目
|
|
167
|
-
- .jarvis/README.md — 迭代批次
|
|
168
|
-
- docs/flows/AGENTS.md — 文件引用
|
|
169
|
-
|
|
170
|
-
- 加载 `shipping-and-launch` 执行上线检查清单
|
|
171
|
-
- 参考平台配置表发布渠道完成分发
|
|
172
|
-
- 加载 `git-workflow-and-versioning` 更新版本号
|
|
173
|
-
- 上线后监控 30 分钟 → 加载 `finishing-a-development-branch` 归档
|
|
174
|
-
|
|
175
|
-
## 故障恢复
|
|
176
|
-
|
|
177
|
-
Agent 失败重试(最多 3 次)、Batch 部分失败仅重试失败任务、Gate 失败回退修复、会话检查点。
|
|
178
|
-
|
|
179
|
-
向用户确认已进入 `${platform}` 开发生命周期模式。
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
## Team 编排增强(大任务优化)
|
|
183
|
-
|
|
184
|
-
当任务涉及 >10 个文件或跨模块变更时,优先使用 Team 模式:
|
|
185
|
-
|
|
186
|
-
### Gate C-impl: Team 并行实现
|
|
187
|
-
```
|
|
188
|
-
1. 调用 TeamCreate({ team_name: "{task}-impl" })
|
|
189
|
-
2. 按 parallel_batches 分组,每组 spawn Agent(team_name="...", name="...", subagent_type="...")
|
|
190
|
-
3. 每个 Team 成员分配独占文件/模块,无重叠
|
|
191
|
-
4. 全部完成后 → Agent 子任务自动 resolved
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Gate C2: Team 并行测试
|
|
195
|
-
```
|
|
196
|
-
1. 调用 TeamCreate({ team_name: "{task}-test" })
|
|
197
|
-
2. 按测试类型并行:单元测试 Agent + 集成测试 Agent + E2E 测试 Agent
|
|
198
|
-
3. 每个 Agent 负责独立测试文件,无重叠
|
|
199
|
-
4. 全部通过后 → qa-review-expert 综合签核
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### Gate D: Team 并行审查
|
|
203
|
-
```
|
|
204
|
-
1. 调用 TeamCreate({ team_name: "{task}-review" })
|
|
205
|
-
2. 按审查领域并行:安全 + 性能 + 平台审查 + QA
|
|
206
|
-
3. 每个审查者独立评审,产出分级报告
|
|
207
|
-
4. 全部通过后 → 调用 TeamDelete() 清理 Team
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
### Team 关闭协议
|
|
211
|
-
```
|
|
212
|
-
每个 Team Gate 完成后:
|
|
213
|
-
1. 确认所有 Team 成员已完成(TaskList 全部 resolved)
|
|
214
|
-
2. 调用 SendMessage({ type: "shutdown_request" }) 优雅关闭成员
|
|
215
|
-
3. 调用 TeamDelete() 清理 team/task 资源
|
|
216
|
-
4. 标记 Gate checkpoint 后再 advance_gate
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### 降级策略
|
|
220
|
-
- 当 Claude Code 不支持 TeamCreate(缺少环境变量)时,回退到并行 subagent 模式
|
|
221
|
-
- 小任务(<5 文件)直接用 subagent 模式,无需 Team
|
|
222
|
-
- 中任务(5-10 文件)可选 Team 或并行 subagent
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## 红线
|
|
227
|
-
- 原生/跨端代码必须通过平台特定测试——不可跳过
|
|
228
|
-
- UI 组件必须考虑多屏幕尺寸——不同分辨率下的布局不可断裂
|
|
229
|
-
- 权限请求必须有用户可理解的说明——敏感权限需动态申请
|
|
230
|
-
- 不得在主线程进行网络或数据库操作——阻塞 UI 是红线
|
|
231
|
-
- Flutter/RN/Taro:不得混合平台无关代码与原生代码在同一文件中
|