@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,172 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="aurora">
3
+ <head>
4
+ <meta charset="utf-8"><title>Animation + FX Showcase — html-ppt</title>
5
+ <link rel="stylesheet" href="../assets/fonts.css">
6
+ <link rel="stylesheet" href="../assets/base.css">
7
+ <link rel="stylesheet" id="theme-link" href="../assets/themes/aurora.css">
8
+ <link rel="stylesheet" href="../assets/animations/animations.css">
9
+ <style>
10
+ .fx-stage{
11
+ position:relative;
12
+ margin:20px auto 0;
13
+ width:min(900px, 92%);
14
+ height:380px;
15
+ border-radius:var(--radius-lg, 16px);
16
+ background:rgba(10,12,22,0.55);
17
+ border:1px solid var(--border,#2a2a3a);
18
+ box-shadow:var(--shadow-lg, 0 20px 60px rgba(0,0,0,.4));
19
+ overflow:hidden;
20
+ }
21
+ .fx-label{
22
+ position:absolute;top:14px;left:16px;z-index:5;
23
+ font-family:var(--font-mono, ui-monospace,Menlo,monospace);
24
+ font-size:11px;letter-spacing:.14em;color:var(--text-3,#a0a0b8);
25
+ text-transform:uppercase;
26
+ background:rgba(0,0,0,0.35);padding:4px 10px;border-radius:999px;
27
+ border:1px solid rgba(255,255,255,0.08);
28
+ }
29
+ .fx-replay{
30
+ position:absolute;top:12px;right:14px;z-index:5;
31
+ appearance:none;cursor:pointer;
32
+ padding:7px 14px;border-radius:999px;
33
+ background:linear-gradient(135deg, var(--accent,#7c5cff), var(--accent-2,#22d3ee));
34
+ color:#fff;font:600 12px system-ui,sans-serif;
35
+ border:0;letter-spacing:.05em;
36
+ box-shadow:0 4px 16px rgba(124,92,255,0.35);
37
+ }
38
+ .fx-replay:hover{ filter:brightness(1.1); transform:translateY(-1px); }
39
+ .fx-indicator{position:absolute;top:24px;right:40px;font-family:var(--font-mono);font-size:11px;color:var(--text-3);letter-spacing:.1em}
40
+ .anim-box{margin:24px auto 0;width:640px;height:240px;border-radius:var(--radius-lg);background:var(--grad-soft);display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:800;color:var(--text-1);box-shadow:var(--shadow-lg);border:1px solid var(--border)}
41
+ </style>
42
+ </head>
43
+ <body>
44
+ <div class="deck"></div>
45
+
46
+ <script>
47
+ const FX = [
48
+ ['particle-burst', 'Particles explode from center, gravity + fade, re-bursts every ~2.5s.'],
49
+ ['confetti-cannon', 'Colored rotating rects arcing from both bottom corners.'],
50
+ ['firework', 'Rockets launch from the bottom and burst into colored sparks.'],
51
+ ['starfield', '3D perspective starfield — infinite flythrough.'],
52
+ ['matrix-rain', 'Classic green katakana + hex columns raining down.'],
53
+ ['knowledge-graph', 'Force-directed graph, 28 labeled nodes, live physics + springs.'],
54
+ ['neural-net', '4-6-6-3 feedforward net with pulses traveling along edges.'],
55
+ ['constellation', 'Drifting points connect when close — ambient background.'],
56
+ ['orbit-ring', '5 concentric rings with dots rotating at different speeds.'],
57
+ ['galaxy-swirl', 'Logarithmic spiral with ~800 particles.'],
58
+ ['word-cascade', 'Words fall from top and pile up at the bottom.'],
59
+ ['letter-explode', 'Letters fly in from random directions, loops.'],
60
+ ['chain-react', 'Row of 8 circles — a wave pulse dominoes across them.'],
61
+ ['magnetic-field', 'Particles follow sine curves leaving gradient trails.'],
62
+ ['data-stream', 'Rows of scrolling hex/binary text, cyberpunk feel.'],
63
+ ['gradient-blob', '4 drifting blurred radial gradients (additive blending).'],
64
+ ['sparkle-trail', 'Sparkles emit at your cursor (auto-wiggles if idle).'],
65
+ ['shockwave', 'Expanding rings emanating from center, looping.'],
66
+ ['typewriter-multi', 'Three lines typing concurrently with blinking block cursors.'],
67
+ ['counter-explosion', 'Number counts 0 → 2400, bursts particles, resets.']
68
+ ];
69
+
70
+ const CSS_ANIMS = [
71
+ ['fade-up','Translate from +32 px, fade.'],
72
+ ['fade-down','Translate from -32 px, fade.'],
73
+ ['fade-left','From left.'],
74
+ ['fade-right','From right.'],
75
+ ['rise-in','Rise + blur-off.'],
76
+ ['drop-in','Drop from above.'],
77
+ ['zoom-pop','Elastic scale pop.'],
78
+ ['blur-in','Blur clears.'],
79
+ ['glitch-in','Glitch jitter.'],
80
+ ['typewriter','Typewriter reveal.'],
81
+ ['neon-glow','Neon pulse.'],
82
+ ['shimmer-sweep','Sheen sweep.'],
83
+ ['gradient-flow','Gradient flow.'],
84
+ ['stagger-list','Staggered children.'],
85
+ ['counter-up','Number tick.'],
86
+ ['path-draw','SVG strokes draw.'],
87
+ ['parallax-tilt','3D hover tilt.'],
88
+ ['card-flip-3d','Y-axis flip.'],
89
+ ['cube-rotate-3d','Cube rotate.'],
90
+ ['page-turn-3d','Page turn.'],
91
+ ['perspective-zoom','Pull from -400 Z.'],
92
+ ['marquee-scroll','Infinite marquee.'],
93
+ ['kenburns','Ken Burns zoom.'],
94
+ ['confetti-burst','Pseudo confetti.'],
95
+ ['spotlight','Circular clip reveal.'],
96
+ ['morph-shape','SVG d morph.'],
97
+ ['ripple-reveal','Corner ripple.']
98
+ ];
99
+
100
+ const deck = document.querySelector('.deck');
101
+ const total = FX.length + CSS_ANIMS.length;
102
+
103
+ // Build FX slides (1..20)
104
+ FX.forEach((f, i) => {
105
+ const idx = i + 1;
106
+ const [name, desc] = f;
107
+ const sec = document.createElement('section');
108
+ sec.className = 'slide';
109
+ sec.setAttribute('data-title', 'fx / ' + name);
110
+
111
+ const extraAttrs = name === 'letter-explode'
112
+ ? 'data-fx-text-value="' + name.toUpperCase() + '"'
113
+ : name === 'counter-explosion'
114
+ ? 'data-fx-to="2400"'
115
+ : name === 'typewriter-multi'
116
+ ? 'data-fx-line1="> initializing knowledge graph..." data-fx-line2="> loading 28 concept nodes" data-fx-line3="> agent ready. awaiting prompt_"'
117
+ : '';
118
+
119
+ sec.innerHTML = `
120
+ <span class="fx-indicator">${idx}/${total}</span>
121
+ <p class="kicker">FX · canvas · ${String(idx).padStart(2,'0')}</p>
122
+ <h1 class="h1"><span class="gradient-text">${name}</span></h1>
123
+ <p class="lede">${desc}</p>
124
+ <div class="fx-stage">
125
+ <span class="fx-label">data-fx="${name}"</span>
126
+ <button class="fx-replay" type="button">Replay</button>
127
+ <div class="fx-host" style="position:absolute;inset:0;" data-fx="${name}" ${extraAttrs}></div>
128
+ </div>
129
+ <div class="deck-footer"><span class="dim2">Press → for next slide</span><span class="slide-number" data-current="${idx}" data-total="${total}"></span></div>
130
+ `;
131
+ deck.appendChild(sec);
132
+
133
+ // Wire Replay button
134
+ sec.querySelector('.fx-replay').addEventListener('click', () => {
135
+ const host = sec.querySelector('.fx-host');
136
+ const name2 = host.getAttribute('data-fx');
137
+ const attrs = {};
138
+ for (const a of host.attributes) attrs[a.name] = a.value;
139
+ const parent = host.parentNode;
140
+ // stop existing
141
+ if (window.__hpxActive && window.__hpxActive.has(host)){
142
+ try{ window.__hpxActive.get(host).stop(); }catch(e){}
143
+ window.__hpxActive.delete(host);
144
+ }
145
+ const fresh = document.createElement('div');
146
+ for (const k in attrs) fresh.setAttribute(k, attrs[k]);
147
+ fresh.style.cssText = host.style.cssText;
148
+ parent.replaceChild(fresh, host);
149
+ if (window.__hpxReinit) window.__hpxReinit(sec);
150
+ });
151
+ });
152
+
153
+ // Build CSS animation slides (legacy, kept for completeness)
154
+ CSS_ANIMS.forEach((a, i) => {
155
+ const idx = FX.length + i + 1;
156
+ const sec = document.createElement('section');
157
+ sec.className = 'slide';
158
+ sec.setAttribute('data-title', a[0]);
159
+ sec.innerHTML = `
160
+ <span class="fx-indicator">${idx}/${total}</span>
161
+ <p class="kicker">CSS anim · ${String(idx).padStart(2,'0')}</p>
162
+ <h1 class="h1"><span class="gradient-text">${a[0]}</span></h1>
163
+ <p class="lede">${a[1]}</p>
164
+ <div class="anim-box anim-${a[0]}" data-anim="${a[0]}" data-anim-target>${a[0]}</div>
165
+ <div class="deck-footer"><span class="dim2">Press A to cycle</span><span class="slide-number" data-current="${idx}" data-total="${total}"></span></div>
166
+ `;
167
+ deck.appendChild(sec);
168
+ });
169
+ </script>
170
+ <script src="../assets/runtime.js"></script>
171
+ <script src="../assets/animations/fx-runtime.js"></script>
172
+ </body></html>
@@ -0,0 +1,69 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN" data-theme="minimal-white">
3
+ <head>
4
+ <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
5
+ <title>html-ppt · Deck</title>
6
+ <link rel="stylesheet" href="../assets/fonts.css">
7
+ <link rel="stylesheet" href="../assets/base.css">
8
+ <link rel="stylesheet" id="theme-link" href="../assets/themes/minimal-white.css">
9
+ <link rel="stylesheet" href="../assets/animations/animations.css">
10
+ </head>
11
+ <body data-themes="minimal-white,editorial-serif,soft-pastel,arctic-cool,sunset-warm,catppuccin-mocha,tokyo-night,aurora,xiaohongshu-white,neo-brutalism" data-theme-base="../assets/themes/">
12
+ <div class="deck">
13
+
14
+ <!-- 1. Cover -->
15
+ <section class="slide" data-title="Cover">
16
+ <p class="kicker">html-ppt · 2026</p>
17
+ <h1 class="h1 anim-fade-up" data-anim="fade-up">用模板,<span class="gradient-text">换主题</span><br>讲任何事情</h1>
18
+ <p class="lede">24 themes · 30 layouts · 25 animations · zero build</p>
19
+ <div class="deck-footer"><span class="dim2">lewis</span><span class="slide-number" data-current="1" data-total="6"></span></div>
20
+ <div class="notes">这是一个最小可用的 deck。你可以复制这个文件作为新 deck 的起点。</div>
21
+ </section>
22
+
23
+ <!-- 2. TOC -->
24
+ <section class="slide" data-title="目录">
25
+ <p class="kicker">Agenda</p>
26
+ <h2 class="h2">我们会讲三件事</h2>
27
+ <div class="grid g3 mt-l anim-stagger-list" data-anim-target>
28
+ <div class="card"><h4>01 · Tokens</h4><p class="dim">把颜色/字体/圆角收进 CSS 变量。</p></div>
29
+ <div class="card"><h4>02 · Layouts</h4><p class="dim">30 种可复用单页。</p></div>
30
+ <div class="card"><h4>03 · Runtime</h4><p class="dim">键盘驱动、按 T 换主题。</p></div>
31
+ </div>
32
+ </section>
33
+
34
+ <!-- 3. Stat -->
35
+ <section class="slide center tc" data-title="Stat">
36
+ <div>
37
+ <p class="kicker">Result</p>
38
+ <div style="font-size:220px;font-weight:900;line-height:1"><span class="counter gradient-text" data-to="92">0</span><span class="gradient-text">%</span></div>
39
+ <h3>的准备时间被省下</h3>
40
+ </div>
41
+ </section>
42
+
43
+ <!-- 4. Two column -->
44
+ <section class="slide" data-title="Tokens">
45
+ <p class="kicker">Under the hood</p>
46
+ <h2 class="h2">换主题 = 换一组变量</h2>
47
+ <div class="grid g2 mt-l">
48
+ <div class="card"><h4>语义变量</h4><p class="dim">写 <code>var(--surface)</code>,不写具体色值。</p></div>
49
+ <div class="card"><h4>一键切换</h4><p class="dim">按 T 循环所有主题——所有 slide 同步更新。</p></div>
50
+ </div>
51
+ </section>
52
+
53
+ <!-- 5. CTA -->
54
+ <section class="slide center tc" data-title="CTA">
55
+ <div>
56
+ <p class="kicker">Your turn</p>
57
+ <h1 class="h1 anim-rise-in" data-anim="rise-in">开始做你的 deck</h1>
58
+ <p class="lede" style="margin:16px auto">按 ← → 翻页 · T 切主题 · A 切动效 · F 全屏 · O 概览 · S 备注</p>
59
+ </div>
60
+ </section>
61
+
62
+ <!-- 6. Thanks -->
63
+ <section class="slide center tc" data-title="Thanks">
64
+ <h1 class="h1" style="font-size:160px;line-height:1"><span class="gradient-text">Thanks</span></h1>
65
+ <p class="lede">lewis · sudolewis@gmail.com</p>
66
+ </section>
67
+ </div>
68
+ <script src="../assets/runtime.js"></script>
69
+ </body></html>
@@ -0,0 +1,8 @@
1
+ # course-module · 教学模块
2
+
3
+ 7-slide teaching module: cover (title + meta), objectives, core concept, worked example, exercise, check-your-understanding (MCQ), summary.
4
+
5
+ Academic but friendly look: warm off-white paper, Playfair Display display type, a green/terracotta accent pair. A persistent **left sidebar** on content slides lists the module's learning objectives and checks them off as you progress — students always know where they are.
6
+
7
+ **Use when:** online course modules, lecture handouts, onboarding curricula, workshop units.
8
+ **Feel:** a good textbook opened to a chapter — structured, quiet, encouraging.
@@ -0,0 +1,189 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
5
+ <title>Module 04 · Recursion · CS101</title>
6
+ <link rel="stylesheet" href="../../../assets/fonts.css">
7
+ <link rel="stylesheet" href="../../../assets/base.css">
8
+ <link rel="stylesheet" href="../../../assets/animations/animations.css">
9
+ <link rel="stylesheet" href="style.css">
10
+ </head>
11
+ <body class="tpl-course-module">
12
+ <div class="deck">
13
+
14
+ <!-- 1. Cover -->
15
+ <section class="slide full" data-title="Cover">
16
+ <p class="kicker">CS 101 · MODULE 04</p>
17
+ <h1 class="h1 mt-s">Recursion: solving<br>problems by <em>calling yourself</em>.</h1>
18
+ <p class="lede mt-l" style="max-width:62ch">In this module you'll learn why a function that calls itself is not a trick, but the most natural way to describe problems that contain smaller copies of themselves.</p>
19
+ <div class="row mt-l" style="gap:16px">
20
+ <span class="pill-academic">~ 45 min read</span>
21
+ <span class="pill-academic">prereq · functions, if/else</span>
22
+ <span class="pill-academic">lang · Python</span>
23
+ </div>
24
+ <div class="deck-footer"><span>Dr. A. Rivera · Spring 2026</span><span class="slide-number" data-current="1" data-total="7"></span></div>
25
+ </section>
26
+
27
+ <!-- 2. Objectives -->
28
+ <section class="slide" data-title="Objectives">
29
+ <aside class="sidebar">
30
+ <div class="brand">CS 101 · M04</div>
31
+ <h5>Learning objectives</h5>
32
+ <ul class="obj-list">
33
+ <li class="current">Define recursion</li>
34
+ <li>Identify a base case</li>
35
+ <li>Trace a recursive call</li>
36
+ <li>Convert loop ↔ recursion</li>
37
+ <li>Recognize when recursion helps</li>
38
+ </ul>
39
+ <h5>Module progress</h5>
40
+ <p class="dim" style="font-size:13px">Page 2 of 7 · ~5 min in</p>
41
+ </aside>
42
+ <div class="main">
43
+ <p class="kicker">OBJECTIVES</p>
44
+ <h2 class="h2 mt-s">By the end, you will be able to…</h2>
45
+ <div class="stack mt-l">
46
+ <div class="concept-box"><h4>① Explain recursion in one sentence.</h4><p class="dim">"A function that solves a problem by calling itself on a smaller version of that problem."</p></div>
47
+ <div class="concept-box"><h4>② Write a base case that always terminates.</h4><p class="dim">Every recursive function must have an exit door, or it runs forever.</p></div>
48
+ <div class="concept-box"><h4>③ Trace a call stack on paper.</h4><p class="dim">Given <code>fact(4)</code>, draw the stack frames top-to-bottom.</p></div>
49
+ <div class="concept-box"><h4>④ Convert a while-loop to a recursive equivalent.</h4><p class="dim">And explain when one is clearer than the other.</p></div>
50
+ </div>
51
+ </div>
52
+ </section>
53
+
54
+ <!-- 3. Concept -->
55
+ <section class="slide" data-title="Concept">
56
+ <aside class="sidebar">
57
+ <div class="brand">CS 101 · M04</div>
58
+ <h5>Learning objectives</h5>
59
+ <ul class="obj-list">
60
+ <li class="done">Define recursion</li>
61
+ <li class="current">Identify a base case</li>
62
+ <li>Trace a recursive call</li>
63
+ <li>Convert loop ↔ recursion</li>
64
+ <li>Recognize when recursion helps</li>
65
+ </ul>
66
+ <h5>Key terms</h5>
67
+ <p class="dim" style="font-size:13px">base case · recursive case · call stack · tail call</p>
68
+ </aside>
69
+ <div class="main">
70
+ <p class="kicker">CORE CONCEPT</p>
71
+ <h2 class="h2 mt-s">Two parts, always.</h2>
72
+ <p class="lede mt-m">A recursive function has exactly two things inside it: a <b>base case</b> (when to stop) and a <b>recursive case</b> (how to shrink the problem before calling yourself).</p>
73
+ <div class="callout">
74
+ <b>Rule of thumb.</b> If you can't name the base case out loud, don't write the recursion yet. Draw it on paper first.
75
+ </div>
76
+ <div class="grid g2 mt-l">
77
+ <div class="concept-box"><h4>Base case</h4><p class="dim">The smallest possible input — one the function answers directly, without calling itself.</p><p class="pill-academic">e.g. <b>n == 0</b></p></div>
78
+ <div class="concept-box"><h4>Recursive case</h4><p class="dim">Every other input — delegate to a smaller version of the same problem.</p><p class="pill-academic">e.g. <b>n × fact(n-1)</b></p></div>
79
+ </div>
80
+ </div>
81
+ </section>
82
+
83
+ <!-- 4. Example -->
84
+ <section class="slide" data-title="Example">
85
+ <aside class="sidebar">
86
+ <div class="brand">CS 101 · M04</div>
87
+ <h5>Learning objectives</h5>
88
+ <ul class="obj-list">
89
+ <li class="done">Define recursion</li>
90
+ <li class="done">Identify a base case</li>
91
+ <li class="current">Trace a recursive call</li>
92
+ <li>Convert loop ↔ recursion</li>
93
+ <li>Recognize when recursion helps</li>
94
+ </ul>
95
+ <h5>Try it yourself</h5>
96
+ <p class="dim" style="font-size:13px">Open repl.it and run the code on the right. Then try <code>fact(10)</code>.</p>
97
+ </aside>
98
+ <div class="main">
99
+ <p class="kicker">WORKED EXAMPLE</p>
100
+ <h2 class="h2 mt-s">Factorial, 7 lines.</h2>
101
+ <div class="code mt-m"><pre style="margin:0"><span class="cmt"># fact(n) = n × (n-1) × … × 1, and fact(0) = 1</span>
102
+ <span class="kw">def</span> fact(n):
103
+ <span class="kw">if</span> n == <span class="str">0</span>: <span class="cmt"># base case</span>
104
+ <span class="kw">return</span> <span class="str">1</span>
105
+ <span class="kw">return</span> n * fact(n - <span class="str">1</span>) <span class="cmt"># recursive case</span>
106
+
107
+ <span class="kw">print</span>(fact(<span class="str">4</span>)) <span class="cmt"># → 24</span></pre></div>
108
+ <div class="callout">
109
+ <b>Trace fact(4).</b> 4 × fact(3) → 4 × (3 × fact(2)) → 4 × 3 × (2 × fact(1)) → 4 × 3 × 2 × 1 × fact(0) → 4 × 3 × 2 × 1 × 1 = <b>24</b>.
110
+ </div>
111
+ </div>
112
+ </section>
113
+
114
+ <!-- 5. Exercise -->
115
+ <section class="slide" data-title="Exercise">
116
+ <aside class="sidebar">
117
+ <div class="brand">CS 101 · M04</div>
118
+ <h5>Learning objectives</h5>
119
+ <ul class="obj-list">
120
+ <li class="done">Define recursion</li>
121
+ <li class="done">Identify a base case</li>
122
+ <li class="done">Trace a recursive call</li>
123
+ <li class="current">Convert loop ↔ recursion</li>
124
+ <li>Recognize when recursion helps</li>
125
+ </ul>
126
+ <h5>Time</h5>
127
+ <p class="dim" style="font-size:13px">~10 minutes · solo</p>
128
+ </aside>
129
+ <div class="main">
130
+ <p class="kicker">EXERCISE 4.1</p>
131
+ <h2 class="h2 mt-s">Write <em>sum_to(n)</em>.</h2>
132
+ <p class="lede mt-m">Return <code>1 + 2 + … + n</code> using recursion — no loops allowed.</p>
133
+ <div class="exercise mt-l">
134
+ <p style="margin:0;font-size:18px;color:var(--text-1)"><b>Your task</b></p>
135
+ <ol style="color:var(--text-2);line-height:1.8;margin:10px 0 0">
136
+ <li>Write the base case. What does <code>sum_to(0)</code> return?</li>
137
+ <li>Write the recursive case in terms of <code>sum_to(n - 1)</code>.</li>
138
+ <li>Test it: <code>sum_to(5) == 15</code>, <code>sum_to(10) == 55</code>.</li>
139
+ <li>Bonus: what happens if you call <code>sum_to(-3)</code>? Fix it.</li>
140
+ </ol>
141
+ </div>
142
+ <p class="dim mt-m" style="font-size:14px">Stuck? Remember: a base case is the smallest input you already know the answer to.</p>
143
+ </div>
144
+ </section>
145
+
146
+ <!-- 6. Check understanding -->
147
+ <section class="slide" data-title="Check">
148
+ <aside class="sidebar">
149
+ <div class="brand">CS 101 · M04</div>
150
+ <h5>Learning objectives</h5>
151
+ <ul class="obj-list">
152
+ <li class="done">Define recursion</li>
153
+ <li class="done">Identify a base case</li>
154
+ <li class="done">Trace a recursive call</li>
155
+ <li class="done">Convert loop ↔ recursion</li>
156
+ <li class="current">Recognize when recursion helps</li>
157
+ </ul>
158
+ <h5>Self-assess</h5>
159
+ <p class="dim" style="font-size:13px">You should get 3/3.</p>
160
+ </aside>
161
+ <div class="main">
162
+ <p class="kicker">CHECK YOUR UNDERSTANDING</p>
163
+ <h2 class="h2 mt-s">Which function will recurse forever?</h2>
164
+ <div class="mt-l">
165
+ <div class="mcq"><div class="letter">A</div><div><b>def f(n): return 1 if n == 0 else n * f(n - 1)</b><p class="dim" style="font-size:13px;margin:4px 0 0">Base case <code>n == 0</code>, shrinks toward it. Terminates.</p></div></div>
166
+ <div class="mcq correct"><div class="letter">B</div><div><b>def f(n): return n + f(n + 1)</b><p class="dim" style="font-size:13px;margin:4px 0 0"><b style="color:var(--accent)">✓ Correct.</b> No base case, and <code>n</code> grows — infinite recursion.</p></div></div>
167
+ <div class="mcq"><div class="letter">C</div><div><b>def f(n): return n if n &lt; 2 else f(n - 1) + f(n - 2)</b><p class="dim" style="font-size:13px;margin:4px 0 0">Classic Fibonacci. Base case on <code>n &lt; 2</code>. Terminates.</p></div></div>
168
+ </div>
169
+ </div>
170
+ </section>
171
+
172
+ <!-- 7. Summary -->
173
+ <section class="slide full" data-title="Summary">
174
+ <p class="kicker">SUMMARY · MODULE 04</p>
175
+ <h1 class="h1 mt-s">You can now…</h1>
176
+ <div class="grid g2 mt-l">
177
+ <div class="concept-box"><h4>✓ Define recursion</h4><p class="dim">A function that calls itself on a smaller input.</p></div>
178
+ <div class="concept-box"><h4>✓ Write a safe base case</h4><p class="dim">Every recursion needs an exit door.</p></div>
179
+ <div class="concept-box"><h4>✓ Trace a call stack</h4><p class="dim">You can unwind <code>fact(4)</code> by hand.</p></div>
180
+ <div class="concept-box"><h4>✓ Judge when to use it</h4><p class="dim">Trees and self-similar problems → recursion. Flat iteration → loop.</p></div>
181
+ </div>
182
+ <div class="callout mt-l">
183
+ <b>Up next · Module 05.</b> Divide &amp; conquer: merge sort. We'll use everything you just learned — but on lists, not numbers.
184
+ </div>
185
+ </section>
186
+
187
+ </div>
188
+ <script src="../../../assets/runtime.js"></script>
189
+ </body></html>
@@ -0,0 +1,46 @@
1
+ /* course-module — academic but friendly */
2
+ .tpl-course-module{
3
+ --bg:#fbfaf6;--bg-soft:#f4f1e8;--surface:#ffffff;--surface-2:#f6f3ea;
4
+ --border:rgba(60,45,20,.12);--border-strong:rgba(60,45,20,.24);
5
+ --text-1:#2a2418;--text-2:#5a5140;--text-3:#8a7f68;
6
+ --accent:#2d7d6e;--accent-2:#d88a3a;--accent-3:#c4593f;
7
+ --grad:linear-gradient(135deg,#2d7d6e,#4ea893);
8
+ --radius:14px;--radius-lg:20px;
9
+ --shadow:0 12px 30px rgba(60,45,20,.07);
10
+ font-family:'Inter','Noto Sans SC',sans-serif;
11
+ }
12
+ .tpl-course-module .slide{padding:64px 80px;background:var(--bg);display:grid;grid-template-columns:260px 1fr;gap:56px;align-content:start}
13
+ .tpl-course-module .slide.full{grid-template-columns:1fr;display:flex;flex-direction:column;justify-content:center}
14
+ .tpl-course-module .sidebar{border-right:1px solid var(--border);padding-right:32px;position:relative}
15
+ .tpl-course-module .sidebar .brand{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--accent)}
16
+ .tpl-course-module .sidebar .brand::before{content:"✦ ";color:var(--accent-2)}
17
+ .tpl-course-module .sidebar h5{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-3);margin:32px 0 12px}
18
+ .tpl-course-module .obj-list{list-style:none;padding:0;margin:0;font-size:13px;color:var(--text-2);line-height:1.5}
19
+ .tpl-course-module .obj-list li{padding:8px 0 8px 22px;position:relative;border-bottom:1px dashed var(--border)}
20
+ .tpl-course-module .obj-list li::before{content:"○";position:absolute;left:0;top:8px;color:var(--accent)}
21
+ .tpl-course-module .obj-list li.done::before{content:"●";color:var(--accent)}
22
+ .tpl-course-module .obj-list li.current{color:var(--text-1);font-weight:700}
23
+ .tpl-course-module .obj-list li.current::before{content:"▸";color:var(--accent-2)}
24
+ .tpl-course-module .main{min-width:0}
25
+ .tpl-course-module .h1{font-family:'Playfair Display',serif;font-size:72px;line-height:1.02;font-weight:800;letter-spacing:-.02em;color:var(--text-1)}
26
+ .tpl-course-module .h2{font-family:'Playfair Display',serif;font-size:48px;line-height:1.1;font-weight:700;letter-spacing:-.015em;color:var(--text-1)}
27
+ .tpl-course-module h3,.tpl-course-module h4{color:var(--text-1)}
28
+ .tpl-course-module .kicker{color:var(--accent-2);font-size:12px;font-weight:700;letter-spacing:.14em}
29
+ .tpl-course-module .lede{font-size:20px;color:var(--text-2);line-height:1.7}
30
+ .tpl-course-module .callout{border-left:4px solid var(--accent-2);background:var(--surface-2);padding:20px 24px;border-radius:0 var(--radius) var(--radius) 0;margin-top:24px}
31
+ .tpl-course-module .callout b{color:var(--accent-2)}
32
+ .tpl-course-module .concept-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow)}
33
+ .tpl-course-module .concept-box h4{margin-top:0;color:var(--accent)}
34
+ .tpl-course-module .exercise{background:#fff8ed;border:1.5px dashed var(--accent-2);border-radius:var(--radius);padding:24px 28px}
35
+ .tpl-course-module .exercise::before{content:"✎ Exercise";display:block;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--accent-2);margin-bottom:10px;text-transform:uppercase}
36
+ .tpl-course-module .code{background:#2a2418;color:#f4f1e8;border-radius:var(--radius);padding:20px 24px;font-family:'JetBrains Mono',monospace;font-size:14px;line-height:1.7;overflow:auto}
37
+ .tpl-course-module .code .cmt{color:#8a7f68;font-style:italic}
38
+ .tpl-course-module .code .kw{color:#e8a770}
39
+ .tpl-course-module .code .str{color:#8ec6b2}
40
+ .tpl-course-module .mcq{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:10px;display:flex;gap:14px;align-items:flex-start;cursor:pointer}
41
+ .tpl-course-module .mcq .letter{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--text-3);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--text-2)}
42
+ .tpl-course-module .mcq.correct{border-color:var(--accent);background:rgba(45,125,110,.06)}
43
+ .tpl-course-module .mcq.correct .letter{border-color:var(--accent);background:var(--accent);color:#fff}
44
+ .tpl-course-module .pill-academic{display:inline-block;padding:4px 12px;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;color:var(--text-2);font-family:'JetBrains Mono',monospace}
45
+ .tpl-course-module .slide.full .h1{font-size:88px}
46
+ .tpl-course-module .deck-footer{color:var(--text-3)}
@@ -0,0 +1,11 @@
1
+ # dir-key-nav-minimal
2
+
3
+ 8 张幻灯片,每张一个纯色/渐变 mono-background(indigo / cream / crimson / emerald / slate / violet / white / charcoal)。灵感直接来自 `20260405 演示幻灯片【方向键版】.html` —— 八个 `t-*` 主题类,每张幻灯一个背景,方向键切换,极简 editorial 气质。
4
+
5
+ **Visual traits:** 每张独立背景色 + 单一 accent、巨大 160px 标题无副图、4px 短粗 accent line divider、arrow-prefixed mono list、左下 `← →` 键盘提示 + 右下 page label、全屏 breathing negative space、JetBrains Mono 做数字 / 代码 / 键盘 hint、每个背景有自己的 `.dk-accent` 色。
6
+
7
+ **Use when:** 有话要说、没太多图、希望用排版节奏推进观众注意力;keynote 式的极简讲稿;每张幻灯只讲一件事;公开分享 / keynote / 演讲稿。
8
+
9
+ **Source inspiration:** `20260405-Karpathy-知识库/20260405 演示幻灯片【方向键版】.html`.
10
+
11
+ **Path:** `templates/full-decks/dir-key-nav-minimal/index.html`
@@ -0,0 +1,138 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Dir-Key Nav Minimal</title>
7
+ <link rel="stylesheet" href="../../../assets/fonts.css">
8
+ <link rel="stylesheet" href="../../../assets/base.css">
9
+ <link rel="stylesheet" href="style.css">
10
+ </head>
11
+ <body class="tpl-dir-key-nav-minimal">
12
+ <div class="deck">
13
+
14
+ <!-- 1. COVER · indigo -->
15
+ <section class="slide t-indigo is-active">
16
+ <div class="dk-snum">01 / 08</div>
17
+ <div style="margin:auto 0">
18
+ <div class="dk-eyebrow">Karpathy LLM Wiki</div>
19
+ <h1 class="dk-h0">为什么笔记<br>治不了 <span class="dk-accent">LLM</span></h1>
20
+ <span class="dk-line"></span>
21
+ <p class="dk-lede">8 种背景、8 张幻灯,一个关于如何把 AI 变成「长期记忆外挂」的最短陈述。<strong>按 → 继续。</strong></p>
22
+ </div>
23
+ <div class="dk-keyhint">nav · <kbd>←</kbd> <kbd>→</kbd> · <kbd>space</kbd></div>
24
+ <div class="dk-page">cover</div>
25
+ </section>
26
+
27
+ <!-- 2. SECTION · cream -->
28
+ <section class="slide t-cream">
29
+ <div class="dk-snum">02 / 08</div>
30
+ <div style="margin:auto 0">
31
+ <div class="dk-eyebrow">Chapter 01</div>
32
+ <h1 class="dk-h0">The <span class="dk-accent">Problem</span>.</h1>
33
+ <span class="dk-line"></span>
34
+ <p class="dk-lede">Token 上限是一个物理事实。你每次和 LLM 说话,它都是一个失忆症患者。</p>
35
+ </div>
36
+ <div class="dk-keyhint">chapter · 01 / 04</div>
37
+ <div class="dk-page">section</div>
38
+ </section>
39
+
40
+ <!-- 3. CONTENT · crimson -->
41
+ <section class="slide t-crimson">
42
+ <div class="dk-snum">03 / 08</div>
43
+ <div style="margin:auto 0">
44
+ <div class="dk-eyebrow">Symptoms</div>
45
+ <h2 class="dk-h1">四种你已经<br>受够的<br><span class="dk-accent">遗忘</span>。</h2>
46
+ <ul class="dk-list">
47
+ <li>昨天聊过的项目,今天重新解释一遍</li>
48
+ <li>上下文窗口一到,它开始「编造记忆」</li>
49
+ <li>不同 session 之间毫无关联,就像第一次见</li>
50
+ <li>你的真正偏好从未被记住,每次都要 re-prompt</li>
51
+ </ul>
52
+ </div>
53
+ <div class="dk-keyhint">content · list</div>
54
+ <div class="dk-page">03</div>
55
+ </section>
56
+
57
+ <!-- 4. CONTENT · emerald -->
58
+ <section class="slide t-emerald">
59
+ <div class="dk-snum">04 / 08</div>
60
+ <div style="margin:auto 0">
61
+ <div class="dk-eyebrow">The Fix</div>
62
+ <h2 class="dk-h1">答案不是<br><span class="dk-accent">更大</span> 的窗口。</h2>
63
+ <p class="dk-lede" style="margin-top:10px">而是:把你的知识、偏好、历史都<strong>写进文件系统</strong>。<br>让 LLM 每次对话前,先去读那个系统。</p>
64
+ <div class="dk-grid-2">
65
+ <div class="dk-col"><h3>× 窗口 stuffing</h3><p>把所有东西塞 prompt,贵、慢、最终溢出。</p></div>
66
+ <div class="dk-col"><h3>✓ 文件 + 检索</h3><p>按需加载,永远不溢出,结构化可 diff。</p></div>
67
+ </div>
68
+ </div>
69
+ <div class="dk-keyhint">content · compare</div>
70
+ <div class="dk-page">04</div>
71
+ </section>
72
+
73
+ <!-- 5. CODE · slate -->
74
+ <section class="slide t-slate">
75
+ <div class="dk-snum">05 / 08</div>
76
+ <div style="margin:auto 0">
77
+ <div class="dk-eyebrow">Minimal Setup</div>
78
+ <h2 class="dk-h2"><span class="dk-accent">4 行</span> YAML<br>就能开始。</h2>
79
+ <pre class="dk-code">memory:
80
+ root: ~/.llm-wiki
81
+ format: markdown
82
+ retrieval: hybrid # embedding + bm25</pre>
83
+ <p class="dk-lede" style="margin-top:16px;font-size:20px">你现在拥有一个会随时间增长的 <strong>第二大脑</strong>。每次对话它都会被读、被更新。</p>
84
+ </div>
85
+ <div class="dk-keyhint">content · code</div>
86
+ <div class="dk-page">05</div>
87
+ </section>
88
+
89
+ <!-- 6. CHART · violet — big number with bar -->
90
+ <section class="slide t-violet">
91
+ <div class="dk-snum">06 / 08</div>
92
+ <div style="margin:auto 0">
93
+ <div class="dk-eyebrow">30-day result</div>
94
+ <div class="dk-big dk-accent">87%</div>
95
+ <p class="dk-lede" style="margin-top:14px;font-size:26px">的 re-explain 被消除。平均每次对话节省 <strong>4.2 分钟</strong> 的 re-context。</p>
96
+ <svg viewBox="0 0 900 80" style="width:100%;max-width:900px;margin-top:30px">
97
+ <rect x="0" y="30" width="900" height="22" rx="11" fill="rgba(255,255,255,.12)"/>
98
+ <rect x="0" y="30" width="783" height="22" rx="11" fill="#c4b5fd"/>
99
+ <text x="792" y="47" font-family="JetBrains Mono" font-size="16" fill="#c4b5fd" font-weight="700">87%</text>
100
+ </svg>
101
+ </div>
102
+ <div class="dk-keyhint">chart · big-num</div>
103
+ <div class="dk-page">06</div>
104
+ </section>
105
+
106
+ <!-- 7. CTA · white -->
107
+ <section class="slide t-white">
108
+ <div class="dk-snum">07 / 08</div>
109
+ <div style="margin:auto 0">
110
+ <div class="dk-eyebrow">Start tonight</div>
111
+ <h2 class="dk-h1">开始<br>你的 <span class="dk-accent">wiki</span>。</h2>
112
+ <span class="dk-line"></span>
113
+ <p class="dk-lede">不是装又一个插件。是决定:从今晚起,<strong>你的所有 AI 对话都要有一个共同的 vault</strong>。</p>
114
+ <pre class="dk-code" style="font-size:18px">$ mkdir ~/llm-wiki && cd ~/llm-wiki
115
+ $ git init
116
+ $ echo "# my brain" > README.md</pre>
117
+ </div>
118
+ <div class="dk-keyhint">cta · three-commands</div>
119
+ <div class="dk-page">07</div>
120
+ </section>
121
+
122
+ <!-- 8. THANKS · charcoal -->
123
+ <section class="slide t-charcoal">
124
+ <div class="dk-snum">08 / 08</div>
125
+ <div style="margin:auto 0">
126
+ <div class="dk-eyebrow">End · thanks for staying</div>
127
+ <h1 class="dk-h0"><span class="dk-accent">謝謝</span>。</h1>
128
+ <span class="dk-line"></span>
129
+ <p class="dk-lede">Karpathy 的原始 thread + 我的 vault 结构都在 <strong>github.com/lewis/llm-wiki</strong>。欢迎按 ← 再看一遍。</p>
130
+ </div>
131
+ <div class="dk-keyhint">press <kbd>←</kbd> to rewind · <kbd>F</kbd> for fullscreen</div>
132
+ <div class="dk-page">fin</div>
133
+ </section>
134
+
135
+ </div>
136
+ <script src="../../../assets/runtime.js"></script>
137
+ </body>
138
+ </html>