@bendyline/gilde 0.1.58 → 0.1.59

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 (25) hide show
  1. package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/craftbook.json +0 -16
  2. package/data/craftbook-templates/bo/booking-automation/versions/1.0.3/craftbook.json +0 -16
  3. package/data/craftbook-templates/co/content-deck/versions/1.2.4/craftbook.json +4 -4
  4. package/data/craftbook-templates/co/content-deck/versions/1.2.4/test.json +3 -0
  5. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/craftbook.json +4 -4
  6. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/test.json +3 -0
  7. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/craftbook.json +0 -16
  8. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/craftbook.json +0 -16
  9. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/craftbook.json +0 -16
  10. package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/craftbook.json +0 -16
  11. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/craftbook.json +0 -16
  12. package/data/craftbook-templates/index.json +1 -1
  13. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.3/craftbook.json +0 -16
  14. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.4/craftbook.json +314 -0
  15. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.4/test.json +89 -0
  16. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.10/craftbook.json +581 -0
  17. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.10/test.json +240 -0
  18. package/data/craftbook-templates/pr/price-tracker/versions/1.0.3/craftbook.json +0 -8
  19. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/craftbook.json +0 -16
  20. package/data/craftbook-templates/re/report-pdf/versions/1.1.4/craftbook.json +315 -0
  21. package/data/craftbook-templates/re/report-pdf/versions/1.1.4/test.json +101 -0
  22. package/data/craftbook-templates/re/research-to-document/versions/1.2.4/craftbook.json +386 -0
  23. package/data/craftbook-templates/re/research-to-document/versions/1.2.4/test.json +242 -0
  24. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.3/craftbook.json +0 -8
  25. package/package.json +1 -1
@@ -104,14 +104,6 @@
104
104
  "kind": "sniff",
105
105
  "file": "monitor.py",
106
106
  "sniff": "nonempty"
107
- },
108
- {
109
- "kind": "esmImports",
110
- "file": "monitor.py"
111
- },
112
- {
113
- "kind": "sourceParses",
114
- "file": "monitor.py"
115
107
  }
116
108
  ],
117
109
  "onReject": "build",
@@ -167,14 +159,6 @@
167
159
  "kind": "sniff",
168
160
  "file": "monitor_test.py",
169
161
  "sniff": "nonempty"
170
- },
171
- {
172
- "kind": "esmImports",
173
- "file": "monitor_test.py"
174
- },
175
- {
176
- "kind": "sourceParses",
177
- "file": "monitor_test.py"
178
162
  }
179
163
  ],
