@aipper/aiws-spec 0.0.36 → 0.0.39
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/docs/ws-goal-contract.md
CHANGED
|
@@ -38,10 +38,10 @@ ws-goal 定义为**协议层**(prompt-template + artifact spec),不是运
|
|
|
38
38
|
|---|---|---|
|
|
39
39
|
| 录入目标 | 按模板写 `.aiws/goals/<id>.md` | 不创建 change/plan |
|
|
40
40
|
| 依赖链预检 | 追溯上游 change 健康度 + target_base_branch 一致性 | 不修改上游工件 |
|
|
41
|
-
| 管道委托 | 预检通过后,将 goal
|
|
41
|
+
| 管道委托 | 预检通过后,将 goal 拆分为 phase-level 子任务(PLAN → DEV → REVIEW → FINISH),每个 phase 委托给独立轻量子 agent,主 session 编排调度与验证 | ws-goal 自己不执行任何实现步骤 |
|
|
42
42
|
| 完成审计 | Verification 对照 outcome 逐条验证 | 不替代 review 门禁 |
|
|
43
43
|
|
|
44
|
-
第四步(管道委托)是 ws-goal 的**编排出口**:依赖链预检通过后,ws-goal
|
|
44
|
+
第四步(管道委托)是 ws-goal 的**编排出口**:依赖链预检通过后,ws-goal 将 goal 拆分为 PLAN → DEV → REVIEW → FINISH 四个 phase,每个 phase 构造独立委托 prompt 交由轻量子 agent 执行。主 session 在每个 phase 完成后验证产出,决定继续/重试/暂停。所有 phase 通过后,ws-goal 执行最终的完成审计并更新 goal status。**设计原则**:每个子 agent 只做一个 phase 的事,上下文小、失败影响范围小、可独立重试。
|
|
45
45
|
|
|
46
46
|
这样做的好处是:ws-goal 保持轻量协议层,不重复造 runtime,但通过委托机制提供了从 goal 到 complete 的自动化路径。
|
|
47
47
|
|
|
@@ -357,3 +357,235 @@ Dependency chain 验证(2.4)需要:
|
|
|
357
357
|
- **轻量**(< 3 步,单文件改动):只做 step 1-2(derive + preserve),跳过完整证据链
|
|
358
358
|
- **标准**(3-10 步,多文件改动):完整 8 步审计
|
|
359
359
|
- **严格**(跨模块、跨 repo):8 步审计 + 独立审计者 + ws-review 门禁
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## 6. Pipeline Sequential Dispatch
|
|
364
|
+
|
|
365
|
+
### 6.1 Motivation
|
|
366
|
+
|
|
367
|
+
ws-goal step 5(Pipeline Delegation)将 goal 的完整执行委托给单个子 agent。对于包含多个独立交付批次的 goal(如"分四组完成全部页面重构"),单个子 agent 可能在长时间执行中:
|
|
368
|
+
- 因上下文超限而丢失精度
|
|
369
|
+
- 中途失败导致整个 goal 回退
|
|
370
|
+
- 无法体现不同页面组的边界差异
|
|
371
|
+
|
|
372
|
+
Pipeline Sequential Dispatch 通过**组(group)机制**解决此问题:同一 goal 内的多个执行单元各自委托给独立的子 agent,按依赖顺序逐个执行,ws-goal 负责编排调度。
|
|
373
|
+
|
|
374
|
+
### 6.2 Core Design
|
|
375
|
+
|
|
376
|
+
#### 6.2.1 Group 定义
|
|
377
|
+
|
|
378
|
+
Group 是 goal 内部的一个自包含执行单元:
|
|
379
|
+
|
|
380
|
+
| 属性 | 类型 | 说明 |
|
|
381
|
+
|---|---|---|
|
|
382
|
+
| **id** | string | 组标识,如 `group-1`, `group-foundation` |
|
|
383
|
+
| **title** | string | 简短标题 |
|
|
384
|
+
| **scope** | string | 范围描述:哪些文件、哪些模块 |
|
|
385
|
+
| **verification** | string[] | 该组的验收标准。组完成时需逐条验证 |
|
|
386
|
+
| **depends_on** | string[] | 依赖的其他 group id。默认 `[]`(无依赖) |
|
|
387
|
+
| **status** | enum | `pending \| in_progress \| complete \| paused \| failed` |
|
|
388
|
+
|
|
389
|
+
#### 6.2.2 Group Dependencies
|
|
390
|
+
|
|
391
|
+
Group 之间的依赖构成 DAG(有向无环图):
|
|
392
|
+
|
|
393
|
+
- Group B 声明 `depends_on: [A]` → B 仅在 A 完成后启动
|
|
394
|
+
- 无依赖的 group 之间当前必须顺序执行(并行调度暂不实现)
|
|
395
|
+
- 禁止循环依赖
|
|
396
|
+
- 默认(不声明 `depends_on`)按声明顺序执行
|
|
397
|
+
|
|
398
|
+
#### 6.2.3 State Machine
|
|
399
|
+
|
|
400
|
+
每个 group 有自己的状态,与整体 goal 状态解耦:
|
|
401
|
+
|
|
402
|
+
```
|
|
403
|
+
group: pending → in_progress → complete
|
|
404
|
+
→ paused (下游 block)
|
|
405
|
+
→ failed (下游 block)
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
整体 goal 的状态:
|
|
409
|
+
|
|
410
|
+
```
|
|
411
|
+
active → group 1 executing → group 1 complete → group 2 executing → ... → all groups complete → overall completion audit → complete
|
|
412
|
+
→ any group paused → paused
|
|
413
|
+
→ any group failed → paused (with failure recorded)
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
#### 6.2.4 Delegation Model (Phase-Level)
|
|
417
|
+
|
|
418
|
+
每个 group 的执行被拆分为 4 个 phase,每个 phase 委托给独立轻量子 agent,主 session 编排调度:
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
group execution:
|
|
422
|
+
PHASE 1 - PLAN: 子 agent 只做 proposal + plan + plan-verify
|
|
423
|
+
→ 主 session 验证 plan 产出
|
|
424
|
+
PHASE 2 - DEV: 子 agent 只做代码实现 + 本地验证
|
|
425
|
+
→ 主 session 验证 diagnostics + 改动范围
|
|
426
|
+
PHASE 3 - REVIEW: 子 agent 只做审计(不修改代码)
|
|
427
|
+
→ 主 session 验证 review 证据
|
|
428
|
+
PHASE 4 - FINISH: 子 agent 只做 commit + finish
|
|
429
|
+
→ 主 session 验证合并完成
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
每个 phase 的委托 prompt 包含:
|
|
433
|
+
- goal 完整上下文(outcome, verification, constraints, boundaries, target_base_branch)
|
|
434
|
+
- 当前 group 的 scope 与 verification
|
|
435
|
+
- 该 phase 的明确范围(不做什么)
|
|
436
|
+
- 完成条件:仅限该 phase 的产出
|
|
437
|
+
|
|
438
|
+
phase 间的主 session 验证是门禁:
|
|
439
|
+
- 验证通过 → 进入下一个 phase
|
|
440
|
+
- 验证失败 → 可重试当前 phase(最多 N 次)或暂停 goal
|
|
441
|
+
- 暂停后恢复时,从失败的 phase 重新开始,不重做已通过的 phase
|
|
442
|
+
|
|
443
|
+
设计原则:
|
|
444
|
+
- **单一职责**:每个子 agent 只做一个 phase。PLAN agent 不做 dev,DEV agent 不做 review
|
|
445
|
+
- **小上下文**:每个 phase 的 prompt 只包含该 phase 需要的信息,不携带无关上下文
|
|
446
|
+
- **失败隔离**:一个 phase 失败不影响其他 phase 的产出;只需重试失败的 phase
|
|
447
|
+
- **可审计**:每个 phase 的产出有明确的验证标准,主 session 逐条核验
|
|
448
|
+
|
|
449
|
+
### 6.3 Goal File Extension
|
|
450
|
+
|
|
451
|
+
启用 Pipeline Sequential Dispatch 的 goal,在 `Progress Notes` 字段上方或 `Tasks` 区域添加 groups 定义:
|
|
452
|
+
|
|
453
|
+
```yaml
|
|
454
|
+
## Groups
|
|
455
|
+
|
|
456
|
+
### group-1: Foundation Pages
|
|
457
|
+
- scope: index.tsx, category.tsx, search.tsx
|
|
458
|
+
- verification:
|
|
459
|
+
- "Home page renders product grid"
|
|
460
|
+
- "Category page renders with filters"
|
|
461
|
+
- "Search results show 10 items per page"
|
|
462
|
+
- depends_on: []
|
|
463
|
+
- status: pending
|
|
464
|
+
|
|
465
|
+
### group-2: Purchase Conversion
|
|
466
|
+
- scope: cart.tsx, checkout.tsx, payment-form.tsx
|
|
467
|
+
- verification:
|
|
468
|
+
- "Add to cart updates badge count"
|
|
469
|
+
- "Checkout collects shipping address"
|
|
470
|
+
- "Payment form validates card number"
|
|
471
|
+
- depends_on: [group-1]
|
|
472
|
+
- status: pending
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### 6.4 Dispatch Protocol (Phase-Level)
|
|
476
|
+
|
|
477
|
+
ws-goal 执行 Phase-Level Sequential Dispatch 时遵循以下协议:
|
|
478
|
+
|
|
479
|
+
```
|
|
480
|
+
1. Parse goal file → extract group list
|
|
481
|
+
2. Validate group DAG (no cycles, deps resolve to known groups)
|
|
482
|
+
3. FOR each group in topological order:
|
|
483
|
+
a. Update group status → in_progress
|
|
484
|
+
b. Group PHASE 1 - PLAN:
|
|
485
|
+
i. Construct phase delegation prompt:
|
|
486
|
+
- Goal outcome, verification (group-level), constraints, boundaries
|
|
487
|
+
- Current group scope and verification
|
|
488
|
+
- target_base_branch from goal
|
|
489
|
+
- Dependency chain validation results (step 4)
|
|
490
|
+
- Workspace state analysis results (step 4.5)
|
|
491
|
+
- Phase scope: ONLY proposal.md + plan file + plan-verify
|
|
492
|
+
- Phase constraints: NOT dev, NOT review, NOT commit/finish
|
|
493
|
+
ii. Delegate to sub-agent:
|
|
494
|
+
- `task(category="unspecified-high", prompt="...")`
|
|
495
|
+
- Wait for completion
|
|
496
|
+
iii. Main session verify:
|
|
497
|
+
- proposal.md exists
|
|
498
|
+
- plan file exists with verification commands
|
|
499
|
+
- plan-verify passed
|
|
500
|
+
- Fail max 2x → group paused, blocker recorded, STOP
|
|
501
|
+
c. Group PHASE 2 - DEV:
|
|
502
|
+
i. Construct phase delegation prompt:
|
|
503
|
+
- Plan content, proposal links
|
|
504
|
+
- Phase scope: ONLY implement per plan + local verify
|
|
505
|
+
- Phase constraints: NOT modify proposal/plan, NOT commit
|
|
506
|
+
ii. Delegate to sub-agent:
|
|
507
|
+
- `task(category="deep", prompt="...")`
|
|
508
|
+
- Wait for completion
|
|
509
|
+
iii. Main session verify:
|
|
510
|
+
- Diagnostics clean (lsp_diagnostics on changed files)
|
|
511
|
+
- Changes match plan scope
|
|
512
|
+
- Fail → group paused, blocker recorded, STOP
|
|
513
|
+
d. Group PHASE 3 - REVIEW:
|
|
514
|
+
i. Construct phase delegation prompt:
|
|
515
|
+
- Proposal + plan + changed files
|
|
516
|
+
- Phase scope: ONLY audit, produce review evidence
|
|
517
|
+
- Phase constraints: NOT modify code
|
|
518
|
+
ii. Delegate to sub-agent:
|
|
519
|
+
- `task(category="unspecified-high", prompt="...")`
|
|
520
|
+
- Wait for completion
|
|
521
|
+
iii. Main session verify:
|
|
522
|
+
- Review evidence files exist
|
|
523
|
+
- No HIGH blocker unresolved
|
|
524
|
+
- Fail → group paused, blocker recorded, STOP
|
|
525
|
+
e. Group PHASE 4 - FINISH:
|
|
526
|
+
i. Construct phase delegation prompt:
|
|
527
|
+
- Phase scope: ONLY commit + finish
|
|
528
|
+
- Phase constraints: NOT modify code
|
|
529
|
+
ii. Delegate to sub-agent:
|
|
530
|
+
- `task(category="quick", load_skills=["git-master"], prompt="...")`
|
|
531
|
+
- Wait for completion
|
|
532
|
+
iii. Main session verify:
|
|
533
|
+
- Change branch merged to target_base_branch
|
|
534
|
+
- Pushed to remote
|
|
535
|
+
f. Update group status → complete
|
|
536
|
+
g. Update goal Progress Notes with group result
|
|
537
|
+
4. All groups complete:
|
|
538
|
+
- Run overall completion audit (all verification + goal-level checks)
|
|
539
|
+
- Update goal state → complete
|
|
540
|
+
- Output: "Goal <id> complete (<N> groups executed)"
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
**Simple Group Escape Hatch**:若 group scope 极小(≤2 文件,配置变更),可合并 PLAN + DEV 为一个 phase,但 REVIEW 和 FINISH 保持独立。
|
|
544
|
+
|
|
545
|
+
### 6.5 Completion Audit (Phase-Level)
|
|
546
|
+
|
|
547
|
+
Phase-Level Pipeline Dispatch 的审计分散在各 phase 的门禁验证中,并在全部 group 完成后做总体审计:
|
|
548
|
+
|
|
549
|
+
**Per-Phase 审计**(每个 phase 完成后由主 session 执行):
|
|
550
|
+
- PLAN phase: proposal.md 存在、plan 文件存在、plan-verify 通过
|
|
551
|
+
- DEV phase: diagnostics 干净、改动范围匹配 plan
|
|
552
|
+
- REVIEW phase: review 证据文件存在、无 HIGH blocker
|
|
553
|
+
- FINISH phase: change 分支已合并、已推送
|
|
554
|
+
- 任一 phase 审计未通过 → 暂停 goal,记录 blocker,不继续
|
|
555
|
+
|
|
556
|
+
**Group 级审计**(组内全部 4 个 phase 通过后汇总):
|
|
557
|
+
- 验证 group 的 scope 是否已实现
|
|
558
|
+
- 验证 group 的 verification 条目(通过各 phase 分散验证自动汇聚)
|
|
559
|
+
- 汇总为 group 的完成状态 → complete / paused
|
|
560
|
+
|
|
561
|
+
**整体审计**(所有 group 完成后执行):
|
|
562
|
+
- 验证 goal 级别的 outcome 字段是否满足
|
|
563
|
+
- 验证所有 group 均标记 complete,无 paused/failed
|
|
564
|
+
- 回归检查:全局改动未引入新的 lint/type 错误
|
|
565
|
+
- 验证 dependency chain 在最终合并后仍然健康
|
|
566
|
+
- 输出审计报告:每 group 结果 + 整体结论
|
|
567
|
+
|
|
568
|
+
### 6.6 Failure Recovery
|
|
569
|
+
|
|
570
|
+
当 group 中途失败或暂停时:
|
|
571
|
+
|
|
572
|
+
1. ws-goal 记录当前组停止位置到 Progress Notes
|
|
573
|
+
2. 标记 goal state=paused
|
|
574
|
+
3. 输出恢复命令建议,例如:
|
|
575
|
+
```
|
|
576
|
+
Goal <id> paused at group <group-id>.
|
|
577
|
+
To resume: fix the reported issue, then restart ws-goal.
|
|
578
|
+
ws-goal will detect the paused goal and ask whether to:
|
|
579
|
+
a) Retry group <group-id> (re-delegate)
|
|
580
|
+
b) Skip group <group-id> (mark complete manually, proceed to next)
|
|
581
|
+
c) Pause and handoff
|
|
582
|
+
```
|
|
583
|
+
4. 下一 session 启动 ws-goal 时(step 0),检测到 paused goal → 输出恢复选项 → 用户选择后继续
|
|
584
|
+
|
|
585
|
+
### 6.7 Backward Compatibility
|
|
586
|
+
|
|
587
|
+
| 现有 goal | 兼容性 |
|
|
588
|
+
|---|---|
|
|
589
|
+
| 不含 groups 定义的 goal | 受影响:step 5 从单次 delegation 变为 4-phase 顺序执行。迁移后需按 phase-level 适配 |
|
|
590
|
+
| 含 groups 定义的 goal(新格式) | 进入 Phase-Level Sequential Dispatch 模式,每 group 按 4-phase 执行 |
|
|
591
|
+
| 已有 goal 工件(.md 文件) | 兼容。goal 文件格式不变,仅 delegation 执行方式变更 |
|
package/package.json
CHANGED
|
@@ -11,11 +11,11 @@ description: 目标协议:设定可审计的 goal 目标;依赖链预检;
|
|
|
11
11
|
ws-goal 只做三件事,不做更多:
|
|
12
12
|
|
|
13
13
|
| 做 | 不做 |
|
|
14
|
-
|
|
15
|
-
| 录入目标(写 `.aiws/goals/<id>.md`) | 创建/驱动 change
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| 录入目标(写 `.aiws/goals/<id>.md`) | 直接在 main session 创建/驱动 change(通过 pipeline subagent 委托执行) |
|
|
16
16
|
| 依赖链预检(上游死 change → 阻断) | 评估复杂度、路由执行路径 |
|
|
17
17
|
| 完成审计(claim done 时验证 outcome) | git add/commit/push、finish |
|
|
18
|
-
| 记录 target_base_branch 约束 | auto-chain 到下一个 goal |
|
|
18
|
+
| 记录 target_base_branch 约束 | auto-chain 到下一个 goal(但在同一 goal 内支持多组顺序调度 §6) |
|
|
19
19
|
|
|
20
20
|
超出以上范围的需求,路由到对应 ws-* 技能,ws-goal 不碰。
|
|
21
21
|
|
|
@@ -112,40 +112,155 @@ ws-goal 只做三件事,不做更多:
|
|
|
112
112
|
- **先清理** → goal status=paused,输出清理建议步骤,结束
|
|
113
113
|
用户未确认前,不得进入 step 5。
|
|
114
114
|
|
|
115
|
-
5) **Pipeline Delegation**:依赖链预检 + workspace 分析通过后,将 goal
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
115
|
+
5) **Phase-Level Pipeline Delegation**:依赖链预检 + workspace 分析通过后,将 goal 拆分为 PLAN→DEV→REVIEW→FINISH 四个 phase 顺序执行,每个 phase 委托给独立轻量子 agent,主 session 验证每个 phase 产出后决定继续/重试/暂停。
|
|
116
|
+
前置条件:step 4 必须通过(ALL HEALTHY 或 UNHEALTHY 已显式放行)。若 step 4 阻断,不允许 delegation。
|
|
117
|
+
前置条件 2:不存在 status=active 的 change 分支。若有,让用户选择「使用已有 change 继续」或「暂停」。
|
|
118
|
+
|
|
119
|
+
5a) **Check for Groups**:读取 goal 文件,检查是否定义了 `Groups` 区域。
|
|
120
|
+
- 若 goal **不含** groups → 走单组 phase-level pipeline(step 5b-5g)
|
|
121
|
+
- 若 goal **包含** groups → 走 Sequential Group Phase-Level Dispatch(step 5.1)
|
|
122
|
+
|
|
123
|
+
--- 以下为 phase-level pipeline(无 groups 的 goal) ---
|
|
124
|
+
|
|
125
|
+
5b) **Phase-Level Sequential Execution**:主 session 按 PLAN→DEV→REVIEW→FINISH 顺序执行 4 个 phase,每个 phase 前检查当前进度(支持断点续跑)。共用一个 change 分支,change id = goal-id。
|
|
126
|
+
|
|
127
|
+
5c) **PHASE 1 - PLAN**(主 session 执行 change start + 委托子 agent 做 plan):
|
|
128
|
+
1. 主 session 执行 `aiws change start <goal-id> --allow-dirty`(若 change 已存在则跳过)
|
|
129
|
+
2. 委托子 agent 执行 PLAN phase:
|
|
130
|
+
```
|
|
131
|
+
task(
|
|
132
|
+
category="unspecified-high",
|
|
133
|
+
description="PLAN phase for goal <goal-id>",
|
|
134
|
+
prompt="TASK: Write proposal.md + plan file + run plan-verify for goal <goal-id>.
|
|
135
|
+
INPUT: goal file at .aiws/goals/<goal-id>.md, truth files at AI_PROJECT.md/REQUIREMENTS.md/AI_WORKSPACE.md.
|
|
136
|
+
CONSTRAINTS: Do NOT implement code. Do NOT do review. Do NOT commit.
|
|
137
|
+
COMPLETION: proposal.md exists, plan file exists, plan-verify passes."
|
|
138
|
+
)
|
|
139
|
+
```
|
|
140
|
+
3. 主 session 验证产出:
|
|
141
|
+
- proposal.md 文件存在
|
|
142
|
+
- plan 文件存在
|
|
143
|
+
- plan-verify 通过
|
|
144
|
+
4. 验证通过 → 进入 PHASE 2
|
|
145
|
+
5. 验证失败 → 可重试最多 2 次 → 仍失败则 goal state=paused,记录 blocker
|
|
146
|
+
|
|
147
|
+
5d) **PHASE 2 - DEV**(委托子 agent 做 dev):
|
|
148
|
+
1. 委托子 agent 执行 DEV phase:
|
|
149
|
+
```
|
|
150
|
+
task(
|
|
151
|
+
category="deep",
|
|
152
|
+
description="DEV phase for goal <goal-id>",
|
|
153
|
+
prompt="TASK: Implement all code changes per plan for goal <goal-id>.
|
|
154
|
+
INPUT: proposal.md at .aiws/changes/<goal-id>/proposal.md, plan file.
|
|
155
|
+
CONSTRAINTS: Do NOT modify proposal or plan files. Do NOT commit.
|
|
156
|
+
COMPLETION: All changes implemented, lint/typecheck clean."
|
|
157
|
+
)
|
|
158
|
+
```
|
|
159
|
+
2. 主 session 验证产出:
|
|
160
|
+
- diagnostics 干净(`lsp_diagnostics` 检查改动文件)
|
|
161
|
+
- 改动范围与 plan 一致
|
|
162
|
+
3. 验证通过 → 进入 PHASE 3
|
|
163
|
+
4. 验证失败 → goal state=paused,记录 blocker
|
|
164
|
+
|
|
165
|
+
5e) **PHASE 3 - REVIEW**(委托子 agent 做 review):
|
|
166
|
+
1. 委托子 agent 执行 REVIEW phase:
|
|
167
|
+
```
|
|
168
|
+
task(
|
|
169
|
+
category="unspecified-high",
|
|
170
|
+
load_skills=["review-work"],
|
|
171
|
+
description="REVIEW phase for goal <goal-id>",
|
|
172
|
+
prompt="TASK: Audit code changes for goal <goal-id>, produce review evidence.
|
|
173
|
+
INPUT: proposal.md, plan file, changed files.
|
|
174
|
+
CONSTRAINTS: Do NOT modify code. Do NOT commit.
|
|
175
|
+
COMPLETION: Review evidence files exist, no HIGH blockers."
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
2. 主 session 验证产出:
|
|
179
|
+
- review 证据文件存在
|
|
180
|
+
- 无未解决的 HIGH blocker
|
|
181
|
+
3. 验证通过 → 进入 PHASE 4
|
|
182
|
+
4. 验证失败 → goal state=paused,记录 blocker
|
|
183
|
+
|
|
184
|
+
5f) **PHASE 4 - FINISH**(委托子 agent 做 commit + finish):
|
|
185
|
+
1. 委托子 agent 执行 FINISH phase:
|
|
186
|
+
```
|
|
187
|
+
task(
|
|
188
|
+
category="quick",
|
|
189
|
+
load_skills=["git-master"],
|
|
190
|
+
description="FINISH phase for goal <goal-id>",
|
|
191
|
+
prompt="TASK: Commit and finish (merge + push) for goal <goal-id> change branch.
|
|
192
|
+
CONSTRAINTS: Do NOT modify code. Git operations only.
|
|
193
|
+
COMPLETION: Change branch merged to target_base_branch and pushed."
|
|
194
|
+
)
|
|
195
|
+
```
|
|
196
|
+
2. 主 session 验证产出:
|
|
197
|
+
- 确认 change 分支已合并到 target_base_branch
|
|
198
|
+
- 确认已推送
|
|
199
|
+
3. 验证通过 → goal state=complete,输出 "Goal <goal-id> complete"
|
|
200
|
+
4. 验证失败 → goal state=paused,记录 blocker
|
|
201
|
+
|
|
202
|
+
5g) **Simple Goal Escape Hatch**:若 goal 为简单改动(≤3 文件,配置/doc/规范变更,无架构风险):
|
|
203
|
+
- 可跳过 PHASE 3(REVIEW),在 PHASE 2 验证后直接进入 PHASE 4
|
|
204
|
+
- 必须在 goal 文件的 Progress Notes 标注 "skipped review phase (simple goal)"
|
|
205
|
+
|
|
206
|
+
--- 以下为 Sequential Group Phase-Level Dispatch(含 groups 的 goal) ---
|
|
207
|
+
|
|
208
|
+
5.1) **Sequential Group Phase-Level Dispatch**:
|
|
209
|
+
当 goal 文件包含 Groups 定义时,ws-goal 按依赖顺序逐个调度每个 group,每个 group 内按 5c-5f 的 4-phase 流程执行。主 session 负责编排每个 group 的 4 个 phase 并验证每个 phase 的产出。
|
|
210
|
+
|
|
211
|
+
5.1a) **解析并验证 groups**:
|
|
212
|
+
- 提取 goal 文件中所有 group 定义(id, scope, verification, depends_on, status)
|
|
213
|
+
- 验证 DAG:无循环依赖,depends_on 引用正确的已知 group
|
|
214
|
+
- 将所有 group status 初始化为 `pending`
|
|
215
|
+
- 若解析失败(格式错误、循环依赖)→ 输出错误,不允许 delegation
|
|
216
|
+
|
|
217
|
+
5.1b) **计算拓扑顺序**:
|
|
218
|
+
- 按 depends_on 确定执行顺序。默认:声明顺序
|
|
219
|
+
- 输出 group 执行计划列表:
|
|
220
|
+
```
|
|
221
|
+
═══ Group 执行计划 ═══
|
|
222
|
+
[1] group-1: Foundation Pages(depends_on: none)
|
|
223
|
+
[2] group-2: Purchase Conversion(depends_on: group-1)
|
|
224
|
+
[3] group-3: Account & Orders(depends_on: group-1)
|
|
225
|
+
═══════════════════════════
|
|
226
|
+
```
|
|
227
|
+
- 展示计划后要求用户确认是否继续。用户确认后才开始调度
|
|
228
|
+
|
|
229
|
+
5.1c) **按顺序执行每个 group(phase-level)**:
|
|
230
|
+
FOR each group in 拓扑顺序:
|
|
231
|
+
1. 更新 group status → `in_progress`,写入 goal 文件 Progress Notes
|
|
232
|
+
2. **PHASE 1 - PLAN**(同 5c,但 change id = `<goal-id>-<group-id>`):
|
|
233
|
+
- 主 session 执行 `aiws change start <goal-id>-<group-id> --allow-dirty`
|
|
234
|
+
- 委托子 agent 写 proposal.md + plan 文件 + plan-verify
|
|
235
|
+
- 主 session 验证:proposal/plan 存在,plan-verify 通过
|
|
236
|
+
3. **PHASE 2 - DEV**(同 5d,scope 限定到当前 group):
|
|
237
|
+
- 委托子 agent 按 plan 实现当前 group 的代码改动
|
|
238
|
+
- 主 session 验证:diagnostics 干净,改动匹配 group scope
|
|
239
|
+
4. **PHASE 3 - REVIEW**(同 5e,scope 限定到当前 group):
|
|
240
|
+
- 委托子 agent 审计当前 group 改动
|
|
241
|
+
- 主 session 验证:review 证据存在,无 HIGH blocker
|
|
242
|
+
5. **PHASE 4 - FINISH**(同 5f):
|
|
243
|
+
- 委托子 agent 做 commit + finish
|
|
244
|
+
- 主 session 验证:分支已合并推送
|
|
245
|
+
6. 任一 phase 失败 → group status = paused/failed,记录 blocker,**STOP**(后续 group 不再调度)
|
|
246
|
+
7. 全部 phase 通过 → 更新 group status → `complete`,更新 Progress Notes
|
|
247
|
+
- 若 goal 配置了多组并行:可在 PLANNING 通过且 DAG 无冲突前提下的顺序执行
|
|
248
|
+
|
|
249
|
+
5.1d) **所有 group 完成后**:
|
|
250
|
+
- 运行整体完成审计:
|
|
251
|
+
- goal 级别的 outcome 是否满足
|
|
252
|
+
- 所有 group 均为 complete(无 paused/failed)
|
|
253
|
+
- 全局 lint/type 检查无新增错误
|
|
254
|
+
- 输出每 group 结果 + 整体结论
|
|
255
|
+
- 全部通过 → 更新 goal state=complete,输出 "Goal <id> complete(<N> groups executed)"
|
|
256
|
+
- 有未通过 → 更新 goal state=paused
|
|
257
|
+
|
|
258
|
+
5.1e) **恢复机制**(下一 session 进入 step 0 时触发):
|
|
259
|
+
- 检测到 paused goal 且含 groups → 输出恢复选项:
|
|
260
|
+
- (a)重试失败的 group(从失败的 phase 重新开始)
|
|
261
|
+
- (b)跳过该 group(标记 complete,继续下游)
|
|
262
|
+
- (c)暂停并 handoff
|
|
263
|
+
- 用户选择后执行对应操作
|
|
149
264
|
<!-- AIWS_MANAGED_END:opencode:ws-goal -->
|
|
150
265
|
|
|
151
266
|
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -9,13 +9,13 @@ description: 目标协议:设定可审计的 goal 目标;依赖链预检;
|
|
|
9
9
|
目标:
|
|
10
10
|
- 将用户需求转化为可审计的 goal 目标,按 ws-goal-contract.md 的目标模板写入目标文件。
|
|
11
11
|
- 依赖链预检:阻断"死 change 阻塞下游"这类 chain 问题。
|
|
12
|
-
-
|
|
12
|
+
- 管道委托:预检通过后将 goal 拆分为 phase-level 子任务(PLAN→DEV→REVIEW→FINISH),每个 phase 委托给独立轻量子 agent,主 session 编排调度与验证。
|
|
13
13
|
- 完成审计:claim done 时验证 outcome 真伪。
|
|
14
14
|
|
|
15
15
|
ws-goal 不做的事:
|
|
16
|
-
-
|
|
16
|
+
- 不直接在 main session 操作 change 或写代码(通过 pipeline subagent 委托执行)
|
|
17
17
|
- 不替换 review/commit/finish 门禁
|
|
18
|
-
- 不 auto-chain 到下一个 goal
|
|
18
|
+
- 不 auto-chain 到下一个 goal(但在同一 goal 内支持多组顺序调度 §6)
|
|
19
19
|
|
|
20
20
|
前置条件:
|
|
21
21
|
1) 先运行 `/ws-preflight`(对齐 `AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md`)。
|
|
@@ -29,4 +29,4 @@ ws-goal 不做的事:
|
|
|
29
29
|
3) 按 ws-goal-contract.md 的目标模板生成目标文件,写入 `.aiws/goals/<goal-id>.md`。
|
|
30
30
|
4) 输出 completion audit checklist,列出每个 goal 的完成标准与验证方式。
|
|
31
31
|
5) **Workspace State Analysis**:分析 dirty/submodule/change artifacts/git 状态,输出影响等级报告,用户确认后才能继续。参考 `/ws-goal` command 的 step 4.5 完整流程。
|
|
32
|
-
6) **Pipeline Delegation**:预检 + 分析通过后,将 goal
|
|
32
|
+
6) **Phase-Level Pipeline Delegation**:预检 + 分析通过后,将 goal 拆分为 PLAN→DEV→REVIEW→FINISH 四个 phase 顺序执行,每个 phase 委托给独立轻量子 agent,主 session 验证每个 phase 产出后决定继续/重试/暂停。参考 `/ws-goal` command 的 step 5 完整流程。
|