@litfamily/litclaude 1.0.10 → 1.0.13

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 (718) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +436 -45
  3. package/README_ko-KR.md +403 -17
  4. package/bin/install-ownership.mjs +155 -18
  5. package/bin/litclaude-ai.js +91 -9
  6. package/docs/ab/S11-baseline-desktop.webp +0 -0
  7. package/docs/ab/S11-baseline-phone.webp +0 -0
  8. package/docs/ab/S11-litclaude-desktop.webp +0 -0
  9. package/docs/ab/S11-litclaude-phone.webp +0 -0
  10. package/docs/ab/S3-baseline-desktop.webp +0 -0
  11. package/docs/ab/S3-baseline-phone.webp +0 -0
  12. package/docs/ab/S3-litclaude-desktop.webp +0 -0
  13. package/docs/ab/S3-litclaude-phone.webp +0 -0
  14. package/docs/ab/S4-baseline-desktop.webp +0 -0
  15. package/docs/ab/S4-baseline-phone.webp +0 -0
  16. package/docs/ab/S4-litclaude-desktop.webp +0 -0
  17. package/docs/ab/S4-litclaude-phone.webp +0 -0
  18. package/docs/ab/S5-baseline-pages.webp +0 -0
  19. package/docs/ab/S5-baseline-slides.webp +0 -0
  20. package/docs/ab/S5-litclaude-pages.webp +0 -0
  21. package/docs/ab/S5-litclaude-slides.webp +0 -0
  22. package/docs/ab/S7-litclaude-diagram.webp +0 -0
  23. package/docs/ab/S8-baseline-slides.webp +0 -0
  24. package/docs/ab/S8-litclaude-slides.webp +0 -0
  25. package/docs/ab/S9-litclaude-pages.webp +0 -0
  26. package/docs/agents.md +10 -7
  27. package/docs/assets/cover-motion-still.webp +0 -0
  28. package/docs/assets/cover-motion.webp +0 -0
  29. package/docs/assets/readme/badge-version.svg +1 -1
  30. package/docs/assets/skills/autoconference.webp +0 -0
  31. package/docs/assets/skills/automatic-checks.webp +0 -0
  32. package/docs/assets/skills/autoresearch.webp +0 -0
  33. package/docs/assets/skills/browser-drive.webp +0 -0
  34. package/docs/assets/skills/debugging.webp +0 -0
  35. package/docs/assets/skills/deep-interview.webp +0 -0
  36. package/docs/assets/skills/frontend-ui-ux.webp +0 -0
  37. package/docs/assets/skills/lit-burnoff-file.webp +0 -0
  38. package/docs/assets/skills/lit-burnoff.webp +0 -0
  39. package/docs/assets/skills/lit-code.webp +0 -0
  40. package/docs/assets/skills/lit-commit.webp +0 -0
  41. package/docs/assets/skills/lit-comprehend.webp +0 -0
  42. package/docs/assets/skills/lit-crucible.webp +0 -0
  43. package/docs/assets/skills/lit-diagram-drawer.webp +0 -0
  44. package/docs/assets/skills/lit-docx.webp +0 -0
  45. package/docs/assets/skills/lit-handoff.webp +0 -0
  46. package/docs/assets/skills/lit-humanizer.webp +0 -0
  47. package/docs/assets/skills/lit-init.webp +0 -0
  48. package/docs/assets/skills/lit-loop.webp +0 -0
  49. package/docs/assets/skills/lit-plan.webp +0 -0
  50. package/docs/assets/skills/lit-pptx.webp +0 -0
  51. package/docs/assets/skills/lit-recap.webp +0 -0
  52. package/docs/assets/skills/lit-scientific-visualization.webp +0 -0
  53. package/docs/assets/skills/lit-team.webp +0 -0
  54. package/docs/assets/skills/lit-typographic-motion.webp +0 -0
  55. package/docs/assets/skills/litgoal.webp +0 -0
  56. package/docs/assets/skills/litresearch.webp +0 -0
  57. package/docs/assets/skills/litwork.webp +0 -0
  58. package/docs/assets/skills/lsp-setup.webp +0 -0
  59. package/docs/assets/skills/readme-studio.webp +0 -0
  60. package/docs/assets/skills/refactor.webp +0 -0
  61. package/docs/assets/skills/review-work.webp +0 -0
  62. package/docs/assets/skills/start-work.webp +0 -0
  63. package/docs/assets/skills/structural-search.webp +0 -0
  64. package/docs/assets/skills/visual-qa.webp +0 -0
  65. package/docs/assets/skills/wikify.webp +0 -0
  66. package/docs/hooks.md +185 -41
  67. package/docs/migration.md +6 -3
  68. package/docs/privacy.md +6 -1
  69. package/package.json +4 -2
  70. package/plugins/litclaude/.claude-plugin/plugin.json +1 -1
  71. package/plugins/litclaude/agents/korean-prose-editor.md +1 -0
  72. package/plugins/litclaude/agents/korean-style-analyzer.md +1 -0
  73. package/plugins/litclaude/agents/meaning-preservation-auditor.md +1 -0
  74. package/plugins/litclaude/agents/native-flow-reviewer.md +1 -0
  75. package/plugins/litclaude/agents/polish-orchestrator.md +1 -0
  76. package/plugins/litclaude/bin/litclaude-hook.js +347 -35
  77. package/plugins/litclaude/bin/litclaude-hud.js +29 -1
  78. package/plugins/litclaude/bin/litclaude-mcp.js +1 -1
  79. package/plugins/litclaude/bundled-rules/lit-humanizer.md +14 -0
  80. package/plugins/litclaude/commands/korean-ai-slop-remover.md +2 -2
  81. package/plugins/litclaude/commands/lit-comprehend.md +11 -11
  82. package/plugins/litclaude/commands/lit-humanizer.md +75 -0
  83. package/plugins/litclaude/commands/lit-korean.md +4 -130
  84. package/plugins/litclaude/commands/litresearch.md +12 -10
  85. package/plugins/litclaude/hooks/hooks.json +1 -1
  86. package/plugins/litclaude/lib/canonical-runtime-commitments.mjs +2 -2
  87. package/plugins/litclaude/lib/canonical-skill-catalog.mjs +5 -1
  88. package/plugins/litclaude/lib/canonical-skill-resources.mjs +618 -13
  89. package/plugins/litclaude/lib/deliverable-hedge-guard.mjs +256 -350
  90. package/plugins/litclaude/lib/hud-accent-palette.mjs +33 -0
  91. package/plugins/litclaude/lib/interface-mode.mjs +33 -0
  92. package/plugins/litclaude/lib/interface-probe-gate.mjs +125 -0
  93. package/plugins/litclaude/lib/jev-skill-hint.mjs +445 -0
  94. package/plugins/litclaude/lib/motion-render-gate.mjs +164 -0
  95. package/plugins/litclaude/lib/mutated-file-paths.mjs +32 -1
  96. package/plugins/litclaude/lib/office-runtime-lock/package-lock.json +745 -0
  97. package/plugins/litclaude/lib/office-runtime-lock/package.json +12 -0
  98. package/plugins/litclaude/lib/office-runtime-lock/requirements.lock +15 -0
  99. package/plugins/litclaude/lib/office-runtime.mjs +255 -0
  100. package/plugins/litclaude/lib/office_data.py +493 -0
  101. package/plugins/litclaude/lib/office_runtime_bootstrap.py +61 -0
  102. package/plugins/litclaude/lib/ooxml_integrity.py +199 -0
  103. package/plugins/litclaude/lib/rename-aliases.mjs +3 -1
  104. package/plugins/litclaude/lib/render_pages.py +105 -0
  105. package/plugins/litclaude/skills/autoconference/SKILL.md +2 -0
  106. package/plugins/litclaude/skills/browser-drive/SKILL.md +19 -6
  107. package/plugins/litclaude/skills/browser-drive/scripts/capability-probe.mjs +44 -8
  108. package/plugins/litclaude/skills/frontend-ui-ux/ATTRIBUTION.md +26 -0
  109. package/plugins/litclaude/skills/frontend-ui-ux/SKILL.md +50 -16
  110. package/plugins/litclaude/skills/frontend-ui-ux/examples/phase-3-readme-ab/README.md +9 -0
  111. package/plugins/litclaude/skills/frontend-ui-ux/references/complete-contract.md +32 -6
  112. package/plugins/litclaude/skills/frontend-ui-ux/references/craft-floor.md +257 -0
  113. package/plugins/litclaude/skills/frontend-ui-ux/references/default-editorial-pixel.json +6 -0
  114. package/plugins/litclaude/skills/frontend-ui-ux/references/interaction-motion.md +34 -88
  115. package/plugins/litclaude/skills/frontend-ui-ux/references/motion-guide.md +130 -0
  116. package/plugins/litclaude/skills/frontend-ui-ux/references/slop-register.md +150 -0
  117. package/plugins/litclaude/skills/frontend-ui-ux/references/visual-reconstruction.md +39 -85
  118. package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-page.mjs +1534 -0
  119. package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-rules.mjs +141 -0
  120. package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-server.mjs +57 -0
  121. package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe-static.mjs +129 -0
  122. package/plugins/litclaude/skills/frontend-ui-ux/scripts/interface-probe.mjs +316 -0
  123. package/plugins/litclaude/skills/lit-comprehend/SKILL.md +34 -43
  124. package/plugins/litclaude/skills/lit-comprehend/references/artifact-template.md +5 -44
  125. package/plugins/litclaude/skills/lit-comprehend/scripts/verify-explainer.mjs +6 -16
  126. package/plugins/litclaude/skills/lit-diagram-drawer/NOTICE +33 -0
  127. package/plugins/litclaude/skills/lit-diagram-drawer/SKILL.md +123 -0
  128. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
  129. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
  130. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
  131. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
  132. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
  133. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
  134. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
  135. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
  136. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
  137. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
  138. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
  139. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
  140. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
  141. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
  142. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
  143. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
  144. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
  145. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
  146. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
  147. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
  148. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
  149. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
  150. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
  151. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
  152. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
  153. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
  154. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
  155. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
  156. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
  157. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
  158. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
  159. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
  160. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
  161. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
  162. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
  163. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
  164. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
  165. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
  166. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
  167. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
  168. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
  169. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
  170. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
  171. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
  172. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
  173. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
  174. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
  175. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
  176. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
  177. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
  178. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
  179. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
  180. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
  181. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
  182. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
  183. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
  184. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
  185. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
  186. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
  187. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
  188. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
  189. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
  190. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
  191. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
  192. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
  193. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
  194. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
  195. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
  196. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
  197. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
  198. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
  199. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
  200. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
  201. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
  202. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
  203. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
  204. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
  205. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
  206. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
  207. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
  208. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
  209. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
  210. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
  211. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
  212. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
  213. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
  214. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
  215. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
  216. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
  217. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
  218. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
  219. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
  220. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
  221. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
  222. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
  223. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
  224. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
  225. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
  226. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
  227. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
  228. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
  229. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
  230. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
  231. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
  232. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
  233. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
  234. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
  235. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
  236. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
  237. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
  238. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
  239. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
  240. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
  241. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
  242. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
  243. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
  244. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
  245. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
  246. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
  247. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
  248. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
  249. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
  250. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
  251. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
  252. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
  253. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
  254. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
  255. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
  256. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
  257. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
  258. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
  259. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
  260. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
  261. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
  262. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
  263. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
  264. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
  265. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
  266. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
  267. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
  268. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
  269. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
  270. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
  271. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
  272. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
  273. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
  274. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
  275. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
  276. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
  277. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
  278. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
  279. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
  280. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
  281. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
  282. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
  283. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
  284. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
  285. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
  286. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
  287. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
  288. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
  289. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
  290. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
  291. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
  292. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
  293. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
  294. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
  295. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
  296. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
  297. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
  298. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
  299. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
  300. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
  301. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
  302. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
  303. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
  304. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
  305. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
  306. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
  307. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
  308. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
  309. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
  310. package/plugins/litclaude/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
  311. package/plugins/litclaude/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
  312. package/plugins/litclaude/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
  313. package/plugins/litclaude/skills/lit-diagram-drawer/assets/fonts/provenance.json +22 -0
  314. package/plugins/litclaude/skills/lit-diagram-drawer/assets/icons.html +231 -0
  315. package/plugins/litclaude/skills/lit-diagram-drawer/assets/index.html +1 -0
  316. package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
  317. package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
  318. package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
  319. package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
  320. package/plugins/litclaude/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
  321. package/plugins/litclaude/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
  322. package/plugins/litclaude/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
  323. package/plugins/litclaude/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
  324. package/plugins/litclaude/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
  325. package/plugins/litclaude/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
  326. package/plugins/litclaude/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
  327. package/plugins/litclaude/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
  328. package/plugins/litclaude/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
  329. package/plugins/litclaude/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
  330. package/plugins/litclaude/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
  331. package/plugins/litclaude/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
  332. package/plugins/litclaude/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
  333. package/plugins/litclaude/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
  334. package/plugins/litclaude/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
  335. package/plugins/litclaude/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
  336. package/plugins/litclaude/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
  337. package/plugins/litclaude/skills/lit-diagram-drawer/references/accessibility.md +37 -0
  338. package/plugins/litclaude/skills/lit-diagram-drawer/references/export.md +29 -0
  339. package/plugins/litclaude/skills/lit-diagram-drawer/references/import-drawio.md +21 -0
  340. package/plugins/litclaude/skills/lit-diagram-drawer/references/import-excalidraw.md +14 -0
  341. package/plugins/litclaude/skills/lit-diagram-drawer/references/import-mermaid.md +18 -0
  342. package/plugins/litclaude/skills/lit-diagram-drawer/references/import-schema.md +28 -0
  343. package/plugins/litclaude/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
  344. package/plugins/litclaude/skills/lit-diagram-drawer/references/motion.md +29 -0
  345. package/plugins/litclaude/skills/lit-diagram-drawer/references/office-pptx-docx.md +42 -0
  346. package/plugins/litclaude/skills/lit-diagram-drawer/references/output-spec.md +48 -0
  347. package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
  348. package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
  349. package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
  350. package/plugins/litclaude/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
  351. package/plugins/litclaude/skills/lit-diagram-drawer/references/profiles.md +24 -0
  352. package/plugins/litclaude/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
  353. package/plugins/litclaude/skills/lit-diagram-drawer/references/style-guide.md +67 -0
  354. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
  355. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-bar.md +51 -0
  356. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
  357. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
  358. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-bump.md +49 -0
  359. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
  360. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
  361. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
  362. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
  363. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
  364. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
  365. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
  366. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
  367. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-er.md +49 -0
  368. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
  369. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
  370. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
  371. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
  372. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
  373. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
  374. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
  375. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
  376. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
  377. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
  378. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-journey.md +54 -0
  379. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
  380. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-layers.md +54 -0
  381. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-line.md +54 -0
  382. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
  383. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-loop.md +54 -0
  384. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
  385. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
  386. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-nested.md +59 -0
  387. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
  388. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
  389. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-polar.md +67 -0
  390. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
  391. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-process.md +58 -0
  392. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
  393. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
  394. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
  395. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
  396. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-radar.md +57 -0
  397. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
  398. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
  399. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
  400. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
  401. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
  402. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
  403. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
  404. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-state.md +59 -0
  405. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
  406. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
  407. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
  408. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
  409. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
  410. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-tree.md +54 -0
  411. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
  412. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
  413. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-venn.md +51 -0
  414. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
  415. package/plugins/litclaude/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
  416. package/plugins/litclaude/skills/lit-diagram-drawer/references/verifier-guide.md +66 -0
  417. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
  418. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
  419. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
  420. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +223 -0
  421. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/doctor.mjs +35 -0
  422. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +635 -0
  423. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +319 -0
  424. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/export.mjs +116 -0
  425. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +438 -0
  426. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/office-safety.mjs +54 -0
  427. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/renderer.mjs +33 -0
  428. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-all.mjs +58 -0
  429. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-brief.mjs +22 -0
  430. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
  431. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +27 -0
  432. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
  433. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
  434. package/plugins/litclaude/skills/lit-diagram-drawer/scripts/visual-quality.mjs +376 -0
  435. package/plugins/litclaude/skills/lit-docx/NOTICE +33 -0
  436. package/plugins/litclaude/skills/lit-docx/SKILL.md +170 -0
  437. package/plugins/litclaude/skills/lit-docx/references/frontmatter_schema.md +42 -0
  438. package/plugins/litclaude/skills/lit-docx/references/journal_style_spec.md +17 -0
  439. package/plugins/litclaude/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
  440. package/plugins/litclaude/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
  441. package/plugins/litclaude/skills/lit-docx/references/slop_rules.md +35 -0
  442. package/plugins/litclaude/skills/lit-docx/scripts/clean_markdown.py +95 -0
  443. package/plugins/litclaude/skills/lit-docx/scripts/convert_md_to_docx.py +1194 -0
  444. package/plugins/litclaude/skills/lit-docx/scripts/convert_md_to_pdf.py +290 -0
  445. package/plugins/litclaude/skills/lit-docx/scripts/convert_pdf.py +139 -0
  446. package/plugins/litclaude/skills/lit-docx/scripts/edit_docx.py +306 -0
  447. package/plugins/litclaude/skills/lit-docx/scripts/embed_images.py +78 -0
  448. package/plugins/litclaude/skills/lit-docx/scripts/generate_docx_templates.py +500 -0
  449. package/plugins/litclaude/skills/lit-docx/scripts/qa_docx.py +177 -0
  450. package/plugins/litclaude/skills/lit-docx/scripts/slop_lint.py +561 -0
  451. package/plugins/litclaude/skills/lit-docx/scripts/visual_audit.py +48 -0
  452. package/plugins/litclaude/skills/lit-docx/templates/docx/acs.docx +0 -0
  453. package/plugins/litclaude/skills/lit-docx/templates/docx/elsevier.docx +0 -0
  454. package/plugins/litclaude/skills/lit-docx/templates/docx/ieee.docx +0 -0
  455. package/plugins/litclaude/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
  456. package/plugins/litclaude/skills/lit-docx/templates/docx/nature.docx +0 -0
  457. package/plugins/litclaude/skills/lit-docx/templates/latex/acs/README.md +5 -0
  458. package/plugins/litclaude/skills/lit-docx/templates/latex/acs/template.tex +37 -0
  459. package/plugins/litclaude/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
  460. package/plugins/litclaude/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
  461. package/plugins/litclaude/skills/lit-docx/templates/latex/ieee/README.md +5 -0
  462. package/plugins/litclaude/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
  463. package/plugins/litclaude/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
  464. package/plugins/litclaude/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
  465. package/plugins/litclaude/skills/lit-docx/templates/latex/nature/README.md +5 -0
  466. package/plugins/litclaude/skills/lit-docx/templates/latex/nature/template.tex +37 -0
  467. package/plugins/litclaude/skills/lit-docx/templates/registry.yaml +1366 -0
  468. package/plugins/litclaude/skills/lit-humanizer/NOTICE +160 -0
  469. package/plugins/litclaude/skills/lit-humanizer/SKILL.md +164 -0
  470. package/plugins/litclaude/skills/lit-humanizer/assets/always-on-rule.md +9 -0
  471. package/plugins/litclaude/skills/lit-humanizer/assets/report-skeleton.md +25 -0
  472. package/plugins/litclaude/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
  473. package/plugins/litclaude/skills/lit-humanizer/bench/prompts.md +73 -0
  474. package/plugins/litclaude/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
  475. package/plugins/litclaude/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
  476. package/plugins/litclaude/skills/lit-humanizer/examples/api-reference/after.md +9 -0
  477. package/plugins/litclaude/skills/lit-humanizer/examples/api-reference/before.md +15 -0
  478. package/plugins/litclaude/skills/lit-humanizer/examples/changelog/after.md +5 -0
  479. package/plugins/litclaude/skills/lit-humanizer/examples/changelog/before.md +12 -0
  480. package/plugins/litclaude/skills/lit-humanizer/examples/code-comments/after.md +10 -0
  481. package/plugins/litclaude/skills/lit-humanizer/examples/code-comments/before.md +19 -0
  482. package/plugins/litclaude/skills/lit-humanizer/examples/commit/after.md +5 -0
  483. package/plugins/litclaude/skills/lit-humanizer/examples/commit/before.md +7 -0
  484. package/plugins/litclaude/skills/lit-humanizer/examples/data-release/after.md +7 -0
  485. package/plugins/litclaude/skills/lit-humanizer/examples/data-release/before.md +9 -0
  486. package/plugins/litclaude/skills/lit-humanizer/examples/english-essay/after.md +5 -0
  487. package/plugins/litclaude/skills/lit-humanizer/examples/english-essay/before.md +5 -0
  488. package/plugins/litclaude/skills/lit-humanizer/examples/incident-update/after.md +7 -0
  489. package/plugins/litclaude/skills/lit-humanizer/examples/incident-update/before.md +7 -0
  490. package/plugins/litclaude/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
  491. package/plugins/litclaude/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
  492. package/plugins/litclaude/skills/lit-humanizer/examples/ko-report/after.md +9 -0
  493. package/plugins/litclaude/skills/lit-humanizer/examples/ko-report/before.md +13 -0
  494. package/plugins/litclaude/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
  495. package/plugins/litclaude/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
  496. package/plugins/litclaude/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
  497. package/plugins/litclaude/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
  498. package/plugins/litclaude/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
  499. package/plugins/litclaude/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
  500. package/plugins/litclaude/skills/lit-humanizer/examples/pr/after.md +15 -0
  501. package/plugins/litclaude/skills/lit-humanizer/examples/pr/before.md +17 -0
  502. package/plugins/litclaude/skills/lit-humanizer/examples/project-update/after.md +7 -0
  503. package/plugins/litclaude/skills/lit-humanizer/examples/project-update/before.md +9 -0
  504. package/plugins/litclaude/skills/lit-humanizer/examples/readme/after.md +12 -0
  505. package/plugins/litclaude/skills/lit-humanizer/examples/readme/before.md +14 -0
  506. package/plugins/litclaude/skills/lit-humanizer/examples/report/after.md +13 -0
  507. package/plugins/litclaude/skills/lit-humanizer/examples/report/before.md +11 -0
  508. package/plugins/litclaude/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
  509. package/plugins/litclaude/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
  510. package/plugins/litclaude/skills/lit-humanizer/examples/slides/after.md +19 -0
  511. package/plugins/litclaude/skills/lit-humanizer/examples/slides/before.md +19 -0
  512. package/plugins/litclaude/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
  513. package/plugins/litclaude/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
  514. package/plugins/litclaude/skills/lit-humanizer/motion-guide.md +123 -0
  515. package/plugins/litclaude/skills/lit-humanizer/references/code-patterns.md +468 -0
  516. package/plugins/litclaude/skills/lit-humanizer/references/deliverable-channels.md +111 -0
  517. package/plugins/litclaude/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
  518. package/plugins/litclaude/skills/lit-humanizer/references/en-patterns-content.md +243 -0
  519. package/plugins/litclaude/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
  520. package/plugins/litclaude/skills/lit-humanizer/references/en-patterns.md +57 -0
  521. package/plugins/litclaude/skills/lit-humanizer/references/ko-metrics.md +33 -0
  522. package/plugins/litclaude/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
  523. package/plugins/litclaude/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
  524. package/plugins/litclaude/skills/lit-humanizer/references/ko-patterns.md +31 -0
  525. package/plugins/litclaude/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
  526. package/plugins/litclaude/skills/lit-humanizer/references/taxonomy.md +153 -0
  527. package/plugins/litclaude/skills/lit-humanizer/rules.json +884 -0
  528. package/plugins/litclaude/skills/lit-humanizer/scripts/artifact-text.mjs +38 -0
  529. package/plugins/litclaude/skills/lit-humanizer/scripts/core.mjs +207 -0
  530. package/plugins/litclaude/skills/lit-humanizer/scripts/detect.mjs +64 -0
  531. package/plugins/litclaude/skills/lit-humanizer/scripts/extract_office_text.py +112 -0
  532. package/plugins/litclaude/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
  533. package/plugins/litclaude/skills/lit-humanizer/scripts/scan-input.mjs +29 -0
  534. package/plugins/litclaude/skills/lit-loop/SKILL.md +30 -1
  535. package/plugins/litclaude/skills/lit-plan/SKILL.md +4 -1
  536. package/plugins/litclaude/skills/lit-pptx/NOTICE +38 -0
  537. package/plugins/litclaude/skills/lit-pptx/SKILL.md +207 -0
  538. package/plugins/litclaude/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
  539. package/plugins/litclaude/skills/lit-pptx/assets/azure/circle-md.png +0 -0
  540. package/plugins/litclaude/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
  541. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Black.otf +0 -0
  542. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Bold.otf +0 -0
  543. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Light.otf +0 -0
  544. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Medium.otf +0 -0
  545. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/A2Z-Regular.otf +0 -0
  546. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/OFL.txt +94 -0
  547. package/plugins/litclaude/skills/lit-pptx/fonts/a2z/SOURCE.md +29 -0
  548. package/plugins/litclaude/skills/lit-pptx/fonts/pretendard/OFL.txt +94 -0
  549. package/plugins/litclaude/skills/lit-pptx/fonts/pretendard/Pretendard-Bold.otf +0 -0
  550. package/plugins/litclaude/skills/lit-pptx/fonts/pretendard/Pretendard-Regular.otf +0 -0
  551. package/plugins/litclaude/skills/lit-pptx/fonts/provenance.json +78 -0
  552. package/plugins/litclaude/skills/lit-pptx/references/agents/analyst.md +49 -0
  553. package/plugins/litclaude/skills/lit-pptx/references/agents/antithesis.md +59 -0
  554. package/plugins/litclaude/skills/lit-pptx/references/agents/architect.md +44 -0
  555. package/plugins/litclaude/skills/lit-pptx/references/agents/critic.md +42 -0
  556. package/plugins/litclaude/skills/lit-pptx/references/agents/synthesizer.md +47 -0
  557. package/plugins/litclaude/skills/lit-pptx/references/agents/thesis.md +33 -0
  558. package/plugins/litclaude/skills/lit-pptx/references/anti-slop-checklist.md +81 -0
  559. package/plugins/litclaude/skills/lit-pptx/references/authoring-guide.md +173 -0
  560. package/plugins/litclaude/skills/lit-pptx/references/consensus-protocol.md +125 -0
  561. package/plugins/litclaude/skills/lit-pptx/references/data-display-cookbook.md +45 -0
  562. package/plugins/litclaude/skills/lit-pptx/references/design-system-azure.md +58 -0
  563. package/plugins/litclaude/skills/lit-pptx/references/interview-protocol.md +113 -0
  564. package/plugins/litclaude/skills/lit-pptx/references/stages/autopilot.md +48 -0
  565. package/plugins/litclaude/skills/lit-pptx/references/stages/interview.md +52 -0
  566. package/plugins/litclaude/skills/lit-pptx/references/stages/plan.md +42 -0
  567. package/plugins/litclaude/skills/lit-pptx/scripts/compile-deck.js +414 -0
  568. package/plugins/litclaude/skills/lit-pptx/scripts/craft_extras.py +373 -0
  569. package/plugins/litclaude/skills/lit-pptx/scripts/deck_craft.py +321 -0
  570. package/plugins/litclaude/skills/lit-pptx/scripts/embed_fonts.py +215 -0
  571. package/plugins/litclaude/skills/lit-pptx/scripts/forbidden-terms.json +55 -0
  572. package/plugins/litclaude/skills/lit-pptx/scripts/layout_inventory.py +418 -0
  573. package/plugins/litclaude/skills/lit-pptx/scripts/learn_template.py +446 -0
  574. package/plugins/litclaude/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
  575. package/plugins/litclaude/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
  576. package/plugins/litclaude/skills/lit-pptx/scripts/lib/font-map.js +79 -0
  577. package/plugins/litclaude/skills/lit-pptx/scripts/lib/gen-bg.js +86 -0
  578. package/plugins/litclaude/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +37 -0
  579. package/plugins/litclaude/skills/lit-pptx/scripts/lib/layout-resolver.js +768 -0
  580. package/plugins/litclaude/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
  581. package/plugins/litclaude/skills/lit-pptx/scripts/lib/render-adapter-html.js +356 -0
  582. package/plugins/litclaude/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +2094 -0
  583. package/plugins/litclaude/skills/lit-pptx/scripts/lib/runtime-require.js +28 -0
  584. package/plugins/litclaude/skills/lit-pptx/scripts/lib/slide-ast.js +561 -0
  585. package/plugins/litclaude/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
  586. package/plugins/litclaude/skills/lit-pptx/scripts/lib/template-registry.js +394 -0
  587. package/plugins/litclaude/skills/lit-pptx/scripts/package.json +4 -0
  588. package/plugins/litclaude/skills/lit-pptx/scripts/qa_deck.py +766 -0
  589. package/plugins/litclaude/skills/lit-pptx/scripts/validate_pptx.py +215 -0
  590. package/plugins/litclaude/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
  591. package/plugins/litclaude/skills/lit-pptx/specs/markdown-slide-spec-v2.md +214 -0
  592. package/plugins/litclaude/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
  593. package/plugins/litclaude/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
  594. package/plugins/litclaude/skills/lit-pptx/specs/template-enrollment-contract.md +382 -0
  595. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
  596. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
  597. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
  598. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
  599. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +475 -0
  600. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
  601. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
  602. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
  603. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
  604. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
  605. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
  606. package/plugins/litclaude/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
  607. package/plugins/litclaude/skills/lit-scientific-visualization/SKILL.md +1 -0
  608. package/plugins/litclaude/skills/lit-typographic-motion/SKILL.md +131 -0
  609. package/plugins/litclaude/skills/lit-typographic-motion/engine/NOTICE +23 -0
  610. package/plugins/litclaude/skills/lit-typographic-motion/engine/THIRD_PARTY_NOTICES +56 -0
  611. package/plugins/litclaude/skills/lit-typographic-motion/engine/audio/beat_grid.py +56 -0
  612. package/plugins/litclaude/skills/lit-typographic-motion/engine/audio/requirements.lock +1084 -0
  613. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/constants.mjs +211 -0
  614. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/contrast.mjs +90 -0
  615. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/events.mjs +46 -0
  616. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/flash.mjs +211 -0
  617. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/gate-rules.mjs +550 -0
  618. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/presets.mjs +123 -0
  619. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/text.mjs +100 -0
  620. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/timeline.mjs +142 -0
  621. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/util.mjs +167 -0
  622. package/plugins/litclaude/skills/lit-typographic-motion/engine/core/voices.mjs +19 -0
  623. package/plugins/litclaude/skills/lit-typographic-motion/engine/models/word-timing.json +198 -0
  624. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/analysis.mjs +108 -0
  625. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/brief.mjs +158 -0
  626. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/chrome.mjs +330 -0
  627. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/coverage.mjs +83 -0
  628. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/done.mjs +104 -0
  629. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/encode.mjs +104 -0
  630. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/frame-worker.mjs +36 -0
  631. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/look.mjs +128 -0
  632. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/pipeline.mjs +592 -0
  633. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/png.mjs +112 -0
  634. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/report.mjs +66 -0
  635. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/runtime.mjs +330 -0
  636. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/session.mjs +145 -0
  637. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/sound-cli.mjs +60 -0
  638. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/sound.mjs +641 -0
  639. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-capture.mjs +178 -0
  640. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-gate.mjs +122 -0
  641. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-qa.mjs +295 -0
  642. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage-serve.mjs +278 -0
  643. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stage.mjs +503 -0
  644. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/stills.mjs +100 -0
  645. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/treatment.mjs +343 -0
  646. package/plugins/litclaude/skills/lit-typographic-motion/engine/node/ws-server.mjs +132 -0
  647. package/plugins/litclaude/skills/lit-typographic-motion/engine/package-lock.json +25 -0
  648. package/plugins/litclaude/skills/lit-typographic-motion/engine/package.json +10 -0
  649. package/plugins/litclaude/skills/lit-typographic-motion/engine/stage/init.js +288 -0
  650. package/plugins/litclaude/skills/lit-typographic-motion/engine/stage/qa.js +157 -0
  651. package/plugins/litclaude/skills/lit-typographic-motion/engine/stage/stage-kit.js +701 -0
  652. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/boot.mjs +123 -0
  653. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/engine.mjs +281 -0
  654. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/gl.mjs +319 -0
  655. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/glsl-common.mjs +78 -0
  656. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/index.html +6 -0
  657. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/lines.mjs +112 -0
  658. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/crt.mjs +98 -0
  659. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/dither.mjs +49 -0
  660. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/glitch.mjs +77 -0
  661. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/swiss-grid.mjs +61 -0
  662. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/terminal-ui.mjs +88 -0
  663. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/passes/tidal-gradient.mjs +86 -0
  664. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/post.mjs +165 -0
  665. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scale.mjs +15 -0
  666. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scene.mjs +82 -0
  667. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/end-card.mjs +30 -0
  668. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/index.mjs +16 -0
  669. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/karaoke-line.mjs +47 -0
  670. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/kinetic-list.mjs +45 -0
  671. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/number-counter.mjs +29 -0
  672. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/signature.mjs +73 -0
  673. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/scenes/title-slam.mjs +73 -0
  674. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/stroke.mjs +236 -0
  675. package/plugins/litclaude/skills/lit-typographic-motion/engine/web/type.mjs +180 -0
  676. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w100-400.ttf +0 -0
  677. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w100-700.ttf +0 -0
  678. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w100-900.ttf +0 -0
  679. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w125-400.ttf +0 -0
  680. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w125-700.ttf +0 -0
  681. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w125-900.ttf +0 -0
  682. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w75-400.ttf +0 -0
  683. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w75-700.ttf +0 -0
  684. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/Archivo-w75-900.ttf +0 -0
  685. package/plugins/litclaude/skills/lit-typographic-motion/fonts/archivo/OFL.txt +93 -0
  686. package/plugins/litclaude/skills/lit-typographic-motion/fonts/manifest.json +437 -0
  687. package/plugins/litclaude/skills/lit-typographic-motion/fonts/silkscreen/OFL.txt +93 -0
  688. package/plugins/litclaude/skills/lit-typographic-motion/fonts/silkscreen/Silkscreen-Bold.ttf +0 -0
  689. package/plugins/litclaude/skills/lit-typographic-motion/fonts/silkscreen/Silkscreen-Regular.ttf +0 -0
  690. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/CREDITS +42 -0
  691. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
  692. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
  693. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
  694. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
  695. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
  696. package/plugins/litclaude/skills/lit-typographic-motion/fonts/stroke/OFL.txt +91 -0
  697. package/plugins/litclaude/skills/lit-typographic-motion/fonts/vt323/OFL.txt +93 -0
  698. package/plugins/litclaude/skills/lit-typographic-motion/fonts/vt323/VT323-Regular.ttf +0 -0
  699. package/plugins/litclaude/skills/lit-typographic-motion/references/brief-schema.md +91 -0
  700. package/plugins/litclaude/skills/lit-typographic-motion/references/craft-loop.md +69 -0
  701. package/plugins/litclaude/skills/lit-typographic-motion/references/engine-contract.md +104 -0
  702. package/plugins/litclaude/skills/lit-typographic-motion/references/look.md +106 -0
  703. package/plugins/litclaude/skills/lit-typographic-motion/references/runtime.md +65 -0
  704. package/plugins/litclaude/skills/lit-typographic-motion/references/sound.md +83 -0
  705. package/plugins/litclaude/skills/lit-typographic-motion/references/stage.md +192 -0
  706. package/plugins/litclaude/skills/lit-typographic-motion/references/style-bibles.md +117 -0
  707. package/plugins/litclaude/skills/lit-typographic-motion/references/treatment.md +114 -0
  708. package/plugins/litclaude/skills/lit-typographic-motion/references/type-craft.md +79 -0
  709. package/plugins/litclaude/skills/lit-typographic-motion/scripts/motion-doctor.mjs +78 -0
  710. package/plugins/litclaude/skills/lit-typographic-motion/scripts/motion-runtime.mjs +67 -0
  711. package/plugins/litclaude/skills/lit-typographic-motion/scripts/motion.mjs +132 -0
  712. package/plugins/litclaude/skills/litresearch/SKILL.md +54 -18
  713. package/scripts/doctor.mjs +5 -0
  714. package/scripts/postinstall.mjs +1 -0
  715. package/plugins/litclaude/skills/lit-korean/SKILL.md +0 -327
  716. /package/plugins/litclaude/skills/{lit-korean/references/fidelity-checklist.md → lit-humanizer/references/litclaude-fidelity-checklist.md} +0 -0
  717. /package/plugins/litclaude/skills/{lit-korean/references/rewrite-rules.md → lit-humanizer/references/litclaude-rewrite-rules.md} +0 -0
  718. /package/plugins/litclaude/skills/{lit-korean/references/style-patterns.md → lit-humanizer/references/litclaude-style-patterns.md} +0 -0
