@litfamily/lithermes 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +312 -13
  2. package/README_Ko-KR.md +313 -14
  3. package/assets/lithermes-plugin/README.md +40 -6
  4. package/assets/lithermes-plugin/__init__.py +126 -26
  5. package/assets/lithermes-plugin/core.py +15 -6
  6. package/assets/lithermes-plugin/core_commands.py +140 -28
  7. package/assets/lithermes-plugin/core_contexts.py +88 -15
  8. package/assets/lithermes-plugin/core_contract.py +118 -9
  9. package/assets/lithermes-plugin/core_routing.py +197 -8
  10. package/assets/lithermes-plugin/deliverable_hedge_guard.py +378 -357
  11. package/assets/lithermes-plugin/diagnostics.py +62 -2
  12. package/assets/lithermes-plugin/humanizer_detector.py +348 -0
  13. package/assets/lithermes-plugin/humanizer_ko_metrics.py +108 -0
  14. package/assets/lithermes-plugin/humanizer_office.py +18 -0
  15. package/assets/lithermes-plugin/jev_hint.py +461 -0
  16. package/assets/lithermes-plugin/lit_mark.py +1 -1
  17. package/assets/lithermes-plugin/motion_receipts.py +80 -0
  18. package/assets/lithermes-plugin/payload-version.json +2244 -64
  19. package/assets/lithermes-plugin/plugin.yaml +1 -1
  20. package/assets/lithermes-plugin/rules/bundled-rules/lit-humanizer.md +14 -0
  21. package/assets/lithermes-plugin/skills/autoconference/assets/report_template.md +2 -1
  22. package/assets/lithermes-plugin/skills/autoconference/modes/ship/SKILL.md +11 -8
  23. package/assets/lithermes-plugin/skills/autoresearch/modes/ship/type-checklists.md +2 -2
  24. package/assets/lithermes-plugin/skills/browser-drive/ORIGIN.json +17 -0
  25. package/assets/lithermes-plugin/skills/browser-drive/SKILL.md +41 -16
  26. package/assets/lithermes-plugin/skills/browser-drive/scripts/capability_probe.py +122 -10
  27. package/assets/lithermes-plugin/skills/frontend-ui-ux/SKILL.md +45 -13
  28. package/assets/lithermes-plugin/skills/frontend-ui-ux/examples/phase-3-readme-ab/README.md +51 -0
  29. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/README.md +44 -0
  30. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/adaptive-layout.md +34 -62
  31. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/brand-and-imagery.md +22 -70
  32. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/complete-contract.md +18 -4
  33. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/composition.md +27 -78
  34. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/craft-floor.md +74 -0
  35. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/creative-directions.md +25 -69
  36. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/evidence-review.md +18 -97
  37. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/implementation-platforms.md +23 -83
  38. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/inclusive-interface.md +22 -70
  39. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/interaction-motion.md +34 -68
  40. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/motion-guide.md +62 -0
  41. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/operating-lanes.md +14 -78
  42. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/performance-delivery.md +22 -71
  43. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/product-direction.md +17 -70
  44. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/production.md +19 -7
  45. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/redesign-playbook.md +23 -76
  46. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/slop-register.md +69 -0
  47. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/system-foundations.md +22 -67
  48. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/visual-language.md +16 -72
  49. package/assets/lithermes-plugin/skills/frontend-ui-ux/references/visual-reconstruction.md +16 -81
  50. package/assets/lithermes-plugin/skills/frontend-ui-ux/resources/THIRD-PARTY-NOTICE.txt +15 -0
  51. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/probe-page.js +311 -0
  52. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/probe-rules.json +46 -0
  53. package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/probe.mjs +231 -0
  54. package/assets/lithermes-plugin/skills/lit-comprehend/SKILL.md +36 -25
  55. package/assets/lithermes-plugin/skills/lit-comprehend/references/artifact-template.md +45 -87
  56. package/assets/lithermes-plugin/skills/lit-comprehend/scripts/verify-explainer.py +3 -27
  57. package/assets/lithermes-plugin/skills/lit-diagram-drawer/NOTICE +33 -0
  58. package/assets/lithermes-plugin/skills/lit-diagram-drawer/SKILL.md +308 -0
  59. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-architecture-dark.html +1 -0
  60. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-architecture-full.html +1 -0
  61. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-architecture-light.html +1 -0
  62. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bar-dark.html +1 -0
  63. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bar-full.html +1 -0
  64. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bar-light.html +1 -0
  65. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-beeswarm-dark.html +1 -0
  66. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-beeswarm-full.html +1 -0
  67. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-beeswarm-light.html +1 -0
  68. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bubble-dark.html +1 -0
  69. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bubble-full.html +1 -0
  70. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bubble-light.html +1 -0
  71. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bump-dark.html +1 -0
  72. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bump-full.html +1 -0
  73. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-bump-light.html +1 -0
  74. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-data-flow-dark.html +1 -0
  75. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-data-flow-full.html +1 -0
  76. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-data-flow-light.html +1 -0
  77. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-datalake-dark.html +1 -0
  78. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-datalake-full.html +1 -0
  79. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-datalake-light.html +1 -0
  80. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-db-schema-dark.html +1 -0
  81. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-db-schema-full.html +1 -0
  82. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-db-schema-light.html +1 -0
  83. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dependency-dark.html +1 -0
  84. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dependency-full.html +1 -0
  85. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dependency-light.html +1 -0
  86. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-deployment-dark.html +1 -0
  87. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-deployment-full.html +1 -0
  88. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-deployment-light.html +1 -0
  89. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dp-integration-dark.html +1 -0
  90. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dp-integration-full.html +1 -0
  91. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dp-integration-light.html +1 -0
  92. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-dark.html +1 -0
  93. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-full.html +1 -0
  94. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-dp-security-matrix-light.html +1 -0
  95. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-er-dark.html +1 -0
  96. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-er-full.html +1 -0
  97. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-er-light.html +1 -0
  98. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-fishbone-dark.html +1 -0
  99. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-fishbone-full.html +1 -0
  100. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-fishbone-light.html +1 -0
  101. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-flowchart-dark.html +1 -0
  102. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-flowchart-full.html +1 -0
  103. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-flowchart-light.html +1 -0
  104. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-gantt-dark.html +1 -0
  105. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-gantt-full.html +1 -0
  106. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-gantt-light.html +1 -0
  107. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-heatmap-dark.html +1 -0
  108. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-heatmap-full.html +1 -0
  109. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-heatmap-light.html +1 -0
  110. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-high-level-dark.html +1 -0
  111. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-high-level-full.html +1 -0
  112. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-high-level-light.html +1 -0
  113. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-dark.html +1 -0
  114. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-full.html +1 -0
  115. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-high-level-vertical-light.html +1 -0
  116. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-drawio-dark.html +1 -0
  117. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-drawio-full.html +1 -0
  118. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-drawio-light.html +1 -0
  119. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-dark.html +1 -0
  120. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-full.html +1 -0
  121. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-excalidraw-light.html +1 -0
  122. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-dark.html +1 -0
  123. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-full.html +1 -0
  124. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-import-mermaid-light.html +1 -0
  125. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-it-state-dark.html +1 -0
  126. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-it-state-full.html +1 -0
  127. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-it-state-light.html +1 -0
  128. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-journey-dark.html +1 -0
  129. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-journey-full.html +1 -0
  130. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-journey-light.html +1 -0
  131. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-kanban-dark.html +1 -0
  132. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-kanban-full.html +1 -0
  133. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-kanban-light.html +1 -0
  134. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-layers-dark.html +1 -0
  135. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-layers-full.html +1 -0
  136. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-layers-light.html +1 -0
  137. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-line-dark.html +1 -0
  138. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-line-full.html +1 -0
  139. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-line-light.html +1 -0
  140. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-loop-dark.html +1 -0
  141. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-loop-full.html +1 -0
  142. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-loop-light.html +1 -0
  143. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-dark.html +1 -0
  144. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-full.html +1 -0
  145. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-loop-terminal-light.html +1 -0
  146. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-marimekko-dark.html +1 -0
  147. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-marimekko-full.html +1 -0
  148. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-marimekko-light.html +1 -0
  149. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-medallion-dark.html +1 -0
  150. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-medallion-full.html +1 -0
  151. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-medallion-light.html +1 -0
  152. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-nested-dark.html +1 -0
  153. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-nested-full.html +1 -0
  154. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-nested-light.html +1 -0
  155. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-org-chart-dark.html +1 -0
  156. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-org-chart-full.html +1 -0
  157. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-org-chart-light.html +1 -0
  158. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-dark.html +1 -0
  159. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-full.html +1 -0
  160. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-paved-road-animated-light.html +1 -0
  161. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-polar-dark.html +1 -0
  162. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-polar-full.html +1 -0
  163. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-polar-light.html +1 -0
  164. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-dark.html +1 -0
  165. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-full.html +1 -0
  166. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-policy-trace-animated-light.html +1 -0
  167. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-process-dark.html +1 -0
  168. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-process-full.html +1 -0
  169. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-process-light.html +1 -0
  170. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-pyramid-dark.html +1 -0
  171. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-pyramid-full.html +1 -0
  172. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-pyramid-light.html +1 -0
  173. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-dark.html +1 -0
  174. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-full.html +1 -0
  175. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-quadrant-consultant-light.html +1 -0
  176. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-quadrant-dark.html +1 -0
  177. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-quadrant-full.html +1 -0
  178. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-quadrant-light.html +1 -0
  179. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-queue-animated-dark.html +1 -0
  180. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-queue-animated-full.html +1 -0
  181. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-queue-animated-light.html +1 -0
  182. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-radar-dark.html +1 -0
  183. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-radar-full.html +1 -0
  184. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-radar-light.html +1 -0
  185. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-ridgeline-dark.html +1 -0
  186. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-ridgeline-full.html +1 -0
  187. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-ridgeline-light.html +1 -0
  188. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sankey-dark.html +1 -0
  189. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sankey-full.html +1 -0
  190. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sankey-light.html +1 -0
  191. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-scatter-dark.html +1 -0
  192. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-scatter-full.html +1 -0
  193. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-scatter-light.html +1 -0
  194. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sequence-dark.html +1 -0
  195. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sequence-full.html +1 -0
  196. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sequence-light.html +1 -0
  197. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-dark.html +1 -0
  198. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-full.html +1 -0
  199. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-sequence-oauth-light.html +1 -0
  200. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-slopegraph-dark.html +1 -0
  201. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-slopegraph-full.html +1 -0
  202. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-slopegraph-light.html +1 -0
  203. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-state-dark.html +1 -0
  204. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-state-full.html +1 -0
  205. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-dark.html +1 -0
  206. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-full.html +1 -0
  207. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-state-lifecycle-light.html +1 -0
  208. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-state-light.html +1 -0
  209. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-story-map-dark.html +1 -0
  210. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-story-map-full.html +1 -0
  211. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-story-map-light.html +1 -0
  212. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-streamgraph-dark.html +1 -0
  213. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-streamgraph-full.html +1 -0
  214. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-streamgraph-light.html +1 -0
  215. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-swimlane-dark.html +1 -0
  216. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-swimlane-full.html +1 -0
  217. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-swimlane-light.html +1 -0
  218. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-timeline-dark.html +1 -0
  219. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-timeline-full.html +1 -0
  220. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-timeline-light.html +1 -0
  221. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-dark.html +1 -0
  222. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-full.html +1 -0
  223. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-tree-block-decomposition-light.html +1 -0
  224. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-tree-dark.html +1 -0
  225. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-tree-full.html +1 -0
  226. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-tree-light.html +1 -0
  227. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-treemap-dark.html +1 -0
  228. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-treemap-full.html +1 -0
  229. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-treemap-light.html +1 -0
  230. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-uml-class-dark.html +1 -0
  231. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-uml-class-full.html +1 -0
  232. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-uml-class-light.html +1 -0
  233. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-venn-dark.html +1 -0
  234. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-venn-full.html +1 -0
  235. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-venn-light.html +1 -0
  236. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-wardley-dark.html +1 -0
  237. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-wardley-full.html +1 -0
  238. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-wardley-light.html +1 -0
  239. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-waterfall-dark.html +1 -0
  240. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-waterfall-full.html +1 -0
  241. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/examples/type-waterfall-light.html +1 -0
  242. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/fonts/OFL.txt +94 -0
  243. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/fonts/PretendardVariable.woff2 +0 -0
  244. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/fonts/provenance.json +22 -0
  245. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/icons.html +231 -0
  246. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/index.html +1 -0
  247. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/licenses/devicon-MIT.txt +20 -0
  248. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/licenses/diagram-design-MIT.txt +21 -0
  249. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/licenses/log-z-MIT.txt +21 -0
  250. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/licenses/simple-icons-CC0.md +30 -0
  251. package/assets/lithermes-plugin/skills/lit-diagram-drawer/assets/licenses/tabler-MIT.txt +21 -0
  252. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/01-service-architecture/after.html +1 -0
  253. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/01-service-architecture/brief.md +33 -0
  254. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/02-release-decision/after.html +1 -0
  255. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/02-release-decision/brief.md +18 -0
  256. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/03-data-retention/after.html +1 -0
  257. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/03-data-retention/brief.md +19 -0
  258. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/04-oauth-sequence/after.html +1 -0
  259. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/04-oauth-sequence/brief.md +17 -0
  260. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/05-review-lanes/after.html +1 -0
  261. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/05-review-lanes/brief.md +17 -0
  262. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/06-rollout-gates/after.html +1 -0
  263. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/06-rollout-gates/brief.md +17 -0
  264. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/07-deployment-boundary/after.html +1 -0
  265. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/07-deployment-boundary/brief.md +19 -0
  266. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/08-policy-traces/after.html +1 -0
  267. package/assets/lithermes-plugin/skills/lit-diagram-drawer/examples/08-policy-traces/brief.md +20 -0
  268. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/accessibility.md +37 -0
  269. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/export.md +29 -0
  270. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/import-drawio.md +21 -0
  271. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/import-excalidraw.md +14 -0
  272. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/import-mermaid.md +18 -0
  273. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/import-schema.md +28 -0
  274. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/korean-typography.md +34 -0
  275. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/motion.md +29 -0
  276. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/office-pptx-docx.md +40 -0
  277. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/output-spec.md +48 -0
  278. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/primitive-annotation.md +12 -0
  279. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/primitive-icons.md +21 -0
  280. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/primitive-sketchy.md +11 -0
  281. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/primitive-terminal.md +11 -0
  282. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/profiles.md +24 -0
  283. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/semantic-patterns.md +27 -0
  284. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/style-guide.md +67 -0
  285. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-architecture.md +51 -0
  286. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-bar.md +51 -0
  287. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-beeswarm.md +49 -0
  288. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-bubble.md +49 -0
  289. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-bump.md +49 -0
  290. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-catalog.json +1433 -0
  291. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-data-flow.md +51 -0
  292. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-datalake.md +49 -0
  293. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-db-schema.md +49 -0
  294. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-dependency.md +49 -0
  295. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-deployment.md +49 -0
  296. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-dp-integration.md +49 -0
  297. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-dp-security-matrix.md +49 -0
  298. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-er.md +49 -0
  299. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-fishbone.md +49 -0
  300. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-flowchart.md +49 -0
  301. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-gantt.md +49 -0
  302. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-heatmap.md +53 -0
  303. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-high-level-vertical.md +53 -0
  304. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-high-level.md +53 -0
  305. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-import-drawio.md +53 -0
  306. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-import-excalidraw.md +53 -0
  307. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-import-mermaid.md +53 -0
  308. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-it-state.md +54 -0
  309. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-journey.md +54 -0
  310. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-kanban.md +54 -0
  311. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-layers.md +54 -0
  312. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-line.md +54 -0
  313. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-loop-terminal.md +53 -0
  314. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-loop.md +54 -0
  315. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-marimekko.md +54 -0
  316. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-medallion.md +54 -0
  317. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-nested.md +59 -0
  318. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-org-chart.md +58 -0
  319. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-paved-road-animated.md +72 -0
  320. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-polar.md +67 -0
  321. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-policy-trace-animated.md +69 -0
  322. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-process.md +58 -0
  323. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-pyramid.md +59 -0
  324. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-quadrant-consultant.md +60 -0
  325. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-quadrant.md +57 -0
  326. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-queue-animated.md +63 -0
  327. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-radar.md +57 -0
  328. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-ridgeline.md +63 -0
  329. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-sankey.md +68 -0
  330. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-scatter.md +60 -0
  331. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-sequence-oauth.md +66 -0
  332. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-sequence.md +63 -0
  333. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-slopegraph.md +65 -0
  334. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-state-lifecycle.md +53 -0
  335. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-state.md +59 -0
  336. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-story-map.md +52 -0
  337. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-streamgraph.md +53 -0
  338. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-swimlane.md +52 -0
  339. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-timeline.md +52 -0
  340. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-tree-block-decomposition.md +57 -0
  341. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-tree.md +54 -0
  342. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-treemap.md +54 -0
  343. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-uml-class.md +52 -0
  344. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-venn.md +51 -0
  345. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-wardley.md +52 -0
  346. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-waterfall.md +54 -0
  347. package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/verifier-guide.md +31 -0
  348. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/block-registry.mjs +43 -0
  349. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/browser-version.mjs +12 -0
  350. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/check-visible-text.py +12 -0
  351. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_brief.py +192 -0
  352. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_catalog.py +135 -0
  353. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_checks.py +123 -0
  354. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_cli.py +94 -0
  355. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_geometry.py +130 -0
  356. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_metrics.py +166 -0
  357. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_quality.py +293 -0
  358. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_quality_geometry.py +200 -0
  359. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_records.py +205 -0
  360. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_sequence.py +55 -0
  361. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/doctor.mjs +24 -0
  362. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/drawio_extract.py +209 -0
  363. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/drawio_source.py +188 -0
  364. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/excalidraw_extract.py +233 -0
  365. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/excalidraw_support.py +64 -0
  366. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/export.mjs +125 -0
  367. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/mermaid_extract.py +240 -0
  368. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/mermaid_source.py +39 -0
  369. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/office-safety.mjs +54 -0
  370. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/verify-all.py +12 -0
  371. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/verify-brief.py +12 -0
  372. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/verify-diagram.py +12 -0
  373. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/verify-motion.py +12 -0
  374. package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/verify-type.py +12 -0
  375. package/assets/lithermes-plugin/skills/lit-docx/NOTICE +1 -0
  376. package/assets/lithermes-plugin/skills/lit-docx/SKILL.md +97 -0
  377. package/assets/lithermes-plugin/skills/lit-docx/references/frontmatter_schema.md +42 -0
  378. package/assets/lithermes-plugin/skills/lit-docx/references/journal_style_spec.md +17 -0
  379. package/assets/lithermes-plugin/skills/lit-docx/references/markdown_quality_checklist.md +37 -0
  380. package/assets/lithermes-plugin/skills/lit-docx/references/slop_phrase_list.yaml +58 -0
  381. package/assets/lithermes-plugin/skills/lit-docx/references/slop_rules.md +35 -0
  382. package/assets/lithermes-plugin/skills/lit-docx/scripts/clean_markdown.py +95 -0
  383. package/assets/lithermes-plugin/skills/lit-docx/scripts/convert_md_to_docx.py +1041 -0
  384. package/assets/lithermes-plugin/skills/lit-docx/scripts/convert_md_to_pdf.py +281 -0
  385. package/assets/lithermes-plugin/skills/lit-docx/scripts/convert_pdf.py +130 -0
  386. package/assets/lithermes-plugin/skills/lit-docx/scripts/edit_docx.py +297 -0
  387. package/assets/lithermes-plugin/skills/lit-docx/scripts/embed_images.py +78 -0
  388. package/assets/lithermes-plugin/skills/lit-docx/scripts/generate_docx_templates.py +491 -0
  389. package/assets/lithermes-plugin/skills/lit-docx/scripts/slop_lint.py +536 -0
  390. package/assets/lithermes-plugin/skills/lit-docx/scripts/visual_audit.py +41 -0
  391. package/assets/lithermes-plugin/skills/lit-docx/templates/docx/acs.docx +0 -0
  392. package/assets/lithermes-plugin/skills/lit-docx/templates/docx/elsevier.docx +0 -0
  393. package/assets/lithermes-plugin/skills/lit-docx/templates/docx/ieee.docx +0 -0
  394. package/assets/lithermes-plugin/skills/lit-docx/templates/docx/korean-generic.docx +0 -0
  395. package/assets/lithermes-plugin/skills/lit-docx/templates/docx/nature.docx +0 -0
  396. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/acs/README.md +5 -0
  397. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/acs/template.tex +37 -0
  398. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/elsevier/README.md +5 -0
  399. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/elsevier/template.tex +38 -0
  400. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/ieee/README.md +5 -0
  401. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/ieee/template.tex +37 -0
  402. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/korean-generic/README.md +5 -0
  403. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/korean-generic/template.tex +37 -0
  404. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/nature/README.md +5 -0
  405. package/assets/lithermes-plugin/skills/lit-docx/templates/latex/nature/template.tex +37 -0
  406. package/assets/lithermes-plugin/skills/lit-docx/templates/registry.yaml +1366 -0
  407. package/assets/lithermes-plugin/skills/lit-humanizer/NOTICE +170 -0
  408. package/assets/lithermes-plugin/skills/lit-humanizer/SKILL.md +125 -0
  409. package/assets/lithermes-plugin/skills/lit-humanizer/assets/report-skeleton.md +26 -0
  410. package/assets/lithermes-plugin/skills/lit-humanizer/assets/slide-text-skeleton.md +30 -0
  411. package/assets/lithermes-plugin/skills/lit-humanizer/examples/accessibility-note/after.md +7 -0
  412. package/assets/lithermes-plugin/skills/lit-humanizer/examples/accessibility-note/before.md +7 -0
  413. package/assets/lithermes-plugin/skills/lit-humanizer/examples/api-reference/after.md +9 -0
  414. package/assets/lithermes-plugin/skills/lit-humanizer/examples/api-reference/before.md +15 -0
  415. package/assets/lithermes-plugin/skills/lit-humanizer/examples/changelog/after.md +5 -0
  416. package/assets/lithermes-plugin/skills/lit-humanizer/examples/changelog/before.md +12 -0
  417. package/assets/lithermes-plugin/skills/lit-humanizer/examples/code-comments/after.md +10 -0
  418. package/assets/lithermes-plugin/skills/lit-humanizer/examples/code-comments/before.md +19 -0
  419. package/assets/lithermes-plugin/skills/lit-humanizer/examples/commit/after.md +5 -0
  420. package/assets/lithermes-plugin/skills/lit-humanizer/examples/commit/before.md +7 -0
  421. package/assets/lithermes-plugin/skills/lit-humanizer/examples/data-release/after.md +7 -0
  422. package/assets/lithermes-plugin/skills/lit-humanizer/examples/data-release/before.md +9 -0
  423. package/assets/lithermes-plugin/skills/lit-humanizer/examples/detector-validation/ko-metrics-golden.json +49 -0
  424. package/assets/lithermes-plugin/skills/lit-humanizer/examples/detector-validation/pos-real.txt +26 -0
  425. package/assets/lithermes-plugin/skills/lit-humanizer/examples/detector-validation/rule-cases.json +306 -0
  426. package/assets/lithermes-plugin/skills/lit-humanizer/examples/english-essay/after.md +5 -0
  427. package/assets/lithermes-plugin/skills/lit-humanizer/examples/english-essay/before.md +5 -0
  428. package/assets/lithermes-plugin/skills/lit-humanizer/examples/incident-update/after.md +7 -0
  429. package/assets/lithermes-plugin/skills/lit-humanizer/examples/incident-update/before.md +7 -0
  430. package/assets/lithermes-plugin/skills/lit-humanizer/examples/ko-essay/after.md +7 -0
  431. package/assets/lithermes-plugin/skills/lit-humanizer/examples/ko-essay/before.md +9 -0
  432. package/assets/lithermes-plugin/skills/lit-humanizer/examples/ko-report/after.md +9 -0
  433. package/assets/lithermes-plugin/skills/lit-humanizer/examples/ko-report/before.md +13 -0
  434. package/assets/lithermes-plugin/skills/lit-humanizer/examples/ko-slide/after.md +19 -0
  435. package/assets/lithermes-plugin/skills/lit-humanizer/examples/ko-slide/before.md +21 -0
  436. package/assets/lithermes-plugin/skills/lit-humanizer/examples/meeting-brief/after.md +9 -0
  437. package/assets/lithermes-plugin/skills/lit-humanizer/examples/meeting-brief/before.md +11 -0
  438. package/assets/lithermes-plugin/skills/lit-humanizer/examples/policy-faq/after.md +9 -0
  439. package/assets/lithermes-plugin/skills/lit-humanizer/examples/policy-faq/before.md +9 -0
  440. package/assets/lithermes-plugin/skills/lit-humanizer/examples/pr/after.md +15 -0
  441. package/assets/lithermes-plugin/skills/lit-humanizer/examples/pr/before.md +17 -0
  442. package/assets/lithermes-plugin/skills/lit-humanizer/examples/project-update/after.md +7 -0
  443. package/assets/lithermes-plugin/skills/lit-humanizer/examples/project-update/before.md +9 -0
  444. package/assets/lithermes-plugin/skills/lit-humanizer/examples/readme/after.md +12 -0
  445. package/assets/lithermes-plugin/skills/lit-humanizer/examples/readme/before.md +14 -0
  446. package/assets/lithermes-plugin/skills/lit-humanizer/examples/report/after.md +13 -0
  447. package/assets/lithermes-plugin/skills/lit-humanizer/examples/report/before.md +11 -0
  448. package/assets/lithermes-plugin/skills/lit-humanizer/examples/research-abstract/after.md +5 -0
  449. package/assets/lithermes-plugin/skills/lit-humanizer/examples/research-abstract/before.md +5 -0
  450. package/assets/lithermes-plugin/skills/lit-humanizer/examples/slides/after.md +19 -0
  451. package/assets/lithermes-plugin/skills/lit-humanizer/examples/slides/before.md +19 -0
  452. package/assets/lithermes-plugin/skills/lit-humanizer/examples/troubleshooting/after.md +11 -0
  453. package/assets/lithermes-plugin/skills/lit-humanizer/examples/troubleshooting/before.md +11 -0
  454. package/assets/lithermes-plugin/skills/lit-humanizer/references/README.md +16 -0
  455. package/assets/lithermes-plugin/skills/lit-humanizer/references/always-on-rule.md +9 -0
  456. package/assets/lithermes-plugin/skills/lit-humanizer/references/code-patterns.md +468 -0
  457. package/assets/lithermes-plugin/skills/lit-humanizer/references/deliverable-channels.md +111 -0
  458. package/assets/lithermes-plugin/skills/lit-humanizer/references/en-patterns-checklist.md +43 -0
  459. package/assets/lithermes-plugin/skills/lit-humanizer/references/en-patterns-content.md +243 -0
  460. package/assets/lithermes-plugin/skills/lit-humanizer/references/en-patterns-structure.md +375 -0
  461. package/assets/lithermes-plugin/skills/lit-humanizer/references/en-patterns.md +57 -0
  462. package/assets/lithermes-plugin/skills/lit-humanizer/references/ko-metrics.md +33 -0
  463. package/assets/lithermes-plugin/skills/lit-humanizer/references/ko-patterns-a-d.md +659 -0
  464. package/assets/lithermes-plugin/skills/lit-humanizer/references/ko-patterns-e-j.md +387 -0
  465. package/assets/lithermes-plugin/skills/lit-humanizer/references/ko-patterns.md +31 -0
  466. package/assets/lithermes-plugin/skills/lit-humanizer/references/rewrite-playbook.md +54 -0
  467. package/assets/lithermes-plugin/skills/lit-humanizer/references/taxonomy.md +153 -0
  468. package/assets/lithermes-plugin/skills/lit-humanizer/rules.json +884 -0
  469. package/assets/lithermes-plugin/skills/lit-humanizer/scripts/detect.py +17 -0
  470. package/assets/lithermes-plugin/skills/lit-humanizer/scripts/extract_office_text.py +114 -0
  471. package/assets/lithermes-plugin/skills/lit-humanizer/scripts/ko_metrics.py +35 -0
  472. package/assets/lithermes-plugin/skills/lit-pptx/NOTICE +1 -0
  473. package/assets/lithermes-plugin/skills/lit-pptx/SKILL.md +109 -0
  474. package/assets/lithermes-plugin/skills/lit-pptx/agents/analyst.md +49 -0
  475. package/assets/lithermes-plugin/skills/lit-pptx/agents/antithesis.md +65 -0
  476. package/assets/lithermes-plugin/skills/lit-pptx/agents/architect.md +44 -0
  477. package/assets/lithermes-plugin/skills/lit-pptx/agents/critic.md +42 -0
  478. package/assets/lithermes-plugin/skills/lit-pptx/agents/synthesizer.md +47 -0
  479. package/assets/lithermes-plugin/skills/lit-pptx/agents/thesis.md +33 -0
  480. package/assets/lithermes-plugin/skills/lit-pptx/assets/azure/circle-lg.png +0 -0
  481. package/assets/lithermes-plugin/skills/lit-pptx/assets/azure/circle-md.png +0 -0
  482. package/assets/lithermes-plugin/skills/lit-pptx/assets/azure/circle-sm.png +0 -0
  483. package/assets/lithermes-plugin/skills/lit-pptx/bin/office.mjs +77 -0
  484. package/assets/lithermes-plugin/skills/lit-pptx/fonts/PRETENDARD-OFL.txt +94 -0
  485. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-Black.otf +0 -0
  486. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-Bold.otf +0 -0
  487. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-ExtraBold.otf +0 -0
  488. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-ExtraLight.otf +0 -0
  489. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-Light.otf +0 -0
  490. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-Medium.otf +0 -0
  491. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-Regular.otf +0 -0
  492. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-SemiBold.otf +0 -0
  493. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/A2Z-Thin.otf +0 -0
  494. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/OFL.txt +94 -0
  495. package/assets/lithermes-plugin/skills/lit-pptx/fonts/a2z-font/SOURCE.md +29 -0
  496. package/assets/lithermes-plugin/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Bold.otf +0 -0
  497. package/assets/lithermes-plugin/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Regular.otf +0 -0
  498. package/assets/lithermes-plugin/skills/lit-pptx/references/anti-slop-checklist.md +71 -0
  499. package/assets/lithermes-plugin/skills/lit-pptx/references/authoring-guide.md +139 -0
  500. package/assets/lithermes-plugin/skills/lit-pptx/references/consensus-protocol.md +125 -0
  501. package/assets/lithermes-plugin/skills/lit-pptx/references/data-display-cookbook.md +45 -0
  502. package/assets/lithermes-plugin/skills/lit-pptx/references/design-system-azure.md +58 -0
  503. package/assets/lithermes-plugin/skills/lit-pptx/runtime/package-lock.json +750 -0
  504. package/assets/lithermes-plugin/skills/lit-pptx/runtime/package.json +15 -0
  505. package/assets/lithermes-plugin/skills/lit-pptx/runtime/requirements.in +7 -0
  506. package/assets/lithermes-plugin/skills/lit-pptx/runtime/requirements.lock +391 -0
  507. package/assets/lithermes-plugin/skills/lit-pptx/scripts/compile-deck.js +447 -0
  508. package/assets/lithermes-plugin/skills/lit-pptx/scripts/craft_extras.py +215 -0
  509. package/assets/lithermes-plugin/skills/lit-pptx/scripts/embed_fonts.py +199 -0
  510. package/assets/lithermes-plugin/skills/lit-pptx/scripts/integrity.py +60 -0
  511. package/assets/lithermes-plugin/skills/lit-pptx/scripts/inventory.py +64 -0
  512. package/assets/lithermes-plugin/skills/lit-pptx/scripts/learn_template.py +433 -0
  513. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/derive-palette.js +176 -0
  514. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/directive-parser.js +244 -0
  515. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/font-map.js +79 -0
  516. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/gen-bg.js +85 -0
  517. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/gen-gradient-assets.js +36 -0
  518. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/layout-resolver.js +736 -0
  519. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/markdown-loader.js +136 -0
  520. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/render-adapter-html.js +357 -0
  521. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +1864 -0
  522. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/slide-ast.js +539 -0
  523. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/spec-validator.js +94 -0
  524. package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/template-registry.js +355 -0
  525. package/assets/lithermes-plugin/skills/lit-pptx/scripts/qa_deck.py +791 -0
  526. package/assets/lithermes-plugin/skills/lit-pptx/scripts/validate_pptx.py +206 -0
  527. package/assets/lithermes-plugin/skills/lit-pptx/slide-formats/markdown-slide-spec-v1.md +251 -0
  528. package/assets/lithermes-plugin/skills/lit-pptx/slide-formats/markdown-slide-spec-v2.md +221 -0
  529. package/assets/lithermes-plugin/skills/lit-pptx/slide-formats/slide-ast-v1.schema.json +229 -0
  530. package/assets/lithermes-plugin/skills/lit-pptx/slide-formats/slide-ast-v2.schema.json +144 -0
  531. package/assets/lithermes-plugin/skills/lit-pptx/slide-formats/template-enrollment-contract.md +228 -0
  532. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/AZURE-A2Z/capabilities.yaml +146 -0
  533. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +384 -0
  534. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +37 -0
  535. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +154 -0
  536. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +405 -0
  537. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +37 -0
  538. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/capabilities.yaml +179 -0
  539. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/layout-mapping.yaml +299 -0
  540. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/BOILERPLATE-A2Z/template.yaml +45 -0
  541. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +181 -0
  542. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/layout-mapping.yaml +299 -0
  543. package/assets/lithermes-plugin/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +44 -0
  544. package/assets/lithermes-plugin/skills/lit-scientific-visualization/SKILL.md +2 -0
  545. package/assets/lithermes-plugin/skills/lit-typographic-motion/SKILL.md +71 -0
  546. package/assets/lithermes-plugin/skills/lit-typographic-motion/bin/audio.py +45 -0
  547. package/assets/lithermes-plugin/skills/lit-typographic-motion/bin/motion.mjs +690 -0
  548. package/assets/lithermes-plugin/skills/lit-typographic-motion/bin/runtime.mjs +299 -0
  549. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/NOTICE +23 -0
  550. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/THIRD_PARTY_NOTICES +55 -0
  551. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/browser.mjs +169 -0
  552. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/completion.mjs +52 -0
  553. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/constants.mjs +162 -0
  554. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/director.mjs +33 -0
  555. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/encode.mjs +191 -0
  556. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/flash.mjs +163 -0
  557. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/frame.mjs +428 -0
  558. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/gate.mjs +483 -0
  559. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/look.mjs +223 -0
  560. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/page.js +622 -0
  561. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/presets.mjs +170 -0
  562. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/scenes.mjs +242 -0
  563. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/sound.mjs +382 -0
  564. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage-gate.mjs +97 -0
  565. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage-init.js +186 -0
  566. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage-kit.js +389 -0
  567. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage-qa.mjs +358 -0
  568. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage-worker.mjs +33 -0
  569. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage.mjs +691 -0
  570. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stills.mjs +71 -0
  571. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stroke.mjs +231 -0
  572. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/timeline.mjs +177 -0
  573. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/treatment.mjs +244 -0
  574. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/type.mjs +183 -0
  575. package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/util.mjs +152 -0
  576. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/craft-loop.md +175 -0
  577. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/engine-contract.md +166 -0
  578. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/runtime.md +122 -0
  579. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/stage.md +261 -0
  580. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/style-bibles.md +122 -0
  581. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/treatment.md +164 -0
  582. package/assets/lithermes-plugin/skills/lit-typographic-motion/references/type-craft.md +92 -0
  583. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/fonts.json +154 -0
  584. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/licenses/CREDITS +20 -0
  585. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/licenses/EMS-OFL.txt +91 -0
  586. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/package-lock.json +88 -0
  587. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/package.json +12 -0
  588. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/requirements.in +1 -0
  589. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/requirements.lock +727 -0
  590. package/assets/lithermes-plugin/skills/lit-typographic-motion/runtime/word-timing.json +9 -0
  591. package/assets/lithermes-plugin/skills/litresearch/SKILL.md +19 -18
  592. package/assets/lithermes-plugin/skills/litwork/SKILL.md +28 -0
  593. package/assets/lithermes-plugin/skills/visual-qa/references/complete-contract.md +3 -3
  594. package/package.json +1 -1
  595. package/readme-assets/ab-simple/s11-ui-baseline-desktop.webp +0 -0
  596. package/readme-assets/ab-simple/s11-ui-lithermes-desktop.webp +0 -0
  597. package/readme-assets/ab-simple/s3-ui-baseline-desktop.webp +0 -0
  598. package/readme-assets/ab-simple/s3-ui-lithermes-desktop.webp +0 -0
  599. package/readme-assets/ab-simple/s4-ui-baseline-desktop.webp +0 -0
  600. package/readme-assets/ab-simple/s4-ui-lithermes-desktop.webp +0 -0
  601. package/readme-assets/ab-simple/s5-office-baseline-slides.webp +0 -0
  602. package/readme-assets/ab-simple/s5-office-lithermes-slides.webp +0 -0
  603. package/readme-assets/ab-simple/s7-lithermes-diagram.webp +0 -0
  604. package/readme-assets/ab-simple/s8-office-baseline-slides.webp +0 -0
  605. package/readme-assets/ab-simple/s8-office-lithermes-slides.webp +0 -0
  606. package/readme-assets/ab-simple/s9-office-lithermes-pages.webp +0 -0
  607. package/readme-assets/badge-version.svg +1 -1
  608. package/readme-assets/cover-motion-still.webp +0 -0
  609. package/readme-assets/cover-motion.webp +0 -0
  610. package/readme-assets/skills/autoconference.webp +0 -0
  611. package/readme-assets/skills/autoresearch.webp +0 -0
  612. package/readme-assets/skills/browser-drive.webp +0 -0
  613. package/readme-assets/skills/comment-checker.webp +0 -0
  614. package/readme-assets/skills/debugging.webp +0 -0
  615. package/readme-assets/skills/deep-interview.webp +0 -0
  616. package/readme-assets/skills/frontend-ui-ux.webp +0 -0
  617. package/readme-assets/skills/lit-burnoff-file.webp +0 -0
  618. package/readme-assets/skills/lit-burnoff.webp +0 -0
  619. package/readme-assets/skills/lit-code.webp +0 -0
  620. package/readme-assets/skills/lit-commit.webp +0 -0
  621. package/readme-assets/skills/lit-comprehend.webp +0 -0
  622. package/readme-assets/skills/lit-crucible.webp +0 -0
  623. package/readme-assets/skills/lit-diagram-drawer.webp +0 -0
  624. package/readme-assets/skills/lit-docx.webp +0 -0
  625. package/readme-assets/skills/lit-handoff.webp +0 -0
  626. package/readme-assets/skills/lit-humanizer.webp +0 -0
  627. package/readme-assets/skills/lit-init.webp +0 -0
  628. package/readme-assets/skills/lit-plan.webp +0 -0
  629. package/readme-assets/skills/lit-pptx.webp +0 -0
  630. package/readme-assets/skills/lit-recap.webp +0 -0
  631. package/readme-assets/skills/lit-scientific-visualization.webp +0 -0
  632. package/readme-assets/skills/lit-typographic-motion.webp +0 -0
  633. package/readme-assets/skills/litgoal.webp +0 -0
  634. package/readme-assets/skills/litresearch.webp +0 -0
  635. package/readme-assets/skills/litwork.webp +0 -0
  636. package/readme-assets/skills/lsp-setup.webp +0 -0
  637. package/readme-assets/skills/lsp.webp +0 -0
  638. package/readme-assets/skills/readme-studio.webp +0 -0
  639. package/readme-assets/skills/refactor.webp +0 -0
  640. package/readme-assets/skills/review-work.webp +0 -0
  641. package/readme-assets/skills/rules.webp +0 -0
  642. package/readme-assets/skills/start-work.webp +0 -0
  643. package/readme-assets/skills/structural-search.webp +0 -0
  644. package/readme-assets/skills/visual-qa.webp +0 -0
  645. package/readme-assets/skills/wikify.webp +0 -0
  646. package/src/cli.js +40 -1
  647. package/src/lib/check.js +21 -0
  648. package/src/lib/install.js +262 -7
  649. package/src/lib/skillPayload.js +3 -3
  650. package/assets/lithermes-plugin/skills/lit-korean/SKILL.md +0 -237
  651. package/assets/lithermes-plugin/skills/lit-korean/references/quick-rules.md +0 -24
  652. package/assets/lithermes-plugin/skills/lit-korean/references/safety-checklist.md +0 -23
  653. package/readme-assets/cover.webp +0 -0
