@bendyline/gilde 0.1.71 → 0.1.73

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 (26) hide show
  1. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.3/craftbook.json +604 -0
  2. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.3/test.json +290 -0
  3. package/data/craftbook-templates/co/code-review/versions/1.0.2/craftbook.json +230 -0
  4. package/data/craftbook-templates/co/code-review/versions/1.0.2/test.json +252 -0
  5. package/data/craftbook-templates/co/content-accuracy-review/versions/1.1.0/craftbook.json +311 -0
  6. package/data/craftbook-templates/co/content-accuracy-review/versions/1.1.0/test.json +167 -0
  7. package/data/craftbook-templates/eb/ebook-compile/versions/1.1.0/craftbook.json +332 -0
  8. package/data/craftbook-templates/eb/ebook-compile/versions/1.1.0/test.json +111 -0
  9. package/data/craftbook-templates/fa/faq-from-docs/versions/1.1.0/craftbook.json +245 -0
  10. package/data/craftbook-templates/fa/faq-from-docs/versions/1.1.0/test.json +113 -0
  11. package/data/craftbook-templates/index.json +1 -1
  12. package/data/craftbook-templates/me/meeting-minutes/versions/1.1.0/craftbook.json +246 -0
  13. package/data/craftbook-templates/me/meeting-minutes/versions/1.1.0/test.json +113 -0
  14. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.1.0/craftbook.json +245 -0
  15. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.1.0/test.json +113 -0
  16. package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.2/craftbook.json +243 -0
  17. package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.2/test.json +120 -0
  18. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.12/craftbook.json +581 -0
  19. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.12/test.json +240 -0
  20. package/data/craftbook-templates/pr/press-release/versions/1.0.4/craftbook.json +281 -0
  21. package/data/craftbook-templates/pr/press-release/versions/1.0.4/test.json +356 -0
  22. package/data/craftbook-templates/st/standup-summary/versions/1.1.0/craftbook.json +249 -0
  23. package/data/craftbook-templates/st/standup-summary/versions/1.1.0/test.json +113 -0
  24. package/data/craftbook-templates/we/weekly-review/versions/1.0.4/craftbook.json +223 -0
  25. package/data/craftbook-templates/we/weekly-review/versions/1.0.4/test.json +110 -0
  26. package/package.json +1 -1
