@bendyline/gilde 0.1.27 → 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 (558) hide show
  1. package/authoring/gstack/evals/investigate.json +1 -0
  2. package/authoring/gstack/evals/plan-ceo-review.json +1 -0
  3. package/authoring/gstack/wave.json +2 -2
  4. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.1/craftbook.json +141 -0
  5. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.1/test.json +115 -0
  6. package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.1/craftbook.json +141 -0
  7. package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.1/test.json +186 -0
  8. package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.1/craftbook.json +110 -0
  9. package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.1/test.json +97 -0
  10. package/data/craftbook-templates/ad/ad-variations/versions/1.0.1/craftbook.json +105 -0
  11. package/data/craftbook-templates/ad/ad-variations/versions/1.0.1/test.json +108 -0
  12. package/data/craftbook-templates/al/album-curate/versions/1.0.1/craftbook.json +115 -0
  13. package/data/craftbook-templates/al/album-curate/versions/1.0.1/test.json +147 -0
  14. package/data/craftbook-templates/al/alert-rules/versions/1.0.1/craftbook.json +101 -0
  15. package/data/craftbook-templates/al/alert-rules/versions/1.0.1/test.json +145 -0
  16. package/data/craftbook-templates/al/alt-text-pass/versions/1.0.1/craftbook.json +142 -0
  17. package/data/craftbook-templates/al/alt-text-pass/versions/1.0.1/test.json +97 -0
  18. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.3/craftbook.json +226 -0
  19. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.3/test.json +157 -0
  20. package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.1/craftbook.json +146 -0
  21. package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.1/test.json +102 -0
  22. package/data/craftbook-templates/an/annual-document-review/versions/1.0.1/craftbook.json +140 -0
  23. package/data/craftbook-templates/an/annual-document-review/versions/1.0.1/test.json +110 -0
  24. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.1/craftbook.json +141 -0
  25. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.1/test.json +120 -0
  26. package/data/craftbook-templates/ap/api-contract-review/versions/1.1.1/craftbook.json +141 -0
  27. package/data/craftbook-templates/ap/api-contract-review/versions/1.1.1/test.json +115 -0
  28. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.1/craftbook.json +158 -0
  29. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.1/test.json +136 -0
  30. package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.1/craftbook.json +129 -0
  31. package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.1/test.json +103 -0
  32. package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.1/craftbook.json +123 -0
  33. package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.1/test.json +103 -0
  34. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.3/craftbook.json +210 -0
  35. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.3/test.json +221 -0
  36. package/data/craftbook-templates/au/auth-flow/versions/1.0.1/craftbook.json +148 -0
  37. package/data/craftbook-templates/au/auth-flow/versions/1.0.1/test.json +140 -0
  38. package/data/craftbook-templates/au/automation-recipe/versions/1.0.1/craftbook.json +164 -0
  39. package/data/craftbook-templates/au/automation-recipe/versions/1.0.1/test.json +296 -0
  40. package/data/craftbook-templates/ba/backup-routine/versions/1.0.1/craftbook.json +148 -0
  41. package/data/craftbook-templates/ba/backup-routine/versions/1.0.1/test.json +108 -0
  42. package/data/craftbook-templates/bl/blog-post/versions/1.0.1/craftbook.json +143 -0
  43. package/data/craftbook-templates/bl/blog-post/versions/1.0.1/test.json +118 -0
  44. package/data/craftbook-templates/bo/board-deck/versions/1.0.1/craftbook.json +141 -0
  45. package/data/craftbook-templates/bo/board-deck/versions/1.0.1/test.json +100 -0
  46. package/data/craftbook-templates/bo/board-game-web/versions/1.0.1/craftbook.json +150 -0
  47. package/data/craftbook-templates/bo/board-game-web/versions/1.0.1/test.json +99 -0
  48. package/data/craftbook-templates/bo/booking-automation/versions/1.0.1/craftbook.json +158 -0
  49. package/data/craftbook-templates/bo/booking-automation/versions/1.0.1/test.json +162 -0
  50. package/data/craftbook-templates/br/branding-website/versions/1.1.1/craftbook.json +211 -0
  51. package/data/craftbook-templates/br/branding-website/versions/1.1.1/test.json +164 -0
  52. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.1/craftbook.json +107 -0
  53. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.1/test.json +103 -0
  54. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.3/craftbook.json +417 -0
  55. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.3/test.json +376 -0
  56. package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.2/craftbook.json +164 -0
  57. package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.2/test.json +92 -0
  58. package/data/craftbook-templates/ca/calendar-brief/versions/1.0.1/craftbook.json +107 -0
  59. package/data/craftbook-templates/ca/calendar-brief/versions/1.0.1/test.json +102 -0
  60. package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.1/craftbook.json +110 -0
  61. package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.1/test.json +106 -0
  62. package/data/craftbook-templates/ca/case-study/versions/1.0.1/craftbook.json +143 -0
  63. package/data/craftbook-templates/ca/case-study/versions/1.0.1/test.json +112 -0
  64. package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.1/craftbook.json +151 -0
  65. package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.1/test.json +105 -0
  66. package/data/craftbook-templates/ch/changelog-cut/versions/1.0.1/craftbook.json +113 -0
  67. package/data/craftbook-templates/ch/changelog-cut/versions/1.0.1/test.json +106 -0
  68. package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.1/craftbook.json +107 -0
  69. package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.1/test.json +129 -0
  70. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.2/craftbook.json +123 -0
  71. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.2/test.json +155 -0
  72. package/data/craftbook-templates/ch/chapter-weave/versions/1.0.1/craftbook.json +74 -0
  73. package/data/craftbook-templates/ch/chapter-weave/versions/1.0.1/test.json +98 -0
  74. package/data/craftbook-templates/ch/character-sheet/versions/1.0.1/craftbook.json +82 -0
  75. package/data/craftbook-templates/ch/character-sheet/versions/1.0.1/test.json +143 -0
  76. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.1/craftbook.json +121 -0
  77. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.1/test.json +178 -0
  78. package/data/craftbook-templates/ch/chart-pack/versions/1.0.1/craftbook.json +148 -0
  79. package/data/craftbook-templates/ch/chart-pack/versions/1.0.1/test.json +104 -0
  80. package/data/craftbook-templates/ch/chrome-extension/versions/1.0.1/craftbook.json +148 -0
  81. package/data/craftbook-templates/ch/chrome-extension/versions/1.0.1/test.json +97 -0
  82. package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.1/craftbook.json +132 -0
  83. package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.1/test.json +162 -0
  84. package/data/craftbook-templates/ci/citation-audit/versions/1.0.1/craftbook.json +146 -0
  85. package/data/craftbook-templates/ci/citation-audit/versions/1.0.1/test.json +149 -0
  86. package/data/craftbook-templates/cl/cli-tool/versions/1.1.1/craftbook.json +147 -0
  87. package/data/craftbook-templates/cl/cli-tool/versions/1.1.1/test.json +128 -0
  88. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.1/craftbook.json +153 -0
  89. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.1/test.json +116 -0
  90. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.1/craftbook.json +153 -0
  91. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.1/test.json +119 -0
  92. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.1/craftbook.json +141 -0
  93. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.1/test.json +226 -0
  94. package/data/craftbook-templates/co/company-research-brief/versions/1.0.1/craftbook.json +139 -0
  95. package/data/craftbook-templates/co/company-research-brief/versions/1.0.1/test.json +97 -0
  96. package/data/craftbook-templates/co/comparison-matrix/versions/1.0.1/craftbook.json +153 -0
  97. package/data/craftbook-templates/co/comparison-matrix/versions/1.0.1/test.json +109 -0
  98. package/data/craftbook-templates/co/compat-check/versions/1.0.1/craftbook.json +146 -0
  99. package/data/craftbook-templates/co/compat-check/versions/1.0.1/test.json +145 -0
  100. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.1/craftbook.json +140 -0
  101. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.1/test.json +116 -0
  102. package/data/craftbook-templates/co/config-scaffold/versions/1.0.1/craftbook.json +105 -0
  103. package/data/craftbook-templates/co/config-scaffold/versions/1.0.1/test.json +120 -0
  104. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.1/craftbook.json +141 -0
  105. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.1/test.json +149 -0
  106. package/data/craftbook-templates/co/content-deck/versions/1.2.1/craftbook.json +206 -0
  107. package/data/craftbook-templates/co/content-deck/versions/1.2.1/test.json +169 -0
  108. package/data/craftbook-templates/co/contract-template/versions/1.0.1/craftbook.json +145 -0
  109. package/data/craftbook-templates/co/contract-template/versions/1.0.1/test.json +102 -0
  110. package/data/craftbook-templates/co/cookbook-layout/versions/1.0.1/craftbook.json +121 -0
  111. package/data/craftbook-templates/co/cookbook-layout/versions/1.0.1/test.json +159 -0
  112. package/data/craftbook-templates/co/copy-review/versions/1.0.1/craftbook.json +141 -0
  113. package/data/craftbook-templates/co/copy-review/versions/1.0.1/test.json +102 -0
  114. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.1/craftbook.json +210 -0
  115. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.1/test.json +187 -0
  116. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.1/craftbook.json +146 -0
  117. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.1/test.json +156 -0
  118. package/data/craftbook-templates/co/cover-letter/versions/1.0.1/craftbook.json +107 -0
  119. package/data/craftbook-templates/co/cover-letter/versions/1.0.1/test.json +100 -0
  120. package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.1/craftbook.json +101 -0
  121. package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.1/test.json +207 -0
  122. package/data/craftbook-templates/cr/cron-job/versions/1.0.1/craftbook.json +147 -0
  123. package/data/craftbook-templates/cr/cron-job/versions/1.0.1/test.json +104 -0
  124. package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/craftbook.json +164 -0
  125. package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/test.json +135 -0
  126. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.2/craftbook.json +101 -0
  127. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.2/test.json +102 -0
  128. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.1/craftbook.json +107 -0
  129. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.1/test.json +114 -0
  130. package/data/craftbook-templates/da/data-dictionary/versions/1.0.1/craftbook.json +107 -0
  131. package/data/craftbook-templates/da/data-dictionary/versions/1.0.1/test.json +101 -0
  132. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.1/craftbook.json +148 -0
  133. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.1/test.json +104 -0
  134. package/data/craftbook-templates/da/data-join-merge/versions/1.0.1/craftbook.json +101 -0
  135. package/data/craftbook-templates/da/data-join-merge/versions/1.0.1/test.json +104 -0
  136. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.2/craftbook.json +148 -0
  137. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.2/test.json +162 -0
  138. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.1/craftbook.json +141 -0
  139. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.1/test.json +326 -0
  140. package/data/craftbook-templates/da/data-to-report/versions/1.0.1/craftbook.json +140 -0
  141. package/data/craftbook-templates/da/data-to-report/versions/1.0.1/test.json +95 -0
  142. package/data/craftbook-templates/da/data-viz-page/versions/1.0.1/craftbook.json +143 -0
  143. package/data/craftbook-templates/da/data-viz-page/versions/1.0.1/test.json +117 -0
  144. package/data/craftbook-templates/da/dataset-clean/versions/1.2.2/craftbook.json +101 -0
  145. package/data/craftbook-templates/da/dataset-clean/versions/1.2.2/test.json +95 -0
  146. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.1/craftbook.json +148 -0
  147. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.1/test.json +104 -0
  148. package/data/craftbook-templates/de/deep-security-review/versions/1.1.1/craftbook.json +211 -0
  149. package/data/craftbook-templates/de/deep-security-review/versions/1.1.1/test.json +157 -0
  150. package/data/craftbook-templates/de/dependency-audit/versions/1.1.1/craftbook.json +141 -0
  151. package/data/craftbook-templates/de/dependency-audit/versions/1.1.1/test.json +108 -0
  152. package/data/craftbook-templates/de/deploy-checklist/versions/1.0.1/craftbook.json +159 -0
  153. package/data/craftbook-templates/de/deploy-checklist/versions/1.0.1/test.json +165 -0
  154. package/data/craftbook-templates/de/design-review/versions/1.0.1/craftbook.json +141 -0
  155. package/data/craftbook-templates/de/design-review/versions/1.0.1/test.json +118 -0
  156. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.3/craftbook.json +431 -0
  157. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.3/test.json +201 -0
  158. package/data/craftbook-templates/di/diagram-from-text/versions/1.0.1/craftbook.json +109 -0
  159. package/data/craftbook-templates/di/diagram-from-text/versions/1.0.1/test.json +97 -0
  160. package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.1/craftbook.json +146 -0
  161. package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.1/test.json +162 -0
  162. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.1/craftbook.json +148 -0
  163. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.1/test.json +104 -0
  164. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.1/craftbook.json +107 -0
  165. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.1/test.json +110 -0
  166. package/data/craftbook-templates/do/dockerize-app/versions/1.0.1/craftbook.json +148 -0
  167. package/data/craftbook-templates/do/dockerize-app/versions/1.0.1/test.json +92 -0
  168. package/data/craftbook-templates/do/docs-site/versions/1.0.1/craftbook.json +143 -0
  169. package/data/craftbook-templates/do/docs-site/versions/1.0.1/test.json +97 -0
  170. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.1/craftbook.json +153 -0
  171. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.1/test.json +132 -0
  172. package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.1/craftbook.json +140 -0
  173. package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.1/test.json +104 -0
  174. package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.1/craftbook.json +146 -0
  175. package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.1/test.json +110 -0
  176. package/data/craftbook-templates/eb/ebook-compile/versions/1.0.1/craftbook.json +143 -0
  177. package/data/craftbook-templates/eb/ebook-compile/versions/1.0.1/test.json +97 -0
  178. package/data/craftbook-templates/ed/edit-notes/versions/1.0.1/craftbook.json +176 -0
  179. package/data/craftbook-templates/ed/edit-notes/versions/1.0.1/test.json +146 -0
  180. package/data/craftbook-templates/em/email-sequence/versions/1.0.1/craftbook.json +142 -0
  181. package/data/craftbook-templates/em/email-sequence/versions/1.0.1/test.json +97 -0
  182. package/data/craftbook-templates/em/email-template/versions/1.0.1/craftbook.json +143 -0
  183. package/data/craftbook-templates/em/email-template/versions/1.0.1/test.json +97 -0
  184. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.3/craftbook.json +403 -0
  185. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.3/test.json +191 -0
  186. package/data/craftbook-templates/ep/episode-plan/versions/1.0.1/craftbook.json +140 -0
  187. package/data/craftbook-templates/ep/episode-plan/versions/1.0.1/test.json +97 -0
  188. package/data/craftbook-templates/es/escalation-playbook/versions/1.0.1/craftbook.json +107 -0
  189. package/data/craftbook-templates/es/escalation-playbook/versions/1.0.1/test.json +110 -0
  190. package/data/craftbook-templates/ev/evidence-brief/versions/1.0.1/craftbook.json +146 -0
  191. package/data/craftbook-templates/ev/evidence-brief/versions/1.0.1/test.json +110 -0
  192. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.3/craftbook.json +433 -0
  193. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.3/test.json +136 -0
  194. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.1/craftbook.json +140 -0
  195. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.1/test.json +104 -0
  196. package/data/craftbook-templates/fa/fact-check/versions/1.0.1/craftbook.json +146 -0
  197. package/data/craftbook-templates/fa/fact-check/versions/1.0.1/test.json +110 -0
  198. package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.1/craftbook.json +74 -0
  199. package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.1/test.json +108 -0
  200. package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.1/craftbook.json +107 -0
  201. package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.1/test.json +110 -0
  202. package/data/craftbook-templates/fa/favicon-set/versions/1.0.1/craftbook.json +146 -0
  203. package/data/craftbook-templates/fa/favicon-set/versions/1.0.1/test.json +103 -0
  204. package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.1/craftbook.json +159 -0
  205. package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.1/test.json +162 -0
  206. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.1/craftbook.json +148 -0
  207. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.1/test.json +162 -0
  208. package/data/craftbook-templates/fe/feedback-widget/versions/1.0.1/craftbook.json +143 -0
  209. package/data/craftbook-templates/fe/feedback-widget/versions/1.0.1/test.json +97 -0
  210. package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.1/craftbook.json +103 -0
  211. package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.1/test.json +103 -0
  212. package/data/craftbook-templates/fo/forecast-model/versions/1.0.1/craftbook.json +105 -0
  213. package/data/craftbook-templates/fo/forecast-model/versions/1.0.1/test.json +104 -0
  214. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.1/craftbook.json +148 -0
  215. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.1/test.json +162 -0
  216. package/data/craftbook-templates/fo/form-wizard/versions/1.0.1/craftbook.json +110 -0
  217. package/data/craftbook-templates/fo/form-wizard/versions/1.0.1/test.json +110 -0
  218. package/data/craftbook-templates/ga/game-with-screens/versions/1.0.1/craftbook.json +168 -0
  219. package/data/craftbook-templates/ga/game-with-screens/versions/1.0.1/test.json +99 -0
  220. package/data/craftbook-templates/gl/glossary-build/versions/1.0.1/craftbook.json +140 -0
  221. package/data/craftbook-templates/gl/glossary-build/versions/1.0.1/test.json +110 -0
  222. package/data/craftbook-templates/gr/graphql-api/versions/1.0.2/craftbook.json +146 -0
  223. package/data/craftbook-templates/gr/graphql-api/versions/1.0.2/test.json +92 -0
  224. package/data/craftbook-templates/gr/grpc-service/versions/1.0.1/craftbook.json +147 -0
  225. package/data/craftbook-templates/gr/grpc-service/versions/1.0.1/test.json +92 -0
  226. package/data/craftbook-templates/ha/handbook-section/versions/1.0.1/craftbook.json +145 -0
  227. package/data/craftbook-templates/ha/handbook-section/versions/1.0.1/test.json +110 -0
  228. package/data/craftbook-templates/he/hero-image/versions/1.0.1/craftbook.json +154 -0
  229. package/data/craftbook-templates/he/hero-image/versions/1.0.1/test.json +103 -0
  230. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.1/craftbook.json +202 -0
  231. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.1/test.json +128 -0
  232. package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.1/craftbook.json +182 -0
  233. package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.1/test.json +92 -0
  234. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.1/craftbook.json +218 -0
  235. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.1/test.json +176 -0
  236. package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.1/craftbook.json +150 -0
  237. package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.1/test.json +99 -0
  238. package/data/craftbook-templates/ic/icon-pack/versions/1.0.1/craftbook.json +146 -0
  239. package/data/craftbook-templates/ic/icon-pack/versions/1.0.1/test.json +103 -0
  240. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.3/craftbook.json +397 -0
  241. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.3/test.json +141 -0
  242. package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.1/craftbook.json +150 -0
  243. package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.1/test.json +99 -0
  244. package/data/craftbook-templates/im/image-batch-edit/versions/1.0.1/craftbook.json +141 -0
  245. package/data/craftbook-templates/im/image-batch-edit/versions/1.0.1/test.json +103 -0
  246. package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.1/craftbook.json +140 -0
  247. package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.1/test.json +103 -0
  248. package/data/craftbook-templates/im/image-palette-extract/versions/1.0.1/craftbook.json +109 -0
  249. package/data/craftbook-templates/im/image-palette-extract/versions/1.0.1/test.json +97 -0
  250. package/data/craftbook-templates/im/image-seo-rename/versions/1.0.1/craftbook.json +105 -0
  251. package/data/craftbook-templates/im/image-seo-rename/versions/1.0.1/test.json +103 -0
  252. package/data/craftbook-templates/im/image-set-index/versions/1.2.1/craftbook.json +179 -0
  253. package/data/craftbook-templates/im/image-set-index/versions/1.2.1/test.json +180 -0
  254. package/data/craftbook-templates/in/inbox-triage/versions/1.0.1/craftbook.json +140 -0
  255. package/data/craftbook-templates/in/inbox-triage/versions/1.0.1/test.json +104 -0
  256. package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.1/craftbook.json +107 -0
  257. package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.1/test.json +110 -0
  258. package/data/craftbook-templates/in/incident-postmortem/versions/1.0.1/craftbook.json +158 -0
  259. package/data/craftbook-templates/in/incident-postmortem/versions/1.0.1/test.json +109 -0
  260. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.1/craftbook.json +153 -0
  261. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.1/test.json +121 -0
  262. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.1/craftbook.json +143 -0
  263. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.1/test.json +99 -0
  264. package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.1/craftbook.json +141 -0
  265. package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.1/test.json +110 -0
  266. package/data/craftbook-templates/in/invitation-design/versions/1.0.1/craftbook.json +128 -0
  267. package/data/craftbook-templates/in/invitation-design/versions/1.0.1/test.json +121 -0
  268. package/data/craftbook-templates/in/invoice-generator/versions/1.0.1/craftbook.json +110 -0
  269. package/data/craftbook-templates/in/invoice-generator/versions/1.0.1/test.json +97 -0
  270. package/data/craftbook-templates/in/invoice-run/versions/1.1.1/craftbook.json +199 -0
  271. package/data/craftbook-templates/in/invoice-run/versions/1.1.1/test.json +140 -0
  272. package/data/craftbook-templates/index.json +1 -1
  273. package/data/craftbook-templates/it/item-intake/versions/1.0.1/craftbook.json +140 -0
  274. package/data/craftbook-templates/it/item-intake/versions/1.0.1/test.json +145 -0
  275. package/data/craftbook-templates/ju/juice-pass/versions/1.0.1/craftbook.json +116 -0
  276. package/data/craftbook-templates/ju/juice-pass/versions/1.0.1/test.json +116 -0
  277. package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.1/craftbook.json +143 -0
  278. package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.1/test.json +110 -0
  279. package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.1/craftbook.json +148 -0
  280. package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.1/test.json +97 -0
  281. package/data/craftbook-templates/la/landing-copy/versions/1.0.1/craftbook.json +143 -0
  282. package/data/craftbook-templates/la/landing-copy/versions/1.0.1/test.json +110 -0
  283. package/data/craftbook-templates/la/landing-page/versions/1.0.1/craftbook.json +184 -0
  284. package/data/craftbook-templates/la/landing-page/versions/1.0.1/test.json +97 -0
  285. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.1/craftbook.json +140 -0
  286. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.1/test.json +104 -0
  287. package/data/craftbook-templates/li/library-package/versions/1.0.1/craftbook.json +147 -0
  288. package/data/craftbook-templates/li/library-package/versions/1.0.1/test.json +92 -0
  289. package/data/craftbook-templates/li/literature-review/versions/1.0.1/craftbook.json +146 -0
  290. package/data/craftbook-templates/li/literature-review/versions/1.0.1/test.json +110 -0
  291. package/data/craftbook-templates/li/live-browser-qa/versions/1.0.1/craftbook.json +141 -0
  292. package/data/craftbook-templates/li/live-browser-qa/versions/1.0.1/test.json +162 -0
  293. package/data/craftbook-templates/lo/localize-content/versions/1.0.1/craftbook.json +143 -0
  294. package/data/craftbook-templates/lo/localize-content/versions/1.0.1/test.json +110 -0
  295. package/data/craftbook-templates/lo/logo-set/versions/1.0.1/craftbook.json +146 -0
  296. package/data/craftbook-templates/lo/logo-set/versions/1.0.1/test.json +103 -0
  297. package/data/craftbook-templates/ma/market-scan/versions/1.0.1/craftbook.json +146 -0
  298. package/data/craftbook-templates/ma/market-scan/versions/1.0.1/test.json +210 -0
  299. package/data/craftbook-templates/me/meeting-minutes/versions/1.0.1/craftbook.json +108 -0
  300. package/data/craftbook-templates/me/meeting-minutes/versions/1.0.1/test.json +110 -0
  301. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.1/craftbook.json +107 -0
  302. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.1/test.json +110 -0
  303. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.1/craftbook.json +107 -0
  304. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.1/test.json +184 -0
  305. package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.1/craftbook.json +109 -0
  306. package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.1/test.json +103 -0
  307. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/craftbook.json +115 -0
  308. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/test.json +112 -0
  309. package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.1/craftbook.json +147 -0
  310. package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.1/test.json +92 -0
  311. package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.1/craftbook.json +117 -0
  312. package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.1/test.json +99 -0
  313. package/data/craftbook-templates/mo/mock-interview/versions/1.0.1/craftbook.json +139 -0
  314. package/data/craftbook-templates/mo/mock-interview/versions/1.0.1/test.json +110 -0
  315. package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.1/craftbook.json +156 -0
  316. package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.1/test.json +133 -0
  317. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.1/craftbook.json +158 -0
  318. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.1/test.json +197 -0
  319. package/data/craftbook-templates/mo/month-close/versions/1.0.1/craftbook.json +140 -0
  320. package/data/craftbook-templates/mo/month-close/versions/1.0.1/test.json +97 -0
  321. package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.1/craftbook.json +140 -0
  322. package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.1/test.json +117 -0
  323. package/data/craftbook-templates/mo/moodboard/versions/1.0.1/craftbook.json +109 -0
  324. package/data/craftbook-templates/mo/moodboard/versions/1.0.1/test.json +103 -0
  325. package/data/craftbook-templates/mo/morning-brief/versions/1.0.1/craftbook.json +107 -0
  326. package/data/craftbook-templates/mo/morning-brief/versions/1.0.1/test.json +225 -0
  327. package/data/craftbook-templates/mo/morning-report/versions/1.0.1/craftbook.json +152 -0
  328. package/data/craftbook-templates/mo/morning-report/versions/1.0.1/test.json +250 -0
  329. package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.1/craftbook.json +101 -0
  330. package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.1/test.json +103 -0
  331. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.1/craftbook.json +181 -0
  332. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.1/test.json +86 -0
  333. package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.1/craftbook.json +143 -0
  334. package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.1/test.json +110 -0
  335. package/data/craftbook-templates/no/notification-router/versions/1.0.1/craftbook.json +158 -0
  336. package/data/craftbook-templates/no/notification-router/versions/1.0.1/test.json +162 -0
  337. package/data/craftbook-templates/oc/ocr-extract/versions/1.0.1/craftbook.json +137 -0
  338. package/data/craftbook-templates/oc/ocr-extract/versions/1.0.1/test.json +103 -0
  339. package/data/craftbook-templates/of/offer-compare/versions/1.0.1/craftbook.json +106 -0
  340. package/data/craftbook-templates/of/offer-compare/versions/1.0.1/test.json +110 -0
  341. package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.1/craftbook.json +107 -0
  342. package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.1/test.json +110 -0
  343. package/data/craftbook-templates/on/onboarding-flow/versions/1.0.1/craftbook.json +143 -0
  344. package/data/craftbook-templates/on/onboarding-flow/versions/1.0.1/test.json +97 -0
  345. package/data/craftbook-templates/on/oncall-handoff/versions/1.0.1/craftbook.json +107 -0
  346. package/data/craftbook-templates/on/oncall-handoff/versions/1.0.1/test.json +110 -0
  347. package/data/craftbook-templates/on/one-pager/versions/1.0.1/craftbook.json +143 -0
  348. package/data/craftbook-templates/on/one-pager/versions/1.0.1/test.json +110 -0
  349. package/data/craftbook-templates/op/ops-runbook/versions/1.0.1/craftbook.json +112 -0
  350. package/data/craftbook-templates/op/ops-runbook/versions/1.0.1/test.json +104 -0
  351. package/data/craftbook-templates/pa/page-spread/versions/1.0.1/craftbook.json +82 -0
  352. package/data/craftbook-templates/pa/page-spread/versions/1.0.1/test.json +132 -0
  353. package/data/craftbook-templates/pa/parser-grammar/versions/1.0.1/craftbook.json +147 -0
  354. package/data/craftbook-templates/pa/parser-grammar/versions/1.0.1/test.json +92 -0
  355. package/data/craftbook-templates/pe/perf-audit/versions/1.0.1/craftbook.json +141 -0
  356. package/data/craftbook-templates/pe/perf-audit/versions/1.0.1/test.json +162 -0
  357. package/data/craftbook-templates/pe/perf-optimization/versions/1.0.1/craftbook.json +148 -0
  358. package/data/craftbook-templates/pe/perf-optimization/versions/1.0.1/test.json +92 -0
  359. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.1/craftbook.json +140 -0
  360. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.1/test.json +122 -0
  361. package/data/craftbook-templates/ph/photo-cull/versions/1.0.1/craftbook.json +140 -0
  362. package/data/craftbook-templates/ph/photo-cull/versions/1.0.1/test.json +103 -0
  363. package/data/craftbook-templates/ph/physics-toy/versions/1.0.1/craftbook.json +110 -0
  364. package/data/craftbook-templates/ph/physics-toy/versions/1.0.1/test.json +99 -0
  365. package/data/craftbook-templates/pi/pitch-deck/versions/1.0.1/craftbook.json +141 -0
  366. package/data/craftbook-templates/pi/pitch-deck/versions/1.0.1/test.json +97 -0
  367. package/data/craftbook-templates/pl/playtest-report/versions/1.0.1/craftbook.json +140 -0
  368. package/data/craftbook-templates/pl/playtest-report/versions/1.0.1/test.json +111 -0
  369. package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.1/craftbook.json +140 -0
  370. package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.1/test.json +103 -0
  371. package/data/craftbook-templates/po/portfolio-site/versions/1.0.1/craftbook.json +151 -0
  372. package/data/craftbook-templates/po/portfolio-site/versions/1.0.1/test.json +97 -0
  373. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.0/craftbook.json +257 -0
  374. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.0/test.json +228 -0
  375. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.1/craftbook.json +347 -0
  376. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.1/test.json +228 -0
  377. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.1/craftbook.json +141 -0
  378. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.1/test.json +110 -0
  379. package/data/craftbook-templates/pr/practice-exam/versions/1.0.1/craftbook.json +159 -0
  380. package/data/craftbook-templates/pr/practice-exam/versions/1.0.1/test.json +117 -0
  381. package/data/craftbook-templates/pr/practice-session/versions/1.0.1/craftbook.json +115 -0
  382. package/data/craftbook-templates/pr/practice-session/versions/1.0.1/test.json +114 -0
  383. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.1/craftbook.json +140 -0
  384. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.1/test.json +97 -0
  385. package/data/craftbook-templates/pr/press-release/versions/1.0.1/craftbook.json +143 -0
  386. package/data/craftbook-templates/pr/press-release/versions/1.0.1/test.json +356 -0
  387. package/data/craftbook-templates/pr/price-tracker/versions/1.0.1/craftbook.json +109 -0
  388. package/data/craftbook-templates/pr/price-tracker/versions/1.0.1/test.json +150 -0
  389. package/data/craftbook-templates/pr/pricing-page/versions/1.0.1/craftbook.json +184 -0
  390. package/data/craftbook-templates/pr/pricing-page/versions/1.0.1/test.json +97 -0
  391. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.1/craftbook.json +105 -0
  392. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.1/test.json +110 -0
  393. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.1/craftbook.json +143 -0
  394. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.1/test.json +110 -0
  395. package/data/craftbook-templates/pu/pull-request-review/manifest.json +3 -1
  396. package/data/craftbook-templates/pu/pull-request-review/versions/1.4.1/craftbook.json +180 -0
  397. package/data/craftbook-templates/pu/pull-request-review/versions/1.4.1/test.json +123 -0
  398. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.1/craftbook.json +121 -0
  399. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.1/test.json +123 -0
  400. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.1/craftbook.json +155 -0
  401. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.1/test.json +97 -0
  402. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.1/craftbook.json +140 -0
  403. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.1/test.json +113 -0
  404. package/data/craftbook-templates/re/reading-list/versions/1.0.1/craftbook.json +107 -0
  405. package/data/craftbook-templates/re/reading-list/versions/1.0.1/test.json +110 -0
  406. package/data/craftbook-templates/re/receipt-intake/versions/1.0.1/craftbook.json +140 -0
  407. package/data/craftbook-templates/re/receipt-intake/versions/1.0.1/test.json +149 -0
  408. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.1/craftbook.json +140 -0
  409. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.1/test.json +104 -0
  410. package/data/craftbook-templates/re/recipe-capture/versions/1.0.1/craftbook.json +140 -0
  411. package/data/craftbook-templates/re/recipe-capture/versions/1.0.1/test.json +128 -0
  412. package/data/craftbook-templates/re/record-a-relative/versions/1.0.1/craftbook.json +115 -0
  413. package/data/craftbook-templates/re/record-a-relative/versions/1.0.1/test.json +110 -0
  414. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.1/craftbook.json +148 -0
  415. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.1/test.json +104 -0
  416. package/data/craftbook-templates/re/refactor-module/versions/1.0.2/craftbook.json +148 -0
  417. package/data/craftbook-templates/re/refactor-module/versions/1.0.2/test.json +92 -0
  418. package/data/craftbook-templates/re/regex-builder/versions/1.0.1/craftbook.json +147 -0
  419. package/data/craftbook-templates/re/regex-builder/versions/1.0.1/test.json +92 -0
  420. package/data/craftbook-templates/re/release-announcement/versions/1.0.1/craftbook.json +159 -0
  421. package/data/craftbook-templates/re/release-announcement/versions/1.0.1/test.json +202 -0
  422. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.1/craftbook.json +214 -0
  423. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.1/test.json +138 -0
  424. package/data/craftbook-templates/re/release-notes/versions/1.0.1/craftbook.json +159 -0
  425. package/data/craftbook-templates/re/release-notes/versions/1.0.1/test.json +111 -0
  426. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.1/craftbook.json +147 -0
  427. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.1/test.json +162 -0
  428. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.1/craftbook.json +141 -0
  429. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.1/test.json +110 -0
  430. package/data/craftbook-templates/re/reliability-review/versions/1.0.1/craftbook.json +153 -0
  431. package/data/craftbook-templates/re/reliability-review/versions/1.0.1/test.json +112 -0
  432. package/data/craftbook-templates/re/report-pdf/versions/1.1.1/craftbook.json +173 -0
  433. package/data/craftbook-templates/re/report-pdf/versions/1.1.1/test.json +98 -0
  434. package/data/craftbook-templates/re/research-report/versions/1.0.1/craftbook.json +146 -0
  435. package/data/craftbook-templates/re/research-report/versions/1.0.1/test.json +110 -0
  436. package/data/craftbook-templates/re/research-to-document/versions/1.2.1/craftbook.json +216 -0
  437. package/data/craftbook-templates/re/research-to-document/versions/1.2.1/test.json +240 -0
  438. package/data/craftbook-templates/re/rest-api/versions/1.0.2/craftbook.json +147 -0
  439. package/data/craftbook-templates/re/rest-api/versions/1.0.2/test.json +387 -0
  440. package/data/craftbook-templates/re/resume-cv/versions/1.0.1/craftbook.json +143 -0
  441. package/data/craftbook-templates/re/resume-cv/versions/1.0.1/test.json +97 -0
  442. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.1/craftbook.json +159 -0
  443. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.1/test.json +162 -0
  444. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.3/craftbook.json +413 -0
  445. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.3/test.json +154 -0
  446. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.2/craftbook.json +167 -0
  447. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.2/test.json +137 -0
  448. package/data/craftbook-templates/ru/runbook/versions/1.0.1/craftbook.json +145 -0
  449. package/data/craftbook-templates/ru/runbook/versions/1.0.1/test.json +118 -0
  450. package/data/craftbook-templates/sc/schema-migration/versions/1.0.1/craftbook.json +144 -0
  451. package/data/craftbook-templates/sc/schema-migration/versions/1.0.1/test.json +103 -0
  452. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.2/craftbook.json +140 -0
  453. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.2/test.json +162 -0
  454. package/data/craftbook-templates/sc/script-automation/versions/1.0.1/craftbook.json +148 -0
  455. package/data/craftbook-templates/sc/script-automation/versions/1.0.1/test.json +162 -0
  456. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.2/craftbook.json +147 -0
  457. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.2/test.json +90 -0
  458. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.1/craftbook.json +140 -0
  459. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.1/test.json +110 -0
  460. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.3/craftbook.json +440 -0
  461. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.3/test.json +154 -0
  462. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.1/craftbook.json +105 -0
  463. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.1/test.json +97 -0
  464. package/data/craftbook-templates/so/social-thread/versions/1.0.1/craftbook.json +107 -0
  465. package/data/craftbook-templates/so/social-thread/versions/1.0.1/test.json +110 -0
  466. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.1/craftbook.json +140 -0
  467. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.1/test.json +158 -0
  468. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.1/craftbook.json +143 -0
  469. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.1/test.json +97 -0
  470. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.3/craftbook.json +436 -0
  471. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.3/test.json +162 -0
  472. package/data/craftbook-templates/sp/spec-doc/versions/1.0.1/craftbook.json +143 -0
  473. package/data/craftbook-templates/sp/spec-doc/versions/1.0.1/test.json +104 -0
  474. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.1/craftbook.json +109 -0
  475. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.1/test.json +160 -0
  476. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.1/craftbook.json +137 -0
  477. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.1/test.json +103 -0
  478. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.1/craftbook.json +109 -0
  479. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.1/test.json +104 -0
  480. package/data/craftbook-templates/st/standup-summary/versions/1.0.1/craftbook.json +107 -0
  481. package/data/craftbook-templates/st/standup-summary/versions/1.0.1/test.json +110 -0
  482. package/data/craftbook-templates/st/state-machine/versions/1.0.1/craftbook.json +147 -0
  483. package/data/craftbook-templates/st/state-machine/versions/1.0.1/test.json +92 -0
  484. package/data/craftbook-templates/st/status-report/versions/1.0.1/craftbook.json +146 -0
  485. package/data/craftbook-templates/st/status-report/versions/1.0.1/test.json +110 -0
  486. package/data/craftbook-templates/su/subscription-audit/versions/1.0.1/craftbook.json +140 -0
  487. package/data/craftbook-templates/su/subscription-audit/versions/1.0.1/test.json +104 -0
  488. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.1/craftbook.json +128 -0
  489. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.1/test.json +103 -0
  490. package/data/craftbook-templates/su/summarize-long/versions/1.0.1/craftbook.json +107 -0
  491. package/data/craftbook-templates/su/summarize-long/versions/1.0.1/test.json +110 -0
  492. package/data/craftbook-templates/su/survey-analysis/versions/1.0.1/craftbook.json +141 -0
  493. package/data/craftbook-templates/su/survey-analysis/versions/1.0.1/test.json +104 -0
  494. package/data/craftbook-templates/sv/svg-animation/versions/1.0.1/craftbook.json +110 -0
  495. package/data/craftbook-templates/sv/svg-animation/versions/1.0.1/test.json +97 -0
  496. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.1/craftbook.json +114 -0
  497. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.1/test.json +97 -0
  498. package/data/craftbook-templates/te/technical-documentation/versions/2.0.3/craftbook.json +408 -0
  499. package/data/craftbook-templates/te/technical-documentation/versions/2.0.3/test.json +174 -0
  500. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.1/craftbook.json +141 -0
  501. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.1/test.json +113 -0
  502. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.1/craftbook.json +120 -0
  503. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.1/test.json +92 -0
  504. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.1/craftbook.json +143 -0
  505. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.1/test.json +141 -0
  506. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.1/craftbook.json +143 -0
  507. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.1/test.json +142 -0
  508. package/data/craftbook-templates/th/threat-model/versions/1.0.1/craftbook.json +141 -0
  509. package/data/craftbook-templates/th/threat-model/versions/1.0.1/test.json +110 -0
  510. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.1/craftbook.json +103 -0
  511. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.1/test.json +103 -0
  512. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.1/craftbook.json +160 -0
  513. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.1/test.json +159 -0
  514. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.1/craftbook.json +107 -0
  515. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.1/test.json +110 -0
  516. package/data/craftbook-templates/to/topic-explainer/versions/1.0.1/craftbook.json +140 -0
  517. package/data/craftbook-templates/to/topic-explainer/versions/1.0.1/test.json +110 -0
  518. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.1/craftbook.json +115 -0
  519. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.1/test.json +98 -0
  520. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.1/craftbook.json +107 -0
  521. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.1/test.json +103 -0
  522. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.1/craftbook.json +171 -0
  523. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.1/test.json +151 -0
  524. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.1/craftbook.json +148 -0
  525. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.1/test.json +92 -0
  526. package/data/craftbook-templates/ve/version-bump/versions/1.0.1/craftbook.json +155 -0
  527. package/data/craftbook-templates/ve/version-bump/versions/1.0.1/test.json +92 -0
  528. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.1/craftbook.json +109 -0
  529. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.1/test.json +103 -0
  530. package/data/craftbook-templates/vi/visit-prep/versions/1.0.1/craftbook.json +140 -0
  531. package/data/craftbook-templates/vi/visit-prep/versions/1.0.1/test.json +97 -0
  532. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.1/craftbook.json +107 -0
  533. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.1/test.json +103 -0
  534. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.1/craftbook.json +154 -0
  535. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.1/test.json +124 -0
  536. package/data/craftbook-templates/we/web-app-crud/versions/1.0.1/craftbook.json +143 -0
  537. package/data/craftbook-templates/we/web-app-crud/versions/1.0.1/test.json +97 -0
  538. package/data/craftbook-templates/we/web-component/versions/1.0.1/craftbook.json +110 -0
  539. package/data/craftbook-templates/we/web-component/versions/1.0.1/test.json +97 -0
  540. package/data/craftbook-templates/we/webhook-handler/versions/1.0.1/craftbook.json +147 -0
  541. package/data/craftbook-templates/we/webhook-handler/versions/1.0.1/test.json +162 -0
  542. package/data/craftbook-templates/we/week-plan/versions/1.0.1/craftbook.json +140 -0
  543. package/data/craftbook-templates/we/week-plan/versions/1.0.1/test.json +255 -0
  544. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.1/craftbook.json +140 -0
  545. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.1/test.json +97 -0
  546. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.1/craftbook.json +106 -0
  547. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.1/test.json +104 -0
  548. package/data/craftbook-templates/we/weekly-review/versions/1.0.1/craftbook.json +107 -0
  549. package/data/craftbook-templates/we/weekly-review/versions/1.0.1/test.json +110 -0
  550. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.1/craftbook.json +140 -0
  551. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.1/test.json +138 -0
  552. package/data/craftbook-templates/wh/whitepaper/versions/1.0.1/craftbook.json +141 -0
  553. package/data/craftbook-templates/wh/whitepaper/versions/1.0.1/test.json +110 -0
  554. package/data/craftbook-templates/ye/year-in-review/versions/1.0.1/craftbook.json +115 -0
  555. package/data/craftbook-templates/ye/year-in-review/versions/1.0.1/test.json +145 -0
  556. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.1/craftbook.json +134 -0
  557. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.1/test.json +103 -0
  558. package/package.json +1 -1
