@bendyline/gilde 0.1.55 → 0.1.56

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 (185) hide show
  1. package/authoring/chat-models/glm-5.3-flash-320b-q2.json +129 -0
  2. package/authoring/gstack/wave.json +2 -2
  3. package/data/chat-models/gl/glm-5.3-flash-320b-q2/manifest.json +137 -0
  4. package/data/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.0/manifest.json +23 -0
  5. package/data/chat-models/index.json +1 -1
  6. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.3/test.json +16 -8
  7. package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.2/craftbook.json +618 -0
  8. package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.2/test.json +228 -0
  9. package/data/craftbook-templates/al/album-curate/versions/1.0.3/test.json +6 -3
  10. package/data/craftbook-templates/al/alert-rules/versions/1.0.3/test.json +8 -8
  11. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.5/test.json +10 -5
  12. package/data/craftbook-templates/an/annual-document-review/versions/1.0.3/test.json +16 -8
  13. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.3/test.json +12 -6
  14. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.2/craftbook.json +602 -0
  15. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.2/test.json +290 -0
  16. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.3/test.json +18 -9
  17. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.5/test.json +10 -5
  18. package/data/craftbook-templates/au/auth-flow/versions/1.0.3/test.json +12 -6
  19. package/data/craftbook-templates/au/auth-flow/versions/1.0.4/craftbook.json +282 -0
  20. package/data/craftbook-templates/au/auth-flow/versions/1.0.4/test.json +143 -0
  21. package/data/craftbook-templates/au/automation-recipe/versions/1.0.3/test.json +12 -6
  22. package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/craftbook.json +282 -0
  23. package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/test.json +108 -0
  24. package/data/craftbook-templates/bl/blog-post/versions/1.0.3/test.json +8 -8
  25. package/data/craftbook-templates/br/branding-website/versions/1.1.3/craftbook.json +335 -0
  26. package/data/craftbook-templates/br/branding-website/versions/1.1.3/test.json +164 -0
  27. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.3/test.json +8 -8
  28. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.8/craftbook.json +621 -0
  29. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.8/test.json +376 -0
  30. package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.2/craftbook.json +730 -0
  31. package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.2/test.json +221 -0
  32. package/data/craftbook-templates/bu/build-loop/versions/1.1.1/test.json +8 -8
  33. package/data/craftbook-templates/ca/case-study/versions/1.0.3/test.json +8 -8
  34. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.4/test.json +10 -5
  35. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/test.json +25 -11
  36. package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.2/craftbook.json +587 -0
  37. package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.2/test.json +225 -0
  38. package/data/craftbook-templates/ci/citation-audit/versions/1.0.3/test.json +28 -14
  39. package/data/craftbook-templates/cl/cli-tool/versions/1.1.3/test.json +8 -8
  40. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.3/test.json +16 -8
  41. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.3/test.json +18 -9
  42. package/data/craftbook-templates/co/codemod-sweep/versions/1.0.2/craftbook.json +605 -0
  43. package/data/craftbook-templates/co/codemod-sweep/versions/1.0.2/test.json +252 -0
  44. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.3/test.json +18 -9
  45. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.3/test.json +23 -15
  46. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.3/test.json +28 -14
  47. package/data/craftbook-templates/co/content-deck/versions/1.2.3/craftbook.json +4 -4
  48. package/data/craftbook-templates/co/content-deck/versions/1.2.3/test.json +3 -0
  49. package/data/craftbook-templates/co/content-deck/versions/1.2.4/craftbook.json +341 -0
  50. package/data/craftbook-templates/co/content-deck/versions/1.2.4/test.json +169 -0
  51. package/data/craftbook-templates/co/copy-review/versions/1.0.3/test.json +14 -7
  52. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/craftbook.json +4 -4
  53. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/test.json +3 -0
  54. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/craftbook.json +345 -0
  55. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/test.json +187 -0
  56. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.3/test.json +26 -13
  57. package/data/craftbook-templates/co/cover-letter/versions/1.0.3/test.json +8 -8
  58. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.4/test.json +7 -7
  59. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.3/test.json +7 -7
  60. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/craftbook.json +285 -0
  61. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/test.json +104 -0
  62. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.5/craftbook.json +284 -0
  63. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.5/test.json +162 -0
  64. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.3/test.json +38 -19
  65. package/data/craftbook-templates/da/data-to-report/versions/1.0.3/test.json +12 -6
  66. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/craftbook.json +286 -0
  67. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/test.json +104 -0
  68. package/data/craftbook-templates/de/dependency-audit/versions/1.1.3/test.json +14 -7
  69. package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.2/craftbook.json +621 -0
  70. package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.2/test.json +235 -0
  71. package/data/craftbook-templates/de/design-review/versions/1.0.3/test.json +16 -8
  72. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.8/craftbook.json +616 -0
  73. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.8/test.json +201 -0
  74. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/craftbook.json +285 -0
  75. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/test.json +104 -0
  76. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/test.json +119 -55
  77. package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/craftbook.json +285 -0
  78. package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/test.json +92 -0
  79. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.3/test.json +18 -9
  80. package/data/craftbook-templates/dr/draft-social-post/versions/1.0.2/craftbook.json +324 -0
  81. package/data/craftbook-templates/dr/draft-social-post/versions/1.0.2/test.json +161 -0
  82. package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/test.json +11 -4
  83. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.8/craftbook.json +566 -0
  84. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.8/test.json +191 -0
  85. package/data/craftbook-templates/ep/episode-plan/versions/1.0.3/test.json +10 -5
  86. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/test.json +7 -10
  87. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.8/craftbook.json +595 -0
  88. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.8/test.json +139 -0
  89. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.4/craftbook.json +277 -0
  90. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.4/test.json +104 -0
  91. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.2/craftbook.json +327 -0
  92. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.2/test.json +162 -0
  93. package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.2/craftbook.json +718 -0
  94. package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.2/test.json +239 -0
  95. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/craftbook.json +285 -0
  96. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/test.json +162 -0
  97. package/data/craftbook-templates/fo/form-wizard/versions/1.0.3/test.json +8 -8
  98. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/test.json +11 -4
  99. package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.2/craftbook.json +610 -0
  100. package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.2/test.json +220 -0
  101. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.3/craftbook.json +343 -0
  102. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.3/test.json +176 -0
  103. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.8/craftbook.json +566 -0
  104. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.8/test.json +141 -0
  105. package/data/craftbook-templates/im/image-set-index/versions/1.2.3/craftbook.json +298 -0
  106. package/data/craftbook-templates/im/image-set-index/versions/1.2.3/test.json +180 -0
  107. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/test.json +11 -4
  108. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.3/test.json +48 -23
  109. package/data/craftbook-templates/in/invitation-design/versions/1.0.3/test.json +1 -1
  110. package/data/craftbook-templates/index.json +1 -1
  111. package/data/craftbook-templates/it/item-intake/versions/1.0.3/test.json +11 -4
  112. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.4/craftbook.json +277 -0
  113. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.4/test.json +104 -0
  114. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.3/test.json +16 -8
  115. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/test.json +3 -0
  116. package/data/craftbook-templates/mo/morning-report/versions/1.0.3/test.json +21 -9
  117. package/data/craftbook-templates/of/office-hours/versions/1.1.1/test.json +8 -8
  118. package/data/craftbook-templates/pe/perf-optimization/versions/2.0.2/craftbook.json +697 -0
  119. package/data/craftbook-templates/pe/perf-optimization/versions/2.0.2/test.json +235 -0
  120. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/test.json +19 -8
  121. package/data/craftbook-templates/pl/plan/versions/1.0.2/test.json +8 -8
  122. package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/test.json +17 -7
  123. package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/test.json +7 -2
  124. package/data/craftbook-templates/pr/practice-session/versions/1.0.3/test.json +11 -4
  125. package/data/craftbook-templates/pu/pull-request-review/versions/1.9.2/craftbook.json +435 -0
  126. package/data/craftbook-templates/pu/pull-request-review/versions/1.9.2/test.json +141 -0
  127. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.3/test.json +16 -8
  128. package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/test.json +11 -4
  129. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.4/craftbook.json +277 -0
  130. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.4/test.json +104 -0
  131. package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/test.json +13 -5
  132. package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/test.json +3 -0
  133. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/craftbook.json +285 -0
  134. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/test.json +104 -0
  135. package/data/craftbook-templates/re/refactor-module/versions/2.0.2/craftbook.json +695 -0
  136. package/data/craftbook-templates/re/refactor-module/versions/2.0.2/test.json +241 -0
  137. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.4/craftbook.json +361 -0
  138. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.4/test.json +138 -0
  139. package/data/craftbook-templates/re/release-notes/versions/1.0.4/test.json +8 -8
  140. package/data/craftbook-templates/re/release-notes/versions/1.0.5/craftbook.json +339 -0
  141. package/data/craftbook-templates/re/release-notes/versions/1.0.5/test.json +111 -0
  142. package/data/craftbook-templates/re/reliability-review/versions/1.0.3/test.json +16 -8
  143. package/data/craftbook-templates/re/research-report/versions/1.0.3/test.json +16 -8
  144. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.8/craftbook.json +596 -0
  145. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.8/test.json +157 -0
  146. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/test.json +13 -5
  147. package/data/craftbook-templates/sc/schema-migration/versions/2.0.2/craftbook.json +624 -0
  148. package/data/craftbook-templates/sc/schema-migration/versions/2.0.2/test.json +225 -0
  149. package/data/craftbook-templates/sc/script-automation/versions/1.0.4/craftbook.json +284 -0
  150. package/data/craftbook-templates/sc/script-automation/versions/1.0.4/test.json +162 -0
  151. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/test.json +10 -13
  152. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.8/craftbook.json +597 -0
  153. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.8/test.json +157 -0
  154. package/data/craftbook-templates/so/social-digest/versions/1.0.3/craftbook.json +239 -0
  155. package/data/craftbook-templates/so/social-digest/versions/1.0.3/test.json +168 -0
  156. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/test.json +25 -11
  157. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.8/craftbook.json +599 -0
  158. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.8/test.json +162 -0
  159. package/data/craftbook-templates/te/technical-documentation/versions/2.0.8/craftbook.json +577 -0
  160. package/data/craftbook-templates/te/technical-documentation/versions/2.0.8/test.json +174 -0
  161. package/data/craftbook-templates/te/test-coverage-review/versions/1.2.1/test.json +16 -8
  162. package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.2/craftbook.json +592 -0
  163. package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.2/test.json +195 -0
  164. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.3/test.json +6 -3
  165. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/test.json +11 -4
  166. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/test.json +9 -3
  167. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.3/test.json +10 -5
  168. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.3/test.json +6 -3
  169. package/data/craftbook-templates/tr/translate-content/versions/1.1.3/craftbook.json +140 -0
  170. package/data/craftbook-templates/tr/translate-content/versions/1.1.3/test.json +141 -0
  171. package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.2/craftbook.json +594 -0
  172. package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.2/test.json +221 -0
  173. package/data/craftbook-templates/ux/ux-update/versions/1.0.2/craftbook.json +606 -0
  174. package/data/craftbook-templates/ux/ux-update/versions/1.0.2/test.json +206 -0
  175. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/test.json +11 -4
  176. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/test.json +21 -9
  177. package/data/craftbook-templates/wh/whitepaper/versions/1.0.3/test.json +16 -8
  178. package/data/craftbook-templates/ye/year-in-review/versions/1.0.3/test.json +8 -4
  179. package/data/project-types/index.json +1 -1
  180. package/data/project-types/ju/just-chat/manifest.json +1 -1
  181. package/data/project-types/ju/just-chat/versions/1.0.1/about.md +5 -0
  182. package/data/project-types/ju/just-chat/versions/1.0.1/manifest.json +19 -0
  183. package/package.json +1 -1
  184. package/schemas/chat-model-identity.schema.json +27 -0
  185. package/schemas/chat-model-version.schema.json +22 -0
