@bendyline/gilde 0.1.39 → 0.1.41

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 (434) hide show
  1. package/authoring/chat-models/muse-glimmer-30b-q4.json +3 -3
  2. package/authoring/chat-models/ornith-9b-q4.json +1 -1
  3. package/authoring/chat-models/ornith1.5-9b-q4.json +149 -0
  4. package/authoring/chat-models/qwen3.8-27b-iq1-s.json +190 -0
  5. package/authoring/chat-models/qwen3.8-27b-q2.json +189 -0
  6. package/authoring/gstack/overlays/investigate.json +1 -0
  7. package/authoring/gstack/overlays/qa-only.json +1 -0
  8. package/authoring/gstack/wave.json +12 -2
  9. package/authoring/tactical/books/accessibility-retrofit.json +188 -0
  10. package/authoring/tactical/books/apply-review-findings.json +189 -0
  11. package/authoring/tactical/books/bug-fix-tdd.json +237 -0
  12. package/authoring/tactical/books/ci-pipeline.json +168 -0
  13. package/authoring/tactical/books/codemod-sweep.json +182 -0
  14. package/authoring/tactical/books/dependency-upgrade.json +196 -0
  15. package/authoring/tactical/books/flaky-test-fix.json +238 -0
  16. package/authoring/tactical/books/hotfix-flow.json +187 -0
  17. package/authoring/tactical/books/perf-optimization.json +219 -0
  18. package/authoring/tactical/books/refactor-module.json +217 -0
  19. package/authoring/tactical/books/schema-migration.json +192 -0
  20. package/authoring/tactical/books/test-suite-backfill.json +172 -0
  21. package/authoring/tactical/books/type-safety-pass.json +185 -0
  22. package/authoring/tactical/books/ux-update.json +178 -0
  23. package/authoring/tactical/evals/accessibility-retrofit.json +230 -0
  24. package/authoring/tactical/evals/apply-review-findings.json +290 -0
  25. package/authoring/tactical/evals/bug-fix-tdd.json +221 -0
  26. package/authoring/tactical/evals/ci-pipeline.json +227 -0
  27. package/authoring/tactical/evals/codemod-sweep.json +252 -0
  28. package/authoring/tactical/evals/dependency-upgrade.json +235 -0
  29. package/authoring/tactical/evals/flaky-test-fix.json +239 -0
  30. package/authoring/tactical/evals/hotfix-flow.json +220 -0
  31. package/authoring/tactical/evals/perf-optimization.json +235 -0
  32. package/authoring/tactical/evals/refactor-module.json +241 -0
  33. package/authoring/tactical/evals/schema-migration.json +225 -0
  34. package/authoring/tactical/evals/test-suite-backfill.json +197 -0
  35. package/authoring/tactical/evals/type-safety-pass.json +221 -0
  36. package/authoring/tactical/evals/ux-update.json +206 -0
  37. package/authoring/tactical/wave.json +89 -0
  38. package/data/chat-models/de/deepseek-r1-8b-q4/manifest.json +56 -1
  39. package/data/chat-models/gl/glm-5.2-754b-q2/manifest.json +56 -0
  40. package/data/chat-models/gp/gpt-oss-120b-q4/manifest.json +73 -1
  41. package/data/chat-models/gp/gpt-oss-20b-q4/manifest.json +77 -1
  42. package/data/chat-models/index.json +1 -1
  43. package/data/chat-models/ll/llama3.2-3b-q4/manifest.json +3 -1
  44. package/data/chat-models/mi/mistral-7b-q4/manifest.json +54 -3
  45. package/data/chat-models/mi/mistral-medium-3.5-128b-q4/manifest.json +76 -1
  46. package/data/chat-models/mu/muse-glimmer-30b-q4/manifest.json +4 -3
  47. package/data/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.2/manifest.json +20 -0
  48. package/data/chat-models/or/ornith-9b-q4/manifest.json +1 -1
  49. package/data/chat-models/or/ornith1.5-9b-q4/manifest.json +187 -0
  50. package/data/chat-models/or/ornith1.5-9b-q4/versions/1.0.0/manifest.json +53 -0
  51. package/data/chat-models/qw/qwen3.8-27b-iq1-s/manifest.json +195 -0
  52. package/data/chat-models/qw/qwen3.8-27b-iq1-s/versions/1.0.0/manifest.json +19 -0
  53. package/data/chat-models/qw/qwen3.8-27b-q2/manifest.json +194 -0
  54. package/data/chat-models/qw/qwen3.8-27b-q2/versions/1.0.0/manifest.json +19 -0
  55. package/data/craftbook-templates/a1/a11y-audit/manifest.json +1 -0
  56. package/data/craftbook-templates/ab/ab-test-readout/manifest.json +1 -0
  57. package/data/craftbook-templates/ac/accessibility-retrofit/manifest.json +6 -4
  58. package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.0/craftbook.json +451 -0
  59. package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.0/test.json +231 -0
  60. package/data/craftbook-templates/ad/ad-variations/manifest.json +1 -0
  61. package/data/craftbook-templates/al/album-curate/manifest.json +1 -0
  62. package/data/craftbook-templates/al/alert-rules/manifest.json +1 -0
  63. package/data/craftbook-templates/al/alt-text-pass/manifest.json +6 -1
  64. package/data/craftbook-templates/an/anniversary-cut/manifest.json +1 -0
  65. package/data/craftbook-templates/an/annotated-bibliography/manifest.json +1 -0
  66. package/data/craftbook-templates/an/annual-document-review/manifest.json +1 -0
  67. package/data/craftbook-templates/an/anomaly-scan/manifest.json +1 -0
  68. package/data/craftbook-templates/ap/api-contract-review/manifest.json +1 -0
  69. package/data/craftbook-templates/ap/apply-review-findings/art.json +12 -0
  70. package/data/craftbook-templates/ap/apply-review-findings/logo.webp +0 -0
  71. package/data/craftbook-templates/ap/apply-review-findings/manifest.json +23 -0
  72. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.0/craftbook.json +436 -0
  73. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.0/test.json +291 -0
  74. package/data/craftbook-templates/ar/artifact-integrity-review/manifest.json +1 -0
  75. package/data/craftbook-templates/au/audio-ad-spot/manifest.json +1 -0
  76. package/data/craftbook-templates/au/audio-highlight-reel/manifest.json +1 -0
  77. package/data/craftbook-templates/au/audiobook-master-pack/manifest.json +1 -0
  78. package/data/craftbook-templates/au/auth-flow/manifest.json +1 -0
  79. package/data/craftbook-templates/au/automation-recipe/manifest.json +1 -0
  80. package/data/craftbook-templates/ba/backup-routine/manifest.json +1 -0
  81. package/data/craftbook-templates/bl/blog-post/manifest.json +1 -0
  82. package/data/craftbook-templates/bo/board-deck/manifest.json +1 -0
  83. package/data/craftbook-templates/bo/board-game-web/manifest.json +1 -0
  84. package/data/craftbook-templates/bo/booking-automation/manifest.json +1 -0
  85. package/data/craftbook-templates/br/branding-website/manifest.json +1 -0
  86. package/data/craftbook-templates/br/broadcast-announcement/manifest.json +1 -0
  87. package/data/craftbook-templates/br/browser-qa-audit/manifest.json +6 -1
  88. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.5/craftbook.json +438 -0
  89. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.5/test.json +379 -0
  90. package/data/craftbook-templates/bu/bug-fix-tdd/manifest.json +4 -3
  91. package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.0/craftbook.json +545 -0
  92. package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.0/test.json +222 -0
  93. package/data/craftbook-templates/bu/build-loop/manifest.json +1 -0
  94. package/data/craftbook-templates/ca/calendar-brief/manifest.json +1 -0
  95. package/data/craftbook-templates/ca/canvas-generative-art/manifest.json +1 -0
  96. package/data/craftbook-templates/ca/careful-mode/manifest.json +1 -0
  97. package/data/craftbook-templates/ca/case-study/manifest.json +1 -0
  98. package/data/craftbook-templates/ca/case-study-writeup/manifest.json +1 -0
  99. package/data/craftbook-templates/ch/changelog-cut/manifest.json +6 -1
  100. package/data/craftbook-templates/ch/changelog-writeup/manifest.json +6 -1
  101. package/data/craftbook-templates/ch/chapter-narration-run/manifest.json +1 -0
  102. package/data/craftbook-templates/ch/chapter-weave/manifest.json +1 -0
  103. package/data/craftbook-templates/ch/character-sheet/manifest.json +1 -0
  104. package/data/craftbook-templates/ch/character-turnaround/manifest.json +1 -0
  105. package/data/craftbook-templates/ch/chart-pack/manifest.json +1 -0
  106. package/data/craftbook-templates/ch/chrome-extension/manifest.json +1 -0
  107. package/data/craftbook-templates/ci/ci-pipeline/manifest.json +6 -3
  108. package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.0/craftbook.json +423 -0
  109. package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.0/test.json +228 -0
  110. package/data/craftbook-templates/ci/citation-audit/manifest.json +1 -0
  111. package/data/craftbook-templates/cl/cli-tool/manifest.json +1 -0
  112. package/data/craftbook-templates/co/code-review/manifest.json +1 -0
  113. package/data/craftbook-templates/co/codebase-refactoring-review/manifest.json +1 -0
  114. package/data/craftbook-templates/co/codebase-ux-review/manifest.json +1 -0
  115. package/data/craftbook-templates/co/codemod-sweep/art.json +12 -0
  116. package/data/craftbook-templates/co/codemod-sweep/logo.webp +0 -0
  117. package/data/craftbook-templates/co/codemod-sweep/manifest.json +23 -0
  118. package/data/craftbook-templates/co/codemod-sweep/versions/1.0.0/craftbook.json +441 -0
  119. package/data/craftbook-templates/co/codemod-sweep/versions/1.0.0/test.json +253 -0
  120. package/data/craftbook-templates/co/cohort-analysis/manifest.json +1 -0
  121. package/data/craftbook-templates/co/company-research-brief/manifest.json +1 -0
  122. package/data/craftbook-templates/co/comparison-matrix/manifest.json +1 -0
  123. package/data/craftbook-templates/co/compat-check/manifest.json +1 -0
  124. package/data/craftbook-templates/co/competitive-analysis/manifest.json +1 -0
  125. package/data/craftbook-templates/co/comprehensive-codebase-review/art.json +12 -0
  126. package/data/craftbook-templates/co/comprehensive-codebase-review/logo.webp +0 -0
  127. package/data/craftbook-templates/co/comprehensive-codebase-review/manifest.json +27 -0
  128. package/data/craftbook-templates/co/comprehensive-codebase-review/versions/1.0.0/craftbook.json +337 -0
  129. package/data/craftbook-templates/co/comprehensive-codebase-review/versions/1.0.0/test.json +160 -0
  130. package/data/craftbook-templates/co/config-scaffold/manifest.json +1 -0
  131. package/data/craftbook-templates/co/content-accuracy-review/manifest.json +1 -0
  132. package/data/craftbook-templates/co/content-deck/manifest.json +1 -0
  133. package/data/craftbook-templates/co/contract-template/manifest.json +1 -0
  134. package/data/craftbook-templates/co/cookbook-layout/manifest.json +1 -0
  135. package/data/craftbook-templates/co/copy-review/manifest.json +1 -0
  136. package/data/craftbook-templates/co/corpus-email-digest/manifest.json +1 -0
  137. package/data/craftbook-templates/co/corpus-synthesis/manifest.json +1 -0
  138. package/data/craftbook-templates/co/cover-letter/manifest.json +1 -0
  139. package/data/craftbook-templates/cr/crm-update-batch/manifest.json +1 -0
  140. package/data/craftbook-templates/cr/cron-job/manifest.json +1 -0
  141. package/data/craftbook-templates/cr/crossword-forge/manifest.json +1 -0
  142. package/data/craftbook-templates/cs/csv-transformer/manifest.json +1 -0
  143. package/data/craftbook-templates/da/dashboard-spec/manifest.json +1 -0
  144. package/data/craftbook-templates/da/data-dictionary/manifest.json +1 -0
  145. package/data/craftbook-templates/da/data-export-migrate/manifest.json +1 -0
  146. package/data/craftbook-templates/da/data-join-merge/manifest.json +1 -0
  147. package/data/craftbook-templates/da/data-pipeline-etl/manifest.json +1 -0
  148. package/data/craftbook-templates/da/data-quality-audit/manifest.json +1 -0
  149. package/data/craftbook-templates/da/data-to-report/manifest.json +1 -0
  150. package/data/craftbook-templates/da/data-viz-page/manifest.json +1 -0
  151. package/data/craftbook-templates/da/dataset-clean/manifest.json +1 -0
  152. package/data/craftbook-templates/db/db-index-tuning/manifest.json +1 -0
  153. package/data/craftbook-templates/de/deep-security-review/manifest.json +1 -0
  154. package/data/craftbook-templates/de/dependency-audit/manifest.json +1 -0
  155. package/data/craftbook-templates/de/dependency-upgrade/art.json +12 -0
  156. package/data/craftbook-templates/de/dependency-upgrade/logo.webp +0 -0
  157. package/data/craftbook-templates/de/dependency-upgrade/manifest.json +23 -0
  158. package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.0/craftbook.json +459 -0
  159. package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.0/test.json +236 -0
  160. package/data/craftbook-templates/de/deploy-checklist/manifest.json +1 -0
  161. package/data/craftbook-templates/de/design-review/manifest.json +1 -0
  162. package/data/craftbook-templates/de/design-system-consultation/manifest.json +1 -0
  163. package/data/craftbook-templates/di/diagram-from-text/manifest.json +1 -0
  164. package/data/craftbook-templates/di/digest-from-feeds/manifest.json +1 -0
  165. package/data/craftbook-templates/do/doc-intake-pipeline/manifest.json +1 -0
  166. package/data/craftbook-templates/do/doc-rewrite/manifest.json +1 -0
  167. package/data/craftbook-templates/do/dockerize-app/manifest.json +1 -0
  168. package/data/craftbook-templates/do/docs-site/manifest.json +1 -0
  169. package/data/craftbook-templates/do/documentation-drift-review/manifest.json +1 -0
  170. package/data/craftbook-templates/dr/draft-social-post/manifest.json +1 -0
  171. package/data/craftbook-templates/dr/drive-wrap-up/manifest.json +1 -0
  172. package/data/craftbook-templates/du/due-diligence-brief/manifest.json +1 -0
  173. package/data/craftbook-templates/eb/ebook-compile/manifest.json +1 -0
  174. package/data/craftbook-templates/ed/edit-notes/manifest.json +1 -0
  175. package/data/craftbook-templates/em/email-sequence/manifest.json +1 -0
  176. package/data/craftbook-templates/em/email-template/manifest.json +1 -0
  177. package/data/craftbook-templates/en/engineering-retrospective/manifest.json +1 -0
  178. package/data/craftbook-templates/ep/episode-plan/manifest.json +1 -0
  179. package/data/craftbook-templates/es/escalation-playbook/manifest.json +1 -0
  180. package/data/craftbook-templates/ev/evidence-brief/manifest.json +1 -0
  181. package/data/craftbook-templates/ex/executive-level-review/manifest.json +1 -0
  182. package/data/craftbook-templates/ex/expense-categorize/manifest.json +1 -0
  183. package/data/craftbook-templates/fa/fact-check/manifest.json +1 -0
  184. package/data/craftbook-templates/fa/family-story-chapter/manifest.json +1 -0
  185. package/data/craftbook-templates/fa/faq-from-docs/manifest.json +1 -0
  186. package/data/craftbook-templates/fa/favicon-set/manifest.json +1 -0
  187. package/data/craftbook-templates/fe/feature-flag-release/manifest.json +6 -1
  188. package/data/craftbook-templates/fe/feature-flag-rollout/manifest.json +5 -1
  189. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.0/craftbook.json +203 -0
  190. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.0/test.json +165 -0
  191. package/data/craftbook-templates/fe/feedback-widget/manifest.json +1 -0
  192. package/data/craftbook-templates/fl/flaky-test-fix/art.json +12 -0
  193. package/data/craftbook-templates/fl/flaky-test-fix/logo.webp +0 -0
  194. package/data/craftbook-templates/fl/flaky-test-fix/manifest.json +24 -0
  195. package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.0/craftbook.json +534 -0
  196. package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.0/test.json +240 -0
  197. package/data/craftbook-templates/fo/folder-to-audio/manifest.json +1 -0
  198. package/data/craftbook-templates/fo/forecast-model/manifest.json +1 -0
  199. package/data/craftbook-templates/fo/form-fill-batch/manifest.json +1 -0
  200. package/data/craftbook-templates/fo/form-wizard/manifest.json +1 -0
  201. package/data/craftbook-templates/fr/freeze-scope/manifest.json +1 -0
  202. package/data/craftbook-templates/ga/game-with-screens/manifest.json +1 -0
  203. package/data/craftbook-templates/gl/glossary-build/manifest.json +1 -0
  204. package/data/craftbook-templates/gr/graphql-api/manifest.json +1 -0
  205. package/data/craftbook-templates/gr/grpc-service/manifest.json +1 -0
  206. package/data/craftbook-templates/ha/handbook-section/manifest.json +1 -0
  207. package/data/craftbook-templates/he/hero-image/manifest.json +1 -0
  208. package/data/craftbook-templates/ho/holiday-card-run/manifest.json +1 -0
  209. package/data/craftbook-templates/ho/hotfix-flow/manifest.json +6 -3
  210. package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.0/craftbook.json +442 -0
  211. package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.0/test.json +221 -0
  212. package/data/craftbook-templates/ht/html-arcade-game/manifest.json +1 -0
  213. package/data/craftbook-templates/ht/html-puzzle-game/manifest.json +1 -0
  214. package/data/craftbook-templates/ic/icon-pack/manifest.json +1 -0
  215. package/data/craftbook-templates/id/idea-office-hours/manifest.json +1 -0
  216. package/data/craftbook-templates/id/idle-clicker-game/manifest.json +1 -0
  217. package/data/craftbook-templates/im/image-batch-edit/manifest.json +1 -0
  218. package/data/craftbook-templates/im/image-dedup-cluster/manifest.json +1 -0
  219. package/data/craftbook-templates/im/image-palette-extract/manifest.json +1 -0
  220. package/data/craftbook-templates/im/image-seo-rename/manifest.json +1 -0
  221. package/data/craftbook-templates/im/image-set-index/manifest.json +1 -0
  222. package/data/craftbook-templates/in/inbox-triage/manifest.json +1 -0
  223. package/data/craftbook-templates/in/incident-comms-templates/manifest.json +1 -0
  224. package/data/craftbook-templates/in/incident-postmortem/manifest.json +1 -0
  225. package/data/craftbook-templates/in/insurance-inventory/manifest.json +1 -0
  226. package/data/craftbook-templates/in/interactive-quiz/manifest.json +1 -0
  227. package/data/craftbook-templates/in/investigate/manifest.json +5 -1
  228. package/data/craftbook-templates/in/investigate-root-cause/manifest.json +6 -1
  229. package/data/craftbook-templates/in/invitation-design/manifest.json +1 -0
  230. package/data/craftbook-templates/in/invoice-generator/manifest.json +1 -0
  231. package/data/craftbook-templates/in/invoice-run/manifest.json +1 -0
  232. package/data/craftbook-templates/index.json +1 -1
  233. package/data/craftbook-templates/it/item-intake/manifest.json +1 -0
  234. package/data/craftbook-templates/ju/juice-pass/manifest.json +1 -0
  235. package/data/craftbook-templates/kn/knowledge-base-article/manifest.json +1 -0
  236. package/data/craftbook-templates/kp/kpi-scorecard/manifest.json +1 -0
  237. package/data/craftbook-templates/la/landing-copy/manifest.json +1 -0
  238. package/data/craftbook-templates/la/landing-page/manifest.json +1 -0
  239. package/data/craftbook-templates/le/lead-enrichment/manifest.json +1 -0
  240. package/data/craftbook-templates/li/library-package/manifest.json +1 -0
  241. package/data/craftbook-templates/li/literature-review/manifest.json +1 -0
  242. package/data/craftbook-templates/li/live-browser-qa/manifest.json +6 -1
  243. package/data/craftbook-templates/lo/localize-content/manifest.json +1 -0
  244. package/data/craftbook-templates/lo/logo-set/manifest.json +1 -0
  245. package/data/craftbook-templates/ma/market-scan/manifest.json +1 -0
  246. package/data/craftbook-templates/me/meeting-minutes/manifest.json +1 -0
  247. package/data/craftbook-templates/me/meeting-notes-to-actions/manifest.json +1 -0
  248. package/data/craftbook-templates/me/meeting-prep-brief/manifest.json +1 -0
  249. package/data/craftbook-templates/me/meeting-summary-audio/manifest.json +1 -0
  250. package/data/craftbook-templates/me/memory-prompt-session/manifest.json +1 -0
  251. package/data/craftbook-templates/me/message-queue-consumer/manifest.json +1 -0
  252. package/data/craftbook-templates/mi/micro-game-jam/manifest.json +1 -0
  253. package/data/craftbook-templates/mo/mock-interview/manifest.json +1 -0
  254. package/data/craftbook-templates/mo/mod-scaffold/manifest.json +1 -0
  255. package/data/craftbook-templates/mo/monitor-and-alert/manifest.json +1 -0
  256. package/data/craftbook-templates/mo/month-close/manifest.json +1 -0
  257. package/data/craftbook-templates/mo/monthly-recording-review/manifest.json +1 -0
  258. package/data/craftbook-templates/mo/moodboard/manifest.json +1 -0
  259. package/data/craftbook-templates/mo/morning-brief/manifest.json +1 -0
  260. package/data/craftbook-templates/mo/morning-report/manifest.json +1 -0
  261. package/data/craftbook-templates/mu/music-metadata-tag/manifest.json +1 -0
  262. package/data/craftbook-templates/na/narrated-slideshow/manifest.json +1 -0
  263. package/data/craftbook-templates/ne/newsletter-issue/manifest.json +1 -0
  264. package/data/craftbook-templates/ni/nightly-fix-sweep/art.json +12 -0
  265. package/data/craftbook-templates/ni/nightly-fix-sweep/logo.webp +0 -0
  266. package/data/craftbook-templates/ni/nightly-fix-sweep/manifest.json +23 -0
  267. package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.0/craftbook.json +145 -0
  268. package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.0/test.json +121 -0
  269. package/data/craftbook-templates/no/notification-router/manifest.json +1 -0
  270. package/data/craftbook-templates/oc/ocr-extract/manifest.json +1 -0
  271. package/data/craftbook-templates/of/offer-compare/manifest.json +1 -0
  272. package/data/craftbook-templates/of/office-hours/manifest.json +1 -0
  273. package/data/craftbook-templates/on/onboarding-checklist/manifest.json +1 -0
  274. package/data/craftbook-templates/on/onboarding-flow/manifest.json +1 -0
  275. package/data/craftbook-templates/on/oncall-handoff/manifest.json +1 -0
  276. package/data/craftbook-templates/on/one-pager/manifest.json +1 -0
  277. package/data/craftbook-templates/op/ops-runbook/manifest.json +1 -0
  278. package/data/craftbook-templates/pa/page-spread/manifest.json +1 -0
  279. package/data/craftbook-templates/pa/parser-grammar/manifest.json +1 -0
  280. package/data/craftbook-templates/pe/perf-audit/manifest.json +1 -0
  281. package/data/craftbook-templates/pe/perf-audit/versions/1.1.0/craftbook.json +195 -0
  282. package/data/craftbook-templates/pe/perf-audit/versions/1.1.0/test.json +165 -0
  283. package/data/craftbook-templates/pe/perf-optimization/manifest.json +4 -3
  284. package/data/craftbook-templates/pe/perf-optimization/versions/2.0.0/craftbook.json +511 -0
  285. package/data/craftbook-templates/pe/perf-optimization/versions/2.0.0/test.json +236 -0
  286. package/data/craftbook-templates/pe/pest-diagnosis/manifest.json +1 -0
  287. package/data/craftbook-templates/ph/photo-cull/manifest.json +1 -0
  288. package/data/craftbook-templates/ph/physics-toy/manifest.json +1 -0
  289. package/data/craftbook-templates/pi/pitch-deck/manifest.json +1 -0
  290. package/data/craftbook-templates/pl/plan/manifest.json +1 -0
  291. package/data/craftbook-templates/pl/playtest-report/manifest.json +1 -0
  292. package/data/craftbook-templates/po/podcast-chaptering/manifest.json +1 -0
  293. package/data/craftbook-templates/po/portfolio-site/manifest.json +1 -0
  294. package/data/craftbook-templates/po/powerpoint-deck/manifest.json +1 -0
  295. package/data/craftbook-templates/pr/pr-security-review/manifest.json +1 -0
  296. package/data/craftbook-templates/pr/practice-exam/manifest.json +1 -0
  297. package/data/craftbook-templates/pr/practice-session/manifest.json +1 -0
  298. package/data/craftbook-templates/pr/pre-departure-countdown/manifest.json +1 -0
  299. package/data/craftbook-templates/pr/press-release/manifest.json +1 -0
  300. package/data/craftbook-templates/pr/price-tracker/manifest.json +1 -0
  301. package/data/craftbook-templates/pr/pricing-page/manifest.json +1 -0
  302. package/data/craftbook-templates/pr/product-descriptions/manifest.json +1 -0
  303. package/data/craftbook-templates/pr/proposal-sow/manifest.json +1 -0
  304. package/data/craftbook-templates/pu/pull-request-review/manifest.json +1 -0
  305. package/data/craftbook-templates/pu/puzzle-pack-layout/manifest.json +1 -0
  306. package/data/craftbook-templates/pw/pwa-offline/manifest.json +1 -0
  307. package/data/craftbook-templates/qa/qa/manifest.json +4 -1
  308. package/data/craftbook-templates/qu/quarterly-summary/manifest.json +1 -0
  309. package/data/craftbook-templates/re/reading-list/manifest.json +1 -0
  310. package/data/craftbook-templates/re/receipt-intake/manifest.json +1 -0
  311. package/data/craftbook-templates/re/receipt-ocr-ledger/manifest.json +1 -0
  312. package/data/craftbook-templates/re/reception-report/manifest.json +1 -0
  313. package/data/craftbook-templates/re/recipe-capture/manifest.json +1 -0
  314. package/data/craftbook-templates/re/record-a-relative/manifest.json +1 -0
  315. package/data/craftbook-templates/re/recurring-invoice-run/manifest.json +1 -0
  316. package/data/craftbook-templates/re/refactor-module/manifest.json +3 -2
  317. package/data/craftbook-templates/re/refactor-module/versions/1.0.4/craftbook.json +150 -0
  318. package/data/craftbook-templates/re/refactor-module/versions/1.0.4/test.json +95 -0
  319. package/data/craftbook-templates/re/refactor-module/versions/2.0.0/craftbook.json +509 -0
  320. package/data/craftbook-templates/re/refactor-module/versions/2.0.0/test.json +242 -0
  321. package/data/craftbook-templates/re/regex-builder/manifest.json +1 -0
  322. package/data/craftbook-templates/re/release-announcement/manifest.json +1 -0
  323. package/data/craftbook-templates/re/release-artifact-sanity-check/manifest.json +1 -0
  324. package/data/craftbook-templates/re/release-notes/manifest.json +6 -1
  325. package/data/craftbook-templates/re/release-notes/versions/1.0.3/craftbook.json +220 -0
  326. package/data/craftbook-templates/re/release-notes/versions/1.0.3/test.json +114 -0
  327. package/data/craftbook-templates/re/release-pipeline-ci/manifest.json +6 -1
  328. package/data/craftbook-templates/re/release-readiness-review/manifest.json +1 -0
  329. package/data/craftbook-templates/re/release-readiness-review/versions/1.1.0/craftbook.json +192 -0
  330. package/data/craftbook-templates/re/release-readiness-review/versions/1.1.0/test.json +113 -0
  331. package/data/craftbook-templates/re/reliability-review/manifest.json +1 -0
  332. package/data/craftbook-templates/re/report-pdf/manifest.json +1 -0
  333. package/data/craftbook-templates/re/research-report/manifest.json +1 -0
  334. package/data/craftbook-templates/re/research-to-document/manifest.json +1 -0
  335. package/data/craftbook-templates/re/rest-api/manifest.json +1 -0
  336. package/data/craftbook-templates/re/resume-cv/manifest.json +1 -0
  337. package/data/craftbook-templates/re/reviewer-loop/manifest.json +1 -0
  338. package/data/craftbook-templates/ro/rollback-plan/manifest.json +1 -0
  339. package/data/craftbook-templates/ro/root-cause-investigation/manifest.json +8 -1
  340. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.5/craftbook.json +433 -0
  341. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.5/test.json +157 -0
  342. package/data/craftbook-templates/ro/rough-cut-assembly/manifest.json +1 -0
  343. package/data/craftbook-templates/ru/runbook/manifest.json +1 -0
  344. package/data/craftbook-templates/sc/schema-migration/manifest.json +5 -4
  345. package/data/craftbook-templates/sc/schema-migration/versions/2.0.0/craftbook.json +459 -0
  346. package/data/craftbook-templates/sc/schema-migration/versions/2.0.0/test.json +226 -0
  347. package/data/craftbook-templates/sc/scrape-to-structured/manifest.json +1 -0
  348. package/data/craftbook-templates/sc/script-automation/manifest.json +1 -0
  349. package/data/craftbook-templates/sd/sdk-wrapper/manifest.json +1 -0
  350. package/data/craftbook-templates/se/seasonal-maintenance-sweep/manifest.json +1 -0
  351. package/data/craftbook-templates/se/security-architecture-review/manifest.json +1 -0
  352. package/data/craftbook-templates/se/seo-meta-pack/manifest.json +1 -0
  353. package/data/craftbook-templates/sh/ship/manifest.json +1 -0
  354. package/data/craftbook-templates/so/social-digest/manifest.json +1 -0
  355. package/data/craftbook-templates/so/social-thread/manifest.json +1 -0
  356. package/data/craftbook-templates/so/source-quality-audit/manifest.json +1 -0
  357. package/data/craftbook-templates/sp/spa-dashboard/manifest.json +1 -0
  358. package/data/craftbook-templates/sp/spec-authoring/manifest.json +1 -0
  359. package/data/craftbook-templates/sp/spec-doc/manifest.json +1 -0
  360. package/data/craftbook-templates/sp/spreadsheet-model/manifest.json +1 -0
  361. package/data/craftbook-templates/sp/sprite-sheet/manifest.json +1 -0
  362. package/data/craftbook-templates/sq/sql-analysis/manifest.json +1 -0
  363. package/data/craftbook-templates/st/standup-summary/manifest.json +1 -0
  364. package/data/craftbook-templates/st/state-machine/manifest.json +1 -0
  365. package/data/craftbook-templates/st/status-report/manifest.json +1 -0
  366. package/data/craftbook-templates/su/subscription-audit/manifest.json +1 -0
  367. package/data/craftbook-templates/su/subtitle-generator/manifest.json +1 -0
  368. package/data/craftbook-templates/su/summarize-long/manifest.json +1 -0
  369. package/data/craftbook-templates/su/survey-analysis/manifest.json +1 -0
  370. package/data/craftbook-templates/sv/svg-animation/manifest.json +1 -0
  371. package/data/craftbook-templates/ta/tailor-resume/manifest.json +1 -0
  372. package/data/craftbook-templates/te/technical-documentation/manifest.json +1 -0
  373. package/data/craftbook-templates/te/test-coverage-review/manifest.json +1 -0
  374. package/data/craftbook-templates/te/test-coverage-review/versions/1.2.0/craftbook.json +195 -0
  375. package/data/craftbook-templates/te/test-coverage-review/versions/1.2.0/test.json +116 -0
  376. package/data/craftbook-templates/te/test-suite-backfill/manifest.json +2 -2
  377. package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.0/craftbook.json +428 -0
  378. package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.0/test.json +198 -0
  379. package/data/craftbook-templates/th/thank-you-batch/manifest.json +1 -0
  380. package/data/craftbook-templates/th/thank-you-sweep/manifest.json +1 -0
  381. package/data/craftbook-templates/th/threat-model/manifest.json +1 -0
  382. package/data/craftbook-templates/th/thumbnail-generator/manifest.json +1 -0
  383. package/data/craftbook-templates/ti/tileset-batch/manifest.json +1 -0
  384. package/data/craftbook-templates/to/tone-rewrite/manifest.json +1 -0
  385. package/data/craftbook-templates/to/topic-explainer/manifest.json +1 -0
  386. package/data/craftbook-templates/tr/transcribe-and-shownotes/manifest.json +1 -0
  387. package/data/craftbook-templates/tr/transcribe-audio/manifest.json +1 -0
  388. package/data/craftbook-templates/tr/transcribe-index/manifest.json +1 -0
  389. package/data/craftbook-templates/tr/translate-content/manifest.json +1 -0
  390. package/data/craftbook-templates/ty/type-safety-pass/manifest.json +4 -3
  391. package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.0/craftbook.json +428 -0
  392. package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.0/test.json +222 -0
  393. package/data/craftbook-templates/ux/ux-update/art.json +12 -0
  394. package/data/craftbook-templates/ux/ux-update/logo.webp +0 -0
  395. package/data/craftbook-templates/ux/ux-update/manifest.json +22 -0
  396. package/data/craftbook-templates/ux/ux-update/versions/1.0.0/craftbook.json +439 -0
  397. package/data/craftbook-templates/ux/ux-update/versions/1.0.0/test.json +207 -0
  398. package/data/craftbook-templates/ve/version-bump/manifest.json +1 -0
  399. package/data/craftbook-templates/ve/version-bump/versions/1.1.0/craftbook.json +206 -0
  400. package/data/craftbook-templates/ve/version-bump/versions/1.1.0/test.json +95 -0
  401. package/data/craftbook-templates/vi/video-storyboard/manifest.json +1 -0
  402. package/data/craftbook-templates/vi/visit-prep/manifest.json +1 -0
  403. package/data/craftbook-templates/vo/voiceover-script/manifest.json +1 -0
  404. package/data/craftbook-templates/we/weak-spot-drill/manifest.json +1 -0
  405. package/data/craftbook-templates/we/web-app-crud/manifest.json +1 -0
  406. package/data/craftbook-templates/we/web-component/manifest.json +1 -0
  407. package/data/craftbook-templates/we/webhook-handler/manifest.json +1 -0
  408. package/data/craftbook-templates/we/week-plan/manifest.json +1 -0
  409. package/data/craftbook-templates/we/weekly-menu-plan/manifest.json +1 -0
  410. package/data/craftbook-templates/we/weekly-pipeline-review/manifest.json +1 -0
  411. package/data/craftbook-templates/we/weekly-review/manifest.json +1 -0
  412. package/data/craftbook-templates/we/weekly-walkthrough/manifest.json +1 -0
  413. package/data/craftbook-templates/wh/whitepaper/manifest.json +1 -0
  414. package/data/craftbook-templates/ye/year-in-review/manifest.json +1 -0
  415. package/data/craftbook-templates/yo/youtube-chapters-seo/manifest.json +1 -0
  416. package/data/gezel-templates/bo/boekwachter/versions/1.1.0/about.md +29 -0
  417. package/data/gezel-templates/bo/boekwachter/versions/1.1.0/manifest.json +16 -0
  418. package/data/gezel-templates/bu/builder/versions/1.5.0/about.md +34 -0
  419. package/data/gezel-templates/bu/builder/versions/1.5.0/manifest.json +16 -0
  420. package/data/gezel-templates/de/developer/versions/1.5.0/about.md +34 -0
  421. package/data/gezel-templates/de/developer/versions/1.5.0/manifest.json +21 -0
  422. package/data/gezel-templates/index.json +1 -1
  423. package/data/gezel-templates/re/reviewer/versions/1.4.0/about.md +49 -0
  424. package/data/gezel-templates/re/reviewer/versions/1.4.0/manifest.json +21 -0
  425. package/data/project-types/index.json +1 -1
  426. package/data/project-types/so/software-project/manifest.json +20 -0
  427. package/data/project-types/so/software-project/versions/1.0.0/about.md +3 -0
  428. package/data/project-types/so/software-project/versions/1.0.0/manifest.json +41 -0
  429. package/data/project-types/so/software-project/versions/1.0.0/mission.md +4 -0
  430. package/package.json +1 -1
  431. package/schemas/craftbook-doc.schema.json +248 -0
  432. package/schemas/craftbook-template-identity.schema.json +21 -0
  433. package/schemas/craftbook-template-version.schema.json +248 -0
  434. package/schemas/craftbook-test.schema.json +210 -0
