howone 0.1.20 → 0.1.22

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 (293) hide show
  1. package/package.json +1 -1
  2. package/templates/vite/.howone/skills/hallmark/LICENSE +21 -0
  3. package/templates/vite/.howone/skills/hallmark/README.md +147 -0
  4. package/templates/vite/.howone/skills/hallmark/ROADMAP.md +201 -0
  5. package/templates/vite/.howone/skills/hallmark/SKILL.md +551 -0
  6. package/templates/vite/.howone/skills/hallmark/docs/recipes.md +186 -0
  7. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-anya.jpg +0 -0
  8. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-bananastudio.jpg +0 -0
  9. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-hyperlane.jpg +0 -0
  10. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-najm.jpg +0 -0
  11. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-slow-pour.jpg +0 -0
  12. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-soroe.jpg +0 -0
  13. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-tally.jpg +0 -0
  14. package/templates/vite/.howone/skills/hallmark/docs/screenshots/hero-wayfare.jpg +0 -0
  15. package/templates/vite/.howone/skills/hallmark/docs/study-examples.md +176 -0
  16. package/templates/vite/.howone/skills/hallmark/docs/talk-slides.md +364 -0
  17. package/templates/vite/.howone/skills/hallmark/package.json +36 -0
  18. package/templates/vite/.howone/skills/hallmark/references/anti-patterns.md +412 -0
  19. package/templates/vite/.howone/skills/hallmark/references/assets.md +399 -0
  20. package/templates/vite/.howone/skills/hallmark/references/color.md +95 -0
  21. package/templates/vite/.howone/skills/hallmark/references/component-cookbook.md +256 -0
  22. package/templates/vite/.howone/skills/hallmark/references/components/c1-outlined-chip.md +12 -0
  23. package/templates/vite/.howone/skills/hallmark/references/components/c2-inline-form-as-cta.md +16 -0
  24. package/templates/vite/.howone/skills/hallmark/references/components/c3-typographic-link.md +8 -0
  25. package/templates/vite/.howone/skills/hallmark/references/components/c4-sticky-bottom-bar.md +16 -0
  26. package/templates/vite/.howone/skills/hallmark/references/components/f1-bento-grid.md +20 -0
  27. package/templates/vite/.howone/skills/hallmark/references/components/f2-sticky-scroll-stack.md +20 -0
  28. package/templates/vite/.howone/skills/hallmark/references/components/f3-tabular-spec-sheet.md +11 -0
  29. package/templates/vite/.howone/skills/hallmark/references/components/f4-step-sequence.md +11 -0
  30. package/templates/vite/.howone/skills/hallmark/references/components/f5-annotated-screenshot.md +11 -0
  31. package/templates/vite/.howone/skills/hallmark/references/components/f6-product-card-grid.md +41 -0
  32. package/templates/vite/.howone/skills/hallmark/references/components/ft1-mast-headed.md +13 -0
  33. package/templates/vite/.howone/skills/hallmark/references/components/ft2-inline-rule-single-line.md +10 -0
  34. package/templates/vite/.howone/skills/hallmark/references/components/ft3-index-style-category-list.md +12 -0
  35. package/templates/vite/.howone/skills/hallmark/references/components/ft4-dense-typographic.md +10 -0
  36. package/templates/vite/.howone/skills/hallmark/references/components/ft5-statement.md +21 -0
  37. package/templates/vite/.howone/skills/hallmark/references/components/ft6-letter-close.md +19 -0
  38. package/templates/vite/.howone/skills/hallmark/references/components/ft7-newsletter-first.md +27 -0
  39. package/templates/vite/.howone/skills/hallmark/references/components/ft8-marquee-scroll.md +25 -0
  40. package/templates/vite/.howone/skills/hallmark/references/components/h1-marquee.md +15 -0
  41. package/templates/vite/.howone/skills/hallmark/references/components/h2-split-diptych.md +15 -0
  42. package/templates/vite/.howone/skills/hallmark/references/components/h3-quote-led.md +11 -0
  43. package/templates/vite/.howone/skills/hallmark/references/components/h4-stat-led.md +14 -0
  44. package/templates/vite/.howone/skills/hallmark/references/components/h5-letter-hero.md +11 -0
  45. package/templates/vite/.howone/skills/hallmark/references/components/h6-photographic-fold.md +16 -0
  46. package/templates/vite/.howone/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +27 -0
  47. package/templates/vite/.howone/skills/hallmark/references/components/h8-mockup-split-browser-framed.md +23 -0
  48. package/templates/vite/.howone/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +27 -0
  49. package/templates/vite/.howone/skills/hallmark/references/components/n1-wordmark-2-links.md +12 -0
  50. package/templates/vite/.howone/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +19 -0
  51. package/templates/vite/.howone/skills/hallmark/references/components/n2-floating-chip.md +14 -0
  52. package/templates/vite/.howone/skills/hallmark/references/components/n3-side-rail.md +14 -0
  53. package/templates/vite/.howone/skills/hallmark/references/components/n4-hidden-behind-k.md +9 -0
  54. package/templates/vite/.howone/skills/hallmark/references/components/n5-floating-pill.md +28 -0
  55. package/templates/vite/.howone/skills/hallmark/references/components/n6-newspaper-masthead.md +24 -0
  56. package/templates/vite/.howone/skills/hallmark/references/components/n7-brutal-slab.md +22 -0
  57. package/templates/vite/.howone/skills/hallmark/references/components/n8-terminal-command.md +21 -0
  58. package/templates/vite/.howone/skills/hallmark/references/components/n9-edge-aligned-minimal.md +17 -0
  59. package/templates/vite/.howone/skills/hallmark/references/components/s1-left-margin-numbered.md +15 -0
  60. package/templates/vite/.howone/skills/hallmark/references/components/s2-hanging.md +13 -0
  61. package/templates/vite/.howone/skills/hallmark/references/components/s3-sticky-pinned.md +19 -0
  62. package/templates/vite/.howone/skills/hallmark/references/components/s4-inline-no-break.md +11 -0
  63. package/templates/vite/.howone/skills/hallmark/references/components/s5-bottom-anchored.md +13 -0
  64. package/templates/vite/.howone/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md +12 -0
  65. package/templates/vite/.howone/skills/hallmark/references/components/t2-logo-wall-hairline.md +19 -0
  66. package/templates/vite/.howone/skills/hallmark/references/components/t3-single-huge-quote.md +11 -0
  67. package/templates/vite/.howone/skills/hallmark/references/components/t4-numbered-stat-strip.md +14 -0
  68. package/templates/vite/.howone/skills/hallmark/references/contract.md +24 -0
  69. package/templates/vite/.howone/skills/hallmark/references/copy.md +182 -0
  70. package/templates/vite/.howone/skills/hallmark/references/custom-craft.md +626 -0
  71. package/templates/vite/.howone/skills/hallmark/references/custom-theme.md +329 -0
  72. package/templates/vite/.howone/skills/hallmark/references/design-md.md +116 -0
  73. package/templates/vite/.howone/skills/hallmark/references/export-formats.md +328 -0
  74. package/templates/vite/.howone/skills/hallmark/references/floating-nav.md +89 -0
  75. package/templates/vite/.howone/skills/hallmark/references/genres/atmospheric.md +65 -0
  76. package/templates/vite/.howone/skills/hallmark/references/genres/editorial.md +70 -0
  77. package/templates/vite/.howone/skills/hallmark/references/genres/modern-minimal.md +67 -0
  78. package/templates/vite/.howone/skills/hallmark/references/genres/playful.md +65 -0
  79. package/templates/vite/.howone/skills/hallmark/references/hero-enrichment.md +474 -0
  80. package/templates/vite/.howone/skills/hallmark/references/imagery-kit.md +170 -0
  81. package/templates/vite/.howone/skills/hallmark/references/interaction-and-states.md +207 -0
  82. package/templates/vite/.howone/skills/hallmark/references/layout-and-space.md +111 -0
  83. package/templates/vite/.howone/skills/hallmark/references/macrostructures/01-bento-grid.md +35 -0
  84. package/templates/vite/.howone/skills/hallmark/references/macrostructures/02-long-document.md +34 -0
  85. package/templates/vite/.howone/skills/hallmark/references/macrostructures/03-marquee-hero.md +31 -0
  86. package/templates/vite/.howone/skills/hallmark/references/macrostructures/04-stat-led.md +32 -0
  87. package/templates/vite/.howone/skills/hallmark/references/macrostructures/05-workbench.md +32 -0
  88. package/templates/vite/.howone/skills/hallmark/references/macrostructures/06-conversational-faq.md +33 -0
  89. package/templates/vite/.howone/skills/hallmark/references/macrostructures/07-manifesto.md +32 -0
  90. package/templates/vite/.howone/skills/hallmark/references/macrostructures/08-photographic.md +34 -0
  91. package/templates/vite/.howone/skills/hallmark/references/macrostructures/09-quote-led.md +32 -0
  92. package/templates/vite/.howone/skills/hallmark/references/macrostructures/10-specimen.md +32 -0
  93. package/templates/vite/.howone/skills/hallmark/references/macrostructures/11-catalogue.md +23 -0
  94. package/templates/vite/.howone/skills/hallmark/references/macrostructures/12-letter.md +23 -0
  95. package/templates/vite/.howone/skills/hallmark/references/macrostructures/13-index-first.md +23 -0
  96. package/templates/vite/.howone/skills/hallmark/references/macrostructures/14-narrative-workflow.md +23 -0
  97. package/templates/vite/.howone/skills/hallmark/references/macrostructures/15-split-studio.md +23 -0
  98. package/templates/vite/.howone/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -0
  99. package/templates/vite/.howone/skills/hallmark/references/macrostructures/17-type-specimen.md +23 -0
  100. package/templates/vite/.howone/skills/hallmark/references/macrostructures/18-portfolio-grid.md +23 -0
  101. package/templates/vite/.howone/skills/hallmark/references/macrostructures/19-map-diagram.md +23 -0
  102. package/templates/vite/.howone/skills/hallmark/references/macrostructures/20-ecosystem-index.md +23 -0
  103. package/templates/vite/.howone/skills/hallmark/references/macrostructures/21-component-playground.md +23 -0
  104. package/templates/vite/.howone/skills/hallmark/references/macrostructures.md +89 -0
  105. package/templates/vite/.howone/skills/hallmark/references/microinteractions.md +260 -0
  106. package/templates/vite/.howone/skills/hallmark/references/motion.md +109 -0
  107. package/templates/vite/.howone/skills/hallmark/references/preview-examples.md +49 -0
  108. package/templates/vite/.howone/skills/hallmark/references/responsive.md +138 -0
  109. package/templates/vite/.howone/skills/hallmark/references/slop-test.md +205 -0
  110. package/templates/vite/.howone/skills/hallmark/references/structure.md +164 -0
  111. package/templates/vite/.howone/skills/hallmark/references/study.md +486 -0
  112. package/templates/vite/.howone/skills/hallmark/references/typography.md +243 -0
  113. package/templates/vite/.howone/skills/hallmark/references/verbs/audit.md +25 -0
  114. package/templates/vite/.howone/skills/hallmark/references/verbs/redesign.md +269 -0
  115. package/templates/vite/.howone/skills/hallmark/site/OG-hallmark.png +0 -0
  116. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/brief.md +71 -0
  117. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/index.html +64 -0
  118. package/templates/vite/.howone/skills/hallmark/site/_tests/01-tide-podcast/style.css +240 -0
  119. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/brief.md +65 -0
  120. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/index.html +105 -0
  121. package/templates/vite/.howone/skills/hallmark/site/_tests/02-streampipe-cli/style.css +250 -0
  122. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/brief.md +64 -0
  123. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/index.html +131 -0
  124. package/templates/vite/.howone/skills/hallmark/site/_tests/03-maple-bakery/style.css +240 -0
  125. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/brief.md +67 -0
  126. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/index.html +86 -0
  127. package/templates/vite/.howone/skills/hallmark/site/_tests/04-meridian-manifesto/style.css +262 -0
  128. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/brief.md +63 -0
  129. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/index.html +167 -0
  130. package/templates/vite/.howone/skills/hallmark/site/_tests/05-tracejam-saas/style.css +457 -0
  131. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/brief.md +65 -0
  132. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/index.html +159 -0
  133. package/templates/vite/.howone/skills/hallmark/site/_tests/06-anya-portfolio/style.css +288 -0
  134. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/brief.md +64 -0
  135. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/index.html +146 -0
  136. package/templates/vite/.howone/skills/hallmark/site/_tests/07-foundry-compliance/style.css +484 -0
  137. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/brief.md +64 -0
  138. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/index.html +116 -0
  139. package/templates/vite/.howone/skills/hallmark/site/_tests/08-cohort-courses/style.css +354 -0
  140. package/templates/vite/.howone/skills/hallmark/site/_tests/09-slow-pour/index.html +638 -0
  141. package/templates/vite/.howone/skills/hallmark/site/_tests/10-owl-hours/index.html +515 -0
  142. package/templates/vite/.howone/skills/hallmark/site/_tests/11-soroe-ceramics/index.html +515 -0
  143. package/templates/vite/.howone/skills/hallmark/site/_tests/12-loafer/index.html +608 -0
  144. package/templates/vite/.howone/skills/hallmark/site/_tests/13-alma/index.html +587 -0
  145. package/templates/vite/.howone/skills/hallmark/site/_tests/README.md +157 -0
  146. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-loop.mp4 +0 -0
  147. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/BananaStudio-still.jpg +0 -0
  148. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-example.mp4 +0 -0
  149. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Hyperlane-still.jpg +0 -0
  150. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-loop.mp4 +0 -0
  151. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Najm-still.jpg +0 -0
  152. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Podcast-loop.mp4 +0 -0
  153. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-loop.mp4 +0 -0
  154. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/SaaS-still.jpg +0 -0
  155. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-loop.mp4 +0 -0
  156. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/Soroe-still.jpg +0 -0
  157. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/after-quiet-hour.png +0 -0
  158. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-loop.mp4 +0 -0
  159. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/anya-still.jpg +0 -0
  160. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/audit-example.png +0 -0
  161. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/before-quiet-hour.png +0 -0
  162. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/example-redesign-uractivation.png +0 -0
  163. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-loop.mp4 +0 -0
  164. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/slow-pour-still.jpg +0 -0
  165. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/study-example.png +0 -0
  166. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/uractivation-after-loop.mp4 +0 -0
  167. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-loop.mp4 +0 -0
  168. package/templates/vite/.howone/skills/hallmark/site/_tests/_thumbs/wayfare-still.jpg +0 -0
  169. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/index.html +77 -0
  170. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/01-coffeebox/style.css +238 -0
  171. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/index.html +110 -0
  172. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/02-loop/style.css +326 -0
  173. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/index.html +134 -0
  174. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/03-mossroot/style.css +262 -0
  175. package/templates/vite/.howone/skills/hallmark/site/_tests/custom/README.md +30 -0
  176. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/README.md +17 -0
  177. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/audit-report.md +56 -0
  178. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/input.html +160 -0
  179. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/audit/notes.md +29 -0
  180. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/input.html +63 -0
  181. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/notes.md +72 -0
  182. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/redesign/output.html +374 -0
  183. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/diagnosis.md +52 -0
  184. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/input-description.md +29 -0
  185. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/notes.md +61 -0
  186. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.css +193 -0
  187. package/templates/vite/.howone/skills/hallmark/site/_tests/verbs/study/output.html +66 -0
  188. package/templates/vite/.howone/skills/hallmark/site/css/base.css +194 -0
  189. package/templates/vite/.howone/skills/hallmark/site/css/components.css +4886 -0
  190. package/templates/vite/.howone/skills/hallmark/site/css/sections.css +2072 -0
  191. package/templates/vite/.howone/skills/hallmark/site/css/tokens.css +1129 -0
  192. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/index.html +475 -0
  193. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/styles.css +1584 -0
  194. package/templates/vite/.howone/skills/hallmark/site/examples/bananastudio/tokens.css +96 -0
  195. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/index.html +344 -0
  196. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/script.js +103 -0
  197. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/styles.css +1103 -0
  198. package/templates/vite/.howone/skills/hallmark/site/examples/hyperlane/tokens.css +83 -0
  199. package/templates/vite/.howone/skills/hallmark/site/examples/najm/index.html +368 -0
  200. package/templates/vite/.howone/skills/hallmark/site/examples/najm/script.js +133 -0
  201. package/templates/vite/.howone/skills/hallmark/site/examples/najm/styles.css +1062 -0
  202. package/templates/vite/.howone/skills/hallmark/site/examples/najm/tokens.css +97 -0
  203. package/templates/vite/.howone/skills/hallmark/site/examples/tally/app.js +84 -0
  204. package/templates/vite/.howone/skills/hallmark/site/examples/tally/index.html +446 -0
  205. package/templates/vite/.howone/skills/hallmark/site/examples/tally/styles.css +1087 -0
  206. package/templates/vite/.howone/skills/hallmark/site/examples/tally/tokens.css +101 -0
  207. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/index.html +359 -0
  208. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/style.css +1168 -0
  209. package/templates/vite/.howone/skills/hallmark/site/examples/wayfare/tokens.css +81 -0
  210. package/templates/vite/.howone/skills/hallmark/site/favicon-dark.svg +5 -0
  211. package/templates/vite/.howone/skills/hallmark/site/favicon-light.svg +5 -0
  212. package/templates/vite/.howone/skills/hallmark/site/index.html +1043 -0
  213. package/templates/vite/.howone/skills/hallmark/site/js/main.js +1175 -0
  214. package/templates/vite/.howone/skills/hallmark/vercel.json +6 -0
  215. package/templates/vite/.howone/skills/howone-sdk/01-architect/01-app-generation.md +101 -0
  216. package/templates/vite/.howone/skills/howone-sdk/02-database/01-schema-design.md +147 -0
  217. package/templates/vite/.howone/skills/howone-sdk/02-database/02-schema-operations.md +96 -0
  218. package/templates/vite/.howone/skills/howone-sdk/02-database/03-data-access-patterns.md +172 -0
  219. package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/01-client-setup.md +3 -3
  220. package/templates/vite/.howone/skills/howone-sdk/{references/04-auth.md → 03-sdk/03-auth.md} +120 -3
  221. package/templates/vite/.howone/skills/howone-sdk/04-ai/.gitkeep +1 -0
  222. package/templates/vite/.howone/skills/howone-sdk/SKILL.md +67 -93
  223. package/templates/vite/.howone/skills/howone-sdk/agents/openai.yaml +3 -3
  224. package/templates/vite/.howone/skills/impeccable/SKILL.md +168 -0
  225. package/templates/vite/.howone/skills/impeccable/agents/impeccable-asset-producer.md +101 -0
  226. package/templates/vite/.howone/skills/impeccable/reference/adapt.md +190 -0
  227. package/templates/vite/.howone/skills/impeccable/reference/animate.md +175 -0
  228. package/templates/vite/.howone/skills/impeccable/reference/audit.md +133 -0
  229. package/templates/vite/.howone/skills/impeccable/reference/bolder.md +113 -0
  230. package/templates/vite/.howone/skills/impeccable/reference/brand.md +118 -0
  231. package/templates/vite/.howone/skills/impeccable/reference/clarify.md +174 -0
  232. package/templates/vite/.howone/skills/impeccable/reference/codex.md +105 -0
  233. package/templates/vite/.howone/skills/impeccable/reference/cognitive-load.md +106 -0
  234. package/templates/vite/.howone/skills/impeccable/reference/color-and-contrast.md +105 -0
  235. package/templates/vite/.howone/skills/impeccable/reference/colorize.md +154 -0
  236. package/templates/vite/.howone/skills/impeccable/reference/craft.md +123 -0
  237. package/templates/vite/.howone/skills/impeccable/reference/critique.md +273 -0
  238. package/templates/vite/.howone/skills/impeccable/reference/delight.md +302 -0
  239. package/templates/vite/.howone/skills/impeccable/reference/distill.md +111 -0
  240. package/templates/vite/.howone/skills/impeccable/reference/document.md +427 -0
  241. package/templates/vite/.howone/skills/impeccable/reference/extract.md +69 -0
  242. package/templates/vite/.howone/skills/impeccable/reference/harden.md +347 -0
  243. package/templates/vite/.howone/skills/impeccable/reference/heuristics-scoring.md +234 -0
  244. package/templates/vite/.howone/skills/impeccable/reference/interaction-design.md +195 -0
  245. package/templates/vite/.howone/skills/impeccable/reference/layout.md +141 -0
  246. package/templates/vite/.howone/skills/impeccable/reference/live.md +622 -0
  247. package/templates/vite/.howone/skills/impeccable/reference/motion-design.md +109 -0
  248. package/templates/vite/.howone/skills/impeccable/reference/onboard.md +234 -0
  249. package/templates/vite/.howone/skills/impeccable/reference/optimize.md +258 -0
  250. package/templates/vite/.howone/skills/impeccable/reference/overdrive.md +130 -0
  251. package/templates/vite/.howone/skills/impeccable/reference/personas.md +179 -0
  252. package/templates/vite/.howone/skills/impeccable/reference/polish.md +242 -0
  253. package/templates/vite/.howone/skills/impeccable/reference/product.md +62 -0
  254. package/templates/vite/.howone/skills/impeccable/reference/quieter.md +99 -0
  255. package/templates/vite/.howone/skills/impeccable/reference/responsive-design.md +114 -0
  256. package/templates/vite/.howone/skills/impeccable/reference/shape.md +165 -0
  257. package/templates/vite/.howone/skills/impeccable/reference/spatial-design.md +100 -0
  258. package/templates/vite/.howone/skills/impeccable/reference/teach.md +156 -0
  259. package/templates/vite/.howone/skills/impeccable/reference/typeset.md +124 -0
  260. package/templates/vite/.howone/skills/impeccable/reference/typography.md +159 -0
  261. package/templates/vite/.howone/skills/impeccable/reference/ux-writing.md +107 -0
  262. package/templates/vite/.howone/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  263. package/templates/vite/.howone/skills/impeccable/scripts/command-metadata.json +94 -0
  264. package/templates/vite/.howone/skills/impeccable/scripts/critique-storage.mjs +242 -0
  265. package/templates/vite/.howone/skills/impeccable/scripts/design-parser.mjs +820 -0
  266. package/templates/vite/.howone/skills/impeccable/scripts/detect-csp.mjs +198 -0
  267. package/templates/vite/.howone/skills/impeccable/scripts/detect.mjs +21 -0
  268. package/templates/vite/.howone/skills/impeccable/scripts/impeccable-paths.mjs +110 -0
  269. package/templates/vite/.howone/skills/impeccable/scripts/is-generated.mjs +69 -0
  270. package/templates/vite/.howone/skills/impeccable/scripts/live-accept.mjs +595 -0
  271. package/templates/vite/.howone/skills/impeccable/scripts/live-browser-session.js +123 -0
  272. package/templates/vite/.howone/skills/impeccable/scripts/live-browser.js +4860 -0
  273. package/templates/vite/.howone/skills/impeccable/scripts/live-complete.mjs +75 -0
  274. package/templates/vite/.howone/skills/impeccable/scripts/live-completion.mjs +18 -0
  275. package/templates/vite/.howone/skills/impeccable/scripts/live-inject.mjs +446 -0
  276. package/templates/vite/.howone/skills/impeccable/scripts/live-poll.mjs +200 -0
  277. package/templates/vite/.howone/skills/impeccable/scripts/live-resume.mjs +48 -0
  278. package/templates/vite/.howone/skills/impeccable/scripts/live-server.mjs +838 -0
  279. package/templates/vite/.howone/skills/impeccable/scripts/live-session-store.mjs +254 -0
  280. package/templates/vite/.howone/skills/impeccable/scripts/live-status.mjs +47 -0
  281. package/templates/vite/.howone/skills/impeccable/scripts/live-wrap.mjs +632 -0
  282. package/templates/vite/.howone/skills/impeccable/scripts/live.mjs +247 -0
  283. package/templates/vite/.howone/skills/impeccable/scripts/load-context.mjs +141 -0
  284. package/templates/vite/.howone/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  285. package/templates/vite/.howone/skills/impeccable/scripts/pin.mjs +214 -0
  286. package/templates/vite/AGENTS.md +2 -12
  287. package/templates/vite/package.json +1 -1
  288. /package/templates/vite/.howone/skills/howone-sdk/{references/08-manifest-codegen.md → 01-architect/02-manifest-codegen.md} +0 -0
  289. /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/02-entity-operations.md +0 -0
  290. /package/templates/vite/.howone/skills/howone-sdk/{references/06-react-integration.md → 03-sdk/04-react-integration.md} +0 -0
  291. /package/templates/vite/.howone/skills/howone-sdk/{references → 03-sdk}/05-file-upload.md +0 -0
  292. /package/templates/vite/.howone/skills/howone-sdk/{references/07-raw-http.md → 03-sdk/06-raw-http.md} +0 -0
  293. /package/templates/vite/.howone/skills/howone-sdk/{references/03-ai-actions.md → 03-sdk/07-ai-action-calls.md} +0 -0