@@ -0,0 +1,335 @@
1
+ {
2
+ "id": "branding-website",
3
+ "name": "Branding Website",
4
+ "description": "Build a small brand/marketing website where the visual identity leads. Locks a visual language and mockups FIRST, then writes the copy, then builds the HTML to the locked design — the ordering that makes brand sites feel designed rather than templated.\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. Brand & visual design (visual-designer) — visual language + mock, BEFORE any HTML → gated on artifact `design/brand-system.md` (markdown-notes)\n2. Copywriting (copywriter) — headlines + section copy to the brand voice → gated on artifact `copy/site-copy.md` (markdown-notes)\n3. Build (developer) — implement index.html to the locked design + copy → gated on `index.html` (html-marketing-site)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "brand-design",
6
+ "triggers": [
7
+ "branding website",
8
+ "landing page",
9
+ "marketing site",
10
+ "brand site"
11
+ ],
12
+ "steps": [
13
+ {
14
+ "id": "brand-design",
15
+ "name": "Brand & visual design",
16
+ "description": "visual language + mock, BEFORE any HTML",
17
+ "prompt": "Lock the visual language before a line of HTML exists. Decide: palette (with exact hex values), type pairing using system-safe fonts, spacing/scale, hero treatment, and responsive section order. Produce an ASCII/markdown wireframe of each section (hero, value props, proof or fit, CTA, footer). Write an **acceptance-criteria checklist** that includes the brand rules (\"headings use <font>\", \"palette is exactly <hex list>\", \"hero matches the mock\"). Save the full system, wireframe, and checklist to artifact `design/brand-system.md` with `write_artifact`; note the path in task notes. No HTML yet.",
18
+ "suggestedRole": "visual-designer",
19
+ "toolPolicy": {
20
+ "disallowBuiltinToolsets": [
21
+ "ai-apps",
22
+ "archives",
23
+ "audio",
24
+ "browser-automation",
25
+ "code-execution",
26
+ "craftbooks",
27
+ "data-tables",
28
+ "entity-intel",
29
+ "git",
30
+ "image-intel",
31
+ "images",
32
+ "role-delegation",
33
+ "role-delegation-escalation",
34
+ "security-intel",
35
+ "team-management",
36
+ "videos",
37
+ "web",
38
+ "workspace-fs-write"
39
+ ],
40
+ "outputMedium": "artifact",
41
+ "additionalOutputMedia": [
42
+ "task-note"
43
+ ]
44
+ },
45
+ "advanceWhen": {
46
+ "file": "design/brand-system.md",
47
+ "minBytes": 1,
48
+ "sniff": "nonempty",
49
+ "artifact": true
50
+ },
51
+ "gate": {
52
+ "at": "completion",
53
+ "checks": [
54
+ {
55
+ "kind": "minBytes",
56
+ "file": "design/brand-system.md",
57
+ "bytes": 800,
58
+ "artifact": true
59
+ },
60
+ {
61
+ "kind": "sniff",
62
+ "file": "design/brand-system.md",
63
+ "sniff": "nonempty",
64
+ "artifact": true
65
+ },
66
+ {
67
+ "kind": "contains",
68
+ "file": "design/brand-system.md",
69
+ "pattern": "#[0-9a-f]{6}",
70
+ "flags": "i",
71
+ "label": "exact palette",
72
+ "artifact": true
73
+ },
74
+ {
75
+ "kind": "contains",
76
+ "file": "design/brand-system.md",
77
+ "pattern": "hero[\\s\\S]*(?:value|benefit)[\\s\\S]*(?:CTA|call.to.action)[\\s\\S]*footer",
78
+ "flags": "i",
79
+ "label": "section wireframe",
80
+ "artifact": true
81
+ }
82
+ ],
83
+ "onReject": "brand-design",
84
+ "maxAttempts": 3
85
+ },
86
+ "next": "copy"
87
+ },
88
+ {
89
+ "id": "copy",
90
+ "name": "Copywriting",
91
+ "description": "headlines + section copy to the brand voice",
92
+ "prompt": "Read artifact `design/brand-system.md` with `read_artifact`. Write the approved words: headline, subhead, three value-prop blurbs, proof or fit copy, CTA label, and footer. Match the named brand voice and keep it tight — marketing copy, not paragraphs. Save the complete section-keyed copy to artifact `copy/site-copy.md` with `write_artifact`; note the path in task notes so the build phase can drop it straight in.",
93
+ "suggestedRole": "copywriter",
94
+ "toolPolicy": {
95
+ "disallowBuiltinToolsets": [
96
+ "ai-apps",
97
+ "archives",
98
+ "audio",
99
+ "browser-automation",
100
+ "code-execution",
101
+ "craftbooks",
102
+ "data-tables",
103
+ "entity-intel",
104
+ "git",
105
+ "image-intel",
106
+ "images",
107
+ "role-delegation",
108
+ "role-delegation-escalation",
109
+ "security-intel",
110
+ "team-management",
111
+ "videos",
112
+ "web",
113
+ "workspace-fs-write"
114
+ ],
115
+ "outputMedium": "artifact",
116
+ "additionalOutputMedia": [
117
+ "task-note"
118
+ ]
119
+ },
120
+ "consumes": [
121
+ {
122
+ "file": "design/brand-system.md",
123
+ "artifact": true
124
+ }
125
+ ],
126
+ "advanceWhen": {
127
+ "file": "copy/site-copy.md",
128
+ "minBytes": 1,
129
+ "sniff": "nonempty",
130
+ "artifact": true
131
+ },
132
+ "gate": {
133
+ "at": "completion",
134
+ "checks": [
135
+ {
136
+ "kind": "minBytes",
137
+ "file": "copy/site-copy.md",
138
+ "bytes": 450,
139
+ "artifact": true
140
+ },
141
+ {
142
+ "kind": "sniff",
143
+ "file": "copy/site-copy.md",
144
+ "sniff": "nonempty",
145
+ "artifact": true
146
+ },
147
+ {
148
+ "kind": "contains",
149
+ "file": "copy/site-copy.md",
150
+ "pattern": "headline|hero",
151
+ "flags": "i",
152
+ "label": "hero copy",
153
+ "artifact": true
154
+ },
155
+ {
156
+ "kind": "contains",
157
+ "file": "copy/site-copy.md",
158
+ "pattern": "CTA|call.to.action",
159
+ "flags": "i",
160
+ "label": "call to action",
161
+ "artifact": true
162
+ }
163
+ ],
164
+ "onReject": "copy",
165
+ "maxAttempts": 3
166
+ },
167
+ "next": "build"
168
+ },
169
+ {
170
+ "id": "build",
171
+ "name": "Build",
172
+ "description": "implement index.html to the locked design + copy",
173
+ "prompt": "Read artifacts `design/brand-system.md` and `copy/site-copy.md` with `read_artifact`. Implement workspace `index.html` with `write_file` (inline CSS) to the locked visual language and approved copy — do not redesign in code. Honor the exact palette, type, and section order from the mock; include viewport metadata, semantic sections, a working primary CTA, and a footer. Make it responsive and self-contained with no external assets. On a loop-back, fix only the named gaps. `write_task_note` the workspace path and which criteria now pass.",
174
+ "suggestedRole": "developer",
175
+ "toolPolicy": {
176
+ "disallowBuiltinToolsets": [
177
+ "ai-apps",
178
+ "archives",
179
+ "audio",
180
+ "browser-automation",
181
+ "code-execution",
182
+ "craftbooks",
183
+ "data-tables",
184
+ "entity-intel",
185
+ "git",
186
+ "image-intel",
187
+ "images",
188
+ "role-delegation",
189
+ "role-delegation-escalation",
190
+ "security-intel",
191
+ "team-management",
192
+ "videos",
193
+ "web"
194
+ ],
195
+ "outputMedium": "workspace",
196
+ "additionalOutputMedia": [
197
+ "task-note"
198
+ ]
199
+ },
200
+ "consumes": [
201
+ {
202
+ "file": "design/brand-system.md",
203
+ "artifact": true
204
+ },
205
+ {
206
+ "file": "copy/site-copy.md",
207
+ "artifact": true
208
+ }
209
+ ],
210
+ "advanceWhen": {
211
+ "file": "index.html",
212
+ "minBytes": 1,
213
+ "sniff": "html-complete"
214
+ },
215
+ "gate": {
216
+ "at": "completion",
217
+ "checks": [
218
+ {
219
+ "kind": "minBytes",
220
+ "file": "index.html",
221
+ "bytes": 3200
222
+ },
223
+ {
224
+ "kind": "htmlLint",
225
+ "file": "index.html"
226
+ },
227
+ {
228
+ "kind": "contains",
229
+ "file": "index.html",
230
+ "pattern": "<meta[^>]+name=[\"']viewport[\"']",
231
+ "flags": "i",
232
+ "label": "responsive viewport"
233
+ },
234
+ {
235
+ "kind": "contains",
236
+ "file": "index.html",
237
+ "pattern": "<footer\\b",
238
+ "flags": "i",
239
+ "label": "footer"
240
+ }
241
+ ],
242
+ "scripts": [
243
+ {
244
+ "name": "checkHtmlComplete",
245
+ "scope": "standard",
246
+ "inputs": {
247
+ "file": "index.html"
248
+ }
249
+ },
250
+ {
251
+ "name": "checkCssMinBytes",
252
+ "scope": "standard",
253
+ "inputs": {
254
+ "file": "index.html",
255
+ "minBytes": 600
256
+ }
257
+ }
258
+ ],
259
+ "onReject": "build",
260
+ "maxAttempts": 4
261
+ },
262
+ "next": "evaluate"
263
+ },
264
+ {
265
+ "id": "evaluate",
266
+ "name": "Evaluate",
267
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
268
+ "prompt": "Read workspace `index.html` with `read_file` and compare it with artifacts `design/brand-system.md` and `copy/site-copy.md` via `read_artifact`. Check the brand acceptance criteria specifically: does the palette match the locked hex list, the type match, the responsive section order match the mock, and the copy match what was approved? Render desktop and narrow layouts if you can. A site that works but ignores the locked visual language FAILS — loop back to build.\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.",
269
+ "suggestedRole": "reviewer",
270
+ "toolPolicy": {
271
+ "disallowBuiltinToolsets": [
272
+ "ai-apps",
273
+ "archives",
274
+ "audio",
275
+ "browser-automation",
276
+ "code-execution",
277
+ "craftbooks",
278
+ "data-tables",
279
+ "entity-intel",
280
+ "git",
281
+ "image-intel",
282
+ "images",
283
+ "role-delegation",
284
+ "role-delegation-escalation",
285
+ "security-intel",
286
+ "team-management",
287
+ "videos",
288
+ "web",
289
+ "workspace-fs-write"
290
+ ],
291
+ "outputMedium": "task-note"
292
+ },
293
+ "consumes": [
294
+ {
295
+ "file": "index.html"
296
+ }
297
+ ],
298
+ "next": "build"
299
+ },
300
+ {
301
+ "id": "finish",
302
+ "name": "Finish",
303
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
304
+ "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.",
305
+ "suggestedRole": "developer",
306
+ "toolPolicy": {
307
+ "disallowBuiltinToolsets": [
308
+ "ai-apps",
309
+ "archives",
310
+ "artifacts",
311
+ "audio",
312
+ "browser-automation",
313
+ "code-execution",
314
+ "craftbooks",
315
+ "data-tables",
316
+ "entity-intel",
317
+ "git",
318
+ "image-intel",
319
+ "images",
320
+ "role-delegation",
321
+ "role-delegation-escalation",
322
+ "security-intel",
323
+ "team-management",
324
+ "videos",
325
+ "web",
326
+ "workspace-fs-write"
327
+ ],
328
+ "outputMedium": "task-note"
329
+ },
330
+ "terminal": true
331
+ }
332
+ ],
333
+ "version": "1.1.3",
334
+ "releasedAt": "2026-09-05T03:30:00Z"
335
+ }
@@ -0,0 +1,164 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Brand-first marketing website workflow",
4
+ "objective": "Run the Branding Website craftbook end to end and verify that its locked brand system and approved copy precede a complete responsive marketing page.",
5
+ "tags": [
6
+ "html-page",
7
+ "workflow"
8
+ ],
9
+ "prompt": "Use the Branding Website craftbook to build workspace `index.html` for Lumina Ledger, a calm bookkeeping service for independent design studios. The page must include a hero, three value propositions, a pricing/fit section, a primary CTA to book a cleanup call, and a footer. Lock the exact palette, type, section wireframe, and concise brand rules first; approve section-keyed copy second; only then build the self-contained responsive HTML with inline CSS and no external assets.",
10
+ "setup": {
11
+ "projectName": "Branding Website Eval",
12
+ "about": "Self-contained workflow eval for the Branding Website craftbook. Intermediate brand/copy deliverables belong in the artifacts drawer; the shipped page belongs at workspace/index.html.",
13
+ "missionObjectives": "Produce a brand-led one-page marketing site for Lumina Ledger with a locked palette and wireframe, approved copy, responsive HTML/CSS, primary CTA, and footer.",
14
+ "files": [],
15
+ "worker": {
16
+ "name": "Mila",
17
+ "role": "Developer"
18
+ }
19
+ },
20
+ "mocks": [],
21
+ "success": {
22
+ "summary": "The craftbook task records a concrete brand system and approved copy in artifacts before shipping a complete branded workspace/index.html.",
23
+ "deliverables": [
24
+ {
25
+ "path": "index.html",
26
+ "kind": "html-marketing-site",
27
+ "minBytes": 3200,
28
+ "checks": [
29
+ {
30
+ "kind": "cssMinBytes",
31
+ "bytes": 900,
32
+ "file": "index.html"
33
+ },
34
+ {
35
+ "kind": "jsParses",
36
+ "file": "index.html"
37
+ },
38
+ {
39
+ "kind": "contains",
40
+ "file": "index.html",
41
+ "pattern": "Lumina Ledger",
42
+ "flags": "i"
43
+ },
44
+ {
45
+ "kind": "contains",
46
+ "file": "index.html",
47
+ "pattern": "bookkeeping|cleanup call|design studios",
48
+ "flags": "i"
49
+ },
50
+ {
51
+ "kind": "contains",
52
+ "file": "index.html",
53
+ "pattern": "pricing|fit|plans",
54
+ "flags": "i"
55
+ },
56
+ {
57
+ "kind": "contains",
58
+ "file": "index.html",
59
+ "pattern": "#[0-9a-f]{6}",
60
+ "flags": "i"
61
+ },
62
+ {
63
+ "kind": "contains",
64
+ "file": "index.html",
65
+ "pattern": "<meta[^>]+viewport|@media|clamp\\(",
66
+ "flags": "i"
67
+ },
68
+ {
69
+ "kind": "contains",
70
+ "file": "index.html",
71
+ "pattern": "<footer\\b",
72
+ "flags": "i"
73
+ }
74
+ ]
75
+ }
76
+ ],
77
+ "checks": [
78
+ {
79
+ "kind": "minBytes",
80
+ "file": "design/brand-system.md",
81
+ "bytes": 800,
82
+ "artifact": true
83
+ },
84
+ {
85
+ "kind": "contains",
86
+ "file": "design/brand-system.md",
87
+ "pattern": "#[0-9a-f]{6}[\\s\\S]*(?:hero|wireframe)[\\s\\S]*(?:CTA|call.to.action)",
88
+ "flags": "i",
89
+ "artifact": true
90
+ },
91
+ {
92
+ "kind": "minBytes",
93
+ "file": "copy/site-copy.md",
94
+ "bytes": 450,
95
+ "artifact": true
96
+ },
97
+ {
98
+ "kind": "contains",
99
+ "file": "copy/site-copy.md",
100
+ "pattern": "(?:headline|hero)[\\s\\S]*(?:CTA|call.to.action)",
101
+ "flags": "i",
102
+ "artifact": true
103
+ }
104
+ ],
105
+ "taskNotes": {
106
+ "minBytes": 160,
107
+ "requireCraftbookTask": true,
108
+ "checks": [
109
+ {
110
+ "kind": "contains",
111
+ "file": "task-notes.md",
112
+ "pattern": "brand-system\\.md",
113
+ "flags": "i"
114
+ },
115
+ {
116
+ "kind": "contains",
117
+ "file": "task-notes.md",
118
+ "pattern": "site-copy\\.md",
119
+ "flags": "i"
120
+ },
121
+ {
122
+ "kind": "contains",
123
+ "file": "task-notes.md",
124
+ "pattern": "index\\.html",
125
+ "flags": "i"
126
+ }
127
+ ]
128
+ },
129
+ "taskGraph": {
130
+ "requireCraftbookTask": true,
131
+ "requireTerminalStep": true
132
+ }
133
+ },
134
+ "rubric": {
135
+ "artifact": {
136
+ "path": "index.html",
137
+ "kind": "html"
138
+ },
139
+ "axes": [
140
+ {
141
+ "name": "brand fidelity",
142
+ "description": "The final palette, typography, hierarchy, and section order visibly follow the locked brand system rather than a generic template."
143
+ },
144
+ {
145
+ "name": "copy fidelity",
146
+ "description": "The page preserves the approved concise section copy and presents a clear primary action."
147
+ },
148
+ {
149
+ "name": "responsive polish",
150
+ "description": "The layout remains legible and intentional at desktop and narrow widths without external dependencies."
151
+ },
152
+ {
153
+ "name": "workflow evidence",
154
+ "description": "Brand and copy artifacts are substantive and align with what the final page actually ships."
155
+ }
156
+ ]
157
+ },
158
+ "qualityFocus": [
159
+ "craftbook attribution",
160
+ "brand-before-build ordering",
161
+ "artifact-to-workspace handoff",
162
+ "responsive HTML/CSS"
163
+ ]
164
+ }
@@ -78,20 +78,20 @@
78
78
  },
79
79
  "axes": [
80
80
  {
81
- "name": "structure",
82
- "description": "Layout and hierarchy fit the content; sections are scannable and coherent."
81
+ "name": "grounding",
82
+ "description": "Seeded facts appear faithfully and the source is cited."
83
83
  },
84
84
  {
85
- "name": "grounding",
86
- "description": "Seeded source content is used faithfully — no invented facts or dropped requirements."
85
+ "name": "structure",
86
+ "description": "Sections progress logically for the artifact class."
87
87
  },
88
88
  {
89
- "name": "interactivity",
90
- "description": "Controls and states the page claims to offer actually work."
89
+ "name": "completeness",
90
+ "description": "Required elements (risks, next actions, scope) are all present."
91
91
  },
92
92
  {
93
- "name": "polish",
94
- "description": "Styling is intentional and responsive rather than unstyled or broken."
93
+ "name": "tone",
94
+ "description": "The register fits the audience and artifact class."
95
95
  }
96
96
  ]
97
97
  },