@bendyline/gilde 0.1.38 → 0.1.39

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 (546) hide show
  1. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.2/craftbook.json +153 -0
  2. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.2/test.json +118 -0
  3. package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.2/craftbook.json +153 -0
  4. package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.2/test.json +189 -0
  5. package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.2/craftbook.json +122 -0
  6. package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.2/test.json +100 -0
  7. package/data/craftbook-templates/ad/ad-variations/versions/1.0.2/craftbook.json +117 -0
  8. package/data/craftbook-templates/ad/ad-variations/versions/1.0.2/test.json +111 -0
  9. package/data/craftbook-templates/al/album-curate/versions/1.0.2/craftbook.json +127 -0
  10. package/data/craftbook-templates/al/album-curate/versions/1.0.2/test.json +150 -0
  11. package/data/craftbook-templates/al/alert-rules/versions/1.0.2/craftbook.json +113 -0
  12. package/data/craftbook-templates/al/alert-rules/versions/1.0.2/test.json +148 -0
  13. package/data/craftbook-templates/al/alt-text-pass/versions/1.0.2/craftbook.json +154 -0
  14. package/data/craftbook-templates/al/alt-text-pass/versions/1.0.2/test.json +100 -0
  15. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.4/craftbook.json +238 -0
  16. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.4/test.json +160 -0
  17. package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.2/craftbook.json +158 -0
  18. package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.2/test.json +105 -0
  19. package/data/craftbook-templates/an/annual-document-review/versions/1.0.2/craftbook.json +152 -0
  20. package/data/craftbook-templates/an/annual-document-review/versions/1.0.2/test.json +113 -0
  21. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.2/craftbook.json +153 -0
  22. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.2/test.json +123 -0
  23. package/data/craftbook-templates/ap/api-contract-review/versions/1.1.2/craftbook.json +153 -0
  24. package/data/craftbook-templates/ap/api-contract-review/versions/1.1.2/test.json +118 -0
  25. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.2/craftbook.json +170 -0
  26. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.2/test.json +139 -0
  27. package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.2/craftbook.json +141 -0
  28. package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.2/test.json +106 -0
  29. package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.2/craftbook.json +135 -0
  30. package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.2/test.json +106 -0
  31. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.4/craftbook.json +222 -0
  32. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.4/test.json +224 -0
  33. package/data/craftbook-templates/au/auth-flow/versions/1.0.2/craftbook.json +160 -0
  34. package/data/craftbook-templates/au/auth-flow/versions/1.0.2/test.json +143 -0
  35. package/data/craftbook-templates/au/automation-recipe/versions/1.0.2/craftbook.json +176 -0
  36. package/data/craftbook-templates/au/automation-recipe/versions/1.0.2/test.json +299 -0
  37. package/data/craftbook-templates/ba/backup-routine/versions/1.0.2/craftbook.json +160 -0
  38. package/data/craftbook-templates/ba/backup-routine/versions/1.0.2/test.json +111 -0
  39. package/data/craftbook-templates/bl/blog-post/versions/1.0.2/craftbook.json +155 -0
  40. package/data/craftbook-templates/bl/blog-post/versions/1.0.2/test.json +121 -0
  41. package/data/craftbook-templates/bo/board-deck/versions/1.0.2/craftbook.json +153 -0
  42. package/data/craftbook-templates/bo/board-deck/versions/1.0.2/test.json +103 -0
  43. package/data/craftbook-templates/bo/board-game-web/versions/1.0.2/craftbook.json +162 -0
  44. package/data/craftbook-templates/bo/board-game-web/versions/1.0.2/test.json +102 -0
  45. package/data/craftbook-templates/bo/booking-automation/versions/1.0.2/craftbook.json +170 -0
  46. package/data/craftbook-templates/bo/booking-automation/versions/1.0.2/test.json +165 -0
  47. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.2/craftbook.json +119 -0
  48. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.2/test.json +106 -0
  49. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.4/craftbook.json +429 -0
  50. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.4/test.json +379 -0
  51. package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.3/craftbook.json +176 -0
  52. package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.3/test.json +95 -0
  53. package/data/craftbook-templates/ca/calendar-brief/versions/1.0.2/craftbook.json +119 -0
  54. package/data/craftbook-templates/ca/calendar-brief/versions/1.0.2/test.json +105 -0
  55. package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.2/craftbook.json +122 -0
  56. package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.2/test.json +109 -0
  57. package/data/craftbook-templates/ca/case-study/versions/1.0.2/craftbook.json +155 -0
  58. package/data/craftbook-templates/ca/case-study/versions/1.0.2/test.json +115 -0
  59. package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.2/craftbook.json +163 -0
  60. package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.2/test.json +108 -0
  61. package/data/craftbook-templates/ch/changelog-cut/versions/1.0.2/craftbook.json +125 -0
  62. package/data/craftbook-templates/ch/changelog-cut/versions/1.0.2/test.json +109 -0
  63. package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.2/craftbook.json +119 -0
  64. package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.2/test.json +132 -0
  65. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.3/craftbook.json +135 -0
  66. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.3/test.json +158 -0
  67. package/data/craftbook-templates/ch/chapter-weave/versions/1.0.2/craftbook.json +86 -0
  68. package/data/craftbook-templates/ch/chapter-weave/versions/1.0.2/test.json +101 -0
  69. package/data/craftbook-templates/ch/character-sheet/versions/1.0.2/craftbook.json +94 -0
  70. package/data/craftbook-templates/ch/character-sheet/versions/1.0.2/test.json +146 -0
  71. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.2/craftbook.json +133 -0
  72. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.2/test.json +181 -0
  73. package/data/craftbook-templates/ch/chart-pack/versions/1.0.2/craftbook.json +160 -0
  74. package/data/craftbook-templates/ch/chart-pack/versions/1.0.2/test.json +107 -0
  75. package/data/craftbook-templates/ch/chrome-extension/versions/1.0.2/craftbook.json +160 -0
  76. package/data/craftbook-templates/ch/chrome-extension/versions/1.0.2/test.json +100 -0
  77. package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.2/craftbook.json +144 -0
  78. package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.2/test.json +165 -0
  79. package/data/craftbook-templates/ci/citation-audit/versions/1.0.2/craftbook.json +158 -0
  80. package/data/craftbook-templates/ci/citation-audit/versions/1.0.2/test.json +152 -0
  81. package/data/craftbook-templates/cl/cli-tool/versions/1.1.2/craftbook.json +159 -0
  82. package/data/craftbook-templates/cl/cli-tool/versions/1.1.2/test.json +131 -0
  83. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.2/craftbook.json +165 -0
  84. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.2/test.json +119 -0
  85. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.2/craftbook.json +165 -0
  86. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.2/test.json +122 -0
  87. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.2/craftbook.json +153 -0
  88. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.2/test.json +229 -0
  89. package/data/craftbook-templates/co/company-research-brief/versions/1.0.2/craftbook.json +151 -0
  90. package/data/craftbook-templates/co/company-research-brief/versions/1.0.2/test.json +100 -0
  91. package/data/craftbook-templates/co/comparison-matrix/versions/1.0.2/craftbook.json +165 -0
  92. package/data/craftbook-templates/co/comparison-matrix/versions/1.0.2/test.json +112 -0
  93. package/data/craftbook-templates/co/compat-check/versions/1.0.2/craftbook.json +158 -0
  94. package/data/craftbook-templates/co/compat-check/versions/1.0.2/test.json +148 -0
  95. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.2/craftbook.json +152 -0
  96. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.2/test.json +119 -0
  97. package/data/craftbook-templates/co/config-scaffold/versions/1.0.2/craftbook.json +117 -0
  98. package/data/craftbook-templates/co/config-scaffold/versions/1.0.2/test.json +123 -0
  99. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.2/craftbook.json +153 -0
  100. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.2/test.json +152 -0
  101. package/data/craftbook-templates/co/contract-template/versions/1.0.2/craftbook.json +157 -0
  102. package/data/craftbook-templates/co/contract-template/versions/1.0.2/test.json +105 -0
  103. package/data/craftbook-templates/co/cookbook-layout/versions/1.0.2/craftbook.json +133 -0
  104. package/data/craftbook-templates/co/cookbook-layout/versions/1.0.2/test.json +162 -0
  105. package/data/craftbook-templates/co/copy-review/versions/1.0.2/craftbook.json +153 -0
  106. package/data/craftbook-templates/co/copy-review/versions/1.0.2/test.json +105 -0
  107. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.2/craftbook.json +158 -0
  108. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.2/test.json +159 -0
  109. package/data/craftbook-templates/co/cover-letter/versions/1.0.2/craftbook.json +119 -0
  110. package/data/craftbook-templates/co/cover-letter/versions/1.0.2/test.json +103 -0
  111. package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.2/craftbook.json +113 -0
  112. package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.2/test.json +210 -0
  113. package/data/craftbook-templates/cr/cron-job/versions/1.0.2/craftbook.json +159 -0
  114. package/data/craftbook-templates/cr/cron-job/versions/1.0.2/test.json +107 -0
  115. package/data/craftbook-templates/cr/crossword-forge/versions/1.0.2/craftbook.json +176 -0
  116. package/data/craftbook-templates/cr/crossword-forge/versions/1.0.2/test.json +138 -0
  117. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.3/craftbook.json +113 -0
  118. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.3/test.json +105 -0
  119. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.2/craftbook.json +119 -0
  120. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.2/test.json +117 -0
  121. package/data/craftbook-templates/da/data-dictionary/versions/1.0.2/craftbook.json +119 -0
  122. package/data/craftbook-templates/da/data-dictionary/versions/1.0.2/test.json +104 -0
  123. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.2/craftbook.json +160 -0
  124. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.2/test.json +107 -0
  125. package/data/craftbook-templates/da/data-join-merge/versions/1.0.2/craftbook.json +113 -0
  126. package/data/craftbook-templates/da/data-join-merge/versions/1.0.2/test.json +107 -0
  127. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.3/craftbook.json +160 -0
  128. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.3/test.json +165 -0
  129. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.2/craftbook.json +153 -0
  130. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.2/test.json +329 -0
  131. package/data/craftbook-templates/da/data-to-report/versions/1.0.2/craftbook.json +152 -0
  132. package/data/craftbook-templates/da/data-to-report/versions/1.0.2/test.json +98 -0
  133. package/data/craftbook-templates/da/data-viz-page/versions/1.0.2/craftbook.json +155 -0
  134. package/data/craftbook-templates/da/data-viz-page/versions/1.0.2/test.json +120 -0
  135. package/data/craftbook-templates/da/dataset-clean/versions/1.2.3/craftbook.json +113 -0
  136. package/data/craftbook-templates/da/dataset-clean/versions/1.2.3/test.json +98 -0
  137. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.2/craftbook.json +160 -0
  138. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.2/test.json +107 -0
  139. package/data/craftbook-templates/de/deep-security-review/versions/1.1.2/craftbook.json +223 -0
  140. package/data/craftbook-templates/de/deep-security-review/versions/1.1.2/test.json +160 -0
  141. package/data/craftbook-templates/de/dependency-audit/versions/1.1.2/craftbook.json +153 -0
  142. package/data/craftbook-templates/de/dependency-audit/versions/1.1.2/test.json +111 -0
  143. package/data/craftbook-templates/de/deploy-checklist/versions/1.0.2/craftbook.json +171 -0
  144. package/data/craftbook-templates/de/deploy-checklist/versions/1.0.2/test.json +168 -0
  145. package/data/craftbook-templates/de/design-review/versions/1.0.2/craftbook.json +153 -0
  146. package/data/craftbook-templates/de/design-review/versions/1.0.2/test.json +121 -0
  147. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.4/craftbook.json +443 -0
  148. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.4/test.json +204 -0
  149. package/data/craftbook-templates/di/diagram-from-text/versions/1.0.2/craftbook.json +121 -0
  150. package/data/craftbook-templates/di/diagram-from-text/versions/1.0.2/test.json +100 -0
  151. package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.2/craftbook.json +158 -0
  152. package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.2/test.json +165 -0
  153. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.2/craftbook.json +160 -0
  154. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.2/test.json +107 -0
  155. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.2/craftbook.json +119 -0
  156. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.2/test.json +113 -0
  157. package/data/craftbook-templates/do/dockerize-app/versions/1.0.2/craftbook.json +160 -0
  158. package/data/craftbook-templates/do/dockerize-app/versions/1.0.2/test.json +95 -0
  159. package/data/craftbook-templates/do/docs-site/versions/1.0.2/craftbook.json +155 -0
  160. package/data/craftbook-templates/do/docs-site/versions/1.0.2/test.json +100 -0
  161. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.2/craftbook.json +165 -0
  162. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.2/test.json +135 -0
  163. package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.2/craftbook.json +152 -0
  164. package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.2/test.json +107 -0
  165. package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.2/craftbook.json +158 -0
  166. package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.2/test.json +113 -0
  167. package/data/craftbook-templates/eb/ebook-compile/versions/1.0.2/craftbook.json +155 -0
  168. package/data/craftbook-templates/eb/ebook-compile/versions/1.0.2/test.json +100 -0
  169. package/data/craftbook-templates/ed/edit-notes/versions/1.0.2/craftbook.json +188 -0
  170. package/data/craftbook-templates/ed/edit-notes/versions/1.0.2/test.json +149 -0
  171. package/data/craftbook-templates/em/email-sequence/versions/1.0.2/craftbook.json +154 -0
  172. package/data/craftbook-templates/em/email-sequence/versions/1.0.2/test.json +100 -0
  173. package/data/craftbook-templates/em/email-template/versions/1.0.2/craftbook.json +155 -0
  174. package/data/craftbook-templates/em/email-template/versions/1.0.2/test.json +100 -0
  175. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.4/craftbook.json +415 -0
  176. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.4/test.json +194 -0
  177. package/data/craftbook-templates/ep/episode-plan/versions/1.0.2/craftbook.json +152 -0
  178. package/data/craftbook-templates/ep/episode-plan/versions/1.0.2/test.json +100 -0
  179. package/data/craftbook-templates/es/escalation-playbook/versions/1.0.2/craftbook.json +119 -0
  180. package/data/craftbook-templates/es/escalation-playbook/versions/1.0.2/test.json +113 -0
  181. package/data/craftbook-templates/ev/evidence-brief/versions/1.0.2/craftbook.json +158 -0
  182. package/data/craftbook-templates/ev/evidence-brief/versions/1.0.2/test.json +113 -0
  183. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.4/craftbook.json +445 -0
  184. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.4/test.json +139 -0
  185. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.2/craftbook.json +152 -0
  186. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.2/test.json +107 -0
  187. package/data/craftbook-templates/fa/fact-check/versions/1.0.2/craftbook.json +158 -0
  188. package/data/craftbook-templates/fa/fact-check/versions/1.0.2/test.json +113 -0
  189. package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.2/craftbook.json +86 -0
  190. package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.2/test.json +111 -0
  191. package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.2/craftbook.json +119 -0
  192. package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.2/test.json +113 -0
  193. package/data/craftbook-templates/fa/favicon-set/versions/1.0.2/craftbook.json +158 -0
  194. package/data/craftbook-templates/fa/favicon-set/versions/1.0.2/test.json +106 -0
  195. package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.2/craftbook.json +171 -0
  196. package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.2/test.json +165 -0
  197. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.2/craftbook.json +160 -0
  198. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.2/test.json +165 -0
  199. package/data/craftbook-templates/fe/feedback-widget/versions/1.0.2/craftbook.json +155 -0
  200. package/data/craftbook-templates/fe/feedback-widget/versions/1.0.2/test.json +100 -0
  201. package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.2/craftbook.json +115 -0
  202. package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.2/test.json +106 -0
  203. package/data/craftbook-templates/fo/forecast-model/versions/1.0.2/craftbook.json +117 -0
  204. package/data/craftbook-templates/fo/forecast-model/versions/1.0.2/test.json +107 -0
  205. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.2/craftbook.json +160 -0
  206. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.2/test.json +165 -0
  207. package/data/craftbook-templates/fo/form-wizard/versions/1.0.2/craftbook.json +122 -0
  208. package/data/craftbook-templates/fo/form-wizard/versions/1.0.2/test.json +113 -0
  209. package/data/craftbook-templates/ga/game-with-screens/versions/1.0.2/craftbook.json +180 -0
  210. package/data/craftbook-templates/ga/game-with-screens/versions/1.0.2/test.json +102 -0
  211. package/data/craftbook-templates/gl/glossary-build/versions/1.0.2/craftbook.json +152 -0
  212. package/data/craftbook-templates/gl/glossary-build/versions/1.0.2/test.json +113 -0
  213. package/data/craftbook-templates/gr/graphql-api/versions/1.0.3/craftbook.json +158 -0
  214. package/data/craftbook-templates/gr/graphql-api/versions/1.0.3/test.json +95 -0
  215. package/data/craftbook-templates/gr/grpc-service/versions/1.0.2/craftbook.json +159 -0
  216. package/data/craftbook-templates/gr/grpc-service/versions/1.0.2/test.json +95 -0
  217. package/data/craftbook-templates/ha/handbook-section/versions/1.0.2/craftbook.json +157 -0
  218. package/data/craftbook-templates/ha/handbook-section/versions/1.0.2/test.json +113 -0
  219. package/data/craftbook-templates/he/hero-image/versions/1.0.2/craftbook.json +166 -0
  220. package/data/craftbook-templates/he/hero-image/versions/1.0.2/test.json +106 -0
  221. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.2/craftbook.json +214 -0
  222. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.2/test.json +131 -0
  223. package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.2/craftbook.json +194 -0
  224. package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.2/test.json +95 -0
  225. package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.2/craftbook.json +162 -0
  226. package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.2/test.json +102 -0
  227. package/data/craftbook-templates/ic/icon-pack/versions/1.0.2/craftbook.json +158 -0
  228. package/data/craftbook-templates/ic/icon-pack/versions/1.0.2/test.json +106 -0
  229. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.4/craftbook.json +409 -0
  230. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.4/test.json +144 -0
  231. package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.2/craftbook.json +162 -0
  232. package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.2/test.json +102 -0
  233. package/data/craftbook-templates/im/image-batch-edit/versions/1.0.2/craftbook.json +153 -0
  234. package/data/craftbook-templates/im/image-batch-edit/versions/1.0.2/test.json +106 -0
  235. package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.2/craftbook.json +152 -0
  236. package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.2/test.json +106 -0
  237. package/data/craftbook-templates/im/image-palette-extract/versions/1.0.2/craftbook.json +121 -0
  238. package/data/craftbook-templates/im/image-palette-extract/versions/1.0.2/test.json +100 -0
  239. package/data/craftbook-templates/im/image-seo-rename/versions/1.0.2/craftbook.json +117 -0
  240. package/data/craftbook-templates/im/image-seo-rename/versions/1.0.2/test.json +106 -0
  241. package/data/craftbook-templates/in/inbox-triage/versions/1.0.2/craftbook.json +152 -0
  242. package/data/craftbook-templates/in/inbox-triage/versions/1.0.2/test.json +107 -0
  243. package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.2/craftbook.json +119 -0
  244. package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.2/test.json +113 -0
  245. package/data/craftbook-templates/in/incident-postmortem/versions/1.0.2/craftbook.json +170 -0
  246. package/data/craftbook-templates/in/incident-postmortem/versions/1.0.2/test.json +112 -0
  247. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.2/craftbook.json +165 -0
  248. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.2/test.json +124 -0
  249. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.2/craftbook.json +155 -0
  250. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.2/test.json +102 -0
  251. package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.2/craftbook.json +153 -0
  252. package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.2/test.json +113 -0
  253. package/data/craftbook-templates/in/invitation-design/versions/1.0.2/craftbook.json +140 -0
  254. package/data/craftbook-templates/in/invitation-design/versions/1.0.2/test.json +124 -0
  255. package/data/craftbook-templates/in/invoice-generator/versions/1.0.2/craftbook.json +122 -0
  256. package/data/craftbook-templates/in/invoice-generator/versions/1.0.2/test.json +100 -0
  257. package/data/craftbook-templates/in/invoice-run/versions/1.1.2/craftbook.json +211 -0
  258. package/data/craftbook-templates/in/invoice-run/versions/1.1.2/test.json +143 -0
  259. package/data/craftbook-templates/index.json +1 -1
  260. package/data/craftbook-templates/it/item-intake/versions/1.0.2/craftbook.json +152 -0
  261. package/data/craftbook-templates/it/item-intake/versions/1.0.2/test.json +148 -0
  262. package/data/craftbook-templates/ju/juice-pass/versions/1.0.2/craftbook.json +128 -0
  263. package/data/craftbook-templates/ju/juice-pass/versions/1.0.2/test.json +119 -0
  264. package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.2/craftbook.json +155 -0
  265. package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.2/test.json +113 -0
  266. package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.2/craftbook.json +160 -0
  267. package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.2/test.json +100 -0
  268. package/data/craftbook-templates/la/landing-copy/versions/1.0.2/craftbook.json +155 -0
  269. package/data/craftbook-templates/la/landing-copy/versions/1.0.2/test.json +113 -0
  270. package/data/craftbook-templates/la/landing-page/versions/1.0.2/craftbook.json +196 -0
  271. package/data/craftbook-templates/la/landing-page/versions/1.0.2/test.json +100 -0
  272. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.2/craftbook.json +152 -0
  273. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.2/test.json +107 -0
  274. package/data/craftbook-templates/li/library-package/versions/1.0.2/craftbook.json +159 -0
  275. package/data/craftbook-templates/li/library-package/versions/1.0.2/test.json +95 -0
  276. package/data/craftbook-templates/li/literature-review/versions/1.0.2/craftbook.json +158 -0
  277. package/data/craftbook-templates/li/literature-review/versions/1.0.2/test.json +113 -0
  278. package/data/craftbook-templates/li/live-browser-qa/versions/1.0.2/craftbook.json +153 -0
  279. package/data/craftbook-templates/li/live-browser-qa/versions/1.0.2/test.json +165 -0
  280. package/data/craftbook-templates/lo/localize-content/versions/1.0.2/craftbook.json +155 -0
  281. package/data/craftbook-templates/lo/localize-content/versions/1.0.2/test.json +113 -0
  282. package/data/craftbook-templates/lo/logo-set/versions/1.0.2/craftbook.json +158 -0
  283. package/data/craftbook-templates/lo/logo-set/versions/1.0.2/test.json +106 -0
  284. package/data/craftbook-templates/ma/market-scan/versions/1.0.2/craftbook.json +158 -0
  285. package/data/craftbook-templates/ma/market-scan/versions/1.0.2/test.json +213 -0
  286. package/data/craftbook-templates/me/meeting-minutes/versions/1.0.2/craftbook.json +120 -0
  287. package/data/craftbook-templates/me/meeting-minutes/versions/1.0.2/test.json +113 -0
  288. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.2/craftbook.json +119 -0
  289. package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.2/test.json +113 -0
  290. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.2/craftbook.json +119 -0
  291. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.2/test.json +187 -0
  292. package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.2/craftbook.json +121 -0
  293. package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.2/test.json +106 -0
  294. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.2/craftbook.json +127 -0
  295. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.2/test.json +115 -0
  296. package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.2/craftbook.json +159 -0
  297. package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.2/test.json +95 -0
  298. package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.2/craftbook.json +129 -0
  299. package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.2/test.json +102 -0
  300. package/data/craftbook-templates/mo/mock-interview/versions/1.0.2/craftbook.json +151 -0
  301. package/data/craftbook-templates/mo/mock-interview/versions/1.0.2/test.json +113 -0
  302. package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.2/craftbook.json +168 -0
  303. package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.2/test.json +136 -0
  304. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.2/craftbook.json +170 -0
  305. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.2/test.json +200 -0
  306. package/data/craftbook-templates/mo/month-close/versions/1.0.2/craftbook.json +152 -0
  307. package/data/craftbook-templates/mo/month-close/versions/1.0.2/test.json +100 -0
  308. package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.2/craftbook.json +152 -0
  309. package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.2/test.json +120 -0
  310. package/data/craftbook-templates/mo/moodboard/versions/1.0.2/craftbook.json +121 -0
  311. package/data/craftbook-templates/mo/moodboard/versions/1.0.2/test.json +106 -0
  312. package/data/craftbook-templates/mo/morning-brief/versions/1.0.2/craftbook.json +119 -0
  313. package/data/craftbook-templates/mo/morning-brief/versions/1.0.2/test.json +228 -0
  314. package/data/craftbook-templates/mo/morning-report/versions/1.0.2/craftbook.json +164 -0
  315. package/data/craftbook-templates/mo/morning-report/versions/1.0.2/test.json +253 -0
  316. package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.2/craftbook.json +113 -0
  317. package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.2/test.json +106 -0
  318. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.2/craftbook.json +193 -0
  319. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.2/test.json +89 -0
  320. package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.2/craftbook.json +155 -0
  321. package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.2/test.json +113 -0
  322. package/data/craftbook-templates/no/notification-router/versions/1.0.2/craftbook.json +170 -0
  323. package/data/craftbook-templates/no/notification-router/versions/1.0.2/test.json +165 -0
  324. package/data/craftbook-templates/oc/ocr-extract/versions/1.0.2/craftbook.json +149 -0
  325. package/data/craftbook-templates/oc/ocr-extract/versions/1.0.2/test.json +106 -0
  326. package/data/craftbook-templates/of/offer-compare/versions/1.0.2/craftbook.json +118 -0
  327. package/data/craftbook-templates/of/offer-compare/versions/1.0.2/test.json +113 -0
  328. package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.2/craftbook.json +119 -0
  329. package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.2/test.json +113 -0
  330. package/data/craftbook-templates/on/onboarding-flow/versions/1.0.2/craftbook.json +155 -0
  331. package/data/craftbook-templates/on/onboarding-flow/versions/1.0.2/test.json +100 -0
  332. package/data/craftbook-templates/on/oncall-handoff/versions/1.0.2/craftbook.json +119 -0
  333. package/data/craftbook-templates/on/oncall-handoff/versions/1.0.2/test.json +113 -0
  334. package/data/craftbook-templates/on/one-pager/versions/1.0.2/craftbook.json +155 -0
  335. package/data/craftbook-templates/on/one-pager/versions/1.0.2/test.json +113 -0
  336. package/data/craftbook-templates/op/ops-runbook/versions/1.0.2/craftbook.json +124 -0
  337. package/data/craftbook-templates/op/ops-runbook/versions/1.0.2/test.json +107 -0
  338. package/data/craftbook-templates/pa/page-spread/versions/1.0.2/craftbook.json +94 -0
  339. package/data/craftbook-templates/pa/page-spread/versions/1.0.2/test.json +135 -0
  340. package/data/craftbook-templates/pa/parser-grammar/versions/1.0.2/craftbook.json +159 -0
  341. package/data/craftbook-templates/pa/parser-grammar/versions/1.0.2/test.json +95 -0
  342. package/data/craftbook-templates/pe/perf-audit/versions/1.0.2/craftbook.json +153 -0
  343. package/data/craftbook-templates/pe/perf-audit/versions/1.0.2/test.json +165 -0
  344. package/data/craftbook-templates/pe/perf-optimization/versions/1.0.2/craftbook.json +160 -0
  345. package/data/craftbook-templates/pe/perf-optimization/versions/1.0.2/test.json +95 -0
  346. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.2/craftbook.json +152 -0
  347. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.2/test.json +125 -0
  348. package/data/craftbook-templates/ph/photo-cull/versions/1.0.2/craftbook.json +152 -0
  349. package/data/craftbook-templates/ph/photo-cull/versions/1.0.2/test.json +106 -0
  350. package/data/craftbook-templates/ph/physics-toy/versions/1.0.2/craftbook.json +122 -0
  351. package/data/craftbook-templates/ph/physics-toy/versions/1.0.2/test.json +102 -0
  352. package/data/craftbook-templates/pi/pitch-deck/versions/1.0.2/craftbook.json +153 -0
  353. package/data/craftbook-templates/pi/pitch-deck/versions/1.0.2/test.json +100 -0
  354. package/data/craftbook-templates/pl/playtest-report/versions/1.0.2/craftbook.json +152 -0
  355. package/data/craftbook-templates/pl/playtest-report/versions/1.0.2/test.json +114 -0
  356. package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.2/craftbook.json +152 -0
  357. package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.2/test.json +106 -0
  358. package/data/craftbook-templates/po/portfolio-site/versions/1.0.2/craftbook.json +163 -0
  359. package/data/craftbook-templates/po/portfolio-site/versions/1.0.2/test.json +100 -0
  360. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.4/craftbook.json +397 -0
  361. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.4/test.json +242 -0
  362. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/craftbook.json +153 -0
  363. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/test.json +113 -0
  364. package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/craftbook.json +171 -0
  365. package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/test.json +120 -0
  366. package/data/craftbook-templates/pr/practice-session/versions/1.0.2/craftbook.json +127 -0
  367. package/data/craftbook-templates/pr/practice-session/versions/1.0.2/test.json +117 -0
  368. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/craftbook.json +152 -0
  369. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/test.json +100 -0
  370. package/data/craftbook-templates/pr/press-release/versions/1.0.2/craftbook.json +155 -0
  371. package/data/craftbook-templates/pr/press-release/versions/1.0.2/test.json +359 -0
  372. package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/craftbook.json +121 -0
  373. package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/test.json +153 -0
  374. package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/craftbook.json +196 -0
  375. package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/test.json +100 -0
  376. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/craftbook.json +117 -0
  377. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/test.json +113 -0
  378. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/craftbook.json +155 -0
  379. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/test.json +113 -0
  380. package/data/craftbook-templates/pu/pull-request-review/versions/1.7.2/craftbook.json +279 -0
  381. package/data/craftbook-templates/pu/pull-request-review/versions/1.7.2/test.json +144 -0
  382. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/craftbook.json +133 -0
  383. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/test.json +126 -0
  384. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/craftbook.json +167 -0
  385. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/test.json +100 -0
  386. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.2/craftbook.json +152 -0
  387. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.2/test.json +116 -0
  388. package/data/craftbook-templates/re/reading-list/versions/1.0.2/craftbook.json +119 -0
  389. package/data/craftbook-templates/re/reading-list/versions/1.0.2/test.json +113 -0
  390. package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/craftbook.json +152 -0
  391. package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/test.json +152 -0
  392. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/craftbook.json +152 -0
  393. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/test.json +107 -0
  394. package/data/craftbook-templates/re/reception-report/versions/1.0.1/craftbook.json +177 -0
  395. package/data/craftbook-templates/re/reception-report/versions/1.0.1/test.json +169 -0
  396. package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/craftbook.json +152 -0
  397. package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/test.json +131 -0
  398. package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/craftbook.json +127 -0
  399. package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/test.json +113 -0
  400. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/craftbook.json +160 -0
  401. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/test.json +107 -0
  402. package/data/craftbook-templates/re/refactor-module/versions/1.0.3/craftbook.json +160 -0
  403. package/data/craftbook-templates/re/refactor-module/versions/1.0.3/test.json +95 -0
  404. package/data/craftbook-templates/re/regex-builder/versions/1.0.2/craftbook.json +159 -0
  405. package/data/craftbook-templates/re/regex-builder/versions/1.0.2/test.json +95 -0
  406. package/data/craftbook-templates/re/release-announcement/versions/1.0.2/craftbook.json +171 -0
  407. package/data/craftbook-templates/re/release-announcement/versions/1.0.2/test.json +205 -0
  408. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/craftbook.json +226 -0
  409. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/test.json +141 -0
  410. package/data/craftbook-templates/re/release-notes/versions/1.0.2/craftbook.json +171 -0
  411. package/data/craftbook-templates/re/release-notes/versions/1.0.2/test.json +114 -0
  412. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.2/craftbook.json +159 -0
  413. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.2/test.json +165 -0
  414. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.2/craftbook.json +153 -0
  415. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.2/test.json +113 -0
  416. package/data/craftbook-templates/re/reliability-review/versions/1.0.2/craftbook.json +165 -0
  417. package/data/craftbook-templates/re/reliability-review/versions/1.0.2/test.json +115 -0
  418. package/data/craftbook-templates/re/report-pdf/versions/1.1.2/craftbook.json +185 -0
  419. package/data/craftbook-templates/re/report-pdf/versions/1.1.2/test.json +101 -0
  420. package/data/craftbook-templates/re/research-report/versions/1.0.2/craftbook.json +158 -0
  421. package/data/craftbook-templates/re/research-report/versions/1.0.2/test.json +113 -0
  422. package/data/craftbook-templates/re/research-to-document/versions/1.2.2/craftbook.json +228 -0
  423. package/data/craftbook-templates/re/research-to-document/versions/1.2.2/test.json +243 -0
  424. package/data/craftbook-templates/re/rest-api/versions/1.0.3/craftbook.json +159 -0
  425. package/data/craftbook-templates/re/rest-api/versions/1.0.3/test.json +390 -0
  426. package/data/craftbook-templates/re/resume-cv/versions/1.0.2/craftbook.json +155 -0
  427. package/data/craftbook-templates/re/resume-cv/versions/1.0.2/test.json +100 -0
  428. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/craftbook.json +171 -0
  429. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/test.json +165 -0
  430. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.4/craftbook.json +425 -0
  431. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.4/test.json +157 -0
  432. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/craftbook.json +179 -0
  433. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/test.json +140 -0
  434. package/data/craftbook-templates/ru/runbook/versions/1.0.2/craftbook.json +157 -0
  435. package/data/craftbook-templates/ru/runbook/versions/1.0.2/test.json +121 -0
  436. package/data/craftbook-templates/sc/schema-migration/versions/1.0.2/craftbook.json +156 -0
  437. package/data/craftbook-templates/sc/schema-migration/versions/1.0.2/test.json +106 -0
  438. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/craftbook.json +152 -0
  439. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/test.json +165 -0
  440. package/data/craftbook-templates/sc/script-automation/versions/1.0.2/craftbook.json +160 -0
  441. package/data/craftbook-templates/sc/script-automation/versions/1.0.2/test.json +165 -0
  442. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/craftbook.json +159 -0
  443. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/test.json +93 -0
  444. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/craftbook.json +152 -0
  445. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/test.json +113 -0
  446. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.4/craftbook.json +452 -0
  447. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.4/test.json +157 -0
  448. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/craftbook.json +117 -0
  449. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/test.json +100 -0
  450. package/data/craftbook-templates/so/social-digest/versions/1.0.1/craftbook.json +140 -0
  451. package/data/craftbook-templates/so/social-digest/versions/1.0.1/test.json +169 -0
  452. package/data/craftbook-templates/so/social-thread/versions/1.0.2/craftbook.json +119 -0
  453. package/data/craftbook-templates/so/social-thread/versions/1.0.2/test.json +113 -0
  454. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/craftbook.json +152 -0
  455. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/test.json +161 -0
  456. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/craftbook.json +155 -0
  457. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/test.json +100 -0
  458. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/craftbook.json +448 -0
  459. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/test.json +165 -0
  460. package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/craftbook.json +155 -0
  461. package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/test.json +107 -0
  462. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/craftbook.json +121 -0
  463. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/test.json +163 -0
  464. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/craftbook.json +149 -0
  465. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/test.json +106 -0
  466. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/craftbook.json +121 -0
  467. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/test.json +107 -0
  468. package/data/craftbook-templates/st/standup-summary/versions/1.0.2/craftbook.json +119 -0
  469. package/data/craftbook-templates/st/standup-summary/versions/1.0.2/test.json +113 -0
  470. package/data/craftbook-templates/st/state-machine/versions/1.0.2/craftbook.json +159 -0
  471. package/data/craftbook-templates/st/state-machine/versions/1.0.2/test.json +95 -0
  472. package/data/craftbook-templates/st/status-report/versions/1.0.2/craftbook.json +158 -0
  473. package/data/craftbook-templates/st/status-report/versions/1.0.2/test.json +113 -0
  474. package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/craftbook.json +152 -0
  475. package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/test.json +107 -0
  476. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/craftbook.json +140 -0
  477. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/test.json +106 -0
  478. package/data/craftbook-templates/su/summarize-long/versions/1.0.2/craftbook.json +119 -0
  479. package/data/craftbook-templates/su/summarize-long/versions/1.0.2/test.json +113 -0
  480. package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/craftbook.json +153 -0
  481. package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/test.json +107 -0
  482. package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/craftbook.json +122 -0
  483. package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/test.json +100 -0
  484. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/craftbook.json +126 -0
  485. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/test.json +100 -0
  486. package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/craftbook.json +420 -0
  487. package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/test.json +177 -0
  488. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.2/craftbook.json +153 -0
  489. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.2/test.json +116 -0
  490. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.2/craftbook.json +132 -0
  491. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.2/test.json +95 -0
  492. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.2/craftbook.json +155 -0
  493. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.2/test.json +144 -0
  494. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/craftbook.json +155 -0
  495. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/test.json +145 -0
  496. package/data/craftbook-templates/th/threat-model/versions/1.0.2/craftbook.json +153 -0
  497. package/data/craftbook-templates/th/threat-model/versions/1.0.2/test.json +113 -0
  498. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/craftbook.json +115 -0
  499. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/test.json +106 -0
  500. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/craftbook.json +172 -0
  501. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/test.json +162 -0
  502. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/craftbook.json +119 -0
  503. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/test.json +113 -0
  504. package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/craftbook.json +152 -0
  505. package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/test.json +113 -0
  506. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.2/craftbook.json +127 -0
  507. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.2/test.json +101 -0
  508. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/craftbook.json +119 -0
  509. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/test.json +106 -0
  510. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.2/craftbook.json +183 -0
  511. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.2/test.json +154 -0
  512. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.2/craftbook.json +160 -0
  513. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.2/test.json +95 -0
  514. package/data/craftbook-templates/ve/version-bump/versions/1.0.2/craftbook.json +167 -0
  515. package/data/craftbook-templates/ve/version-bump/versions/1.0.2/test.json +95 -0
  516. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/craftbook.json +121 -0
  517. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/test.json +106 -0
  518. package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/craftbook.json +152 -0
  519. package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/test.json +100 -0
  520. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/craftbook.json +119 -0
  521. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/test.json +106 -0
  522. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/craftbook.json +166 -0
  523. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/test.json +127 -0
  524. package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/craftbook.json +155 -0
  525. package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/test.json +100 -0
  526. package/data/craftbook-templates/we/web-component/versions/1.0.2/craftbook.json +122 -0
  527. package/data/craftbook-templates/we/web-component/versions/1.0.2/test.json +100 -0
  528. package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/craftbook.json +159 -0
  529. package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/test.json +165 -0
  530. package/data/craftbook-templates/we/week-plan/versions/1.0.2/craftbook.json +152 -0
  531. package/data/craftbook-templates/we/week-plan/versions/1.0.2/test.json +258 -0
  532. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/craftbook.json +152 -0
  533. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/test.json +100 -0
  534. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/craftbook.json +118 -0
  535. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/test.json +107 -0
  536. package/data/craftbook-templates/we/weekly-review/versions/1.0.2/craftbook.json +119 -0
  537. package/data/craftbook-templates/we/weekly-review/versions/1.0.2/test.json +113 -0
  538. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/craftbook.json +152 -0
  539. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/test.json +141 -0
  540. package/data/craftbook-templates/wh/whitepaper/versions/1.0.2/craftbook.json +153 -0
  541. package/data/craftbook-templates/wh/whitepaper/versions/1.0.2/test.json +113 -0
  542. package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/craftbook.json +127 -0
  543. package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/test.json +148 -0
  544. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/craftbook.json +146 -0
  545. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/test.json +106 -0
  546. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Curate an Album smoke eval",
