@litfamily/litopencode 1.0.7 → 1.0.10

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 (726) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README-Ko-KR.md +348 -31
  3. package/README.md +347 -29
  4. package/dist/activation-primary-prompts.d.ts +1 -0
  5. package/dist/activation-primary-prompts.js +16 -0
  6. package/dist/activation-probe.js +4 -1
  7. package/dist/activation-prompt-utils.d.ts +1 -1
  8. package/dist/activation-routing.d.ts +6 -1
  9. package/dist/activation-routing.js +174 -16
  10. package/dist/activation-workflow-prompts.d.ts +1 -1
  11. package/dist/activation-workflow-prompts.js +18 -17
  12. package/dist/activation.d.ts +15 -8
  13. package/dist/activation.js +61 -7
  14. package/dist/agents/defaults.js +14 -6
  15. package/dist/cli/command-aliases.js +24 -22
  16. package/dist/cli/doctor.js +5 -0
  17. package/dist/cli/install-report.d.ts +1 -0
  18. package/dist/cli/install-report.js +4 -0
  19. package/dist/cli/install.js +7 -4
  20. package/dist/cli/managed-skill-assets.d.ts +1 -1
  21. package/dist/cli/managed-skill-assets.js +15 -5
  22. package/dist/cli/motion-runtime.d.ts +6 -0
  23. package/dist/cli/motion-runtime.js +46 -0
  24. package/dist/cli/native-skill-install.js +32 -9
  25. package/dist/cli/native-skill-integrity.js +1 -0
  26. package/dist/cli/native-skills.d.ts +2 -0
  27. package/dist/cli/native-skills.js +2 -1
  28. package/dist/cli/office-dependencies.d.ts +14 -0
  29. package/dist/cli/office-dependencies.js +24 -0
  30. package/dist/cli.js +13 -3
  31. package/dist/commands.d.ts +2 -11
  32. package/dist/commands.js +9 -17
  33. package/dist/deliverable-hedge-guard.d.ts +20 -21
  34. package/dist/deliverable-hedge-guard.js +234 -275
  35. package/dist/features.d.ts +81 -2
  36. package/dist/features.js +80 -13
  37. package/dist/hooks.d.ts +3 -2
  38. package/dist/hooks.js +4 -4
  39. package/dist/ignition.d.ts +1 -1
  40. package/dist/ignition.js +15 -4
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/interface-handoff.d.ts +1 -0
  44. package/dist/interface-handoff.js +1 -0
  45. package/dist/jev-skill-hint.d.ts +48 -0
  46. package/dist/jev-skill-hint.js +291 -0
  47. package/dist/motion-image-reads.d.ts +6 -0
  48. package/dist/motion-image-reads.js +46 -0
  49. package/dist/server.js +38 -20
  50. package/dist/skill-renames.d.ts +4 -2
  51. package/dist/skill-renames.js +12 -4
  52. package/dist/skills.d.ts +31 -3
  53. package/dist/skills.js +53 -9
  54. package/dist/tools.js +4 -4
  55. package/docs/ab/S11/baseline-desktop.webp +0 -0
  56. package/docs/ab/S11/baseline-phone.webp +0 -0
  57. package/docs/ab/S11/lit-desktop.webp +0 -0
  58. package/docs/ab/S11/lit-phone.webp +0 -0
  59. package/docs/ab/S3/baseline-desktop.webp +0 -0
  60. package/docs/ab/S3/baseline-phone.webp +0 -0
  61. package/docs/ab/S3/lit-desktop.webp +0 -0
  62. package/docs/ab/S3/lit-phone.webp +0 -0
  63. package/docs/ab/S4/baseline-desktop.webp +0 -0
  64. package/docs/ab/S4/baseline-phone.webp +0 -0
  65. package/docs/ab/S4/lit-desktop.webp +0 -0
  66. package/docs/ab/S4/lit-phone.webp +0 -0
  67. package/docs/ab/S5/lit-slides.webp +0 -0
  68. package/docs/ab/S7/lit-diagram.webp +0 -0
  69. package/docs/ab/S8/baseline-slides.webp +0 -0
  70. package/docs/ab/S8/lit-slides.webp +0 -0
  71. package/docs/ab/S9/lit-pages.webp +0 -0
  72. package/docs/assets/cover-motion-still.webp +0 -0
  73. package/docs/assets/cover-motion.webp +0 -0
  74. package/docs/assets/readme/badge-version.svg +1 -1
  75. package/docs/assets/skills/autoconference.webp +0 -0
  76. package/docs/assets/skills/automatic-guards.webp +0 -0
  77. package/docs/assets/skills/autoresearch.webp +0 -0
  78. package/docs/assets/skills/browser-drive.webp +0 -0
  79. package/docs/assets/skills/debugging.webp +0 -0
  80. package/docs/assets/skills/deep-interview.webp +0 -0
  81. package/docs/assets/skills/doctor-installer.webp +0 -0
  82. package/docs/assets/skills/durable-litgoal.webp +0 -0
  83. package/docs/assets/skills/frontend-ui-ux.webp +0 -0
  84. package/docs/assets/skills/lit-burnoff-file.webp +0 -0
  85. package/docs/assets/skills/lit-burnoff.webp +0 -0
  86. package/docs/assets/skills/lit-code.webp +0 -0
  87. package/docs/assets/skills/lit-commit.webp +0 -0
  88. package/docs/assets/skills/lit-comprehend.webp +0 -0
  89. package/docs/assets/skills/lit-crucible.webp +0 -0
  90. package/docs/assets/skills/lit-diagram-drawer.webp +0 -0
  91. package/docs/assets/skills/lit-docx.webp +0 -0
  92. package/docs/assets/skills/lit-fetch.webp +0 -0
  93. package/docs/assets/skills/lit-handoff.webp +0 -0
  94. package/docs/assets/skills/lit-humanizer.webp +0 -0
  95. package/docs/assets/skills/lit-init.webp +0 -0
  96. package/docs/assets/skills/lit-plan.webp +0 -0
  97. package/docs/assets/skills/lit-pptx.webp +0 -0
  98. package/docs/assets/skills/lit-recap.webp +0 -0
  99. package/docs/assets/skills/lit-scientific-visualization.webp +0 -0
  100. package/docs/assets/skills/lit-typographic-motion.webp +0 -0
  101. package/docs/assets/skills/litresearch.webp +0 -0
  102. package/docs/assets/skills/litwork.webp +0 -0
  103. package/docs/assets/skills/lsp-setup.webp +0 -0
  104. package/docs/assets/skills/lsp.webp +0 -0
  105. package/docs/assets/skills/readme-studio.webp +0 -0
  106. package/docs/assets/skills/refactor.webp +0 -0
  107. package/docs/assets/skills/review-work.webp +0 -0
  108. package/docs/assets/skills/rules.webp +0 -0
  109. package/docs/assets/skills/start-work.webp +0 -0
  110. package/docs/assets/skills/structural-search.webp +0 -0
  111. package/docs/assets/skills/visual-qa.webp +0 -0
  112. package/docs/assets/skills/wikify.webp +0 -0
  113. package/docs/privacy.md +12 -0
  114. package/docs/reference-Ko-KR.md +44 -1
  115. package/docs/reference.md +49 -2
  116. package/package.json +1 -1
  117. package/rules/bundled-rules/lit-humanizer.md +12 -0
  118. package/skills/autoconference/SKILL.md +1 -1
  119. package/skills/autoconference/assets/report_template.md +1 -1
  120. package/skills/autoresearch/references/type-checklists.md +1 -1
  121. package/skills/browser-drive/SKILL.md +19 -5
  122. package/skills/browser-drive/scripts/capability-probe.mjs +26 -5
  123. package/skills/frontend-ui-ux/SKILL.md +10 -15
  124. package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +10 -0
  125. package/skills/frontend-ui-ux/references/adaptive-layout.md +3 -11
  126. package/skills/frontend-ui-ux/references/brand-and-imagery.md +6 -11
  127. package/skills/frontend-ui-ux/references/complete-contract.md +10 -3
  128. package/skills/frontend-ui-ux/references/composition.md +1 -7
  129. package/skills/frontend-ui-ux/references/craft-floor.md +94 -0
  130. package/skills/frontend-ui-ux/references/creative-directions.md +1 -7
  131. package/skills/frontend-ui-ux/references/evidence-review.md +2 -12
  132. package/skills/frontend-ui-ux/references/implementation-platforms.md +1 -4
  133. package/skills/frontend-ui-ux/references/inclusive-interface.md +1 -3
  134. package/skills/frontend-ui-ux/references/interaction-motion.md +1 -7
  135. package/skills/frontend-ui-ux/references/motion-guide.md +125 -0
  136. package/skills/frontend-ui-ux/references/operating-lanes.md +2 -8
  137. package/skills/frontend-ui-ux/references/product-direction.md +1 -6
  138. package/skills/frontend-ui-ux/references/production.md +12 -5
  139. package/skills/frontend-ui-ux/references/redesign-playbook.md +1 -7
  140. package/skills/frontend-ui-ux/references/slop-register.md +103 -0
  141. package/skills/frontend-ui-ux/references/system-foundations.md +1 -8
  142. package/skills/frontend-ui-ux/references/taste-direction.md +4 -11
  143. package/skills/frontend-ui-ux/references/visual-language.md +1 -6
  144. package/skills/frontend-ui-ux/references/visual-reconstruction.md +2 -7
  145. package/skills/frontend-ui-ux/scripts/probe-page.mjs +326 -0
  146. package/skills/frontend-ui-ux/scripts/probe-server.mjs +24 -0
  147. package/skills/frontend-ui-ux/scripts/probe-static.mjs +42 -0
  148. package/skills/frontend-ui-ux/scripts/probe-thresholds.json +86 -0
  149. package/skills/frontend-ui-ux/scripts/probe.mjs +183 -0
  150. package/skills/lit-comprehend/SKILL.md +10 -11
  151. package/skills/lit-comprehend/references/artifact-template.md +2 -18
  152. package/skills/lit-comprehend/scripts/verify-explainer.ts +0 -14
  153. package/skills/lit-diagram-drawer/NOTICE.md +33 -0
  154. package/skills/lit-diagram-drawer/SKILL.md +101 -0
  155. package/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
  156. package/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
  157. package/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
  158. package/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
  159. package/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
  160. package/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
  161. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
  162. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
  163. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
  164. package/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
  165. package/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
  166. package/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
  167. package/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
  168. package/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
  169. package/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
  170. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
  171. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
  172. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
  173. package/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
  174. package/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
  175. package/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
  176. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
  177. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
  178. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
  179. package/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
  180. package/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
  181. package/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
  182. package/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
  183. package/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
  184. package/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
  185. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
  186. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
  187. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
  188. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
  189. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
  190. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
  191. package/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
  192. package/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
  193. package/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
  194. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
  195. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
  196. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
  197. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
  198. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
  199. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
  200. package/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
  201. package/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
  202. package/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
  203. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
  204. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
  205. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
  206. package/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
  207. package/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
  208. package/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
  209. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
  210. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
  211. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
  212. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
  213. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
  214. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
  215. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
  216. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
  217. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
  218. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
  219. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
  220. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
  221. package/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
  222. package/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
  223. package/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
  224. package/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
  225. package/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
  226. package/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
  227. package/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
  228. package/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
  229. package/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
  230. package/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
  231. package/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
  232. package/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
  233. package/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
  234. package/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
  235. package/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
  236. package/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
  237. package/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
  238. package/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
  239. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
  240. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
  241. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
  242. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
  243. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
  244. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
  245. package/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
  246. package/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
  247. package/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
  248. package/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
  249. package/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
  250. package/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
  251. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
  252. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
  253. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
  254. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
  255. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
  256. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
  257. package/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
  258. package/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
  259. package/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
  260. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
  261. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
  262. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
  263. package/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
  264. package/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
  265. package/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
  266. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
  267. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
  268. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
  269. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
  270. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
  271. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
  272. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
  273. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
  274. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
  275. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
  276. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
  277. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
  278. package/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
  279. package/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
  280. package/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
  281. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
  282. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
  283. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
  284. package/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
  285. package/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
  286. package/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
  287. package/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
  288. package/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
  289. package/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
  290. package/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
  291. package/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
  292. package/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
  293. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
  294. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
  295. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
  296. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
  297. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
  298. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
  299. package/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
  300. package/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
  301. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
  302. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
  303. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
  304. package/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
  305. package/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
  306. package/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
  307. package/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
  308. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
  309. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
  310. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
  311. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
  312. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
  313. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
  314. package/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
  315. package/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
  316. package/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
  317. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
  318. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
  319. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
  320. package/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
  321. package/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
  322. package/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
  323. package/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
  324. package/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
  325. package/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
  326. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
  327. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
  328. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
  329. package/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
  330. package/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
  331. package/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
  332. package/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
  333. package/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
  334. package/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
  335. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
  336. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
  337. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
  338. package/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
  339. package/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
  340. package/skills/lit-diagram-drawer/assets/fonts/provenance.json +23 -0
  341. package/skills/lit-diagram-drawer/assets/icons.html +231 -0
  342. package/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
  343. package/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
  344. package/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
  345. package/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
  346. package/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
  347. package/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
  348. package/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
  349. package/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
  350. package/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
  351. package/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
  352. package/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
  353. package/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
  354. package/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
  355. package/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
  356. package/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
  357. package/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
  358. package/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
  359. package/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
  360. package/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
  361. package/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
  362. package/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
  363. package/skills/lit-diagram-drawer/references/accessibility.md +37 -0
  364. package/skills/lit-diagram-drawer/references/export.md +17 -0
  365. package/skills/lit-diagram-drawer/references/import-drawio.md +13 -0
  366. package/skills/lit-diagram-drawer/references/import-excalidraw.md +11 -0
  367. package/skills/lit-diagram-drawer/references/import-mermaid.md +12 -0
  368. package/skills/lit-diagram-drawer/references/import-schema.md +28 -0
  369. package/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
  370. package/skills/lit-diagram-drawer/references/motion.md +29 -0
  371. package/skills/lit-diagram-drawer/references/office-pptx-docx.md +28 -0
  372. package/skills/lit-diagram-drawer/references/output-spec.md +48 -0
  373. package/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
  374. package/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
  375. package/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
  376. package/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
  377. package/skills/lit-diagram-drawer/references/profiles.md +24 -0
  378. package/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
  379. package/skills/lit-diagram-drawer/references/style-guide.md +67 -0
  380. package/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
  381. package/skills/lit-diagram-drawer/references/type-bar.md +51 -0
  382. package/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
  383. package/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
  384. package/skills/lit-diagram-drawer/references/type-bump.md +49 -0
  385. package/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
  386. package/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
  387. package/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
  388. package/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
  389. package/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
  390. package/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
  391. package/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
  392. package/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
  393. package/skills/lit-diagram-drawer/references/type-er.md +49 -0
  394. package/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
  395. package/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
  396. package/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
  397. package/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
  398. package/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
  399. package/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
  400. package/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
  401. package/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
  402. package/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
  403. package/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
  404. package/skills/lit-diagram-drawer/references/type-journey.md +54 -0
  405. package/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
  406. package/skills/lit-diagram-drawer/references/type-layers.md +54 -0
  407. package/skills/lit-diagram-drawer/references/type-line.md +54 -0
  408. package/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
  409. package/skills/lit-diagram-drawer/references/type-loop.md +54 -0
  410. package/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
  411. package/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
  412. package/skills/lit-diagram-drawer/references/type-nested.md +59 -0
  413. package/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
  414. package/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
  415. package/skills/lit-diagram-drawer/references/type-polar.md +67 -0
  416. package/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
  417. package/skills/lit-diagram-drawer/references/type-process.md +58 -0
  418. package/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
  419. package/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
  420. package/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
  421. package/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
  422. package/skills/lit-diagram-drawer/references/type-radar.md +57 -0
  423. package/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
  424. package/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
  425. package/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
  426. package/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
  427. package/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
  428. package/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
  429. package/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
  430. package/skills/lit-diagram-drawer/references/type-state.md +59 -0
  431. package/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
  432. package/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
  433. package/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
  434. package/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
  435. package/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
  436. package/skills/lit-diagram-drawer/references/type-tree.md +54 -0
  437. package/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
  438. package/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
  439. package/skills/lit-diagram-drawer/references/type-venn.md +51 -0
  440. package/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
  441. package/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
  442. package/skills/lit-diagram-drawer/references/verifier-guide.md +59 -0
  443. package/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
  444. package/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
  445. package/skills/lit-diagram-drawer/scripts/capability-probe.mjs +132 -0
  446. package/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
  447. package/skills/lit-diagram-drawer/scripts/craft-thresholds.json +15 -0
  448. package/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +216 -0
  449. package/skills/lit-diagram-drawer/scripts/doctor.mjs +8 -0
  450. package/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +214 -0
  451. package/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +151 -0
  452. package/skills/lit-diagram-drawer/scripts/export.mjs +133 -0
  453. package/skills/lit-diagram-drawer/scripts/import-shared.mjs +130 -0
  454. package/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +173 -0
  455. package/skills/lit-diagram-drawer/scripts/office-safety.mjs +120 -0
  456. package/skills/lit-diagram-drawer/scripts/renderer-safety.mjs +46 -0
  457. package/skills/lit-diagram-drawer/scripts/test-block-registry.mjs +20 -0
  458. package/skills/lit-diagram-drawer/scripts/test-brief-contract.mjs +27 -0
  459. package/skills/lit-diagram-drawer/scripts/test-importers.mjs +119 -0
  460. package/skills/lit-diagram-drawer/scripts/test-office-safety.mjs +67 -0
  461. package/skills/lit-diagram-drawer/scripts/test-sequence-verifier.mjs +28 -0
  462. package/skills/lit-diagram-drawer/scripts/test-visual-quality.mjs +68 -0
  463. package/skills/lit-diagram-drawer/scripts/verify-all.mjs +74 -0
  464. package/skills/lit-diagram-drawer/scripts/verify-brief.mjs +47 -0
  465. package/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
  466. package/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +26 -0
  467. package/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
  468. package/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
  469. package/skills/lit-diagram-drawer/scripts/visual-quality.mjs +363 -0
  470. package/skills/lit-docx/LICENSE-MIT.txt +21 -0
  471. package/skills/lit-docx/SKILL.md +78 -0
  472. package/skills/lit-docx/references/frontmatter_schema.md +42 -0
  473. package/skills/lit-docx/references/journal_style_spec.md +17 -0
  474. package/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
  475. package/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
  476. package/skills/lit-docx/references/slop_rules.md +35 -0
  477. package/skills/lit-docx/requirements.in +5 -0
  478. package/skills/lit-docx/requirements.lock +289 -0
  479. package/skills/lit-docx/run.py +64 -0
  480. package/skills/lit-docx/scripts/clean_markdown.py +95 -0
  481. package/skills/lit-docx/scripts/convert_md_to_docx.py +1047 -0
  482. package/skills/lit-docx/scripts/convert_md_to_pdf.py +281 -0
  483. package/skills/lit-docx/scripts/convert_pdf.py +130 -0
  484. package/skills/lit-docx/scripts/craft-thresholds.json +11 -0
  485. package/skills/lit-docx/scripts/craft_docx.py +83 -0
  486. package/skills/lit-docx/scripts/edit_docx.py +297 -0
  487. package/skills/lit-docx/scripts/embed_images.py +78 -0
  488. package/skills/lit-docx/scripts/generate_docx_templates.py +491 -0
  489. package/skills/lit-docx/scripts/slop_lint.py +485 -0
  490. package/skills/lit-docx/scripts/visual_audit.py +41 -0
  491. package/skills/lit-docx/templates/docx/acs.docx +0 -0
  492. package/skills/lit-docx/templates/docx/elsevier.docx +0 -0
  493. package/skills/lit-docx/templates/docx/ieee.docx +0 -0
  494. package/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
  495. package/skills/lit-docx/templates/docx/nature.docx +0 -0
  496. package/skills/lit-docx/templates/latex/acs/README.md +5 -0
  497. package/skills/lit-docx/templates/latex/acs/template.tex +37 -0
  498. package/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
  499. package/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
  500. package/skills/lit-docx/templates/latex/ieee/README.md +5 -0
  501. package/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
  502. package/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
  503. package/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
  504. package/skills/lit-docx/templates/latex/nature/README.md +5 -0
  505. package/skills/lit-docx/templates/latex/nature/template.tex +37 -0
  506. package/skills/lit-docx/templates/registry.yaml +1366 -0
  507. package/skills/lit-humanizer/NOTICE +160 -0
  508. package/skills/lit-humanizer/SKILL.md +122 -0
  509. package/skills/lit-humanizer/assets/always-on-rule.md +9 -0
  510. package/skills/lit-humanizer/assets/report-skeleton.md +25 -0
  511. package/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
  512. package/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
  513. package/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
  514. package/skills/lit-humanizer/examples/api-reference/after.md +9 -0
  515. package/skills/lit-humanizer/examples/api-reference/before.md +15 -0
  516. package/skills/lit-humanizer/examples/changelog/after.md +5 -0
  517. package/skills/lit-humanizer/examples/changelog/before.md +12 -0
  518. package/skills/lit-humanizer/examples/code-comments/after.md +10 -0
  519. package/skills/lit-humanizer/examples/code-comments/before.md +19 -0
  520. package/skills/lit-humanizer/examples/commit/after.md +5 -0
  521. package/skills/lit-humanizer/examples/commit/before.md +7 -0
  522. package/skills/lit-humanizer/examples/data-release/after.md +7 -0
  523. package/skills/lit-humanizer/examples/data-release/before.md +9 -0
  524. package/skills/lit-humanizer/examples/english-essay/after.md +5 -0
  525. package/skills/lit-humanizer/examples/english-essay/before.md +5 -0
  526. package/skills/lit-humanizer/examples/incident-update/after.md +7 -0
  527. package/skills/lit-humanizer/examples/incident-update/before.md +7 -0
  528. package/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
  529. package/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
  530. package/skills/lit-humanizer/examples/ko-report/after.md +9 -0
  531. package/skills/lit-humanizer/examples/ko-report/before.md +13 -0
  532. package/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
  533. package/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
  534. package/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
  535. package/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
  536. package/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
  537. package/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
  538. package/skills/lit-humanizer/examples/pr/after.md +15 -0
  539. package/skills/lit-humanizer/examples/pr/before.md +17 -0
  540. package/skills/lit-humanizer/examples/project-update/after.md +7 -0
  541. package/skills/lit-humanizer/examples/project-update/before.md +9 -0
  542. package/skills/lit-humanizer/examples/readme/after.md +12 -0
  543. package/skills/lit-humanizer/examples/readme/before.md +14 -0
  544. package/skills/lit-humanizer/examples/report/after.md +13 -0
  545. package/skills/lit-humanizer/examples/report/before.md +11 -0
  546. package/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
  547. package/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
  548. package/skills/lit-humanizer/examples/slides/after.md +19 -0
  549. package/skills/lit-humanizer/examples/slides/before.md +19 -0
  550. package/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
  551. package/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
  552. package/skills/lit-humanizer/fixtures/ko-metrics-golden.json +49 -0
  553. package/skills/lit-humanizer/fixtures/office/minimal.docx +0 -0
  554. package/skills/lit-humanizer/fixtures/office/minimal.pptx +0 -0
  555. package/skills/lit-humanizer/fixtures/pos-real.txt +26 -0
  556. package/skills/lit-humanizer/fixtures/rule-cases.json +306 -0
  557. package/skills/lit-humanizer/references/code-patterns.md +468 -0
  558. package/skills/lit-humanizer/references/deliverable-channels.md +111 -0
  559. package/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
  560. package/skills/lit-humanizer/references/en-patterns-content.md +243 -0
  561. package/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
  562. package/skills/lit-humanizer/references/en-patterns.md +57 -0
  563. package/skills/lit-humanizer/references/ko-metrics.md +33 -0
  564. package/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
  565. package/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
  566. package/skills/lit-humanizer/references/ko-patterns.md +31 -0
  567. package/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
  568. package/skills/lit-humanizer/references/taxonomy.md +153 -0
  569. package/skills/lit-humanizer/rules.json +884 -0
  570. package/skills/lit-humanizer/scripts/core.mjs +208 -0
  571. package/skills/lit-humanizer/scripts/detect.mjs +91 -0
  572. package/skills/lit-humanizer/scripts/extract_office_text.py +89 -0
  573. package/skills/lit-humanizer/scripts/guard-scan.mjs +36 -0
  574. package/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
  575. package/skills/lit-humanizer/scripts/test-fixtures.mjs +54 -0
  576. package/skills/lit-humanizer/scripts/test-ko-metrics.mjs +27 -0
  577. package/skills/lit-pptx/FORBIDDEN_TERMS.json +55 -0
  578. package/skills/lit-pptx/NOTICE.md +3 -0
  579. package/skills/lit-pptx/SKILL.md +76 -0
  580. package/skills/lit-pptx/agents/analyst.md +49 -0
  581. package/skills/lit-pptx/agents/antithesis.md +59 -0
  582. package/skills/lit-pptx/agents/architect.md +44 -0
  583. package/skills/lit-pptx/agents/critic.md +42 -0
  584. package/skills/lit-pptx/agents/synthesizer.md +47 -0
  585. package/skills/lit-pptx/agents/thesis.md +33 -0
  586. package/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
  587. package/skills/lit-pptx/assets/azure/circle-md.png +0 -0
  588. package/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
  589. package/skills/lit-pptx/fonts/a2z-font/A2Z-Black.otf +0 -0
  590. package/skills/lit-pptx/fonts/a2z-font/A2Z-Bold.otf +0 -0
  591. package/skills/lit-pptx/fonts/a2z-font/A2Z-Light.otf +0 -0
  592. package/skills/lit-pptx/fonts/a2z-font/A2Z-Medium.otf +0 -0
  593. package/skills/lit-pptx/fonts/a2z-font/A2Z-Regular.otf +0 -0
  594. package/skills/lit-pptx/fonts/a2z-font/OFL.txt +94 -0
  595. package/skills/lit-pptx/fonts/a2z-font/SOURCE.md +29 -0
  596. package/skills/lit-pptx/package-lock.json +747 -0
  597. package/skills/lit-pptx/package.json +13 -0
  598. package/skills/lit-pptx/pretendard-font/LICENSE.txt +94 -0
  599. package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Bold.otf +0 -0
  600. package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Regular.otf +0 -0
  601. package/skills/lit-pptx/requirements.in +2 -0
  602. package/skills/lit-pptx/requirements.lock +285 -0
  603. package/skills/lit-pptx/run.mjs +71 -0
  604. package/skills/lit-pptx/scripts/check_ooxml.py +47 -0
  605. package/skills/lit-pptx/scripts/compile-deck.js +447 -0
  606. package/skills/lit-pptx/scripts/craft-thresholds.json +26 -0
  607. package/skills/lit-pptx/scripts/craft_extras.py +224 -0
  608. package/skills/lit-pptx/scripts/embed_fonts.py +204 -0
  609. package/skills/lit-pptx/scripts/layout_inventory.py +70 -0
  610. package/skills/lit-pptx/scripts/learn_template.py +433 -0
  611. package/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
  612. package/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
  613. package/skills/lit-pptx/scripts/lib/font-map.js +79 -0
  614. package/skills/lit-pptx/scripts/lib/gen-bg.js +85 -0
  615. package/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +36 -0
  616. package/skills/lit-pptx/scripts/lib/layout-resolver.js +737 -0
  617. package/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
  618. package/skills/lit-pptx/scripts/lib/render-adapter-html.js +364 -0
  619. package/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +1848 -0
  620. package/skills/lit-pptx/scripts/lib/slide-ast.js +534 -0
  621. package/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
  622. package/skills/lit-pptx/scripts/lib/template-registry.js +355 -0
  623. package/skills/lit-pptx/scripts/qa_deck.py +773 -0
  624. package/skills/lit-pptx/scripts/validate_pptx.py +206 -0
  625. package/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
  626. package/skills/lit-pptx/specs/markdown-slide-spec-v2.md +223 -0
  627. package/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
  628. package/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
  629. package/skills/lit-pptx/specs/template-enrollment-contract.md +379 -0
  630. package/skills/lit-pptx/templates/bauhaus_light.css +4 -0
  631. package/skills/lit-pptx/templates/boilerplate_professional.css +508 -0
  632. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
  633. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
  634. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
  635. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
  636. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +483 -0
  637. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
  638. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
  639. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
  640. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
  641. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
  642. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
  643. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
  644. package/skills/lit-scientific-visualization/SKILL.md +2 -0
  645. package/skills/lit-typographic-motion/NOTICE +23 -0
  646. package/skills/lit-typographic-motion/SKILL.md +77 -0
  647. package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +25 -0
  648. package/skills/lit-typographic-motion/audio-analysis.py +52 -0
  649. package/skills/lit-typographic-motion/engine/browser.mjs +83 -0
  650. package/skills/lit-typographic-motion/engine/constants.mjs +177 -0
  651. package/skills/lit-typographic-motion/engine/contrast.mjs +101 -0
  652. package/skills/lit-typographic-motion/engine/encode.mjs +46 -0
  653. package/skills/lit-typographic-motion/engine/flash.mjs +216 -0
  654. package/skills/lit-typographic-motion/engine/look.mjs +166 -0
  655. package/skills/lit-typographic-motion/engine/page/common.js +105 -0
  656. package/skills/lit-typographic-motion/engine/page/engine.js +451 -0
  657. package/skills/lit-typographic-motion/engine/page/gl.js +213 -0
  658. package/skills/lit-typographic-motion/engine/page/lines.js +88 -0
  659. package/skills/lit-typographic-motion/engine/page/passes.js +144 -0
  660. package/skills/lit-typographic-motion/engine/page/post.js +119 -0
  661. package/skills/lit-typographic-motion/engine/page/scenes.js +187 -0
  662. package/skills/lit-typographic-motion/engine/page/type.js +321 -0
  663. package/skills/lit-typographic-motion/engine/png.mjs +139 -0
  664. package/skills/lit-typographic-motion/engine/sound.mjs +291 -0
  665. package/skills/lit-typographic-motion/engine/stage/capture.mjs +133 -0
  666. package/skills/lit-typographic-motion/engine/stage/clock.js +171 -0
  667. package/skills/lit-typographic-motion/engine/stage/frame-worker.mjs +47 -0
  668. package/skills/lit-typographic-motion/engine/stage/gate.mjs +119 -0
  669. package/skills/lit-typographic-motion/engine/stage/qa-page.js +158 -0
  670. package/skills/lit-typographic-motion/engine/stage/qa.mjs +208 -0
  671. package/skills/lit-typographic-motion/engine/stage/render.mjs +418 -0
  672. package/skills/lit-typographic-motion/engine/stage/scan.mjs +162 -0
  673. package/skills/lit-typographic-motion/engine/stage/stage-kit.js +310 -0
  674. package/skills/lit-typographic-motion/engine/stills.mjs +60 -0
  675. package/skills/lit-typographic-motion/engine/text.mjs +126 -0
  676. package/skills/lit-typographic-motion/engine/timing.mjs +289 -0
  677. package/skills/lit-typographic-motion/engine/treatment.mjs +254 -0
  678. package/skills/lit-typographic-motion/fonts/Archivo-100-400.ttf +0 -0
  679. package/skills/lit-typographic-motion/fonts/Archivo-100-700.ttf +0 -0
  680. package/skills/lit-typographic-motion/fonts/Archivo-100-900.ttf +0 -0
  681. package/skills/lit-typographic-motion/fonts/Archivo-125-400.ttf +0 -0
  682. package/skills/lit-typographic-motion/fonts/Archivo-125-700.ttf +0 -0
  683. package/skills/lit-typographic-motion/fonts/Archivo-125-900.ttf +0 -0
  684. package/skills/lit-typographic-motion/fonts/Archivo-75-400.ttf +0 -0
  685. package/skills/lit-typographic-motion/fonts/Archivo-75-700.ttf +0 -0
  686. package/skills/lit-typographic-motion/fonts/Archivo-75-900.ttf +0 -0
  687. package/skills/lit-typographic-motion/fonts/Archivo-OFL.txt +93 -0
  688. package/skills/lit-typographic-motion/fonts/Silkscreen-Bold.ttf +0 -0
  689. package/skills/lit-typographic-motion/fonts/Silkscreen-OFL.txt +93 -0
  690. package/skills/lit-typographic-motion/fonts/Silkscreen-Regular.ttf +0 -0
  691. package/skills/lit-typographic-motion/fonts/VT323-OFL.txt +93 -0
  692. package/skills/lit-typographic-motion/fonts/VT323-Regular.ttf +0 -0
  693. package/skills/lit-typographic-motion/fonts/pins.json +44 -0
  694. package/skills/lit-typographic-motion/fonts/stroke/CREDITS +52 -0
  695. package/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
  696. package/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
  697. package/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
  698. package/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
  699. package/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
  700. package/skills/lit-typographic-motion/fonts/stroke/OFL.txt +85 -0
  701. package/skills/lit-typographic-motion/gate.mjs +593 -0
  702. package/skills/lit-typographic-motion/package-lock.json +78 -0
  703. package/skills/lit-typographic-motion/package.json +11 -0
  704. package/skills/lit-typographic-motion/probe.mjs +74 -0
  705. package/skills/lit-typographic-motion/references/authoring.md +110 -0
  706. package/skills/lit-typographic-motion/references/craft-loop.md +110 -0
  707. package/skills/lit-typographic-motion/references/runtime.md +88 -0
  708. package/skills/lit-typographic-motion/references/stage.md +164 -0
  709. package/skills/lit-typographic-motion/references/style-bibles.md +88 -0
  710. package/skills/lit-typographic-motion/references/treatment.md +143 -0
  711. package/skills/lit-typographic-motion/references/type-craft.md +55 -0
  712. package/skills/lit-typographic-motion/render.mjs +654 -0
  713. package/skills/lit-typographic-motion/requirements-audio.in +1 -0
  714. package/skills/lit-typographic-motion/requirements-audio.txt +790 -0
  715. package/skills/lit-typographic-motion/runtime.mjs +259 -0
  716. package/skills/lit-typographic-motion/word-timing-models.json +25 -0
  717. package/skills/litresearch/SKILL.md +41 -12
  718. package/skills/managed-skill-manifest.json +2367 -63
  719. package/skills/skill-rename-aliases.json +6 -1
  720. package/tools/check-pack-payload.mjs +22 -1
  721. package/tools/check-payload-substance.mjs +2 -2
  722. package/tools/payload-reference-exemptions.json +4 -0
  723. package/tools/payload-substance-allowlist.json +2 -3
  724. package/tools/payload-substance-parity.json +7 -7
  725. package/tools/version-manifests.json +2 -8
  726. package/skills/lit-korean/SKILL.md +0 -231