@@ -0,0 +1,140 @@
1
+ {
2
+ "id": "receipt-ocr-ledger",
3
+ "name": "Receipts to Expense Ledger",
4
+ "description": "Turn a folder of receipt photos/PDFs into a clean expense ledger: OCR each receipt, extract vendor, date, line items, tax, and total, assign an expense category, and reconcile that each extracted total matches its line items. Locks the per-receipt field schema, the category set, and the math/reconciliation rules FIRST, then OCRs and extracts each receipt into rows, then verifies every receipt was processed, totals reconcile, currencies/dates are normalized, and low-confidence reads are flagged for review. Defining the schema and the total-equals-line-items check before extraction is what keeps an expense ledger trustworthy for reimbursement or tax.\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 ledger (planner) — per-receipt schema, categories, reconciliation rules → gated on artifact `notes/scope.md` (markdown-notes)\n2. OCR and extract (developer) — read each receipt, extract fields, categorize, reconcile → gated on `ledger.json` (json)\n3. Verify the ledger (reviewer) — coverage, reconciliation, normalization, review flags → gated on artifact `notes/verify.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
+ "scan my receipts",
8
+ "receipts to a spreadsheet",
9
+ "extract receipt totals",
10
+ "expense report from receipts",
11
+ "OCR receipts into a ledger"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "scope",
16
+ "name": "Scope the ledger",
17
+ "description": "per-receipt schema, categories, reconciliation rules",
18
+ "prompt": "Define the ledger contract before reading receipts. Step 1: identify the receipts folder and the file types (jpg, png, pdf). Step 2: define the per-receipt schema (file, vendor, date, currency, line items[{desc, amount}], subtotal, tax, total, category, confidence, needs_review). Step 3: define the closed expense-category set (e.g. Meals, Travel, Supplies, Software, Other) — every receipt gets exactly one. Step 4: define the math/reconciliation rule — sum(line items) + tax should equal total within a small tolerance; a mismatch sets needs_review. Step 5: define normalization (dates → ISO, amounts numeric to two decimals, a single output currency or a currency column) and the confidence threshold below which a row is flagged. Step 6: write an acceptance-criteria checklist ('every receipt file produces a row', 'amounts numeric and dates ISO', 'total reconciles to line items + tax within tolerance else flagged', 'category is in-set', 'low-confidence reads flagged for review', 'a grand total across receipts is reported'). Call write_task_note with schema + categories + rules + checklist and write notes/scope.md. No OCR 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.",
19
+ "suggestedRole": "planner",
20
+ "advanceWhen": {
21
+ "file": "notes/scope.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/scope.md",
32
+ "bytes": 120,
33
+ "artifact": true
34
+ },
35
+ {
36
+ "kind": "sniff",
37
+ "file": "notes/scope.md",
38
+ "sniff": "nonempty",
39
+ "artifact": true
40
+ }
41
+ ],
42
+ "onReject": "scope",
43
+ "maxAttempts": 3
44
+ },
45
+ "next": "extract"
46
+ },
47
+ {
48
+ "id": "extract",
49
+ "name": "OCR and extract",
50
+ "description": "read each receipt, extract fields, categorize, reconcile",
51
+ "prompt": "Process every receipt into a ledger row to the locked schema. Step 1: list the folder and, for each receipt, use the available OCR/vision capability to read the text. Step 2: extract vendor, date, line items, subtotal, tax, and total; normalize dates to ISO and amounts to numbers. Step 3: assign exactly one in-set category from the vendor/items. Step 4: reconcile — check sum(line items)+tax ≈ total within tolerance; on mismatch or low OCR confidence, set needs_review with a note rather than silently trusting it. Step 5: write all rows to the output file (JSON), confirm it parses, and compute a grand total across receipts. Do not skip any receipt; if one is unreadable, still emit a row flagged needs_review. Call write_task_note with the output path, the receipt count, and how many are flagged.",
52
+ "suggestedRole": "developer",
53
+ "advanceWhen": {
54
+ "file": "ledger.json",
55
+ "minBytes": 1,
56
+ "sniff": "json-valid"
57
+ },
58
+ "gate": {
59
+ "at": "completion",
60
+ "checks": [
61
+ {
62
+ "kind": "minBytes",
63
+ "file": "ledger.json",
64
+ "bytes": 2
65
+ }
66
+ ],
67
+ "scripts": [
68
+ {
69
+ "name": "checkJsonValid",
70
+ "scope": "standard",
71
+ "inputs": {
72
+ "file": "ledger.json"
73
+ }
74
+ }
75
+ ],
76
+ "onReject": "extract",
77
+ "maxAttempts": 3
78
+ },
79
+ "next": "verify"
80
+ },
81
+ {
82
+ "id": "verify",
83
+ "name": "Verify the ledger",
84
+ "description": "coverage, reconciliation, normalization, review flags",
85
+ "prompt": "Verify the ledger against scope. Step 1: confirm the file parses and there is one row per receipt file in the folder — none skipped. Step 2: confirm amounts are numeric to two decimals and dates are ISO. Step 3: confirm reconciliation ran — rows where line items + tax do not match the total within tolerance are flagged needs_review, and clean rows actually balance (re-check 3 by hand). Step 4: confirm categories are all in-set and low-confidence/unreadable receipts are flagged rather than silently accepted. Step 5: confirm the grand total equals the sum of the row totals. Write PASS/FAIL per criterion to notes/verify.md and task notes; on failure, name the receipts and loop back to extract.\n\nThe deliverable `notes/verify.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.",
86
+ "suggestedRole": "reviewer",
87
+ "advanceWhen": {
88
+ "file": "notes/verify.md",
89
+ "minBytes": 1,
90
+ "sniff": "nonempty",
91
+ "artifact": true
92
+ },
93
+ "gate": {
94
+ "at": "completion",
95
+ "checks": [
96
+ {
97
+ "kind": "minBytes",
98
+ "file": "ledger.json",
99
+ "bytes": 2
100
+ }
101
+ ],
102
+ "scripts": [
103
+ {
104
+ "name": "checkJsonValid",
105
+ "scope": "standard",
106
+ "inputs": {
107
+ "file": "ledger.json"
108
+ }
109
+ }
110
+ ],
111
+ "onReject": "verify",
112
+ "maxAttempts": 4
113
+ },
114
+ "next": "evaluate"
115
+ },
116
+ {
117
+ "id": "evaluate",
118
+ "name": "Evaluate",
119
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
120
+ "prompt": "Open ledger.json and verify every criterion from notes/scope.md: one row per receipt file (none skipped, unreadable ones flagged), amounts numeric to two decimals and dates ISO, reconciliation flags rows where line items + tax do not match the total within tolerance while clean rows balance (re-check 3 by hand), categories all in-set, low-confidence reads flagged, and the grand total equals the sum of row totals. Write PASS/FAIL per criterion; on any failure, name the receipts and loop back to extract.\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: \"extract\" })` 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.",
121
+ "suggestedRole": "reviewer",
122
+ "consumes": [
123
+ {
124
+ "file": "ledger.json"
125
+ }
126
+ ],
127
+ "next": "extract"
128
+ },
129
+ {
130
+ "id": "finish",
131
+ "name": "Finish",
132
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
133
+ "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.",
134
+ "suggestedRole": "developer",
135
+ "terminal": true
136
+ }
137
+ ],
138
+ "version": "1.0.1",
139
+ "releasedAt": "2026-08-14T00:00:00Z"
140
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Receipts to Expense Ledger smoke eval",
4
+ "objective": "Self-contained smoke eval for the Receipts to Expense Ledger craftbook using the data generic harness.",
5
+ "tags": [
6
+ "data"
7
+ ],
8
+ "prompt": "I dropped our numbers in source/records.csv. Can you look at the data, analyze it, and put togehter some results in analysis.md?",
9
+ "setup": {
10
+ "projectName": "Receipts to Expense Ledger Eval",
11
+ "about": "Self-contained eval project for receipt-ocr-ledger. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/analysis.md.",
12
+ "missionObjectives": "Use the Receipts to Expense Ledger craftbook/template, read the seeded local fixtures, and write analysis.md without network calls, real credentials, or live services.",
13
+ "files": [
14
+ {
15
+ "path": "source/brief.md",
16
+ "content": "# Receipts to Expense Ledger 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: receipt-ocr-ledger - Receipts to Expense Ledger.\n"
17
+ },
18
+ {
19
+ "path": "source/records.csv",
20
+ "content": "customer,region,orders,revenue_usd,churn_risk\nAster,North,12,1440,low\nBoreal,South,8,720,medium\nCedar,West,15,2100,high\nDune,North,5,500,low\n"
21
+ }
22
+ ],
23
+ "worker": {
24
+ "name": "Jules",
25
+ "role": "Data Analyst"
26
+ }
27
+ },
28
+ "mocks": [],
29
+ "success": {
30
+ "summary": "analysis.md is a seeded-data analysis with deterministic computed facts.",
31
+ "deliverables": [
32
+ {
33
+ "path": "analysis.md",
34
+ "kind": "markdown-report",
35
+ "minBytes": 900,
36
+ "checks": [
37
+ {
38
+ "kind": "contains",
39
+ "file": "analysis.md",
40
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
41
+ "flags": "i"
42
+ },
43
+ {
44
+ "kind": "contains",
45
+ "file": "analysis.md",
46
+ "pattern": "40\\b",
47
+ "flags": "i",
48
+ "label": "include total orders of 40"
49
+ },
50
+ {
51
+ "kind": "contains",
52
+ "file": "analysis.md",
53
+ "pattern": "\\$?4,?760\\b",
54
+ "flags": "i",
55
+ "label": "include total revenue of 4760"
56
+ },
57
+ {
58
+ "kind": "contains",
59
+ "file": "analysis.md",
60
+ "pattern": "Cedar",
61
+ "flags": "i",
62
+ "label": "identify Cedar as top revenue and high risk"
63
+ },
64
+ {
65
+ "kind": "contains",
66
+ "file": "analysis.md",
67
+ "pattern": "high",
68
+ "flags": "i",
69
+ "label": "include churn-risk finding"
70
+ }
71
+ ]
72
+ }
73
+ ]
74
+ },
75
+ "rubric": {
76
+ "artifact": {
77
+ "path": "analysis.md",
78
+ "kind": "markdown"
79
+ },
80
+ "axes": [
81
+ {
82
+ "name": "accuracy",
83
+ "description": "Computed figures are correct against the seeded records."
84
+ },
85
+ {
86
+ "name": "grounding",
87
+ "description": "Every claim traces to the seeded data — nothing invented."
88
+ },
89
+ {
90
+ "name": "structure",
91
+ "description": "Tables and sections make the analysis checkable at a glance."
92
+ },
93
+ {
94
+ "name": "actionability",
95
+ "description": "Recommendations follow from the findings and are concretely doable."
96
+ }
97
+ ]
98
+ },
99
+ "qualityFocus": [
100
+ "seeded data reading",
101
+ "computed facts",
102
+ "recommendation grounding"
103
+ ]
104
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "id": "recipe-capture",
3
+ "name": "Capture a Recipe Card",
4
+ "description": "Rescue a handwritten recipe card without sanding off its soul: transcribe the original faithfully — spelling quirks, margin notes, and all — standardize quantities in a separate block alongside (never instead of) the original wording, and pin the provenance note: whose card, whose kitchen, what they always changed. Locks the capture rules FIRST, then captures each card into the book, then logs what needs a test-cook and what to ask the family. Use for capturing recipe cards, 'get oma's cards into the book', preserving family recipes, and recipe transcription.\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 capture (kitchen-master) — card intake notes read, capture rules locked → gated on artifact `notes/scope.md` (markdown-notes)\n2. Capture the cards (archivist) — one faithful recipe file per card, recorded in the book → gated on artifact `notes/capture.md` (markdown-notes)\n3. Write the capture log (copywriter) — what went in, what needs a test-cook, questions for the family → gated on artifact `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": "scope",
6
+ "triggers": [
7
+ "capture a recipe card",
8
+ "get this recipe into the book",
9
+ "transcribe oma's card",
10
+ "add a family recipe",
11
+ "preserve this recipe"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "scope",
16
+ "name": "Scope the capture",
17
+ "description": "card intake notes read, capture rules locked",
18
+ "prompt": "Define the capture before transcribing a word. Step 1: read the card intake notes waiting in inbox/ and the recipe book's store (recipes.json) — what is already in the book and how entries are shaped. Step 2: lock the capture rules — the original wording is preserved exactly, spelling quirks, margin notes and all; every recipe carries its provenance (whose card, whose kitchen, what they always changed); the standardized ingredients-and-steps block sits alongside the original text, clearly separated, never replacing it; anything unreadable becomes a question, not a guess. Step 3: write an acceptance-criteria checklist ('every card captured as its own recipe file under recipes/', 'original text verbatim with margin notes kept and marked', 'provenance line on every recipe', 'standardized block separate from the original', 'each captured recipe recorded in the book's store'). Call write_task_note with the card count + rules + checklist and write notes/scope.md.\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.",
19
+ "suggestedRole": "kitchen-master",
20
+ "advanceWhen": {
21
+ "file": "notes/scope.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/scope.md",
32
+ "bytes": 120,
33
+ "artifact": true
34
+ },
35
+ {
36
+ "kind": "sniff",
37
+ "file": "notes/scope.md",
38
+ "sniff": "nonempty",
39
+ "artifact": true
40
+ }
41
+ ],
42
+ "onReject": "scope",
43
+ "maxAttempts": 3
44
+ },
45
+ "next": "capture"
46
+ },
47
+ {
48
+ "id": "capture",
49
+ "name": "Capture the cards",
50
+ "description": "one faithful recipe file per card, recorded in the book",
51
+ "prompt": "Capture each card against the locked rules. Step 1: for every card note in inbox/, write a recipe file under recipes/ — a title, the provenance line, the original text transcribed faithfully (margin notes included and marked as margin notes), and then a clearly separated standardized block with an Ingredients list and numbered steps. Step 2: record each captured recipe in the book's store through the project's recipe capabilities — title, provenance, and the file it lives in. Step 3: where the card is ambiguous or unreadable, keep the original as written and add the question inline rather than smoothing it over. Step 4: write a per-card capture log to notes/capture.md — what was captured, what was preserved as-is, what needs asking. Call write_task_note with the captured count.\n\nThe deliverable `notes/capture.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.",
52
+ "suggestedRole": "archivist",
53
+ "advanceWhen": {
54
+ "file": "notes/capture.md",
55
+ "minBytes": 1,
56
+ "sniff": "nonempty",
57
+ "artifact": true
58
+ },
59
+ "gate": {
60
+ "at": "completion",
61
+ "checks": [
62
+ {
63
+ "kind": "minBytes",
64
+ "file": "notes/capture.md",
65
+ "bytes": 120,
66
+ "artifact": true
67
+ },
68
+ {
69
+ "kind": "sniff",
70
+ "file": "notes/capture.md",
71
+ "sniff": "nonempty",
72
+ "artifact": true
73
+ }
74
+ ],
75
+ "onReject": "capture",
76
+ "maxAttempts": 3
77
+ },
78
+ "next": "report"
79
+ },
80
+ {
81
+ "id": "report",
82
+ "name": "Write the capture log",
83
+ "description": "what went in, what needs a test-cook, questions for the family",
84
+ "prompt": "Write the capture log for the family from your notes. Step 1: list what went into the book this session — each recipe with whose card it was. Step 2: name what needs a test-cook before it counts as verified, and why (an ambiguous quantity, a step that assumes the cook's hands already knew). Step 3: list the questions for the family — margin notes worth explaining, names and dates worth pinning down — so the next phone call captures them. Step 4: keep it warm; this is family history in food form. Write report.md and call write_task_note with the captured count and the top question.\n\nThe deliverable `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.",
85
+ "suggestedRole": "copywriter",
86
+ "advanceWhen": {
87
+ "file": "report.md",
88
+ "minBytes": 1,
89
+ "sniff": "nonempty",
90
+ "artifact": true
91
+ },
92
+ "gate": {
93
+ "at": "completion",
94
+ "checks": [
95
+ {
96
+ "kind": "minBytes",
97
+ "file": "report.md",
98
+ "bytes": 800,
99
+ "artifact": true
100
+ },
101
+ {
102
+ "kind": "contains",
103
+ "file": "report.md",
104
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
105
+ "flags": "i",
106
+ "label": "at least one markdown heading",
107
+ "artifact": true
108
+ }
109
+ ],
110
+ "onReject": "report",
111
+ "maxAttempts": 4
112
+ },
113
+ "next": "evaluate"
114
+ },
115
+ {
116
+ "id": "evaluate",
117
+ "name": "Evaluate",
118
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
119
+ "prompt": "Open report.md, notes/capture.md, and the recipe files under recipes/ and verify every criterion from notes/scope.md: every inbox card became its own recipe file, the original wording is verbatim (spot-check phrases against the card notes — no silent corrections), margin notes survived and are marked as such, every recipe carries a provenance line, the standardized block is present and separate from the original, and each captured recipe is recorded in the book's store. Write PASS/FAIL per criterion; on any failure, name the gap and loop back to capture.\n\nThe deliverable lives in the project's artifacts drawer — open `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: \"capture\" })` 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.",
120
+ "suggestedRole": "reviewer",
121
+ "consumes": [
122
+ {
123
+ "file": "report.md",
124
+ "artifact": true
125
+ }
126
+ ],
127
+ "next": "capture"
128
+ },
129
+ {
130
+ "id": "finish",
131
+ "name": "Finish",
132
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
133
+ "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.",
134
+ "suggestedRole": "developer",
135
+ "terminal": true
136
+ }
137
+ ],
138
+ "version": "1.0.1",
139
+ "releasedAt": "2026-08-14T00:00:00Z"
140
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Capture a Recipe Card smoke eval",
4
+ "objective": "Task-specific eval for the Capture a Recipe Card craftbook: two pre-extracted card scans become faithful recipe files with provenance and a separate standardized block, recorded in the book's store.",
5
+ "tags": [
6
+ "corpus"
7
+ ],
8
+ "prompt": "scanned two of omas cards — the transcriptions are in inbox/card-1.txt and inbox/card-2.txt. can you get them into the book propperly?",
9
+ "setup": {
10
+ "projectName": "Family Recipe Book — Card Capture Eval",
11
+ "about": "Self-contained eval project for recipe-capture. The card photos have already been pre-extracted into plain-text scan notes under inbox/ (the text as written, plus margin notes). Captured recipes go under recipes/ and are recorded in recipes.json; the capture log goes to report.md.",
12
+ "missionObjectives": "Use the Capture a Recipe Card craftbook/template, work only from the seeded card notes, and finish with the recipe files, an updated recipes.json, and report.md — no network calls, real credentials, or live services.",
13
+ "files": [
14
+ {
15
+ "path": "inbox/card-1.txt",
16
+ "content": "CARD SCAN NOTE (pre-extracted from photo card-1.jpg)\n\nTitle on card: Appelkoek\nHandwriting: Oma Riet's, blue ink, grease spot lower right corner\n\nText as written:\n'2 kopjes flour, 150 g butter (cold!), 3/4 kopje brown sugar, 2 apples - the sour ones, 1 tsp cinnamon, pinch of salt. Rub butter into flour. Sugar, then apples in thin slices. Oven: hot, until it smells right, about 40 min.'\n\nMargin note, pencil, different hand: 'she always used twice the butter'\n"
17
+ },
18
+ {
19
+ "path": "inbox/card-2.txt",
20
+ "content": "CARD SCAN NOTE (pre-extracted from photo card-2.jpg)\n\nTitle on card: Speculaas\nHandwriting: Oma Riet's, black ink, top corner torn\n\nText as written:\n'250 g flour, 125 g cold butter, 100 g dark brown sugar, 2 tbsp speculaaskruiden, 3 tbsp milk, pinch salt. Knead, rest overnight (cold). Roll thin. Oven 160 for 20-25 min.'\n\nMargin note, same hand: 'St Nicolaas - double batch'\n"
21
+ },
22
+ {
23
+ "path": "recipes.json",
24
+ "content": "[]\n"
25
+ }
26
+ ],
27
+ "worker": {
28
+ "name": "Bep",
29
+ "role": "Archivist"
30
+ }
31
+ },
32
+ "mocks": [],
33
+ "success": {
34
+ "summary": "Both cards become recipe files under recipes/ with provenance kept beside the food, the store records each capture, and the log flags what needs a test-cook.",
35
+ "deliverables": [
36
+ {
37
+ "path": "report.md",
38
+ "kind": "markdown-report",
39
+ "minBytes": 500,
40
+ "checks": [
41
+ {
42
+ "kind": "contains",
43
+ "file": "report.md",
44
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
45
+ "flags": "i"
46
+ },
47
+ {
48
+ "kind": "contains",
49
+ "file": "report.md",
50
+ "pattern": "Oma|Riet",
51
+ "label": "provenance carried into the capture log"
52
+ },
53
+ {
54
+ "kind": "contains",
55
+ "file": "report.md",
56
+ "pattern": "\\?",
57
+ "label": "questions for the family are actually asked"
58
+ },
59
+ {
60
+ "kind": "contains",
61
+ "file": "report.md",
62
+ "pattern": "test[- ]?cook|try (it|the)|verify",
63
+ "flags": "i",
64
+ "label": "test-cook needs named"
65
+ }
66
+ ]
67
+ }
68
+ ],
69
+ "checks": [
70
+ {
71
+ "kind": "fileCount",
72
+ "ext": [
73
+ "md"
74
+ ],
75
+ "min": 2,
76
+ "dir": "recipes"
77
+ },
78
+ {
79
+ "kind": "recordSchema",
80
+ "file": "recipes.json",
81
+ "fields": [
82
+ {
83
+ "name": "title",
84
+ "type": "nonempty"
85
+ },
86
+ {
87
+ "name": "provenance",
88
+ "type": "nonempty"
89
+ },
90
+ {
91
+ "name": "file",
92
+ "type": "nonempty"
93
+ }
94
+ ],
95
+ "minRows": 2
96
+ }
97
+ ]
98
+ },
99
+ "rubric": {
100
+ "artifact": {
101
+ "path": "report.md",
102
+ "kind": "markdown"
103
+ },
104
+ "axes": [
105
+ {
106
+ "name": "provenance",
107
+ "description": "Every recipe names whose card it was, and the margin notes survive, marked as margin notes."
108
+ },
109
+ {
110
+ "name": "fidelity",
111
+ "description": "Original wording and quantities are transcribed exactly — no silent corrections or smoothing."
112
+ },
113
+ {
114
+ "name": "standardization",
115
+ "description": "A clear standardized ingredients-and-steps block sits alongside, never replacing, the original."
116
+ },
117
+ {
118
+ "name": "warmth",
119
+ "description": "The capture log reads like family history in food form, not a data-entry receipt."
120
+ }
121
+ ]
122
+ },
123
+ "qualityFocus": [
124
+ "verbatim transcription",
125
+ "provenance preservation",
126
+ "original-versus-standardized separation"
127
+ ]
128
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "id": "record-a-relative",
3
+ "name": "Record a Relative",
4
+ "description": "Bank an elder's interview while the telling is fresh: file the transcript, pull the people, places, and dates into the family record with their source, and write the follow-up questions — because the questions you didn't ask are the ones that vanish. Locks the extraction rules FIRST (every fact carries its quote, uncertain stays uncertain), then files the transcript, then updates the tree and surfaces the conflicts. Use for filing a family interview, recording a relative's stories, pulling facts into the tree, and 'we interviewed grandma'.\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 extraction (genealogist) — target branch, extraction rules, fact-sourcing checklist → gated on artifact `notes/scope.md` (markdown-notes)\n2. File the transcript (archivist) — speaker-labeled transcript with a header, under interviews/\n3. Extract the facts (genealogist) — facts with quotes into the tree, conflicts surfaced, follow-ups → gated on artifact `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": "scope",
6
+ "triggers": [
7
+ "file the interview with oma",
8
+ "we interviewed grandma",
9
+ "pull the family facts from the transcript",
10
+ "record a relative",
11
+ "bank the elder interview"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "scope",
16
+ "name": "Scope the extraction",
17
+ "description": "target branch, extraction rules, fact-sourcing checklist",
18
+ "prompt": "Aim the interview at the tree before extracting a single fact. Step 1: read tree.json from the workspace — the people, the branches, the facts already recorded and the ones marked uncertain. Step 2: identify the relative who was interviewed and which branch facts this interview can confirm, correct, or newly supply. Step 3: lock the extraction rules — every fact carries the teller's quote or the transcript line behind it; a fact that conflicts with the tree is surfaced as a conflict, never silently overwritten; uncertain stays uncertain ('she thought it was 1954' is recorded as thought, not fact). Step 4: write the acceptance-criteria checklist from those rules, plus 'the transcript is filed under interviews/' and 'follow-up questions written for the gaps the interview opened'. Call write_task_note with the relative + target branch + checklist and write notes/scope.md.\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.",
19
+ "suggestedRole": "genealogist",
20
+ "advanceWhen": {
21
+ "file": "notes/scope.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/scope.md",
32
+ "bytes": 120,
33
+ "artifact": true
34
+ },
35
+ {
36
+ "kind": "sniff",
37
+ "file": "notes/scope.md",
38
+ "sniff": "nonempty",
39
+ "artifact": true
40
+ }
41
+ ],
42
+ "onReject": "scope",
43
+ "maxAttempts": 3
44
+ },
45
+ "next": "file"
46
+ },
47
+ {
48
+ "id": "file",
49
+ "name": "File the transcript",
50
+ "description": "speaker-labeled transcript with a header, under interviews/",
51
+ "prompt": "Get the interview on file where the family can find it in fifty years. Step 1: if a transcript file was provided, start from it; otherwise produce one from the recording through the project's transcription capabilities. Step 2: label the speakers and add a header — who was interviewed, by whom, when and where. Step 3: save it in the interviews/ folder named for the relative and the date (for example interviews/oma-2026-07.md). Keep the telling verbatim — the phrasing is part of the record. Step 4: call write_task_note with the path.",
52
+ "suggestedRole": "archivist",
53
+ "next": "extract"
54
+ },
55
+ {
56
+ "id": "extract",
57
+ "name": "Extract the facts",
58
+ "description": "facts with quotes into the tree, conflicts surfaced, follow-ups",
59
+ "prompt": "Pull the facts into the record with their sources. Step 1: walk the transcript and list every person, place, date, and event it attests — each with the quote behind it. Step 2: compare against tree.json: which facts confirm the tree, which are new, and which conflict with what is recorded — update the tree through the project's family-record capabilities for confirmations and additions, and surface every conflict for the owner instead of picking a winner. Step 3: write report.md: the facts captured (each with its quote), the conflicts with the existing tree stated plainly, and the follow-up questions to ask while asking is still possible. Step 4: call write_task_note with the fact count, the conflict count, and the top follow-up question.\n\nThe deliverable `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.",
60
+ "suggestedRole": "genealogist",
61
+ "advanceWhen": {
62
+ "file": "report.md",
63
+ "minBytes": 1,
64
+ "sniff": "nonempty",
65
+ "artifact": true
66
+ },
67
+ "gate": {
68
+ "at": "completion",
69
+ "checks": [
70
+ {
71
+ "kind": "minBytes",
72
+ "file": "report.md",
73
+ "bytes": 1200,
74
+ "artifact": true
75
+ },
76
+ {
77
+ "kind": "contains",
78
+ "file": "report.md",
79
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
80
+ "flags": "i",
81
+ "label": "at least one markdown heading",
82
+ "artifact": true
83
+ }
84
+ ],
85
+ "onReject": "extract",
86
+ "maxAttempts": 4
87
+ },
88
+ "next": "evaluate"
89
+ },
90
+ {
91
+ "id": "evaluate",
92
+ "name": "Evaluate",
93
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
94
+ "prompt": "Open report.md beside the interview transcript and tree.json and verify every criterion from notes/scope.md: every fact in the report carries a quote that actually appears in the transcript (spot-check five — a quote that isn't there is fabrication), every date and name in the report exists in the transcript or the tree, conflicts with the tree are surfaced as conflicts rather than silently resolved, uncertain memories are recorded as uncertain, and the follow-up questions are real questions aimed at real gaps. Write PASS/FAIL per criterion; on any failure, name the gap and loop back to extract.\n\nThe deliverable lives in the project's artifacts drawer — open `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: \"extract\" })` 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.",
95
+ "suggestedRole": "reviewer",
96
+ "consumes": [
97
+ {
98
+ "file": "report.md",
99
+ "artifact": true
100
+ }
101
+ ],
102
+ "next": "extract"
103
+ },
104
+ {
105
+ "id": "finish",
106
+ "name": "Finish",
107
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
108
+ "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.",
109
+ "suggestedRole": "developer",
110
+ "terminal": true
111
+ }
112
+ ],
113
+ "version": "1.0.1",
114
+ "releasedAt": "2026-08-14T00:00:00Z"
115
+ }