@bendyline/gilde 0.1.92 → 0.1.94

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 (137) hide show
  1. package/README.md +6 -4
  2. package/authoring/chat-models/underdog-saluki-27b-iq2-mix.json +159 -0
  3. package/data/chat-models/index.json +1 -1
  4. package/data/chat-models/raw-index.json +1 -1
  5. package/data/chat-models/un/underdog-saluki-27b-iq2-mix/manifest.json +164 -0
  6. package/data/chat-models/un/underdog-saluki-27b-iq2-mix/versions/1.0.0/manifest.json +14 -0
  7. package/data/craftbook-templates/br/branding-website/manifest.json +2 -1
  8. package/data/craftbook-templates/br/branding-website/versions/1.1.4/craftbook.json +346 -0
  9. package/data/craftbook-templates/br/branding-website/versions/1.1.4/test.json +164 -0
  10. package/data/craftbook-templates/fr/freeze-scope/versions/1.4.0/craftbook.json +94 -0
  11. package/data/craftbook-templates/fr/freeze-scope/versions/1.4.0/test.json +131 -0
  12. package/data/craftbook-templates/index.json +1 -1
  13. package/data/craftbook-templates/na/narrated-slideshow/manifest.json +2 -1
  14. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.7/craftbook.json +315 -0
  15. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.7/test.json +89 -0
  16. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.8/craftbook.json +323 -0
  17. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.8/test.json +217 -0
  18. package/data/craftbook-templates/ph/photo-library-nightly/manifest.json +22 -0
  19. package/data/craftbook-templates/ph/photo-library-nightly/versions/1.0.0/craftbook.json +186 -0
  20. package/data/craftbook-templates/ph/photo-library-nightly/versions/1.0.0/test.json +69 -0
  21. package/data/craftbook-templates/po/powerpoint-deck/manifest.json +2 -1
  22. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.17/craftbook.json +486 -0
  23. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.17/test.json +265 -0
  24. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.18/craftbook.json +501 -0
  25. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.18/test.json +266 -0
  26. package/data/craftbook-templates/raw-index.json +1 -1
  27. package/data/craftbook-templates/re/report-pdf/manifest.json +2 -1
  28. package/data/craftbook-templates/re/report-pdf/versions/1.1.7/craftbook.json +316 -0
  29. package/data/craftbook-templates/re/report-pdf/versions/1.1.7/test.json +101 -0
  30. package/data/craftbook-templates/re/report-pdf/versions/1.1.8/craftbook.json +324 -0
  31. package/data/craftbook-templates/re/report-pdf/versions/1.1.8/test.json +258 -0
  32. package/data/craftbook-templates/re/research-report/manifest.json +2 -1
  33. package/data/craftbook-templates/re/research-report/versions/1.0.4/craftbook.json +286 -0
  34. package/data/craftbook-templates/re/research-report/versions/1.0.4/test.json +183 -0
  35. package/data/craftbook-templates/re/research-to-document/manifest.json +2 -1
  36. package/data/craftbook-templates/re/research-to-document/versions/1.2.7/craftbook.json +387 -0
  37. package/data/craftbook-templates/re/research-to-document/versions/1.2.7/test.json +242 -0
  38. package/data/craftbook-templates/re/research-to-document/versions/1.2.8/craftbook.json +395 -0
  39. package/data/craftbook-templates/re/research-to-document/versions/1.2.8/test.json +254 -0
  40. package/data/gezel-templates/cu/curator/manifest.json +20 -0
  41. package/data/gezel-templates/cu/curator/versions/1.0.0/about.md +22 -0
  42. package/data/gezel-templates/cu/curator/versions/1.0.0/manifest.json +23 -0
  43. package/data/gezel-templates/index.json +1 -1
  44. package/data/gezel-templates/pu/puzzelaar/manifest.json +19 -0
  45. package/data/gezel-templates/pu/puzzelaar/versions/1.0.0/about.md +18 -0
  46. package/data/gezel-templates/pu/puzzelaar/versions/1.0.0/manifest.json +16 -0
  47. package/data/gezel-templates/raw-index.json +1 -1
  48. package/data/gezel-templates/wo/woordsmid/manifest.json +19 -0
  49. package/data/gezel-templates/wo/woordsmid/versions/1.0.0/about.md +18 -0
  50. package/data/gezel-templates/wo/woordsmid/versions/1.0.0/manifest.json +16 -0
  51. package/data/image-models/index.json +1 -1
  52. package/data/image-models/mi/ming-image-0.1-design-bf16/manifest.json +39 -0
  53. package/data/image-models/mi/ming-image-0.1-design-bf16/versions/1.0.0/manifest.json +31 -0
  54. package/data/image-models/raw-index.json +1 -1
  55. package/data/knowledge-catalogs/be/bendyline-how-to-books/manifest.json +26 -0
  56. package/data/knowledge-catalogs/be/bendyline-how-to-books/versions/2026.10.8/manifest.json +8950 -0
  57. package/data/knowledge-catalogs/index.json +1 -1
  58. package/data/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/manifest.json +22 -0
  59. package/data/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/versions/2026.10.16/manifest.json +18270 -0
  60. package/data/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/manifest.json +23 -0
  61. package/data/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/versions/2026.10.16/manifest.json +1098 -0
  62. package/data/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/manifest.json +23 -0
  63. package/data/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/versions/2026.10.16/manifest.json +722 -0
  64. package/data/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/manifest.json +23 -0
  65. package/data/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/versions/2026.10.16/manifest.json +530 -0
  66. package/data/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/manifest.json +23 -0
  67. package/data/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/versions/2026.10.16/manifest.json +602 -0
  68. package/data/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/manifest.json +23 -0
  69. package/data/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/versions/2026.10.16/manifest.json +250 -0
  70. package/data/knowledge-catalogs/mi/microsoftdocs-dotnet-en/manifest.json +22 -0
  71. package/data/knowledge-catalogs/mi/microsoftdocs-dotnet-en/versions/2026.10.16/manifest.json +16794 -0
  72. package/data/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/manifest.json +22 -0
  73. package/data/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/versions/2026.10.16/manifest.json +1106 -0
  74. package/data/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/manifest.json +22 -0
  75. package/data/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/versions/2026.10.16/manifest.json +234 -0
  76. package/data/knowledge-catalogs/mi/microsoftdocs-powershell-en/manifest.json +22 -0
  77. package/data/knowledge-catalogs/mi/microsoftdocs-powershell-en/versions/2026.10.16/manifest.json +522 -0
  78. package/data/knowledge-catalogs/mi/microsoftdocs-sql-server-en/manifest.json +22 -0
  79. package/data/knowledge-catalogs/mi/microsoftdocs-sql-server-en/versions/2026.10.16/manifest.json +1850 -0
  80. package/data/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/manifest.json +22 -0
  81. package/data/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/versions/2026.10.16/manifest.json +1734 -0
  82. package/data/knowledge-catalogs/mi/microsoftdocs-windows-server-en/manifest.json +22 -0
  83. package/data/knowledge-catalogs/mi/microsoftdocs-windows-server-en/versions/2026.10.16/manifest.json +774 -0
  84. package/data/knowledge-catalogs/raw-index.json +1 -1
  85. package/data/project-types/ch/checkers/versions/1.2.3/about.md +9 -0
  86. package/data/project-types/ch/checkers/versions/1.2.3/game.json +77 -0
  87. package/data/project-types/ch/checkers/versions/1.2.3/manifest.json +182 -0
  88. package/data/project-types/ch/checkers/versions/1.2.3/mission.md +9 -0
  89. package/data/project-types/ch/checkers/versions/1.2.3/pages/board/index.html +1158 -0
  90. package/data/project-types/ch/chess/versions/1.0.6/about.md +9 -0
  91. package/data/project-types/ch/chess/versions/1.0.6/game.json +127 -0
  92. package/data/project-types/ch/chess/versions/1.0.6/manifest.json +196 -0
  93. package/data/project-types/ch/chess/versions/1.0.6/mission.md +8 -0
  94. package/data/project-types/ch/chess/versions/1.0.6/pages/board/index.html +851 -0
  95. package/data/project-types/fi/fitness-coach/versions/1.1.0/about.md +8 -0
  96. package/data/project-types/fi/fitness-coach/versions/1.1.0/craftbooks/training-recap.json +34 -0
  97. package/data/project-types/fi/fitness-coach/versions/1.1.0/manifest.json +229 -0
  98. package/data/project-types/fi/fitness-coach/versions/1.1.0/mission.md +7 -0
  99. package/data/project-types/fi/fitness-coach/versions/1.1.0/pages/dashboard/index.html +383 -0
  100. package/data/project-types/fi/fitness-coach/versions/1.1.0/training.json +6 -0
  101. package/data/project-types/fl/flashcards/versions/1.1.2/about.md +8 -0
  102. package/data/project-types/fl/flashcards/versions/1.1.2/deck.json +7 -0
  103. package/data/project-types/fl/flashcards/versions/1.1.2/manifest.json +169 -0
  104. package/data/project-types/fl/flashcards/versions/1.1.2/mission.md +6 -0
  105. package/data/project-types/fl/flashcards/versions/1.1.2/pages/review/index.html +477 -0
  106. package/data/project-types/fl/flashcards/versions/1.2.0/about.md +8 -0
  107. package/data/project-types/fl/flashcards/versions/1.2.0/deck.json +7 -0
  108. package/data/project-types/fl/flashcards/versions/1.2.0/manifest.json +207 -0
  109. package/data/project-types/fl/flashcards/versions/1.2.0/mission.md +6 -0
  110. package/data/project-types/fl/flashcards/versions/1.2.0/pages/review/index.html +549 -0
  111. package/data/project-types/go/go/versions/1.0.4/about.md +9 -0
  112. package/data/project-types/go/go/versions/1.0.4/game.json +103 -0
  113. package/data/project-types/go/go/versions/1.0.4/manifest.json +182 -0
  114. package/data/project-types/go/go/versions/1.0.4/mission.md +8 -0
  115. package/data/project-types/go/go/versions/1.0.4/pages/board/index.html +855 -0
  116. package/data/project-types/index.json +1 -1
  117. package/data/project-types/la/language-trainer/versions/1.1.0/about.md +8 -0
  118. package/data/project-types/la/language-trainer/versions/1.1.0/manifest.json +245 -0
  119. package/data/project-types/la/language-trainer/versions/1.1.0/mission.md +4 -0
  120. package/data/project-types/la/language-trainer/versions/1.1.0/pages/dashboard/index.html +468 -0
  121. package/data/project-types/la/language-trainer/versions/1.1.0/progress.json +10 -0
  122. package/data/project-types/la/language-trainer/versions/1.1.0/reviews.json +3 -0
  123. package/data/project-types/la/language-trainer/versions/1.1.0/scenarios.json +84 -0
  124. package/data/project-types/raw-index.json +1 -1
  125. package/data/project-types/wo/word-clues/manifest.json +20 -0
  126. package/data/project-types/wo/word-clues/versions/1.0.0/about.md +7 -0
  127. package/data/project-types/wo/word-clues/versions/1.0.0/game.json +14 -0
  128. package/data/project-types/wo/word-clues/versions/1.0.0/manifest.json +205 -0
  129. package/data/project-types/wo/word-clues/versions/1.0.0/mission.md +3 -0
  130. package/data/project-types/wo/word-clues/versions/1.0.0/pages/board/index.html +399 -0
  131. package/data/project-types/wo/word-clues/versions/1.0.0/words.json +216 -0
  132. package/package.json +5 -3
  133. package/schemas/craftbook-doc.schema.json +14 -0
  134. package/schemas/craftbook-template-version.schema.json +14 -0
  135. package/schemas/craftbook-test.schema.json +4 -1
  136. package/schemas/image-model-version.schema.json +2 -1
  137. package/schemas/project-type-version.schema.json +131 -0
