@litfamily/lithermes 1.0.0

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 (557) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +186 -0
  3. package/README_Ko-KR.md +188 -0
  4. package/assets/lithermes-plugin/NOTICE.md +46 -0
  5. package/assets/lithermes-plugin/README.md +390 -0
  6. package/assets/lithermes-plugin/__init__.py +589 -0
  7. package/assets/lithermes-plugin/auto_update.py +338 -0
  8. package/assets/lithermes-plugin/bounded_work.py +1120 -0
  9. package/assets/lithermes-plugin/bounded_work_tools.py +115 -0
  10. package/assets/lithermes-plugin/core.py +1813 -0
  11. package/assets/lithermes-plugin/core_commands.py +243 -0
  12. package/assets/lithermes-plugin/core_contexts.py +458 -0
  13. package/assets/lithermes-plugin/core_contract.py +456 -0
  14. package/assets/lithermes-plugin/core_plans.py +418 -0
  15. package/assets/lithermes-plugin/core_reader_args.py +34 -0
  16. package/assets/lithermes-plugin/core_recap_command.py +141 -0
  17. package/assets/lithermes-plugin/core_recap_state.py +175 -0
  18. package/assets/lithermes-plugin/core_review.py +198 -0
  19. package/assets/lithermes-plugin/core_routing.py +641 -0
  20. package/assets/lithermes-plugin/core_runs.py +283 -0
  21. package/assets/lithermes-plugin/core_runtime.py +251 -0
  22. package/assets/lithermes-plugin/core_workflow_commands.py +207 -0
  23. package/assets/lithermes-plugin/deliverable_hedge_guard.py +562 -0
  24. package/assets/lithermes-plugin/diagnostics.py +468 -0
  25. package/assets/lithermes-plugin/handoff.py +97 -0
  26. package/assets/lithermes-plugin/knowledge.py +920 -0
  27. package/assets/lithermes-plugin/knowledge_tools.py +130 -0
  28. package/assets/lithermes-plugin/lit_mark.py +140 -0
  29. package/assets/lithermes-plugin/lit_mark_rows.json +1363 -0
  30. package/assets/lithermes-plugin/litgoal/__init__.py +10 -0
  31. package/assets/lithermes-plugin/litgoal/cli.py +207 -0
  32. package/assets/lithermes-plugin/litgoal/hook.py +81 -0
  33. package/assets/lithermes-plugin/litgoal/model.py +203 -0
  34. package/assets/lithermes-plugin/litgoal/runtime.py +522 -0
  35. package/assets/lithermes-plugin/litgoal/store.py +367 -0
  36. package/assets/lithermes-plugin/litgoal/tools.py +300 -0
  37. package/assets/lithermes-plugin/output-styles/asd-ste100-ko.md +41 -0
  38. package/assets/lithermes-plugin/output-styles/asd-ste100.md +40 -0
  39. package/assets/lithermes-plugin/output-styles/eli5-ko.md +13 -0
  40. package/assets/lithermes-plugin/output-styles/eli5.md +11 -0
  41. package/assets/lithermes-plugin/output_styles.py +62 -0
  42. package/assets/lithermes-plugin/payload-version.json +2107 -0
  43. package/assets/lithermes-plugin/plugin.yaml +16 -0
  44. package/assets/lithermes-plugin/provider_metrics.py +161 -0
  45. package/assets/lithermes-plugin/redaction.py +148 -0
  46. package/assets/lithermes-plugin/rules/__init__.py +55 -0
  47. package/assets/lithermes-plugin/rules/bundled-rules/baseline-discipline.md +20 -0
  48. package/assets/lithermes-plugin/rules/bundled-rules/build-decision-gate.md +19 -0
  49. package/assets/lithermes-plugin/rules/bundled-rules/windows-git-bash.md +17 -0
  50. package/assets/lithermes-plugin/rules/constants.py +122 -0
  51. package/assets/lithermes-plugin/rules/discovery.py +276 -0
  52. package/assets/lithermes-plugin/rules/engine.py +447 -0
  53. package/assets/lithermes-plugin/rules/frontmatter.py +149 -0
  54. package/assets/lithermes-plugin/rules/globmatch.py +333 -0
  55. package/assets/lithermes-plugin/scientific_visualization.py +158 -0
  56. package/assets/lithermes-plugin/session_context.py +8 -0
  57. package/assets/lithermes-plugin/skill_loop.py +2044 -0
  58. package/assets/lithermes-plugin/skill_observer.py +1778 -0
  59. package/assets/lithermes-plugin/skills/autoconference/LICENSE +21 -0
  60. package/assets/lithermes-plugin/skills/autoconference/ORIGIN.json +11 -0
  61. package/assets/lithermes-plugin/skills/autoconference/SKILL.md +163 -0
  62. package/assets/lithermes-plugin/skills/autoconference/assets/conference_template.md +76 -0
  63. package/assets/lithermes-plugin/skills/autoconference/assets/report_template.md +53 -0
  64. package/assets/lithermes-plugin/skills/autoconference/assets/synthesis_template.md +39 -0
  65. package/assets/lithermes-plugin/skills/autoconference/dependencies/autoresearch.md +14 -0
  66. package/assets/lithermes-plugin/skills/autoconference/modes/analyze/SKILL.md +269 -0
  67. package/assets/lithermes-plugin/skills/autoconference/modes/core/SKILL.md +134 -0
  68. package/assets/lithermes-plugin/skills/autoconference/modes/core/convergence-guide.md +162 -0
  69. package/assets/lithermes-plugin/skills/autoconference/modes/core/crash-recovery.md +63 -0
  70. package/assets/lithermes-plugin/skills/autoconference/modes/debate/SKILL.md +383 -0
  71. package/assets/lithermes-plugin/skills/autoconference/modes/plan/SKILL.md +304 -0
  72. package/assets/lithermes-plugin/skills/autoconference/modes/resume/SKILL.md +82 -0
  73. package/assets/lithermes-plugin/skills/autoconference/modes/ship/SKILL.md +78 -0
  74. package/assets/lithermes-plugin/skills/autoconference/modes/survey/SKILL.md +376 -0
  75. package/assets/lithermes-plugin/skills/autoconference/references/agent-prompts.md +110 -0
  76. package/assets/lithermes-plugin/skills/autoconference/references/conference-protocol.md +90 -0
  77. package/assets/lithermes-plugin/skills/autoconference/references/core-principles.md +78 -0
  78. package/assets/lithermes-plugin/skills/autoconference/references/results-logging.md +165 -0
  79. package/assets/lithermes-plugin/skills/autoconference/references/visualization-guide.md +99 -0
  80. package/assets/lithermes-plugin/skills/autoconference/scripts/check_conference.sh +197 -0
  81. package/assets/lithermes-plugin/skills/autoconference/scripts/init_conference.py +489 -0
  82. package/assets/lithermes-plugin/skills/autoconference/scripts/style_presets.py +104 -0
  83. package/assets/lithermes-plugin/skills/autoconference/templates/code-performance.md +59 -0
  84. package/assets/lithermes-plugin/skills/autoconference/templates/debate-mode.md +50 -0
  85. package/assets/lithermes-plugin/skills/autoconference/templates/prompt-optimization.md +58 -0
  86. package/assets/lithermes-plugin/skills/autoconference/templates/quick-conference.md +48 -0
  87. package/assets/lithermes-plugin/skills/autoconference/templates/research-synthesis.md +56 -0
  88. package/assets/lithermes-plugin/skills/autoconference/templates/survey-mode.md +63 -0
  89. package/assets/lithermes-plugin/skills/autoresearch/LICENSE +21 -0
  90. package/assets/lithermes-plugin/skills/autoresearch/ORIGIN.json +11 -0
  91. package/assets/lithermes-plugin/skills/autoresearch/SKILL.md +175 -0
  92. package/assets/lithermes-plugin/skills/autoresearch/assets/report_template.md +50 -0
  93. package/assets/lithermes-plugin/skills/autoresearch/assets/research_template.md +38 -0
  94. package/assets/lithermes-plugin/skills/autoresearch/assets/results_template.tsv +2 -0
  95. package/assets/lithermes-plugin/skills/autoresearch/modes/core/SKILL.md +204 -0
  96. package/assets/lithermes-plugin/skills/autoresearch/modes/core/evaluator-contract.md +108 -0
  97. package/assets/lithermes-plugin/skills/autoresearch/modes/core/stuck-detection.md +102 -0
  98. package/assets/lithermes-plugin/skills/autoresearch/modes/debug/SKILL.md +240 -0
  99. package/assets/lithermes-plugin/skills/autoresearch/modes/debug/investigation-techniques.md +254 -0
  100. package/assets/lithermes-plugin/skills/autoresearch/modes/fix/SKILL.md +176 -0
  101. package/assets/lithermes-plugin/skills/autoresearch/modes/learn/SKILL.md +96 -0
  102. package/assets/lithermes-plugin/skills/autoresearch/modes/plan/SKILL.md +291 -0
  103. package/assets/lithermes-plugin/skills/autoresearch/modes/predict/SKILL.md +271 -0
  104. package/assets/lithermes-plugin/skills/autoresearch/modes/predict/persona-templates.md +227 -0
  105. package/assets/lithermes-plugin/skills/autoresearch/modes/reason/SKILL.md +174 -0
  106. package/assets/lithermes-plugin/skills/autoresearch/modes/scenario/SKILL.md +168 -0
  107. package/assets/lithermes-plugin/skills/autoresearch/modes/scenario/dimensions.md +173 -0
  108. package/assets/lithermes-plugin/skills/autoresearch/modes/security/SKILL.md +287 -0
  109. package/assets/lithermes-plugin/skills/autoresearch/modes/security/owasp-checklist.md +156 -0
  110. package/assets/lithermes-plugin/skills/autoresearch/modes/security/stride-model.md +191 -0
  111. package/assets/lithermes-plugin/skills/autoresearch/modes/ship/SKILL.md +99 -0
  112. package/assets/lithermes-plugin/skills/autoresearch/modes/ship/type-checklists.md +158 -0
  113. package/assets/lithermes-plugin/skills/autoresearch/references/core-principles.md +75 -0
  114. package/assets/lithermes-plugin/skills/autoresearch/references/results-logging.md +55 -0
  115. package/assets/lithermes-plugin/skills/autoresearch/references/visualization-guide.md +90 -0
  116. package/assets/lithermes-plugin/skills/autoresearch/scripts/check_progress.sh +139 -0
  117. package/assets/lithermes-plugin/skills/autoresearch/scripts/init_research.py +219 -0
  118. package/assets/lithermes-plugin/skills/autoresearch/scripts/style_presets.py +104 -0
  119. package/assets/lithermes-plugin/skills/browser-drive/SKILL.md +147 -0
  120. package/assets/lithermes-plugin/skills/browser-drive/scripts/capability_probe.py +528 -0
  121. package/assets/lithermes-plugin/skills/comment-checker/SKILL.md +162 -0
  122. package/assets/lithermes-plugin/skills/debugging/SKILL.md +271 -0
  123. package/assets/lithermes-plugin/skills/debugging/references/methodology/00-setup.md +108 -0
  124. package/assets/lithermes-plugin/skills/debugging/references/methodology/02-investigate.md +122 -0
  125. package/assets/lithermes-plugin/skills/debugging/references/methodology/04-oracle-triple.md +136 -0
  126. package/assets/lithermes-plugin/skills/debugging/references/methodology/05-escalate.md +69 -0
  127. package/assets/lithermes-plugin/skills/debugging/references/methodology/06-fix.md +116 -0
  128. package/assets/lithermes-plugin/skills/debugging/references/methodology/08-qa.md +94 -0
  129. package/assets/lithermes-plugin/skills/debugging/references/methodology/09-cleanup.md +164 -0
  130. package/assets/lithermes-plugin/skills/debugging/references/methodology/partial-runtime-evidence.md +229 -0
  131. package/assets/lithermes-plugin/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
  132. package/assets/lithermes-plugin/skills/debugging/references/runtimes/go.md +252 -0
  133. package/assets/lithermes-plugin/skills/debugging/references/runtimes/native-binary.md +484 -0
  134. package/assets/lithermes-plugin/skills/debugging/references/runtimes/node.md +260 -0
  135. package/assets/lithermes-plugin/skills/debugging/references/runtimes/python.md +248 -0
  136. package/assets/lithermes-plugin/skills/debugging/references/runtimes/rust.md +234 -0
  137. package/assets/lithermes-plugin/skills/debugging/references/tools/ghidra.md +212 -0
  138. package/assets/lithermes-plugin/skills/debugging/references/tools/playwright-cli.md +194 -0
  139. package/assets/lithermes-plugin/skills/debugging/references/tools/pwndbg.md +263 -0
  140. package/assets/lithermes-plugin/skills/debugging/references/tools/pwntools.md +265 -0
  141. package/assets/lithermes-plugin/skills/deep-interview/SKILL.md +419 -0
  142. package/assets/lithermes-plugin/skills/frontend-ui-ux/SKILL.md +49 -0
  143. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/.gitattributes +2 -0
  144. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/README.md +248 -0
  145. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/_INDEX.md +191 -0
  146. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/airbnb.md +393 -0
  147. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/airtable.md +92 -0
  148. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/apple.md +250 -0
  149. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/aside.md +209 -0
  150. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/binance.md +348 -0
  151. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/bmw.md +183 -0
  152. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/brutalist-skill.md +92 -0
  153. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/bugatti.md +271 -0
  154. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/cal.md +262 -0
  155. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/claude.md +315 -0
  156. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/clay.md +307 -0
  157. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/clickhouse.md +284 -0
  158. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/clone-from-url.md +65 -0
  159. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/cohere.md +269 -0
  160. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/coinbase.md +132 -0
  161. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/composio.md +310 -0
  162. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/cursor.md +312 -0
  163. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/design-system-architecture.md +244 -0
  164. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/elevenlabs.md +268 -0
  165. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/expo.md +284 -0
  166. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/ferrari.md +317 -0
  167. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/figma.md +223 -0
  168. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/framer.md +249 -0
  169. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/gpt-tasteskill.md +74 -0
  170. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/hashicorp.md +281 -0
  171. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/ibm.md +335 -0
  172. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/image-to-code-skill.md +1228 -0
  173. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/imagegen-brandkit.md +798 -0
  174. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/imagegen-frontend-mobile.md +1465 -0
  175. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/imagegen-frontend-web.md +987 -0
  176. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/intercom.md +149 -0
  177. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/kraken.md +128 -0
  178. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/lamborghini.md +291 -0
  179. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/layout-skill.md +107 -0
  180. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/lazyweb.md +77 -0
  181. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/linear.app.md +370 -0
  182. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/lovable.md +301 -0
  183. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mastercard.md +368 -0
  184. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/meta.md +369 -0
  185. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/minimalist-skill.md +85 -0
  186. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/minimax.md +260 -0
  187. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mintlify.md +329 -0
  188. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/miro.md +111 -0
  189. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mistral.ai.md +264 -0
  190. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/mongodb.md +269 -0
  191. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/nike.md +366 -0
  192. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/notion.md +312 -0
  193. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/nvidia.md +296 -0
  194. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/ollama.md +270 -0
  195. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/opencode.ai.md +284 -0
  196. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/output-skill.md +49 -0
  197. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/pinterest.md +233 -0
  198. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/playstation.md +367 -0
  199. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/posthog.md +259 -0
  200. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/raycast.md +271 -0
  201. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/react-dev-tooling-skill.md +230 -0
  202. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/redesign-skill.md +178 -0
  203. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/renault.md +314 -0
  204. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/replicate.md +264 -0
  205. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/resend.md +306 -0
  206. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/revolut.md +188 -0
  207. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/runwayml.md +247 -0
  208. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/sanity.md +360 -0
  209. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/sentry.md +265 -0
  210. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/shopify.md +353 -0
  211. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/soft-skill.md +98 -0
  212. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/spacex.md +197 -0
  213. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/spotify.md +249 -0
  214. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/starbucks.md +583 -0
  215. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/stitch-design-example.md +121 -0
  216. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/stitch-skill.md +184 -0
  217. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/stripe.md +325 -0
  218. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/supabase.md +258 -0
  219. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/superhuman.md +255 -0
  220. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/taste-skill.md +1206 -0
  221. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/tesla.md +289 -0
  222. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/theverge.md +342 -0
  223. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/together.ai.md +266 -0
  224. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/uber.md +298 -0
  225. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/vercel.md +313 -0
  226. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/vodafone.md +426 -0
  227. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/voltagent.md +326 -0
  228. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/warp.md +256 -0
  229. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/webflow.md +95 -0
  230. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/wired.md +281 -0
  231. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/wise.md +176 -0
  232. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/x.ai.md +260 -0
  233. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/design/zapier.md +331 -0
  234. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/EVIDENCE.md +97 -0
  235. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/README.md +48 -0
  236. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/UPSTREAM.md +80 -0
  237. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-a-direction.md +64 -0
  238. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-b-execution.md +65 -0
  239. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-c-review.md +65 -0
  240. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/lane-d-memory.md +83 -0
  241. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/orchestration.md +80 -0
  242. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/routing.md +79 -0
  243. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/LICENSE +21 -0
  244. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  245. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/content-writer.md +132 -0
  246. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-builder.md +109 -0
  247. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-critic.md +89 -0
  248. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-lead.md +113 -0
  249. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-scout.md +78 -0
  250. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/design-strategist.md +121 -0
  251. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  252. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/inspiration-scout.md +107 -0
  253. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/agents/motion-designer.md +120 -0
  254. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/accessible-content/reference.md +101 -0
  255. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/adaptive-interfaces/reference.md +109 -0
  256. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/cognitive-accessibility/reference.md +107 -0
  257. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-debate/reference.md +199 -0
  258. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-debt-tracker/reference.md +174 -0
  259. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-handoff/reference.md +125 -0
  260. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-md/reference.md +106 -0
  261. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-retrospective/reference.md +266 -0
  262. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-review/reference.md +123 -0
  263. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/design-system-alignment/reference.md +120 -0
  264. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/designpowers-critique/reference.md +164 -0
  265. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/heuristic-evaluation/reference.md +85 -0
  266. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/inclusive-personas/reference.md +98 -0
  267. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/inspiration-scouting/reference.md +165 -0
  268. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/interaction-design/reference.md +122 -0
  269. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/motion-choreography/reference.md +81 -0
  270. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/research-planning/reference.md +96 -0
  271. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/responsive-patterns/reference.md +77 -0
  272. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/synthetic-user-testing/reference.md +192 -0
  273. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/taste-feedback/reference.md +165 -0
  274. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/taste-report/reference.md +78 -0
  275. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/token-architecture/reference.md +75 -0
  276. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/ui-composition/reference.md +117 -0
  277. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/usability-testing/reference.md +78 -0
  278. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/verification-before-shipping/reference.md +125 -0
  279. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/voice-and-tone/reference.md +79 -0
  280. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/designpowers/vendor/skills/writing-design-plans/reference.md +119 -0
  281. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/perfection/README.md +160 -0
  282. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/perfection/react-perf-tooling.md +127 -0
  283. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/README.md +659 -0
  284. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/charts.csv +26 -0
  285. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/colors.csv +162 -0
  286. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/icons.csv +106 -0
  287. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/landing.csv +35 -0
  288. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/products.csv +162 -0
  289. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/react-performance.csv +45 -0
  290. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/astro.csv +54 -0
  291. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/flutter.csv +53 -0
  292. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/html-tailwind.csv +56 -0
  293. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/jetpack-compose.csv +53 -0
  294. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/nextjs.csv +53 -0
  295. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/nuxt-ui.csv +51 -0
  296. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/nuxtjs.csv +59 -0
  297. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/react-native.csv +52 -0
  298. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/react.csv +54 -0
  299. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/shadcn.csv +61 -0
  300. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/svelte.csv +54 -0
  301. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/swiftui.csv +51 -0
  302. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/stacks/vue.csv +50 -0
  303. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/styles.csv +85 -0
  304. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/typography.csv +74 -0
  305. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/ui-reasoning.csv +162 -0
  306. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/ux-guidelines.csv +100 -0
  307. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/data/web-interface.csv +31 -0
  308. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/scripts/core.py +262 -0
  309. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/scripts/design_system.py +1148 -0
  310. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/corpus/ui-ux-db/scripts/search.py +114 -0
  311. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/legal/ATTRIBUTION.md +217 -0
  312. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/legal/LICENSE +21 -0
  313. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/legal/LICENSE-Apache-2.0.txt +201 -0
  314. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/_canonical-corpus/manifest.json +876 -0
  315. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/adaptive-layout.md +81 -0
  316. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/brand-and-imagery.md +84 -0
  317. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/complete-contract.md +457 -0
  318. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/composition.md +89 -0
  319. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/creative-directions.md +81 -0
  320. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/evidence-review.md +113 -0
  321. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/implementation-platforms.md +92 -0
  322. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/inclusive-interface.md +85 -0
  323. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/interaction-motion.md +87 -0
  324. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/operating-lanes.md +85 -0
  325. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/performance-delivery.md +85 -0
  326. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/product-direction.md +86 -0
  327. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/redesign-playbook.md +91 -0
  328. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/system-foundations.md +82 -0
  329. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/taste-direction.md +86 -0
  330. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/visual-language.md +85 -0
  331. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/visual-reconstruction.md +94 -0
  332. package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/LICENSE +21 -0
  333. package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/PROVENANCE.json +38 -0
  334. package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/THIRD-PARTY-NOTICE.txt +14 -0
  335. package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/design-intelligence.json +1 -0
  336. package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/import-manifest.json +1060 -0
  337. package/assets/lithermes-plugin/skills/frontend-ui-ux/schemas/design-contract-v1alpha1.schema.json +264 -0
  338. package/assets/lithermes-plugin/skills/frontend-ui-ux/schemas/design-contract-v1beta1.schema.json +268 -0
  339. package/assets/lithermes-plugin/skills/frontend-ui-ux/schemas/design-contract-v1beta2.schema.json +280 -0
  340. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design_contract_validation.py +996 -0
  341. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design_intelligence.py +128 -0
  342. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design_runtime.py +98 -0
  343. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/import_design_intelligence.py +56 -0
  344. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/source_import.py +144 -0
  345. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/source_manifest.py +65 -0
  346. package/assets/lithermes-plugin/skills/lit-burnoff/SKILL.md +448 -0
  347. package/assets/lithermes-plugin/skills/lit-burnoff-file/SKILL.md +254 -0
  348. package/assets/lithermes-plugin/skills/lit-code/SKILL.md +609 -0
  349. package/assets/lithermes-plugin/skills/lit-code/references/go/README.md +90 -0
  350. package/assets/lithermes-plugin/skills/lit-code/references/go/backend-stack.md +641 -0
  351. package/assets/lithermes-plugin/skills/lit-code/references/go/bootstrap.md +328 -0
  352. package/assets/lithermes-plugin/skills/lit-code/references/go/bubbletea-v2.md +359 -0
  353. package/assets/lithermes-plugin/skills/lit-code/references/go/cobra-stack.md +468 -0
  354. package/assets/lithermes-plugin/skills/lit-code/references/go/concurrency.md +362 -0
  355. package/assets/lithermes-plugin/skills/lit-code/references/go/data-modeling.md +329 -0
  356. package/assets/lithermes-plugin/skills/lit-code/references/go/error-handling.md +359 -0
  357. package/assets/lithermes-plugin/skills/lit-code/references/go/golangci-strict.md +236 -0
  358. package/assets/lithermes-plugin/skills/lit-code/references/go/grpc-connect.md +375 -0
  359. package/assets/lithermes-plugin/skills/lit-code/references/go/libraries.md +337 -0
  360. package/assets/lithermes-plugin/skills/lit-code/references/go/one-liners.md +202 -0
  361. package/assets/lithermes-plugin/skills/lit-code/references/go/sqlc-pgx.md +471 -0
  362. package/assets/lithermes-plugin/skills/lit-code/references/go/testing.md +467 -0
  363. package/assets/lithermes-plugin/skills/lit-code/references/go/type-patterns.md +298 -0
  364. package/assets/lithermes-plugin/skills/lit-code/references/python/README.md +314 -0
  365. package/assets/lithermes-plugin/skills/lit-code/references/python/async-anyio.md +442 -0
  366. package/assets/lithermes-plugin/skills/lit-code/references/python/data-modeling.md +233 -0
  367. package/assets/lithermes-plugin/skills/lit-code/references/python/data-processing.md +133 -0
  368. package/assets/lithermes-plugin/skills/lit-code/references/python/error-handling.md +218 -0
  369. package/assets/lithermes-plugin/skills/lit-code/references/python/fastapi-stack.md +316 -0
  370. package/assets/lithermes-plugin/skills/lit-code/references/python/httpx2-optimization.md +360 -0
  371. package/assets/lithermes-plugin/skills/lit-code/references/python/libraries.md +307 -0
  372. package/assets/lithermes-plugin/skills/lit-code/references/python/one-liners.md +268 -0
  373. package/assets/lithermes-plugin/skills/lit-code/references/python/orjson-stack.md +378 -0
  374. package/assets/lithermes-plugin/skills/lit-code/references/python/pydantic-ai.md +285 -0
  375. package/assets/lithermes-plugin/skills/lit-code/references/python/pyproject-strict.md +232 -0
  376. package/assets/lithermes-plugin/skills/lit-code/references/python/textual-tui.md +201 -0
  377. package/assets/lithermes-plugin/skills/lit-code/references/python/type-patterns.md +176 -0
  378. package/assets/lithermes-plugin/skills/lit-code/references/rust/README.md +317 -0
  379. package/assets/lithermes-plugin/skills/lit-code/references/rust/async-tokio.md +299 -0
  380. package/assets/lithermes-plugin/skills/lit-code/references/rust/axum-stack.md +467 -0
  381. package/assets/lithermes-plugin/skills/lit-code/references/rust/cargo-strict.md +317 -0
  382. package/assets/lithermes-plugin/skills/lit-code/references/rust/clap-stack.md +409 -0
  383. package/assets/lithermes-plugin/skills/lit-code/references/rust/concurrency.md +375 -0
  384. package/assets/lithermes-plugin/skills/lit-code/references/rust/libraries.md +439 -0
  385. package/assets/lithermes-plugin/skills/lit-code/references/rust/one-liners.md +291 -0
  386. package/assets/lithermes-plugin/skills/lit-code/references/rust/proptest-insta.md +429 -0
  387. package/assets/lithermes-plugin/skills/lit-code/references/rust/type-state.md +354 -0
  388. package/assets/lithermes-plugin/skills/lit-code/references/rust/unsafe-discipline.md +250 -0
  389. package/assets/lithermes-plugin/skills/lit-code/references/rust/zero-cost-safety.md +527 -0
  390. package/assets/lithermes-plugin/skills/lit-code/references/rust-ub/README.md +289 -0
  391. package/assets/lithermes-plugin/skills/lit-code/references/rust-ub/miri-sanitizers-loom.md +411 -0
  392. package/assets/lithermes-plugin/skills/lit-code/references/rust-ub/ub-taxonomy.md +269 -0
  393. package/assets/lithermes-plugin/skills/lit-code/references/typescript/README.md +195 -0
  394. package/assets/lithermes-plugin/skills/lit-code/references/typescript/backend-hono.md +672 -0
  395. package/assets/lithermes-plugin/skills/lit-code/references/typescript/bootstrap.md +199 -0
  396. package/assets/lithermes-plugin/skills/lit-code/references/typescript/data-modeling.md +202 -0
  397. package/assets/lithermes-plugin/skills/lit-code/references/typescript/error-handling.md +169 -0
  398. package/assets/lithermes-plugin/skills/lit-code/references/typescript/tsconfig-strict.md +152 -0
  399. package/assets/lithermes-plugin/skills/lit-code/references/typescript/type-patterns.md +196 -0
  400. package/assets/lithermes-plugin/skills/lit-code/scripts/go/check-no-excuse-rules.sh +173 -0
  401. package/assets/lithermes-plugin/skills/lit-code/scripts/go/new-project.py +138 -0
  402. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/.editorconfig +13 -0
  403. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/.golangci.yml +95 -0
  404. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/AGENTS.md.tmpl +24 -0
  405. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/README.md.tmpl +12 -0
  406. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/Taskfile.yml +40 -0
  407. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/ci.yml +37 -0
  408. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/config.go +24 -0
  409. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/gitignore +15 -0
  410. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/main.go.tmpl +22 -0
  411. package/assets/lithermes-plugin/skills/lit-code/scripts/go/templates/run.go +15 -0
  412. package/assets/lithermes-plugin/skills/lit-code/scripts/python/check-no-excuse-rules.py +687 -0
  413. package/assets/lithermes-plugin/skills/lit-code/scripts/python/new-project.py +172 -0
  414. package/assets/lithermes-plugin/skills/lit-code/scripts/python/new-script.py +116 -0
  415. package/assets/lithermes-plugin/skills/lit-code/scripts/rust/check-no-excuse-rules.py +296 -0
  416. package/assets/lithermes-plugin/skills/lit-code/scripts/rust/check-no-excuse-rules.sh +158 -0
  417. package/assets/lithermes-plugin/skills/lit-code/scripts/rust/new-project.py +175 -0
  418. package/assets/lithermes-plugin/skills/lit-code/scripts/typescript/check-no-excuse-rules.ts +282 -0
  419. package/assets/lithermes-plugin/skills/lit-code/scripts/typescript/new-project.ts +177 -0
  420. package/assets/lithermes-plugin/skills/lit-commit/SKILL.md +242 -0
  421. package/assets/lithermes-plugin/skills/lit-comprehend/SKILL.md +259 -0
  422. package/assets/lithermes-plugin/skills/lit-comprehend/assets/explainer-scaffold.html +123 -0
  423. package/assets/lithermes-plugin/skills/lit-comprehend/references/artifact-template.md +205 -0
  424. package/assets/lithermes-plugin/skills/lit-comprehend/references/micro-worlds.md +139 -0
  425. package/assets/lithermes-plugin/skills/lit-comprehend/scripts/verify-explainer.py +324 -0
  426. package/assets/lithermes-plugin/skills/lit-crucible/SKILL.md +315 -0
  427. package/assets/lithermes-plugin/skills/lit-handoff/ORIGIN.json +23 -0
  428. package/assets/lithermes-plugin/skills/lit-handoff/SKILL.md +145 -0
  429. package/assets/lithermes-plugin/skills/lit-init/SKILL.md +329 -0
  430. package/assets/lithermes-plugin/skills/lit-korean/SKILL.md +237 -0
  431. package/assets/lithermes-plugin/skills/lit-korean/references/quick-rules.md +24 -0
  432. package/assets/lithermes-plugin/skills/lit-korean/references/safety-checklist.md +23 -0
  433. package/assets/lithermes-plugin/skills/lit-plan/SKILL.md +596 -0
  434. package/assets/lithermes-plugin/skills/lit-recap/SKILL.md +183 -0
  435. package/assets/lithermes-plugin/skills/lit-scientific-visualization/ORIGIN.json +32 -0
  436. package/assets/lithermes-plugin/skills/lit-scientific-visualization/SKILL.md +170 -0
  437. package/assets/lithermes-plugin/skills/litgoal/.gitkeep +0 -0
  438. package/assets/lithermes-plugin/skills/litgoal/SKILL.md +372 -0
  439. package/assets/lithermes-plugin/skills/litresearch/ATTRIBUTION.md +50 -0
  440. package/assets/lithermes-plugin/skills/litresearch/SKILL.md +593 -0
  441. package/assets/lithermes-plugin/skills/litwork/SKILL.md +419 -0
  442. package/assets/lithermes-plugin/skills/lsp/SKILL.md +165 -0
  443. package/assets/lithermes-plugin/skills/lsp-setup/SKILL.md +265 -0
  444. package/assets/lithermes-plugin/skills/lsp-setup/references/bash/README.md +68 -0
  445. package/assets/lithermes-plugin/skills/lsp-setup/references/c-cpp/README.md +78 -0
  446. package/assets/lithermes-plugin/skills/lsp-setup/references/csharp/README.md +90 -0
  447. package/assets/lithermes-plugin/skills/lsp-setup/references/dart/README.md +59 -0
  448. package/assets/lithermes-plugin/skills/lsp-setup/references/elixir/README.md +61 -0
  449. package/assets/lithermes-plugin/skills/lsp-setup/references/go/README.md +63 -0
  450. package/assets/lithermes-plugin/skills/lsp-setup/references/haskell/README.md +69 -0
  451. package/assets/lithermes-plugin/skills/lsp-setup/references/java/README.md +70 -0
  452. package/assets/lithermes-plugin/skills/lsp-setup/references/julia/README.md +70 -0
  453. package/assets/lithermes-plugin/skills/lsp-setup/references/kotlin/README.md +72 -0
  454. package/assets/lithermes-plugin/skills/lsp-setup/references/lua/README.md +68 -0
  455. package/assets/lithermes-plugin/skills/lsp-setup/references/php/README.md +61 -0
  456. package/assets/lithermes-plugin/skills/lsp-setup/references/python/README.md +73 -0
  457. package/assets/lithermes-plugin/skills/lsp-setup/references/ruby/README.md +67 -0
  458. package/assets/lithermes-plugin/skills/lsp-setup/references/rust/README.md +65 -0
  459. package/assets/lithermes-plugin/skills/lsp-setup/references/swift/README.md +64 -0
  460. package/assets/lithermes-plugin/skills/lsp-setup/references/terraform/README.md +66 -0
  461. package/assets/lithermes-plugin/skills/lsp-setup/references/typescript/README.md +82 -0
  462. package/assets/lithermes-plugin/skills/lsp-setup/references/yaml/README.md +65 -0
  463. package/assets/lithermes-plugin/skills/lsp-setup/references/zig/README.md +59 -0
  464. package/assets/lithermes-plugin/skills/lsp-setup/scripts/detect-lsp.ts +221 -0
  465. package/assets/lithermes-plugin/skills/lsp-setup/scripts/lsp-server-table.ts +146 -0
  466. package/assets/lithermes-plugin/skills/lsp-setup/scripts/tsconfig.json +18 -0
  467. package/assets/lithermes-plugin/skills/lsp-setup/scripts/verify-lsp.ts +252 -0
  468. package/assets/lithermes-plugin/skills/refactor/SKILL.md +896 -0
  469. package/assets/lithermes-plugin/skills/review-work/SKILL.md +450 -0
  470. package/assets/lithermes-plugin/skills/rules/SKILL.md +194 -0
  471. package/assets/lithermes-plugin/skills/skill-observer/SKILL.md +190 -0
  472. package/assets/lithermes-plugin/skills/skill-observer/references/review-contract.md +77 -0
  473. package/assets/lithermes-plugin/skills/start-work/SKILL.md +550 -0
  474. package/assets/lithermes-plugin/skills/structural-search/SKILL.md +274 -0
  475. package/assets/lithermes-plugin/skills/visual-qa/SKILL.md +48 -0
  476. package/assets/lithermes-plugin/skills/visual-qa/references/capture-playbook.md +133 -0
  477. package/assets/lithermes-plugin/skills/visual-qa/references/complete-contract.md +522 -0
  478. package/assets/lithermes-plugin/skills/visual-qa/schemas/evidence-manifest-v1alpha1.schema.json +135 -0
  479. package/assets/lithermes-plugin/skills/visual-qa/schemas/evidence-manifest-v1beta1.schema.json +110 -0
  480. package/assets/lithermes-plugin/skills/visual-qa/schemas/review-receipt-v1alpha1.schema.json +49 -0
  481. package/assets/lithermes-plugin/skills/visual-qa/scripts/contract_checks.py +71 -0
  482. package/assets/lithermes-plugin/skills/visual-qa/scripts/evidence_contract.py +288 -0
  483. package/assets/lithermes-plugin/skills/visual-qa/scripts/png_runtime.py +379 -0
  484. package/assets/lithermes-plugin/skills/visual-qa/scripts/review_contract.py +151 -0
  485. package/assets/lithermes-plugin/skills/visual-qa/scripts/tier_checks.py +190 -0
  486. package/assets/lithermes-plugin/skills/visual-qa/scripts/tier_contract.py +103 -0
  487. package/assets/lithermes-plugin/skills/visual-qa/scripts/tui_runtime.py +170 -0
  488. package/assets/lithermes-plugin/skills/visual-qa/scripts/visual_contracts.py +31 -0
  489. package/assets/lithermes-plugin/skills/visual-qa/scripts/visual_qa.py +79 -0
  490. package/assets/lithermes-plugin/skills/wikify/LICENSE +21 -0
  491. package/assets/lithermes-plugin/skills/wikify/ORIGIN.json +12 -0
  492. package/assets/lithermes-plugin/skills/wikify/SKILL.md +192 -0
  493. package/assets/lithermes-plugin/skills/wikify/assets/home-template.md +44 -0
  494. package/assets/lithermes-plugin/skills/wikify/assets/maintenance-report-template.md +46 -0
  495. package/assets/lithermes-plugin/skills/wikify/assets/paper-source-note-template.md +138 -0
  496. package/assets/lithermes-plugin/skills/wikify/assets/source-note-template.md +45 -0
  497. package/assets/lithermes-plugin/skills/wikify/assets/wiki-rules-template.md +117 -0
  498. package/assets/lithermes-plugin/skills/wikify/modes/ingest/SKILL.md +24 -0
  499. package/assets/lithermes-plugin/skills/wikify/modes/init/SKILL.md +26 -0
  500. package/assets/lithermes-plugin/skills/wikify/modes/lint/SKILL.md +30 -0
  501. package/assets/lithermes-plugin/skills/wikify/modes/query/SKILL.md +22 -0
  502. package/assets/lithermes-plugin/skills/wikify/modes/save/SKILL.md +32 -0
  503. package/assets/lithermes-plugin/skills/wikify/references/full-contract.md +761 -0
  504. package/assets/lithermes-plugin/uiux_runtime_common.py +117 -0
  505. package/assets/lithermes-plugin/vendor/NOTICE.md +21 -0
  506. package/assets/lithermes-plugin/vendor/handoff/SKILL.md +199 -0
  507. package/assets/lithermes-plugin/vendor/handoff/evals/evals.json +154 -0
  508. package/assets/lithermes-plugin/vendor/handoff/examples/HANDOFF-example-generic-auth-refactor.md +97 -0
  509. package/assets/lithermes-plugin/vendor/handoff/templates/HANDOFF.md +121 -0
  510. package/assets/lithermes-plugin/vendor/licenses/022_handoff-MIT.txt +21 -0
  511. package/assets/lithermes-plugin/vendor/licenses/045_scientific-visualization-MIT.txt +21 -0
  512. package/assets/lithermes-plugin/vendor/provenance/022_handoff.md +16 -0
  513. package/assets/lithermes-plugin/vendor/provenance/045_scientific-visualization.md +18 -0
  514. package/assets/lithermes-plugin/vendor/scientific-visualization/SKILL.md +283 -0
  515. package/assets/lithermes-plugin/vendor/scientific-visualization/assets/color_palettes.py +197 -0
  516. package/assets/lithermes-plugin/vendor/scientific-visualization/assets/nature.mplstyle +75 -0
  517. package/assets/lithermes-plugin/vendor/scientific-visualization/assets/presentation.mplstyle +74 -0
  518. package/assets/lithermes-plugin/vendor/scientific-visualization/assets/publication.mplstyle +78 -0
  519. package/assets/lithermes-plugin/vendor/scientific-visualization/evals/evals.json +158 -0
  520. package/assets/lithermes-plugin/vendor/scientific-visualization/references/color_palettes.md +380 -0
  521. package/assets/lithermes-plugin/vendor/scientific-visualization/references/journal_requirements.md +359 -0
  522. package/assets/lithermes-plugin/vendor/scientific-visualization/references/matplotlib_examples.md +608 -0
  523. package/assets/lithermes-plugin/vendor/scientific-visualization/references/mdanalysis_martini_visualization.md +85 -0
  524. package/assets/lithermes-plugin/vendor/scientific-visualization/references/publication_guidelines.md +217 -0
  525. package/assets/lithermes-plugin/vendor/scientific-visualization/references/seaborn_for_publications.md +293 -0
  526. package/assets/lithermes-plugin/vendor/scientific-visualization/scripts/figure_export.py +238 -0
  527. package/assets/lithermes-plugin/vendor/scientific-visualization/scripts/style_presets.py +467 -0
  528. package/assets/lithermes-plugin/vendor/scientific-visualization/tests/test_figure_export.py +51 -0
  529. package/assets/lithermes-plugin/vendor/scientific-visualization/tests/test_style_presets.py +114 -0
  530. package/bin/lithermes.js +8 -0
  531. package/package.json +58 -0
  532. package/readme-assets/badge-license.svg +1 -0
  533. package/readme-assets/badge-version.svg +1 -0
  534. package/readme-assets/cover.webp +0 -0
  535. package/readme-assets/lithermes-clay-icon.png +0 -0
  536. package/readme-assets/lithermes-wordmark.svg +5 -0
  537. package/src/cli.js +396 -0
  538. package/src/lib/autoUpdate.js +4 -0
  539. package/src/lib/canonicalCorpus.js +436 -0
  540. package/src/lib/check.js +200 -0
  541. package/src/lib/config.js +229 -0
  542. package/src/lib/files.js +126 -0
  543. package/src/lib/hermesDiscovery.js +122 -0
  544. package/src/lib/hud.js +135 -0
  545. package/src/lib/install.js +559 -0
  546. package/src/lib/litMark.js +68 -0
  547. package/src/lib/modelConfig.js +431 -0
  548. package/src/lib/modelConfigBoundary.js +206 -0
  549. package/src/lib/modelPrompt.js +201 -0
  550. package/src/lib/modelRoutePolicy.js +379 -0
  551. package/src/lib/patch.js +153 -0
  552. package/src/lib/skillLoop.js +62 -0
  553. package/src/lib/skillPayload.js +306 -0
  554. package/src/lib/skins.js +274 -0
  555. package/src/lib/spinner.js +193 -0
  556. package/src/lib/updateNotifier.js +1133 -0
  557. package/src/lib/updateNotifierWorker.js +9 -0