@@ -0,0 +1,60 @@
1
+ # Scatter plot
2
+
3
+ **Catalog ID:** `scatter`<br>
4
+ **Companion catalog entries:** [Bubble](type-bubble.md) · [Beeswarm](type-beeswarm.md).<br>
5
+ **Common references:** [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [PPTX/DOCX](office-pptx-docx.md) · [Verifier guide](verifier-guide.md)
6
+
7
+ ## Purpose and selection
8
+
9
+ Use Scatter when the relationship between two continuous variables is the point: correlation, clusters, outliers, or high/low performers. Choose Bubble only when a third, positive magnitude matters; its area needs a separate encoding contract. Choose Beeswarm when one distribution and each observation matter. If a chart is plotting scientific measurements as a scientific result, use the scientific-visualization workflow.
10
+
11
+ ## Exclusions
12
+
13
+ Use 5–30 points for the standard scatter. Fewer points are usually clearer in prose or a table; more points become a density problem and should be binned or shown with Beeswarm if every observation is meaningful. Do not add a third size scale, unreported jitter, a forced fit line, or labels on every point. Keep the meaning and range of both axes explicit.
14
+
15
+ ## Content schema
16
+
17
+ ```yaml
18
+ title: "Service latency and error rate"
19
+ x_axis: { label: p95 latency, min: 0, max: 500, unit: ms }
20
+ y_axis: { label: Error rate, min: 0, max: 5, unit: "%" }
21
+ points:
22
+ - { id: checkout, label: Checkout, x: 260, y: 2.8, focal: true }
23
+ - { id: search, label: Search, x: 180, y: 0.9 }
24
+ trend: none # optional; only when supported by the data
25
+ quadrant_guides: false # optional median guides
26
+ ```
27
+
28
+ Every point has a stable ID and finite x/y values within declared bounds. Label the focal point and no more than two additional outliers. An optional trend line must have a stated model or honest descriptive purpose. Optional median guides label all four regions and remain visual aids rather than new variables.
29
+
30
+ ## Deterministic layout recipe
31
+
32
+ Use a 1000×500 viewBox with plot bounds x=80..960 and y=40..420. Map each coordinate linearly to those bounds: x increases left-to-right, y increases bottom-to-top. Draw 4–6 equally spaced ticks on each axis, with grid rules aligned to ticks. Give standard points a fixed radius of 5px and a single focal point 6px. Place at most three point labels on paper-backed backgrounds, trying a fixed order of offsets (above-right, above-left, below-right, below-left) and selecting the first that clears prior labels and axes. Never shift the point center. Draw an optional muted dashed trend rule only after confirming that its direction is supported by the data. Reserve the bottom footer for a compact legend or source footnote.
33
+
34
+ ## Encoding rules
35
+
36
+ Point position encodes x and y. Point size and fill opacity are fixed; only one point may use the accent. Add a fit line only if it clarifies a real pattern, and never use it to imply causation. Include zero in an axis when absolute position needs it; if a useful range omits zero, print the visible bounds prominently. Keep units and scales visible, note any omitted observations, and bind each label/tick to its associated data point or value. Bubble size and beeswarm packing rules live in their companion guides.
37
+
38
+ ## Korean behavior
39
+
40
+ Use concise Korean axis titles with units and a consistent number format. Keep values and `%`, milliseconds, or other units together. Use Pretendard for prose and the shared mono face for ticks/identifiers. For Korean point labels, use a short phrase and wrap only on word boundaries; a longer name belongs in a side key rather than over the cloud. Preserve Latin service IDs exactly.
41
+
42
+ ## Light, dark, and full variants
43
+
44
+ All skins preserve point coordinates, scales, ticks, focal point, and label bindings. Light/dark switch shared tokens; confirm grid and mark outlines against each paper surface. Full adds a small editorial title and one interpretation note around the unchanged plot, not a new scale or data series.
45
+
46
+ ## Accessibility
47
+
48
+ Provide title and description naming both variables, units, bounds, the focal point, and any trend fit. Supply a text table with one row per item and x/y values. Mark focus in text as well as by accent, and ensure circles have visible strokes at presentation size. Keep quadrant labels, if used, explicit rather than relying on position alone. See [Accessibility](accessibility.md).
49
+
50
+ ## Verifier gates
51
+
52
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=scatter path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify the catalog marker against source values and this guide; a matching ID alone does not prove those properties. No specialized scatter proof is registered; manually compare point coordinates and tick labels with the declared axis bounds. See [Verifier guide](verifier-guide.md). See that the gallery wrapper’s `data-type` value matches this exact Catalog ID; a missing or mismatched marker is not a passing type check.
53
+
54
+ ## Anti-patterns
55
+
56
+ - More than 30 unlabeled-density points, one label per mark, or silently omitted extremes.
57
+ - A trend line forced onto scattered data or interpreted as causal evidence.
58
+ - Bubble size used without the separate Bubble contract, or a third variable smuggled into color.
59
+ - Moving a point to prevent collision, or using inconsistent bounds for different points.
60
+ - Truncated axes with no printed range, or axes whose units are unclear.
@@ -0,0 +1,66 @@
1
+ # OAuth refresh sequence
2
+
3
+ **Catalog ID:** `sequence-oauth`<br>
4
+ **Parent grammar:** [Sequence](type-sequence.md)
5
+
6
+ ## Purpose and selection
7
+
8
+ Choose this focused sequence variant when a client makes a bearer-authenticated resource request and the important story is the invalid-token response, refresh, and retry. It keeps the normal request/response chronology while making the token-valid and refresh branch legible. Use the general sequence guide for other protocols, or a state machine when the subject's legal states matter more than messages between actors.
9
+
10
+ This drawing documents an exchange; it is not an OAuth threat model, a complete authorization-code grant, or proof that an implementation follows a security profile. Link a separate security review when those claims matter.
11
+
12
+ ## Content schema
13
+
14
+ Prepare a small ordered record before drawing:
15
+
16
+ - **Participants:** stable id, display name, role, and optional short system qualifier. Usual roles are client, resource API, and authorization service.
17
+ - **Messages:** order, sender, receiver, kind (`call`, `return`, or `async`), short protocol label, and optional outcome/status. Include the bearer request, resource result, token refresh exchange, and one retry only where the brief requires it.
18
+ - **Branch:** one `alt` fragment with two guards: the valid-token success region and the expired/invalid-token region. Record the condition and resulting message in each region.
19
+ - **Security note:** identify whether credentials are illustrative or redacted. Never place a real access token, refresh token, client secret, or personal data in visible text, metadata, examples, or screenshot filenames.
20
+
21
+ Keep message labels to method/path, status, and a short payload noun. Put detailed claims in a caption or companion prose, not on every arrow.
22
+
23
+ ## Deterministic layout recipe
24
+
25
+ 1. Place participants left-to-right by first interaction; keep the client at left, resource API in the middle, and authorization service at right when those are the actors. Draw participant boxes once and dashed lifelines straight down.
26
+ 2. Allocate one vertical slot per message in chronological order. Reserve enough height for the `alt` tab, guard labels, divider, and both branch messages before placing arrows. Align each message to the 4 px layout grid and keep at least 24 px between message baselines.
27
+ 3. Put the bearer request and its first response above the branch. Frame only the lifelines that participate. Inside `alt`, put `[token valid]` in the first region and an explicit expired/invalid-token guard in the second; separate the regions with a dashed rule. Leave at least 16 px between the divider and nearby messages.
28
+ 4. In the failure region, show the unauthorized return, the refresh call and response, then one resource retry and its return. Use the auth participant for the refresh exchange. Keep the activation bar open only while that participant processes the exchange.
29
+ 5. Put any audit/event notification after the user-facing result. Draw it as a dashed line with an open head; returns are dashed with filled heads, and synchronous calls use solid filled heads.
30
+ 6. Route labels into clear space without moving message y-values to conceal crowding. If the 5-lifeline, 12-message, 1-fragment, or 2-region budget is exceeded, split the refresh detail into a second figure.
31
+
32
+ ## Visual encoding
33
+
34
+ Use the parent sequence grammar for line types, activation bars, branch frames, and arrowheads. Keep request calls solid, synchronous responses dashed with filled heads, and one-way events dashed with open heads. Use the accent for at most one headline success message; the success and error branches must remain distinguishable from their guard text and status labels without color. Operator tags (`ALT`, `OPT`, `LOOP`) use the mono role.
35
+
36
+ The refresh token itself is never visualized. Show only the protocol action, such as `POST /token · refresh`, and the resulting status. Do not imply that refresh always succeeds: if failure handling is in scope, add a clearly bounded second figure or use a complete branch with a labeled failure result.
37
+
38
+ ## Korean text
39
+
40
+ Use Pretendard for participant names and Hangul phrases; use the bundled mono role for method names, paths, statuses, guards, and identifiers. Break long labels at phrase boundaries and keep `GET /resource`, status codes, and token-related protocol terms intact. Keep guard wording short enough to remain inside the frame. Follow [Korean typography](korean-typography.md) for mixed Hangul/Latin spacing, baseline, and number treatment.
41
+
42
+ ## Light, dark, and full variants
43
+
44
+ All three variants preserve the participant order, message order, branch guards, and geometry. Light and dark swap semantic surface and ink tokens only. In the full editorial variant, add a concise title, one explanatory caption, and a legend for call/return/async/fragment if needed; the frame must not add extra branches or suggest a security guarantee. Maintain arrowhead contrast in both skins.
45
+
46
+ ## Accessibility
47
+
48
+ Provide an SVG title and a description that narrates the happy path, the invalid-token branch, and the retry outcome in order. Use visible guard and status labels as redundant cues for line style. Keep text outside lifelines where possible, maintain readable label contrast, and ensure open versus filled arrowheads remain visually distinct at export size. Do not rely on accent color to identify success or failure.
49
+
50
+ ## Verifier gates
51
+
52
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=sequence-oauth path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify the two-region refresh contract and message/arrow semantics against source values and this guide; a matching ID alone does not prove those properties. Review the rendered light, dark, and full captures at the intended slide size; a green structural check does not confirm that guard labels are readable.
53
+
54
+ ## Anti-patterns
55
+
56
+ - Showing real credentials or a token value.
57
+ - Omitting the invalid-token status before refresh, or drawing refresh as a user-facing resource response.
58
+ - Combining both outcomes into an unlabeled arrow cluster.
59
+ - Drawing returns with solid calls' line grammar or async events with filled heads.
60
+ - Adding multiple retries while leaving the retry policy unspecified.
61
+ - Treating this focused exchange as a complete OAuth security analysis.
62
+ - Moving an arrow to make its label fit or using color alone to distinguish branch outcomes.
63
+
64
+ ## Related references
65
+
66
+ [Sequence](type-sequence.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,63 @@
1
+ # Sequence
2
+
3
+ **Catalog ID:** `sequence`<br>
4
+ **Common references:** [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Motion](motion.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [PPTX/DOCX](office-pptx-docx.md) · [Verifier guide](verifier-guide.md)
5
+
6
+ ## Purpose and selection
7
+
8
+ Use Sequence for requests, responses, events, and interactions among actors when message order and timing are load-bearing: API calls, auth refresh, or incident reconstruction. Use State Machine for one subject changing state, Process for steps across owners, or Flowchart for decision logic without actor-to-actor messages.
9
+
10
+ ## Exclusions
11
+
12
+ Support up to five lifelines and twelve messages. Use at most one combined fragment by default; a second is allowed only when each is a single-region `opt` or `loop`. `alt` has at most two regions, nesting depth is one. Creation/destruction, duration bars, parallel/critical/break/ref operators are out of scope; split an over-budget exchange into overview and detail.
13
+
14
+ ## Content schema
15
+
16
+ ```yaml
17
+ title: "Token refresh"
18
+ actors: [{ id: app, label: Client }, { id: api, label: API }, { id: auth, label: Auth service }]
19
+ messages:
20
+ - { from: app, to: api, kind: call, label: "GET /resource", step: 1 }
21
+ - { from: api, to: auth, kind: call, label: "Validate token", step: 2 }
22
+ - { from: auth, to: app, kind: return, label: "New token", step: 3, focal: true }
23
+ fragments:
24
+ - { kind: alt, guards: ["token valid", "token expired"], start_step: 2, end_step: 3 }
25
+ ```
26
+
27
+ Actor order is explicit and stable. Each message declares source, target, kind (`call`, `return`, `async`), concise label, sequence number, and optional focal state. Fragments declare participants, region guards, and covered message range. Returns must pair with a synchronous call; async messages are one-way.
28
+
29
+ ## Deterministic layout recipe
30
+
31
+ Place actor boxes in one horizontal row, evenly centered across a 1000px-wide canvas with equal lifeline gaps and symmetric outer margins. Extend dashed lifelines from the actor row to the bottom safe margin. Time runs top to bottom: place message `k` at a fixed 32px vertical interval below the previous message, with enough room for its label and any activation change. Sync calls use horizontal solid arrows; returns use horizontal dashed arrows; async sends use dashed arrows with open heads. Draw narrow activation bars on the receiving lifeline from call receipt through return. Self-calls use a short right-facing U-loop. A branch frame spans only participating lifelines and the message interval; its tab and guard sit above the first message in each region. Reserve at least 24px between messages and place labels above or below their own line without crossing another lifeline.
32
+
33
+ ## Lifeline binding
34
+
35
+ Mark each participant box with a unique `data-node-id`. Draw one dashed SVG `<line>` per participant with `data-lifeline-for` set to that same ID; its `x1` and `x2` are the box center, `y1` is the box bottom, and `y2` reaches at least the last message row. Every message route carries `data-from` and `data-to`; its first and final points land on the corresponding lifeline x coordinates. Keep message routes in their visual top-to-bottom order in the SVG. The sequence verifier checks the lifeline map, box alignment, final-message coverage, endpoint binding, and order. Lifeline/message intersections are intentional and excluded from generic arrow-crossing totals.
36
+
37
+ ## Encoding rules
38
+
39
+ Call: solid line and filled head. Return: dashed line and filled head. Async: dashed line and open head. The one primary success message may use accent; do not accent both branches. `alt`, `opt`, and `loop` operators are printed in mono and placed in a light frame with a clear guard. Every activation bar closes. All arrows point down in time; return arrows still travel between actors horizontally and appear later in the vertical sequence.
40
+
41
+ ## Korean behavior
42
+
43
+ Keep actor labels and endpoints stable. Use short Korean verb phrases for messages and preserve API paths, token names, and protocol codes. Wrap labels only within their lifeline gap; if they collide, shorten the message or add vertical space. Operator names and guards use the same mono role in both languages; provide Korean alternatives without changing step order.
44
+
45
+ ## Light, dark, and full variants
46
+
47
+ All variants have identical actors, messages, activation spans, fragments, order, and focus. Light/dark change shared tokens only. The full variant may add a short context note but cannot add messages absent from the diagram. Sequence is static by default; use motion only when a staged reveal materially explains the exchange and still follow [Motion](motion.md).
48
+
49
+ ## Accessibility
50
+
51
+ The SVG description names actors and summarizes the message path and branch outcome. Supply an ordered message list with source, destination, kind, and label; include each guard and region outcome. Distinguish async from return with arrow-head shape and line pattern as well as text. Group related messages in DOM order and keep labels off lifelines.
52
+
53
+ ## Verifier gates
54
+
55
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` for the implemented geometry, contrast, accessibility, and visible-text checks. Run `python3 scripts/verify-type.py --type=sequence path/to/diagram.html` to check catalog identity and registered sequence guards; use `sequence-oauth` for that specialized variant. Independently verify lifelines, participant binding, message order, markers, activations, and fragment budgets against this guide. If animated, run the motion source check and inspect the static state and controls manually. See [Verifier guide](verifier-guide.md).
56
+
57
+ ## Anti-patterns
58
+
59
+ - Upward-time arrows, open heads on returns, filled heads on async sends, or activation bars that never close.
60
+ - Branch arrows without an `alt`/`opt`/`loop` frame and guard.
61
+ - Labels crossing a neighboring lifeline or actors arranged as swimlanes.
62
+ - Nested `alt` blocks, more than five lifelines, or unbounded fragments.
63
+ - Coral on both branch results, or a motion-only state that disappears in the static frame.
@@ -0,0 +1,65 @@
1
+ # Slopegraph
2
+
3
+ **Catalog ID:** `slopegraph`<br>
4
+ **Parent family:** [Line and quantitative chart guidance](type-line.md)
5
+
6
+ ## Purpose and selection
7
+
8
+ Use a slopegraph to compare several named series across exactly two comparable states: before/after, two releases, or two scenarios. The line angle communicates direction and relative change; line crossings show rank changes. Every endpoint remains labeled so the reader can recover the values.
9
+
10
+ Use a line chart for three or more ordered states, a bar or dumbbell for a single-time comparison, and a scatter plot when the two endpoints use different units. A slopegraph does not reveal what happened between the endpoints; crossings are not dates or events.
11
+
12
+ ## Content schema
13
+
14
+ Supply a dataset with:
15
+
16
+ - Two state captions in chronological or explicitly named order.
17
+ - One shared measurement name, unit, and linear numeric domain used by both vertical axes.
18
+ - Four to ten series, each with a stable display name and a value in each state.
19
+ - A note for excluded or missing series; do not interpolate a missing endpoint.
20
+ - The source, period, and domain bounds needed to interpret the comparison.
21
+
22
+ Each series record is `{name, from, to}`. Bind those values and endpoint labels to the same series identity in machine-readable SVG attributes so the rendered line, text, and metadata can be checked together. Round a value once and use that same value for the label and plotted coordinate.
23
+
24
+ ## Deterministic layout recipe
25
+
26
+ 1. Use a wide viewBox with a plotting region about as tall as it is wide. Place two vertical axes at fixed x positions with symmetric label gutters outside them; preserve enough room for the longest series name and the numeric value at each side.
27
+ 2. Declare one round domain `[min, max]` and one scale function `y(v) = bottom - (v - min) × plotHeight / (max - min)`. Apply the identical function to both endpoint columns. Record the domain and unit in the source line.
28
+ 3. Place each series as one straight segment from the left endpoint to the right endpoint. Draw dots at both ends. Do not add a mid-point, curve, gridline, or extra state axis.
29
+ 4. Print each series name and complete value at both ends. Put state captions below their axes and the measurement/unit in a small axis caption. Use fixed gutters; if endpoint labels collide, reduce the series count or split the comparison rather than changing coordinates.
30
+ 5. Give lines a stable ordering based on the left endpoint value. Preserve that order in the legend and source metadata. Keep labels paired to their actual endpoints even when line crossings change the order at the right side.
31
+
32
+ ## Visual encoding
33
+
34
+ Use a restrained ink-opacity ramp for nonfocal series and one accent series chosen for the central finding, not automatically the best or worst result. Give the focal line additional weight and label it in the legend. Names and values stay in high-contrast text roles on all lines. Avoid a rainbow palette: names at both ends already identify each series. The axes and endpoint numbers carry the scale; no grid is needed.
35
+
36
+ Show direction through the actual slope and the printed values. State-neutral legend wording such as “strongest tone” avoids claiming that the ramp is darker in both skins. Never suggest a rate or trajectory at an intermediate point.
37
+
38
+ ## Korean text
39
+
40
+ Use Pretendard for service or category names; use mono for short state captions, numeric labels, units, and source metadata. Choose short paired captions such as `이전` and `이후` only when they match the actual comparison. Preserve one unit and a consistent decimal/ thousands convention at both ends. If a Hangul series name is long, wrap it in its gutter or use an agreed short label with a mapping in the legend; never slide its endpoint vertically to create room. See [Korean typography](korean-typography.md).
41
+
42
+ ## Light, dark, and full variants
43
+
44
+ The three skins use identical values, shared domain, coordinates, and series ordering. Only semantic colors, paper, and framing change. In the full editorial form, add a short headline, a single finding caption, and a source line that states the domain and period; keep the plot itself unchanged. Check ink opacity ramps after compositing in each skin, because their apparent lightness reverses.
45
+
46
+ ## Accessibility
47
+
48
+ Include a title and description with the two state names, unit, domain, and main direction of change. Endpoint names and values are required redundant encodings, so color is never the sole identity cue. Keep the value labels on the correct row and maintain sufficient text and line contrast. A focal accent under 3:1 must not be the only cue; reinforce it with line weight, labels, and legend wording. Preserve legibility when printed in grayscale.
49
+
50
+ ## Verifier gates
51
+
52
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=slopegraph path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify both endpoint positions from the one declared scale and compare every line, name, value, and state caption with its binding against source values and this guide; a matching ID alone does not prove those properties. Review the endpoint gutters in exported 16:9 and 4:3 layouts.
53
+
54
+ ## Anti-patterns
55
+
56
+ - Different scales, units, origins, or transforms on the two axes.
57
+ - Moving an endpoint or its printed value to reduce a collision.
58
+ - Three or more states, a single series, a line colored uniquely for every series, or a crowded legend.
59
+ - Missing values silently interpolated, unbound labels, or values omitted at either end.
60
+ - Gridlines that repeat the endpoint values, or a curved segment that implies an unobserved path.
61
+ - Calling a crossing a dated event or reading an intermediate value from the line.
62
+
63
+ ## Related references
64
+
65
+ [Line chart](type-line.md) · [Scatter plot](type-scatter.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,53 @@
1
+ # Lifecycle phase map
2
+
3
+ **Catalog ID:** `state-lifecycle`<br>
4
+ **Parent grammar:** [State machine](type-state.md)
5
+
6
+ ## Purpose and selection
7
+
8
+ Use this state-machine specialization when one subject proceeds through a short ordered lifecycle and waits, retries, recovery, cancellation, and final outcomes are essential to the story. It keeps the progress rail separate from interruptions and terminal results. Use ordinary state machine for dense guard logic and [Sequence](type-sequence.md) when actor messages or request timing are central.
9
+
10
+ ## Content schema
11
+
12
+ Prepare one subject, four or five primary phase states, zero to two wait/recovery states, and zero to two terminal states. Each phase has a stable id, short name, and optional short qualifier. Each transition has a source, target, event, and optional guard or action. Record cancellation and failure separately when both can happen. Mark any optional start/end pseudo-state explicitly.
13
+
14
+ ## Deterministic layout recipe
15
+
16
+ 1. Draw the primary phases in a single left-to-right rail in actual lifecycle order. Keep their centers on a common baseline and use equal box widths unless the longest label needs a wider shared size.
17
+ 2. Place wait and recovery states in a separate support band above the phase rail. Connect them to the phase where they interrupt and show the labeled re-entry edge back into the lifecycle. A retry loop names the retry limit or trigger.
18
+ 3. Place terminal outcomes in a separate band below the rail. Use separate boxes for cancelled and failed outcomes where both exist. Join each outcome to its actual transition source; do not route every phase to every terminal state unless the model says so.
19
+ 4. Add event/guard/action labels beside the corresponding edges. Keep loopbacks outside the main rail and assign distinct ports to preserve direction at crossings.
20
+ 5. Show the complete small lifecycle in one static frame: 4–5 primary phases, ≤2 support states, ≤2 terminal states, ≤9 total states, and ≤10 transitions. If either limit is reached, split the overview from detailed guard logic.
21
+
22
+ ## Visual encoding
23
+
24
+ Position and band headings identify primary progress, waiting/recovery, and termination. Use box style and explicit tags such as `WAIT`, `RECOVERY`, and `TERMINAL` as redundant cues; use no more than two accent elements and never use color as the sole distinction. Keep event labels in a mono role and state names in the sans role.
25
+
26
+ ## Korean text
27
+
28
+ Use short Korean names for phases and outcomes, with Pretendard and sufficient line height for multi-line Hangul. Use consistent verbs or nouns across the rail; do not mix “진행 중” labels with action sentences unless the model requires it. Use mono for event IDs, retry counts, and system terms. Keep `취소` and `실패` explicit even if they share a subdued tone. See [Korean typography](korean-typography.md).
29
+
30
+ ## Light, dark, and full variants
31
+
32
+ All variants preserve the same three bands, state positions, connectors, and labels. Light and dark variants alter only semantic colors. The full editorial variant may add a title, one sentence explaining the lifecycle boundary, and a source note; it should not turn the rail into a card dashboard or add steps. Keep band labels readable on both backgrounds.
33
+
34
+ ## Accessibility
35
+
36
+ Use a title and description that name the subject, primary progression, interruption path, and terminal outcomes. Band position, text tags, and connector direction must distinguish progress from recovery without hue. Label every re-entry edge. Preserve readable node labels and distinct arrowheads after export; provide a logical reading sequence that follows the primary rail before support and terminal paths.
37
+
38
+ ## Verifier gates
39
+
40
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=state-lifecycle path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify band membership, counts, and labeled transition rules against source values and this guide; a matching ID alone does not prove those properties. Inspect the loopback and distinct terminal paths in every rendered skin.
41
+
42
+ ## Anti-patterns
43
+
44
+ - Actor lifelines or request/response arrows disguised as lifecycle phases.
45
+ - Wait states placed on the primary progress rail.
46
+ - Cancellation and failure merged into one color-only outcome.
47
+ - A retry loop with no labeled event or re-entry destination.
48
+ - Every implementation-level guard copied into an overview.
49
+ - Missing support or terminal states in the static fallback.
50
+
51
+ ## Related references
52
+
53
+ [State machine](type-state.md) · [Sequence](type-sequence.md) · [Semantic patterns](semantic-patterns.md#9-lifecycle-phase-map) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,59 @@
1
+ # State machine
2
+
3
+ **Catalog ID:** `state`
4
+
5
+ ## Purpose and selection
6
+
7
+ Use a state machine when a subject has a finite set of modes and legal transitions depend on events, guards, or actions. Examples include an order status, connection state, form wizard, and job queue. Use [Sequence](type-sequence.md) for messages exchanged by actors; use [Lifecycle phase map](type-state-lifecycle.md) when one subject's progress, waits, retries, cancellation, and terminal outcomes deserve distinct bands.
8
+
9
+ ## Content schema
10
+
11
+ Prepare:
12
+
13
+ - A list of distinct state records: stable id, short state name, optional qualifier, and role (`initial`, ordinary, terminal, error).
14
+ - A list of transition records: source state, target state, triggering event, optional guard, optional action, and whether it is an entry or completion transition.
15
+ - The subject and boundary of the state model, including any excluded subsystem or external actor.
16
+ - One focal state, if the diagram needs emphasis.
17
+
18
+ Keep labels in the compact form `event [guard] / action`; omit empty portions. Every transition must identify its trigger. Add start/end pseudo-states only where they clarify entry or completion.
19
+
20
+ ## Deterministic layout recipe
21
+
22
+ 1. Order states by the dominant progression and choose one reading direction: left-to-right for progression or top-to-bottom when the page is narrow. Place the initial point first and terminal points at the flow's far end.
23
+ 2. Lay states on a simple 4 px grid with consistent box sizes for similar label lengths. Reserve small clear corridors for loopbacks before drawing any connector.
24
+ 3. Route transitions as curves around boxes, avoiding crossings. Put short self-loops above their state. Attach loopbacks to distinct points so they do not merge into an ambiguous arrowhead.
25
+ 4. Place event/guard/action text next to the transition it names, on an opaque paper-backed label if a line passes behind it. Keep guards and actions distinct in the label sequence.
26
+ 5. Draw connectors first, then state boxes and labels. Use a filled start dot and a ringed terminal marker when pseudo-states are shown. Keep the diagram within the global 9-node and 12-transition limits; over-budget logic becomes separate diagrams.
27
+
28
+ ## Visual encoding
29
+
30
+ Use quiet state boxes, one accent state at most, and consistent line style for all ordinary transitions. A start marker is a filled dot; a terminal marker is a ring with a center. Use the accent to point to the state the reader should notice, often an error state or successful completion. Label transitions rather than color-coding them; different outcomes need explicit text and, when necessary, different line patterns.
31
+
32
+ ## Korean text
33
+
34
+ Use concise Korean state names in Pretendard and preserve event identifiers or code symbols in mono. Put the event first; keep guard conditions in brackets and actions after a slash. Wrap long Korean state text within the node with phrase-level line breaks. Use no color-coded “성공/실패” distinction without visible text. Follow [Korean typography](korean-typography.md) for Hangul line height and mixed text.
35
+
36
+ ## Light, dark, and full variants
37
+
38
+ State positions, transition direction, labels, and focal state remain identical across light, dark, and full skins. Light/dark variants switch semantic token values only. The full editorial version may add one title, a concise interpretation, and a source or scope note; it must not add pseudo-states that change the model. Verify terminal rings and loopbacks at the final presentation size.
39
+
40
+ ## Accessibility
41
+
42
+ Provide a title and description naming the subject, initial condition, principal transitions, and terminal outcomes. Every transition has a readable event label; do not encode legality by color alone. Keep arrowheads separate from box borders, preserve connector contrast, and ensure start and terminal symbols differ by both shape and label. A screen-reader description should follow the flow order rather than list states alphabetically.
43
+
44
+ ## Verifier gates
45
+
46
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=state path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify state/transition structure, limits, and required labels against source values and this guide; a matching ID alone does not prove those properties. Inspect branch density and labels in rendered light, dark, and full variants; structural checks do not decide whether a transition is understandable.
47
+
48
+ ## Anti-patterns
49
+
50
+ - Unlabeled transitions or arrows whose direction is unclear.
51
+ - More than twice as many transitions as states without splitting the model.
52
+ - A separate “timeout” edge from every state when one shared rule can be stated once.
53
+ - Lifelines and actor-to-actor messages, which belong in Sequence.
54
+ - A wait/retry lifecycle squeezed into the same rail as the main phases.
55
+ - A focal state indicated only by hue, or connectors hidden behind boxes and labels.
56
+
57
+ ## Related references
58
+
59
+ [Lifecycle phase map](type-state-lifecycle.md) · [Sequence](type-sequence.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,52 @@
1
+ # Story map
2
+
3
+ **Catalog ID:** `story-map`
4
+
5
+ ## Purpose and selection
6
+
7
+ Use a story map to show one persona's end-to-end narrative and how user-visible stories are sliced into releases. The release cut is required: without it, the figure is a backlog grid rather than a planning map. Use Kanban for work state, a user journey for stages and sentiment, and a timeline for dated milestones.
8
+
9
+ ## Content schema
10
+
11
+ Provide one persona, up to five ordered activities, one or two walking-skeleton user steps under each activity, and up to three release slices. Each story card describes a user-visible outcome and belongs to one activity and one slice. Identify the single highest-risk story. Include a release cut after the first slice and a short source/context note.
12
+
13
+ ## Deterministic layout recipe
14
+
15
+ 1. Lay out activity headers from left to right in the persona's narrative order. Use a consistent 200 px card width, 24 px gutters, and equal baselines; avoid ordering by priority.
16
+ 2. Directly below, align each activity's user steps on one walking-skeleton row. Use 32 px step cards and reserve two step slots per activity so the row stays level when an activity has only one step.
17
+ 3. Add release bands underneath and label them in a fixed 96 px left margin. Use 48 px story cards and place each in its activity column. Use a subtle vertical column rule wherever a release row has gaps so empty space still reads as part of that activity.
18
+ 4. Draw one horizontal release-cut rule immediately after the first slice and label it `RELEASE CUT`. Use it as accent target one. Give only the highest-risk story card the second accent treatment and an explicit `RISK` tag.
19
+ 5. Finish with a compact legend and a source/context line. Keep the entire map within five activities, three slices, twelve story cards total, and four cards per slice. Collapse the long tail into a named “Later” slice or split the map by persona when needed.
20
+
21
+ ## Visual encoding
22
+
23
+ Backbone cards are wider than story cards; steps form the thin row between them. Release bands use low-contrast backgrounds or hairlines, and the release cut is a strong rule. Card text, activity-column position, and row label carry meaning. Use exactly two accent targets: the release cut and the single highest-risk story card; its `RISK` tag belongs to that same cue. Stories describe user outcomes rather than implementation chores. Slice names describe scope (`MVP`, `Next`, `Later`) rather than dates that can slip.
24
+
25
+ ## Korean text
26
+
27
+ Use short Korean activity and story phrases written from one persona's perspective, with Pretendard. Keep each story outcome concrete and user-visible. Use the same vocabulary for activity names across the backbone and related documents. If ticket IDs or estimates appear, render them in mono and preserve them exactly. Prefer outcome-based slice labels such as `첫 출시`, `다음`, `이후`; follow [Korean typography](korean-typography.md) for spacing and line breaks.
28
+
29
+ ## Light, dark, and full variants
30
+
31
+ The map's column order, story placement, and cut position are identical in light, dark, and full variants. Switch semantic tokens for light/dark and confirm the release rule remains visible. The full variant may add a title, a brief takeaway, and a source note around the same map; it does not add a card grid or change the release cut.
32
+
33
+ ## Accessibility
34
+
35
+ Add a title and description that state the persona, narrative direction, slices, and location of the release cut. Label all activity columns and release rows. The cut remains identifiable by both a line and text; risk uses a tag and border as well as color. Maintain readable contrast on band fills and ensure the row/column relationship is apparent without relying on card color.
36
+
37
+ ## Verifier gates
38
+
39
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=story-map path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify activity/slice/card caps, alignment, release-cut presence, and accent budget against source values and this guide; a matching ID alone does not prove those properties. Review at PPTX and DOCX target dimensions; small cards that pass the layout check may still need shorter text.
40
+
41
+ ## Anti-patterns
42
+
43
+ - No release cut, more than three slices, or date-named slices standing in for scope.
44
+ - Activities ordered by priority instead of narrative sequence.
45
+ - Stories that describe internal refactoring rather than a user outcome.
46
+ - Multiple personas, Kanban state columns, or a sentiment curve in one map.
47
+ - Cards floating without an activity column when a slice has gaps.
48
+ - More than two accent targets or a release cut encoded by color alone.
49
+
50
+ ## Related references
51
+
52
+ [Kanban](type-kanban.md) · [User journey](type-journey.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,53 @@
1
+ # Streamgraph
2
+
3
+ **Catalog ID:** `streamgraph`<br>
4
+ **Parent family:** [Line and quantitative chart guidance](type-line.md)
5
+
6
+ ## Purpose and selection
7
+
8
+ Use a streamgraph to show how a nonnegative total and its composition change across many evenly spaced periods. The outer envelope shows total volume; the layers show each component's share. Use a bar chart or table when exact per-period values matter, a line chart for a few trend points, and a 100% stacked area when only proportions matter.
9
+
10
+ ## Content schema
11
+
12
+ Supply 3–24 ordered periods and 2–6 named layers. Each layer has one nonnegative numeric value for every period, one stable display name, and a declared unit. Keep zero periods in the dataset. Provide a shared scale, the total for each period, and the source/date context. If data is illustrative, say so. Layer names contain no digits so the legend's numeric total remains unambiguous.
13
+
14
+ ## Deterministic layout recipe
15
+
16
+ 1. Fix the plot rectangle and period positions evenly from left to right. Use a symmetric baseline at its vertical center. At each period, sum all layer values and multiply by the one shared linear scale. Set the stack top to `baseline − totalHeight/2` and the bottom to `baseline + totalHeight/2`.
17
+ 2. Choose one fixed stack order for the entire chart. Put the largest aggregate layers nearest the center line and keep that order at every period; order changes would make a band's identity jump.
18
+ 3. For each period, accumulate layer thicknesses from the lower boundary. Use the same scale for every layer and period. Preserve a true zero as a zero-thickness pinch; do not interpolate or drop it.
19
+ 4. Draw boundaries as smooth curves whose control points preserve the true period vertices. If using the canonical smoothing recipe, keep control points at one-sixth of the chord; never shift vertices to make the silhouette smoother. Add a thin paper-colored separator between neighboring fills.
20
+ 5. Omit y-axis ticks and gridlines. Label periods below the plot, and put each layer's name and total in the legend. Mark at most one landmark period with a short leader and mono label. Include the shared scale or bucket size in a source line.
21
+
22
+ ## Visual encoding
23
+
24
+ Use one restrained ink-opacity ramp for nonfocal layers and one accent layer selected for the point of the story. The largest aggregate layer receives the strongest neutral tone; the accent does not automatically mean the largest. The envelope height encodes total volume; layer thickness encodes amount. Do not use a 100% normalization or private scale per layer. Use skin-neutral legend language such as “strongest tone.”
25
+
26
+ ## Korean text
27
+
28
+ Use Pretendard for layer names and period captions; use mono for totals, dates, units, and source metadata. Keep the same unit across all layers and spell it once in the axis/source line. Prefer short names without digits; if a Korean service identifier inherently includes a numeral, provide a separate short label that contains no additional number in the legend while retaining the true identifier in metadata. Follow [Korean typography](korean-typography.md) for number formatting and Hangul line height.
29
+
30
+ ## Light, dark, and full variants
31
+
32
+ Keep the dataset, layer order, stack geometry, scale, and landmark the same in all variants. Light and dark skins resolve the same ink opacities against their own paper token; check separator visibility and layer distinction after rendering. A full editorial layout may add a finding headline, a short caption, and a source note around the same plot. Do not add text inside layer shapes.
33
+
34
+ ## Accessibility
35
+
36
+ Provide a description that states the periods, unit, shared symmetric baseline, total trend, and focal layer. Name every layer in the legend and report its aggregate total. Since adjacent fill tones may be close, labels and legend order must identify each layer; hue cannot be the only cue. Avoid text over fills and confirm separators are visible in both skins and in grayscale.
37
+
38
+ ## Verifier gates
39
+
40
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=streamgraph path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify each stack boundary, fixed order, shared scale, symmetric envelope, period/layer caps, zero handling, and legend bindings from declared data against source values and this guide; a matching ID alone does not prove those properties. Inspect the smallest layer and zero pinch at presentation size.
41
+
42
+ ## Anti-patterns
43
+
44
+ - A shifting baseline, bottom-anchored stack, or independently normalized layer.
45
+ - Uneven period spacing where periods are equally spaced, or changing stack order.
46
+ - Dropping zero periods, smoothing away real vertices, or reading exact values off the envelope.
47
+ - Too many layers for the palette or text placed on colored areas.
48
+ - A legend that describes opacity by a lightness direction that reverses between skins.
49
+ - Multiple landmark callouts that compete with the overall silhouette.
50
+
51
+ ## Related references
52
+
53
+ [Line chart](type-line.md) · [Bar chart](type-bar.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,52 @@
1
+ # Swimlane
2
+
3
+ **Catalog ID:** `swimlane`
4
+
5
+ ## Purpose and selection
6
+
7
+ Use swimlanes for a cross-functional process whose key question is who owns each step and where work crosses between people, teams, or systems. Choose horizontal lanes for a left-to-right process or vertical lanes for a top-to-bottom one. Use Sequence when messages and timing between technical actors are the subject; use a flowchart for decision logic with no ownership axis.
8
+
9
+ ## Content schema
10
+
11
+ Prepare a list of up to five named lanes, each with a stable owner id and optional role. List ordered process steps with a short action, owning lane, and optional duration or condition. Record directed handoffs from one step to the next, including branch outcomes and the lane boundary crossed. Declare the process start/end and whether any step is an external dependency.
12
+
13
+ ## Deterministic layout recipe
14
+
15
+ 1. Order lanes by the real workflow, not by alphabet or team hierarchy. Allocate equal lane widths/heights and label them in a fixed margin or header band.
16
+ 2. Place process steps in chronological order along one shared axis. Each step belongs to exactly one lane and remains fully inside it. Use similarly sized cards for similar actions; allow a lane with one step to keep its empty space.
17
+ 3. Draw lane dividers as quiet hairlines. Route ordinary progression mostly straight; route handoffs through short orthogonal turns with clear arrowheads. Give each handoff a visible exit and entry point on its lane boundary.
18
+ 4. Reorder steps when their order is flexible to reduce back-and-forth connector crossings. Keep genuine returns and branches explicit; do not disguise a loop as a normal handoff.
19
+ 5. Limit the figure to five lanes, nine steps, and twelve arrows under the global diagram budget. Split parallel teams or subprocesses into a second view when the crossings obscure ownership.
20
+
21
+ ## Visual encoding
22
+
23
+ Lane headings carry ownership; node placement carries responsibility; arrows carry sequence and handoff. Use a single accent for the handoff with the greatest cost, risk, or latency, and label that reason in a callout or legend. Do not color every lane differently: lane position and heading already encode owner. Decision outcomes require text and visibly distinct branches.
24
+
25
+ ## Korean text
26
+
27
+ Use Pretendard for lane names and action labels. Keep action wording short and consistent, for example verb-first steps in Korean. Use mono only for system identifiers, time codes, and ticket references. Keep step labels inside their lane without splitting a compound name at an awkward syllable boundary. Follow [Korean typography](korean-typography.md) for line breaks and mixed script.
28
+
29
+ ## Light, dark, and full variants
30
+
31
+ Lane order, task positions, and handoff routing remain fixed across light, dark, and full variants. Change only semantic tokens between light and dark; verify the lane dividers still separate areas without dominating the process. A full editorial version can add a concise process title, one summary of the costly handoff, and a source or scope note; no additional lanes are implied by decorative framing.
32
+
33
+ ## Accessibility
34
+
35
+ Include a title and description that name the process, lane owners, direction of progression, and any consequential handoff. Make lane headers visible in text and keep every step wholly within its owner's lane. Handoff arrows should cross boundaries clearly and include arrowheads; color is supplemental. Provide an ordered textual summary for screen readers and check that connector direction survives grayscale export.
36
+
37
+ ## Verifier gates
38
+
39
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=swimlane path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify lane count, step ownership, and handoff geometry against source values and this guide; a matching ID alone does not prove those properties. Inspect lane crossings in both wide and portrait exports; verify that any sideways scrolling stays inside the diagram container.
40
+
41
+ ## Anti-patterns
42
+
43
+ - An unlabeled lane or an action card straddling two owners.
44
+ - Too many colored lanes with no corresponding semantic distinction.
45
+ - Repeated back-and-forth crossings caused by a poor step order.
46
+ - Message-level protocol details that belong in Sequence.
47
+ - Handoffs indicated by proximity or color without a directed connector.
48
+ - A legend that calls attention to the accent but does not name its meaning.
49
+
50
+ ## Related references
51
+
52
+ [Sequence](type-sequence.md) · [Flowchart](type-flowchart.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)
@@ -0,0 +1,52 @@
1
+ # Timeline
2
+
3
+ **Catalog ID:** `timeline`
4
+
5
+ ## Purpose and selection
6
+
7
+ Use a timeline for events whose position on a real or declared time scale is the main point: release history, incidents, milestones, or a roadmap of dated events. Use Gantt for task durations and dependencies, and use Swimlane when ownership and handoffs matter more than elapsed time.
8
+
9
+ ## Content schema
10
+
11
+ Each event needs a stable id, label, exact date/time or honest date interval, optional owner/category, and source. Declare the time zone and granularity when relevant. Mark which event is editorially focal. If a date is approximate, preserve the uncertainty as a range or explicit qualifier instead of inventing a day.
12
+
13
+ ## Deterministic layout recipe
14
+
15
+ 1. Declare the time domain `[t0, t1]`, scale, and tick interval. Map each exact event time with `x(t) = plotLeft + (t − t0) × plotWidth / (t1 − t0)`. Unequal elapsed intervals therefore receive unequal spacing.
16
+ 2. Draw one quiet horizontal baseline and ticks at meaningful calendar boundaries. Put date labels below the baseline in chronological order.
17
+ 3. Place an event mark at its mapped x coordinate. Alternate event labels above and below the line and connect each label with a short hairline. For dense events, use a visible axis break, widen the plot, or split the time range; do not compress dates invisibly.
18
+ 4. Draw a major milestone with a slightly larger mark and the single accent treatment. For a true interval, use a span with both endpoints or a band and label the interval; do not represent duration with an event dot.
19
+ 5. Keep the timeline to a readable number of events. When the time unit changes, use separate clearly labeled panels rather than mixing scales on one baseline.
20
+
21
+ ## Visual encoding
22
+
23
+ Position alone encodes time. Size and accent may mark editorial importance, never event duration. Use explicit text for event category, milestone status, or uncertainty. Draw axis breaks when a discontinuity changes the spacing. Avoid decorative icons unless they add a stable category cue with a text equivalent.
24
+
25
+ ## Korean text
26
+
27
+ Use Pretendard for event labels and mono for dates, time codes, and source markers. Keep one date format throughout the figure; state the timezone where an hour could be ambiguous. Korean date labels such as `2026년 9월` should not be compressed into a slash form with an unstated locale. Put uncertainty in visible Korean text (`약`, `전후`, `범위`) or show an interval. Follow [Korean typography](korean-typography.md) for numerals and mixed text.
28
+
29
+ ## Light, dark, and full variants
30
+
31
+ All variants retain exact event positions, tick intervals, and interval widths. Light and dark variants change semantic tokens only. The full editorial layout may add a title, a short time-range summary, and a source line; it must preserve the original temporal scale. Check the baseline and focal mark in grayscale and in both skins.
32
+
33
+ ## Accessibility
34
+
35
+ Provide a title and description with the date range, scale, event order, and any uncertainty or axis break. Label ticks with units. Alternate label placement to reduce collision but preserve each label-to-event leader. Milestone status must be named in text as well as shown with an accent mark. Ensure markers and rules contrast against the paper.
36
+
37
+ ## Verifier gates
38
+
39
+ Run `python3 scripts/verify-diagram.py --canvas path/to/diagram.html` to check implemented SVG geometry, overlap, contrast, accessibility, and visible-text rules. Review theme or profile polarity, data correctness, and other unreported properties manually. Run `python3 scripts/verify-type.py --type=timeline path/to/diagram.html` to check catalog identity and structural rules registered for that ID. Separately verify monotonic event placement, time-to-x consistency, declared intervals, and axis breaks against source values and this guide; a matching ID alone does not prove those properties. Inspect the densest part of the timeline at the actual presentation width.
40
+
41
+ ## Anti-patterns
42
+
43
+ - Equal spacing for events with unequal elapsed time.
44
+ - A missing time unit, timezone, range qualifier, or visible axis break.
45
+ - A dot used for an event with a meaningful duration.
46
+ - Labels colliding over the baseline or detached from their events.
47
+ - Using icon shape or color alone to identify milestone category.
48
+ - Reordering events to make the layout look balanced.
49
+
50
+ ## Related references
51
+
52
+ [Gantt](type-gantt.md) · [Swimlane](type-swimlane.md) · [Style guide](style-guide.md) · [Output spec](output-spec.md) · [Accessibility](accessibility.md) · [Korean typography](korean-typography.md) · [Verifier guide](verifier-guide.md) · [Office export](office-pptx-docx.md) · [Export](export.md)