@bendyline/gilde 0.1.70 → 0.1.72
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/authoring/tactical/books/apply-review-findings.json +2 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.3/craftbook.json +604 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.3/test.json +290 -0
- package/data/craftbook-templates/co/code-review/versions/1.0.2/craftbook.json +230 -0
- package/data/craftbook-templates/co/code-review/versions/1.0.2/test.json +252 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.1.0/craftbook.json +311 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.1.0/test.json +167 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.1.0/craftbook.json +332 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.1.0/test.json +111 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.1.0/craftbook.json +245 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/me/meeting-minutes/versions/1.1.0/craftbook.json +246 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.1.0/craftbook.json +245 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.2/craftbook.json +243 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.2/test.json +120 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.12/craftbook.json +581 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.12/test.json +240 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.4/craftbook.json +281 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.4/test.json +356 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.1.0/craftbook.json +249 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.4/craftbook.json +223 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.4/test.json +110 -0
- package/data/knowledge-catalogs/index.json +1 -1
- package/data/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.3/manifest.json +885 -0
- package/data/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.3/manifest.json +741 -0
- package/data/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.3/manifest.json +925 -0
- package/data/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.3/manifest.json +1665 -0
- package/data/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.3/manifest.json +1233 -0
- package/data/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.3/manifest.json +493 -0
- package/data/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.3/manifest.json +665 -0
- package/data/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.3/manifest.json +745 -0
- package/data/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.3/manifest.json +1253 -0
- package/data/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.3/manifest.json +1957 -0
- package/package.json +1 -1
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Claim-level accuracy review from evidence pack",
|
|
4
|
+
"objective": "Measure whether the content-accuracy-review craftbook extracts checkable claims and writes sourced true/false/misleading/unverifiable verdicts.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"corpus"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "In the `Content Accuracy Review Eval` project, read only `source/article.md` and `source/evidence-pack.md`, then write `tasks/eval/accuracy-review.md`. Extract the six checkable claims in the article, rate each true/false/misleading/unverifiable, cite the evidence pack, give corrections, and include an overall trust rating. Do not add claims, companies, sources, or metrics beyond the seeded article and evidence pack.",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Content Accuracy Review Eval",
|
|
11
|
+
"about": "Self-contained eval project for content-accuracy-review. The draft article and evidence pack are seeded in workspace/source.",
|
|
12
|
+
"missionObjectives": "Produce a claim-by-claim accuracy review with verdicts, corrections, sources, and a trust rating.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "source/article.md",
|
|
16
|
+
"content": "# Draft article\n\nHarborCRM launched guided returns intake in February 2026. The pilot covered all SKUs and reduced median first response from 18 hours to 4 hours. Refund leakage fell from 14.2% to 8.9%. Support escalations dropped 21% after agents received recommended resolution scripts. The company guarantees national rollout in July.\n"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "source/evidence-pack.md",
|
|
20
|
+
"content": "# Evidence pack\n\n- Launch memo: guided returns intake pilot launched in March 2026, not February.\n- Pilot scope: 18 home-office accessory SKUs, not all SKUs.\n- Metrics dashboard: median first response improved from 18 hours to 6 hours.\n- Metrics dashboard: refund leakage fell from 14.2% to 8.9%.\n- Support report: escalations dropped 21% after recommended resolution scripts were added.\n- Roadmap note: national rollout is proposed for July but not guaranteed.\n"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"worker": {
|
|
24
|
+
"name": "Kiki",
|
|
25
|
+
"role": "Fact Checker"
|
|
26
|
+
},
|
|
27
|
+
"craftbookParams": {
|
|
28
|
+
"workPath": "tasks/eval",
|
|
29
|
+
"source": "source/article.md"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"mocks": [],
|
|
33
|
+
"success": {
|
|
34
|
+
"summary": "workspace/accuracy-review.md extracts seeded claims, assigns verdicts, cites evidence, corrects false/misleading claims, and gives an overall trust rating.",
|
|
35
|
+
"deliverables": [
|
|
36
|
+
{
|
|
37
|
+
"path": "tasks/eval/accuracy-review.md",
|
|
38
|
+
"kind": "markdown-report",
|
|
39
|
+
"minBytes": 1600,
|
|
40
|
+
"checks": [
|
|
41
|
+
{
|
|
42
|
+
"kind": "contains",
|
|
43
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
44
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
45
|
+
"flags": "i",
|
|
46
|
+
"artifact": true
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"kind": "contains",
|
|
50
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
51
|
+
"pattern": "TRUE|FALSE|MISLEADING|UNVERIFIABLE|trust rating",
|
|
52
|
+
"flags": "i",
|
|
53
|
+
"artifact": true
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"kind": "contains",
|
|
57
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
58
|
+
"pattern": "February|March|all SKUs|18 home-office",
|
|
59
|
+
"flags": "i",
|
|
60
|
+
"artifact": true
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"kind": "contains",
|
|
64
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
65
|
+
"pattern": "18\\s*hours|4\\s*hours|6\\s*hours|14\\.2%|8\\.9%|21%",
|
|
66
|
+
"flags": "i",
|
|
67
|
+
"artifact": true
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"kind": "contains",
|
|
71
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
72
|
+
"pattern": "correction|correct statement|source|evidence",
|
|
73
|
+
"flags": "i",
|
|
74
|
+
"artifact": true
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"kind": "contains",
|
|
78
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
79
|
+
"pattern": "guarantees national rollout|proposed for July",
|
|
80
|
+
"flags": "i",
|
|
81
|
+
"artifact": true
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"kind": "contains",
|
|
85
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
86
|
+
"pattern": "February[\\s\\S]{0,250}False|False[\\s\\S]{0,250}February",
|
|
87
|
+
"flags": "i",
|
|
88
|
+
"artifact": true
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"kind": "contains",
|
|
92
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
93
|
+
"pattern": "all SKUs[\\s\\S]{0,250}False|False[\\s\\S]{0,250}all SKUs",
|
|
94
|
+
"flags": "i",
|
|
95
|
+
"artifact": true
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"kind": "contains",
|
|
99
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
100
|
+
"pattern": "4\\s*hours[\\s\\S]{0,250}(False|Misleading)|(False|Misleading)[\\s\\S]{0,250}4\\s*hours",
|
|
101
|
+
"flags": "i",
|
|
102
|
+
"artifact": true
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"kind": "contains",
|
|
106
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
107
|
+
"pattern": "14\\.2%[\\s\\S]{0,250}True|8\\.9%[\\s\\S]{0,250}True|True[\\s\\S]{0,250}14\\.2%",
|
|
108
|
+
"flags": "i",
|
|
109
|
+
"artifact": true
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"kind": "contains",
|
|
113
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
114
|
+
"pattern": "21%[\\s\\S]{0,250}True|True[\\s\\S]{0,250}21%",
|
|
115
|
+
"flags": "i",
|
|
116
|
+
"artifact": true
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"kind": "contains",
|
|
120
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
121
|
+
"pattern": "guarantees[\\s\\S]{0,300}(False|Misleading)|(False|Misleading)[\\s\\S]{0,300}guarantees",
|
|
122
|
+
"flags": "i",
|
|
123
|
+
"artifact": true
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"kind": "notContains",
|
|
127
|
+
"file": "tasks/eval/accuracy-review.md",
|
|
128
|
+
"pattern": "Q3|AlphaCorp|enterprise software|cash reserve|dominant market|CEO announced|RESTful API|stress tests",
|
|
129
|
+
"flags": "i",
|
|
130
|
+
"label": "do not invent review claims or evidence beyond the seeded article",
|
|
131
|
+
"artifact": true
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"artifact": true
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"rubric": {
|
|
139
|
+
"artifact": {
|
|
140
|
+
"path": "tasks/eval/accuracy-review.md",
|
|
141
|
+
"kind": "markdown"
|
|
142
|
+
},
|
|
143
|
+
"axes": [
|
|
144
|
+
{
|
|
145
|
+
"name": "grounding",
|
|
146
|
+
"description": "Seeded facts appear faithfully and the source is cited."
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "structure",
|
|
150
|
+
"description": "Sections progress logically for the artifact class."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "completeness",
|
|
154
|
+
"description": "Required elements (risks, next actions, scope) are all present."
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "tone",
|
|
158
|
+
"description": "The register fits the audience and artifact class."
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
"qualityFocus": [
|
|
163
|
+
"claim extraction",
|
|
164
|
+
"evidence-backed verdicts",
|
|
165
|
+
"corrections"
|
|
166
|
+
]
|
|
167
|
+
}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "ebook-compile",
|
|
3
|
+
"name": "Ebook Compile",
|
|
4
|
+
"description": "Compile a collection of notes, articles, or chapter drafts into a coherent, readable ebook — with a title page, table of contents, consistently formatted chapters, and front/back matter — output as a single navigable HTML book. Outlines the chapter structure and through-line FIRST (so disparate notes become a real book, not a pile), writes/edits each chapter to a consistent voice and adds connective tissue, then builds the compiled HTML with a linked TOC and chapter navigation. Use for turning a blog backlog, course notes, or drafts into a downloadable ebook.\n\nIt works on the source material you choose when you launch it: a folder in this project, read where it is, or notes you pick from your computer.\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. Outline the book (planner) — chapter order, through-line, and front/back matter → gated on artifact `{{workPath}}/outline.md` (markdown-notes)\n2. Write and edit chapters (copywriter) — edit each chapter to one voice + add connective transitions → gated on artifact `{{workPath}}/write.md` (markdown-notes)\n3. Build the ebook (developer) — compile index.html: title page, linked TOC, chapter nav → gated on `index.html` (html-page)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
|
|
5
|
+
"entryStepId": "outline",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"compile an ebook",
|
|
8
|
+
"make an ebook",
|
|
9
|
+
"turn my notes into a book",
|
|
10
|
+
"ebook from articles",
|
|
11
|
+
"build a book",
|
|
12
|
+
"create an ebook"
|
|
13
|
+
],
|
|
14
|
+
"paramSchema": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"required": [
|
|
17
|
+
"source"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"source": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"title": "Source content",
|
|
23
|
+
"description": "The notes, articles, or chapter drafts to compile. A folder in this project, or one you pick from your computer.",
|
|
24
|
+
"input": {
|
|
25
|
+
"kind": "folder",
|
|
26
|
+
"accept": [
|
|
27
|
+
".md",
|
|
28
|
+
".markdown",
|
|
29
|
+
".txt",
|
|
30
|
+
".html",
|
|
31
|
+
".htm",
|
|
32
|
+
".docx",
|
|
33
|
+
".pdf"
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"workPath": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"title": "Working folder",
|
|
40
|
+
"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.",
|
|
41
|
+
"default": "{{task.dir}}"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"steps": [
|
|
46
|
+
{
|
|
47
|
+
"id": "outline",
|
|
48
|
+
"name": "Outline the book",
|
|
49
|
+
"description": "chapter order, through-line, and front/back matter",
|
|
50
|
+
"prompt": "Turn the raw material into a book structure. Step 1: read EVERY file of the `source` input. Its complete file list is `{{task.dir}}/inputs/source.json`, and the invocation parameters above say where the files are and how to open them. Identify the central through-line or argument that will make them cohere. Step 2: group and order the material into chapters/parts that build logically; cut or merge redundant pieces. Step 3: plan the front matter (title page, optional preface/intro, table of contents) and back matter (conclusion, about, resources). Step 4: for each chapter note its title, the source files it draws from (by their exact paths from the file list), and the transition that links it to the next. Name any source file you deliberately cut, and why. Step 5: write an acceptance-criteria checklist ('has a title page + linked table of contents', 'chapters are ordered to a clear through-line', 'each chapter opens and closes cleanly with transitions', 'consistent heading levels throughout', 'front and back matter present'). Write the chapter map + checklist via write_task_note AND to {{workPath}}/outline.md. No chapter prose or HTML yet.\n\nThe deliverable `{{workPath}}/outline.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.",
|
|
51
|
+
"suggestedRole": "planner",
|
|
52
|
+
"advanceWhen": {
|
|
53
|
+
"file": "{{workPath}}/outline.md",
|
|
54
|
+
"minBytes": 1,
|
|
55
|
+
"sniff": "nonempty",
|
|
56
|
+
"artifact": true
|
|
57
|
+
},
|
|
58
|
+
"gate": {
|
|
59
|
+
"at": "completion",
|
|
60
|
+
"checks": [
|
|
61
|
+
{
|
|
62
|
+
"kind": "minBytes",
|
|
63
|
+
"file": "{{workPath}}/outline.md",
|
|
64
|
+
"bytes": 120,
|
|
65
|
+
"artifact": true
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"kind": "sniff",
|
|
69
|
+
"file": "{{workPath}}/outline.md",
|
|
70
|
+
"sniff": "nonempty",
|
|
71
|
+
"artifact": true
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"onReject": "outline",
|
|
75
|
+
"maxAttempts": 3
|
|
76
|
+
},
|
|
77
|
+
"next": "write",
|
|
78
|
+
"toolPolicy": {
|
|
79
|
+
"disallowBuiltinToolsets": [
|
|
80
|
+
"ai-apps",
|
|
81
|
+
"archives",
|
|
82
|
+
"audio",
|
|
83
|
+
"browser-automation",
|
|
84
|
+
"code-execution",
|
|
85
|
+
"craftbooks",
|
|
86
|
+
"data-tables",
|
|
87
|
+
"entity-intel",
|
|
88
|
+
"git",
|
|
89
|
+
"image-intel",
|
|
90
|
+
"images",
|
|
91
|
+
"role-delegation",
|
|
92
|
+
"role-delegation-escalation",
|
|
93
|
+
"security-intel",
|
|
94
|
+
"team-management",
|
|
95
|
+
"videos",
|
|
96
|
+
"web",
|
|
97
|
+
"workspace-fs-write"
|
|
98
|
+
],
|
|
99
|
+
"outputMedium": "artifact",
|
|
100
|
+
"additionalOutputMedia": [
|
|
101
|
+
"task-note"
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
"consumes": [
|
|
105
|
+
{
|
|
106
|
+
"file": "{{task.dir}}/inputs/source.json",
|
|
107
|
+
"artifact": true
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "write",
|
|
113
|
+
"name": "Write and edit chapters",
|
|
114
|
+
"description": "edit each chapter to one voice + add connective transitions",
|
|
115
|
+
"prompt": "Write/edit the chapters so the book reads as one work. Step 1: for each chapter in the outline, in order, re-read the source files it draws from (the outline names their paths) and shape that material into clean prose with a consistent voice, tense, and terminology (disparate notes often clash — unify them). Step 2: give each chapter a clear opening that orients the reader and a close that lands the point and transitions to the next chapter. Step 3: write the preface/intro that sets up the through-line and the conclusion that ties it together. Step 4: standardize formatting decisions — heading levels, how lists/quotes/code appear — so they are uniform across chapters. Step 5: keep the reader's journey in mind: no chapter should feel like an orphaned blog post. Write the per-chapter edited text + front/back matter via write_task_note AND to {{workPath}}/write.md.\n\nThe deliverable `{{workPath}}/write.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.",
|
|
116
|
+
"suggestedRole": "copywriter",
|
|
117
|
+
"advanceWhen": {
|
|
118
|
+
"file": "{{workPath}}/write.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}}/write.md",
|
|
129
|
+
"bytes": 120,
|
|
130
|
+
"artifact": true
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"kind": "sniff",
|
|
134
|
+
"file": "{{workPath}}/write.md",
|
|
135
|
+
"sniff": "nonempty",
|
|
136
|
+
"artifact": true
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"onReject": "write",
|
|
140
|
+
"maxAttempts": 3
|
|
141
|
+
},
|
|
142
|
+
"next": "build",
|
|
143
|
+
"toolPolicy": {
|
|
144
|
+
"disallowBuiltinToolsets": [
|
|
145
|
+
"ai-apps",
|
|
146
|
+
"archives",
|
|
147
|
+
"audio",
|
|
148
|
+
"browser-automation",
|
|
149
|
+
"code-execution",
|
|
150
|
+
"craftbooks",
|
|
151
|
+
"data-tables",
|
|
152
|
+
"entity-intel",
|
|
153
|
+
"git",
|
|
154
|
+
"image-intel",
|
|
155
|
+
"images",
|
|
156
|
+
"role-delegation",
|
|
157
|
+
"role-delegation-escalation",
|
|
158
|
+
"security-intel",
|
|
159
|
+
"team-management",
|
|
160
|
+
"videos",
|
|
161
|
+
"web",
|
|
162
|
+
"workspace-fs-write"
|
|
163
|
+
],
|
|
164
|
+
"outputMedium": "artifact",
|
|
165
|
+
"additionalOutputMedia": [
|
|
166
|
+
"task-note"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"consumes": [
|
|
170
|
+
{
|
|
171
|
+
"file": "{{workPath}}/outline.md",
|
|
172
|
+
"artifact": true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"file": "{{task.dir}}/inputs/source.json",
|
|
176
|
+
"artifact": true
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"id": "build",
|
|
182
|
+
"name": "Build the ebook",
|
|
183
|
+
"description": "compile index.html: title page, linked TOC, chapter nav",
|
|
184
|
+
"prompt": "First open `{{workPath}}/write.md`, `{{workPath}}/outline.md` with `read_artifact`: they are the earlier work this step builds on. Compile the book as a single self-contained index.html (inline CSS, no external assets). Step 1: build a title page (title, subtitle, author) as the opening screen. Step 2: build a Table of Contents with in-page anchor links to every chapter. Step 3: render each chapter in order with a stable id, consistent heading hierarchy, comfortable reading width and line-height, and the unified formatting from the edit phase. Step 4: add chapter navigation — previous/next links and a back-to-TOC link at each chapter boundary — and use page-break-before per chapter so it also prints/exports as a clean book. Step 5: include the front matter (preface) and back matter (conclusion, about/resources). Drop in the edited prose from `{{workPath}}/write.md` verbatim; do not re-edit the voice here. On a loop-back, fix ONLY the named gaps. Write the path + chapter count via write_task_note.",
|
|
185
|
+
"suggestedRole": "developer",
|
|
186
|
+
"advanceWhen": {
|
|
187
|
+
"file": "index.html",
|
|
188
|
+
"minBytes": 1,
|
|
189
|
+
"sniff": "html-complete"
|
|
190
|
+
},
|
|
191
|
+
"gate": {
|
|
192
|
+
"at": "completion",
|
|
193
|
+
"checks": [
|
|
194
|
+
{
|
|
195
|
+
"kind": "minBytes",
|
|
196
|
+
"file": "index.html",
|
|
197
|
+
"bytes": 800
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"kind": "htmlLint",
|
|
201
|
+
"file": "index.html"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"scripts": [
|
|
205
|
+
{
|
|
206
|
+
"name": "checkHtmlComplete",
|
|
207
|
+
"scope": "standard",
|
|
208
|
+
"inputs": {
|
|
209
|
+
"file": "index.html"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"onReject": "build",
|
|
214
|
+
"maxAttempts": 4
|
|
215
|
+
},
|
|
216
|
+
"next": "evaluate",
|
|
217
|
+
"toolPolicy": {
|
|
218
|
+
"disallowBuiltinToolsets": [
|
|
219
|
+
"ai-apps",
|
|
220
|
+
"archives",
|
|
221
|
+
"audio",
|
|
222
|
+
"browser-automation",
|
|
223
|
+
"craftbooks",
|
|
224
|
+
"data-tables",
|
|
225
|
+
"entity-intel",
|
|
226
|
+
"git",
|
|
227
|
+
"image-intel",
|
|
228
|
+
"images",
|
|
229
|
+
"role-delegation",
|
|
230
|
+
"role-delegation-escalation",
|
|
231
|
+
"security-intel",
|
|
232
|
+
"team-management",
|
|
233
|
+
"videos",
|
|
234
|
+
"web"
|
|
235
|
+
],
|
|
236
|
+
"outputMedium": "workspace",
|
|
237
|
+
"additionalOutputMedia": [
|
|
238
|
+
"task-note"
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
"consumes": [
|
|
242
|
+
{
|
|
243
|
+
"file": "{{workPath}}/write.md",
|
|
244
|
+
"artifact": true
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"file": "{{workPath}}/outline.md",
|
|
248
|
+
"artifact": true
|
|
249
|
+
}
|
|
250
|
+
]
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"id": "evaluate",
|
|
254
|
+
"name": "Evaluate",
|
|
255
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
256
|
+
"prompt": "First open `{{workPath}}/outline.md`, `{{task.dir}}/inputs/source.json` with `read_artifact`: they are the earlier work this step builds on. QA the ebook against the locked criteria. Step 1: open/render index.html and click through the TOC links and chapter navigation. Step 2: check EACH acceptance criterion in the outline: title page present, a linked table of contents whose links all resolve to the right chapters, chapters ordered to the through-line, each chapter opens/closes with transitions, heading levels and formatting are consistent across chapters, and front + back matter are present. Step 3: read two non-adjacent chapters and confirm the voice is unified (not obviously stitched from clashing sources). Step 4: confirm chapter page-breaks work for print/export. Step 5: confirm every file in the source file list is represented in some chapter, or was cut on purpose in the outline — a dropped source is a FAIL. Write PASS/FAIL per criterion with the offending chapter on any FAIL.\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: \"build\" })` 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.",
|
|
257
|
+
"suggestedRole": "reviewer",
|
|
258
|
+
"consumes": [
|
|
259
|
+
{
|
|
260
|
+
"file": "index.html"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"file": "{{workPath}}/outline.md",
|
|
264
|
+
"artifact": true
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"file": "{{task.dir}}/inputs/source.json",
|
|
268
|
+
"artifact": true
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
"next": "build",
|
|
272
|
+
"toolPolicy": {
|
|
273
|
+
"disallowBuiltinToolsets": [
|
|
274
|
+
"ai-apps",
|
|
275
|
+
"archives",
|
|
276
|
+
"audio",
|
|
277
|
+
"browser-automation",
|
|
278
|
+
"code-execution",
|
|
279
|
+
"craftbooks",
|
|
280
|
+
"data-tables",
|
|
281
|
+
"entity-intel",
|
|
282
|
+
"git",
|
|
283
|
+
"image-intel",
|
|
284
|
+
"images",
|
|
285
|
+
"role-delegation",
|
|
286
|
+
"role-delegation-escalation",
|
|
287
|
+
"security-intel",
|
|
288
|
+
"team-management",
|
|
289
|
+
"videos",
|
|
290
|
+
"web",
|
|
291
|
+
"workspace-fs-write"
|
|
292
|
+
],
|
|
293
|
+
"outputMedium": "task-note"
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"id": "finish",
|
|
298
|
+
"name": "Finish",
|
|
299
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
300
|
+
"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.",
|
|
301
|
+
"suggestedRole": "developer",
|
|
302
|
+
"terminal": true,
|
|
303
|
+
"toolPolicy": {
|
|
304
|
+
"disallowBuiltinToolsets": [
|
|
305
|
+
"ai-apps",
|
|
306
|
+
"archives",
|
|
307
|
+
"artifacts",
|
|
308
|
+
"audio",
|
|
309
|
+
"browser-automation",
|
|
310
|
+
"code-execution",
|
|
311
|
+
"craftbooks",
|
|
312
|
+
"data-tables",
|
|
313
|
+
"entity-intel",
|
|
314
|
+
"git",
|
|
315
|
+
"image-intel",
|
|
316
|
+
"images",
|
|
317
|
+
"role-delegation",
|
|
318
|
+
"role-delegation-escalation",
|
|
319
|
+
"security-intel",
|
|
320
|
+
"team-management",
|
|
321
|
+
"videos",
|
|
322
|
+
"web",
|
|
323
|
+
"workspace-fs-write"
|
|
324
|
+
],
|
|
325
|
+
"outputMedium": "task-note"
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"version": "1.1.0",
|
|
330
|
+
"releasedAt": "2026-09-24T12:00:00Z",
|
|
331
|
+
"minGezelVersion": "1.26267"
|
|
332
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Ebook Compile smoke eval",
|
|
4
|
+
"objective": "Compile a seeded folder of three chapter drafts, passed as the book's source input, into one navigable HTML ebook that draws on every draft.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"html-page",
|
|
7
|
+
"craftbook-input"
|
|
8
|
+
],
|
|
9
|
+
"prompt": "Can you turn my drafts into a little ebook? They're the notes in the drafts folder — keep my facts, just make it read like one book. One index.html is all we need.",
|
|
10
|
+
"setup": {
|
|
11
|
+
"projectName": "Ebook Compile Eval",
|
|
12
|
+
"about": "Self-contained eval project for ebook-compile. The source drafts are under workspace/drafts and are passed as the craftbook's source input; the final deliverable is workspace/index.html.",
|
|
13
|
+
"missionObjectives": "Use the Ebook Compile craftbook, read every draft in the source input, and write index.html without network calls, real credentials, or live services.",
|
|
14
|
+
"files": [
|
|
15
|
+
{
|
|
16
|
+
"path": "drafts/01-why-returns-matter.md",
|
|
17
|
+
"content": "# Why returns matter\n\nBoreal Desk sells home-office accessories. Our returns desk pilot covered 18 SKUs.\n\nMost customers who return something are not angry about the product. They are angry about silence: the top unresolved complaint is status silence after photo submission.\n"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"path": "drafts/02-what-the-pilot-changed.md",
|
|
21
|
+
"content": "# What the pilot changed\n\nMedian first response improved from 18 hours to 6 hours.\nPreventable refund leakage fell from 14.2% to 8.9%.\n\nThe biggest single win was answering first, even when the answer was only \"we have your photos\".\n"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"path": "drafts/03-next-steps.md",
|
|
25
|
+
"content": "# Next steps\n\nThree things come next: automated status emails, barcode-exception training, and a weekly Finance exception export.\n\nNone of them is expensive. All of them are about telling people what is happening.\n"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"path": "drafts/cover-sketch.png",
|
|
29
|
+
"content": "not really an image"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"craftbookParams": {
|
|
33
|
+
"source": "drafts"
|
|
34
|
+
},
|
|
35
|
+
"worker": {
|
|
36
|
+
"name": "Jules",
|
|
37
|
+
"role": "Developer"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"mocks": [],
|
|
41
|
+
"success": {
|
|
42
|
+
"summary": "index.html is a self-contained ebook with a title page, a linked table of contents, and a chapter for the material of every draft.",
|
|
43
|
+
"deliverables": [
|
|
44
|
+
{
|
|
45
|
+
"path": "index.html",
|
|
46
|
+
"kind": "html-page",
|
|
47
|
+
"minBytes": 3000,
|
|
48
|
+
"checks": [
|
|
49
|
+
{
|
|
50
|
+
"kind": "cssMinBytes",
|
|
51
|
+
"bytes": 400,
|
|
52
|
+
"file": "index.html"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"kind": "contains",
|
|
56
|
+
"file": "index.html",
|
|
57
|
+
"pattern": "href=\"#",
|
|
58
|
+
"flags": "i"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"kind": "contains",
|
|
62
|
+
"file": "index.html",
|
|
63
|
+
"pattern": "status silence",
|
|
64
|
+
"flags": "i"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "contains",
|
|
68
|
+
"file": "index.html",
|
|
69
|
+
"pattern": "18\\s*hours[^<]{0,40}6\\s*hours|14\\.2%[^<]{0,40}8\\.9%",
|
|
70
|
+
"flags": "i"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"kind": "contains",
|
|
74
|
+
"file": "index.html",
|
|
75
|
+
"pattern": "barcode[- ]exception",
|
|
76
|
+
"flags": "i"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"rubric": {
|
|
83
|
+
"artifact": {
|
|
84
|
+
"path": "index.html",
|
|
85
|
+
"kind": "html"
|
|
86
|
+
},
|
|
87
|
+
"axes": [
|
|
88
|
+
{
|
|
89
|
+
"name": "structure",
|
|
90
|
+
"description": "A title page, a table of contents whose links resolve, and chapters ordered to one through-line."
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "grounding",
|
|
94
|
+
"description": "Every draft's facts appear, unchanged; nothing is invented and no draft is dropped."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "voice",
|
|
98
|
+
"description": "The chapters read as one book, with transitions, not three stitched posts."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "polish",
|
|
102
|
+
"description": "Comfortable reading width and consistent headings; chapters break cleanly for print."
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
"qualityFocus": [
|
|
107
|
+
"source coverage",
|
|
108
|
+
"linked table of contents",
|
|
109
|
+
"unified voice"
|
|
110
|
+
]
|
|
111
|
+
}
|