@@ -0,0 +1,608 @@
1
+ ## Table of Contents
2
+
3
+ - [Overview](#overview)
4
+ - [Setup and Configuration](#setup-and-configuration)
5
+ - [Publication-Quality Matplotlib Configuration](#publication-quality-matplotlib-configuration)
6
+ - [Helper Function for Saving](#helper-function-for-saving)
7
+ - [Example 1: Line Plot with Error Bars](#example-1-line-plot-with-error-bars)
8
+ - [Example 2: Multi-Panel Figure](#example-2-multi-panel-figure)
9
+ - [Example 3: Box Plot with Individual Points](#example-3-box-plot-with-individual-points)
10
+ - [Example 4: Heatmap with Colorbar](#example-4-heatmap-with-colorbar)
11
+ - [Example 5: Seaborn Violin Plot](#example-5-seaborn-violin-plot)
12
+ - [Example 6: Scientific Scatter with Regression](#example-6-scientific-scatter-with-regression)
13
+ - [Example 7: Time Series with Shaded Error](#example-7-time-series-with-shaded-error)
14
+ - [Example 8: Plotly Interactive Figure](#example-8-plotly-interactive-figure)
15
+ - [Example 9: Grouped Bar Plot with Significance](#example-9-grouped-bar-plot-with-significance)
16
+ - [Example 10: Publication-Ready Figure for Nature](#example-10-publication-ready-figure-for-nature)
17
+ - [Tips for Each Library](#tips-for-each-library)
18
+ - [Matplotlib](#matplotlib)
19
+ - [Seaborn](#seaborn)
20
+ - [Plotly](#plotly)
21
+ - [Common Workflow](#common-workflow)
22
+ - [Resources](#resources)
23
+
24
+ # Publication-Ready Matplotlib Examples
25
+
26
+ > Current skill contract: call `rcparams()` before figure creation, keep grids off unless requested, prefer `layout='constrained'`, use `style_legend()` for black-border legends, use `ensure_zero_origin_ticks()` for zero-baseline axes, and export rasters at 600+ DPI with `bbox_inches='tight'`. Upgrade any legacy low-DPI, frameless-legend, or direct-rcParams snippets to the current helpers before use.
27
+
28
+ > Scatter-only warning: if the data are independent observations, replicate clouds, correlations, or embeddings, use `plot_scatter_only()`/`ax.scatter()` and do not connect points with lines. Lines are only for ordered trajectories or justified fitted/model curves.
29
+
30
+ ## Overview
31
+
32
+ This reference provides practical code examples for creating publication-ready scientific figures using Matplotlib, Seaborn, and Plotly. All examples follow best practices from `publication_guidelines.md` and use colorblind-friendly palettes from `color_palettes.md`.
33
+
34
+ ## Setup and Configuration
35
+
36
+ ### Publication-Quality Matplotlib Configuration
37
+
38
+ ```python
39
+ import matplotlib.pyplot as plt
40
+ import numpy as np
41
+ from style_presets import rcparams
42
+
43
+ # Set publication quality parameters from the skill single source of truth.
44
+ rcparams()
45
+ ```
46
+
47
+ ### Helper Function for Saving
48
+
49
+ ```python
50
+ from figure_export import save_publication_figure
51
+ ```
52
+
53
+ ## Example 1: Line Plot with Error Bars
54
+
55
+ ```python
56
+ import matplotlib.pyplot as plt
57
+ import numpy as np
58
+
59
+ # Generate sample data
60
+ x = np.linspace(0, 10, 50)
61
+ y1 = 2 * x + 1 + np.random.normal(0, 1, 50)
62
+ y2 = 1.5 * x + 2 + np.random.normal(0, 1.2, 50)
63
+
64
+ # Calculate means and standard errors for binned data
65
+ bins = np.linspace(0, 10, 11)
66
+ y1_mean = [y1[(x >= bins[i]) & (x < bins[i+1])].mean() for i in range(len(bins)-1)]
67
+ y1_sem = [y1[(x >= bins[i]) & (x < bins[i+1])].std() /
68
+ np.sqrt(len(y1[(x >= bins[i]) & (x < bins[i+1])]))
69
+ for i in range(len(bins)-1)]
70
+ x_binned = (bins[:-1] + bins[1:]) / 2
71
+
72
+ # Create figure with appropriate size (single column width = 3.5 inches)
73
+ fig, ax = plt.subplots(figsize=(3.5, 2.5))
74
+
75
+ # Plot with error bars
76
+ ax.errorbar(x_binned, y1_mean, yerr=y1_sem,
77
+ marker='o', markersize=4, capsize=3, capthick=0.5,
78
+ label='Condition A', linewidth=1.5)
79
+
80
+ # Add labels with units
81
+ ax.set_xlabel('Time (hours)')
82
+ ax.set_ylabel('Fluorescence intensity (a.u.)')
83
+
84
+ # Add legend
85
+ ax.legend(frameon=True, edgecolor='black', framealpha=1, loc='upper left')
86
+
87
+ # Remove top and right spines
88
+ ax.spines['top'].set_visible(False)
89
+ ax.spines['right'].set_visible(False)
90
+
91
+ # Tight layout
92
+ fig.tight_layout()
93
+
94
+ # Save
95
+ save_publication_figure(fig, 'line_plot_with_errors')
96
+ plt.show()
97
+ ```
98
+
99
+ ## Example 2: Multi-Panel Figure
100
+
101
+ ```python
102
+ import matplotlib.pyplot as plt
103
+ import numpy as np
104
+ from string import ascii_uppercase
105
+
106
+ # Create figure with multiple panels (double column width = 7 inches)
107
+ fig = plt.figure(figsize=(7, 4))
108
+
109
+ # Define grid for panels
110
+ gs = fig.add_gridspec(2, 3, hspace=0.4, wspace=0.4,
111
+ left=0.08, right=0.98, top=0.95, bottom=0.08)
112
+
113
+ # Panel A: Line plot
114
+ ax_a = fig.add_subplot(gs[0, :2])
115
+ x = np.linspace(0, 10, 100)
116
+ for i, offset in enumerate([0, 0.5, 1.0]):
117
+ ax_a.plot(x, np.sin(x) + offset, label=f'Dataset {i+1}')
118
+ ax_a.set_xlabel('Time (s)')
119
+ ax_a.set_ylabel('Amplitude (V)')
120
+ ax_a.legend(frameon=True, edgecolor='black', framealpha=1, fontsize=6)
121
+ ax_a.spines['top'].set_visible(False)
122
+ ax_a.spines['right'].set_visible(False)
123
+
124
+ # Panel B: Bar plot
125
+ ax_b = fig.add_subplot(gs[0, 2])
126
+ categories = ['Control', 'Treatment\nA', 'Treatment\nB']
127
+ values = [100, 125, 140]
128
+ errors = [5, 8, 6]
129
+ ax_b.bar(categories, values, yerr=errors, capsize=3,
130
+ color=['#0072B2', '#E69F00', '#009E73'], alpha=0.8)
131
+ ax_b.set_ylabel('Response (%)')
132
+ ax_b.spines['top'].set_visible(False)
133
+ ax_b.spines['right'].set_visible(False)
134
+ ax_b.set_ylim(0, 160)
135
+
136
+ # Panel C: Scatter plot
137
+ ax_c = fig.add_subplot(gs[1, 0])
138
+ x = np.random.randn(100)
139
+ y = 2*x + np.random.randn(100)
140
+ ax_c.scatter(x, y, s=10, alpha=0.6, color='#0072B2')
141
+ ax_c.set_xlabel('Variable X')
142
+ ax_c.set_ylabel('Variable Y')
143
+ ax_c.spines['top'].set_visible(False)
144
+ ax_c.spines['right'].set_visible(False)
145
+
146
+ # Panel D: Heatmap
147
+ ax_d = fig.add_subplot(gs[1, 1:])
148
+ data = np.random.randn(10, 20)
149
+ im = ax_d.imshow(data, cmap='viridis', aspect='auto')
150
+ ax_d.set_xlabel('Sample number')
151
+ ax_d.set_ylabel('Feature')
152
+ cbar = plt.colorbar(im, ax=ax_d, fraction=0.046, pad=0.04)
153
+ cbar.set_label('Intensity (a.u.)', rotation=270, labelpad=12)
154
+
155
+ # Add panel labels
156
+ panels = [ax_a, ax_b, ax_c, ax_d]
157
+ for i, ax in enumerate(panels):
158
+ ax.text(-0.15, 1.05, ascii_uppercase[i], transform=ax.transAxes,
159
+ fontsize=10, fontweight='bold', va='top')
160
+
161
+ save_publication_figure(fig, 'multi_panel_figure')
162
+ plt.show()
163
+ ```
164
+
165
+ ## Example 3: Box Plot with Individual Points
166
+
167
+ ```python
168
+ import matplotlib.pyplot as plt
169
+ import numpy as np
170
+
171
+ # Generate sample data
172
+ np.random.seed(42)
173
+ data = [np.random.normal(100, 15, 30),
174
+ np.random.normal(120, 20, 30),
175
+ np.random.normal(140, 18, 30),
176
+ np.random.normal(110, 22, 30)]
177
+
178
+ fig, ax = plt.subplots(figsize=(3.5, 3))
179
+
180
+ # Create box plot
181
+ bp = ax.boxplot(data, widths=0.5, patch_artist=True,
182
+ showfliers=False, # We'll add points manually
183
+ boxprops=dict(facecolor='lightgray', edgecolor='black', linewidth=0.8),
184
+ medianprops=dict(color='black', linewidth=1.5),
185
+ whiskerprops=dict(linewidth=0.8),
186
+ capprops=dict(linewidth=0.8))
187
+
188
+ # Overlay individual points
189
+ colors = ['#0072B2', '#E69F00', '#009E73', '#D55E00']
190
+ for i, (d, color) in enumerate(zip(data, colors)):
191
+ # Add jitter to x positions
192
+ x = np.random.normal(i+1, 0.04, size=len(d))
193
+ ax.scatter(x, d, alpha=0.4, s=8, color=color)
194
+
195
+ # Customize
196
+ ax.set_xticklabels(['Control', 'Treatment A', 'Treatment B', 'Treatment C'])
197
+ ax.set_ylabel('Cell count')
198
+ ax.spines['top'].set_visible(False)
199
+ ax.spines['right'].set_visible(False)
200
+ ax.set_ylim(50, 200)
201
+
202
+ fig.tight_layout()
203
+ save_publication_figure(fig, 'boxplot_with_points')
204
+ plt.show()
205
+ ```
206
+
207
+ ## Example 4: Heatmap with Colorbar
208
+
209
+ ```python
210
+ import matplotlib.pyplot as plt
211
+ import numpy as np
212
+
213
+ # Generate correlation matrix
214
+ np.random.seed(42)
215
+ n = 10
216
+ A = np.random.randn(n, n)
217
+ corr_matrix = np.corrcoef(A)
218
+
219
+ # Create figure
220
+ fig, ax = plt.subplots(figsize=(4, 3.5))
221
+
222
+ # Plot heatmap
223
+ im = ax.imshow(corr_matrix, cmap='RdBu_r', vmin=-1, vmax=1, aspect='auto')
224
+
225
+ # Add colorbar
226
+ cbar = plt.colorbar(im, ax=ax, fraction=0.046, pad=0.04)
227
+ cbar.set_label('Correlation coefficient', rotation=270, labelpad=15)
228
+
229
+ # Set ticks and labels
230
+ gene_names = [f'Gene{i+1}' for i in range(n)]
231
+ ax.set_xticks(np.arange(n))
232
+ ax.set_yticks(np.arange(n))
233
+ ax.set_xticklabels(gene_names, rotation=45, ha='right')
234
+ ax.set_yticklabels(gene_names)
235
+
236
+ # Add grid
237
+ ax.set_xticks(np.arange(n)-.5, minor=True)
238
+ ax.set_yticks(np.arange(n)-.5, minor=True)
239
+ ax.grid(which='minor', color='white', linestyle='-', linewidth=0.5)
240
+
241
+ fig.tight_layout()
242
+ save_publication_figure(fig, 'correlation_heatmap')
243
+ plt.show()
244
+ ```
245
+
246
+ ## Example 5: Seaborn Violin Plot
247
+
248
+ ```python
249
+ import matplotlib.pyplot as plt
250
+ import seaborn as sns
251
+ import pandas as pd
252
+ import numpy as np
253
+
254
+ # Generate sample data
255
+ np.random.seed(42)
256
+ data = pd.DataFrame({
257
+ 'condition': np.repeat(['Control', 'Drug A', 'Drug B'], 50),
258
+ 'value': np.concatenate([
259
+ np.random.normal(100, 15, 50),
260
+ np.random.normal(120, 20, 50),
261
+ np.random.normal(140, 18, 50)
262
+ ])
263
+ })
264
+
265
+ # Set style
266
+ sns.set_style('ticks')
267
+ sns.set_palette(['#0072B2', '#E69F00', '#009E73'])
268
+
269
+ fig, ax = plt.subplots(figsize=(3.5, 3))
270
+
271
+ # Create violin plot
272
+ sns.violinplot(data=data, x='condition', y='value', ax=ax,
273
+ inner='box', linewidth=0.8)
274
+
275
+ # Add strip plot
276
+ sns.stripplot(data=data, x='condition', y='value', ax=ax,
277
+ size=2, alpha=0.3, color='black')
278
+
279
+ # Customize
280
+ ax.set_xlabel('')
281
+ ax.set_ylabel('Expression level (AU)')
282
+ ax.spines['top'].set_visible(False)
283
+ ax.spines['right'].set_visible(False)
284
+
285
+ fig.tight_layout()
286
+ save_publication_figure(fig, 'violin_plot')
287
+ plt.show()
288
+ ```
289
+
290
+ ## Example 6: Scientific Scatter with Regression
291
+
292
+ ```python
293
+ import matplotlib.pyplot as plt
294
+ import numpy as np
295
+ from scipy import stats
296
+
297
+ # Generate data with correlation
298
+ np.random.seed(42)
299
+ x = np.random.randn(100)
300
+ y = 2.5 * x + np.random.randn(100) * 0.8
301
+
302
+ # Calculate regression
303
+ slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
304
+
305
+ # Create figure
306
+ fig, ax = plt.subplots(figsize=(3.5, 3.5))
307
+
308
+ # Scatter plot
309
+ from style_presets import plot_scatter_only
310
+
311
+ plot_scatter_only(ax, x, y, s=15, alpha=0.6, color='#0072B2')
312
+
313
+ # Regression line
314
+ x_line = np.array([x.min(), x.max()])
315
+ y_line = slope * x_line + intercept
316
+ ax.plot(x_line, y_line, 'r-', linewidth=1.5, label=f'y = {slope:.2f}x + {intercept:.2f}')
317
+
318
+ # Add statistics text
319
+ stats_text = f'$R^2$ = {r_value**2:.3f}\n$p$ < 0.001' if p_value < 0.001 else f'$R^2$ = {r_value**2:.3f}\n$p$ = {p_value:.3f}'
320
+ ax.text(0.05, 0.95, stats_text, transform=ax.transAxes,
321
+ verticalalignment='top', fontsize=7,
322
+ bbox=dict(boxstyle='round', facecolor='white', alpha=0.8, edgecolor='gray', linewidth=0.5))
323
+
324
+ # Customize
325
+ ax.set_xlabel('Predictor variable')
326
+ ax.set_ylabel('Response variable')
327
+ ax.spines['top'].set_visible(False)
328
+ ax.spines['right'].set_visible(False)
329
+
330
+ fig.tight_layout()
331
+ save_publication_figure(fig, 'scatter_regression')
332
+ plt.show()
333
+ ```
334
+
335
+ ## Example 7: Time Series with Shaded Error
336
+
337
+ ```python
338
+ import matplotlib.pyplot as plt
339
+ import numpy as np
340
+
341
+ # Generate time series data
342
+ np.random.seed(42)
343
+ time = np.linspace(0, 24, 100)
344
+ n_replicates = 5
345
+
346
+ # Simulate multiple replicates
347
+ data = np.array([10 * np.exp(-time/10) + np.random.normal(0, 0.5, 100)
348
+ for _ in range(n_replicates)])
349
+
350
+ # Calculate mean and SEM
351
+ mean = data.mean(axis=0)
352
+ sem = data.std(axis=0) / np.sqrt(n_replicates)
353
+
354
+ # Create figure
355
+ fig, ax = plt.subplots(figsize=(4, 2.5))
356
+
357
+ # Plot mean line
358
+ ax.plot(time, mean, linewidth=1.5, color='#0072B2', label='Mean ± SEM')
359
+
360
+ # Add shaded error region
361
+ ax.fill_between(time, mean - sem, mean + sem,
362
+ alpha=0.3, color='#0072B2', linewidth=0)
363
+
364
+ # Customize
365
+ ax.set_xlabel('Time (hours)')
366
+ ax.set_ylabel('Concentration (μM)')
367
+ ax.legend(frameon=True, edgecolor='black', framealpha=1, loc='upper right')
368
+ ax.spines['top'].set_visible(False)
369
+ ax.spines['right'].set_visible(False)
370
+ ax.set_xlim(0, 24)
371
+ ax.set_ylim(0, 12)
372
+
373
+ fig.tight_layout()
374
+ save_publication_figure(fig, 'timeseries_shaded')
375
+ plt.show()
376
+ ```
377
+
378
+ ## Example 8: Plotly Interactive Figure
379
+
380
+ ```python
381
+ import plotly.graph_objects as go
382
+ import numpy as np
383
+
384
+ # Generate data
385
+ np.random.seed(42)
386
+ x = np.random.randn(100)
387
+ y = 2*x + np.random.randn(100)
388
+ colors = np.random.choice(['Group A', 'Group B'], 100)
389
+
390
+ # Okabe-Ito colors for Plotly
391
+ okabe_ito_plotly = ['#E69F00', '#56B4E9']
392
+
393
+ # Create figure
394
+ fig = go.Figure()
395
+
396
+ for group, color in zip(['Group A', 'Group B'], okabe_ito_plotly):
397
+ mask = colors == group
398
+ fig.add_trace(go.Scatter(
399
+ x=x[mask], y=y[mask],
400
+ mode='markers',
401
+ name=group,
402
+ marker=dict(size=6, color=color, opacity=0.6)
403
+ ))
404
+
405
+ # Update layout for publication quality
406
+ fig.update_layout(
407
+ width=500,
408
+ height=400,
409
+ font=dict(family='Arial, sans-serif', size=10),
410
+ plot_bgcolor='white',
411
+ xaxis=dict(
412
+ title='Variable X',
413
+ showgrid=False,
414
+ showline=True,
415
+ linewidth=1,
416
+ linecolor='black',
417
+ mirror=False
418
+ ),
419
+ yaxis=dict(
420
+ title='Variable Y',
421
+ showgrid=False,
422
+ showline=True,
423
+ linewidth=1,
424
+ linecolor='black',
425
+ mirror=False
426
+ ),
427
+ legend=dict(
428
+ x=0.02,
429
+ y=0.98,
430
+ bgcolor='rgba(255,255,255,0.8)',
431
+ bordercolor='gray',
432
+ borderwidth=0.5
433
+ )
434
+ )
435
+
436
+ # Save as static image (requires kaleido)
437
+ fig.write_image('plotly_scatter.png', width=500, height=400, scale=3) # scale=3 gives ~300 DPI
438
+ fig.write_html('plotly_scatter.html') # Interactive version
439
+
440
+ fig.show()
441
+ ```
442
+
443
+ ## Example 9: Grouped Bar Plot with Significance
444
+
445
+ ```python
446
+ import matplotlib.pyplot as plt
447
+ import numpy as np
448
+
449
+ # Data
450
+ categories = ['WT', 'Mutant A', 'Mutant B']
451
+ control_means = [100, 85, 70]
452
+ control_sem = [5, 6, 5]
453
+ treatment_means = [100, 120, 140]
454
+ treatment_sem = [6, 8, 9]
455
+
456
+ x = np.arange(len(categories))
457
+ width = 0.35
458
+
459
+ fig, ax = plt.subplots(figsize=(3.5, 3))
460
+
461
+ # Create bars
462
+ bars1 = ax.bar(x - width/2, control_means, width, yerr=control_sem,
463
+ capsize=3, label='Control', color='#0072B2', alpha=0.8)
464
+ bars2 = ax.bar(x + width/2, treatment_means, width, yerr=treatment_sem,
465
+ capsize=3, label='Treatment', color='#E69F00', alpha=0.8)
466
+
467
+ # Add significance markers
468
+ def add_significance_bar(ax, x1, x2, y, h, text):
469
+ """Add significance bar between two bars"""
470
+ ax.plot([x1, x1, x2, x2], [y, y+h, y+h, y], linewidth=0.8, c='black')
471
+ ax.text((x1+x2)/2, y+h, text, ha='center', va='bottom', fontsize=7)
472
+
473
+ # Mark significant differences
474
+ add_significance_bar(ax, x[1]-width/2, x[1]+width/2, 135, 3, '***')
475
+ add_significance_bar(ax, x[2]-width/2, x[2]+width/2, 155, 3, '***')
476
+
477
+ # Customize
478
+ ax.set_ylabel('Activity (% of WT control)')
479
+ ax.set_xticks(x)
480
+ ax.set_xticklabels(categories)
481
+ ax.legend(frameon=True, edgecolor='black', framealpha=1, loc='upper left')
482
+ ax.spines['top'].set_visible(False)
483
+ ax.spines['right'].set_visible(False)
484
+ ax.set_ylim(0, 180)
485
+
486
+ # Add note about significance
487
+ ax.text(0.98, 0.02, '*** p < 0.001', transform=ax.transAxes,
488
+ ha='right', va='bottom', fontsize=6)
489
+
490
+ fig.tight_layout()
491
+ save_publication_figure(fig, 'grouped_bar_significance')
492
+ plt.show()
493
+ ```
494
+
495
+ ## Example 10: Publication-Ready Figure for Nature
496
+
497
+ ```python
498
+ import matplotlib.pyplot as plt
499
+ import numpy as np
500
+ from string import ascii_lowercase
501
+
502
+ # Nature specifications: 89mm single column
503
+ inch_per_mm = 0.0393701
504
+ width_mm = 89
505
+ height_mm = 110
506
+ figsize = (width_mm * inch_per_mm, height_mm * inch_per_mm)
507
+
508
+ fig = plt.figure(figsize=figsize)
509
+ gs = fig.add_gridspec(3, 2, hspace=0.5, wspace=0.4,
510
+ left=0.12, right=0.95, top=0.96, bottom=0.08)
511
+
512
+ # Panel a: Time course
513
+ ax_a = fig.add_subplot(gs[0, :])
514
+ time = np.linspace(0, 48, 100)
515
+ for i, label in enumerate(['Control', 'Treatment']):
516
+ y = (1 + i*0.5) * np.exp(-time/20) * (1 + 0.3*np.sin(time/5))
517
+ ax_a.plot(time, y, linewidth=1.2, label=label)
518
+ ax_a.set_xlabel('Time (h)', fontsize=7)
519
+ ax_a.set_ylabel('Growth (OD$_{600}$)', fontsize=7)
520
+ ax_a.legend(frameon=True, edgecolor='black', framealpha=1, fontsize=6)
521
+ ax_a.tick_params(labelsize=6)
522
+ ax_a.spines['top'].set_visible(False)
523
+ ax_a.spines['right'].set_visible(False)
524
+
525
+ # Panel b: Bar plot
526
+ ax_b = fig.add_subplot(gs[1, 0])
527
+ categories = ['A', 'B', 'C']
528
+ values = [1.0, 1.5, 2.2]
529
+ errors = [0.1, 0.15, 0.2]
530
+ ax_b.bar(categories, values, yerr=errors, capsize=2, width=0.6,
531
+ color='#0072B2', alpha=0.8)
532
+ ax_b.set_ylabel('Fold change', fontsize=7)
533
+ ax_b.tick_params(labelsize=6)
534
+ ax_b.spines['top'].set_visible(False)
535
+ ax_b.spines['right'].set_visible(False)
536
+
537
+ # Panel c: Heatmap
538
+ ax_c = fig.add_subplot(gs[1, 1])
539
+ data = np.random.randn(8, 6)
540
+ im = ax_c.imshow(data, cmap='viridis', aspect='auto')
541
+ ax_c.set_xlabel('Sample', fontsize=7)
542
+ ax_c.set_ylabel('Gene', fontsize=7)
543
+ ax_c.tick_params(labelsize=6)
544
+
545
+ # Panel d: Scatter
546
+ ax_d = fig.add_subplot(gs[2, :])
547
+ x = np.random.randn(50)
548
+ y = 2*x + np.random.randn(50)*0.5
549
+ ax_d.scatter(x, y, s=8, alpha=0.6, color='#E69F00')
550
+ ax_d.set_xlabel('Expression gene X', fontsize=7)
551
+ ax_d.set_ylabel('Expression gene Y', fontsize=7)
552
+ ax_d.tick_params(labelsize=6)
553
+ ax_d.spines['top'].set_visible(False)
554
+ ax_d.spines['right'].set_visible(False)
555
+
556
+ # Add lowercase panel labels (Nature style)
557
+ for i, ax in enumerate([ax_a, ax_b, ax_c, ax_d]):
558
+ ax.text(-0.2, 1.1, f'{ascii_lowercase[i]}', transform=ax.transAxes,
559
+ fontsize=9, fontweight='bold', va='top')
560
+
561
+ # Save in Nature-preferred format
562
+ fig.savefig('nature_figure.pdf', dpi=1000, bbox_inches='tight',
563
+ facecolor='white', edgecolor='none')
564
+ fig.savefig('nature_figure.png', dpi=600, bbox_inches='tight',
565
+ facecolor='white', edgecolor='none')
566
+
567
+ plt.show()
568
+ ```
569
+
570
+ ## Tips for Each Library
571
+
572
+ ### Matplotlib
573
+ - Use `fig.tight_layout()` or `constrained_layout=True` to prevent overlapping
574
+ - Set DPI to 300-600 for publication
575
+ - Use vector formats (PDF, EPS) for line plots
576
+ - Embed fonts in PDF/EPS files
577
+
578
+ ### Seaborn
579
+ - Built on matplotlib, so all matplotlib customizations work
580
+ - Use `sns.set_style('ticks')` or `'whitegrid'` for clean looks
581
+ - `sns.despine()` removes top and right spines
582
+ - Set custom palette with `sns.set_palette()`
583
+
584
+ ### Plotly
585
+ - Great for interactive exploratory analysis
586
+ - Export static images with `fig.write_image()` (requires kaleido package)
587
+ - Use `scale` parameter to control DPI (scale=3 ≈ 300 DPI)
588
+ - Update layout extensively for publication quality
589
+
590
+ ## Common Workflow
591
+
592
+ 1. **Explore with default settings**
593
+ 2. **Apply publication configuration** (see Setup section)
594
+ 3. **Create plot with appropriate size** (check journal requirements)
595
+ 4. **Customize colors** (use colorblind-friendly palettes)
596
+ 5. **Adjust fonts and line widths** (readable at final size)
597
+ 6. **Remove chart junk** (top/right spines, excessive grid)
598
+ 7. **Add clear labels with units**
599
+ 8. **Test in grayscale**
600
+ 9. **Save in multiple formats** (PDF for vector, PNG for raster)
601
+ 10. **Verify in final context** (import into manuscript to check size)
602
+
603
+ ## Resources
604
+
605
+ - Matplotlib documentation: https://matplotlib.org/
606
+ - Seaborn gallery: https://seaborn.pydata.org/examples/index.html
607
+ - Plotly documentation: https://plotly.com/python/
608
+ - Nature Methods Points of View: Data visualization column archive
@@ -0,0 +1,85 @@
1
+ # MDAnalysis-based MARTINI / coarse-grained trajectory visualization
2
+
3
+ Use this reference when the user needs practical visualization of MARTINI or other coarse-grained MD trajectories, especially when VMD auto-bond rendering is awkward or water beads dominate the scene.
4
+
5
+ ## Durable lesson
6
+
7
+ Coarse-grained MARTINI systems are often easier to visualize as particle clouds than as molecule/bond drawings:
8
+
9
+ - Hide water by default; otherwise tens of thousands of water beads obscure the morphology.
10
+ - Use `.gro` topology/coordinates with MDAnalysis when `.tpr` support is uncertain or too new for the installed MDAnalysis version.
11
+ - Treat the visualization as bead-class rendering: CP/oil beads, surfactant heads, surfactant tails, counterions, optional water.
12
+ - For morphology work, pair static PNG snapshots with an interactive HTML/WebGL or GUI viewer. Static images are good for reports; interactive orbit/slider is good for intuition.
13
+
14
+ ## Recommended output pattern
15
+
16
+ For a trajectory visualization task, produce both:
17
+
18
+ 1. Interactive HTML viewer
19
+ - sampled frames embedded
20
+ - slider/play controls
21
+ - drag/orbit and wheel/zoom if possible
22
+ - water hidden by default
23
+
24
+ 2. PNG outputs
25
+ - one last-frame PNG
26
+ - optionally a sampled frame sequence directory
27
+ - include frame/time annotation
28
+ - label colors for each bead class
29
+
30
+ If the user asks casually to “just run/open/shoot it,” do the action: generate the artifact and open it locally when possible. Do not only print the command unless they ask for instructions.
31
+
32
+ ## Minimal MDAnalysis bead-selection scaffold
33
+
34
+ ```python
35
+ import MDAnalysis as mda
36
+ import numpy as np
37
+ import matplotlib.pyplot as plt
38
+ from style_presets import rcparams, style_legend
39
+
40
+ rcparams()
41
+
42
+ u = mda.Universe("eq_whole.gro", "traj.xtc")
43
+
44
+ # Common MARTINI CP/SDS labels from the CP-SDS emulsion project.
45
+ cp = u.select_atoms("resname CYP CYPE")
46
+ sds_head = u.select_atoms("resname SDS and name S1")
47
+ sds_tail = u.select_atoms("resname SDS and name C1 C2 C3")
48
+ na = u.select_atoms("resname NA or name NA")
49
+
50
+ u.trajectory[-1]
51
+ fig = plt.figure(figsize=(8, 7))
52
+ ax = fig.add_subplot(111, projection="3d")
53
+ for group, label, color, size in [
54
+ (cp, "CP", "#18a999", 8),
55
+ (sds_tail, "SDS tail", "#b8b8b8", 8),
56
+ (sds_head, "SDS head", "#d62728", 18),
57
+ (na, "Na+", "#8e44ad", 8),
58
+ ]:
59
+ if len(group):
60
+ p = group.positions / 10.0 # MDAnalysis positions are Angstrom; plot nm.
61
+ ax.scatter(p[:,0], p[:,1], p[:,2], s=size, c=color, label=label, alpha=0.85, edgecolors="none")
62
+ box = u.trajectory.ts.dimensions[:3] / 10.0
63
+ ax.set_xlim(0, box[0]); ax.set_ylim(0, box[1]); ax.set_zlim(0, box[2])
64
+ ax.set_xlabel("x (nm)"); ax.set_ylabel("y (nm)"); ax.set_zlabel("z (nm)")
65
+ ax.text2D(0.02, 0.96, f"frame {u.trajectory.frame}, t={u.trajectory.time/1000:.2f} ns", transform=ax.transAxes)
66
+ style_legend(ax, outside=True)
67
+ fig.savefig("mda_last.png", dpi=600, bbox_inches="tight", transparent=True)
68
+ ```
69
+
70
+ ## Practical tool ranking
71
+
72
+ - MDAnalysis: best for analysis-coupled visuals, automated PNGs, sampled frame sequences, and reproducible reports.
73
+ - OVITO: good GUI choice for bead/particle systems, slicing, particle radii, and quick visual exploration.
74
+ - VMD: still useful for MD trajectory handling, but MARTINI needs explicit representation setup because bonds may be absent and water beads dominate.
75
+
76
+ ## Verification checklist
77
+
78
+ Before claiming completion:
79
+
80
+ - Run the script with the actual `.gro`/`.xtc` pair.
81
+ - Confirm output files exist and have nontrivial size.
82
+ - Open/check at least one PNG or browser-rendered HTML page.
83
+ - Verify water is hidden unless the user asked for water.
84
+ - Verify CP/SDS/head/tail/counterion colors and legend match the intended selections.
85
+ - If a PNG sequence is produced, count expected frame files and inspect first/last image dimensions.