4
+ "objective": "Task-specific eval for the Curate an Album craftbook: sixty lake-weekend photos with burst clusters and eight caption notes become a 12-15 pick album manifest whose every file exists in the index, plus a short album story.",
5
+ "tags": [
6
+ "data"
7
+ ],
8
+ "prompt": "can you curate the lake weekend album from the imported photos? maybe 12-15 picks with captions plese — call it lake-weekend",
9
+ "setup": {
10
+ "projectName": "Photo Curator — Album Curate Eval",
11
+ "about": "Self-contained eval project for album-curate. The watched-folder import has already indexed the weekend's photos into photos/index.json (files + timestamps), and the vision pass left caption notes for the standout frames as photos/IMG_NNNN.txt. The album manifest goes under albums/ and the album's story goes to tasks/eval/report.md.",
12
+ "missionObjectives": "Use the Curate an Album craftbook/template, pick from the seeded photo index only (bursts resolve to one frame), and finish with albums/lake-weekend.json plus tasks/eval/report.md. No live services or real photo tools — the index and caption notes are the whole record.",
13
+ "files": [
14
+ {
15
+ "path": "photos/index.json",
16
+ "content": "[\n {\n \"file\": \"IMG_4001.jpg\",\n \"taken\": \"2026-06-19T17:40:00\"\n },\n {\n \"file\": \"IMG_4002.jpg\",\n \"taken\": \"2026-06-19T17:46:00\"\n },\n {\n \"file\": \"IMG_4003.jpg\",\n \"taken\": \"2026-06-19T17:51:00\"\n },\n {\n \"file\": \"IMG_4004.jpg\",\n \"taken\": \"2026-06-19T17:58:00\"\n },\n {\n \"file\": \"IMG_4005.jpg\",\n \"taken\": \"2026-06-19T17:58:08\"\n },\n {\n \"file\": \"IMG_4006.jpg\",\n \"taken\": \"2026-06-19T17:58:16\"\n },\n {\n \"file\": \"IMG_4007.jpg\",\n \"taken\": \"2026-06-19T18:10:00\"\n },\n {\n \"file\": \"IMG_4008.jpg\",\n \"taken\": \"2026-06-19T18:21:00\"\n },\n {\n \"file\": \"IMG_4009.jpg\",\n \"taken\": \"2026-06-19T18:35:00\"\n },\n {\n \"file\": \"IMG_4010.jpg\",\n \"taken\": \"2026-06-19T18:43:00\"\n },\n {\n \"file\": \"IMG_4011.jpg\",\n \"taken\": \"2026-06-19T18:55:00\"\n },\n {\n \"file\": \"IMG_4012.jpg\",\n \"taken\": \"2026-06-19T19:08:00\"\n },\n {\n \"file\": \"IMG_4013.jpg\",\n \"taken\": \"2026-06-20T08:05:00\"\n },\n {\n \"file\": \"IMG_4014.jpg\",\n \"taken\": \"2026-06-20T08:27:00\"\n },\n {\n \"file\": \"IMG_4015.jpg\",\n \"taken\": \"2026-06-20T08:52:00\"\n },\n {\n \"file\": \"IMG_4016.jpg\",\n \"taken\": \"2026-06-20T09:15:00\"\n },\n {\n \"file\": \"IMG_4017.jpg\",\n \"taken\": \"2026-06-20T09:15:07\"\n },\n {\n \"file\": \"IMG_4018.jpg\",\n \"taken\": \"2026-06-20T09:15:14\"\n },\n {\n \"file\": \"IMG_4019.jpg\",\n \"taken\": \"2026-06-20T09:15:21\"\n },\n {\n \"file\": \"IMG_4020.jpg\",\n \"taken\": \"2026-06-20T09:40:00\"\n },\n {\n \"file\": \"IMG_4021.jpg\",\n \"taken\": \"2026-06-20T10:05:00\"\n },\n {\n \"file\": \"IMG_4022.jpg\",\n \"taken\": \"2026-06-20T10:35:00\"\n },\n {\n \"file\": \"IMG_4023.jpg\",\n \"taken\": \"2026-06-20T10:55:00\"\n },\n {\n \"file\": \"IMG_4024.jpg\",\n \"taken\": \"2026-06-20T10:55:07\"\n },\n {\n \"file\": \"IMG_4025.jpg\",\n \"taken\": \"2026-06-20T10:55:14\"\n },\n {\n \"file\": \"IMG_4026.jpg\",\n \"taken\": \"2026-06-20T11:25:00\"\n },\n {\n \"file\": \"IMG_4027.jpg\",\n \"taken\": \"2026-06-20T11:50:00\"\n },\n {\n \"file\": \"IMG_4028.jpg\",\n \"taken\": \"2026-06-20T12:15:00\"\n },\n {\n \"file\": \"IMG_4029.jpg\",\n \"taken\": \"2026-06-20T12:45:00\"\n },\n {\n \"file\": \"IMG_4030.jpg\",\n \"taken\": \"2026-06-20T13:10:00\"\n },\n {\n \"file\": \"IMG_4031.jpg\",\n \"taken\": \"2026-06-20T13:10:07\"\n },\n {\n \"file\": \"IMG_4032.jpg\",\n \"taken\": \"2026-06-20T13:10:14\"\n },\n {\n \"file\": \"IMG_4033.jpg\",\n \"taken\": \"2026-06-20T13:10:21\"\n },\n {\n \"file\": \"IMG_4034.jpg\",\n \"taken\": \"2026-06-20T13:35:00\"\n },\n {\n \"file\": \"IMG_4035.jpg\",\n \"taken\": \"2026-06-20T14:00:00\"\n },\n {\n \"file\": \"IMG_4036.jpg\",\n \"taken\": \"2026-06-20T14:35:00\"\n },\n {\n \"file\": \"IMG_4037.jpg\",\n \"taken\": \"2026-06-20T15:05:00\"\n },\n {\n \"file\": \"IMG_4038.jpg\",\n \"taken\": \"2026-06-20T15:35:00\"\n },\n {\n \"file\": \"IMG_4039.jpg\",\n \"taken\": \"2026-06-20T16:05:00\"\n },\n {\n \"file\": \"IMG_4040.jpg\",\n \"taken\": \"2026-06-20T16:35:00\"\n },\n {\n \"file\": \"IMG_4041.jpg\",\n \"taken\": \"2026-06-20T16:35:07\"\n },\n {\n \"file\": \"IMG_4042.jpg\",\n \"taken\": \"2026-06-20T16:35:14\"\n },\n {\n \"file\": \"IMG_4043.jpg\",\n \"taken\": \"2026-06-20T17:05:00\"\n },\n {\n \"file\": \"IMG_4044.jpg\",\n \"taken\": \"2026-06-20T17:35:00\"\n },\n {\n \"file\": \"IMG_4045.jpg\",\n \"taken\": \"2026-06-21T07:55:00\"\n },\n {\n \"file\": \"IMG_4046.jpg\",\n \"taken\": \"2026-06-21T08:20:00\"\n },\n {\n \"file\": \"IMG_4047.jpg\",\n \"taken\": \"2026-06-21T08:55:00\"\n },\n {\n \"file\": \"IMG_4048.jpg\",\n \"taken\": \"2026-06-21T08:55:09\"\n },\n {\n \"file\": \"IMG_4049.jpg\",\n \"taken\": \"2026-06-21T08:55:18\"\n },\n {\n \"file\": \"IMG_4050.jpg\",\n \"taken\": \"2026-06-21T09:30:00\"\n },\n {\n \"file\": \"IMG_4051.jpg\",\n \"taken\": \"2026-06-21T10:05:00\"\n },\n {\n \"file\": \"IMG_4052.jpg\",\n \"taken\": \"2026-06-21T10:35:00\"\n },\n {\n \"file\": \"IMG_4053.jpg\",\n \"taken\": \"2026-06-21T11:05:00\"\n },\n {\n \"file\": \"IMG_4054.jpg\",\n \"taken\": \"2026-06-21T11:30:00\"\n },\n {\n \"file\": \"IMG_4055.jpg\",\n \"taken\": \"2026-06-21T11:55:00\"\n },\n {\n \"file\": \"IMG_4056.jpg\",\n \"taken\": \"2026-06-21T12:10:00\"\n }\n]\n"
17
+ },
18
+ {
19
+ "path": "photos/IMG_4003.txt",
20
+ "content": "CAPTION NOTE (pre-extracted from IMG_4003.jpg)\n\nArrival at the cabin - the kids racing each other down to the dock, evening light, bags still on the porch.\n"
21
+ },
22
+ {
23
+ "path": "photos/IMG_4012.txt",
24
+ "content": "CAPTION NOTE (pre-extracted from IMG_4012.jpg)\n\nGrandpa teaching knots on the dock, all four kids leaning in, Ada holding the rope wrong on purpose.\n"
25
+ },
26
+ {
27
+ "path": "photos/IMG_4016.txt",
28
+ "content": "CAPTION NOTE (pre-extracted from IMG_4016.jpg)\n\nThe cannonball mid-air - sharpest frame of the burst, water still glass beneath him.\n"
29
+ },
30
+ {
31
+ "path": "photos/IMG_4027.txt",
32
+ "content": "CAPTION NOTE (pre-extracted from IMG_4027.jpg)\n\nCampfire circle, one marshmallow properly on fire, Ada laughing with her whole face.\n"
33
+ },
34
+ {
35
+ "path": "photos/IMG_4033.txt",
36
+ "content": "CAPTION NOTE (pre-extracted from IMG_4033.jpg)\n\nSunrise over the lake from the porch, mist on the water, one empty coffee mug on the rail.\n"
37
+ },
38
+ {
39
+ "path": "photos/IMG_4042.txt",
40
+ "content": "CAPTION NOTE (pre-extracted from IMG_4042.jpg)\n\nThe big catch - Milo holding the perch at arm's length, equal parts proud and horrified.\n"
41
+ },
42
+ {
43
+ "path": "photos/IMG_4049.txt",
44
+ "content": "CAPTION NOTE (pre-extracted from IMG_4049.jpg)\n\nBoard-game afternoon on the porch while the rain came through, everyone mid-argument about the rules.\n"
45
+ },
46
+ {
47
+ "path": "photos/IMG_4057.txt",
48
+ "content": "CAPTION NOTE (pre-extracted from IMG_4057.jpg)\n\nPacking the car Sunday - everyone sunburned, half asleep, nobody wanting to say it's over.\n"
49
+ }
50
+ ],
51
+ "worker": {
52
+ "name": "Loes",
53
+ "role": "Curator"
54
+ },
55
+ "craftbookParams": {
56
+ "workPath": "tasks/eval"
57
+ }
58
+ },
59
+ "mocks": [],
60
+ "success": {
61
+ "summary": "albums/lake-weekend.json is a schema-clean manifest of 10+ picks that all exist in the photo index (no invented files, bursts collapsed), each with caption and reason, and tasks/eval/report.md tells the album's arc including the cuts.",
62
+ "deliverables": [
63
+ {
64
+ "path": "albums/lake-weekend.json",
65
+ "kind": "json",
66
+ "minBytes": 400,
67
+ "checks": [
68
+ {
69
+ "kind": "recordSchema",
70
+ "file": "albums/lake-weekend.json",
71
+ "fields": [
72
+ {
73
+ "name": "file",
74
+ "type": "nonempty"
75
+ },
76
+ {
77
+ "name": "caption",
78
+ "type": "nonempty"
79
+ },
80
+ {
81
+ "name": "reason",
82
+ "type": "nonempty"
83
+ }
84
+ ],
85
+ "minRows": 10
86
+ },
87
+ {
88
+ "kind": "valuesSubsetOf",
89
+ "file": "albums/lake-weekend.json",
90
+ "sourceFiles": [
91
+ "photos/index.json"
92
+ ],
93
+ "pattern": "(IMG_\\d{4}\\.jpg)",
94
+ "flags": "gi",
95
+ "minMatches": 10
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "path": "tasks/eval/report.md",
101
+ "kind": "markdown-report",
102
+ "minBytes": 500,
103
+ "checks": [
104
+ {
105
+ "kind": "contains",
106
+ "file": "tasks/eval/report.md",
107
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
108
+ "flags": "i"
109
+ },
110
+ {
111
+ "kind": "contains",
112
+ "file": "tasks/eval/report.md",
113
+ "pattern": "dupl|near-dup|burst|similar",
114
+ "flags": "i",
115
+ "label": "the cull is explained — bursts and near-duplicates named"
116
+ }
117
+ ]
118
+ }
119
+ ]
120
+ },
121
+ "rubric": {
122
+ "artifact": {
123
+ "path": "tasks/eval/report.md",
124
+ "kind": "markdown"
125
+ },
126
+ "axes": [
127
+ {
128
+ "name": "curation",
129
+ "description": "The picks are the frames that carry the weekend — the caption-noted standouts are in, filler is out, and the count respects the asked size."
130
+ },
131
+ {
132
+ "name": "dedupe",
133
+ "description": "Each burst cluster (photos seconds apart) contributes at most one frame, chosen for a stated reason."
134
+ },
135
+ {
136
+ "name": "captions",
137
+ "description": "Captions are warm and specific to what the frame shows, leaning on the caption notes where they exist."
138
+ },
139
+ {
140
+ "name": "story-arc",
141
+ "description": "The pick order and the report's arc read as the weekend start to end — arrival to packing the car."
142
+ }
143
+ ]
144
+ },
145
+ "qualityFocus": [
146
+ "no invented photos",
147
+ "burst dedupe",
148
+ "honest reasons per pick"
149
+ ]
150
+ }
@@ -0,0 +1,113 @@
1
+ {
2
+ "id": "alert-rules",
3
+ "name": "Monitoring Alert Rules",
4
+ "description": "Author a set of monitoring/alerting rules as a deployable config (Prometheus alerting rules, Grafana/Alertmanager YAML, or a CloudWatch-style spec): the right signals, thresholds, severities, for-durations, and routing labels. Scopes the SLOs and alert philosophy FIRST (what to alert on, symptom-vs-cause, thresholds and burn windows, severity ladder, noise budget), then a developer writes the rules config to that spec, then a reviewer validates for completeness, dedupe, and anti-flapping. Scoping thresholds and severities before writing YAML is what produces actionable, low-noise alerts instead of a wall of CPU-over-80% pages. Use for alerting rules, Prometheus alerts, SLO monitoring, on-call paging rules, and reducing alert fatigue.\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 alerts (planner) — lock signals, thresholds, severities, and routing → gated on artifact `{{workPath}}/scope.md` (markdown-notes)\n2. Build the rules (developer) — write the alerting-rules config to the locked spec → gated on `alerts.yaml` (yaml-spec)\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
+ "write alert rules",
8
+ "prometheus alerts",
9
+ "monitoring rules",
10
+ "set up alerting",
11
+ "SLO alerts"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "scope",
16
+ "name": "Scope the alerts",
17
+ "description": "lock signals, thresholds, severities, and routing",
18
+ "prompt": "Define the alerting philosophy before writing config. (1) List the services/SLOs to cover and, for each, the symptom-level signals that matter (latency p99, error rate, saturation, availability) — prefer alerting on user-facing symptoms over raw causes. (2) For every signal lock a threshold, an evaluation/for-duration (to suppress transient spikes), and a severity from a fixed ladder (page = wake someone, ticket = next business day, info = dashboard-only). (3) Define routing labels (team/service/severity) and which severities page. (4) State a noise budget (e.g. no more than N page-level rules) and require a runbook link annotation on every page-level alert. (5) Pick the output format (Prometheus alerting-rules YAML by default). Write an acceptance-criteria checklist ('every SLO has at least one symptom alert', 'every alert has expr + for + severity + summary + runbook annotation', 'no duplicate/overlapping alerts', 'page-level alerts within the noise budget', 'config is valid YAML for the target system') plus the table of signals/thresholds to {{workPath}}/scope.md via write_task_note AND the produces path. No YAML yet.\n\nThe deliverable `{{workPath}}/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": "{{workPath}}/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": "{{workPath}}/scope.md",
32
+ "bytes": 120,
33
+ "artifact": true
34
+ },
35
+ {
36
+ "kind": "sniff",
37
+ "file": "{{workPath}}/scope.md",
38
+ "sniff": "nonempty",
39
+ "artifact": true
40
+ }
41
+ ],
42
+ "onReject": "scope",
43
+ "maxAttempts": 3
44
+ },
45
+ "next": "build"
46
+ },
47
+ {
48
+ "id": "build",
49
+ "name": "Build the rules",
50
+ "description": "write the alerting-rules config to the locked spec",
51
+ "prompt": "Write alerts.yaml as a valid alerting-rules config for the target system using the locked signals. For EACH alert author: a clear alert name, the metric expression (expr) implementing the threshold, a for: duration (non-zero, to suppress flapping), labels (severity + routing), and annotations (a one-line summary with templated context, a description, and a runbook_url for page-level alerts). Group related alerts. Keep thresholds and for-durations exactly as scoped. Ensure the file parses as YAML and matches the target's schema (e.g. groups[].rules[].alert/expr/for/labels/annotations for Prometheus). Cover every scoped SLO with at least one symptom-level alert, add no alerts that weren't scoped, avoid duplicate/overlapping rules, and do not exceed the page-level noise budget. On a loop-back fix only the flagged rules. Write the path and an alert count (by severity) to notes via write_task_note.",
52
+ "suggestedRole": "developer",
53
+ "advanceWhen": {
54
+ "file": "alerts.yaml",
55
+ "minBytes": 1,
56
+ "sniff": "nonempty"
57
+ },
58
+ "gate": {
59
+ "at": "completion",
60
+ "checks": [
61
+ {
62
+ "kind": "minBytes",
63
+ "file": "alerts.yaml",
64
+ "bytes": 200
65
+ },
66
+ {
67
+ "kind": "sniff",
68
+ "file": "alerts.yaml",
69
+ "sniff": "nonempty"
70
+ }
71
+ ],
72
+ "onReject": "build",
73
+ "maxAttempts": 4
74
+ },
75
+ "next": "evaluate"
76
+ },
77
+ {
78
+ "id": "evaluate",
79
+ "name": "Evaluate",
80
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
81
+ "prompt": "Validate alerts.yaml against every locked criterion. (1) Parse the YAML — invalid YAML or non-conformance to the target system's rule schema (e.g. groups[].rules[]) is an immediate FAIL. (2) Confirm every scoped SLO is covered by at least one symptom-level alert; FAIL on any missing SLO. (3) Check each alert carries expr, a non-zero for: duration, a severity from the ladder, routing labels, a summary, and — for page-level alerts — a runbook_url annotation. (4) Scan for duplicate or overlapping rules (two firing on the same condition) and flag them. (5) Confirm page-level alerts stay within the noise budget, and sanity-check 2-3 thresholds and for-durations against the scope. Write PASS/FAIL per criterion with the specific offending rule names.\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.",
82
+ "suggestedRole": "reviewer",
83
+ "consumes": [
84
+ {
85
+ "file": "alerts.yaml"
86
+ }
87
+ ],
88
+ "next": "build"
89
+ },
90
+ {
91
+ "id": "finish",
92
+ "name": "Finish",
93
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
94
+ "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.",
95
+ "suggestedRole": "developer",
96
+ "terminal": true
97
+ }
98
+ ],
99
+ "version": "1.0.2",
100
+ "releasedAt": "2026-08-21T00:00:00Z",
101
+ "paramSchema": {
102
+ "type": "object",
103
+ "properties": {
104
+ "workPath": {
105
+ "type": "string",
106
+ "title": "Working folder",
107
+ "description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
108
+ "default": "{{task.dir}}"
109
+ }
110
+ }
111
+ },
112
+ "minGezelVersion": "1.26233"
113
+ }
@@ -0,0 +1,148 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Prometheus alerts from scoped SLO brief",
4
+ "objective": "Measure whether the alert-rules craftbook scopes symptom alerts before writing deployable, low-noise alerting YAML.",
5
+ "tags": [
6
+ "html-page"
7
+ ],
8
+ "prompt": "In the `Alert Rules Eval` project, read `source/slo-brief.md` and write `alerts.yaml` as Prometheus-style alerting rules. Scope the signals and noise budget first, then produce YAML with groups, alert names, expr, for, severity/routing labels, summaries, descriptions, and runbook_url annotations for page alerts.",
9
+ "setup": {
10
+ "projectName": "Alert Rules Eval",
11
+ "about": "Self-contained eval project for alert-rules. The service SLO brief is in workspace/source/slo-brief.md and the deliverable is workspace/alerts.yaml.",
12
+ "missionObjectives": "Produce low-noise alerting rules from the seeded SLO brief with symptom signals, thresholds, severities, runbook links, and routing labels.",
13
+ "files": [
14
+ {
15
+ "path": "source/slo-brief.md",
16
+ "content": "# Alert scope brief\n\nService: Harbor Payments checkout-api and webhook-worker.\n\nSLOs:\n- Checkout p99 latency should stay below 800 ms over 10 minutes.\n- Checkout 5xx error rate should stay below 2% over 5 minutes.\n- Webhook retry backlog should stay below 5,000 jobs for more than 10 minutes.\n\nRouting:\n- page severity routes to team=payments, service=checkout-api or webhook-worker.\n- ticket severity routes to team=payments during business hours.\n- Page-level noise budget: no more than two page alerts.\n- Required runbooks: https://runbooks.example/payments/checkout-latency, https://runbooks.example/payments/checkout-errors, https://runbooks.example/payments/webhook-backlog.\n"
17
+ }
18
+ ],
19
+ "worker": {
20
+ "name": "Aafke",
21
+ "role": "SRE"
22
+ },
23
+ "craftbookParams": {
24
+ "workPath": "tasks/eval"
25
+ }
26
+ },
27
+ "mocks": [],
28
+ "success": {
29
+ "summary": "workspace/alerts.yaml is a Prometheus-style rule file with scoped symptom signals, thresholds, severities, routing, runbook annotations, and noise-budget evidence.",
30
+ "deliverables": [
31
+ {
32
+ "path": "alerts.yaml",
33
+ "kind": "yaml-spec",
34
+ "minBytes": 1200,
35
+ "checks": [
36
+ {
37
+ "kind": "prometheusAlerts",
38
+ "file": "alerts.yaml",
39
+ "minRules": 3,
40
+ "maxPageAlerts": 2,
41
+ "allowedSeverities": [
42
+ "page",
43
+ "ticket",
44
+ "info"
45
+ ],
46
+ "requiredServices": [
47
+ "checkout-api",
48
+ "webhook-worker"
49
+ ],
50
+ "requiredRunbookUrls": [
51
+ "https://runbooks.example/payments/checkout-latency",
52
+ "https://runbooks.example/payments/checkout-errors",
53
+ "https://runbooks.example/payments/webhook-backlog"
54
+ ]
55
+ },
56
+ {
57
+ "kind": "contains",
58
+ "file": "alerts.yaml",
59
+ "pattern": "groups:|rules:|alert:|expr:|for:",
60
+ "flags": "i"
61
+ },
62
+ {
63
+ "kind": "contains",
64
+ "file": "alerts.yaml",
65
+ "pattern": "severity:|team:|service:",
66
+ "flags": "i"
67
+ },
68
+ {
69
+ "kind": "contains",
70
+ "file": "alerts.yaml",
71
+ "pattern": "runbook_url|runbook",
72
+ "flags": "i"
73
+ },
74
+ {
75
+ "kind": "contains",
76
+ "file": "alerts.yaml",
77
+ "pattern": "checkout-api|webhook-worker|latency|error|backlog",
78
+ "flags": "i"
79
+ },
80
+ {
81
+ "kind": "contains",
82
+ "file": "alerts.yaml",
83
+ "pattern": "800|0\\.8|2%|0\\.02|5000|5,000|10m|5m",
84
+ "flags": "i"
85
+ },
86
+ {
87
+ "kind": "contains",
88
+ "file": "alerts.yaml",
89
+ "pattern": "histogram_quantile|p99|0\\.99",
90
+ "flags": "i",
91
+ "label": "checkout latency alert uses a p99 signal"
92
+ },
93
+ {
94
+ "kind": "contains",
95
+ "file": "alerts.yaml",
96
+ "pattern": "5xx|5\\.\\.|status",
97
+ "flags": "i",
98
+ "label": "checkout error alert targets 5xx rate"
99
+ },
100
+ {
101
+ "kind": "contains",
102
+ "file": "alerts.yaml",
103
+ "pattern": "retry|backlog|5000|5,000",
104
+ "flags": "i",
105
+ "label": "webhook backlog alert uses retry backlog threshold"
106
+ },
107
+ {
108
+ "kind": "notContains",
109
+ "file": "alerts.yaml",
110
+ "pattern": "CPU|memory|disk|node_cpu|node_memory|node_filesystem",
111
+ "flags": "i",
112
+ "label": "avoid raw infrastructure cause alerts not present in the SLO brief"
113
+ }
114
+ ]
115
+ }
116
+ ]
117
+ },
118
+ "rubric": {
119
+ "artifact": {
120
+ "path": "alerts.yaml",
121
+ "kind": "yaml"
122
+ },
123
+ "axes": [
124
+ {
125
+ "name": "structure",
126
+ "description": "Layout and hierarchy fit the content; sections are scannable and coherent."
127
+ },
128
+ {
129
+ "name": "grounding",
130
+ "description": "Seeded source content is used faithfully — no invented facts or dropped requirements."
131
+ },
132
+ {
133
+ "name": "interactivity",
134
+ "description": "Controls and states the page claims to offer actually work."
135
+ },
136
+ {
137
+ "name": "polish",
138
+ "description": "Styling is intentional and responsive rather than unstyled or broken."
139
+ }
140
+ ]
141
+ },
142
+ "qualityFocus": [
143
+ "symptom alerts",
144
+ "noise budget",
145
+ "runbook annotations",
146
+ "routing labels"
147
+ ]
148
+ }
@@ -0,0 +1,154 @@
1
+ {
2
+ "id": "alt-text-pass",
3
+ "name": "Alt-Text Pass",
4
+ "description": "Generate accurate, WCAG-appropriate alt text for every image referenced by a site or folder and apply it back into the markup. Scope FIRST which images are content vs decorative (decorative images get empty alt, not a description) and the voice/length rules, because the most common alt-text failure is verbose, redundant, or wrong-purpose descriptions. Then caption each content image from what is actually visible and write the alt attributes back into the HTML. Covers accessibility, alt text, image descriptions, WCAG compliance, screen-reader support, and a11y retrofits.\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 pass (planner) — list images, classify content vs decorative, set rules → gated on artifact `{{workPath}}/scope.md` (markdown-notes)\n2. Caption content images (developer) — write alt text from what is actually visible → gated on artifact `{{workPath}}/caption.md` (markdown-notes)\n3. Apply to markup (developer) — write alt attributes back into the HTML → gated on `index.html` (html-page)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "scope",
6
+ "triggers": [
7
+ "add alt text",
8
+ "generate alt text for images",
9
+ "make images accessible",
10
+ "alt text for my site",
11
+ "wcag image descriptions"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "scope",
16
+ "name": "Scope the pass",
17
+ "description": "list images, classify content vs decorative, set rules",
18
+ "prompt": "1) Find every image reference (img tags, CSS background images, picture/source) in the target file(s) or folder and list each with its current alt (if any) and surrounding context. 2) Classify each as CONTENT (conveys information → needs a description) or DECORATIVE (purely visual → must get alt=\"\"). 3) Set the rules: alt text is concise (roughly under ~125 chars), describes purpose/content not 'image of', never duplicates adjacent caption text, and conveys any text embedded in the image. 4) Write an acceptance-criteria checklist: 'every content image has non-empty, purposeful alt', 'every decorative image has alt=\"\"', 'no alt begins with \"image of\"/\"picture of\"', 'embedded text is transcribed', 'no alt is redundant with nearby visible text'. 5) Record the inventory + rules + checklist via write_task_note AND to {{workPath}}/scope.md.\n\nThe deliverable `{{workPath}}/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": "{{workPath}}/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": "{{workPath}}/scope.md",
32
+ "bytes": 120,
33
+ "artifact": true
34
+ },
35
+ {
36
+ "kind": "sniff",
37
+ "file": "{{workPath}}/scope.md",
38
+ "sniff": "nonempty",
39
+ "artifact": true
40
+ }
41
+ ],
42
+ "onReject": "scope",
43
+ "maxAttempts": 3
44
+ },
45
+ "next": "caption"
46
+ },
47
+ {
48
+ "id": "caption",
49
+ "name": "Caption content images",
50
+ "description": "write alt text from what is actually visible",
51
+ "prompt": "1) Read scope.md's inventory and rules. 2) For each CONTENT image, use the vision capability to look at the actual image and write alt text that conveys its purpose in context (a chart's takeaway, a product's key detail, a screenshot's salient state) — not a literal pixel inventory. 3) Transcribe any meaningful text baked into the image. 4) Keep each under the length rule and avoid 'image of'/'photo of' openers. 5) For DECORATIVE images, record alt=\"\" (intentional empty). 6) Produce a mapping of image → alt string. write_task_note the mapping. Good looks like: a blind user would understand each image's role from your text alone.\n\nThe deliverable `{{workPath}}/caption.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": "developer",
53
+ "advanceWhen": {
54
+ "file": "{{workPath}}/caption.md",
55
+ "minBytes": 1,
56
+ "sniff": "nonempty",
57
+ "artifact": true
58
+ },
59
+ "gate": {
60
+ "at": "completion",
61
+ "checks": [
62
+ {
63
+ "kind": "minBytes",
64
+ "file": "{{workPath}}/caption.md",
65
+ "bytes": 120,
66
+ "artifact": true
67
+ },
68
+ {
69
+ "kind": "sniff",
70
+ "file": "{{workPath}}/caption.md",
71
+ "sniff": "nonempty",
72
+ "artifact": true
73
+ }
74
+ ],
75
+ "onReject": "caption",
76
+ "maxAttempts": 3
77
+ },
78
+ "next": "apply"
79
+ },
80
+ {
81
+ "id": "apply",
82
+ "name": "Apply to markup",
83
+ "description": "write alt attributes back into the HTML",
84
+ "prompt": "1) Read the caption mapping. 2) Edit the source HTML so every img has the correct alt attribute (content → its description, decorative → alt=\"\"). 3) For CSS background images that carry meaning, add an accessible equivalent (aria-label or a visually-hidden span) since they cannot take alt. 4) Do not alter layout, other attributes, or content — only the accessibility attributes. 5) Confirm the HTML still parses/renders. 6) On a loop-back, fix only the images the reviewer flagged. 7) write_task_note the edited file path and a count of images updated (content vs decorative). The deliverable is the updated index.html.",
85
+ "suggestedRole": "developer",
86
+ "advanceWhen": {
87
+ "file": "index.html",
88
+ "minBytes": 1,
89
+ "sniff": "html-complete"
90
+ },
91
+ "gate": {
92
+ "at": "completion",
93
+ "checks": [
94
+ {
95
+ "kind": "minBytes",
96
+ "file": "index.html",
97
+ "bytes": 800
98
+ },
99
+ {
100
+ "kind": "htmlLint",
101
+ "file": "index.html"
102
+ }
103
+ ],
104
+ "scripts": [
105
+ {
106
+ "name": "checkHtmlComplete",
107
+ "scope": "standard",
108
+ "inputs": {
109
+ "file": "index.html"
110
+ }
111
+ }
112
+ ],
113
+ "onReject": "apply",
114
+ "maxAttempts": 4
115
+ },
116
+ "next": "evaluate"
117
+ },
118
+ {
119
+ "id": "evaluate",
120
+ "name": "Evaluate",
121
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
122
+ "prompt": "1) Open index.html and enumerate every image. 2) Cross-check against scope.md: every content image has non-empty purposeful alt; every decorative image has alt=\"\" (PASS/FAIL each class). 3) Verify no alt opens with 'image of'/'picture of' and none is over-long or redundant with adjacent text. 4) Spot-check 3 captions against the real images — accurate and purposeful? 5) Confirm CSS-background meaningful images got an aria equivalent. 6) Write PASS/FAIL per criterion. Any failure → loop back to apply (or caption if a description is wrong).\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: \"apply\" })` 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.",
123
+ "suggestedRole": "reviewer",
124
+ "consumes": [
125
+ {
126
+ "file": "index.html"
127
+ }
128
+ ],
129
+ "next": "apply"
130
+ },
131
+ {
132
+ "id": "finish",
133
+ "name": "Finish",
134
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
135
+ "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.",
136
+ "suggestedRole": "developer",
137
+ "terminal": true
138
+ }
139
+ ],
140
+ "version": "1.0.2",
141
+ "releasedAt": "2026-08-21T00:00:00Z",
142
+ "paramSchema": {
143
+ "type": "object",
144
+ "properties": {
145
+ "workPath": {
146
+ "type": "string",
147
+ "title": "Working folder",
148
+ "description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
149
+ "default": "{{task.dir}}"
150
+ }
151
+ }
152
+ },
153
+ "minGezelVersion": "1.26233"
154
+ }