@@ -0,0 +1,337 @@
1
+ {
2
+ "id": "comprehensive-codebase-review",
3
+ "name": "Comprehensive Codebase Review",
4
+ "description": "The definitive deep, consultant-level review of an entire codebase and its architecture. Before any review turn runs, the runtime brings the project's static index and AI index as up to date as they can get and publishes an honest coverage snapshot the report must cite. The review then harvests every indexed finding (per-file AI reviews, Boekwachter issues, security findings, dependency advisories), assesses the architecture and module boundaries, sweeps for duplicated code and logic, dead code, hygiene problems, embarrassments, and lightweight security issues — verifying every lead in real source — and clusters it all into systemic themes. The deliverable is a prioritized consultant report with a per-dimension scorecard, file-and-line-cited findings, quick wins vs strategic recommendations, and a machine-readable findings file, gated so no fabricated citation survives.\n\nWhat makes this the deep review rather than a long one: it starts from evidence the runtime prepared. On entering the first step, an `ensureIndexFresh` hook re-scans the static index, drives the AI tiers (embeddings, summaries, per-file reviews) with a bounded wait, and lands `review/index-readiness.json` in the task's working folder — including what could NOT be made fresh (no Boekwachter on the crew, indexing paused or disabled), so a quiet issue list is never mistaken for a clean codebase. Every phase gates on an artifact, the final report is checked structurally AND against fabrication (every cited file must exist in the workspace), and an evaluate loop repairs named gaps before the task can finish.\n\nDeliverables land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source, and the review never modifies the codebase.\n\nPhases:\n\n1. Survey the system (reviewer) — index freshness snapshot + whole-system map → gated on artifact `{{workPath}}/review/system-map.md`\n2. Harvest indexed findings (reviewer) — every existing AI-review, security, and dependency lead in one place → gated on artifact `{{workPath}}/review/indexed-findings.md`\n3. Assess the architecture (reviewer) — boundaries, coupling, pattern consistency, duplicated logic, verified in source → gated on artifact `{{workPath}}/review/architecture.md`\n4. Sweep quality and hygiene (reviewer) — duplication, dead code, embarrassments, lightweight security, verified in source → gated on artifact `{{workPath}}/review/hygiene.md`\n5. Synthesize themes (reviewer) — root-cause clusters ranked by blast radius; quick wins vs strategic work → gated on artifact `{{workPath}}/review/themes.md`\n6. Write the consultant report (reviewer) — scorecard, cited findings, recommendations + machine-readable findings JSON → gated on artifact `{{workPath}}/codebase-review.md` including an anti-fabrication check\n\nThe gates never advance with an unmet criterion, and loop back to the owning phase to fix named gaps. For a dedicated deep dive on one dimension afterwards, the report points at the specialist books: Deep Security Review, Codebase Refactoring Review, Reliability & Resilience Review, Documentation Drift Review.\n",
5
+ "entryStepId": "survey",
6
+ "triggers": [
7
+ "comprehensive codebase review",
8
+ "deep codebase review",
9
+ "review my whole codebase",
10
+ "consultant level code review",
11
+ "deep dive on code quality and architecture",
12
+ "full audit of the codebase",
13
+ "what is wrong with this codebase"
14
+ ],
15
+ "toolsets": [
16
+ {
17
+ "toolsetId": "builtin.code-intel",
18
+ "autoAllow": true,
19
+ "reason": "map the repo, rank indexed file-health leads, and verify every finding in real symbols"
20
+ },
21
+ {
22
+ "toolsetId": "builtin.security-intel",
23
+ "autoAllow": true,
24
+ "reason": "harvest static security findings, attack surface, and dependency advisories for the lightweight security pass"
25
+ },
26
+ {
27
+ "toolsetId": "builtin.git",
28
+ "autoAllow": true,
29
+ "reason": "read-only churn and fix-frequency evidence for prioritizing findings"
30
+ }
31
+ ],
32
+ "runModes": {
33
+ "nightShift": "recommended",
34
+ "scheduled": "supported"
35
+ },
36
+ "paramSchema": {
37
+ "type": "object",
38
+ "properties": {
39
+ "workPath": {
40
+ "type": "string",
41
+ "title": "Working folder",
42
+ "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.",
43
+ "default": "{{task.dir}}"
44
+ },
45
+ "focus": {
46
+ "type": "string",
47
+ "title": "Review focus",
48
+ "default": "overall code health, architecture, and maintainability",
49
+ "description": "Optional area to emphasize, e.g. architecture, duplication, security, tests, or a specific subsystem."
50
+ }
51
+ }
52
+ },
53
+ "steps": [
54
+ {
55
+ "id": "survey",
56
+ "name": "Survey the system",
57
+ "description": "read the runtime's index-freshness snapshot and map the whole system before judging any of it",
58
+ "prompt": "You are opening a comprehensive, consultant-level review of this entire codebase, weighted toward `{{focus}}`. You never modify project source in this craftbook — every deliverable is an artifact.\n\n**The runtime already ran the index-freshness pass.** On entering this step it re-scanned the static index, drove the AI index tiers with a bounded wait, and published the honest result to the artifact `{{workPath}}/review/index-readiness.json`. Step 1: call `read_artifact` on that file. Record its static state, search readiness, AI-tier coverage (summaries and per-file reviews: reviewed vs eligible), and EVERY entry in its `notes` array — those caveats (no Boekwachter on the crew, indexing paused or disabled, catch-up still running) are coverage limits your final report must state. If the file does not exist, say plainly that index freshness could not be verified and derive coverage from `map_repo` instead — never invent numbers.\n\nStep 2: map the system. Call `map_repo` and record languages, top areas, file counts, indexed health rollup, and worst files. Read the top-level manifests and docs (`read_file` on the package/build manifests and README) to state what the system IS: its purpose, runtime shape, entry points, external dependencies, and how it is built and tested. Step 3: if git history is available, use read-only `run_git` queries (log, shortlog, churn on the worst areas) for change-frequency evidence; missing history is not a failure. Step 4: name the 4-8 areas the deep phases will cover and anything deliberately out of scope.\n\nWrite the artifact `{{workPath}}/review/system-map.md` with `write_artifact`: the system's purpose and shape, the area inventory, churn hot spots, your review plan — and a section headed exactly `## Index coverage` quoting the readiness numbers and caveats. No findings yet; this phase orients the review.",
59
+ "suggestedRole": "reviewer",
60
+ "onEnter": [
61
+ {
62
+ "name": "ensureIndexFresh",
63
+ "scope": "standard",
64
+ "inputs": {
65
+ "outFile": "{{workPath}}/review/index-readiness.json",
66
+ "waitBudgetSeconds": 180
67
+ }
68
+ }
69
+ ],
70
+ "advanceWhen": {
71
+ "file": "{{workPath}}/review/system-map.md",
72
+ "minBytes": 1,
73
+ "sniff": "nonempty",
74
+ "artifact": true
75
+ },
76
+ "gate": {
77
+ "at": "completion",
78
+ "checks": [
79
+ {
80
+ "kind": "minBytes",
81
+ "file": "{{workPath}}/review/system-map.md",
82
+ "bytes": 150,
83
+ "artifact": true
84
+ },
85
+ {
86
+ "kind": "contains",
87
+ "file": "{{workPath}}/review/system-map.md",
88
+ "pattern": "(?:^|\\n)#{1,4}\\s+Index coverage",
89
+ "flags": "i",
90
+ "label": "an '## Index coverage' section quoting the readiness snapshot",
91
+ "artifact": true
92
+ }
93
+ ],
94
+ "onReject": "survey",
95
+ "maxAttempts": 3
96
+ },
97
+ "next": "harvest"
98
+ },
99
+ {
100
+ "id": "harvest",
101
+ "name": "Harvest indexed findings",
102
+ "description": "pull every existing AI-review, security, and dependency lead into one evidence base",
103
+ "prompt": "Collect everything gezel's indexes already know about this codebase before forming your own opinions. Step 1: call `list_file_issues` across the repo and record the totals by severity and category, the reviewed-vs-eligible coverage it reports, and the worst files; call `file_review` on the 5-10 lowest-health files for the indexed rationale. Step 2: call `security_scan` once to refresh the dependency inventory and run any installed scanners, then `security_overview` for the posture and candidate systemic themes, `scan_findings` for the static security leads by severity, and `list_dependencies` for advisory-bearing packages. Step 3: cross-reference with the churn hot spots from the system map — a low-health, high-churn file outranks a low-health frozen one.\n\nWrite the artifact `{{workPath}}/review/indexed-findings.md` with `write_artifact`: the counts and coverage per source, then the top leads grouped by dimension (architecture, duplication, hygiene, security, tests), each with its file path and one line of indexed rationale. Label everything here a LEAD, not a finding — nothing is a finding until a later phase verifies it in real source. Note which sources were empty and why (the readiness snapshot's caveats say whether an empty issue list means a clean codebase or an unstaffed AI tier).\n\nBefore working, open the artifact input `{{workPath}}/review/system-map.md` with `read_artifact`; do not look for it in the workspace.",
104
+ "suggestedRole": "reviewer",
105
+ "consumes": [
106
+ {
107
+ "file": "{{workPath}}/review/system-map.md",
108
+ "artifact": true
109
+ }
110
+ ],
111
+ "advanceWhen": {
112
+ "file": "{{workPath}}/review/indexed-findings.md",
113
+ "minBytes": 1,
114
+ "sniff": "nonempty",
115
+ "artifact": true
116
+ },
117
+ "gate": {
118
+ "at": "completion",
119
+ "checks": [
120
+ {
121
+ "kind": "minBytes",
122
+ "file": "{{workPath}}/review/indexed-findings.md",
123
+ "bytes": 150,
124
+ "artifact": true
125
+ },
126
+ {
127
+ "kind": "sniff",
128
+ "file": "{{workPath}}/review/indexed-findings.md",
129
+ "sniff": "nonempty",
130
+ "artifact": true
131
+ }
132
+ ],
133
+ "onReject": "harvest",
134
+ "maxAttempts": 3
135
+ },
136
+ "next": "architecture"
137
+ },
138
+ {
139
+ "id": "architecture",
140
+ "name": "Assess the architecture",
141
+ "description": "boundaries, coupling, dependency direction, pattern consistency, and duplicated logic — verified in source",
142
+ "prompt": "Judge the architecture the way a consultant would: by how the pieces actually depend on each other, not by the directory names. Step 1: from the system map, identify the intended layers/modules and their boundaries. Step 2: verify them — use `outline_file` before reading any large file, `read_symbol` for the load-bearing units, and `find_references` to see real dependency direction; flag boundary leaks (a lower layer importing upward, UI reaching into storage, cross-module reach-ins). Step 3: assess pattern consistency with `search_code`: how many different ways does this codebase do error handling, data access, configuration, validation? Each extra way is a finding. Step 4: hunt duplicated LOGIC across modules (the same responsibility implemented twice), oversized orchestration files, god objects, and unclear ownership — start from the worst-health files in the indexed leads and confirm or explicitly reject each. Step 5: for every CONFIRMED problem record file:line evidence, why it hurts (change amplification, blast radius, onboarding cost), a bounded remediation seam, and effort/risk. Note what you checked and found SOUND — that list is half the report's credibility.\n\nWrite the evidence to the artifact `{{workPath}}/review/architecture.md` with `write_artifact`. Do not modify source.\n\nBefore working, open the artifact inputs `{{workPath}}/review/system-map.md` and `{{workPath}}/review/indexed-findings.md` with `read_artifact`; do not look for them in the workspace.",
143
+ "suggestedRole": "reviewer",
144
+ "consumes": [
145
+ {
146
+ "file": "{{workPath}}/review/system-map.md",
147
+ "artifact": true
148
+ },
149
+ {
150
+ "file": "{{workPath}}/review/indexed-findings.md",
151
+ "artifact": true
152
+ }
153
+ ],
154
+ "advanceWhen": {
155
+ "file": "{{workPath}}/review/architecture.md",
156
+ "minBytes": 1,
157
+ "sniff": "nonempty",
158
+ "artifact": true
159
+ },
160
+ "gate": {
161
+ "at": "completion",
162
+ "checks": [
163
+ {
164
+ "kind": "minBytes",
165
+ "file": "{{workPath}}/review/architecture.md",
166
+ "bytes": 150,
167
+ "artifact": true
168
+ },
169
+ {
170
+ "kind": "sniff",
171
+ "file": "{{workPath}}/review/architecture.md",
172
+ "sniff": "nonempty",
173
+ "artifact": true
174
+ }
175
+ ],
176
+ "onReject": "architecture",
177
+ "maxAttempts": 3
178
+ },
179
+ "next": "hygiene"
180
+ },
181
+ {
182
+ "id": "hygiene",
183
+ "name": "Sweep quality and hygiene",
184
+ "description": "duplicated code, dead code, embarrassments, and lightweight security problems — verified in source",
185
+ "prompt": "Sweep for the problems that make a codebase embarrassing to hand to a new engineer. Step 1: copy-paste duplication — use `search_code` and `grep_files` for distinctive repeated fragments and near-identical functions; confirm each pair by reading both sides. Step 2: dead weight — exports with no references (`find_references`), unreachable branches, leftover scratch/experiment files, and committed junk (`find_files` for logs, editor droppings, build outputs, `.env`-style files that should not be in the tree). Step 3: embarrassments — clusters of TODO/FIXME/HACK/XXX, commented-out code blocks, debug prints left in production paths, misspellings in public names, wildly inconsistent naming. Cluster them; five scattered TODOs are noise, thirty in one module are a finding. Step 4: lightweight security — verify the harvested leads and grep for hardcoded secrets/tokens, ad-hoc environment reads, string-built queries or shell commands reaching user input, and debug/permissive flags left on. Confirm in source; severity honestly (a hardcoded token is high; a TODO is info). This is the LIGHTWEIGHT pass — recommend the Deep Security Review craftbook in the report for anything that needs a real audit. Step 5: test posture — where are the tests thin relative to the risk you have seen? For every confirmed finding: file:line, why it matters, the concrete fix. Record what came out CLEAN too.\n\nWrite the evidence to the artifact `{{workPath}}/review/hygiene.md` with `write_artifact`. Do not modify source.\n\nBefore working, open the artifact input `{{workPath}}/review/indexed-findings.md` with `read_artifact`; do not look for it in the workspace.",
186
+ "suggestedRole": "reviewer",
187
+ "consumes": [
188
+ {
189
+ "file": "{{workPath}}/review/indexed-findings.md",
190
+ "artifact": true
191
+ }
192
+ ],
193
+ "advanceWhen": {
194
+ "file": "{{workPath}}/review/hygiene.md",
195
+ "minBytes": 1,
196
+ "sniff": "nonempty",
197
+ "artifact": true
198
+ },
199
+ "gate": {
200
+ "at": "completion",
201
+ "checks": [
202
+ {
203
+ "kind": "minBytes",
204
+ "file": "{{workPath}}/review/hygiene.md",
205
+ "bytes": 150,
206
+ "artifact": true
207
+ },
208
+ {
209
+ "kind": "sniff",
210
+ "file": "{{workPath}}/review/hygiene.md",
211
+ "sniff": "nonempty",
212
+ "artifact": true
213
+ }
214
+ ],
215
+ "onReject": "hygiene",
216
+ "maxAttempts": 3
217
+ },
218
+ "next": "synthesize"
219
+ },
220
+ {
221
+ "id": "synthesize",
222
+ "name": "Synthesize themes",
223
+ "description": "cluster every confirmed finding into root-cause themes; rank; split quick wins from strategic work",
224
+ "prompt": "Step back from individual findings and produce the analysis only a whole-codebase review can: the systemic picture. Step 1: re-read your evidence artifacts (`{{workPath}}/review/architecture.md`, `{{workPath}}/review/hygiene.md`, `{{workPath}}/review/indexed-findings.md`) with `read_artifact`. Step 2: cluster every CONFIRMED finding by ROOT CAUSE, not by file — e.g. 'there is no shared validation layer so each route re-implements it', 'module boundaries are undocumented so logic duplicates across areas'. For each theme state the root cause, the blast radius (how much of the system it touches and how many findings it explains), and the single change that would prevent the whole class. Step 3: rank themes by blast radius × severity, weighted toward `{{focus}}`. Step 4: split the remediation into QUICK WINS (safe, bounded, this-week fixes: delete the dead files, remove the debug prints, extract one duplicated helper) and STRATEGIC WORK (sequenced refactors with migration boundaries and the tests that must protect behavior). Step 5: assign each confirmed finding a severity (critical, high, medium, low, info) and the theme it belongs to — this taxonomy feeds the final report and its machine-readable findings file. A healthy codebase with few material findings should say so plainly rather than inventing themes.\n\nWrite the artifact `{{workPath}}/review/themes.md` with `write_artifact`.",
225
+ "suggestedRole": "reviewer",
226
+ "consumes": [
227
+ {
228
+ "file": "{{workPath}}/review/architecture.md",
229
+ "artifact": true
230
+ },
231
+ {
232
+ "file": "{{workPath}}/review/hygiene.md",
233
+ "artifact": true
234
+ }
235
+ ],
236
+ "advanceWhen": {
237
+ "file": "{{workPath}}/review/themes.md",
238
+ "minBytes": 1,
239
+ "sniff": "nonempty",
240
+ "artifact": true
241
+ },
242
+ "gate": {
243
+ "at": "completion",
244
+ "checks": [
245
+ {
246
+ "kind": "minBytes",
247
+ "file": "{{workPath}}/review/themes.md",
248
+ "bytes": 150,
249
+ "artifact": true
250
+ },
251
+ {
252
+ "kind": "sniff",
253
+ "file": "{{workPath}}/review/themes.md",
254
+ "sniff": "nonempty",
255
+ "artifact": true
256
+ }
257
+ ],
258
+ "onReject": "synthesize",
259
+ "maxAttempts": 3
260
+ },
261
+ "next": "report"
262
+ },
263
+ {
264
+ "id": "report",
265
+ "name": "Write the consultant report",
266
+ "description": "the definitive deliverable: scorecard, cited findings, recommendations, and a machine-readable findings file",
267
+ "prompt": "Write the final deliverable as TWO artifacts, in this order.\n\nStep 1: write `{{workPath}}/codebase-review-findings.json` with `write_artifact` — a JSON array where each confirmed finding is an object with: `file` (a REAL workspace path — the gate verifies every one exists), `line` (a number; REQUIRED for critical and high findings), `severity` (one of critical, high, medium, low, info), `dimension` (architecture, duplication, hygiene, security, tests, or docs), `title`, `remediation` (a concrete fix), and `theme` (the systemic theme it belongs to). No fabricated paths, no vague remediations.\n\nStep 2: write `{{workPath}}/codebase-review.md` with `write_artifact`, using these exact section headings:\n\n`## Executive summary` — 3-6 sentences an owner reads first: overall judgment, the finding counts by severity, the top systemic themes, and the single most valuable next action. The tone must match the open severity — never 'excellent health' over an open critical/high.\n`## Scorecard` — a markdown table with columns `Dimension`, `Grade`, `Evidence` grading at least five dimensions (architecture, code quality & duplication, hygiene, security posture, tests) A-F, each grade justified by one line of evidence from your phases.\n`## Index coverage and method` — the readiness snapshot's numbers and caveats, what each phase examined, and the limits of this review.\n`## Systemic themes` — each theme with its root cause and blast radius, ranked. This is the heart of the review.\n`## Findings` — each finding as `### [SEVERITY] title — file:line` with the evidence, the consequence, and the remediation, ordered by severity then blast radius.\n`## Quick wins` — the safe, bounded fixes worth doing this week.\n`## Strategic recommendations` — the sequenced larger work: seams, migration order, and the behavior-preserving tests required first.\n`## Verified sound` — what you checked and found solid, so coverage is auditable.\n`## Not assessed` — what this review did not cover (runtime performance, deployment, anything the index caveats excluded).\n`## Suggested deeper reviews` — which specialist craftbooks to run next (Deep Security Review, Codebase Refactoring Review, Reliability & Resilience Review, Documentation Drift Review) and why, based on what you found.\n\nThe gate re-reads both artifacts: it verifies every cited file exists, every finding is complete, the scorecard table is real, and the themes analyze root cause and blast radius. On a loop-back, fix ONLY the gaps it names without dropping findings that already passed.\n\nBefore working, open the artifact input `{{workPath}}/review/themes.md` with `read_artifact`; do not look for it in the workspace.",
268
+ "suggestedRole": "reviewer",
269
+ "consumes": [
270
+ {
271
+ "file": "{{workPath}}/review/themes.md",
272
+ "artifact": true
273
+ }
274
+ ],
275
+ "advanceWhen": {
276
+ "file": "{{workPath}}/codebase-review.md",
277
+ "minBytes": 500,
278
+ "artifact": true
279
+ },
280
+ "gate": {
281
+ "at": "completion",
282
+ "checks": [
283
+ {
284
+ "kind": "minBytes",
285
+ "file": "{{workPath}}/codebase-review.md",
286
+ "bytes": 2500,
287
+ "artifact": true
288
+ },
289
+ {
290
+ "kind": "minBytes",
291
+ "file": "{{workPath}}/codebase-review-findings.json",
292
+ "bytes": 2,
293
+ "artifact": true
294
+ }
295
+ ],
296
+ "scripts": [
297
+ {
298
+ "name": "checkCodebaseReviewReport",
299
+ "scope": "standard",
300
+ "inputs": {
301
+ "file": "{{workPath}}/codebase-review.md",
302
+ "findings": "{{workPath}}/codebase-review-findings.json"
303
+ }
304
+ }
305
+ ],
306
+ "onReject": "report",
307
+ "maxAttempts": 4
308
+ },
309
+ "next": "evaluate"
310
+ },
311
+ {
312
+ "id": "evaluate",
313
+ "name": "Evaluate",
314
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
315
+ "prompt": "Grade `{{workPath}}/codebase-review.md` against the standard a paying client would hold a consultant to. Check EACH criterion and write PASS/FAIL with a one-line reason: (1) the executive summary gives a real judgment an owner can act on, consistent with the open severity; (2) the scorecard grades are grounded in the report's own evidence, not vibes; (3) index coverage and its caveats are stated, and 'Not assessed' is honest — a quiet report is never passed off as a clean codebase; (4) every finding was verified in source and cites a real file (critical/high pinned to a line); (5) systemic themes are root-cause clusters with blast radius, not a re-grouped file list; (6) quick wins are genuinely safe and bounded, and strategic recommendations name seams, sequence, and behavior-preserving tests; (7) severities are calibrated — no inflation to look thorough, no deflation to look kind; (8) the suggested deeper reviews follow from what was actually found; (9) no project source was modified. \n\nThe deliverable lives in the project's artifacts drawer — open `{{workPath}}/codebase-review.md` with `read_artifact`, not `read_file`.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"report\" })` 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 read like a definitive review). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
316
+ "suggestedRole": "reviewer",
317
+ "consumes": [
318
+ {
319
+ "file": "{{workPath}}/codebase-review.md",
320
+ "artifact": true
321
+ }
322
+ ],
323
+ "next": "report"
324
+ },
325
+ {
326
+ "id": "finish",
327
+ "name": "Finish",
328
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
329
+ "prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: the overall judgment, the finding counts by severity, the top systemic themes, and the deliverable paths (`{{workPath}}/codebase-review.md`, `{{workPath}}/codebase-review-findings.json`, with the phase evidence under `{{workPath}}/review/`). Note that nothing in the workspace was modified. Then report DONE.",
330
+ "suggestedRole": "reviewer",
331
+ "terminal": true
332
+ }
333
+ ],
334
+ "version": "1.0.0",
335
+ "releasedAt": "2026-08-23T00:00:00Z",
336
+ "minGezelVersion": "1.26235"
337
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Comprehensive Codebase Review multi-dimension eval",
4
+ "objective": "Measure whether the review verifies planted architecture, duplication, hygiene, and lightweight-security problems in real source, states its index coverage honestly, and delivers a consultant report with a grounded scorecard, systemic themes, and a machine-readable findings file.",
5
+ "tags": [
6
+ "corpus"
7
+ ],
8
+ "prompt": "Use the Comprehensive Codebase Review craftbook to do a deep, consultant-level review of this codebase and its architecture. Write the report to tasks/eval/codebase-review.md. Do not change source.",
9
+ "setup": {
10
+ "projectName": "Comprehensive Review Eval",
11
+ "about": "A small web service with deliberate problems in several dimensions: duplicated parsing logic, a hardcoded token, debug prints, dead code, and a leaky module boundary.",
12
+ "missionObjectives": "Verify problems in source across architecture, duplication, hygiene, and security; grade each dimension; separate quick wins from strategic work.",
13
+ "files": [
14
+ {
15
+ "path": "src/routes/orders.ts",
16
+ "content": "import { db } from '../storage/db';\nexport async function postOrder(req, res) {\n // TODO: validate\n // TODO: auth\n // TODO: rate limit\n const items = String(req.body.items || '');\n const parsed = items.split(',').map(s => { const [sku, qty] = s.split(':'); return { sku: sku.trim(), qty: Number(qty || 1) }; });\n console.log('DEBUG order', parsed);\n const rows = await db.query(\"INSERT INTO orders (items) VALUES ('\" + items + \"')\");\n res.json({ ok: true, rows });\n}\n"
17
+ },
18
+ {
19
+ "path": "src/routes/quotes.ts",
20
+ "content": "export async function postQuote(req, res) {\n const items = String(req.body.items || '');\n const parsed = items.split(',').map(s => { const [sku, qty] = s.split(':'); return { sku: sku.trim(), qty: Number(qty || 1) }; });\n res.json({ quote: parsed.length * 10 });\n}\n"
21
+ },
22
+ {
23
+ "path": "src/storage/db.ts",
24
+ "content": "import { postOrder } from '../routes/orders';\nexport const API_TOKEN = 'sk-live-9f2a71c04d8e';\nexport const db = { query: async (sql) => { return [{ sql }]; } };\nexport function legacyMigrate() { /* unused since v2 */ return null; }\n"
25
+ },
26
+ {
27
+ "path": "test/quotes.test.ts",
28
+ "content": "test('quotes', async () => {\n expect(1 + 1).toBe(2);\n});\n"
29
+ },
30
+ {
31
+ "path": "README.md",
32
+ "content": "# Order service\nA tiny order and quote service.\n"
33
+ }
34
+ ],
35
+ "worker": {
36
+ "name": "Rae",
37
+ "role": "Reviewer"
38
+ },
39
+ "craftbookParams": {
40
+ "workPath": "tasks/eval"
41
+ }
42
+ },
43
+ "mocks": [],
44
+ "success": {
45
+ "summary": "tasks/eval/codebase-review.md verifies the planted problems with real file citations, grades at least five dimensions, clusters findings into root-cause themes, and ships a machine-readable findings JSON beside it.",
46
+ "deliverables": [
47
+ {
48
+ "path": "tasks/eval/codebase-review.md",
49
+ "kind": "markdown-report",
50
+ "artifact": true,
51
+ "minBytes": 2500,
52
+ "checks": [
53
+ {
54
+ "kind": "contains",
55
+ "file": "tasks/eval/codebase-review.md",
56
+ "pattern": "##\\s+Executive summary[\\s\\S]*##\\s+Scorecard[\\s\\S]*##\\s+Systemic themes[\\s\\S]*##\\s+Findings[\\s\\S]*##\\s+Quick wins",
57
+ "flags": "i",
58
+ "label": "consultant report sections",
59
+ "artifact": true
60
+ },
61
+ {
62
+ "kind": "tableShape",
63
+ "file": "tasks/eval/codebase-review.md",
64
+ "requiredColumns": [
65
+ "Dimension",
66
+ "Grade"
67
+ ],
68
+ "artifact": true
69
+ },
70
+ {
71
+ "kind": "contains",
72
+ "file": "tasks/eval/codebase-review.md",
73
+ "pattern": "src/routes/(orders|quotes)\\.ts",
74
+ "flags": "i",
75
+ "label": "duplication evidence cites a real route file",
76
+ "artifact": true
77
+ },
78
+ {
79
+ "kind": "contains",
80
+ "file": "tasks/eval/codebase-review.md",
81
+ "pattern": "API_TOKEN|hard-?coded (secret|token|credential)",
82
+ "flags": "i",
83
+ "label": "the planted hardcoded token is found",
84
+ "artifact": true
85
+ },
86
+ {
87
+ "kind": "contains",
88
+ "file": "tasks/eval/codebase-review.md",
89
+ "pattern": "console\\.log|debug (print|logging|output)",
90
+ "flags": "i",
91
+ "label": "the planted debug print is found",
92
+ "artifact": true
93
+ },
94
+ {
95
+ "kind": "contains",
96
+ "file": "tasks/eval/codebase-review.md",
97
+ "pattern": "root[\\s-]?cause",
98
+ "flags": "i",
99
+ "label": "themes analyze root cause",
100
+ "artifact": true
101
+ },
102
+ {
103
+ "kind": "contains",
104
+ "file": "tasks/eval/codebase-review.md",
105
+ "pattern": "Index coverage",
106
+ "flags": "i",
107
+ "label": "index coverage is stated",
108
+ "artifact": true
109
+ }
110
+ ]
111
+ },
112
+ {
113
+ "path": "tasks/eval/codebase-review-findings.json",
114
+ "kind": "json",
115
+ "artifact": true,
116
+ "minBytes": 100,
117
+ "checks": [
118
+ {
119
+ "kind": "sniff",
120
+ "file": "tasks/eval/codebase-review-findings.json",
121
+ "sniff": "json-valid",
122
+ "artifact": true
123
+ },
124
+ {
125
+ "kind": "contains",
126
+ "file": "tasks/eval/codebase-review-findings.json",
127
+ "pattern": "\"severity\"[\\s\\S]*\"remediation\"",
128
+ "label": "structured findings with severity and remediation",
129
+ "artifact": true
130
+ }
131
+ ]
132
+ }
133
+ ]
134
+ },
135
+ "rubric": {
136
+ "artifact": {
137
+ "path": "tasks/eval/codebase-review.md",
138
+ "kind": "markdown"
139
+ },
140
+ "axes": [
141
+ {
142
+ "name": "verification",
143
+ "description": "Findings cite real files and lines; the duplicated parser, SQL string-building, hardcoded token, debug print, dead export, and storage-imports-routes boundary leak are found rather than invented."
144
+ },
145
+ {
146
+ "name": "synthesis",
147
+ "description": "Findings cluster into root-cause themes with blast radius; the scorecard grades follow the evidence."
148
+ },
149
+ {
150
+ "name": "actionability",
151
+ "description": "Quick wins are safe and bounded; strategic recommendations name seams, sequence, and behavior-preserving tests; deeper specialist reviews are suggested where warranted."
152
+ }
153
+ ]
154
+ },
155
+ "qualityFocus": [
156
+ "verified findings across dimensions",
157
+ "honest coverage statement",
158
+ "consultant-grade prioritization"
159
+ ]
160
+ }
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "config-scaffold",
5
5
  "role": "project-starter",
