wizz-method 1.0.3 → 1.2.0

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 (630) hide show
  1. package/package.json +4 -2
  2. package/skills-registry.yaml +352 -0
  3. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +7 -0
  4. package/src/core-skills/wizz-editorial-review-prose/SKILL.md +20 -45
  5. package/src/core-skills/wizz-party-mode/customize.toml +894 -0
  6. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  7. package/src/core-skills/wizz-review-adversarial-general/SKILL.md +23 -12
  8. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +48 -23
  9. package/src/skills-lib/ab-test-setup/SKILL.md +266 -0
  10. package/src/skills-lib/ab-test-setup/evals/evals.json +105 -0
  11. package/src/skills-lib/ab-test-setup/references/sample-size-guide.md +263 -0
  12. package/src/skills-lib/ab-test-setup/references/test-templates.md +277 -0
  13. package/src/skills-lib/ad-creative/SKILL.md +362 -0
  14. package/src/skills-lib/ad-creative/evals/evals.json +90 -0
  15. package/src/skills-lib/ad-creative/references/generative-tools.md +637 -0
  16. package/src/skills-lib/ad-creative/references/platform-specs.md +213 -0
  17. package/src/skills-lib/adversarial-reviewer/SKILL.md +122 -0
  18. package/src/skills-lib/agent-browser/SKILL.md +139 -0
  19. package/src/skills-lib/ai-seo/SKILL.md +398 -0
  20. package/src/skills-lib/ai-seo/evals/evals.json +90 -0
  21. package/src/skills-lib/ai-seo/references/content-patterns.md +285 -0
  22. package/src/skills-lib/ai-seo/references/platform-ranking-factors.md +152 -0
  23. package/src/skills-lib/analytics-tracking/SKILL.md +309 -0
  24. package/src/skills-lib/analytics-tracking/evals/evals.json +90 -0
  25. package/src/skills-lib/analytics-tracking/references/event-library.md +260 -0
  26. package/src/skills-lib/analytics-tracking/references/ga4-implementation.md +300 -0
  27. package/src/skills-lib/analytics-tracking/references/gtm-implementation.md +390 -0
  28. package/src/skills-lib/auth-and-secrets/SKILL.md +82 -0
  29. package/src/skills-lib/caching-and-queues/SKILL.md +58 -0
  30. package/src/skills-lib/cerebro/SKILL.md +368 -0
  31. package/src/skills-lib/churn-prevention/SKILL.md +424 -0
  32. package/src/skills-lib/churn-prevention/evals/evals.json +93 -0
  33. package/src/skills-lib/churn-prevention/references/cancel-flow-patterns.md +316 -0
  34. package/src/skills-lib/churn-prevention/references/dunning-playbook.md +408 -0
  35. package/src/skills-lib/cloud-and-infra/SKILL.md +36 -0
  36. package/src/skills-lib/cold-email/SKILL.md +158 -0
  37. package/src/skills-lib/cold-email/evals/evals.json +94 -0
  38. package/src/skills-lib/cold-email/references/benchmarks.md +83 -0
  39. package/src/skills-lib/cold-email/references/follow-up-sequences.md +81 -0
  40. package/src/skills-lib/cold-email/references/frameworks.md +90 -0
  41. package/src/skills-lib/cold-email/references/personalization.md +79 -0
  42. package/src/skills-lib/cold-email/references/subject-lines.md +53 -0
  43. package/src/skills-lib/competitor-alternatives/SKILL.md +256 -0
  44. package/src/skills-lib/competitor-alternatives/evals/evals.json +93 -0
  45. package/src/skills-lib/competitor-alternatives/references/content-architecture.md +271 -0
  46. package/src/skills-lib/competitor-alternatives/references/templates.md +223 -0
  47. package/src/skills-lib/content-strategy/SKILL.md +359 -0
  48. package/src/skills-lib/content-strategy/evals/evals.json +90 -0
  49. package/src/skills-lib/copy-editing/SKILL.md +447 -0
  50. package/src/skills-lib/copy-editing/evals/evals.json +89 -0
  51. package/src/skills-lib/copy-editing/references/plain-english-alternatives.md +394 -0
  52. package/src/skills-lib/copywriting/SKILL.md +252 -0
  53. package/src/skills-lib/copywriting/evals/evals.json +111 -0
  54. package/src/skills-lib/copywriting/references/copy-frameworks.md +344 -0
  55. package/src/skills-lib/copywriting/references/natural-transitions.md +272 -0
  56. package/src/skills-lib/database-and-deps/SKILL.md +80 -0
  57. package/src/skills-lib/database-scaling/SKILL.md +44 -0
  58. package/src/skills-lib/decision-maker/SKILL.md +534 -0
  59. package/src/skills-lib/desktop-security/SKILL.md +43 -0
  60. package/src/skills-lib/email-sequence/SKILL.md +309 -0
  61. package/src/skills-lib/email-sequence/evals/evals.json +93 -0
  62. package/src/skills-lib/email-sequence/references/copy-guidelines.md +113 -0
  63. package/src/skills-lib/email-sequence/references/email-types.md +515 -0
  64. package/src/skills-lib/email-sequence/references/sequence-templates.md +168 -0
  65. package/src/skills-lib/enhance-prompt/README.md +34 -0
  66. package/src/skills-lib/enhance-prompt/SKILL.md +204 -0
  67. package/src/skills-lib/enhance-prompt/references/KEYWORDS.md +114 -0
  68. package/src/skills-lib/find-skills/SKILL.md +181 -0
  69. package/src/skills-lib/form-cro/SKILL.md +429 -0
  70. package/src/skills-lib/form-cro/evals/evals.json +90 -0
  71. package/src/skills-lib/free-tool-strategy/SKILL.md +178 -0
  72. package/src/skills-lib/free-tool-strategy/evals/evals.json +90 -0
  73. package/src/skills-lib/free-tool-strategy/references/tool-types.md +217 -0
  74. package/src/skills-lib/graphify/.graphify_version +1 -0
  75. package/src/skills-lib/graphify/SKILL.md +1217 -0
  76. package/src/skills-lib/huashu-design/LICENSE +21 -0
  77. package/src/skills-lib/huashu-design/README.en.md +309 -0
  78. package/src/skills-lib/huashu-design/README.md +348 -0
  79. package/src/skills-lib/huashu-design/SKILL.md +631 -0
  80. package/src/skills-lib/huashu-design/assets/android_frame.jsx +175 -0
  81. package/src/skills-lib/huashu-design/assets/animations.jsx +348 -0
  82. package/src/skills-lib/huashu-design/assets/banner.svg +198 -0
  83. package/src/skills-lib/huashu-design/assets/bgm-ad.mp3 +0 -0
  84. package/src/skills-lib/huashu-design/assets/bgm-educational-alt.mp3 +0 -0
  85. package/src/skills-lib/huashu-design/assets/bgm-educational.mp3 +0 -0
  86. package/src/skills-lib/huashu-design/assets/bgm-tech.mp3 +0 -0
  87. package/src/skills-lib/huashu-design/assets/bgm-tutorial-alt.mp3 +0 -0
  88. package/src/skills-lib/huashu-design/assets/bgm-tutorial.mp3 +0 -0
  89. package/src/skills-lib/huashu-design/assets/browser_window.jsx +166 -0
  90. package/src/skills-lib/huashu-design/assets/deck_index.html +348 -0
  91. package/src/skills-lib/huashu-design/assets/deck_stage.js +420 -0
  92. package/src/skills-lib/huashu-design/assets/design_canvas.jsx +205 -0
  93. package/src/skills-lib/huashu-design/assets/director-notes-samples/launch-film-30s-sample.md +1713 -0
  94. package/src/skills-lib/huashu-design/assets/ios_frame.jsx +192 -0
  95. package/src/skills-lib/huashu-design/assets/macos_window.jsx +96 -0
  96. package/src/skills-lib/huashu-design/assets/narration_stage.jsx +476 -0
  97. package/src/skills-lib/huashu-design/assets/personal-asset-index.example.json +71 -0
  98. package/src/skills-lib/huashu-design/assets/sfx/container/card-flip.mp3 +0 -0
  99. package/src/skills-lib/huashu-design/assets/sfx/container/card-snap.mp3 +0 -0
  100. package/src/skills-lib/huashu-design/assets/sfx/container/modal-open.mp3 +0 -0
  101. package/src/skills-lib/huashu-design/assets/sfx/container/stack-collapse.mp3 +0 -0
  102. package/src/skills-lib/huashu-design/assets/sfx/feedback/achievement.mp3 +0 -0
  103. package/src/skills-lib/huashu-design/assets/sfx/feedback/error-tone.mp3 +0 -0
  104. package/src/skills-lib/huashu-design/assets/sfx/feedback/notification-pop.mp3 +0 -0
  105. package/src/skills-lib/huashu-design/assets/sfx/feedback/success-chime.mp3 +0 -0
  106. package/src/skills-lib/huashu-design/assets/sfx/impact/brand-stamp.mp3 +0 -0
  107. package/src/skills-lib/huashu-design/assets/sfx/impact/drop-thud.mp3 +0 -0
  108. package/src/skills-lib/huashu-design/assets/sfx/impact/logo-reveal-v2.mp3 +0 -0
  109. package/src/skills-lib/huashu-design/assets/sfx/impact/logo-reveal.mp3 +0 -0
  110. package/src/skills-lib/huashu-design/assets/sfx/keyboard/delete-key.mp3 +0 -0
  111. package/src/skills-lib/huashu-design/assets/sfx/keyboard/enter.mp3 +0 -0
  112. package/src/skills-lib/huashu-design/assets/sfx/keyboard/space-tap.mp3 +0 -0
  113. package/src/skills-lib/huashu-design/assets/sfx/keyboard/type-fast.mp3 +0 -0
  114. package/src/skills-lib/huashu-design/assets/sfx/keyboard/type.mp3 +0 -0
  115. package/src/skills-lib/huashu-design/assets/sfx/magic/ai-process.mp3 +0 -0
  116. package/src/skills-lib/huashu-design/assets/sfx/magic/sparkle.mp3 +0 -0
  117. package/src/skills-lib/huashu-design/assets/sfx/magic/transform.mp3 +0 -0
  118. package/src/skills-lib/huashu-design/assets/sfx/progress/complete-done.mp3 +0 -0
  119. package/src/skills-lib/huashu-design/assets/sfx/progress/generate-start.mp3 +0 -0
  120. package/src/skills-lib/huashu-design/assets/sfx/progress/loading-tick.mp3 +0 -0
  121. package/src/skills-lib/huashu-design/assets/sfx/terminal/command-execute.mp3 +0 -0
  122. package/src/skills-lib/huashu-design/assets/sfx/terminal/cursor-blink.mp3 +0 -0
  123. package/src/skills-lib/huashu-design/assets/sfx/terminal/output-appear.mp3 +0 -0
  124. package/src/skills-lib/huashu-design/assets/sfx/transition/dissolve.mp3 +0 -0
  125. package/src/skills-lib/huashu-design/assets/sfx/transition/slide-in.mp3 +0 -0
  126. package/src/skills-lib/huashu-design/assets/sfx/transition/swipe-horizontal.mp3 +0 -0
  127. package/src/skills-lib/huashu-design/assets/sfx/transition/whoosh-fast.mp3 +0 -0
  128. package/src/skills-lib/huashu-design/assets/sfx/transition/whoosh.mp3 +0 -0
  129. package/src/skills-lib/huashu-design/assets/sfx/ui/click-soft.mp3 +0 -0
  130. package/src/skills-lib/huashu-design/assets/sfx/ui/click.mp3 +0 -0
  131. package/src/skills-lib/huashu-design/assets/sfx/ui/focus.mp3 +0 -0
  132. package/src/skills-lib/huashu-design/assets/sfx/ui/hover-subtle.mp3 +0 -0
  133. package/src/skills-lib/huashu-design/assets/sfx/ui/tap-finger.mp3 +0 -0
  134. package/src/skills-lib/huashu-design/assets/sfx/ui/toggle-on.mp3 +0 -0
  135. package/src/skills-lib/huashu-design/assets/showcases/INDEX.md +115 -0
  136. package/src/skills-lib/huashu-design/assets/showcases/cover/cover-build.html +235 -0
  137. package/src/skills-lib/huashu-design/assets/showcases/cover/cover-build.png +0 -0
  138. package/src/skills-lib/huashu-design/assets/showcases/cover/cover-pentagram.html +229 -0
  139. package/src/skills-lib/huashu-design/assets/showcases/cover/cover-pentagram.png +0 -0
  140. package/src/skills-lib/huashu-design/assets/showcases/cover/cover-takram.html +288 -0
  141. package/src/skills-lib/huashu-design/assets/showcases/cover/cover-takram.png +0 -0
  142. package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-build.html +503 -0
  143. package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-build.png +0 -0
  144. package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-pentagram.html +600 -0
  145. package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-pentagram.png +0 -0
  146. package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-takram.html +670 -0
  147. package/src/skills-lib/huashu-design/assets/showcases/infographic/infographic-takram.png +0 -0
  148. package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-build.html +382 -0
  149. package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-build.png +0 -0
  150. package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-pentagram.html +536 -0
  151. package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-pentagram.png +0 -0
  152. package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-takram.html +497 -0
  153. package/src/skills-lib/huashu-design/assets/showcases/ppt/ppt-takram.png +0 -0
  154. package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-build.html +385 -0
  155. package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-build.png +0 -0
  156. package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.html +422 -0
  157. package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-pentagram.png +0 -0
  158. package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-takram.html +499 -0
  159. package/src/skills-lib/huashu-design/assets/showcases/website-ai-nav/ainav-takram.png +0 -0
  160. package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-build.html +562 -0
  161. package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-build.png +0 -0
  162. package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.html +548 -0
  163. package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-pentagram.png +0 -0
  164. package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.html +696 -0
  165. package/src/skills-lib/huashu-design/assets/showcases/website-ai-writing/aiwriting-takram.png +0 -0
  166. package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-build.html +372 -0
  167. package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-build.png +0 -0
  168. package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.html +460 -0
  169. package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-pentagram.png +0 -0
  170. package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-takram.html +494 -0
  171. package/src/skills-lib/huashu-design/assets/showcases/website-devdocs/devdocs-takram.png +0 -0
  172. package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-build.html +367 -0
  173. package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-build.png +0 -0
  174. package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-pentagram.html +368 -0
  175. package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-pentagram.png +0 -0
  176. package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-takram.html +459 -0
  177. package/src/skills-lib/huashu-design/assets/showcases/website-homepage/homepage-takram.png +0 -0
  178. package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-build.html +493 -0
  179. package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-build.png +0 -0
  180. package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-pentagram.html +556 -0
  181. package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-pentagram.png +0 -0
  182. package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-takram.html +604 -0
  183. package/src/skills-lib/huashu-design/assets/showcases/website-saas/saas-takram.png +0 -0
  184. package/src/skills-lib/huashu-design/demos/c1-ios-prototype-en.html +1145 -0
  185. package/src/skills-lib/huashu-design/demos/c1-ios-prototype.html +1142 -0
  186. package/src/skills-lib/huashu-design/demos/c2-slides-pptx-en.html +1055 -0
  187. package/src/skills-lib/huashu-design/demos/c2-slides-pptx.html +1055 -0
  188. package/src/skills-lib/huashu-design/demos/c3-motion-design-en.html +1134 -0
  189. package/src/skills-lib/huashu-design/demos/c3-motion-design.html +1134 -0
  190. package/src/skills-lib/huashu-design/demos/c4-tweaks-en.html +989 -0
  191. package/src/skills-lib/huashu-design/demos/c4-tweaks.html +989 -0
  192. package/src/skills-lib/huashu-design/demos/c5-infographic-en.html +816 -0
  193. package/src/skills-lib/huashu-design/demos/c5-infographic.html +813 -0
  194. package/src/skills-lib/huashu-design/demos/c6-expert-review-en.html +885 -0
  195. package/src/skills-lib/huashu-design/demos/c6-expert-review.html +894 -0
  196. package/src/skills-lib/huashu-design/demos/hero-animation-v10-en.html +1498 -0
  197. package/src/skills-lib/huashu-design/demos/md-html-narration/md-html-demo.html +615 -0
  198. package/src/skills-lib/huashu-design/demos/md-html-narration/script.md +69 -0
  199. package/src/skills-lib/huashu-design/demos/voiceover-demo/script.md +17 -0
  200. package/src/skills-lib/huashu-design/demos/voiceover-demo//344/273/200/344/271/210/346/230/257token.html +201 -0
  201. package/src/skills-lib/huashu-design/demos/w1-brand-protocol-en.html +684 -0
  202. package/src/skills-lib/huashu-design/demos/w1-brand-protocol.html +696 -0
  203. package/src/skills-lib/huashu-design/demos/w2-junior-designer-en.html +983 -0
  204. package/src/skills-lib/huashu-design/demos/w2-junior-designer.html +994 -0
  205. package/src/skills-lib/huashu-design/demos/w3-fallback-advisor-en.html +647 -0
  206. package/src/skills-lib/huashu-design/demos/w3-fallback-advisor.html +704 -0
  207. package/src/skills-lib/huashu-design/package-lock.json +846 -0
  208. package/src/skills-lib/huashu-design/package.json +8 -0
  209. package/src/skills-lib/huashu-design/references/animation-best-practices.md +506 -0
  210. package/src/skills-lib/huashu-design/references/animation-pitfalls.md +402 -0
  211. package/src/skills-lib/huashu-design/references/animations.md +249 -0
  212. package/src/skills-lib/huashu-design/references/apple-gallery-showcase.md +338 -0
  213. package/src/skills-lib/huashu-design/references/audio-design-rules.md +260 -0
  214. package/src/skills-lib/huashu-design/references/brand-asset-protocol.md +250 -0
  215. package/src/skills-lib/huashu-design/references/cinematic-patterns.md +264 -0
  216. package/src/skills-lib/huashu-design/references/content-guidelines.md +260 -0
  217. package/src/skills-lib/huashu-design/references/critique-guide.md +199 -0
  218. package/src/skills-lib/huashu-design/references/design-context.md +213 -0
  219. package/src/skills-lib/huashu-design/references/design-styles.md +370 -0
  220. package/src/skills-lib/huashu-design/references/editable-pptx.md +334 -0
  221. package/src/skills-lib/huashu-design/references/hero-animation-case-study.md +250 -0
  222. package/src/skills-lib/huashu-design/references/launch-film-director-notes.md +293 -0
  223. package/src/skills-lib/huashu-design/references/multi-perspective-parallel-case-study.md +267 -0
  224. package/src/skills-lib/huashu-design/references/react-setup.md +276 -0
  225. package/src/skills-lib/huashu-design/references/scene-templates.md +262 -0
  226. package/src/skills-lib/huashu-design/references/sfx-library.md +226 -0
  227. package/src/skills-lib/huashu-design/references/slide-decks.md +745 -0
  228. package/src/skills-lib/huashu-design/references/tweaks-system.md +313 -0
  229. package/src/skills-lib/huashu-design/references/verification.md +183 -0
  230. package/src/skills-lib/huashu-design/references/video-export.md +232 -0
  231. package/src/skills-lib/huashu-design/references/voiceover-pipeline.md +397 -0
  232. package/src/skills-lib/huashu-design/references/workflow.md +216 -0
  233. package/src/skills-lib/huashu-design/scripts/add-music.sh +108 -0
  234. package/src/skills-lib/huashu-design/scripts/convert-formats.sh +83 -0
  235. package/src/skills-lib/huashu-design/scripts/export_deck_pdf.mjs +98 -0
  236. package/src/skills-lib/huashu-design/scripts/export_deck_pptx.mjs +107 -0
  237. package/src/skills-lib/huashu-design/scripts/export_deck_stage_pdf.mjs +130 -0
  238. package/src/skills-lib/huashu-design/scripts/fetch_images.py +94 -0
  239. package/src/skills-lib/huashu-design/scripts/gen_deck_thumbs.mjs +55 -0
  240. package/src/skills-lib/huashu-design/scripts/html2pptx.js +1178 -0
  241. package/src/skills-lib/huashu-design/scripts/mix-voiceover.sh +127 -0
  242. package/src/skills-lib/huashu-design/scripts/narrate-pipeline.mjs +315 -0
  243. package/src/skills-lib/huashu-design/scripts/render-narration.sh +151 -0
  244. package/src/skills-lib/huashu-design/scripts/render-video-seek.js +238 -0
  245. package/src/skills-lib/huashu-design/scripts/render-video.js +289 -0
  246. package/src/skills-lib/huashu-design/scripts/tts-doubao.mjs +184 -0
  247. package/src/skills-lib/huashu-design/scripts/verify.py +154 -0
  248. package/src/skills-lib/huashu-design/test-prompts.json +38 -0
  249. package/src/skills-lib/humanizer/LICENSE +21 -0
  250. package/src/skills-lib/humanizer/README.md +145 -0
  251. package/src/skills-lib/humanizer/SKILL.md +474 -0
  252. package/src/skills-lib/humanizer/WARP.md +53 -0
  253. package/src/skills-lib/impeccable/SKILL.md +186 -0
  254. package/src/skills-lib/implementation-planner/SKILL.md +630 -0
  255. package/src/skills-lib/infrastructure/SKILL.md +34 -0
  256. package/src/skills-lib/inicio-de-projeto/SKILL.md +313 -0
  257. package/src/skills-lib/launch-strategy/SKILL.md +353 -0
  258. package/src/skills-lib/launch-strategy/evals/evals.json +91 -0
  259. package/src/skills-lib/marketing-ideas/SKILL.md +167 -0
  260. package/src/skills-lib/marketing-ideas/evals/evals.json +90 -0
  261. package/src/skills-lib/marketing-ideas/references/ideas-by-category.md +366 -0
  262. package/src/skills-lib/marketing-psychology/SKILL.md +455 -0
  263. package/src/skills-lib/marketing-psychology/evals/evals.json +88 -0
  264. package/src/skills-lib/motion-3d-director/SKILL.md +485 -0
  265. package/src/skills-lib/onboarding-cro/SKILL.md +220 -0
  266. package/src/skills-lib/onboarding-cro/evals/evals.json +92 -0
  267. package/src/skills-lib/onboarding-cro/references/experiments.md +258 -0
  268. package/src/skills-lib/page-cro/SKILL.md +182 -0
  269. package/src/skills-lib/page-cro/evals/evals.json +111 -0
  270. package/src/skills-lib/page-cro/references/experiments.md +248 -0
  271. package/src/skills-lib/paid-ads/SKILL.md +315 -0
  272. package/src/skills-lib/paid-ads/evals/evals.json +90 -0
  273. package/src/skills-lib/paid-ads/references/ad-copy-templates.md +207 -0
  274. package/src/skills-lib/paid-ads/references/audience-targeting.md +243 -0
  275. package/src/skills-lib/paid-ads/references/platform-setup-checklists.md +277 -0
  276. package/src/skills-lib/paywall-upgrade-cro/SKILL.md +227 -0
  277. package/src/skills-lib/paywall-upgrade-cro/evals/evals.json +93 -0
  278. package/src/skills-lib/paywall-upgrade-cro/references/experiments.md +164 -0
  279. package/src/skills-lib/popup-cro/SKILL.md +453 -0
  280. package/src/skills-lib/popup-cro/evals/evals.json +94 -0
  281. package/src/skills-lib/premium-landing-ui-researcher/SKILL.md +2090 -0
  282. package/src/skills-lib/pricing-strategy/SKILL.md +231 -0
  283. package/src/skills-lib/pricing-strategy/evals/evals.json +90 -0
  284. package/src/skills-lib/pricing-strategy/references/research-methods.md +152 -0
  285. package/src/skills-lib/pricing-strategy/references/tier-structure.md +232 -0
  286. package/src/skills-lib/product-marketing-context/SKILL.md +241 -0
  287. package/src/skills-lib/product-marketing-context/evals/evals.json +85 -0
  288. package/src/skills-lib/programmatic-seo/SKILL.md +238 -0
  289. package/src/skills-lib/programmatic-seo/evals/evals.json +94 -0
  290. package/src/skills-lib/programmatic-seo/references/playbooks.md +308 -0
  291. package/src/skills-lib/react-components/README.md +36 -0
  292. package/src/skills-lib/react-components/SKILL.md +51 -0
  293. package/src/skills-lib/react-components/examples/gold-standard-card.tsx +80 -0
  294. package/src/skills-lib/react-components/package-lock.json +231 -0
  295. package/src/skills-lib/react-components/package.json +16 -0
  296. package/src/skills-lib/react-components/resources/architecture-checklist.md +15 -0
  297. package/src/skills-lib/react-components/resources/component-template.tsx +37 -0
  298. package/src/skills-lib/react-components/resources/stitch-api-reference.md +14 -0
  299. package/src/skills-lib/react-components/resources/style-guide.json +27 -0
  300. package/src/skills-lib/react-components/scripts/fetch-stitch.sh +30 -0
  301. package/src/skills-lib/react-components/scripts/validate.js +70 -0
  302. package/src/skills-lib/references/premium-agency-rules.md +79 -0
  303. package/src/skills-lib/referral-program/SKILL.md +255 -0
  304. package/src/skills-lib/referral-program/evals/evals.json +89 -0
  305. package/src/skills-lib/referral-program/references/affiliate-programs.md +164 -0
  306. package/src/skills-lib/referral-program/references/program-examples.md +143 -0
  307. package/src/skills-lib/remotion-best-practices/SKILL.md +61 -0
  308. package/src/skills-lib/remotion-best-practices/rules/3d.md +86 -0
  309. package/src/skills-lib/remotion-best-practices/rules/animations.md +27 -0
  310. package/src/skills-lib/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  311. package/src/skills-lib/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  312. package/src/skills-lib/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
  313. package/src/skills-lib/remotion-best-practices/rules/assets.md +78 -0
  314. package/src/skills-lib/remotion-best-practices/rules/audio-visualization.md +198 -0
  315. package/src/skills-lib/remotion-best-practices/rules/audio.md +169 -0
  316. package/src/skills-lib/remotion-best-practices/rules/calculate-metadata.md +134 -0
  317. package/src/skills-lib/remotion-best-practices/rules/can-decode.md +75 -0
  318. package/src/skills-lib/remotion-best-practices/rules/charts.md +120 -0
  319. package/src/skills-lib/remotion-best-practices/rules/compositions.md +154 -0
  320. package/src/skills-lib/remotion-best-practices/rules/display-captions.md +184 -0
  321. package/src/skills-lib/remotion-best-practices/rules/extract-frames.md +229 -0
  322. package/src/skills-lib/remotion-best-practices/rules/ffmpeg.md +38 -0
  323. package/src/skills-lib/remotion-best-practices/rules/fonts.md +152 -0
  324. package/src/skills-lib/remotion-best-practices/rules/get-audio-duration.md +58 -0
  325. package/src/skills-lib/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  326. package/src/skills-lib/remotion-best-practices/rules/get-video-duration.md +60 -0
  327. package/src/skills-lib/remotion-best-practices/rules/gifs.md +141 -0
  328. package/src/skills-lib/remotion-best-practices/rules/images.md +134 -0
  329. package/src/skills-lib/remotion-best-practices/rules/import-srt-captions.md +69 -0
  330. package/src/skills-lib/remotion-best-practices/rules/light-leaks.md +73 -0
  331. package/src/skills-lib/remotion-best-practices/rules/lottie.md +70 -0
  332. package/src/skills-lib/remotion-best-practices/rules/maps.md +412 -0
  333. package/src/skills-lib/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  334. package/src/skills-lib/remotion-best-practices/rules/measuring-text.md +140 -0
  335. package/src/skills-lib/remotion-best-practices/rules/parameters.md +109 -0
  336. package/src/skills-lib/remotion-best-practices/rules/sequencing.md +118 -0
  337. package/src/skills-lib/remotion-best-practices/rules/sfx.md +26 -0
  338. package/src/skills-lib/remotion-best-practices/rules/subtitles.md +36 -0
  339. package/src/skills-lib/remotion-best-practices/rules/tailwind.md +11 -0
  340. package/src/skills-lib/remotion-best-practices/rules/text-animations.md +20 -0
  341. package/src/skills-lib/remotion-best-practices/rules/timing.md +179 -0
  342. package/src/skills-lib/remotion-best-practices/rules/transcribe-captions.md +70 -0
  343. package/src/skills-lib/remotion-best-practices/rules/transitions.md +197 -0
  344. package/src/skills-lib/remotion-best-practices/rules/transparent-videos.md +106 -0
  345. package/src/skills-lib/remotion-best-practices/rules/trimming.md +51 -0
  346. package/src/skills-lib/remotion-best-practices/rules/videos.md +171 -0
  347. package/src/skills-lib/remotion-best-practices/rules/voiceover.md +99 -0
  348. package/src/skills-lib/revops/SKILL.md +343 -0
  349. package/src/skills-lib/revops/evals/evals.json +91 -0
  350. package/src/skills-lib/revops/references/automation-playbooks.md +290 -0
  351. package/src/skills-lib/revops/references/lifecycle-definitions.md +278 -0
  352. package/src/skills-lib/revops/references/routing-rules.md +203 -0
  353. package/src/skills-lib/revops/references/scoring-models.md +247 -0
  354. package/src/skills-lib/sales-enablement/SKILL.md +349 -0
  355. package/src/skills-lib/sales-enablement/evals/evals.json +91 -0
  356. package/src/skills-lib/sales-enablement/references/deck-frameworks.md +263 -0
  357. package/src/skills-lib/sales-enablement/references/demo-scripts.md +355 -0
  358. package/src/skills-lib/sales-enablement/references/objection-library.md +270 -0
  359. package/src/skills-lib/sales-enablement/references/one-pager-templates.md +208 -0
  360. package/src/skills-lib/schema-markup/SKILL.md +179 -0
  361. package/src/skills-lib/schema-markup/evals/evals.json +87 -0
  362. package/src/skills-lib/schema-markup/references/schema-examples.md +398 -0
  363. package/src/skills-lib/seo-audit/SKILL.md +412 -0
  364. package/src/skills-lib/seo-audit/evals/evals.json +136 -0
  365. package/src/skills-lib/seo-audit/references/ai-writing-detection.md +200 -0
  366. package/src/skills-lib/signup-flow-cro/SKILL.md +359 -0
  367. package/src/skills-lib/signup-flow-cro/evals/evals.json +88 -0
  368. package/src/skills-lib/site-architecture/SKILL.md +357 -0
  369. package/src/skills-lib/site-architecture/evals/evals.json +88 -0
  370. package/src/skills-lib/site-architecture/references/mermaid-templates.md +216 -0
  371. package/src/skills-lib/site-architecture/references/navigation-patterns.md +305 -0
  372. package/src/skills-lib/site-architecture/references/site-type-templates.md +293 -0
  373. package/src/skills-lib/social-content/SKILL.md +278 -0
  374. package/src/skills-lib/social-content/evals/evals.json +92 -0
  375. package/src/skills-lib/social-content/references/platforms.md +170 -0
  376. package/src/skills-lib/social-content/references/post-templates.md +177 -0
  377. package/src/skills-lib/social-content/references/reverse-engineering.md +195 -0
  378. package/src/skills-lib/supabase-postgres-best-practices/AGENTS.md +68 -0
  379. package/src/skills-lib/supabase-postgres-best-practices/CLAUDE.md +68 -0
  380. package/src/skills-lib/supabase-postgres-best-practices/README.md +116 -0
  381. package/src/skills-lib/supabase-postgres-best-practices/SKILL.md +64 -0
  382. package/src/skills-lib/supabase-postgres-best-practices/references/_contributing.md +171 -0
  383. package/src/skills-lib/supabase-postgres-best-practices/references/_sections.md +39 -0
  384. package/src/skills-lib/supabase-postgres-best-practices/references/_template.md +34 -0
  385. package/src/skills-lib/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  386. package/src/skills-lib/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  387. package/src/skills-lib/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  388. package/src/skills-lib/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  389. package/src/skills-lib/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  390. package/src/skills-lib/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  391. package/src/skills-lib/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  392. package/src/skills-lib/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  393. package/src/skills-lib/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  394. package/src/skills-lib/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  395. package/src/skills-lib/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  396. package/src/skills-lib/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  397. package/src/skills-lib/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  398. package/src/skills-lib/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  399. package/src/skills-lib/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  400. package/src/skills-lib/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  401. package/src/skills-lib/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  402. package/src/skills-lib/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  403. package/src/skills-lib/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  404. package/src/skills-lib/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  405. package/src/skills-lib/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  406. package/src/skills-lib/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  407. package/src/skills-lib/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  408. package/src/skills-lib/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  409. package/src/skills-lib/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  410. package/src/skills-lib/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  411. package/src/skills-lib/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  412. package/src/skills-lib/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  413. package/src/skills-lib/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  414. package/src/skills-lib/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  415. package/src/skills-lib/supabase-postgres-best-practices/references/security-rls-performance.md +57 -0
  416. package/src/skills-lib/taste-redesign/SKILL.md +178 -0
  417. package/src/skills-lib/taste-skill/SKILL.md +1206 -0
  418. package/src/skills-lib/ui-component-curator/SKILL.md +102 -0
  419. package/src/skills-lib/ui-ux-pro-max/SKILL.md +377 -0
  420. package/src/skills-lib/ui-ux-pro-max/data/charts.csv +26 -0
  421. package/src/skills-lib/ui-ux-pro-max/data/colors.csv +97 -0
  422. package/src/skills-lib/ui-ux-pro-max/data/icons.csv +101 -0
  423. package/src/skills-lib/ui-ux-pro-max/data/landing.csv +31 -0
  424. package/src/skills-lib/ui-ux-pro-max/data/products.csv +97 -0
  425. package/src/skills-lib/ui-ux-pro-max/data/react-performance.csv +45 -0
  426. package/src/skills-lib/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  427. package/src/skills-lib/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  428. package/src/skills-lib/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  429. package/src/skills-lib/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  430. package/src/skills-lib/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  431. package/src/skills-lib/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  432. package/src/skills-lib/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  433. package/src/skills-lib/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  434. package/src/skills-lib/ui-ux-pro-max/data/stacks/react.csv +54 -0
  435. package/src/skills-lib/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  436. package/src/skills-lib/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  437. package/src/skills-lib/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  438. package/src/skills-lib/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  439. package/src/skills-lib/ui-ux-pro-max/data/styles.csv +68 -0
  440. package/src/skills-lib/ui-ux-pro-max/data/typography.csv +58 -0
  441. package/src/skills-lib/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  442. package/src/skills-lib/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  443. package/src/skills-lib/ui-ux-pro-max/data/web-interface.csv +31 -0
  444. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
  445. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
  446. package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
  447. package/src/skills-lib/ui-ux-pro-max/scripts/core.py +253 -0
  448. package/src/skills-lib/ui-ux-pro-max/scripts/design_system.py +1067 -0
  449. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/0964cef300f753b5cee0cc49777ca97035c85d45c212099405d9ee4da36e523f.json +1 -0
  450. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/21a40f6810c3a6f17acc3580f106171daf78c7b41bbd066bc80448a821ea0adf.json +1 -0
  451. package/src/skills-lib/ui-ux-pro-max/scripts/graphify-out/cache/69ea15a020ac81b8459e37ef63654398a50c1035fc01c43d8069df217389f7f3.json +1 -0
  452. package/src/skills-lib/ui-ux-pro-max/scripts/search.py +114 -0
  453. package/src/skills-lib/web-security/SKILL.md +147 -0
  454. package/src/skills-lib/wizz-router/SKILL.md +262 -0
  455. package/src/squads/README.md +39 -0
  456. package/src/squads/advisory-board/README.md +34 -0
  457. package/src/squads/advisory-board/agents/board-chair.md +161 -0
  458. package/src/squads/advisory-board/agents/brene-brown.md +296 -0
  459. package/src/squads/advisory-board/agents/charlie-munger.md +590 -0
  460. package/src/squads/advisory-board/agents/derek-sivers.md +268 -0
  461. package/src/squads/advisory-board/agents/naval-ravikant.md +251 -0
  462. package/src/squads/advisory-board/agents/patrick-lencioni.md +394 -0
  463. package/src/squads/advisory-board/agents/peter-thiel.md +269 -0
  464. package/src/squads/advisory-board/agents/ray-dalio.md +587 -0
  465. package/src/squads/advisory-board/agents/reid-hoffman.md +278 -0
  466. package/src/squads/advisory-board/agents/simon-sinek.md +291 -0
  467. package/src/squads/advisory-board/agents/yvon-chouinard.md +275 -0
  468. package/src/squads/advisory-board/squad.yaml +50 -0
  469. package/src/squads/brand-squad/README.md +60 -0
  470. package/src/squads/brand-squad/agents/al-ries.md +175 -0
  471. package/src/squads/brand-squad/agents/alina-wheeler.md +184 -0
  472. package/src/squads/brand-squad/agents/archetype-consultant.md +215 -0
  473. package/src/squads/brand-squad/agents/brand-chief.md +158 -0
  474. package/src/squads/brand-squad/agents/byron-sharp.md +169 -0
  475. package/src/squads/brand-squad/agents/david-aaker.md +166 -0
  476. package/src/squads/brand-squad/agents/denise-yohn.md +172 -0
  477. package/src/squads/brand-squad/agents/domain-scout.md +135 -0
  478. package/src/squads/brand-squad/agents/donald-miller.md +179 -0
  479. package/src/squads/brand-squad/agents/emily-heyward.md +147 -0
  480. package/src/squads/brand-squad/agents/jean-noel-kapferer.md +189 -0
  481. package/src/squads/brand-squad/agents/kevin-keller.md +199 -0
  482. package/src/squads/brand-squad/agents/marty-neumeier.md +170 -0
  483. package/src/squads/brand-squad/agents/miller-sticky-brand.md +180 -0
  484. package/src/squads/brand-squad/agents/naming-strategist.md +171 -0
  485. package/src/squads/brand-squad/squad.yaml +117 -0
  486. package/src/squads/c-level-squad/README.md +29 -0
  487. package/src/squads/c-level-squad/agents/caio-architect.md +235 -0
  488. package/src/squads/c-level-squad/agents/cio-engineer.md +209 -0
  489. package/src/squads/c-level-squad/agents/cmo-architect.md +208 -0
  490. package/src/squads/c-level-squad/agents/coo-orchestrator.md +193 -0
  491. package/src/squads/c-level-squad/agents/cto-architect.md +194 -0
  492. package/src/squads/c-level-squad/agents/vision-chief.md +201 -0
  493. package/src/squads/c-level-squad/squad.yaml +45 -0
  494. package/src/squads/claude-code-mastery/README.md +146 -0
  495. package/src/squads/claude-code-mastery/agents/claude-mastery-chief.md +554 -0
  496. package/src/squads/claude-code-mastery/agents/config-engineer.md +865 -0
  497. package/src/squads/claude-code-mastery/agents/hooks-architect.md +1013 -0
  498. package/src/squads/claude-code-mastery/agents/mcp-integrator.md +791 -0
  499. package/src/squads/claude-code-mastery/agents/project-integrator.md +1196 -0
  500. package/src/squads/claude-code-mastery/agents/roadmap-sentinel.md +931 -0
  501. package/src/squads/claude-code-mastery/agents/skill-craftsman.md +1250 -0
  502. package/src/squads/claude-code-mastery/agents/swarm-orchestrator.md +1008 -0
  503. package/src/squads/copy-squad/README.md +65 -0
  504. package/src/squads/copy-squad/agents/andre-chaperon.md +206 -0
  505. package/src/squads/copy-squad/agents/ben-settle.md +194 -0
  506. package/src/squads/copy-squad/agents/claude-hopkins.md +182 -0
  507. package/src/squads/copy-squad/agents/clayton-makepeace.md +225 -0
  508. package/src/squads/copy-squad/agents/copy-chief.md +166 -0
  509. package/src/squads/copy-squad/agents/dan-kennedy.md +202 -0
  510. package/src/squads/copy-squad/agents/dan-koe.md +223 -0
  511. package/src/squads/copy-squad/agents/david-deutsch.md +197 -0
  512. package/src/squads/copy-squad/agents/david-ogilvy.md +198 -0
  513. package/src/squads/copy-squad/agents/eugene-schwartz.md +238 -0
  514. package/src/squads/copy-squad/agents/frank-kern.md +195 -0
  515. package/src/squads/copy-squad/agents/gary-bencivenga.md +197 -0
  516. package/src/squads/copy-squad/agents/gary-halbert.md +219 -0
  517. package/src/squads/copy-squad/agents/jim-rutz.md +193 -0
  518. package/src/squads/copy-squad/agents/joe-sugarman.md +234 -0
  519. package/src/squads/copy-squad/agents/john-carlton.md +203 -0
  520. package/src/squads/copy-squad/agents/jon-benson.md +196 -0
  521. package/src/squads/copy-squad/agents/parris-lampropoulos.md +188 -0
  522. package/src/squads/copy-squad/agents/robert-collier.md +183 -0
  523. package/src/squads/copy-squad/agents/russell-brunson.md +229 -0
  524. package/src/squads/copy-squad/agents/ry-schwartz.md +185 -0
  525. package/src/squads/copy-squad/agents/stefan-georgi.md +188 -0
  526. package/src/squads/copy-squad/agents/todd-brown.md +171 -0
  527. package/src/squads/copy-squad/squad.yaml +87 -0
  528. package/src/squads/cybersecurity/README.md +38 -0
  529. package/src/squads/cybersecurity/agents/busterer.md +108 -0
  530. package/src/squads/cybersecurity/agents/cartographer.md +114 -0
  531. package/src/squads/cybersecurity/agents/chris-sanders.md +205 -0
  532. package/src/squads/cybersecurity/agents/command-generator.md +121 -0
  533. package/src/squads/cybersecurity/agents/cyber-chief.md +120 -0
  534. package/src/squads/cybersecurity/agents/dirber.md +111 -0
  535. package/src/squads/cybersecurity/agents/fuzzer.md +121 -0
  536. package/src/squads/cybersecurity/agents/georgia-weidman.md +178 -0
  537. package/src/squads/cybersecurity/agents/jim-manico.md +182 -0
  538. package/src/squads/cybersecurity/agents/marcus-carey.md +200 -0
  539. package/src/squads/cybersecurity/agents/omar-santos.md +206 -0
  540. package/src/squads/cybersecurity/agents/peter-kim.md +179 -0
  541. package/src/squads/cybersecurity/agents/ripper.md +121 -0
  542. package/src/squads/cybersecurity/agents/rogue.md +116 -0
  543. package/src/squads/cybersecurity/agents/shannon-runner.md +108 -0
  544. package/src/squads/cybersecurity/squad.yaml +56 -0
  545. package/src/squads/data-squad/README.md +30 -0
  546. package/src/squads/data-squad/agents/avinash-kaushik.md +268 -0
  547. package/src/squads/data-squad/agents/data-chief.md +167 -0
  548. package/src/squads/data-squad/agents/david-spinks.md +277 -0
  549. package/src/squads/data-squad/agents/nick-mehta.md +294 -0
  550. package/src/squads/data-squad/agents/peter-fader.md +246 -0
  551. package/src/squads/data-squad/agents/sean-ellis.md +303 -0
  552. package/src/squads/data-squad/agents/wes-kao.md +268 -0
  553. package/src/squads/data-squad/squad.yaml +46 -0
  554. package/src/squads/design-squad/README.md +31 -0
  555. package/src/squads/design-squad/agents/brad-frost.md +185 -0
  556. package/src/squads/design-squad/agents/dan-mall.md +178 -0
  557. package/src/squads/design-squad/agents/dave-malouf.md +198 -0
  558. package/src/squads/design-squad/agents/design-chief.md +109 -0
  559. package/src/squads/design-squad/agents/design-system-architect.md +109 -0
  560. package/src/squads/design-squad/agents/ui-engineer.md +102 -0
  561. package/src/squads/design-squad/agents/ux-designer.md +105 -0
  562. package/src/squads/design-squad/agents/visual-generator.md +108 -0
  563. package/src/squads/design-squad/squad.yaml +48 -0
  564. package/src/squads/hormozi-squad/README.md +39 -0
  565. package/src/squads/hormozi-squad/agents/hormozi-ads.md +159 -0
  566. package/src/squads/hormozi-squad/agents/hormozi-advisor.md +178 -0
  567. package/src/squads/hormozi-squad/agents/hormozi-audit.md +178 -0
  568. package/src/squads/hormozi-squad/agents/hormozi-chief.md +111 -0
  569. package/src/squads/hormozi-squad/agents/hormozi-closer.md +179 -0
  570. package/src/squads/hormozi-squad/agents/hormozi-content.md +166 -0
  571. package/src/squads/hormozi-squad/agents/hormozi-copy.md +152 -0
  572. package/src/squads/hormozi-squad/agents/hormozi-hooks.md +177 -0
  573. package/src/squads/hormozi-squad/agents/hormozi-launch.md +160 -0
  574. package/src/squads/hormozi-squad/agents/hormozi-leads.md +198 -0
  575. package/src/squads/hormozi-squad/agents/hormozi-models.md +191 -0
  576. package/src/squads/hormozi-squad/agents/hormozi-offers.md +197 -0
  577. package/src/squads/hormozi-squad/agents/hormozi-pricing.md +151 -0
  578. package/src/squads/hormozi-squad/agents/hormozi-retention.md +166 -0
  579. package/src/squads/hormozi-squad/agents/hormozi-scale.md +175 -0
  580. package/src/squads/hormozi-squad/agents/hormozi-workshop.md +160 -0
  581. package/src/squads/hormozi-squad/squad.yaml +60 -0
  582. package/src/squads/movement/README.md +29 -0
  583. package/src/squads/movement/agents/analista-de-impacto.md +350 -0
  584. package/src/squads/movement/agents/estrategista-de-ciclo.md +301 -0
  585. package/src/squads/movement/agents/fenomenologo.md +169 -0
  586. package/src/squads/movement/agents/identitario.md +265 -0
  587. package/src/squads/movement/agents/manifestador.md +279 -0
  588. package/src/squads/movement/agents/movement-architect.md +210 -0
  589. package/src/squads/movement/agents/movement-chief.md +135 -0
  590. package/src/squads/movement/squad.yaml +45 -0
  591. package/src/squads/storytelling/README.md +35 -0
  592. package/src/squads/storytelling/agents/blake-snyder.md +225 -0
  593. package/src/squads/storytelling/agents/dan-harmon.md +167 -0
  594. package/src/squads/storytelling/agents/joseph-campbell.md +184 -0
  595. package/src/squads/storytelling/agents/keith-johnstone.md +157 -0
  596. package/src/squads/storytelling/agents/kindra-hall.md +162 -0
  597. package/src/squads/storytelling/agents/marshall-ganz.md +167 -0
  598. package/src/squads/storytelling/agents/matthew-dicks.md +152 -0
  599. package/src/squads/storytelling/agents/nancy-duarte.md +154 -0
  600. package/src/squads/storytelling/agents/oren-klaff.md +166 -0
  601. package/src/squads/storytelling/agents/park-howell.md +152 -0
  602. package/src/squads/storytelling/agents/shawn-coyne.md +208 -0
  603. package/src/squads/storytelling/agents/story-chief.md +155 -0
  604. package/src/squads/storytelling/squad.yaml +52 -0
  605. package/src/squads/traffic-masters/README.md +39 -0
  606. package/src/squads/traffic-masters/agents/ad-midas.md +149 -0
  607. package/src/squads/traffic-masters/agents/ads-analyst.md +135 -0
  608. package/src/squads/traffic-masters/agents/creative-analyst.md +142 -0
  609. package/src/squads/traffic-masters/agents/depesh-mandalia.md +174 -0
  610. package/src/squads/traffic-masters/agents/fiscal.md +144 -0
  611. package/src/squads/traffic-masters/agents/kasim-aslam.md +158 -0
  612. package/src/squads/traffic-masters/agents/media-buyer.md +159 -0
  613. package/src/squads/traffic-masters/agents/molly-pittman.md +185 -0
  614. package/src/squads/traffic-masters/agents/nicholas-kusmich.md +157 -0
  615. package/src/squads/traffic-masters/agents/pedro-sobral.md +158 -0
  616. package/src/squads/traffic-masters/agents/performance-analyst.md +135 -0
  617. package/src/squads/traffic-masters/agents/pixel-specialist.md +144 -0
  618. package/src/squads/traffic-masters/agents/ralph-burns.md +163 -0
  619. package/src/squads/traffic-masters/agents/scale-optimizer.md +144 -0
  620. package/src/squads/traffic-masters/agents/tom-breeze.md +175 -0
  621. package/src/squads/traffic-masters/agents/traffic-chief.md +97 -0
  622. package/src/squads/traffic-masters/squad.yaml +59 -0
  623. package/tools/installer/commands/install.js +12 -0
  624. package/tools/installer/core/config.js +20 -0
  625. package/tools/installer/core/installer.js +100 -0
  626. package/tools/installer/core/manifest-generator.js +14 -3
  627. package/tools/installer/modules/cli-config.js +175 -0
  628. package/tools/installer/modules/mcp-config.js +137 -0
  629. package/tools/installer/modules/skills-lib.js +135 -0
  630. package/tools/installer/ui.js +210 -0
