@bendyline/gilde 0.1.53 → 0.1.55

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 (34) hide show
  1. package/authoring/chat-models/qwen3.5-27b-q4.json +147 -0
  2. package/authoring/gstack/evals/cso.json +21 -18
  3. package/authoring/gstack/evals/investigate.json +25 -22
  4. package/authoring/gstack/evals/plan-ceo-review.json +19 -16
  5. package/authoring/gstack/overlays/retro.json +2 -2
  6. package/authoring/gstack/wave.json +2 -2
  7. package/data/chat-models/index.json +1 -1
  8. package/data/chat-models/qw/qwen3.5-27b-q4/manifest.json +217 -0
  9. package/data/chat-models/qw/qwen3.5-27b-q4/versions/1.0.0/manifest.json +90 -0
  10. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.7/craftbook.json +620 -0
  11. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.7/test.json +376 -0
  12. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.7/craftbook.json +616 -0
  13. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.7/test.json +201 -0
  14. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.7/craftbook.json +566 -0
  15. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.7/test.json +191 -0
  16. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/craftbook.json +595 -0
  17. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/test.json +139 -0
  18. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.7/craftbook.json +566 -0
  19. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.7/test.json +141 -0
  20. package/data/craftbook-templates/index.json +1 -1
  21. package/data/craftbook-templates/pl/plan/versions/1.0.2/craftbook.json +222 -0
  22. package/data/craftbook-templates/pl/plan/versions/1.0.2/test.json +91 -0
  23. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.7/craftbook.json +595 -0
  24. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.7/test.json +157 -0
  25. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/craftbook.json +597 -0
  26. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/test.json +157 -0
  27. package/data/craftbook-templates/sh/ship/versions/1.1.2/craftbook.json +346 -0
  28. package/data/craftbook-templates/sh/ship/versions/1.1.2/test.json +228 -0
  29. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.7/craftbook.json +599 -0
  30. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.7/test.json +162 -0
  31. package/data/craftbook-templates/te/technical-documentation/versions/2.0.7/craftbook.json +577 -0
  32. package/data/craftbook-templates/te/technical-documentation/versions/2.0.7/test.json +174 -0
  33. package/package.json +1 -1
  34. package/schemas/craftbook-test.schema.json +7 -1
