@bendyline/gilde 0.1.26 → 0.1.28

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 (571) hide show
  1. package/authoring/chat-models/README.md +5 -0
  2. package/authoring/chat-models/deepseek-v4-flash-284b-mxfp4.json +4 -0
  3. package/authoring/chat-models/deepseek-v4-flash-284b-q2.json +4 -0
  4. package/authoring/chat-models/deepseek-v4-flash-284b-q2q4.json +4 -0
  5. package/authoring/chat-models/glm-5.2-754b-q2.json +4 -0
  6. package/authoring/gstack/evals/investigate.json +1 -0
  7. package/authoring/gstack/evals/plan-ceo-review.json +1 -0
  8. package/authoring/gstack/wave.json +2 -2
  9. package/data/chat-models/de/deepseek-v4-flash-284b-mxfp4/manifest.json +4 -0
  10. package/data/chat-models/de/deepseek-v4-flash-284b-q2/manifest.json +4 -0
  11. package/data/chat-models/de/deepseek-v4-flash-284b-q2q4/manifest.json +4 -0
  12. package/data/chat-models/gl/glm-5.2-754b-q2/manifest.json +4 -0
  13. package/data/chat-models/index.json +1 -1
  14. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.1/craftbook.json +141 -0
  15. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.1/test.json +115 -0
  16. package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.1/craftbook.json +141 -0
  17. package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.1/test.json +186 -0
  18. package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.1/craftbook.json +110 -0
  19. package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.1/test.json +97 -0
  20. package/data/craftbook-templates/ad/ad-variations/versions/1.0.1/craftbook.json +105 -0
  21. package/data/craftbook-templates/ad/ad-variations/versions/1.0.1/test.json +108 -0
  22. package/data/craftbook-templates/al/album-curate/versions/1.0.1/craftbook.json +115 -0
  23. package/data/craftbook-templates/al/album-curate/versions/1.0.1/test.json +147 -0
  24. package/data/craftbook-templates/al/alert-rules/versions/1.0.1/craftbook.json +101 -0
  25. package/data/craftbook-templates/al/alert-rules/versions/1.0.1/test.json +145 -0
  26. package/data/craftbook-templates/al/alt-text-pass/versions/1.0.1/craftbook.json +142 -0
  27. package/data/craftbook-templates/al/alt-text-pass/versions/1.0.1/test.json +97 -0
  28. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.3/craftbook.json +226 -0
  29. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.3/test.json +157 -0
  30. package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.1/craftbook.json +146 -0
  31. package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.1/test.json +102 -0
  32. package/data/craftbook-templates/an/annual-document-review/versions/1.0.1/craftbook.json +140 -0
  33. package/data/craftbook-templates/an/annual-document-review/versions/1.0.1/test.json +110 -0
  34. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.1/craftbook.json +141 -0
  35. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.1/test.json +120 -0
  36. package/data/craftbook-templates/ap/api-contract-review/versions/1.1.1/craftbook.json +141 -0
  37. package/data/craftbook-templates/ap/api-contract-review/versions/1.1.1/test.json +115 -0
  38. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.1/craftbook.json +158 -0
  39. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.1/test.json +136 -0
  40. package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.1/craftbook.json +129 -0
  41. package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.1/test.json +103 -0
  42. package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.1/craftbook.json +123 -0
  43. package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.1/test.json +103 -0
  44. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.3/craftbook.json +210 -0
  45. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.3/test.json +221 -0
  46. package/data/craftbook-templates/au/auth-flow/versions/1.0.1/craftbook.json +148 -0
  47. package/data/craftbook-templates/au/auth-flow/versions/1.0.1/test.json +140 -0
  48. package/data/craftbook-templates/au/automation-recipe/versions/1.0.1/craftbook.json +164 -0
  49. package/data/craftbook-templates/au/automation-recipe/versions/1.0.1/test.json +296 -0
  50. package/data/craftbook-templates/ba/backup-routine/versions/1.0.1/craftbook.json +148 -0
  51. package/data/craftbook-templates/ba/backup-routine/versions/1.0.1/test.json +108 -0
  52. package/data/craftbook-templates/bl/blog-post/versions/1.0.1/craftbook.json +143 -0
  53. package/data/craftbook-templates/bl/blog-post/versions/1.0.1/test.json +118 -0
  54. package/data/craftbook-templates/bo/board-deck/versions/1.0.1/craftbook.json +141 -0
  55. package/data/craftbook-templates/bo/board-deck/versions/1.0.1/test.json +100 -0
  56. package/data/craftbook-templates/bo/board-game-web/versions/1.0.1/craftbook.json +150 -0
  57. package/data/craftbook-templates/bo/board-game-web/versions/1.0.1/test.json +99 -0
  58. package/data/craftbook-templates/bo/booking-automation/versions/1.0.1/craftbook.json +158 -0
  59. package/data/craftbook-templates/bo/booking-automation/versions/1.0.1/test.json +162 -0
  60. package/data/craftbook-templates/br/branding-website/versions/1.1.1/craftbook.json +211 -0
  61. package/data/craftbook-templates/br/branding-website/versions/1.1.1/test.json +164 -0
  62. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.1/craftbook.json +107 -0
  63. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.1/test.json +103 -0
  64. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.3/craftbook.json +417 -0
  65. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.3/test.json +376 -0
  66. package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.2/craftbook.json +164 -0
  67. package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.2/test.json +92 -0
  68. package/data/craftbook-templates/ca/calendar-brief/versions/1.0.1/craftbook.json +107 -0
  69. package/data/craftbook-templates/ca/calendar-brief/versions/1.0.1/test.json +102 -0
  70. package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.1/craftbook.json +110 -0
  71. package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.1/test.json +106 -0
  72. package/data/craftbook-templates/ca/case-study/versions/1.0.1/craftbook.json +143 -0
  73. package/data/craftbook-templates/ca/case-study/versions/1.0.1/test.json +112 -0
  74. package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.1/craftbook.json +151 -0
  75. package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.1/test.json +105 -0
  76. package/data/craftbook-templates/ch/changelog-cut/versions/1.0.1/craftbook.json +113 -0
  77. package/data/craftbook-templates/ch/changelog-cut/versions/1.0.1/test.json +106 -0
  78. package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.1/craftbook.json +107 -0
  79. package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.1/test.json +129 -0
  80. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.2/craftbook.json +123 -0
  81. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.2/test.json +155 -0
  82. package/data/craftbook-templates/ch/chapter-weave/versions/1.0.1/craftbook.json +74 -0
  83. package/data/craftbook-templates/ch/chapter-weave/versions/1.0.1/test.json +98 -0
  84. package/data/craftbook-templates/ch/character-sheet/versions/1.0.1/craftbook.json +82 -0
  85. package/data/craftbook-templates/ch/character-sheet/versions/1.0.1/test.json +143 -0
  86. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.1/craftbook.json +121 -0
  87. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.1/test.json +178 -0
  88. package/data/craftbook-templates/ch/chart-pack/versions/1.0.1/craftbook.json +148 -0
  89. package/data/craftbook-templates/ch/chart-pack/versions/1.0.1/test.json +104 -0
  90. package/data/craftbook-templates/ch/chrome-extension/versions/1.0.1/craftbook.json +148 -0
  91. package/data/craftbook-templates/ch/chrome-extension/versions/1.0.1/test.json +97 -0
  92. package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.1/craftbook.json +132 -0
  93. package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.1/test.json +162 -0
  94. package/data/craftbook-templates/ci/citation-audit/versions/1.0.1/craftbook.json +146 -0
  95. package/data/craftbook-templates/ci/citation-audit/versions/1.0.1/test.json +149 -0
  96. package/data/craftbook-templates/cl/cli-tool/versions/1.1.1/craftbook.json +147 -0
  97. package/data/craftbook-templates/cl/cli-tool/versions/1.1.1/test.json +128 -0
  98. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.1/craftbook.json +153 -0
  99. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.1/test.json +116 -0
  100. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.1/craftbook.json +153 -0
  101. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.1/test.json +119 -0
  102. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.1/craftbook.json +141 -0
  103. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.1/test.json +226 -0
  104. package/data/craftbook-templates/co/company-research-brief/versions/1.0.1/craftbook.json +139 -0
  105. package/data/craftbook-templates/co/company-research-brief/versions/1.0.1/test.json +97 -0
  106. package/data/craftbook-templates/co/comparison-matrix/versions/1.0.1/craftbook.json +153 -0
  107. package/data/craftbook-templates/co/comparison-matrix/versions/1.0.1/test.json +109 -0
  108. package/data/craftbook-templates/co/compat-check/versions/1.0.1/craftbook.json +146 -0
  109. package/data/craftbook-templates/co/compat-check/versions/1.0.1/test.json +145 -0
  110. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.1/craftbook.json +140 -0
  111. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.1/test.json +116 -0
  112. package/data/craftbook-templates/co/config-scaffold/versions/1.0.1/craftbook.json +105 -0
  113. package/data/craftbook-templates/co/config-scaffold/versions/1.0.1/test.json +120 -0
  114. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.1/craftbook.json +141 -0
  115. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.1/test.json +149 -0
  116. package/data/craftbook-templates/co/content-deck/versions/1.2.1/craftbook.json +206 -0
  117. package/data/craftbook-templates/co/content-deck/versions/1.2.1/test.json +169 -0
  118. package/data/craftbook-templates/co/contract-template/versions/1.0.1/craftbook.json +145 -0
  119. package/data/craftbook-templates/co/contract-template/versions/1.0.1/test.json +102 -0
  120. package/data/craftbook-templates/co/cookbook-layout/versions/1.0.1/craftbook.json +121 -0
  121. package/data/craftbook-templates/co/cookbook-layout/versions/1.0.1/test.json +159 -0
  122. package/data/craftbook-templates/co/copy-review/versions/1.0.1/craftbook.json +141 -0
  123. package/data/craftbook-templates/co/copy-review/versions/1.0.1/test.json +102 -0
  124. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.1/craftbook.json +210 -0
  125. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.1/test.json +187 -0
  126. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.1/craftbook.json +146 -0
  127. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.1/test.json +156 -0
  128. package/data/craftbook-templates/co/cover-letter/versions/1.0.1/craftbook.json +107 -0
  129. package/data/craftbook-templates/co/cover-letter/versions/1.0.1/test.json +100 -0
  130. package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.1/craftbook.json +101 -0
  131. package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.1/test.json +207 -0
  132. package/data/craftbook-templates/cr/cron-job/versions/1.0.1/craftbook.json +147 -0
  133. package/data/craftbook-templates/cr/cron-job/versions/1.0.1/test.json +104 -0
  134. package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/craftbook.json +164 -0
  135. package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/test.json +135 -0
  136. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.2/craftbook.json +101 -0
  137. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.2/test.json +102 -0
  138. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.1/craftbook.json +107 -0
  139. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.1/test.json +114 -0
  140. package/data/craftbook-templates/da/data-dictionary/versions/1.0.1/craftbook.json +107 -0
  141. package/data/craftbook-templates/da/data-dictionary/versions/1.0.1/test.json +101 -0
  142. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.1/craftbook.json +148 -0
  143. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.1/test.json +104 -0
  144. package/data/craftbook-templates/da/data-join-merge/versions/1.0.1/craftbook.json +101 -0
  145. package/data/craftbook-templates/da/data-join-merge/versions/1.0.1/test.json +104 -0
  146. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.2/craftbook.json +148 -0
  147. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.2/test.json +162 -0
  148. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.1/craftbook.json +141 -0
  149. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.1/test.json +326 -0
  150. package/data/craftbook-templates/da/data-to-report/versions/1.0.1/craftbook.json +140 -0
  151. package/data/craftbook-templates/da/data-to-report/versions/1.0.1/test.json +95 -0
  152. package/data/craftbook-templates/da/data-viz-page/versions/1.0.1/craftbook.json +143 -0
  153. package/data/craftbook-templates/da/data-viz-page/versions/1.0.1/test.json +117 -0
  154. package/data/craftbook-templates/da/dataset-clean/versions/1.2.2/craftbook.json +101 -0
  155. package/data/craftbook-templates/da/dataset-clean/versions/1.2.2/test.json +95 -0
  156. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.1/craftbook.json +148 -0
  157. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.1/test.json +104 -0
  158. package/data/craftbook-templates/de/deep-security-review/versions/1.1.1/craftbook.json +211 -0
  159. package/data/craftbook-templates/de/deep-security-review/versions/1.1.1/test.json +157 -0
  160. package/data/craftbook-templates/de/dependency-audit/versions/1.1.1/craftbook.json +141 -0
  161. package/data/craftbook-templates/de/dependency-audit/versions/1.1.1/test.json +108 -0
  162. package/data/craftbook-templates/de/deploy-checklist/versions/1.0.1/craftbook.json +159 -0
  163. package/data/craftbook-templates/de/deploy-checklist/versions/1.0.1/test.json +165 -0
  164. package/data/craftbook-templates/de/design-review/versions/1.0.1/craftbook.json +141 -0
  165. package/data/craftbook-templates/de/design-review/versions/1.0.1/test.json +118 -0
  166. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.3/craftbook.json +431 -0
  167. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.3/test.json +201 -0
  168. package/data/craftbook-templates/di/diagram-from-text/versions/1.0.1/craftbook.json +109 -0
  169. package/data/craftbook-templates/di/diagram-from-text/versions/1.0.1/test.json +97 -0
  170. package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.1/craftbook.json +146 -0
  171. package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.1/test.json +162 -0
  172. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.1/craftbook.json +148 -0
  173. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.1/test.json +104 -0
  174. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.1/craftbook.json +107 -0
  175. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.1/test.json +110 -0
  176. package/data/craftbook-templates/do/dockerize-app/versions/1.0.1/craftbook.json +148 -0
  177. package/data/craftbook-templates/do/dockerize-app/versions/1.0.1/test.json +92 -0
  178. package/data/craftbook-templates/do/docs-site/versions/1.0.1/craftbook.json +143 -0
  179. package/data/craftbook-templates/do/docs-site/versions/1.0.1/test.json +97 -0
  180. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.1/craftbook.json +153 -0
  181. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.1/test.json +132 -0
  182. package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.1/craftbook.json +140 -0
  183. package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.1/test.json +104 -0
  184. package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.1/craftbook.json +146 -0
  185. package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.1/test.json +110 -0
  186. package/data/craftbook-templates/eb/ebook-compile/versions/1.0.1/craftbook.json +143 -0
  187. package/data/craftbook-templates/eb/ebook-compile/versions/1.0.1/test.json +97 -0
  188. package/data/craftbook-templates/ed/edit-notes/versions/1.0.1/craftbook.json +176 -0
  189. package/data/craftbook-templates/ed/edit-notes/versions/1.0.1/test.json +146 -0
  190. package/data/craftbook-templates/em/email-sequence/versions/1.0.1/craftbook.json +142 -0
  191. package/data/craftbook-templates/em/email-sequence/versions/1.0.1/test.json +97 -0
  192. package/data/craftbook-templates/em/email-template/versions/1.0.1/craftbook.json +143 -0
  193. package/data/craftbook-templates/em/email-template/versions/1.0.1/test.json +97 -0
  194. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.3/craftbook.json +403 -0
  195. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.3/test.json +191 -0
  196. package/data/craftbook-templates/ep/episode-plan/versions/1.0.1/craftbook.json +140 -0
  197. package/data/craftbook-templates/ep/episode-plan/versions/1.0.1/test.json +97 -0
  198. package/data/craftbook-templates/es/escalation-playbook/versions/1.0.1/craftbook.json +107 -0
  199. package/data/craftbook-templates/es/escalation-playbook/versions/1.0.1/test.json +110 -0
  200. package/data/craftbook-templates/ev/evidence-brief/versions/1.0.1/craftbook.json +146 -0
  201. package/data/craftbook-templates/ev/evidence-brief/versions/1.0.1/test.json +110 -0
  202. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.3/craftbook.json +433 -0
  203. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.3/test.json +136 -0
  204. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.1/craftbook.json +140 -0
  205. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.1/test.json +104 -0
  206. package/data/craftbook-templates/fa/fact-check/versions/1.0.1/craftbook.json +146 -0
  207. package/data/craftbook-templates/fa/fact-check/versions/1.0.1/test.json +110 -0
  208. package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.1/craftbook.json +74 -0
  209. package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.1/test.json +108 -0
  210. package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.1/craftbook.json +107 -0
  211. package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.1/test.json +110 -0
  212. package/data/craftbook-templates/fa/favicon-set/versions/1.0.1/craftbook.json +146 -0
  213. package/data/craftbook-templates/fa/favicon-set/versions/1.0.1/test.json +103 -0
  214. package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.1/craftbook.json +159 -0
  215. package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.1/test.json +162 -0
  216. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.1/craftbook.json +148 -0
  217. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.1/test.json +162 -0
  218. package/data/craftbook-templates/fe/feedback-widget/versions/1.0.1/craftbook.json +143 -0
  219. package/data/craftbook-templates/fe/feedback-widget/versions/1.0.1/test.json +97 -0
  220. package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.1/craftbook.json +103 -0
  221. package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.1/test.json +103 -0
  222. package/data/craftbook-templates/fo/forecast-model/versions/1.0.1/craftbook.json +105 -0
  223. package/data/craftbook-templates/fo/forecast-model/versions/1.0.1/test.json +104 -0
  224. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.1/craftbook.json +148 -0
  225. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.1/test.json +162 -0
  226. package/data/craftbook-templates/fo/form-wizard/versions/1.0.1/craftbook.json +110 -0
  227. package/data/craftbook-templates/fo/form-wizard/versions/1.0.1/test.json +110 -0
  228. package/data/craftbook-templates/ga/game-with-screens/versions/1.0.1/craftbook.json +168 -0
  229. package/data/craftbook-templates/ga/game-with-screens/versions/1.0.1/test.json +99 -0
  230. package/data/craftbook-templates/gl/glossary-build/versions/1.0.1/craftbook.json +140 -0
  231. package/data/craftbook-templates/gl/glossary-build/versions/1.0.1/test.json +110 -0
  232. package/data/craftbook-templates/gr/graphql-api/versions/1.0.2/craftbook.json +146 -0
  233. package/data/craftbook-templates/gr/graphql-api/versions/1.0.2/test.json +92 -0
  234. package/data/craftbook-templates/gr/grpc-service/versions/1.0.1/craftbook.json +147 -0
  235. package/data/craftbook-templates/gr/grpc-service/versions/1.0.1/test.json +92 -0
  236. package/data/craftbook-templates/ha/handbook-section/versions/1.0.1/craftbook.json +145 -0
  237. package/data/craftbook-templates/ha/handbook-section/versions/1.0.1/test.json +110 -0
  238. package/data/craftbook-templates/he/hero-image/versions/1.0.1/craftbook.json +154 -0
  239. package/data/craftbook-templates/he/hero-image/versions/1.0.1/test.json +103 -0
  240. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.1/craftbook.json +202 -0
  241. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.1/test.json +128 -0
  242. package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.1/craftbook.json +182 -0
  243. package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.1/test.json +92 -0
  244. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.1/craftbook.json +218 -0
  245. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.1/test.json +176 -0
  246. package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.1/craftbook.json +150 -0
  247. package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.1/test.json +99 -0
  248. package/data/craftbook-templates/ic/icon-pack/versions/1.0.1/craftbook.json +146 -0
  249. package/data/craftbook-templates/ic/icon-pack/versions/1.0.1/test.json +103 -0
  250. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.3/craftbook.json +397 -0
  251. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.3/test.json +141 -0
  252. package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.1/craftbook.json +150 -0
  253. package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.1/test.json +99 -0
  254. package/data/craftbook-templates/im/image-batch-edit/versions/1.0.1/craftbook.json +141 -0
  255. package/data/craftbook-templates/im/image-batch-edit/versions/1.0.1/test.json +103 -0
  256. package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.1/craftbook.json +140 -0
  257. package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.1/test.json +103 -0
  258. package/data/craftbook-templates/im/image-palette-extract/versions/1.0.1/craftbook.json +109 -0
  259. package/data/craftbook-templates/im/image-palette-extract/versions/1.0.1/test.json +97 -0
  260. package/data/craftbook-templates/im/image-seo-rename/versions/1.0.1/craftbook.json +105 -0
  261. package/data/craftbook-templates/im/image-seo-rename/versions/1.0.1/test.json +103 -0
  262. package/data/craftbook-templates/im/image-set-index/versions/1.2.1/craftbook.json +179 -0
  263. package/data/craftbook-templates/im/image-set-index/versions/1.2.1/test.json +180 -0
  264. package/data/craftbook-templates/in/inbox-triage/versions/1.0.1/craftbook.json +140 -0
  265. package/data/craftbook-templates/in/inbox-triage/versions/1.0.1/test.json +104 -0
  266. package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.1/craftbook.json +107 -0
  267. package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.1/test.json +110 -0
  268. package/data/craftbook-templates/in/incident-postmortem/versions/1.0.1/craftbook.json +158 -0
  269. package/data/craftbook-templates/in/incident-postmortem/versions/1.0.1/test.json +109 -0
  270. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.1/craftbook.json +153 -0
  271. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.1/test.json +121 -0
  272. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.1/craftbook.json +143 -0
  273. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.1/test.json +99 -0
  274. package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.1/craftbook.json +141 -0
  275. package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.1/test.json +110 -0
  276. package/data/craftbook-templates/in/invitation-design/versions/1.0.1/craftbook.json +128 -0
  277. package/data/craftbook-templates/in/invitation-design/versions/1.0.1/test.json +121 -0
  278. package/data/craftbook-templates/in/invoice-generator/versions/1.0.1/craftbook.json +110 -0
  279. package/data/craftbook-templates/in/invoice-generator/versions/1.0.1/test.json +97 -0
  280. package/data/craftbook-templates/in/invoice-run/versions/1.1.1/craftbook.json +199 -0
  281. package/data/craftbook-templates/in/invoice-run/versions/1.1.1/test.json +140 -0
  282. package/data/craftbook-templates/index.json +1 -1
  283. package/data/craftbook-templates/it/item-intake/versions/1.0.1/craftbook.json +140 -0
  284. package/data/craftbook-templates/it/item-intake/versions/1.0.1/test.json +145 -0
  285. package/data/craftbook-templates/ju/juice-pass/versions/1.0.1/craftbook.json +116 -0
  286. package/data/craftbook-templates/ju/juice-pass/versions/1.0.1/test.json +116 -0
  287. package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.1/craftbook.json +143 -0
  288. package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.1/test.json +110 -0
  289. package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.1/craftbook.json +148 -0
  290. package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.1/test.json +97 -0
  291. package/data/craftbook-templates/la/landing-copy/versions/1.0.1/craftbook.json +143 -0
  292. package/data/craftbook-templates/la/landing-copy/versions/1.0.1/test.json +110 -0
  293. package/data/craftbook-templates/la/landing-page/versions/1.0.1/craftbook.json +184 -0
  294. package/data/craftbook-templates/la/landing-page/versions/1.0.1/test.json +97 -0
  295. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.1/craftbook.json +140 -0
  296. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.1/test.json +104 -0
  297. package/data/craftbook-templates/li/library-package/versions/1.0.1/craftbook.json +147 -0
  298. package/data/craftbook-templates/li/library-package/versions/1.0.1/test.json +92 -0
  299. package/data/craftbook-templates/li/literature-review/versions/1.0.1/craftbook.json +146 -0
  300. package/data/craftbook-templates/li/literature-review/versions/1.0.1/test.json +110 -0
  301. package/data/craftbook-templates/li/live-browser-qa/versions/1.0.1/craftbook.json +141 -0
  302. package/data/craftbook-templates/li/live-browser-qa/versions/1.0.1/test.json +162 -0
  303. package/data/craftbook-templates/lo/localize-content/versions/1.0.1/craftbook.json +143 -0
  304. package/data/craftbook-templates/lo/localize-content/versions/1.0.1/test.json +110 -0
  305. package/data/craftbook-templates/lo/logo-set/versions/1.0.1/craftbook.json +146 -0
  306. package/data/craftbook-templates/lo/logo-set/versions/1.0.1/test.json +103 -0
  307. package/data/craftbook-templates/ma/market-scan/versions/1.0.1/craftbook.json +146 -0
  308. package/data/craftbook-templates/ma/market-scan/versions/1.0.1/test.json +210 -0
  309. package/data/craftbook-templates/me/meeting-minutes/versions/1.0.1/craftbook.json +108 -0
  310. package/data/craftbook-templates/me/meeting-minutes/versions/1.0.1/test.json +110 -0
  311. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.1/craftbook.json +107 -0
  312. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.1/test.json +110 -0
  313. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.1/craftbook.json +107 -0
  314. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.1/test.json +184 -0
  315. package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.1/craftbook.json +109 -0
  316. package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.1/test.json +103 -0
  317. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/craftbook.json +115 -0
  318. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/test.json +112 -0
  319. package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.1/craftbook.json +147 -0
  320. package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.1/test.json +92 -0
  321. package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.1/craftbook.json +117 -0
  322. package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.1/test.json +99 -0
  323. package/data/craftbook-templates/mo/mock-interview/versions/1.0.1/craftbook.json +139 -0
  324. package/data/craftbook-templates/mo/mock-interview/versions/1.0.1/test.json +110 -0
  325. package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.1/craftbook.json +156 -0
  326. package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.1/test.json +133 -0
  327. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.1/craftbook.json +158 -0
  328. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.1/test.json +197 -0
  329. package/data/craftbook-templates/mo/month-close/versions/1.0.1/craftbook.json +140 -0
  330. package/data/craftbook-templates/mo/month-close/versions/1.0.1/test.json +97 -0
  331. package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.1/craftbook.json +140 -0
  332. package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.1/test.json +117 -0
  333. package/data/craftbook-templates/mo/moodboard/versions/1.0.1/craftbook.json +109 -0
  334. package/data/craftbook-templates/mo/moodboard/versions/1.0.1/test.json +103 -0
  335. package/data/craftbook-templates/mo/morning-brief/versions/1.0.1/craftbook.json +107 -0
  336. package/data/craftbook-templates/mo/morning-brief/versions/1.0.1/test.json +225 -0
  337. package/data/craftbook-templates/mo/morning-report/versions/1.0.1/craftbook.json +152 -0
  338. package/data/craftbook-templates/mo/morning-report/versions/1.0.1/test.json +250 -0
  339. package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.1/craftbook.json +101 -0
  340. package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.1/test.json +103 -0
  341. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.1/craftbook.json +181 -0
  342. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.1/test.json +86 -0
  343. package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.1/craftbook.json +143 -0
  344. package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.1/test.json +110 -0
  345. package/data/craftbook-templates/no/notification-router/versions/1.0.1/craftbook.json +158 -0
  346. package/data/craftbook-templates/no/notification-router/versions/1.0.1/test.json +162 -0
  347. package/data/craftbook-templates/oc/ocr-extract/versions/1.0.1/craftbook.json +137 -0
  348. package/data/craftbook-templates/oc/ocr-extract/versions/1.0.1/test.json +103 -0
  349. package/data/craftbook-templates/of/offer-compare/versions/1.0.1/craftbook.json +106 -0
  350. package/data/craftbook-templates/of/offer-compare/versions/1.0.1/test.json +110 -0
  351. package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.1/craftbook.json +107 -0
  352. package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.1/test.json +110 -0
  353. package/data/craftbook-templates/on/onboarding-flow/versions/1.0.1/craftbook.json +143 -0
  354. package/data/craftbook-templates/on/onboarding-flow/versions/1.0.1/test.json +97 -0
  355. package/data/craftbook-templates/on/oncall-handoff/versions/1.0.1/craftbook.json +107 -0
  356. package/data/craftbook-templates/on/oncall-handoff/versions/1.0.1/test.json +110 -0
  357. package/data/craftbook-templates/on/one-pager/versions/1.0.1/craftbook.json +143 -0
  358. package/data/craftbook-templates/on/one-pager/versions/1.0.1/test.json +110 -0
  359. package/data/craftbook-templates/op/ops-runbook/versions/1.0.1/craftbook.json +112 -0
  360. package/data/craftbook-templates/op/ops-runbook/versions/1.0.1/test.json +104 -0
  361. package/data/craftbook-templates/pa/page-spread/versions/1.0.1/craftbook.json +82 -0
  362. package/data/craftbook-templates/pa/page-spread/versions/1.0.1/test.json +132 -0
  363. package/data/craftbook-templates/pa/parser-grammar/versions/1.0.1/craftbook.json +147 -0
  364. package/data/craftbook-templates/pa/parser-grammar/versions/1.0.1/test.json +92 -0
  365. package/data/craftbook-templates/pe/perf-audit/versions/1.0.1/craftbook.json +141 -0
  366. package/data/craftbook-templates/pe/perf-audit/versions/1.0.1/test.json +162 -0
  367. package/data/craftbook-templates/pe/perf-optimization/versions/1.0.1/craftbook.json +148 -0
  368. package/data/craftbook-templates/pe/perf-optimization/versions/1.0.1/test.json +92 -0
  369. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.1/craftbook.json +140 -0
  370. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.1/test.json +122 -0
  371. package/data/craftbook-templates/ph/photo-cull/versions/1.0.1/craftbook.json +140 -0
  372. package/data/craftbook-templates/ph/photo-cull/versions/1.0.1/test.json +103 -0
  373. package/data/craftbook-templates/ph/physics-toy/versions/1.0.1/craftbook.json +110 -0
  374. package/data/craftbook-templates/ph/physics-toy/versions/1.0.1/test.json +99 -0
  375. package/data/craftbook-templates/pi/pitch-deck/versions/1.0.1/craftbook.json +141 -0
  376. package/data/craftbook-templates/pi/pitch-deck/versions/1.0.1/test.json +97 -0
  377. package/data/craftbook-templates/pl/playtest-report/versions/1.0.1/craftbook.json +140 -0
  378. package/data/craftbook-templates/pl/playtest-report/versions/1.0.1/test.json +111 -0
  379. package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.1/craftbook.json +140 -0
  380. package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.1/test.json +103 -0
  381. package/data/craftbook-templates/po/portfolio-site/versions/1.0.1/craftbook.json +151 -0
  382. package/data/craftbook-templates/po/portfolio-site/versions/1.0.1/test.json +97 -0
  383. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.0/craftbook.json +257 -0
  384. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.0/test.json +228 -0
  385. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.1/craftbook.json +347 -0
  386. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.1/test.json +228 -0
  387. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.1/craftbook.json +141 -0
  388. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.1/test.json +110 -0
  389. package/data/craftbook-templates/pr/practice-exam/versions/1.0.1/craftbook.json +159 -0
  390. package/data/craftbook-templates/pr/practice-exam/versions/1.0.1/test.json +117 -0
  391. package/data/craftbook-templates/pr/practice-session/versions/1.0.1/craftbook.json +115 -0
  392. package/data/craftbook-templates/pr/practice-session/versions/1.0.1/test.json +114 -0
  393. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.1/craftbook.json +140 -0
  394. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.1/test.json +97 -0
  395. package/data/craftbook-templates/pr/press-release/versions/1.0.1/craftbook.json +143 -0
  396. package/data/craftbook-templates/pr/press-release/versions/1.0.1/test.json +356 -0
  397. package/data/craftbook-templates/pr/price-tracker/versions/1.0.1/craftbook.json +109 -0
  398. package/data/craftbook-templates/pr/price-tracker/versions/1.0.1/test.json +150 -0
  399. package/data/craftbook-templates/pr/pricing-page/versions/1.0.1/craftbook.json +184 -0
  400. package/data/craftbook-templates/pr/pricing-page/versions/1.0.1/test.json +97 -0
  401. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.1/craftbook.json +105 -0
  402. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.1/test.json +110 -0
  403. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.1/craftbook.json +143 -0
  404. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.1/test.json +110 -0
  405. package/data/craftbook-templates/pu/pull-request-review/manifest.json +3 -1
  406. package/data/craftbook-templates/pu/pull-request-review/versions/1.4.1/craftbook.json +180 -0
  407. package/data/craftbook-templates/pu/pull-request-review/versions/1.4.1/test.json +123 -0
  408. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.1/craftbook.json +121 -0
  409. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.1/test.json +123 -0
  410. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.1/craftbook.json +155 -0
  411. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.1/test.json +97 -0
  412. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.1/craftbook.json +140 -0
  413. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.1/test.json +113 -0
  414. package/data/craftbook-templates/re/reading-list/versions/1.0.1/craftbook.json +107 -0
  415. package/data/craftbook-templates/re/reading-list/versions/1.0.1/test.json +110 -0
  416. package/data/craftbook-templates/re/receipt-intake/versions/1.0.1/craftbook.json +140 -0
  417. package/data/craftbook-templates/re/receipt-intake/versions/1.0.1/test.json +149 -0
  418. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.1/craftbook.json +140 -0
  419. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.1/test.json +104 -0
  420. package/data/craftbook-templates/re/recipe-capture/versions/1.0.1/craftbook.json +140 -0
  421. package/data/craftbook-templates/re/recipe-capture/versions/1.0.1/test.json +128 -0
  422. package/data/craftbook-templates/re/record-a-relative/versions/1.0.1/craftbook.json +115 -0
  423. package/data/craftbook-templates/re/record-a-relative/versions/1.0.1/test.json +110 -0
  424. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.1/craftbook.json +148 -0
  425. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.1/test.json +104 -0
  426. package/data/craftbook-templates/re/refactor-module/versions/1.0.2/craftbook.json +148 -0
  427. package/data/craftbook-templates/re/refactor-module/versions/1.0.2/test.json +92 -0
  428. package/data/craftbook-templates/re/regex-builder/versions/1.0.1/craftbook.json +147 -0
  429. package/data/craftbook-templates/re/regex-builder/versions/1.0.1/test.json +92 -0
  430. package/data/craftbook-templates/re/release-announcement/versions/1.0.1/craftbook.json +159 -0
  431. package/data/craftbook-templates/re/release-announcement/versions/1.0.1/test.json +202 -0
  432. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.1/craftbook.json +214 -0
  433. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.1/test.json +138 -0
  434. package/data/craftbook-templates/re/release-notes/versions/1.0.1/craftbook.json +159 -0
  435. package/data/craftbook-templates/re/release-notes/versions/1.0.1/test.json +111 -0
  436. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.1/craftbook.json +147 -0
  437. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.1/test.json +162 -0
  438. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.1/craftbook.json +141 -0
  439. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.1/test.json +110 -0
  440. package/data/craftbook-templates/re/reliability-review/versions/1.0.1/craftbook.json +153 -0
  441. package/data/craftbook-templates/re/reliability-review/versions/1.0.1/test.json +112 -0
  442. package/data/craftbook-templates/re/report-pdf/versions/1.1.1/craftbook.json +173 -0
  443. package/data/craftbook-templates/re/report-pdf/versions/1.1.1/test.json +98 -0
  444. package/data/craftbook-templates/re/research-report/versions/1.0.1/craftbook.json +146 -0
  445. package/data/craftbook-templates/re/research-report/versions/1.0.1/test.json +110 -0
  446. package/data/craftbook-templates/re/research-to-document/versions/1.2.1/craftbook.json +216 -0
  447. package/data/craftbook-templates/re/research-to-document/versions/1.2.1/test.json +240 -0
  448. package/data/craftbook-templates/re/rest-api/versions/1.0.2/craftbook.json +147 -0
  449. package/data/craftbook-templates/re/rest-api/versions/1.0.2/test.json +387 -0
  450. package/data/craftbook-templates/re/resume-cv/versions/1.0.1/craftbook.json +143 -0
  451. package/data/craftbook-templates/re/resume-cv/versions/1.0.1/test.json +97 -0
  452. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.1/craftbook.json +159 -0
  453. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.1/test.json +162 -0
  454. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.3/craftbook.json +413 -0
  455. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.3/test.json +154 -0
  456. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.2/craftbook.json +167 -0
  457. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.2/test.json +137 -0
  458. package/data/craftbook-templates/ru/runbook/versions/1.0.1/craftbook.json +145 -0
  459. package/data/craftbook-templates/ru/runbook/versions/1.0.1/test.json +118 -0
  460. package/data/craftbook-templates/sc/schema-migration/versions/1.0.1/craftbook.json +144 -0
  461. package/data/craftbook-templates/sc/schema-migration/versions/1.0.1/test.json +103 -0
  462. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.2/craftbook.json +140 -0
  463. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.2/test.json +162 -0
  464. package/data/craftbook-templates/sc/script-automation/versions/1.0.1/craftbook.json +148 -0
  465. package/data/craftbook-templates/sc/script-automation/versions/1.0.1/test.json +162 -0
  466. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.2/craftbook.json +147 -0
  467. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.2/test.json +90 -0
  468. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.1/craftbook.json +140 -0
  469. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.1/test.json +110 -0
  470. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.3/craftbook.json +440 -0
  471. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.3/test.json +154 -0
  472. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.1/craftbook.json +105 -0
  473. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.1/test.json +97 -0
  474. package/data/craftbook-templates/so/social-thread/versions/1.0.1/craftbook.json +107 -0
  475. package/data/craftbook-templates/so/social-thread/versions/1.0.1/test.json +110 -0
  476. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.1/craftbook.json +140 -0
  477. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.1/test.json +158 -0
  478. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.1/craftbook.json +143 -0
  479. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.1/test.json +97 -0
  480. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.3/craftbook.json +436 -0
  481. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.3/test.json +162 -0
  482. package/data/craftbook-templates/sp/spec-doc/versions/1.0.1/craftbook.json +143 -0
  483. package/data/craftbook-templates/sp/spec-doc/versions/1.0.1/test.json +104 -0
  484. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.1/craftbook.json +109 -0
  485. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.1/test.json +160 -0
  486. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.1/craftbook.json +137 -0
  487. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.1/test.json +103 -0
  488. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.1/craftbook.json +109 -0
  489. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.1/test.json +104 -0
  490. package/data/craftbook-templates/st/standup-summary/versions/1.0.1/craftbook.json +107 -0
  491. package/data/craftbook-templates/st/standup-summary/versions/1.0.1/test.json +110 -0
  492. package/data/craftbook-templates/st/state-machine/versions/1.0.1/craftbook.json +147 -0
  493. package/data/craftbook-templates/st/state-machine/versions/1.0.1/test.json +92 -0
  494. package/data/craftbook-templates/st/status-report/versions/1.0.1/craftbook.json +146 -0
  495. package/data/craftbook-templates/st/status-report/versions/1.0.1/test.json +110 -0
  496. package/data/craftbook-templates/su/subscription-audit/versions/1.0.1/craftbook.json +140 -0
  497. package/data/craftbook-templates/su/subscription-audit/versions/1.0.1/test.json +104 -0
  498. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.1/craftbook.json +128 -0
  499. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.1/test.json +103 -0
  500. package/data/craftbook-templates/su/summarize-long/versions/1.0.1/craftbook.json +107 -0
  501. package/data/craftbook-templates/su/summarize-long/versions/1.0.1/test.json +110 -0
  502. package/data/craftbook-templates/su/survey-analysis/versions/1.0.1/craftbook.json +141 -0
  503. package/data/craftbook-templates/su/survey-analysis/versions/1.0.1/test.json +104 -0
  504. package/data/craftbook-templates/sv/svg-animation/versions/1.0.1/craftbook.json +110 -0
  505. package/data/craftbook-templates/sv/svg-animation/versions/1.0.1/test.json +97 -0
  506. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.1/craftbook.json +114 -0
  507. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.1/test.json +97 -0
  508. package/data/craftbook-templates/te/technical-documentation/versions/2.0.3/craftbook.json +408 -0
  509. package/data/craftbook-templates/te/technical-documentation/versions/2.0.3/test.json +174 -0
  510. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.1/craftbook.json +141 -0
  511. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.1/test.json +113 -0
  512. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.1/craftbook.json +120 -0
  513. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.1/test.json +92 -0
  514. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.1/craftbook.json +143 -0
  515. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.1/test.json +141 -0
  516. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.1/craftbook.json +143 -0
  517. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.1/test.json +142 -0
  518. package/data/craftbook-templates/th/threat-model/versions/1.0.1/craftbook.json +141 -0
  519. package/data/craftbook-templates/th/threat-model/versions/1.0.1/test.json +110 -0
  520. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.1/craftbook.json +103 -0
  521. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.1/test.json +103 -0
  522. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.1/craftbook.json +160 -0
  523. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.1/test.json +159 -0
  524. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.1/craftbook.json +107 -0
  525. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.1/test.json +110 -0
  526. package/data/craftbook-templates/to/topic-explainer/versions/1.0.1/craftbook.json +140 -0
  527. package/data/craftbook-templates/to/topic-explainer/versions/1.0.1/test.json +110 -0
  528. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.1/craftbook.json +115 -0
  529. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.1/test.json +98 -0
  530. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.1/craftbook.json +107 -0
  531. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.1/test.json +103 -0
  532. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.1/craftbook.json +171 -0
  533. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.1/test.json +151 -0
  534. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.1/craftbook.json +148 -0
  535. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.1/test.json +92 -0
  536. package/data/craftbook-templates/ve/version-bump/versions/1.0.1/craftbook.json +155 -0
  537. package/data/craftbook-templates/ve/version-bump/versions/1.0.1/test.json +92 -0
  538. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.1/craftbook.json +109 -0
  539. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.1/test.json +103 -0
  540. package/data/craftbook-templates/vi/visit-prep/versions/1.0.1/craftbook.json +140 -0
  541. package/data/craftbook-templates/vi/visit-prep/versions/1.0.1/test.json +97 -0
  542. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.1/craftbook.json +107 -0
  543. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.1/test.json +103 -0
  544. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.1/craftbook.json +154 -0
  545. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.1/test.json +124 -0
  546. package/data/craftbook-templates/we/web-app-crud/versions/1.0.1/craftbook.json +143 -0
  547. package/data/craftbook-templates/we/web-app-crud/versions/1.0.1/test.json +97 -0
  548. package/data/craftbook-templates/we/web-component/versions/1.0.1/craftbook.json +110 -0
  549. package/data/craftbook-templates/we/web-component/versions/1.0.1/test.json +97 -0
  550. package/data/craftbook-templates/we/webhook-handler/versions/1.0.1/craftbook.json +147 -0
  551. package/data/craftbook-templates/we/webhook-handler/versions/1.0.1/test.json +162 -0
  552. package/data/craftbook-templates/we/week-plan/versions/1.0.1/craftbook.json +140 -0
  553. package/data/craftbook-templates/we/week-plan/versions/1.0.1/test.json +255 -0
  554. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.1/craftbook.json +140 -0
  555. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.1/test.json +97 -0
  556. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.1/craftbook.json +106 -0
  557. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.1/test.json +104 -0
  558. package/data/craftbook-templates/we/weekly-review/versions/1.0.1/craftbook.json +107 -0
  559. package/data/craftbook-templates/we/weekly-review/versions/1.0.1/test.json +110 -0
  560. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.1/craftbook.json +140 -0
  561. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.1/test.json +138 -0
  562. package/data/craftbook-templates/wh/whitepaper/versions/1.0.1/craftbook.json +141 -0
  563. package/data/craftbook-templates/wh/whitepaper/versions/1.0.1/test.json +110 -0
  564. package/data/craftbook-templates/ye/year-in-review/versions/1.0.1/craftbook.json +115 -0
  565. package/data/craftbook-templates/ye/year-in-review/versions/1.0.1/test.json +145 -0
  566. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.1/craftbook.json +134 -0
  567. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.1/test.json +103 -0
  568. package/package.json +1 -1
  569. package/schemas/chat-model-identity.schema.json +16 -0
  570. package/schemas/craftbook-doc.schema.json +8 -2
  571. package/schemas/craftbook-template-version.schema.json +8 -2