@@ -0,0 +1,457 @@
1
+ /* Hallmark · macrostructure: Workbench · F2 sticky-scroll knobs: pinned=right, content=trace-panel, steps=3
2
+ * theme: Midnight · accent: phosphor-cyan ~3% · enrichment: tier-A CSS-art trace panel (sticky-pinned, 3-state)
3
+ * studied: no · context: explicit · v0.6.0
4
+ */
5
+
6
+ :root {
7
+ --color-paper: oklch(15% 0.012 240);
8
+ --color-paper-2: oklch(19% 0.014 240);
9
+ --color-paper-3: oklch(23% 0.014 240);
10
+ --color-rule: oklch(30% 0.012 240);
11
+ --color-ink: oklch(94% 0.010 240);
12
+ --color-ink-soft: oklch(70% 0.012 240);
13
+ --color-ink-muted: oklch(55% 0.012 240);
14
+ --color-accent: oklch(82% 0.18 200);
15
+ --color-accent-dim: oklch(58% 0.13 200);
16
+ --color-warn: oklch(78% 0.16 50);
17
+ --color-error: oklch(68% 0.20 30);
18
+
19
+ --font-display: "Geist Mono", "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;
20
+ --font-body: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
21
+
22
+ --space-3xs: 0.25rem;
23
+ --space-2xs: 0.5rem;
24
+ --space-xs: 0.75rem;
25
+ --space-sm: 1rem;
26
+ --space-md: 1.5rem;
27
+ --space-lg: 2rem;
28
+ --space-xl: 3rem;
29
+ --space-2xl: 4.5rem;
30
+ --space-3xl: 6.5rem;
31
+ --space-4xl: 9rem;
32
+
33
+ --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
34
+ --dur-micro: 100ms;
35
+ --dur-short: 200ms;
36
+ }
37
+
38
+ * { box-sizing: border-box; }
39
+ html, body { overflow-x: clip; }
40
+
41
+ body {
42
+ margin: 0;
43
+ background: var(--color-paper);
44
+ color: var(--color-ink);
45
+ font-family: var(--font-body);
46
+ font-size: 0.9375rem;
47
+ line-height: 1.55;
48
+ -webkit-font-smoothing: antialiased;
49
+ }
50
+
51
+ .page { max-width: 80rem; margin: 0 auto; padding: 0 var(--space-lg); }
52
+
53
+ /* Masthead */
54
+ .masthead {
55
+ display: flex;
56
+ justify-content: space-between;
57
+ align-items: center;
58
+ padding: var(--space-md) 0;
59
+ border-block-end: 1px solid var(--color-rule);
60
+ font-family: var(--font-display);
61
+ font-size: 0.8125rem;
62
+ letter-spacing: 0.04em;
63
+ color: var(--color-ink-soft);
64
+ }
65
+
66
+ .masthead__brand { color: var(--color-ink); font-weight: 500; }
67
+ .masthead__brand .dot {
68
+ display: inline-block;
69
+ width: 0.55ch;
70
+ height: 0.55ch;
71
+ background: var(--color-accent);
72
+ border-radius: 50%;
73
+ margin-inline-end: 0.5ch;
74
+ vertical-align: 0.1em;
75
+ }
76
+
77
+ .masthead__nav { display: flex; gap: var(--space-md); }
78
+ .masthead__nav a {
79
+ color: var(--color-ink-soft);
80
+ text-decoration: none;
81
+ transition: color var(--dur-micro) var(--ease-out);
82
+ }
83
+ .masthead__nav a:hover, .masthead__nav a:focus-visible { color: var(--color-ink); }
84
+ .masthead__nav a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
85
+
86
+ /* Hero */
87
+ .hero {
88
+ padding: var(--space-3xl) 0 var(--space-2xl);
89
+ display: grid;
90
+ grid-template-columns: 1fr 1fr;
91
+ gap: var(--space-2xl);
92
+ align-items: end;
93
+ border-block-end: 1px solid var(--color-rule);
94
+ }
95
+
96
+ .hero__copy { max-width: 36rem; }
97
+
98
+ .hero__eyebrow {
99
+ font-family: var(--font-display);
100
+ font-size: 0.75rem;
101
+ letter-spacing: 0.12em;
102
+ text-transform: uppercase;
103
+ color: var(--color-accent);
104
+ margin: 0 0 var(--space-md);
105
+ }
106
+
107
+ .hero__head {
108
+ font-family: var(--font-display);
109
+ font-size: clamp(2rem, 4.5vw, 3.75rem);
110
+ font-weight: 500;
111
+ line-height: 1.05;
112
+ letter-spacing: -0.025em;
113
+ margin: 0 0 var(--space-md);
114
+ color: var(--color-ink);
115
+ }
116
+
117
+ .hero__head em {
118
+ font-style: normal;
119
+ color: var(--color-accent);
120
+ }
121
+
122
+ .hero__sub {
123
+ font-size: 1.0625rem;
124
+ line-height: 1.5;
125
+ color: var(--color-ink-soft);
126
+ margin: 0 0 var(--space-lg);
127
+ max-width: 56ch;
128
+ }
129
+
130
+ .hero__cta { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
131
+
132
+ .btn {
133
+ display: inline-flex;
134
+ align-items: center;
135
+ gap: 0.5ch;
136
+ padding: var(--space-sm) var(--space-md);
137
+ font-family: var(--font-display);
138
+ font-size: 0.875rem;
139
+ font-weight: 500;
140
+ letter-spacing: 0.02em;
141
+ text-decoration: none;
142
+ border: 1px solid var(--color-rule);
143
+ background: transparent;
144
+ color: var(--color-ink);
145
+ cursor: pointer;
146
+ line-height: 1;
147
+ transition: background var(--dur-micro) var(--ease-out),
148
+ border-color var(--dur-micro) var(--ease-out),
149
+ color var(--dur-micro) var(--ease-out);
150
+ }
151
+ .btn--primary {
152
+ background: var(--color-accent);
153
+ color: var(--color-paper);
154
+ border-color: var(--color-accent);
155
+ }
156
+ .btn--primary:hover, .btn--primary:focus-visible {
157
+ background: var(--color-ink);
158
+ border-color: var(--color-ink);
159
+ }
160
+ .btn:hover, .btn:focus-visible { border-color: var(--color-accent); color: var(--color-accent); }
161
+ .btn--primary:hover, .btn--primary:focus-visible { color: var(--color-paper); }
162
+ .btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
163
+
164
+ /* Hero — sample trace card on the right */
165
+ .hero__panel {
166
+ background: var(--color-paper-2);
167
+ border: 1px solid var(--color-rule);
168
+ border-radius: 6px;
169
+ padding: var(--space-md);
170
+ font-family: var(--font-display);
171
+ font-size: 0.75rem;
172
+ line-height: 1.5;
173
+ }
174
+
175
+ .hero__panel-head {
176
+ display: flex; justify-content: space-between;
177
+ color: var(--color-ink-soft);
178
+ letter-spacing: 0.04em;
179
+ border-block-end: 1px solid var(--color-rule);
180
+ padding-block-end: var(--space-2xs);
181
+ margin-block-end: var(--space-sm);
182
+ }
183
+
184
+ .trace { display: grid; gap: 4px; }
185
+ .span {
186
+ display: grid;
187
+ grid-template-columns: 14ch 1fr 6ch;
188
+ gap: var(--space-2xs);
189
+ align-items: center;
190
+ }
191
+ .span__label { color: var(--color-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
192
+ .span__bar {
193
+ height: 8px;
194
+ background: var(--color-paper-3);
195
+ position: relative;
196
+ border-radius: 1px;
197
+ }
198
+ .span__bar::after {
199
+ content: "";
200
+ position: absolute;
201
+ inset-block: 0;
202
+ background: var(--color-accent);
203
+ border-radius: 1px;
204
+ }
205
+ .span--err .span__bar::after { background: var(--color-error); }
206
+ .span--warn .span__bar::after { background: var(--color-warn); }
207
+ .span__time { font-variant-numeric: tabular-nums; color: var(--color-ink-soft); text-align: end; }
208
+
209
+ /* Workbench — sticky steps + pinned panel */
210
+ .workbench {
211
+ display: grid;
212
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
213
+ gap: var(--space-2xl);
214
+ padding: var(--space-3xl) 0;
215
+ border-block-end: 1px solid var(--color-rule);
216
+ }
217
+
218
+ .steps { display: grid; gap: var(--space-3xl); }
219
+
220
+ .step {
221
+ border-inline-start: 2px solid var(--color-rule);
222
+ padding-inline-start: var(--space-lg);
223
+ position: relative;
224
+ }
225
+
226
+ .step::before {
227
+ content: "";
228
+ position: absolute;
229
+ inset-inline-start: -2px;
230
+ inset-block-start: 0;
231
+ width: 2px;
232
+ height: 0;
233
+ background: var(--color-accent);
234
+ transition: height var(--dur-short) var(--ease-out);
235
+ }
236
+
237
+ .step:hover::before, .step:focus-within::before { height: 100%; }
238
+
239
+ .step__num {
240
+ font-family: var(--font-display);
241
+ font-size: 0.75rem;
242
+ letter-spacing: 0.12em;
243
+ color: var(--color-accent);
244
+ text-transform: uppercase;
245
+ margin-block-end: var(--space-sm);
246
+ }
247
+
248
+ .step__head {
249
+ font-family: var(--font-display);
250
+ font-size: clamp(1.5rem, 2.5vw, 2rem);
251
+ font-weight: 500;
252
+ letter-spacing: -0.015em;
253
+ line-height: 1.1;
254
+ color: var(--color-ink);
255
+ margin: 0 0 var(--space-md);
256
+ }
257
+
258
+ .step__body {
259
+ font-size: 1rem;
260
+ line-height: 1.6;
261
+ color: var(--color-ink-soft);
262
+ margin: 0 0 var(--space-md);
263
+ max-width: 48ch;
264
+ }
265
+
266
+ .step__body strong { color: var(--color-ink); font-weight: 500; }
267
+
268
+ .step__code {
269
+ background: var(--color-paper-2);
270
+ border: 1px solid var(--color-rule);
271
+ border-radius: 4px;
272
+ padding: var(--space-sm) var(--space-md);
273
+ font-family: var(--font-display);
274
+ font-size: 0.8125rem;
275
+ line-height: 1.6;
276
+ color: var(--color-ink);
277
+ overflow-x: auto;
278
+ }
279
+
280
+ .step__code .k { color: var(--color-accent); }
281
+ .step__code .c { color: var(--color-ink-muted); }
282
+ .step__code .s { color: var(--color-warn); }
283
+
284
+ .pinned {
285
+ position: sticky;
286
+ top: var(--space-xl);
287
+ height: fit-content;
288
+ background: var(--color-paper-2);
289
+ border: 1px solid var(--color-rule);
290
+ border-radius: 6px;
291
+ padding: var(--space-lg);
292
+ }
293
+
294
+ .pinned__head {
295
+ display: flex;
296
+ justify-content: space-between;
297
+ align-items: center;
298
+ font-family: var(--font-display);
299
+ font-size: 0.75rem;
300
+ letter-spacing: 0.06em;
301
+ color: var(--color-ink-soft);
302
+ border-block-end: 1px solid var(--color-rule);
303
+ padding-block-end: var(--space-sm);
304
+ margin-block-end: var(--space-md);
305
+ }
306
+
307
+ .pinned__chip {
308
+ font-family: var(--font-display);
309
+ font-size: 0.6875rem;
310
+ letter-spacing: 0.08em;
311
+ padding: 2px 6px;
312
+ border: 1px solid var(--color-accent);
313
+ color: var(--color-accent);
314
+ border-radius: 2px;
315
+ }
316
+
317
+ .pinned__body { display: grid; gap: 4px; font-family: var(--font-display); font-size: 0.75rem; }
318
+
319
+ .pinned__why {
320
+ margin-block-start: var(--space-md);
321
+ padding-block-start: var(--space-md);
322
+ border-block-start: 1px solid var(--color-rule);
323
+ font-family: var(--font-body);
324
+ font-size: 0.875rem;
325
+ color: var(--color-ink-soft);
326
+ line-height: 1.5;
327
+ }
328
+
329
+ .pinned__why strong { color: var(--color-error); font-weight: 500; }
330
+
331
+ /* Integrations strip */
332
+ .integrations {
333
+ padding: var(--space-2xl) 0;
334
+ border-block-end: 1px solid var(--color-rule);
335
+ }
336
+
337
+ .integrations__head {
338
+ font-family: var(--font-display);
339
+ font-size: 0.75rem;
340
+ letter-spacing: 0.12em;
341
+ text-transform: uppercase;
342
+ color: var(--color-ink-soft);
343
+ margin: 0 0 var(--space-lg);
344
+ }
345
+
346
+ .integrations__grid {
347
+ display: grid;
348
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
349
+ gap: var(--space-md);
350
+ list-style: none;
351
+ padding: 0;
352
+ margin: 0;
353
+ }
354
+
355
+ .integrations__grid li {
356
+ font-family: var(--font-display);
357
+ font-size: 0.875rem;
358
+ color: var(--color-ink);
359
+ border: 1px solid var(--color-rule);
360
+ border-radius: 4px;
361
+ padding: var(--space-sm);
362
+ text-align: center;
363
+ }
364
+
365
+ /* Pricing */
366
+ .pricing {
367
+ padding: var(--space-3xl) 0;
368
+ border-block-end: 1px solid var(--color-rule);
369
+ }
370
+
371
+ .pricing__head {
372
+ font-family: var(--font-display);
373
+ font-size: 0.75rem;
374
+ letter-spacing: 0.12em;
375
+ text-transform: uppercase;
376
+ color: var(--color-ink-soft);
377
+ margin: 0 0 var(--space-2xl);
378
+ }
379
+
380
+ .tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-md); }
381
+
382
+ .tier {
383
+ border: 1px solid var(--color-rule);
384
+ border-radius: 6px;
385
+ padding: var(--space-lg);
386
+ background: var(--color-paper-2);
387
+ }
388
+
389
+ .tier--feature { border-color: var(--color-accent); }
390
+
391
+ .tier__name {
392
+ font-family: var(--font-display);
393
+ font-size: 0.875rem;
394
+ letter-spacing: 0.06em;
395
+ text-transform: uppercase;
396
+ color: var(--color-ink);
397
+ margin: 0 0 var(--space-sm);
398
+ }
399
+
400
+ .tier__price {
401
+ font-family: var(--font-display);
402
+ font-size: 2rem;
403
+ font-weight: 500;
404
+ color: var(--color-ink);
405
+ line-height: 1;
406
+ margin: 0 0 var(--space-md);
407
+ }
408
+
409
+ .tier__price .per {
410
+ font-size: 0.875rem;
411
+ color: var(--color-ink-soft);
412
+ font-weight: 400;
413
+ }
414
+
415
+ .tier__list {
416
+ list-style: none;
417
+ padding: 0;
418
+ margin: 0 0 var(--space-md);
419
+ display: grid;
420
+ gap: var(--space-2xs);
421
+ font-size: 0.875rem;
422
+ color: var(--color-ink-soft);
423
+ }
424
+
425
+ .tier__list li::before {
426
+ content: "—";
427
+ color: var(--color-accent);
428
+ margin-inline-end: 0.5ch;
429
+ }
430
+
431
+ /* Colophon */
432
+ .colophon {
433
+ padding: var(--space-md) 0;
434
+ display: flex;
435
+ justify-content: space-between;
436
+ flex-wrap: wrap;
437
+ gap: var(--space-sm);
438
+ font-family: var(--font-display);
439
+ font-size: 0.75rem;
440
+ letter-spacing: 0.06em;
441
+ color: var(--color-ink-soft);
442
+ }
443
+
444
+ .colophon a { color: var(--color-ink-soft); text-decoration: none; transition: color var(--dur-micro) var(--ease-out); }
445
+ .colophon a:hover, .colophon a:focus-visible { color: var(--color-accent); }
446
+ .colophon a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
447
+
448
+ @media (max-width: 56rem) {
449
+ .hero { grid-template-columns: 1fr; }
450
+ .workbench { grid-template-columns: 1fr; }
451
+ .pinned { position: static; }
452
+ .tiers { grid-template-columns: 1fr; }
453
+ }
454
+
455
+ @media (prefers-reduced-motion: reduce) {
456
+ .step::before { transition: none; }
457
+ }
@@ -0,0 +1,65 @@
1
+ # Test 06 v2 — Anya (software architect personal site)
2
+
3
+ ## The prompt (verbatim, same as v1)
4
+
5
+ > "I'm Anya, a software architect. Build me a one-pager. Don't ask me questions, just figure it out."
6
+
7
+ ## Step 0 · Pre-flight
8
+
9
+ > *"No pre-flight signals — proceeding with full Hallmark stack."*
10
+
11
+ ## Step 1 · Design-context gate — skipped (explicit)
12
+
13
+ > *"Going with: audience = engineering leaders considering Anya for hire / consult · use = read about Anya, then contact · tone = austere, technical, prose-led. If any of those is wrong, redirect."*
14
+
15
+ ## Step 2.5 · Project memory rotation
16
+
17
+ > *"Previous run on this brief picked Long Document + Studio + none. Picking from {Index-First, Letter, Specimen} for the macro this time — Index-First wins because a senior IC's one-pager benefits from a tabular structure (years · companies · domains) more than a prose-led essay; the sidebar TOC also makes the page scannable for hiring managers reading on a 30-second window."*
18
+ >
19
+ > *"Theme rotation: Studio (light · italic-serif · chromatic-green) → Plain (light · display-heavy · cool-deep-ink-blue). Differs on display style and accent hue. Passes."*
20
+
21
+ ## Step 3 · Visual ruleset loaded
22
+
23
+ `macrostructures.md` (Index-First), `component-cookbook.md` (sidebar-TOC archetype, prose-block), `typography.md` (Plain pairing — Inter Tight display-heavy + Bricolage wordmark + body sans), `color.md` (Plain palette — pure-white paper, near-neutral cool greys, deep ink-blue), `microinteractions.md` (single primitive: TOC active-section highlight on scroll), `anti-patterns.md`.
24
+
25
+ ## Step 4 · Hero enrichment
26
+
27
+ > *"Enrichment: none. The page is a TOC + prose. A personal portfolio that builds a Three.js spinning name reads as overcompensating. Restraint is the credibility signal."*
28
+
29
+ ## Step 5 · Preview
30
+
31
+ ```markdown
32
+ **Hallmark · v0.6.0**
33
+
34
+ - **Macrostructure** · Index-First
35
+ - **Theme** · Plain (pure-white paper #fff · Inter Tight display-heavy · deep ink-blue accent ~2%)
36
+ - **Enrichment** · none (typography only — restraint is the credibility signal)
37
+ - **Sections** · Sidebar TOC · 00 Index · 01 Now · 02 Years · 03 Writing · 04 Reach
38
+ - **Motion** · TOC active-section highlight (1 primitive)
39
+ - **Slop test** · 38 / 38 ✓
40
+ - **Diversification** · differs from v1 (Long Document/Studio) on macrostructure + display style + accent hue
41
+ ```
42
+
43
+ ## Step 6 · Macrostructure stamp
44
+
45
+ ```
46
+ /* Hallmark · macrostructure: Index-First · F4 sidebar-toc knobs: width=12rem, sticky=true, numbered=00-04
47
+ * theme: Plain · accent: deep-ink-blue ~2% (used as section-num + one rule)
48
+ * enrichment: none (typography only — restraint is the credibility signal)
49
+ * studied: no · context: skipped, inferred (personal / portfolio domain) · v0.6.0
50
+ */
51
+ ```
52
+
53
+ ## What changed vs v1
54
+
55
+ - **Macro:** Long Document → Index-First. v1 was a salutation-led essay with a tabular work-sheet at the bottom; v2 leads with a numbered TOC on the left and structures the page as 5 sections that match how a hiring manager actually reads. Longer-form information density without losing the editorial feel.
56
+ - **Theme:** Studio → Plain. Studio's italic Fraunces + cool grey paper + forest-green accent had warmth; Plain is pure-white #fff paper + Inter Tight display-heavy + deep ink-blue. The page reads more like a Klim Type Foundry "about" than a small studio's about.
57
+ - **Voice:** v1 opened with "Hello, I'm Anya." (with a green highlighter mark behind "Anya"); v2 opens with the index list and the first section header `01 · NOW`.
58
+ - **Section count:** v1 had ~3 narrative sections; v2 has 5 indexed sections, each tighter.
59
+
60
+ ## What stayed the same
61
+
62
+ - Brand: Anya, software architect, Lisbon.
63
+ - Enrichment: none on both. Typography only.
64
+ - Slop test: 38 / 38 ✓.
65
+ - Tabular work history (years × companies). v1 had it as a table at the bottom; v2 has it as section 02.
@@ -0,0 +1,159 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Anya Reis — software architect, Lisbon</title>
7
+ <meta name="description" content="Software architect. Distributed systems, payment graphs, eventually-consistent ledgers. Currently consulting. Reachable." />
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap" />
11
+ <link rel="stylesheet" href="style.css" />
12
+ </head>
13
+ <body>
14
+ <main class="page">
15
+ <aside class="toc" aria-label="Table of contents">
16
+ <p class="toc__brand">Anya Reis</p>
17
+ <span class="toc__role">Software architect · Lisbon</span>
18
+ <nav>
19
+ <ul class="toc__list">
20
+ <li><a href="#index"><span class="num">00</span><span>Index</span></a></li>
21
+ <li><a href="#now"><span class="num">01</span><span>Now</span></a></li>
22
+ <li><a href="#years"><span class="num">02</span><span>Years</span></a></li>
23
+ <li><a href="#writing"><span class="num">03</span><span>Writing</span></a></li>
24
+ <li><a href="#reach"><span class="num">04</span><span>Reach</span></a></li>
25
+ </ul>
26
+ </nav>
27
+ <div class="toc__meta">
28
+ <span>Lisbon · GMT+0</span>
29
+ <span>v. 26.05</span>
30
+ <span>set in Inter Tight</span>
31
+ </div>
32
+ </aside>
33
+
34
+ <article class="main">
35
+ <section class="section" id="index">
36
+ <p class="section__num">00 · Index</p>
37
+ <h1 class="section__head section__head--lede">A small, scannable index of who I am and what I do.</h1>
38
+ <div class="section__body">
39
+ <p>
40
+ I'm <strong>Anya Reis</strong>, a software architect working on distributed systems —
41
+ payment graphs, eventually-consistent ledgers, multi-region rollouts. Fifteen years in,
42
+ three companies long enough to ship something real, two short stops that taught me what
43
+ not to do, and one infra startup that didn't survive the 2023 rate hike.
44
+ </p>
45
+ <p>
46
+ This page is what's left when you remove the photo, the headline animation, and the
47
+ stack-of-stickers. Five sections. Read what's relevant.
48
+ </p>
49
+ </div>
50
+ </section>
51
+
52
+ <section class="section" id="now">
53
+ <p class="section__num">01 · Now</p>
54
+ <h2 class="section__head">Consulting, two clients at a time.</h2>
55
+ <div class="section__body">
56
+ <p>
57
+ I take on two engagements at once, three to nine months each. Mostly: <strong>scaling
58
+ payment systems past their first regional split</strong>, and <strong>extracting an old
59
+ monolith into a graph of services without losing the consistency guarantees</strong> the
60
+ business is actually relying on (which are usually fewer and stranger than the team
61
+ thinks).
62
+ </p>
63
+ <p>
64
+ I take on a third engagement only if it's pro bono — usually a small co-op or worker
65
+ collective in Portugal that needs a hand with infra. One month a year I write.
66
+ </p>
67
+ </div>
68
+ </section>
69
+
70
+ <section class="section" id="years">
71
+ <p class="section__num">02 · Years</p>
72
+ <h2 class="section__head">Where I've worked, in tabular form.</h2>
73
+ <div class="section__body">
74
+ <table class="years" aria-label="Work history">
75
+ <thead><tr><th>Years</th><th>Company</th><th>What</th></tr></thead>
76
+ <tbody>
77
+ <tr><td>2024 — now</td><td>Independent</td><td>Consulting on payments &amp; distributed systems</td></tr>
78
+ <tr><td>2021 — 2023</td><td>Knot Infrastructure</td><td>Co-founder · regional load shedding for fintechs (acq-hired, then closed)</td></tr>
79
+ <tr><td>2018 — 2021</td><td>Monzo</td><td>Senior staff eng · cards, then ledger</td></tr>
80
+ <tr><td>2015 — 2018</td><td>Stripe</td><td>Software engineer · radar, then payments rails</td></tr>
81
+ <tr><td>2012 — 2015</td><td>Flywire</td><td>Software engineer · cross-border FX settlement</td></tr>
82
+ <tr><td>2010 — 2012</td><td>Universidade do Porto</td><td>BSc + MSc CS · distributed systems track</td></tr>
83
+ </tbody>
84
+ </table>
85
+ </div>
86
+ </section>
87
+
88
+ <section class="section" id="writing">
89
+ <p class="section__num">03 · Writing</p>
90
+ <h2 class="section__head">Five pieces I'd point at first.</h2>
91
+ <div class="section__body">
92
+ <ul class="writing">
93
+ <li>
94
+ <span class="writing__date">2025-09</span>
95
+ <div>
96
+ <a href="#">Idempotency keys are the point. Everything else is a footnote.</a>
97
+ <span class="writing__sub">On building payment systems that survive partial failure.</span>
98
+ </div>
99
+ </li>
100
+ <li>
101
+ <span class="writing__date">2024-11</span>
102
+ <div>
103
+ <a href="#">Migrations: the org problem first, the schema problem second.</a>
104
+ <span class="writing__sub">A note from three years of monolith-to-services work.</span>
105
+ </div>
106
+ </li>
107
+ <li>
108
+ <span class="writing__date">2024-04</span>
109
+ <div>
110
+ <a href="#">Reconciliation is not a feature.</a>
111
+ <span class="writing__sub">Why every ledger team eventually rebuilds the closing job.</span>
112
+ </div>
113
+ </li>
114
+ <li>
115
+ <span class="writing__date">2023-08</span>
116
+ <div>
117
+ <a href="#">The distributed systems book I wish I'd read in 2012.</a>
118
+ <span class="writing__sub">Annotated bibliography, six entries, no Kleppmann jokes.</span>
119
+ </div>
120
+ </li>
121
+ <li>
122
+ <span class="writing__date">2022-02</span>
123
+ <div>
124
+ <a href="#">A senior engineer's last six months: what changes.</a>
125
+ <span class="writing__sub">On the shift from writing code to writing decisions.</span>
126
+ </div>
127
+ </li>
128
+ </ul>
129
+ </div>
130
+ </section>
131
+
132
+ <section class="section" id="reach">
133
+ <p class="section__num">04 · Reach</p>
134
+ <h2 class="section__head">The four places I read mail.</h2>
135
+ <div class="section__body">
136
+ <div class="contact">
137
+ <div class="contact__row">
138
+ <span class="contact__label">Email</span>
139
+ <span class="contact__value"><a href="mailto:hello@anya.dev">hello@anya.dev</a></span>
140
+ </div>
141
+ <div class="contact__row">
142
+ <span class="contact__label">GitHub</span>
143
+ <span class="contact__value"><a href="#">@anyareis</a></span>
144
+ </div>
145
+ <div class="contact__row">
146
+ <span class="contact__label">LinkedIn</span>
147
+ <span class="contact__value"><a href="#">/in/anyareis</a></span>
148
+ </div>
149
+ <div class="contact__row">
150
+ <span class="contact__label">Mastodon</span>
151
+ <span class="contact__value"><a href="#">@anya@hachyderm.io</a></span>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </section>
156
+ </article>
157
+ </main>
158
+ </body>
159
+ </html>