@@ -0,0 +1,595 @@
1
+ {
2
+ "id": "root-cause-investigation",
3
+ "name": "Root-Cause Investigation",
4
+ "description": "Debug systematically: reproduce the failure and find the true root cause before changing any code, then fix and verify. Enforces a no-fix-without-diagnosis discipline.",
5
+ "basedOn": {
6
+ "name": "gstack",
7
+ "url": "https://github.com/garrytan/gstack"
8
+ },
9
+ "plan": "Reproduce first, diagnose second, change code only after the evidence identifies a root cause. Keep an explicit hypothesis ledger so plausible stories cannot silently become facts. Prefer the smallest experiment that separates competing explanations. The final report must connect symptom, causal mechanism, fix, and regression proof with inspectable paths and command results.",
10
+ "entryStepId": "reproduce",
11
+ "triggers": [
12
+ "debug this",
13
+ "fix this bug",
14
+ "why is this broken",
15
+ "root cause analysis",
16
+ "investigate this error",
17
+ "investigate this bug",
18
+ "root cause this",
19
+ "why is this failing",
20
+ "figure out why it breaks",
21
+ "diagnose this incident",
22
+ "investigate this",
23
+ "find the bug",
24
+ "root cause"
25
+ ],
26
+ "command": "root-cause-investigation",
27
+ "paramSchema": {
28
+ "type": "object",
29
+ "properties": {
30
+ "workPath": {
31
+ "type": "string",
32
+ "title": "Working folder",
33
+ "description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
34
+ "default": "{{task.dir}}"
35
+ }
36
+ }
37
+ },
38
+ "steps": [
39
+ {
40
+ "id": "reproduce",
41
+ "name": "Reproduce and bound the failure",
42
+ "description": "Establish a stable failing case, expected behavior, environment, and blast radius.",
43
+ "prompt": "Read the request, relevant code, existing tests, logs, and configuration. Reproduce the problem with the smallest safe case you can run. Record exact inputs, expected and actual results, environment details, frequency, and whether the failure is deterministic. If it cannot be reproduced, document the attempts and the missing observation needed; do not invent a cause or edit production code.\n\nObservable handoff: write the completed result to `investigations/reproduction.md` in the workspace with `write_file`. Do not merely describe what the file would contain. Re-read it with `read_file` before finishing this phase and repair any incomplete sections.",
44
+ "suggestedRole": "debugging engineer",
45
+ "advanceWhen": {
46
+ "file": "investigations/reproduction.md",
47
+ "minBytes": 700,
48
+ "sniff": "nonempty",
49
+ "requireChange": true,
50
+ "goto": "diagnose"
51
+ },
52
+ "gate": {
53
+ "at": "completion",
54
+ "checks": [
55
+ {
56
+ "kind": "minBytes",
57
+ "file": "investigations/reproduction.md",
58
+ "bytes": 700
59
+ },
60
+ {
61
+ "kind": "sniff",
62
+ "file": "investigations/reproduction.md",
63
+ "sniff": "nonempty"
64
+ },
65
+ {
66
+ "kind": "contains",
67
+ "file": "investigations/reproduction.md",
68
+ "pattern": "^##\\s+Symptom",
69
+ "flags": "im",
70
+ "label": "Symptom section"
71
+ },
72
+ {
73
+ "kind": "contains",
74
+ "file": "investigations/reproduction.md",
75
+ "pattern": "^##\\s+Minimal reproduction",
76
+ "flags": "im",
77
+ "label": "Minimal reproduction section"
78
+ },
79
+ {
80
+ "kind": "contains",
81
+ "file": "investigations/reproduction.md",
82
+ "pattern": "^##\\s+Expected",
83
+ "flags": "im",
84
+ "label": "Expected behavior section"
85
+ },
86
+ {
87
+ "kind": "contains",
88
+ "file": "investigations/reproduction.md",
89
+ "pattern": "^##\\s+Actual",
90
+ "flags": "im",
91
+ "label": "Actual behavior section"
92
+ },
93
+ {
94
+ "kind": "contains",
95
+ "file": "investigations/reproduction.md",
96
+ "pattern": "^##\\s+Evidence",
97
+ "flags": "im",
98
+ "label": "Evidence section"
99
+ }
100
+ ],
101
+ "onReject": "reproduce",
102
+ "maxAttempts": 3
103
+ },
104
+ "next": "diagnose",
105
+ "toolPolicy": {
106
+ "disallowBuiltinToolsets": [
107
+ "ai-apps",
108
+ "archives",
109
+ "artifacts",
110
+ "audio",
111
+ "browser-automation",
112
+ "code-execution",
113
+ "craftbooks",
114
+ "data-tables",
115
+ "entity-intel",
116
+ "git",
117
+ "image-intel",
118
+ "images",
119
+ "role-delegation",
120
+ "role-delegation-escalation",
121
+ "security-intel",
122
+ "team-management",
123
+ "videos",
124
+ "web"
125
+ ],
126
+ "outputMedium": "workspace"
127
+ }
128
+ },
129
+ {
130
+ "id": "diagnose",
131
+ "name": "Prove the root cause",
132
+ "description": "Test competing hypotheses and identify the causal mechanism before modifying code.",
133
+ "prompt": "Use `investigations/reproduction.md` to form at least two plausible hypotheses. Trace the relevant execution and data paths with workspace search and file-reading tools. For each hypothesis, run a discriminating experiment and record its predicted versus observed outcome. Name the first bad state or decision, explain how it produces the symptom, and check for sibling cases. Do not change source code in this phase.\n\nObservable handoff: write the completed result to `investigations/root-cause-analysis.md` in the workspace with `write_file`. Do not merely describe what the file would contain. Re-read it with `read_file` before finishing this phase and repair any incomplete sections.",
134
+ "suggestedRole": "root-cause analyst",
135
+ "consumes": [
136
+ {
137
+ "file": "investigations/reproduction.md"
138
+ }
139
+ ],
140
+ "advanceWhen": {
141
+ "file": "investigations/root-cause-analysis.md",
142
+ "minBytes": 1000,
143
+ "sniff": "nonempty",
144
+ "requireChange": true,
145
+ "goto": "fix-and-verify"
146
+ },
147
+ "gate": {
148
+ "at": "completion",
149
+ "checks": [
150
+ {
151
+ "kind": "minBytes",
152
+ "file": "investigations/root-cause-analysis.md",
153
+ "bytes": 1000
154
+ },
155
+ {
156
+ "kind": "sniff",
157
+ "file": "investigations/root-cause-analysis.md",
158
+ "sniff": "nonempty"
159
+ },
160
+ {
161
+ "kind": "contains",
162
+ "file": "investigations/root-cause-analysis.md",
163
+ "pattern": "^##\\s+Hypotheses",
164
+ "flags": "im",
165
+ "label": "Hypotheses section"
166
+ },
167
+ {
168
+ "kind": "contains",
169
+ "file": "investigations/root-cause-analysis.md",
170
+ "pattern": "^##\\s+Experiments",
171
+ "flags": "im",
172
+ "label": "Experiments section"
173
+ },
174
+ {
175
+ "kind": "contains",
176
+ "file": "investigations/root-cause-analysis.md",
177
+ "pattern": "^##\\s+Root cause",
178
+ "flags": "im",
179
+ "label": "Root cause section"
180
+ },
181
+ {
182
+ "kind": "contains",
183
+ "file": "investigations/root-cause-analysis.md",
184
+ "pattern": "^##\\s+Causal chain",
185
+ "flags": "im",
186
+ "label": "Causal chain section"
187
+ },
188
+ {
189
+ "kind": "contains",
190
+ "file": "investigations/root-cause-analysis.md",
191
+ "pattern": "^##\\s+Blast radius",
192
+ "flags": "im",
193
+ "label": "Blast radius section"
194
+ }
195
+ ],
196
+ "onReject": "diagnose",
197
+ "maxAttempts": 3
198
+ },
199
+ "next": "fix-and-verify",
200
+ "toolPolicy": {
201
+ "disallowBuiltinToolsets": [
202
+ "ai-apps",
203
+ "archives",
204
+ "artifacts",
205
+ "audio",
206
+ "browser-automation",
207
+ "code-execution",
208
+ "craftbooks",
209
+ "data-tables",
210
+ "entity-intel",
211
+ "git",
212
+ "image-intel",
213
+ "images",
214
+ "role-delegation",
215
+ "role-delegation-escalation",
216
+ "security-intel",
217
+ "team-management",
218
+ "videos",
219
+ "web"
220
+ ],
221
+ "outputMedium": "workspace"
222
+ }
223
+ },
224
+ {
225
+ "id": "fix-and-verify",
226
+ "name": "Implement the smallest fix and verify it",
227
+ "description": "Correct the proven mechanism and demonstrate both regression coverage and non-regression.",
228
+ "prompt": "Read both investigation files. Implement the smallest maintainable change that breaks the documented causal chain. Add or strengthen a regression test that fails on the old behavior and passes with the fix. Run the focused test, relevant neighboring tests, and any proportionate static checks. Record exact changed paths and exact verification commands with exit results. If the environment prevents a check, label it unverified and explain what is needed to run it.\n\nObservable handoff: write the completed result to `{{workPath}}/reports/root-cause-investigation.md` in the project's artifacts drawer with `write_artifact`. Do not merely describe what the file would contain. Re-read it with `read_artifact` before finishing this phase and repair any incomplete sections.",
229
+ "suggestedRole": "software engineer",
230
+ "advanceWhen": {
231
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
232
+ "minBytes": 1200,
233
+ "sniff": "nonempty",
234
+ "requireChange": true,
235
+ "artifact": true,
236
+ "goto": "evaluate"
237
+ },
238
+ "gate": {
239
+ "at": "completion",
240
+ "checks": [
241
+ {
242
+ "kind": "minBytes",
243
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
244
+ "bytes": 1200,
245
+ "artifact": true
246
+ },
247
+ {
248
+ "kind": "sniff",
249
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
250
+ "sniff": "nonempty",
251
+ "artifact": true
252
+ },
253
+ {
254
+ "kind": "contains",
255
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
256
+ "pattern": "^##\\s+Root cause",
257
+ "flags": "im",
258
+ "label": "Root cause section",
259
+ "artifact": true
260
+ },
261
+ {
262
+ "kind": "contains",
263
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
264
+ "pattern": "^##\\s+Fix",
265
+ "flags": "im",
266
+ "label": "Fix section",
267
+ "artifact": true
268
+ },
269
+ {
270
+ "kind": "contains",
271
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
272
+ "pattern": "^##\\s+Changed files",
273
+ "flags": "im",
274
+ "label": "Changed files section",
275
+ "artifact": true
276
+ },
277
+ {
278
+ "kind": "contains",
279
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
280
+ "pattern": "^##\\s+Regression coverage",
281
+ "flags": "im",
282
+ "label": "Regression coverage section",
283
+ "artifact": true
284
+ },
285
+ {
286
+ "kind": "contains",
287
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
288
+ "pattern": "^##\\s+Verification",
289
+ "flags": "im",
290
+ "label": "Verification section",
291
+ "artifact": true
292
+ },
293
+ {
294
+ "kind": "contains",
295
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
296
+ "pattern": "^##\\s+Rollback",
297
+ "flags": "im",
298
+ "label": "Rollback section",
299
+ "artifact": true
300
+ }
301
+ ],
302
+ "onReject": "fix-and-verify",
303
+ "maxAttempts": 3
304
+ },
305
+ "next": "evaluate",
306
+ "toolPolicy": {
307
+ "disallowBuiltinToolsets": [
308
+ "ai-apps",
309
+ "archives",
310
+ "audio",
311
+ "browser-automation",
312
+ "craftbooks",
313
+ "data-tables",
314
+ "entity-intel",
315
+ "git",
316
+ "image-intel",
317
+ "images",
318
+ "role-delegation",
319
+ "role-delegation-escalation",
320
+ "security-intel",
321
+ "team-management",
322
+ "videos",
323
+ "web",
324
+ "workspace-fs-write"
325
+ ],
326
+ "outputMedium": "artifact"
327
+ }
328
+ },
329
+ {
330
+ "id": "evaluate",
331
+ "name": "Evaluate the deliverable",
332
+ "description": "Independently grade the observable deliverable and route it to finish, repair, or user escalation.",
333
+ "prompt": "Review `{{workPath}}/reports/root-cause-investigation.md`, `investigations/reproduction.md`, `investigations/root-cause-analysis.md` against every criterion below. Inspect the underlying evidence files named by the workflow; do not grade from the author's summary alone.\n\n1. The failure is reproducible or the report explicitly stops without claiming an unproven diagnosis.\n2. Competing hypotheses were separated by recorded experiments rather than intuition.\n3. The stated root cause includes a causal chain from first bad state to observed symptom.\n4. The change is limited to that causal mechanism and covers identified sibling cases.\n5. A regression test and neighboring checks have concrete, credible results with no fabricated execution evidence.\n6. The report identifies changed files, residual risk, and a viable rollback.\n\nOpen `{{workPath}}/reports/root-cause-investigation.md` with `read_artifact`. Open `investigations/reproduction.md`, `investigations/root-cause-analysis.md` with `read_file`. Write the evidence-backed review to `{{workPath}}/reviews/root-cause-investigation-review.md` in the artifacts drawer with `write_artifact`. Give each criterion a PASS or FAIL with a concrete path, excerpt, measurement, or observed behavior. End with exactly `Verdict: PASS` or `Verdict: REVISE`. Then use `advance_task_step` for the active task: PASS routes to `finish`; REVISE routes to `repair` for review rounds 1 through 2, and the 3th REVISE routes to `needs-user`. Never route to finish while a criterion is unmet.",
334
+ "suggestedRole": "debugging reviewer",
335
+ "consumes": [
336
+ {
337
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
338
+ "artifact": true
339
+ },
340
+ {
341
+ "file": "investigations/reproduction.md"
342
+ },
343
+ {
344
+ "file": "investigations/root-cause-analysis.md"
345
+ }
346
+ ],
347
+ "gate": {
348
+ "at": "completion",
349
+ "checks": [
350
+ {
351
+ "kind": "minBytes",
352
+ "file": "{{workPath}}/reviews/root-cause-investigation-review.md",
353
+ "bytes": 400,
354
+ "artifact": true
355
+ },
356
+ {
357
+ "kind": "contains",
358
+ "file": "{{workPath}}/reviews/root-cause-investigation-review.md",
359
+ "pattern": "Verdict:\\s*(?:PASS|REVISE)",
360
+ "flags": "i",
361
+ "label": "explicit PASS or REVISE verdict",
362
+ "artifact": true
363
+ }
364
+ ],
365
+ "onReject": "evaluate",
366
+ "maxAttempts": 3
367
+ },
368
+ "next": "repair",
369
+ "toolPolicy": {
370
+ "disallowBuiltinToolsets": [
371
+ "ai-apps",
372
+ "archives",
373
+ "audio",
374
+ "browser-automation",
375
+ "code-execution",
376
+ "craftbooks",
377
+ "data-tables",
378
+ "entity-intel",
379
+ "git",
380
+ "image-intel",
381
+ "images",
382
+ "role-delegation",
383
+ "role-delegation-escalation",
384
+ "security-intel",
385
+ "team-management",
386
+ "videos",
387
+ "web",
388
+ "workspace-fs-write"
389
+ ],
390
+ "outputMedium": "artifact"
391
+ }
392
+ },
393
+ {
394
+ "id": "repair",
395
+ "name": "Repair the deliverable",
396
+ "description": "Fix only the concrete gaps from the latest independent review.",
397
+ "prompt": "Read `{{workPath}}/reviews/root-cause-investigation-review.md` with `read_artifact` and repair every failed criterion in `{{workPath}}/reports/root-cause-investigation.md`, `investigations/reproduction.md`, `investigations/root-cause-analysis.md`. Make changes on each file's declared surface (`write_artifact` for artifact inputs, `write_file` for workspace inputs), not in task notes or a reply. Preserve evidence that already passed. Re-run or re-check anything the reviewer found unproven. Ensure `{{workPath}}/reports/root-cause-investigation.md` is genuinely updated this turn so the repair is observable, then hand it back for independent evaluation.",
398
+ "suggestedRole": "software engineer",
399
+ "consumes": [
400
+ {
401
+ "file": "{{workPath}}/reviews/root-cause-investigation-review.md",
402
+ "artifact": true
403
+ },
404
+ {
405
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
406
+ "artifact": true
407
+ },
408
+ {
409
+ "file": "investigations/reproduction.md"
410
+ },
411
+ {
412
+ "file": "investigations/root-cause-analysis.md"
413
+ }
414
+ ],
415
+ "advanceWhen": {
416
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
417
+ "minBytes": 1200,
418
+ "sniff": "nonempty",
419
+ "requireChange": true,
420
+ "artifact": true,
421
+ "goto": "evaluate"
422
+ },
423
+ "gate": {
424
+ "at": "completion",
425
+ "checks": [
426
+ {
427
+ "kind": "minBytes",
428
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
429
+ "bytes": 1200,
430
+ "artifact": true
431
+ },
432
+ {
433
+ "kind": "sniff",
434
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
435
+ "sniff": "nonempty",
436
+ "artifact": true
437
+ },
438
+ {
439
+ "kind": "contains",
440
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
441
+ "pattern": "^##\\s+Root cause",
442
+ "flags": "im",
443
+ "label": "Root cause section",
444
+ "artifact": true
445
+ },
446
+ {
447
+ "kind": "contains",
448
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
449
+ "pattern": "^##\\s+Fix",
450
+ "flags": "im",
451
+ "label": "Fix section",
452
+ "artifact": true
453
+ },
454
+ {
455
+ "kind": "contains",
456
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
457
+ "pattern": "^##\\s+Changed files",
458
+ "flags": "im",
459
+ "label": "Changed files section",
460
+ "artifact": true
461
+ },
462
+ {
463
+ "kind": "contains",
464
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
465
+ "pattern": "^##\\s+Regression coverage",
466
+ "flags": "im",
467
+ "label": "Regression coverage section",
468
+ "artifact": true
469
+ },
470
+ {
471
+ "kind": "contains",
472
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
473
+ "pattern": "^##\\s+Verification",
474
+ "flags": "im",
475
+ "label": "Verification section",
476
+ "artifact": true
477
+ },
478
+ {
479
+ "kind": "contains",
480
+ "file": "{{workPath}}/reports/root-cause-investigation.md",
481
+ "pattern": "^##\\s+Rollback",
482
+ "flags": "im",
483
+ "label": "Rollback section",
484
+ "artifact": true
485
+ }
486
+ ],
487
+ "onReject": "repair",
488
+ "maxAttempts": 3
489
+ },
490
+ "next": "evaluate",
491
+ "toolPolicy": {
492
+ "disallowBuiltinToolsets": [
493
+ "ai-apps",
494
+ "archives",
495
+ "audio",
496
+ "browser-automation",
497
+ "code-execution",
498
+ "craftbooks",
499
+ "data-tables",
500
+ "entity-intel",
501
+ "git",
502
+ "image-intel",
503
+ "images",
504
+ "role-delegation",
505
+ "role-delegation-escalation",
506
+ "security-intel",
507
+ "team-management",
508
+ "videos",
509
+ "web"
510
+ ],
511
+ "outputMedium": "artifact",
512
+ "additionalOutputMedia": [
513
+ "workspace"
514
+ ]
515
+ }
516
+ },
517
+ {
518
+ "id": "finish",
519
+ "name": "Finish",
520
+ "description": "All deterministic and reviewer criteria passed.",
521
+ "prompt": "The independent review passed. Read `{{workPath}}/reviews/root-cause-investigation-review.md` with `read_artifact`, then use `write_task_note` to record a concise DONE summary with the final deliverable paths (`{{workPath}}/reports/root-cause-investigation.md`, `investigations/reproduction.md`, `investigations/root-cause-analysis.md`) and the evidence that each acceptance criterion passed. Report DONE without starting new work.",
522
+ "suggestedRole": "project lead",
523
+ "consumes": [
524
+ {
525
+ "file": "{{workPath}}/reviews/root-cause-investigation-review.md",
526
+ "artifact": true
527
+ }
528
+ ],
529
+ "terminal": true,
530
+ "toolPolicy": {
531
+ "disallowBuiltinToolsets": [
532
+ "ai-apps",
533
+ "archives",
534
+ "audio",
535
+ "browser-automation",
536
+ "code-execution",
537
+ "craftbooks",
538
+ "data-tables",
539
+ "entity-intel",
540
+ "git",
541
+ "image-intel",
542
+ "images",
543
+ "role-delegation",
544
+ "role-delegation-escalation",
545
+ "security-intel",
546
+ "team-management",
547
+ "videos",
548
+ "web",
549
+ "workspace-fs-write"
550
+ ],
551
+ "outputMedium": "task-note"
552
+ }
553
+ },
554
+ {
555
+ "id": "needs-user",
556
+ "name": "Escalate unresolved concerns",
557
+ "description": "The bounded repair loop ended without a defensible pass.",
558
+ "prompt": "The deliverable did not pass after 3 review rounds. Do not claim success. Read `{{workPath}}/reviews/root-cause-investigation-review.md` with `read_artifact`, then use `write_task_note` to record DONE_WITH_CONCERNS: the unmet criteria, what was attempted, the affected paths, and the smallest user decision or missing input needed to continue.",
559
+ "suggestedRole": "project lead",
560
+ "consumes": [
561
+ {
562
+ "file": "{{workPath}}/reviews/root-cause-investigation-review.md",
563
+ "artifact": true
564
+ }
565
+ ],
566
+ "terminal": true,
567
+ "toolPolicy": {
568
+ "disallowBuiltinToolsets": [
569
+ "ai-apps",
570
+ "archives",
571
+ "audio",
572
+ "browser-automation",
573
+ "code-execution",
574
+ "craftbooks",
575
+ "data-tables",
576
+ "entity-intel",
577
+ "git",
578
+ "image-intel",
579
+ "images",
580
+ "role-delegation",
581
+ "role-delegation-escalation",
582
+ "security-intel",
583
+ "team-management",
584
+ "videos",
585
+ "web",
586
+ "workspace-fs-write"
587
+ ],
588
+ "outputMedium": "task-note"
589
+ }
590
+ }
591
+ ],
592
+ "version": "2.0.7",
593
+ "releasedAt": "2026-09-04T13:46:25Z",
594
+ "minGezelVersion": "1.26233"
595
+ }