@@ -0,0 +1,989 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>c4-tweaks · Slide. See it morph. (English)</title>
6
+ <link rel="preconnect" href="https://fonts.googleapis.com">
7
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
8
+ <link href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,300..700;1,8..60,300..700&family=Noto+Serif+SC:wght@300;400;500;600;700&family=Inter:wght@100;200;300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
9
+ <style>
10
+ :root {
11
+ --bg: #000000;
12
+ --ink: #FFFFFF;
13
+ --ink-80: rgba(255,255,255,0.82);
14
+ --ink-60: rgba(255,255,255,0.58);
15
+ --muted: rgba(255,255,255,0.40);
16
+ --hairline: rgba(255,255,255,0.12);
17
+ --accent: #D97757;
18
+ --accent-deep: #B85D3D;
19
+
20
+ /* Mock landing page · warm variant (initial state) */
21
+ --warm-bg: #F6EFE6;
22
+ --warm-panel: #FFFFFF;
23
+ --warm-ink: #1A1918;
24
+ --warm-dim: #8B867E;
25
+ --warm-hair: rgba(0,0,0,0.08);
26
+ --warm-accent: #D97757;
27
+
28
+ /* Mock landing page · cool variant (after slider 1) */
29
+ --cool-bg: #0E1620;
30
+ --cool-panel: #17222E;
31
+ --cool-ink: #E8EEF5;
32
+ --cool-dim: #7A8A9B;
33
+ --cool-hair: rgba(255,255,255,0.08);
34
+ --cool-accent: #5A8CB8;
35
+
36
+ --serif-en: "Source Serif 4", Georgia, serif;
37
+ --serif-cn: "Noto Serif SC", "Source Serif 4", Georgia, serif;
38
+ --sans: "Inter", -apple-system, "PingFang SC", "HarmonyOS Sans SC", system-ui, sans-serif;
39
+ --mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;
40
+ }
41
+ html, body {
42
+ margin: 0; padding: 0;
43
+ background: #000;
44
+ overflow: hidden;
45
+ font-family: var(--sans);
46
+ color: var(--ink);
47
+ -webkit-font-smoothing: antialiased;
48
+ }
49
+ * { box-sizing: border-box; }
50
+
51
+ .stage {
52
+ position: fixed;
53
+ top: 50%; left: 50%;
54
+ width: 1920px; height: 1080px;
55
+ transform: translate(-50%, -50%);
56
+ transform-origin: center center;
57
+ background: var(--bg);
58
+ overflow: hidden;
59
+ }
60
+
61
+ /* Film grain */
62
+ .grain {
63
+ position: absolute; inset: 0;
64
+ background-image:
65
+ radial-gradient(rgba(255,255,255,0.02) 1px, transparent 1px);
66
+ background-size: 3px 3px;
67
+ opacity: 0.4;
68
+ pointer-events: none;
69
+ z-index: 2;
70
+ }
71
+
72
+ /* Watermark */
73
+ .watermark {
74
+ position: absolute;
75
+ top: 44px; left: 56px;
76
+ font-family: var(--mono);
77
+ font-size: 14px;
78
+ font-weight: 500;
79
+ letter-spacing: 0.2em;
80
+ color: rgba(255,255,255,0.16);
81
+ z-index: 10;
82
+ }
83
+
84
+ .version-mark {
85
+ position: absolute;
86
+ bottom: 44px; right: 56px;
87
+ font-family: var(--mono);
88
+ font-size: 12px;
89
+ letter-spacing: 0.2em;
90
+ color: rgba(255,255,255,0.12);
91
+ z-index: 10;
92
+ }
93
+
94
+ /* ============ Main composition ============ */
95
+ .composition {
96
+ position: absolute;
97
+ inset: 0;
98
+ display: grid;
99
+ grid-template-columns: 1080px 500px;
100
+ gap: 80px;
101
+ padding: 130px 120px 140px 140px;
102
+ align-items: center;
103
+ perspective: 2400px;
104
+ }
105
+
106
+ /* ---- Design preview (left) ---- */
107
+ .preview-frame {
108
+ position: relative;
109
+ width: 1080px;
110
+ height: 800px;
111
+ border-radius: 18px;
112
+ overflow: hidden;
113
+ transform-style: preserve-3d;
114
+ transform: rotateX(6deg) rotateY(-4deg);
115
+ box-shadow:
116
+ 0 50px 120px rgba(0,0,0,0.6),
117
+ 0 0 0 1px rgba(255,255,255,0.06);
118
+ opacity: 0;
119
+ will-change: opacity, transform, background;
120
+ transition: background 280ms cubic-bezier(.2,.8,.2,1);
121
+ }
122
+ .preview-frame.warm {
123
+ background: var(--warm-bg);
124
+ }
125
+ .preview-frame.cool {
126
+ background: var(--cool-bg);
127
+ }
128
+
129
+ /* Browser chrome top bar */
130
+ .browser-chrome {
131
+ display: flex;
132
+ align-items: center;
133
+ gap: 10px;
134
+ padding: 16px 22px;
135
+ border-bottom: 1px solid var(--warm-hair);
136
+ background: var(--warm-panel);
137
+ transition: all 280ms cubic-bezier(.2,.8,.2,1);
138
+ }
139
+ .cool .browser-chrome {
140
+ background: var(--cool-panel);
141
+ border-bottom-color: var(--cool-hair);
142
+ }
143
+ .dot {
144
+ width: 11px; height: 11px; border-radius: 50%;
145
+ background: rgba(0,0,0,0.14);
146
+ }
147
+ .cool .dot { background: rgba(255,255,255,0.14); }
148
+ .url-bar {
149
+ flex: 1;
150
+ margin-left: 14px;
151
+ padding: 6px 14px;
152
+ border-radius: 6px;
153
+ background: rgba(0,0,0,0.04);
154
+ font-family: var(--mono);
155
+ font-size: 12px;
156
+ color: var(--warm-dim);
157
+ letter-spacing: 0.05em;
158
+ transition: all 280ms cubic-bezier(.2,.8,.2,1);
159
+ }
160
+ .cool .url-bar {
161
+ background: rgba(255,255,255,0.04);
162
+ color: var(--cool-dim);
163
+ }
164
+
165
+ /* Hero content */
166
+ .preview-body {
167
+ padding: 54px 72px 60px 72px;
168
+ color: var(--warm-ink);
169
+ transition: color 280ms cubic-bezier(.2,.8,.2,1);
170
+ }
171
+ .cool .preview-body { color: var(--cool-ink); }
172
+
173
+ .preview-eyebrow {
174
+ font-family: var(--mono);
175
+ font-size: 11px;
176
+ font-weight: 500;
177
+ letter-spacing: 0.24em;
178
+ text-transform: uppercase;
179
+ color: var(--warm-accent);
180
+ transition: color 280ms cubic-bezier(.2,.8,.2,1);
181
+ }
182
+ .cool .preview-eyebrow { color: var(--cool-accent); }
183
+
184
+ .preview-title {
185
+ margin-top: 16px;
186
+ font-family: var(--serif-en);
187
+ font-weight: 400;
188
+ font-size: 86px;
189
+ line-height: 1.02;
190
+ letter-spacing: -0.02em;
191
+ transition: font-family 240ms cubic-bezier(.2,.8,.2,1),
192
+ font-weight 240ms cubic-bezier(.2,.8,.2,1),
193
+ letter-spacing 240ms cubic-bezier(.2,.8,.2,1);
194
+ }
195
+ .preview-title .em {
196
+ color: var(--warm-accent);
197
+ font-style: italic;
198
+ transition: color 280ms cubic-bezier(.2,.8,.2,1);
199
+ }
200
+ .cool .preview-title .em { color: var(--cool-accent); }
201
+
202
+ .preview-frame.sans .preview-title {
203
+ font-family: var(--sans);
204
+ font-weight: 200;
205
+ letter-spacing: -0.045em;
206
+ }
207
+ .preview-frame.sans .preview-title .em {
208
+ font-style: normal;
209
+ }
210
+
211
+ .preview-sub {
212
+ margin-top: 24px;
213
+ font-family: var(--serif-en);
214
+ font-size: 20px;
215
+ font-weight: 300;
216
+ line-height: 1.6;
217
+ max-width: 720px;
218
+ color: var(--warm-dim);
219
+ transition: color 280ms cubic-bezier(.2,.8,.2,1),
220
+ font-family 240ms cubic-bezier(.2,.8,.2,1);
221
+ }
222
+ .cool .preview-sub { color: var(--cool-dim); }
223
+ .preview-frame.sans .preview-sub {
224
+ font-family: var(--sans);
225
+ }
226
+
227
+ /* Density cards grid */
228
+ .card-grid {
229
+ margin-top: 54px;
230
+ display: grid;
231
+ grid-template-columns: repeat(3, 1fr);
232
+ gap: 18px;
233
+ transition: grid-template-columns 280ms cubic-bezier(.2,.8,.2,1),
234
+ gap 280ms cubic-bezier(.2,.8,.2,1);
235
+ }
236
+ .preview-frame.dense .card-grid {
237
+ grid-template-columns: repeat(3, 1fr);
238
+ grid-auto-rows: minmax(72px, auto);
239
+ gap: 10px;
240
+ }
241
+
242
+ .card {
243
+ padding: 22px 22px 24px 22px;
244
+ border-radius: 10px;
245
+ background: rgba(0,0,0,0.035);
246
+ border: 1px solid var(--warm-hair);
247
+ transition: all 280ms cubic-bezier(.2,.8,.2,1);
248
+ }
249
+ .cool .card {
250
+ background: rgba(255,255,255,0.03);
251
+ border-color: var(--cool-hair);
252
+ }
253
+ .preview-frame.dense .card {
254
+ padding: 12px 14px;
255
+ }
256
+
257
+ .card-icon {
258
+ width: 28px; height: 28px;
259
+ border-radius: 6px;
260
+ background: var(--warm-accent);
261
+ opacity: 0.16;
262
+ margin-bottom: 14px;
263
+ transition: all 280ms cubic-bezier(.2,.8,.2,1);
264
+ }
265
+ .cool .card-icon { background: var(--cool-accent); }
266
+ .preview-frame.dense .card-icon {
267
+ width: 18px; height: 18px;
268
+ margin-bottom: 8px;
269
+ }
270
+
271
+ .card-title {
272
+ font-family: var(--serif-en);
273
+ font-size: 18px;
274
+ font-weight: 500;
275
+ color: var(--warm-ink);
276
+ letter-spacing: -0.005em;
277
+ transition: color 280ms cubic-bezier(.2,.8,.2,1),
278
+ font-family 240ms cubic-bezier(.2,.8,.2,1),
279
+ font-size 280ms cubic-bezier(.2,.8,.2,1);
280
+ }
281
+ .cool .card-title { color: var(--cool-ink); }
282
+ .preview-frame.sans .card-title {
283
+ font-family: var(--sans);
284
+ font-weight: 500;
285
+ }
286
+ .preview-frame.dense .card-title {
287
+ font-size: 13px;
288
+ }
289
+
290
+ .card-text {
291
+ margin-top: 6px;
292
+ font-family: var(--serif-en);
293
+ font-size: 13px;
294
+ line-height: 1.45;
295
+ color: var(--warm-dim);
296
+ transition: all 280ms cubic-bezier(.2,.8,.2,1);
297
+ }
298
+ .cool .card-text { color: var(--cool-dim); }
299
+ .preview-frame.sans .card-text { font-family: var(--sans); }
300
+ .preview-frame.dense .card-text {
301
+ font-size: 11px;
302
+ line-height: 1.3;
303
+ opacity: 0.85;
304
+ }
305
+
306
+ /* Extra cards (hidden in sparse mode) */
307
+ .card.extra {
308
+ opacity: 0;
309
+ transform: scale(0.92);
310
+ transition: opacity 240ms cubic-bezier(.2,.8,.2,1),
311
+ transform 240ms cubic-bezier(.2,.8,.2,1),
312
+ background 280ms cubic-bezier(.2,.8,.2,1),
313
+ border-color 280ms cubic-bezier(.2,.8,.2,1);
314
+ pointer-events: none;
315
+ max-height: 0;
316
+ padding: 0;
317
+ overflow: hidden;
318
+ }
319
+ .preview-frame.dense .card.extra {
320
+ opacity: 1;
321
+ transform: scale(1);
322
+ max-height: 120px;
323
+ padding: 12px 14px;
324
+ }
325
+
326
+ /* ---- Slider panel (right) ---- */
327
+ .slider-panel {
328
+ position: relative;
329
+ width: 500px;
330
+ opacity: 0;
331
+ will-change: opacity, transform;
332
+ display: flex;
333
+ flex-direction: column;
334
+ gap: 64px;
335
+ }
336
+
337
+ .anchor-line {
338
+ position: absolute;
339
+ top: -80px;
340
+ left: 8px;
341
+ font-family: var(--serif-en);
342
+ font-weight: 400;
343
+ font-size: 26px;
344
+ letter-spacing: 0.02em;
345
+ color: var(--ink-80);
346
+ opacity: 0;
347
+ will-change: opacity, transform;
348
+ }
349
+ .anchor-line .em {
350
+ color: var(--accent);
351
+ font-weight: 500;
352
+ }
353
+
354
+ .slider-item {
355
+ display: flex;
356
+ flex-direction: column;
357
+ gap: 18px;
358
+ }
359
+
360
+ .slider-label {
361
+ display: flex;
362
+ align-items: baseline;
363
+ justify-content: space-between;
364
+ }
365
+ .slider-name {
366
+ font-family: var(--mono);
367
+ font-size: 14px;
368
+ font-weight: 500;
369
+ letter-spacing: 0.18em;
370
+ color: var(--ink-80);
371
+ text-transform: uppercase;
372
+ }
373
+ .slider-value {
374
+ font-family: var(--mono);
375
+ font-size: 12px;
376
+ letter-spacing: 0.14em;
377
+ color: var(--muted);
378
+ }
379
+
380
+ /* Track */
381
+ .track {
382
+ position: relative;
383
+ width: 100%;
384
+ height: 2px;
385
+ background: var(--hairline);
386
+ }
387
+ .track-fill {
388
+ position: absolute;
389
+ top: 0; left: 0;
390
+ height: 100%;
391
+ width: 10%;
392
+ background: var(--accent);
393
+ will-change: width;
394
+ }
395
+
396
+ /* Tick marks */
397
+ .ticks {
398
+ position: absolute;
399
+ inset: -4px 0 -4px 0;
400
+ display: flex;
401
+ justify-content: space-between;
402
+ pointer-events: none;
403
+ }
404
+ .tick {
405
+ width: 1px;
406
+ height: 10px;
407
+ background: rgba(255,255,255,0.14);
408
+ }
409
+
410
+ /* Knob */
411
+ .knob {
412
+ position: absolute;
413
+ top: 50%;
414
+ left: 10%;
415
+ width: 26px; height: 26px;
416
+ border-radius: 50%;
417
+ background: var(--ink);
418
+ transform: translate(-50%, -50%);
419
+ box-shadow: 0 0 0 1px rgba(0,0,0,0.6),
420
+ 0 8px 24px rgba(0,0,0,0.5);
421
+ will-change: left, transform, box-shadow;
422
+ }
423
+ .knob.active {
424
+ box-shadow: 0 0 0 2px var(--accent),
425
+ 0 0 30px rgba(217,119,87,0.45),
426
+ 0 8px 24px rgba(0,0,0,0.5);
427
+ }
428
+
429
+ /* Cursor */
430
+ .cursor {
431
+ position: absolute;
432
+ width: 20px; height: 20px;
433
+ pointer-events: none;
434
+ will-change: left, top, opacity;
435
+ opacity: 0;
436
+ z-index: 20;
437
+ }
438
+ .cursor svg { width: 100%; height: 100%; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8)); }
439
+
440
+ /* ---- Brand reveal ---- */
441
+ /* Stage dimmer: fades the composition out just before the panel slides in */
442
+ .stage-dimmer {
443
+ position: absolute;
444
+ inset: 0;
445
+ background: #000000;
446
+ opacity: 0;
447
+ z-index: 40;
448
+ pointer-events: none;
449
+ will-change: opacity;
450
+ }
451
+ .brand-panel {
452
+ position: absolute;
453
+ inset: 0;
454
+ background: #F5F4F0;
455
+ transform: translateY(100%);
456
+ display: flex;
457
+ flex-direction: column;
458
+ align-items: center;
459
+ justify-content: center;
460
+ z-index: 50;
461
+ will-change: transform;
462
+ }
463
+ .brand-wordmark {
464
+ font-family: var(--serif-en);
465
+ font-size: 72px;
466
+ font-weight: 100;
467
+ font-variation-settings: "wght" 100;
468
+ letter-spacing: -0.02em;
469
+ color: #1A1918;
470
+ text-align: center;
471
+ line-height: 1;
472
+ opacity: 0;
473
+ transform: translateY(20px);
474
+ will-change: opacity, transform, font-variation-settings, font-weight;
475
+ }
476
+ .brand-wordmark .accent { color: #D97757; font-weight: inherit; }
477
+
478
+ .brand-line {
479
+ /* Flex-centered, 60px below wordmark (line-height 1 @ 72px → descender + 24 gap) */
480
+ margin-top: 60px;
481
+ height: 2px;
482
+ width: 0;
483
+ background: #D97757;
484
+ align-self: center;
485
+ will-change: width;
486
+ }
487
+
488
+ </style>
489
+ </head>
490
+ <body>
491
+
492
+ <div class="stage" id="stage">
493
+
494
+ <div class="grain"></div>
495
+ <div class="watermark">HUASHU · DESIGN</div>
496
+ <div class="version-mark">V2 · 2026</div>
497
+
498
+ <div class="composition">
499
+
500
+ <!-- LEFT: design preview -->
501
+ <div class="preview-frame warm" id="preview">
502
+ <div class="browser-chrome">
503
+ <span class="dot"></span><span class="dot"></span><span class="dot"></span>
504
+ <div class="url-bar">yourbrand.design</div>
505
+ </div>
506
+ <div class="preview-body">
507
+ <div class="preview-eyebrow">Agent Studio</div>
508
+ <div class="preview-title">Built for <span class="em">them</span>.<br/>Who never sleep.</div>
509
+ <div class="preview-sub">A design system that ships while you rest — ready before you open the file.</div>
510
+
511
+ <div class="card-grid" id="cardGrid">
512
+ <div class="card">
513
+ <div class="card-icon"></div>
514
+ <div class="card-title">Brand Assets</div>
515
+ <div class="card-text">Logos, palettes, type — one source of truth.</div>
516
+ </div>
517
+ <div class="card">
518
+ <div class="card-icon"></div>
519
+ <div class="card-title">Prototype</div>
520
+ <div class="card-text">One sentence in, a clickable app out.</div>
521
+ </div>
522
+ <div class="card">
523
+ <div class="card-icon"></div>
524
+ <div class="card-title">Motion</div>
525
+ <div class="card-text">Timeline is code. Swap 25 for 60 fps.</div>
526
+ </div>
527
+ <div class="card extra">
528
+ <div class="card-icon"></div>
529
+ <div class="card-title">Slides</div>
530
+ <div class="card-text">HTML is PPTX.</div>
531
+ </div>
532
+ <div class="card extra">
533
+ <div class="card-icon"></div>
534
+ <div class="card-title">Infographic</div>
535
+ <div class="card-text">Data in, magazine out.</div>
536
+ </div>
537
+ <div class="card extra">
538
+ <div class="card-icon"></div>
539
+ <div class="card-title">Review</div>
540
+ <div class="card-text">Five axes. Honest punch list.</div>
541
+ </div>
542
+ <div class="card extra">
543
+ <div class="card-icon"></div>
544
+ <div class="card-title">Advisor</div>
545
+ <div class="card-text">Three roads. You pick.</div>
546
+ </div>
547
+ <div class="card extra">
548
+ <div class="card-icon"></div>
549
+ <div class="card-title">Junior</div>
550
+ <div class="card-text">Show first. Polish later.</div>
551
+ </div>
552
+ <div class="card extra">
553
+ <div class="card-icon"></div>
554
+ <div class="card-title">Protocol</div>
555
+ <div class="card-text">Five steps. No skip.</div>
556
+ </div>
557
+ </div>
558
+ </div>
559
+ </div>
560
+
561
+ <!-- RIGHT: slider panel -->
562
+ <div class="slider-panel" id="panel">
563
+
564
+ <div class="anchor-line" id="anchor">
565
+ Slide. <span class="em">See it morph.</span>
566
+ </div>
567
+
568
+ <!-- Slider 1 · palette -->
569
+ <div class="slider-item">
570
+ <div class="slider-label">
571
+ <span class="slider-name">Palette</span>
572
+ <span class="slider-value" id="val1">warm</span>
573
+ </div>
574
+ <div class="track">
575
+ <div class="ticks">
576
+ <span class="tick"></span><span class="tick"></span><span class="tick"></span>
577
+ <span class="tick"></span><span class="tick"></span>
578
+ </div>
579
+ <div class="track-fill" id="fill1"></div>
580
+ <div class="knob" id="knob1"></div>
581
+ </div>
582
+ </div>
583
+
584
+ <!-- Slider 2 · type -->
585
+ <div class="slider-item">
586
+ <div class="slider-label">
587
+ <span class="slider-name">Type</span>
588
+ <span class="slider-value" id="val2">serif</span>
589
+ </div>
590
+ <div class="track">
591
+ <div class="ticks">
592
+ <span class="tick"></span><span class="tick"></span><span class="tick"></span>
593
+ <span class="tick"></span><span class="tick"></span>
594
+ </div>
595
+ <div class="track-fill" id="fill2"></div>
596
+ <div class="knob" id="knob2"></div>
597
+ </div>
598
+ </div>
599
+
600
+ <!-- Slider 3 · density -->
601
+ <div class="slider-item">
602
+ <div class="slider-label">
603
+ <span class="slider-name">Density</span>
604
+ <span class="slider-value" id="val3">sparse</span>
605
+ </div>
606
+ <div class="track">
607
+ <div class="ticks">
608
+ <span class="tick"></span><span class="tick"></span><span class="tick"></span>
609
+ <span class="tick"></span><span class="tick"></span>
610
+ </div>
611
+ <div class="track-fill" id="fill3"></div>
612
+ <div class="knob" id="knob3"></div>
613
+ </div>
614
+ </div>
615
+
616
+ </div>
617
+
618
+ <!-- Cursor -->
619
+ <div class="cursor" id="cursor">
620
+ <svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
621
+ <path d="M2 2 L2 16 L6 12 L9 18 L11 17 L8 11 L14 11 Z"
622
+ fill="white" stroke="#000" stroke-width="1.2" stroke-linejoin="round"/>
623
+ </svg>
624
+ </div>
625
+ </div>
626
+
627
+ <!-- Stage dimmer (fades scene to black before panel sweeps in) -->
628
+ <div class="stage-dimmer" id="stageDimmer"></div>
629
+
630
+ <!-- Brand reveal layer -->
631
+ <div class="brand-panel" id="brandPanel">
632
+ <div class="brand-wordmark" id="brandMark">huashu<span class="accent">-</span>design</div>
633
+ <div class="brand-line" id="brandLine"></div>
634
+ </div>
635
+
636
+ </div>
637
+
638
+ <script>
639
+ (function() {
640
+ // ---------- Fit stage ----------
641
+ const stage = document.getElementById('stage');
642
+ function rescale() {
643
+ const s = Math.min(window.innerWidth / 1920, window.innerHeight / 1080);
644
+ stage.style.transform = `translate(-50%, -50%) scale(${s})`;
645
+ }
646
+ rescale();
647
+ window.addEventListener('resize', rescale);
648
+
649
+ // ---------- Animation ----------
650
+ const DURATION = 10.0; // seconds
651
+
652
+ const preview = document.getElementById('preview');
653
+ const panel = document.getElementById('panel');
654
+ const anchor = document.getElementById('anchor');
655
+ const cursor = document.getElementById('cursor');
656
+
657
+ const knob1 = document.getElementById('knob1');
658
+ const knob2 = document.getElementById('knob2');
659
+ const knob3 = document.getElementById('knob3');
660
+ const fill1 = document.getElementById('fill1');
661
+ const fill2 = document.getElementById('fill2');
662
+ const fill3 = document.getElementById('fill3');
663
+ const val1 = document.getElementById('val1');
664
+ const val2 = document.getElementById('val2');
665
+ const val3 = document.getElementById('val3');
666
+
667
+ const stageDimmer = document.getElementById('stageDimmer');
668
+ const brandPanel = document.getElementById('brandPanel');
669
+ const brandMark = document.getElementById('brandMark');
670
+ const brandLine = document.getElementById('brandLine');
671
+
672
+ // Easings
673
+ const expoOut = t => t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
674
+ const expoIn = t => t === 0 ? 0 : Math.pow(2, 10 * (t - 1));
675
+ const cubicInOut = t => t < 0.5 ? 4*t*t*t : 1 - Math.pow(-2*t + 2, 3) / 2;
676
+ const cubicOut = t => 1 - Math.pow(1 - t, 3);
677
+
678
+ function clamp(v, lo, hi) { return Math.max(lo, Math.min(hi, v)); }
679
+ function lerp(t, t0, t1, v0, v1, ease) {
680
+ if (t <= t0) return v0;
681
+ if (t >= t1) return v1;
682
+ const k = (t - t0) / (t1 - t0);
683
+ return v0 + (v1 - v0) * (ease ? ease(k) : k);
684
+ }
685
+ function clampLerp(t, t0, t1) {
686
+ if (t <= t0) return 0;
687
+ if (t >= t1) return 1;
688
+ return (t - t0) / (t1 - t0);
689
+ }
690
+
691
+ // Knob motion — drag feel: first 70% is a cubic ease (hand moving),
692
+ // final 15% is overshoot + snap to target (magnetic arrival).
693
+ function knobMotion(t, t0, t1, fromPct, toPct) {
694
+ if (t <= t0) return fromPct;
695
+ if (t >= t1) return toPct;
696
+ const k = (t - t0) / (t1 - t0);
697
+ const direction = toPct > fromPct ? 1 : -1;
698
+ const range = Math.abs(toPct - fromPct);
699
+
700
+ if (k < 0.72) {
701
+ // Main drag: cubic easeInOut feels like a hand moving
702
+ const e = cubicInOut(k / 0.72);
703
+ return fromPct + (toPct - fromPct) * e;
704
+ } else if (k < 0.85) {
705
+ // Overshoot past target by ~2%
706
+ const overK = (k - 0.72) / 0.13;
707
+ const overshoot = 2.2;
708
+ return toPct + direction * overshoot * Math.sin(overK * Math.PI);
709
+ } else {
710
+ // Settled at target
711
+ return toPct;
712
+ }
713
+ }
714
+
715
+ // Timeline (seconds, 10s total)
716
+ const T = {
717
+ stage_in: [0.0, 1.0], // frame + panel appear
718
+ anchor_in: [0.8, 1.4],
719
+
720
+ // Slider 1 · palette: warm → cool (1.2s → 3.2s) — arrive at 3.0s
721
+ s1_cursor_to: [1.3, 1.9],
722
+ s1_drag: [1.9, 2.9],
723
+ s1_settle: [2.9, 3.1],
724
+
725
+ // Slider 2 · type: serif → sans
726
+ s2_cursor_to: [3.2, 3.7],
727
+ s2_drag: [3.7, 4.7],
728
+ s2_settle: [4.7, 4.9],
729
+
730
+ // Slider 3 · density: sparse → dense
731
+ s3_cursor_to: [5.0, 5.5],
732
+ s3_drag: [5.5, 6.5],
733
+ s3_settle: [6.5, 6.7],
734
+
735
+ hold: [6.7, 8.0],
736
+
737
+ // Brand reveal (cream walloff · aligned with hero-v10 signature)
738
+ scene_out: [8.0, 8.3], // main composition fade to black (0.3s)
739
+ brand_panel: [8.3, 8.7], // cream panel sweeps up from bottom, expoOut (0.4s)
740
+ brand_mark: [8.7, 9.3], // wordmark: wght 100→500 + y 20→0 + opacity 0→1 (0.6s)
741
+ brand_line: [9.3, 9.7], // orange line expands 0→280 from center (0.4s)
742
+ brand_hold: [9.7, 10.0], // hold final frame
743
+ };
744
+
745
+ // Slider-to-state logic. Value-changes happen at settle start.
746
+ let state = { palette: 'warm', type: 'serif', density: 'sparse' };
747
+ let lastStateHash = '';
748
+ function updatePreview() {
749
+ preview.classList.remove('warm', 'cool', 'sans', 'dense');
750
+ if (state.palette === 'warm') preview.classList.add('warm');
751
+ else preview.classList.add('cool');
752
+ if (state.type === 'sans') preview.classList.add('sans');
753
+ if (state.density === 'dense') preview.classList.add('dense');
754
+ }
755
+ updatePreview();
756
+
757
+ function setKnobState(knob, active) {
758
+ if (active) knob.classList.add('active');
759
+ else knob.classList.remove('active');
760
+ }
761
+
762
+ function setValueLabel(el, text) {
763
+ if (el.textContent !== text) el.textContent = text;
764
+ }
765
+
766
+ // ---------- Cursor path (in composition coords) ----------
767
+ // Composition uses grid: left column 1220 + 60 gap, panel is at right.
768
+ // We'll position cursor using .composition-relative absolute positioning.
769
+ // Cursor is child of .composition, whose padding is 130/100/140/140.
770
+ // So coords relative to .composition padding-box.
771
+ // Simpler: cursor is absolute in .stage coords since parent composition
772
+ // covers full stage. Use inline style left/top in px.
773
+
774
+ // Anchor positions (rough — will fine-tune):
775
+ const CURSOR_PARK = { x: 1900, y: 1080 }; // off-screen bottom-right
776
+ // Slider tracks: panel starts around x≈1420, width 520. Each track spans that width.
777
+ // We'll measure actual rect at first tick.
778
+ let sliderRects = null;
779
+ function measureRects() {
780
+ const stageRect = stage.getBoundingClientRect();
781
+ const scale = stageRect.width / 1920;
782
+ const getTrackBox = (id) => {
783
+ const el = document.getElementById(id).parentElement; // .track
784
+ const r = el.getBoundingClientRect();
785
+ return {
786
+ left: (r.left - stageRect.left) / scale,
787
+ top: (r.top - stageRect.top) / scale,
788
+ width: r.width / scale,
789
+ height: r.height / scale,
790
+ };
791
+ };
792
+ sliderRects = {
793
+ s1: getTrackBox('knob1'),
794
+ s2: getTrackBox('knob2'),
795
+ s3: getTrackBox('knob3'),
796
+ };
797
+ }
798
+
799
+ function positionCursor(x, y, opacity) {
800
+ cursor.style.left = x + 'px';
801
+ cursor.style.top = y + 'px';
802
+ cursor.style.opacity = opacity;
803
+ }
804
+
805
+ function knobLeft(id, pct) {
806
+ const el = document.getElementById(id);
807
+ el.style.left = pct + '%';
808
+ }
809
+ function fillWidth(id, pct) {
810
+ const el = document.getElementById(id);
811
+ el.style.width = pct + '%';
812
+ }
813
+
814
+ // Tick / render
815
+ let startTs = null;
816
+ let frameCount = 0;
817
+
818
+ function tick(ts) {
819
+ if (!startTs) startTs = ts;
820
+ const t = (ts - startTs) / 1000;
821
+
822
+ // Measure rects once
823
+ if (!sliderRects && frameCount > 1) {
824
+ measureRects();
825
+ }
826
+
827
+ // --- Stage in ---
828
+ const stageK = clampLerp(t, T.stage_in[0], T.stage_in[1]);
829
+ const stageOp = cubicOut(stageK);
830
+ preview.style.opacity = stageOp;
831
+ preview.style.transform = `rotateX(${lerp(t, T.stage_in[0], T.stage_in[1], 10, 6, cubicOut)}deg) rotateY(-4deg) translateY(${lerp(t, T.stage_in[0], T.stage_in[1], 20, 0, expoOut)}px)`;
832
+ panel.style.opacity = stageOp;
833
+ panel.style.transform = `translateX(${lerp(t, T.stage_in[0], T.stage_in[1], 30, 0, expoOut)}px)`;
834
+
835
+ // Anchor
836
+ const aK = clampLerp(t, T.anchor_in[0], T.anchor_in[1]);
837
+ anchor.style.opacity = cubicOut(aK);
838
+ anchor.style.transform = `translateY(${lerp(t, T.anchor_in[0], T.anchor_in[1], 10, 0, expoOut)}px)`;
839
+
840
+ // Snap point: when knob reaches target (72% of drag duration)
841
+ const s1SnapT = T.s1_drag[0] + (T.s1_drag[1] - T.s1_drag[0]) * 0.72;
842
+ const s2SnapT = T.s2_drag[0] + (T.s2_drag[1] - T.s2_drag[0]) * 0.72;
843
+ const s3SnapT = T.s3_drag[0] + (T.s3_drag[1] - T.s3_drag[0]) * 0.72;
844
+
845
+ // --- Slider 1: palette ---
846
+ // Knob 10% → 90%
847
+ const k1pct = knobMotion(t, T.s1_drag[0], T.s1_drag[1], 10, 90);
848
+ knobLeft('knob1', k1pct); fillWidth('fill1', k1pct);
849
+ setKnobState(knob1, t >= T.s1_cursor_to[0] && t < T.s1_settle[1] + 0.2);
850
+ if (t >= s1SnapT && state.palette !== 'cool') {
851
+ state.palette = 'cool'; updatePreview(); setValueLabel(val1, 'cool');
852
+ }
853
+
854
+ // --- Slider 2: type ---
855
+ const k2pct = knobMotion(t, T.s2_drag[0], T.s2_drag[1], 10, 90);
856
+ knobLeft('knob2', k2pct); fillWidth('fill2', k2pct);
857
+ setKnobState(knob2, t >= T.s2_cursor_to[0] && t < T.s2_settle[1] + 0.2);
858
+ if (t >= s2SnapT && state.type !== 'sans') {
859
+ state.type = 'sans'; updatePreview(); setValueLabel(val2, 'sans');
860
+ }
861
+
862
+ // --- Slider 3: density ---
863
+ const k3pct = knobMotion(t, T.s3_drag[0], T.s3_drag[1], 10, 90);
864
+ knobLeft('knob3', k3pct); fillWidth('fill3', k3pct);
865
+ setKnobState(knob3, t >= T.s3_cursor_to[0] && t < T.s3_settle[1] + 0.2);
866
+ if (t >= s3SnapT && state.density !== 'dense') {
867
+ state.density = 'dense'; updatePreview(); setValueLabel(val3, 'dense');
868
+ }
869
+
870
+ // --- Cursor choreography ---
871
+ if (sliderRects) {
872
+ const r1 = sliderRects.s1, r2 = sliderRects.s2, r3 = sliderRects.s3;
873
+ // Positions of knob at 10% and 90%
874
+ const k1Start = { x: r1.left + r1.width * 0.10, y: r1.top + r1.height/2 };
875
+ const k1End = { x: r1.left + r1.width * 0.90, y: r1.top + r1.height/2 };
876
+ const k2Start = { x: r2.left + r2.width * 0.10, y: r2.top + r2.height/2 };
877
+ const k2End = { x: r2.left + r2.width * 0.90, y: r2.top + r2.height/2 };
878
+ const k3Start = { x: r3.left + r3.width * 0.10, y: r3.top + r3.height/2 };
879
+ const k3End = { x: r3.left + r3.width * 0.90, y: r3.top + r3.height/2 };
880
+
881
+ let cx = CURSOR_PARK.x, cy = CURSOR_PARK.y, co = 0;
882
+
883
+ if (t < T.s1_cursor_to[0]) {
884
+ // still off-screen (or just appeared)
885
+ cx = CURSOR_PARK.x; cy = CURSOR_PARK.y; co = 0;
886
+ } else if (t < T.s1_cursor_to[1]) {
887
+ // cursor flies to s1 knob start
888
+ const k = clampLerp(t, T.s1_cursor_to[0], T.s1_cursor_to[1]);
889
+ const e = cubicOut(k);
890
+ cx = lerp(t, T.s1_cursor_to[0], T.s1_cursor_to[1], CURSOR_PARK.x, k1Start.x, cubicOut);
891
+ cy = lerp(t, T.s1_cursor_to[0], T.s1_cursor_to[1], CURSOR_PARK.y, k1Start.y, cubicOut);
892
+ co = e;
893
+ } else if (t < T.s1_drag[1]) {
894
+ // dragging s1
895
+ cx = r1.left + (r1.width * k1pct / 100);
896
+ cy = r1.top + r1.height/2;
897
+ co = 1;
898
+ } else if (t < T.s2_cursor_to[0]) {
899
+ cx = k1End.x; cy = k1End.y; co = 1;
900
+ } else if (t < T.s2_cursor_to[1]) {
901
+ cx = lerp(t, T.s2_cursor_to[0], T.s2_cursor_to[1], k1End.x, k2Start.x, cubicInOut);
902
+ cy = lerp(t, T.s2_cursor_to[0], T.s2_cursor_to[1], k1End.y, k2Start.y, cubicInOut);
903
+ co = 1;
904
+ } else if (t < T.s2_drag[1]) {
905
+ cx = r2.left + (r2.width * k2pct / 100);
906
+ cy = r2.top + r2.height/2;
907
+ co = 1;
908
+ } else if (t < T.s3_cursor_to[0]) {
909
+ cx = k2End.x; cy = k2End.y; co = 1;
910
+ } else if (t < T.s3_cursor_to[1]) {
911
+ cx = lerp(t, T.s3_cursor_to[0], T.s3_cursor_to[1], k2End.x, k3Start.x, cubicInOut);
912
+ cy = lerp(t, T.s3_cursor_to[0], T.s3_cursor_to[1], k2End.y, k3Start.y, cubicInOut);
913
+ co = 1;
914
+ } else if (t < T.s3_drag[1]) {
915
+ cx = r3.left + (r3.width * k3pct / 100);
916
+ cy = r3.top + r3.height/2;
917
+ co = 1;
918
+ } else if (t < T.hold[1]) {
919
+ // fade out cursor
920
+ cx = k3End.x; cy = k3End.y;
921
+ co = lerp(t, T.s3_drag[1], T.hold[1], 1, 0, cubicOut);
922
+ }
923
+
924
+ positionCursor(cx, cy, co);
925
+ }
926
+
927
+ // --- Brand reveal (cream walloff · aligned with hero-v10 signature) ---
928
+ // 1) Scene dimmer: composition fades to black (0.3s)
929
+ const soK = clampLerp(t, T.scene_out[0], T.scene_out[1]);
930
+ stageDimmer.style.opacity = cubicOut(soK);
931
+
932
+ // 2) Cream panel sweeps up from bottom, expoOut (0.4s)
933
+ const bpK = clampLerp(t, T.brand_panel[0], T.brand_panel[1]);
934
+ const panelY = lerp(t, T.brand_panel[0], T.brand_panel[1], 100, 0, expoOut);
935
+ brandPanel.style.transform = `translateY(${panelY}%)`;
936
+
937
+ // 3) Wordmark: font-weight 100→500 + y 20→0 + opacity 0→1, expoOut (0.6s)
938
+ const bmK = clampLerp(t, T.brand_mark[0], T.brand_mark[1]);
939
+ const bmE = expoOut(bmK);
940
+ const wght = 100 + (500 - 100) * bmE;
941
+ brandMark.style.opacity = bmE;
942
+ brandMark.style.transform = `translateY(${20 * (1 - bmE)}px)`;
943
+ brandMark.style.fontWeight = Math.round(wght);
944
+ brandMark.style.fontVariationSettings = `"wght" ${wght.toFixed(0)}`;
945
+
946
+ // 4) Orange line: width 0→280 from center, cubicOut (0.4s)
947
+ const blK = clampLerp(t, T.brand_line[0], T.brand_line[1]);
948
+ brandLine.style.width = (280 * cubicOut(blK)) + 'px';
949
+
950
+ frameCount++;
951
+
952
+ // Loop or stop
953
+ if (t < DURATION) {
954
+ requestAnimationFrame(tick);
955
+ } else {
956
+ if (window.__recording === true) {
957
+ // recording mode: hold last frame
958
+ return;
959
+ }
960
+ // Restart after 1s pause (for manual viewing)
961
+ setTimeout(() => {
962
+ startTs = null;
963
+ state = { palette: 'warm', type: 'serif', density: 'sparse' };
964
+ updatePreview();
965
+ setValueLabel(val1, 'warm'); setValueLabel(val2, 'serif'); setValueLabel(val3, 'sparse');
966
+ requestAnimationFrame(tick);
967
+ }, 900);
968
+ }
969
+ }
970
+
971
+ // Start animation after fonts ready
972
+ const startAnim = () => {
973
+ requestAnimationFrame((ts) => {
974
+ startTs = ts;
975
+ window.__ready = true; // signal for render-video.js
976
+ requestAnimationFrame(tick);
977
+ });
978
+ };
979
+
980
+ if (document.fonts && document.fonts.ready) {
981
+ document.fonts.ready.then(startAnim);
982
+ } else {
983
+ setTimeout(startAnim, 500);
984
+ }
985
+ })();
986
+ </script>
987
+
988
+ </body>
989
+ </html>