@litfamily/litopencode 1.0.7 → 1.0.9

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 (723) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README-Ko-KR.md +314 -31
  3. package/README.md +312 -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 +3 -2
  13. package/dist/activation.js +6 -6
  14. package/dist/agents/defaults.js +14 -6
  15. package/dist/cli/command-aliases.js +24 -22
  16. package/dist/cli/doctor.js +3 -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/motion-image-reads.d.ts +6 -0
  46. package/dist/motion-image-reads.js +46 -0
  47. package/dist/server.js +13 -11
  48. package/dist/skill-renames.d.ts +4 -2
  49. package/dist/skill-renames.js +12 -4
  50. package/dist/skills.d.ts +31 -3
  51. package/dist/skills.js +53 -9
  52. package/dist/tools.js +4 -4
  53. package/docs/ab/S11/baseline-desktop.webp +0 -0
  54. package/docs/ab/S11/baseline-phone.webp +0 -0
  55. package/docs/ab/S11/lit-desktop.webp +0 -0
  56. package/docs/ab/S11/lit-phone.webp +0 -0
  57. package/docs/ab/S3/baseline-desktop.webp +0 -0
  58. package/docs/ab/S3/baseline-phone.webp +0 -0
  59. package/docs/ab/S3/lit-desktop.webp +0 -0
  60. package/docs/ab/S3/lit-phone.webp +0 -0
  61. package/docs/ab/S4/baseline-desktop.webp +0 -0
  62. package/docs/ab/S4/baseline-phone.webp +0 -0
  63. package/docs/ab/S4/lit-desktop.webp +0 -0
  64. package/docs/ab/S4/lit-phone.webp +0 -0
  65. package/docs/ab/S5/lit-slides.webp +0 -0
  66. package/docs/ab/S7/lit-diagram.webp +0 -0
  67. package/docs/ab/S8/baseline-slides.webp +0 -0
  68. package/docs/ab/S8/lit-slides.webp +0 -0
  69. package/docs/ab/S9/lit-pages.webp +0 -0
  70. package/docs/assets/cover-motion-still.webp +0 -0
  71. package/docs/assets/cover-motion.webp +0 -0
  72. package/docs/assets/readme/badge-version.svg +1 -1
  73. package/docs/assets/skills/autoconference.webp +0 -0
  74. package/docs/assets/skills/automatic-guards.webp +0 -0
  75. package/docs/assets/skills/autoresearch.webp +0 -0
  76. package/docs/assets/skills/browser-drive.webp +0 -0
  77. package/docs/assets/skills/debugging.webp +0 -0
  78. package/docs/assets/skills/deep-interview.webp +0 -0
  79. package/docs/assets/skills/doctor-installer.webp +0 -0
  80. package/docs/assets/skills/durable-litgoal.webp +0 -0
  81. package/docs/assets/skills/frontend-ui-ux.webp +0 -0
  82. package/docs/assets/skills/lit-burnoff-file.webp +0 -0
  83. package/docs/assets/skills/lit-burnoff.webp +0 -0
  84. package/docs/assets/skills/lit-code.webp +0 -0
  85. package/docs/assets/skills/lit-commit.webp +0 -0
  86. package/docs/assets/skills/lit-comprehend.webp +0 -0
  87. package/docs/assets/skills/lit-crucible.webp +0 -0
  88. package/docs/assets/skills/lit-diagram-drawer.webp +0 -0
  89. package/docs/assets/skills/lit-docx.webp +0 -0
  90. package/docs/assets/skills/lit-fetch.webp +0 -0
  91. package/docs/assets/skills/lit-handoff.webp +0 -0
  92. package/docs/assets/skills/lit-humanizer.webp +0 -0
  93. package/docs/assets/skills/lit-init.webp +0 -0
  94. package/docs/assets/skills/lit-plan.webp +0 -0
  95. package/docs/assets/skills/lit-pptx.webp +0 -0
  96. package/docs/assets/skills/lit-recap.webp +0 -0
  97. package/docs/assets/skills/lit-scientific-visualization.webp +0 -0
  98. package/docs/assets/skills/lit-typographic-motion.webp +0 -0
  99. package/docs/assets/skills/litresearch.webp +0 -0
  100. package/docs/assets/skills/litwork.webp +0 -0
  101. package/docs/assets/skills/lsp-setup.webp +0 -0
  102. package/docs/assets/skills/lsp.webp +0 -0
  103. package/docs/assets/skills/readme-studio.webp +0 -0
  104. package/docs/assets/skills/refactor.webp +0 -0
  105. package/docs/assets/skills/review-work.webp +0 -0
  106. package/docs/assets/skills/rules.webp +0 -0
  107. package/docs/assets/skills/start-work.webp +0 -0
  108. package/docs/assets/skills/structural-search.webp +0 -0
  109. package/docs/assets/skills/visual-qa.webp +0 -0
  110. package/docs/assets/skills/wikify.webp +0 -0
  111. package/docs/reference-Ko-KR.md +5 -1
  112. package/docs/reference.md +6 -2
  113. package/package.json +1 -1
  114. package/rules/bundled-rules/lit-humanizer.md +12 -0
  115. package/skills/autoconference/SKILL.md +1 -1
  116. package/skills/autoconference/assets/report_template.md +1 -1
  117. package/skills/autoresearch/references/type-checklists.md +1 -1
  118. package/skills/browser-drive/SKILL.md +19 -5
  119. package/skills/browser-drive/scripts/capability-probe.mjs +26 -5
  120. package/skills/frontend-ui-ux/SKILL.md +10 -15
  121. package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +10 -0
  122. package/skills/frontend-ui-ux/references/adaptive-layout.md +3 -11
  123. package/skills/frontend-ui-ux/references/brand-and-imagery.md +6 -11
  124. package/skills/frontend-ui-ux/references/complete-contract.md +10 -3
  125. package/skills/frontend-ui-ux/references/composition.md +1 -7
  126. package/skills/frontend-ui-ux/references/craft-floor.md +94 -0
  127. package/skills/frontend-ui-ux/references/creative-directions.md +1 -7
  128. package/skills/frontend-ui-ux/references/evidence-review.md +2 -12
  129. package/skills/frontend-ui-ux/references/implementation-platforms.md +1 -4
  130. package/skills/frontend-ui-ux/references/inclusive-interface.md +1 -3
  131. package/skills/frontend-ui-ux/references/interaction-motion.md +1 -7
  132. package/skills/frontend-ui-ux/references/motion-guide.md +125 -0
  133. package/skills/frontend-ui-ux/references/operating-lanes.md +2 -8
  134. package/skills/frontend-ui-ux/references/product-direction.md +1 -6
  135. package/skills/frontend-ui-ux/references/production.md +12 -5
  136. package/skills/frontend-ui-ux/references/redesign-playbook.md +1 -7
  137. package/skills/frontend-ui-ux/references/slop-register.md +103 -0
  138. package/skills/frontend-ui-ux/references/system-foundations.md +1 -8
  139. package/skills/frontend-ui-ux/references/taste-direction.md +4 -11
  140. package/skills/frontend-ui-ux/references/visual-language.md +1 -6
  141. package/skills/frontend-ui-ux/references/visual-reconstruction.md +2 -7
  142. package/skills/frontend-ui-ux/scripts/probe-page.mjs +326 -0
  143. package/skills/frontend-ui-ux/scripts/probe-server.mjs +24 -0
  144. package/skills/frontend-ui-ux/scripts/probe-static.mjs +42 -0
  145. package/skills/frontend-ui-ux/scripts/probe-thresholds.json +86 -0
  146. package/skills/frontend-ui-ux/scripts/probe.mjs +183 -0
  147. package/skills/lit-comprehend/SKILL.md +10 -11
  148. package/skills/lit-comprehend/references/artifact-template.md +2 -18
  149. package/skills/lit-comprehend/scripts/verify-explainer.ts +0 -14
  150. package/skills/lit-diagram-drawer/NOTICE.md +33 -0
  151. package/skills/lit-diagram-drawer/SKILL.md +101 -0
  152. package/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
  153. package/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
  154. package/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
  155. package/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
  156. package/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
  157. package/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
  158. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
  159. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
  160. package/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
  161. package/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
  162. package/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
  163. package/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
  164. package/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
  165. package/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
  166. package/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
  167. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
  168. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
  169. package/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
  170. package/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
  171. package/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
  172. package/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
  173. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
  174. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
  175. package/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
  176. package/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
  177. package/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
  178. package/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
  179. package/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
  180. package/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
  181. package/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
  182. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
  183. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
  184. package/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
  185. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
  186. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
  187. package/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
  188. package/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
  189. package/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
  190. package/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
  191. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
  192. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
  193. package/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
  194. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
  195. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
  196. package/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
  197. package/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
  198. package/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
  199. package/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
  200. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
  201. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
  202. package/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
  203. package/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
  204. package/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
  205. package/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
  206. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
  207. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
  208. package/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
  209. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
  210. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
  211. package/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
  212. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
  213. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
  214. package/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
  215. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
  216. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
  217. package/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
  218. package/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
  219. package/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
  220. package/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
  221. package/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
  222. package/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
  223. package/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
  224. package/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
  225. package/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
  226. package/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
  227. package/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
  228. package/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
  229. package/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
  230. package/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
  231. package/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
  232. package/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
  233. package/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
  234. package/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
  235. package/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
  236. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
  237. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
  238. package/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
  239. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
  240. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
  241. package/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
  242. package/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
  243. package/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
  244. package/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
  245. package/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
  246. package/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
  247. package/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
  248. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
  249. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
  250. package/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
  251. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
  252. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
  253. package/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
  254. package/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
  255. package/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
  256. package/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
  257. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
  258. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
  259. package/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
  260. package/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
  261. package/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
  262. package/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
  263. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
  264. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
  265. package/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
  266. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
  267. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
  268. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
  269. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
  270. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
  271. package/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
  272. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
  273. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
  274. package/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
  275. package/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
  276. package/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
  277. package/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
  278. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
  279. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
  280. package/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
  281. package/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
  282. package/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
  283. package/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
  284. package/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
  285. package/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
  286. package/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
  287. package/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
  288. package/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
  289. package/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
  290. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
  291. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
  292. package/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
  293. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
  294. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
  295. package/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
  296. package/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
  297. package/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
  298. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
  299. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
  300. package/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
  301. package/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
  302. package/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
  303. package/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
  304. package/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
  305. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
  306. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
  307. package/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
  308. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
  309. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
  310. package/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
  311. package/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
  312. package/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
  313. package/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
  314. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
  315. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
  316. package/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
  317. package/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
  318. package/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
  319. package/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
  320. package/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
  321. package/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
  322. package/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
  323. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
  324. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
  325. package/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
  326. package/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
  327. package/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
  328. package/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
  329. package/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
  330. package/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
  331. package/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
  332. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
  333. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
  334. package/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
  335. package/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
  336. package/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
  337. package/skills/lit-diagram-drawer/assets/fonts/provenance.json +23 -0
  338. package/skills/lit-diagram-drawer/assets/icons.html +231 -0
  339. package/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
  340. package/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
  341. package/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
  342. package/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
  343. package/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
  344. package/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
  345. package/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
  346. package/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
  347. package/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
  348. package/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
  349. package/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
  350. package/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
  351. package/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
  352. package/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
  353. package/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
  354. package/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
  355. package/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
  356. package/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
  357. package/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
  358. package/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
  359. package/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
  360. package/skills/lit-diagram-drawer/references/accessibility.md +37 -0
  361. package/skills/lit-diagram-drawer/references/export.md +17 -0
  362. package/skills/lit-diagram-drawer/references/import-drawio.md +13 -0
  363. package/skills/lit-diagram-drawer/references/import-excalidraw.md +11 -0
  364. package/skills/lit-diagram-drawer/references/import-mermaid.md +12 -0
  365. package/skills/lit-diagram-drawer/references/import-schema.md +28 -0
  366. package/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
  367. package/skills/lit-diagram-drawer/references/motion.md +29 -0
  368. package/skills/lit-diagram-drawer/references/office-pptx-docx.md +28 -0
  369. package/skills/lit-diagram-drawer/references/output-spec.md +48 -0
  370. package/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
  371. package/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
  372. package/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
  373. package/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
  374. package/skills/lit-diagram-drawer/references/profiles.md +24 -0
  375. package/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
  376. package/skills/lit-diagram-drawer/references/style-guide.md +67 -0
  377. package/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
  378. package/skills/lit-diagram-drawer/references/type-bar.md +51 -0
  379. package/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
  380. package/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
  381. package/skills/lit-diagram-drawer/references/type-bump.md +49 -0
  382. package/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
  383. package/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
  384. package/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
  385. package/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
  386. package/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
  387. package/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
  388. package/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
  389. package/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
  390. package/skills/lit-diagram-drawer/references/type-er.md +49 -0
  391. package/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
  392. package/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
  393. package/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
  394. package/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
  395. package/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
  396. package/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
  397. package/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
  398. package/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
  399. package/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
  400. package/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
  401. package/skills/lit-diagram-drawer/references/type-journey.md +54 -0
  402. package/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
  403. package/skills/lit-diagram-drawer/references/type-layers.md +54 -0
  404. package/skills/lit-diagram-drawer/references/type-line.md +54 -0
  405. package/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
  406. package/skills/lit-diagram-drawer/references/type-loop.md +54 -0
  407. package/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
  408. package/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
  409. package/skills/lit-diagram-drawer/references/type-nested.md +59 -0
  410. package/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
  411. package/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
  412. package/skills/lit-diagram-drawer/references/type-polar.md +67 -0
  413. package/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
  414. package/skills/lit-diagram-drawer/references/type-process.md +58 -0
  415. package/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
  416. package/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
  417. package/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
  418. package/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
  419. package/skills/lit-diagram-drawer/references/type-radar.md +57 -0
  420. package/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
  421. package/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
  422. package/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
  423. package/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
  424. package/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
  425. package/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
  426. package/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
  427. package/skills/lit-diagram-drawer/references/type-state.md +59 -0
  428. package/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
  429. package/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
  430. package/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
  431. package/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
  432. package/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
  433. package/skills/lit-diagram-drawer/references/type-tree.md +54 -0
  434. package/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
  435. package/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
  436. package/skills/lit-diagram-drawer/references/type-venn.md +51 -0
  437. package/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
  438. package/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
  439. package/skills/lit-diagram-drawer/references/verifier-guide.md +59 -0
  440. package/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
  441. package/skills/lit-diagram-drawer/scripts/brief-contract.mjs +94 -0
  442. package/skills/lit-diagram-drawer/scripts/capability-probe.mjs +132 -0
  443. package/skills/lit-diagram-drawer/scripts/check-visible-text.mjs +15 -0
  444. package/skills/lit-diagram-drawer/scripts/craft-thresholds.json +15 -0
  445. package/skills/lit-diagram-drawer/scripts/diagram-metrics.mjs +216 -0
  446. package/skills/lit-diagram-drawer/scripts/doctor.mjs +8 -0
  447. package/skills/lit-diagram-drawer/scripts/drawio-extract.mjs +214 -0
  448. package/skills/lit-diagram-drawer/scripts/excalidraw-extract.mjs +151 -0
  449. package/skills/lit-diagram-drawer/scripts/export.mjs +133 -0
  450. package/skills/lit-diagram-drawer/scripts/import-shared.mjs +130 -0
  451. package/skills/lit-diagram-drawer/scripts/mermaid-extract.mjs +173 -0
  452. package/skills/lit-diagram-drawer/scripts/office-safety.mjs +120 -0
  453. package/skills/lit-diagram-drawer/scripts/renderer-safety.mjs +46 -0
  454. package/skills/lit-diagram-drawer/scripts/test-block-registry.mjs +20 -0
  455. package/skills/lit-diagram-drawer/scripts/test-brief-contract.mjs +27 -0
  456. package/skills/lit-diagram-drawer/scripts/test-importers.mjs +119 -0
  457. package/skills/lit-diagram-drawer/scripts/test-office-safety.mjs +67 -0
  458. package/skills/lit-diagram-drawer/scripts/test-sequence-verifier.mjs +28 -0
  459. package/skills/lit-diagram-drawer/scripts/test-visual-quality.mjs +68 -0
  460. package/skills/lit-diagram-drawer/scripts/verify-all.mjs +74 -0
  461. package/skills/lit-diagram-drawer/scripts/verify-brief.mjs +47 -0
  462. package/skills/lit-diagram-drawer/scripts/verify-coverage.mjs +56 -0
  463. package/skills/lit-diagram-drawer/scripts/verify-diagram.mjs +26 -0
  464. package/skills/lit-diagram-drawer/scripts/verify-motion.mjs +12 -0
  465. package/skills/lit-diagram-drawer/scripts/verify-type.mjs +48 -0
  466. package/skills/lit-diagram-drawer/scripts/visual-quality.mjs +363 -0
  467. package/skills/lit-docx/LICENSE-MIT.txt +21 -0
  468. package/skills/lit-docx/SKILL.md +78 -0
  469. package/skills/lit-docx/references/frontmatter_schema.md +42 -0
  470. package/skills/lit-docx/references/journal_style_spec.md +17 -0
  471. package/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
  472. package/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
  473. package/skills/lit-docx/references/slop_rules.md +35 -0
  474. package/skills/lit-docx/requirements.in +5 -0
  475. package/skills/lit-docx/requirements.lock +289 -0
  476. package/skills/lit-docx/run.py +64 -0
  477. package/skills/lit-docx/scripts/clean_markdown.py +95 -0
  478. package/skills/lit-docx/scripts/convert_md_to_docx.py +1047 -0
  479. package/skills/lit-docx/scripts/convert_md_to_pdf.py +281 -0
  480. package/skills/lit-docx/scripts/convert_pdf.py +130 -0
  481. package/skills/lit-docx/scripts/craft-thresholds.json +11 -0
  482. package/skills/lit-docx/scripts/craft_docx.py +83 -0
  483. package/skills/lit-docx/scripts/edit_docx.py +297 -0
  484. package/skills/lit-docx/scripts/embed_images.py +78 -0
  485. package/skills/lit-docx/scripts/generate_docx_templates.py +491 -0
  486. package/skills/lit-docx/scripts/slop_lint.py +485 -0
  487. package/skills/lit-docx/scripts/visual_audit.py +41 -0
  488. package/skills/lit-docx/templates/docx/acs.docx +0 -0
  489. package/skills/lit-docx/templates/docx/elsevier.docx +0 -0
  490. package/skills/lit-docx/templates/docx/ieee.docx +0 -0
  491. package/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
  492. package/skills/lit-docx/templates/docx/nature.docx +0 -0
  493. package/skills/lit-docx/templates/latex/acs/README.md +5 -0
  494. package/skills/lit-docx/templates/latex/acs/template.tex +37 -0
  495. package/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
  496. package/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
  497. package/skills/lit-docx/templates/latex/ieee/README.md +5 -0
  498. package/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
  499. package/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
  500. package/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
  501. package/skills/lit-docx/templates/latex/nature/README.md +5 -0
  502. package/skills/lit-docx/templates/latex/nature/template.tex +37 -0
  503. package/skills/lit-docx/templates/registry.yaml +1366 -0
  504. package/skills/lit-humanizer/NOTICE +160 -0
  505. package/skills/lit-humanizer/SKILL.md +122 -0
  506. package/skills/lit-humanizer/assets/always-on-rule.md +9 -0
  507. package/skills/lit-humanizer/assets/report-skeleton.md +25 -0
  508. package/skills/lit-humanizer/assets/slide-text-skeleton.md +28 -0
  509. package/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
  510. package/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
  511. package/skills/lit-humanizer/examples/api-reference/after.md +9 -0
  512. package/skills/lit-humanizer/examples/api-reference/before.md +15 -0
  513. package/skills/lit-humanizer/examples/changelog/after.md +5 -0
  514. package/skills/lit-humanizer/examples/changelog/before.md +12 -0
  515. package/skills/lit-humanizer/examples/code-comments/after.md +10 -0
  516. package/skills/lit-humanizer/examples/code-comments/before.md +19 -0
  517. package/skills/lit-humanizer/examples/commit/after.md +5 -0
  518. package/skills/lit-humanizer/examples/commit/before.md +7 -0
  519. package/skills/lit-humanizer/examples/data-release/after.md +7 -0
  520. package/skills/lit-humanizer/examples/data-release/before.md +9 -0
  521. package/skills/lit-humanizer/examples/english-essay/after.md +5 -0
  522. package/skills/lit-humanizer/examples/english-essay/before.md +5 -0
  523. package/skills/lit-humanizer/examples/incident-update/after.md +7 -0
  524. package/skills/lit-humanizer/examples/incident-update/before.md +7 -0
  525. package/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
  526. package/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
  527. package/skills/lit-humanizer/examples/ko-report/after.md +9 -0
  528. package/skills/lit-humanizer/examples/ko-report/before.md +13 -0
  529. package/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
  530. package/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
  531. package/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
  532. package/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
  533. package/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
  534. package/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
  535. package/skills/lit-humanizer/examples/pr/after.md +15 -0
  536. package/skills/lit-humanizer/examples/pr/before.md +17 -0
  537. package/skills/lit-humanizer/examples/project-update/after.md +7 -0
  538. package/skills/lit-humanizer/examples/project-update/before.md +9 -0
  539. package/skills/lit-humanizer/examples/readme/after.md +12 -0
  540. package/skills/lit-humanizer/examples/readme/before.md +14 -0
  541. package/skills/lit-humanizer/examples/report/after.md +13 -0
  542. package/skills/lit-humanizer/examples/report/before.md +11 -0
  543. package/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
  544. package/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
  545. package/skills/lit-humanizer/examples/slides/after.md +19 -0
  546. package/skills/lit-humanizer/examples/slides/before.md +19 -0
  547. package/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
  548. package/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
  549. package/skills/lit-humanizer/fixtures/ko-metrics-golden.json +49 -0
  550. package/skills/lit-humanizer/fixtures/office/minimal.docx +0 -0
  551. package/skills/lit-humanizer/fixtures/office/minimal.pptx +0 -0
  552. package/skills/lit-humanizer/fixtures/pos-real.txt +26 -0
  553. package/skills/lit-humanizer/fixtures/rule-cases.json +306 -0
  554. package/skills/lit-humanizer/references/code-patterns.md +468 -0
  555. package/skills/lit-humanizer/references/deliverable-channels.md +111 -0
  556. package/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
  557. package/skills/lit-humanizer/references/en-patterns-content.md +243 -0
  558. package/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
  559. package/skills/lit-humanizer/references/en-patterns.md +57 -0
  560. package/skills/lit-humanizer/references/ko-metrics.md +33 -0
  561. package/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
  562. package/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
  563. package/skills/lit-humanizer/references/ko-patterns.md +31 -0
  564. package/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
  565. package/skills/lit-humanizer/references/taxonomy.md +153 -0
  566. package/skills/lit-humanizer/rules.json +884 -0
  567. package/skills/lit-humanizer/scripts/core.mjs +208 -0
  568. package/skills/lit-humanizer/scripts/detect.mjs +91 -0
  569. package/skills/lit-humanizer/scripts/extract_office_text.py +89 -0
  570. package/skills/lit-humanizer/scripts/guard-scan.mjs +36 -0
  571. package/skills/lit-humanizer/scripts/ko-metrics.mjs +124 -0
  572. package/skills/lit-humanizer/scripts/test-fixtures.mjs +54 -0
  573. package/skills/lit-humanizer/scripts/test-ko-metrics.mjs +27 -0
  574. package/skills/lit-pptx/FORBIDDEN_TERMS.json +55 -0
  575. package/skills/lit-pptx/NOTICE.md +3 -0
  576. package/skills/lit-pptx/SKILL.md +76 -0
  577. package/skills/lit-pptx/agents/analyst.md +49 -0
  578. package/skills/lit-pptx/agents/antithesis.md +59 -0
  579. package/skills/lit-pptx/agents/architect.md +44 -0
  580. package/skills/lit-pptx/agents/critic.md +42 -0
  581. package/skills/lit-pptx/agents/synthesizer.md +47 -0
  582. package/skills/lit-pptx/agents/thesis.md +33 -0
  583. package/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
  584. package/skills/lit-pptx/assets/azure/circle-md.png +0 -0
  585. package/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
  586. package/skills/lit-pptx/fonts/a2z-font/A2Z-Black.otf +0 -0
  587. package/skills/lit-pptx/fonts/a2z-font/A2Z-Bold.otf +0 -0
  588. package/skills/lit-pptx/fonts/a2z-font/A2Z-Light.otf +0 -0
  589. package/skills/lit-pptx/fonts/a2z-font/A2Z-Medium.otf +0 -0
  590. package/skills/lit-pptx/fonts/a2z-font/A2Z-Regular.otf +0 -0
  591. package/skills/lit-pptx/fonts/a2z-font/OFL.txt +94 -0
  592. package/skills/lit-pptx/fonts/a2z-font/SOURCE.md +29 -0
  593. package/skills/lit-pptx/package-lock.json +747 -0
  594. package/skills/lit-pptx/package.json +13 -0
  595. package/skills/lit-pptx/pretendard-font/LICENSE.txt +94 -0
  596. package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Bold.otf +0 -0
  597. package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Regular.otf +0 -0
  598. package/skills/lit-pptx/requirements.in +2 -0
  599. package/skills/lit-pptx/requirements.lock +285 -0
  600. package/skills/lit-pptx/run.mjs +71 -0
  601. package/skills/lit-pptx/scripts/check_ooxml.py +47 -0
  602. package/skills/lit-pptx/scripts/compile-deck.js +447 -0
  603. package/skills/lit-pptx/scripts/craft-thresholds.json +26 -0
  604. package/skills/lit-pptx/scripts/craft_extras.py +224 -0
  605. package/skills/lit-pptx/scripts/embed_fonts.py +204 -0
  606. package/skills/lit-pptx/scripts/layout_inventory.py +70 -0
  607. package/skills/lit-pptx/scripts/learn_template.py +433 -0
  608. package/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
  609. package/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
  610. package/skills/lit-pptx/scripts/lib/font-map.js +79 -0
  611. package/skills/lit-pptx/scripts/lib/gen-bg.js +85 -0
  612. package/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +36 -0
  613. package/skills/lit-pptx/scripts/lib/layout-resolver.js +737 -0
  614. package/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
  615. package/skills/lit-pptx/scripts/lib/render-adapter-html.js +364 -0
  616. package/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +1848 -0
  617. package/skills/lit-pptx/scripts/lib/slide-ast.js +534 -0
  618. package/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
  619. package/skills/lit-pptx/scripts/lib/template-registry.js +355 -0
  620. package/skills/lit-pptx/scripts/qa_deck.py +773 -0
  621. package/skills/lit-pptx/scripts/validate_pptx.py +206 -0
  622. package/skills/lit-pptx/specs/markdown-slide-spec-v1.md +251 -0
  623. package/skills/lit-pptx/specs/markdown-slide-spec-v2.md +223 -0
  624. package/skills/lit-pptx/specs/slide-ast-v1.schema.json +229 -0
  625. package/skills/lit-pptx/specs/slide-ast-v2.schema.json +144 -0
  626. package/skills/lit-pptx/specs/template-enrollment-contract.md +379 -0
  627. package/skills/lit-pptx/templates/bauhaus_light.css +4 -0
  628. package/skills/lit-pptx/templates/boilerplate_professional.css +508 -0
  629. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
  630. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +454 -0
  631. package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
  632. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
  633. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +483 -0
  634. package/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
  635. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
  636. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
  637. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
  638. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
  639. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
  640. package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
  641. package/skills/lit-scientific-visualization/SKILL.md +2 -0
  642. package/skills/lit-typographic-motion/NOTICE +23 -0
  643. package/skills/lit-typographic-motion/SKILL.md +77 -0
  644. package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +25 -0
  645. package/skills/lit-typographic-motion/audio-analysis.py +52 -0
  646. package/skills/lit-typographic-motion/engine/browser.mjs +83 -0
  647. package/skills/lit-typographic-motion/engine/constants.mjs +177 -0
  648. package/skills/lit-typographic-motion/engine/contrast.mjs +101 -0
  649. package/skills/lit-typographic-motion/engine/encode.mjs +46 -0
  650. package/skills/lit-typographic-motion/engine/flash.mjs +216 -0
  651. package/skills/lit-typographic-motion/engine/look.mjs +166 -0
  652. package/skills/lit-typographic-motion/engine/page/common.js +105 -0
  653. package/skills/lit-typographic-motion/engine/page/engine.js +451 -0
  654. package/skills/lit-typographic-motion/engine/page/gl.js +213 -0
  655. package/skills/lit-typographic-motion/engine/page/lines.js +88 -0
  656. package/skills/lit-typographic-motion/engine/page/passes.js +144 -0
  657. package/skills/lit-typographic-motion/engine/page/post.js +119 -0
  658. package/skills/lit-typographic-motion/engine/page/scenes.js +187 -0
  659. package/skills/lit-typographic-motion/engine/page/type.js +321 -0
  660. package/skills/lit-typographic-motion/engine/png.mjs +139 -0
  661. package/skills/lit-typographic-motion/engine/sound.mjs +291 -0
  662. package/skills/lit-typographic-motion/engine/stage/capture.mjs +133 -0
  663. package/skills/lit-typographic-motion/engine/stage/clock.js +171 -0
  664. package/skills/lit-typographic-motion/engine/stage/frame-worker.mjs +47 -0
  665. package/skills/lit-typographic-motion/engine/stage/gate.mjs +119 -0
  666. package/skills/lit-typographic-motion/engine/stage/qa-page.js +158 -0
  667. package/skills/lit-typographic-motion/engine/stage/qa.mjs +208 -0
  668. package/skills/lit-typographic-motion/engine/stage/render.mjs +418 -0
  669. package/skills/lit-typographic-motion/engine/stage/scan.mjs +162 -0
  670. package/skills/lit-typographic-motion/engine/stage/stage-kit.js +310 -0
  671. package/skills/lit-typographic-motion/engine/stills.mjs +60 -0
  672. package/skills/lit-typographic-motion/engine/text.mjs +126 -0
  673. package/skills/lit-typographic-motion/engine/timing.mjs +289 -0
  674. package/skills/lit-typographic-motion/engine/treatment.mjs +254 -0
  675. package/skills/lit-typographic-motion/fonts/Archivo-100-400.ttf +0 -0
  676. package/skills/lit-typographic-motion/fonts/Archivo-100-700.ttf +0 -0
  677. package/skills/lit-typographic-motion/fonts/Archivo-100-900.ttf +0 -0
  678. package/skills/lit-typographic-motion/fonts/Archivo-125-400.ttf +0 -0
  679. package/skills/lit-typographic-motion/fonts/Archivo-125-700.ttf +0 -0
  680. package/skills/lit-typographic-motion/fonts/Archivo-125-900.ttf +0 -0
  681. package/skills/lit-typographic-motion/fonts/Archivo-75-400.ttf +0 -0
  682. package/skills/lit-typographic-motion/fonts/Archivo-75-700.ttf +0 -0
  683. package/skills/lit-typographic-motion/fonts/Archivo-75-900.ttf +0 -0
  684. package/skills/lit-typographic-motion/fonts/Archivo-OFL.txt +93 -0
  685. package/skills/lit-typographic-motion/fonts/Silkscreen-Bold.ttf +0 -0
  686. package/skills/lit-typographic-motion/fonts/Silkscreen-OFL.txt +93 -0
  687. package/skills/lit-typographic-motion/fonts/Silkscreen-Regular.ttf +0 -0
  688. package/skills/lit-typographic-motion/fonts/VT323-OFL.txt +93 -0
  689. package/skills/lit-typographic-motion/fonts/VT323-Regular.ttf +0 -0
  690. package/skills/lit-typographic-motion/fonts/pins.json +44 -0
  691. package/skills/lit-typographic-motion/fonts/stroke/CREDITS +52 -0
  692. package/skills/lit-typographic-motion/fonts/stroke/EMSAllure.svg +216 -0
  693. package/skills/lit-typographic-motion/fonts/stroke/EMSFelix.svg +216 -0
  694. package/skills/lit-typographic-motion/fonts/stroke/EMSOsmotron.svg +216 -0
  695. package/skills/lit-typographic-motion/fonts/stroke/EMSReadability.svg +216 -0
  696. package/skills/lit-typographic-motion/fonts/stroke/EMSTech.svg +217 -0
  697. package/skills/lit-typographic-motion/fonts/stroke/OFL.txt +85 -0
  698. package/skills/lit-typographic-motion/gate.mjs +593 -0
  699. package/skills/lit-typographic-motion/package-lock.json +78 -0
  700. package/skills/lit-typographic-motion/package.json +11 -0
  701. package/skills/lit-typographic-motion/probe.mjs +74 -0
  702. package/skills/lit-typographic-motion/references/authoring.md +110 -0
  703. package/skills/lit-typographic-motion/references/craft-loop.md +110 -0
  704. package/skills/lit-typographic-motion/references/runtime.md +88 -0
  705. package/skills/lit-typographic-motion/references/stage.md +164 -0
  706. package/skills/lit-typographic-motion/references/style-bibles.md +88 -0
  707. package/skills/lit-typographic-motion/references/treatment.md +143 -0
  708. package/skills/lit-typographic-motion/references/type-craft.md +55 -0
  709. package/skills/lit-typographic-motion/render.mjs +654 -0
  710. package/skills/lit-typographic-motion/requirements-audio.in +1 -0
  711. package/skills/lit-typographic-motion/requirements-audio.txt +790 -0
  712. package/skills/lit-typographic-motion/runtime.mjs +259 -0
  713. package/skills/lit-typographic-motion/word-timing-models.json +25 -0
  714. package/skills/litresearch/SKILL.md +41 -12
  715. package/skills/managed-skill-manifest.json +2367 -63
  716. package/skills/skill-rename-aliases.json +6 -1
  717. package/tools/check-pack-payload.mjs +22 -1
  718. package/tools/check-payload-substance.mjs +2 -2
  719. package/tools/payload-reference-exemptions.json +4 -0
  720. package/tools/payload-substance-allowlist.json +2 -3
  721. package/tools/payload-substance-parity.json +7 -7
  722. package/tools/version-manifests.json +4 -4
  723. package/skills/lit-korean/SKILL.md +0 -231