@@ -0,0 +1,286 @@
1
+ {
2
+ "id": "research-report",
3
+ "name": "Cited Research Report",
4
+ "description": "Produce a rigorously cited research report that answers a specific question end to end: a planner first decomposes the question into sub-questions and locks the scope, then a researcher gathers and logs primary and secondary sources with inline citations, then a copywriter writes a structured markdown report (executive summary, findings, evidence, limitations, references). The ordering matters because a small model that writes before scoping rambles and a model that writes without a source log fabricates citations; locking sub-questions and a source table first turns the report into a fill-in-the-evidence exercise. Use this for literature-backed analysis, deep dives, investigative write-ups, background research, and any 'find out and write it up with sources' task where every claim must trace to a citation.\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. Question scope (planner) — decompose the question into sub-questions + lock scope → gated on artifact `{{workPath}}/question-scope.md` (markdown-notes)\n2. Research & source log (researcher) — gather sources, log each with a citation key + key facts → gated on artifact `{{workPath}}/sources.md` (markdown-notes)\n3. Write the report (copywriter) — write the cited markdown report to the locked structure → gated on artifact `{{workPath}}/report.md` (markdown-report)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "question-scope",
6
+ "triggers": [
7
+ "write a research report",
8
+ "research this question with sources",
9
+ "cited report",
10
+ "deep dive on a topic",
11
+ "investigate and write it up"
12
+ ],
13
+ "paramSchema": {
14
+ "type": "object",
15
+ "properties": {
16
+ "workPath": {
17
+ "type": "string",
18
+ "title": "Working folder",
19
+ "description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
20
+ "default": "{{task.dir}}",
21
+ "askUser": false
22
+ },
23
+ "topic": {
24
+ "type": "string",
25
+ "title": "Topic",
26
+ "description": "The subject, audience, and any details you want the crew to include.",
27
+ "fromMessage": true
28
+ }
29
+ }
30
+ },
31
+ "steps": [
32
+ {
33
+ "id": "question-scope",
34
+ "name": "Question scope",
35
+ "description": "decompose the question into sub-questions + lock scope",
36
+ "prompt": "1. Restate the research question in one precise sentence; if it is vague, narrow it to something answerable (define the entity, timeframe, geography, and metric). 2. Decompose it into 3-6 sub-questions that, answered together, fully answer the main question. 3. Decide the report structure: executive summary, one section per sub-question, a limitations section, and a references list. 4. Decide source standards: how many independent sources minimum (aim 5+), what counts as authoritative for this topic, and the recency window. 5. Write an acceptance-criteria checklist (e.g. 'every sub-question has a dedicated section', 'every factual claim has an inline citation [n]', 'at least 5 distinct sources in references', 'an explicit limitations/uncertainty section exists', 'executive summary is <=150 words and states the bottom line'). Good looks like a checklist a grader could mechanically apply. 6. Record key decisions (the narrowed question, the sub-questions, the recency window). Call write_task_note with the sub-questions + checklist + decisions, and also write the same content to {{workPath}}/question-scope.md.\n\nThe deliverable `{{workPath}}/question-scope.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
37
+ "suggestedRole": "planner",
38
+ "advanceWhen": {
39
+ "file": "{{workPath}}/question-scope.md",
40
+ "minBytes": 1,
41
+ "sniff": "nonempty",
42
+ "artifact": true
43
+ },
44
+ "gate": {
45
+ "at": "completion",
46
+ "checks": [
47
+ {
48
+ "kind": "minBytes",
49
+ "file": "{{workPath}}/question-scope.md",
50
+ "bytes": 120,
51
+ "artifact": true
52
+ },
53
+ {
54
+ "kind": "sniff",
55
+ "file": "{{workPath}}/question-scope.md",
56
+ "sniff": "nonempty",
57
+ "artifact": true
58
+ }
59
+ ],
60
+ "onReject": "question-scope",
61
+ "maxAttempts": 3
62
+ },
63
+ "next": "research",
64
+ "toolPolicy": {
65
+ "disallowBuiltinToolsets": [
66
+ "ai-apps",
67
+ "archives",
68
+ "audio",
69
+ "browser-automation",
70
+ "code-execution",
71
+ "craftbooks",
72
+ "data-tables",
73
+ "entity-intel",
74
+ "git",
75
+ "image-intel",
76
+ "images",
77
+ "role-delegation",
78
+ "role-delegation-escalation",
79
+ "security-intel",
80
+ "team-management",
81
+ "videos",
82
+ "web",
83
+ "workspace-fs-write"
84
+ ],
85
+ "outputMedium": "artifact",
86
+ "additionalOutputMedia": [
87
+ "task-note"
88
+ ]
89
+ }
90
+ },
91
+ {
92
+ "id": "research",
93
+ "name": "Research & source log",
94
+ "description": "gather sources, log each with a citation key + key facts",
95
+ "prompt": "1. For each sub-question from the scope, find authoritative sources (prefer primary sources, official data, and reputable secondary sources within the recency window). 2. For every source, append an entry to {{workPath}}/sources.md with: a citation key [n], title, author/publisher, date, URL or locator, and 1-3 bullet facts you extracted with the exact figure or quote. 3. Cross-check any surprising or load-bearing fact against a second independent source and note the agreement or conflict. 4. Flag every claim you could NOT verify as UNVERIFIED so the writer does not state it as fact. 5. Aim to exceed the minimum source count and cover every sub-question; do not pad with low-quality sources. Good looks like a source log dense enough that the writer never needs to invent a fact. Keep {{workPath}}/sources.md as the single source of truth; do not write prose yet.\n\nThe deliverable `{{workPath}}/sources.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.",
96
+ "suggestedRole": "researcher",
97
+ "advanceWhen": {
98
+ "file": "{{workPath}}/sources.md",
99
+ "minBytes": 1,
100
+ "sniff": "nonempty",
101
+ "artifact": true
102
+ },
103
+ "gate": {
104
+ "at": "completion",
105
+ "checks": [
106
+ {
107
+ "kind": "minBytes",
108
+ "file": "{{workPath}}/sources.md",
109
+ "bytes": 120,
110
+ "artifact": true
111
+ },
112
+ {
113
+ "kind": "sniff",
114
+ "file": "{{workPath}}/sources.md",
115
+ "sniff": "nonempty",
116
+ "artifact": true
117
+ }
118
+ ],
119
+ "onReject": "research",
120
+ "maxAttempts": 3
121
+ },
122
+ "next": "write",
123
+ "toolPolicy": {
124
+ "disallowBuiltinToolsets": [
125
+ "ai-apps",
126
+ "archives",
127
+ "audio",
128
+ "browser-automation",
129
+ "code-execution",
130
+ "craftbooks",
131
+ "data-tables",
132
+ "entity-intel",
133
+ "git",
134
+ "image-intel",
135
+ "images",
136
+ "role-delegation",
137
+ "role-delegation-escalation",
138
+ "security-intel",
139
+ "team-management",
140
+ "videos",
141
+ "workspace-fs-write"
142
+ ],
143
+ "outputMedium": "artifact"
144
+ }
145
+ },
146
+ {
147
+ "id": "write",
148
+ "name": "Write the report",
149
+ "description": "write the cited markdown report to the locked structure",
150
+ "prompt": "1. Write {{workPath}}/report.md following the locked structure exactly: title, an executive summary <=150 words that states the bottom-line answer, one section per sub-question, a limitations section, and a numbered References list. 2. Every factual claim gets an inline citation [n] keyed to the references; do NOT state any UNVERIFIED claim as fact (hedge it or drop it). 3. Build the References list directly from {{workPath}}/sources.md so every [n] resolves and no citation is invented. 4. Lead each section with the answer, then the evidence; keep prose tight and skimmable with subheadings. 5. On a loop-back, fix only the gaps the reviewer named and do not regress sections that already passed. 6. Call write_task_note with the report path and which criteria now pass.\n\nBefore working, open the artifact input `{{workPath}}/sources.md` with `read_artifact`; do not look for it in the workspace.\n\nThe deliverable `{{workPath}}/report.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.",
151
+ "suggestedRole": "copywriter",
152
+ "consumes": [
153
+ {
154
+ "file": "{{workPath}}/sources.md",
155
+ "artifact": true
156
+ }
157
+ ],
158
+ "advanceWhen": {
159
+ "file": "{{workPath}}/report.md",
160
+ "minBytes": 1,
161
+ "sniff": "nonempty",
162
+ "artifact": true
163
+ },
164
+ "gate": {
165
+ "at": "completion",
166
+ "checks": [
167
+ {
168
+ "kind": "minBytes",
169
+ "file": "{{workPath}}/report.md",
170
+ "bytes": 1500,
171
+ "artifact": true
172
+ },
173
+ {
174
+ "kind": "contains",
175
+ "file": "{{workPath}}/report.md",
176
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
177
+ "flags": "i",
178
+ "label": "at least one markdown heading",
179
+ "artifact": true
180
+ }
181
+ ],
182
+ "onReject": "write",
183
+ "maxAttempts": 4
184
+ },
185
+ "next": "evaluate",
186
+ "toolPolicy": {
187
+ "disallowBuiltinToolsets": [
188
+ "ai-apps",
189
+ "archives",
190
+ "audio",
191
+ "browser-automation",
192
+ "code-execution",
193
+ "craftbooks",
194
+ "data-tables",
195
+ "entity-intel",
196
+ "git",
197
+ "image-intel",
198
+ "images",
199
+ "role-delegation",
200
+ "role-delegation-escalation",
201
+ "security-intel",
202
+ "team-management",
203
+ "videos",
204
+ "web",
205
+ "workspace-fs-write"
206
+ ],
207
+ "outputMedium": "artifact",
208
+ "additionalOutputMedia": [
209
+ "task-note"
210
+ ]
211
+ }
212
+ },
213
+ {
214
+ "id": "evaluate",
215
+ "name": "Evaluate",
216
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
217
+ "prompt": "Open {{workPath}}/report.md and check EACH acceptance criterion, writing PASS/FAIL per criterion: (1) every sub-question from {{workPath}}/question-scope.md has a dedicated section; (2) every factual claim carries an inline citation [n] and every [n] resolves to a References entry; (3) there are at least the minimum distinct sources and they meet the authority/recency bar; (4) an explicit limitations/uncertainty section exists; (5) the executive summary is <=150 words and states the bottom line; (6) spot-check 3 citations against {{workPath}}/sources.md to confirm the claim matches the logged fact and nothing was fabricated. A report that reads well but invents or mismatches a citation FAILS.\n\nThe deliverable lives in the project's artifacts drawer — open `{{workPath}}/report.md` with `read_artifact`, not `read_file`.\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: \"write\" })` 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.",
218
+ "suggestedRole": "reviewer",
219
+ "consumes": [
220
+ {
221
+ "file": "{{workPath}}/report.md",
222
+ "artifact": true
223
+ }
224
+ ],
225
+ "next": "write",
226
+ "toolPolicy": {
227
+ "disallowBuiltinToolsets": [
228
+ "ai-apps",
229
+ "archives",
230
+ "audio",
231
+ "browser-automation",
232
+ "code-execution",
233
+ "craftbooks",
234
+ "data-tables",
235
+ "entity-intel",
236
+ "git",
237
+ "image-intel",
238
+ "images",
239
+ "role-delegation",
240
+ "role-delegation-escalation",
241
+ "security-intel",
242
+ "team-management",
243
+ "videos",
244
+ "web",
245
+ "workspace-fs-write"
246
+ ],
247
+ "outputMedium": "task-note"
248
+ }
249
+ },
250
+ {
251
+ "id": "finish",
252
+ "name": "Finish",
253
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
254
+ "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.",
255
+ "suggestedRole": "developer",
256
+ "terminal": true,
257
+ "toolPolicy": {
258
+ "disallowBuiltinToolsets": [
259
+ "ai-apps",
260
+ "archives",
261
+ "artifacts",
262
+ "audio",
263
+ "browser-automation",
264
+ "code-execution",
265
+ "craftbooks",
266
+ "data-tables",
267
+ "entity-intel",
268
+ "git",
269
+ "image-intel",
270
+ "images",
271
+ "role-delegation",
272
+ "role-delegation-escalation",
273
+ "security-intel",
274
+ "team-management",
275
+ "videos",
276
+ "web",
277
+ "workspace-fs-write"
278
+ ],
279
+ "outputMedium": "task-note"
280
+ }
281
+ }
282
+ ],
283
+ "version": "1.0.4",
284
+ "releasedAt": "2026-10-08T20:00:00.000Z",
285
+ "minGezelVersion": "1.26233"
286
+ }
@@ -0,0 +1,183 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Cited Research Report workflow eval",
4
+ "objective": "Run the complete cited-research workflow using a local packet of independently authored operational records; check faithful metrics, citations, final artifact, and terminal task.",
5
+ "tags": [
6
+ "corpus"
7
+ ],
8
+ "prompt": "Use the Cited Research Report plan to assess the Boreal Desk returns pilot for operations leads. Read source/brief.md and the five linked records in source/. Save the cited report to the artifacts drawer at tasks/eval/report.md.",
9
+ "setup": {
10
+ "projectName": "Cited Research Report Eval",
11
+ "about": "The local source packet contains a client brief plus five independently authored pilot records. All are synthetic fixtures. Deliver the cited report in the artifacts drawer at tasks/eval/report.md.",
12
+ "missionObjectives": "Use the Cited Research Report craftbook/template, read the seeded local fixtures, and write tasks/eval/report.md without network calls, real credentials, or live services.",
13
+ "files": [
14
+ {
15
+ "path": "source/brief.md",
16
+ "content": "# Cited Research Report Eval Brief\n\nClient: Boreal Desk, a home-office accessories company.\nAudience: operations leads who need an artifact they can use this week.\n\nFixed source facts for grounding:\n- The returns desk pilot covered 18 SKUs.\n- Median first response improved from 18 hours to 6 hours.\n- Preventable refund leakage fell from 14.2% to 8.9%.\n- The top unresolved complaint is status silence after photo submission.\n- Required next actions are automated status emails, barcode-exception training, and a weekly Finance exception export.\n\nUse these facts when the task asks for prose, analysis, copy, UI content, or test data. Do not use live web services, real credentials, or current outside data.\n\nCraftbook under test: research-report - Cited Research Report.\n\n## Source packet\nRead and cite these available records as independent sources; all dates refer to the same completed pilot window:\n- source/pilot-scope.md — Operations planning\n- source/response-log.md — Support analytics\n- source/refund-audit.md — Finance\n- source/complaint-review.md — Customer experience\n- source/action-register.md — Operations steering group\n"
17
+ },
18
+ {
19
+ "path": "source/pilot-scope.md",
20
+ "content": "# Pilot scope record\nAuthor: Operations planning\nDate: 2026-09-28\nThe Boreal Desk returns pilot covered 18 SKUs in the home-office accessories range. The pilot compared a baseline observation window with the pilot window. Both windows used the same SKU set. The packet contains no order counts, so avoid claims of statistical significance or extrapolation to the full range.\n"
21
+ },
22
+ {
23
+ "path": "source/response-log.md",
24
+ "content": "# First-response monitoring log\nAuthor: Support analytics\nDate: 2026-09-29\nFor the 18-SKU returns pilot, median first response time moved from 18 hours in the baseline to 6 hours during the pilot. This measures the first reply, not resolution time. The operational log has no case counts or variance; it supports a descriptive comparison only.\n"
25
+ },
26
+ {
27
+ "path": "source/refund-audit.md",
28
+ "content": "# Preventable refund leakage audit\nAuthor: Finance\nDate: 2026-09-30\nPreventable refund leakage was 14.2% in the baseline and 8.9% in the Boreal Desk pilot window. This is a 5.3-percentage-point decline. The same preventable-leakage definition was used in both windows. No refund totals were supplied, so do not convert these rates into cash savings. Finance requests a weekly exception export.\n"
29
+ },
30
+ {
31
+ "path": "source/complaint-review.md",
32
+ "content": "# Customer complaint review\nAuthor: Customer experience\nDate: 2026-09-30\nThe top unresolved complaint after the Boreal Desk returns pilot is status silence after photo submission. A faster first reply does not guarantee later progress updates. Reviewers recommend automated status emails after evidence arrives. The review gives an ordinal ranking but no complaint counts.\n"
33
+ },
34
+ {
35
+ "path": "source/action-register.md",
36
+ "content": "# Approved operations action register\nAuthor: Operations steering group\nDate: 2026-10-01\nThe next actions approved after the pilot are automated status emails, barcode-exception training, and a weekly Finance exception export. Support operations owns the emails, training operations owns barcode exceptions, and Finance owns the exception review. Timing and targets still need agreement; do not present invented deadlines as commitments.\n"
37
+ }
38
+ ],
39
+ "craftbookParams": {
40
+ "workPath": "tasks/eval",
41
+ "topic": "Boreal Desk Returns Pilot for operations leaders; use source/brief.md."
42
+ }
43
+ },
44
+ "mocks": [],
45
+ "success": {
46
+ "summary": "tasks/eval/report.md is a source-grounded markdown artifact with required facts and actions.",
47
+ "deliverables": [
48
+ {
49
+ "path": "tasks/eval/report.md",
50
+ "kind": "markdown-report",
51
+ "minBytes": 1000,
52
+ "checks": [
53
+ {
54
+ "kind": "contains",
55
+ "file": "tasks/eval/report.md",
56
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
57
+ "flags": "i",
58
+ "artifact": true
59
+ },
60
+ {
61
+ "kind": "contains",
62
+ "file": "tasks/eval/report.md",
63
+ "pattern": "source/brief\\.md|Brief",
64
+ "flags": "i",
65
+ "label": "cite or name the seeded source",
66
+ "artifact": true
67
+ },
68
+ {
69
+ "kind": "contains",
70
+ "file": "tasks/eval/report.md",
71
+ "pattern": "18\\b[\\s\\S]{0,30}\\bSKUs",
72
+ "flags": "i",
73
+ "label": "include the 18-SKU pilot scope",
74
+ "artifact": true
75
+ },
76
+ {
77
+ "kind": "contains",
78
+ "file": "tasks/eval/report.md",
79
+ "pattern": "18\\s*hours|6\\s*hours",
80
+ "flags": "i",
81
+ "artifact": true
82
+ },
83
+ {
84
+ "kind": "contains",
85
+ "file": "tasks/eval/report.md",
86
+ "pattern": "14\\.2%|8\\.9%",
87
+ "flags": "i",
88
+ "artifact": true
89
+ },
90
+ {
91
+ "kind": "contains",
92
+ "file": "tasks/eval/report.md",
93
+ "pattern": "status silence|photo submission",
94
+ "flags": "i",
95
+ "artifact": true
96
+ },
97
+ {
98
+ "kind": "contains",
99
+ "file": "tasks/eval/report.md",
100
+ "pattern": "automated status emails|barcode|Finance",
101
+ "flags": "i",
102
+ "artifact": true
103
+ },
104
+ {
105
+ "kind": "contains",
106
+ "file": "tasks/eval/report.md",
107
+ "pattern": "source/pilot-scope\\.md",
108
+ "flags": "i",
109
+ "label": "cite the supplied pilot-scope.md",
110
+ "artifact": true
111
+ },
112
+ {
113
+ "kind": "contains",
114
+ "file": "tasks/eval/report.md",
115
+ "pattern": "source/response-log\\.md",
116
+ "flags": "i",
117
+ "label": "cite the supplied response-log.md",
118
+ "artifact": true
119
+ },
120
+ {
121
+ "kind": "contains",
122
+ "file": "tasks/eval/report.md",
123
+ "pattern": "source/refund-audit\\.md",
124
+ "flags": "i",
125
+ "label": "cite the supplied refund-audit.md",
126
+ "artifact": true
127
+ },
128
+ {
129
+ "kind": "contains",
130
+ "file": "tasks/eval/report.md",
131
+ "pattern": "source/complaint-review\\.md",
132
+ "flags": "i",
133
+ "label": "cite the supplied complaint-review.md",
134
+ "artifact": true
135
+ },
136
+ {
137
+ "kind": "contains",
138
+ "file": "tasks/eval/report.md",
139
+ "pattern": "source/action-register\\.md",
140
+ "flags": "i",
141
+ "label": "cite the supplied action-register.md",
142
+ "artifact": true
143
+ }
144
+ ],
145
+ "artifact": true
146
+ }
147
+ ],
148
+ "taskGraph": {
149
+ "requireCraftbookTask": true,
150
+ "requireTerminalStep": true
151
+ }
152
+ },
153
+ "rubric": {
154
+ "artifact": {
155
+ "path": "tasks/eval/report.md",
156
+ "kind": "markdown"
157
+ },
158
+ "axes": [
159
+ {
160
+ "name": "grounding",
161
+ "description": "Seeded facts appear faithfully and the source is cited."
162
+ },
163
+ {
164
+ "name": "structure",
165
+ "description": "Sections progress logically for the artifact class."
166
+ },
167
+ {
168
+ "name": "completeness",
169
+ "description": "Required elements (risks, next actions, scope) are all present."
170
+ },
171
+ {
172
+ "name": "tone",
173
+ "description": "The register fits the audience and artifact class."
174
+ }
175
+ ]
176
+ },
177
+ "qualityFocus": [
178
+ "source-grounded prose",
179
+ "section structure",
180
+ "next-action clarity"
181
+ ],
182
+ "mode": "workflow"
183
+ }
@@ -16,7 +16,8 @@
16
16
  "report",
17
17
  "markdown",
18
18
  "docblocks",
19
- "recommended"
19
+ "recommended",
20
+ "starter"
20
21
  ],
21
22
  "maintainer": {
22
23
  "name": "Gezel"