@aipper/aiws-spec 0.0.46 → 0.0.47
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/package.json
CHANGED
|
@@ -31,6 +31,20 @@ ws-goal 只做三件事,不做更多:
|
|
|
31
31
|
- 若发现 status=active 或 status=paused 的 state.json,输出恢复选项(从失败的 phase 继续 / 跳过 / handoff)
|
|
32
32
|
- 用户选择后设置 current_phase 到对应 phase 并继续执行
|
|
33
33
|
c) 若未找到 state.json 但有 status=active 或 status=paused 的 .md 文件(旧格式迁移),按 §7.6 自动生成 state.json 后全量重跑
|
|
34
|
+
d) 若发现 status=complete 的 state.json 但 checkpoints 中仍有未完成项(status != complete):
|
|
35
|
+
- 读取对应 `.aiws/goals/<goal-id>.md` 文件,输出 goal 摘要
|
|
36
|
+
- 列出所有未完成的 checkpoints(status=in_progress/pending/failed 的项)
|
|
37
|
+
- 输出续跑选项:
|
|
38
|
+
- (a)跳过 PHASE 0,从依赖链预检(step 4)恢复执行
|
|
39
|
+
自动跳过 step 1-3(真值读取/目标输入/文件生成),使用已有 goal 文件
|
|
40
|
+
- (b)查看 goal 详情
|
|
41
|
+
- (c)忽略,按新目标处理
|
|
42
|
+
- 若用户选择 a):
|
|
43
|
+
- 设置 state.json:status=active,current_phase 到最近一个未完成 checkpoint 对应 phase
|
|
44
|
+
- 输出"跳过 PHASE 0,从 step 4 依赖链预检恢复"
|
|
45
|
+
- 直接进入 step 4 继续执行
|
|
46
|
+
- 若用户选择 b):输出完整 goal 详情后回到选项
|
|
47
|
+
- 若用户选择 c):作为新目标正常走 step 0→1→2 完整流程
|
|
34
48
|
|
|
35
49
|
1) 读取真值文件(`AI_PROJECT.md`、`REQUIREMENTS.md`、`AI_WORKSPACE.md`),确认项目规则与边界。
|
|
36
50
|
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 目标协议:设定可审计的 goal 目标;依赖链预检;完成审计
|
|
3
|
+
---
|
|
4
|
+
<!-- AIWS_MANAGED_BEGIN:opencode:ws-goal -->
|
|
5
|
+
# ws goal
|
|
6
|
+
|
|
7
|
+
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
+
|
|
9
|
+
## 职责边界
|
|
10
|
+
|
|
11
|
+
ws-goal 只做三件事,不做更多:
|
|
12
|
+
|
|
13
|
+
| 做 | 不做 |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| 录入目标(写 `.aiws/goals/<id>.md`) | 直接在 main session 创建/驱动 change(通过 pipeline subagent 委托执行) |
|
|
16
|
+
| 依赖链预检(上游死 change → 阻断) | 评估复杂度、路由执行路径 |
|
|
17
|
+
| 完成审计(claim done 时验证 outcome) | git add/commit/push、finish |
|
|
18
|
+
| 记录 target_base_branch 约束 | auto-chain 到下一个 goal(但在同一 goal 内支持多组顺序调度 §6) |
|
|
19
|
+
|
|
20
|
+
超出以上范围的需求,路由到对应 ws-* 技能,ws-goal 不碰。
|
|
21
|
+
|
|
22
|
+
## 前置条件
|
|
23
|
+
|
|
24
|
+
1) 先运行 `/ws-preflight`(对齐 `AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md`)。
|
|
25
|
+
|
|
26
|
+
## 执行流程
|
|
27
|
+
|
|
28
|
+
0) 检查 `.aiws/goals/` 目录(先扫描 `.state.json`,再扫描 `.md`):
|
|
29
|
+
a) 若用户仅查询状态(无明确目标),列出所有 goal 文件及其 status 字段,然后结束。
|
|
30
|
+
b) 扫描 `.aiws/goals/*.state.json`:
|
|
31
|
+
- 若发现 status=active 或 status=paused 的 state.json,输出恢复选项(从失败的 phase 继续 / 跳过 / handoff)
|
|
32
|
+
- 用户选择后设置 current_phase 到对应 phase 并继续执行
|
|
33
|
+
c) 若未找到 state.json 但有 status=active 或 status=paused 的 .md 文件(旧格式迁移),按 §7.6 自动生成 state.json 后全量重跑
|
|
34
|
+
d) 若发现 status=complete 的 state.json 但 checkpoints 中仍有未完成项(status != complete):
|
|
35
|
+
- 读取对应 `.aiws/goals/<goal-id>.md` 文件,输出 goal 摘要
|
|
36
|
+
- 列出所有未完成的 checkpoints(status=in_progress/pending/failed 的项)
|
|
37
|
+
- 输出续跑选项:
|
|
38
|
+
- (a)跳过 PHASE 0,从依赖链预检(step 4)恢复执行
|
|
39
|
+
自动跳过 step 1-3(真值读取/目标输入/文件生成),使用已有 goal 文件
|
|
40
|
+
- (b)查看 goal 详情
|
|
41
|
+
- (c)忽略,按新目标处理
|
|
42
|
+
- 若用户选择 a):
|
|
43
|
+
- 设置 state.json:status=active,current_phase 到最近一个未完成 checkpoint 对应 phase
|
|
44
|
+
- 输出"跳过 PHASE 0,从 step 4 依赖链预检恢复"
|
|
45
|
+
- 直接进入 step 4 继续执行
|
|
46
|
+
- 若用户选择 b):输出完整 goal 详情后回到选项
|
|
47
|
+
- 若用户选择 c):作为新目标正常走 step 0→1→2 完整流程
|
|
48
|
+
|
|
49
|
+
1) 读取真值文件(`AI_PROJECT.md`、`REQUIREMENTS.md`、`AI_WORKSPACE.md`),确认项目规则与边界。
|
|
50
|
+
|
|
51
|
+
2) 接受用户输入的 goal objective,明确目标范围与验收标准。
|
|
52
|
+
|
|
53
|
+
3) 按 ws-goal-contract.md 的目标模板生成目标文件,写入 `.aiws/goals/<goal-id>.md`。
|
|
54
|
+
并同时创建 `.aiws/goals/<goal-id>.state.json`(§7.2 格式),初始状态 `status=active`、`current_phase=intake`、所有 checkpoints pending。
|
|
55
|
+
a) 生成时填入 `Target Base Branch` 字段:
|
|
56
|
+
- `target_base_branch`:从当前分支追踪或用户声明确定。默认 `main`
|
|
57
|
+
- `base_branch_mismatch_action`:默认 `block`
|
|
58
|
+
b) 生成时填入初始 `Dependency Chain` 字段:
|
|
59
|
+
- `base_branch`:当前检出分支或用户指定的基分支
|
|
60
|
+
- `chain`:追溯完整的 change 链到 main
|
|
61
|
+
- `chain_verified_at`:当前时间
|
|
62
|
+
- `user_confirmed_unhealthy`:初始为 null
|
|
63
|
+
|
|
64
|
+
4) **Dependency Chain Validation**:上游依赖链健康检查(不创建任何 change/plan/commit)。
|
|
65
|
+
a) 确定 base_branch:
|
|
66
|
+
- 若当前已存在 change 分支,读取 `.ws-change.json` 或 proposal.md 的 `base_branch`
|
|
67
|
+
- 若用户显式指定 base_branch,以用户指定为准
|
|
68
|
+
- 否则默认 main
|
|
69
|
+
a1) **target_base_branch 一致性检查**(Rule C):
|
|
70
|
+
- 读取 goal 文件的 `Target Base Branch.target_base_branch`
|
|
71
|
+
- 若 `base_branch != target_base_branch`:
|
|
72
|
+
- 输出 "goal 声明 target_base_branch = X,但当前 base_branch = Y"
|
|
73
|
+
- 若 `base_branch_mismatch_action` 为 `block`(默认):**强制 blocker**,必须用户修正 base_branch 或显式确认 mismatch 才能继续
|
|
74
|
+
- 若为 `warn`:输出警告并允许继续
|
|
75
|
+
- 将 mismatch 记录到 goal 文件的 Audit Trail
|
|
76
|
+
- 若一致:继续 step b
|
|
77
|
+
b) 追溯 chain:从 base_branch 逐级向上追溯到 main
|
|
78
|
+
- 每级检查 `.ws-change.json` 的 `base_branch` 或 git 分支关系
|
|
79
|
+
- 若无法追溯(孤儿分支),标记 UNKNOWN 并输出警告
|
|
80
|
+
c) 对 chain 中每个 link 做健康检查(按 ws-goal-contract.md 2.4.2 标准):
|
|
81
|
+
- artifacts 完整性:proposal/tasks/design 是否存在
|
|
82
|
+
- task 完成率:WS:TODO 占比
|
|
83
|
+
- review 状态:是否有 HIGH blocker
|
|
84
|
+
- 活跃度:最后更新时间
|
|
85
|
+
- truth drift:`aiws validate .` 是否通过
|
|
86
|
+
d) 结果:
|
|
87
|
+
- ALL HEALTHY → 输出 "依赖链健康" 并继续
|
|
88
|
+
- 存在 STALE → 输出链拓扑 + 警告,允许继续
|
|
89
|
+
- 存在 UNHEALTHY → 输出完整 chain 拓扑 + 每级健康报告,**强制 blocker**,必须用户显式确认才能继续
|
|
90
|
+
- UNKNOWN(无法追溯)→ 输出警告"无法验证上游依赖链",不阻断但要求用户确认
|
|
91
|
+
e) 将验证结果写入 goal 文件的 `Dependency Chain` 字段:
|
|
92
|
+
- 更新 `chain` 中每个 link 的健康状态与判定理由
|
|
93
|
+
- 若用户放行 UNHEALTHY:设置 `user_confirmed_unhealthy: true` 并记录到 `Audit Trail`
|
|
94
|
+
- 若用户未放行:设置 goal status=paused 并结束
|
|
95
|
+
|
|
96
|
+
4.5) **Workspace State Analysis**:依赖链预检通过后、delegation 前,分析工作区状态并输出报告。
|
|
97
|
+
必须用户确认后才能进入 step 5。
|
|
98
|
+
a) 检查 dirty 状态:
|
|
99
|
+
- staged changes(`git diff --cached --stat`)
|
|
100
|
+
- unstaged changes(`git diff --stat`)
|
|
101
|
+
- untracked files(`git status --porcelain` 中 `??` 开头项)
|
|
102
|
+
b) 检查 submodule 状态:
|
|
103
|
+
- 每个 submodule 的 dirty 状态(`git submodule status`)
|
|
104
|
+
- detached HEAD(`git -C <path> symbolic-ref HEAD` 失败)
|
|
105
|
+
- unpushed 提交(`git -C <path> log @{u}..HEAD --oneline`)
|
|
106
|
+
c) 检查 change artifacts:
|
|
107
|
+
- 存在哪些 change 分支(`git branch --list 'change/*'`)
|
|
108
|
+
- 是否有未完成的 change(proposal/tasks 仍含 WS:TODO)
|
|
109
|
+
- 是否与当前 goal 冲突(同名、同域)
|
|
110
|
+
d) 检查 git 状态:
|
|
111
|
+
- 是否有 unpushed 提交(`git log @{u}..HEAD --oneline`)
|
|
112
|
+
- 是否有 stash(`git stash list`)
|
|
113
|
+
e) 评估影响:逐项判断与当前 goal 的关联度:
|
|
114
|
+
- HIGH:阻碍 goal 执行,必须处理
|
|
115
|
+
- MED:可能干扰或产生误报
|
|
116
|
+
- LOW:无影响,仅提示
|
|
117
|
+
- NONE:完全无关,忽略
|
|
118
|
+
f) 输出结构化分析报告:
|
|
119
|
+
用格式化的文本块输出,每行标注影响等级:
|
|
120
|
+
```
|
|
121
|
+
═══ 工作区状态报告 ═══
|
|
122
|
+
[HIGH] 子模块 web/ dirty(7 文件)— 与 goal 同一目录,可能干扰
|
|
123
|
+
[MED] 旧 change contract-ai-rag 残留 — 可能干扰依赖链判断
|
|
124
|
+
[LOW] .aiws/journal/ 日志文件 — 无影响
|
|
125
|
+
════════════════════════
|
|
126
|
+
```
|
|
127
|
+
g) 展示报告后要求用户选择:
|
|
128
|
+
- **继续** → 更新 state.json checkpoint `ws_analysis=complete`,进入 step 5
|
|
129
|
+
- **暂停** → state.json status=paused,报告写入 Audit Trail,结束
|
|
130
|
+
- **先清理** → state.json status=paused,输出清理建议步骤,结束
|
|
131
|
+
用户未确认前,不得进入 step 5。
|
|
132
|
+
|
|
133
|
+
5) **Phase-Level Pipeline Delegation**:依赖链预检 + workspace 分析通过后,将 goal 拆分为 PLAN→DEV→REVIEW→FINISH 四个 phase 顺序执行,每个 phase 委托给独立轻量子 agent,主 session 验证每个 phase 产出后决定继续/重试/暂停。
|
|
134
|
+
前置条件:step 4 必须通过(ALL HEALTHY 或 UNHEALTHY 已显式放行)。若 step 4 阻断,不允许 delegation。
|
|
135
|
+
前置条件 2:不存在 status=active 的 change 分支。若有,让用户选择「使用已有 change 继续」或「暂停」。
|
|
136
|
+
前置条件 3:每个 pipeline phase 开始前更新 state.json `current_phase` + checkpoint `status=in_progress`;完成/失败后对应更新 checkpoint。
|
|
137
|
+
|
|
138
|
+
5a) **Check for Groups**:读取 goal 文件,检查是否定义了 `Groups` 区域。
|
|
139
|
+
- 若 goal **不含** groups → 走单组 phase-level pipeline(step 5b-5g)
|
|
140
|
+
- 若 goal **包含** groups → 走 Sequential Group Phase-Level Dispatch(step 5.1)
|
|
141
|
+
|
|
142
|
+
--- 以下为 phase-level pipeline(无 groups 的 goal) ---
|
|
143
|
+
|
|
144
|
+
5b) **Phase-Level Sequential Execution**:主 session 按 PLAN→DEV→REVIEW→FINISH 顺序执行 4 个 phase,每个 phase 前检查当前进度(支持断点续跑)。共用一个 change 分支,change id = goal-id。
|
|
145
|
+
|
|
146
|
+
5c) **PHASE 1 - PLAN**(主 session 执行 change start + 委托子 agent 做 plan):
|
|
147
|
+
1. 主 session 执行 `aiws change start <goal-id> --allow-dirty`(若 change 已存在则跳过)
|
|
148
|
+
2. 委托子 agent 执行 PLAN phase:
|
|
149
|
+
```
|
|
150
|
+
task(
|
|
151
|
+
category="unspecified-high",
|
|
152
|
+
description="PLAN phase for goal <goal-id>",
|
|
153
|
+
prompt="TASK: Write proposal.md + plan file + run plan-verify for goal <goal-id>.
|
|
154
|
+
INPUT: goal file at .aiws/goals/<goal-id>.md, truth files at AI_PROJECT.md/REQUIREMENTS.md/AI_WORKSPACE.md.
|
|
155
|
+
CONSTRAINTS: Do NOT implement code. Do NOT do review. Do NOT commit.
|
|
156
|
+
COMPLETION: proposal.md exists, plan file exists, plan-verify passes."
|
|
157
|
+
)
|
|
158
|
+
```
|
|
159
|
+
3. 主 session 验证产出:
|
|
160
|
+
- proposal.md 文件存在
|
|
161
|
+
- plan 文件存在
|
|
162
|
+
- plan-verify 通过
|
|
163
|
+
4. 验证通过 → 进入 PHASE 2
|
|
164
|
+
5. 验证失败 → 可重试最多 2 次 → 仍失败则 goal state=paused,记录 blocker
|
|
165
|
+
|
|
166
|
+
5d) **PHASE 2 - DEV**(委托子 agent 做 dev):
|
|
167
|
+
1. 委托子 agent 执行 DEV phase:
|
|
168
|
+
```
|
|
169
|
+
task(
|
|
170
|
+
category="deep",
|
|
171
|
+
description="DEV phase for goal <goal-id>",
|
|
172
|
+
prompt="TASK: Implement all code changes per plan for goal <goal-id>.
|
|
173
|
+
INPUT: proposal.md at .aiws/changes/<goal-id>/proposal.md, plan file.
|
|
174
|
+
CONSTRAINTS: Do NOT modify proposal or plan files. Do NOT commit.
|
|
175
|
+
COMPLETION: All changes implemented, lint/typecheck clean."
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
2. 主 session 验证产出:
|
|
179
|
+
- diagnostics 干净(`lsp_diagnostics` 检查改动文件)
|
|
180
|
+
- 改动范围与 plan 一致
|
|
181
|
+
3. 验证通过 → 进入 PHASE 3
|
|
182
|
+
4. 验证失败 → goal state=paused,记录 blocker
|
|
183
|
+
|
|
184
|
+
5e) **PHASE 3 - REVIEW**(委托子 agent 做 review):
|
|
185
|
+
1. 委托子 agent 执行 REVIEW phase:
|
|
186
|
+
```
|
|
187
|
+
task(
|
|
188
|
+
category="unspecified-high",
|
|
189
|
+
load_skills=["review-work"],
|
|
190
|
+
description="REVIEW phase for goal <goal-id>",
|
|
191
|
+
prompt="TASK: Audit code changes for goal <goal-id>, produce review evidence.
|
|
192
|
+
INPUT: proposal.md, plan file, changed files.
|
|
193
|
+
CONSTRAINTS: Do NOT modify code. Do NOT commit.
|
|
194
|
+
COMPLETION: Review evidence files exist, no HIGH blockers."
|
|
195
|
+
)
|
|
196
|
+
```
|
|
197
|
+
2. 主 session 验证产出:
|
|
198
|
+
- review 证据文件存在
|
|
199
|
+
- 无未解决的 HIGH blocker
|
|
200
|
+
3. 验证通过 → 进入 PHASE 4
|
|
201
|
+
4. 验证失败 → goal state=paused,记录 blocker
|
|
202
|
+
|
|
203
|
+
5f) **PHASE 4 - FINISH**(委托子 agent 做 commit + finish):
|
|
204
|
+
1. 委托子 agent 执行 FINISH phase:
|
|
205
|
+
```
|
|
206
|
+
task(
|
|
207
|
+
category="quick",
|
|
208
|
+
load_skills=["git-master"],
|
|
209
|
+
description="FINISH phase for goal <goal-id>",
|
|
210
|
+
prompt="TASK: Commit and finish (merge + push) for goal <goal-id> change branch.
|
|
211
|
+
CONSTRAINTS: Do NOT modify code. Git operations only.
|
|
212
|
+
COMPLETION: Change branch merged to target_base_branch and pushed."
|
|
213
|
+
)
|
|
214
|
+
```
|
|
215
|
+
2. 主 session 验证产出:
|
|
216
|
+
- 确认 change 分支已合并到 target_base_branch
|
|
217
|
+
- 确认已推送
|
|
218
|
+
3. 验证通过 → goal state=complete,输出 "Goal <goal-id> complete"
|
|
219
|
+
4. 验证失败 → goal state=paused,记录 blocker
|
|
220
|
+
|
|
221
|
+
5g) **Simple Goal Escape Hatch**:若 goal 为简单改动(≤3 文件,配置/doc/规范变更,无架构风险):
|
|
222
|
+
- 可跳过 PHASE 3(REVIEW),在 PHASE 2 验证后直接进入 PHASE 4
|
|
223
|
+
- 必须在 goal 文件的 Progress Notes 标注 "skipped review phase (simple goal)"
|
|
224
|
+
|
|
225
|
+
--- 以下为 Sequential Group Phase-Level Dispatch(含 groups 的 goal) ---
|
|
226
|
+
|
|
227
|
+
5.1) **Sequential Group Phase-Level Dispatch**:
|
|
228
|
+
当 goal 文件包含 Groups 定义时,ws-goal 按依赖顺序逐个调度每个 group,每个 group 内按 5c-5f 的 4-phase 流程执行。主 session 负责编排每个 group 的 4 个 phase 并验证每个 phase 的产出。
|
|
229
|
+
|
|
230
|
+
5.1a) **解析并验证 groups**:
|
|
231
|
+
- 提取 goal 文件中所有 group 定义(id, scope, verification, depends_on, status)
|
|
232
|
+
- 验证 DAG:无循环依赖,depends_on 引用正确的已知 group
|
|
233
|
+
- 将所有 group status 初始化为 `pending`
|
|
234
|
+
- 若解析失败(格式错误、循环依赖)→ 输出错误,不允许 delegation
|
|
235
|
+
|
|
236
|
+
5.1b) **计算拓扑顺序**:
|
|
237
|
+
- 按 depends_on 确定执行顺序。默认:声明顺序
|
|
238
|
+
- 输出 group 执行计划列表:
|
|
239
|
+
```
|
|
240
|
+
═══ Group 执行计划 ═══
|
|
241
|
+
[1] group-1: Foundation Pages(depends_on: none)
|
|
242
|
+
[2] group-2: Purchase Conversion(depends_on: group-1)
|
|
243
|
+
[3] group-3: Account & Orders(depends_on: group-1)
|
|
244
|
+
═══════════════════════════
|
|
245
|
+
```
|
|
246
|
+
- 展示计划后要求用户确认是否继续。用户确认后才开始调度
|
|
247
|
+
|
|
248
|
+
5.1c) **按顺序执行每个 group(phase-level)**:
|
|
249
|
+
FOR each group in 拓扑顺序:
|
|
250
|
+
1. 更新 group status → `in_progress`,写入 goal 文件 Progress Notes
|
|
251
|
+
2. **PHASE 1 - PLAN**(同 5c,但 change id = `<goal-id>-<group-id>`):
|
|
252
|
+
- 主 session 执行 `aiws change start <goal-id>-<group-id> --allow-dirty`
|
|
253
|
+
- 委托子 agent 写 proposal.md + plan 文件 + plan-verify
|
|
254
|
+
- 主 session 验证:proposal/plan 存在,plan-verify 通过
|
|
255
|
+
3. **PHASE 2 - DEV**(同 5d,scope 限定到当前 group):
|
|
256
|
+
- 委托子 agent 按 plan 实现当前 group 的代码改动
|
|
257
|
+
- 主 session 验证:diagnostics 干净,改动匹配 group scope
|
|
258
|
+
4. **PHASE 3 - REVIEW**(同 5e,scope 限定到当前 group):
|
|
259
|
+
- 委托子 agent 审计当前 group 改动
|
|
260
|
+
- 主 session 验证:review 证据存在,无 HIGH blocker
|
|
261
|
+
5. **PHASE 4 - FINISH**(同 5f):
|
|
262
|
+
- 委托子 agent 做 commit + finish
|
|
263
|
+
- 主 session 验证:分支已合并推送
|
|
264
|
+
6. 任一 phase 失败 → group status = paused/failed,记录 blocker,**STOP**(后续 group 不再调度)
|
|
265
|
+
7. 全部 phase 通过 → 更新 group status → `complete`,更新 Progress Notes
|
|
266
|
+
- 若 goal 配置了多组并行:可在 PLANNING 通过且 DAG 无冲突前提下的顺序执行
|
|
267
|
+
|
|
268
|
+
5.1d) **所有 group 完成后**:
|
|
269
|
+
- 运行整体完成审计:
|
|
270
|
+
- goal 级别的 outcome 是否满足
|
|
271
|
+
- 所有 group 均为 complete(无 paused/failed)
|
|
272
|
+
- 全局 lint/type 检查无新增错误
|
|
273
|
+
- 输出每 group 结果 + 整体结论
|
|
274
|
+
- 全部通过 → 更新 goal state=complete,输出 "Goal <id> complete(<N> groups executed)"
|
|
275
|
+
- 有未通过 → 更新 goal state=paused
|
|
276
|
+
|
|
277
|
+
5.1e) **恢复机制**(下一 session 进入 step 0 时触发):
|
|
278
|
+
- 检测到 paused goal 且含 groups → 输出恢复选项:
|
|
279
|
+
- (a)重试失败的 group(从失败的 phase 重新开始)
|
|
280
|
+
- (b)跳过该 group(标记 complete,继续下游)
|
|
281
|
+
- (c)暂停并 handoff
|
|
282
|
+
- 用户选择后执行对应操作
|
|
283
|
+
<!-- AIWS_MANAGED_END:opencode:ws-goal -->
|
|
284
|
+
|
|
285
|
+
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|