@xiaobuyu/nodesign 0.0.1

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 (372) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +140 -0
  3. package/bin/nodesign.js +176 -0
  4. package/package.json +104 -0
  5. package/server/api/README.md +45 -0
  6. package/server/api/_guard.js +75 -0
  7. package/server/api/admin.js +187 -0
  8. package/server/api/assets/docx-page.js +103 -0
  9. package/server/api/assets/helpers.js +22 -0
  10. package/server/api/assets/notes.js +144 -0
  11. package/server/api/assets.js +896 -0
  12. package/server/api/board.js +57 -0
  13. package/server/api/browse.js +138 -0
  14. package/server/api/canvas.js +444 -0
  15. package/server/api/chatai.js +324 -0
  16. package/server/api/exports/build-standalone.js +980 -0
  17. package/server/api/exports/cards.js +118 -0
  18. package/server/api/exports/docx-pdf.js +46 -0
  19. package/server/api/exports/export-page.js +142 -0
  20. package/server/api/exports/handoff.js +147 -0
  21. package/server/api/exports.js +690 -0
  22. package/server/api/instruction.js +75 -0
  23. package/server/api/local.js +115 -0
  24. package/server/api/me.js +116 -0
  25. package/server/api/memory.js +185 -0
  26. package/server/api/pending-changes.js +366 -0
  27. package/server/api/plugins.js +164 -0
  28. package/server/api/projects.js +220 -0
  29. package/server/api/publish.js +64 -0
  30. package/server/api/recent.js +73 -0
  31. package/server/api/sessions.js +589 -0
  32. package/server/api/skills.js +77 -0
  33. package/server/api/standalone-fit.js +168 -0
  34. package/server/api/turn-compose.js +180 -0
  35. package/server/api/turn-inflight.js +44 -0
  36. package/server/api/turn.js +669 -0
  37. package/server/auth/README.md +17 -0
  38. package/server/auth/middleware.js +138 -0
  39. package/server/auth/origin-guard.js +71 -0
  40. package/server/auth/session.js +108 -0
  41. package/server/auth/tier.js +113 -0
  42. package/server/auth/users-store.js +348 -0
  43. package/server/edit/README.md +29 -0
  44. package/server/engine/README.md +113 -0
  45. package/server/engine/agent/agent-shared.js +550 -0
  46. package/server/engine/agent/auto-mode-default-hard-deny.txt +4 -0
  47. package/server/engine/agent/auto-mode-rules.js +78 -0
  48. package/server/engine/agent/context.js +418 -0
  49. package/server/engine/agent/events.js +464 -0
  50. package/server/engine/agent/hooks/canvas-validate.js +199 -0
  51. package/server/engine/agent/hooks/failure.js +120 -0
  52. package/server/engine/agent/hooks/file-events.js +75 -0
  53. package/server/engine/agent/hooks/lifecycle.js +233 -0
  54. package/server/engine/agent/hooks/post-canvas-focus.js +80 -0
  55. package/server/engine/agent/hooks/post-guidance.js +206 -0
  56. package/server/engine/agent/hooks/post-subagent-report.js +104 -0
  57. package/server/engine/agent/hooks/post-trim.js +58 -0
  58. package/server/engine/agent/hooks/pre-board-neighborhood.js +34 -0
  59. package/server/engine/agent/hooks/pre-defaults.js +84 -0
  60. package/server/engine/agent/hooks/pre-injectors.js +277 -0
  61. package/server/engine/agent/hooks/pre-performance-log-guard.js +78 -0
  62. package/server/engine/agent/hooks/pre-starter-files.js +61 -0
  63. package/server/engine/agent/hooks/pre-workspace-scope-guard.js +78 -0
  64. package/server/engine/agent/hooks/site-validate.js +94 -0
  65. package/server/engine/agent/hooks/tool-prompts.js +31 -0
  66. package/server/engine/agent/hooks/turn-state-memory.js +56 -0
  67. package/server/engine/agent/hooks/user-prompt-submit.js +215 -0
  68. package/server/engine/agent/hooks.js +354 -0
  69. package/server/engine/agent/init-contract.js +69 -0
  70. package/server/engine/agent/isolation.js +159 -0
  71. package/server/engine/agent/model-context.js +359 -0
  72. package/server/engine/agent/model-table.js +292 -0
  73. package/server/engine/agent/plugin-loader.js +266 -0
  74. package/server/engine/agent/prompts/nodesign-prelude.md +336 -0
  75. package/server/engine/agent/prompts/tools/ask-user-question-protocol.md +71 -0
  76. package/server/engine/agent/prompts/tools/direct-edit-protocol.md +98 -0
  77. package/server/engine/agent/prompts/tools/generate-image-cookbook.gemini-gateway.md +583 -0
  78. package/server/engine/agent/prompts/tools/generate-image-cookbook.md +483 -0
  79. package/server/engine/agent/prompts/tools/hybrid-reference.md +100 -0
  80. package/server/engine/agent/prompts/tools/paint-still-cookbook.md +270 -0
  81. package/server/engine/agent/prompts/tools/roll-film-cookbook.md +70 -0
  82. package/server/engine/agent/prompts/tools/site-reference.md +106 -0
  83. package/server/engine/agent/prompts/tools/tweaks-syntax.md +125 -0
  84. package/server/engine/agent/prompts/tools/vision-checker-dispatch.md +48 -0
  85. package/server/engine/agent/session-loop.js +1024 -0
  86. package/server/engine/agent/session-model.js +164 -0
  87. package/server/engine/agent/skill.js +204 -0
  88. package/server/engine/agent/system-prompts.js +86 -0
  89. package/server/engine/agent/task-events.js +78 -0
  90. package/server/engine/agents/ds-extractor.md +132 -0
  91. package/server/engine/agents/explorer.md +190 -0
  92. package/server/engine/agents/index.js +230 -0
  93. package/server/engine/agents/schemas/design-system.json +156 -0
  94. package/server/engine/agents/schemas/tweak-schema.json +113 -0
  95. package/server/engine/agents/tweak-proposer.md +127 -0
  96. package/server/engine/agents/vision-checker.md +254 -0
  97. package/server/engine/browse/capture.js +422 -0
  98. package/server/engine/browse/card.js +137 -0
  99. package/server/engine/browse/handover.js +59 -0
  100. package/server/engine/browse/page-digest.js +119 -0
  101. package/server/engine/browse/refs.js +196 -0
  102. package/server/engine/browse/registry.js +307 -0
  103. package/server/engine/browse/screencast.js +170 -0
  104. package/server/engine/browse/state.js +121 -0
  105. package/server/engine/chatai/chat-log.js +79 -0
  106. package/server/engine/chatai/index.js +193 -0
  107. package/server/engine/chatai/openai-compat.js +152 -0
  108. package/server/engine/chatai/orchestrate.js +309 -0
  109. package/server/engine/chatai/perform.js +40 -0
  110. package/server/engine/chatai/summarize.js +79 -0
  111. package/server/engine/mcp/capability-gate.js +52 -0
  112. package/server/engine/mcp/index.js +339 -0
  113. package/server/engine/mcp/param-sanitizer.js +142 -0
  114. package/server/engine/mcp/tools/arrange-on-board.js +124 -0
  115. package/server/engine/mcp/tools/artifact-session.js +278 -0
  116. package/server/engine/mcp/tools/browse-computer.js +421 -0
  117. package/server/engine/mcp/tools/browse-find-batch.js +183 -0
  118. package/server/engine/mcp/tools/browse-screenshot.js +157 -0
  119. package/server/engine/mcp/tools/browse.js +480 -0
  120. package/server/engine/mcp/tools/build-docx.js +101 -0
  121. package/server/engine/mcp/tools/clear-pending-changes.js +99 -0
  122. package/server/engine/mcp/tools/create-on-board.js +155 -0
  123. package/server/engine/mcp/tools/crystallize-skill.js +168 -0
  124. package/server/engine/mcp/tools/deliver-files.js +0 -0
  125. package/server/engine/mcp/tools/explain-style.js +237 -0
  126. package/server/engine/mcp/tools/export-handoff.js +133 -0
  127. package/server/engine/mcp/tools/expose-tweaks.js +149 -0
  128. package/server/engine/mcp/tools/generate-image.js +842 -0
  129. package/server/engine/mcp/tools/get-computed-styles.js +164 -0
  130. package/server/engine/mcp/tools/get-pending-changes.js +205 -0
  131. package/server/engine/mcp/tools/h3box-ssh.js +84 -0
  132. package/server/engine/mcp/tools/helpers/acquire-page.js +82 -0
  133. package/server/engine/mcp/tools/helpers/motion-lab.js +554 -0
  134. package/server/engine/mcp/tools/helpers/motion-scroll.js +112 -0
  135. package/server/engine/mcp/tools/helpers/perception-page.js +215 -0
  136. package/server/engine/mcp/tools/helpers/reference-download.js +103 -0
  137. package/server/engine/mcp/tools/helpers/rembg-bridge.py +80 -0
  138. package/server/engine/mcp/tools/helpers/rembg.js +273 -0
  139. package/server/engine/mcp/tools/helpers/shot-pipeline.js +280 -0
  140. package/server/engine/mcp/tools/highlight.js +68 -0
  141. package/server/engine/mcp/tools/list-pages.js +222 -0
  142. package/server/engine/mcp/tools/lookup-tags.js +59 -0
  143. package/server/engine/mcp/tools/navigate-to-page.js +60 -0
  144. package/server/engine/mcp/tools/organize-board.js +64 -0
  145. package/server/engine/mcp/tools/paint-still.js +434 -0
  146. package/server/engine/mcp/tools/pin-to-board.js +130 -0
  147. package/server/engine/mcp/tools/preview-deck.js +130 -0
  148. package/server/engine/mcp/tools/profile-scroll.js +305 -0
  149. package/server/engine/mcp/tools/publish-site.js +102 -0
  150. package/server/engine/mcp/tools/query-elements.js +195 -0
  151. package/server/engine/mcp/tools/read-board.js +103 -0
  152. package/server/engine/mcp/tools/read-document.js +93 -0
  153. package/server/engine/mcp/tools/read-page.js +264 -0
  154. package/server/engine/mcp/tools/read-tavern-json.js +143 -0
  155. package/server/engine/mcp/tools/record-decision.js +140 -0
  156. package/server/engine/mcp/tools/relate-on-board.js +110 -0
  157. package/server/engine/mcp/tools/remove-background.js +391 -0
  158. package/server/engine/mcp/tools/report-issue.js +115 -0
  159. package/server/engine/mcp/tools/roll-film.js +266 -0
  160. package/server/engine/mcp/tools/screenshot-docx.js +138 -0
  161. package/server/engine/mcp/tools/screenshot-url.js +195 -0
  162. package/server/engine/mcp/tools/screenshot.js +583 -0
  163. package/server/engine/mcp/tools/tier-gate.js +96 -0
  164. package/server/engine/mcp/tools/trace-motion.js +215 -0
  165. package/server/engine/mcp/tools/web-search.js +548 -0
  166. package/server/engine/motion/inventory.js +349 -0
  167. package/server/engine/perception/session.js +235 -0
  168. package/server/engine/plugins/nodesign/.claude-plugin/plugin.json +5 -0
  169. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/SKILL.md +192 -0
  170. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/canvas.template.html +667 -0
  171. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/patterns/hybrid-grid.md +22 -0
  172. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/patterns/image-led-cover.md +25 -0
  173. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/patterns/portrait.md +23 -0
  174. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/patterns/quote-backdrop.md +21 -0
  175. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/patterns/section-divider.md +23 -0
  176. package/server/engine/plugins/nodesign/skills/deskskill-engine-mini/patterns/text-led.md +21 -0
  177. package/server/engine/plugins/nodesign/skills/docx-craft/SKILL.md +162 -0
  178. package/server/engine/plugins/nodesign/skills/docx-craft/references/token-schema.md +407 -0
  179. package/server/engine/plugins/nodesign/skills/docx-craft//346/226/207/346/241/243.template.json +80 -0
  180. package/server/engine/plugins/nodesign/skills/rp-craft/SKILL.md +228 -0
  181. package/server/engine/plugins/nodesign/skills/rp-craft/patterns//346/274/224/345/207/272/351/241/265-/346/234/200/345/260/217/345/256/236/347/216/260.html +78 -0
  182. package/server/engine/plugins/nodesign/skills/rp-craft//346/274/224/345/207/272.template.js +268 -0
  183. package/server/engine/plugins/nodesign/skills/site-craft/SKILL.md +323 -0
  184. package/server/engine/plugins/nodesign/skills/site-craft/patterns/build-lane.md +134 -0
  185. package/server/engine/plugins/nodesign/skills/site-craft/patterns/cutout-collage.md +61 -0
  186. package/server/engine/plugins/nodesign/skills/site-craft/patterns/mock-app.md +163 -0
  187. package/server/engine/plugins/nodesign/skills/site-craft/patterns/page-transitions.md +86 -0
  188. package/server/engine/runs/active-runs.js +698 -0
  189. package/server/engine/runs/live-turn.js +252 -0
  190. package/server/engine/runs/store.js +364 -0
  191. package/server/engine/runs/turn-relay.js +217 -0
  192. package/server/engine/runtime/workspace.js +164 -0
  193. package/server/index.js +235 -0
  194. package/server/lib/artifact-file-path.js +80 -0
  195. package/server/lib/artifact-target.js +284 -0
  196. package/server/lib/asset-refs.js +239 -0
  197. package/server/lib/async-queue.js +104 -0
  198. package/server/lib/auto-relations.js +130 -0
  199. package/server/lib/binding-types.js +60 -0
  200. package/server/lib/board-kind-sizes.js +62 -0
  201. package/server/lib/board-relations.js +133 -0
  202. package/server/lib/browse-proxy.js +180 -0
  203. package/server/lib/canvas-id.js +36 -0
  204. package/server/lib/cover.js +227 -0
  205. package/server/lib/danbooru-tags.js +291 -0
  206. package/server/lib/doc-extract.js +156 -0
  207. package/server/lib/docx/build-from-source.js +260 -0
  208. package/server/lib/docx/build.js +490 -0
  209. package/server/lib/docx/dump-styles.js +287 -0
  210. package/server/lib/docx/fonts/nodesign-cjk.conf +164 -0
  211. package/server/lib/docx/merge-runs.js +129 -0
  212. package/server/lib/docx/numbering.js +218 -0
  213. package/server/lib/docx/order.js +152 -0
  214. package/server/lib/docx/rawzip.js +172 -0
  215. package/server/lib/docx/render.js +92 -0
  216. package/server/lib/docx/text-lint.js +225 -0
  217. package/server/lib/docx/tokens.js +335 -0
  218. package/server/lib/docx/units.js +29 -0
  219. package/server/lib/docx/xml.js +291 -0
  220. package/server/lib/docx-pages.js +187 -0
  221. package/server/lib/export-collect.js +289 -0
  222. package/server/lib/export-package.js +210 -0
  223. package/server/lib/html-srcset.js +145 -0
  224. package/server/lib/image-variant.js +460 -0
  225. package/server/lib/ingress/forward-openai-chat.js +305 -0
  226. package/server/lib/ingress/openai-chat.js +491 -0
  227. package/server/lib/ingress/session-notice.js +66 -0
  228. package/server/lib/ingress/session-routes.js +68 -0
  229. package/server/lib/ingress/slot-probe.js +130 -0
  230. package/server/lib/ingress/upstream-billing.js +52 -0
  231. package/server/lib/ingress/upstream-fail-streak.js +72 -0
  232. package/server/lib/ingress/upstream-truncation.js +48 -0
  233. package/server/lib/issues-store.js +182 -0
  234. package/server/lib/kinds/deck.js +72 -0
  235. package/server/lib/kinds/docx.js +283 -0
  236. package/server/lib/kinds/file-kinds.js +113 -0
  237. package/server/lib/kinds/index.js +202 -0
  238. package/server/lib/kinds/site.js +161 -0
  239. package/server/lib/model-ingress.js +543 -0
  240. package/server/lib/moderation.js +255 -0
  241. package/server/lib/notice-store.js +103 -0
  242. package/server/lib/plugin-install.js +104 -0
  243. package/server/lib/plugin-validator.js +721 -0
  244. package/server/lib/publish-store.js +115 -0
  245. package/server/lib/quick-summary.js +52 -0
  246. package/server/lib/quota.js +270 -0
  247. package/server/lib/rate-window.js +29 -0
  248. package/server/lib/reference-assets.js +92 -0
  249. package/server/lib/region-shot.js +135 -0
  250. package/server/lib/safe-path.js +73 -0
  251. package/server/lib/sdk-session.js +33 -0
  252. package/server/lib/showcase-store.js +92 -0
  253. package/server/lib/site-publish.js +465 -0
  254. package/server/lib/ssrf-guard.js +432 -0
  255. package/server/lib/task-scan.js +158 -0
  256. package/server/lib/tavern-json.js +154 -0
  257. package/server/lib/video-variant.js +237 -0
  258. package/server/lib/workspace-path.js +33 -0
  259. package/server/ops/fix-sdk-musl.mjs +40 -0
  260. package/server/ops/install-macos-fonts.sh +114 -0
  261. package/server/ops/macos-fonts.conf +336 -0
  262. package/server/ops/sandbox-shim/bwrap +57 -0
  263. package/server/projects/assets-summary.js +119 -0
  264. package/server/projects/auto-name.js +53 -0
  265. package/server/projects/board-store.js +640 -0
  266. package/server/projects/move-entry.js +103 -0
  267. package/server/projects/store.js +270 -0
  268. package/server/projects/ui-config.js +54 -0
  269. package/server/projects/workspace-templates.js +53 -0
  270. package/server/projects/workspace.js +1025 -0
  271. package/server/runtime/capabilities.js +153 -0
  272. package/server/runtime/local-config.js +177 -0
  273. package/server/runtime/local-env.js +88 -0
  274. package/server/runtime/platform.js +342 -0
  275. package/server/runtime/profile.js +72 -0
  276. package/server/services/rembg-launcher.js +313 -0
  277. package/server/services/rembg-service.py +334 -0
  278. package/server/shared/README.md +25 -0
  279. package/server/shared/deck.js +54 -0
  280. package/server/shared/time.js +49 -0
  281. package/server/style-pipeline/README.md +53 -0
  282. package/server/ws/broker.js +36 -0
  283. package/server/ws/browse-channel.js +177 -0
  284. package/server/ws/index.js +386 -0
  285. package/web/README.md +89 -0
  286. package/web/dist/assets/BrowserWindow-Dc7J7CYc.js +11 -0
  287. package/web/dist/assets/DeckWindow-4G0xX7P3.js +16 -0
  288. package/web/dist/assets/DocxWindow-BXQsoPkh.js +16 -0
  289. package/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  290. package/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  291. package/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  292. package/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  293. package/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  294. package/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  295. package/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  296. package/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  297. package/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  298. package/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  299. package/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  300. package/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  301. package/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  302. package/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  303. package/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  304. package/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  305. package/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  306. package/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  307. package/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  308. package/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  309. package/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  310. package/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  311. package/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  312. package/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  313. package/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  314. package/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  315. package/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  316. package/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  317. package/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  318. package/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  319. package/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  320. package/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  321. package/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  322. package/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  323. package/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  324. package/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  325. package/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  326. package/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  327. package/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  328. package/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  329. package/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  330. package/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  331. package/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  332. package/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  333. package/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  334. package/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  335. package/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  336. package/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  337. package/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  338. package/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  339. package/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  340. package/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  341. package/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  342. package/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  343. package/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  344. package/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  345. package/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  346. package/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  347. package/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  348. package/web/dist/assets/SiteWindow-D6eS-2gM.js +18 -0
  349. package/web/dist/assets/again-D8tfgKKO.webp +0 -0
  350. package/web/dist/assets/caveat-nd-CP6HlsNg.woff2 +0 -0
  351. package/web/dist/assets/clock-xJhvfYpS.webp +0 -0
  352. package/web/dist/assets/film-cut-BBKMwH7q.webp +0 -0
  353. package/web/dist/assets/film-still-BZ_DL9Tt.webp +0 -0
  354. package/web/dist/assets/index-C0KUf6Wd.css +1 -0
  355. package/web/dist/assets/index-Cbl3ATvp.js +2125 -0
  356. package/web/dist/assets/ink-desk-BRbxeDsR.webp +0 -0
  357. package/web/dist/assets/ink-night-Bz4BT3XH.webp +0 -0
  358. package/web/dist/assets/ink-portrait-C0DM4V8Q.webp +0 -0
  359. package/web/dist/assets/longcang-regular-C0uvTuKa.woff2 +0 -0
  360. package/web/dist/assets/lxgw-nd-bold-DbRfiTgo.woff2 +0 -0
  361. package/web/dist/assets/lxgw-nd-regular-CpMw9Ehg.woff2 +0 -0
  362. package/web/dist/assets/pending-edit-apply-DTjo2geW.js +31 -0
  363. package/web/dist/assets/question-8H4HSqxh.webp +0 -0
  364. package/web/dist/assets/reject-BaPJqElj.webp +0 -0
  365. package/web/dist/assets/rotate-cw-LMT3x1Zj.js +11 -0
  366. package/web/dist/assets/rp-portrait-CbrGpew2.webp +0 -0
  367. package/web/dist/assets/rp-street-C4jVKjxx.webp +0 -0
  368. package/web/dist/assets/square-dashed-mouse-pointer-CBoAkfhi.js +11 -0
  369. package/web/dist/assets/tangle-DIxHVNuT.webp +0 -0
  370. package/web/dist/assets/thisone-BylZKglV.webp +0 -0
  371. package/web/dist/assets/thumb-DO1wfK1I.webp +0 -0
  372. package/web/dist/index.html +18 -0
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: deskskill-engine-mini
3
+ version: 0.4.0
4
+ description: NoDesign deck 设计守则 —— 形态和风格都跟用户探索出来,不预设范式:先问这份东西在什么场合被谁消费,再把他脑子里的感觉翻译成一个真实存在的风格名给他挑,然后试作、给看、改,直到他说"就这个",锚定后铺开整套。含形态推导、风格命名与翻译词典、页内排版与色彩系统、图像与动效手法、反默认清单。当用户要做 deck / 演示 / 幻灯片 / PPT / 海报 / 长图 / 单页报告 / pitch / lecture 等任何视觉化设计任务时使用。
5
+ ---
6
+
7
+ # 核心守则:先找到那一份,再做整套
8
+
9
+ 一个 deck 做砸,几乎不是排版技巧的问题,是**没跟用户对上他想要的样子就开始铺量**。
10
+ 铺完再改等于重做,用户也说不清哪里不对,只会说"感觉不是这个味道"。
11
+
12
+ 所以顺序永远是:
13
+
14
+ **命名 → 试作 → 给看 → 改 → 用户说"就这个" → 锚定 → 铺开整套**
15
+
16
+ 命名是把他嘴里的形容词换成一个真实存在的风格名(下面单独一节),它决定了试作
17
+ 往哪个方向做;跳过它直接试作,等于拿模型均值去猜他的心思。
18
+
19
+ 试作阶段一次只做一页(通常是封面,或者最能代表调性的那页),做真的、可看的,
20
+ 不是描述。用户看着实物给反馈,比看你写"暖调克制风"准一个量级。
21
+ 方向没定之前不要往后铺页,铺了就是在给自己制造返工。
22
+
23
+ ## 形态从一个问题长出来
24
+
25
+ 风格之前还有一层:**这份东西在什么场合被谁消费,看完要发生什么?**
26
+ 关键分叉是"讲的时候有没有人在场"——有人讲,页面是讲话的背景板,字少图大
27
+ 节奏归讲的人;没人讲,页面自己要把话说完,密度和完整性归页面。
28
+ 答案定了,页数、密度、比例、语气自己长出来。
29
+
30
+ 几个常见答案长出来的样子,当参考不当分类:
31
+
32
+ - 「投资人听完想约下一次」→ 少字大图,一页一击,节奏有起伏,结尾收在行动上
33
+ - 「自己读完就得懂」→ 信息完整优先,页可以密,图表带完整标注,读感像文档
34
+ - 「课堂上跟着讲」→ 概念逐步展开,一页一步,前后页强连贯
35
+ - 「一张图发出去」→ 海报 / 竖版长图,单件作品,全部力气砸在一屏里
36
+
37
+ 不在这几种里的(婚礼流程册 / 菜单 / 展签……)照样用那个问题现推,别硬套。
38
+ brief 里读不出场合就问一句 —— 这一步答错,风格做得再好也是给错的东西抛光。
39
+ 比例四档的选择(prelude 硬规则)就该从这里的答案顺下来,而不是单独拍。
40
+
41
+ ## 先给风格一个名字
42
+
43
+ 形态定了、动手之前,还差一步:**把他脑子里那个感觉,翻译成一个现实中真实存在的
44
+ 风格名**。
45
+
46
+ 用户说得出的是感觉("高级一点""有质感""别太商务"),你能执行的是名字。形容词
47
+ 只会把你推向模型均值 —— "温暖克制的现代感"做出来就是那张 AI 默认页;"拼贴"
48
+ 做出来立刻就有样子,因为它在现实里有实物、有做法、有可仿照的对象。反默认清单
49
+ 说的是**别去哪**,风格名说的是**去哪**,这两件是一对。
50
+
51
+ 这一步的产出:**一个用户点过头的名字**。
52
+
53
+ 1. 从他的话里抠特征:他提到的东西、举的例子、否掉的东西,以及他做的这件事本身
54
+ (同人本宣传图 / 歌词视觉页 / 作品集主页各有自己的风格谱系)
55
+ 2. 翻译成 2-4 个候选名字(词典在下面,那是你的词汇量)
56
+ 3. `AskUserQuestion` 给他挑:label 就是名字,`preview` 放一张 240×140 的 HTML
57
+ 小样(全 inline style,演示这个风格的字体 / 配色 / 版式关系)。小样比找张照片
58
+ 来得准 —— 照片是别人的作品,小样是**你打算怎么做**。
59
+ ⚠️ 别把网上的图片网址塞进 `preview`:只有以 `.png/.jpg/.webp` 结尾的地址才会
60
+ 渲染成图,其余会**静默退成一行网址**,用户看到的就是一串链接
61
+ 4. 他点中的名字就是锚,试作**照着这个名字的做法做**,不是凭形容词现编
62
+
63
+ ⚠️ **不要为了"理解风格"去搜图**。Bauhaus、拼贴、risograph 这些名字模型脑子里本来
64
+ 就有,搜一轮只是白烧时间和上下文。搜图是留给**你确实不认识的具体东西**:用户点名的
65
+ IP、角色、真人、某个具体产品型号、小众品牌 —— 那种情况才走
66
+ `web_search { include_images: true }`,把图喂 `generate_image` 的 `referenceImages`
67
+ 当锚(完整的来源策略在首次生图时注入的 cookbook 里)。
68
+
69
+ 三条红线:
70
+
71
+ - **形容词不是名字**。"温暖克制的现代风"是三个形容词摞在一起,不是锚。
72
+ - **自造词作废**。名字得是**公认的** —— 你说得出它的实例、指得出现实里的作品。
73
+ "新中式赛博风"这种当场拼出来的词没有共识,写进锚里等于没锚。
74
+ - **别把词典摊开当菜单让用户选**。名字是从他的话里翻译出来的;他该看到的是
75
+ 2-4 个带小样的候选,不是一张风格大全。摊开菜单就退回模板思维了。
76
+
77
+ 他已经点了名字("我要拼贴风")的,跳过前两步直接进试作;直接甩了参考图的,
78
+ 读图读出那是什么风格、跟他确认一下名字,再进试作。
79
+
80
+ ### 翻译词典 —— 你的词汇量,不是给用户的菜单
81
+
82
+ 第三列才是这张表的价值:名字得能立刻落到代码上,否则做出来的还是"那个名字的
83
+ 均值版"。表外的风格多得是,照样现推。
84
+
85
+ | 他可能这么说 | 名字 | 落到代码上是哪几条 |
86
+ |---|---|---|
87
+ | 手作感 / 有温度 / 像手账 | **拼贴 collage** | 微旋转 -3°~3°、`filter: drop-shadow` 不用 box-shadow、白边、元素骑线或探出边缘、纸纹底 |
88
+ | 干净 / 专业 / 别花哨 | **瑞士国际主义 / 网格派** | 单一无衬线字族、模块化栅格且元素严格落格、非对称排布、左对齐不居中、双色以内 + 大面积留白(具体色值仍走色彩节,别真用纯黑) |
89
+ | 像杂志 / 有编辑感 / 高级 | **杂志编辑风 editorial** | 衬线大标题 + 无衬线正文、通栏与窄栏混排、首字下沉、图片出血、栏目名页码这类细节排版 |
90
+ | 复古 / 怀旧 / 像老印刷 | **risograph / 活版** | 2-3 套色叠印、故意错位、纸纹噪点、低饱和荧光色 |
91
+ | 科技 / 未来 / 赛博 | **终端 / HUD**(不是紫蓝渐变) | 等宽字、扫描线、坐标刻度与标注线、深底上单一荧光色 |
92
+ | 可爱 / 二次元 / 谷子 | **贴纸风** | 圆角厚白边、高饱和、硬投影、元素堆叠遮挡 |
93
+ | 安静 / 留白 / 想让人慢下来 | **日式极简** | 行高字距都拉开、正文宽收窄、近乎无彩色、层级靠留白不靠字号 |
94
+ | 有冲击 / 反叛 / 别装精致 | **粗野主义 brutalist** | 系统默认字体、纯色硬边框、零圆角零阴影、故意的不对齐 |
95
+
96
+ ## 试作怎么做
97
+
98
+ - **缺什么就现做参照**:主体或隐喻说不清时 `generate_image` 出一两张看看。
99
+ 看得见的东西才对得齐。
100
+ - **一次给 2-3 个方向,不要一个**:单个方案用户只能说好或不好,并排才能说出
101
+ "左边的字,右边的颜色"。名字上一步已经定了,所以这 2-3 个是**同一个名字的不同
102
+ 解法**(拼贴:纸质手账感 / 杂志剪报感 / 拍立得散落感),不是三种不同风格 ——
103
+ 摆三种风格等于推翻他刚点过的锚。差异用 `preview` 字段让用户直接看(语法见 prelude)。
104
+ - **命名那轮没收敛就别硬收**:他两个候选都想看,就跳过选名字,两个候选各做一份
105
+ 真试作、标签带名字并排给他挑。真稿的判别力比 240×140 的小样高一个量级,多花的
106
+ 那点时间在这儿是值的。
107
+ - **快**:试作页允许糙,占位文字、灰块占图都行,它的任务是把风格说清楚,不是交付。
108
+ - **一轮不够就再来一轮**,用户的话往往是"再冷一点""字太挤"这种相对量,
109
+ 改完再给看。这几轮是整个项目最值的时间。
110
+
111
+ 用户说"你看着办"通常是描述不出来,不是没偏好。这种情况直接做两个方向给他挑。
112
+ 明说赶时间的,用模板兜底起步,但仍然要先给一页看过再铺。
113
+
114
+ ## 锚定
115
+
116
+ 用户点头之后,把这一份固化下来,它就是后面所有页的基准:
117
+
118
+ - `<style id="design-tokens">` 的 `:root` 整组写死(色号、字号、字体链)
119
+ - `record_decision` 落锚:`title` **名字打头**(`风格锚 = 拼贴`),取值写进 `rationale`
120
+ ("纸纹底 + 微旋转 + 白边 + 手写体标注 + 一点樱桃红")。⚠️ 入参是 title / rationale
121
+ (都必填)/ scope / alternatives,**没有 `topic`**
122
+ - 风格锚定之后顺手更新 `agent-memory/brand/memory.md`(风格档案),参照图留在
123
+ `assets/references/` 别删 —— 后面几页跑偏时靠它回锚
124
+
125
+ 锚说不出名字,说明还没定下来,回去再试一轮。
126
+
127
+ ## 铺开
128
+
129
+ 每页只回答一个问题:**这一页用锚的语言怎么说这件事**。
130
+
131
+ - 一页一个核心句,一个视觉主角。盖住其他文字只看它,讲不清就砍。
132
+ - 相邻页拉开节奏:满与空、图与字。整套下来页页同构就成了 PDF。
133
+ - 说不出用意的装饰,删。
134
+ - 中途觉得锚不对,停下来跟用户说,不要一页一页悄悄漂过去。
135
+
136
+ 写到第 8 页的用色和字体决策,应该跟第 1 页出自同一个锚。
137
+
138
+ ## 页内系统(锚定时一起固化进 tokens)
139
+
140
+ **字号跨度敢拉大**。deck 是一屏一屏看的,不是凑近读的 —— 核心句 72~160px、
141
+ 正文 20~28px、注脚 14~16px,跨度小了整页就平。层级用两三个维度做足
142
+ (字号 + 字重 + 颜色深浅),别每级只放大一点。
143
+
144
+ **间距用一套刻度**(如 8 的倍数),页内块间距明显大于行间距 —— 一页的"呼吸感"
145
+ 靠块间留白,不靠缩小字号腾地方。中文正文行高 1.6~1.8(deck 比网页可以略紧),
146
+ 字距 0.02~0.04em(大标题 0 到 -0.01em),字体链 latin 段后必须跟 CJK 段(`'PingFang SC', 'Noto Sans SC'`),
147
+ 细字重(300 以下)别用在小字号汉字上。
148
+
149
+ **色彩:一个主色 + 一套中性灰梯度**。主色小面积用(强调词 / 数据 / 细线)才有
150
+ 分量,整页铺主色是海报的事。文字别用纯黑纯白 —— 深色往主色方向偏一丝,
151
+ 整套 deck 的温度就是这么来的。灰要成梯度(正文 / 次要 / 注脚 / 线),全套复用。
152
+
153
+ **图像**:全幅大图压字只压文字落脚的局部(详见 patterns/image-led-cover.md);
154
+ `generate_image` 出的主体可以 `remove_background` 抠成透明叠层用 —— 人物半身像
155
+ 出血压边(patterns/portrait.md)、物件散落在大字周围,比规规矩矩放在框里生动
156
+ 一个量级。抠图记得 `filter: drop-shadow(...)` 贴地,别用 box-shadow(会给透明区
157
+ 画矩形影子)。
158
+
159
+ **动效是调味**:模板里 gsap / framer-motion 都在,但一套 deck 一两种动效语言
160
+ 就够(进场淡入 + 一处强调动画)。每页都动的 deck 像广告牌,不像陈述。动效做完
161
+ 自己看:`screenshot_canvas { frames:[…], trigger }` 出胶片条(2~30 格),数值级判断上
162
+ `trace_motion`,靠什么在动用 `artifact_motion` 对账。
163
+
164
+ ## 反默认清单
165
+
166
+ 下面这些是 AI 视觉的统计均值 —— 出现任何一条,说明那里**没有做设计决策**,
167
+ 只是滑进了模型的默认输出:
168
+
169
+ | 均值 | 它替代掉了什么思考 |
170
+ |---|---|
171
+ | 等高卡片网格(3-4 张同尺寸平铺) | 这几件事真的同等重要吗(不等重就左大右小 / 单 hero + 注脚) |
172
+ | emoji 当视觉主角 | hero 位到底该放什么:大字 / 真图 / 数据 / 形状 |
173
+ | 浅色 wash 渐变 + 浮动圆点 | 背景在为哪句话服务 |
174
+ | 每页顶一个彩色 chip 当 label | 章节感要不要独占一页转场(大编号 + 一句概括) |
175
+ | 相邻页同版式复用 | 节奏:满↔空 / 图↔字 / 静↔动,翻页要有呼吸 |
176
+
177
+ 铺完扫一眼,命中的地方回去把被跳过的那个问题答了 —— 答案可以恰好是默认形态,
178
+ 但要是选出来的,不是滑出来的。锚存在的意义之一,就是让这些默认无处可套。
179
+
180
+ ## 修改进来时
181
+
182
+ 先分清是**锚内**还是**动锚**:换字号、改文案、换图、调间距是锚内,直接做;
183
+ 换主色、换字体气质、"改冷酷一点"是动锚。动锚时把话说到名字上 —— "现在是拼贴,
184
+ 你要的听着更像粗野主义,我把已有页一起对齐过去?" 比"要不要改风格"具体得多,
185
+ 用户也才知道自己在换什么。确认后更新锚的落档并全局传播,不留一半旧一半新。
186
+ 分不清就按动锚处理。
187
+
188
+ ---
189
+
190
+ > 工具用法、路径、标记规约、比例硬规则在 prelude;生图 cookbook / tweaks 语法 /
191
+ > vision-checker 派发模板由 PreToolUse hook 首次调用时注入。
192
+ > layout 骨架参考按需 Read `<plugin>/patterns/<role>.md`。