ai-delivery-workflow 0.4.0 → 0.5.1

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 (245) hide show
  1. package/README.md +7 -8
  2. package/bin/ai-delivery.mjs +2 -24
  3. package/bin/release-check.mjs +8 -2
  4. package/docs/CLI-PARAMETER-REFERENCE.zh-CN.md +6 -67
  5. package/docs/DUAL-REPOSITORY-WORKSPACE.zh-CN.md +14 -1
  6. package/docs/FILE-REFERENCE.zh-CN.md +17 -36
  7. package/docs/MAINTENANCE-VERIFICATION.zh-CN.md +2 -2
  8. package/docs/NPM-RELEASE-MANAGEMENT.zh-CN.md +2 -1
  9. package/docs/PROJECT-MANUAL.zh-CN.md +50 -43
  10. package/docs/STATE-CLI-MAINTENANCE.zh-CN.md +8 -10
  11. package/docs/STATE-CLI-USER-GUIDE.zh-CN.md +7 -17
  12. package/docs/adr/0006-product-line-candidate-inventory.md +20 -0
  13. package/docs/agents/domain.md +31 -6
  14. package/docs/agents/issue-tracker.md +17 -18
  15. package/docs/agents/triage-labels.md +7 -7
  16. package/docs/agents/workflow-manager-acceptance-matrix.md +9 -15
  17. package/docs/agents/workflow-manager-current-state.md +14 -17
  18. package/lib/delivery-state.mjs +59 -910
  19. package/lib/fs-utils.mjs +0 -16
  20. package/lib/npm-auth.mjs +16 -0
  21. package/lib/project-bootstrap.mjs +21 -58
  22. package/lib/project-installer.mjs +24 -180
  23. package/lib/project-repair.mjs +217 -0
  24. package/lib/toml-hooks.mjs +2 -4
  25. package/lib/workflow-manager-governance.mjs +3 -47
  26. package/lib/workspace.mjs +2 -3
  27. package/package.json +2 -2
  28. package/skills/ai-delivery-assemble-release/SKILL.md +10 -8
  29. package/skills/ai-delivery-assemble-release/agents/openai.yaml +3 -3
  30. package/skills/ai-delivery-assemble-release/assets/release-candidate-manifest.yaml +16 -4
  31. package/skills/ai-delivery-assemble-release/assets/release-git-plan.yaml +96 -6
  32. package/skills/ai-delivery-assemble-release/assets/version-inclusion.csv +2 -2
  33. package/skills/ai-delivery-assemble-release/references/release-assembly-contract.md +16 -2
  34. package/skills/ai-delivery-assemble-release/scripts/plan-release.mjs +127 -3
  35. package/skills/ai-delivery-bootstrap/SKILL.md +1 -1
  36. package/skills/ai-delivery-bootstrap/agents/openai.yaml +3 -3
  37. package/skills/ai-delivery-bootstrap/references/bootstrap-contract.md +1 -1
  38. package/skills/ai-delivery-checkpoint-task/SKILL.md +0 -4
  39. package/skills/ai-delivery-checkpoint-task/agents/openai.yaml +3 -3
  40. package/skills/ai-delivery-checkpoint-task/references/checkpoint-contract.md +2 -2
  41. package/skills/ai-delivery-checkpoint-task/scripts/hook-event.mjs +2 -8
  42. package/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs +26 -46
  43. package/skills/ai-delivery-close-version/agents/openai.yaml +3 -3
  44. package/skills/ai-delivery-define-product/agents/openai.yaml +4 -4
  45. package/skills/ai-delivery-deploy-production/agents/openai.yaml +3 -3
  46. package/skills/ai-delivery-design-experience/SKILL.md +3 -3
  47. package/skills/ai-delivery-design-experience/agents/openai.yaml +4 -4
  48. package/skills/ai-delivery-design-experience/references/experience-contract.md +1 -11
  49. package/skills/ai-delivery-design-experience/references/prototype-management-contract.md +1 -1
  50. package/skills/ai-delivery-develop-iteration/agents/openai.yaml +3 -3
  51. package/skills/ai-delivery-evolve-workflow/agents/openai.yaml +3 -3
  52. package/skills/ai-delivery-execute-test/agents/openai.yaml +4 -4
  53. package/skills/ai-delivery-execute-work-package/agents/openai.yaml +4 -4
  54. package/skills/ai-delivery-manage-git/SKILL.md +9 -7
  55. package/skills/ai-delivery-manage-git/agents/openai.yaml +3 -3
  56. package/skills/ai-delivery-manage-git/references/git-policy.md +7 -3
  57. package/skills/ai-delivery-manage-git/scripts/release-git.mjs +995 -0
  58. package/skills/ai-delivery-manage-standards/agents/openai.yaml +4 -4
  59. package/skills/ai-delivery-orchestrate/SKILL.md +5 -7
  60. package/skills/ai-delivery-orchestrate/agents/openai.yaml +3 -3
  61. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/hooks/hook-event.mjs +2 -8
  62. package/skills/ai-delivery-orchestrate/assets/project-template/AGENTS.md +9 -8
  63. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/CONTRIBUTING.md +25 -25
  64. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/airbnb/DESIGN.md +545 -545
  65. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/airbnb/README.md +5 -5
  66. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/airtable/DESIGN.md +554 -554
  67. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/airtable/README.md +5 -5
  68. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/apple/DESIGN.md +562 -562
  69. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/apple/README.md +5 -5
  70. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/binance/DESIGN.md +634 -634
  71. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/binance/README.md +5 -5
  72. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/bmw/DESIGN.md +544 -544
  73. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/bmw/README.md +5 -5
  74. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/bmw-m/DESIGN.md +503 -503
  75. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/bmw-m/README.md +5 -5
  76. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/bugatti/DESIGN.md +454 -454
  77. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/bugatti/README.md +5 -5
  78. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/cal/DESIGN.md +542 -542
  79. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/cal/README.md +5 -5
  80. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/claude/DESIGN.md +589 -589
  81. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/claude/README.md +5 -5
  82. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/clay/DESIGN.md +541 -541
  83. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/clay/README.md +5 -5
  84. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/clickhouse/DESIGN.md +544 -544
  85. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/clickhouse/README.md +5 -5
  86. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/cohere/DESIGN.md +451 -451
  87. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/cohere/README.md +5 -5
  88. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/coinbase/DESIGN.md +570 -570
  89. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/coinbase/README.md +5 -5
  90. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/composio/DESIGN.md +506 -506
  91. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/composio/README.md +5 -5
  92. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/cursor/DESIGN.md +537 -537
  93. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/cursor/README.md +5 -5
  94. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/dell-1996/DESIGN.md +632 -632
  95. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/dell-1996/README.md +5 -5
  96. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/elevenlabs/DESIGN.md +504 -504
  97. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/elevenlabs/README.md +5 -5
  98. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/expo/DESIGN.md +526 -526
  99. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/expo/README.md +5 -5
  100. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/ferrari/DESIGN.md +531 -531
  101. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/ferrari/README.md +5 -5
  102. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/figma/DESIGN.md +578 -578
  103. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/figma/README.md +5 -5
  104. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/framer/DESIGN.md +544 -544
  105. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/framer/README.md +5 -5
  106. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/hashicorp/DESIGN.md +575 -575
  107. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/hashicorp/README.md +5 -5
  108. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/hp/DESIGN.md +670 -670
  109. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/hp/README.md +5 -5
  110. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/ibm/DESIGN.md +550 -550
  111. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/ibm/README.md +5 -5
  112. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/intercom/DESIGN.md +546 -546
  113. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/intercom/README.md +5 -5
  114. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/kraken/DESIGN.md +125 -125
  115. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/kraken/README.md +5 -5
  116. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/lamborghini/DESIGN.md +288 -288
  117. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/lamborghini/README.md +5 -5
  118. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/linear.app/DESIGN.md +548 -548
  119. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/linear.app/README.md +5 -5
  120. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/lovable/DESIGN.md +298 -298
  121. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/lovable/README.md +5 -5
  122. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mastercard/DESIGN.md +365 -365
  123. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mastercard/README.md +5 -5
  124. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/meta/DESIGN.md +683 -683
  125. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/meta/README.md +5 -5
  126. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/minimax/DESIGN.md +746 -746
  127. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/minimax/README.md +5 -5
  128. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mintlify/DESIGN.md +852 -852
  129. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mintlify/README.md +5 -5
  130. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/miro/DESIGN.md +825 -825
  131. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/miro/README.md +5 -5
  132. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mistral.ai/DESIGN.md +773 -773
  133. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mistral.ai/README.md +5 -5
  134. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mongodb/DESIGN.md +767 -767
  135. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/mongodb/README.md +5 -5
  136. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/nike/DESIGN.md +575 -575
  137. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/nike/README.md +5 -5
  138. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/nintendo-2001/DESIGN.md +649 -649
  139. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/nintendo-2001/README.md +5 -5
  140. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/notion/DESIGN.md +821 -821
  141. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/notion/README.md +5 -5
  142. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/nvidia/DESIGN.md +640 -640
  143. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/nvidia/README.md +5 -5
  144. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/ollama/DESIGN.md +539 -539
  145. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/ollama/README.md +5 -5
  146. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/opencode.ai/DESIGN.md +521 -521
  147. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/opencode.ai/README.md +5 -5
  148. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/pinterest/DESIGN.md +597 -597
  149. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/pinterest/README.md +5 -5
  150. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/playstation/DESIGN.md +661 -661
  151. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/playstation/README.md +5 -5
  152. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/posthog/DESIGN.md +690 -690
  153. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/posthog/README.md +5 -5
  154. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/raycast/DESIGN.md +669 -669
  155. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/raycast/README.md +5 -5
  156. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/renault/DESIGN.md +589 -589
  157. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/renault/README.md +5 -5
  158. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/replicate/DESIGN.md +616 -616
  159. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/replicate/README.md +5 -5
  160. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/resend/DESIGN.md +585 -585
  161. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/resend/README.md +5 -5
  162. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/revolut/DESIGN.md +636 -636
  163. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/revolut/README.md +5 -5
  164. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/runwayml/DESIGN.md +244 -244
  165. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/runwayml/README.md +5 -5
  166. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/sanity/DESIGN.md +357 -357
  167. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/sanity/README.md +5 -5
  168. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/sentry/DESIGN.md +551 -551
  169. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/sentry/README.md +5 -5
  170. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/shopify/DESIGN.md +516 -516
  171. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/shopify/README.md +5 -5
  172. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/slack/DESIGN.md +482 -482
  173. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/spacex/DESIGN.md +363 -363
  174. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/spacex/README.md +5 -5
  175. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/spotify/DESIGN.md +246 -246
  176. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/spotify/README.md +5 -5
  177. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/starbucks/DESIGN.md +580 -580
  178. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/starbucks/README.md +5 -5
  179. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/stripe/DESIGN.md +487 -487
  180. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/stripe/README.md +5 -5
  181. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/supabase/DESIGN.md +462 -462
  182. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/supabase/README.md +5 -5
  183. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/superhuman/DESIGN.md +448 -448
  184. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/superhuman/README.md +5 -5
  185. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/tesla/DESIGN.md +286 -286
  186. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/tesla/README.md +5 -5
  187. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/theverge/DESIGN.md +339 -339
  188. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/theverge/README.md +5 -5
  189. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/together.ai/DESIGN.md +633 -633
  190. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/together.ai/README.md +5 -5
  191. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/uber/DESIGN.md +636 -636
  192. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/uber/README.md +5 -5
  193. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/vercel/DESIGN.md +736 -736
  194. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/vercel/README.md +5 -5
  195. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/vodafone/DESIGN.md +538 -538
  196. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/vodafone/README.md +5 -5
  197. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/voltagent/DESIGN.md +521 -521
  198. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/voltagent/README.md +5 -5
  199. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/warp/DESIGN.md +526 -526
  200. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/warp/README.md +5 -5
  201. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/webflow/DESIGN.md +588 -588
  202. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/webflow/README.md +5 -5
  203. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/wired/DESIGN.md +497 -497
  204. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/wired/README.md +5 -5
  205. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/wise/DESIGN.md +544 -544
  206. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/wise/README.md +5 -5
  207. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/x.ai/DESIGN.md +465 -465
  208. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/x.ai/README.md +5 -5
  209. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/zapier/DESIGN.md +537 -537
  210. package/skills/ai-delivery-orchestrate/assets/project-template/ref/ui/design-md/zapier/README.md +5 -5
  211. package/skills/ai-delivery-orchestrate/references/formal-state-contract.md +11 -20
  212. package/skills/ai-delivery-orchestrate/references/workflow-model.md +2 -4
  213. package/skills/ai-delivery-orchestrate-release/SKILL.md +10 -10
  214. package/skills/ai-delivery-orchestrate-release/agents/openai.yaml +4 -4
  215. package/skills/ai-delivery-orchestrate-release/assets/release-request.yaml +4 -1
  216. package/skills/ai-delivery-orchestrate-release/assets/version-selection.yaml +13 -1
  217. package/skills/ai-delivery-orchestrate-release/references/release-workflow-contract.md +14 -0
  218. package/skills/ai-delivery-plan-iteration/agents/openai.yaml +4 -4
  219. package/skills/ai-delivery-prepare-platform/agents/openai.yaml +4 -4
  220. package/skills/ai-delivery-prepare-release/SKILL.md +6 -5
  221. package/skills/ai-delivery-prepare-release/agents/openai.yaml +4 -4
  222. package/skills/ai-delivery-prepare-release/assets/release-template/release-manifest.yaml +21 -2
  223. package/skills/ai-delivery-prepare-release/references/release-contract.md +5 -1
  224. package/skills/ai-delivery-review-change/agents/openai.yaml +4 -4
  225. package/skills/ai-delivery-triage-failure/agents/openai.yaml +4 -4
  226. package/skills/ai-delivery-validate-artifacts/agents/openai.yaml +4 -4
  227. package/skills/ai-delivery-verify-candidate/agents/openai.yaml +3 -3
  228. package/skills/ai-delivery-verify-production/SKILL.md +7 -4
  229. package/skills/ai-delivery-verify-production/agents/openai.yaml +3 -3
  230. package/skills/ai-delivery-verify-production/assets/production-verification-template/production-verification.json +9 -0
  231. package/skills/ai-delivery-verify-production/assets/production-verification-template/production-verification.md +20 -0
  232. package/skills/ai-delivery-verify-production/references/production-verification-contract.md +19 -3
  233. package/docs/PROTOTYPE-MIGRATION.zh-CN.md +0 -164
  234. package/docs/VIEWER-MAINTENANCE.zh-CN.md +0 -150
  235. package/docs/VIEWER-USER-GUIDE.zh-CN.md +0 -113
  236. package/lib/project-migration.mjs +0 -1193
  237. package/lib/prototype-migration.mjs +0 -713
  238. package/skills/ai-delivery-design-experience/assets/experience-template/LEGACY-COMPATIBILITY.md +0 -16
  239. package/skills/ai-delivery-design-experience/assets/experience-template/canvas-catalog.csv +0 -1
  240. package/skills/ai-delivery-design-experience/assets/experience-template/canvas-pages.csv +0 -1
  241. package/skills/ai-delivery-design-experience/assets/experience-template/page-catalog.csv +0 -1
  242. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-file-terminals.csv +0 -1
  243. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-files.csv +0 -1
  244. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-manifest.yaml +0 -76
  245. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-set.yaml +0 -24
