@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,387 @@
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.0" />
6
+ <title>FlowAI Team Dashboard Template</title>
7
+ <style>
8
+ :root {
9
+ --bg: #d9d9de;
10
+ --app: #f8f8fa;
11
+ --panel: #fff;
12
+ --line: #e9e9ed;
13
+ --text: #1f2128;
14
+ --muted: #8b8f9a;
15
+ --hover: #f3f4f7;
16
+ --accent: #1f2937;
17
+ --chart-stroke: #1f2937;
18
+ --chart-fill: rgba(31, 41, 55, 0.16);
19
+ --chart-axis: #6b7280;
20
+ --chart-bar-label: #677084;
21
+ --chart-bar-value: #1f2937;
22
+ }
23
+ body.dark {
24
+ --bg: #0f1218;
25
+ --app: #171b23;
26
+ --panel: #1d2430;
27
+ --line: #2c3442;
28
+ --text: #ecf0f7;
29
+ --muted: #9aa3b6;
30
+ --hover: #242c3a;
31
+ --accent: #ecf0f7;
32
+ --chart-stroke: #ecf0f7;
33
+ --chart-fill: rgba(236, 240, 247, 0.18);
34
+ --chart-axis: #9aa3b6;
35
+ --chart-bar-label: #9aa3b6;
36
+ --chart-bar-value: #ecf0f7;
37
+ }
38
+ * { box-sizing: border-box; }
39
+ body {
40
+ margin: 0;
41
+ font-family: Inter, system-ui, sans-serif;
42
+ background: linear-gradient(180deg, var(--bg), var(--bg));
43
+ color: var(--text);
44
+ padding: 22px;
45
+ }
46
+ .shell { max-width: 1320px; margin: 0 auto; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--panel); }
47
+ .top { height: 48px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; padding: 0 12px; background: var(--app); }
48
+ .top button, .chip { border: 1px solid var(--line); background: var(--panel); color: var(--text); border-radius: 8px; height: 30px; padding: 0 10px; cursor: pointer; }
49
+ .top .actions { display: flex; gap: 6px; }
50
+ .wrap { padding: 12px; display: grid; gap: 10px; }
51
+ .tabs { display: flex; gap: 6px; flex-wrap: wrap; }
52
+ .tab { padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; background: var(--panel); color: var(--muted); }
53
+ .tab.active { color: var(--text); background: var(--hover); }
54
+ .stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
55
+ .card, .panel { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
56
+ .card { padding: 10px; cursor: zoom-in; }
57
+ .card .k { color: var(--muted); font-size: 11px; }
58
+ .card .v { font-size: 28px; font-weight: 650; margin-top: 4px; }
59
+ .grid { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; }
60
+ .panel { padding: 10px; cursor: zoom-in; }
61
+ .panel-title { margin-bottom: 8px; font-size: 12px; color: var(--muted); }
62
+ .table-wrap { overflow-x: auto; }
63
+ .table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 480px; }
64
+ .table th, .table td { border-bottom: 1px solid var(--line); padding: 8px; text-align: left; }
65
+ .badge { border: 1px solid var(--line); border-radius: 99px; padding: 2px 8px; font-size: 11px; }
66
+ .canvas { width: 100%; height: 180px; border: 1px solid var(--line); border-radius: 8px; background: var(--app); display: block; }
67
+ .avatars { display: grid; gap: 7px; }
68
+ .who { display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 8px; padding: 8px; }
69
+ .name { display: flex; align-items: center; gap: 8px; }
70
+ .av { width: 22px; height: 22px; border-radius: 50%; background: #ced4e6; color: #202431; display: grid; place-items: center; font-size: 11px; font-weight: 700; }
71
+ .view { display: none; }
72
+ .view.active { display: block; }
73
+ .zoomed { position: fixed !important; inset: 8vh 8vw !important; z-index: 99; overflow: auto; cursor: zoom-out; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25); }
74
+ .backdrop { position: fixed; inset: 0; background: rgba(10, 12, 18, 0.55); z-index: 98; }
75
+ .tooltip { position: fixed; z-index: 120; pointer-events: none; border: 1px solid var(--line); background: var(--panel); color: var(--text); border-radius: 8px; font-size: 11px; padding: 6px 8px; opacity: 0; transition: opacity 0.12s ease; }
76
+ .tooltip.show { opacity: 1; }
77
+
78
+ @media (max-width: 1300px) {
79
+ .grid { grid-template-columns: 1fr; }
80
+ .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
81
+ }
82
+ @media (max-width: 720px) {
83
+ body { padding: 12px; }
84
+ .stats { grid-template-columns: 1fr; }
85
+ .tabs { gap: 4px; }
86
+ .tab { flex: 1 1 auto; text-align: center; }
87
+ .table { font-size: 11px; }
88
+ }
89
+ </style>
90
+ </head>
91
+ <body>
92
+ <div class="shell">
93
+ <div class="top">
94
+ <b>FlowAI · Team Dashboard</b>
95
+ <div class="actions">
96
+ <button id="themeBtn" type="button" aria-label="Toggle theme">Theme</button>
97
+ <button id="exportBtn" type="button">Export CSV</button>
98
+ </div>
99
+ </div>
100
+ <div class="wrap">
101
+ <div class="tabs" role="tablist">
102
+ <button class="tab active" data-view="members" role="tab" aria-selected="true">Team Members</button>
103
+ <button class="tab" data-view="details" role="tab" aria-selected="false">Team Details</button>
104
+ <button class="tab" data-view="activity" role="tab" aria-selected="false">Activity Log</button>
105
+ </div>
106
+
107
+ <div class="stats">
108
+ <div class="card zoomable"><div class="k">Total Members</div><div class="v">35</div></div>
109
+ <div class="card zoomable"><div class="k">Active Now</div><div class="v">15</div></div>
110
+ <div class="card zoomable"><div class="k">Runs Today</div><div class="v">4,210</div></div>
111
+ <div class="card zoomable"><div class="k">Success Rate</div><div class="v">98.6%</div></div>
112
+ </div>
113
+
114
+ <section id="members" class="view active">
115
+ <div class="grid">
116
+ <div class="panel zoomable">
117
+ <div class="table-wrap">
118
+ <table class="table" id="teamTable">
119
+ <thead>
120
+ <tr><th>Name</th><th>Role</th><th>Status</th><th>Workflow</th></tr>
121
+ </thead>
122
+ <tbody>
123
+ <tr><td>Alexander Montgomery</td><td>Editor</td><td><span class="badge">Active</span></td><td>33%</td></tr>
124
+ <tr><td>Nathaniel Richardson</td><td>Owner</td><td><span class="badge">Active</span></td><td>24%</td></tr>
125
+ <tr><td>Theodore Whitmore</td><td>Editor</td><td><span class="badge">Pending</span></td><td>--</td></tr>
126
+ </tbody>
127
+ </table>
128
+ </div>
129
+ </div>
130
+ <div class="panel zoomable">
131
+ <div class="panel-title">Online Presence</div>
132
+ <canvas id="presenceChart" class="canvas" width="360" height="180"></canvas>
133
+ </div>
134
+ </div>
135
+ </section>
136
+
137
+ <section id="details" class="view">
138
+ <div class="grid">
139
+ <div class="panel zoomable">
140
+ <div class="panel-title">Role Distribution</div>
141
+ <canvas id="roleChart" class="canvas" width="680" height="180"></canvas>
142
+ </div>
143
+ <div class="panel zoomable">
144
+ <div class="panel-title">Top Contributors</div>
145
+ <div class="avatars">
146
+ <div class="who"><div class="name"><span class="av">WP</span>William Prescott</div><b>28</b></div>
147
+ <div class="who"><div class="name"><span class="av">EK</span>Edward Kensington</div><b>24</b></div>
148
+ <div class="who"><div class="name"><span class="av">OR</span>Oliver Remington</div><b>19</b></div>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </section>
153
+
154
+ <section id="activity" class="view">
155
+ <div class="grid">
156
+ <div class="panel zoomable">
157
+ <div class="panel-title">Activity Trend</div>
158
+ <canvas id="riskChart" class="canvas" width="680" height="180"></canvas>
159
+ </div>
160
+ <div class="panel zoomable">
161
+ <div class="panel-title">Risk Radar</div>
162
+ <div class="avatars">
163
+ <div class="who">5 Failed Logins</div>
164
+ <div class="who">API key Age Exceeded Policy</div>
165
+ <div class="who">SSO Scope Changed</div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ </section>
170
+ </div>
171
+ </div>
172
+ <div id="tt" class="tooltip" role="status" aria-live="polite"></div>
173
+ <script>
174
+ const charts = {
175
+ presence: { id: "presenceChart", labels: ["04-25","04-26","04-27","04-28","04-29","04-30","05-01","05-02"], values: [8,11,9,12,14,13,15,12] },
176
+ risk: { id: "riskChart", labels: ["04-26","04-27","04-28","04-29","04-30","05-01","05-02"], values: [7,10,6,8,11,9,5] },
177
+ role: { id: "roleChart", labels: ["Owner","Admin","Editor","Viewer","Devops"], values: [3,14,37,34,6], colors: ["#fac6cd","#d7e5ff","#89b5ff","#c8ccff","#f0dbff"] }
178
+ };
179
+ const pts = {};
180
+ const tt = document.getElementById("tt");
181
+ let detailsAnimated = false;
182
+
183
+ function chartColors() {
184
+ const cs = getComputedStyle(document.body);
185
+ return {
186
+ stroke: cs.getPropertyValue("--chart-stroke").trim() || "#1f2937",
187
+ fill: cs.getPropertyValue("--chart-fill").trim() || "rgba(31,41,55,.16)",
188
+ axis: cs.getPropertyValue("--chart-axis").trim() || "#6b7280",
189
+ barLabel: cs.getPropertyValue("--chart-bar-label").trim() || "#677084",
190
+ barValue: cs.getPropertyValue("--chart-bar-value").trim() || "#1f2937"
191
+ };
192
+ }
193
+
194
+ function spark(cfg) {
195
+ const c = document.getElementById(cfg.id);
196
+ if (!c) return;
197
+ const ctx = c.getContext("2d"), w = c.width, h = c.height;
198
+ const cc = chartColors();
199
+ const min = Math.min(...cfg.values), max = Math.max(...cfg.values), pad = 18;
200
+ ctx.clearRect(0, 0, w, h);
201
+ ctx.beginPath();
202
+ pts[cfg.id] = [];
203
+ cfg.values.forEach((v, i) => {
204
+ const x = pad + (i / (cfg.values.length - 1)) * (w - pad * 2);
205
+ const y = h - pad - ((v - min) / Math.max(max - min, 1)) * (h - pad * 2);
206
+ pts[cfg.id].push({ x, y, label: cfg.labels[i], value: v });
207
+ if (!i) ctx.moveTo(x, y); else ctx.lineTo(x, y);
208
+ });
209
+ ctx.strokeStyle = cc.stroke;
210
+ ctx.lineWidth = 2;
211
+ ctx.stroke();
212
+ ctx.lineTo(w - pad, h - pad);
213
+ ctx.lineTo(pad, h - pad);
214
+ ctx.closePath();
215
+ ctx.fillStyle = cc.fill;
216
+ ctx.fill();
217
+ pts[cfg.id].forEach((p) => {
218
+ ctx.beginPath();
219
+ ctx.arc(p.x, p.y, 2.5, 0, Math.PI * 2);
220
+ ctx.fillStyle = cc.stroke;
221
+ ctx.fill();
222
+ ctx.fillStyle = cc.axis;
223
+ ctx.font = "10px Inter";
224
+ ctx.fillText(String(p.value), p.x - 8, p.y - 8);
225
+ });
226
+ }
227
+
228
+ function easeOutCubic(t) { return 1 - Math.pow(1 - t, 3); }
229
+
230
+ function drawBars(progress) {
231
+ const c = document.getElementById(charts.role.id);
232
+ if (!c) return;
233
+ const ctx = c.getContext("2d"), w = c.width, h = c.height;
234
+ const cc = chartColors();
235
+ const vals = charts.role.values, labels = charts.role.labels, colors = charts.role.colors, max = Math.max(...vals);
236
+ const x0 = 28, y0 = 142, bw = 88, gap = 20;
237
+ ctx.clearRect(0, 0, w, h);
238
+ pts[c.id] = [];
239
+ vals.forEach((v, i) => {
240
+ const hh = (v / max) * 100 * progress;
241
+ const x = x0 + i * (bw + gap);
242
+ const cv = Math.round(v * progress);
243
+ ctx.fillStyle = colors[i];
244
+ ctx.beginPath();
245
+ if (typeof ctx.roundRect === "function") ctx.roundRect(x, y0 - hh, bw, hh, 8);
246
+ else ctx.rect(x, y0 - hh, bw, hh);
247
+ ctx.fill();
248
+ ctx.fillStyle = cc.barLabel;
249
+ ctx.font = "11px Inter";
250
+ ctx.fillText(labels[i], x + 8, 165);
251
+ ctx.fillStyle = cc.barValue;
252
+ ctx.fillText(cv + "%", x + 27, y0 - hh - 8);
253
+ pts[c.id].push({ x: x + bw / 2, y: y0 - hh, label: labels[i], value: v + "%" });
254
+ });
255
+ }
256
+
257
+ function animateBars() {
258
+ const dur = 800, start = performance.now();
259
+ function frame(ts) {
260
+ const p = easeOutCubic(Math.min((ts - start) / dur, 1));
261
+ drawBars(p);
262
+ if (p < 1) requestAnimationFrame(frame);
263
+ }
264
+ requestAnimationFrame(frame);
265
+ }
266
+
267
+ function redrawAll() {
268
+ spark(charts.presence);
269
+ spark(charts.risk);
270
+ if (detailsAnimated) drawBars(1);
271
+ }
272
+
273
+ function showTip(txt, x, y) {
274
+ tt.textContent = txt;
275
+ const pad = 12;
276
+ const tw = tt.offsetWidth || 120, th = tt.offsetHeight || 24;
277
+ let left = x + 10, top = y + 10;
278
+ if (left + tw + pad > window.innerWidth) left = x - tw - 10;
279
+ if (top + th + pad > window.innerHeight) top = y - th - 10;
280
+ tt.style.left = left + "px";
281
+ tt.style.top = top + "px";
282
+ tt.classList.add("show");
283
+ }
284
+ function hideTip() { tt.classList.remove("show"); }
285
+
286
+ function bindTooltip(id) {
287
+ const c = document.getElementById(id);
288
+ if (!c) return;
289
+ c.addEventListener("mousemove", (e) => {
290
+ const p = pts[id] || [];
291
+ if (!p.length) return;
292
+ const r = c.getBoundingClientRect();
293
+ const x = (e.clientX - r.left) * (c.width / r.width);
294
+ const y = (e.clientY - r.top) * (c.height / r.height);
295
+ let hit = null, d = 999;
296
+ p.forEach((pt) => {
297
+ const dd = Math.hypot(pt.x - x, pt.y - y);
298
+ if (dd < d) { d = dd; hit = pt; }
299
+ });
300
+ if (hit && d < 20) showTip(`${hit.label} · ${hit.value}`, e.clientX, e.clientY);
301
+ else hideTip();
302
+ });
303
+ c.addEventListener("mouseleave", hideTip);
304
+ }
305
+
306
+ function setView(v) {
307
+ document.querySelectorAll(".view").forEach((el) => el.classList.remove("active"));
308
+ const target = document.getElementById(v);
309
+ if (target) target.classList.add("active");
310
+ document.querySelectorAll(".tab").forEach((t) => {
311
+ const on = t.dataset.view === v;
312
+ t.classList.toggle("active", on);
313
+ t.setAttribute("aria-selected", on ? "true" : "false");
314
+ });
315
+ if (window.location.hash !== "#" + v) {
316
+ history.replaceState(null, "", "#" + v);
317
+ }
318
+ if (v === "details") {
319
+ if (!detailsAnimated) { animateBars(); detailsAnimated = true; }
320
+ else drawBars(1);
321
+ }
322
+ }
323
+
324
+ function bindZoom() {
325
+ let zoomed = null;
326
+ function unzoom() {
327
+ if (zoomed) zoomed.classList.remove("zoomed");
328
+ document.querySelector(".backdrop")?.remove();
329
+ zoomed = null;
330
+ }
331
+ document.querySelectorAll(".zoomable").forEach((el) => {
332
+ el.addEventListener("click", (e) => {
333
+ if (e.target.closest("button, input, select, a")) return;
334
+ if (zoomed === el) { unzoom(); return; }
335
+ unzoom();
336
+ const b = document.createElement("div");
337
+ b.className = "backdrop";
338
+ b.onclick = unzoom;
339
+ document.body.appendChild(b);
340
+ el.classList.add("zoomed");
341
+ zoomed = el;
342
+ });
343
+ });
344
+ document.addEventListener("keydown", (e) => { if (e.key === "Escape") unzoom(); });
345
+ }
346
+
347
+ function exportCsv() {
348
+ const table = document.getElementById("teamTable");
349
+ if (!table) return;
350
+ const rows = [];
351
+ const headerCells = table.querySelectorAll("thead th");
352
+ rows.push([...headerCells].map((th) => th.textContent.trim()));
353
+ table.querySelectorAll("tbody tr").forEach((tr) => {
354
+ rows.push([...tr.querySelectorAll("td")].map((td) => td.innerText.trim().replace(/\s+/g, " ")));
355
+ });
356
+ const csv = rows
357
+ .map((r) => r.map((c) => `"${String(c).replace(/"/g, '""')}"`).join(","))
358
+ .join("\n");
359
+ const blob = new Blob([csv], { type: "text/csv;charset=utf-8" });
360
+ const a = document.createElement("a");
361
+ a.href = URL.createObjectURL(blob);
362
+ a.download = "flowai-team.csv";
363
+ document.body.appendChild(a);
364
+ a.click();
365
+ a.remove();
366
+ URL.revokeObjectURL(a.href);
367
+ }
368
+
369
+ document.querySelectorAll(".tab").forEach((t) => t.addEventListener("click", () => setView(t.dataset.view)));
370
+ document.getElementById("themeBtn").onclick = () => {
371
+ document.body.classList.toggle("dark");
372
+ redrawAll();
373
+ };
374
+ document.getElementById("exportBtn").onclick = exportCsv;
375
+
376
+ spark(charts.presence);
377
+ spark(charts.risk);
378
+ bindTooltip("presenceChart");
379
+ bindTooltip("riskChart");
380
+ bindTooltip("roleChart");
381
+ bindZoom();
382
+
383
+ const initial = (window.location.hash || "#members").slice(1);
384
+ setView(["members", "details", "activity"].includes(initial) ? initial : "members");
385
+ </script>
386
+ </body>
387
+ </html>
@@ -0,0 +1,13 @@
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.0" />
6
+ <title>FlowAI Team Dashboard Example</title>
7
+ <style>html,body{margin:0;height:100%}iframe{width:100%;height:100%;border:0}</style>
8
+ </head>
9
+ <body>
10
+ <!-- default showcase sample for template submission -->
11
+ <iframe src="./assets/template.html" title="FlowAI Team Dashboard Example"></iframe>
12
+ </body>
13
+ </html>
@@ -0,0 +1,35 @@
1
+ # Checklist
2
+
3
+ ## P0
4
+
5
+ - `assets/template.html` exists and opens directly from disk in a browser.
6
+ - `example.html` is a complete, hand-built sample with real labels, names, and values.
7
+ - Skill frontmatter is `od.mode: prototype`, `od.scenario: operations`,
8
+ `od.preview.type: html`, `od.design_system.requires: true`.
9
+ - All three tabs (`Team Members`, `Team Details`, `Activity Log`) switch
10
+ correctly; only one view is visible at a time.
11
+ - Role bar chart animates with easing on first reveal of the details tab.
12
+ - Chart hover tooltips show precise label and value.
13
+ - Panels/cards zoom in/out via click; clicking the backdrop or pressing
14
+ Esc restores the layout.
15
+ - Dark mode toggle works and chart strokes/labels remain legible (chart
16
+ colors are re-derived from CSS variables on toggle, not baked in).
17
+ - No external avatar / photo CDN dependencies; avatars are inline SVG or
18
+ initial badges.
19
+
20
+ ## P1
21
+
22
+ - "Export CSV" exports every row currently rendered in the team table,
23
+ including the `Workflow` column (driven by the table DOM, not a hardcoded
24
+ fixture).
25
+ - Layout collapses gracefully on narrow viewports: under 1300px the main
26
+ grid stacks to a single column and stat cards fall back to two columns;
27
+ under 720px stat cards stack to one column and tabs wrap.
28
+ - Colors and spacing inherit from root tokens / CSS variables; no
29
+ hardcoded hex values inside chart drawing code.
30
+
31
+ ## P2
32
+
33
+ - Tooltip avoids viewport edge clipping.
34
+ - Chart values animate smoothly on re-render after a theme switch.
35
+ - Tab state is reflected in the URL hash and survives a refresh.
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: gamified-app
3
+ description: |
4
+ A multi-frame gamified mobile-app prototype — three phone frames on a dark
5
+ showcase stage. Frame 1: cover / poster, Frame 2: today's quests with XP
6
+ ribbons and a level bar, Frame 3: quest detail. Vivid quest tiles, level
7
+ ribbon, bottom tab bar. Use when the brief asks for a "gamified app",
8
+ "habit tracker", "RPG-style life app", "level-up app", "daily quests",
9
+ "XP / streak app", or "ELI5-style explainer app".
10
+ triggers:
11
+ - "gamified app"
12
+ - "habit tracker"
13
+ - "rpg app"
14
+ - "level up app"
15
+ - "daily quests"
16
+ - "xp app"
17
+ - "streak app"
18
+ - "life management app"
19
+ - "游戏化"
20
+ - "习惯打卡"
21
+ od:
22
+ mode: prototype
23
+ platform: mobile
24
+ scenario: personal
25
+ preview:
26
+ type: html
27
+ entry: index.html
28
+ design_system:
29
+ requires: true
30
+ sections: [color, typography, layout, components]
31
+ craft:
32
+ requires: [state-coverage, animation-discipline]
33
+ example_prompt: "Design a gamified life-management app — multi-screen mobile prototype: cover poster, today's quests with XP, and a quest detail. ‘Daily quests for becoming a better human.’"
34
+ ---
35
+
36
+ # Gamified App Skill
37
+
38
+ Produce a multi-screen mobile prototype on a single dark showcase page.
39
+ Three phone frames side-by-side, each one its own moment in the journey.
40
+
41
+ ## Workflow
42
+
43
+ 1. **Read the active DESIGN.md** (injected above). For gamified apps, lean
44
+ on bold display type for headlines and a brighter, broader palette than
45
+ most products — quests look like quests because the colors do.
46
+ 2. **Pick the brand + value prop** from the brief. Generate real quest
47
+ names (e.g. "Body — 20-min strength: pushups & planks", "Read — Four
48
+ Thousand Weeks", "Listen — Huberman Lab · Sleep Architecture",
49
+ "Nourish — Cook a high-protein lunch", "Mind — 10-min focus
50
+ meditation", "Watch — The Bear · S3 E4").
51
+ 3. **Stage** — full-bleed dark page (near-black `#0e0d0c` or DS dark token)
52
+ with a soft top spotlight gradient. Above the phones, a small caption
53
+ row: "HI-FI PROTOTYPE · IPHONE" left, brand wordmark right, both in mono.
54
+ 4. **Phones** — three 360×780 phone frames in a horizontal row (wraps to
55
+ stack on narrow viewports). Each phone:
56
+ - 12px black bezel, 44px corner radius, dynamic-island notch.
57
+ - Status bar (time / signal / battery).
58
+ - Phone-specific content (below).
59
+ - Bottom tab bar with 5 icons (Today, Library, Stats, ⊕ central CTA,
60
+ Profile). Active tab in accent.
61
+ 5. **Phone 1 — cover poster (sales/value prop)**:
62
+ - Status bar.
63
+ - HI-FI PROTOTYPE · IPHONE eyebrow.
64
+ - Big display headline ("Daily quests for becoming a better human."),
65
+ accent on "becoming".
66
+ - 1–2 sentence body in muted serif/sans.
67
+ - Mono tip line ("Tap quests to open detail. Toggle [theme] in the
68
+ toolbar to switch theme & layout.")
69
+ - Subtle scrolling teaser of the next screen at the bottom edge.
70
+ 6. **Phone 2 — today's quests dashboard** (the hero screen):
71
+ - Greeting "Good morning, Sam" + small XP-bell ringing.
72
+ - Level ribbon — "LV 14 · Level 14 · 1648 / 2480 XP" with a progress
73
+ bar inside a glassmorphic ribbon.
74
+ - Sub-line: "8 quests waiting · earn 430 XP today".
75
+ - 3×2 grid of quest tiles. Each tile: rounded corner, pastel accent
76
+ color, glyph chip in top-left, title, mini-meta line, "+NN XP" pill
77
+ in bottom-right.
78
+ - Bottom tab bar.
79
+ 7. **Phone 3 — quest detail**:
80
+ - Back arrow + screen title ("Quest").
81
+ - Hero block with the quest's accent color, big serif quest title
82
+ ("Body — strength"), short narrative body, "REWARD +90 XP" stamp.
83
+ - Steps checklist (3–4 micro-tasks, one done, two pending).
84
+ - Big primary CTA "Start quest" pill at the bottom in accent.
85
+ 8. **Write** a single HTML document:
86
+ - `<!doctype html>` through `</html>`, CSS inline.
87
+ - All in CSS — no images. Use `linear-gradient` and inline SVG glyphs
88
+ for tile chips and tab icons.
89
+ - `data-od-id` on stage, each phone, each frame's regions.
90
+ 9. **Self-check**:
91
+ - Three frames, each with a distinct purpose. Not three copies of the
92
+ same screen.
93
+ - Tile colors don't overpower — each quest tile uses a different pastel
94
+ against the same neutral surface.
95
+ - Reads as gamified and adult — playful, not childish.
96
+
97
+ ## Output contract
98
+
99
+ Emit between `<artifact>` tags:
100
+
101
+ ```
102
+ <artifact identifier="game-slug" type="text/html" title="Mobile — App Name">
103
+ <!doctype html>
104
+ <html>...</html>
105
+ </artifact>
106
+ ```
107
+
108
+ One sentence before the artifact, nothing after.