@veewo/claw-core 0.1.60 → 0.1.61

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