180
164
  "scripts": [
@@ -0,0 +1,314 @@
1
+ {
2
+ "id": "narrated-slideshow",
3
+ "name": "Animated Content Slideshow",
4
+ "description": "Turn source content into a real MP4 slideshow video and animated GIF without recruiting a Developer to build an HTML player. A planner locks the story and one message per scene. A copywriter writes {{sourceOutputPath}} as ordinary Markdown with one H1 per scene. A video specialist uses the pre-authorized DocBlocks toolset to perform one atomic MP4+GIF conversion, preview representative frames, repair the Markdown when needed, and save {{workPath}}/slideshow.mp4 and {{workPath}}/slideshow.gif in the artifacts drawer.\n\nThe source of truth is Markdown. DocBlocks selects compatible templates automatically; get_authoring_context is optional when exact animation, theme, or target guidance is useful. The rendered targets require the DocBlocks media runtime (Chromium and FFmpeg); if unavailable, report that blocker instead of substituting HTML.\n\nWorking files under {{workPath}}/, reviews/, and reports/ live in the project artifacts drawer and must be read and written with the artifact tools. User-facing source files remain in the workspace.\n\nPreview review checks content and available rendered evidence. Reconstructed Office/PDF views do not prove native layout; a media thumbnail does not prove full playback. The final handoff states these review limits.",
5
+ "entryStepId": "outline",
6
+ "triggers": [
7
+ "animated slideshow",
8
+ "turn this content into a video",
9
+ "make an animated gif from this content",
10
+ "content to mp4",
11
+ "markdown to video",
12
+ "explainer slideshow",
13
+ "make a video from slides"
14
+ ],
15
+ "toolsets": [
16
+ {
17
+ "toolsetId": "docblocks",
18
+ "sourceId": "bundled",
19
+ "autoAllow": true,
20
+ "reason": "convert {{sourceOutputPath}} to MP4 and animated GIF, preview frames, and save both rendered files without a prompt per call"
21
+ }
22
+ ],
23
+ "paramSchema": {
24
+ "type": "object",
25
+ "properties": {
26
+ "workPath": {
27
+ "type": "string",
28
+ "title": "Working folder",
29
+ "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.",
30
+ "default": "{{task.dir}}"
31
+ },
32
+ "sourceOutputPath": {
33
+ "type": "string",
34
+ "title": "Editable source path",
35
+ "description": "Workspace-relative Markdown source path. The default keeps each task separate; choose an existing path only when intentionally revising it.",
36
+ "default": "slideshows/task-{{task.num}}/slideshow.md"
37
+ }
38
+ }
39
+ },
40
+ "steps": [
41
+ {
42
+ "id": "outline",
43
+ "name": "Outline the scenes",
44
+ "description": "Lock the audience, story arc, one message per scene, and media acceptance criteria.",
45
+ "prompt": "Plan the animated slideshow before authoring it. 1. Identify the audience, viewing context, aspect/orientation, and one takeaway. 2. Draft 6-12 scenes unless the user requests another length: each scene needs a title, one message, 2-4 short on-screen points, and an optional caption line. 3. Mark where an existing image or small table genuinely helps; do not invent or download unapproved assets. 4. Choose landscape or portrait and a restrained motion style. 5. Write acceptance criteria: every outlined scene appears once and in order, text stays readable at video size, source facts remain grounded, frames show a consistent theme, the MP4 plays, the GIF loops, and both real files are saved in artifacts. Write {{workPath}}/outline.md and call write_task_note with scene count, orientation, and takeaway. Do not build HTML or media bytes.\n\nStore `{{workPath}}/outline.md` in the artifacts drawer with `write_artifact`, then verify it with `read_artifact`; do not write this working file to the workspace.\n\nRead an exact workspace DOCX, PPTX, PDF, or XLSX source with `read_doc_as_markdown`; use `read_file` for text or Markdown. Keep the original file path in citations. Never interpret binary bytes as text or substitute a similarly named file.",
46
+ "suggestedRole": "planner",
47
+ "advanceWhen": {
48
+ "file": "{{workPath}}/outline.md",
49
+ "minBytes": 1,
50
+ "sniff": "nonempty",
51
+ "artifact": true
52
+ },
53
+ "gate": {
54
+ "at": "completion",
55
+ "checks": [
56
+ {
57
+ "kind": "minBytes",
58
+ "file": "{{workPath}}/outline.md",
59
+ "bytes": 180,
60
+ "artifact": true
61
+ },
62
+ {
63
+ "kind": "sniff",
64
+ "file": "{{workPath}}/outline.md",
65
+ "sniff": "nonempty",
66
+ "artifact": true
67
+ }
68
+ ],
69
+ "onReject": "outline",
70
+ "maxAttempts": 3
71
+ },
72
+ "next": "write",
73
+ "toolPolicy": {
74
+ "disallowToolsets": [
75
+ "docblocks"
76
+ ],
77
+ "disallowBuiltinToolsets": [
78
+ "ai-apps",
79
+ "archives",
80
+ "audio",
81
+ "browser-automation",
82
+ "code-execution",
83
+ "craftbooks",
84
+ "data-tables",
85
+ "entity-intel",
86
+ "git",
87
+ "image-intel",
88
+ "images",
89
+ "role-delegation",
90
+ "role-delegation-escalation",
91
+ "security-intel",
92
+ "team-management",
93
+ "videos",
94
+ "web",
95
+ "workspace-fs-write"
96
+ ],
97
+ "outputMedium": "artifact",
98
+ "additionalOutputMedia": [
99
+ "task-note"
100
+ ]
101
+ }
102
+ },
103
+ {
104
+ "id": "write",
105
+ "name": "Write the Markdown slideshow",
106
+ "description": "Write {{sourceOutputPath}} with one H1 heading per scene.",
107
+ "prompt": "Write {{sourceOutputPath}} following {{workPath}}/outline.md. 1. Use exactly one `#` level-one heading per scene; each H1 is a deliberate scene boundary. Do not add `---` separators unless a visible horizontal rule is intended. 2. Under each H1, use 2-4 short bullet phrases, a compact table, or a brief caption—not paragraphs. 3. Bold the load-bearing fact or phrase. 4. Use only source-grounded facts and existing workspace assets with meaningful alt text. 5. Keep the first scene a title/setup and the final scene the takeaway or next action. 6. On loop-back, repair only the frames the reviewer names. Call write_task_note with the path and H1 scene count. Do not create HTML, JavaScript, MP4, GIF, or base64.\n\nOpen `{{workPath}}/outline.md` from the artifacts drawer with `read_artifact` before working. Use the explicit content layout on every scene that has body content: `# Scene title {[content]}`. This keeps lists and tables visible in the native video export; an unannotated metrics-table scene can become a title-only card even when its Markdown preview contains the table. Prefer short before/after bullets for small screens; use a compact table only when it remains readable. Do not remove source facts to make a layout fit.",
108
+ "suggestedRole": "copywriter",
109
+ "consumes": [
110
+ {
111
+ "file": "{{workPath}}/outline.md",
112
+ "artifact": true
113
+ }
114
+ ],
115
+ "advanceWhen": {
116
+ "file": "{{sourceOutputPath}}",
117
+ "minBytes": 1,
118
+ "sniff": "nonempty"
119
+ },
120
+ "gate": {
121
+ "at": "completion",
122
+ "checks": [
123
+ {
124
+ "kind": "minBytes",
125
+ "file": "{{sourceOutputPath}}",
126
+ "bytes": 650
127
+ },
128
+ {
129
+ "kind": "contains",
130
+ "file": "{{sourceOutputPath}}",
131
+ "pattern": "(?:^|\\n)#\\s+\\S",
132
+ "label": "at least one H1 scene heading"
133
+ }
134
+ ],
135
+ "onReject": "write",
136
+ "maxAttempts": 4
137
+ },
138
+ "next": "publish",
139
+ "toolPolicy": {
140
+ "disallowToolsets": [
141
+ "docblocks"
142
+ ],
143
+ "disallowBuiltinToolsets": [
144
+ "ai-apps",
145
+ "archives",
146
+ "audio",
147
+ "browser-automation",
148
+ "code-execution",
149
+ "craftbooks",
150
+ "data-tables",
151
+ "entity-intel",
152
+ "git",
153
+ "image-intel",
154
+ "images",
155
+ "role-delegation",
156
+ "role-delegation-escalation",
157
+ "security-intel",
158
+ "team-management",
159
+ "videos",
160
+ "web"
161
+ ],
162
+ "outputMedium": "workspace",
163
+ "additionalOutputMedia": [
164
+ "task-note"
165
+ ]
166
+ }
167
+ },
168
+ {
169
+ "id": "publish",
170
+ "name": "Publish the video and GIF",
171
+ "description": "Convert the approved source, inspect and preview it, and save the real binary deliverables with review evidence.",
172
+ "prompt": "Publish the approved Markdown as real GIF and MP4 files. First call `list_roots` and read the approved `{{sourceOutputPath}}` with `read_file`; read `{{workPath}}/outline.md` with `read_artifact`. Use the read-enabled workspace root for the source and write-enabled artifacts root for outputs. Inspect the Markdown source with `inspect_document` and preview its scenes in batches of at most four.\n\nRender the two formats in SEPARATE `convert_document` calls so each has its own operation budget. Use source { \"kind\": \"file\", \"rootId\": <workspace root id>, \"path\": \"{{sourceOutputPath}}\" } and autoTemplates: true. For a landscape slideshow, start with targets: [{ \"format\": \"gif\", \"width\": 640, \"height\": 360, \"fps\": 6, \"animationsEnabled\": true, \"loop\": 0 }] and then targets: [{ \"format\": \"mp4\", \"width\": 960, \"height\": 540, \"fps\": 8, \"animationsEnabled\": true }]. For portrait, swap width and height. These are useful delivery defaults for animated text slides; honor an explicit user resolution/fps request within the tool's stated limits. On a runtime timeout retry the affected format once at lower dimensions/fps, then record the exact blocker. Use only fields listed in the tool schema; orientation is not an aspectRatio string and captions are controlled by captionStyle when requested.\n\nFor EACH successful conversion, call `get_conversion_report` with its returned artifactUri, then `preview_document` with source { \"kind\": \"artifact\", \"uri\": <returned URI> } and maxItems: 1. MP4/GIF support native first-frame previews, not document-text import: do not call `inspect_document` on video or GIF bytes. Review scene content/order from the Markdown previews and report first-frame/native metadata separately. A first frame cannot prove full-video timing, motion, looping, or the final scene.\n\nSave the GIF to `{{workPath}}/slideshow.gif` and MP4 to `{{workPath}}/slideshow.mp4` with `save_artifact` in the artifacts root, initially using ifExists: \"error\". If replacing a previously saved output, use its previously returned saved hash as expectedSha256; if the hash is unavailable, record the blocker instead of guessing. Save each successful artifact before another step/process takes over. Use only current-session artifact URIs; reopen saved media with file sources for later preview. If source content fails, leave precise task notes and route to write; do not rewrite Markdown during publishing. Once BOTH files are saved, note the paths, hashes, diagnostics and playback-review limits, then advance to evaluate. Never substitute HTML, renamed Markdown or fabricated binary files. Before converting, confirm body-bearing scenes use the explicit `{[content]}` heading layout. If a table/list scene lacks it, route that precise authoring repair to write. Source previews and native exports can choose different default layouts, so a source-preview PASS alone does not establish native content survival.",
173
+ "suggestedRole": "designer",
174
+ "consumes": [
175
+ {
176
+ "file": "{{workPath}}/outline.md",
177
+ "artifact": true
178
+ },
179
+ {
180
+ "file": "{{sourceOutputPath}}"
181
+ }
182
+ ],
183
+ "advanceWhen": {
184
+ "file": "{{workPath}}/slideshow.mp4",
185
+ "minBytes": 1,
186
+ "artifact": true
187
+ },
188
+ "gate": {
189
+ "at": "completion",
190
+ "checks": [
191
+ {
192
+ "kind": "minBytes",
193
+ "file": "{{workPath}}/slideshow.mp4",
194
+ "bytes": 1000,
195
+ "artifact": true
196
+ },
197
+ {
198
+ "kind": "minBytes",
199
+ "file": "{{workPath}}/slideshow.gif",
200
+ "bytes": 1000,
201
+ "artifact": true
202
+ }
203
+ ],
204
+ "onReject": "publish",
205
+ "maxAttempts": 4
206
+ },
207
+ "next": "evaluate",
208
+ "toolPolicy": {
209
+ "disallowBuiltinToolsets": [
210
+ "ai-apps",
211
+ "archives",
212
+ "audio",
213
+ "browser-automation",
214
+ "craftbooks",
215
+ "data-tables",
216
+ "entity-intel",
217
+ "git",
218
+ "image-intel",
219
+ "images",
220
+ "role-delegation",
221
+ "role-delegation-escalation",
222
+ "security-intel",
223
+ "team-management",
224
+ "videos",
225
+ "web",
226
+ "workspace-fs-write"
227
+ ],
228
+ "outputMedium": "artifact",
229
+ "additionalOutputMedia": [
230
+ "task-note"
231
+ ]
232
+ }
233
+ },
234
+ {
235
+ "id": "evaluate",
236
+ "name": "Evaluate",
237
+ "description": "Review saved-file integrity and content fidelity; document the limits of reconstructed or first-frame previews.",
238
+ "prompt": "Read `{{workPath}}/outline.md` with `read_artifact`, read `{{sourceOutputPath}}` with `read_file`, and read publishing notes with `read_task_notes`. Confirm the outlined scene count and order, supplied facts, short on-screen copy, and final next actions. Use `list_roots` and `inspect_document` on the Markdown source, with source previews when helpful. Reopen the saved `{{workPath}}/slideshow.mp4` and `{{workPath}}/slideshow.gif` using file sources from the artifacts root and `preview_document`; do not import media bytes through `inspect_document`. These native-extracted images show the first frame only. Check the recorded conversion options and save hashes, and distinguish source scene coverage from actual full playback. First-frame-only verification is a disclosed limitation, not by itself a content failure. Use `write_task_note` for the review, with explicit PASS/FAIL criteria, evidence, and any unverified playback properties. Route content defects to write and missing/corrupt outputs to publish. Advance only when the requested files exist and the supported checks pass; do not claim full animation or loop playback was visually reviewed. On PASS, call `advance_task_step` with next: \"finish\". Use next: \"write\" only for an identified source-content failure, or next: \"publish\" for an identified conversion/save failure.",
239
+ "suggestedRole": "reviewer",
240
+ "consumes": [
241
+ {
242
+ "file": "{{workPath}}/outline.md",
243
+ "artifact": true
244
+ }
245
+ ],
246
+ "next": "finish",
247
+ "toolPolicy": {
248
+ "disallowBuiltinToolsets": [
249
+ "ai-apps",
250
+ "archives",
251
+ "audio",
252
+ "browser-automation",
253
+ "code-execution",
254
+ "craftbooks",
255
+ "data-tables",
256
+ "entity-intel",
257
+ "git",
258
+ "image-intel",
259
+ "images",
260
+ "role-delegation",
261
+ "role-delegation-escalation",
262
+ "security-intel",
263
+ "team-management",
264
+ "videos",
265
+ "web",
266
+ "workspace-fs-write"
267
+ ],
268
+ "outputMedium": "task-note"
269
+ }
270
+ },
271
+ {
272
+ "id": "finish",
273
+ "name": "Finish",
274
+ "description": "Deliver the saved files with the recorded review evidence and limits.",
275
+ "prompt": "Read the review evidence with `read_task_notes`. Write a concise DONE summary naming the editable Markdown source `{{sourceOutputPath}}` and the saved deliverables `{{workPath}}/slideshow.gif`, `{{workPath}}/slideshow.mp4`. Include available native counts and the preview basis, and carry forward any native-layout or playback properties that remain unverified. Do not open binary files with `read_artifact` or claim an unavailable check passed.",
276
+ "suggestedRole": "designer",
277
+ "consumes": [
278
+ {
279
+ "file": "{{sourceOutputPath}}"
280
+ }
281
+ ],
282
+ "terminal": true,
283
+ "toolPolicy": {
284
+ "disallowToolsets": [
285
+ "docblocks"
286
+ ],
287
+ "disallowBuiltinToolsets": [
288
+ "ai-apps",
289
+ "archives",
290
+ "audio",
291
+ "browser-automation",
292
+ "code-execution",
293
+ "craftbooks",
294
+ "data-tables",
295
+ "entity-intel",
296
+ "git",
297
+ "image-intel",
298
+ "images",
299
+ "role-delegation",
300
+ "role-delegation-escalation",
301
+ "security-intel",
302
+ "team-management",
303
+ "videos",
304
+ "web",
305
+ "workspace-fs-write"
306
+ ],
307
+ "outputMedium": "task-note"
308
+ }
309
+ }
310
+ ],
311
+ "version": "1.1.4",
312
+ "releasedAt": "2026-09-07T01:00:00Z",
313
+ "minGezelVersion": "1.26233"
314
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Animated Content Slideshow Markdown-source smoke eval",
4
+ "objective": "Verify that the media workflow produces concise scene-structured Markdown before DocBlocks MP4/GIF conversion; catalog contract tests cover the media toolset and dual artifact gate.",
5
+ "tags": [
6
+ "media"
7
+ ],
8
+ "prompt": "Read source/brief.md and write slideshows/eval/slideshow.md for a seven-scene animated operations update. Use one H1 heading per scene, short on-screen bullets, and a final next-actions scene. Do not create HTML.",
9
+ "setup": {
10
+ "projectName": "Animated Content Slideshow Eval",
11
+ "about": "The slideshow source is Markdown and will be rendered to MP4 and GIF by DocBlocks.",
12
+ "missionObjectives": "Create concise, source-grounded slideshows/eval/slideshow.md with one H1 per scene and no HTML intermediary.",
13
+ "files": [
14
+ {
15
+ "path": "source/brief.md",
16
+ "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."
17
+ }
18
+ ],
19
+ "worker": {
20
+ "name": "Jules",
21
+ "role": "Copywriter"
22
+ },
23
+ "craftbookParams": {
24
+ "sourceOutputPath": "slideshows/eval/slideshow.md"
25
+ }
26
+ },
27
+ "mocks": [],
28
+ "success": {
29
+ "summary": "slideshows/eval/slideshow.md is a concise, source-grounded scene sequence ready for DocBlocks MP4/GIF conversion.",
30
+ "deliverables": [
31
+ {
32
+ "path": "slideshows/eval/slideshow.md",
33
+ "kind": "markdown-doc",
34
+ "minBytes": 650,
35
+ "checks": [
36
+ {
37
+ "kind": "contains",
38
+ "file": "slideshows/eval/slideshow.md",
39
+ "pattern": "(?:^|\\n)#\\s+.+",
40
+ "flags": "m"
41
+ },
42
+ {
43
+ "kind": "contains",
44
+ "file": "slideshows/eval/slideshow.md",
45
+ "pattern": "18\\s+SKUs|18\\s+hours|6\\s+hours|14\\.2%|8\\.9%",
46
+ "flags": "i"
47
+ },
48
+ {
49
+ "kind": "contains",
50
+ "file": "slideshows/eval/slideshow.md",
51
+ "pattern": "automated status emails|barcode-exception training|weekly Finance exception export",
52
+ "flags": "i"
53
+ },
54
+ {
55
+ "kind": "notContains",
56
+ "file": "slideshows/eval/slideshow.md",
57
+ "pattern": "<html|<script|<style|base64",
58
+ "flags": "i"
59
+ }
60
+ ]
61
+ }
62
+ ]
63
+ },
64
+ "rubric": {
65
+ "artifact": {
66
+ "path": "slideshows/eval/slideshow.md",
67
+ "kind": "markdown"
68
+ },
69
+ "axes": [
70
+ {
71
+ "name": "story",
72
+ "description": "The scenes form a coherent update with one message per scene and a clear final action."
73
+ },
74
+ {
75
+ "name": "grounding",
76
+ "description": "Every metric and action comes from the seeded brief."
77
+ },
78
+ {
79
+ "name": "renderability",
80
+ "description": "One H1 per scene and concise blocks make the source suitable for rendered MP4/GIF output."
81
+ }
82
+ ]
83
+ },
84
+ "qualityFocus": [
85
+ "one H1 per scene",
86
+ "source grounding",
87
+ "no HTML intermediary"
88
+ ]
89
+ }