@bendyline/gilde 0.1.57 → 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.
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.3/craftbook.json +0 -16
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/test.json +7 -10
- package/data/craftbook-templates/co/content-deck/versions/1.2.4/craftbook.json +4 -4
- package/data/craftbook-templates/co/content-deck/versions/1.2.4/test.json +3 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/craftbook.json +4 -4
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/test.json +3 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/test.json +3 -6
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/test.json +5 -8
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/test.json +5 -8
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/test.json +6 -9
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/versions/1.0.3/test.json +7 -10
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/test.json +9 -11
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.3/craftbook.json +0 -16
- package/data/craftbook-templates/mo/morning-report/versions/1.0.3/test.json +14 -17
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.4/craftbook.json +314 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.4/test.json +89 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/test.json +12 -15
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/test.json +9 -12
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.10/craftbook.json +581 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.10/test.json +240 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/test.json +3 -6
- package/data/craftbook-templates/pr/practice-session/versions/1.0.3/test.json +6 -9
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.3/craftbook.json +0 -8
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/test.json +8 -11
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/test.json +8 -11
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/test.json +9 -11
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/craftbook.json +0 -16
- package/data/craftbook-templates/re/report-pdf/versions/1.1.4/craftbook.json +315 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.4/test.json +101 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.4/craftbook.json +386 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.4/test.json +242 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/test.json +9 -12
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/test.json +15 -18
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.3/craftbook.json +0 -8
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/test.json +5 -8
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/test.json +5 -8
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/test.json +5 -8
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/test.json +13 -16
- package/data/toolsets/do/docblocks/versions/2.6.0/manifest.json +95 -0
- package/data/toolsets/index.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,581 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "powerpoint-deck",
|
|
3
|
+
"name": "PowerPoint from Content",
|
|
4
|
+
"description": "Turn supplied content or a factual topic into a real, editable PowerPoint. Supplied sources remain authoritative, and internet research is strongly recommended for factual grounding; topic-only runs may proceed without it when access is unavailable or the deck is explicitly exploratory, provided unsupported facts are not invented. A researcher records the source boundary and fact ledger before a planner locks a numbered slide outline. A copywriter writes a task-specific Markdown deck with exactly one H1 per outline slide, while deterministic gates keep the slide count, titles, and order aligned. A reviewer checks factual traceability before a designer converts the Markdown to PPTX, previews every slide, and saves the requested PPTX in artifacts.\n\nEvery run's working files default to the task's own artifact folder (tasks/<num>/) and its deck to a task-specific workspace folder, so source packets, outlines, Markdown, and reviews cannot collide with an earlier PowerPoint task. Artifact working files must be read and written with the artifact tools; the Markdown deck source and user-facing PowerPoint 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": "research",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"make a powerpoint",
|
|
8
|
+
"create a pptx",
|
|
9
|
+
"powerpoint from this content",
|
|
10
|
+
"turn this into a presentation",
|
|
11
|
+
"build a slide deck file",
|
|
12
|
+
"export these slides to powerpoint"
|
|
13
|
+
],
|
|
14
|
+
"recommends": [
|
|
15
|
+
{
|
|
16
|
+
"kind": "external-services",
|
|
17
|
+
"reason": "the research step verifies sources with live web search"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"toolsets": [
|
|
21
|
+
{
|
|
22
|
+
"toolsetId": "docblocks",
|
|
23
|
+
"sourceId": "bundled",
|
|
24
|
+
"autoAllow": true,
|
|
25
|
+
"reason": "convert the task-specific Markdown deck directly to PPTX, preview slides, and save the finished PowerPoint without a prompt per call"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"paramSchema": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"properties": {
|
|
31
|
+
"workPath": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"title": "Working folder",
|
|
34
|
+
"description": "Per-task working folder in the artifacts drawer for the source packet, outline, review, and retained PPTX. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
|
|
35
|
+
"default": "{{task.dir}}"
|
|
36
|
+
},
|
|
37
|
+
"outputDir": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"title": "Deck folder",
|
|
40
|
+
"description": "Project-workspace-relative folder for the Markdown deck source and the finished PowerPoint. Defaults to a task-specific path; override it with a stable name such as powerpoint/india when useful.",
|
|
41
|
+
"default": "powerpoint/task-{{task.num}}"
|
|
42
|
+
},
|
|
43
|
+
"outputPath": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"title": "Workspace output path",
|
|
46
|
+
"description": "Project-workspace-relative path for the finished PowerPoint.",
|
|
47
|
+
"default": "{{outputDir}}/deck.pptx"
|
|
48
|
+
},
|
|
49
|
+
"sourcePath": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"title": "Source file",
|
|
52
|
+
"description": "Optional exact workspace-relative path to authoritative source content. Leave blank when the deck starts from a topic that needs web research.",
|
|
53
|
+
"default": ""
|
|
54
|
+
},
|
|
55
|
+
"topic": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"title": "Topic",
|
|
58
|
+
"description": "The factual topic or question the deck should address.",
|
|
59
|
+
"default": ""
|
|
60
|
+
},
|
|
61
|
+
"content": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"title": "Inline source brief",
|
|
64
|
+
"description": "Optional inline source material or factual brief for the deck.",
|
|
65
|
+
"default": ""
|
|
66
|
+
},
|
|
67
|
+
"audience": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"title": "Audience",
|
|
70
|
+
"description": "The people who will view the deck and the decision they need to make.",
|
|
71
|
+
"default": "general audience"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"anyOf": [
|
|
75
|
+
{
|
|
76
|
+
"required": [
|
|
77
|
+
"sourcePath"
|
|
78
|
+
],
|
|
79
|
+
"properties": {
|
|
80
|
+
"sourcePath": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"minLength": 1
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"required": [
|
|
88
|
+
"topic"
|
|
89
|
+
],
|
|
90
|
+
"properties": {
|
|
91
|
+
"topic": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"minLength": 1
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"required": [
|
|
99
|
+
"content"
|
|
100
|
+
],
|
|
101
|
+
"properties": {
|
|
102
|
+
"content": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"minLength": 1
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
"steps": [
|
|
111
|
+
{
|
|
112
|
+
"id": "research",
|
|
113
|
+
"name": "Acquire and verify sources",
|
|
114
|
+
"description": "Read the exact supplied source and strongly prefer authoritative research before outlining, while allowing an honest no-research path.",
|
|
115
|
+
"prompt": "Build the source packet before planning any slides. This run's artifact working folder is `{{workPath}}` and its workspace deck folder is `{{outputDir}}`. Files outside it—including an earlier `notes/outline.md`, root `deck.md`, or another PowerPoint task directory—are not inputs and must not be read or reused unless `{{sourcePath}}` names one exactly. Exact source path: `{{sourcePath}}`. Topic: `{{topic}}`. Inline source brief: `{{content}}`. Audience: `{{audience}}`. 0. If source path, topic, and inline content are all empty, call `ask_user_question` for the missing subject or exact source and stop. Do not call `read_task_notes`, inspect the workspace, or reuse an earlier deck while the source boundary is missing. 1. When `{{sourcePath}}` is non-empty, your FIRST source action is to read that exact path: use `read_doc_as_markdown` for DOCX/PPTX/PDF/XLSX and `read_file` for text or Markdown. Never replace a named source with a similarly named file, and never skip a supplied source. 2. Otherwise treat non-empty `{{content}}` as supplied source material and `{{topic}}` as the research question. FIRST call `search` for `{{topic}}` to check what the user already has — the shared document library, project and gezel memories, artifacts, and installed knowledge catalogs are all covered by that one call. Open a shared-library hit with `read_document`, a workspace hit with `read_file`, an artifact hit with `read_artifact`. Anything you find there is a citable source: record it in the table by its exact path, and prefer it over an external page when the two disagree, because it is the user’s own material. Then add external grounding: use `web_search` when registered, otherwise `wikipedia_search`. Wikipedia search results already carry each top article’s lead text, so read and cite them straight from the search result. Call `wikipedia_read` with a result’s exact title only when you need more of that one article. Use `fetch_url` or browser automation for non-Wikipedia pages only — passing a wikipedia.org URL to `fetch_url` returns the rendered page (scripts and navigation chrome) and is cut off before the article text begins. Prefer primary sources, official statistics, standards bodies, peer-reviewed work, or reputable institutional summaries. You may proceed without external research when external tools are unavailable or when the topic is explicitly exploratory, generative, or proposal-oriented. If you skip it, say so plainly, record why, frame unsourced content as original concepts or reasoning rather than established fact, and do not invent a source, URL, research result, or tool-verification workaround. Do not treat model memory, the task prompt, an earlier deck, or an invented URL as research. 3. Write `{{workPath}}/sources.md` with: the invocation inputs and their boundary; research status (`completed` or `skipped`, with reason); a source table with title, resolvable URL or exact file path, authority/date, and intended use (the table may be empty when research was honestly skipped); a fact ledger where every number, quotation, and externally checkable claim carries `(source: URL-or-path)`; a separate ledger of original proposals or reasoning that makes no factual-source claim; conflicts and uncertainties; and facts that must not be invented. Do not silently overwrite supplied facts with external claims—record conflicts explicitly. 4. When any source was used, include at least one resolvable citation. When none was used, do NOT fabricate one and do NOT stall: write the line `Research status: skipped — no citable sources available (reason: <reason>)` and continue. Missing network, denied permissions, an offline toolset, or a topic with nothing to find are all legitimate reasons; an unsupported claim is not. An honest attestation satisfies this step exactly as a citation does. Call `write_task_note` with the sources used—or that research was skipped—and any uncertainty. Do not draft the outline or deck yet.\n\nStore `{{workPath}}/sources.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.",
|
|
116
|
+
"suggestedRole": "researcher",
|
|
117
|
+
"advanceWhen": {
|
|
118
|
+
"file": "{{workPath}}/sources.md",
|
|
119
|
+
"minBytes": 1,
|
|
120
|
+
"sniff": "nonempty",
|
|
121
|
+
"artifact": true
|
|
122
|
+
},
|
|
123
|
+
"gate": {
|
|
124
|
+
"at": "completion",
|
|
125
|
+
"checks": [
|
|
126
|
+
{
|
|
127
|
+
"kind": "minBytes",
|
|
128
|
+
"file": "{{workPath}}/sources.md",
|
|
129
|
+
"bytes": 500,
|
|
130
|
+
"artifact": true
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"kind": "citationsResolve",
|
|
134
|
+
"file": "{{workPath}}/sources.md",
|
|
135
|
+
"minCitations": 0,
|
|
136
|
+
"artifact": true
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"kind": "researchEvidence",
|
|
140
|
+
"sourcePath": "{{sourcePath}}",
|
|
141
|
+
"tools": [
|
|
142
|
+
"web_search",
|
|
143
|
+
"wikipedia_search",
|
|
144
|
+
"wikipedia_read",
|
|
145
|
+
"fetch_url",
|
|
146
|
+
"browser_navigate",
|
|
147
|
+
"run_playwright_script"
|
|
148
|
+
],
|
|
149
|
+
"minSuccessful": 1,
|
|
150
|
+
"externalOptional": true
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"onReject": "research",
|
|
154
|
+
"maxAttempts": 3
|
|
155
|
+
},
|
|
156
|
+
"next": "outline",
|
|
157
|
+
"toolPolicy": {
|
|
158
|
+
"disallowToolsets": [
|
|
159
|
+
"docblocks"
|
|
160
|
+
],
|
|
161
|
+
"disallowBuiltinToolsets": [
|
|
162
|
+
"ai-apps",
|
|
163
|
+
"archives",
|
|
164
|
+
"audio",
|
|
165
|
+
"code-execution",
|
|
166
|
+
"craftbooks",
|
|
167
|
+
"data-tables",
|
|
168
|
+
"entity-intel",
|
|
169
|
+
"git",
|
|
170
|
+
"image-intel",
|
|
171
|
+
"images",
|
|
172
|
+
"role-delegation",
|
|
173
|
+
"role-delegation-escalation",
|
|
174
|
+
"security-intel",
|
|
175
|
+
"team-management",
|
|
176
|
+
"videos",
|
|
177
|
+
"workspace-fs-write"
|
|
178
|
+
],
|
|
179
|
+
"outputMedium": "artifact",
|
|
180
|
+
"additionalOutputMedia": [
|
|
181
|
+
"task-note"
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "outline",
|
|
187
|
+
"name": "Lock the slide outline",
|
|
188
|
+
"description": "Lock the audience, purpose, sequence, evidence, and one message per slide.",
|
|
189
|
+
"prompt": "Read `{{workPath}}/sources.md` and plan the deck from its verified fact ledger and original-proposal ledger. If `{{sourcePath}}` is non-empty, also read that exact source. Do not borrow facts, titles, or slide content from an earlier outline or deck outside `{{workPath}}`; a requested similarity is a structural constraint, not permission to mix source packets. 1. State the audience, occasion, and ONE takeaway. 2. Use exactly the slide count the user asked for; only when they gave none, draft 8-15 slides. Format every slide heading exactly as `## Slide N — Title`, numbered consecutively from 1. Under each heading write `Message:`, `Evidence:`, and `Visual:`. Every sourced factual evidence line must point to a citation already recorded in `{{workPath}}/sources.md`. When research was skipped, original concepts and reasoned recommendations may be labeled `PROPOSAL` and need no citation; mark any unsupported externally checkable claim `UNVERIFIED` rather than filling gaps from memory. 3. Open with context, make the middle a coherent argument, and close with the ask or next step. Include a Sources slide in this locked outline when the audience needs visible references and sources actually exist. 4. Write acceptance criteria: every numbered outline slide must become exactly one H1 in {{outputDir}}/deck.md, with the same title and order; one idea per slide; no wall of text; factual claims remain traceable; proposals remain clearly framed as proposals; visual preview passes; an artifact copy is retained; and the exact workspace file `{{outputPath}}` is delivered. Write only `{{workPath}}/outline.md`, then call `write_task_note` with the exact slide count, takeaway, and requested output path. Do not write slide content or presentation code.\n\nOpen `{{workPath}}/sources.md`, `{{workPath}}/outline.md` from the artifacts drawer with `read_artifact` before working.\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.\n\nStore `{{workPath}}/outline.md` with `write_artifact` and verify it with `read_artifact` before advancing.",
|
|
190
|
+
"suggestedRole": "planner",
|
|
191
|
+
"consumes": [
|
|
192
|
+
{
|
|
193
|
+
"file": "{{workPath}}/sources.md",
|
|
194
|
+
"artifact": true
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"advanceWhen": {
|
|
198
|
+
"file": "{{workPath}}/outline.md",
|
|
199
|
+
"minBytes": 1,
|
|
200
|
+
"sniff": "nonempty",
|
|
201
|
+
"artifact": true
|
|
202
|
+
},
|
|
203
|
+
"gate": {
|
|
204
|
+
"at": "completion",
|
|
205
|
+
"checks": [
|
|
206
|
+
{
|
|
207
|
+
"kind": "minBytes",
|
|
208
|
+
"file": "{{workPath}}/outline.md",
|
|
209
|
+
"bytes": 500,
|
|
210
|
+
"artifact": true
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"kind": "contains",
|
|
214
|
+
"file": "{{workPath}}/outline.md",
|
|
215
|
+
"pattern": "(?:^|\\n)#{2,6}\\s+(?:Slide\\s+)?1(?:\\s*[.:\\-–—]\\s*|\\s+)\\S",
|
|
216
|
+
"flags": "i",
|
|
217
|
+
"label": "a numbered Slide 1 heading",
|
|
218
|
+
"artifact": true
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"kind": "citationsResolve",
|
|
222
|
+
"file": "{{workPath}}/outline.md",
|
|
223
|
+
"minCitations": 0,
|
|
224
|
+
"artifact": true
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"onReject": "outline",
|
|
228
|
+
"maxAttempts": 3
|
|
229
|
+
},
|
|
230
|
+
"next": "write",
|
|
231
|
+
"toolPolicy": {
|
|
232
|
+
"disallowToolsets": [
|
|
233
|
+
"docblocks"
|
|
234
|
+
],
|
|
235
|
+
"disallowBuiltinToolsets": [
|
|
236
|
+
"ai-apps",
|
|
237
|
+
"archives",
|
|
238
|
+
"audio",
|
|
239
|
+
"browser-automation",
|
|
240
|
+
"code-execution",
|
|
241
|
+
"craftbooks",
|
|
242
|
+
"data-tables",
|
|
243
|
+
"entity-intel",
|
|
244
|
+
"git",
|
|
245
|
+
"image-intel",
|
|
246
|
+
"images",
|
|
247
|
+
"role-delegation",
|
|
248
|
+
"role-delegation-escalation",
|
|
249
|
+
"security-intel",
|
|
250
|
+
"team-management",
|
|
251
|
+
"videos",
|
|
252
|
+
"web",
|
|
253
|
+
"workspace-fs-write"
|
|
254
|
+
],
|
|
255
|
+
"outputMedium": "artifact",
|
|
256
|
+
"additionalOutputMedia": [
|
|
257
|
+
"task-note"
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"id": "write",
|
|
263
|
+
"name": "Write the Markdown deck",
|
|
264
|
+
"description": "Write {{outputDir}}/deck.md with exactly one matching H1 per locked outline slide.",
|
|
265
|
+
"prompt": "Read `{{workPath}}/sources.md` and `{{workPath}}/outline.md`, then write `{{outputDir}}/deck.md` to the locked sequence. 1. For every `## Slide N — Title` in the outline, create exactly one `# Title` H1 in {{outputDir}}/deck.md, preserving the title and order verbatim. Do not add, merge, drop, or reorder slides. Do not add `---` separators unless a visible horizontal rule is intended. Slides are split on H1: a deck whose slides are `##` converts to ONE slide, so never use `##` for a slide and never add a `# ` document title. 2. Under each H1, land that slide's one message with 3-6 short bullet phrases, a compact Markdown table, or a short quotation; never use paragraph walls. 3. Keep every factual claim traceable to `{{workPath}}/sources.md`. Put concise `(source: URL-or-path)` citations next to load-bearing figures/claims. Use a Sources slide only when it is already in the locked outline; never add an unoutlined slide. Never invent a number, quotation, organization, or URL. 4. Bold the load-bearing figure or claim. 5. The final H1 must be the outline's ask or next-step slide. 6. On loop-back, repair only the mismatch or claim the gate/reviewer names. Call `write_task_note` with the path and H1 count. Do not create HTML, JavaScript, OOXML, or PPTX bytes.\n\nOpen `{{workPath}}/sources.md`, `{{workPath}}/outline.md` from the artifacts drawer with `read_artifact` before working.",
|
|
266
|
+
"suggestedRole": "copywriter",
|
|
267
|
+
"consumes": [
|
|
268
|
+
{
|
|
269
|
+
"file": "{{workPath}}/sources.md",
|
|
270
|
+
"artifact": true
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"file": "{{workPath}}/outline.md",
|
|
274
|
+
"artifact": true
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
"advanceWhen": {
|
|
278
|
+
"file": "{{outputDir}}/deck.md",
|
|
279
|
+
"minBytes": 1,
|
|
280
|
+
"sniff": "nonempty"
|
|
281
|
+
},
|
|
282
|
+
"gate": {
|
|
283
|
+
"at": "completion",
|
|
284
|
+
"checks": [
|
|
285
|
+
{
|
|
286
|
+
"kind": "minBytes",
|
|
287
|
+
"file": "{{outputDir}}/deck.md",
|
|
288
|
+
"bytes": 700
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"kind": "contains",
|
|
292
|
+
"file": "{{outputDir}}/deck.md",
|
|
293
|
+
"pattern": "(?:^|\\n)#\\s+\\S",
|
|
294
|
+
"label": "at least one H1 slide heading"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"kind": "markdownHeadingsMatch",
|
|
298
|
+
"file": "{{outputDir}}/deck.md",
|
|
299
|
+
"outlineFile": "{{workPath}}/outline.md",
|
|
300
|
+
"outlineArtifact": true
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"kind": "citationsResolve",
|
|
304
|
+
"file": "{{outputDir}}/deck.md",
|
|
305
|
+
"minCitations": 0
|
|
306
|
+
}
|
|
307
|
+
],
|
|
308
|
+
"onReject": "write",
|
|
309
|
+
"maxAttempts": 4
|
|
310
|
+
},
|
|
311
|
+
"next": "review",
|
|
312
|
+
"toolPolicy": {
|
|
313
|
+
"disallowToolsets": [
|
|
314
|
+
"docblocks"
|
|
315
|
+
],
|
|
316
|
+
"disallowBuiltinToolsets": [
|
|
317
|
+
"ai-apps",
|
|
318
|
+
"archives",
|
|
319
|
+
"audio",
|
|
320
|
+
"browser-automation",
|
|
321
|
+
"code-execution",
|
|
322
|
+
"craftbooks",
|
|
323
|
+
"data-tables",
|
|
324
|
+
"entity-intel",
|
|
325
|
+
"git",
|
|
326
|
+
"image-intel",
|
|
327
|
+
"images",
|
|
328
|
+
"role-delegation",
|
|
329
|
+
"role-delegation-escalation",
|
|
330
|
+
"security-intel",
|
|
331
|
+
"team-management",
|
|
332
|
+
"videos",
|
|
333
|
+
"web"
|
|
334
|
+
],
|
|
335
|
+
"outputMedium": "workspace",
|
|
336
|
+
"additionalOutputMedia": [
|
|
337
|
+
"task-note"
|
|
338
|
+
]
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"id": "review",
|
|
343
|
+
"name": "Review narrative and grounding",
|
|
344
|
+
"description": "Verify slide parity, factual traceability, and presentation readiness before conversion.",
|
|
345
|
+
"prompt": "Read `{{workPath}}/sources.md`, `{{workPath}}/outline.md`, and `{{outputDir}}/deck.md`. Write `{{workPath}}/review.md` with PASS/FAIL for every criterion: (1) each numbered outline slide appears exactly once as an H1 with the same title and order; (2) the deck opens with context and closes with the locked ask; (3) each slide has one message and concise content; (4) every number, quote, and externally checkable claim maps to a real `(source: URL-or-path)` entry in the source packet; (5) no `UNVERIFIED` claim is presented as fact; (6) tables and visuals are purposeful and likely to fit. Cite `{{workPath}}/sources.md`, `{{workPath}}/outline.md`, and `{{outputDir}}/deck.md` as `(source: path)` when recording evidence. Any failure must name the slide and exact repair. If every criterion passes, call `advance_task_step({ ref, stepId: \"review\", next: \"publish\" })`. If any criterion fails, call `advance_task_step({ ref, stepId: \"review\", next: \"write\" })`. Never publish a failed or ungrounded deck.\n\nOpen `{{workPath}}/sources.md`, `{{workPath}}/outline.md`, `{{workPath}}/review.md` from the artifacts drawer with `read_artifact` before working. On PASS, advance with next: \"publish\". Use next: \"write\" only when the review identifies a content defect.",
|
|
346
|
+
"suggestedRole": "reviewer",
|
|
347
|
+
"consumes": [
|
|
348
|
+
{
|
|
349
|
+
"file": "{{workPath}}/sources.md",
|
|
350
|
+
"artifact": true
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"file": "{{workPath}}/outline.md",
|
|
354
|
+
"artifact": true
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"file": "{{outputDir}}/deck.md"
|
|
358
|
+
}
|
|
359
|
+
],
|
|
360
|
+
"gate": {
|
|
361
|
+
"at": "completion",
|
|
362
|
+
"checks": [
|
|
363
|
+
{
|
|
364
|
+
"kind": "minBytes",
|
|
365
|
+
"file": "{{workPath}}/review.md",
|
|
366
|
+
"bytes": 400,
|
|
367
|
+
"artifact": true
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"kind": "contains",
|
|
371
|
+
"file": "{{workPath}}/review.md",
|
|
372
|
+
"pattern": "PASS|FAIL",
|
|
373
|
+
"flags": "i",
|
|
374
|
+
"label": "explicit PASS/FAIL verdicts",
|
|
375
|
+
"artifact": true
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"kind": "markdownHeadingsMatch",
|
|
379
|
+
"file": "{{outputDir}}/deck.md",
|
|
380
|
+
"outlineFile": "{{workPath}}/outline.md",
|
|
381
|
+
"outlineArtifact": true
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"kind": "citationsResolve",
|
|
385
|
+
"file": "{{workPath}}/review.md",
|
|
386
|
+
"minCitations": 1,
|
|
387
|
+
"artifact": true
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"onReject": "review",
|
|
391
|
+
"maxAttempts": 3
|
|
392
|
+
},
|
|
393
|
+
"next": "publish",
|
|
394
|
+
"toolPolicy": {
|
|
395
|
+
"disallowToolsets": [
|
|
396
|
+
"docblocks"
|
|
397
|
+
],
|
|
398
|
+
"disallowBuiltinToolsets": [
|
|
399
|
+
"ai-apps",
|
|
400
|
+
"archives",
|
|
401
|
+
"audio",
|
|
402
|
+
"browser-automation",
|
|
403
|
+
"code-execution",
|
|
404
|
+
"craftbooks",
|
|
405
|
+
"data-tables",
|
|
406
|
+
"entity-intel",
|
|
407
|
+
"git",
|
|
408
|
+
"image-intel",
|
|
409
|
+
"images",
|
|
410
|
+
"role-delegation",
|
|
411
|
+
"role-delegation-escalation",
|
|
412
|
+
"security-intel",
|
|
413
|
+
"team-management",
|
|
414
|
+
"videos",
|
|
415
|
+
"web",
|
|
416
|
+
"workspace-fs-write"
|
|
417
|
+
],
|
|
418
|
+
"outputMedium": "artifact"
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"id": "publish",
|
|
423
|
+
"name": "Publish the PowerPoint",
|
|
424
|
+
"description": "Convert the approved source, inspect and preview it, and save the real binary deliverables with review evidence.",
|
|
425
|
+
"prompt": "Publish the approved Markdown as real binary files. 1. Call `list_roots` to identify the read-enabled workspace root and write-enabled artifacts root. If no write root exists, record the blocker. Read `{{workPath}}/outline.md` from the artifacts drawer with `read_artifact` and the approved `{{outputDir}}/deck.md` from the workspace with `read_file`. 2. Call `convert_document` with source `{ \"kind\": \"file\", \"rootId\": <workspace root id>, \"path\": \"{{outputDir}}/deck.md\" }` and `autoTemplates: true`. Use one PPTX target with `fidelity: \"editable-native\"`, `slideBreak: \"h1\"`, and the deck title. The saved native slide count from `inspect_document` must equal the H1 count in the approved source. Ordinary Markdown works with defaults; use discovery only to answer a specific style requirement. 3. Use each returned artifact URI with `inspect_document` and `preview_document`, passing source `{ \"kind\": \"artifact\", \"uri\": <returned URI> }`. Review content, tables, and any reported diagnostics; request at most four preview items at a time and paginate. Interpret `previewBasis` accurately. Office/PDF `reconstructed-import` previews show normalized content sections, not native pagination, fonts, clipping, or page breaks. Review all available sections with pagination and record this native-layout limit. Do not call these native page images or invent a native page count. An accurately disclosed preview limit alone does not fail content and saved-file checks. If content or source structure fails, write precise gaps to task notes and call `advance_task_step` with next `\"write\"`; do not edit the source during this publishing step. 4. Call `save_artifact` for `{{workPath}}/deck.pptx` using the artifacts root and `ifExists: \"error\"`. For an existing output, inspect that saved file and use its `sourceSha256` as `expectedSha256` with `ifExists: \"replace\"`. Use only URIs returned by this session; reopen earlier saved binaries through file sources. 5. Copy the retained `{{workPath}}/deck.pptx` to workspace `{{outputPath}}` with `copy_artifact_to_workspace` (source and dest paths). If that tool is missing, record the retained path and exact blocker. Never send PowerPoint bytes through text-write tools. Finally, write a task note with saved paths, hashes, available counts, diagnostics, preview basis, and review limits, then advance to evaluate. Never substitute HTML, renamed Markdown, or hand-written XML for the requested binary files.",
|
|
426
|
+
"suggestedRole": "designer",
|
|
427
|
+
"consumes": [
|
|
428
|
+
{
|
|
429
|
+
"file": "{{outputDir}}/deck.md"
|
|
430
|
+
}
|
|
431
|
+
],
|
|
432
|
+
"advanceWhen": {
|
|
433
|
+
"file": "{{outputPath}}",
|
|
434
|
+
"minBytes": 1
|
|
435
|
+
},
|
|
436
|
+
"gate": {
|
|
437
|
+
"at": "completion",
|
|
438
|
+
"checks": [
|
|
439
|
+
{
|
|
440
|
+
"kind": "minBytes",
|
|
441
|
+
"file": "{{outputPath}}",
|
|
442
|
+
"bytes": 1000
|
|
443
|
+
}
|
|
444
|
+
],
|
|
445
|
+
"onReject": "publish",
|
|
446
|
+
"maxAttempts": 4
|
|
447
|
+
},
|
|
448
|
+
"next": "evaluate",
|
|
449
|
+
"toolPolicy": {
|
|
450
|
+
"disallowBuiltinToolsets": [
|
|
451
|
+
"ai-apps",
|
|
452
|
+
"archives",
|
|
453
|
+
"artifacts",
|
|
454
|
+
"audio",
|
|
455
|
+
"browser-automation",
|
|
456
|
+
"code-execution",
|
|
457
|
+
"craftbooks",
|
|
458
|
+
"data-tables",
|
|
459
|
+
"entity-intel",
|
|
460
|
+
"git",
|
|
461
|
+
"image-intel",
|
|
462
|
+
"images",
|
|
463
|
+
"role-delegation",
|
|
464
|
+
"role-delegation-escalation",
|
|
465
|
+
"security-intel",
|
|
466
|
+
"team-management",
|
|
467
|
+
"videos",
|
|
468
|
+
"web"
|
|
469
|
+
],
|
|
470
|
+
"outputMedium": "workspace",
|
|
471
|
+
"additionalOutputMedia": [
|
|
472
|
+
"task-note"
|
|
473
|
+
]
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"id": "evaluate",
|
|
478
|
+
"name": "Evaluate the saved deck",
|
|
479
|
+
"description": "Review saved-file integrity and content fidelity; document the limits of reconstructed or first-frame previews.",
|
|
480
|
+
"prompt": "Read `{{workPath}}/outline.md` from the artifacts drawer with `read_artifact` and the approved `{{outputDir}}/deck.md` from the workspace with `read_file`. Read prior review/publishing evidence with `read_task_notes`. Call `list_roots` and reopen each saved binary in `{{workPath}}/deck.pptx` with `inspect_document` and `preview_document`, using source `{ \"kind\": \"file\", \"rootId\": <artifacts root id>, \"path\": <saved path> }`. Artifact URIs from another session are not reusable. Confirm the binary opens, the supplied facts and requested content are preserved, section order and tables follow the approved source, and citations/next actions remain present. Read `{{workPath}}/sources.md` and `{{workPath}}/review.md` with `read_artifact`. Verify the native slide count equals the locked outline/H1 count and workspace `{{outputPath}}` exists as the same approved revision; use file inspection to compare source hashes when needed. Interpret `previewBasis` accurately. Office/PDF `reconstructed-import` previews show normalized content sections, not native pagination, fonts, clipping, or page breaks. Review all available sections with pagination and record this native-layout limit. Do not call these native page images or invent a native page count. An accurately disclosed preview limit alone does not fail content and saved-file checks. Write PASS/FAIL per verifiable content and saved-file criterion, name exact gaps, and state any native-layout or playback property that remains unverified. If these checks pass, route to `finish`; for content/structure failures route to `write`; for conversion/save/copy failures with the source still approved route to `publish`. Never claim an unmet criterion passed. After three unproductive loops, record DONE_WITH_CONCERNS and the remaining gaps. 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.",
|
|
481
|
+
"suggestedRole": "reviewer",
|
|
482
|
+
"consumes": [
|
|
483
|
+
{
|
|
484
|
+
"file": "{{workPath}}/sources.md",
|
|
485
|
+
"artifact": true
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"file": "{{workPath}}/outline.md",
|
|
489
|
+
"artifact": true
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"file": "{{outputDir}}/deck.md"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"file": "{{workPath}}/review.md",
|
|
496
|
+
"artifact": true
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"file": "{{outputPath}}"
|
|
500
|
+
}
|
|
501
|
+
],
|
|
502
|
+
"next": "finish",
|
|
503
|
+
"toolPolicy": {
|
|
504
|
+
"disallowBuiltinToolsets": [
|
|
505
|
+
"ai-apps",
|
|
506
|
+
"archives",
|
|
507
|
+
"audio",
|
|
508
|
+
"browser-automation",
|
|
509
|
+
"code-execution",
|
|
510
|
+
"craftbooks",
|
|
511
|
+
"data-tables",
|
|
512
|
+
"entity-intel",
|
|
513
|
+
"git",
|
|
514
|
+
"image-intel",
|
|
515
|
+
"images",
|
|
516
|
+
"role-delegation",
|
|
517
|
+
"role-delegation-escalation",
|
|
518
|
+
"security-intel",
|
|
519
|
+
"team-management",
|
|
520
|
+
"videos",
|
|
521
|
+
"web",
|
|
522
|
+
"workspace-fs-write"
|
|
523
|
+
],
|
|
524
|
+
"outputMedium": "task-note"
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"id": "finish",
|
|
529
|
+
"name": "Finish",
|
|
530
|
+
"description": "Deliver the saved files with the recorded review evidence and limits.",
|
|
531
|
+
"prompt": "Read the review evidence with `read_task_notes`. Write a concise DONE summary naming the editable Markdown source `{{outputDir}}/deck.md` and the saved deliverables `{{workPath}}/deck.pptx`. 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. Name workspace `{{outputPath}}` as the user-facing PowerPoint.",
|
|
532
|
+
"suggestedRole": "designer",
|
|
533
|
+
"consumes": [
|
|
534
|
+
{
|
|
535
|
+
"file": "{{workPath}}/sources.md",
|
|
536
|
+
"artifact": true
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"file": "{{workPath}}/outline.md",
|
|
540
|
+
"artifact": true
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"file": "{{outputDir}}/deck.md"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"file": "{{outputPath}}"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"terminal": true,
|
|
550
|
+
"toolPolicy": {
|
|
551
|
+
"disallowToolsets": [
|
|
552
|
+
"docblocks"
|
|
553
|
+
],
|
|
554
|
+
"disallowBuiltinToolsets": [
|
|
555
|
+
"ai-apps",
|
|
556
|
+
"archives",
|
|
557
|
+
"audio",
|
|
558
|
+
"browser-automation",
|
|
559
|
+
"code-execution",
|
|
560
|
+
"craftbooks",
|
|
561
|
+
"data-tables",
|
|
562
|
+
"entity-intel",
|
|
563
|
+
"git",
|
|
564
|
+
"image-intel",
|
|
565
|
+
"images",
|
|
566
|
+
"role-delegation",
|
|
567
|
+
"role-delegation-escalation",
|
|
568
|
+
"security-intel",
|
|
569
|
+
"team-management",
|
|
570
|
+
"videos",
|
|
571
|
+
"web",
|
|
572
|
+
"workspace-fs-write"
|
|
573
|
+
],
|
|
574
|
+
"outputMedium": "task-note"
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
],
|
|
578
|
+
"version": "1.7.10",
|
|
579
|
+
"releasedAt": "2026-09-07T01:00:00Z",
|
|
580
|
+
"minGezelVersion": "1.26233"
|
|
581
|
+
}
|