@@ -1,537 +1,537 @@
1
- ---
2
- version: alpha
3
- name: Zapier-Inspired-design-analysis
4
- description: An inspired interpretation of Zapier's design language — a workflow-automation platform whose surface combines warm-cream neutrals (`#fffefb` canvas, `#f8f4f0` soft cream) with deep coffee ink (`#201515`) and a single saturated orange CTA accent (`#ff4f00`); typography pairs the proprietary Degular Display family at hero scale with Inter for sub-displays and body, giving the brand a confident-warm rather than cool-tech voice.
5
-
6
- colors:
7
- primary: "#ff4f00"
8
- on-primary: "#fffefb"
9
- ink: "#201515"
10
- ink-soft: "#2f2a26"
11
- ink-mid: "#36342e"
12
- body: "#605d52"
13
- body-mid: "#939084"
14
- mute: "#c5c0b1"
15
- canvas: "#fffefb"
16
- canvas-soft: "#f8f4f0"
17
-
18
- typography:
19
- display-xl:
20
- fontFamily: Degular Display, Inter, system-ui, -apple-system, sans-serif
21
- fontSize: 56px
22
- fontWeight: 500
23
- lineHeight: 56px
24
- display-lg:
25
- fontFamily: Degular Display, Inter, system-ui, sans-serif
26
- fontSize: 48px
27
- fontWeight: 500
28
- lineHeight: 48px
29
- display-md:
30
- fontFamily: Degular Display, Inter, system-ui, sans-serif
31
- fontSize: 32px
32
- fontWeight: 500
33
- lineHeight: 36px
34
- letterSpacing: 1px
35
- display-sub-lg:
36
- fontFamily: Inter, system-ui, sans-serif
37
- fontSize: 48px
38
- fontWeight: 500
39
- lineHeight: 49.92px
40
- display-sub-md:
41
- fontFamily: Inter, system-ui, sans-serif
42
- fontSize: 32px
43
- fontWeight: 400
44
- lineHeight: 40px
45
- display-sub-sm:
46
- fontFamily: Inter, system-ui, sans-serif
47
- fontSize: 24px
48
- fontWeight: 600
49
- lineHeight: 30px
50
- letterSpacing: -0.6px
51
- display-xs:
52
- fontFamily: Inter, system-ui, sans-serif
53
- fontSize: 20px
54
- fontWeight: 700
55
- lineHeight: 25px
56
- letterSpacing: -0.5px
57
- body-lg:
58
- fontFamily: Inter, system-ui, sans-serif
59
- fontSize: 20px
60
- fontWeight: 400
61
- lineHeight: 30px
62
- letterSpacing: -0.2px
63
- body-md:
64
- fontFamily: Inter, system-ui, sans-serif
65
- fontSize: 18px
66
- fontWeight: 400
67
- lineHeight: 27px
68
- body-md-strong:
69
- fontFamily: Inter, system-ui, sans-serif
70
- fontSize: 18px
71
- fontWeight: 600
72
- lineHeight: 27px
73
- body-sm:
74
- fontFamily: Inter, system-ui, sans-serif
75
- fontSize: 16px
76
- fontWeight: 400
77
- lineHeight: 24px
78
- body-sm-strong:
79
- fontFamily: Inter, system-ui, sans-serif
80
- fontSize: 16px
81
- fontWeight: 600
82
- lineHeight: 24px
83
- caption:
84
- fontFamily: Inter, system-ui, sans-serif
85
- fontSize: 14px
86
- fontWeight: 400
87
- lineHeight: 21px
88
- eyebrow-uppercase:
89
- fontFamily: Degular Display, Inter, system-ui, sans-serif
90
- fontSize: 14px
91
- fontWeight: 500
92
- lineHeight: 14px
93
- letterSpacing: 1px
94
- button-md:
95
- fontFamily: Inter, system-ui, sans-serif
96
- fontSize: 18px
97
- fontWeight: 600
98
- lineHeight: 27px
99
- button-sm:
100
- fontFamily: Inter, system-ui, sans-serif
101
- fontSize: 14.4px
102
- fontWeight: 700
103
- lineHeight: 14.4px
104
- letterSpacing: 0.144px
105
-
106
- rounded:
107
- none: 0px
108
- sm: 6px
109
- md: 12px
110
- pill: 9999px
111
- full: 9999px
112
-
113
- spacing:
114
- xxs: 2px
115
- xs: 4px
116
- sm: 8px
117
- md: 12px
118
- lg: 16px
119
- xl: 24px
120
- 2xl: 32px
121
- 3xl: 48px
122
- 4xl: 64px
123
-
124
- components:
125
- nav-bar:
126
- backgroundColor: "{colors.canvas}"
127
- textColor: "{colors.ink}"
128
- typography: "{typography.body-sm}"
129
- padding: "{spacing.md} {spacing.xl}"
130
- nav-link:
131
- textColor: "{colors.ink}"
132
- typography: "{typography.body-sm}"
133
- button-primary:
134
- backgroundColor: "{colors.primary}"
135
- textColor: "{colors.on-primary}"
136
- typography: "{typography.button-md}"
137
- rounded: "{rounded.md}"
138
- padding: "{spacing.md} {spacing.xl}"
139
- button-secondary:
140
- backgroundColor: "{colors.ink}"
141
- textColor: "{colors.on-primary}"
142
- typography: "{typography.button-md}"
143
- rounded: "{rounded.md}"
144
- padding: "{spacing.md} {spacing.xl}"
145
- button-tertiary:
146
- backgroundColor: "{colors.canvas}"
147
- textColor: "{colors.ink}"
148
- borderColor: "{colors.ink}"
149
- typography: "{typography.button-md}"
150
- rounded: "{rounded.md}"
151
- padding: "{spacing.md} {spacing.xl}"
152
- button-text:
153
- backgroundColor: "{colors.canvas}"
154
- textColor: "{colors.ink}"
155
- typography: "{typography.button-sm}"
156
- rounded: "{rounded.md}"
157
- padding: "{spacing.sm} {spacing.lg}"
158
- text-input:
159
- backgroundColor: "{colors.canvas}"
160
- textColor: "{colors.ink}"
161
- borderColor: "{colors.ink}"
162
- typography: "{typography.body-md}"
163
- rounded: "{rounded.sm}"
164
- padding: "{spacing.md} {spacing.lg}"
165
- card-content:
166
- backgroundColor: "{colors.canvas-soft}"
167
- textColor: "{colors.ink}"
168
- typography: "{typography.body-md}"
169
- rounded: "{rounded.md}"
170
- padding: "{spacing.xl}"
171
- card-feature-cream:
172
- backgroundColor: "{colors.canvas-soft}"
173
- textColor: "{colors.ink}"
174
- typography: "{typography.body-md}"
175
- rounded: "{rounded.md}"
176
- padding: "{spacing.xl}"
177
- card-feature-dark:
178
- backgroundColor: "{colors.ink}"
179
- textColor: "{colors.on-primary}"
180
- typography: "{typography.body-md}"
181
- rounded: "{rounded.md}"
182
- padding: "{spacing.xl}"
183
- pricing-card:
184
- backgroundColor: "{colors.canvas}"
185
- textColor: "{colors.ink}"
186
- borderColor: "{colors.ink}"
187
- typography: "{typography.body-md}"
188
- rounded: "{rounded.md}"
189
- padding: "{spacing.xl}"
190
- pricing-card-featured:
191
- backgroundColor: "{colors.ink}"
192
- textColor: "{colors.on-primary}"
193
- typography: "{typography.body-md}"
194
- rounded: "{rounded.md}"
195
- padding: "{spacing.xl}"
196
- hero-band:
197
- backgroundColor: "{colors.canvas}"
198
- textColor: "{colors.ink}"
199
- typography: "{typography.display-xl}"
200
- padding: "{spacing.4xl} {spacing.xl}"
201
- hero-band-dark:
202
- backgroundColor: "{colors.ink}"
203
- textColor: "{colors.on-primary}"
204
- typography: "{typography.display-xl}"
205
- padding: "{spacing.4xl} {spacing.xl}"
206
- content-band-cream:
207
- backgroundColor: "{colors.canvas-soft}"
208
- textColor: "{colors.ink}"
209
- typography: "{typography.display-lg}"
210
- padding: "{spacing.4xl} {spacing.xl}"
211
- content-band-light:
212
- backgroundColor: "{colors.canvas}"
213
- textColor: "{colors.ink}"
214
- typography: "{typography.display-lg}"
215
- padding: "{spacing.4xl} {spacing.xl}"
216
- eyebrow-uppercase:
217
- textColor: "{colors.ink}"
218
- typography: "{typography.eyebrow-uppercase}"
219
- badge-pill:
220
- backgroundColor: "{colors.canvas-soft}"
221
- textColor: "{colors.ink}"
222
- typography: "{typography.body-sm}"
223
- rounded: "{rounded.pill}"
224
- padding: "{spacing.xs} {spacing.md}"
225
- footer:
226
- backgroundColor: "{colors.ink}"
227
- textColor: "{colors.canvas-soft}"
228
- typography: "{typography.body-sm}"
229
- padding: "{spacing.3xl} {spacing.xl}"
230
-
231
- # ─── Examples (illustrative) — auto-derived; resolve any TO_FILL markers below ───
232
- ex-pricing-tier:
233
- description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface."
234
- backgroundColor: "{colors.canvas-soft}"
235
- textColor: "{colors.ink}"
236
- borderColor: "{colors.mute}"
237
- rounded: "{rounded.md}"
238
- padding: "{spacing.xl}"
239
- ex-pricing-tier-featured:
240
- description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)."
241
- backgroundColor: "{colors.ink}"
242
- textColor: "{colors.on-primary}"
243
- rounded: "{rounded.md}"
244
- padding: "{spacing.xl}"
245
- ex-product-selector:
246
- description: "What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery)."
247
- backgroundColor: "{colors.canvas-soft}"
248
- rounded: "{rounded.md}"
249
- padding: "{spacing.xl}"
250
- ex-cart-drawer:
251
- description: "Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart)."
252
- backgroundColor: "{colors.canvas}"
253
- rounded: "{rounded.md}"
254
- padding: "{spacing.xl}"
255
- item-divider: "{colors.mute}"
256
- ex-app-shell-row:
257
- description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator."
258
- backgroundColor: "{colors.canvas}"
259
- activeIndicator: "{colors.primary}"
260
- rounded: "{rounded.sm}"
261
- padding: "{spacing.md} {spacing.lg}"
262
- ex-data-table-cell:
263
- description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm."
264
- headerBackground: "{colors.canvas-soft}"
265
- headerTypography: "{typography.caption}"
266
- bodyTypography: "{typography.body-sm}"
267
- cellPadding: "{spacing.md} {spacing.lg}"
268
- rowBorder: "{colors.mute}"
269
- ex-auth-form-card:
270
- description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside."
271
- backgroundColor: "{colors.canvas-soft}"
272
- rounded: "{rounded.md}"
273
- padding: "{spacing.xl}"
274
- ex-modal-card:
275
- description: "Modal dialog surface — same chrome as feature-card with elevated shadow."
276
- backgroundColor: "{colors.canvas}"
277
- rounded: "{rounded.md}"
278
- padding: "{spacing.xl}"
279
- ex-empty-state-card:
280
- description: "Empty-state illustration frame."
281
- backgroundColor: "{colors.canvas-soft}"
282
- rounded: "{rounded.md}"
283
- padding: "{spacing.3xl}"
284
- captionTypography: "{typography.body-md}"
285
- ex-toast:
286
- description: "Toast notification surface — feature-card shape + medium shadow."
287
- backgroundColor: "{colors.canvas}"
288
- rounded: "{rounded.md}"
289
- padding: "{spacing.md} {spacing.lg}"
290
- typography: "{typography.body-sm}"
291
-
292
- ---
293
-
294
-
295
- ## Overview
296
-
297
- Zapier is the original "connect your apps" workflow automation platform — and the marketing surface today reads as confidently-mature. The brand pairs a warm-cream canvas `{colors.canvas}` (`#fffefb`) with a deep coffee-ink `{colors.ink}` (`#201515`) and a single saturated orange `{colors.primary}` (`#ff4f00`) CTA. The warmth in the neutrals — slightly cream rather than pure white — is the brand's defining temperature signal.
298
-
299
- Type carries the second voice. The proprietary `Degular Display` family carries hero displays at weight 500. The brand uses `Inter` for everything else — sub-displays, body, button, eyebrow. The two-face pairing reads as "the brand has its own typeface for the loud moments and uses the workhorse for the rest" — modest and unflashy.
300
-
301
- Cards are universally `{rounded.md}` 12 px. Buttons share the same 12 px radius — not pills, not square. The brand sits between the friendly-rounded and the technical-square camps with a deliberate middle position.
302
-
303
- **Key Characteristics:**
304
- - A single primary CTA color `{colors.primary}` (`#ff4f00`) — saturated orange. The brand's conversion signature.
305
- - Warm-cream canvas `{colors.canvas}` (`#fffefb`) — not pure white. The temperature IS the brand voice.
306
- - Deep coffee ink `{colors.ink}` (`#201515`) — not pure black. Warmth carries through to text.
307
- - Proprietary Degular Display for hero-scale, Inter for everything else. Two-face system.
308
- - `{rounded.md}` 12 px for buttons and cards — the brand's middle-radius signature.
309
- - A muted cream / coffee neutral ladder — `{colors.canvas-soft}` (`#f8f4f0`), `{colors.mute}` (`#c5c0b1`), `{colors.body-mid}` (`#939084`), `{colors.body}` (`#605d52`) — every neutral carries warmth, none are cool grey.
310
-
311
- ## Colors
312
-
313
- ### Brand & Accent
314
- - **Zapier Orange** (`{colors.primary}` — `#ff4f00`): The single brand accent. Every primary CTA pill, every conversion target. The saturated orange IS the brand.
315
-
316
- ### Surface
317
- - **Canvas** (`{colors.canvas}` — `#fffefb`): Warm off-white page background.
318
- - **Canvas Soft** (`{colors.canvas-soft}` — `#f8f4f0`): Cream-tinted soft surface for cards / inset regions.
319
-
320
- ### Text
321
- - **Ink** (`{colors.ink}` — `#201515`): Deep coffee — every heading and primary text.
322
- - **Ink Soft** (`{colors.ink-soft}` — `#2f2a26`): Near-black with brown warmth.
323
- - **Ink Mid** (`{colors.ink-mid}` — `#36342e`): Mid-emphasis text.
324
- - **Body** (`{colors.body}` — `#605d52`): Default body text color.
325
- - **Body Mid** (`{colors.body-mid}` — `#939084`): Secondary body / metadata.
326
- - **Mute** (`{colors.mute}` — `#c5c0b1`): Lowest-priority text — fine print, low-emphasis captions.
327
-
328
- ### Semantic
329
- The brand doesn't surface a separate semantic palette on its marketing pages. Status / validation cues borrow from the ink + orange hierarchy.
330
-
331
- ## Typography
332
-
333
- ### Font Family
334
- Two faces ladder the system:
335
- 1. **Degular Display** — proprietary geometric display sans used for hero headlines at weight 500. The brand's typographic signature.
336
- 2. **Inter** — used for sub-displays, body, links, buttons, and eyebrows. Weights 400 / 500 / 600 / 700 are present.
337
-
338
- ### Hierarchy
339
-
340
- | Token | Size | Weight | Line Height | Letter Spacing | Use |
341
- |---|---|---|---|---|---|
342
- | `{typography.display-xl}` | 56px | 500 | 56px | 0 | Hero headline (Degular Display). |
343
- | `{typography.display-lg}` | 48px | 500 | 48px | 0 | Sub-hero displays (Degular Display). |
344
- | `{typography.display-md}` | 32px | 500 | 36px | 1px | Section displays (Degular Display, positive tracking). |
345
- | `{typography.display-sub-lg}` | 48px | 500 | 49.92px | 0 | Inter-rendered sub-display. |
346
- | `{typography.display-sub-md}` | 32px | 400 | 40px | 0 | Inter sub-display. |
347
- | `{typography.display-sub-sm}` | 24px | 600 | 30px | -0.6px | Card titles (Inter, semibold). |
348
- | `{typography.display-xs}` | 20px | 700 | 25px | -0.5px | Inline display micro-headings. |
349
- | `{typography.body-lg}` | 20px | 400 | 30px | -0.2px | Lead paragraphs. |
350
- | `{typography.body-md}` | 18px | 400 | 27px | 0 | Default body. |
351
- | `{typography.body-md-strong}` | 18px | 600 | 27px | 0 | Bolded inline body. |
352
- | `{typography.body-sm}` | 16px | 400 | 24px | 0 | Secondary body. |
353
- | `{typography.body-sm-strong}` | 16px | 600 | 24px | 0 | Bold caption. |
354
- | `{typography.caption}` | 14px | 400 | 21px | 0 | Fine print. |
355
- | `{typography.eyebrow-uppercase}` | 14px | 500 | 14px | 1px | UPPERCASE eyebrow (Degular Display, positive tracking). |
356
- | `{typography.button-md}` | 18px | 600 | 27px | 0 | Primary button label. |
357
- | `{typography.button-sm}` | 14.4px | 700 | 14.4px | 0.144px | Small button label. |
358
-
359
- ### Principles
360
- - **Degular Display 500 for hero, Inter for everything else.** Strict role separation.
361
- - **Positive tracking on the Degular eyebrow** — `1 px` at 14 px is the brand's signature label style.
362
- - **Sentence-case headlines.** The brand never uppercases display sizes.
363
-
364
- ### Note on Font Substitutes
365
- Degular Display is proprietary. Open-source substitutes:
366
- - **Display** — *Inter* weight 500 at hero scale comes closest. *Mona Sans* weight 500 is a softer alternative.
367
- - **Sub-display + body** — *Inter* is the brand's actual second face.
368
-
369
- ## Layout
370
-
371
- ### Spacing System
372
- - **Base unit**: 4 px.
373
- - **Tokens**: `{spacing.xxs}` 2 px · `{spacing.xs}` 4 px · `{spacing.sm}` 8 px · `{spacing.md}` 12 px · `{spacing.lg}` 16 px · `{spacing.xl}` 24 px · `{spacing.2xl}` 32 px · `{spacing.3xl}` 48 px · `{spacing.4xl}` 64 px.
374
- - **Section padding**: bands use `{spacing.4xl}` 64 px top/bottom.
375
- - **Card interior**: cards at `{spacing.xl}` 24 px.
376
-
377
- ### Grid & Container
378
- - Marketing container ~1280 px wide; centred with gutters.
379
- - Hero: split at desktop (headline left, illustration right); stacked at mobile.
380
- - Pricing tier grid: 3 / 4-up at desktop.
381
-
382
- ### Responsive Strategy
383
-
384
- #### Breakpoints
385
-
386
- | Name | Width | Key Changes |
387
- |---|---|---|
388
- | Mobile | < 768px | Hero stacks; grids 1-up; hamburger nav. |
389
- | Tablet | 768–1023px | 2-up grids. |
390
- | Desktop | ≥ 1024px | Full grids; hero split. |
391
-
392
- #### Touch Targets
393
- Buttons render ~48 px tall (12 vertical padding + 27 line). WCAG AAA met.
394
-
395
- #### Image Behavior
396
- The brand uses illustrative SVGs of zaps / workflows + product screenshots inside `{rounded.md}` framed cards. Photography is rare.
397
-
398
- ## Elevation & Depth
399
-
400
- | Level | Treatment | Use |
401
- |---|---|---|
402
- | Level 0 — Flat | No shadow, no border. | Default for hero. |
403
- | Level 1 — Hairline | 1 px solid `{colors.ink}` border. | Pricing-tier card chrome, outline buttons. |
404
- | Level 2 — Soft Card | `{colors.canvas-soft}` cream fill against `{colors.canvas}` page. | Default content cards — surface contrast carries elevation. |
405
-
406
- ## Shapes
407
-
408
- ### Border Radius Scale
409
-
410
- | Token | Value | Use |
411
- |---|---|---|
412
- | `{rounded.none}` | 0px | Full-bleed bands. |
413
- | `{rounded.sm}` | 6px | Inline pills, form inputs. |
414
- | `{rounded.md}` | 12px | The brand's canonical button + card radius. |
415
- | `{rounded.pill}` | 9999px | Status pills, badges. |
416
- | `{rounded.full}` | 9999px | Circular icon containers. |
417
-
418
- ## Components
419
-
420
- ### Buttons
421
-
422
- **`button-primary`** — the orange CTA.
423
- - Background `{colors.primary}`, text `{colors.on-primary}` (warm white), label `{typography.button-md}`, padding `{spacing.md} {spacing.xl}`, shape `{rounded.md}` 12 px.
424
-
425
- **`button-secondary`** — the dark coffee-ink CTA.
426
- - Background `{colors.ink}`, text `{colors.on-primary}`, same typography / padding / shape.
427
-
428
- **`button-tertiary`** — the outline CTA.
429
- - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, same typography / padding / shape.
430
-
431
- **`button-text`** — text-only CTA used inside cards / nav.
432
- - Background `{colors.canvas}`, text `{colors.ink}`, body in `{typography.button-sm}`, padding `{spacing.sm} {spacing.lg}`, shape `{rounded.md}`.
433
-
434
- ### Cards & Containers
435
-
436
- **`card-content`** — the default cream content card.
437
- - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.xl}`, shape `{rounded.md}`.
438
-
439
- **`card-feature-cream`** — the cream feature card.
440
- - Same chrome as `card-content`. Hosts headline + body + illustration.
441
-
442
- **`card-feature-dark`** — the polarity-flipped dark coffee card.
443
- - Background `{colors.ink}`, text `{colors.on-primary}`, padding `{spacing.xl}`, shape `{rounded.md}`.
444
-
445
- **`pricing-card`** — the default pricing tier card.
446
- - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, padding `{spacing.xl}`, shape `{rounded.md}`.
447
-
448
- **`pricing-card-featured`** — the polarity-flipped featured pricing tier.
449
- - Background `{colors.ink}`, text `{colors.on-primary}`, same shape / padding.
450
-
451
- ### Inputs & Forms
452
-
453
- **`text-input`** — the canonical text input.
454
- - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, body in `{typography.body-md}`, padding `{spacing.md} {spacing.lg}`, shape `{rounded.sm}` 6 px.
455
-
456
- ### Navigation
457
-
458
- **`nav-bar`** — the sticky top nav.
459
- - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.xl}`.
460
-
461
- **`nav-link`** — link items inside nav.
462
- - Text `{colors.ink}`, set in `{typography.body-sm}`.
463
-
464
- **`footer`** — the dark coffee footer.
465
- - Background `{colors.ink}`, text `{colors.canvas-soft}`, padding `{spacing.3xl} {spacing.xl}`. Body in `{typography.body-sm}`.
466
-
467
- ### Signature Components
468
-
469
- **`hero-band`** — the cream hero band.
470
- - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.4xl} {spacing.xl}`. Headline in `{typography.display-xl}` (Degular Display 56 px / 500).
471
-
472
- **`hero-band-dark`** — the polarity-flipped dark coffee hero.
473
- - Background `{colors.ink}`, text `{colors.on-primary}`, same scale.
474
-
475
- **`content-band-cream`** — the cream content band that follows hero.
476
- - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.4xl} {spacing.xl}`. Section headline in `{typography.display-lg}`.
477
-
478
- **`content-band-light`** — the white content band.
479
- - Background `{colors.canvas}`, text `{colors.ink}`, same padding / scale.
480
-
481
- **`eyebrow-uppercase`** — the small UPPERCASE Degular eyebrow above section headlines.
482
- - Text `{colors.ink}`, set in `{typography.eyebrow-uppercase}` (14 px / 500 / `1 px` tracking).
483
-
484
- **`badge-pill`** — the inline pill for metadata / tag.
485
- - Background `{colors.canvas-soft}`, text `{colors.ink}`, body in `{typography.body-sm}`, padding `{spacing.xs} {spacing.md}`, shape `{rounded.pill}`.
486
-
487
- ### Examples (illustrative)
488
-
489
- > Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.
490
-
491
- **`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
492
- - Properties: `backgroundColor`, `textColor`, `borderColor`, `rounded`, `padding`
493
-
494
- **`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
495
- - Properties: `backgroundColor`, `textColor`, `rounded`, `padding`
496
-
497
- **`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
498
- - Properties: `backgroundColor`, `rounded`, `padding`
499
-
500
- **`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
501
- - Properties: `backgroundColor`, `rounded`, `padding`, `item-divider`
502
-
503
- **`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
504
- - Properties: `backgroundColor`, `activeIndicator`, `rounded`, `padding`
505
-
506
- **`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
507
- - Properties: `headerBackground`, `headerTypography`, `bodyTypography`, `cellPadding`, `rowBorder`
508
-
509
- **`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
510
- - Properties: `backgroundColor`, `rounded`, `padding`
511
-
512
- **`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.
513
- - Properties: `backgroundColor`, `rounded`, `padding`
514
-
515
- **`ex-empty-state-card`** — Empty-state illustration frame.
516
- - Properties: `backgroundColor`, `rounded`, `padding`, `captionTypography`
517
-
518
- **`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.
519
- - Properties: `backgroundColor`, `rounded`, `padding`, `typography`
520
-
521
-
522
- ## Do's and Don'ts
523
-
524
- ### Do
525
- - Reserve `{colors.primary}` Zapier orange for every primary CTA. The saturated orange IS the conversion signature.
526
- - Keep canvas WARM — `{colors.canvas}` `#fffefb` cream, not pure white. The temperature is the brand voice.
527
- - Set hero headlines in `{typography.display-xl}` Degular Display weight 500. Sentence-case, no uppercase.
528
- - Pair Degular Display (hero, eyebrow) with Inter (everything else). Two faces, two roles.
529
- - Use `{rounded.md}` 12 px for buttons + cards. The middle radius is the brand's signature.
530
- - Pair orange CTA with ink-dark text on cream backgrounds — the three-token rhythm is the brand's whole conversion story.
531
-
532
- ### Don't
533
- - Don't replace cream canvas with pure white. The warmth is the brand.
534
- - Don't use pure black ink. The coffee-warmth in `#201515` carries through every text color.
535
- - Don't render CTAs as pills. The brand's button is 12 px rounded rectangle.
536
- - Don't introduce a second chromatic accent. Orange + cream + coffee is the entire palette.
537
- - Don't substitute Degular Display with a cool geometric sans (e.g., generic Helvetica) — the brand's display face has warm proportions that the substitute doesn't capture.
1
+ ---
2
+ version: alpha
3
+ name: Zapier-Inspired-design-analysis
4
+ description: An inspired interpretation of Zapier's design language — a workflow-automation platform whose surface combines warm-cream neutrals (`#fffefb` canvas, `#f8f4f0` soft cream) with deep coffee ink (`#201515`) and a single saturated orange CTA accent (`#ff4f00`); typography pairs the proprietary Degular Display family at hero scale with Inter for sub-displays and body, giving the brand a confident-warm rather than cool-tech voice.
5
+
6
+ colors:
7
+ primary: "#ff4f00"
8
+ on-primary: "#fffefb"
9
+ ink: "#201515"
10
+ ink-soft: "#2f2a26"
11
+ ink-mid: "#36342e"
12
+ body: "#605d52"
13
+ body-mid: "#939084"
14
+ mute: "#c5c0b1"
15
+ canvas: "#fffefb"
16
+ canvas-soft: "#f8f4f0"
17
+
18
+ typography:
19
+ display-xl:
20
+ fontFamily: Degular Display, Inter, system-ui, -apple-system, sans-serif
21
+ fontSize: 56px
22
+ fontWeight: 500
23
+ lineHeight: 56px
24
+ display-lg:
25
+ fontFamily: Degular Display, Inter, system-ui, sans-serif
26
+ fontSize: 48px
27
+ fontWeight: 500
28
+ lineHeight: 48px
29
+ display-md:
30
+ fontFamily: Degular Display, Inter, system-ui, sans-serif
31
+ fontSize: 32px
32
+ fontWeight: 500
33
+ lineHeight: 36px
34
+ letterSpacing: 1px
35
+ display-sub-lg:
36
+ fontFamily: Inter, system-ui, sans-serif
37
+ fontSize: 48px
38
+ fontWeight: 500
39
+ lineHeight: 49.92px
40
+ display-sub-md:
41
+ fontFamily: Inter, system-ui, sans-serif
42
+ fontSize: 32px
43
+ fontWeight: 400
44
+ lineHeight: 40px
45
+ display-sub-sm:
46
+ fontFamily: Inter, system-ui, sans-serif
47
+ fontSize: 24px
48
+ fontWeight: 600
49
+ lineHeight: 30px
50
+ letterSpacing: -0.6px
51
+ display-xs:
52
+ fontFamily: Inter, system-ui, sans-serif
53
+ fontSize: 20px
54
+ fontWeight: 700
55
+ lineHeight: 25px
56
+ letterSpacing: -0.5px
57
+ body-lg:
58
+ fontFamily: Inter, system-ui, sans-serif
59
+ fontSize: 20px
60
+ fontWeight: 400
61
+ lineHeight: 30px
62
+ letterSpacing: -0.2px
63
+ body-md:
64
+ fontFamily: Inter, system-ui, sans-serif
65
+ fontSize: 18px
66
+ fontWeight: 400
67
+ lineHeight: 27px
68
+ body-md-strong:
69
+ fontFamily: Inter, system-ui, sans-serif
70
+ fontSize: 18px
71
+ fontWeight: 600
72
+ lineHeight: 27px
73
+ body-sm:
74
+ fontFamily: Inter, system-ui, sans-serif
75
+ fontSize: 16px
76
+ fontWeight: 400
77
+ lineHeight: 24px
78
+ body-sm-strong:
79
+ fontFamily: Inter, system-ui, sans-serif
80
+ fontSize: 16px
81
+ fontWeight: 600
82
+ lineHeight: 24px
83
+ caption:
84
+ fontFamily: Inter, system-ui, sans-serif
85
+ fontSize: 14px
86
+ fontWeight: 400
87
+ lineHeight: 21px
88
+ eyebrow-uppercase:
89
+ fontFamily: Degular Display, Inter, system-ui, sans-serif
90
+ fontSize: 14px
91
+ fontWeight: 500
92
+ lineHeight: 14px
93
+ letterSpacing: 1px
94
+ button-md:
95
+ fontFamily: Inter, system-ui, sans-serif
96
+ fontSize: 18px
97
+ fontWeight: 600
98
+ lineHeight: 27px
99
+ button-sm:
100
+ fontFamily: Inter, system-ui, sans-serif
101
+ fontSize: 14.4px
102
+ fontWeight: 700
103
+ lineHeight: 14.4px
104
+ letterSpacing: 0.144px
105
+
106
+ rounded:
107
+ none: 0px
108
+ sm: 6px
109
+ md: 12px
110
+ pill: 9999px
111
+ full: 9999px
112
+
113
+ spacing:
114
+ xxs: 2px
115
+ xs: 4px
116
+ sm: 8px
117
+ md: 12px
118
+ lg: 16px
119
+ xl: 24px
120
+ 2xl: 32px
121
+ 3xl: 48px
122
+ 4xl: 64px
123
+
124
+ components:
125
+ nav-bar:
126
+ backgroundColor: "{colors.canvas}"
127
+ textColor: "{colors.ink}"
128
+ typography: "{typography.body-sm}"
129
+ padding: "{spacing.md} {spacing.xl}"
130
+ nav-link:
131
+ textColor: "{colors.ink}"
132
+ typography: "{typography.body-sm}"
133
+ button-primary:
134
+ backgroundColor: "{colors.primary}"
135
+ textColor: "{colors.on-primary}"
136
+ typography: "{typography.button-md}"
137
+ rounded: "{rounded.md}"
138
+ padding: "{spacing.md} {spacing.xl}"
139
+ button-secondary:
140
+ backgroundColor: "{colors.ink}"
141
+ textColor: "{colors.on-primary}"
142
+ typography: "{typography.button-md}"
143
+ rounded: "{rounded.md}"
144
+ padding: "{spacing.md} {spacing.xl}"
145
+ button-tertiary:
146
+ backgroundColor: "{colors.canvas}"
147
+ textColor: "{colors.ink}"
148
+ borderColor: "{colors.ink}"
149
+ typography: "{typography.button-md}"
150
+ rounded: "{rounded.md}"
151
+ padding: "{spacing.md} {spacing.xl}"
152
+ button-text:
153
+ backgroundColor: "{colors.canvas}"
154
+ textColor: "{colors.ink}"
155
+ typography: "{typography.button-sm}"
156
+ rounded: "{rounded.md}"
157
+ padding: "{spacing.sm} {spacing.lg}"
158
+ text-input:
159
+ backgroundColor: "{colors.canvas}"
160
+ textColor: "{colors.ink}"
161
+ borderColor: "{colors.ink}"
162
+ typography: "{typography.body-md}"
163
+ rounded: "{rounded.sm}"
164
+ padding: "{spacing.md} {spacing.lg}"
165
+ card-content:
166
+ backgroundColor: "{colors.canvas-soft}"
167
+ textColor: "{colors.ink}"
168
+ typography: "{typography.body-md}"
169
+ rounded: "{rounded.md}"
170
+ padding: "{spacing.xl}"
171
+ card-feature-cream:
172
+ backgroundColor: "{colors.canvas-soft}"
173
+ textColor: "{colors.ink}"
174
+ typography: "{typography.body-md}"
175
+ rounded: "{rounded.md}"
176
+ padding: "{spacing.xl}"
177
+ card-feature-dark:
178
+ backgroundColor: "{colors.ink}"
179
+ textColor: "{colors.on-primary}"
180
+ typography: "{typography.body-md}"
181
+ rounded: "{rounded.md}"
182
+ padding: "{spacing.xl}"
183
+ pricing-card:
184
+ backgroundColor: "{colors.canvas}"
185
+ textColor: "{colors.ink}"
186
+ borderColor: "{colors.ink}"
187
+ typography: "{typography.body-md}"
188
+ rounded: "{rounded.md}"
189
+ padding: "{spacing.xl}"
190
+ pricing-card-featured:
191
+ backgroundColor: "{colors.ink}"
192
+ textColor: "{colors.on-primary}"
193
+ typography: "{typography.body-md}"
194
+ rounded: "{rounded.md}"
195
+ padding: "{spacing.xl}"
196
+ hero-band:
197
+ backgroundColor: "{colors.canvas}"
198
+ textColor: "{colors.ink}"
199
+ typography: "{typography.display-xl}"
200
+ padding: "{spacing.4xl} {spacing.xl}"
201
+ hero-band-dark:
202
+ backgroundColor: "{colors.ink}"
203
+ textColor: "{colors.on-primary}"
204
+ typography: "{typography.display-xl}"
205
+ padding: "{spacing.4xl} {spacing.xl}"
206
+ content-band-cream:
207
+ backgroundColor: "{colors.canvas-soft}"
208
+ textColor: "{colors.ink}"
209
+ typography: "{typography.display-lg}"
210
+ padding: "{spacing.4xl} {spacing.xl}"
211
+ content-band-light:
212
+ backgroundColor: "{colors.canvas}"
213
+ textColor: "{colors.ink}"
214
+ typography: "{typography.display-lg}"
215
+ padding: "{spacing.4xl} {spacing.xl}"
216
+ eyebrow-uppercase:
217
+ textColor: "{colors.ink}"
218
+ typography: "{typography.eyebrow-uppercase}"
219
+ badge-pill:
220
+ backgroundColor: "{colors.canvas-soft}"
221
+ textColor: "{colors.ink}"
222
+ typography: "{typography.body-sm}"
223
+ rounded: "{rounded.pill}"
224
+ padding: "{spacing.xs} {spacing.md}"
225
+ footer:
226
+ backgroundColor: "{colors.ink}"
227
+ textColor: "{colors.canvas-soft}"
228
+ typography: "{typography.body-sm}"
229
+ padding: "{spacing.3xl} {spacing.xl}"
230
+
231
+ # ─── Examples (illustrative) — auto-derived; resolve any TO_FILL markers below ───
232
+ ex-pricing-tier:
233
+ description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface."
234
+ backgroundColor: "{colors.canvas-soft}"
235
+ textColor: "{colors.ink}"
236
+ borderColor: "{colors.mute}"
237
+ rounded: "{rounded.md}"
238
+ padding: "{spacing.xl}"
239
+ ex-pricing-tier-featured:
240
+ description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)."
241
+ backgroundColor: "{colors.ink}"
242
+ textColor: "{colors.on-primary}"
243
+ rounded: "{rounded.md}"
244
+ padding: "{spacing.xl}"
245
+ ex-product-selector:
246
+ description: "What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery)."
247
+ backgroundColor: "{colors.canvas-soft}"
248
+ rounded: "{rounded.md}"
249
+ padding: "{spacing.xl}"
250
+ ex-cart-drawer:
251
+ description: "Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart)."
252
+ backgroundColor: "{colors.canvas}"
253
+ rounded: "{rounded.md}"
254
+ padding: "{spacing.xl}"
255
+ item-divider: "{colors.mute}"
256
+ ex-app-shell-row:
257
+ description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator."
258
+ backgroundColor: "{colors.canvas}"
259
+ activeIndicator: "{colors.primary}"
260
+ rounded: "{rounded.sm}"
261
+ padding: "{spacing.md} {spacing.lg}"
262
+ ex-data-table-cell:
263
+ description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm."
264
+ headerBackground: "{colors.canvas-soft}"
265
+ headerTypography: "{typography.caption}"
266
+ bodyTypography: "{typography.body-sm}"
267
+ cellPadding: "{spacing.md} {spacing.lg}"
268
+ rowBorder: "{colors.mute}"
269
+ ex-auth-form-card:
270
+ description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside."
271
+ backgroundColor: "{colors.canvas-soft}"
272
+ rounded: "{rounded.md}"
273
+ padding: "{spacing.xl}"
274
+ ex-modal-card:
275
+ description: "Modal dialog surface — same chrome as feature-card with elevated shadow."
276
+ backgroundColor: "{colors.canvas}"
277
+ rounded: "{rounded.md}"
278
+ padding: "{spacing.xl}"
279
+ ex-empty-state-card:
280
+ description: "Empty-state illustration frame."
281
+ backgroundColor: "{colors.canvas-soft}"
282
+ rounded: "{rounded.md}"
283
+ padding: "{spacing.3xl}"
284
+ captionTypography: "{typography.body-md}"
285
+ ex-toast:
286
+ description: "Toast notification surface — feature-card shape + medium shadow."
287
+ backgroundColor: "{colors.canvas}"
288
+ rounded: "{rounded.md}"
289
+ padding: "{spacing.md} {spacing.lg}"
290
+ typography: "{typography.body-sm}"
291
+
292
+ ---
293
+
294
+
295
+ ## Overview
296
+
297
+ Zapier is the original "connect your apps" workflow automation platform — and the marketing surface today reads as confidently-mature. The brand pairs a warm-cream canvas `{colors.canvas}` (`#fffefb`) with a deep coffee-ink `{colors.ink}` (`#201515`) and a single saturated orange `{colors.primary}` (`#ff4f00`) CTA. The warmth in the neutrals — slightly cream rather than pure white — is the brand's defining temperature signal.
298
+
299
+ Type carries the second voice. The proprietary `Degular Display` family carries hero displays at weight 500. The brand uses `Inter` for everything else — sub-displays, body, button, eyebrow. The two-face pairing reads as "the brand has its own typeface for the loud moments and uses the workhorse for the rest" — modest and unflashy.
300
+
301
+ Cards are universally `{rounded.md}` 12 px. Buttons share the same 12 px radius — not pills, not square. The brand sits between the friendly-rounded and the technical-square camps with a deliberate middle position.
302
+
303
+ **Key Characteristics:**
304
+ - A single primary CTA color `{colors.primary}` (`#ff4f00`) — saturated orange. The brand's conversion signature.
305
+ - Warm-cream canvas `{colors.canvas}` (`#fffefb`) — not pure white. The temperature IS the brand voice.
306
+ - Deep coffee ink `{colors.ink}` (`#201515`) — not pure black. Warmth carries through to text.
307
+ - Proprietary Degular Display for hero-scale, Inter for everything else. Two-face system.
308
+ - `{rounded.md}` 12 px for buttons and cards — the brand's middle-radius signature.
309
+ - A muted cream / coffee neutral ladder — `{colors.canvas-soft}` (`#f8f4f0`), `{colors.mute}` (`#c5c0b1`), `{colors.body-mid}` (`#939084`), `{colors.body}` (`#605d52`) — every neutral carries warmth, none are cool grey.
310
+
311
+ ## Colors
312
+
313
+ ### Brand & Accent
314
+ - **Zapier Orange** (`{colors.primary}` — `#ff4f00`): The single brand accent. Every primary CTA pill, every conversion target. The saturated orange IS the brand.
315
+
316
+ ### Surface
317
+ - **Canvas** (`{colors.canvas}` — `#fffefb`): Warm off-white page background.
318
+ - **Canvas Soft** (`{colors.canvas-soft}` — `#f8f4f0`): Cream-tinted soft surface for cards / inset regions.
319
+
320
+ ### Text
321
+ - **Ink** (`{colors.ink}` — `#201515`): Deep coffee — every heading and primary text.
322
+ - **Ink Soft** (`{colors.ink-soft}` — `#2f2a26`): Near-black with brown warmth.
323
+ - **Ink Mid** (`{colors.ink-mid}` — `#36342e`): Mid-emphasis text.
324
+ - **Body** (`{colors.body}` — `#605d52`): Default body text color.
325
+ - **Body Mid** (`{colors.body-mid}` — `#939084`): Secondary body / metadata.
326
+ - **Mute** (`{colors.mute}` — `#c5c0b1`): Lowest-priority text — fine print, low-emphasis captions.
327
+
328
+ ### Semantic
329
+ The brand doesn't surface a separate semantic palette on its marketing pages. Status / validation cues borrow from the ink + orange hierarchy.
330
+
331
+ ## Typography
332
+
333
+ ### Font Family
334
+ Two faces ladder the system:
335
+ 1. **Degular Display** — proprietary geometric display sans used for hero headlines at weight 500. The brand's typographic signature.
336
+ 2. **Inter** — used for sub-displays, body, links, buttons, and eyebrows. Weights 400 / 500 / 600 / 700 are present.
337
+
338
+ ### Hierarchy
339
+
340
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
341
+ |---|---|---|---|---|---|
342
+ | `{typography.display-xl}` | 56px | 500 | 56px | 0 | Hero headline (Degular Display). |
343
+ | `{typography.display-lg}` | 48px | 500 | 48px | 0 | Sub-hero displays (Degular Display). |
344
+ | `{typography.display-md}` | 32px | 500 | 36px | 1px | Section displays (Degular Display, positive tracking). |
345
+ | `{typography.display-sub-lg}` | 48px | 500 | 49.92px | 0 | Inter-rendered sub-display. |
346
+ | `{typography.display-sub-md}` | 32px | 400 | 40px | 0 | Inter sub-display. |
347
+ | `{typography.display-sub-sm}` | 24px | 600 | 30px | -0.6px | Card titles (Inter, semibold). |
348
+ | `{typography.display-xs}` | 20px | 700 | 25px | -0.5px | Inline display micro-headings. |
349
+ | `{typography.body-lg}` | 20px | 400 | 30px | -0.2px | Lead paragraphs. |
350
+ | `{typography.body-md}` | 18px | 400 | 27px | 0 | Default body. |
351
+ | `{typography.body-md-strong}` | 18px | 600 | 27px | 0 | Bolded inline body. |
352
+ | `{typography.body-sm}` | 16px | 400 | 24px | 0 | Secondary body. |
353
+ | `{typography.body-sm-strong}` | 16px | 600 | 24px | 0 | Bold caption. |
354
+ | `{typography.caption}` | 14px | 400 | 21px | 0 | Fine print. |
355
+ | `{typography.eyebrow-uppercase}` | 14px | 500 | 14px | 1px | UPPERCASE eyebrow (Degular Display, positive tracking). |
356
+ | `{typography.button-md}` | 18px | 600 | 27px | 0 | Primary button label. |
357
+ | `{typography.button-sm}` | 14.4px | 700 | 14.4px | 0.144px | Small button label. |
358
+
359
+ ### Principles
360
+ - **Degular Display 500 for hero, Inter for everything else.** Strict role separation.
361
+ - **Positive tracking on the Degular eyebrow** — `1 px` at 14 px is the brand's signature label style.
362
+ - **Sentence-case headlines.** The brand never uppercases display sizes.
363
+
364
+ ### Note on Font Substitutes
365
+ Degular Display is proprietary. Open-source substitutes:
366
+ - **Display** — *Inter* weight 500 at hero scale comes closest. *Mona Sans* weight 500 is a softer alternative.
367
+ - **Sub-display + body** — *Inter* is the brand's actual second face.
368
+
369
+ ## Layout
370
+
371
+ ### Spacing System
372
+ - **Base unit**: 4 px.
373
+ - **Tokens**: `{spacing.xxs}` 2 px · `{spacing.xs}` 4 px · `{spacing.sm}` 8 px · `{spacing.md}` 12 px · `{spacing.lg}` 16 px · `{spacing.xl}` 24 px · `{spacing.2xl}` 32 px · `{spacing.3xl}` 48 px · `{spacing.4xl}` 64 px.
374
+ - **Section padding**: bands use `{spacing.4xl}` 64 px top/bottom.
375
+ - **Card interior**: cards at `{spacing.xl}` 24 px.
376
+
377
+ ### Grid & Container
378
+ - Marketing container ~1280 px wide; centred with gutters.
379
+ - Hero: split at desktop (headline left, illustration right); stacked at mobile.
380
+ - Pricing tier grid: 3 / 4-up at desktop.
381
+
382
+ ### Responsive Strategy
383
+
384
+ #### Breakpoints
385
+
386
+ | Name | Width | Key Changes |
387
+ |---|---|---|
388
+ | Mobile | < 768px | Hero stacks; grids 1-up; hamburger nav. |
389
+ | Tablet | 768–1023px | 2-up grids. |
390
+ | Desktop | ≥ 1024px | Full grids; hero split. |
391
+
392
+ #### Touch Targets
393
+ Buttons render ~48 px tall (12 vertical padding + 27 line). WCAG AAA met.
394
+
395
+ #### Image Behavior
396
+ The brand uses illustrative SVGs of zaps / workflows + product screenshots inside `{rounded.md}` framed cards. Photography is rare.
397
+
398
+ ## Elevation & Depth
399
+
400
+ | Level | Treatment | Use |
401
+ |---|---|---|
402
+ | Level 0 — Flat | No shadow, no border. | Default for hero. |
403
+ | Level 1 — Hairline | 1 px solid `{colors.ink}` border. | Pricing-tier card chrome, outline buttons. |
404
+ | Level 2 — Soft Card | `{colors.canvas-soft}` cream fill against `{colors.canvas}` page. | Default content cards — surface contrast carries elevation. |
405
+
406
+ ## Shapes
407
+
408
+ ### Border Radius Scale
409
+
410
+ | Token | Value | Use |
411
+ |---|---|---|
412
+ | `{rounded.none}` | 0px | Full-bleed bands. |
413
+ | `{rounded.sm}` | 6px | Inline pills, form inputs. |
414
+ | `{rounded.md}` | 12px | The brand's canonical button + card radius. |
415
+ | `{rounded.pill}` | 9999px | Status pills, badges. |
416
+ | `{rounded.full}` | 9999px | Circular icon containers. |
417
+
418
+ ## Components
419
+
420
+ ### Buttons
421
+
422
+ **`button-primary`** — the orange CTA.
423
+ - Background `{colors.primary}`, text `{colors.on-primary}` (warm white), label `{typography.button-md}`, padding `{spacing.md} {spacing.xl}`, shape `{rounded.md}` 12 px.
424
+
425
+ **`button-secondary`** — the dark coffee-ink CTA.
426
+ - Background `{colors.ink}`, text `{colors.on-primary}`, same typography / padding / shape.
427
+
428
+ **`button-tertiary`** — the outline CTA.
429
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, same typography / padding / shape.
430
+
431
+ **`button-text`** — text-only CTA used inside cards / nav.
432
+ - Background `{colors.canvas}`, text `{colors.ink}`, body in `{typography.button-sm}`, padding `{spacing.sm} {spacing.lg}`, shape `{rounded.md}`.
433
+
434
+ ### Cards & Containers
435
+
436
+ **`card-content`** — the default cream content card.
437
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.xl}`, shape `{rounded.md}`.
438
+
439
+ **`card-feature-cream`** — the cream feature card.
440
+ - Same chrome as `card-content`. Hosts headline + body + illustration.
441
+
442
+ **`card-feature-dark`** — the polarity-flipped dark coffee card.
443
+ - Background `{colors.ink}`, text `{colors.on-primary}`, padding `{spacing.xl}`, shape `{rounded.md}`.
444
+
445
+ **`pricing-card`** — the default pricing tier card.
446
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, padding `{spacing.xl}`, shape `{rounded.md}`.
447
+
448
+ **`pricing-card-featured`** — the polarity-flipped featured pricing tier.
449
+ - Background `{colors.ink}`, text `{colors.on-primary}`, same shape / padding.
450
+
451
+ ### Inputs & Forms
452
+
453
+ **`text-input`** — the canonical text input.
454
+ - Background `{colors.canvas}`, text `{colors.ink}`, 1 px solid `{colors.ink}` border, body in `{typography.body-md}`, padding `{spacing.md} {spacing.lg}`, shape `{rounded.sm}` 6 px.
455
+
456
+ ### Navigation
457
+
458
+ **`nav-bar`** — the sticky top nav.
459
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.md} {spacing.xl}`.
460
+
461
+ **`nav-link`** — link items inside nav.
462
+ - Text `{colors.ink}`, set in `{typography.body-sm}`.
463
+
464
+ **`footer`** — the dark coffee footer.
465
+ - Background `{colors.ink}`, text `{colors.canvas-soft}`, padding `{spacing.3xl} {spacing.xl}`. Body in `{typography.body-sm}`.
466
+
467
+ ### Signature Components
468
+
469
+ **`hero-band`** — the cream hero band.
470
+ - Background `{colors.canvas}`, text `{colors.ink}`, padding `{spacing.4xl} {spacing.xl}`. Headline in `{typography.display-xl}` (Degular Display 56 px / 500).
471
+
472
+ **`hero-band-dark`** — the polarity-flipped dark coffee hero.
473
+ - Background `{colors.ink}`, text `{colors.on-primary}`, same scale.
474
+
475
+ **`content-band-cream`** — the cream content band that follows hero.
476
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, padding `{spacing.4xl} {spacing.xl}`. Section headline in `{typography.display-lg}`.
477
+
478
+ **`content-band-light`** — the white content band.
479
+ - Background `{colors.canvas}`, text `{colors.ink}`, same padding / scale.
480
+
481
+ **`eyebrow-uppercase`** — the small UPPERCASE Degular eyebrow above section headlines.
482
+ - Text `{colors.ink}`, set in `{typography.eyebrow-uppercase}` (14 px / 500 / `1 px` tracking).
483
+
484
+ **`badge-pill`** — the inline pill for metadata / tag.
485
+ - Background `{colors.canvas-soft}`, text `{colors.ink}`, body in `{typography.body-sm}`, padding `{spacing.xs} {spacing.md}`, shape `{rounded.pill}`.
486
+
487
+ ### Examples (illustrative)
488
+
489
+ > Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.
490
+
491
+ **`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
492
+ - Properties: `backgroundColor`, `textColor`, `borderColor`, `rounded`, `padding`
493
+
494
+ **`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
495
+ - Properties: `backgroundColor`, `textColor`, `rounded`, `padding`
496
+
497
+ **`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).
498
+ - Properties: `backgroundColor`, `rounded`, `padding`
499
+
500
+ **`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).
501
+ - Properties: `backgroundColor`, `rounded`, `padding`, `item-divider`
502
+
503
+ **`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
504
+ - Properties: `backgroundColor`, `activeIndicator`, `rounded`, `padding`
505
+
506
+ **`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
507
+ - Properties: `headerBackground`, `headerTypography`, `bodyTypography`, `cellPadding`, `rowBorder`
508
+
509
+ **`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
510
+ - Properties: `backgroundColor`, `rounded`, `padding`
511
+
512
+ **`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.
513
+ - Properties: `backgroundColor`, `rounded`, `padding`
514
+
515
+ **`ex-empty-state-card`** — Empty-state illustration frame.
516
+ - Properties: `backgroundColor`, `rounded`, `padding`, `captionTypography`
517
+
518
+ **`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.
519
+ - Properties: `backgroundColor`, `rounded`, `padding`, `typography`
520
+
521
+
522
+ ## Do's and Don'ts
523
+
524
+ ### Do
525
+ - Reserve `{colors.primary}` Zapier orange for every primary CTA. The saturated orange IS the conversion signature.
526
+ - Keep canvas WARM — `{colors.canvas}` `#fffefb` cream, not pure white. The temperature is the brand voice.
527
+ - Set hero headlines in `{typography.display-xl}` Degular Display weight 500. Sentence-case, no uppercase.
528
+ - Pair Degular Display (hero, eyebrow) with Inter (everything else). Two faces, two roles.
529
+ - Use `{rounded.md}` 12 px for buttons + cards. The middle radius is the brand's signature.
530
+ - Pair orange CTA with ink-dark text on cream backgrounds — the three-token rhythm is the brand's whole conversion story.
531
+
532
+ ### Don't
533
+ - Don't replace cream canvas with pure white. The warmth is the brand.
534
+ - Don't use pure black ink. The coffee-warmth in `#201515` carries through every text color.
535
+ - Don't render CTAs as pills. The brand's button is 12 px rounded rectangle.
536
+ - Don't introduce a second chromatic accent. Orange + cream + coffee is the entire palette.
537
+ - Don't substitute Degular Display with a cool geometric sans (e.g., generic Helvetica) — the brand's display face has warm proportions that the substitute doesn't capture.