@bendyline/gilde 0.1.37 → 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 (551) 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.3/craftbook.json +9 -8
  361. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.4/craftbook.json +397 -0
  362. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.4/test.json +242 -0
  363. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/craftbook.json +153 -0
  364. package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/test.json +113 -0
  365. package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/craftbook.json +171 -0
  366. package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/test.json +120 -0
  367. package/data/craftbook-templates/pr/practice-session/versions/1.0.2/craftbook.json +127 -0
  368. package/data/craftbook-templates/pr/practice-session/versions/1.0.2/test.json +117 -0
  369. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/craftbook.json +152 -0
  370. package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/test.json +100 -0
  371. package/data/craftbook-templates/pr/press-release/versions/1.0.2/craftbook.json +155 -0
  372. package/data/craftbook-templates/pr/press-release/versions/1.0.2/test.json +359 -0
  373. package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/craftbook.json +121 -0
  374. package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/test.json +153 -0
  375. package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/craftbook.json +196 -0
  376. package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/test.json +100 -0
  377. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/craftbook.json +117 -0
  378. package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/test.json +113 -0
  379. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/craftbook.json +155 -0
  380. package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/test.json +113 -0
  381. package/data/craftbook-templates/pu/pull-request-review/versions/1.7.1/craftbook.json +273 -0
  382. package/data/craftbook-templates/pu/pull-request-review/versions/1.7.1/test.json +141 -0
  383. package/data/craftbook-templates/pu/pull-request-review/versions/1.7.2/craftbook.json +279 -0
  384. package/data/craftbook-templates/pu/pull-request-review/versions/1.7.2/test.json +144 -0
  385. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/craftbook.json +133 -0
  386. package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/test.json +126 -0
  387. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/craftbook.json +167 -0
  388. package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/test.json +100 -0
  389. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.2/craftbook.json +152 -0
  390. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.2/test.json +116 -0
  391. package/data/craftbook-templates/re/reading-list/versions/1.0.2/craftbook.json +119 -0
  392. package/data/craftbook-templates/re/reading-list/versions/1.0.2/test.json +113 -0
  393. package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/craftbook.json +152 -0
  394. package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/test.json +152 -0
  395. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/craftbook.json +152 -0
  396. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/test.json +107 -0
  397. package/data/craftbook-templates/re/reception-report/versions/1.0.1/craftbook.json +177 -0
  398. package/data/craftbook-templates/re/reception-report/versions/1.0.1/test.json +169 -0
  399. package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/craftbook.json +152 -0
  400. package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/test.json +131 -0
  401. package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/craftbook.json +127 -0
  402. package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/test.json +113 -0
  403. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/craftbook.json +160 -0
  404. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/test.json +107 -0
  405. package/data/craftbook-templates/re/refactor-module/versions/1.0.3/craftbook.json +160 -0
  406. package/data/craftbook-templates/re/refactor-module/versions/1.0.3/test.json +95 -0
  407. package/data/craftbook-templates/re/regex-builder/versions/1.0.2/craftbook.json +159 -0
  408. package/data/craftbook-templates/re/regex-builder/versions/1.0.2/test.json +95 -0
  409. package/data/craftbook-templates/re/release-announcement/versions/1.0.2/craftbook.json +171 -0
  410. package/data/craftbook-templates/re/release-announcement/versions/1.0.2/test.json +205 -0
  411. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/craftbook.json +226 -0
  412. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/test.json +141 -0
  413. package/data/craftbook-templates/re/release-notes/versions/1.0.2/craftbook.json +171 -0
  414. package/data/craftbook-templates/re/release-notes/versions/1.0.2/test.json +114 -0
  415. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.2/craftbook.json +159 -0
  416. package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.2/test.json +165 -0
  417. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.2/craftbook.json +153 -0
  418. package/data/craftbook-templates/re/release-readiness-review/versions/1.0.2/test.json +113 -0
  419. package/data/craftbook-templates/re/reliability-review/versions/1.0.2/craftbook.json +165 -0
  420. package/data/craftbook-templates/re/reliability-review/versions/1.0.2/test.json +115 -0
  421. package/data/craftbook-templates/re/report-pdf/versions/1.1.2/craftbook.json +185 -0
  422. package/data/craftbook-templates/re/report-pdf/versions/1.1.2/test.json +101 -0
  423. package/data/craftbook-templates/re/research-report/versions/1.0.2/craftbook.json +158 -0
  424. package/data/craftbook-templates/re/research-report/versions/1.0.2/test.json +113 -0
  425. package/data/craftbook-templates/re/research-to-document/versions/1.2.2/craftbook.json +228 -0
  426. package/data/craftbook-templates/re/research-to-document/versions/1.2.2/test.json +243 -0
  427. package/data/craftbook-templates/re/rest-api/versions/1.0.3/craftbook.json +159 -0
  428. package/data/craftbook-templates/re/rest-api/versions/1.0.3/test.json +390 -0
  429. package/data/craftbook-templates/re/resume-cv/versions/1.0.2/craftbook.json +155 -0
  430. package/data/craftbook-templates/re/resume-cv/versions/1.0.2/test.json +100 -0
  431. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/craftbook.json +171 -0
  432. package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/test.json +165 -0
  433. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.4/craftbook.json +425 -0
  434. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.4/test.json +157 -0
  435. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/craftbook.json +179 -0
  436. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/test.json +140 -0
  437. package/data/craftbook-templates/ru/runbook/versions/1.0.2/craftbook.json +157 -0
  438. package/data/craftbook-templates/ru/runbook/versions/1.0.2/test.json +121 -0
  439. package/data/craftbook-templates/sc/schema-migration/versions/1.0.2/craftbook.json +156 -0
  440. package/data/craftbook-templates/sc/schema-migration/versions/1.0.2/test.json +106 -0
  441. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/craftbook.json +152 -0
  442. package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/test.json +165 -0
  443. package/data/craftbook-templates/sc/script-automation/versions/1.0.2/craftbook.json +160 -0
  444. package/data/craftbook-templates/sc/script-automation/versions/1.0.2/test.json +165 -0
  445. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/craftbook.json +159 -0
  446. package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/test.json +93 -0
  447. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/craftbook.json +152 -0
  448. package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/test.json +113 -0
  449. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.4/craftbook.json +452 -0
  450. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.4/test.json +157 -0
  451. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/craftbook.json +117 -0
  452. package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/test.json +100 -0
  453. package/data/craftbook-templates/so/social-digest/versions/1.0.1/craftbook.json +140 -0
  454. package/data/craftbook-templates/so/social-digest/versions/1.0.1/test.json +169 -0
  455. package/data/craftbook-templates/so/social-thread/versions/1.0.2/craftbook.json +119 -0
  456. package/data/craftbook-templates/so/social-thread/versions/1.0.2/test.json +113 -0
  457. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/craftbook.json +152 -0
  458. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/test.json +161 -0
  459. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/craftbook.json +155 -0
  460. package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/test.json +100 -0
  461. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/craftbook.json +448 -0
  462. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/test.json +165 -0
  463. package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/craftbook.json +155 -0
  464. package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/test.json +107 -0
  465. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/craftbook.json +121 -0
  466. package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/test.json +163 -0
  467. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/craftbook.json +149 -0
  468. package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/test.json +106 -0
  469. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/craftbook.json +121 -0
  470. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/test.json +107 -0
  471. package/data/craftbook-templates/st/standup-summary/versions/1.0.2/craftbook.json +119 -0
  472. package/data/craftbook-templates/st/standup-summary/versions/1.0.2/test.json +113 -0
  473. package/data/craftbook-templates/st/state-machine/versions/1.0.2/craftbook.json +159 -0
  474. package/data/craftbook-templates/st/state-machine/versions/1.0.2/test.json +95 -0
  475. package/data/craftbook-templates/st/status-report/versions/1.0.2/craftbook.json +158 -0
  476. package/data/craftbook-templates/st/status-report/versions/1.0.2/test.json +113 -0
  477. package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/craftbook.json +152 -0
  478. package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/test.json +107 -0
  479. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/craftbook.json +140 -0
  480. package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/test.json +106 -0
  481. package/data/craftbook-templates/su/summarize-long/versions/1.0.2/craftbook.json +119 -0
  482. package/data/craftbook-templates/su/summarize-long/versions/1.0.2/test.json +113 -0
  483. package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/craftbook.json +153 -0
  484. package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/test.json +107 -0
  485. package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/craftbook.json +122 -0
  486. package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/test.json +100 -0
  487. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/craftbook.json +126 -0
  488. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/test.json +100 -0
  489. package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/craftbook.json +420 -0
  490. package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/test.json +177 -0
  491. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.2/craftbook.json +153 -0
  492. package/data/craftbook-templates/te/test-coverage-review/versions/1.1.2/test.json +116 -0
  493. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.2/craftbook.json +132 -0
  494. package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.2/test.json +95 -0
  495. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.2/craftbook.json +155 -0
  496. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.2/test.json +144 -0
  497. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/craftbook.json +155 -0
  498. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/test.json +145 -0
  499. package/data/craftbook-templates/th/threat-model/versions/1.0.2/craftbook.json +153 -0
  500. package/data/craftbook-templates/th/threat-model/versions/1.0.2/test.json +113 -0
  501. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/craftbook.json +115 -0
  502. package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/test.json +106 -0
  503. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/craftbook.json +172 -0
  504. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/test.json +162 -0
  505. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/craftbook.json +119 -0
  506. package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/test.json +113 -0
  507. package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/craftbook.json +152 -0
  508. package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/test.json +113 -0
  509. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.2/craftbook.json +127 -0
  510. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.2/test.json +101 -0
  511. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/craftbook.json +119 -0
  512. package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/test.json +106 -0
  513. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.2/craftbook.json +183 -0
  514. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.2/test.json +154 -0
  515. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.2/craftbook.json +160 -0
  516. package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.2/test.json +95 -0
  517. package/data/craftbook-templates/ve/version-bump/versions/1.0.2/craftbook.json +167 -0
  518. package/data/craftbook-templates/ve/version-bump/versions/1.0.2/test.json +95 -0
  519. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/craftbook.json +121 -0
  520. package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/test.json +106 -0
  521. package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/craftbook.json +152 -0
  522. package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/test.json +100 -0
  523. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/craftbook.json +119 -0
  524. package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/test.json +106 -0
  525. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/craftbook.json +166 -0
  526. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/test.json +127 -0
  527. package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/craftbook.json +155 -0
  528. package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/test.json +100 -0
  529. package/data/craftbook-templates/we/web-component/versions/1.0.2/craftbook.json +122 -0
  530. package/data/craftbook-templates/we/web-component/versions/1.0.2/test.json +100 -0
  531. package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/craftbook.json +159 -0
  532. package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/test.json +165 -0
  533. package/data/craftbook-templates/we/week-plan/versions/1.0.2/craftbook.json +152 -0
  534. package/data/craftbook-templates/we/week-plan/versions/1.0.2/test.json +258 -0
  535. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/craftbook.json +152 -0
  536. package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/test.json +100 -0
  537. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/craftbook.json +118 -0
  538. package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/test.json +107 -0
  539. package/data/craftbook-templates/we/weekly-review/versions/1.0.2/craftbook.json +119 -0
  540. package/data/craftbook-templates/we/weekly-review/versions/1.0.2/test.json +113 -0
  541. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/craftbook.json +152 -0
  542. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/test.json +141 -0
  543. package/data/craftbook-templates/wh/whitepaper/versions/1.0.2/craftbook.json +153 -0
  544. package/data/craftbook-templates/wh/whitepaper/versions/1.0.2/test.json +113 -0
  545. package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/craftbook.json +127 -0
  546. package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/test.json +148 -0
  547. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/craftbook.json +146 -0
  548. package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/test.json +106 -0
  549. package/package.json +1 -1
  550. package/schemas/craftbook-doc.schema.json +4 -2
  551. package/schemas/craftbook-template-version.schema.json +4 -2
