howone 0.1.29 → 0.1.30

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 (219) hide show
  1. package/package.json +1 -1
  2. package/templates/vite/.howone/skills/hallmark/SKILL.md +48 -42
  3. package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +12 -6
  4. package/templates/vite/.howone/skills/hallmark/references/assets.md +7 -0
  5. package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +19 -10
  6. package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +1 -1
  7. package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +1 -1
  8. package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +1 -1
  9. package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +1 -1
  10. package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +1 -1
  11. package/templates/vite/.howone/skills/hallmark/references/components/n11-mega-menu.md +40 -0
  12. package/templates/vite/.howone/skills/hallmark/references/components/n12-banner-retract.md +34 -0
  13. package/templates/vite/.howone/skills/hallmark/references/components/n13-inline-cmdk-pill.md +39 -0
  14. package/templates/vite/.howone/skills/hallmark/references/components/n1b-saas-three-section.md +35 -0
  15. package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +1 -1
  16. package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +2 -2
  17. package/templates/vite/.howone/skills/hallmark/references/copy.md +8 -8
  18. package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +2 -2
  19. package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +50 -12
  20. package/templates/vite/.howone/skills/hallmark/references/export-formats.md +1 -1
  21. package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +11 -7
  22. package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +6 -4
  23. package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +10 -6
  24. package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +15 -10
  25. package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +13 -12
  26. package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +2 -1
  27. package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +4 -3
  28. package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +3 -1
  29. package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +1 -1
  30. package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +1 -1
  31. package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +1 -3
  32. package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +12 -12
  33. package/templates/vite/.howone/skills/hallmark/references/responsive.md +8 -8
  34. package/templates/vite/.howone/skills/hallmark/references/slop-test.md +72 -85
  35. package/templates/vite/.howone/skills/hallmark/references/structure.md +9 -13
  36. package/templates/vite/.howone/skills/hallmark/references/study.md +40 -17
  37. package/templates/vite/.howone/skills/hallmark/references/themes/carnival.md +301 -0
  38. package/templates/vite/.howone/skills/hallmark/references/themes/cobalt.md +146 -0
  39. package/templates/vite/.howone/skills/hallmark/references/themes/hum.md +403 -0
  40. package/templates/vite/.howone/skills/hallmark/references/themes/lumen.md +478 -0
  41. package/templates/vite/.howone/skills/hallmark/references/typography.md +3 -3
  42. package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +1 -1
  43. package/templates/vite/.howone/skills/hallmark/LICENSE +0 -21
  44. package/templates/vite/.howone/skills/hallmark/README.md +0 -147
  45. package/templates/vite/.howone/skills/hallmark/ROADMAP.md +0 -201
  46. package/templates/vite/.howone/skills/hallmark/docs/recipes.md +0 -186
  47. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
  48. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
  49. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
  50. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
  51. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
  52. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
  53. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
  54. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
  55. package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +0 -176
  56. package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +0 -364
  57. package/templates/vite/.howone/skills/hallmark/package.json +0 -36
  58. package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
  59. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +0 -71
  60. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +0 -64
  61. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +0 -240
  62. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +0 -65
  63. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +0 -105
  64. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +0 -250
  65. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +0 -64
  66. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +0 -131
  67. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +0 -240
  68. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +0 -67
  69. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +0 -86
  70. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +0 -262
  71. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +0 -63
  72. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +0 -167
  73. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +0 -457
  74. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +0 -65
  75. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +0 -159
  76. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +0 -288
  77. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +0 -64
  78. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +0 -146
  79. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +0 -484
  80. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +0 -64
  81. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +0 -116
  82. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +0 -354
  83. package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +0 -638
  84. package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +0 -515
  85. package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +0 -515
  86. package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +0 -608
  87. package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +0 -587
  88. package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +0 -157
  89. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
  90. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
  91. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
  92. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
  93. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
  94. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
  95. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
  96. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
  97. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
  98. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
  99. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
  100. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
  101. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
  102. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
  103. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
  104. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
  105. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
  106. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
  107. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
  108. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
  109. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
  110. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
  111. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
  112. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +0 -77
  113. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +0 -238
  114. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +0 -110
  115. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +0 -326
  116. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +0 -134
  117. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +0 -262
  118. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +0 -30
  119. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +0 -17
  120. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +0 -56
  121. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +0 -160
  122. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +0 -29
  123. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +0 -63
  124. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +0 -72
  125. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +0 -374
  126. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +0 -52
  127. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +0 -29
  128. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +0 -61
  129. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +0 -193
  130. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +0 -66
  131. package/templates/vite/.howone/skills/hallmark/site/css/base.css +0 -194
  132. package/templates/vite/.howone/skills/hallmark/site/css/components.css +0 -4886
  133. package/templates/vite/.howone/skills/hallmark/site/css/sections.css +0 -2072
  134. package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +0 -1129
  135. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +0 -475
  136. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +0 -1584
  137. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +0 -96
  138. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +0 -344
  139. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +0 -103
  140. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +0 -1103
  141. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +0 -83
  142. package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +0 -368
  143. package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +0 -133
  144. package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +0 -1062
  145. package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +0 -97
  146. package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +0 -84
  147. package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +0 -446
  148. package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +0 -1087
  149. package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +0 -101
  150. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +0 -359
  151. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +0 -1168
  152. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +0 -81
  153. package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +0 -5
  154. package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +0 -5
  155. package/templates/vite/.howone/skills/hallmark/site/index.html +0 -1043
  156. package/templates/vite/.howone/skills/hallmark/site/js/main.js +0 -1175
  157. package/templates/vite/.howone/skills/hallmark/vercel.json +0 -6
  158. package/templates/vite/.howone/skills/impeccable/SKILL.md +0 -168
  159. package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +0 -101
  160. package/templates/vite/.howone/skills/impeccable/reference/adapt.md +0 -190
  161. package/templates/vite/.howone/skills/impeccable/reference/animate.md +0 -175
  162. package/templates/vite/.howone/skills/impeccable/reference/audit.md +0 -133
  163. package/templates/vite/.howone/skills/impeccable/reference/bolder.md +0 -113
  164. package/templates/vite/.howone/skills/impeccable/reference/brand.md +0 -118
  165. package/templates/vite/.howone/skills/impeccable/reference/clarify.md +0 -174
  166. package/templates/vite/.howone/skills/impeccable/reference/codex.md +0 -105
  167. package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +0 -106
  168. package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +0 -105
  169. package/templates/vite/.howone/skills/impeccable/reference/colorize.md +0 -154
  170. package/templates/vite/.howone/skills/impeccable/reference/craft.md +0 -123
  171. package/templates/vite/.howone/skills/impeccable/reference/critique.md +0 -273
  172. package/templates/vite/.howone/skills/impeccable/reference/delight.md +0 -302
  173. package/templates/vite/.howone/skills/impeccable/reference/distill.md +0 -111
  174. package/templates/vite/.howone/skills/impeccable/reference/document.md +0 -427
  175. package/templates/vite/.howone/skills/impeccable/reference/extract.md +0 -69
  176. package/templates/vite/.howone/skills/impeccable/reference/harden.md +0 -347
  177. package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +0 -234
  178. package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +0 -195
  179. package/templates/vite/.howone/skills/impeccable/reference/layout.md +0 -141
  180. package/templates/vite/.howone/skills/impeccable/reference/live.md +0 -622
  181. package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +0 -109
  182. package/templates/vite/.howone/skills/impeccable/reference/onboard.md +0 -234
  183. package/templates/vite/.howone/skills/impeccable/reference/optimize.md +0 -258
  184. package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +0 -130
  185. package/templates/vite/.howone/skills/impeccable/reference/personas.md +0 -179
  186. package/templates/vite/.howone/skills/impeccable/reference/polish.md +0 -242
  187. package/templates/vite/.howone/skills/impeccable/reference/product.md +0 -62
  188. package/templates/vite/.howone/skills/impeccable/reference/quieter.md +0 -99
  189. package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +0 -114
  190. package/templates/vite/.howone/skills/impeccable/reference/shape.md +0 -165
  191. package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +0 -100
  192. package/templates/vite/.howone/skills/impeccable/reference/teach.md +0 -156
  193. package/templates/vite/.howone/skills/impeccable/reference/typeset.md +0 -124
  194. package/templates/vite/.howone/skills/impeccable/reference/typography.md +0 -159
  195. package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +0 -107
  196. package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +0 -284
  197. package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +0 -94
  198. package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +0 -242
  199. package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +0 -820
  200. package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +0 -198
  201. package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +0 -21
  202. package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +0 -110
  203. package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +0 -69
  204. package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +0 -595
  205. package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +0 -123
  206. package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +0 -4860
  207. package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +0 -75
  208. package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +0 -18
  209. package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +0 -446
  210. package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +0 -200
  211. package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +0 -48
  212. package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +0 -838
  213. package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +0 -254
  214. package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +0 -47
  215. package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +0 -632
  216. package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +0 -247
  217. package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +0 -141
  218. package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +0 -14
  219. package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +0 -214