6
+ "category": "code-build",
6
7
  "name": "Project Config Scaffold",
7
8
  "description": "Bootstrap a project's configuration — the tooling, linter, formatter, tsconfig/compiler, scripts, and ignore files — into a coherent, conflict-free baseline that actually works together. Scopes the config surface FIRST — every tool, its config file, the settings, and how they must agree (formatter vs linter, strict compiler) — then writes the config files and scripts, then verifies the toolchain runs clean with no conflicts. Covers linter/formatter config, compiler/tsconfig, package scripts, editorconfig, gitignore, and ensuring tools do not fight each other.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "content-accuracy-review",
5
5
  "role": "maintenance-review",
6
+ "category": "research",
6
7
  "name": "Content Accuracy Review",
7
8
  "description": "Fact-check a piece of content for accuracy and produce a claim-by-claim verification report. First scopes the content and extracts every checkable claim (statistics, dates, quotes, attributions, causal and factual statements) and locks a verification standard, then verifies each claim against authoritative sources rating it true/false/misleading/unverifiable with the supporting evidence, then writes a report flagging every inaccuracy with the correction and source plus an overall trust rating. Use this for a fact-check, accuracy review, content verification, checking claims and statistics, source-checking an article, or vetting content before publishing — it returns a claim-level verdict backed by cited sources rather than a vague 'seems accurate'.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "content-deck",
