@veewo/claw-core 0.1.77 → 0.1.78

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.
@@ -1,381 +1,352 @@
1
- {
2
- "goalModeObjective": {
3
- "withGoal": "Using claw-kit, update the plan, follow the returned workflowGuidance, and finish your goal: {{planGoal}}",
4
- "withoutGoal": "Using claw-kit, update the plan, follow the returned workflowGuidance, and finish your goal."
5
- },
6
- "planCreateRecall": {
7
- "recommendedCommand": "claw search --query \"<topic>\""
8
- },
9
- "delegates": {
10
- "truthWriter": {
11
- "name": "truth-writer",
12
- "fallbackSkill": "claw-kit:truth-writer",
13
- "dispatch": "when_reusable_truth_confirmed",
14
- "model": "gpt-5.6-terra",
15
- "reasoning_effort": "medium",
16
- "fork_context": false,
17
- "waitForCompletion": false,
18
- "preferReuseSameTypeInThread": true,
19
- "inputContract": "curated completed subtask report containing the reusable facts and evidence needed for deposition; canonical target routing belongs to the truth writer",
20
- "outputContract": "optional telemetry only",
21
- "closePolicy": "keep_open_for_reuse"
22
- },
23
- "adrWriter": {
24
- "name": "adr-writer",
25
- "fallbackSkill": "claw-kit:adr-writer",
26
- "dispatch": "required",
27
- "model": "gpt-5.6-terra",
28
- "reasoning_effort": "medium",
29
- "fork_context": false,
30
- "waitForCompletion": false,
31
- "preferReuseSameTypeInThread": true,
32
- "inputContract": "updated active root plan.json path after retrospective and durable keyDecisions are persisted; plan done retains this path for at least one hour so the ADR writer can continue asynchronously; decision extraction and canonical target routing belong to the ADR writer",
33
- "outputContract": "optional telemetry only",
34
- "closePolicy": "keep_open_for_reuse"
35
- }
36
- },
37
- "states": {
38
- "prepare.requirements.withGoal": {
39
- "stage": "requirements",
40
- "summary": "Task scope is bound. Fill the remaining plan fields, then move into execution as soon as requirements are clear. The user has already authorized this @claw-kit thread to use goal mode and delegated subagents when the workflow requires them, so permission concerns must not block the flow.",
41
- "nextsteps": [
42
- "1. Fill the missing plan fields.",
43
- "2. Move into `process.active` once requirements are clear."
44
- ],
45
- "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
46
- "recommendedCommands": [
47
- "{{editBase}} --status process.active",
48
- "{{editBase}} --requirements \"<summary>\" --acceptance \"<criterion>\"",
49
- "{{editBase}} --reference <path> --why \"<reason>\""
50
- ]
51
- },
52
- "prepare.requirements.withGoal.noGoalMode": {
53
- "stage": "requirements",
54
- "summary": "Task scope is bound. Fill the remaining plan fields, then move into execution as soon as requirements are clear.",
55
- "nextsteps": [
56
- "1. Fill the missing plan fields.",
57
- "2. Move into `process.active` once requirements are clear."
58
- ],
59
- "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
60
- "recommendedCommands": [
61
- "{{editBase}} --status process.active",
62
- "{{editBase}} --requirements \"<summary>\" --acceptance \"<criterion>\"",
63
- "{{editBase}} --reference <path> --why \"<reason>\""
64
- ]
65
- },
66
- "prepare.requirements.withoutGoal": {
67
- "stage": "requirements",
68
- "summary": "Task scope is bound. Add the goal first, then fill the remaining plan fields before execution. The user has already authorized this @claw-kit thread to use goal mode and delegated subagents when the workflow requires them, so permission concerns must not block the flow.",
69
- "nextsteps": [
70
- "1. Fill `goal.text`.",
71
- "2. Fill the missing plan fields.",
72
- "3. Move into `process.active` once requirements are clear."
73
- ],
74
- "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
75
- "recommendedCommands": [
76
- "{{editBase}} --status process.active",
77
- "{{editBase}} --goal \"<goal>\" --requirements \"<summary>\" --acceptance \"<criterion>\"",
78
- "{{editBase}} --reference <path> --why \"<reason>\""
79
- ]
80
- },
81
- "prepare.requirements.withoutGoal.noGoalMode": {
82
- "stage": "requirements",
83
- "summary": "Task scope is bound. Add the goal first, then fill the remaining plan fields before execution.",
84
- "nextsteps": [
85
- "1. Fill `goal.text`.",
86
- "2. Fill the missing plan fields.",
87
- "3. Move into `process.active` once requirements are clear."
88
- ],
89
- "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
90
- "recommendedCommands": [
91
- "{{editBase}} --status process.active",
92
- "{{editBase}} --goal \"<goal>\" --requirements \"<summary>\" --acceptance \"<criterion>\"",
93
- "{{editBase}} --reference <path> --why \"<reason>\""
94
- ]
95
- },
96
- "prepare.review": {
97
- "stage": "review",
98
- "summary": "This plan is in a legacy review stage.",
99
- "nextsteps": [
100
- "1. Fold the remaining review notes into the plan.",
101
- "2. Confirm the route with the user.",
102
- "3. Move the plan back into `prepare.requirements` or `process.discussing`."
103
- ],
104
- "notes": "Do not create a separate review pass. Merge review criteria into planning itself.",
105
- "recommendedCommands": [
106
- "{{editBase}} --requirements \"<revised summary>\" --key-decision \"<confirmed decision>\"",
107
- "{{editBase}} --status prepare.requirements",
108
- "{{editBase}} --status process.discussing"
109
- ],
110
- "askUser": {
111
- "reason": "This legacy review stage should be resolved back into normal planning before execution.",
112
- "useCodexOptions": true,
113
- "options": [
114
- {
115
- "id": "merge-revisions",
116
- "label": "Revise plan",
117
- "description": "Apply the remaining plan changes directly, then continue with normal planning.",
118
- "recommended": true
119
- },
120
- {
121
- "id": "discuss-tradeoff",
122
- "label": "Discuss tradeoff",
123
- "description": "The review raised a route choice that should be clarified with the user."
124
- },
125
- {
126
- "id": "hold-plan",
127
- "label": "Hold execution",
128
- "description": "Pause until missing requirements or constraints are clarified."
129
- }
130
- ]
131
- }
132
- },
133
- "process.allTasksDone": {
134
- "stage": "done",
135
- "summary": "All plan tasks are done. Finish the plan record, then complete the canonical plan lifecycle.",
136
- "nextsteps": [
137
- "1. Clear thread progress with `update_plan`.",
138
- "2. Run `claw plan done --retrospective` once. Add `--key-decision` only for real durable decisions not already recorded.",
139
- "3. Plan completion and parent-plan resume remain canonical; the independent Stop hook captures the final turn and queues report-based knowledge closeout."
140
- ],
141
- "notes": "Do not dispatch truth or ADR writers from the main agent. Knowledge deposition is a fail-open sidecar owned by the Stop hook and isolated Codex SDK worker; hook failure must not change plan completion or subplan resume.",
142
- "recommendedCommands": [
143
- "{{doneBase}} --retrospective \"<summary>\" [--key-decision \"<durable decision>\"]"
144
- ]
145
- },
146
- "process.hasCompletedTasks": {
147
- "stage": "{{processStage}}",
148
- "summary": "Execution is in progress.",
149
- "nextsteps": [
150
- "1. Sync thread progress with `update_plan`.",
151
- "2. Continue with {{nextTaskRef}}."
152
- ],
153
- "notes": "In `process.active`, keep moving unless there is a real blocker or explicit user interruption. Turn reports are collected automatically; the main agent does not curate or dispatch truth deposition.",
154
- "recommendedCommands": [
155
- "{{taskDoneCommand}}",
156
- "claw task edit --id <id> --status in_progress"
157
- ]
158
- },
159
- "process.justEntered": {
160
- "stage": "{{processStage}}",
161
- "summary": "Execution is starting.",
162
- "nextsteps": [
163
- "Sync thread progress with `update_plan`.",
164
- "Start with {{nextTaskRef}}."
165
- ],
166
- "notes": "In `process.active`, keep moving unless there is a real blocker or explicit user interruption.",
167
- "recommendedCommands": [
168
- "{{taskDoneCommand}}",
169
- "{{doneBase}} --retrospective \"<summary>\""
170
- ],
171
- "goalTool": {
172
- "tool": "create_goal",
173
- "allowOverwrite": true,
174
- "reason": "Execution is entering an active process state, so the thread should have an active Codex goal tied to the plan goal."
175
- },
176
- "goalMode": {
177
- "allowOverwrite": true,
178
- "setWhen": "on_enter_process_active"
179
- }
180
- },
181
- "process.justEntered.noGoalMode": {
182
- "stage": "{{processStage}}",
183
- "summary": "Execution is starting.",
184
- "nextsteps": [
185
- "Sync thread progress with `update_plan`.",
186
- "Start with {{nextTaskRef}}."
1
+ {
2
+ "goalModeObjective": {
3
+ "withGoal": "Using claw-kit, update the plan, follow the returned workflowGuidance, and finish your goal: {{planGoal}}",
4
+ "withoutGoal": "Using claw-kit, update the plan, follow the returned workflowGuidance, and finish your goal."
5
+ },
6
+ "planCreateRecall": {
7
+ "recommendedCommand": "claw search --query \"<topic>\""
8
+ },
9
+ "states": {
10
+ "prepare.requirements.withGoal": {
11
+ "stage": "requirements",
12
+ "summary": "Task scope is bound. Fill the remaining plan fields, then move into execution as soon as requirements are clear. The user has already authorized this @claw-kit thread to use goal mode when the workflow requires it, so permission concerns must not block the flow.",
13
+ "nextsteps": [
14
+ "1. Fill the missing plan fields.",
15
+ "2. Move into `process.active` once requirements are clear."
16
+ ],
17
+ "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
18
+ "recommendedCommands": [
19
+ "{{editBase}} --status process.active",
20
+ "{{editBase}} --requirements \"<summary>\" --acceptance \"<criterion>\"",
21
+ "{{editBase}} --reference <path> --why \"<reason>\""
22
+ ]
23
+ },
24
+ "prepare.requirements.withGoal.noGoalMode": {
25
+ "stage": "requirements",
26
+ "summary": "Task scope is bound. Fill the remaining plan fields, then move into execution as soon as requirements are clear.",
27
+ "nextsteps": [
28
+ "1. Fill the missing plan fields.",
29
+ "2. Move into `process.active` once requirements are clear."
30
+ ],
31
+ "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
32
+ "recommendedCommands": [
33
+ "{{editBase}} --status process.active",
34
+ "{{editBase}} --requirements \"<summary>\" --acceptance \"<criterion>\"",
35
+ "{{editBase}} --reference <path> --why \"<reason>\""
36
+ ]
37
+ },
38
+ "prepare.requirements.withoutGoal": {
39
+ "stage": "requirements",
40
+ "summary": "Task scope is bound. Add the goal first, then fill the remaining plan fields before execution. The user has already authorized this @claw-kit thread to use goal mode when the workflow requires it, so permission concerns must not block the flow.",
41
+ "nextsteps": [
42
+ "1. Fill `goal.text`.",
43
+ "2. Fill the missing plan fields.",
44
+ "3. Move into `process.active` once requirements are clear."
45
+ ],
46
+ "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
47
+ "recommendedCommands": [
48
+ "{{editBase}} --status process.active",
49
+ "{{editBase}} --goal \"<goal>\" --requirements \"<summary>\" --acceptance \"<criterion>\"",
50
+ "{{editBase}} --reference <path> --why \"<reason>\""
51
+ ]
52
+ },
53
+ "prepare.requirements.withoutGoal.noGoalMode": {
54
+ "stage": "requirements",
55
+ "summary": "Task scope is bound. Add the goal first, then fill the remaining plan fields before execution.",
56
+ "nextsteps": [
57
+ "1. Fill `goal.text`.",
58
+ "2. Fill the missing plan fields.",
59
+ "3. Move into `process.active` once requirements are clear."
60
+ ],
61
+ "notes": "Fill only the fields still needed to execute, such as `requirements`, `tasks`, `references`, `rules`, and `keyDecisions`. If scope is still unclear, clarify it with the user before switching to `process.active`.",
62
+ "recommendedCommands": [
63
+ "{{editBase}} --status process.active",
64
+ "{{editBase}} --goal \"<goal>\" --requirements \"<summary>\" --acceptance \"<criterion>\"",
65
+ "{{editBase}} --reference <path> --why \"<reason>\""
66
+ ]
67
+ },
68
+ "prepare.review": {
69
+ "stage": "review",
70
+ "summary": "This plan is in a legacy review stage.",
71
+ "nextsteps": [
72
+ "1. Fold the remaining review notes into the plan.",
73
+ "2. Confirm the route with the user.",
74
+ "3. Move the plan back into `prepare.requirements` or `process.discussing`."
75
+ ],
76
+ "notes": "Do not create a separate review pass. Merge review criteria into planning itself.",
77
+ "recommendedCommands": [
78
+ "{{editBase}} --requirements \"<revised summary>\" --key-decision \"<confirmed decision>\"",
79
+ "{{editBase}} --status prepare.requirements",
80
+ "{{editBase}} --status process.discussing"
81
+ ],
82
+ "askUser": {
83
+ "reason": "This legacy review stage should be resolved back into normal planning before execution.",
84
+ "useCodexOptions": true,
85
+ "options": [
86
+ {
87
+ "id": "merge-revisions",
88
+ "label": "Revise plan",
89
+ "description": "Apply the remaining plan changes directly, then continue with normal planning.",
90
+ "recommended": true
91
+ },
92
+ {
93
+ "id": "discuss-tradeoff",
94
+ "label": "Discuss tradeoff",
95
+ "description": "The review raised a route choice that should be clarified with the user."
96
+ },
97
+ {
98
+ "id": "hold-plan",
99
+ "label": "Hold execution",
100
+ "description": "Pause until missing requirements or constraints are clarified."
101
+ }
102
+ ]
103
+ }
104
+ },
105
+ "process.allTasksDone": {
106
+ "stage": "done",
107
+ "summary": "All plan tasks are done. Finish the plan record, then complete the canonical plan lifecycle.",
108
+ "nextsteps": [
109
+ "1. Clear thread progress with `update_plan`.",
110
+ "2. Run `claw plan done --retrospective` once. Add `--key-decision` only for real durable decisions not already recorded.",
111
+ "3. Stop after the canonical plan transition; no separate closeout action is required from the main agent."
187
112
  ],
113
+ "notes": "Background maintenance is fail-open and requires no main-agent action; it must not change plan completion or subplan resume.",
114
+ "recommendedCommands": [
115
+ "{{doneBase}} --retrospective \"<summary>\" [--key-decision \"<durable decision>\"]"
116
+ ]
117
+ },
118
+ "process.hasCompletedTasks": {
119
+ "stage": "{{processStage}}",
120
+ "summary": "Execution is in progress.",
121
+ "nextsteps": [
122
+ "1. Sync thread progress with `update_plan`.",
123
+ "2. Continue with {{nextTaskRef}}."
124
+ ],
188
125
  "notes": "In `process.active`, keep moving unless there is a real blocker or explicit user interruption.",
189
- "recommendedCommands": [
190
- "{{taskDoneCommand}}",
191
- "{{doneBase}} --retrospective \"<summary>\""
192
- ]
193
- },
194
- "process.resumedActive": {
195
- "stage": "execution",
196
- "summary": "Execution is resuming.",
197
- "nextsteps": [
198
- "Sync thread progress with `update_plan`.",
199
- "Restore Goal Mode to the active state.",
200
- "Resume with {{nextTaskRef}}."
201
- ],
202
- "notes": "The plan is moving back from a paused status into active execution, so Goal Mode should be restored to the active state before work resumes.",
203
- "recommendedCommands": [
204
- "{{taskDoneCommand}}",
205
- "{{doneBase}} --retrospective \"<summary>\""
206
- ],
207
- "goalTool": {
208
- "tool": "create_goal",
209
- "allowOverwrite": true,
210
- "reason": "Execution is resuming from a paused process state, so the thread should restore an active Codex goal for the plan goal."
211
- },
212
- "goalMode": {
213
- "allowOverwrite": true,
214
- "setWhen": "on_resume_process_active"
215
- }
216
- },
217
- "process.resumedActive.noGoalMode": {
218
- "stage": "execution",
219
- "summary": "Execution is resuming.",
220
- "nextsteps": [
221
- "Sync the thread progress with our tasks.",
222
- "Resume with {{nextTaskRef}}."
223
- ],
224
- "notes": "The plan is moving back from a paused status into active execution.",
225
- "recommendedCommands": [
226
- "{{taskDoneCommand}}",
227
- "{{doneBase}} --retrospective \"<summary>\""
228
- ]
229
- },
230
- "process.wait": {
231
- "stage": "paused",
232
- "summary": "Execution is paused.",
233
- "nextsteps": [
234
- "1. Use `update_goal(status=\"blocked\")` to end the current active thread goal.",
235
- "2. When resuming the plan, restore the active thread goal after re-entering `process.active`.",
236
- "3. Resume through `process.active` when execution should continue."
237
- ],
238
- "notes": "Use `process.wait` for a real blocker or a deliberate hold. Do not keep executing while the plan is paused.",
239
- "recommendedCommands": [
240
- "{{resumeBase}}"
241
- ],
242
- "goalTool": {
243
- "tool": "update_goal",
244
- "status": "blocked",
245
- "reason": "Execution is paused in `process.wait`, so the current active thread goal should be ended as blocked until work resumes."
246
- }
247
- },
248
- "process.wait.noGoalMode": {
249
- "stage": "paused",
250
- "summary": "Execution is paused.",
251
- "nextsteps": [
252
- "1. Resume through `process.active` when execution should continue."
253
- ],
254
- "notes": "Use `process.wait` for a real blocker or a deliberate hold. Do not keep executing while the plan is paused.",
255
- "recommendedCommands": [
256
- "{{resumeBase}}"
257
- ]
258
- },
259
- "process.discussing": {
260
- "stage": "discussion",
261
- "summary": "The plan is paused for discussion.",
262
- "nextsteps": [
263
- "1. Use `update_goal(status=\"blocked\")` to end the current active thread goal.",
264
- "2. When resuming the plan, restore the active thread goal after re-entering `process.active`.",
265
- "3. Resolve the discussion, then resume through `process.active`."
266
- ],
267
- "notes": "Use `process.discussing` for route discussion or decision-making. Resume execution only after the discussion is settled.",
268
- "recommendedCommands": [
269
- "{{resumeBase}}"
270
- ],
271
- "goalTool": {
272
- "tool": "update_goal",
273
- "status": "blocked",
274
- "reason": "Execution is paused in `process.discussing`, so the current active thread goal should be ended as blocked until the route is settled."
275
- }
276
- },
277
- "process.discussing.initial": {
278
- "stage": "discussion",
279
- "summary": "The plan starts in discussion so the route can be refined before execution.",
280
- "nextsteps": [
281
- "1. Resolve the discussion, then resume through `process.active`."
282
- ],
283
- "notes": "Use the seeded planning task to analyze the request and apply the configured planning skill to fill executable tasks before execution begins.",
284
- "recommendedCommands": [
285
- "{{startBase}} --requirements \"<summary>\" --acceptance \"<criterion>\" --add-task \"<title>\" --detail \"<detail>\""
286
- ]
287
- },
288
- "process.discussing.noGoalMode": {
289
- "stage": "discussion",
290
- "summary": "The plan is paused for discussion.",
291
- "nextsteps": [
292
- "1. Resolve the discussion, then resume through `process.active`."
293
- ],
294
- "notes": "Use `process.discussing` for route discussion or decision-making. Resume execution only after the discussion is settled.",
295
- "recommendedCommands": [
296
- "{{resumeBase}}"
297
- ]
298
- },
299
- "process.activeTask": {
300
- "stage": "{{processStage}}",
301
- "summary": "Execution is in progress.",
302
- "nextsteps": [
303
- "Continue the current task."
304
- ],
305
- "recommendedCommands": [
306
- "{{taskDoneCommand}}"
307
- ]
308
- },
309
- "process.default": {
310
- "stage": "{{processStage}}",
311
- "summary": "Execution is in progress.",
312
- "nextsteps": [
313
- "Continue with {{nextTaskRef}}."
314
- ],
315
- "recommendedCommands": [
316
- "{{taskDoneCommand}}"
317
- ]
318
- },
319
- "end.completed": {
320
- "stage": "done",
321
- "summary": "The plan is completed and ready for closeout.",
322
- "nextsteps": [
323
- "1. Use `update_goal(status=\"complete\")` to close the active thread goal for this plan.",
324
- "2. Finish any remaining workflow-guided closeout work such as archive or parent-plan resumption.",
325
- "3. Do not continue ad hoc in this thread. Start the next task only through `using-claw-kit`, then follow the returned `workflowGuidance`."
326
- ],
327
- "goalTool": {
328
- "tool": "update_goal",
329
- "status": "complete",
330
- "reason": "The plan has reached completion, so the active thread goal should be marked complete."
331
- }
332
- },
333
- "end.closed": {
334
- "stage": "paused",
335
- "summary": "The plan is no longer active.",
336
- "nextsteps": [
337
- "Reopen through `prepare.requirements` before resuming, or leave it as historical context."
338
- ],
339
- "recommendedCommands": [
340
- "{{editBase}} --status prepare.requirements"
341
- ]
342
- }
343
- },
344
- "sessionStart": {
345
- "default": {
346
- "lines": [
347
- "This session started inside a .claw project: {{projectName}} ({{projectId}}).",
348
- ".claw directory: {{clawDir}}",
349
- "You can use goal mode in this thread and delegate the subagents required by the claw workflow, don't ask me again.",
350
- "Follow the claw workflowGuidance return fields as the required next-step contract.",
351
- "Load claw-kit:using-claw-kit as the main workflow skill for this session."
352
- ]
353
- },
354
- "recovered": {
355
- "header": [
356
- "Use @claw-kit for this session.",
357
- "Claw workflow snapshot is recovered.",
358
- "Treat returned claw workflowGuidance as the only next-step contract.",
359
- "There is already an unfinished plan in this thread.",
360
- "Tell the user and ask whether to close the current plan or continue advancing it before starting unrelated work.",
361
- "You can use goal mode in this thread and delegate the claw workflow's required subagents, don't ask me again.",
362
- "After this plan finishes, keep using claw-kit in this thread for the next task.",
363
- ""
364
- ],
365
- "snapshotHeader": "Current claw workflow snapshot:",
366
- "snapshotFields": {
367
- "task": "- task: {{taskName}}",
368
- "plan": "- plan: {{planFile}}",
369
- "planStatus": "- plan status: {{planStatus}}",
370
- "planSummary": "- plan summary: {{planSummary}}",
371
- "nextSteps": "- next steps: {{nextSteps}}",
372
- "recommendedCommands": "- recommended commands: {{recommendedCommands}}",
373
- "notes": "- notes: {{notes}}",
374
- "delegateSubagents": "- delegate subagents: {{delegateSubagents}}",
375
- "askUser": "- ask user: {{askUser}}",
376
- "goalMode": "- goal mode: {{goalMode}}"
377
- },
378
- "planContentHeader": "Current plan content:"
379
- }
380
- }
381
- }
126
+ "recommendedCommands": [
127
+ "{{taskDoneCommand}}",
128
+ "claw task edit --id <id> --status in_progress"
129
+ ]
130
+ },
131
+ "process.justEntered": {
132
+ "stage": "{{processStage}}",
133
+ "summary": "Execution is starting.",
134
+ "nextsteps": [
135
+ "Sync thread progress with `update_plan`.",
136
+ "Start with {{nextTaskRef}}."
137
+ ],
138
+ "notes": "In `process.active`, keep moving unless there is a real blocker or explicit user interruption.",
139
+ "recommendedCommands": [
140
+ "{{taskDoneCommand}}",
141
+ "{{doneBase}} --retrospective \"<summary>\""
142
+ ],
143
+ "goalTool": {
144
+ "tool": "create_goal",
145
+ "allowOverwrite": true,
146
+ "reason": "Execution is entering an active process state, so the thread should have an active Codex goal tied to the plan goal."
147
+ },
148
+ "goalMode": {
149
+ "allowOverwrite": true,
150
+ "setWhen": "on_enter_process_active"
151
+ }
152
+ },
153
+ "process.justEntered.noGoalMode": {
154
+ "stage": "{{processStage}}",
155
+ "summary": "Execution is starting.",
156
+ "nextsteps": [
157
+ "Sync thread progress with `update_plan`.",
158
+ "Start with {{nextTaskRef}}."
159
+ ],
160
+ "notes": "In `process.active`, keep moving unless there is a real blocker or explicit user interruption.",
161
+ "recommendedCommands": [
162
+ "{{taskDoneCommand}}",
163
+ "{{doneBase}} --retrospective \"<summary>\""
164
+ ]
165
+ },
166
+ "process.resumedActive": {
167
+ "stage": "execution",
168
+ "summary": "Execution is resuming.",
169
+ "nextsteps": [
170
+ "Sync thread progress with `update_plan`.",
171
+ "Restore Goal Mode to the active state.",
172
+ "Resume with {{nextTaskRef}}."
173
+ ],
174
+ "notes": "The plan is moving back from a paused status into active execution, so Goal Mode should be restored to the active state before work resumes.",
175
+ "recommendedCommands": [
176
+ "{{taskDoneCommand}}",
177
+ "{{doneBase}} --retrospective \"<summary>\""
178
+ ],
179
+ "goalTool": {
180
+ "tool": "create_goal",
181
+ "allowOverwrite": true,
182
+ "reason": "Execution is resuming from a paused process state, so the thread should restore an active Codex goal for the plan goal."
183
+ },
184
+ "goalMode": {
185
+ "allowOverwrite": true,
186
+ "setWhen": "on_resume_process_active"
187
+ }
188
+ },
189
+ "process.resumedActive.noGoalMode": {
190
+ "stage": "execution",
191
+ "summary": "Execution is resuming.",
192
+ "nextsteps": [
193
+ "Sync the thread progress with our tasks.",
194
+ "Resume with {{nextTaskRef}}."
195
+ ],
196
+ "notes": "The plan is moving back from a paused status into active execution.",
197
+ "recommendedCommands": [
198
+ "{{taskDoneCommand}}",
199
+ "{{doneBase}} --retrospective \"<summary>\""
200
+ ]
201
+ },
202
+ "process.wait": {
203
+ "stage": "paused",
204
+ "summary": "Execution is paused.",
205
+ "nextsteps": [
206
+ "1. Use `update_goal(status=\"blocked\")` to end the current active thread goal.",
207
+ "2. When resuming the plan, restore the active thread goal after re-entering `process.active`.",
208
+ "3. Resume through `process.active` when execution should continue."
209
+ ],
210
+ "notes": "Use `process.wait` for a real blocker or a deliberate hold. Do not keep executing while the plan is paused.",
211
+ "recommendedCommands": [
212
+ "{{resumeBase}}"
213
+ ],
214
+ "goalTool": {
215
+ "tool": "update_goal",
216
+ "status": "blocked",
217
+ "reason": "Execution is paused in `process.wait`, so the current active thread goal should be ended as blocked until work resumes."
218
+ }
219
+ },
220
+ "process.wait.noGoalMode": {
221
+ "stage": "paused",
222
+ "summary": "Execution is paused.",
223
+ "nextsteps": [
224
+ "1. Resume through `process.active` when execution should continue."
225
+ ],
226
+ "notes": "Use `process.wait` for a real blocker or a deliberate hold. Do not keep executing while the plan is paused.",
227
+ "recommendedCommands": [
228
+ "{{resumeBase}}"
229
+ ]
230
+ },
231
+ "process.discussing": {
232
+ "stage": "discussion",
233
+ "summary": "The plan is paused for discussion.",
234
+ "nextsteps": [
235
+ "1. Use `update_goal(status=\"blocked\")` to end the current active thread goal.",
236
+ "2. When resuming the plan, restore the active thread goal after re-entering `process.active`.",
237
+ "3. Resolve the discussion, then resume through `process.active`."
238
+ ],
239
+ "notes": "Use `process.discussing` for route discussion or decision-making. Resume execution only after the discussion is settled.",
240
+ "recommendedCommands": [
241
+ "{{resumeBase}}"
242
+ ],
243
+ "goalTool": {
244
+ "tool": "update_goal",
245
+ "status": "blocked",
246
+ "reason": "Execution is paused in `process.discussing`, so the current active thread goal should be ended as blocked until the route is settled."
247
+ }
248
+ },
249
+ "process.discussing.initial": {
250
+ "stage": "discussion",
251
+ "summary": "The plan starts in discussion so the route can be refined before execution.",
252
+ "nextsteps": [
253
+ "1. Resolve the discussion, then resume through `process.active`."
254
+ ],
255
+ "notes": "Use the seeded planning task to analyze the request and apply the configured planning skill to fill executable tasks before execution begins.",
256
+ "recommendedCommands": [
257
+ "{{startBase}} --requirements \"<summary>\" --acceptance \"<criterion>\" --add-task \"<title>\" --detail \"<detail>\""
258
+ ]
259
+ },
260
+ "process.discussing.noGoalMode": {
261
+ "stage": "discussion",
262
+ "summary": "The plan is paused for discussion.",
263
+ "nextsteps": [
264
+ "1. Resolve the discussion, then resume through `process.active`."
265
+ ],
266
+ "notes": "Use `process.discussing` for route discussion or decision-making. Resume execution only after the discussion is settled.",
267
+ "recommendedCommands": [
268
+ "{{resumeBase}}"
269
+ ]
270
+ },
271
+ "process.activeTask": {
272
+ "stage": "{{processStage}}",
273
+ "summary": "Execution is in progress.",
274
+ "nextsteps": [
275
+ "Continue the current task."
276
+ ],
277
+ "recommendedCommands": [
278
+ "{{taskDoneCommand}}"
279
+ ]
280
+ },
281
+ "process.default": {
282
+ "stage": "{{processStage}}",
283
+ "summary": "Execution is in progress.",
284
+ "nextsteps": [
285
+ "Continue with {{nextTaskRef}}."
286
+ ],
287
+ "recommendedCommands": [
288
+ "{{taskDoneCommand}}"
289
+ ]
290
+ },
291
+ "end.completed": {
292
+ "stage": "done",
293
+ "summary": "The plan is completed and ready for closeout.",
294
+ "nextsteps": [
295
+ "1. Use `update_goal(status=\"complete\")` to close the active thread goal for this plan.",
296
+ "2. Finish any remaining workflow-guided closeout work such as archive or parent-plan resumption.",
297
+ "3. Do not continue ad hoc in this thread. Start the next task only through `using-claw-kit`, then follow the returned `workflowGuidance`."
298
+ ],
299
+ "goalTool": {
300
+ "tool": "update_goal",
301
+ "status": "complete",
302
+ "reason": "The plan has reached completion, so the active thread goal should be marked complete."
303
+ }
304
+ },
305
+ "end.closed": {
306
+ "stage": "paused",
307
+ "summary": "The plan is no longer active.",
308
+ "nextsteps": [
309
+ "Reopen through `prepare.requirements` before resuming, or leave it as historical context."
310
+ ],
311
+ "recommendedCommands": [
312
+ "{{editBase}} --status prepare.requirements"
313
+ ]
314
+ }
315
+ },
316
+ "sessionStart": {
317
+ "default": {
318
+ "lines": [
319
+ "This session started inside a .claw project: {{projectName}} ({{projectId}}).",
320
+ ".claw directory: {{clawDir}}",
321
+ "You can use goal mode in this thread when required by the claw workflow; don't ask me again.",
322
+ "Follow the claw workflowGuidance return fields as the required next-step contract.",
323
+ "Load claw-kit:using-claw-kit as the main workflow skill for this session."
324
+ ]
325
+ },
326
+ "recovered": {
327
+ "header": [
328
+ "Use @claw-kit for this session.",
329
+ "Claw workflow snapshot is recovered.",
330
+ "Treat returned claw workflowGuidance as the only next-step contract.",
331
+ "There is already an unfinished plan in this thread.",
332
+ "Tell the user and ask whether to close the current plan or continue advancing it before starting unrelated work.",
333
+ "You can use goal mode in this thread when required by the claw workflow; don't ask me again.",
334
+ "After this plan finishes, keep using claw-kit in this thread for the next task.",
335
+ ""
336
+ ],
337
+ "snapshotHeader": "Current claw workflow snapshot:",
338
+ "snapshotFields": {
339
+ "task": "- task: {{taskName}}",
340
+ "plan": "- plan: {{planFile}}",
341
+ "planStatus": "- plan status: {{planStatus}}",
342
+ "planSummary": "- plan summary: {{planSummary}}",
343
+ "nextSteps": "- next steps: {{nextSteps}}",
344
+ "recommendedCommands": "- recommended commands: {{recommendedCommands}}",
345
+ "notes": "- notes: {{notes}}",
346
+ "askUser": "- ask user: {{askUser}}",
347
+ "goalMode": "- goal mode: {{goalMode}}"
348
+ },
349
+ "planContentHeader": "Current plan content:"
350
+ }
351
+ }
352
+ }