@@ -0,0 +1,146 @@
1
+ {
2
+ "id": "graphql-api",
3
+ "name": "GraphQL API",
4
+ "description": "Build a GraphQL API with a typed schema (SDL), resolvers, queries, mutations, and input validation. Designs the schema FIRST — types, fields, nullability, query/mutation operations, and the resolver-to-data mapping — because in GraphQL the schema IS the contract, then implements resolvers, then writes operation tests covering each query, mutation, and error. Covers GraphQL schema definition language, resolvers, nullable vs non-null fields, mutations, query arguments, N+1 awareness, and error handling.\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. Schema design (planner) — lock the SDL types, queries, mutations, nullability → gated on artifact `notes/schema-design.md` (markdown-notes)\n2. Build resolvers (developer) — implement the schema + resolvers → gated on `src/schema.js` (code-module)\n3. Write operation tests (developer) — test each query, mutation, and error → gated on `src/schema.test.js` (code-with-tests)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "schema-design",
6
+ "triggers": [
7
+ "build a graphql api",
8
+ "graphql schema and resolvers",
9
+ "create a graphql server",
10
+ "graphql endpoint"
11
+ ],
12
+ "steps": [
13
+ {
14
+ "id": "schema-design",
15
+ "name": "Schema design",
16
+ "description": "lock the SDL types, queries, mutations, nullability",
17
+ "prompt": "Design the GraphQL schema before any resolver code — in GraphQL the schema is the contract. Step 1: Define the object types and their fields in SDL, deciding nullability (`String` vs `String!`) deliberately for each field. Step 2: Define the root `Query` operations (what can be read) and `Mutation` operations (what can be changed), with their argument types and input types. Step 3: For each operation, note which data source/store backs it and what a resolver must return. Step 4: Decide error handling: which conditions return null vs throw a typed GraphQL error, and the shape of user-facing errors. Step 5: Write a numbered acceptance-criteria checklist of 5-9 items (e.g. 'querying user(id) returns the user or null', 'createUser mutation validates input and returns the created node', 'a non-null field never resolves to null', 'invalid input yields a GraphQL error, not a crash'). `write_task_note` the SDL + checklist and write the same to the produces path. No resolvers yet.\n\nThe deliverable `notes/schema-design.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.",
18
+ "suggestedRole": "planner",
19
+ "advanceWhen": {
20
+ "file": "notes/schema-design.md",
21
+ "minBytes": 1,
22
+ "sniff": "nonempty",
23
+ "artifact": true
24
+ },
25
+ "gate": {
26
+ "at": "completion",
27
+ "checks": [
28
+ {
29
+ "kind": "minBytes",
30
+ "file": "notes/schema-design.md",
31
+ "bytes": 120,
32
+ "artifact": true
33
+ },
34
+ {
35
+ "kind": "sniff",
36
+ "file": "notes/schema-design.md",
37
+ "sniff": "nonempty",
38
+ "artifact": true
39
+ }
40
+ ],
41
+ "onReject": "schema-design",
42
+ "maxAttempts": 3
43
+ },
44
+ "next": "build"
45
+ },
46
+ {
47
+ "id": "build",
48
+ "name": "Build resolvers",
49
+ "description": "implement the schema + resolvers",
50
+ "prompt": "Implement the GraphQL server in a single runnable source file. Step 1: Declare the schema exactly as designed (SDL string or schema-builder calls) — same types, fields, nullability, operations. Step 2: Write a resolver for every Query and Mutation field; resolvers must honor the declared return types and nullability. Step 3: Validate mutation inputs before mutating; on invalid input throw a typed GraphQL error with a clear message. Step 4: Use an in-memory store if no DB was specified, and make sure non-null fields are always populated. On a loop-back, fix only the named gaps without regressing working resolvers. `write_task_note` the file path and which criteria now pass.",
51
+ "suggestedRole": "developer",
52
+ "advanceWhen": {
53
+ "file": "src/schema.js",
54
+ "minBytes": 1,
55
+ "sniff": "nonempty"
56
+ },
57
+ "gate": {
58
+ "at": "completion",
59
+ "checks": [
60
+ {
61
+ "kind": "minBytes",
62
+ "file": "src/schema.js",
63
+ "bytes": 200
64
+ },
65
+ {
66
+ "kind": "sniff",
67
+ "file": "src/schema.js",
68
+ "sniff": "nonempty"
69
+ },
70
+ {
71
+ "kind": "esmImports",
72
+ "file": "src/schema.js"
73
+ },
74
+ {
75
+ "kind": "sourceParses",
76
+ "file": "src/schema.js"
77
+ }
78
+ ],
79
+ "onReject": "build",
80
+ "maxAttempts": 3
81
+ },
82
+ "next": "test"
83
+ },
84
+ {
85
+ "id": "test",
86
+ "name": "Write operation tests",
87
+ "description": "test each query, mutation, and error",
88
+ "prompt": "Write tests that execute real GraphQL operations against the schema. Step 1: For each Query, assert the returned shape matches the SDL (including nulls where allowed). Step 2: For each Mutation, assert the happy path returns the created/updated node, then assert invalid input produces a GraphQL error rather than a crash. Step 3: Add a test proving a non-null field never resolves to null. Step 4: Add a create-then-query round-trip to prove state wiring. Make tests runnable and self-contained. `write_task_note` the test file path and pass/fail count.",
89
+ "suggestedRole": "developer",
90
+ "advanceWhen": {
91
+ "file": "src/schema.test.js",
92
+ "minBytes": 1,
93
+ "sniff": "nonempty"
94
+ },
95
+ "gate": {
96
+ "at": "completion",
97
+ "checks": [
98
+ {
99
+ "kind": "minBytes",
100
+ "file": "src/schema.js",
101
+ "bytes": 200
102
+ },
103
+ {
104
+ "kind": "sniff",
105
+ "file": "src/schema.js",
106
+ "sniff": "nonempty"
107
+ },
108
+ {
109
+ "kind": "esmImports",
110
+ "file": "src/schema.js"
111
+ },
112
+ {
113
+ "kind": "sourceParses",
114
+ "file": "src/schema.js"
115
+ }
116
+ ],
117
+ "onReject": "test",
118
+ "maxAttempts": 4
119
+ },
120
+ "next": "evaluate"
121
+ },
122
+ {
123
+ "id": "evaluate",
124
+ "name": "Evaluate",
125
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
126
+ "prompt": "Run the tests and execute sample operations. For EACH acceptance criterion: confirm queries return the SDL-correct shape and nullability, confirm mutations validate input and return the right node, confirm invalid input yields a typed GraphQL error (not a crash), and confirm non-null fields are never null. Write PASS/FAIL per criterion.\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.",
127
+ "suggestedRole": "reviewer",
128
+ "consumes": [
129
+ {
130
+ "file": "src/schema.js"
131
+ }
132
+ ],
133
+ "next": "build"
134
+ },
135
+ {
136
+ "id": "finish",
137
+ "name": "Finish",
138
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
139
+ "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.",
140
+ "suggestedRole": "developer",
141
+ "terminal": true
142
+ }
143
+ ],
144
+ "version": "1.0.2",
145
+ "releasedAt": "2026-08-14T00:00:00Z"
146
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "GraphQL API smoke eval",
4
+ "objective": "Self-contained smoke eval for the GraphQL API craftbook using the code generic harness.",
5
+ "tags": [
6
+ "code"
7
+ ],
8
+ "prompt": "We need a small Node helper for this — the requirments are in source/requirements.md. Put it in src/solution.mjs.",
9
+ "setup": {
10
+ "projectName": "GraphQL API Eval",
11
+ "about": "Self-contained eval project for graphql-api. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/src/solution.mjs.",
12
+ "missionObjectives": "Use the GraphQL API craftbook/template, read the seeded local fixtures, and write src/solution.mjs without network calls, real credentials, or live services.",
13
+ "files": [
14
+ {
15
+ "path": "source/brief.md",
16
+ "content": "# GraphQL API 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: graphql-api - GraphQL API.\n"
17
+ },
18
+ {
19
+ "path": "source/requirements.md",
20
+ "content": "# Runner Requirements\n\nBuild a dependency-free Node ESM helper for Boreal Desk support operations. Export at least one function. Include a tiny self-test section using node:assert or an equivalent assertion helper. Use fixture values for 18 -> 6 hour response time and 14.2 -> 8.9 refund leakage.\n"
21
+ }
22
+ ],
23
+ "worker": {
24
+ "name": "Jules",
25
+ "role": "Developer"
26
+ }
27
+ },
28
+ "mocks": [],
29
+ "success": {
30
+ "summary": "src/solution.mjs is a local ESM module with basic self-test scaffolding.",
31
+ "deliverables": [
32
+ {
33
+ "path": "src/solution.mjs",
34
+ "kind": "code-with-tests",
35
+ "minBytes": 1500,
36
+ "checks": [
37
+ {
38
+ "kind": "esmImports",
39
+ "file": "src/solution.mjs"
40
+ },
41
+ {
42
+ "kind": "contains",
43
+ "file": "src/solution.mjs",
44
+ "pattern": "export\\s+(function|const|class)|export\\s*\\{",
45
+ "flags": "i"
46
+ },
47
+ {
48
+ "kind": "contains",
49
+ "file": "src/solution.mjs",
50
+ "pattern": "assert|test|describe|it|expect",
51
+ "flags": "i"
52
+ },
53
+ {
54
+ "kind": "contains",
55
+ "file": "src/solution.mjs",
56
+ "pattern": "18|6|14\\.2|8\\.9|Boreal",
57
+ "flags": "i"
58
+ }
59
+ ]
60
+ }
61
+ ]
62
+ },
63
+ "rubric": {
64
+ "artifact": {
65
+ "path": "src/solution.mjs",
66
+ "kind": "typescript"
67
+ },
68
+ "axes": [
69
+ {
70
+ "name": "correctness",
71
+ "description": "The module does what the requirements ask, with sensible edge handling."
72
+ },
73
+ {
74
+ "name": "verification",
75
+ "description": "Self-tests exercise real behavior, not trivial truths."
76
+ },
77
+ {
78
+ "name": "clarity",
79
+ "description": "Exports, naming, and structure make the module usable without reading every line."
80
+ },
81
+ {
82
+ "name": "robustness",
83
+ "description": "Invalid input and boundary cases fail loudly rather than silently."
84
+ }
85
+ ]
86
+ },
87
+ "qualityFocus": [
88
+ "runnable ESM",
89
+ "test scaffolding",
90
+ "local fixtures"
91
+ ]
92
+ }
@@ -0,0 +1,147 @@
1
+ {
2
+ "id": "grpc-service",
3
+ "name": "gRPC Service",
4
+ "description": "Build a gRPC service from a Protocol Buffers contract — define the .proto service and messages, implement the server handlers, and verify with client calls including streaming and status codes. Designs the proto contract FIRST — the service, RPC methods, request/response messages, field numbers, and the streaming kinds — because the .proto is the binding contract across languages, then implements the handlers, then tests unary/streaming calls and gRPC status codes. Covers protobuf service/message definitions, field numbering, unary vs server/client/bidi streaming, gRPC status codes, deadlines, and a client-driven test.\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. Proto contract design (planner) — lock the service, methods, messages, streaming kinds → gated on artifact `notes/proto-design.md` (markdown-notes)\n2. Build the service (developer) — write the .proto + implement the server handlers → gated on `src/server.js` (code-module)\n3. Test with a client (developer) — test unary/streaming calls and status codes → gated on `src/server.test.js` (code-with-tests)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "proto-design",
6
+ "triggers": [
7
+ "build a grpc service",
8
+ "protobuf service and server",
9
+ "implement grpc handlers",
10
+ "create a .proto and server",
11
+ "rpc service"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "proto-design",
16
+ "name": "Proto contract design",
17
+ "description": "lock the service, methods, messages, streaming kinds",
18
+ "prompt": "Design the Protocol Buffers contract before any server code — the .proto is the binding cross-language contract. Step 1: Define the service and its RPC METHODS, choosing the streaming kind for each (unary, server-streaming, client-streaming, bidi). Step 2: Define the request and response MESSAGE types with explicit, stable FIELD NUMBERS and correct scalar/enum/repeated types. Step 3: Decide the gRPC STATUS-CODE map: which conditions return OK, INVALID_ARGUMENT, NOT_FOUND, ALREADY_EXISTS, etc., and how errors carry detail. Step 4: Note deadlines/timeouts expectations. Step 5: Write a numbered acceptance-criteria checklist of 5-9 items (e.g. 'each RPC has the documented signature and streaming kind', 'invalid input returns INVALID_ARGUMENT not OK', 'a missing entity returns NOT_FOUND', 'field numbers are stable and unique'). `write_task_note` the proto draft + status map + checklist and write the same to the produces path.\n\nThe deliverable `notes/proto-design.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.",
19
+ "suggestedRole": "planner",
20
+ "advanceWhen": {
21
+ "file": "notes/proto-design.md",
22
+ "minBytes": 1,
23
+ "sniff": "nonempty",
24
+ "artifact": true
25
+ },
26
+ "gate": {
27
+ "at": "completion",
28
+ "checks": [
29
+ {
30
+ "kind": "minBytes",
31
+ "file": "notes/proto-design.md",
32
+ "bytes": 120,
33
+ "artifact": true
34
+ },
35
+ {
36
+ "kind": "sniff",
37
+ "file": "notes/proto-design.md",
38
+ "sniff": "nonempty",
39
+ "artifact": true
40
+ }
41
+ ],
42
+ "onReject": "proto-design",
43
+ "maxAttempts": 3
44
+ },
45
+ "next": "build"
46
+ },
47
+ {
48
+ "id": "build",
49
+ "name": "Build the service",
50
+ "description": "write the .proto + implement the server handlers",
51
+ "prompt": "Implement the gRPC service to the contract. Step 1: Write the `.proto` file exactly as designed — service, methods with their streaming kinds, and messages with their field numbers. Step 2: Implement a server handler for every RPC; honor the streaming kind (stream responses for server-streaming, consume the stream for client-streaming). Step 3: Validate requests and return the correct gRPC STATUS CODE on each error condition (INVALID_ARGUMENT, NOT_FOUND, ...), never a generic UNKNOWN for an expected error. Step 4: Respect deadlines and use an in-memory store if none specified. Write the server source to the produces path (and the .proto alongside it). On a loop-back, fix only the named gaps. `write_task_note` the file paths and which criteria now pass.",
52
+ "suggestedRole": "developer",
53
+ "advanceWhen": {
54
+ "file": "src/server.js",
55
+ "minBytes": 1,
56
+ "sniff": "nonempty"
57
+ },
58
+ "gate": {
59
+ "at": "completion",
60
+ "checks": [
61
+ {
62
+ "kind": "minBytes",
63
+ "file": "src/server.js",
64
+ "bytes": 200
65
+ },
66
+ {
67
+ "kind": "sniff",
68
+ "file": "src/server.js",
69
+ "sniff": "nonempty"
70
+ },
71
+ {
72
+ "kind": "esmImports",
73
+ "file": "src/server.js"
74
+ },
75
+ {
76
+ "kind": "sourceParses",
77
+ "file": "src/server.js"
78
+ }
79
+ ],
80
+ "onReject": "build",
81
+ "maxAttempts": 3
82
+ },
83
+ "next": "test"
84
+ },
85
+ {
86
+ "id": "test",
87
+ "name": "Test with a client",
88
+ "description": "test unary/streaming calls and status codes",
89
+ "prompt": "Write client-driven tests against the running service. Step 1: For each unary RPC, call it and assert the response message matches the proto and the status is OK. Step 2: For streaming RPCs, drive the stream and assert the sequence of messages is correct. Step 3: Trigger each error condition and assert the correct gRPC STATUS CODE comes back (INVALID_ARGUMENT on bad input, NOT_FOUND on missing), not OK or UNKNOWN. Step 4: Add a round-trip (create then fetch) to prove state wiring. `write_task_note` the test file path and pass/fail count.",
90
+ "suggestedRole": "developer",
91
+ "advanceWhen": {
92
+ "file": "src/server.test.js",
93
+ "minBytes": 1,
94
+ "sniff": "nonempty"
95
+ },
96
+ "gate": {
97
+ "at": "completion",
98
+ "checks": [
99
+ {
100
+ "kind": "minBytes",
101
+ "file": "src/server.js",
102
+ "bytes": 200
103
+ },
104
+ {
105
+ "kind": "sniff",
106
+ "file": "src/server.js",
107
+ "sniff": "nonempty"
108
+ },
109
+ {
110
+ "kind": "esmImports",
111
+ "file": "src/server.js"
112
+ },
113
+ {
114
+ "kind": "sourceParses",
115
+ "file": "src/server.js"
116
+ }
117
+ ],
118
+ "onReject": "test",
119
+ "maxAttempts": 4
120
+ },
121
+ "next": "evaluate"
122
+ },
123
+ {
124
+ "id": "evaluate",
125
+ "name": "Evaluate",
126
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
127
+ "prompt": "Run the tests with a gRPC client. For EACH acceptance criterion: confirm each RPC's signature/streaming kind works and unary responses match the proto, confirm streaming RPCs yield the right message sequence, confirm error conditions return the correct gRPC status code (not OK/UNKNOWN), and confirm a round-trip works. Write PASS/FAIL per criterion.\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.",
128
+ "suggestedRole": "reviewer",
129
+ "consumes": [
130
+ {
131
+ "file": "src/server.js"
132
+ }
133
+ ],
134
+ "next": "build"
135
+ },
136
+ {
137
+ "id": "finish",
138
+ "name": "Finish",
139
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
140
+ "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.",
141
+ "suggestedRole": "developer",
142
+ "terminal": true
143
+ }
144
+ ],
145
+ "version": "1.0.1",
146
+ "releasedAt": "2026-08-14T00:00:00Z"
147
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "gRPC Service smoke eval",
4
+ "objective": "Self-contained smoke eval for the gRPC Service craftbook using the code generic harness.",
5
+ "tags": [
6
+ "code"
7
+ ],
8
+ "prompt": "We need a small Node helper for this — the requirments are in source/requirements.md. Put it in src/solution.mjs.",
9
+ "setup": {
10
+ "projectName": "gRPC Service Eval",
11
+ "about": "Self-contained eval project for grpc-service. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/src/solution.mjs.",
12
+ "missionObjectives": "Use the gRPC Service craftbook/template, read the seeded local fixtures, and write src/solution.mjs without network calls, real credentials, or live services.",
13
+ "files": [
14
+ {
15
+ "path": "source/brief.md",
16
+ "content": "# gRPC Service 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: grpc-service - gRPC Service.\n"
17
+ },
18
+ {
19
+ "path": "source/requirements.md",
20
+ "content": "# Runner Requirements\n\nBuild a dependency-free Node ESM helper for Boreal Desk support operations. Export at least one function. Include a tiny self-test section using node:assert or an equivalent assertion helper. Use fixture values for 18 -> 6 hour response time and 14.2 -> 8.9 refund leakage.\n"
21
+ }
22
+ ],
23
+ "worker": {
24
+ "name": "Jules",
25
+ "role": "Developer"
26
+ }
27
+ },
28
+ "mocks": [],
29
+ "success": {
30
+ "summary": "src/solution.mjs is a local ESM module with basic self-test scaffolding.",
31
+ "deliverables": [
32
+ {
33
+ "path": "src/solution.mjs",
34
+ "kind": "code-with-tests",
35
+ "minBytes": 1500,
36
+ "checks": [
37
+ {
38
+ "kind": "esmImports",
39
+ "file": "src/solution.mjs"
40
+ },
41
+ {
42
+ "kind": "contains",
43
+ "file": "src/solution.mjs",
44
+ "pattern": "export\\s+(function|const|class)|export\\s*\\{",
45
+ "flags": "i"
46
+ },
47
+ {
48
+ "kind": "contains",
49
+ "file": "src/solution.mjs",
50
+ "pattern": "assert|test|describe|it|expect",
51
+ "flags": "i"
52
+ },
53
+ {
54
+ "kind": "contains",
55
+ "file": "src/solution.mjs",
56
+ "pattern": "18|6|14\\.2|8\\.9|Boreal",
57
+ "flags": "i"
58
+ }
59
+ ]
60
+ }
61
+ ]
62
+ },
63
+ "rubric": {
64
+ "artifact": {
65
+ "path": "src/solution.mjs",
66
+ "kind": "typescript"
67
+ },
68
+ "axes": [
69
+ {
70
+ "name": "correctness",
71
+ "description": "The module does what the requirements ask, with sensible edge handling."
72
+ },
73
+ {
74
+ "name": "verification",
75
+ "description": "Self-tests exercise real behavior, not trivial truths."
76
+ },
77
+ {
78
+ "name": "clarity",
79
+ "description": "Exports, naming, and structure make the module usable without reading every line."
80
+ },
81
+ {
82
+ "name": "robustness",
83
+ "description": "Invalid input and boundary cases fail loudly rather than silently."
84
+ }
85
+ ]
86
+ },
87
+ "qualityFocus": [
88
+ "runnable ESM",
89
+ "test scaffolding",
90
+ "local fixtures"
91
+ ]
92
+ }
@@ -0,0 +1,145 @@
1
+ {
2
+ "id": "handbook-section",
3
+ "name": "Team Handbook Section",
4
+ "description": "Write a clear, reference-grade section of a team/company handbook — a policy, process, or how-we-work doc that a new hire can read once and act on correctly. Scopes the policy's intent, audience, and edge cases FIRST, writes unambiguous prose with concrete examples, a quick-reference summary, and FAQ, then has a reviewer check it for ambiguity and contradictions with how things actually work. Use for onboarding docs, policy pages, process documentation, and internal wikis.\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. Scope the section (planner) — intent, audience, what's in/out, and the tricky edge cases → gated on artifact `notes/scope.md` (markdown-notes)\n2. Write the section (copywriter) — unambiguous prose with examples, TL;DR, and FAQ → gated on `handbook.md` (markdown-doc)\n3. Review for clarity (reviewer) — hunt for ambiguity, contradictions, and unanswered edge cases → gated on artifact `notes/review.md` (markdown-notes)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "scope",
6
+ "triggers": [
7
+ "handbook section",
8
+ "write a policy",
9
+ "team handbook page",
10
+ "process documentation",
11
+ "internal wiki page",
12
+ "how we work doc"
13
+ ],
14
+ "steps": [
15
+ {
16
+ "id": "scope",
17
+ "name": "Scope the section",
18
+ "description": "intent, audience, what's in/out, and the tricky edge cases",
19
+ "prompt": "Define the policy/process before writing it. Step 1: state the section's intent — what behavior or knowledge it is trying to produce — and who reads it. Step 2: define what this section covers and what it explicitly does not (link-outs for the rest). Step 3: enumerate the edge cases and 'what if' questions people actually hit, because unhandled edge cases are where handbooks fail. Step 4: decide whether the topic is a POLICY (rules + rationale) or a PROCESS (ordered steps + owners) and structure accordingly. Step 5: write an acceptance-criteria checklist ('states intent up front', 'covers the enumerated edge cases', 'includes at least one concrete example', 'has a quick-reference summary (TL;DR)', 'unambiguous — no \"usually/it depends\" without resolution', 'owner/contact named for questions'). Write the scope + edge-case list + checklist via write_task_note AND to notes/scope.md. No prose yet.\n\nThe deliverable `notes/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.",
20
+ "suggestedRole": "planner",
21
+ "advanceWhen": {
22
+ "file": "notes/scope.md",
23
+ "minBytes": 1,
24
+ "sniff": "nonempty",
25
+ "artifact": true
26
+ },
27
+ "gate": {
28
+ "at": "completion",
29
+ "checks": [
30
+ {
31
+ "kind": "minBytes",
32
+ "file": "notes/scope.md",
33
+ "bytes": 120,
34
+ "artifact": true
35
+ },
36
+ {
37
+ "kind": "sniff",
38
+ "file": "notes/scope.md",
39
+ "sniff": "nonempty",
40
+ "artifact": true
41
+ }
42
+ ],
43
+ "onReject": "scope",
44
+ "maxAttempts": 3
45
+ },
46
+ "next": "write"
47
+ },
48
+ {
49
+ "id": "write",
50
+ "name": "Write the section",
51
+ "description": "unambiguous prose with examples, TL;DR, and FAQ",
52
+ "prompt": "Write the handbook section as handbook.md so a new hire reads it once and acts correctly. Step 1: open with a one-line TL;DR / quick-reference summary capturing the rule or the steps at a glance. Step 2: state the intent/why briefly (people follow policy better when they understand it). Step 3: write the body — for a POLICY, the rules with rationale; for a PROCESS, NUMBERED steps with the owner/role for each — in plain, direct language. Step 4: include at least one concrete worked example showing the policy/process applied. Step 5: write a short FAQ resolving every enumerated edge case with a definite answer (no 'it depends' left dangling). Step 6: name the owner/contact for questions and the last-reviewed date. Avoid hedging where a decision is needed. On a loop-back, fix ONLY the named gaps. Write the path via write_task_note.",
53
+ "suggestedRole": "copywriter",
54
+ "advanceWhen": {
55
+ "file": "handbook.md",
56
+ "minBytes": 1,
57
+ "sniff": "nonempty"
58
+ },
59
+ "gate": {
60
+ "at": "completion",
61
+ "checks": [
62
+ {
63
+ "kind": "minBytes",
64
+ "file": "handbook.md",
65
+ "bytes": 500
66
+ }
67
+ ],
68
+ "scripts": [
69
+ {
70
+ "name": "checkContains",
71
+ "scope": "standard",
72
+ "inputs": {
73
+ "file": "handbook.md",
74
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
75
+ "flags": "i"
76
+ }
77
+ }
78
+ ],
79
+ "onReject": "write",
80
+ "maxAttempts": 3
81
+ },
82
+ "next": "review"
83
+ },
84
+ {
85
+ "id": "review",
86
+ "name": "Review for clarity",
87
+ "description": "hunt for ambiguity, contradictions, and unanswered edge cases",
88
+ "prompt": "Review the section for the failure modes that make handbooks useless. Step 1: read it as a new hire and flag any sentence that leaves you unsure what to actually do. Step 2: check every enumerated edge case is answered definitively in the FAQ or body. Step 3: hunt for internal contradictions and for hedging ('usually', 'generally') where a firm answer is required. Step 4: confirm the TL;DR matches the detailed body and the example is correct. Step 5: list concrete gaps with the location and the fix, recorded as PASS/FAIL against the scope checklist. Write the findings via write_task_note AND to notes/review.md. Gaps must be fixed in the write phase before this passes.\n\nThe deliverable `notes/review.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.",
89
+ "suggestedRole": "reviewer",
90
+ "advanceWhen": {
91
+ "file": "notes/review.md",
92
+ "minBytes": 1,
93
+ "sniff": "nonempty",
94
+ "artifact": true
95
+ },
96
+ "gate": {
97
+ "at": "completion",
98
+ "checks": [
99
+ {
100
+ "kind": "minBytes",
101
+ "file": "handbook.md",
102
+ "bytes": 500
103
+ }
104
+ ],
105
+ "scripts": [
106
+ {
107
+ "name": "checkContains",
108
+ "scope": "standard",
109
+ "inputs": {
110
+ "file": "handbook.md",
111
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
112
+ "flags": "i"
113
+ }
114
+ }
115
+ ],
116
+ "onReject": "review",
117
+ "maxAttempts": 4
118
+ },
119
+ "next": "evaluate"
120
+ },
121
+ {
122
+ "id": "evaluate",
123
+ "name": "Evaluate",
124
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
125
+ "prompt": "QA the handbook section against the locked criteria. Step 1: read handbook.md as a brand-new hire. Step 2: check EACH acceptance criterion: a TL;DR/quick-reference is present and matches the body, the intent is stated up front, the body is unambiguous (no unresolved 'it depends'), every enumerated edge case is answered, at least one concrete example is present and correct, and an owner/contact is named. Step 3: confirm there are no internal contradictions, folding in notes/review.md findings. Write PASS/FAIL per criterion with the offending location 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: \"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.",
126
+ "suggestedRole": "reviewer",
127
+ "consumes": [
128
+ {
129
+ "file": "handbook.md"
130
+ }
131
+ ],
132
+ "next": "write"
133
+ },
134
+ {
135
+ "id": "finish",
136
+ "name": "Finish",
137
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
138
+ "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.",
139
+ "suggestedRole": "developer",
140
+ "terminal": true
141
+ }
142
+ ],
143
+ "version": "1.0.1",
144
+ "releasedAt": "2026-08-14T00:00:00Z"
145
+ }