5
5
  "role": "general",
6
+ "category": "design",
6
7
  "name": "Slide Deck from Content",
7
8
  "description": "Turn a body of source content into a presentation deck. Outlines the narrative first, designs a consistent slide look, then builds the deck (HTML slides), evaluating for narrative flow and visual consistency.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "contract-template",
5
5
  "role": "general",
6
+ "category": "business",
6
7
  "name": "Contract Template (Non-Legal-Advice)",
7
8
  "description": "Draft a reusable, plain-language agreement template — service agreement, NDA, freelance contract, or terms — with clearly marked fill-in fields, structured numbered clauses, and a prominent non-legal-advice disclaimer. Scopes the parties, obligations, and risk allocation FIRST, drafts clear enforceable-style clauses with placeholders for the variable terms, then has a reviewer check completeness and flag anything that genuinely needs a lawyer. NOT legal advice — every output must say so. Use for templated agreements you will adapt and have counsel review.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "cookbook-layout",
5
5
  "role": "general",
6
+ "category": "personal",
6
7
  "name": "Lay Out the Cookbook",
7
8
  "description": "Assemble the heirloom: every tested recipe in its chapter, the provenance kept beside the food — whose recipe it was, what table it came from — chapter intros in the family's voice, print-ready pages. The book that exists because someone finally sat down and made it. Locks the inclusion rule FIRST — tested recipes in, untested listed for the next round, never silently dropped — then lays out the chapters, then proofs every eligible recipe made it in with its story intact. Use for laying out the family cookbook, the heirloom recipe book, 'print the cookbook', and a recipe book for the grandchildren.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "copy-review",
