@jennie-shawn/starwork 0.1.0-alpha.23 → 0.1.0-alpha.24
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/cli/test/init.test.js +49 -0
- package/docs/alpha-test-guide.md +13 -0
- package/docs/cli-skill-registry.html +6 -6
- package/docs/multiagent-user-guide.md +16 -0
- package/package.json +1 -1
- package/skills/starworkDoctor/SKILL.md +53 -0
- package/skills/starworkDoctor-spec.md +39 -0
- package/skills/starworkInit/SKILL.md +81 -0
- package/skills/starworkInit-spec.md +38 -0
- package/skills/starworkMultiagent/SKILL.md +28 -1
package/cli/test/init.test.js
CHANGED
|
@@ -280,6 +280,10 @@ test("starworkMultiagent skill uses Codex standard session tools directly", () =
|
|
|
280
280
|
assert.match(skill, /set_thread_title/);
|
|
281
281
|
assert.match(skill, /set_thread_pinned/);
|
|
282
282
|
assert.match(skill, /set_thread_archived/);
|
|
283
|
+
assert.match(skill, /当前会话 ID 校验/);
|
|
284
|
+
assert.match(skill, /source_thread_id/);
|
|
285
|
+
assert.match(skill, /不能凭记忆、旧 worklog、旧 binding/);
|
|
286
|
+
assert.match(skill, /给自己发消息/);
|
|
283
287
|
assert.match(skill, /multiagent status --target/);
|
|
284
288
|
assert.match(skill, /multiagent add/);
|
|
285
289
|
assert.match(skill, /multiagent bind/);
|
|
@@ -370,6 +374,51 @@ test("starworkInit skill keeps existing projects in agent-docs draft mode", () =
|
|
|
370
374
|
assert.doesNotMatch(skill, /starwork init --type project --pack general --language zh --adapter codex --target <path> --yes/);
|
|
371
375
|
});
|
|
372
376
|
|
|
377
|
+
test("mainflow skills guide MultiAgent-only users through init and doctor preflight", () => {
|
|
378
|
+
const initSkill = fs.readFileSync(path.join(root, "skills", "starworkInit", "SKILL.md"), "utf8");
|
|
379
|
+
const doctorSkill = fs.readFileSync(path.join(root, "skills", "starworkDoctor", "SKILL.md"), "utf8");
|
|
380
|
+
const initSpec = fs.readFileSync(path.join(root, "skills", "starworkInit-spec.md"), "utf8");
|
|
381
|
+
const doctorSpec = fs.readFileSync(path.join(root, "skills", "starworkDoctor-spec.md"), "utf8");
|
|
382
|
+
const alphaGuide = fs.readFileSync(path.join(root, "docs", "alpha-test-guide.md"), "utf8");
|
|
383
|
+
const userGuide = fs.readFileSync(path.join(root, "docs", "multiagent-user-guide.md"), "utf8");
|
|
384
|
+
const registry = fs.readFileSync(path.join(root, "docs", "cli-skill-registry.html"), "utf8");
|
|
385
|
+
const initFirstScreen = markdownSection(initSkill, "MultiAgent-only 回流第一屏");
|
|
386
|
+
const doctorPreflight = markdownSection(doctorSkill, "MultiAgent preflight 第一屏");
|
|
387
|
+
|
|
388
|
+
assert.match(initFirstScreen, /多 AI 协作/);
|
|
389
|
+
assert.match(initFirstScreen, /项目是什么/);
|
|
390
|
+
assert.match(initFirstScreen, /当前正在推进什么/);
|
|
391
|
+
assert.match(initFirstScreen, /哪些内容能整理/);
|
|
392
|
+
assert.match(initFirstScreen, /确认前不会改业务内容/);
|
|
393
|
+
assert.match(initFirstScreen, /不会覆盖已有 AI 规则文件/);
|
|
394
|
+
assert.doesNotMatch(initFirstScreen, /adapter profile|host_native_dirs|rules_entry_status|workspace schema/);
|
|
395
|
+
|
|
396
|
+
assert.match(initSkill, /默认只问最小必要信息/);
|
|
397
|
+
assert.match(initSkill, /目标目录/);
|
|
398
|
+
assert.match(initSkill, /新建还是已有项目/);
|
|
399
|
+
assert.match(initSkill, /工作台语言/);
|
|
400
|
+
assert.match(initSkill, /主要使用的 AI 工具/);
|
|
401
|
+
assert.match(initSkill, /保留你的业务代码/);
|
|
402
|
+
assert.match(initSkill, /不直接覆盖已有 AGENTS\.md、README\.md、CLAUDE\.md/);
|
|
403
|
+
assert.match(initSkill, /工作台骨架已经写入,但 AI 入口还没有最终生效/);
|
|
404
|
+
|
|
405
|
+
assert.match(doctorPreflight, /多 AI 协作准备度/);
|
|
406
|
+
assert.match(doctorPreflight, /这次只是检查/);
|
|
407
|
+
assert.match(doctorPreflight, /不会改项目文件/);
|
|
408
|
+
assert.match(doctorPreflight, /下一步/);
|
|
409
|
+
assert.match(doctorPreflight, /另一个 AI/);
|
|
410
|
+
assert.match(doctorPreflight, /草稿和确认版/);
|
|
411
|
+
assert.match(doctorPreflight, /不自动 repair、upgrade 或写入文件/);
|
|
412
|
+
assert.doesNotMatch(doctorPreflight, /adapter profile|host_native_dirs|rules_entry_status|workspace schema/);
|
|
413
|
+
|
|
414
|
+
assert.match(initSpec, /MultiAgent-only 回流体验/);
|
|
415
|
+
assert.match(doctorSpec, /MultiAgent preflight/);
|
|
416
|
+
assert.match(alphaGuide, /Mainflow v0\.1/);
|
|
417
|
+
assert.match(userGuide, /如果 AI 先带你去接入或检查项目/);
|
|
418
|
+
assert.match(registry, /MultiAgent 安全接入口径/);
|
|
419
|
+
assert.match(registry, /多 AI 协作准备度/);
|
|
420
|
+
});
|
|
421
|
+
|
|
373
422
|
test("init-family skills start with user-facing capability framing", () => {
|
|
374
423
|
const knowledge = fs.readFileSync(path.join(root, "skills", "starworkKnowledge", "SKILL.md"), "utf8");
|
|
375
424
|
const multiagent = fs.readFileSync(path.join(root, "skills", "starworkMultiagent", "SKILL.md"), "utf8");
|
package/docs/alpha-test-guide.md
CHANGED
|
@@ -90,6 +90,19 @@ StarWork 是给 AI 协作准备的项目工作台。它会把项目说明、当
|
|
|
90
90
|
| 已有真实项目 | 接入已有项目,保留现有文件,已有 AI 规则先生成待整合草稿。 |
|
|
91
91
|
| 已有成熟工作流 | 先接入已有项目并预览,再按需要定制结构。 |
|
|
92
92
|
|
|
93
|
+
### Mainflow v0.1:MultiAgent-only 用户回流 Init / Doctor
|
|
94
|
+
|
|
95
|
+
当用户从“想创建多个 AI 分工”进入,但当前项目还没准备好时,A 测重点看 Init / Doctor 是否解释清楚这不是打断流程,而是在多个 AI 接手前补齐项目入口、当前任务和写入边界。
|
|
96
|
+
|
|
97
|
+
预期体验:
|
|
98
|
+
|
|
99
|
+
- `starworkInit` 第一屏说明:为了开启多 AI 协作,先确认项目是什么、当前正在推进什么、哪些内容能整理或修改,确认前不会改业务内容。
|
|
100
|
+
- `starworkInit` 默认只问最小必要问题:目标目录、新建或已有、语言、主要 AI 工具;不主动展开知识库、场景 Pack、Capability、复杂目录定制或多个宿主适配。
|
|
101
|
+
- 已有项目 dry-run 前说明会保留业务代码和现有资料,不直接覆盖已有 AI 规则文件,先生成待整合草稿。
|
|
102
|
+
- pending merge 时说明“工作台骨架已写入,但 AI 入口还没有最终生效”,不能说多 AI 协作已经完全可用。
|
|
103
|
+
- `starworkDoctor` 首屏有“多 AI 协作准备度 / 这次是否会改文件 / 下一步建议”,并明确这次只是检查,不会改项目文件。
|
|
104
|
+
- Doctor 缺失项要翻译成用户影响,例如另一个 AI 是否能看懂项目目标、知道当前任务、分清草稿和确认版、理解写入边界。
|
|
105
|
+
|
|
93
106
|
## 最小测试流程
|
|
94
107
|
|
|
95
108
|
交互式测试时,`starwork init` 会先询问工作台类型和语言;默认推荐项目工作台。项目中心会自动使用项目中心管理结构,项目工作台会默认使用通用工作能力。
|
|
@@ -615,9 +615,9 @@
|
|
|
615
615
|
<tr>
|
|
616
616
|
<td><strong><code>starworkInit</code></strong></td>
|
|
617
617
|
<td>L1 系统专家:初始化设计助手。</td>
|
|
618
|
-
<td>用户想从 0
|
|
619
|
-
<td
|
|
620
|
-
<td
|
|
618
|
+
<td>用户想从 0 建工作台,或从 MultiAgent 入口回流,需要先安全接入项目、补齐 AI 协作入口和写入边界。</td>
|
|
619
|
+
<td>先解释多 AI 协作前为什么要确认项目、当前任务和可整理范围;默认只问目标目录、新建/已有、语言和主要 AI 工具;已有项目先预览并生成待整合草稿,不直接覆盖业务代码或已有 AI 规则文件。</td>
|
|
620
|
+
<td>初始化建议、MultiAgent 安全接入口径、<code>init-blueprint.json</code>、rules、dry-run / yes / doctor 执行结果、AI 入口待整合说明。</td>
|
|
621
621
|
<td><code>starwork init</code> / <code>starwork init --blueprint</code></td>
|
|
622
622
|
<td><span class="status done">已实现</span></td>
|
|
623
623
|
</tr>
|
|
@@ -651,9 +651,9 @@
|
|
|
651
651
|
<tr>
|
|
652
652
|
<td><strong><code>starworkDoctor</code></strong></td>
|
|
653
653
|
<td>L1 系统专家:工作区诊断助手。</td>
|
|
654
|
-
<td>用户要理解 doctor 输出、判断旧目录如何整理成 StarWork
|
|
655
|
-
<td>读取 doctor JSON
|
|
656
|
-
<td
|
|
654
|
+
<td>用户要理解 doctor 输出、判断旧目录如何整理成 StarWork 工作台,或想先确认项目是否适合开启多 AI 协作。</td>
|
|
655
|
+
<td>读取 doctor JSON;先给 MultiAgent preflight 结论:多 AI 协作准备度、这次是否会改文件、下一步建议;再解释目录清单、线索和用户影响;用户明确确认升级时才生成升级方案和规则文件。</td>
|
|
656
|
+
<td>诊断报告、多 AI 协作准备度、目录角色映射、缺失和用户影响、确认问题、<code>upgrade-blueprint.json</code>、rules、dry-run 命令。</td>
|
|
657
657
|
<td><code>starwork doctor</code> / <code>starwork upgrade --blueprint</code></td>
|
|
658
658
|
<td><span class="status done">已实现</span></td>
|
|
659
659
|
</tr>
|
|
@@ -208,6 +208,22 @@ MultiAgent 不只是创建 AI 小团队,也可以帮你在不同 AI 会话之
|
|
|
208
208
|
|
|
209
209
|
你确认后,AI 才会正式创建协作记录。
|
|
210
210
|
|
|
211
|
+
## 如果 AI 先带你去接入或检查项目
|
|
212
|
+
|
|
213
|
+
这不是打断你创建多 AI 分工。
|
|
214
|
+
|
|
215
|
+
多个 AI 开始协作前,StarWork 需要先确认这个项目是否有清楚的 AI 协作入口:
|
|
216
|
+
|
|
217
|
+
- 这个项目是什么;
|
|
218
|
+
- 当前正在推进什么;
|
|
219
|
+
- 哪些内容能整理或修改,哪些内容不能随便改;
|
|
220
|
+
- 另一个 AI 进来后应该先读哪里;
|
|
221
|
+
- 草稿和确认版是否分得清。
|
|
222
|
+
|
|
223
|
+
如果项目还没接入,AI 应该先用 `starworkInit` 带你做安全接入:先预览准备补哪些协作文件,确认前不会改业务内容,也不会直接覆盖已有 AI 规则文件。
|
|
224
|
+
|
|
225
|
+
如果项目已经有一些结构但不确定是否适合多 AI 协作,AI 应该先用 `starworkDoctor` 做只读检查:告诉你多 AI 协作准备度、这次是否会改文件、下一步建议是什么。检查阶段不会自动修复或升级。
|
|
226
|
+
|
|
211
227
|
创建完成后,你可以继续说:
|
|
212
228
|
|
|
213
229
|
```text
|
package/package.json
CHANGED
|
@@ -44,6 +44,59 @@ Kit / Pack 不是本 skill 的主线任务。只有在生成升级蓝图时,
|
|
|
44
44
|
这个过程不会移动、删除或覆盖你的历史文件;升级目标是保留原目录,只补必要的 StarWork 规则和状态。
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
## MultiAgent preflight 第一屏
|
|
48
|
+
|
|
49
|
+
当用户从 `starworkMultiagent` 过来,或用户问“这个项目适不适合开启多 AI 协作 / 多 Agent 分工”时,先做 MultiAgent preflight。第一屏先回答三个问题,再解释细节:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
多 AI 协作准备度:
|
|
53
|
+
|
|
54
|
+
结论:我会先检查这个项目现在是否适合继续创建 AI 岗位。
|
|
55
|
+
文件影响:这次只是检查,不会改项目文件。
|
|
56
|
+
下一步:如果入口说明、当前任务和写入边界都清楚,就可以回到 MultiAgent 设计 AI 岗位;如果还缺,我会先告诉你缺什么,再建议用 starworkInit 安全补齐。
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
检查阶段必须明确只读,不自动 repair、upgrade 或写入文件。用户明确说“帮我补齐 / 修复 / 接入”时,才转入 `starworkInit` 或升级方案流程,并且仍要先预览、再确认。
|
|
60
|
+
|
|
61
|
+
MultiAgent preflight 至少解释这些用户能听懂的影响:
|
|
62
|
+
|
|
63
|
+
| 维度 | 用户问题 | 缺失时用户影响 |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| 项目背景 | 另一个 AI 能不能看懂这个项目是做什么的? | 其他 AI 接手时可能要你重新解释项目目标 |
|
|
66
|
+
| 当前任务 | 另一个 AI 能不能知道现在正在推进什么? | 分工后容易不知道先接哪一步 |
|
|
67
|
+
| AI 入口 | AI 进来先读哪里? | 不同 AI 可能读到不一致规则 |
|
|
68
|
+
| 草稿 / 正式内容边界 | 哪些是草稿,哪些是确认版? | AI 可能误改正式成果,或把草稿当最终版 |
|
|
69
|
+
| 写入边界 | 哪些内容能整理,哪些要先问? | 多个 AI 可能互相抢改或改到不该改的文件 |
|
|
70
|
+
| 交接位置 | 工作记录和共享成果放哪里? | 一个 AI 做完后,另一个 AI 不知道看哪里 |
|
|
71
|
+
|
|
72
|
+
诊断结论层放在“我看到的事实 / 我推测的角色 / 需要你确认的地方”之前:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
诊断结论:
|
|
76
|
+
|
|
77
|
+
多 AI 协作准备度:可以继续 / 需要先补入口 / 需要先确认边界 / 不建议继续。
|
|
78
|
+
|
|
79
|
+
这次是否会改文件:不会,这只是检查。
|
|
80
|
+
|
|
81
|
+
下一步建议:
|
|
82
|
+
- 如果你要创建 AI 岗位:先补齐 ...
|
|
83
|
+
- 如果你只是想了解现状:目前主要缺 ...
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
缺失项不要只输出内部检查名,要翻译成人话:
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
现在缺少“当前任务入口”。这不代表项目有问题,但另一个 AI 接手时可能不知道你现在要它接哪一步。
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
现在还没有 StarWork 工作台身份证。CLI 还不能稳定判断这个目录的类型和写入边界,所以不建议直接创建多个 AI 岗位。
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
现在草稿和确认版边界还不够清楚。多个 AI 同时协作时,可能把草稿当成最终成果,或误改已经确认的内容。
|
|
98
|
+
```
|
|
99
|
+
|
|
47
100
|
## 参考
|
|
48
101
|
|
|
49
102
|
需要完整边界、输出格式和后续 CLI 要求时,读取:
|
|
@@ -165,6 +165,8 @@ Kit / Pack 只是落地执行时的候选参数,不是诊断主轴。v0.1 单
|
|
|
165
165
|
- “我应该怎么整理这个工作区”
|
|
166
166
|
- “帮我生成 upgrade blueprint”
|
|
167
167
|
- “我想保留现在的目录名,但让它符合 StarWork”
|
|
168
|
+
- “这个项目适不适合开启多 AI 协作”
|
|
169
|
+
- “MultiAgent 让我先检查项目入口和边界”
|
|
168
170
|
|
|
169
171
|
skill 启动后应优先运行:
|
|
170
172
|
|
|
@@ -174,6 +176,43 @@ starwork doctor --target <path> --json --inventory-depth all
|
|
|
174
176
|
|
|
175
177
|
如果用户没有指定路径,先确认目标目录。
|
|
176
178
|
|
|
179
|
+
## MultiAgent preflight
|
|
180
|
+
|
|
181
|
+
当用户从 MultiAgent 入口进入,`starworkDoctor` 先作为多 AI 协作前的只读检查层,而不是升级执行层。
|
|
182
|
+
|
|
183
|
+
首屏必须先回答:
|
|
184
|
+
|
|
185
|
+
```text
|
|
186
|
+
多 AI 协作准备度:
|
|
187
|
+
|
|
188
|
+
结论:现在是否适合继续创建 AI 岗位。
|
|
189
|
+
文件影响:这次只是检查,不会改项目文件。
|
|
190
|
+
下一步:可以继续设计岗位 / 需要先补入口说明 / 需要先确认写入边界。
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
检查维度至少覆盖:
|
|
194
|
+
|
|
195
|
+
| 维度 | 用户问题 | 缺失时用户影响 |
|
|
196
|
+
|---|---|---|
|
|
197
|
+
| 项目背景 | 另一个 AI 能不能看懂这个项目是做什么的? | 其他 AI 接手时可能要你重新解释项目目标 |
|
|
198
|
+
| 当前任务 | 另一个 AI 能不能知道现在正在推进什么? | 分工后容易不知道先接哪一步 |
|
|
199
|
+
| AI 入口 | AI 进来先读哪里? | 不同 AI 可能读到不一致规则 |
|
|
200
|
+
| 草稿 / 正式内容边界 | 哪些是草稿,哪些是确认版? | AI 可能误改正式成果,或把草稿当最终版 |
|
|
201
|
+
| 写入边界 | 哪些内容能整理,哪些要先问? | 多个 AI 可能互相抢改或改到不该改的文件 |
|
|
202
|
+
| 交接位置 | 工作记录和共享成果放哪里? | 一个 AI 做完后,另一个 AI 不知道看哪里 |
|
|
203
|
+
|
|
204
|
+
MultiAgent preflight 默认不生成 upgrade blueprint,不执行 repair,也不写文件。用户明确要求补齐、修复或接入时,再转 `starworkInit` 或升级方案流程,并且仍要先 dry-run 预览、再等用户确认。
|
|
205
|
+
|
|
206
|
+
缺失项必须翻译成用户影响:
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
现在缺少“当前任务入口”。这不代表项目有问题,但另一个 AI 接手时可能不知道你现在要它接哪一步。
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
```text
|
|
213
|
+
现在草稿和确认版边界还不够清楚。多个 AI 同时协作时,可能把草稿当成最终成果,或误改已经确认的内容。
|
|
214
|
+
```
|
|
215
|
+
|
|
177
216
|
## Skill 工作流程
|
|
178
217
|
|
|
179
218
|
### Step 1:读取 doctor 探测结果
|
|
@@ -49,6 +49,87 @@ StarWork 是给 AI 协作准备的项目工作台。它会把项目说明、当
|
|
|
49
49
|
|
|
50
50
|
每次只问一个问题。不要一次性问完类型、语言、路径、结构、知识库和宿主。
|
|
51
51
|
|
|
52
|
+
## MultiAgent-only 回流第一屏
|
|
53
|
+
|
|
54
|
+
当用户是从 `starworkMultiagent` 回流过来,或用户只说“想开启多 AI 协作 / 多 Agent 分工,但这个项目还没接入”时,先用下面这段用户语言开场。不要先讲命令、参数或内部机制:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
我先把你带回安全接入这一步。
|
|
58
|
+
|
|
59
|
+
不是要打断你创建多 AI 分工,而是多个 AI 开始协作前,需要先确认三件事:
|
|
60
|
+
1. 这个项目是什么;
|
|
61
|
+
2. 当前正在推进什么;
|
|
62
|
+
3. 不同 AI 哪些内容能整理,哪些内容不能随便改。
|
|
63
|
+
|
|
64
|
+
我会先做一份写入预览,只告诉你准备补哪些协作入口和边界。
|
|
65
|
+
确认前不会改业务内容,也不会覆盖已有 AI 规则文件。
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
然后只问一个问题:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
你现在是想把当前已有项目接入 StarWork,还是新建一个空项目工作台试用?
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## MultiAgent 快速起步规则
|
|
75
|
+
|
|
76
|
+
用户目标是“先开启多 AI 协作”时,默认只问最小必要信息:
|
|
77
|
+
|
|
78
|
+
1. 目标目录。
|
|
79
|
+
2. 新建还是已有项目。
|
|
80
|
+
3. 工作台语言。
|
|
81
|
+
4. 主要使用的 AI 工具;不确定可以跳过。
|
|
82
|
+
5. 如已有项目,读取现有入口并生成待整合草稿。
|
|
83
|
+
|
|
84
|
+
不要默认展开知识库、Pack、Capability、复杂目录定制或多个宿主同时适配。用户主动要求定制时,再进入完整初始化采访。
|
|
85
|
+
|
|
86
|
+
每一步提问前先说明目的:
|
|
87
|
+
|
|
88
|
+
- 问新建还是已有项目:因为已有项目要保护原文件,新建项目可以直接生成推荐结构。
|
|
89
|
+
- 问目标目录:因为下一步预览会按这个路径计算准备新增或修改哪些文件,确认前不会写入。
|
|
90
|
+
- 问语言:因为目录名和 AI 规则说明会跟着语言变化。
|
|
91
|
+
- 问主要 AI 工具:因为只需要为用户选择的工具准备入口,不会一次性改所有工具的规则。
|
|
92
|
+
|
|
93
|
+
已有项目 dry-run 前必须先说明:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
我检测到这是已有项目时,会按更保守的方式处理:
|
|
97
|
+
- 保留你的业务代码和现有资料;
|
|
98
|
+
- 不直接覆盖已有 AGENTS.md、README.md、CLAUDE.md 或其他 AI 规则入口;
|
|
99
|
+
- 先生成待整合草稿;
|
|
100
|
+
- 让你确认后再合并入口说明。
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
dry-run 复述必须包含:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
这是预览,还没有写入文件。
|
|
107
|
+
|
|
108
|
+
准备新增:
|
|
109
|
+
- ...
|
|
110
|
+
|
|
111
|
+
准备更新:
|
|
112
|
+
- ...
|
|
113
|
+
|
|
114
|
+
不会改动:
|
|
115
|
+
- 你的业务代码
|
|
116
|
+
- 已有非空 AI 规则文件
|
|
117
|
+
|
|
118
|
+
需要你确认:
|
|
119
|
+
- 目标路径是否正确
|
|
120
|
+
- 是否接受这些 StarWork 协作入口
|
|
121
|
+
- 是否继续合并待整合草稿
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
如果 `init --yes` 后出现待整合草稿,不要说多 AI 协作已经完全可用。要分层说明:
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
工作台骨架已经写入,但 AI 入口还没有最终生效。
|
|
128
|
+
因为你的项目已有规则文件,我只生成了待整合草稿,没有直接覆盖。
|
|
129
|
+
|
|
130
|
+
下一步我会把现有规则和 StarWork 建议放在一起,让你确认后再合并。
|
|
131
|
+
```
|
|
132
|
+
|
|
52
133
|
## 参考
|
|
53
134
|
|
|
54
135
|
需要完整字段、边界和待确认问题时,如果当前环境中能访问,可以读取:
|
|
@@ -77,9 +77,47 @@ CLI 的 `init --blueprint` 是承接定制方案的执行入口。Skill 不能
|
|
|
77
77
|
- “我想用 StarWork 管一个项目”
|
|
78
78
|
- “这个工作台的目录我想定制一下”
|
|
79
79
|
- “init 有没有类似 spawn blueprint 的定制能力”
|
|
80
|
+
- “我想开启多 AI 协作,但这个项目还没接入”
|
|
81
|
+
- “MultiAgent 说要先安全接入项目”
|
|
80
82
|
|
|
81
83
|
skill 应在这些场景下启动。
|
|
82
84
|
|
|
85
|
+
## MultiAgent-only 回流体验
|
|
86
|
+
|
|
87
|
+
当用户从 `starworkMultiagent` 回流,或只安装了 MultiAgent 相关 Skill、目标是“先创建多个 AI 分工”时,`starworkInit` 要把自己解释为多 AI 协作前的安全接入顾问,而不是打断流程。
|
|
88
|
+
|
|
89
|
+
第一屏必须说明:
|
|
90
|
+
|
|
91
|
+
- 多 AI 协作前要先确认项目是什么。
|
|
92
|
+
- 多 AI 协作前要先确认当前正在推进什么。
|
|
93
|
+
- 多 AI 协作前要先确认哪些内容能整理或修改,哪些内容不能随便改。
|
|
94
|
+
- 先做写入预览,确认前不会改业务内容。
|
|
95
|
+
- 不会直接覆盖已有 AI 规则文件。
|
|
96
|
+
|
|
97
|
+
第一问只问:
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
你现在是想把当前已有项目接入 StarWork,还是新建一个空项目工作台试用?
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
MultiAgent 快速起步默认只问最小必要问题:
|
|
104
|
+
|
|
105
|
+
1. 目标目录。
|
|
106
|
+
2. 新建还是已有项目。
|
|
107
|
+
3. 工作台语言。
|
|
108
|
+
4. 主要使用的 AI 工具;不确定可跳过。
|
|
109
|
+
5. 已有项目时,读取现有入口并生成待整合草稿。
|
|
110
|
+
|
|
111
|
+
默认不主动展开知识库、场景 Pack、Capability、复杂目录定制、项目中心或多个宿主同时适配。用户主动要求定制时,再进入完整 `starworkInit` 采访。
|
|
112
|
+
|
|
113
|
+
已有项目场景必须强化安全预告:保留业务代码和现有资料;不直接覆盖已有 `AGENTS.md`、`README.md`、`CLAUDE.md` 或其他 AI 规则入口;先生成待整合草稿;用户确认后再合并入口说明。
|
|
114
|
+
|
|
115
|
+
如果写入后存在待整合草稿,必须区分:
|
|
116
|
+
|
|
117
|
+
- 工作台骨架已写入。
|
|
118
|
+
- AI 入口还没有最终生效。
|
|
119
|
+
- 下一步要把现有规则和 StarWork 建议放在一起,让用户确认后再合并。
|
|
120
|
+
|
|
83
121
|
## Skill 输出
|
|
84
122
|
|
|
85
123
|
根据用户需求成熟度,`starworkInit` 可以输出三种结果。
|
|
@@ -194,6 +194,33 @@ starwork doctor --target <path> --json
|
|
|
194
194
|
|
|
195
195
|
如果 `starwork doctor --target <path> --host <host> --json` 或 `.starwork/adapters.json` 显示 `rules_entry_status: pending_merge`,也必须停止多 Agent 写入。这表示 AI 入口文档还只是 `.starwork/drafts/` 草稿,先切回 `starworkInit` 整合最终 `AGENTS.md` / 宿主规则入口;完成并重新 doctor 后,才能继续创建或绑定团队。
|
|
196
196
|
|
|
197
|
+
## 当前会话 ID 校验
|
|
198
|
+
|
|
199
|
+
在任何会话控制或跨会话操作前,必须先确认**当前会话 ID**,不能凭记忆、旧 worklog、旧 binding 或刚才看到的历史 thread id 推断当前会话。
|
|
200
|
+
|
|
201
|
+
适用动作包括:
|
|
202
|
+
|
|
203
|
+
- 把“当前会话”绑定到某个 lane。
|
|
204
|
+
- 给“当前会话”改名、置顶、归档或释放绑定。
|
|
205
|
+
- 从当前 lane 向其他 lane 投递消息。
|
|
206
|
+
- 根据当前会话身份记录 `from_lane`、`request record` 或 handoff response。
|
|
207
|
+
- 判断某个目标会话是否就是当前会话,避免把消息发回自己。
|
|
208
|
+
|
|
209
|
+
确认顺序:
|
|
210
|
+
|
|
211
|
+
1. 如果当前输入是 `<codex_delegation>`,优先读取 `source_thread_id`,把它当作当前来源会话 ID。
|
|
212
|
+
2. 如果宿主工具或运行环境显式提供 current thread / current session metadata,使用该值。
|
|
213
|
+
3. 如果只能通过 `list_threads` / `read_thread` 看到历史会话摘要,不能把相似标题、最近更新时间或 lane binding 当作当前会话证明。
|
|
214
|
+
4. 如果仍无法确认当前会话 ID,必须停止当前会话绑定、改名、置顶、归档、释放和以当前会话为来源的投递记录,向用户说明“我还不能确认当前会话 ID”,并请用户提供或确认 `codex:<thread-id>` / 对应宿主 session id。
|
|
215
|
+
|
|
216
|
+
校验规则:
|
|
217
|
+
|
|
218
|
+
- 操作“当前会话”前,必须把确认到的 current session id 与 StarWork 中目标 lane 的 `current_session` 对比。
|
|
219
|
+
- 如果 current session id 与目标 lane binding 不一致,不得直接改名、绑定、覆盖或发送;先向用户说明两者不一致,请用户确认要以哪个会话为准。
|
|
220
|
+
- 向目标 lane 发送消息前,如果目标 `current_session` 与当前会话 ID 相同,必须停止并提醒用户这会变成给自己发消息;除非用户明确要求在同一会话内记录,否则不要调用 `send_message_to_thread`。
|
|
221
|
+
- `multiagent bind` 只能记录已经确认的真实 session id;不得把旧 worklog 里的 thread id、另一个 lane 的 thread id 或推测出来的 id 写入 binding。
|
|
222
|
+
- 每次因会话 ID 不确定而降级时,输出 `manual_handoff_required` 或询问用户确认,不得假装已自动送达或已绑定。
|
|
223
|
+
|
|
197
224
|
## Codex 标准工具
|
|
198
225
|
|
|
199
226
|
在 Codex App 中,以下动作由 Skill 直接调用标准工具:
|
|
@@ -321,7 +348,7 @@ starwork multiagent bind <lane> --session codex:<threadId> --target <path> --yes
|
|
|
321
348
|
|
|
322
349
|
把当前会话登记为某个 lane 时:
|
|
323
350
|
|
|
324
|
-
1.
|
|
351
|
+
1. 先执行“当前会话 ID 校验”。只有已确认 current session id 时,才能继续;否则询问用户提供或确认 `codex:<thread-id>` / 对应宿主 session id。
|
|
325
352
|
2. 如果 lane 不存在,先用 CLI `multiagent add` 建立职责和写入范围。
|
|
326
353
|
3. 如用户要求改名,先直接调用 `set_thread_title`。
|
|
327
354
|
4. 如用户要求置顶,直接调用 `set_thread_pinned`。
|