@@ -1,147 +0,0 @@
1
- # Hallmark
2
-
3
- **A design skill for Claude Code, Cursor, and Codex that refuses to look AI-generated.**
4
-
5
- [Live demo →](https://www.usehallmark.com)  ·  twenty-two themes  ·  four verbs  ·  press `T` to cycle.
6
-
7
- Made by Together AI.
8
-
9
- <p align="center">
10
- <img src="site/OG-hallmark.png" alt="Hallmark — A design skill that refuses to look AI-generated" />
11
- </p>
12
-
13
- Hallmark encodes the anti-AI-slop consensus — typography, colour, layout, motion, microinteractions, structural variety — into one opinionated rule-set. It picks a macrostructure for the brief, dresses it in one of twenty-two themes, runs sixty-five slop-test gates plus a pre-emit self-critique before handing back, and refuses the on-distribution defaults every LLM was trained into.
14
-
15
- > **v1.0.0** — pre-emit critique on six axes, honest-copy enforcement, locked-token discipline, re-drawn-chrome ban, and a no-wrap rule for clickable text. Five new slop-test gates (56–60). The full rule-set lives in [`SKILL.md`](SKILL.md) and [`references/`](references/).
16
-
17
-
18
- ---
19
-
20
- ## What's distinct — quick map vs the field
21
-
22
- | | Hallmark | [frontend-design](https://github.com/anthropics/skills) (Anthropic) | [Open Design](https://github.com/nexu-io/open-design) | [Dembrandt](https://github.com/dembrandt/dembrandt) |
23
- | --- | --- | --- | --- | --- |
24
- | **Source of taste** | extracts DNA from a screenshot OR a URL (`study` verb) — image mode names roles + candidates; URL mode names exact fonts + tokens | art-director brief + ban list | menu of 72 brand presets (Linear, Stripe, Vercel, Notion…) | scrapes a live URL, emits computed tokens |
25
- | **Output unit** | macrostructure + theme + custom-craft, optional portable `design.md` | bans + brief framing | preset application | DTCG `tokens.json` |
26
- | **Refuses font ID** | image mode: yes — names role only; URL mode: names what the page declares | n/a | n/a | n/a (computes from CSS) |
27
- | **Refuses pixel-clone** | yes — DNA only, never pixels (both modes) | n/a | n/a | n/a (full token export) |
28
- | **Refuses third-party extraction** | yes — paid templates / competitors / unrelated sites auto-refused; `design.md` emission has a tighter layer with URL-mode attestation | n/a | n/a | n/a (extracts anything) |
29
- | **Tactile-rebellion alignment** | warm-paper, custom-craft, slopless canon | strong | medium | none — token-only |
30
- | **Pages by archetype** | 21 named macrostructures, picked per brief | by brief | 5 deterministic directions | n/a |
31
- | **Verbs** | 4 (default · `audit` · `redesign` · `study`) | 1 | 31 | 1 (CLI) |
32
-
33
- Hallmark's edge is **`study`** — every other tool ships a preset menu or a scraper. Hallmark is the only one that takes a screenshot *or* a URL of a design you admire, names what it sees (roles in image mode, exact fonts + tokens in URL mode), refuses paid-template-marketplace listings outright, and either rebuilds your content with the extracted DNA or emits a portable `design.md` you can hand to another AI tool — with a tighter refusal layer for the portable spec than for the diagnosis itself. Three worked study examples in [`docs/study-examples.md`](docs/study-examples.md).
34
-
35
- ---
36
-
37
- ## Four verbs
38
-
39
- | Verb | What it does |
40
- | --- | --- |
41
- | *(default)* | Build new UI. Asks for audience + use + tone (skippable — the skill states what it inferred). Picks a macrostructure, applies the rule-set, runs the slop test before handing back. |
42
- | `hallmark audit <target>` | Score existing code against the named anti-patterns + structural sameness. Punch list, no edits. |
43
- | `hallmark redesign <target> [--mood <name>]` | Throw out the structure, keep copy + IA + brand, rebuild with a deliberately different fingerprint. |
44
- | **`hallmark study <screenshot \| URL>`** | The differentiator. Extract the **DNA** from a design the user admires — macrostructure, archetypes, type-pairing, colour anchor — and produce a diagnosis report. Accepts either an attached screenshot or a URL to a live page. After the diagnosis the user can optionally rebuild *their* content using the extracted DNA, **or** lock the DNA into a portable `design.md` other AI tools (Cursor, v0, Bolt) can read directly. **URL mode** reads HTML / CSS via WebFetch — names exact fonts and exact colour values, can't judge rhythm, and falls back to asking for a screenshot if the page is auth-walled or a JS-only shell. **Refuses paid templates and competitor pages. Image mode names font roles (never font IDs); URL mode names actual fonts (the page declares them). Never copies pixels. `design.md` emission has a tighter refusal layer than the diagnosis itself — URL-mode emission asks the user to attest the source is theirs or a public reference for their own brand.** |
45
-
46
- ---
47
-
48
- ## Different briefs, different shapes
49
-
50
- A handful of examples below — each generated by exercising the skill on a different brief. The skill picks differently for every prompt; no two share a macrostructure or theme.
51
-
52
- <table>
53
- <tr>
54
- <td width="25%"><a href="https://www.usehallmark.com/examples/tally/"><img src="docs/screenshots/hero-tally.jpg" alt="Tally — SaaS product page hero" /></a></td>
55
- <td width="25%"><a href="https://www.usehallmark.com/examples/wayfare/"><img src="docs/screenshots/hero-wayfare.jpg" alt="Wayfare travel booking hero" /></a></td>
56
- <td width="25%"><a href="https://www.usehallmark.com/_tests/09-slow-pour/"><img src="docs/screenshots/hero-slow-pour.jpg" alt="Slow Pour coffee subscription hero" /></a></td>
57
- <td width="25%"><a href="https://www.usehallmark.com/examples/bananastudio/"><img src="docs/screenshots/hero-bananastudio.jpg" alt="BananaStudio creative studio hero" /></a></td>
58
- </tr>
59
- <tr>
60
- <td><b>Tally</b><br/><sub>SaaS product page · modern-minimal</sub></td>
61
- <td><b>Wayfare</b><br/><sub>Travel booking · atmospheric</sub></td>
62
- <td><b>Slow Pour</b><br/><sub>Small-batch coffee subscription</sub></td>
63
- <td><b>BananaStudio</b><br/><sub>Creative studio · playful motion</sub></td>
64
- </tr>
65
- <tr>
66
- <td><a href="https://www.usehallmark.com/_tests/06-anya-portfolio/"><img src="docs/screenshots/hero-anya.jpg" alt="Anya Reis personal site hero" /></a></td>
67
- <td><a href="https://www.usehallmark.com/examples/najm/"><img src="docs/screenshots/hero-najm.jpg" alt="NAJM Moroccan fashion brand hero" /></a></td>
68
- <td><a href="https://www.usehallmark.com/_tests/11-soroe-ceramics/"><img src="docs/screenshots/hero-soroe.jpg" alt="Søroe ceramics studio hero" /></a></td>
69
- <td><a href="https://www.usehallmark.com/examples/hyperlane/"><img src="docs/screenshots/hero-hyperlane.jpg" alt="Hyperlane developer infrastructure hero" /></a></td>
70
- </tr>
71
- <tr>
72
- <td><b>Anya Reis</b><br/><sub>Software architect personal site</sub></td>
73
- <td><b>NAJM</b><br/><sub>Moroccan fashion brand</sub></td>
74
- <td><b>Søroe</b><br/><sub>Small ceramics studio</sub></td>
75
- <td><b>Hyperlane</b><br/><sub>Developer infrastructure</sub></td>
76
- </tr>
77
- </table>
78
-
79
- Each page is its own self-contained HTML + CSS — no shared theme, no shared layout. Every one carries a `/* Hallmark · macrostructure: … */` stamp at the top of its CSS. See the full set under [`site/_tests/`](site/_tests/) or live at [www.usehallmark.com](https://www.usehallmark.com).
80
-
81
- ---
82
-
83
- ## What's inside
84
-
85
- - **[`SKILL.md`](SKILL.md)** — the routing file. Six-step design flow (including `Step 2.5 · Check project memory` reading `.hallmark/log.json`), 65-gate slop test, output contract, always-on `tokens.css` export.
86
- - **[`references/`](references/)** — short, opinionated rule files: typography, colour, layout, motion, microinteractions, interaction-and-states (with the input-state checklist), responsive, copy, anti-patterns, the 21 named macrostructures, the **40 component archetypes** with variation knobs (9 hero · 6 feature · 4 CTA · 4 testimonial · **8 footer · 9 nav**), the **4 hero polish patterns** (in `hero-enrichment.md`), the 6 primitive structure axes, the vision-extraction protocol for `study`, hero enrichment, custom-craft (CSS art over Lottie), assets, the slop-test gates, four genre rule-overlays (each with nav + footer voice routing), per-verb dispatchers, and the export-formats reference (Tailwind / DTCG / shadcn / tokens.css).
87
- - **[`docs/`](docs/)** — human-reading content: **[`recipes.md`](docs/recipes.md)** (8 worked briefs + a canonical try-it prompt) and **[`study-examples.md`](docs/study-examples.md)** (3 worked DNA-extractions). Not auto-loaded by the skill.
88
- - **[`site/`](site/)** — a self-demonstrating landing page. Hand-written HTML + CSS + ES module, no framework, no build step. **Twenty-two themes** clustered into four genres: **editorial** (Specimen, Editorial, Atelier, Newsprint, Salon, Linen, Almanac, Garden, Studio, Sport, Riso, Brutal, Manifesto), **modern-minimal** (Quiet, Coral, Violet), **atmospheric** (Midnight, Terminal, Bloom, Aurora, Halo), **playful** (Plume). Switching themes literally rebuilds the page — different hero archetype, different footer archetype, different nav archetype.
89
-
90
- ---
91
-
92
- ## What's distinct (the long list)
93
-
94
- - **One skill, four verbs.** Not eighteen commands.
95
- - **Genres broaden the range.** Hallmark routes a brief through one of four genres before picking a theme: **editorial** (default · the canonical anti-slop voice), **modern-minimal** (Stripe / Linear / ElevenLabs school), **atmospheric** (Suno / Runway / dark-AI-tool school), **playful** (post-Linear soft school). Each genre is its own rule overlay — atmospheric allows radial blooms; modern-minimal allows pure white and pill CTAs; editorial bans both. Detection is signal-based, silent default to editorial.
96
- - **Tone is a first-class decision.** "Clean and modern" is rejected. Pick an extreme — *editorial · brutalist · soft · technical · luxury · playful · austere*.
97
- - **Macrostructures over axes.** Pick one of 21 named whole-page shapes wholesale; the macrostructure stamp lives in the CSS comment, so the next Hallmark run picks something different.
98
- - **Within-archetype variation.** Two Bento Grids should not be twins; each archetype has 2–3 picked-per-output knobs.
99
- - **Microinteractions as discipline.** Silent success over celebratory toasts. Optimistic update + Undo over confirm dialogs. Hover delay 800 ms, focus delay 0 ms.
100
- - **A 65-gate slop test** runs before every output. One yes fails the build. Recent additions: typography discipline gates (39–40: max three font families per page, outlier face used in ≤ 2 slots), input-state gates (41–45: no border-width layout shift, focus ring via outline not border, input height matches button height, helper-text slot reserves height, disabled state needs three independent signals), contrast gates (46–50: APCA / WCAG thresholds, accent-ink token requirement, dark-section ink-on-ink check), **nav · footer · hero structural gates (51–55: AI nav fingerprint, AI footer fingerprint, hero centred-everything, hero padding asymmetry, decorative-without-purpose)**, **honest-copy + chrome + token + responsive gates (56–60: invented metrics, re-drawn UI chrome, mid-render token improvisation, two-line clickable text, emoji-as-feature-icon)**, and **layout-safety gates (61–65: 1fr image-track overflow, missing `overflow-x: clip`, display-header word-break, theme section-head mobile collapse, CSS-only radio tabs scroll-jumping)**.
101
- - **Project memory.** A per-project `.hallmark/log.json` records each run's macrostructure + theme + enrichment + brief summary. The skill reads the last 3–5 entries before picking and writes a new entry after each build, so consecutive Hallmark outputs in the same project don't repeat shapes or themes.
102
- - **Theme-diversification rule.** Two consecutive themes must differ on at least one of three axes: paper band (dark / mid / light), display style (italic-serif / roman-serif / geometric-sans / mono / display-heavy / system-native), accent hue (warm / cool / neutral / chromatic-other).
103
- - **Voice fixtures over LLM defaults.** Each of the 21 macrostructures ships with 2–3 example opening lines tuned to its tone. "Built for the modern team" is in the banned-phrases list.
104
- - **Hero enrichment is opt-in.** A typographic-only hero is always acceptable. When enrichment is right, the skill picks from a six-tier hierarchy: typography only → custom-built CSS art → hand-built SVG → generated illustration (Nanobanana / Recraft) → library → Lottie (last resort).
105
- - **Microinteractions default-on for SaaS-shaped archetypes.** Bento Grid, Stat-Led, Workbench, Marquee Hero pages ship with 2–3 purposeful microinteractions (number reveal, pricing lift, marquee, stagger) without the user having to ask. Editorial / Manifesto / Letter / Quote-Led pages stay still.
106
- - **SaaS page sequence.** Hero → social proof → features → testimonials → pricing → FAQ → CTA → footer. Real prices, not "contact sales for pricing." Specific testimonials with role + company.
107
- - **Wordmark may use a different display face.** A Geist-bodied SaaS page can set its wordmark in Fraunces. Same-family collapse on Bento / Stat-Led / Workbench / Marquee Hero is the new "un-branded" tell.
108
- - **`study` extracts DNA, not pixels.** Refusal heuristics, type-role vocabulary (no font ID guessing in image mode), confirmation step before any code. Accepts a screenshot *or* a URL — URL mode reads HTML / CSS via WebFetch and names exact fonts + exact tokens (trades the rhythm pass for accuracy on everything else), with a graceful screenshot fallback when the URL is auth-walled or a JS-only shell. Three worked examples in [`docs/study-examples.md`](docs/study-examples.md).
109
- - **Opt-in `design.md` lock-the-system flow — two entry points.** Iterate freely on the first builds; when the system is settled, say *"lock the system"* (or *"give me a design.md"*) and Hallmark extracts the build's tokens + voice into a portable design system at the project root. **Or**, after a `study` diagnosis, say *"lock the DNA"* and Hallmark emits the same `design.md` format seeded from the studied source — URL mode populates exact tokens + fonts; image mode populates estimated bands + candidate fonts. From that point on every Hallmark run defers to the file, the diversification rule inverts to consistency, and the file becomes the single source of truth for scaling the design across a real app. The study-mode emission carries a tighter refusal layer than the diagnosis itself — third-party URLs require user attestation (your own site / public reference for your own brand), competitors and paid templates are auto-refused. Phrase-triggered from either entry point, never auto-emitted. See [`references/design-md.md`](references/design-md.md).
110
-
111
- ---
112
-
113
- ## Install
114
-
115
- ```
116
- npx skills add nutlope/hallmark
117
- ```
118
-
119
- Or copy [`SKILL.md`](SKILL.md) + [`references/`](references/) into one of:
120
-
121
- - **Claude Code** — `~/.claude/skills/hallmark/`
122
- - **Cursor** — `.cursor/rules/hallmark.mdc` (body of `SKILL.md`, no frontmatter)
123
- - **Codex** — `~/.codex/skills/hallmark/` (personal, all projects) or `.codex/skills/hallmark/` (project-scoped, commit to repo)
124
-
125
- ## Updating
126
-
127
- ```
128
- npx skills add nutlope/hallmark
129
- ```
130
-
131
- Re-run any time to pull the latest. If the CLI complains the skill already exists, delete the install path first (`~/.claude/skills/hallmark/` on Claude Code, or `.agents/skills/hallmark/` if you ran `skills add` from a project directory) and re-run.
132
-
133
- To preview the landing page locally:
134
-
135
- ```
136
- cd site && python3 -m http.server 4173 # → http://localhost:4173
137
- ```
138
-
139
- Press `T` to cycle themes, the **shuffle button** (or `R`) to randomise, `?theme=studio` for a shareable link.
140
-
141
- Or visit the live deploy at **[www.usehallmark.com](https://www.usehallmark.com)**.
142
-
143
- ---
144
-
145
- ## Licence
146
-
147
- MIT. Use it, fork it, ship it.
@@ -1,201 +0,0 @@
1
- # Hallmark — Roadmap
2
-
3
- A forward-looking plan for what to build next, drawn from the gaps the latest research surfaced and from where the field is heading. Ordered by impact-to-effort.
4
-
5
- ---
6
-
7
- ## Now — actively working on
8
-
9
- ### N.1 Better themes + more custom-designed themes
10
-
11
- **Status now.** The 22 catalog themes work but a handful (Plain, Specimen, Salon, Linen) bleed into each other on first read — same paper-band, similar accent footprint, similar display roles. Real distinctiveness lives in only ~12 of them. Custom-theme construction (the `custom-theme.md` branch) exists but is rarely reached for; users mostly stay on catalog defaults.
12
-
13
- **Build.**
14
- 1. **Tighten the existing 22** — audit each theme's three diversification axes (paper-band / display-style / accent-hue) and pull any pair that overlaps on 2+ axes back to distinct territory. The themes that ship today should each carry a stronger fingerprint.
15
- 2. **Add 4–6 new catalog themes** in underserved corners of the axis space — e.g. mid-band warm chromatic (something between Salon and Garden), dark-monochrome editorial (no current Midnight equivalent for serif-led editorial), high-contrast print-poster (a Brutal cousin that's quieter), warm dark with handwritten accent. Each new theme ships with its own tokens block in `site/css/tokens.css` and a stamp axis declaration.
16
- 3. **Surface the custom branch more often.** Right now custom requires 3+ vibe words. Lower the bar so a single distinctive brand colour or unusual font request routes to custom, not the closest catalog cousin.
17
-
18
- **Why it matters.** Catalog rotation is the headline differentiator — if half the catalog is interchangeable, the rotation doesn't deliver. More distinct themes = more visible variety per session = users feel the discipline working without reading the rules.
19
-
20
- ### N.2 Nanobanana image generation inside Hallmark (image-led theme)
21
-
22
- **Status now.** [`assets.md`](references/assets.md) lists Nanobanana as the canonical generated-still source (Tier C in the enrichment hierarchy) but the integration is *recommend-only* — Hallmark tells the user to go generate something and bring it back. No first-class image-led theme exists; image-heavy briefs route to a typography-only macrostructure and feel underserved.
23
-
24
- **Build.**
25
- 1. **First-class Nanobanana hook.** When the brief signals "needs imagery" (e-commerce, travel, food, lookbook, gallery) and the user hasn't supplied real assets, Hallmark generates a brief for Nanobanana (style, subject, framing, palette tokens), invokes the API, ingests the returned image, and wires it into the build. Cache by prompt hash so re-runs are cheap.
26
- 2. **New image-led theme** (working title: **Plate**) — a theme tuned for image-heavy compositions. Generous photographic framing, neutral chrome around full-bleed imagery, hairline rules, restrained type so the picture leads. Pairs with the Photographic macrostructure and the H6 Photographic-Fold archetype. Distinct from existing themes because it assumes imagery exists and treats text as caption-grade.
27
- 3. **Token discipline for generated stills.** Nanobanana outputs need to thread back to the theme's accent / paper — extract dominant hue from the returned image, suggest as accent override, let the user confirm. Prevents the "generated image clashes with the theme palette" failure mode.
28
-
29
- **Why it matters.** Today Hallmark is a typography-led tool. Half of real-world landing pages need imagery (consumer brands, hospitality, e-commerce). Adding first-class Nanobanana support + an image-led theme covers that gap without forcing the user to leave the skill, and it positions Hallmark as a complete builder rather than a type-only specialist.
30
-
31
- ---
32
-
33
- ## Tier 1 — Ship next (high impact, contained scope)
34
-
35
- ### 1.1 Theme-aware microinteraction tokens
36
-
37
- **Status now.** [`microinteractions.md`](references/microinteractions.md) describes a duration multiplier per theme as a table — but the multipliers aren't actually expressed in CSS. Atelier and Salon should *feel* slower than Brutal and Sport, but right now they share the same `--dur-short` / `--dur-long`.
38
-
39
- **Build.** Move `--dur-micro`, `--dur-short`, `--dur-long` into per-theme overrides in [`tokens.css`](site/css/tokens.css), scaled by the table in `microinteractions.md`. Newsprint and Terminal use `0ms` for spatial motion (they're print/terminal metaphors). One pass through the file; small diff.
40
-
41
- **Why it matters.** Today a Salon page and a Brutal page animate at the same speed. They shouldn't. The principle of structural variety should extend to motion variety.
42
-
43
- ### 1.2 DESIGN.md output protocol
44
-
45
- **Status now.** Hallmark produces code. It does not produce a portable design spec.
46
-
47
- **Build.** When Hallmark generates new work, also emit a `DESIGN.md` in the project root containing: chosen tone, palette tokens (with OKLCH values), type stack, spacing scale, structural fingerprint, motion tokens, and the named anti-patterns the page must continue to avoid. Other AI tools (Cursor, v0, Bolt) can read this file directly to keep iterating on the same design language.
48
-
49
- **Why it matters.** Closes the loop between Hallmark and the rest of the agent ecosystem. The skill stops being a one-shot generator and becomes a system that hands its decisions forward.
50
-
51
- ### 1.3 `hallmark variant` — three fingerprints, user picks one
52
-
53
- **Status now.** Hallmark produces *one* designed output per brief.
54
-
55
- **Build.** New verb: `hallmark variant <target>` produces three structurally distinct versions of the same brief — different fingerprints across the six axes — and presents them as a side-by-side comparison. The user picks the one that fits, or asks for a fourth. This is the workflow `taste-skill v3.0` parameterises with dials; Hallmark would expose it as a verb.
56
-
57
- **Why it matters.** The biggest cause of "AI feel" isn't bad output — it's the user accepting the *first* output because they don't know it could be different. Showing three forces a judgement call and surfaces taste.
58
-
59
- ### 1.4 Theme switcher polish on the landing page
60
-
61
- **Status now.** The 12-theme picker is good but a few rough edges remain.
62
-
63
- **Build.**
64
- - Trap the focus inside the popover when open (currently focus can escape).
65
- - Make the swatch dots match each theme's *exact* paper/ink/accent (some currently approximate).
66
- - On theme apply, briefly flash the orange accent rule under the trigger label to confirm — *silent success* via a 200ms colour pulse, not a toast.
67
- - The kbd hint (`press T`) currently sits next to the trigger but only on hover — also reveal on `:focus-within` of the navbar, for keyboard users who haven't reached for the mouse.
68
-
69
- **Why it matters.** The landing page itself is the strongest demo of Hallmark's microinteraction taste. It has to be exemplary.
70
-
71
- ---
72
-
73
- ## Tier 2 — Build after Tier 1 lands (still concrete, more scope)
74
-
75
- ### 2.1 `references/structural-cookbook.md` — concrete recipes
76
-
77
- **Status now.** [`structure.md`](references/structure.md) catalogues the *axes* of structural variety. It doesn't show *what* a left-margin-headed, single-column, hairline-divided, unstyled-link, no-image, no-reveal page actually looks like assembled.
78
-
79
- **Build.** A cookbook file with 12–20 *complete* structural fingerprints, each with a short HTML/CSS sketch, a paragraph explaining when to reach for it, and a real-world reference (NYT Mag, Stripe, Linear, Pentagram, etc.). The cookbook teaches the model patterns the same way recipe books teach cooking — through *worked examples*, not just *principles*.
80
-
81
- **Why it matters.** Models are pattern-matchers. Catalogued patterns + named recipes are easier to reach for than principles + axes.
82
-
83
- ### 2.2 `references/tactile-rebellion.md` — controlled imperfection
84
-
85
- **Status now.** Hallmark assumes pixel-precision is the goal. The 2026 cultural movement is the opposite: handmade textures, controlled imperfection, *wabi-sabi*. 73% of designers (per CreativeBloq's 2026 trends report) are deliberately adding imperfections to differentiate from AI.
86
-
87
- **Build.** A new reference file covering: when to apply texture (sparingly; one element per page max); how to do it without falling into kitsch (real letterpress reference, not "letterpress filter"); free SVG noise/grain generators; hand-drawn SVG path techniques; controlled-jitter typography (a 0.5° rotation on a single mark is taste; on every word it's chaos).
88
-
89
- **Why it matters.** This is where the field is going and the current canon (impeccable, kami) has nothing on it. First-mover advantage.
90
-
91
- ### 2.3 `references/data-viz.md` — Tufte-leaning anti-slop charts
92
-
93
- **Status now.** Nothing about charts. Yet a dashboard or analytics page is half data viz, and AI-generated charts are *especially* bad — rainbow palettes, 3D pies, gridlines everywhere, sparkles instead of lines.
94
-
95
- **Build.** A reference file covering: small multiples over single dense charts; tabular numbers; restraint in colour (one accent for the focal series, neutrals for context); axis design (minimum gridlines, no chartjunk); when to use bars vs lines vs sparklines; banned chart types (3D anything, donut charts where pie would do, dual-axis line charts).
96
-
97
- **Why it matters.** Data-density is the next frontier of "looks AI-generated" — and Tufte is the canonical reference no current skill cites.
98
-
99
- ### 2.4 Multi-page coherence rules
100
-
101
- **Status now.** Hallmark's structural-variety rule says "two consecutive pages in the same session should not share more than three of the six structural axes." That's correct for variety but wrong for *brand consistency* across a real product where every page should feel like the same site.
102
-
103
- **Build.** A new reference: `references/coherence.md`. When working within a multi-page project, lock the first three axes (typography, colour, divider language — the *brand* axes) and vary the remaining three (heading placement, body composition, button voice — the *page-voice* axes). Different *pages* of the same site, not different *sites*. Add a test: "if I removed the navigation, would these two pages look like they're from the same product?" Yes. Continue. No. Re-anchor.
104
-
105
- **Why it matters.** Right now the structural-variety rule is too strong. Real products need *coherent variety*, not chaotic variety.
106
-
107
- ### 2.5 `hallmark extract` — read existing code, output DESIGN.md
108
-
109
- **Status now.** Hallmark generates from briefs. It can't ingest existing systems.
110
-
111
- **Build.** New verb: `hallmark extract <directory>`. Reads the codebase. Identifies tokens (colour vars, type ramps, spacing scale, easings). Identifies the structural fingerprint actually in use. Writes a DESIGN.md the user can hand to other agents — or to Hallmark itself for `redesign` work. SkillUI does this for visual designs; Hallmark would do it taste-aware.
112
-
113
- **Why it matters.** Most users come to Hallmark *with* an existing codebase, not a greenfield brief. The skill needs an entry point for the existing case.
114
-
115
- ---
116
-
117
- ## Tier 3 — Long horizon (research-grade, ambitious)
118
-
119
- ### 3.1 `hallmark explain` — pedagogy verb
120
-
121
- A verb that explains the choices made, *axis by axis*, in plain language. "I picked left-margin headings because the brief was editorial and the audience is reading-led; I picked hairline dividers because the tone was austere and ornament would have warmed the page; I picked silent success on the form because the user can see the row was saved." Teaches users to make the same choices themselves over time. The skill becomes a *teacher*, not just a generator.
122
-
123
- ### 3.2 Negative-capability rules
124
-
125
- [PencilPlaybook](https://github.com/stevembarclay/pencilplaybook) embeds *perceptual psychology* in its anti-patterns — not just "don't use side-stripe cards" but "side-stripe cards trigger a horizontal cognitive scan that splits the user's attention from the content; the brain has to process two reading axes at once, which costs ~120ms per card." That's a different kind of teaching.
126
-
127
- Build a `references/why.md` that, for each major anti-pattern, includes the perceptual or cognitive reason it fails. Models that *understand* an anti-pattern reach for the alternative more reliably than models that just *know* the anti-pattern.
128
-
129
- ### 3.3 Emotion-first prompting
130
-
131
- Today: tone words (editorial, brutalist, austere). Tomorrow: emotion words (anxious, optimistic, nostalgic, sceptical). The brief "build me a page that feels nostalgic but also forward-looking" should produce different work than "build me a page that feels confident and warm" — even if the audience and use case are the same.
132
-
133
- This requires a new mapping: emotion → tone → fingerprint. Worth building once the field has converged on what these mappings are. (Currently nobody has mapped them.)
134
-
135
- ### 3.4 Sound and haptic policy
136
-
137
- Currently [`microinteractions.md`](references/microinteractions.md) says "no sound on web" — correct default. But Hallmark could ship a tiny module covering: when sound is appropriate (gaming, AAA brands, accessibility-augmenting); haptic feedback (Vibration API on mobile); and how to do them without crossing into kitsch. Small file; long horizon.
138
-
139
- ### 3.5 Live preview as a Claude Code MCP server
140
-
141
- The most ambitious direction. Today Hallmark writes code into files; the user runs a static server to preview. A Claude Code MCP server could:
142
- - Watch the file
143
- - Render it in a sandbox
144
- - Take a screenshot
145
- - Feed the screenshot back to the model for self-critique against the slop test
146
- - Iterate
147
-
148
- This closes the loop between *generation* and *audit*, automatically. The skill audits itself before handing back. Anthropic's [canvas-design](https://github.com/anthropics/skills) skill is a step toward this for static art; Hallmark could be the interactive equivalent.
149
-
150
- ---
151
-
152
- ## Things to *not* do
153
-
154
- A list of tempting directions that would make Hallmark worse, not better. Forcing the discipline.
155
-
156
- - **Don't add a fifth verb** before the existing four are battle-tested. `default / audit / refine / redesign` is enough surface area for the next six months. Adding `polish / typeset / colorize / animate / ...` (impeccable's path) trades comprehensibility for surface area. Resist.
157
- - **Don't add more than 12 themes.** The cognitive cost of 16 themes is higher than the value of 16 themes. If anything, *cut* underperforming ones.
158
- - **Don't ship a UI library.** Hallmark is a *taste* skill, not a component kit. shadcn/ui and Geist exist; refer users to them. Building components inside Hallmark dilutes the focus.
159
- - **Don't add A/B testing or analytics** to the skill. It's not a SaaS product.
160
- - **Don't build a Figma plugin.** The skill works in code; that's a feature, not a limit. Designers who want Figma have other tools.
161
- - **Don't add prompts to "match a brand"** by URL scraping on the *default* verb. That's SkillUI's job — point users there. **Exception:** `hallmark study` accepts URLs as a source for DNA extraction (read-only; never to clone the surface). The same refusal heuristics that govern image-mode `study` apply — marketplaces, template demos, and disclosed competitors are auto-refused before WebFetch fires.
162
- - **Don't add image generation.** Out of scope; AI imagery is its own problem space, and the right answer is usually "use real photos" or "no image."
163
-
164
- ---
165
-
166
- ## Measurement
167
-
168
- How we know Hallmark is getting better, not just bigger:
169
-
170
- 1. **Slop test pass rate.** Every output should pass all 20 questions. Track failures and categorise.
171
- 2. **Structural-fingerprint diversity.** Across the last 10 outputs of the skill, how many *unique* fingerprints? Target ≥ 8/10.
172
- 3. **Microinteraction tells per output.** Target 0. (`transition-all`, `hover:scale-105`, bouncy easing on UI, etc. are flagged.)
173
- 4. **User picks the first output without revision.** A high "first try" rate is the single best taste indicator. Track it.
174
- 5. **DESIGN.md re-import round-trip.** A user runs `hallmark extract` then `hallmark` with the extracted DESIGN.md in scope. The result should match the original within token boundaries. If it drifts, the extraction or the application is wrong.
175
-
176
- ---
177
-
178
- ## What's already shipped
179
-
180
- For reference. Everything below is in current `0.4.0`.
181
-
182
- - ✓ Skill: 5 verbs (default, audit, refine, redesign, study)
183
- - ✓ References: typography, color, layout-and-space, motion, microinteractions, structure, interaction-and-states, responsive, copy, anti-patterns, macrostructures, component-cookbook, study, hero-enrichment, custom-craft, assets
184
- - ✓ 16 themes with structural fingerprints (including Studio, Pastel, Riso, Quiet)
185
- - ✓ 21 named macrostructures + 36 component archetypes with within-archetype variation knobs
186
- - ✓ Sticky-top banner theme picker with random + ?theme= URL parameter
187
- - ✓ Per-theme component archetype swap (hero + footer rebuild on theme change)
188
- - ✓ Hero enrichment: demo video / mockup / illustration / abstract background, with Lottie demoted to last resort
189
- - ✓ Custom-craft canon: pure CSS art, hand-built SVG, declarative animation, View Transitions, Three.js when justified
190
- - ✓ Asset-source catalogue: Lucide / Phosphor / Heroicons (icons), Simple Icons / SVGL (logos), Nanobanana 2 / Recraft V4 (generated illustration), Storyset / Humaaans (library), Mixkit / Coverr (video), Unsplash / Nappy (photography)
191
- - ✓ Working install path: `cp skill/* ~/.claude/skills/hallmark/`
192
- - ✓ Slop test 33 questions: visual (8), structural (2), microinteractions (10), variety (3), implementation (6), hero enrichment (4)
193
- - ✓ View Transitions on theme switch, with reduced-motion fallback
194
- - ✓ Copy-to-clipboard with silent success on install code blocks
195
- - ✓ Keyboard shortcut (`T` cycle, `Shift+T` reverse, `R` random)
196
-
197
- ---
198
-
199
- ## Deferred
200
-
201
- - **Tier 2.3 — Data-viz / chart canon.** Small multiples, axis restraint, banned types (3D donut, dual-axis), Tufte principles. Mentioned in hero-enrichment.md but full reference not yet written.
@@ -1,186 +0,0 @@
1
- # Recipes — copy-paste prompts that ship Hallmark output
2
-
3
- Eight worked briefs you can paste into Claude Code, Cursor, or Codex with the Hallmark skill installed. Each shows the prompt verbatim, the audience/use/tone the skill inferred, the macrostructure + theme + enrichment it picked, and a one-paragraph excerpt of the output. Live page links are included where the test exists in [`site/_tests/`](../../site/_tests/).
4
-
5
- The first recipe is the **canonical try-it prompt** — paste it into a fresh project to verify the skill is installed and discover the flow before reading anything else.
6
-
7
- ---
8
-
9
- ## 00 · Try it · Coffeebox
10
-
11
- **Prompt** (copy/paste verbatim):
12
-
13
- > *"Build me a landing page for Coffeebox — a small-batch coffee subscription. Roast on Sunday, ship on Monday, drink Tuesday. Audience: people who already buy good coffee and want fewer trips to the shop. Tone: warm, hand-set, editorial — like a small café's chalkboard."*
14
-
15
- **Inferred trio:** explicit (audience: serious-coffee buyers · use: subscribe · tone: editorial-warm).
16
-
17
- **Picks:** Long Document · **Linen** (warm-paper roman-serif) · Tier-B hand-built SVG (a small coffee-bean icon, optional).
18
-
19
- **Excerpt of the output:**
20
-
21
- > *"Coffeebox · est. 2026 · n.º 12.* The first roast leaves the drum at 6:14 a.m. Sunday. By Monday morning it's in a paper bag in your post box. By Tuesday the kitchen smells like a café. Subscribe, skip a week, change the roast — all from the email. We bake what we baked yesterday. We ship what shipped well. We answer the email ourselves."
22
-
23
- **Why this is the canonical try-it:** the brief has explicit context (no design-context-gate friction), an editorial tone (different from any AI-default landing page), and a domain (coffee subscription) that has zero overlap with SaaS/dev-tool clichés. If Hallmark produces *Linen-with-italic-Cormorant-and-warm-paper* for this prompt, the skill is wired correctly.
24
-
25
- ---
26
-
27
- ## 01 · Tide · Indie podcast
28
-
29
- **Prompt:**
30
-
31
- > *"Design a landing page for Tide — an indie podcast about long-form interviews with small-studio designers. Just go ahead, pick the rest yourself."*
32
-
33
- **Inferred trio** (the user opted out): audience = designers, design-curious listeners · use = listen + subscribe · tone = quiet editorial.
34
-
35
- **Picks:** Letter · **Salon** (warm cream paper, IBM Plex Mono masthead, Cormorant Garamond body, warm-amber caret) · no enrichment (typography only).
36
-
37
- **Excerpt:**
38
-
39
- > *"Dear listener, Tide is a podcast about how small studios actually work. The bookings, the unsent invoices, the day a senior designer leaves and you sit in the office not knowing what to say to the four people who stayed."* The hero is the salutation. Below: three paragraphs of host-voice, a sign-off, then a single row of "listen where you listen" links — Apple, Spotify, Pocket Casts, Overcast, RSS. No mockups. No demo. The voice carries the brand.
40
-
41
- **Live:** [`_tests/01-tide-podcast/`](../../site/_tests/01-tide-podcast/index.html)
42
-
43
- ---
44
-
45
- ## 02 · Streampipe · Open-source CLI
46
-
47
- **Prompt:**
48
-
49
- > *"Build me a landing page for Streampipe — a small, fast, single-binary CLI for parsing log and event streams from stdin. Filter, transform, route. Composes with anything that emits lines. Audience: developers. Use: install + read docs. Tone: technical. Use the Terminal theme."*
50
-
51
- **Inferred trio:** explicit. **Theme requested.**
52
-
53
- **Picks:** Long Document · **Terminal** (dark phosphor-green, mono everywhere) · Tier-A inline CSS-art terminal blocks (no Lottie, no real video, no sticky pin — embedded inline in the prose).
54
-
55
- **Excerpt:**
56
-
57
- > *"$ streampipe — a small, fast, single-binary CLI for parsing log and event streams from stdin."* Then a paragraph of prose explaining what it does, an inline `<pre>` showing `tail -f access.log | streampipe parse --format nginx --filter 'status >= 500' --out json` with three sample JSON output lines, then a second paragraph (Rust, 1.2 MB binary, no daemon, no buffer). Below: install section (three snippets — brew · cargo · curl), three numbered notes on how it works, a six-row flag table. Pure CSS, no scripts.
58
-
59
- **Live:** [`_tests/02-streampipe-cli/`](../../site/_tests/02-streampipe-cli/index.html)
60
-
61
- ---
62
-
63
- ## 03 · Maple Street Bread · Artisan bakery
64
-
65
- **Prompt:**
66
-
67
- > *"Build a landing page for Maple Street Bread — a small artisan bakery in Lisbon. Sourdough, slow, by hand. We open at seven, thirty loaves, gone by noon, no online orders. Audience: locals. Use: see what we bake, find us. Tone: warm, hand-set."*
68
-
69
- **Inferred trio:** explicit.
70
-
71
- **Picks:** Catalogue · **Almanac** (warm parchment paper, IM Fell roman-serif display, warm-amber accent) · Tier-A hand-built inline-SVG bread silhouettes (one per item, 96 px, no animation).
72
-
73
- **Excerpt:**
74
-
75
- > Plate-banner masthead: *"Maple Street Bread · Lisbon · est. 2026 · n.º 47 · sourdough by hand."* Then a centred section: *"Today's bake — Saturday, 6:14 a.m., eight breads, gone by noon."* Below: a 2-column catalogue grid of eight breads (Country sourdough · Baguette tradition · Focaccia rosemary · Boule miche · Rye dark · Brioche feuilletée · Walnut levain · Bola d'óleo). Each row carries a 96-px bread silhouette, the name in IM Fell, a one-line description, and a price (or "sold out"). Visit and hours in a centred almanac panel at the bottom. No CTA — the brief is "see what's available + visit."
76
-
77
- **Live:** [`_tests/03-maple-bakery/`](../../site/_tests/03-maple-bakery/index.html)
78
-
79
- ---
80
-
81
- ## 04 · Meridian · Studio manifesto
82
-
83
- **Prompt:**
84
-
85
- > *"A studio manifesto for Meridian — a small environmental-products design practice in Lisbon. Declarative, no flashy stuff."*
86
-
87
- **Inferred trio** (partial): audience = practice peers + clients · use = read it + sign on or move on · tone = declarative editorial.
88
-
89
- **Picks:** Quote-Led · **Brutal** (near-black paper, Druk-style condensed display, single yellow strike accent) · no enrichment.
90
-
91
- **Excerpt:**
92
-
93
- > A single twenty-word pull-quote: *"We make products that don't outlive their use"* — with a yellow strike-through behind "outlive." Attribution beneath: *"— The studio · the position we open with · this is the page."* Below the bleed-yellow rule, four numbered principles (Fewer things, made well · Material is the brief · Repair before replace · Slow is the deliverable), each with one paragraph of body copy. Final § Working rules — five terse operational statements (the shop runs on a four-day week · we answer the email ourselves · etc.). No CTA, no testimonials, no roadmap.
94
-
95
- **Live:** [`_tests/04-meridian-manifesto/`](../../site/_tests/04-meridian-manifesto/index.html)
96
-
97
- ---
98
-
99
- ## 05 · Tracejam · SaaS observability
100
-
101
- **Prompt:**
102
-
103
- > *"Build me a landing page for Tracejam — a tracing/observability tool for distributed systems. Audience: SREs and platform engineers. Use case: try it / contact sales. Tone: technical."*
104
-
105
- **Inferred trio:** explicit.
106
-
107
- **Picks:** Workbench · **Midnight** (dark cool paper, Geist Mono display, phosphor-cyan accent) · Tier-A pure-CSS sticky trace panel (3-state, swaps on scroll — no clipped browser frame).
108
-
109
- **Excerpt:**
110
-
111
- > *"Tracejam · v0.4 · For SREs &amp; platform engineers. Distributed tracing that explains itself."* Hero left-aligned with two CTAs (Try it free / Talk to sales). On the right, a sample trace card with five spans — auth.verify, pricing.quote (red, regressed), rates.fx (orange, warning), ledger.write — bars rendered as flex children. Below: a sticky-walkthrough section with three steps (open · find · read), each with a one-paragraph body and a small `$ tracejam ...` command. The right column carries a pinned trace panel with a "REGRESSED" chip and a "WHY" explainer in plain text. Eight integrations strip, three-tier pricing, single-line colophon.
112
-
113
- **Live:** [`_tests/05-tracejam-saas/`](../../site/_tests/05-tracejam-saas/index.html)
114
-
115
- ---
116
-
117
- ## 06 · Anya · Personal one-pager
118
-
119
- **Prompt:**
120
-
121
- > *"Personal site for Anya — software architect in Lisbon. Don't ask, just figure it out."*
122
-
123
- **Inferred trio** (the user opted out): audience = engineering hiring managers · use = read who I am, see my work · tone = austere, italic-editorial.
124
-
125
- **Picks:** Index-First · **Plain** (pure-white paper #ffffff, Inter Tight display-heavy, deep ink-blue accent) · no enrichment.
126
-
127
- **Excerpt:**
128
-
129
- > Sticky left sidebar with a numbered TOC: *00 Index · 01 Now · 02 Years · 03 Writing · 04 Reach.* Each section in the right column starts with its own num + label and a clamp-set H2. *"00 · Index"* opens with *"A small, scannable index of who I am and what I do."* — followed by a two-paragraph bio. *"01 · Now"* covers consulting two engagements at a time on payment systems and monolith-to-services migrations. *"02 · Years"* is a tabular work history (Stripe → Monzo → Knot → independent). *"03 · Writing"* lists five linked pieces with date columns. *"04 · Reach"* is a four-cell contact grid (email · GitHub · LinkedIn · Mastodon).
130
-
131
- **Live:** [`_tests/06-anya-portfolio/`](../../site/_tests/06-anya-portfolio/index.html)
132
-
133
- ---
134
-
135
- ## 07 · Foundry · Compliance SaaS
136
-
137
- **Prompt:**
138
-
139
- > *"Build me a landing page for Foundry — SOC 2 and ISO 27001 compliance automation for B2B SaaS. Show: how many companies got compliant, what it costs, who uses it. Audience: founders + CTOs. Tone: technical but trustworthy."*
140
-
141
- **Inferred trio:** explicit.
142
-
143
- **Picks:** Bento Grid · **Newsprint** (warm-cream paper, Source Serif 4 display, warm-deep-red accent) · Tier-A pure-CSS logo grid (eight wordmark placeholders, mono).
144
-
145
- **Excerpt:**
146
-
147
- > Newspaper-banner masthead with the wordmark centred. Hero left-bias: *"Compliance, ground out in **days**, not in months."* — the word "days" set in red italic. Right: a pull-quote panel with a CTO testimonial. Below: a 6-tile bento — (1) the "847." anchor stat with a one-line caption, (2) eight customer wordmarks in a 4×2 logo grid, (3) three-tier pricing snippet (Starter $299 · Team $899 popular · Scale custom), (4) a second testimonial pull-quote, (5) a six-row "what's automated" feat-list, (6) a six-question FAQ teaser. Final CTA strip: *"Start the trial. Cancel before the first invoice if it's not ready."* Single-line colophon.
148
-
149
- **Live:** [`_tests/07-foundry-compliance/`](../../site/_tests/07-foundry-compliance/index.html)
150
-
151
- ---
152
-
153
- ## 08 · Cohort · Cohort-based courses
154
-
155
- **Prompt:**
156
-
157
- > *"Build a landing page for Cohort — the platform for cohort-based courses. Run live courses with 30 to 500 students. Built for educators, not LMS sales teams. Audience: course operators + indie creators. Tone: warm, salon-room, editorial."*
158
-
159
- **Inferred trio:** explicit.
160
-
161
- **Picks:** Stat-Led · **Linen** (warm beige paper, Inter Tight geometric-sans, warm-amber accent) · no enrichment (typography only — the brief's "30–500" range is the visual).
162
-
163
- **Excerpt:**
164
-
165
- > Centred eyebrow: *"Built for educators · not LMS sales teams."* Hero stat at 22 rem: **"30 — 500"** (with the dash in warm-amber). Headline: *"Live courses, the size your roster actually is."* Sub: *"Cohort runs courses with thirty to five hundred students at once — the size of a real classroom, the size of a real lecture, and a few sizes between. With a date, a roster, and a room."* Below: three supporting stats (186 cohorts run · 93 % finish-rate · 4.7/5 operator NPS). Two operator testimonials side-by-side. Two-tier pricing (First cohort free · Operator $199/mo). Single CTA strip and colophon. No marquee, no card-stack — the brief carried by the typography.
166
-
167
- **Live:** [`_tests/08-cohort-courses/`](../../site/_tests/08-cohort-courses/index.html)
168
-
169
- ---
170
-
171
- ## How the recipes are organised
172
-
173
- Every recipe shares the same four lines so you can scan a brief and immediately see *which combination Hallmark picks for what*:
174
-
175
- 1. **Prompt** — verbatim, copy/paste-ready.
176
- 2. **Inferred trio** — what the design-context-gate produces (audience · use · tone). Marked `explicit` if the user provided all three; `the user opted out` if not.
177
- 3. **Picks** — macrostructure · theme · enrichment archetype.
178
- 4. **Excerpt** — one paragraph of the produced copy or layout, so you can verify the output matches the brief without running the skill yet.
179
-
180
- When generating something new, look for the closest match in this file and **note what's different** between your brief and the recipe. The macrostructure pick is usually inherited; the theme often shifts (per the diversification rule); enrichment may change tier.
181
-
182
- ## What the recipes are *not*
183
-
184
- - Not templates. Hallmark's whole point is structural variety — duplicating a recipe verbatim is the **Specimen-fall-through** anti-pattern (gate 23 in [`SKILL.md`](../SKILL.md)).
185
- - Not fixed picks. Two consecutive runs of recipe 00 (Coffeebox) on the same project should produce *different* macrostructures or themes — the [`.hallmark/log.json`](../SKILL.md) project memory enforces this.
186
- - Not exhaustive. The 21 macrostructures × 16 themes × 8 enrichment archetypes = 2,688 distinct fingerprints. The 9 recipes here are a starter set; the next 50 are yours to discover.