5
5
  "role": "maintenance-review",
6
+ "category": "writing",
6
7
  "name": "Editorial & Tone Review",
7
8
  "description": "Run an editorial review on a piece of content for clarity, correctness, and brand voice, then produce a line-edit report and a clean revised version. First scopes the audience, purpose, and voice/style rules and locks an editorial checklist (grammar and spelling, clarity and concision, consistent terminology, active voice, reading level, tone match, scannability, and CTA strength), then reviews the copy line-by-line against those rules marking every issue with a suggested rewrite, then writes a report of categorized edits plus a clean revised draft. Use this for a copy review, editorial pass, proofreading, line edit, tone/voice review, or tightening writing — it returns specific tracked edits with rewrites and a polished final draft rather than 'tighten this up'.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "corpus-email-digest",
5
5
  "role": "general",
6
+ "category": "business",
6
7
  "name": "Daily Email Digest from a Corpus",
7
8
  "description": "Produce an email-ready digest that summarizes a corpus of content (docs, feeds, notes) for a recurring send. Scopes what matters and the format first, drafts the digest in a consistent voice, then builds the email-ready output and evaluates for accuracy and scannability.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "corpus-synthesis",
5
5
  "role": "general",
6
+ "category": "research",
6
7
  "name": "Corpus Synthesis",