@@ -0,0 +1,299 @@
1
+ # Layout Mapping — BOILERPLATE-PRETENDARD
2
+ # 4:3 canvas, 10 x 7.5 in. Geometry derived from templates/boilerplate_professional.css
3
+ # (960x720px @ 96dpi -> 10x7.5in). Positions in inches.
4
+ # No base PPTX master: slides are built from scratch, so layout_source is "none".
5
+
6
+ layouts:
7
+ cover:
8
+ layout_source: none
9
+ decorations: cover
10
+ variants:
11
+ rule:
12
+ decorations: cover_rule
13
+ regions:
14
+ title:
15
+ x: 0.73
16
+ y: 2.30
17
+ w: 8.54
18
+ h: 1.1
19
+ font_role: cover_title
20
+ valign: middle
21
+ autofit: none
22
+ metadata:
23
+ x: 0.73
24
+ y: 3.50
25
+ w: 8.54
26
+ h: 0.5
27
+ font_role: cover_metadata
28
+ valign: middle
29
+ autofit: resize
30
+ date_line:
31
+ x: 0.73
32
+ y: 4.65
33
+ w: 8.54
34
+ h: 0.4
35
+ font_role: cover_date
36
+ valign: middle
37
+ autofit: none
38
+ band:
39
+ decorations: cover_band
40
+ regions:
41
+ title:
42
+ x: 0.73
43
+ y: 3.35
44
+ w: 8.54
45
+ h: 1.1
46
+ font_role: cover_title
47
+ valign: middle
48
+ autofit: none
49
+ metadata:
50
+ x: 0.73
51
+ y: 4.55
52
+ w: 8.54
53
+ h: 0.5
54
+ font_role: cover_metadata
55
+ valign: middle
56
+ autofit: resize
57
+ date_line:
58
+ x: 0.73
59
+ y: 5.65
60
+ w: 8.54
61
+ h: 0.4
62
+ font_role: cover_date
63
+ valign: middle
64
+ autofit: none
65
+ regions:
66
+ title:
67
+ x: 0.730
68
+ y: 1.950
69
+ w: 8.540
70
+ h: 1.100
71
+ font_role: cover_title
72
+ valign: middle
73
+ autofit: none
74
+ metadata:
75
+ x: 0.730
76
+ y: 3.150
77
+ w: 8.540
78
+ h: 0.500
79
+ font_role: cover_metadata
80
+ valign: middle
81
+ autofit: resize
82
+ date_line:
83
+ x: 0.730
84
+ y: 4.650
85
+ w: 8.540
86
+ h: 0.400
87
+ font_role: cover_date
88
+ valign: middle
89
+ autofit: none
90
+
91
+ content:
92
+ layout_source: none
93
+ decorations: body
94
+ regions:
95
+ title:
96
+ x: 0.270
97
+ y: 0.400
98
+ w: 9.460
99
+ h: 0.560
100
+ font_role: section_title
101
+ valign: middle
102
+ autofit: none
103
+ body:
104
+ x: 0.270
105
+ y: 1.150
106
+ w: 9.460
107
+ font_role: body_text
108
+ autofit: resize
109
+ table:
110
+ x: 0.270
111
+ y: 1.150
112
+ w: 9.460
113
+ font_role_header: table_header
114
+ font_role_data: table_data
115
+ image:
116
+ x: 5.400
117
+ y: 1.300
118
+ w: 4.330
119
+ h: 3.200
120
+ figure_caption:
121
+ x: 5.400
122
+ y: 4.560
123
+ w: 4.330
124
+ h: 0.420
125
+ font_role: figure_caption
126
+ align: center
127
+ table_caption:
128
+ x: 0.270
129
+ y: 5.250
130
+ w: 9.460
131
+ h: 0.420
132
+ font_role: table_caption
133
+ align: center
134
+
135
+ main:
136
+ layout_source: none
137
+ decorations: body
138
+ regions:
139
+ title:
140
+ x: 0.270
141
+ y: 0.400
142
+ w: 9.460
143
+ h: 0.560
144
+ font_role: section_title
145
+ valign: middle
146
+ autofit: none
147
+ body:
148
+ x: 0.270
149
+ y: 1.150
150
+ w: 9.460
151
+ font_role: body_text
152
+ autofit: resize
153
+ main_box:
154
+ x: 0.500
155
+ y: 5.900
156
+ w: 9.000
157
+ h: 0.950
158
+ border:
159
+ width: 1
160
+ kpi_table:
161
+ x: 0.270
162
+ y: 1.150
163
+ w: 9.460
164
+ font_role_header: table_header
165
+ font_role_data: table_data
166
+ image:
167
+ x: 5.400
168
+ y: 1.300
169
+ w: 4.330
170
+ h: 3.200
171
+ figure_caption:
172
+ x: 5.400
173
+ y: 4.560
174
+ w: 4.330
175
+ h: 0.420
176
+ font_role: figure_caption
177
+ align: center
178
+ table_caption:
179
+ x: 0.270
180
+ y: 5.250
181
+ w: 9.460
182
+ h: 0.420
183
+ font_role: table_caption
184
+ align: center
185
+
186
+ summary:
187
+ layout_source: none
188
+ decorations: body
189
+ regions:
190
+ title:
191
+ x: 0.270
192
+ y: 0.400
193
+ w: 7.500
194
+ h: 0.560
195
+ font_role: section_title
196
+ valign: middle
197
+ autofit: shrink
198
+ group_top:
199
+ x: 0.270
200
+ y: 1.150
201
+ w: 4.450
202
+ h: 2.500
203
+ heading_role: section_header
204
+ heading_line_spacing: 1.3
205
+ sub_item_role: numbered_item
206
+ sub_item_line_spacing: 1.3
207
+ autofit: resize
208
+ group_bottom:
209
+ x: 0.270
210
+ y: 3.950
211
+ w: 4.450
212
+ h: 2.500
213
+ heading_role: section_header
214
+ heading_line_spacing: 1.3
215
+ sub_item_role: numbered_item
216
+ sub_item_line_spacing: 1.3
217
+ autofit: resize
218
+ image:
219
+ x: 5.100
220
+ y: 1.150
221
+ w: 4.630
222
+ h: 3.300
223
+ figure_caption:
224
+ x: 5.100
225
+ y: 4.560
226
+ w: 4.630
227
+ h: 0.420
228
+ font_role: figure_caption
229
+ align: center
230
+ table:
231
+ x: 5.100
232
+ y: 5.300
233
+ w: 4.630
234
+ font_role_header: table_header
235
+ font_role_data: table_data
236
+ table_caption:
237
+ x: 5.100
238
+ y: 6.550
239
+ w: 4.630
240
+ h: 0.420
241
+ font_role: table_caption
242
+ align: center
243
+
244
+ closing:
245
+ layout_source: none
246
+ decorations: closing
247
+ regions:
248
+ title:
249
+ x: 0.000
250
+ y: 3.200
251
+ w: 10.000
252
+ h: 0.950
253
+ font_role: closing_title
254
+ align: center
255
+ valign: middle
256
+ autofit: shrink
257
+
258
+ # Minimal, clean decoration: a single ink hairline under the title band on body
259
+ # slides (matches CSS .header-line). Cover/closing stay whitespace-clean.
260
+ decorations:
261
+ cover:
262
+ elements: []
263
+ cover_rule:
264
+ elements:
265
+ - type: line
266
+ x: 0.73
267
+ y: 1.95
268
+ w: 2.2
269
+ color: "#3C3836"
270
+ width: 4
271
+ note: "hairline rule standing in for the cover furniture"
272
+
273
+ cover_band:
274
+ elements:
275
+ - type: rect
276
+ x: 0.0
277
+ y: 0.0
278
+ w: 10.0
279
+ h: 2.6
280
+ fill: "#FBFAF7"
281
+ note: "warm near-white band above the title"
282
+ - type: line
283
+ x: 0.73
284
+ y: 2.6
285
+ w: 10.0
286
+ color: "#CBC2B5"
287
+ width: 1
288
+
289
+ body:
290
+ elements:
291
+ - type: line
292
+ x: 0.270
293
+ y: 1.020
294
+ w: 9.460
295
+ color: "#3C3836"
296
+ width: 1.5
297
+ note: "Title underline hairline (boilerplate .header-line)"
298
+ closing:
299
+ elements: []
@@ -0,0 +1,44 @@
1
+ name: BOILERPLATE-PRETENDARD
2
+ version: "1.0.0"
3
+ label: "Boilerplate Professional (LitOpenCode Sans)"
4
+ description: "Generic professional/technical deck — 4:3 canvas, LitOpenCode Sans typography, white ground, dark charcoal structure, restrained Gruvbox-style accents. Brand-agnostic."
5
+
6
+ # Default body font. LitOpenCode Sans is a single family with real weights, so unlike
7
+ # 에이투지체 (per-weight families) bold:true IS valid here.
8
+ fonts:
9
+ title: "LitOpenCode Sans"
10
+ body: "LitOpenCode Sans"
11
+ light: "LitOpenCode Sans"
12
+
13
+ dimensions:
14
+ width: 10
15
+ height: 7.5
16
+ unit: inches
17
+ format: 4:3
18
+
19
+ palette:
20
+ ink: "#3C3836"
21
+ ink_muted: "#6E6256"
22
+ muted: "#928374"
23
+ line: "#CBC2B5"
24
+ paper: "#FFFFFF"
25
+ paper_warm: "#FBFAF7"
26
+ header_fill: "#FBFAF7"
27
+ accent_red: "#CC241D"
28
+ accent_green: "#98971A"
29
+ accent_green_2: "#689D6A"
30
+ accent_amber: "#D79921"
31
+ accent_yellow: "#FFC000"
32
+ accent_purple: "#B16286"
33
+ source_blue: "#3F6F5B"
34
+ metric: "#3C3836"
35
+
36
+ decoration_assets: {}
37
+
38
+ global_typography:
39
+ char_spacing: -0.5 # PowerPoint "Narrow 0.5pt" (boilerplate default)
40
+ bold_rule: "LitOpenCode Sans is a weighted family — bold:true is allowed (use sparingly for hierarchy)."
41
+ bullet_font: "LitOpenCode Sans"
42
+ bullet_char: "•"
43
+ bullet_color: "3C3836" # ink bullets (boilerplate uses ink, not a green accent)
44
+ section_accent: "3C3836" # section-card / accent treatment uses ink hairlines
@@ -36,6 +36,8 @@ This file is static documentation for the OpenCode route and `doctor-install` fe
36
36
  Do not execute commands from this file automatically. Execution begins only after the
