@hiai-gg/hiai-opencode 0.2.1 → 0.2.2

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 (477) hide show
  1. package/.env.example +4 -0
  2. package/AGENTS.md +34 -38
  3. package/ARCHITECTURE.md +4 -3
  4. package/LICENSE.md +14 -0
  5. package/README.md +52 -21
  6. package/config/hiai-opencode.schema.json +11 -13
  7. package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
  8. package/dist/agents/bob/core.d.ts +6 -0
  9. package/dist/agents/bob/gpt.d.ts +11 -0
  10. package/dist/agents/bob/index.d.ts +3 -0
  11. package/dist/agents/coder/core.d.ts +4 -0
  12. package/dist/agents/coder/gpt.d.ts +1 -4
  13. package/dist/agents/coder/index.d.ts +1 -0
  14. package/dist/agents/manager/agent.d.ts +1 -1
  15. package/dist/agents/manager/default-prompt-sections.d.ts +3 -3
  16. package/dist/agents/manager/guard-integration.d.ts +1 -0
  17. package/dist/agents/prompt-library/index.d.ts +0 -1
  18. package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
  19. package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
  20. package/dist/agents/strategist/identity-constraints.d.ts +1 -1
  21. package/dist/agents/strategist/plan-generation.d.ts +1 -1
  22. package/dist/agents/types.d.ts +2 -1
  23. package/dist/config/defaults.d.ts +1 -0
  24. package/dist/config/platform-schema.d.ts +26 -26
  25. package/dist/config/schema/agent-names.d.ts +6 -6
  26. package/dist/config/schema/agent-overrides.d.ts +0 -128
  27. package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
  28. package/dist/config/types.d.ts +2 -2
  29. package/dist/features/background-agent/manager-notifier.d.ts +46 -0
  30. package/dist/features/background-agent/manager-types.d.ts +40 -0
  31. package/dist/features/background-agent/manager.d.ts +3 -19
  32. package/dist/features/background-agent/polling-manager.d.ts +51 -0
  33. package/dist/features/boulder-state/storage.d.ts +1 -0
  34. package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
  35. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  36. package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
  37. package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
  38. package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
  39. package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
  40. package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
  41. package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
  42. package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
  43. package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
  44. package/dist/hooks/start-work/git-operations.d.ts +47 -0
  45. package/dist/hooks/token-budget.d.ts +30 -0
  46. package/dist/index.js +1185 -1078
  47. package/dist/mcp/rate-limiter.d.ts +68 -0
  48. package/dist/plugin/chat-message.d.ts +8 -0
  49. package/dist/plugin/command-execute-before.d.ts +1 -1
  50. package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
  51. package/dist/plugin/event-handlers/session-error.d.ts +2 -0
  52. package/dist/plugin/event-handlers/session-status.d.ts +2 -0
  53. package/dist/plugin/event-handlers/types.d.ts +62 -0
  54. package/dist/plugin/event-handlers/utils.d.ts +11 -0
  55. package/dist/plugin/event.d.ts +1 -1
  56. package/dist/shared/data-path.d.ts +1 -1
  57. package/dist/shared/errors.d.ts +70 -0
  58. package/dist/shared/extract-session-id.d.ts +8 -0
  59. package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
  60. package/dist/shared/index.d.ts +67 -68
  61. package/dist/shared/internal-initiator-marker.d.ts +1 -1
  62. package/dist/shared/logger.d.ts +5 -1
  63. package/dist/shared/reasoning-content-cache.d.ts +68 -0
  64. package/dist/shared/safe-create-hook.d.ts +4 -4
  65. package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
  66. package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
  67. package/dist/tools/look-at/constants.d.ts +1 -1
  68. package/docs/architecture/bob-manager-architecture.md +244 -0
  69. package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
  70. package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
  71. package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
  72. package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
  73. package/docs/hiai-opencode/api.md +305 -0
  74. package/docs/hiai-opencode/hooks-architecture.md +225 -0
  75. package/docs/hiai-opencode/migration.md +209 -0
  76. package/docs/skill-discovery.md +288 -0
  77. package/package.json +1 -1
  78. package/skills/agent-browser/SKILL.md +193 -0
  79. package/skills/apple-hig/SKILL.md +43 -0
  80. package/skills/article-magazine/SKILL.md +46 -0
  81. package/skills/article-magazine/example.html +81 -0
  82. package/skills/article-magazine/example.md +38 -0
  83. package/skills/canvas-design/SKILL.md +45 -0
  84. package/skills/design-templates/audio-jingle/SKILL.md +132 -0
  85. package/skills/design-templates/audio-jingle/example.html +128 -0
  86. package/skills/design-templates/blog-post/SKILL.md +80 -0
  87. package/skills/design-templates/blog-post/example.html +80 -0
  88. package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
  89. package/skills/design-templates/clinical-case-report/example.html +698 -0
  90. package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
  91. package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
  92. package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
  93. package/skills/design-templates/critique/SKILL.md +258 -0
  94. package/skills/design-templates/critique/example.html +671 -0
  95. package/skills/design-templates/dashboard/SKILL.md +76 -0
  96. package/skills/design-templates/dashboard/example.html +118 -0
  97. package/skills/design-templates/dating-web/SKILL.md +92 -0
  98. package/skills/design-templates/dating-web/example.html +265 -0
  99. package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
  100. package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
  101. package/skills/design-templates/digital-eguide/SKILL.md +94 -0
  102. package/skills/design-templates/digital-eguide/example.html +204 -0
  103. package/skills/design-templates/docs-page/SKILL.md +80 -0
  104. package/skills/design-templates/docs-page/example.html +122 -0
  105. package/skills/design-templates/email-marketing/SKILL.md +84 -0
  106. package/skills/design-templates/email-marketing/example.html +159 -0
  107. package/skills/design-templates/eng-runbook/SKILL.md +51 -0
  108. package/skills/design-templates/eng-runbook/example.html +250 -0
  109. package/skills/design-templates/finance-report/SKILL.md +61 -0
  110. package/skills/design-templates/finance-report/example.html +242 -0
  111. package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
  112. package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
  113. package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
  114. package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
  115. package/skills/design-templates/gamified-app/SKILL.md +108 -0
  116. package/skills/design-templates/gamified-app/example.html +292 -0
  117. package/skills/design-templates/github-dashboard/SKILL.md +130 -0
  118. package/skills/design-templates/github-dashboard/example.html +473 -0
  119. package/skills/design-templates/github-dashboard/references/README.md +10 -0
  120. package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
  121. package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
  122. package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
  123. package/skills/design-templates/github-dashboard/references/template.html +473 -0
  124. package/skills/design-templates/guizang-ppt/LICENSE +21 -0
  125. package/skills/design-templates/guizang-ppt/README.en.md +119 -0
  126. package/skills/design-templates/guizang-ppt/README.md +120 -0
  127. package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
  128. package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
  129. package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
  130. package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
  131. package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
  132. package/skills/design-templates/guizang-ppt/references/components.md +363 -0
  133. package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
  134. package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
  135. package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
  136. package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
  137. package/skills/design-templates/hr-onboarding/example.html +219 -0
  138. package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
  139. package/skills/design-templates/html-ppt/LICENSE +21 -0
  140. package/skills/design-templates/html-ppt/README.md +234 -0
  141. package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
  142. package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
  143. package/skills/design-templates/html-ppt/SKILL.md +250 -0
  144. package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
  145. package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
  146. package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
  147. package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
  148. package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
  149. package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
  150. package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
  151. package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
  152. package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
  153. package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
  154. package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
  155. package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
  156. package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
  157. package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
  158. package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
  159. package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
  160. package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
  161. package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
  162. package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
  163. package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
  164. package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
  165. package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
  166. package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
  167. package/skills/design-templates/html-ppt/assets/base.css +150 -0
  168. package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
  169. package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
  170. package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
  171. package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
  172. package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
  173. package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
  174. package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
  175. package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
  176. package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
  177. package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
  178. package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
  179. package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
  180. package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
  181. package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
  182. package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
  183. package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
  184. package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
  185. package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
  186. package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
  187. package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
  188. package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
  189. package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
  190. package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
  191. package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
  192. package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
  193. package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
  194. package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
  195. package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
  196. package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
  197. package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
  198. package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
  199. package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
  200. package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
  201. package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
  202. package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
  203. package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
  204. package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
  205. package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
  206. package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
  207. package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
  208. package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
  209. package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
  210. package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
  211. package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
  212. package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
  213. package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
  214. package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
  215. package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
  216. package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
  217. package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
  218. package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
  219. package/skills/design-templates/html-ppt/references/animations.md +147 -0
  220. package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
  221. package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
  222. package/skills/design-templates/html-ppt/references/layouts.md +103 -0
  223. package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
  224. package/skills/design-templates/html-ppt/references/themes.md +107 -0
  225. package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
  226. package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
  227. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
  228. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
  229. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
  230. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
  231. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
  232. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
  233. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
  234. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
  235. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
  236. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
  237. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
  238. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
  239. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
  240. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
  241. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
  242. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
  243. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
  244. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
  245. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
  246. package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
  247. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
  248. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
  249. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
  250. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
  251. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
  252. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
  253. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
  254. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
  255. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
  256. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
  257. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
  258. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
  259. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
  260. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
  261. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
  262. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
  263. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
  264. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
  265. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
  266. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
  267. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
  268. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
  269. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
  270. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
  271. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
  272. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
  273. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
  274. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
  275. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
  276. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
  277. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
  278. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
  279. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
  280. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
  281. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
  282. package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
  283. package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
  284. package/skills/design-templates/html-ppt/templates/deck.html +69 -0
  285. package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
  286. package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
  287. package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
  288. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
  289. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
  290. package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
  291. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
  292. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
  293. package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
  294. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
  295. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
  296. package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
  297. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
  298. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
  299. package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
  300. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
  301. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
  302. package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
  303. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
  304. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
  305. package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
  306. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
  307. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
  308. package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
  309. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
  310. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
  311. package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
  312. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
  313. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
  314. package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
  315. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
  316. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
  317. package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
  318. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
  319. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
  320. package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
  321. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
  322. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
  323. package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
  324. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
  325. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
  326. package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
  327. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
  328. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
  329. package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
  330. package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
  331. package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
  332. package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
  333. package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
  334. package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
  335. package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
  336. package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
  337. package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
  338. package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
  339. package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
  340. package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
  341. package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
  342. package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
  343. package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
  344. package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
  345. package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
  346. package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
  347. package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
  348. package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
  349. package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
  350. package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
  351. package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
  352. package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
  353. package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
  354. package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
  355. package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
  356. package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
  357. package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
  358. package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
  359. package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
  360. package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
  361. package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
  362. package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
  363. package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
  364. package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
  365. package/skills/design-templates/html-ppt-course-module/example.html +542 -0
  366. package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
  367. package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
  368. package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
  369. package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
  370. package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
  371. package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
  372. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
  373. package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
  374. package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
  375. package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
  376. package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
  377. package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
  378. package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
  379. package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
  380. package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
  381. package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
  382. package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
  383. package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
  384. package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
  385. package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
  386. package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
  387. package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
  388. package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
  389. package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
  390. package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
  391. package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
  392. package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
  393. package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
  394. package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
  395. package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
  396. package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
  397. package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
  398. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
  399. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
  400. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
  401. package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
  402. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
  403. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
  404. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
  405. package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
  406. package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
  407. package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
  408. package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
  409. package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
  410. package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
  411. package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
  412. package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
  413. package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
  414. package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
  415. package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
  416. package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
  417. package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
  418. package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
  419. package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
  420. package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
  421. package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
  422. package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
  423. package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
  424. package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
  425. package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
  426. package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
  427. package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
  428. package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
  429. package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
  430. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
  431. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
  432. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
  433. package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
  434. package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
  435. package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
  436. package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
  437. package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
  438. package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
  439. package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
  440. package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
  441. package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
  442. package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
  443. package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
  444. package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
  445. package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
  446. package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
  447. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
  448. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
  449. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
  450. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
  451. package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
  452. package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
  453. package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
  454. package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
  455. package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
  456. package/skills/figma-code-connect-components/SKILL.md +42 -0
  457. package/skills/figma-create-design-system-rules/SKILL.md +42 -0
  458. package/skills/figma-create-new-file/SKILL.md +41 -0
  459. package/skills/figma-generate-design/SKILL.md +42 -0
  460. package/skills/figma-generate-library/SKILL.md +42 -0
  461. package/skills/figma-implement-design/SKILL.md +42 -0
  462. package/skills/figma-use/SKILL.md +42 -0
  463. package/skills/full-page-screenshot/SKILL.md +42 -0
  464. package/skills/interview-me/SKILL.md +64 -0
  465. package/skills/planning-and-task-breakdown/SKILL.md +52 -0
  466. package/skills/sora/SKILL.md +43 -0
  467. package/skills/theme-factory/SKILL.md +43 -0
  468. package/skills/web-design-guidelines/SKILL.md +42 -0
  469. package/dist/agents/prompt-library/orchestration.d.ts +0 -4
  470. package/skills/brainstorming/SKILL.md +0 -164
  471. package/skills/brainstorming/scripts/frame-template.html +0 -214
  472. package/skills/brainstorming/scripts/helper.js +0 -88
  473. package/skills/brainstorming/scripts/server.cjs +0 -354
  474. package/skills/brainstorming/scripts/start-server.sh +0 -148
  475. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  476. package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
  477. package/skills/brainstorming/visual-companion.md +0 -287
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: dashboard
3
+ description: |
4
+ Admin / analytics dashboard in a single HTML file. Fixed left sidebar,
5
+ top bar with user/search, main grid of KPI cards and one or two charts.
6
+ Use when the brief asks for a "dashboard", "admin", "analytics", or
7
+ "control panel" screen.
8
+ triggers:
9
+ - "dashboard"
10
+ - "admin panel"
11
+ - "analytics"
12
+ - "control panel"
13
+ - "后台"
14
+ - "管理后台"
15
+ od:
16
+ mode: prototype
17
+ platform: desktop
18
+ scenario: operations
19
+ preview:
20
+ type: html
21
+ entry: index.html
22
+ design_system:
23
+ requires: true
24
+ sections: [color, typography, layout, components]
25
+ craft:
26
+ requires: [state-coverage, accessibility-baseline, laws-of-ux]
27
+ ---
28
+
29
+ # Dashboard Skill
30
+
31
+ Produce a single-screen admin / analytics dashboard.
32
+
33
+ ## Workflow
34
+
35
+ 1. **Read the active DESIGN.md** (injected above). Colors, typography, spacing,
36
+ component styling all come from it. Do not invent new tokens.
37
+ 2. **Classify** what the dashboard monitors (sales, traffic, usage, incidents,
38
+ ops, etc.) from the brief. Generate specific, plausible metric names and
39
+ values — no "Metric A / Metric B" placeholders.
40
+ 3. **Lay out** the required regions:
41
+ - **Left sidebar** (220–260px): brand mark at top, 6–8 nav links with
42
+ icons, active state uses the DS accent.
43
+ - **Top bar**: page title on the left, search input + user avatar / status
44
+ on the right.
45
+ - **Main**:
46
+ - Row 1: 3–4 KPI cards (label + big number + delta vs. prior period).
47
+ - Row 2: one primary chart (full width or 2/3) — render as an inline SVG
48
+ line / bar / area chart drawn from real-looking numbers.
49
+ - Row 3: one secondary chart or table (recent events, top items, etc.).
50
+ 4. **Write** one self-contained HTML document:
51
+ - `<!doctype html>` through `</html>`, CSS in one inline `<style>` block.
52
+ - CSS Grid for the overall layout; Flexbox inside cards.
53
+ - Semantic HTML: `<aside>`, `<header>`, `<main>`, `<section>`.
54
+ - Tag each logical region with `data-od-id="slug"` for comment mode.
55
+ 5. **Charts**: inline SVG only, no JS libraries. A line chart is ~10 lines of
56
+ `<polyline>` with a subtle area fill. A bar chart is N `<rect>`s with
57
+ DS-accent fill. Label axes lightly (muted text, smaller scale).
58
+ 6. **Self-check**:
59
+ - Every color comes from DESIGN.md tokens.
60
+ - Accent used at most twice (sidebar active + one chart highlight).
61
+ - Sidebar + top bar are sticky; main scrolls independently.
62
+ - Density matches the DS mood — airy DSes get more padding, dense DSes
63
+ (trading, crypto) tighten rows.
64
+
65
+ ## Output contract
66
+
67
+ Emit between `<artifact>` tags:
68
+
69
+ ```
70
+ <artifact identifier="dashboard-slug" type="text/html" title="Dashboard Title">
71
+ <!doctype html>
72
+ <html>...</html>
73
+ </artifact>
74
+ ```
75
+
76
+ One sentence before the artifact, nothing after.
@@ -0,0 +1,118 @@
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>Pulse — analytics overview</title>
7
+ <style>
8
+ :root {
9
+ --bg: #fafaf9; --fg: #1c1b1a; --muted: #6b6964; --border: #e6e4e0;
10
+ --accent: #c96442; --surface: #ffffff; --good: #2f7d4a; --bad: #b53a2a;
11
+ }
12
+ * { box-sizing: border-box; }
13
+ body { margin: 0; background: var(--bg); color: var(--fg); font: 14px/1.5 -apple-system, system-ui, sans-serif; display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
14
+ .sidebar { background: var(--surface); border-right: 1px solid var(--border); padding: 16px; }
15
+ .brand { font-weight: 600; padding: 8px 10px 18px; }
16
+ .nav { display: flex; flex-direction: column; gap: 2px; }
17
+ .nav a { padding: 7px 10px; border-radius: 6px; color: var(--fg); text-decoration: none; }
18
+ .nav a.active { background: var(--bg); font-weight: 500; }
19
+ .nav a:hover { background: var(--bg); }
20
+ .nav .group-label { font-size: 11px; color: var(--muted); padding: 14px 10px 6px; text-transform: uppercase; letter-spacing: 0.06em; }
21
+ main { padding: 0 28px 56px; }
22
+ .topbar { padding: 16px 0; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); margin-bottom: 24px; }
23
+ .topbar h1 { font-size: 20px; margin: 0; letter-spacing: -0.01em; }
24
+ .topbar .right { display: flex; align-items: center; gap: 12px; color: var(--muted); }
25
+ button { font: inherit; cursor: pointer; padding: 7px 13px; border-radius: 6px; }
26
+ .btn-primary { background: var(--accent); color: white; border: 1px solid var(--accent); }
27
+ .btn-secondary { background: transparent; color: var(--fg); border: 1px solid var(--border); }
28
+ .kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
29
+ @media (max-width: 900px) { .kpis { grid-template-columns: repeat(2, 1fr); } }
30
+ .kpi { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; }
31
+ .kpi .label { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
32
+ .kpi .value { font-size: 28px; letter-spacing: -0.02em; }
33
+ .kpi .delta { font-size: 12px; margin-top: 4px; }
34
+ .kpi .delta.up { color: var(--good); }
35
+ .kpi .delta.down { color: var(--bad); }
36
+ .panel { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 20px; margin-bottom: 16px; }
37
+ .panel h3 { margin: 0 0 16px; font-size: 14px; font-weight: 500; }
38
+ .chart { height: 240px; background: linear-gradient(180deg, rgba(201,100,66,0.06), transparent); border-bottom: 1px solid var(--border); position: relative; overflow: hidden; }
39
+ .chart svg { width: 100%; height: 100%; display: block; }
40
+ .panels-row { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
41
+ @media (max-width: 900px) { .panels-row { grid-template-columns: 1fr; } }
42
+ table { width: 100%; border-collapse: collapse; }
43
+ th, td { text-align: left; padding: 10px 6px; border-top: 1px solid var(--border); }
44
+ th { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; }
45
+ .pill { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--bg); border: 1px solid var(--border); }
46
+ .pill.good { color: var(--good); border-color: rgba(47,125,74,0.3); }
47
+ .pill.bad { color: var(--bad); border-color: rgba(181,58,42,0.3); }
48
+ </style>
49
+ </head>
50
+ <body>
51
+ <aside class="sidebar" data-od-id="sidebar">
52
+ <div class="brand">◐ Pulse</div>
53
+ <nav class="nav">
54
+ <a href="#" class="active">Overview</a>
55
+ <a href="#">Funnels</a>
56
+ <a href="#">Cohorts</a>
57
+ <a href="#">Sessions</a>
58
+ <span class="group-label">Workspace</span>
59
+ <a href="#">Sources</a>
60
+ <a href="#">Members</a>
61
+ <a href="#">Billing</a>
62
+ <a href="#">Settings</a>
63
+ </nav>
64
+ </aside>
65
+ <main>
66
+ <div class="topbar" data-od-id="topbar">
67
+ <h1>Overview · April 2026</h1>
68
+ <div class="right">
69
+ <button class="btn-secondary">Last 30 days ▾</button>
70
+ <button class="btn-primary">+ New report</button>
71
+ </div>
72
+ </div>
73
+
74
+ <div class="kpis" data-od-id="kpis">
75
+ <div class="kpi"><div class="label">MRR</div><div class="value">$48.2K</div><div class="delta up">+12.4% MoM</div></div>
76
+ <div class="kpi"><div class="label">Active accounts</div><div class="value">3,184</div><div class="delta up">+204 this month</div></div>
77
+ <div class="kpi"><div class="label">Churn (30d)</div><div class="value">2.1%</div><div class="delta down">+0.4 pp</div></div>
78
+ <div class="kpi"><div class="label">P95 latency</div><div class="value">182 ms</div><div class="delta up">-23 ms</div></div>
79
+ </div>
80
+
81
+ <div class="panels-row">
82
+ <div class="panel" data-od-id="chart-panel">
83
+ <h3>Revenue · 30 days</h3>
84
+ <div class="chart">
85
+ <svg viewBox="0 0 600 240" preserveAspectRatio="none">
86
+ <polyline fill="none" stroke="#c96442" stroke-width="2" points="0,180 30,170 60,150 90,160 120,140 150,120 180,130 210,110 240,90 270,100 300,80 330,70 360,80 390,60 420,50 450,60 480,40 510,30 540,40 570,20 600,10" />
87
+ </svg>
88
+ </div>
89
+ </div>
90
+ <div class="panel" data-od-id="signups-panel">
91
+ <h3>New accounts</h3>
92
+ <table>
93
+ <thead><tr><th>Account</th><th>Plan</th><th>Status</th></tr></thead>
94
+ <tbody>
95
+ <tr><td>Linear</td><td>Team</td><td><span class="pill good">active</span></td></tr>
96
+ <tr><td>Cursor</td><td>Pro</td><td><span class="pill good">active</span></td></tr>
97
+ <tr><td>Notion</td><td>Team</td><td><span class="pill bad">trial</span></td></tr>
98
+ <tr><td>Vercel</td><td>Enterprise</td><td><span class="pill good">active</span></td></tr>
99
+ </tbody>
100
+ </table>
101
+ </div>
102
+ </div>
103
+
104
+ <div class="panel" data-od-id="recent-events">
105
+ <h3>Recent events</h3>
106
+ <table>
107
+ <thead><tr><th>Time</th><th>Account</th><th>Event</th><th>Plan</th></tr></thead>
108
+ <tbody>
109
+ <tr><td>2:14 pm</td><td>Acme Co</td><td>Upgraded to Team</td><td>Team</td></tr>
110
+ <tr><td>1:48 pm</td><td>Northwind</td><td>Connected GitHub</td><td>Pro</td></tr>
111
+ <tr><td>1:32 pm</td><td>Globex</td><td>Cancelled subscription</td><td>Solo</td></tr>
112
+ <tr><td>12:51 pm</td><td>Initech</td><td>New seat invited</td><td>Team</td></tr>
113
+ </tbody>
114
+ </table>
115
+ </div>
116
+ </main>
117
+ </body>
118
+ </html>
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: dating-web
3
+ description: |
4
+ A consumer-feeling dating / matchmaking dashboard — left rail navigation,
5
+ ticker bar of community signals, headline KPIs, a 30-day mutual-matches
6
+ bar chart, and a match-rate trend block. Editorial typography, restrained
7
+ accent. Use when the brief asks for a "dating site", "matchmaking",
8
+ "community dashboard", "social network dashboard", or any consumer
9
+ product where the data is the story.
10
+ triggers:
11
+ - "dating app"
12
+ - "dating site"
13
+ - "matchmaking"
14
+ - "social dashboard"
15
+ - "community dashboard"
16
+ - "consumer dashboard"
17
+ - "约会应用"
18
+ - "婚恋"
19
+ od:
20
+ mode: prototype
21
+ platform: desktop
22
+ scenario: personal
23
+ preview:
24
+ type: html
25
+ entry: index.html
26
+ design_system:
27
+ requires: true
28
+ sections: [color, typography, layout, components]
29
+ example_prompt: "Design ‘mutuals’ — a dating site for X posters. Daily digest dashboard with stats, mutual-matches bar chart, and a community ticker."
30
+ ---
31
+
32
+ # Dating Web Skill
33
+
34
+ Produce a single-screen consumer dashboard that feels like a Sunday-paper
35
+ dating column rendered as software. Editorial type, single restrained
36
+ accent, lots of negative space, *no* swipe deck or hookup tropes.
37
+
38
+ ## Workflow
39
+
40
+ 1. **Read the active DESIGN.md** (injected above). Lean into a serif display
41
+ token for the metric numerals — these screens live or die on numerals.
42
+ 2. **Pick a brand voice** — wry, observational, slightly literary. Generate
43
+ real, specific copy. Examples: "the people who'd text back within a day",
44
+ "manageable. two are now friends.", "your single greatest compatibility
45
+ asset."
46
+ 3. **Layout**, in order:
47
+ - **Top ticker** — single-row horizontal strip across the top in a
48
+ sans-serif eyebrow style: tagline left, "NEXT TIER AT 2,080 MUTUALS"
49
+ right, both in mono caps with letter-spacing. Thin rule below.
50
+ - **Left rail** — 220–260px sidebar. Brand wordmark in serif italic at
51
+ top. User card (avatar / handle / ratio / tier). Three groups of nav:
52
+ "TODAY" (specimen, inbox, queue, notifications), "YOU" (your stats,
53
+ mutuals & communities, blocked, settings), "ARCHIVE" (past issues,
54
+ expired matches). Active item gets accent text + accent dot.
55
+ - **Main content**:
56
+ - **KPI grid** — 3 columns × 3 rows (or 9 cells). Each cell: small
57
+ caps mono label, an oversized serif numeral (use accent or muted
58
+ green for positive, muted red for caution), one-line italic
59
+ footnote. Plausible specifics — "1,842 ↑ 41 this wk · healthy
60
+ growth.", "14% above median for your cohort.", "4 / exes in your
61
+ circle · manageable. two are now friends."
62
+ - **Bar chart panel** — "mutuals — last 30 days". Tall thin black
63
+ bars, last two days highlighted in accent. Caption above with
64
+ "↑ TRENDING UP · +3 CLOSE MUTUALS THIS MONTH · TWO VIA THE SAME
65
+ OFFSITE" in mono.
66
+ - **Trend panel** — "match rate — last 12 weeks". One line of body
67
+ copy below ("STEADY CLIMB FROM 8% → 14%. ATTRIBUTABLE TO ONE
68
+ COMMUNITY JOIN…"). Footer rule.
69
+ 4. **Write** a single HTML document:
70
+ - `<!doctype html>` through `</html>`, CSS inline.
71
+ - Background creamy off-white, body serif, mono labels everywhere.
72
+ - Use `font-feature-settings: 'tnum'` on the metric numerals.
73
+ - SVG bar chart with ~30 bars, varied heights.
74
+ - `data-od-id` on ticker, sidebar, kpi grid, chart, trend.
75
+ 5. **Self-check**:
76
+ - Reads as restrained, editorial, slightly funny — not horny.
77
+ - Single accent token used in 3–4 places max (one KPI, two highlight
78
+ bars, one nav active state).
79
+ - No swipe deck, no hearts, no fire emoji.
80
+
81
+ ## Output contract
82
+
83
+ Emit between `<artifact>` tags:
84
+
85
+ ```
86
+ <artifact identifier="dating-slug" type="text/html" title="Dating Dashboard — Title">
87
+ <!doctype html>
88
+ <html>...</html>
89
+ </artifact>
90
+ ```
91
+
92
+ One sentence before the artifact, nothing after.
@@ -0,0 +1,265 @@
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>mutuals · your dating life, measured by the company you keep</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Serif+Text:ital@0;1&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet" />
10
+ <style>
11
+ :root {
12
+ --paper: #f4ede0;
13
+ --panel: #f9f3e7;
14
+ --ink: #1f1c14;
15
+ --muted: #7a7264;
16
+ --rule: #d6cdb6;
17
+ --accent: #c14a2b;
18
+ --good: #406b3a;
19
+ --bad: #b6422f;
20
+ --serif-display: 'DM Serif Display', 'Iowan Old Style', Georgia, serif;
21
+ --serif-body: 'DM Serif Text', 'Iowan Old Style', Georgia, serif;
22
+ --mono: 'IBM Plex Mono', ui-monospace, monospace;
23
+ }
24
+ * { box-sizing: border-box; }
25
+ body { margin: 0; background: var(--paper); color: var(--ink); font: 14px/1.55 var(--serif-body); }
26
+
27
+ .ticker {
28
+ display: flex;
29
+ justify-content: space-between;
30
+ align-items: center;
31
+ padding: 14px 28px;
32
+ border-bottom: 1px solid var(--ink);
33
+ font: 11px/1 var(--mono);
34
+ color: var(--muted);
35
+ letter-spacing: 0.18em;
36
+ text-transform: uppercase;
37
+ }
38
+ .ticker .left { display: flex; align-items: center; gap: 18px; }
39
+ .ticker b { color: var(--ink); font-weight: 500; }
40
+
41
+ .layout { display: grid; grid-template-columns: 232px 1fr; min-height: calc(100vh - 44px); }
42
+ aside.rail {
43
+ border-right: 1px solid var(--ink);
44
+ padding: 22px 22px 22px 28px;
45
+ display: flex; flex-direction: column; gap: 22px;
46
+ }
47
+ aside .brand { font: italic 800 30px/1 var(--serif-display); letter-spacing: -0.005em; }
48
+ aside .brand .dot { color: var(--accent); }
49
+ aside .user { display: flex; align-items: center; gap: 10px; }
50
+ aside .avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--paper); display: grid; place-items: center; font: 700 12px/1 var(--mono); letter-spacing: 0.06em; }
51
+ aside .user .meta { font: 13px/1.2 var(--mono); }
52
+ aside .user .meta b { display: block; color: var(--ink); font-weight: 500; }
53
+ aside .user .meta span { color: var(--muted); font-size: 11px; letter-spacing: 0.06em; }
54
+
55
+ aside h4 { font: 11px/1 var(--mono); color: var(--muted); letter-spacing: 0.18em; text-transform: uppercase; margin: 0 0 10px; }
56
+ aside ul { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 4px; }
57
+ aside li { display: flex; justify-content: space-between; align-items: center; padding: 5px 8px; border-radius: 4px; font: 15.5px/1.2 var(--serif-body); color: var(--ink); cursor: default; }
58
+ aside li.active { background: rgba(193,74,43,0.10); color: var(--accent); font-weight: 600; }
59
+ aside li.active::before { content: '●'; color: var(--accent); margin-right: 6px; font-size: 9px; }
60
+ aside li .badge { background: var(--accent); color: var(--paper); font: 10px/1 var(--mono); padding: 3px 6px; border-radius: 999px; letter-spacing: 0.06em; }
61
+ aside li .badge.gray { background: var(--ink); }
62
+
63
+ aside .status {
64
+ margin-top: auto;
65
+ padding-top: 18px;
66
+ border-top: 1px solid var(--rule);
67
+ font: 11px/1.4 var(--mono);
68
+ color: var(--muted);
69
+ letter-spacing: 0.06em;
70
+ }
71
+ aside .status .live::before { content: '●'; color: #2f7d4a; margin-right: 6px; }
72
+
73
+ main { padding: 30px 36px 44px; }
74
+ .grid {
75
+ display: grid;
76
+ grid-template-columns: repeat(3, 1fr);
77
+ grid-auto-rows: minmax(120px, auto);
78
+ gap: 22px 36px;
79
+ margin-bottom: 36px;
80
+ }
81
+ .stat { padding: 4px 0 14px; border-bottom: 1px solid var(--rule); }
82
+ .stat .label { font: 11px/1.4 var(--mono); color: var(--muted); letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 6px; }
83
+ .stat .value {
84
+ font: 800 56px/1.05 var(--serif-display);
85
+ letter-spacing: -0.01em;
86
+ font-feature-settings: 'tnum';
87
+ margin-bottom: 6px;
88
+ }
89
+ .stat .value.good { color: var(--good); }
90
+ .stat .value.bad { color: var(--bad); }
91
+ .stat .value em { font-style: italic; font-weight: 400; }
92
+ .stat .note { font: italic 13.5px/1.4 var(--serif-body); color: var(--muted); max-width: 32ch; }
93
+ .stat .arrow { font-style: normal; color: var(--good); font-size: 14px; }
94
+
95
+ .panel { padding: 18px 0 24px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); margin-bottom: 18px; }
96
+ .panel-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 14px; }
97
+ .panel-head h3 { margin: 0; font: italic 24px/1 var(--serif-display); letter-spacing: -0.005em; }
98
+ .panel-head .meta { font: 11px/1.4 var(--mono); color: var(--muted); letter-spacing: 0.16em; text-transform: uppercase; max-width: 56ch; text-align: right; }
99
+ .panel svg { width: 100%; height: 220px; display: block; }
100
+ .panel .axis { display: flex; justify-content: space-between; font: 10px/1 var(--mono); color: var(--muted); letter-spacing: 0.1em; padding: 8px 4px 0; text-transform: uppercase; }
101
+
102
+ .lower-panel .lede { font: italic 15px/1.55 var(--serif-body); color: var(--muted); margin: 0; max-width: 70ch; }
103
+ .lower-panel .lede b { color: var(--ink); font-style: normal; font-weight: 600; }
104
+
105
+ @media (max-width: 1100px) {
106
+ .layout { grid-template-columns: 1fr; }
107
+ aside.rail { border-right: none; border-bottom: 1px solid var(--ink); }
108
+ .grid { grid-template-columns: repeat(2, 1fr); gap: 18px 28px; }
109
+ }
110
+ </style>
111
+ </head>
112
+ <body>
113
+ <div class="ticker" data-od-id="ticker">
114
+ <div class="left">
115
+ <span>YOUR DATING LIFE, MEASURED BY THE COMPANY YOU KEEP</span>
116
+ <span style="opacity:0.6;">·</span>
117
+ <span>REVIEWED WEEKLY</span>
118
+ </div>
119
+ <div>NEXT TIER AT <b>2,080 MUTUALS</b></div>
120
+ </div>
121
+
122
+ <div class="layout">
123
+ <aside class="rail" data-od-id="rail">
124
+ <div class="brand">mutuals<span class="dot">.</span></div>
125
+ <div class="user">
126
+ <div class="avatar">si</div>
127
+ <div class="meta"><b>@signals</b><span>RATIO 22.9 · TIER III</span></div>
128
+ </div>
129
+
130
+ <div>
131
+ <h4>Today</h4>
132
+ <ul>
133
+ <li>specimen <span class="badge">3</span></li>
134
+ <li>inbox <span class="badge">3</span></li>
135
+ <li>queue <span style="font:11px/1 var(--mono);color:var(--muted);">6</span></li>
136
+ <li>notifications <span class="badge gray">12</span></li>
137
+ </ul>
138
+ </div>
139
+ <div>
140
+ <h4>You</h4>
141
+ <ul>
142
+ <li class="active">your stats</li>
143
+ <li>mutuals &amp; communities</li>
144
+ <li>blocked <span style="font:11px/1 var(--mono);color:var(--muted);">14</span></li>
145
+ <li>settings</li>
146
+ </ul>
147
+ </div>
148
+ <div>
149
+ <h4>Archive</h4>
150
+ <ul>
151
+ <li>past issues</li>
152
+ <li>expired matches <span style="font:11px/1 var(--mono);color:var(--muted);">7</span></li>
153
+ </ul>
154
+ </div>
155
+
156
+ <div class="status">
157
+ <div class="live">online · last match 11m ago</div>
158
+ <div style="opacity:0.7;margin-top:2px;">mutuals.v0.6.1</div>
159
+ </div>
160
+ </aside>
161
+
162
+ <main data-od-id="main">
163
+ <section class="grid" data-od-id="kpis">
164
+ <div class="stat">
165
+ <div class="label">Mutuals on file</div>
166
+ <div class="value"><em>1,842</em></div>
167
+ <p class="note"><span class="arrow">↑</span> 41 this wk · healthy growth.</p>
168
+ </div>
169
+ <div class="stat">
170
+ <div class="label">Replies in 24h</div>
171
+ <div class="value good">47</div>
172
+ <p class="note">the people who'd text back within a day.</p>
173
+ </div>
174
+ <div class="stat">
175
+ <div class="label">Communities</div>
176
+ <div class="value"><em>14</em></div>
177
+ <p class="note">4 active · 7 lurking · 3 inferred.</p>
178
+ </div>
179
+
180
+ <div class="stat">
181
+ <div class="label">Match rate</div>
182
+ <div class="value good">14%</div>
183
+ <p class="note">above median for your cohort.</p>
184
+ </div>
185
+ <div class="stat">
186
+ <div class="label">2nd dates</div>
187
+ <div class="value"><em>3</em></div>
188
+ <p class="note">of 7 first dates this year. you commit.</p>
189
+ </div>
190
+ <div class="stat">
191
+ <div class="label">Exes in your circle</div>
192
+ <div class="value bad">4</div>
193
+ <p class="note">manageable. two are now friends.</p>
194
+ </div>
195
+
196
+ <div class="stat">
197
+ <div class="label">Shared blocks</div>
198
+ <div class="value"><em>214</em></div>
199
+ <p class="note">your single greatest compatibility asset.</p>
200
+ </div>
201
+ <div class="stat">
202
+ <div class="label">Avg response</div>
203
+ <div class="value"><em>2.1<span style="font-size:32px;">h</span></em></div>
204
+ <p class="note">too fast. wait 4–6h. they notice.</p>
205
+ </div>
206
+ <div class="stat">
207
+ <div class="label">Logged-off hrs</div>
208
+ <div class="value bad">4</div>
209
+ <p class="note">/ 168 this wk. we beg.</p>
210
+ </div>
211
+ </section>
212
+
213
+ <section class="panel" data-od-id="bars">
214
+ <div class="panel-head">
215
+ <h3>mutuals — <em>last 30 days</em></h3>
216
+ <div class="meta">↑ TRENDING UP · +3 CLOSE MUTUALS THIS MONTH · TWO VIA THE SAME OFFSITE</div>
217
+ </div>
218
+ <svg viewBox="0 0 720 220" preserveAspectRatio="none" aria-hidden="true">
219
+ <g fill="#1f1c14">
220
+ <rect x="6" y="170" width="14" height="50"></rect>
221
+ <rect x="30" y="158" width="14" height="62"></rect>
222
+ <rect x="54" y="146" width="14" height="74"></rect>
223
+ <rect x="78" y="172" width="14" height="48"></rect>
224
+ <rect x="102" y="162" width="14" height="58"></rect>
225
+ <rect x="126" y="138" width="14" height="82"></rect>
226
+ <rect x="150" y="120" width="14" height="100"></rect>
227
+ <rect x="174" y="148" width="14" height="72"></rect>
228
+ <rect x="198" y="132" width="14" height="88"></rect>
229
+ <rect x="222" y="108" width="14" height="112"></rect>
230
+ <rect x="246" y="118" width="14" height="102"></rect>
231
+ <rect x="270" y="154" width="14" height="66"></rect>
232
+ <rect x="294" y="130" width="14" height="90"></rect>
233
+ <rect x="318" y="100" width="14" height="120"></rect>
234
+ <rect x="342" y="86" width="14" height="134"></rect>
235
+ <rect x="366" y="116" width="14" height="104"></rect>
236
+ <rect x="390" y="138" width="14" height="82"></rect>
237
+ <rect x="414" y="92" width="14" height="128"></rect>
238
+ <rect x="438" y="74" width="14" height="146"></rect>
239
+ <rect x="462" y="106" width="14" height="114"></rect>
240
+ <rect x="486" y="84" width="14" height="136"></rect>
241
+ <rect x="510" y="124" width="14" height="96"></rect>
242
+ <rect x="534" y="98" width="14" height="122"></rect>
243
+ <rect x="558" y="68" width="14" height="152"></rect>
244
+ <rect x="582" y="80" width="14" height="140"></rect>
245
+ <rect x="606" y="46" width="14" height="174" fill="#c14a2b"></rect>
246
+ <rect x="630" y="60" width="14" height="160" fill="#c14a2b"></rect>
247
+ <rect x="654" y="92" width="14" height="128"></rect>
248
+ <rect x="678" y="76" width="14" height="144"></rect>
249
+ <rect x="702" y="90" width="14" height="130"></rect>
250
+ </g>
251
+ </svg>
252
+ <div class="axis"><span>MAR 18</span><span>MAR 25</span><span>APR 1</span><span>APR 8</span><span>APR 15</span><span>TODAY</span></div>
253
+ </section>
254
+
255
+ <section class="panel lower-panel" data-od-id="trend">
256
+ <div class="panel-head">
257
+ <h3>match rate — <em>last 12 weeks</em></h3>
258
+ <div class="meta">STEADY CLIMB FROM 8% → 14%. ATTRIBUTABLE TO ONE COMMUNITY JOIN (FOUNDERS WHO POST, WK 4).</div>
259
+ </div>
260
+ <p class="lede">A real climb, not a vibe. <b>One community join</b> moved your match rate more than four months of profile edits — keep posting from that circle, ship more, tweet less.</p>
261
+ </section>
262
+ </main>
263
+ </div>
264
+ </body>
265
+ </html>