7
8
  "description": "Read a provided corpus of documents and synthesize it into a single coherent overview: a planner sets the synthesis question and the extraction schema, a researcher reads every document and extracts structured notes keyed back to each source, and a copywriter synthesizes the extracts into a unified narrative organized by idea rather than by document. The ordering matters because synthesizing before reading everything privileges the first few documents, and a write-up keyed to documents instead of ideas just summarizes each file; locking a synthesis question and per-document extraction first guarantees full coverage and a real cross-document synthesis. Use this for synthesizing a folder of docs/notes/papers, 'pull together everything we know about X', cross-document summaries, knowledge consolidation, and meeting/research-note synthesis.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "cover-letter",
5
5
  "role": "general",
6
+ "category": "business",
6
7
  "name": "Tailored Cover Letter",
7
8
  "description": "Write a tailored, one-page cover letter that maps a candidate's real background to a specific job's requirements: it first scopes the role's key requirements, the company hook, and the 3-4 strongest matching proof points from the applicant's experience, then drafts a focused letter with a specific opening, evidence-backed body paragraphs, and a confident close. Covers cover letter, job application letter, motivation letter, application writing, and personalized cover letter. Scoping the role-to-experience mapping before writing is the point: a small model that picks the strongest evidence for THIS job avoids the generic, one-size-fits-all letter that could be sent anywhere and lists duties instead of proving fit.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "crm-update-batch",