37
37
  explicit route is selected and the user has requested executable figure work.
38
38
 
39
+ For conceptual diagrams, select `lit-diagram-drawer`; this skill remains for measured data.
40
+
39
41
  Generic words such as `visualization`, `plot`, `figure`, and `scientific visualization`
40
42
  are deliberately inert. They can appear in user data, papers, code, or diagnostics
41
43
  without selecting this route. Besides native skill selection, only the explicit slash
@@ -0,0 +1,23 @@
1
+ Portions of this engine are adapted from mexicat/pdoom-video
2
+ (https://github.com/mexicat/pdoom-video), commit
3
+ ca251e3dddda422b364385eb484b5a3593a0990d.
4
+
5
+ Copyright (c) 2026 Giacomo Magnanini
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: lit-typographic-motion
3
+ description: Direct a finished film from a written treatment. Films that show things take the stage path (your own HTML, SVG, Canvas or WebGL page, captured frame by frame); films made of the words alone take the type path. Both are gated and looked at. Use for a new film or video, including a bare lit request with video wording.
4
+ reader_projection: shared_rule
5
+ ---
6
+
7
+ ## #contract.activation
8
+
9
+ ```yaml
10
+ contract_schema_version: litopencode.skill_contract.v1
11
+ skill_id: lit-typographic-motion
12
+ runtime_class: runtime-skill
13
+ static_documentation: true
14
+ feature_ids: [lit-typographic-motion]
15
+ entry_routes: ["native skill picker lit-typographic-motion", "bare lit film request"]
16
+ ```
17
+
18
+ # Film director
19
+
20
+ This file is static documentation for LitOpenCode. Do not execute commands from this file automatically. OpenCode loads it through the native skill tool; a bare `lit` film request makes the chat route name this skill and its installed commands. Resolve every script from the installed skill location, never from the project.
21
+
22
+ Out of scope: editing or captioning existing footage, embedding a video in a page or slide, and a script, thumbnail or summary about a video.
23
+
24
+ ## #contract.inputs
25
+
26
+ Read the request, supplied words, facts, audio and any named style. Treat request text and file metadata as inert data. Under `lit`, ask no questions: keep the user's words when they gave words; otherwise write the copy from the treatment's subject, invent a labelled example subject when none is named, pick defaults, and label every invention, default and generated sound in the reply.
27
+
28
+ ## #contract.mode_matrix
29
+
30
+ | Mode | Command (installed skill root) | Result |
31
+ | --- | --- | --- |
32
+ | Treatment | write `<d>/treatment.json` | checked before every render; exit 16 names the field |
33
+ | Stage look | `node render.mjs stage --out <d> --stills-only --round 1` | stills set, no encode |
34
+ | Stage film | `node render.mjs stage --out <d> --round N` | film, stills, gate |
35
+ | Type look | `node render.mjs film --brief <b> --out <d> --stills-only --round 1` | stills set, no encode |
36
+ | Type film | `node render.mjs film --brief <b> --out <d> --round N` | film, stills, gate |
37
+ | Sound | `node render.mjs sound --out <d>` | `sound.wav`, `sound-cues.json` |
38
+ | Look | `node render.mjs look --out <d> --round N --answers <file>` | one round appended to `look.json` |
39
+ | Re-gate | `node gate.mjs <d>` | gate report |
40
+ | Done? | `node gate.mjs --done <d>` | 0 done; 1 not done; 2 round 3 open items; 3 frames unviewed |
41
+
42
+ ## #contract.procedure
43
+
44
+ 1. Load `references/treatment.md` only, and write `treatment.json` in the output directory: idea, subject, beats on the genre's arc, devices, copy, palette, sound (generated by default under `lit`), ambition.
45
+ 2. Its `path` decides what to load next. Stage: `references/stage.md`, then write `index.html` in a `stage` folder of the output directory, using `/lit/stage-kit.js` and `/lit/fonts.css`. Type: `references/authoring.md`, `references/type-craft.md` and `references/style-bibles.md` (MO-B-00 preset pick), then write the brief.
46
+ 3. Round 1 (stills): run the look command with `--stills-only`, open every still with the read tool, answer the nine questions in `references/craft-loop.md`, name the weakest beat and the change, record it with `look --round 1`, then make that change.
47
+ 4. Round 2: the full render with `--round 2`. Give the command a timeout of at least 600 s (or add `--detach` and wait for the exit file it names); never shorten the film to save render time. Look again at the poster, the contact sheet, every beat midpoint and every transition strip, and record `look --round 2`. A failed question means another round; stop after round 3.
48
+ 5. Run `gate.mjs --done` and reply as `references/craft-loop.md` says.
49
+
50
+ ## #contract.runtime
51
+
52
+ The runtime is pre-warmed outside any session with `litopencode motion-runtime install` (fonts and pinned packages into a product cache; `--audio` adds the librosa venv). A render only reads that cache. `litopencode motion-runtime status` and `litopencode doctor` show the probes. Details and every BLOCKED code: `references/runtime.md`.
53
+
54
+ ## #contract.outputs
55
+
56
+ `film.mp4` (1920x1080 or 1080x1920, BT.709 tags, sound muxed unless the treatment asks for silence), `preview.webp` or `preview.gif`, `poster.png`, `reduced-motion.png`, `manifest.json`, `gate-report.txt`, `stills/`, `sheet/`, `sound-cues.json` and `look.json`.
57
+
58
+ ## #contract.output_channels
59
+
60
+ ```yaml
61
+ artifact_genre: client_deliverable
62
+ limitations_channel: reply
63
+ ```
64
+
65
+ Name a withheld render, a failed rule, a downgrade, an open look item or a BLOCKED state in the reply beside the files. Measurements stay in the output directory.
66
+
67
+ ## #contract.evidence
68
+
69
+ The evidence is the treatment, the gate report, the manifest, `look.json` and the stills you opened. Claim completion only when `gate.mjs --done` exits 0.
70
+
71
+ ## #contract.hard_stops
72
+
73
+ On BLOCKED exit 10 (Chrome), 11 (WebGL2), 12 (ffmpeg; stills still work), 14 (runtime not pre-warmed) or 15 (font missing or hash mismatch), stop, name the state and its fix command; never install inside the session. Exit 16 (treatment), 17 (stage contract), 18 (stage not deterministic), 19 (network request) and 20 (sound) name the cause to fix. A flash-audit failure withholds the exports in every round.
74
+
75
+ ## #contract.anti_patterns
76
+
77
+ Hand-encoded films (a frame loop, a raw ffmpeg graph, a screen recording, a raster flipbook) are not the deliverable. Never answer a failure by shortening the film, removing a beat or the subject, silencing the sound or switching to the type path. Do not restate the request as copy, print file names or internal terms on screen, loop past round 3, or write into the installed skill tree.
@@ -0,0 +1,25 @@
1
+ lit-typographic-motion third-party notices
2
+
3
+ Engine: Typographic-motion engine adapted from mexicat/pdoom-video (MIT, Giacomo Magnanini), commit `ca251e3`.
4
+ The full MIT notice for the adapted engine is in NOTICE, next to this file.
5
+
6
+ Fonts bundled in this skill (paths relative to this file):
7
+ - Archivo static instances, fonts/Archivo-{75,100,125}-{400,700,900}.ttf: SIL OFL 1.1, licence at fonts/Archivo-OFL.txt
8
+ - VT323, fonts/VT323-Regular.ttf: SIL OFL 1.1, licence at fonts/VT323-OFL.txt
9
+ - Silkscreen, fonts/Silkscreen-Regular.ttf and fonts/Silkscreen-Bold.ttf: SIL OFL 1.1, licence at fonts/Silkscreen-OFL.txt
10
+ - EMS single-stroke SVG fonts (EMSAllure, EMSFelix, EMSOsmotron, EMSReadability, EMSTech), fonts/stroke/*.svg: SIL OFL 1.1, licence at fonts/stroke/OFL.txt, credits at fonts/stroke/CREDITS
11
+
12
+ Fonts reused by path from the sibling lit-pptx skill:
13
+ - LitOpenCode Sans Regular and Bold, ../lit-pptx/pretendard-font/public/static/LitOpenCodeSans-{Regular,Bold}.otf: SIL OFL 1.1, licence at ../lit-pptx/pretendard-font/LICENSE.txt
14
+
15
+ Fonts fetched at pre-warm (litopencode motion-runtime install) into the motion runtime cache,
16
+ ${XDG_CACHE_HOME:-~/.cache}/litopencode/motion-runtime/fonts-<pin hash>/, each verified against fonts/pins.json:
17
+ - Galmuri9, Galmuri9.ttf (unmodified official file): SIL OFL 1.1, licence at Galmuri-OFL.md in that cache directory
18
+ - MesloLGS NF Regular, MesloLGS-NF-Regular.ttf: Apache-2.0 plus the inherited Bitstream Vera and Arev notices, licence files MesloLGS-NF-License.txt, Apache-2.0.txt and Vera-Arev-LICENSE in that cache directory
19
+ - Pretendard Regular (fallback only, fetched when the lit-pptx pair is absent), Pretendard-Regular.otf: SIL OFL 1.1, licence at Pretendard-LICENSE in that cache directory
20
+
21
+ Engine packages installed at pre-warm from package-lock.json into ${XDG_CACHE_HOME:-~/.cache}/litopencode/motion-runtime/node-<lock hash>/node_modules:
22
+ - playwright-core (Apache-2.0), opentype.js (MIT), ws (MIT); each keeps its own licence file inside its package directory.
23
+
24
+ Optional audio tier, installed only by litopencode motion-runtime install --audio from requirements-audio.txt:
25
+ - librosa (ISC) and its hash-pinned dependencies, each under its own licence inside the venv.
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env python3
2
+ """Offline beat and envelope analysis of the user's own supplied audio."""
3
+
4
+ import json
5
+ import sys
6
+ from pathlib import Path
7
+
8
+ import librosa
9
+ import numpy as np
10
+
11
+
12
+ def analyse(source: Path) -> dict:
13
+ audio, rate = librosa.load(source, sr=22050, mono=True)
14
+ if audio.size == 0:
15
+ raise ValueError("audio has no decodable samples")
16
+ hop = 512
17
+ onset = librosa.onset.onset_strength(y=audio, sr=rate, hop_length=hop)
18
+ tempo, beat_frames = librosa.beat.beat_track(onset_envelope=onset, sr=rate, hop_length=hop, trim=False)
19
+ beats = librosa.frames_to_time(beat_frames, sr=rate, hop_length=hop).round(6).tolist()
20
+ onset_frames = librosa.onset.onset_detect(onset_envelope=onset, sr=rate, hop_length=hop)
21
+ onsets = librosa.frames_to_time(onset_frames, sr=rate, hop_length=hop).round(6).tolist()
22
+ spectrum = np.abs(librosa.stft(audio, n_fft=2048, hop_length=hop))
23
+ frequencies = librosa.fft_frequencies(sr=rate, n_fft=2048)
24
+ bands = {}
25
+ for name, lower, upper in (("low", 20, 250), ("mid", 250, 2000), ("high", 2000, 10000)):
26
+ selection = (frequencies >= lower) & (frequencies < upper)
27
+ values = spectrum[selection].mean(axis=0) if selection.any() else np.zeros(spectrum.shape[1])
28
+ ceiling = float(np.quantile(values, 0.95)) if values.size else 0.0
29
+ bands[name] = np.clip(values / max(ceiling, 1e-9), 0, 1).round(4).tolist()
30
+ rms = librosa.feature.rms(S=spectrum)[0]
31
+ rms_ceiling = float(np.quantile(rms, 0.95)) if rms.size else 0.0
32
+ bands["rms"] = np.clip(rms / max(rms_ceiling, 1e-9), 0, 1).round(4).tolist()
33
+ return {
34
+ "schemaVersion": 1,
35
+ "source": str(source.resolve()),
36
+ "durationSec": round(len(audio) / rate, 6),
37
+ "bpm": round(float(np.asarray(tempo).reshape(-1)[0]), 4),
38
+ "beatGrid": beats,
39
+ "barsEstimated": beats[::4],
40
+ "onsets": onsets,
41
+ "envelope": {"hopSec": hop / rate, "bands": bands},
42
+ "pulseKinds": ["kick", "snare", "onset"],
43
+ }
44
+
45
+
46
+ if __name__ == "__main__":
47
+ if len(sys.argv) != 3:
48
+ raise SystemExit("usage: audio-analysis.py <audio-file> <output-json>")
49
+ result = analyse(Path(sys.argv[1]))
50
+ destination = Path(sys.argv[2])
51
+ destination.parent.mkdir(parents=True, exist_ok=True)
52
+ destination.write_text(json.dumps(result, ensure_ascii=False, separators=(",", ":")) + "\n")
@@ -0,0 +1,83 @@
1
+ // Chrome discovery and the MO-A-51 launch ladder. A rung counts only when the page itself obtains a
2
+ // WebGL2 context. Chrome is driven over Playwright's pipe transport, so no control port listens.
3
+ import { spawnSync } from "node:child_process";
4
+ import { existsSync, mkdirSync, rmSync } from "node:fs";
5
+ import path from "node:path";
6
+ import { pathToFileURL } from "node:url";
7
+ import { chromeFlagRungs } from "./constants.mjs";
8
+
9
+ const macChrome = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
10
+
11
+ export function which(name, env = process.env) {
12
+ for (const dir of (env.PATH ?? "").split(path.delimiter)) {
13
+ if (!dir) continue;
14
+ const candidate = path.join(dir, name);
15
+ if (existsSync(candidate)) return candidate;
16
+ }
17
+ return undefined;
18
+ }
19
+
20
+ export function findChrome(env = process.env) {
21
+ if (env.CHROME_PATH) return existsSync(env.CHROME_PATH) ? { path: env.CHROME_PATH } : { missing: `CHROME_PATH does not exist: ${env.CHROME_PATH}` };
22
+ if (process.platform === "darwin" && existsSync(macChrome)) return { path: macChrome };
23
+ for (const name of ["google-chrome", "google-chrome-stable", "chromium", "chromium-browser", "chrome"]) {
24
+ const found = which(name, env);
25
+ if (found) return { path: found };
26
+ }
27
+ return { missing: "Chrome/Chromium not found on PATH or at the standard install location" };
28
+ }
29
+
30
+ export function chromeVersion(executable) {
31
+ const result = spawnSync(executable, ["--version"], { encoding: "utf8", timeout: 10000 });
32
+ return result.status === 0 ? result.stdout.trim() : `version unavailable (${(result.stderr || result.error?.message || "").split("\n")[0]})`;
33
+ }
34
+
35
+ export async function loadPlaywright(cacheDir) {
36
+ const entry = path.join(cacheDir, "node_modules", "playwright-core", "index.mjs");
37
+ return (await import(pathToFileURL(entry).href)).chromium;
38
+ }
39
+
40
+ const probeHtml = "<!doctype html><meta charset=utf-8><title>lit-typographic-motion</title>";
41
+
42
+ // Try each rung in order. Returns { context, page, rung, renderer } or throws a classified error:
43
+ // error.kind = "launch" (no rung launched Chrome) or "webgl" (Chrome ran, WebGL2 never came up).
44
+ export async function launchLadder(chromium, executable, profileRoot, { timeout = 30000, onPage, rungOnly } = {}) {
45
+ let firstLaunchError = "";
46
+ let lastWebglError = "";
47
+ let launched = false;
48
+ for (const rung of chromeFlagRungs().filter((candidate) => !rungOnly || candidate.name === rungOnly)) {
49
+ const profile = path.join(profileRoot, rung.name === "gpu" ? "cg" : "cs");
50
+ rmSync(profile, { recursive: true, force: true });
51
+ mkdirSync(profile, { recursive: true });
52
+ let context;
53
+ try {
54
+ context = await chromium.launchPersistentContext(profile, {
55
+ executablePath: executable, headless: true, args: rung.flags, chromiumSandbox: true, timeout,
56
+ viewport: { width: 1280, height: 720 }, deviceScaleFactor: 1
57
+ });
58
+ launched = true;
59
+ const page = context.pages()[0] ?? await context.newPage();
60
+ await page.setContent(probeHtml);
61
+ const probe = await page.evaluate(() => {
62
+ const gl = document.createElement("canvas").getContext("webgl2");
63
+ if (!gl) return { ok: false, detail: "canvas.getContext('webgl2') returned null" };
64
+ const ext = gl.getExtension("WEBGL_debug_renderer_info");
65
+ return { ok: true, renderer: ext ? gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) : "unknown (debug-info extension unavailable)" };
66
+ });
67
+ if (probe.ok) {
68
+ if (onPage) await onPage(page);
69
+ return { context, page, rung, renderer: probe.renderer, profile };
70
+ }
71
+ lastWebglError = `${rung.name} rung: ${probe.detail}`;
72
+ } catch (error) {
73
+ const line = String(error?.message ?? error).split("\n").find((part) => part.trim()) ?? String(error);
74
+ if (!launched) firstLaunchError ||= line;
75
+ else lastWebglError = `${rung.name} rung: ${line}`;
76
+ }
77
+ await context?.close().catch(() => {});
78
+ rmSync(profile, { recursive: true, force: true });
79
+ }
80
+ const error = new Error(launched ? `no WebGL2 context on any rung (${lastWebglError})` : `Chrome failed to launch headless: ${firstLaunchError}`);
81
+ error.kind = launched ? "webgl" : "launch";
82
+ throw error;
83
+ }