package/dist/features.js CHANGED
@@ -917,33 +917,39 @@ export const litOpenCodeFeatures = Object.freeze([
917
917
  ]
918
918
  },
919
919
  {
920
- id: "lit-korean",
921
- title: "Lit Korean",
922
- summary: "Documents a static review workflow for making Korean prose sound natural while reducing overwrought phrasing and preserving meaning.",
920
+ id: "lit-humanizer",
921
+ title: "Lit Humanizer",
922
+ summary: "Revises reader-facing prose for its audience and genre while preserving voice, meaning, evidence, citations, and useful qualifiers.",
923
923
  bindings: [
924
924
  {
925
925
  kind: "config",
926
926
  id: "litOpenCodeRuntimeSkills",
927
927
  surface: "litopencode exported runtime skill catalog",
928
- description: "Exposes the lit-korean skill as discoverable static guidance without adding hooks, tools, or rewriting behavior."
928
+ description: "Exposes the lit-humanizer skill through the native runtime catalog, prompt route, package assets, and tool guard."
929
929
  },
930
930
  {
931
931
  kind: "command",
932
- id: "lit-korean",
933
- surface: "OpenCode command /lit-korean",
934
- description: "Makes Korean prose naturalization guidance visible as an installed OpenCode command alias."
932
+ id: "lit-humanizer",
933
+ surface: "OpenCode command /lit-humanizer",
934
+ description: "Provides the canonical prose revision route and loads the installed skill guidance."
935
935
  },
936
936
  {
937
937
  kind: "command",
938
- id: "text-neutralization",
939
- surface: "OpenCode command /text-neutralization",
940
- description: "Makes restrained Korean prose neutralization guidance visible as an installed OpenCode command alias."
938
+ id: "tool.execute.before",
939
+ surface: "OpenCode write/edit pre-tool hook",
940
+ description: "Blocks new high-confidence detector hits before supported reader-facing text files are saved."
941
941
  },
942
942
  {
943
943
  kind: "config",
944
- id: "skills/lit-korean/SKILL.md",
944
+ id: "skills/lit-humanizer/SKILL.md",
945
945
  surface: "LitOpenCode visible static skills corpus",
946
- description: "Provides the prose-review checklist, safety notes, and verification route for agents and package consumers."
946
+ description: "Provides the full language, format, safety, detector, Office extraction, and verification guidance for native skill users."
947
+ },
948
+ {
949
+ kind: "config",
950
+ id: "rules/bundled-rules/lit-humanizer.md",
951
+ surface: "OpenCode experimental.chat.system.transform hook",
952
+ description: "Applies the compact always-on writing rule on each eligible OpenCode chat turn."
947
953
  }
948
954
  ],
949
955
  verification: ["node --test test/runtime-skills.test.mjs", "node --test test/docs.test.mjs"]
@@ -971,7 +977,7 @@ export const litOpenCodeFeatures = Object.freeze([
971
977
  {
972
978
  id: "lit-comprehend",
973
979
  title: "Lit Comprehend",
974
- summary: "Builds a self-contained explainer artifact so the user can reason about work that was already done, with delta-anchored themes, intuition-first diagrams, micro-worlds, and an honesty ledger.",
980
+ summary: "Builds a self-contained explainer so the user can understand completed work through delta-anchored themes, diagrams, and interactive examples.",
975
981
  bindings: [
976
982
  {
977
983
  kind: "command",
@@ -1058,6 +1064,67 @@ export const litOpenCodeFeatures = Object.freeze([
1058
1064
  ],
1059
1065
  verification: ["node --test test/lit-scientific-visualization.test.mjs", "npm run check:pack-payload"]
1060
1066
  },
1067
+ {
1068
+ id: "lit-diagram-drawer",
1069
+ title: "Diagram Drawer",
1070
+ summary: "Installs an OpenCode native skill with pinned diagram guides, templates, local verifiers, safe importers, and an exporter that never installs dependencies.",
1071
+ bindings: [
1072
+ {
1073
+ kind: "config",
1074
+ id: "skills/lit-diagram-drawer/SKILL.md",
1075
+ surface: "OpenCode native skill picker",
1076
+ description: "Selects the bounded diagram workflow and its complete managed skill tree. Bounded lit diagram requests direct the model to this native picker; no dedicated slash or standalone diagram chat route is registered."
1077
+ },
1078
+ {
1079
+ kind: "cli",
1080
+ id: "litopencode install",
1081
+ surface: "LitOpenCode managed native skill installer",
1082
+ description: "Installs every hash-pinned guide, template, example, tool, font, and license asset."
1083
+ },
1084
+ {
1085
+ kind: "cli",
1086
+ id: "litopencode doctor",
1087
+ surface: "LitOpenCode managed native skill doctor",
1088
+ description: "Verifies the exact installed file closure and reports export capabilities without installing tools."
1089
+ }
1090
+ ],
1091
+ verification: ["node --test test/lit-diagram-drawer.test.mjs", "npm run check:managed-skill-manifest", "npm run check:pack-payload"]
1092
+ },
1093
+ {
1094
+ id: "lit-typographic-motion",
1095
+ title: "Film director",
1096
+ summary: "Native OpenCode film director: treatment first, a captured stage page or the type engine, generated sound, a numeric gate and recorded look rounds.",
1097
+ bindings: [
1098
+ { kind: "config", id: "skills/lit-typographic-motion/SKILL.md", surface: "OpenCode native skill picker", description: "Loads the managed motion skill and its engine and reference closure." },
1099
+ { kind: "hook", id: "lit-task motion-video intent", surface: "OpenCode chat.message activation", description: "Routes bounded film requests before slide and interface guidance with a neutral film context." },
1100
+ { kind: "hook", id: "tool.execute.after", surface: "OpenCode tool.execute.after hook", description: "Records each read of a film's stills so the done check can confirm the frames were viewed." },
1101
+ { kind: "cli", id: "litopencode motion-runtime install|status", surface: "LitOpenCode runtime", description: "Pre-warms pinned dependencies and fonts outside the render session." },
1102
+ { kind: "cli", id: "litopencode doctor", surface: "LitOpenCode doctor", description: "Reports Chrome, ffmpeg, WebGL2 tier, software warning, and pre-warm status." }
1103
+ ],
1104
+ verification: ["node --test test/lit-typographic-motion.test.mjs", "npm run check:managed-skill-manifest", "npm run check:pack-payload"]
1105
+ },
1106
+ {
1107
+ id: "lit-pptx",
1108
+ title: "Lit PowerPoint",
1109
+ summary: "Native OpenCode deck skill with source, compile, QA, fonts, and first-use dependency cache.",
1110
+ bindings: [
1111
+ { kind: "config", id: "skills/lit-pptx/SKILL.md", surface: "OpenCode native skill picker", description: "Loads the slide workflow from the installed managed tree." },
1112
+ { kind: "hook", id: "lit-task slide intent", surface: "OpenCode chat.message activation", description: "Directs bounded lit slide requests to the native skill." },
1113
+ { kind: "cli", id: "litopencode doctor", surface: "LitOpenCode doctor", description: "Reports installed skill integrity and office runtime readiness." }
1114
+ ],
1115
+ verification: ["node --test test/lit-office-docs.test.mjs", "npm run check:pack-payload"]
1116
+ },
1117
+ {
1118
+ id: "lit-docx",
1119
+ title: "Lit Word Documents",
1120
+ summary: "Native OpenCode document skill with publisher profiles, conversion, editing, lint, and first-use dependency cache.",
1121
+ bindings: [
1122
+ { kind: "config", id: "skills/lit-docx/SKILL.md", surface: "OpenCode native skill picker", description: "Loads the document workflow from the installed managed tree." },
1123
+ { kind: "hook", id: "lit-task report intent", surface: "OpenCode chat.message activation", description: "Directs bounded lit report requests to the native skill." },
1124
+ { kind: "cli", id: "litopencode doctor", surface: "LitOpenCode doctor", description: "Reports installed skill integrity and office runtime readiness." }
1125
+ ],
1126
+ verification: ["node --test test/lit-office-docs.test.mjs", "npm run check:pack-payload"]
1127
+ },
1061
1128
  frontendUiUxFeature,
1062
1129
  {
1063
1130
  id: "readme-studio", title: "README Studio",
package/dist/hooks.d.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import type { Hooks } from "@opencode-ai/plugin";
2
2
  import type { SessionLookup } from "./session-lineage.ts";
3
- import { type DeliverableHedgeSessionState } from "./deliverable-hedge-guard.ts";
3
+ import type { DeliverableHedgeGuardState } from "./deliverable-hedge-guard.ts";
4
4
  type ToolExecuteBeforeHook = NonNullable<Hooks["tool.execute.before"]>;
5
5
  type ToolExecuteAfterHook = NonNullable<Hooks["tool.execute.after"]>;
6
6
  export type ToolExecuteHookOptions = {
7
7
  readonly getSession?: SessionLookup;
8
+ readonly deliverableHedgeGuard?: DeliverableHedgeGuardState;
8
9
  };
9
10
  export declare function createToolExecuteBeforeHook(options?: ToolExecuteHookOptions): ToolExecuteBeforeHook;
10
11
  export type ToolExecuteAfterHookOptions = {
11
12
  readonly projectRoot?: string;
12
13
  readonly knowledgeCaptureEnabled?: boolean;
13
- readonly deliverableHedgeState?: DeliverableHedgeSessionState;
14
+ readonly deliverableHedgeGuard?: DeliverableHedgeGuardState;
14
15
  readonly onSkillActivation?: (sessionID: string, skillId: string) => void | Promise<void>;
15
16
  };
16
17
  export declare function createToolExecuteAfterHook(options?: ToolExecuteAfterHookOptions): ToolExecuteAfterHook;
package/dist/hooks.js CHANGED
@@ -1,18 +1,20 @@
1
1
  import { activationBanner } from "./activation-probe.js";
2
- import { applyDeliverableHedgeAfterHook } from "./deliverable-hedge-guard.js";
3
2
  import { dynamicRulesForPaths } from "./rules/hooks.js";
4
3
  import { applyLitOpenCodePostEditHook, applyLitOpenCodeToolAfterHook, applyLitOpenCodeToolBeforeHook, applyTaskRecursionGuard, mutatedFilePaths } from "./tool-guards.js";
5
4
  import { captureKnowledgeEvent } from "./knowledge.js";
5
+ import { recordMotionImageRead } from "./motion-image-reads.js";
6
6
  export function createToolExecuteBeforeHook(options = {}) {
7
7
  return async (input, output) => {
8
8
  await applyTaskRecursionGuard(input, options.getSession);
9
9
  applyLitOpenCodeToolBeforeHook(input, output);
10
+ await options.deliverableHedgeGuard?.before(input);
10
11
  };
11
12
  }
12
13
  export function createToolExecuteAfterHook(options = {}) {
13
14
  return async (input, output) => {
14
15
  applyLitOpenCodeToolAfterHook(input, output);
15
16
  applyLitOpenCodePostEditHook(input, output);
17
+ recordMotionImageRead(input, options.projectRoot);
16
18
  const activationAction = input.tool === "lit" ? "activate"
17
19
  : input.tool === "litwork" || input.tool === "start-work" ? "start"
18
20
  : input.tool === "review-work" ? "review" : undefined;
@@ -21,9 +23,7 @@ export function createToolExecuteAfterHook(options = {}) {
21
23
  output.output.startsWith(`${activationBanner(input.tool)}\n`)) {
22
24
  await options.onSkillActivation?.(input.sessionID, input.tool);
23
25
  }
24
- if (options.deliverableHedgeState !== undefined) {
25
- await applyDeliverableHedgeAfterHook(options.deliverableHedgeState, input, output);
26
- }
26
+ await options.deliverableHedgeGuard?.after(input, output);
27
27
  if (options.projectRoot !== undefined && output.metadata?.litopencodeKnowledgeCapture !== undefined) {
28
28
  const request = output.metadata.litopencodeKnowledgeCapture;
29
29
  const metadata = { ...output.metadata };
@@ -1,6 +1,6 @@
1
1
  export declare function ignitionMark(first: boolean, _discipline: string, env?: NodeJS.ProcessEnv): string;
2
2
  export declare function createIgnitionState(): {
3
- activate(sessionID: string, skillId: string): void;
3
+ activate(sessionID: string, skillId: string, showCompletionMark?: boolean): void;
4
4
  resetDiscipline(sessionID: string): void;
5
5
  clear(sessionID: string): void;
6
6
  complete: (input: {
package/dist/ignition.js CHANGED
@@ -8,6 +8,7 @@ export function ignitionMark(first, _discipline, env = process.env) {
8
8
  export function createIgnitionState() {
9
9
  const seen = new Set();
10
10
  const disciplines = new Map();
11
+ const plainCompletions = new Set();
11
12
  let disposed = false;
12
13
  const complete = async (input, output) => {
13
14
  const text = stripUserFacingBlankHtmlCommentLines(output.text);
@@ -15,15 +16,25 @@ export function createIgnitionState() {
15
16
  output.text = text;
16
17
  return;
17
18
  }
19
+ if (plainCompletions.has(input.sessionID)) {
20
+ output.text = text;
21
+ return;
22
+ }
18
23
  const mark = ignitionMark(!seen.has(input.sessionID), disciplines.get(input.sessionID) ?? "lit-loop");
19
24
  seen.add(input.sessionID);
20
25
  output.text = `${mark}${text === "" ? "" : `\n\n${text}`}`;
21
26
  };
22
27
  return {
23
- activate(sessionID, skillId) { disciplines.set(sessionID, skillId); },
24
- resetDiscipline(sessionID) { disciplines.delete(sessionID); },
25
- clear(sessionID) { seen.delete(sessionID); disciplines.delete(sessionID); },
28
+ activate(sessionID, skillId, showCompletionMark = true) {
29
+ disciplines.set(sessionID, skillId);
30
+ if (showCompletionMark)
31
+ plainCompletions.delete(sessionID);
32
+ else
33
+ plainCompletions.add(sessionID);
34
+ },
35
+ resetDiscipline(sessionID) { disciplines.delete(sessionID); plainCompletions.delete(sessionID); },
36
+ clear(sessionID) { seen.delete(sessionID); disciplines.delete(sessionID); plainCompletions.delete(sessionID); },
26
37
  complete,
27
- dispose() { seen.clear(); disciplines.clear(); disposed = true; }
38
+ dispose() { seen.clear(); disciplines.clear(); plainCompletions.clear(); disposed = true; }
28
39
  };
29
40
  }
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { defaultGlobalConfigFile, defaultGlobalConfigJson, effectiveAgentConfig,
7
7
  export { captureKnowledgeEvent, inspectKnowledge, knowledgeKinds, knowledgePaths, knowledgeStates, queryKnowledge, readKnowledgeClaims, recoverKnowledge, reviewKnowledgeRecord, KnowledgeStoreError, type KnowledgeCaptureResult, type KnowledgeEvent, type KnowledgeKind, type KnowledgePaths, type KnowledgeQueryResult, type KnowledgeRecord, type KnowledgeReviewResult, type KnowledgeState } from "./knowledge.ts";
8
8
  export { litActivationBanner, litOpenCodeCommands } from "./commands.ts";
9
9
  export { createToolExecuteAfterHook, createToolExecuteBeforeHook } from "./hooks.ts";
10
- export { applyDeliverableHedgeAfterHook, artifactGenres, createDeliverableHedgeSessionState, inspectDeliverableHedges, readOutputChannelContract, type ArtifactGenre, type DeliverableHedgeFinding, type DeliverableHedgeSessionState, type HedgeClass, type LimitationsChannel, type OutputChannelContract } from "./deliverable-hedge-guard.ts";
10
+ export { createDeliverableHedgeGuard, type DeliverableHedgeGuardOptions, type DeliverableHedgeGuardState, type HumanizerFinding, type HumanizerScan, type HumanizerScanRequest } from "./deliverable-hedge-guard.ts";
11
11
  export { activationRegexMetric, createProviderUsageReceiptEventHook, emptyProviderCacheMeasurement, providerUsageReceiptFromEvent, recordProviderUsageReceipt, ruleDedupMetric, updateCacheMetric, type ProviderCacheMeasurement, type ProviderUsageReceipt, type ProviderUsageReceiptEventOptions, type RuleDedupMetric, type ActivationRegexMetric, type UpdateCacheMetric } from "./cache-metrics.ts";
12
12
  export { benchmarkGateAllowsStrongClaim, classifyReferenceSuperiorityClaim, certifyDeclaredBenchmarkUniverse, litOpenCodeClaimPolicy, litOpenCodeReferenceBenchmark, renderDeclaredBenchmarkUniverseClaim, type LitOpenCodeBenchmarkGateInput, type LitOpenCodeBenchmarkScoringDimension, type LitOpenCodeBenchmarkTaskCategory, type LitOpenCodeBenchmarkTaskResult, type LitOpenCodeBenchmarkTaskWinner, type LitOpenCodeBenchmarkUniverseCertification, type LitOpenCodeBenchmarkUniverseCertificationInput, type LitOpenCodeClaimClassification, type LitOpenCodeClaimPolicy, type LitOpenCodeClaimVerdict, type LitOpenCodeReferenceBenchmark } from "./benchmark.ts";
13
13
  export { completeGoals, countRecordedEvidence, createGoals, criterionStatuses, evaluateGoalGate, evidenceKinds, EvidenceLedgerError, evidenceLedgerVersion, goalStatuses, readEvidenceLedger, readEvidenceLedgerStatus, recordCheckpoint, recordEvidence, recordReviewBlocker, recordSteering, renderEvidenceBrief, steeringKinds, steeringWeakeningReason, type Checkpoint, type Criterion, type CriterionStatus, type EvidenceEntry, type EvidenceKind, type EvidenceLedgerState, type GateVerdict, type Goal, type GoalStatus, type ReviewBlocker, type SteeringEntry, type SteeringKind } from "./ledger.ts";
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ export { defaultGlobalConfigFile, defaultGlobalConfigJson, effectiveAgentConfig,
7
7
  export { captureKnowledgeEvent, inspectKnowledge, knowledgeKinds, knowledgePaths, knowledgeStates, queryKnowledge, readKnowledgeClaims, recoverKnowledge, reviewKnowledgeRecord, KnowledgeStoreError } from "./knowledge.js";
8
8
  export { litActivationBanner, litOpenCodeCommands } from "./commands.js";
9
9
  export { createToolExecuteAfterHook, createToolExecuteBeforeHook } from "./hooks.js";
10
- export { applyDeliverableHedgeAfterHook, artifactGenres, createDeliverableHedgeSessionState, inspectDeliverableHedges, readOutputChannelContract } from "./deliverable-hedge-guard.js";
10
+ export { createDeliverableHedgeGuard } from "./deliverable-hedge-guard.js";
11
11
  export { activationRegexMetric, createProviderUsageReceiptEventHook, emptyProviderCacheMeasurement, providerUsageReceiptFromEvent, recordProviderUsageReceipt, ruleDedupMetric, updateCacheMetric } from "./cache-metrics.js";
12
12
  export { benchmarkGateAllowsStrongClaim, classifyReferenceSuperiorityClaim, certifyDeclaredBenchmarkUniverse, litOpenCodeClaimPolicy, litOpenCodeReferenceBenchmark, renderDeclaredBenchmarkUniverseClaim } from "./benchmark.js";
13
13
  export { completeGoals, countRecordedEvidence, createGoals, criterionStatuses, evaluateGoalGate, evidenceKinds, EvidenceLedgerError, evidenceLedgerVersion, goalStatuses, readEvidenceLedger, readEvidenceLedgerStatus, recordCheckpoint, recordEvidence, recordReviewBlocker, recordSteering, renderEvidenceBrief, steeringKinds, steeringWeakeningReason } from "./ledger.js";
@@ -0,0 +1 @@
1
+ export declare const interfaceWorkHandoff = "If the work creates or changes a user-facing web interface, include its UI slice in the plan and verification: load frontend-ui-ux, follow its build guidance, and run node scripts/probe.mjs --path <entry.html> --out <evidence-dir> against the finished page. Require the full RS matrix; fix remaining measured or derived HIGH findings before claiming done, and report exit 2 as blocked. A --help call or ad hoc screenshot does not substitute for the page probe. For CLI or backend-only work, do not load the interface skill or run its probe.";
@@ -0,0 +1 @@
1
+ export const interfaceWorkHandoff = "If the work creates or changes a user-facing web interface, include its UI slice in the plan and verification: load frontend-ui-ux, follow its build guidance, and run node scripts/probe.mjs --path <entry.html> --out <evidence-dir> against the finished page. Require the full RS matrix; fix remaining measured or derived HIGH findings before claiming done, and report exit 2 as blocked. A --help call or ad hoc screenshot does not substitute for the page probe. For CLI or backend-only work, do not load the interface skill or run its probe.";
@@ -0,0 +1,6 @@
1
+ export type MotionImageReadInput = {
2
+ readonly tool: string;
3
+ readonly args?: unknown;
4
+ };
5
+ export declare function motionRunDirFor(file: string): string | undefined;
6
+ export declare function recordMotionImageRead(input: MotionImageReadInput, cwd?: string): void;
@@ -0,0 +1,46 @@
1
+ import { createHash } from "node:crypto";
2
+ import { appendFileSync, existsSync, readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ // lit-typographic-motion's look rounds count a frame as viewed only when OpenCode's read tool opened
5
+ // it. This hook sees every completed read; when the file is a PNG inside a film's output directory
6
+ // (one holding treatment.json and a stills set), it appends the file and its SHA-256 to that
7
+ // directory's .run/image-reads.jsonl. It never reads tool output, never throws and writes nowhere else.
8
+ const maxLevels = 3;
9
+ function filePathOf(args) {
10
+ if (typeof args !== "object" || args === null)
11
+ return undefined;
12
+ const value = args.filePath ?? args.file_path ?? args.path;
13
+ return typeof value === "string" && value.length > 0 ? value : undefined;
14
+ }
15
+ export function motionRunDirFor(file) {
16
+ let dir = path.dirname(file);
17
+ for (let level = 0; level <= maxLevels; level++) {
18
+ if (existsSync(path.join(dir, "treatment.json")) && existsSync(path.join(dir, "stills", "stills.json")) && existsSync(path.join(dir, ".run")))
19
+ return dir;
20
+ const parent = path.dirname(dir);
21
+ if (parent === dir)
22
+ return undefined;
23
+ dir = parent;
24
+ }
25
+ return undefined;
26
+ }
27
+ export function recordMotionImageRead(input, cwd = process.cwd()) {
28
+ if (input.tool !== "read")
29
+ return;
30
+ const raw = filePathOf(input.args);
31
+ if (raw === undefined || !/\.png$/iu.test(raw))
32
+ return;
33
+ try {
34
+ const file = path.resolve(cwd, raw);
35
+ if (!existsSync(file))
36
+ return;
37
+ const runDir = motionRunDirFor(file);
38
+ if (runDir === undefined)
39
+ return;
40
+ const record = { file: path.relative(runDir, file).split(path.sep).join("/"), sha256: createHash("sha256").update(readFileSync(file)).digest("hex"), tool: "read", at: new Date().toISOString() };
41
+ appendFileSync(path.join(runDir, ".run", "image-reads.jsonl"), `${JSON.stringify(record)}\n`);
42
+ }
43
+ catch {
44
+ // A failed record only means the done check will ask for the read again.
45
+ }
46
+ }
package/dist/server.js CHANGED
@@ -1,9 +1,10 @@
1
+ import { fileURLToPath } from "node:url";
1
2
  import { createChatMessageActivationHook, showActivationToast } from "./activation.js";
2
3
  import { registerLitOpenCodeAgents } from "./agents.js";
3
4
  import { createBoundedAuthorityEventHook } from "./bounded-authority-hooks.js";
4
5
  import { createCommandActivationHook } from "./commands.js";
5
6
  import { loadConfig } from "./config.js";
6
- import { createDeliverableHedgeSessionState } from "./deliverable-hedge-guard.js";
7
+ import { createDeliverableHedgeGuard } from "./deliverable-hedge-guard.js";
7
8
  import { createToolExecuteAfterHook, createToolExecuteBeforeHook } from "./hooks.js";
8
9
  import { createLogger } from "./logger.js";
9
10
  import { createIgnitionState } from "./ignition.js";
@@ -45,11 +46,10 @@ export function createLitOpenCodePlugin(autoUpdateRunner = runPluginAutoUpdate)
45
46
  const logger = createLogger(loaded.paths);
46
47
  const getSession = createSessionLookup(input?.client);
47
48
  const ignitionState = createIgnitionState();
48
- const deliverableHedgeState = createDeliverableHedgeSessionState();
49
- const recordSkillActivation = async (sessionID, skillId) => {
49
+ const deliverableHedgeGuard = createDeliverableHedgeGuard({ projectRoot: root });
50
+ const recordSkillActivation = async (sessionID, skillId, appendedLit = false) => {
50
51
  showActivationToast(input?.client, skillId);
51
- await deliverableHedgeState.activate(sessionID, skillId);
52
- ignitionState.activate(sessionID, skillId);
52
+ ignitionState.activate(sessionID, skillId, !appendedLit);
53
53
  };
54
54
  const boundedAuthorityEvent = createBoundedAuthorityEventHook(root, input?.client, loaded.config.boundedAuthority);
55
55
  const trustedCommandActivations = new WeakMap();
@@ -65,7 +65,6 @@ export function createLitOpenCodePlugin(autoUpdateRunner = runPluginAutoUpdate)
65
65
  },
66
66
  event: async (eventInput) => {
67
67
  if (eventInput.event.type === "session.deleted") {
68
- deliverableHedgeState.clear(eventInput.event.properties.info.id);
69
68
  ignitionState.clear(eventInput.event.properties.info.id);
70
69
  }
71
70
  await boundedAuthorityEvent(eventInput);
@@ -76,7 +75,6 @@ export function createLitOpenCodePlugin(autoUpdateRunner = runPluginAutoUpdate)
76
75
  boundedAuthority: loaded.config.boundedAuthority,
77
76
  knowledgeCaptureEnabled: loaded.config.knowledge.capture,
78
77
  onRootUserTurn: (sessionID) => {
79
- deliverableHedgeState.clear(sessionID);
80
78
  ignitionState.resetDiscipline(sessionID);
81
79
  },
82
80
  onSkillActivation: recordSkillActivation,
@@ -97,27 +95,31 @@ export function createLitOpenCodePlugin(autoUpdateRunner = runPluginAutoUpdate)
97
95
  },
98
96
  "experimental.text.complete": ignitionState.complete,
99
97
  "experimental.chat.system.transform": async (transformInput, transformOutput) => {
100
- await applyStaticRuleInjection({ projectRoot: root, outputStyle: loaded.config.outputStyle }, transformInput, transformOutput);
98
+ await applyStaticRuleInjection({
99
+ projectRoot: root,
100
+ bundledRulesDir: fileURLToPath(new URL("../rules/bundled-rules", import.meta.url)),
101
+ outputStyle: loaded.config.outputStyle
102
+ }, transformInput, transformOutput);
101
103
  },
102
104
  "experimental.session.compacting": async (compactInput, compactOutput) => {
103
105
  await applyCompactionRuleReset(compactInput, compactOutput);
104
106
  },
105
107
  dispose: async () => {
106
- deliverableHedgeState.dispose();
108
+ deliverableHedgeGuard.dispose();
107
109
  ignitionState.dispose();
108
110
  await logger.dispose();
109
111
  }
110
112
  };
111
113
  Object.defineProperties(hooks, {
112
114
  "tool.execute.before": {
113
- value: createToolExecuteBeforeHook({ getSession }),
115
+ value: createToolExecuteBeforeHook({ getSession, deliverableHedgeGuard }),
114
116
  enumerable: false
115
117
  },
116
118
  "tool.execute.after": {
117
119
  value: createToolExecuteAfterHook({
118
120
  projectRoot: root,
119
121
  knowledgeCaptureEnabled: loaded.config.knowledge.capture,
120
- deliverableHedgeState,
122
+ deliverableHedgeGuard,
121
123
  onSkillActivation: recordSkillActivation
122
124
  }),
123
125
  enumerable: false
@@ -1,5 +1,7 @@
1
1
  import type { LitOpenCodeRuntimeSkillId } from "./skills.ts";
2
- export type RenamedSkillId = Extract<LitOpenCodeRuntimeSkillId, "lit-crucible" | "lit-init" | "lit-commit" | "lit-burnoff" | "lit-burnoff-file" | "lit-korean" | "lit-fetch" | "lit-code">;
2
+ export type RenamedSkillId = Extract<LitOpenCodeRuntimeSkillId, "lit-crucible" | "lit-init" | "lit-commit" | "lit-burnoff" | "lit-burnoff-file" | "lit-humanizer" | "lit-fetch" | "lit-code">;
3
+ export declare const renamedSkillAliases: Readonly<Record<RenamedSkillId, readonly string[]>>;
3
4
  export declare const renamedSkillIds: Readonly<Record<RenamedSkillId, string>>;
5
+ export declare const retiredManagedSkillEntrypointHashes: Readonly<Record<string, string>>;
4
6
  export declare function renamedSkillId(alias: string): RenamedSkillId | undefined;
5
- export declare function skillRenameNote(id: RenamedSkillId): string;
7
+ export declare function skillRenameNote(id: RenamedSkillId, alias?: string): string;
@@ -1,8 +1,16 @@
1
1
  import { readFileSync } from "node:fs";
2
- export const renamedSkillIds = Object.freeze(JSON.parse(readFileSync(new URL("../skills/skill-rename-aliases.json", import.meta.url), "utf8")));
2
+ const renameValues = JSON.parse(readFileSync(new URL("../skills/skill-rename-aliases.json", import.meta.url), "utf8"));
3
+ function aliasesFor(value) {
4
+ return typeof value === "string" ? [value] : value;
5
+ }
6
+ export const renamedSkillAliases = Object.freeze(Object.fromEntries(Object.entries(renameValues).map(([id, value]) => [id, aliasesFor(value)])));
7
+ export const renamedSkillIds = Object.freeze(Object.fromEntries(Object.entries(renamedSkillAliases).map(([id, aliases]) => [id, aliases[0]])));
8
+ export const retiredManagedSkillEntrypointHashes = Object.freeze({
9
+ "lit-korean": "d50edcb844eb128abd12eb233c504f38751ab858e1b0eb39456eaca221a60348"
10
+ });
3
11
  export function renamedSkillId(alias) {
4
- return Object.keys(renamedSkillIds).find((id) => renamedSkillIds[id] === alias);
12
+ return Object.keys(renamedSkillAliases).find((id) => renamedSkillAliases[id].includes(alias));
5
13
  }
6
- export function skillRenameNote(id) {
7
- return `Note: \`${renamedSkillIds[id]}\` was renamed to \`${id}\`; the old name is removed in the next minor.`;
14
+ export function skillRenameNote(id, alias = renamedSkillIds[id]) {
15
+ return `Note: \`${alias}\` now routes to \`${id}\`; use the canonical name for new invocations.`;
8
16
  }
package/dist/skills.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { LitOpenCodeFeatureId } from "./features.ts";
2
- export type LitOpenCodeRuntimeSkillId = "workflow-loop" | "durable-litgoal" | "agent-roster" | "lit-plan" | "start-work" | "review-work" | "litresearch" | "reference-benchmark-claims" | "native-goal-verdict" | "doctor-installer" | "search-workflow-ideas" | "lit-fetch" | "release-guardrails" | "lit-init" | "lit-crucible" | "refactor" | "lit-burnoff" | "lit-burnoff-file" | "comment-checker" | "lit-code" | "debugging" | "lit-commit" | "lsp" | "lsp-setup" | "rules" | "deep-interview" | "structural-search" | "browser-drive" | "lit-korean" | "lit-recap" | "lit-comprehend" | "lit-handoff" | "lit-scientific-visualization" | "readme-studio" | "frontend-ui-ux" | "visual-qa" | "autoresearch" | "autoconference" | "wikify";
2
+ export type LitOpenCodeRuntimeSkillId = "workflow-loop" | "durable-litgoal" | "agent-roster" | "lit-plan" | "start-work" | "review-work" | "litresearch" | "reference-benchmark-claims" | "native-goal-verdict" | "doctor-installer" | "search-workflow-ideas" | "lit-fetch" | "release-guardrails" | "lit-init" | "lit-crucible" | "refactor" | "lit-burnoff" | "lit-burnoff-file" | "comment-checker" | "lit-code" | "debugging" | "lit-commit" | "lsp" | "lsp-setup" | "rules" | "deep-interview" | "structural-search" | "browser-drive" | "lit-humanizer" | "lit-recap" | "lit-comprehend" | "lit-handoff" | "lit-scientific-visualization" | "lit-diagram-drawer" | "lit-pptx" | "lit-typographic-motion" | "lit-docx" | "readme-studio" | "frontend-ui-ux" | "visual-qa" | "autoresearch" | "autoconference" | "wikify";
3
3
  export type LitOpenCodeRuntimeSkill = {
4
4
  readonly id: LitOpenCodeRuntimeSkillId;
5
5
  readonly title: string;
@@ -227,10 +227,10 @@ export declare const litOpenCodeRuntimeSkills: readonly ({
227
227
  discovery: string;
228
228
  safety: string[];
229
229
  } | {
230
- id: "lit-korean";
230
+ id: "lit-humanizer";
231
231
  title: string;
232
232
  summary: string;
233
- featureIds: "lit-korean"[];
233
+ featureIds: "lit-humanizer"[];
234
234
  discovery: string;
235
235
  safety: string[];
236
236
  } | {
@@ -261,6 +261,34 @@ export declare const litOpenCodeRuntimeSkills: readonly ({
261
261
  featureIds: ("doctor-install" | "lit-scientific-visualization")[];
262
262
  discovery: string;
263
263
  safety: string[];
264
+ } | {
265
+ id: "lit-diagram-drawer";
266
+ title: string;
267
+ summary: string;
268
+ featureIds: "lit-diagram-drawer"[];
269
+ discovery: string;
270
+ safety: string[];
271
+ } | {
272
+ id: "lit-typographic-motion";
273
+ title: string;
274
+ summary: string;
275
+ featureIds: "lit-typographic-motion"[];
276
+ discovery: string;
277
+ safety: string[];
278
+ } | {
279
+ id: "lit-pptx";
280
+ title: string;
281
+ summary: string;
282
+ featureIds: "lit-pptx"[];
283
+ discovery: string;
284
+ safety: string[];
285
+ } | {
286
+ id: "lit-docx";
287
+ title: string;
288
+ summary: string;
289
+ featureIds: "lit-docx"[];
290
+ discovery: string;
291
+ safety: string[];
264
292
  } | {
265
293
  id: "autoresearch";
266
294
  title: string;
package/dist/skills.js CHANGED
@@ -320,15 +320,15 @@ export const litOpenCodeRuntimeSkills = Object.freeze([
320
320
  ]
321
321
  },
322
322
  {
323
- id: "lit-korean",
324
- title: "Lit Korean",
325
- summary: "Use static LitOpenCode guidance to review Korean prose for naturalness, reduce overwrought AI-like phrasing, and preserve meaning.",
326
- featureIds: ["lit-korean"],
327
- discovery: "Run /lit-korean or /text-neutralization, import litOpenCodeRuntimeSkills, or inspect skills/lit-korean/SKILL.md.",
323
+ id: "lit-humanizer",
324
+ title: "Lit Humanizer",
325
+ summary: "Revise reader-facing prose in its language and genre while preserving voice, facts, citations, and useful qualifiers.",
326
+ featureIds: ["lit-humanizer"],
327
+ discovery: "Run /lit-humanizer, select the lit-humanizer native skill, or inspect skills/lit-humanizer/SKILL.md; prior Korean prose routes remain redirects.",
328
328
  safety: [
329
- "Treat source text as user-owned content and preserve factual meaning, technical terms, and requested tone.",
330
- "Do not run commands, fetch references, or rewrite files automatically from the static skill text.",
331
- "Prefer minimal edits and call out ambiguous meaning before changing it."
329
+ "Treat source text as user-owned inert content and preserve factual meaning, technical terms, and requested tone.",
330
+ "The guard blocks only new high-precision findings before supported text writes; warning-tier findings remain advisory.",
331
+ "Keep detailed evidence internal and state material reader-facing risk once in the chat reply."
332
332
  ]
333
333
  },
334
334
  {
@@ -345,7 +345,7 @@ export const litOpenCodeRuntimeSkills = Object.freeze([
345
345
  {
346
346
  id: "lit-comprehend",
347
347
  title: "Lit Comprehend",
348
- summary: "Build a self-contained explainer artifact with delta-anchored themes, diagrams, micro-worlds, and an honesty ledger so the user can reason about completed work.",
348
+ summary: "Build a self-contained explainer with delta-anchored themes, diagrams, and interactive examples so the user can understand completed work.",
349
349
  featureIds: ["lit-comprehend"],
350
350
  discovery: "Run /lit-comprehend, type a bounded lit-comprehend or comprehend trigger in chat, or inspect skills/lit-comprehend/SKILL.md.",
351
351
  safety: [
@@ -377,6 +377,50 @@ export const litOpenCodeRuntimeSkills = Object.freeze([
377
377
  "Verify current publisher requirements and inspect real exported artifacts."
378
378
  ]
379
379
  },
380
+ {
381
+ id: "lit-diagram-drawer",
382
+ title: "Diagram Drawer",
383
+ summary: "Create editable, accessible diagrams with 61 type guides, local templates, bounded importers, and visual verification tools.",
384
+ featureIds: ["lit-diagram-drawer"],
385
+ discovery: "Select lit-diagram-drawer from OpenCode's native skill picker for conceptual diagrams; bounded diagram-creation requests with lit direct the model to load it before authoring. Product interfaces route to frontend-ui-ux and measured scientific figures to lit-scientific-visualization.",
386
+ safety: [
387
+ "Treat imported diagram text as inert data and reject active markup; never execute source labels or links.",
388
+ "Run local checks before export, inspect the rendered image, and do not install browsers, fonts, or packages from the skill."
389
+ ]
390
+ },
391
+ {
392
+ id: "lit-typographic-motion",
393
+ title: "Film director",
394
+ summary: "Direct a film from a written treatment: a captured stage page for films that show things, the type engine for words-alone films, both gated and looked at.",
395
+ featureIds: ["lit-typographic-motion"],
396
+ discovery: "Select lit-typographic-motion from OpenCode's native skill picker; bounded lit film requests route here before slide or interface skills.",
397
+ safety: [
398
+ "Keep source text inert, use the installed render and gate scripts, and never install dependencies inside the render session.",
399
+ "A flash failure withholds exports; report a named BLOCKED state or failed rule instead of claiming a finished film."
400
+ ]
401
+ },
402
+ {
403
+ id: "lit-pptx",
404
+ title: "Lit PowerPoint",
405
+ summary: "Compile a source-backed Markdown deck to an editable PPTX with enrolled templates, pinned first-use runtime, QA, and visual inspection.",
406
+ featureIds: ["lit-pptx"],
407
+ discovery: "Select the lit-pptx native skill; bounded lit slide requests direct OpenCode to load it before drafting.",
408
+ safety: [
409
+ "Keep the Markdown source with the PPTX and do not invent missing source facts.",
410
+ "Pass layout, anti-slop, contrast and OOXML checks, then inspect rendered slides when soffice is available."
411
+ ]
412
+ },
413
+ {
414
+ id: "lit-docx",
415
+ title: "Lit Word Documents",
416
+ summary: "Create or edit styled DOCX reports from Markdown with publisher profiles, pinned first-use runtime, lint, and visual audit.",
417
+ featureIds: ["lit-docx"],
418
+ discovery: "Select the lit-docx native skill; bounded lit report requests direct OpenCode to load it before drafting.",
419
+ safety: [
420
+ "Preserve factual source claims and keep the Markdown beside the DOCX.",
421
+ "Use publisher profiles when requested; render and inspect pages before a visual-quality claim."
422
+ ]
423
+ },
380
424
  {
381
425
  id: "autoresearch",
382
426
  title: "Autoresearch",
package/dist/tools.js CHANGED
@@ -34,7 +34,7 @@ function blockedWikifyStoreResult(action) {
34
34
  };
35
35
  }
36
36
  export const litTool = tool({
37
- description: "Activate LitOpenCode and inspect the durable litgoal ledger.",
37
+ description: "Inspect the durable ledger only on explicit request. Bare lit activation is automatic: the chat hook routes it as bounded direct work. Do not call this for a bounded task.",
38
38
  args: {
39
39
  action: actionSchema("LitOpenCode action. Supported values: activate, status.")
40
40
  },
@@ -80,7 +80,7 @@ export const litTool = tool({
80
80
  }
81
81
  });
82
82
  export const litworkTool = tool({
83
- description: "Start or inspect a LitOpenCode work loop backed by the durable ledger.",
83
+ description: "Start or inspect a durable loop only when the user asks for persistent tracking or the task needs multi-turn resumption; do not call for bounded work.",
84
84
  args: {
85
85
  action: actionSchema("LitOpenCode work action. Supported values: start, status.")
86
86
  },
@@ -126,7 +126,7 @@ export const litworkTool = tool({
126
126
  }
127
127
  });
128
128
  export const startWorkTool = tool({
129
- description: "Start or resume LitOpenCode start-work execution with durable evidence checkpoints.",
129
+ description: "Start or resume an approved durable plan only through explicit user start-work requests; do not use for a bounded task.",
130
130
  args: {
131
131
  action: actionSchema("LitOpenCode start-work action. Supported values: start, status.")
132
132
  },
@@ -209,7 +209,7 @@ export const startWorkTool = tool({
209
209
  }
210
210
  });
211
211
  export const reviewWorkTool = tool({
212
- description: "Start read-only review-work for a draft plan or completed work.",
212
+ description: "Start read-only review-work only when the user explicitly requests an independent plan or work review; run relevant checks directly for bounded tasks.",
213
213
  args: {
214
214
  action: actionSchema("LitOpenCode review-work action. Supported values: review, status.")
215
215
  },
Binary file
Binary file
Binary file
Binary file