5
5
  "role": "general",
6
+ "category": "business",
6
7
  "name": "Bulk CRM Update from Notes",
7
8
  "description": "Turn unstructured notes (call logs, meeting recaps, email threads) into a batch of structured CRM updates: per-contact field changes, activity logs, and next-step tasks as a validated import file. Scopes the CRM field schema and extraction rules FIRST (which objects/fields, allowed picklist values, the match-or-create key, required fields), then a developer extracts and maps every note into rows against that schema, then a reviewer validates the batch for schema-conformance and that no update mutates a field without evidence in the source. Scoping the schema before extraction is what makes the import load cleanly and prevents fabricated field values. Use for CRM data entry, bulk contact updates, importing notes into Salesforce/HubSpot, activity logging, and turning call notes into pipeline updates.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "cron-job",
5
5
  "role": "project-starter",
6
+ "category": "code-ops",
6
7
  "name": "Scheduled Batch Job",
7
8
  "description": "Build a scheduled batch job that runs on a cadence, processes a unit of work, is safe to re-run, and reports its outcome. Scopes the job FIRST — trigger cadence, the work it does, batch/chunk size, idempotency, failure/partial-failure handling, and observable output — then implements the runnable job, then tests a clean run, an empty run, a partial-failure run, and re-run safety. Covers cron scheduling semantics, batch processing, idempotent reruns, chunking, structured logging, exit codes, and graceful partial-failure handling.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "crossword-forge",