@@ -0,0 +1,117 @@
1
+ {
2
+ "id": "seo-meta-pack",
3
+ "name": "SEO Metadata Pack",
4
+ "description": "Generate a complete on-page SEO metadata pack for a set of pages: it first scopes each page's primary keyword and search intent and the length/format rules (title tag, meta description, Open Graph, Twitter card, slug), then writes optimized, unique metadata for every page that respects pixel/character limits and front-loads the keyword, producing a structured JSON file ready to drop into a CMS or templating layer. Covers SEO metadata, meta tags, title tags, meta descriptions, Open Graph tags, social cards, and on-page SEO. Scoping the keyword and limits per page before writing is the point: a small model that fixes the rules first produces unique, limit-respecting tags across the whole set, instead of duplicate titles and descriptions that get truncated in the SERP.\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. Metadata scope (planner) — lock per-page keyword/intent and the metadata field rules → gated on artifact `{{workPath}}/scope.md` (markdown-notes)\n2. Write the metadata (copywriter) — write unique, limit-respecting metadata for every page → gated on `seo-meta.json` (json)\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 seo meta tags",
8
+ "generate meta descriptions",
9
+ "title tags for pages",
10
+ "open graph tags",
11
+ "seo metadata pack"
12
+ ],
13
+ "steps": [
14
+ {
15
+ "id": "scope",
16
+ "name": "Metadata scope",
17
+ "description": "lock per-page keyword/intent and the metadata field rules",
18
+ "prompt": "1) List the pages in scope; for EACH, identify its primary keyword/phrase and search intent in one line. 2) Lock the field schema and limits: title tag (50-60 chars, keyword near front, brand suffix policy), meta description (140-155 chars, includes keyword + a soft CTA), URL slug (lowercase, hyphenated, keyword-based), Open Graph (og:title, og:description, og:type), and Twitter card (card type, title, description). 3) Set the duplicate policy: every title and description must be UNIQUE across pages. Write an acceptance-criteria checklist (e.g. 'every page has all fields'; 'titles 50-60 chars, descriptions 140-155 chars'; 'primary keyword present and front-loaded in title'; 'no duplicate titles or descriptions across pages'; 'slugs are valid kebab-case'; 'OG/Twitter fields populated'). Use write_task_note for the per-page keyword map + field rules + checklist, and write the same to the produces path. No metadata 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": "Write the metadata",
50
+ "description": "write unique, limit-respecting metadata for every page",
51
+ "prompt": "Write the metadata for EVERY page in scope to the locked schema. 1) For each page: a title tag (50-60 chars, primary keyword front-loaded, brand suffix per policy), a meta description (140-155 chars with the keyword and a soft CTA), a kebab-case slug, and the Open Graph + Twitter card fields. 2) Count characters for title and description and stay within range — do not exceed limits or they truncate in the SERP. 3) Ensure NO title and NO description is duplicated across pages. 4) Make each compelling and accurate to the page, not keyword-stuffed. 5) Output a single valid JSON array, one object per page: {\"page\", \"title\", \"titleChars\", \"metaDescription\", \"descChars\", \"slug\", \"og\": {\"title\",\"description\",\"type\"}, \"twitter\": {\"card\",\"title\",\"description\"}}. Save to the produces path and note the page count.",
52
+ "suggestedRole": "copywriter",
53
+ "advanceWhen": {
54
+ "file": "seo-meta.json",
55
+ "minBytes": 1,
56
+ "sniff": "json-valid"
57
+ },
58
+ "gate": {
59
+ "at": "completion",
60
+ "checks": [
61
+ {
62
+ "kind": "minBytes",
63
+ "file": "seo-meta.json",
64
+ "bytes": 2
65
+ }
66
+ ],
67
+ "scripts": [
68
+ {
69
+ "name": "checkJsonValid",
70
+ "scope": "standard",
71
+ "inputs": {
72
+ "file": "seo-meta.json"
73
+ }
74
+ }
75
+ ],
76
+ "onReject": "build",
77
+ "maxAttempts": 4
78
+ },
79
+ "next": "evaluate"
80
+ },
81
+ {
82
+ "id": "evaluate",
83
+ "name": "Evaluate",
84
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
85
+ "prompt": "Parse seo-meta.json (must be valid JSON) and grade against the checklist. Check EACH criterion and write PASS/FAIL: (a) every page in scope has an object with all fields populated; (b) titles are 50-60 chars and descriptions 140-155 chars (verify the char counts); (c) the primary keyword is present and front-loaded in each title; (d) no duplicate titles or descriptions across pages; (e) slugs are valid lowercase kebab-case; (f) OG and Twitter fields are populated. A pack with truncated, duplicate, or missing metadata FAILS — loop back to build and name the offending pages.\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.",
86
+ "suggestedRole": "reviewer",
87
+ "consumes": [
88
+ {
89
+ "file": "seo-meta.json"
90
+ }
91
+ ],
92
+ "next": "build"
93
+ },
94
+ {
95
+ "id": "finish",
96
+ "name": "Finish",
97
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
98
+ "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.",
99
+ "suggestedRole": "developer",
100
+ "terminal": true
101
+ }
102
+ ],
103
+ "version": "1.0.2",
104
+ "releasedAt": "2026-08-21T00:00:00Z",
105
+ "paramSchema": {
106
+ "type": "object",
107
+ "properties": {
108
+ "workPath": {
109
+ "type": "string",
110
+ "title": "Working folder",
111
+ "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.",
112
+ "default": "{{task.dir}}"
113
+ }
114
+ }
115
+ },
116
+ "minGezelVersion": "1.26233"
117
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "SEO Metadata Pack smoke eval",
4
+ "objective": "Self-contained smoke eval for the SEO Metadata Pack craftbook using the html-page generic harness.",
5
+ "tags": [
6
+ "html-page"
7
+ ],
8
+ "prompt": "Can you biuld us a little page for this? The content notes are in source/page-content.md. Save it as index.html — one file, nothing fancy needed on our end.",
9
+ "setup": {
10
+ "projectName": "SEO Metadata Pack Eval",
11
+ "about": "Self-contained eval project for seo-meta-pack. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/index.html.",
12
+ "missionObjectives": "Use the SEO Metadata Pack craftbook/template, read the seeded local fixtures, and write index.html without network calls, real credentials, or live services.",
13
+ "files": [
14
+ {
15
+ "path": "source/brief.md",
16
+ "content": "# SEO Metadata Pack 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: seo-meta-pack - SEO Metadata Pack.\n"
17
+ },
18
+ {
19
+ "path": "source/page-content.md",
20
+ "content": "# Boreal Desk Support Board\n\nBuild content around a support operations board. Required labels: Open issues, Status silence, Response time, Refund leakage, Next action. Required metric text: 18 hours to 6 hours and 14.2% to 8.9%.\n"
21
+ }
22
+ ],
23
+ "worker": {
24
+ "name": "Jules",
25
+ "role": "Developer"
26
+ },
27
+ "craftbookParams": {
28
+ "workPath": "tasks/eval"
29
+ }
30
+ },
31
+ "mocks": [],
32
+ "success": {
33
+ "summary": "index.html is a source-grounded self-contained HTML page/tool.",
34
+ "deliverables": [
35
+ {
36
+ "path": "index.html",
37
+ "kind": "html-page",
38
+ "minBytes": 3000,
39
+ "checks": [
40
+ {
41
+ "kind": "cssMinBytes",
42
+ "bytes": 650,
43
+ "file": "index.html"
44
+ },
45
+ {
46
+ "kind": "jsParses",
47
+ "file": "index.html"
48
+ },
49
+ {
50
+ "kind": "contains",
51
+ "file": "index.html",
52
+ "pattern": "Boreal|Support Board|returns",
53
+ "flags": "i"
54
+ },
55
+ {
56
+ "kind": "contains",
57
+ "file": "index.html",
58
+ "pattern": "18\\s*hours|6\\s*hours|14\\.2%|8\\.9%",
59
+ "flags": "i"
60
+ },
61
+ {
62
+ "kind": "contains",
63
+ "file": "index.html",
64
+ "pattern": "button|input|filter|tab|card|section|nav",
65
+ "flags": "i"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ },
71
+ "rubric": {
72
+ "artifact": {
73
+ "path": "index.html",
74
+ "kind": "html"
75
+ },
76
+ "axes": [
77
+ {
78
+ "name": "structure",
79
+ "description": "Layout and hierarchy fit the content; sections are scannable and coherent."
80
+ },
81
+ {
82
+ "name": "grounding",
83
+ "description": "Seeded source content is used faithfully — no invented facts or dropped requirements."
84
+ },
85
+ {
86
+ "name": "interactivity",
87
+ "description": "Controls and states the page claims to offer actually work."
88
+ },
89
+ {
90
+ "name": "polish",
91
+ "description": "Styling is intentional and responsive rather than unstyled or broken."
92
+ }
93
+ ]
94
+ },
95
+ "qualityFocus": [
96
+ "self-contained UI",
97
+ "source grounding",
98
+ "responsive structure"
99
+ ]
100
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "id": "social-digest",
3
+ "name": "Social Digest",
4
+ "description": "Read everything new on the synced social feeds since the lookback window opened, then compose a grounded morning digest: per-feed activity, notable mentions and replies, engagement movers, and 1-3 suggested next moves carrying one-click gezel-action blocks (fire the draft-social-post craftbook with a prefilled topic, or a reply task for a mention worth answering). Every number in the digest must trace to a synced record via the scan notes — no invented metrics. Runs happily with no connector bound: it reports from posts/index.json alone and names the missing corpus as a gap.",
5
+ "entryStepId": "scan",
6
+ "triggers": [
7
+ "social digest",
8
+ "what happened on our feeds",
9
+ "engagement digest",
10
+ "overnight social summary"
11
+ ],
12
+ "command": "social-digest",
13
+ "paramSchema": {
14
+ "type": "object",
15
+ "properties": {
16
+ "workPath": {
17
+ "type": "string",
18
+ "title": "Working folder",
19
+ "description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
20
+ "default": "{{task.dir}}"
21
+ },
22
+ "lookbackHours": {
23
+ "type": "integer",
24
+ "default": 24,
25
+ "description": "How many hours back to scan for new records. Default 24."
26
+ }
27
+ }
28
+ },
29
+ "runModes": {
30
+ "nightShift": "recommended",
31
+ "scheduled": "supported"
32
+ },
33
+ "connectors": [
34
+ {
35
+ "typeId": "bluesky-posts",
36
+ "optional": true,
37
+ "reason": "Read the synced Bluesky posts, mentions, and engagement counts the digest reports on."
38
+ },
39
+ {
40
+ "typeId": "x-posts",
41
+ "optional": true,
42
+ "reason": "Read the synced X posts, mentions, and engagement counts the digest reports on."
43
+ },
44
+ {
45
+ "typeId": "instagram-media",
46
+ "optional": true,
47
+ "reason": "Read the synced Instagram records so captions and comments show up in the digest."
48
+ }
49
+ ],
50
+ "steps": [
51
+ {
52
+ "id": "scan",
53
+ "name": "Scan the feeds",
54
+ "description": "Collect raw notes from every synced corpus record in the window — the only numbers the digest may cite.",
55
+ "suggestedRole": "omroeper",
56
+ "prompt": "You are collecting the raw material for the overnight social digest. Look back {{lookbackHours}} hours (if that value reads as a raw {{...}} placeholder, use the default: 24).\n\n1. Call `list_artifacts` on `data/` in the project artifacts. Each subfolder there is one synced feed corpus (Bluesky, X, Instagram, ...); its `_meta.json` names the feed and the last sync. If there is no `data/` folder, nothing is synced: still write the notes artifact, open it with the line \"no synced corpus this run\", record what `posts/index.json` says we published lately, and never invent feed activity.\n2. Read every record inside the window with `read_artifact` — records are markdown files with frontmatter under each corpus, organized newest-first by folder. Collect per feed: posts by us, mentions and replies (author handle plus a short verbatim quote), and each record's engagement counts (`likes`, `reposts`, `replies`) together with its `metrics_updated_at` stamp.\n3. Read `posts/index.json` in the workspace with `read_file` so the digest can match feed records to the posts we shipped.\n4. Write your raw notes to the artifact `{{workPath}}/reports/social-digest-notes.md` with `write_artifact`: one section per feed, and every count copied verbatim next to the record path it came from (for example `data/bluesky/posts/2026-08/2026-08-02-meet-the-makers.md`). These notes are the only source of numbers the digest step may cite.\n\nWhen the notes artifact is written, call `advance_task_step` to move to compose.",
57
+ "advanceWhen": {
58
+ "file": "{{workPath}}/reports/social-digest-notes.md",
59
+ "artifact": true,
60
+ "minBytes": 150
61
+ },
62
+ "gate": {
63
+ "at": "completion",
64
+ "checks": [
65
+ {
66
+ "kind": "minBytes",
67
+ "file": "{{workPath}}/reports/social-digest-notes.md",
68
+ "bytes": 150,
69
+ "artifact": true
70
+ }
71
+ ],
72
+ "maxAttempts": 3
73
+ },
74
+ "next": "compose"
75
+ },
76
+ {
77
+ "id": "compose",
78
+ "name": "Compose the digest",
79
+ "description": "Write the morning digest from the scan notes, ending with 1-3 one-click actions.",
80
+ "suggestedRole": "omroeper",
81
+ "prompt": "Write the digest from `{{workPath}}/reports/social-digest-notes.md` (read it with `read_artifact` first). Every number you cite must appear in those notes — no other source of numbers is allowed.\n\nWrite the digest to the artifact `{{workPath}}/reports/social-digest-<today YYYY-MM-DD>.md` with `write_artifact` (use today's real date in the filename), then write the exact same content to `{{workPath}}/reports/social-digest-latest.md` — the stable path the completion gate reads. Write the latest file last. Sections, in order:\n\n- `## What happened on each feed` — one short block per synced feed; when a feed has no corpus or no new activity, say so in one line.\n- `## Notable mentions & replies` — who said what: name each author, quote them briefly, and say whether the mention deserves a reply.\n- `## Engagement movers` — which of our posts moved: compare the engagement counts and their `metrics_updated_at` stamps from the notes, and call out over- and under-performers. Never invent a number.\n- `## Suggested next moves` — 1-3 concrete suggestions. When a suggestion is directly actionable, follow it with a ```gezel-action fenced YAML block so the user can fire it with one click in the morning. Rules for these blocks: one block per action; flat YAML keys (only `params` nests one level); each block carries a unique, stable `id` slug that stays the same when tomorrow's digest repeats the suggestion; keep `title` short and `reason` to a sentence or two; never invent craftbook ids — the only craftbook you may reference is `draft-social-post`, which ships alongside this workflow. Two kinds:\n\nTo suggest drafting a post (prefill the topic):\n```gezel-action\nkind: fire-craftbook\nid: draft-<short-topic-slug>\ntitle: Draft a post about <thing>\nreason: <why, one sentence grounded in the notes>\ncraftbookId: draft-social-post\nparams:\n topic: <the suggested topic>\n```\n\nTo suggest replying to a mention (a bespoke task with a concrete prompt):\n```gezel-action\nkind: create-task\nid: reply-<author-slug>\ntitle: Reply to <author>\nreason: <why this mention matters, one sentence>\nprompt: Read <record path> in the project artifacts and draft a reply in our voice for the user to approve. Do not post it.\nrole: omroeper\n```\n\nWhen both digest files are written, call `advance_task_step` to move to evaluate.",
82
+ "advanceWhen": {
83
+ "file": "{{workPath}}/reports/social-digest-latest.md",
84
+ "artifact": true,
85
+ "minBytes": 400,
86
+ "requireChange": true
87
+ },
88
+ "gate": {
89
+ "at": "completion",
90
+ "checks": [
91
+ {
92
+ "kind": "minBytes",
93
+ "file": "{{workPath}}/reports/social-digest-latest.md",
94
+ "bytes": 400,
95
+ "artifact": true
96
+ },
97
+ {
98
+ "kind": "contains",
99
+ "file": "{{workPath}}/reports/social-digest-latest.md",
100
+ "pattern": "```gezel-action",
101
+ "label": "digest carries at least one one-click action",
102
+ "artifact": true
103
+ },
104
+ {
105
+ "kind": "judge",
106
+ "file": "{{workPath}}/reports/social-digest-latest.md",
107
+ "rubric": "Every count or metric named in the digest appears verbatim in the scan notes; mentions name real authors from the notes; nothing is invented.",
108
+ "sourceFiles": [
109
+ "{{workPath}}/reports/social-digest-notes.md"
110
+ ],
111
+ "label": "no invented metrics",
112
+ "artifact": true
113
+ }
114
+ ],
115
+ "onReject": "compose",
116
+ "maxAttempts": 4
117
+ },
118
+ "next": "evaluate"
119
+ },
120
+ {
121
+ "id": "evaluate",
122
+ "name": "Evaluate",
123
+ "description": "Grade the digest against every criterion. All pass — finish; any fail — loop back to compose with the named gaps.",
124
+ "suggestedRole": "reviewer",
125
+ "prompt": "Open `{{workPath}}/reports/social-digest-latest.md` and `{{workPath}}/reports/social-digest-notes.md` with `read_artifact` and grade the digest. Check EACH criterion and write PASS/FAIL with a one-line reason:\n\n1. Every number in the digest appears in the notes (spot-check at least three).\n2. Each feed present in the notes is covered — or its silence is stated in one line.\n3. Mentions name their authors and quote them accurately.\n4. The engagement-movers section compares real counts from the notes, not impressions.\n5. There are 1-3 suggested next moves, and every ```gezel-action block is valid flat YAML with `kind`, `id`, `title`, `reason`, and — for fire-craftbook — `craftbookId: draft-social-post` only.\n6. The digest is tight enough to read over coffee: no padding, no repeated sections.\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 task notes with `write_task_note`, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"compose\" })` to loop back. The compose step fixes exactly those gaps.\n\nNever route to finish while a criterion is unmet. After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
126
+ "next": "compose"
127
+ },
128
+ {
129
+ "id": "finish",
130
+ "name": "Finish",
131
+ "description": "Stamp the summary note and stop.",
132
+ "suggestedRole": "omroeper",
133
+ "prompt": "Write a one-paragraph DONE summary with `write_task_note`: the digest artifact paths (the dated file and `{{workPath}}/reports/social-digest-latest.md`), the headline in one line, how many mentions deserve a reply, and how many one-click actions the digest carries. Report DONE.",
134
+ "terminal": true
135
+ }
136
+ ],
137
+ "version": "1.0.1",
138
+ "releasedAt": "2026-08-21T00:00:00Z",
139
+ "minGezelVersion": "1.26233"
140
+ }
@@ -0,0 +1,169 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Overnight digest grounded in a synced Bluesky corpus",
4
+ "objective": "Prove that social-digest reads the synced corpus records, names the people who mentioned us, reports engagement movers without inventing a number, and leaves one-click follow-up actions.",
5
+ "tags": [
6
+ "corpus"
7
+ ],
8
+ "prompt": "Run the Social Digest craftbook for this project. Treat every synced record in the artifacts drawer as inside the digest window (the lookback parameter is set very wide for this eval). Write the digest artifact, ground every number in the synced records via your scan notes, name the people who mentioned us, and close with suggested next moves carrying at least one one-click gezel-action block.",
9
+ "setup": {
10
+ "projectName": "Social Digest Eval",
11
+ "about": "Overnight digest eval for a small furniture workshop's Bluesky presence. The artifacts drawer carries a synced corpus of the account's posts plus two mentions; the workspace carries the post index.",
12
+ "missionObjectives": "Produce the morning social digest as a real craftbook task: scan notes first, then the digest with per-feed activity, both mentions named and quoted, engagement movers compared from real counts, and 1-3 suggested next moves with gezel-action blocks referencing only the draft-social-post craftbook.",
13
+ "files": [
14
+ {
15
+ "path": "posts/index.json",
16
+ "content": "{\n \"entries\": [\n {\n \"slug\": \"shop-refresh\",\n \"folder\": \"posts/2026-07-20-shop-refresh\",\n \"title\": \"The shop got a fresh coat\",\n \"status\": \"published\",\n \"platforms\": [\"bluesky\"],\n \"created\": \"2026-07-20\"\n },\n {\n \"slug\": \"meet-the-makers\",\n \"folder\": \"posts/2026-08-01-meet-the-makers\",\n \"title\": \"Meet the makers\",\n \"status\": \"published\",\n \"platforms\": [\"bluesky\"],\n \"created\": \"2026-08-01\"\n },\n {\n \"slug\": \"oak-bench-run\",\n \"folder\": \"posts/2026-08-07-oak-bench-run\",\n \"title\": \"A short run of oak benches\",\n \"status\": \"published\",\n \"platforms\": [\"bluesky\"],\n \"created\": \"2026-08-07\"\n }\n ]\n}\n"
17
+ },
18
+ {
19
+ "path": "data/bluesky/_meta.json",
20
+ "surface": "artifact",
21
+ "content": "{\n \"bindingId\": \"bluesky-workshop\",\n \"typeId\": \"bluesky-posts\",\n \"displayName\": \"Bluesky — @bankenbeitel.bsky.social\",\n \"completeness\": \"window\",\n \"lastSyncedAt\": \"2026-08-12T05:00:00Z\"\n}\n"
22
+ },
23
+ {
24
+ "path": "data/bluesky/posts/2026-07/2026-07-20-shop-refresh.md",
25
+ "surface": "artifact",
26
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3kshop001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-07-20T09:05:00Z\nlikes: 14\nreposts: 2\nreplies: 1\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nThe shop got a fresh coat over the weekend. Same bench, better light. Come by and see.\n"
27
+ },
28
+ {
29
+ "path": "data/bluesky/posts/2026-07/2026-07-24-sharpening-night.md",
30
+ "surface": "artifact",
31
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3ksharp01\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-07-24T18:30:00Z\nlikes: 9\nreposts: 1\nreplies: 0\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nSharpening night. Every chisel in the rack gets its turn.\n"
32
+ },
33
+ {
34
+ "path": "data/bluesky/posts/2026-07/2026-07-27-glue-up.md",
35
+ "surface": "artifact",
36
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3kglue001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-07-27T11:10:00Z\nlikes: 11\nreposts: 0\nreplies: 2\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nBig glue-up day. Twelve clamps, one tabletop, no room for lunch on the bench.\n"
37
+ },
38
+ {
39
+ "path": "data/bluesky/posts/2026-08/2026-08-01-meet-the-makers.md",
40
+ "surface": "artifact",
41
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3kmake001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-08-01T10:00:00Z\nlikes: 63\nreposts: 19\nreplies: 8\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nMeet the makers: three of us, one bench, thirty years of chisels between us.\n"
42
+ },
43
+ {
44
+ "path": "data/bluesky/posts/2026-08/2026-08-04-workbench-tour.md",
45
+ "surface": "artifact",
46
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3ktour001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-08-04T09:20:00Z\nlikes: 22\nreposts: 4\nreplies: 3\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nA thirty-second tour of the bench: shooting board, bench hooks, and the drawer of mystery screws.\n"
47
+ },
48
+ {
49
+ "path": "data/bluesky/posts/2026-08/2026-08-07-oak-bench-run.md",
50
+ "surface": "artifact",
51
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3koak0001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-08-07T08:45:00Z\nlikes: 37\nreposts: 11\nreplies: 5\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nA short run of oak benches: six pieces, numbered and signed. First come, first seated.\n"
52
+ },
53
+ {
54
+ "path": "data/bluesky/posts/2026-08/2026-08-09-offcut-boxes.md",
55
+ "surface": "artifact",
56
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3kbox0001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-08-09T16:00:00Z\nlikes: 8\nreposts: 0\nreplies: 1\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nOffcut boxes back in the window. Small wood, small prices.\n"
57
+ },
58
+ {
59
+ "path": "data/bluesky/posts/2026-08/2026-08-10-finish-test.md",
60
+ "surface": "artifact",
61
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3kfin0001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-08-10T13:30:00Z\nlikes: 12\nreposts: 2\nreplies: 4\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nThree finishes on the same oak offcut: raw, oiled, soaped. Which would you take home?\n"
62
+ },
63
+ {
64
+ "path": "data/bluesky/posts/2026-08/2026-08-11-bench-dog.md",
65
+ "surface": "artifact",
66
+ "content": "---\nrecord: post\nplatform: bluesky\npostId: at://did:plc:bankenbeitel/app.bsky.feed.post/3kdog0001\nauthor: bankenbeitel.bsky.social\ncreatedAt: 2026-08-11T09:00:00Z\nlikes: 5\nreposts: 0\nreplies: 0\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nNew bench dogs turned from leftover beech. The old ones earned their retirement.\n"
67
+ },
68
+ {
69
+ "path": "data/bluesky/mentions/2026-08/2026-08-10-meike-commission.md",
70
+ "surface": "artifact",
71
+ "content": "---\nrecord: mention\nplatform: bluesky\npostId: at://did:plc:meike/app.bsky.feed.post/3kmen0001\nauthor: meike.bsky.social\ninReplyTo: at://did:plc:bankenbeitel/app.bsky.feed.post/3kmake001\ncreatedAt: 2026-08-10T18:40:00Z\nlikes: 9\nreposts: 1\nreplies: 2\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nWent by the workshop after seeing this — walked out with a stool and a story. Do you take commissions for a matching bench?\n"
72
+ },
73
+ {
74
+ "path": "data/bluesky/mentions/2026-08/2026-08-11-stef-vandam-question.md",
75
+ "surface": "artifact",
76
+ "content": "---\nrecord: mention\nplatform: bluesky\npostId: at://did:plc:stefvandam/app.bsky.feed.post/3kmen0002\nauthor: stef-vandam.bsky.social\ninReplyTo: at://did:plc:bankenbeitel/app.bsky.feed.post/3kfin0001\ncreatedAt: 2026-08-11T20:15:00Z\nlikes: 3\nreposts: 0\nreplies: 1\nmetrics_updated_at: 2026-08-12T05:00:00Z\n---\nSoaped, every time. Does the soap finish hold up on a kitchen table, or is that asking for water rings?\n"
77
+ }
78
+ ],
79
+ "craftbookParams": {
80
+ "lookbackHours": "87600",
81
+ "workPath": "tasks/eval"
82
+ },
83
+ "worker": {
84
+ "name": "Nora",
85
+ "role": "Omroeper"
86
+ }
87
+ },
88
+ "mocks": [],
89
+ "success": {
90
+ "summary": "The digest artifact exists at its stable path, names both mention authors, compares real engagement counts, and carries at least one gezel-action block; the scan notes artifact grounds every number.",
91
+ "checks": [
92
+ {
93
+ "kind": "minBytes",
94
+ "file": "tasks/eval/reports/social-digest-notes.md",
95
+ "bytes": 150,
96
+ "artifact": true
97
+ },
98
+ {
99
+ "kind": "minBytes",
100
+ "file": "tasks/eval/reports/social-digest-latest.md",
101
+ "bytes": 400,
102
+ "artifact": true
103
+ },
104
+ {
105
+ "kind": "contains",
106
+ "file": "tasks/eval/reports/social-digest-latest.md",
107
+ "pattern": "meike",
108
+ "flags": "i",
109
+ "label": "names the first mention author",
110
+ "artifact": true
111
+ },
112
+ {
113
+ "kind": "contains",
114
+ "file": "tasks/eval/reports/social-digest-latest.md",
115
+ "pattern": "stef-vandam|stef vandam",
116
+ "flags": "i",
117
+ "label": "names the second mention author",
118
+ "artifact": true
119
+ },
120
+ {
121
+ "kind": "contains",
122
+ "file": "tasks/eval/reports/social-digest-latest.md",
123
+ "pattern": "```gezel-action",
124
+ "label": "carries at least one one-click action",
125
+ "artifact": true
126
+ },
127
+ {
128
+ "kind": "contains",
129
+ "file": "tasks/eval/reports/social-digest-latest.md",
130
+ "pattern": "meet-the-makers|Meet the makers",
131
+ "label": "the standout post shows up in the digest",
132
+ "artifact": true
133
+ }
134
+ ],
135
+ "taskGraph": {
136
+ "requireCraftbookTask": true,
137
+ "requireTerminalStep": true
138
+ },
139
+ "unchangedFixtures": [
140
+ "posts/index.json"
141
+ ]
142
+ },
143
+ "rubric": {
144
+ "artifact": {
145
+ "path": "tasks/eval/reports/social-digest-latest.md",
146
+ "kind": "markdown"
147
+ },
148
+ "axes": [
149
+ {
150
+ "name": "grounding",
151
+ "description": "Every count in the digest appears in the seeded records; mentions are quoted accurately and attributed to meike.bsky.social and stef-vandam.bsky.social."
152
+ },
153
+ {
154
+ "name": "structure",
155
+ "description": "The four sections are present and each does its job: per-feed activity, mention triage, engagement movers compared from real counts, and suggested next moves."
156
+ },
157
+ {
158
+ "name": "actionability",
159
+ "description": "The gezel-action blocks are valid flat YAML with stable id slugs, reference only draft-social-post, and the suggestions follow from the evidence (e.g. people-first posts outperforming)."
160
+ }
161
+ ],
162
+ "contextNote": "The digest is an artifacts-drawer report; the lookback parameter was set very wide so all seeded records fall inside the window."
163
+ },
164
+ "qualityFocus": [
165
+ "every metric traceable to a synced record",
166
+ "mention triage names authors and quotes them",
167
+ "one-click actions valid and never inventing craftbook ids"
168
+ ]
169
+ }