@@ -0,0 +1,240 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "PowerPoint source-acquisition, outline parity, and DocBlocks production",
4
+ "objective": "Measure the whole PowerPoint route in one eval: acquire and cite sources, hold the deck to its own outline, and then actually PRODUCE the binary — 1.5.0 graded only the Markdown and 1.4.0 graded only the production, so each on its own let half the recipe pass unverified.",
5
+ "tags": [
6
+ "corpus",
7
+ "research",
8
+ "grounding",
9
+ "external",
10
+ "documents"
11
+ ],
12
+ "prompt": "Create a PowerPoint from source/brief.md for operations leads. Use 6-8 slides, preserve the supplied facts exactly, and close with next actions. Do not create HTML.\n\nProduce the finished file through the DocBlocks tools on your roster: `list_roots`, then `convert_document` on the approved `powerpoint/eval/deck.md`, `preview_document` to confirm it rendered, and `save_artifact` to write the deck to `deliverables/d-day.pptx`. Markdown or hand-built OOXML written to that path is not a substitute for the real file.",
13
+ "setup": {
14
+ "projectName": "PowerPoint Grounding Eval",
15
+ "about": "The exact source file is authoritative; the deck must keep the locked outline and its facts.",
16
+ "missionObjectives": "Read source/brief.md, cite it, lock a numbered outline, and create matching slide-structured Markdown ready for editable PPTX conversion.",
17
+ "craftbookParams": {
18
+ "outputPath": "deliverables/d-day.pptx",
19
+ "sourcePath": "source/brief.md",
20
+ "topic": "Boreal Desk Returns Pilot",
21
+ "content": "",
22
+ "audience": "operations leads",
23
+ "outputDir": "powerpoint/eval"
24
+ },
25
+ "files": [
26
+ {
27
+ "path": "source/brief.md",
28
+ "content": "# Boreal Desk Returns Pilot\n\nAudience: operations leads.\n\nFacts:\n- Pilot coverage: 18 SKUs.\n- Median first response: 18 hours to 6 hours.\n- Preventable refund leakage: 14.2% to 8.9%.\n- Top unresolved complaint: status silence after photo submission.\n- Next actions: automated status emails, barcode-exception training, weekly Finance exception export.\n\nDo not invent other metrics."
29
+ }
30
+ ],
31
+ "worker": {
32
+ "name": "Mara",
33
+ "role": "Researcher"
34
+ }
35
+ },
36
+ "mocks": [
37
+ {
38
+ "kind": "mcp",
39
+ "id": "docblocks",
40
+ "toolsetId": "docblocks",
41
+ "description": "Deterministic fake DocBlocks MCP for final presentation conversion, preview, and saving.",
42
+ "tools": [
43
+ {
44
+ "name": "list_roots",
45
+ "description": "List the workspace read root and artifacts write root.",
46
+ "resultTemplate": {
47
+ "roots": [
48
+ {
49
+ "id": "workspace",
50
+ "name": "workspace",
51
+ "capabilities": [
52
+ "read"
53
+ ]
54
+ },
55
+ {
56
+ "id": "artifacts",
57
+ "name": "artifacts",
58
+ "capabilities": [
59
+ "read",
60
+ "write"
61
+ ]
62
+ }
63
+ ]
64
+ }
65
+ },
66
+ {
67
+ "name": "get_authoring_context",
68
+ "description": "Return optional PPTX authoring guidance.",
69
+ "resultTemplate": {
70
+ "targetFormat": "pptx",
71
+ "guidance": "Use one H1 per slide and editable-native fidelity."
72
+ }
73
+ },
74
+ {
75
+ "name": "convert_document",
76
+ "description": "Convert approved Markdown to a deterministic PPTX artifact URI.",
77
+ "resultTemplate": {
78
+ "artifacts": [
79
+ {
80
+ "format": "pptx",
81
+ "uri": "mock://docblocks/deck.pptx",
82
+ "sha256": "1111111111111111111111111111111111111111111111111111111111111111"
83
+ }
84
+ ],
85
+ "diagnostics": []
86
+ }
87
+ },
88
+ {
89
+ "name": "preview_document",
90
+ "description": "Return deterministic slide-preview evidence.",
91
+ "resultTemplate": {
92
+ "slides": 7,
93
+ "overflow": false,
94
+ "tinyText": false,
95
+ "previewed": true
96
+ }
97
+ },
98
+ {
99
+ "name": "save_artifact",
100
+ "description": "Save the converted PPTX into the project artifacts drawer.",
101
+ "resultTemplate": {
102
+ "ok": true,
103
+ "bytes": 2400,
104
+ "sha256": "2222222222222222222222222222222222222222222222222222222222222222"
105
+ },
106
+ "writeFixture": {
107
+ "surface": "artifact",
108
+ "pathArgument": "destination.path",
109
+ "fixture": "minimal-pptx"
110
+ }
111
+ }
112
+ ]
113
+ }
114
+ ],
115
+ "success": {
116
+ "summary": "The source packet cites the exact brief, the outline is numbered, powerpoint/eval/deck.md matches every outline slide while preserving the supplied facts, and a real ZIP-shaped PPTX — not the Markdown source — lands at the requested workspace path via DocBlocks.",
117
+ "deliverables": [
118
+ {
119
+ "path": "{{task.dir}}/sources.md",
120
+ "kind": "markdown-doc",
121
+ "minBytes": 500,
122
+ "artifact": true,
123
+ "checks": [
124
+ {
125
+ "kind": "citationsResolve",
126
+ "file": "{{task.dir}}/sources.md",
127
+ "artifact": true,
128
+ "minCitations": 1
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "path": "{{task.dir}}/outline.md",
134
+ "kind": "markdown-doc",
135
+ "minBytes": 500,
136
+ "artifact": true,
137
+ "checks": [
138
+ {
139
+ "kind": "contains",
140
+ "file": "{{task.dir}}/outline.md",
141
+ "pattern": "(?:^|\\n)#{2,6}\\s+(?:Slide\\s+)?1(?:\\s*[.:\\-–—]\\s*|\\s+)\\S",
142
+ "flags": "i",
143
+ "label": "a numbered Slide 1 heading",
144
+ "artifact": true
145
+ }
146
+ ]
147
+ },
148
+ {
149
+ "path": "powerpoint/eval/deck.md",
150
+ "kind": "markdown-doc",
151
+ "minBytes": 700,
152
+ "checks": [
153
+ {
154
+ "kind": "markdownHeadingsMatch",
155
+ "file": "powerpoint/eval/deck.md",
156
+ "outlineFile": "{{task.dir}}/outline.md",
157
+ "outlineArtifact": true
158
+ },
159
+ {
160
+ "kind": "citationsResolve",
161
+ "file": "powerpoint/eval/deck.md",
162
+ "minCitations": 1
163
+ },
164
+ {
165
+ "kind": "contains",
166
+ "file": "powerpoint/eval/deck.md",
167
+ "pattern": "18\\s+SKUs|18\\s+hours|6\\s+hours|14\\.2%|8\\.9%",
168
+ "flags": "i",
169
+ "label": "the supplied figures, verbatim"
170
+ },
171
+ {
172
+ "kind": "contains",
173
+ "file": "powerpoint/eval/deck.md",
174
+ "pattern": "automated status emails|barcode-exception training|weekly Finance exception export",
175
+ "flags": "i",
176
+ "label": "the supplied next actions"
177
+ },
178
+ {
179
+ "kind": "notContains",
180
+ "file": "powerpoint/eval/deck.md",
181
+ "pattern": "<html|<script|<style",
182
+ "flags": "i"
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "path": "deliverables/d-day.pptx",
188
+ "kind": "slide-deck",
189
+ "minBytes": 1000,
190
+ "checks": [
191
+ {
192
+ "kind": "binaryDocument",
193
+ "file": "deliverables/d-day.pptx",
194
+ "minBytes": 1000
195
+ }
196
+ ]
197
+ }
198
+ ],
199
+ "mocks": [
200
+ {
201
+ "service": "docblocks",
202
+ "requiredTools": [
203
+ "convert_document",
204
+ "preview_document",
205
+ "save_artifact"
206
+ ]
207
+ }
208
+ ]
209
+ },
210
+ "rubric": {
211
+ "artifact": {
212
+ "path": "powerpoint/eval/deck.md",
213
+ "kind": "markdown"
214
+ },
215
+ "axes": [
216
+ {
217
+ "name": "source-acquisition",
218
+ "description": "The workflow read and cited the exact supplied source before outlining."
219
+ },
220
+ {
221
+ "name": "outline-parity",
222
+ "description": "Every numbered outline slide appears exactly once as a same-title H1 in powerpoint/eval/deck.md, in order."
223
+ },
224
+ {
225
+ "name": "grounding",
226
+ "description": "Every metric and action comes from source/brief.md and no extra metric was invented."
227
+ },
228
+ {
229
+ "name": "convertibility",
230
+ "description": "One H1 per slide and concise block content make the source ready for DocBlocks PPTX conversion."
231
+ }
232
+ ]
233
+ },
234
+ "qualityFocus": [
235
+ "successful exact-source retrieval",
236
+ "resolvable citations",
237
+ "exact outline-to-deck slide parity",
238
+ "no HTML intermediary"
239
+ ]
240
+ }
@@ -0,0 +1,281 @@
1
+ {
2
+ "id": "press-release",
3
+ "name": "Press Release",
4
+ "description": "Write a professional, AP-style press release ready to send to journalists: it first locks the news angle, the five W's, the approved quote(s), and the boilerplate, then drafts the release in the standard format — dateline, inverted-pyramid lede, supporting body, quotes, boilerplate, and media contact — then a review pass enforces newsworthiness, factual accuracy, and house style. Covers press release, news announcement, PR writing, media release, product launch announcement, and corporate communications. The scope-first ordering is essential: a small model that pins the angle and quotes before drafting avoids the soft, promotional release that buries the news and no editor will run.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. News scope (planner) — lock the angle, five W's, approved quotes, and boilerplate → gated on artifact `{{workPath}}/scope.md` (markdown-notes)\n2. Draft the release (copywriter) — write the release in standard inverted-pyramid format → gated on the release file (`press-release.md` unless a destination is given) (markdown-doc)\n3. Editorial review (reviewer) — enforce newsworthiness, accuracy, and AP-style format → gated on the release file (`press-release.md` unless a destination is given) (markdown-doc)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "scope",
6
+ "triggers": [
7
+ "write a press release",
8
+ "news announcement",
9
+ "media release",
10
+ "product launch pr",
11
+ "press announcement"
12
+ ],
13
+ "paramSchema": {
14
+ "type": "object",
15
+ "properties": {
16
+ "workPath": {
17
+ "type": "string",
18
+ "title": "Working folder",
19
+ "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.",
20
+ "default": "{{task.dir}}"
21
+ },
22
+ "outputPath": {
23
+ "type": "string",
24
+ "title": "Workspace output path",
25
+ "description": "Project-workspace-relative path for the finished release. Honors a destination the user names (for example out/press-release.md).",
26
+ "default": "press-release.md"
27
+ }
28
+ }
29
+ },
30
+ "steps": [
31
+ {
32
+ "id": "scope",
33
+ "name": "News scope",
34
+ "description": "lock the angle, five W's, approved quotes, and boilerplate",
35
+ "prompt": "1) State the NEWS in one sentence — the actual announcement (launch, funding, partnership, milestone) and why it is newsworthy NOW. 2) Capture the five W's: who, what, when, where, why-it-matters. 3) Draft or confirm 1-2 attributable quotes (speaker name + title) that add insight, not fluff. 4) Write the company boilerplate (2-3 sentences) and the media contact line (name, email). 5) Decide the headline (active, specific, <=12 words) and subhead. Write an acceptance-criteria checklist (e.g. 'lede answers who/what/when/where in the first 1-2 sentences'; 'inverted pyramid — most important first'; 'at least one attributed quote'; 'includes dateline, boilerplate, contact, and the ### end mark'; 'factual, non-promotional tone'). Use write_task_note for the news brief + checklist, and write the same to the produces path. No release prose yet.\n\nThe deliverable `{{workPath}}/scope.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
36
+ "suggestedRole": "planner",
37
+ "advanceWhen": {
38
+ "file": "{{workPath}}/scope.md",
39
+ "minBytes": 1,
40
+ "sniff": "nonempty",
41
+ "artifact": true
42
+ },
43
+ "gate": {
44
+ "at": "completion",
45
+ "checks": [
46
+ {
47
+ "kind": "minBytes",
48
+ "file": "{{workPath}}/scope.md",
49
+ "bytes": 120,
50
+ "artifact": true
51
+ },
52
+ {
53
+ "kind": "sniff",
54
+ "file": "{{workPath}}/scope.md",
55
+ "sniff": "nonempty",
56
+ "artifact": true
57
+ }
58
+ ],
59
+ "onReject": "scope",
60
+ "maxAttempts": 3
61
+ },
62
+ "next": "draft",
63
+ "toolPolicy": {
64
+ "disallowBuiltinToolsets": [
65
+ "ai-apps",
66
+ "archives",
67
+ "audio",
68
+ "browser-automation",
69
+ "code-execution",
70
+ "craftbooks",
71
+ "data-tables",
72
+ "entity-intel",
73
+ "git",
74
+ "image-intel",
75
+ "images",
76
+ "role-delegation",
77
+ "role-delegation-escalation",
78
+ "security-intel",
79
+ "team-management",
80
+ "videos",
81
+ "web",
82
+ "workspace-fs-write"
83
+ ],
84
+ "outputMedium": "artifact",
85
+ "additionalOutputMedia": [
86
+ "task-note"
87
+ ]
88
+ }
89
+ },
90
+ {
91
+ "id": "draft",
92
+ "name": "Draft the release",
93
+ "description": "write the release in standard inverted-pyramid format",
94
+ "prompt": "Write the press release in standard format. 1) Headline (active, specific) and an optional subhead. 2) Dateline: CITY, State, Month Day, Year — then the lede sentence answering who/what/when/where. 3) Body in inverted pyramid: most newsworthy facts first, supporting detail after, in short paragraphs. 4) Integrate the approved quote(s) with proper attribution. 5) Boilerplate paragraph ('About [Company]'). 6) Media contact block. 7) End with a centered '###'. Keep the tone factual and journalistic — report the news, do not sell it. Output as markdown. Save it to `{{outputPath}}` and note which checklist items pass.",
95
+ "suggestedRole": "copywriter",
96
+ "advanceWhen": {
97
+ "file": "{{outputPath}}",
98
+ "minBytes": 1,
99
+ "sniff": "nonempty"
100
+ },
101
+ "gate": {
102
+ "at": "completion",
103
+ "checks": [
104
+ {
105
+ "kind": "minBytes",
106
+ "file": "{{outputPath}}",
107
+ "bytes": 500
108
+ }
109
+ ],
110
+ "scripts": [
111
+ {
112
+ "name": "checkContains",
113
+ "scope": "standard",
114
+ "inputs": {
115
+ "file": "{{outputPath}}",
116
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
117
+ "flags": "i"
118
+ }
119
+ }
120
+ ],
121
+ "onReject": "draft",
122
+ "maxAttempts": 3
123
+ },
124
+ "next": "review",
125
+ "toolPolicy": {
126
+ "disallowBuiltinToolsets": [
127
+ "ai-apps",
128
+ "archives",
129
+ "artifacts",
130
+ "audio",
131
+ "browser-automation",
132
+ "code-execution",
133
+ "craftbooks",
134
+ "data-tables",
135
+ "entity-intel",
136
+ "git",
137
+ "image-intel",
138
+ "images",
139
+ "role-delegation",
140
+ "role-delegation-escalation",
141
+ "security-intel",
142
+ "team-management",
143
+ "videos",
144
+ "web"
145
+ ],
146
+ "outputMedium": "workspace"
147
+ }
148
+ },
149
+ {
150
+ "id": "review",
151
+ "name": "Editorial review",
152
+ "description": "enforce newsworthiness, accuracy, and AP-style format",
153
+ "prompt": "Review and edit the release in place against the checklist. 1) Read the lede alone: does it convey the news and answer who/what/when/where? If it buries the news, rewrite it. 2) Confirm inverted-pyramid structure — could an editor cut from the bottom and still have a coherent story? 3) Strip promotional adjectives and marketing hype; keep it factual. 4) Verify every fact, name, title, and date; flag anything unverifiable. 5) Confirm all structural elements are present: headline, dateline, quote, boilerplate, contact, ###. Rewrite weak passages directly. Save the polished release to the produces path and note any criteria still unmet.",
154
+ "suggestedRole": "reviewer",
155
+ "advanceWhen": {
156
+ "file": "{{outputPath}}",
157
+ "minBytes": 1,
158
+ "sniff": "nonempty"
159
+ },
160
+ "gate": {
161
+ "at": "completion",
162
+ "checks": [
163
+ {
164
+ "kind": "minBytes",
165
+ "file": "{{outputPath}}",
166
+ "bytes": 500
167
+ }
168
+ ],
169
+ "scripts": [
170
+ {
171
+ "name": "checkContains",
172
+ "scope": "standard",
173
+ "inputs": {
174
+ "file": "{{outputPath}}",
175
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
176
+ "flags": "i"
177
+ }
178
+ }
179
+ ],
180
+ "onReject": "review",
181
+ "maxAttempts": 4
182
+ },
183
+ "next": "evaluate",
184
+ "toolPolicy": {
185
+ "disallowBuiltinToolsets": [
186
+ "ai-apps",
187
+ "archives",
188
+ "artifacts",
189
+ "audio",
190
+ "browser-automation",
191
+ "code-execution",
192
+ "craftbooks",
193
+ "data-tables",
194
+ "entity-intel",
195
+ "git",
196
+ "image-intel",
197
+ "images",
198
+ "role-delegation",
199
+ "role-delegation-escalation",
200
+ "security-intel",
201
+ "team-management",
202
+ "videos",
203
+ "web"
204
+ ],
205
+ "outputMedium": "workspace"
206
+ }
207
+ },
208
+ {
209
+ "id": "evaluate",
210
+ "name": "Evaluate",
211
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
212
+ "prompt": "Read {{outputPath}} and grade against the checklist. Check EACH and write PASS/FAIL: (a) the lede answers who/what/when/where in the first 1-2 sentences; (b) inverted-pyramid structure (most important first); (c) at least one properly attributed quote; (d) dateline, boilerplate, media contact, and a closing ### are all present; (e) factual, non-promotional tone with no unverified claims; (f) headline is active and specific. A release that reads like an ad or buries the news FAILS — loop back to draft.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"draft\" })` to loop back. The builder fixes exactly those gaps.\n\nNever route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
213
+ "suggestedRole": "reviewer",
214
+ "consumes": [
215
+ {
216
+ "file": "{{outputPath}}"
217
+ }
218
+ ],
219
+ "next": "draft",
220
+ "toolPolicy": {
221
+ "disallowBuiltinToolsets": [
222
+ "ai-apps",
223
+ "archives",
224
+ "artifacts",
225
+ "audio",
226
+ "browser-automation",
227
+ "code-execution",
228
+ "craftbooks",
229
+ "data-tables",
230
+ "entity-intel",
231
+ "git",
232
+ "image-intel",
233
+ "images",
234
+ "role-delegation",
235
+ "role-delegation-escalation",
236
+ "security-intel",
237
+ "team-management",
238
+ "videos",
239
+ "web",
240
+ "workspace-fs-write"
241
+ ],
242
+ "outputMedium": "task-note"
243
+ }
244
+ },
245
+ {
246
+ "id": "finish",
247
+ "name": "Finish",
248
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
249
+ "prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.",
250
+ "suggestedRole": "developer",
251
+ "terminal": true,
252
+ "toolPolicy": {
253
+ "disallowBuiltinToolsets": [
254
+ "ai-apps",
255
+ "archives",
256
+ "artifacts",
257
+ "audio",
258
+ "browser-automation",
259
+ "code-execution",
260
+ "craftbooks",
261
+ "data-tables",
262
+ "entity-intel",
263
+ "git",
264
+ "image-intel",
265
+ "images",
266
+ "role-delegation",
267
+ "role-delegation-escalation",
268
+ "security-intel",
269
+ "team-management",
270
+ "videos",
271
+ "web",
272
+ "workspace-fs-write"
273
+ ],
274
+ "outputMedium": "task-note"
275
+ }
276
+ }
277
+ ],
278
+ "version": "1.0.4",
279
+ "releasedAt": "2026-09-24T20:00:00Z",
280
+ "minGezelVersion": "1.26233"
281
+ }