@@ -0,0 +1,83 @@
1
+ # Sound
2
+
3
+ Every film gets a sound plan in `treatment.json` (`sound: { mode, plan, palette }`), on both render
4
+ paths. The renderer muxes whatever track the plan names, then audits the decoded stream after the
5
+ encode. Nothing here downloads a sample, a model or a library: the bed is synthesized in product
6
+ code, deterministically, from the treatment.
7
+
8
+ ## Modes
9
+
10
+ | `sound.mode` | What is muxed | When |
11
+ | --- | --- | --- |
12
+ | `generated` | A bed built by the product from the treatment: tempo, pulse, a pad chord progression and the accents the beats ask for | The default under a bare `lit`, on the type path and the stage path alike |
13
+ | `supplied` | The user's own audio file (`sound.file`), padded or trimmed to the film | The user gave a track |
14
+ | `authored` | A WAV the model wrote itself into the stage dir (`sound.file`) | The treatment calls for sound the bed cannot make |
15
+ | `none` | No audio stream | Only when the user asked for silence, or the `channel` plays muted by design |
16
+
17
+ A supplied or authored track is always muxed, whatever the state of the optional audio-analysis
18
+ tier; that tier only adds a beat grid for timing. Say in the reply that a generated bed is
19
+ generated, in plain words ("a generated music bed"), and name any supplied track by its file name.
20
+ Never switch a film to `none` to get past a check: that is a downgrade and the done-check records it.
21
+
22
+ ## Palettes
23
+
24
+ `sound.palette` is `{ "timbre": "<timbre>", "key": "<pitch class>", "mode": "<major|minor>", "tempo": <60-160> }`.
25
+ The key is one of the twelve pitch classes (sharps or flats), the mode sets the chord
26
+ progression (major: I–V–vi–IV; minor: i–VI–III–VII, always resolving home on the last chord), and
27
+ the tempo sets the pulse grid in BPM. Pick them for the film, not by habit: two films should not
28
+ sound alike.
29
+
30
+ | Timbre | Character | Pad | Pulse | Accents |
31
+ | --- | --- | --- | --- | --- |
32
+ | `soft-keys` | Warm, close, unhurried | Rounded electric-piano partials, gently detuned, low-passed | A felt kick on every beat | Felt piano strike for cadences; a soft noise-and-thump hit |
33
+ | `glass` | Bright, airy, precise | Bell-like odd partials with an octave shimmer, wide detune | A small tick on every beat and a sub note every bar | Inharmonic bell partials for hits and cadences |
34
+ | `pulse-synth` | Driving, graphic | Filtered saw pad | Eighth-note bass on the chord root under a firm kick | Plucked saw cadence; a noise snap hit; a pitched riser |
35
+ | `felt-strings` | Slow, tender, wide | Bowed-string partials with vibrato | A brushed noise pulse on every beat | A felt strike for cadences; a soft hit |
36
+
37
+ `soft-keys` and `felt-strings` suit reflective or intimate films; `glass` suits clean diagrams,
38
+ precise explainers and cool palettes; `pulse-synth` suits graphic, fast-cut motion pieces.
39
+
40
+ ## Cues
41
+
42
+ Accents appear only where a beat's free-text `sound` field asks for one. The words that ask are:
43
+
44
+ - **hit** — hit, impact, cut, stab, accent, 타격, 히트, 컷, 강세. The hit lands on the cut nearest
45
+ the beat's start when one is within 0.5 s, otherwise on the beat's start.
46
+ - **rise** — rise, riser, swell, build, build-up, lift, 상승, 고조, 빌드업. A filtered noise swell
47
+ that ends exactly on the beat's end boundary (the next change) and starts up to 1 s before it.
48
+ - **cadence** — cadence, resolve, resolution, close, ending, final chord, 종지, 마무리, 해결. A struck
49
+ tonic chord at the start of the beat's last 40 %, ringing into the film's end on the last beat.
50
+
51
+ A beat whose `sound` field names none of these gets pad and pulse only. `sound-cues.json` lists
52
+ every cue with `kind`, `t` (seconds), `beatIndex`, `target` (the beat boundary or cut it serves)
53
+ and `delta` (`t − target`), plus the palette, key, tempo, loudness, peak, sample count and the
54
+ bed's sha256. Look question 6 ("does the sound follow the cuts?") is answered from this file: each
55
+ asked-for accent should sit on its cut with a delta within one frame, and every cut the treatment
56
+ marks for sound should have a cue.
57
+
58
+ ## Loudness and limits
59
+
60
+ - 48 kHz, 16-bit, stereo WAV of exactly `round(frameCount × 48000 / fps)` samples.
61
+ - Integrated loudness −16 LUFS ± 2, measured in product code per ITU-R BS.1770-4 (K-weighting at
62
+ 48 kHz, 400 ms blocks with 75 % overlap, −70 LUFS absolute and −10 LU relative gates). A
63
+ deterministic soft limiter keeps the bed's sample peak at or under −2 dBFS.
64
+ - The pad is audible from the first quarter second, so the bed never opens on silence.
65
+ - The muxed stream is decoded and gated when `mode` is not `none`: a stream is present, its
66
+ duration is within ±0.1 s of the video, and its sample peak is at or under −0.5 dBFS. For a
67
+ generated bed, no stretch below −50 dBFS RMS (50 ms windows) may last longer than 1.5 s in the
68
+ first 3 s; that failure, or a missing stream when sound was planned, is exit 20
69
+ (`SOUND_INVALID`). For a supplied or authored track the head rule only warns.
70
+ - Audio is encoded as AAC at 256 kb/s. A supplied or authored track is padded or trimmed to the
71
+ video's duration with a 50 ms fade; the encode never uses `-shortest`, so the audio can never cut
72
+ the film short.
73
+
74
+ ## Commands
75
+
76
+ ```bash
77
+ node "$SKILL_ROOT/scripts/motion.mjs" sound --out <dir>
78
+ ```
79
+
80
+ reads `<dir>/treatment.json` and writes `<dir>/sound/bed.wav` and `<dir>/sound-cues.json`, so the
81
+ bed can be heard and its cues checked before a render. The render rebuilds the bed itself whenever
82
+ the film's frame count or cut times differ from the ones the bed was built for, so the muxed bed
83
+ always matches the film sample for sample. Two builds from the same treatment give the same bytes.
@@ -0,0 +1,192 @@
1
+ # Stage path
2
+
3
+ Read this after the treatment sets `path: stage`. On the stage path you author the film as a web
4
+ page and the renderer captures it frame by frame, deterministically, then runs the gate. You draw
5
+ whatever the treatment calls for: the subject, its motion, the type. The kit below gives motion
6
+ primitives only; it has no scenes, objects, layouts or copy, so every picture is yours.
7
+
8
+ ## Contract
9
+
10
+ - Write `stage/index.html` inside the run's output directory, plus any local assets it needs:
11
+ SVG, PNG, JPG, WebP, JS, CSS and WAV files beside it. Nothing else is served.
12
+ - The page loads the fonts and the kit from the renderer's own routes:
13
+ `<link rel="stylesheet" href="/lit/fonts.css">` and `<script src="/lit/stage-kit.js"></script>`.
14
+ - The page calls `LitStage.define({ width, height, fps, duration, render })`, or sets
15
+ `window.litStage` to the same object. `render(t)` draws the frame at `t` seconds. The renderer
16
+ calls it once per frame, in order, from 0; the page never runs its own loop.
17
+ - Size is exactly 1920×1080 for `format: 16:9` or 1080×1920 for `format: 9:16`, matching the
18
+ treatment. A capture of any other size stops the run (exit 17).
19
+ - `fps` is 60. Use 30 only when the treatment says so.
20
+ - `duration` must land within ±10 % of `treatment.durationSec`, or the gate fails. Length comes
21
+ from the treatment's arc; do not trim the page to finish sooner.
22
+ - Put the copy in one `COPY` object at the top of `stage/index.html`, so it is easy to edit and
23
+ easy to find. Every `copy.lines` entry appears verbatim there, and the page must show each one:
24
+ the QA replay quotes any line it cannot find on screen (exit 17).
25
+
26
+ A skeleton, with placeholders only:
27
+
28
+ ```html
29
+ <!doctype html>
30
+ <meta charset="utf-8">
31
+ <link rel="stylesheet" href="/lit/fonts.css">
32
+ <script src="/lit/stage-kit.js"></script>
33
+ <style>html, body { margin: 0; width: <width>px; height: <height>px; overflow: hidden; }</style>
34
+ <body>
35
+ <h1 id="line-1"></h1>
36
+ <script>
37
+ const COPY = { line1: "<one copy line>" };
38
+ const { define, text, ease, at } = LitStage;
39
+ const h1 = text(document.getElementById("line-1"));
40
+ h1.textContent = COPY.line1;
41
+ define({ width: <width>, height: <height>, fps: 60, duration: <seconds>, render(t) {
42
+ h1.style.opacity = at(t, <start>, <seconds>, ease.standard);
43
+ } });
44
+ </script>
45
+ </body>
46
+ ```
47
+
48
+ ## Kit
49
+
50
+ Every primitive is a pure function of its inputs. `LitStage` holds them all.
51
+
52
+ - Eases: `ease.outCubic(p)`, `ease.inOutSine(p)`, `ease.outBack(p)`, `ease.standard(p)`,
53
+ `ease.emphasized(p)`, `ease.decelerate(p)`, `ease.accelerate(p)`; each maps 0..1 to 0..1 with
54
+ exact ends.
55
+ - `cubicBezier(x1, y1, x2, y2)` returns an ease: `const e = cubicBezier(0.2, 0, 0, 1); e(0.5)`.
56
+ - `spring({ stiffness, damping, mass, velocity })` returns an analytic position from 0 to 1:
57
+ `const s = spring({ damping: 14 }); el.style.scale = s(t - <start>);`.
58
+ `spring.settle({ damping: 14 })` returns the seconds it needs to settle within 0.1 %.
59
+ - `kf(t, keys)`: `kf(t, [{ t: 0, v: 0, ease: "outCubic" }, { t: 1.2, v: 240 }])`. Values may be
60
+ numbers, number arrays or colours (`"#rrggbb"`, `"rgb(...)"`); `ease` on a key shapes the segment
61
+ that starts there; outside the keys the ends hold.
62
+ - `stagger(i, each, { from, count })`: `const d = stagger(i, 0.06, { from: "center", count: n });`.
63
+ - `at(t, start, dur, ease)` returns eased local progress, clamped to 0..1.
64
+ - `seq([name, dur, offset?], ...)`: `const tl = seq(["in", 0.6], ["hold", 1.8], ["out", 0.5, -0.2]);`
65
+ then `tl.p("in", t)`, `tl.local("hold", t)`, `tl.active("out", t)`, `tl.seg.out.start`,
66
+ `tl.duration`. A negative offset overlaps the previous step.
67
+ - `rand(seed)` returns a seeded generator: `const r = rand(<seed>); r();`. Also
68
+ `rand.int(<seed>)(1, 6)` and `rand.range(<seed>)(-8, 8)`.
69
+ - `splitText(el, { by })` with `by` = `grapheme`, `word`, `eojeol` or `line` replaces the element's
70
+ text with `<span data-lit-part>` units and returns them:
71
+ `splitText(el, { by: "eojeol" }).forEach((s, i) => { s.style.opacity = at(t, i * 0.08, 0.4); });`.
72
+ Units are inline-block so transforms apply. Given a string it returns the pieces. It never splits
73
+ a Hangul syllable, and `eojeol` keeps each space-separated word whole.
74
+ - `drawPath(pathEl, p)` draws an SVG stroke from 0 to 1: `drawPath(stroke, at(t, 1, 1.4, ease.inOutSine));`.
75
+ - `morph(fromD, toD, { samples })` returns `p => d` for two single-subpath shapes:
76
+ `const m = morph(shapeA, shapeB); pathEl.setAttribute("d", m(at(t, 2, 0.8)));`.
77
+ - `clipRect(el, p, { from })` reveals from `left`, `right`, `top`, `bottom` or `center`;
78
+ `wipe(el, p, { from })` is the same reveal.
79
+ - `clipCircle(el, p, { x, y })` opens an iris from `x`% `y`%.
80
+ - `maskLinear(el, p, { angle, feather })` makes a soft-edged reveal along an angle.
81
+ - `mix(a, b, t, { space })` blends two colours in oklab (default) or sRGB:
82
+ `el.style.background = mix(<colour a>, <colour b>, p);`. `rgba(colour, alpha)` sets alpha.
83
+ - `clamp`, `lerp`, `invLerp`, `remap(x, a, b, c, d)` and `smoothstep(a, b, x)` for arithmetic.
84
+ - `text(el, { decor })` marks a text run; `text({ content, x, y, w, h })` registers canvas text
85
+ (see Text).
86
+
87
+ ## Fonts
88
+
89
+ `/lit/fonts.css` declares only the product's verified faces, each with `font-display: block`, so
90
+ no frame is captured with a fallback face. Use these family names exactly:
91
+
92
+ | Family | Weights and widths | Scripts and role |
93
+ | --- | --- | --- |
94
+ | `"Pretendard"` | 400, 700 | Hangul and Latin; body and display |
95
+ | `"Archivo"` | 400, 700, 900 at `font-stretch` 75 %, 100 %, 125 % | Latin display |
96
+ | `"VT323"` | 400 | Latin terminal voice |
97
+ | `"Silkscreen"` | 400, 700 | Latin pixel voice |
98
+ | `"Galmuri9"` | 400 | Hangul and Latin pixel voice |
99
+ | `"MesloLGS NF"` | 400 | Latin monospace |
100
+
101
+ Any other family falls back to a system face. The QA replay reports that, and fails it for copy
102
+ text. Set Korean copy in Pretendard. Never ask for a weight the family does not have (the browser
103
+ would synthesize a fake bold), and never animate tracking or width on Hangul.
104
+
105
+ ## Clock
106
+
107
+ The renderer owns time. It steps a virtual clock frame by frame from 0 and captures the frames in
108
+ order. `Date`, `performance.now`, `setTimeout`, `setInterval`, `requestAnimationFrame`,
109
+ `requestIdleCallback`, `document.timeline.currentTime`, CSS animations and transitions, the Web
110
+ Animations API (its `finished` promises included), SVG SMIL and `Math.random` (seeded from the
111
+ treatment) all follow that clock. So CSS keyframes, WAAPI chains and timers are safe to use.
112
+
113
+ Anything outside the clock is not. Never let `performance.timeOrigin`, `crypto.getRandomValues` or
114
+ any other real clock or entropy reach a visible value: a second capture in a fresh browser compares
115
+ sampled frames pixel by pixel, and a difference stops the run (exit 18) naming the frame and the
116
+ region. For variation, use `LitStage.rand(<seed>)`.
117
+
118
+ ## Forbidden
119
+
120
+ - Elements `<video>`, `<audio>`, `<iframe>`, `<object>`, `<embed>` and `<frame>`; the APIs
121
+ `new Audio()`, `AudioContext` and `OfflineAudioContext`; `Worker`, `SharedWorker` and service
122
+ workers. Each stops the run with exit 17, naming the element or API. Sound comes from the
123
+ treatment's `sound` plan, never from the page.
124
+ - Network of any kind: `WebSocket`, `WebTransport`, `RTCPeerConnection`, any absolute `http(s)://`
125
+ or protocol-relative (`//…`) URL, and preconnect or prefetch links. Each is exit 19. Everything
126
+ the page uses is local.
127
+ - Third-party libraries: never install, download or copy one into the stage directory. Use the kit
128
+ and your own code.
129
+ - Rasters: at most 24 raster images and 8 MB in total. Ten or more rasters of the same size (a
130
+ flipbook), or any animated GIF, APNG or WebP, is exit 17. Rasters are textures and stills, never a
131
+ frame sequence.
132
+ - Hand-encoded films are not the deliverable: no frame loop encoded by hand, no screen recording,
133
+ no raster flipbook. Every frame passes through the renderer.
134
+
135
+ ## Text
136
+
137
+ The QA replay reads DOM text in a separate browser and never touches the master capture.
138
+
139
+ - Mark each copy element with `LitStage.text(el)`, or let its nearest block element carry the run.
140
+ A run is the text of that element, however it is split into spans.
141
+ - Illustrative text inside a drawn subject is decor: `text(el, { decor: true })`. Decor is exempt
142
+ from title-safe and the reading floor, its contrast is a warning only, it may never carry a copy
143
+ line, and it may cover at most 25 % of the visible text area in any sample.
144
+ - Canvas and WebGL text is invisible to the QA unless you register it every frame with
145
+ `LitStage.text({ content, x, y, w, h })`. Unregistered canvas text is reported as not measured.
146
+ - Copy stays inside the central 90 % of the frame, reaches 4.5:1 contrast (3:1 when its font size
147
+ is at least 3 % of the frame's short side), and stays readable for at least its reading floor.
148
+ - Never put the request, the idea, a file name or an internal term on screen as a label.
149
+
150
+ ## Unsupported
151
+
152
+ - Morphs between shapes with more than one subpath: `morph` throws
153
+ `morph: multi-subpath paths are unsupported`. Morph each subpath separately, or cross-fade.
154
+ - Anything that reads the real clock or unseeded entropy for a visible value.
155
+ - Video and audio elements, and any page-side sound.
156
+ - No tested effect is non-deterministic on the stage renderer: CSS `filter: blur()`,
157
+ `backdrop-filter`, `mix-blend-mode`, `box-shadow`, SVG `feGaussianBlur` and SMIL, Canvas2D
158
+ `shadowBlur` and a WebGL shader all match a fresh replay pixel for pixel. The renderer rasterizes
159
+ every tile in full on the CPU (SwiftShader, no partial raster). An element whose opacity and
160
+ transform change together can still rasterize one level apart depending on which earlier frames
161
+ were painted and captured, so the determinism replay paints and captures every frame exactly as
162
+ the master does; stills-only frames may differ from the master by that one level. For WebGL, create the context with
163
+ `preserveDrawingBuffer: true`.
164
+
165
+ ## Commands
166
+
167
+ `SKILL_ROOT` is the skill's directory; run the installed commands by absolute path.
168
+
169
+ ```bash
170
+ node "$SKILL_ROOT/scripts/motion.mjs" stage --out <dir> --round <N> --stills-only
171
+ node "$SKILL_ROOT/scripts/motion.mjs" stage --out <dir> --round <N>
172
+ ```
173
+
174
+ The first writes the stills set only: every beat midpoint, a −6 / 0 / +6 frame transition strip
175
+ per cut, and a 12-frame contact sheet. Nothing is encoded. The second is the full render: the
176
+ master, the preview, the poster, the reduced-motion still, the determinism re-check, the text QA
177
+ replay, the sound mux and the gate. Give the full render call a timeout of at least 600 s, and
178
+ never shorten the film to save render time.
179
+
180
+ | Exit | Meaning |
181
+ | --- | --- |
182
+ | 10 | No Chrome |
183
+ | 11 | The page asked for WebGL and none is available |
184
+ | 12 | No ffmpeg; the stills and the sheet are still written |
185
+ | 13 | Gate FAIL |
186
+ | 14 | Runtime not pre-warmed |
187
+ | 15 | A font is missing or its hash differs |
188
+ | 16 | Treatment invalid (names the field) |
189
+ | 17 | Stage contract error |
190
+ | 18 | Nondeterministic frame |
191
+ | 19 | Network request |
192
+ | 20 | Sound invalid |
@@ -0,0 +1,117 @@
1
+ # Style bibles
2
+
3
+ A style bible is the one page that decides how a film looks before any scene is written: the
4
+ palette, the three type voices, the motion vocabulary, the shader passes and their order, the
5
+ layout grid, what to avoid, and what makes this film its own. The engine carries each preset as
6
+ data (`engine/core/presets.mjs`); this page is the reasoning behind that data. Write the film's own
7
+ short bible in the reply when the user asked for a direction; under a bare `lit`, state the preset
8
+ and why in one sentence.
9
+
10
+ ## Template
11
+
12
+ | Part | Decide |
13
+ | --- | --- |
14
+ | Idea | One sentence: what the film says and the single image it leaves. |
15
+ | Palette | A ground, one type colour, one signal hue, at most one rare accent. Name every colour by role. |
16
+ | Three voices | Display (titles, hooks), body (running text; Hangul body for Korean), machine (data, credits, counters). |
17
+ | Motion tone | Named tokens only: how type lands, how long it holds, how a shot ends. No per-shot curves. |
18
+ | Passes | Which look-library passes run, in which order, and how strongly. |
19
+ | Grid | Columns, gutter, margin, baseline; where the eye enters each shot. |
20
+ | Anti-slop | Three to five things this film must not do. |
21
+ | Originality | What is this brief's own: its metaphor, its rhythm, its one accent moment. |
22
+
23
+ ## Auto-pick (MO-B-00)
24
+
25
+ Checked in order, first match wins, whole words only (a Korean keyword must start a token, so it
26
+ never matches the tail of a longer word). An explicit `style` always wins.
27
+
28
+ | The brief mentions | Preset |
29
+ | --- | --- |
30
+ | 터미널, CRT, 해커 / terminal, hacker | terminalcore |
31
+ | 물결, 파도, 잔잔한, 흐름 / gradient, wave, tide, calm | tidal |
32
+ | anything else | swiss-signal |
33
+
34
+ System, status and flow are deliberately not keywords: they appear in payment systems, design
35
+ systems and workflows that have nothing to do with a terminal or a tide.
36
+
37
+ ## swiss-signal (default)
38
+
39
+ **Palette.** Ink ground `#0C0E13`; bone type `#E9EBE4`; one teal signal `#0F7A82`; one amber
40
+ accent `#D9A441` for a single moment; graphite `#4B5058` for hairlines only. Bone on ink is 16:1.
41
+ Teal on ink is 3.8:1, which clears the 3:1 large-type floor but not 4.5:1, so teal type must be at
42
+ least 32 px (25 px at 700 weight) or a mark, never small text.
43
+
44
+ **Voices.** Display: Archivo in static width steps (75, 100, 125) at 900, stepping width, never
45
+ interpolating; Hangul display in the Pretendard Bold file. Body: Archivo 400 / Pretendard Regular.
46
+ Machine: MesloLGS NF for annotations, credits and figures.
47
+
48
+ **Motion.** `slam`: 180 ms on the deceleration curve cubic-bezier(0.16, 1, 0.3, 1), landing on the
49
+ downbeat, entrance scale never below 0.95. `hold`: 0.6–0.9 s of stillness after a slam. `cut`: a
50
+ hard cut with no easing between shots. No spring, no bounce: print is precise, not playful.
51
+
52
+ **Passes.** swiss-grid (hairline rules that make the grid visible) then dither (Bayer 4x4 at about
53
+ 0.3 strength, an engraved-print texture). Grain, vignette and a little chromatic aberration come
54
+ from the post chain. No bloom: glow on bone type reads as cheap.
55
+
56
+ **Grid.** 12 columns, 24 px gutter, 96 px margin, 8 px baseline. Asymmetric: type sits on the left
57
+ column edge, annotations beside the headline rather than stacked under it, generous empty space.
58
+
59
+ **Anti-slop.** Centered fade-ins as the only move; one ease for everything; glitch without a beat
60
+ reason; any second hue; bloom; a hold so long it reads as a stall.
61
+
62
+ **Originality.** Borrow the pattern (one ground, one signal, one rare accent), never a known
63
+ film's colours. Each shot gets this brief's own metaphor.
64
+
65
+ ## terminalcore
66
+
67
+ **Palette.** Navy ground `#05070A`; panel `#0C1116` for window chrome; one signal hue per film,
68
+ phosphor green `#39FF6A` (default) or electric blue `#2FB6FF`, never both; status grey `#7C8B93`.
69
+ Green on navy is 15:1 and grey on navy 5.7:1 on a flat ground. The crt vignette and scanlines
70
+ darken the window corners below 4.5:1 for grey, so the chrome label and the readout there are set in
71
+ the signal hue; grey stays on strokes and on text nearer the centre.
72
+
73
+ **Voices.** Display: Galmuri9 for Hangul (pixel type at whole multiples of its 9 px grid, at least
74
+ 36 px) with VT323 for Latin. Machine: MesloLGS NF for readouts. Chrome labels: Silkscreen. Galmuri
75
+ and VT323 never share a status line cell for cell.
76
+
77
+ **Motion.** `type-in`: characters appear at the terminal's rate (22 per second), linear, with no
78
+ easing, because a terminal does not ease. `boot-flicker`: the first 250 ms of a shot flicker at the
79
+ capped CRT amplitude, counted as one event. Hard cuts on downbeats. Nothing overshoots.
80
+
81
+ **Passes.** terminal-ui (window chrome, meters, readout) then crt (scanlines, curvature, capped
82
+ flicker) then dither (Bayer 4x4, 2 px cells) then glitch (rare, at most 0.5 hits per second, each hit
83
+ one band for two frames). This is the only preset with four passes, so the per-shot event budget
84
+ (two events in any second) is the real limit.
85
+
86
+ **Grid.** One thin-bordered window on a flat field, no depth or shadow; text aligned to the
87
+ character grid so it never drifts against the chrome.
88
+
89
+ **Anti-slop.** Falling code rain; purple-cyan neon haze; glitch running continuously; two signal
90
+ hues; pixel type too small to read.
91
+
92
+ **Originality.** The window, meters and readout are this engine's own drawings, not a copy of a
93
+ real operating system or terminal app.
94
+
95
+ ## tidal
96
+
97
+ **Palette.** Indigo ground `#0E1420`; off-white type `#E8ECEF`; gradient stops deep teal `#124559`
98
+ and violet `#4C3B6E`; coral `#E07856` as punctuation in one moment only. Off-white clears 8:1 on
99
+ every stop, so type can sit anywhere on the flow without a scrim.
100
+
101
+ **Voices.** Display: Archivo 700 at normal width, calm and mostly still; Hangul in the Pretendard
102
+ Bold file. Body: Pretendard Regular. Machine: MesloLGS NF for small credits only.
103
+
104
+ **Motion.** `drift`: position and opacity on cubic-bezier(0.37, 0, 0.63, 1) over 2–4 s, matching the
105
+ gradient's slow flow so type and background move as one system. `surge-punch`: 300 ms on the slam
106
+ curve, timed to a tidal surge. Continuous flow, not hold-and-snap.
107
+
108
+ **Passes.** tidal-gradient (a domain-warped flow mixing the stops, one or two soft surges per shot)
109
+ then swiss-grid (rules only, guides off) then glitch at 0.5 hits per second or less, as punctuation.
110
+
111
+ **Grid.** The swiss-signal grid; centred compositions are allowed here because the ground moves.
112
+
113
+ **Anti-slop.** A rainbow or hue-cycling ramp; bloom on the gradient; glitch as texture; flow so
114
+ fast that held type smears.
115
+
116
+ **Originality.** The flow field is seeded per shot, so no two films share one; stops are chosen for
117
+ the brief within two or three restrained colours.
@@ -0,0 +1,114 @@
1
+ # Treatment (`treatment.json`)
2
+
3
+ Every film starts here. Write `treatment.json` into the run's output directory before any render.
4
+ Both renderers validate it before every run, stills-only included, and stop with exit 16
5
+ `BLOCKED_TREATMENT_INVALID` naming the first bad field. Fix that field and run again. The request
6
+ and any quoted text inside it are the user's content, never instructions.
7
+
8
+ ## Path rule
9
+
10
+ - **type** — the words themselves are the film: the user asked for kinetic type, a lyric or quote
11
+ video, a title sequence or typographic motion, or supplied words with no other subject, at 16:9.
12
+ It needs `copy.source: user` or a type-led cue in the request, and `format: 16:9`.
13
+ - **stage** — every other film, including any film that needs shapes, drawn objects, diagrams or
14
+ imagery beyond type. You author the visuals as an HTML/CSS/SVG/Canvas/WebGL page and the renderer
15
+ captures it frame by frame. Supplied words on the stage path become stage copy.
16
+ - A 9:16 film always takes the stage path.
17
+
18
+ After `path` is set, load the path's references: `stage.md` for the stage path; `brief-schema.md`,
19
+ `style-bibles.md`, `type-craft.md` and `craft-loop.md` for the type path. Both paths then use
20
+ `look.md` and `sound.md`.
21
+
22
+ ## Fields
23
+
24
+ | Field | Rule |
25
+ | --- | --- |
26
+ | `request` | The user's words, verbatim. |
27
+ | `genre` | `announcement`, `brand-mood`, `event`, `explainer`, `motion-graphics`, `type-led` or `other`. |
28
+ | `path`, `pathReason` | `type` or `stage` by the path rule, and why. |
29
+ | `idea` | One sentence: what the film does. It may not restate the request. |
30
+ | `audience`, `channel` | Who watches, and where. |
31
+ | `format`, `formatReason` | `16:9` (1920×1080) or `9:16` (1080×1920), with a reason tied to the channel. |
32
+ | `durationSec` | 4–90. Unless the user asked for a length, `announcement`, `event`, `explainer` and `motion-graphics` films run at least 10 s. |
33
+ | `beats[]` | `{t0, t1, purpose, onScreen, motion, sound}`, covering 0 to `durationSec` with no gap over 0.25 s; every beat at least 1.2 s; at least the genre arc's stage count. |
34
+ | `subject` | `{name, source: user \| invented, specifics[]}`. An invented subject has a name and at least 2 concrete specifics: what it is or does, for whom, one distinctive detail. |
35
+ | `visualDevices[]` | `{kind, role: subject \| support \| texture, beats[]}` (beat indices). Kinds: `illustration`, `diagram`, `chart`, `icon`, `shape`, `path`, `mask`, `depth3d`, `particles`, `grid`, `gradient`, `photo-texture`. Stage path: at least one `subject` device on screen for half the film or more, and at least 2 distinct kinds that are not `grid`, `gradient`, `particles` or `photo-texture` (those are always `texture`). |
36
+ | `typePlan` | `{faces[], hierarchy, maxWordsOnScreen, index?}`. Faces: `Pretendard`, `Archivo`, `VT323`, `Silkscreen`, `Galmuri9`, `MesloLGS NF`. `index: true` only when the film should show a running shot index. |
37
+ | `palette[]` | 3–6 `{color, role}` entries. |
38
+ | `sound` | `{mode, plan, palette}`. `generated` is the default under bare `lit` on both paths; `supplied` and `authored` add `file`; `none` only when the user asked for silence or the channel plays muted by design. See `sound.md`. |
39
+ | `copy` | `{source: user \| invented, lines[]}`. With `user`, every line must be found in the request. With `invented`, write it from `subject.specifics`; no line may restate the request. |
40
+ | `inventions[]` | Every invented part: the subject's name, its specifics, the copy. Required whenever the subject or the copy is invented. |
41
+ | `ambition` | 1–2 sentences, in craft terms, on what would make this film excellent. |
42
+ | `seed` | Optional integer; the renderer seeds `Math.random` from it (default: a hash of the request). |
43
+ | `fps`, `posterBeat` | Optional: `30` instead of the default 60 (stage path); the beat whose midpoint is the poster (default the middle beat). |
44
+
45
+ Comparisons normalize text first: NFC, lowercase, no whitespace or punctuation. Quoted spans are
46
+ removed from the request before `idea` and invented copy are compared with it; a shared run of
47
+ min(10, half the normalized request) characters counts as a restatement.
48
+
49
+ ## Example (placeholders only)
50
+
51
+ The values below show the shape. They are placeholders, the validator rejects them, and a
52
+ treatment whose free text matches this example's for half or more of its values exits 16 with
53
+ `copiedExample`. Write this film's own treatment.
54
+
55
+ ```json
56
+ {
57
+ "request": "<the user's words, verbatim>",
58
+ "genre": "<one genre>",
59
+ "path": "<type or stage>",
60
+ "pathReason": "<why this path>",
61
+ "idea": "<one sentence on what the film does>",
62
+ "audience": "<who watches>",
63
+ "channel": "<where it plays>",
64
+ "format": "<16:9 or 9:16>",
65
+ "formatReason": "<why, from the channel>",
66
+ "durationSec": "<4-90>",
67
+ "beats": [
68
+ { "t0": "<start s>", "t1": "<end s>", "purpose": "<this beat's job in the arc>", "onScreen": "<what is drawn and written>", "motion": "<how it moves and cuts>", "sound": "<what the sound does here>" }
69
+ ],
70
+ "subject": { "name": "<subject name>", "source": "<user or invented>", "specifics": ["<what it is or does>", "<one distinctive detail>"] },
71
+ "visualDevices": [{ "kind": "<device kind>", "role": "<subject, support or texture>", "beats": ["<beat index>"] }],
72
+ "typePlan": { "faces": ["<face>"], "hierarchy": "<type hierarchy>", "maxWordsOnScreen": "<n>" },
73
+ "palette": [{ "color": "<#hex>", "role": "<colour role>" }],
74
+ "sound": { "mode": "<mode>", "plan": "<sound plan>", "palette": { "timbre": "<timbre>", "key": "<key>", "mode": "<major or minor>", "tempo": "<bpm>" } },
75
+ "copy": { "source": "<user or invented>", "lines": ["<one copy line>"] },
76
+ "inventions": ["<every invented part>"],
77
+ "ambition": "<what would make this excellent, in craft terms>"
78
+ }
79
+ ```
80
+
81
+ ## Genre arcs
82
+
83
+ Length comes from the arc. Each stage is at least one beat.
84
+
85
+ - **announcement:** hook → context → key moment → details → close.
86
+ - **brand-mood:** motif → variation → peak → resolve.
87
+ - **event:** hook → what, when, where → highlight → close.
88
+ - **explainer:** question → steps → result → recap.
89
+ - **motion-graphics:** opening motif → set piece → set piece → peak → resolve.
90
+ - **type-led:** one breath per line, with emphasis and pause.
91
+ - **other:** at least three beats with a clear turn.
92
+
93
+ ## Invention
94
+
95
+ Keep the user's own words when they supplied words, and never rewrite their meaning. When the
96
+ request names no specific subject, words or facts, invent a concrete example subject and write the
97
+ copy from its specifics, never from the request's wording. List every invention in `inventions[]`;
98
+ the reply labels each one as an invented example.
99
+
100
+ ## Craft
101
+
102
+ Show the subject; do not only name it. With the sound muted and every word hidden, the drawn subject
103
+ alone should still suggest what the film is about.
104
+
105
+ Aim for professional motion-design craft in every film: varied transitions (match cuts, masks,
106
+ morphs), rhythm locked to the sound, layered depth, clear hierarchy, deliberate easing. Every beat
107
+ shows something new. Length comes from the arc; never shorten the film or merge beats to pass a
108
+ check.
109
+
110
+ A beat's `onScreen` is a plan the look rounds check against the pixels, so write what a viewer will
111
+ see, not a mood. A beat's `sound` field is where accents are asked for: a hit on a cut, a rise into
112
+ a change, a closing cadence. Never downgrade to pass: shortening the film, dropping a beat or the
113
+ subject device, switching the sound to `none` or the path from stage to type is recorded by the
114
+ done-check and has to be said in the reply.
@@ -0,0 +1,79 @@
1
+ # Type craft for Korean and Latin in motion
2
+
3
+ Rules the type kit enforces and the gate checks. Where the kit enforces a rule by construction the
4
+ gate still measures it from the log, so a custom scene cannot quietly break it.
5
+
6
+ ## Script runs (MO-FT-04)
7
+
8
+ A string is split into script runs before layout. Digits, punctuation and spaces are not a script:
9
+ they join the run beside them, the left one when they sit between two scripts, the right one before
10
+ the first letter. "2026년" is one Hangul run; "LIT팀" is a Latin run and a Hangul run split exactly
11
+ at the script boundary. Each run gets its voice's font for that script.
12
+
13
+ - Latin runs may track and step width (Archivo 75 / 100 / 125).
14
+ - Hangul runs are forced to tracking 0 and width 100, even inside a mixed line whose Latin run is
15
+ animating. Emphasis on Hangul is weight only, and only between the two files lit-pptx already
16
+ ships (Pretendard Regular 400 and Bold 700). Nothing is synthesized: no fake bold, no horizontal
17
+ scale, no condensed Hangul (MO-A-33).
18
+
19
+ ## Line breaks and reveals (MO-A-13, MO-FT-05)
20
+
21
+ Korean breaks only at whitespace between eojeol (a word with its attached particles). A karaoke
22
+ reveal step is one eojeol; a list reveal step is one whole item. The engine wraps lines by eojeol
23
+ and shrinks the size until a block fits, rather than breaking inside a word.
24
+
25
+ ## Kerning and split words (MO-A-32)
26
+
27
+ A word drawn in pieces (a colour split, a letter-by-letter reveal) places piece i at the kerned
28
+ position of glyph i in the whole run (`glyphX`), never at the width of the text before it, which
29
+ drops the kerning pair at the split and shows as a hairline gap.
30
+
31
+ ## Punctuation (MO-A-34)
32
+
33
+ Display text goes through `smart()`: `...` to an ellipsis, straight quotes to curly, leading
34
+ elisions (’cause, ’90s) to an apostrophe. The machine voice and the terminal look keep typewriter
35
+ punctuation through `plain()`, because they show typed input.
36
+
37
+ ## No outline, no halo (MO-A-35)
38
+
39
+ Never stroke glyph outlines or add a halo to make type legible. Fix legibility with the palette,
40
+ size or weight. The kit has no outline API; the single-stroke plotter fonts are strokes by design
41
+ and are the one exception.
42
+
43
+ ## Sizes and weights at 1080p (MO-FT-07)
44
+
45
+ - Pretendard Regular for held type up to about 32 px cap height; slams and large kinetic type use
46
+ Bold, because thin strokes break up under motion blur from the sub-frame samples.
47
+ - Galmuri9 only at whole multiples of its 9 px grid and at least 36 px (4x).
48
+ - VT323 and Galmuri never share a readout cell for cell; give each its own line.
49
+ - Contrast floors are by rendered font size: at least 32 px (or 25 px at weight 700) is large and
50
+ needs 3:1; anything smaller needs 4.5:1 (MO-C-06).
51
+
52
+ ## Tracking (MO-C-25)
53
+
54
+ Display type may tighten to -0.04 em and no further. The machine voice and small type never go
55
+ negative: a monospace grid with negative tracking fights itself.
56
+
57
+ ## Multi-line blocks (MO-C-26, MO-C-27)
58
+
59
+ A block of two or more lines keeps a line height of at least 1.5 (Latin) or 1.6 (Korean). A
60
+ paragraph card of running Latin text keeps 60–75 characters per line; a Korean card gets an
61
+ advisory 30–45 characters.
62
+
63
+ ## Reading time (MO-C-07, MO-C-08)
64
+
65
+ One floor function for every unit:
66
+
67
+ - line or scene with text: `max(1.0 if any Hangul else 0.9, 0.2 x Hangul syllables + Latin words / 3.3)`
68
+ and no more than 17 Latin characters per second;
69
+ - a word shown alone: `max(0.5, 0.2 x H + W / 3.3)`;
70
+ - a reveal step inside a line that stays up: 0.35 s.
71
+
72
+ The engine generates holds at 1.25 x the floor, so its own timeline always clears the gate; a
73
+ 4-eojeol line with 14 syllables floors at 2.8 s and gets 3.5 s before beat snapping.
74
+
75
+ ## Glyph coverage (MO-D-04)
76
+
77
+ Before the first frame every character is looked up in the cmap of the font its run resolves to.
78
+ A missing glyph stops the render with the font and character named; change the text or the style.
79
+ The stroke fonts cover Latin only.