5
5
  "role": "general",
6
+ "category": "design",
6
7
  "name": "Forge a Crossword",
7
8
  "description": "Construct a personalized crossword and prove it works before anyone's pencil touches it: the grid actually interlocks, every entry sits in the grid exactly where its number says, every clue is tuned to the solver — and the whole thing ships as a printable page with the solution kept decently out of sight. Locks the theme and the word list FIRST, then constructs the mechanically-verified grid, then renders the printable puzzle. Use for making a crossword, a personalized puzzle for the family, 'a crossword with the grandkids' names in it', and printable puzzle gifts.",
8
9
  "tags": [
@@ -3,6 +3,7 @@
3
3
  "kind": "craftbook-template",
4
4
  "id": "csv-transformer",
5
5
  "role": "general",
6
+ "category": "code-data",
6
7
  "name": "CSV / Tabular Transformer",
7
8
  "description": "Reshape and convert tabular data from one schema to another: rename and reorder columns, split or merge fields, derive new columns, pivot/unpivot, change format (CSV<->JSON<->TSV), and filter rows. Locks the input and target schema and the field-by-field mapping FIRST (so the transform is a contract, not guesswork), then builds the transform and emits the output, then verifies row counts and a sample mapping. Use this for reshaping a CSV, converting data formats, remapping columns, flattening JSON to a table, or reformatting an export for another tool.",
8
9
  "tags": [