create-yss-spec 2.1.5 → 2.1.7

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 (3444) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/template/.agents/skills/yss-audit-log/references/source-index.md +4 -3
  4. package/template/.agents/skills/yss-cache/references/source-index.md +4 -3
  5. package/template/.agents/skills/yss-components/references/frontend-docs.md +1 -1
  6. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  7. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  8. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  9. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  10. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  11. package/template/.agents/skills/yss-design-system/SKILL.md +2 -2
  12. package/template/.agents/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  13. package/template/.agents/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  14. package/template/.agents/skills/yss-dictionary/references/source-index.md +25 -25
  15. package/template/.agents/skills/yss-distributed-id/references/source-index.md +6 -6
  16. package/template/.agents/skills/yss-domain/SKILL.md +2 -2
  17. package/template/.agents/skills/yss-dto/SKILL.md +19 -4
  18. package/template/.agents/skills/yss-dto/agents/openai.yaml +1 -1
  19. package/template/.agents/skills/yss-dto/references/README.md +9 -2
  20. package/template/.agents/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  21. package/template/.agents/skills/yss-dto/references/source-index.md +7 -4
  22. package/template/.agents/skills/yss-excel-mvc/references/source-index.md +3 -3
  23. package/template/.agents/skills/yss-exception/references/source-index.md +3 -3
  24. package/template/.agents/skills/yss-hook/references/frontend-docs.md +1 -1
  25. package/template/.agents/skills/yss-jdbc/references/source-index.md +3 -3
  26. package/template/.agents/skills/yss-log/references/source-index.md +3 -3
  27. package/template/.agents/skills/yss-mybatis/SKILL.md +1 -1
  28. package/template/.agents/skills/yss-mybatis/references/source-index.md +3 -3
  29. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +18 -6
  30. package/template/.agents/skills/yss-openapi-governance/SKILL.md +11 -1
  31. package/template/.agents/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  32. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +2 -0
  33. package/template/.agents/skills/yss-repository/SKILL.md +2 -2
  34. package/template/.agents/skills/yss-resilience4j/references/source-index.md +3 -3
  35. package/template/.agents/skills/yss-router/references/boundaries.md +0 -3
  36. package/template/.agents/skills/yss-security-algorithm/references/source-index.md +3 -3
  37. package/template/.agents/skills/yss-source-index/SKILL.md +3 -3
  38. package/template/.agents/skills/yss-source-index/references/source-map-config.md +0 -2
  39. package/template/.agents/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  40. package/template/.agents/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  41. package/template/.agents/skills/yss-taskflow/references/source-index.md +3 -3
  42. package/template/.agents/skills/yss-ui/references/frontend-docs.md +1 -1
  43. package/template/.agents/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  44. package/template/.agents/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  45. package/template/.agents/skills/yss-userinfo/references/source-index.md +3 -3
  46. package/template/.agents/skills/yss-validation/references/source-index.md +5 -24
  47. package/template/.agents/skills/yss-web-controller/SKILL.md +5 -5
  48. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  49. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  50. package/template/.claude/skills/yss-audit-log/references/source-index.md +4 -3
  51. package/template/.claude/skills/yss-cache/references/source-index.md +4 -3
  52. package/template/.claude/skills/yss-components/references/frontend-docs.md +1 -1
  53. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  54. package/template/.claude/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  55. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  56. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  57. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  58. package/template/.claude/skills/yss-design-system/SKILL.md +2 -2
  59. package/template/.claude/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  60. package/template/.claude/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  61. package/template/.claude/skills/yss-dictionary/references/source-index.md +25 -25
  62. package/template/.claude/skills/yss-distributed-id/references/source-index.md +6 -6
  63. package/template/.claude/skills/yss-domain/SKILL.md +2 -2
  64. package/template/.claude/skills/yss-dto/SKILL.md +19 -4
  65. package/template/.claude/skills/yss-dto/agents/openai.yaml +1 -1
  66. package/template/.claude/skills/yss-dto/references/README.md +9 -2
  67. package/template/.claude/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  68. package/template/.claude/skills/yss-dto/references/source-index.md +7 -4
  69. package/template/.claude/skills/yss-excel-mvc/references/source-index.md +3 -3
  70. package/template/.claude/skills/yss-exception/references/source-index.md +3 -3
  71. package/template/.claude/skills/yss-hook/references/frontend-docs.md +1 -1
  72. package/template/.claude/skills/yss-jdbc/references/source-index.md +3 -3
  73. package/template/.claude/skills/yss-log/references/source-index.md +3 -3
  74. package/template/.claude/skills/yss-mybatis/SKILL.md +1 -1
  75. package/template/.claude/skills/yss-mybatis/references/source-index.md +3 -3
  76. package/template/.claude/skills/yss-openapi-draft-review/SKILL.md +18 -6
  77. package/template/.claude/skills/yss-openapi-governance/SKILL.md +11 -1
  78. package/template/.claude/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  79. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +2 -0
  80. package/template/.claude/skills/yss-repository/SKILL.md +2 -2
  81. package/template/.claude/skills/yss-resilience4j/references/source-index.md +3 -3
  82. package/template/.claude/skills/yss-router/references/boundaries.md +0 -3
  83. package/template/.claude/skills/yss-security-algorithm/references/source-index.md +3 -3
  84. package/template/.claude/skills/yss-source-index/SKILL.md +3 -3
  85. package/template/.claude/skills/yss-source-index/references/source-map-config.md +0 -2
  86. package/template/.claude/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  87. package/template/.claude/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  88. package/template/.claude/skills/yss-taskflow/references/source-index.md +3 -3
  89. package/template/.claude/skills/yss-ui/references/frontend-docs.md +1 -1
  90. package/template/.claude/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  91. package/template/.claude/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  92. package/template/.claude/skills/yss-userinfo/references/source-index.md +3 -3
  93. package/template/.claude/skills/yss-validation/references/source-index.md +5 -24
  94. package/template/.claude/skills/yss-web-controller/SKILL.md +5 -5
  95. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  96. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  97. package/template/.codex/skills/yss-audit-log/references/source-index.md +4 -3
  98. package/template/.codex/skills/yss-cache/references/source-index.md +4 -3
  99. package/template/.codex/skills/yss-components/references/frontend-docs.md +1 -1
  100. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  101. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  102. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  103. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  104. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  105. package/template/.codex/skills/yss-design-system/SKILL.md +2 -2
  106. package/template/.codex/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  107. package/template/.codex/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  108. package/template/.codex/skills/yss-dictionary/references/source-index.md +25 -25
  109. package/template/.codex/skills/yss-distributed-id/references/source-index.md +6 -6
  110. package/template/.codex/skills/yss-domain/SKILL.md +2 -2
  111. package/template/.codex/skills/yss-dto/SKILL.md +19 -4
  112. package/template/.codex/skills/yss-dto/agents/openai.yaml +1 -1
  113. package/template/.codex/skills/yss-dto/references/README.md +9 -2
  114. package/template/.codex/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  115. package/template/.codex/skills/yss-dto/references/source-index.md +7 -4
  116. package/template/.codex/skills/yss-excel-mvc/references/source-index.md +3 -3
  117. package/template/.codex/skills/yss-exception/references/source-index.md +3 -3
  118. package/template/.codex/skills/yss-hook/references/frontend-docs.md +1 -1
  119. package/template/.codex/skills/yss-jdbc/references/source-index.md +3 -3
  120. package/template/.codex/skills/yss-log/references/source-index.md +3 -3
  121. package/template/.codex/skills/yss-mybatis/SKILL.md +1 -1
  122. package/template/.codex/skills/yss-mybatis/references/source-index.md +3 -3
  123. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +18 -6
  124. package/template/.codex/skills/yss-openapi-governance/SKILL.md +11 -1
  125. package/template/.codex/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  126. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +2 -0
  127. package/template/.codex/skills/yss-repository/SKILL.md +2 -2
  128. package/template/.codex/skills/yss-resilience4j/references/source-index.md +3 -3
  129. package/template/.codex/skills/yss-router/references/boundaries.md +0 -3
  130. package/template/.codex/skills/yss-security-algorithm/references/source-index.md +3 -3
  131. package/template/.codex/skills/yss-source-index/SKILL.md +3 -3
  132. package/template/.codex/skills/yss-source-index/references/source-map-config.md +0 -2
  133. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  134. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  135. package/template/.codex/skills/yss-taskflow/references/source-index.md +3 -3
  136. package/template/.codex/skills/yss-ui/references/frontend-docs.md +1 -1
  137. package/template/.codex/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  138. package/template/.codex/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  139. package/template/.codex/skills/yss-userinfo/references/source-index.md +3 -3
  140. package/template/.codex/skills/yss-validation/references/source-index.md +5 -24
  141. package/template/.codex/skills/yss-web-controller/SKILL.md +5 -5
  142. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  143. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  144. package/template/.github/workflows/template-node-tooling.yml +61 -0
  145. package/template/.hermes/skills/yss-audit-log/references/source-index.md +4 -3
  146. package/template/.hermes/skills/yss-cache/references/source-index.md +4 -3
  147. package/template/.hermes/skills/yss-components/references/frontend-docs.md +1 -1
  148. package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  149. package/template/.hermes/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  150. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  151. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  152. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  153. package/template/.hermes/skills/yss-design-system/SKILL.md +2 -2
  154. package/template/.hermes/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  155. package/template/.hermes/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  156. package/template/.hermes/skills/yss-dictionary/references/source-index.md +25 -25
  157. package/template/.hermes/skills/yss-distributed-id/references/source-index.md +6 -6
  158. package/template/.hermes/skills/yss-domain/SKILL.md +2 -2
  159. package/template/.hermes/skills/yss-dto/SKILL.md +19 -4
  160. package/template/.hermes/skills/yss-dto/agents/openai.yaml +1 -1
  161. package/template/.hermes/skills/yss-dto/references/README.md +9 -2
  162. package/template/.hermes/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  163. package/template/.hermes/skills/yss-dto/references/source-index.md +7 -4
  164. package/template/.hermes/skills/yss-excel-mvc/references/source-index.md +3 -3
  165. package/template/.hermes/skills/yss-exception/references/source-index.md +3 -3
  166. package/template/.hermes/skills/yss-hook/references/frontend-docs.md +1 -1
  167. package/template/.hermes/skills/yss-jdbc/references/source-index.md +3 -3
  168. package/template/.hermes/skills/yss-log/references/source-index.md +3 -3
  169. package/template/.hermes/skills/yss-mybatis/SKILL.md +1 -1
  170. package/template/.hermes/skills/yss-mybatis/references/source-index.md +3 -3
  171. package/template/.hermes/skills/yss-openapi-draft-review/SKILL.md +18 -6
  172. package/template/.hermes/skills/yss-openapi-governance/SKILL.md +11 -1
  173. package/template/.hermes/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  174. package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +2 -0
  175. package/template/.hermes/skills/yss-repository/SKILL.md +2 -2
  176. package/template/.hermes/skills/yss-resilience4j/references/source-index.md +3 -3
  177. package/template/.hermes/skills/yss-router/references/boundaries.md +0 -3
  178. package/template/.hermes/skills/yss-security-algorithm/references/source-index.md +3 -3
  179. package/template/.hermes/skills/yss-source-index/SKILL.md +3 -3
  180. package/template/.hermes/skills/yss-source-index/references/source-map-config.md +0 -2
  181. package/template/.hermes/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  182. package/template/.hermes/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  183. package/template/.hermes/skills/yss-taskflow/references/source-index.md +3 -3
  184. package/template/.hermes/skills/yss-ui/references/frontend-docs.md +1 -1
  185. package/template/.hermes/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  186. package/template/.hermes/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  187. package/template/.hermes/skills/yss-userinfo/references/source-index.md +3 -3
  188. package/template/.hermes/skills/yss-validation/references/source-index.md +5 -24
  189. package/template/.hermes/skills/yss-web-controller/SKILL.md +5 -5
  190. package/template/.hermes/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  191. package/template/.hermes/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  192. package/template/.nvmrc +1 -0
  193. package/template/.pi/skills/yss-audit-log/references/source-index.md +4 -3
  194. package/template/.pi/skills/yss-cache/references/source-index.md +4 -3
  195. package/template/.pi/skills/yss-components/references/frontend-docs.md +1 -1
  196. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  197. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  198. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  199. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  200. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  201. package/template/.pi/skills/yss-design-system/SKILL.md +2 -2
  202. package/template/.pi/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  203. package/template/.pi/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  204. package/template/.pi/skills/yss-dictionary/references/source-index.md +25 -25
  205. package/template/.pi/skills/yss-distributed-id/references/source-index.md +6 -6
  206. package/template/.pi/skills/yss-domain/SKILL.md +2 -2
  207. package/template/.pi/skills/yss-dto/SKILL.md +19 -4
  208. package/template/.pi/skills/yss-dto/agents/openai.yaml +1 -1
  209. package/template/.pi/skills/yss-dto/references/README.md +9 -2
  210. package/template/.pi/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  211. package/template/.pi/skills/yss-dto/references/source-index.md +7 -4
  212. package/template/.pi/skills/yss-excel-mvc/references/source-index.md +3 -3
  213. package/template/.pi/skills/yss-exception/references/source-index.md +3 -3
  214. package/template/.pi/skills/yss-hook/references/frontend-docs.md +1 -1
  215. package/template/.pi/skills/yss-jdbc/references/source-index.md +3 -3
  216. package/template/.pi/skills/yss-log/references/source-index.md +3 -3
  217. package/template/.pi/skills/yss-mybatis/SKILL.md +1 -1
  218. package/template/.pi/skills/yss-mybatis/references/source-index.md +3 -3
  219. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +18 -6
  220. package/template/.pi/skills/yss-openapi-governance/SKILL.md +11 -1
  221. package/template/.pi/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  222. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +2 -0
  223. package/template/.pi/skills/yss-repository/SKILL.md +2 -2
  224. package/template/.pi/skills/yss-resilience4j/references/source-index.md +3 -3
  225. package/template/.pi/skills/yss-router/references/boundaries.md +0 -3
  226. package/template/.pi/skills/yss-security-algorithm/references/source-index.md +3 -3
  227. package/template/.pi/skills/yss-source-index/SKILL.md +3 -3
  228. package/template/.pi/skills/yss-source-index/references/source-map-config.md +0 -2
  229. package/template/.pi/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  230. package/template/.pi/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  231. package/template/.pi/skills/yss-taskflow/references/source-index.md +3 -3
  232. package/template/.pi/skills/yss-ui/references/frontend-docs.md +1 -1
  233. package/template/.pi/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  234. package/template/.pi/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  235. package/template/.pi/skills/yss-userinfo/references/source-index.md +3 -3
  236. package/template/.pi/skills/yss-validation/references/source-index.md +5 -24
  237. package/template/.pi/skills/yss-web-controller/SKILL.md +5 -5
  238. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  239. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  240. package/template/.qoder/skills/yss-audit-log/references/source-index.md +4 -3
  241. package/template/.qoder/skills/yss-cache/references/source-index.md +4 -3
  242. package/template/.qoder/skills/yss-components/references/frontend-docs.md +1 -1
  243. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  244. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  245. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  246. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  247. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  248. package/template/.qoder/skills/yss-design-system/SKILL.md +2 -2
  249. package/template/.qoder/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  250. package/template/.qoder/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  251. package/template/.qoder/skills/yss-dictionary/references/source-index.md +25 -25
  252. package/template/.qoder/skills/yss-distributed-id/references/source-index.md +6 -6
  253. package/template/.qoder/skills/yss-domain/SKILL.md +2 -2
  254. package/template/.qoder/skills/yss-dto/SKILL.md +19 -4
  255. package/template/.qoder/skills/yss-dto/agents/openai.yaml +1 -1
  256. package/template/.qoder/skills/yss-dto/references/README.md +9 -2
  257. package/template/.qoder/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  258. package/template/.qoder/skills/yss-dto/references/source-index.md +7 -4
  259. package/template/.qoder/skills/yss-excel-mvc/references/source-index.md +3 -3
  260. package/template/.qoder/skills/yss-exception/references/source-index.md +3 -3
  261. package/template/.qoder/skills/yss-hook/references/frontend-docs.md +1 -1
  262. package/template/.qoder/skills/yss-jdbc/references/source-index.md +3 -3
  263. package/template/.qoder/skills/yss-log/references/source-index.md +3 -3
  264. package/template/.qoder/skills/yss-mybatis/SKILL.md +1 -1
  265. package/template/.qoder/skills/yss-mybatis/references/source-index.md +3 -3
  266. package/template/.qoder/skills/yss-openapi-draft-review/SKILL.md +18 -6
  267. package/template/.qoder/skills/yss-openapi-governance/SKILL.md +11 -1
  268. package/template/.qoder/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  269. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +2 -0
  270. package/template/.qoder/skills/yss-repository/SKILL.md +2 -2
  271. package/template/.qoder/skills/yss-resilience4j/references/source-index.md +3 -3
  272. package/template/.qoder/skills/yss-router/references/boundaries.md +0 -3
  273. package/template/.qoder/skills/yss-security-algorithm/references/source-index.md +3 -3
  274. package/template/.qoder/skills/yss-source-index/SKILL.md +3 -3
  275. package/template/.qoder/skills/yss-source-index/references/source-map-config.md +0 -2
  276. package/template/.qoder/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  277. package/template/.qoder/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  278. package/template/.qoder/skills/yss-taskflow/references/source-index.md +3 -3
  279. package/template/.qoder/skills/yss-ui/references/frontend-docs.md +1 -1
  280. package/template/.qoder/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  281. package/template/.qoder/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  282. package/template/.qoder/skills/yss-userinfo/references/source-index.md +3 -3
  283. package/template/.qoder/skills/yss-validation/references/source-index.md +5 -24
  284. package/template/.qoder/skills/yss-web-controller/SKILL.md +5 -5
  285. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  286. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  287. package/template/.trae/skills/yss-audit-log/references/source-index.md +4 -3
  288. package/template/.trae/skills/yss-cache/references/source-index.md +4 -3
  289. package/template/.trae/skills/yss-components/references/frontend-docs.md +1 -1
  290. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +6 -6
  291. package/template/.trae/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  292. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  293. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  294. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  295. package/template/.trae/skills/yss-design-system/SKILL.md +2 -2
  296. package/template/.trae/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  297. package/template/.trae/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  298. package/template/.trae/skills/yss-dictionary/references/source-index.md +25 -25
  299. package/template/.trae/skills/yss-distributed-id/references/source-index.md +6 -6
  300. package/template/.trae/skills/yss-domain/SKILL.md +2 -2
  301. package/template/.trae/skills/yss-dto/SKILL.md +19 -4
  302. package/template/.trae/skills/yss-dto/agents/openai.yaml +1 -1
  303. package/template/.trae/skills/yss-dto/references/README.md +9 -2
  304. package/template/.trae/skills/yss-dto/references/openapi-wire-profile.yaml +181 -0
  305. package/template/.trae/skills/yss-dto/references/source-index.md +7 -4
  306. package/template/.trae/skills/yss-excel-mvc/references/source-index.md +3 -3
  307. package/template/.trae/skills/yss-exception/references/source-index.md +3 -3
  308. package/template/.trae/skills/yss-hook/references/frontend-docs.md +1 -1
  309. package/template/.trae/skills/yss-jdbc/references/source-index.md +3 -3
  310. package/template/.trae/skills/yss-log/references/source-index.md +3 -3
  311. package/template/.trae/skills/yss-mybatis/SKILL.md +1 -1
  312. package/template/.trae/skills/yss-mybatis/references/source-index.md +3 -3
  313. package/template/.trae/skills/yss-openapi-draft-review/SKILL.md +18 -6
  314. package/template/.trae/skills/yss-openapi-governance/SKILL.md +11 -1
  315. package/template/.trae/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  316. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +2 -0
  317. package/template/.trae/skills/yss-repository/SKILL.md +2 -2
  318. package/template/.trae/skills/yss-resilience4j/references/source-index.md +3 -3
  319. package/template/.trae/skills/yss-router/references/boundaries.md +0 -3
  320. package/template/.trae/skills/yss-security-algorithm/references/source-index.md +3 -3
  321. package/template/.trae/skills/yss-source-index/SKILL.md +3 -3
  322. package/template/.trae/skills/yss-source-index/references/source-map-config.md +0 -2
  323. package/template/.trae/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  324. package/template/.trae/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  325. package/template/.trae/skills/yss-taskflow/references/source-index.md +3 -3
  326. package/template/.trae/skills/yss-ui/references/frontend-docs.md +1 -1
  327. package/template/.trae/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  328. package/template/.trae/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  329. package/template/.trae/skills/yss-userinfo/references/source-index.md +3 -3
  330. package/template/.trae/skills/yss-validation/references/source-index.md +5 -24
  331. package/template/.trae/skills/yss-web-controller/SKILL.md +5 -5
  332. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  333. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  334. package/template/CONTEXT.md +6 -0
  335. package/template/README.md +0 -2
  336. package/template/__yss_dotfile__.gitignore +2 -17
  337. package/template/docs/agents/skills-maintenance.md +2 -0
  338. package/template/docs/api/templates/openapi-draft-review-checklist.md +6 -0
  339. package/template/docs/architecture/README.md +1 -18
  340. package/template/docs/design/README.md +1 -2
  341. package/template/docs/user-guide//345/244/226/351/203/250/345/221/275/344/273/244/350/241/214/345/267/245/345/205/267/345/256/236/350/267/265/346/214/207/345/215/227.md +1 -1
  342. package/template/docs/user-guide//350/247/204/346/240/274/344/270/216/344/273/273/345/212/241/350/277/201/347/247/273/346/214/207/345/215/227.md +4 -0
  343. package/template/scripts/export-yss-skills +3 -385
  344. package/template/scripts/generate-lifecycle-artifacts +2 -26
  345. package/template/scripts/implementation-path-policy +6 -0
  346. package/template/scripts/lib/export-skills.mjs +186 -0
  347. package/template/scripts/lib/implementation-path-policy.mjs +32 -0
  348. package/template/scripts/lib/lifecycle-registry.mjs +175 -0
  349. package/template/scripts/lib/repository-mode.mjs +39 -0
  350. package/template/scripts/lib/scenario-checks.mjs +75 -0
  351. package/template/scripts/lib/skill-supply-chain.mjs +124 -0
  352. package/template/scripts/node-generate-lifecycle-artifacts.mjs +33 -0
  353. package/template/scripts/node-verify-lifecycle-registry.mjs +61 -0
  354. package/template/scripts/repository-mode +9 -0
  355. package/template/scripts/sync-skills +9 -154
  356. package/template/scripts/update-skill-lock +8 -254
  357. package/template/scripts/vendor/NOTICES.md +45 -0
  358. package/template/scripts/vendor/manifest.json +563 -0
  359. package/template/scripts/vendor/xml.mjs +4103 -0
  360. package/template/scripts/vendor/yaml.mjs +6311 -0
  361. package/template/scripts/verify-governance-release +37 -38
  362. package/template/scripts/verify-implementation-path-scenarios +36 -39
  363. package/template/scripts/verify-lifecycle-registry +2 -67
  364. package/template/scripts/verify-lifecycle-scenarios +4 -694
  365. package/template/scripts/verify-matt-yss-integration-scenarios +3 -801
  366. package/template/scripts/verify-openapi-json-handoff-scenarios +3 -270
  367. package/template/scripts/verify-openapi-yaml-first-scenarios +3 -120
  368. package/template/scripts/verify-prototype-backend-scaffold-scenarios +3 -261
  369. package/template/scripts/verify-scaffold-generator-scenarios +4 -4
  370. package/template/scripts/verify-template +20 -277
  371. package/template/scripts/verify-yss-dto-openapi-profile +109 -0
  372. package/template/scripts/verify-yss-dto-openapi-scenarios +4 -0
  373. package/template/scripts/verify-yss-router-scenarios +3 -942
  374. package/template/scripts/verify-yss-ui-scenarios +54 -65
  375. package/template/skills-lock.json +86 -206
  376. package/template/wiki/raw/README.md +0 -2
  377. package/template/wiki/raw/skills-lock.json +0 -75
  378. package/template/wiki/wiki/YSS/345/267/245/347/250/213/346/212/200/350/203/275/344/275/223/347/263/273.md +1 -1
  379. package/template/yss-public-skills.json +1 -7
  380. package/template.manifest.json +4 -1
  381. package/template.snapshot.json +5 -26
  382. package/template/.agents/skills/beautiful-article/README.md +0 -450
  383. package/template/.agents/skills/beautiful-article/README.zh-CN.md +0 -450
  384. package/template/.agents/skills/beautiful-article/SKILL.md +0 -466
  385. package/template/.agents/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  386. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  387. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  388. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  389. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  390. package/template/.agents/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  391. package/template/.agents/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  392. package/template/.agents/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  393. package/template/.agents/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  394. package/template/.agents/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  395. package/template/.agents/skills/beautiful-article/manifest.json +0 -15
  396. package/template/.agents/skills/beautiful-article/references/article-types/briefing.md +0 -32
  397. package/template/.agents/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  398. package/template/.agents/skills/beautiful-article/references/article-types/essay.md +0 -31
  399. package/template/.agents/skills/beautiful-article/references/article-types/explainer.md +0 -32
  400. package/template/.agents/skills/beautiful-article/references/article-types/full-report.md +0 -32
  401. package/template/.agents/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  402. package/template/.agents/skills/beautiful-article/references/article-types/longform.md +0 -32
  403. package/template/.agents/skills/beautiful-article/references/article-types/review.md +0 -32
  404. package/template/.agents/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  405. package/template/.agents/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  406. package/template/.agents/skills/beautiful-article/references/article-types.md +0 -42
  407. package/template/.agents/skills/beautiful-article/references/asset-policy.md +0 -71
  408. package/template/.agents/skills/beautiful-article/references/component-policy.md +0 -103
  409. package/template/.agents/skills/beautiful-article/references/cover.md +0 -208
  410. package/template/.agents/skills/beautiful-article/references/harness.md +0 -35
  411. package/template/.agents/skills/beautiful-article/references/html-output.md +0 -42
  412. package/template/.agents/skills/beautiful-article/references/information-density.md +0 -50
  413. package/template/.agents/skills/beautiful-article/references/layout.md +0 -46
  414. package/template/.agents/skills/beautiful-article/references/pdf-output.md +0 -208
  415. package/template/.agents/skills/beautiful-article/references/plan-template.md +0 -109
  416. package/template/.agents/skills/beautiful-article/references/raw-policy.md +0 -86
  417. package/template/.agents/skills/beautiful-article/references/repair-policy.md +0 -35
  418. package/template/.agents/skills/beautiful-article/references/review-checklist.md +0 -133
  419. package/template/.agents/skills/beautiful-article/references/scaffold.md +0 -77
  420. package/template/.agents/skills/beautiful-article/references/section-build.md +0 -100
  421. package/template/.agents/skills/beautiful-article/references/source-to-markdown.md +0 -118
  422. package/template/.agents/skills/beautiful-article/references/theme-selection.md +0 -48
  423. package/template/.agents/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  424. package/template/.agents/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  425. package/template/.agents/skills/beautiful-article/scripts/scaffold.sh +0 -172
  426. package/template/.agents/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  427. package/template/.agents/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  428. package/template/.agents/skills/beautiful-article/theme-profiles/andy.md +0 -57
  429. package/template/.agents/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  430. package/template/.agents/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  431. package/template/.agents/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  432. package/template/.agents/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  433. package/template/.agents/skills/beautiful-article/theme-profiles/index.json +0 -112
  434. package/template/.agents/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  435. package/template/.agents/skills/beautiful-article/theme-profiles/press.md +0 -61
  436. package/template/.agents/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  437. package/template/.agents/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  438. package/template/.agents/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  439. package/template/.agents/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  440. package/template/.agents/skills/drawio/.mcp.json +0 -8
  441. package/template/.agents/skills/drawio/CHANGELOG.md +0 -216
  442. package/template/.agents/skills/drawio/SKILL.md +0 -157
  443. package/template/.agents/skills/drawio/agents/interface.yaml +0 -26
  444. package/template/.agents/skills/drawio/agents/openai.yaml +0 -26
  445. package/template/.agents/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  446. package/template/.agents/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  447. package/template/.agents/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  448. package/template/.agents/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  449. package/template/.agents/skills/drawio/assets/examples/login-flow.drawio +0 -6
  450. package/template/.agents/skills/drawio/assets/examples/microservices.drawio +0 -6
  451. package/template/.agents/skills/drawio/assets/examples/neural-network.drawio +0 -6
  452. package/template/.agents/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  453. package/template/.agents/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  454. package/template/.agents/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  455. package/template/.agents/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  456. package/template/.agents/skills/drawio/assets/palettes/c4-blue.json +0 -29
  457. package/template/.agents/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  458. package/template/.agents/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  459. package/template/.agents/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  460. package/template/.agents/skills/drawio/assets/palettes/ieee-color.json +0 -17
  461. package/template/.agents/skills/drawio/assets/palettes/journal-jama.json +0 -20
  462. package/template/.agents/skills/drawio/assets/palettes/journal-npg.json +0 -23
  463. package/template/.agents/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  464. package/template/.agents/skills/drawio/assets/palettes/morandi.json +0 -21
  465. package/template/.agents/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  466. package/template/.agents/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  467. package/template/.agents/skills/drawio/assets/palettes/tol-bright.json +0 -20
  468. package/template/.agents/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  469. package/template/.agents/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  470. package/template/.agents/skills/drawio/assets/palettes/tol-muted.json +0 -22
  471. package/template/.agents/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  472. package/template/.agents/skills/drawio/assets/schemas/spec.schema.json +0 -620
  473. package/template/.agents/skills/drawio/assets/themes/academic-color.json +0 -299
  474. package/template/.agents/skills/drawio/assets/themes/academic.json +0 -245
  475. package/template/.agents/skills/drawio/assets/themes/arch-dark.json +0 -253
  476. package/template/.agents/skills/drawio/assets/themes/blueprint.json +0 -246
  477. package/template/.agents/skills/drawio/assets/themes/dark-luxury.json +0 -246
  478. package/template/.agents/skills/drawio/assets/themes/dark-terminal.json +0 -244
  479. package/template/.agents/skills/drawio/assets/themes/dark.json +0 -220
  480. package/template/.agents/skills/drawio/assets/themes/high-contrast.json +0 -220
  481. package/template/.agents/skills/drawio/assets/themes/nature.json +0 -220
  482. package/template/.agents/skills/drawio/assets/themes/notion-clean.json +0 -246
  483. package/template/.agents/skills/drawio/assets/themes/tech-blue.json +0 -220
  484. package/template/.agents/skills/drawio/evals/README.md +0 -17
  485. package/template/.agents/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  486. package/template/.agents/skills/drawio/evals/baseline-prompts.json +0 -122
  487. package/template/.agents/skills/drawio/evals/darwin-results.tsv +0 -4
  488. package/template/.agents/skills/drawio/evals/evals.json +0 -223
  489. package/template/.agents/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  490. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  491. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  492. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  493. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  494. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  495. package/template/.agents/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  496. package/template/.agents/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  497. package/template/.agents/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  498. package/template/.agents/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  499. package/template/.agents/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  500. package/template/.agents/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  501. package/template/.agents/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  502. package/template/.agents/skills/drawio/evals/upstream-integration-cases.json +0 -78
  503. package/template/.agents/skills/drawio/evals/vision-preview-cases.json +0 -147
  504. package/template/.agents/skills/drawio/references/docs/agent-diagrams.md +0 -164
  505. package/template/.agents/skills/drawio/references/docs/ah-format.md +0 -322
  506. package/template/.agents/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  507. package/template/.agents/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  508. package/template/.agents/skills/drawio/references/docs/code-importers.md +0 -53
  509. package/template/.agents/skills/drawio/references/docs/config-importers.md +0 -68
  510. package/template/.agents/skills/drawio/references/docs/design-system/README.md +0 -204
  511. package/template/.agents/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  512. package/template/.agents/skills/drawio/references/docs/design-system/connectors.md +0 -388
  513. package/template/.agents/skills/drawio/references/docs/design-system/formulas.md +0 -196
  514. package/template/.agents/skills/drawio/references/docs/design-system/icons.md +0 -332
  515. package/template/.agents/skills/drawio/references/docs/design-system/shapes.md +0 -269
  516. package/template/.agents/skills/drawio/references/docs/design-system/specification.md +0 -754
  517. package/template/.agents/skills/drawio/references/docs/design-system/themes.md +0 -441
  518. package/template/.agents/skills/drawio/references/docs/design-system/tokens.md +0 -232
  519. package/template/.agents/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  520. package/template/.agents/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  521. package/template/.agents/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  522. package/template/.agents/skills/drawio/references/docs/math-typesetting.md +0 -258
  523. package/template/.agents/skills/drawio/references/docs/mcp-tools.md +0 -85
  524. package/template/.agents/skills/drawio/references/docs/migration-readiness.md +0 -73
  525. package/template/.agents/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  526. package/template/.agents/skills/drawio/references/docs/style-extraction.md +0 -261
  527. package/template/.agents/skills/drawio/references/docs/style-presets.md +0 -126
  528. package/template/.agents/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  529. package/template/.agents/skills/drawio/references/docs/xml-format.md +0 -53
  530. package/template/.agents/skills/drawio/references/examples/README.md +0 -33
  531. package/template/.agents/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  532. package/template/.agents/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  533. package/template/.agents/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  534. package/template/.agents/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  535. package/template/.agents/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  536. package/template/.agents/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  537. package/template/.agents/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  538. package/template/.agents/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  539. package/template/.agents/skills/drawio/references/examples/e-commerce.yaml +0 -141
  540. package/template/.agents/skills/drawio/references/examples/importers/README.md +0 -10
  541. package/template/.agents/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  542. package/template/.agents/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  543. package/template/.agents/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  544. package/template/.agents/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  545. package/template/.agents/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  546. package/template/.agents/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  547. package/template/.agents/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  548. package/template/.agents/skills/drawio/references/examples/importers/schema.sql +0 -10
  549. package/template/.agents/skills/drawio/references/examples/importers/terraform.tf +0 -9
  550. package/template/.agents/skills/drawio/references/examples/login-flow.yaml +0 -65
  551. package/template/.agents/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  552. package/template/.agents/skills/drawio/references/examples/microservices.yaml +0 -58
  553. package/template/.agents/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  554. package/template/.agents/skills/drawio/references/examples/neural-network.yaml +0 -66
  555. package/template/.agents/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  556. package/template/.agents/skills/drawio/references/examples/palettes/README.md +0 -29
  557. package/template/.agents/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  558. package/template/.agents/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  559. package/template/.agents/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  560. package/template/.agents/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  561. package/template/.agents/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  562. package/template/.agents/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  563. package/template/.agents/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  564. package/template/.agents/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  565. package/template/.agents/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  566. package/template/.agents/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  567. package/template/.agents/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  568. package/template/.agents/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  569. package/template/.agents/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  570. package/template/.agents/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  571. package/template/.agents/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  572. package/template/.agents/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  573. package/template/.agents/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  574. package/template/.agents/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  575. package/template/.agents/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  576. package/template/.agents/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  577. package/template/.agents/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  578. package/template/.agents/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  579. package/template/.agents/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  580. package/template/.agents/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  581. package/template/.agents/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  582. package/template/.agents/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  583. package/template/.agents/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  584. package/template/.agents/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  585. package/template/.agents/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  586. package/template/.agents/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  587. package/template/.agents/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  588. package/template/.agents/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  589. package/template/.agents/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  590. package/template/.agents/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  591. package/template/.agents/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  592. package/template/.agents/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  593. package/template/.agents/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  594. package/template/.agents/skills/drawio/references/official/style-reference.md +0 -936
  595. package/template/.agents/skills/drawio/references/official/xml-reference.md +0 -262
  596. package/template/.agents/skills/drawio/references/palette.schema.json +0 -59
  597. package/template/.agents/skills/drawio/references/theme.schema.json +0 -249
  598. package/template/.agents/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  599. package/template/.agents/skills/drawio/references/workflows/create.md +0 -195
  600. package/template/.agents/skills/drawio/references/workflows/edit.md +0 -174
  601. package/template/.agents/skills/drawio/references/workflows/replicate.md +0 -239
  602. package/template/.agents/skills/drawio/references/workflows/visual-review.md +0 -108
  603. package/template/.agents/skills/drawio/reports/output_quality_scorecard.md +0 -106
  604. package/template/.agents/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  605. package/template/.agents/skills/drawio/scripts/adapters/ci.js +0 -139
  606. package/template/.agents/skills/drawio/scripts/adapters/ci.test.js +0 -41
  607. package/template/.agents/skills/drawio/scripts/adapters/code-common.js +0 -171
  608. package/template/.agents/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  609. package/template/.agents/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  610. package/template/.agents/skills/drawio/scripts/adapters/compose.js +0 -134
  611. package/template/.agents/skills/drawio/scripts/adapters/compose.test.js +0 -54
  612. package/template/.agents/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  613. package/template/.agents/skills/drawio/scripts/adapters/config-common.js +0 -131
  614. package/template/.agents/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  615. package/template/.agents/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  616. package/template/.agents/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  617. package/template/.agents/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  618. package/template/.agents/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  619. package/template/.agents/skills/drawio/scripts/adapters/go-code.js +0 -168
  620. package/template/.agents/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  621. package/template/.agents/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  622. package/template/.agents/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  623. package/template/.agents/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  624. package/template/.agents/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  625. package/template/.agents/skills/drawio/scripts/adapters/identity.js +0 -244
  626. package/template/.agents/skills/drawio/scripts/adapters/identity.test.js +0 -123
  627. package/template/.agents/skills/drawio/scripts/adapters/index.js +0 -489
  628. package/template/.agents/skills/drawio/scripts/adapters/index.test.js +0 -152
  629. package/template/.agents/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  630. package/template/.agents/skills/drawio/scripts/adapters/js-code.js +0 -141
  631. package/template/.agents/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  632. package/template/.agents/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  633. package/template/.agents/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  634. package/template/.agents/skills/drawio/scripts/adapters/openapi.js +0 -98
  635. package/template/.agents/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  636. package/template/.agents/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  637. package/template/.agents/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  638. package/template/.agents/skills/drawio/scripts/adapters/optional-python.js +0 -127
  639. package/template/.agents/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  640. package/template/.agents/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  641. package/template/.agents/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  642. package/template/.agents/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  643. package/template/.agents/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  644. package/template/.agents/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  645. package/template/.agents/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  646. package/template/.agents/skills/drawio/scripts/adapters/python-code.js +0 -246
  647. package/template/.agents/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  648. package/template/.agents/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  649. package/template/.agents/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  650. package/template/.agents/skills/drawio/scripts/adapters/rust-code.js +0 -207
  651. package/template/.agents/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  652. package/template/.agents/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  653. package/template/.agents/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  654. package/template/.agents/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  655. package/template/.agents/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  656. package/template/.agents/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  657. package/template/.agents/skills/drawio/scripts/cli.js +0 -700
  658. package/template/.agents/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  659. package/template/.agents/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  660. package/template/.agents/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  661. package/template/.agents/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  662. package/template/.agents/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  663. package/template/.agents/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  664. package/template/.agents/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  665. package/template/.agents/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  666. package/template/.agents/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  667. package/template/.agents/skills/drawio/scripts/dsl/document-spec.js +0 -256
  668. package/template/.agents/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  669. package/template/.agents/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  670. package/template/.agents/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  671. package/template/.agents/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  672. package/template/.agents/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  673. package/template/.agents/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  674. package/template/.agents/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  675. package/template/.agents/skills/drawio/scripts/dsl/multi-page.js +0 -224
  676. package/template/.agents/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  677. package/template/.agents/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  678. package/template/.agents/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  679. package/template/.agents/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  680. package/template/.agents/skills/drawio/scripts/dsl/palette.js +0 -302
  681. package/template/.agents/skills/drawio/scripts/dsl/palette.test.js +0 -197
  682. package/template/.agents/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  683. package/template/.agents/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  684. package/template/.agents/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  685. package/template/.agents/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  686. package/template/.agents/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  687. package/template/.agents/skills/drawio/scripts/install.bat +0 -64
  688. package/template/.agents/skills/drawio/scripts/install.sh +0 -44
  689. package/template/.agents/skills/drawio/scripts/math/index.js +0 -317
  690. package/template/.agents/skills/drawio/scripts/math/index.test.js +0 -62
  691. package/template/.agents/skills/drawio/scripts/package.json +0 -1
  692. package/template/.agents/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  693. package/template/.agents/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  694. package/template/.agents/skills/drawio/scripts/postprocess/cli.js +0 -228
  695. package/template/.agents/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  696. package/template/.agents/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  697. package/template/.agents/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  698. package/template/.agents/skills/drawio/scripts/postprocess/html.js +0 -197
  699. package/template/.agents/skills/drawio/scripts/postprocess/html.test.js +0 -50
  700. package/template/.agents/skills/drawio/scripts/postprocess/index.js +0 -5
  701. package/template/.agents/skills/drawio/scripts/postprocess/input.js +0 -112
  702. package/template/.agents/skills/drawio/scripts/postprocess/input.test.js +0 -73
  703. package/template/.agents/skills/drawio/scripts/postprocess/mutate.js +0 -584
  704. package/template/.agents/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  705. package/template/.agents/skills/drawio/scripts/postprocess/projection.js +0 -178
  706. package/template/.agents/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  707. package/template/.agents/skills/drawio/scripts/runtime/artifacts.js +0 -283
  708. package/template/.agents/skills/drawio/scripts/runtime/desktop.js +0 -204
  709. package/template/.agents/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  710. package/template/.agents/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  711. package/template/.agents/skills/drawio/scripts/runtime/export-stability.js +0 -75
  712. package/template/.agents/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  713. package/template/.agents/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  714. package/template/.agents/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  715. package/template/.agents/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  716. package/template/.agents/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  717. package/template/.agents/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  718. package/template/.agents/skills/drawio/scripts/shared/xml-utils.js +0 -241
  719. package/template/.agents/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  720. package/template/.agents/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  721. package/template/.agents/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  722. package/template/.agents/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  723. package/template/.agents/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  724. package/template/.agents/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  725. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  726. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  727. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  728. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  729. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  730. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  731. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  732. package/template/.agents/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  733. package/template/.agents/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  734. package/template/.agents/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  735. package/template/.agents/skills/drawio/styles/built-in/corporate.json +0 -49
  736. package/template/.agents/skills/drawio/styles/built-in/default.json +0 -49
  737. package/template/.agents/skills/drawio/styles/built-in/handdrawn.json +0 -49
  738. package/template/.agents/skills/drawio/styles/schema.json +0 -112
  739. package/template/.agents/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  740. package/template/.agents/skills/drawio-academic-skills/README.md +0 -103
  741. package/template/.agents/skills/drawio-academic-skills/README_CN.md +0 -103
  742. package/template/.agents/skills/drawio-academic-skills/SKILL.md +0 -161
  743. package/template/.agents/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  744. package/template/.agents/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  745. package/template/.agents/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  746. package/template/.agents/skills/drawio-academic-skills/evals/README.md +0 -13
  747. package/template/.agents/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  748. package/template/.agents/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  749. package/template/.agents/skills/drawio-academic-skills/evals/evals.json +0 -228
  750. package/template/.agents/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  751. package/template/.agents/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  752. package/template/.agents/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  753. package/template/.agents/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  754. package/template/.agents/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  755. package/template/.agents/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  756. package/template/.agents/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  757. package/template/.agents/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  758. package/template/.agents/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  759. package/template/.agents/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  760. package/template/.agents/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  761. package/template/.agents/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  762. package/template/.agents/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  763. package/template/.agents/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  764. package/template/.agents/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  765. package/template/.agents/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  766. package/template/.agents/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  767. package/template/.agents/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  768. package/template/.agents/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  769. package/template/.agents/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  770. package/template/.agents/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  771. package/template/.agents/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  772. package/template/.agents/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  773. package/template/.agents/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  774. package/template/.agents/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  775. package/template/.agents/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  776. package/template/.agents/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  777. package/template/.agents/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  778. package/template/.agents/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  779. package/template/.agents/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  780. package/template/.agents/skills/kb-retriever/README.md +0 -197
  781. package/template/.agents/skills/kb-retriever/README.zh-CN.md +0 -197
  782. package/template/.agents/skills/kb-retriever/SKILL.md +0 -250
  783. package/template/.agents/skills/kb-retriever/manifest.json +0 -15
  784. package/template/.agents/skills/kb-retriever/references/excel_analysis.md +0 -129
  785. package/template/.agents/skills/kb-retriever/references/excel_reading.md +0 -72
  786. package/template/.agents/skills/kb-retriever/references/pdf_reading.md +0 -362
  787. package/template/.agents/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  788. package/template/.agents/skills/yss-db2mybatis/SKILL.md +0 -94
  789. package/template/.agents/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  790. package/template/.agents/skills/yss-db2mybatis/assets/$.java +0 -19
  791. package/template/.agents/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  792. package/template/.agents/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  793. package/template/.agents/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  794. package/template/.agents/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  795. package/template/.agents/skills/yss-db2mybatis/assets/po.java.template +0 -18
  796. package/template/.agents/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  797. package/template/.agents/skills/yss-db2mybatis/config/metadata.json +0 -334
  798. package/template/.agents/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  799. package/template/.agents/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  800. package/template/.agents/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  801. package/template/.agents/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  802. package/template/.agents/skills/yss-db2mybatis/requirements.txt +0 -4
  803. package/template/.agents/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  804. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  805. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  806. package/template/.agents/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  807. package/template/.agents/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  808. package/template/.agents/skills/yss-valuation/SKILL.md +0 -40
  809. package/template/.agents/skills/yss-valuation/agents/openai.yaml +0 -4
  810. package/template/.agents/skills/yss-valuation/references/source-index.md +0 -37
  811. package/template/.agents/skills/yss-variable/SKILL.md +0 -47
  812. package/template/.agents/skills/yss-variable/agents/openai.yaml +0 -4
  813. package/template/.agents/skills/yss-variable/references/source-index.md +0 -60
  814. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  815. package/template/.agents/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  816. package/template/.claude/skills/beautiful-article/README.md +0 -450
  817. package/template/.claude/skills/beautiful-article/README.zh-CN.md +0 -450
  818. package/template/.claude/skills/beautiful-article/SKILL.md +0 -466
  819. package/template/.claude/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  820. package/template/.claude/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  821. package/template/.claude/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  822. package/template/.claude/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  823. package/template/.claude/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  824. package/template/.claude/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  825. package/template/.claude/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  826. package/template/.claude/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  827. package/template/.claude/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  828. package/template/.claude/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  829. package/template/.claude/skills/beautiful-article/manifest.json +0 -15
  830. package/template/.claude/skills/beautiful-article/references/article-types/briefing.md +0 -32
  831. package/template/.claude/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  832. package/template/.claude/skills/beautiful-article/references/article-types/essay.md +0 -31
  833. package/template/.claude/skills/beautiful-article/references/article-types/explainer.md +0 -32
  834. package/template/.claude/skills/beautiful-article/references/article-types/full-report.md +0 -32
  835. package/template/.claude/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  836. package/template/.claude/skills/beautiful-article/references/article-types/longform.md +0 -32
  837. package/template/.claude/skills/beautiful-article/references/article-types/review.md +0 -32
  838. package/template/.claude/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  839. package/template/.claude/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  840. package/template/.claude/skills/beautiful-article/references/article-types.md +0 -42
  841. package/template/.claude/skills/beautiful-article/references/asset-policy.md +0 -71
  842. package/template/.claude/skills/beautiful-article/references/component-policy.md +0 -103
  843. package/template/.claude/skills/beautiful-article/references/cover.md +0 -208
  844. package/template/.claude/skills/beautiful-article/references/harness.md +0 -35
  845. package/template/.claude/skills/beautiful-article/references/html-output.md +0 -42
  846. package/template/.claude/skills/beautiful-article/references/information-density.md +0 -50
  847. package/template/.claude/skills/beautiful-article/references/layout.md +0 -46
  848. package/template/.claude/skills/beautiful-article/references/pdf-output.md +0 -208
  849. package/template/.claude/skills/beautiful-article/references/plan-template.md +0 -109
  850. package/template/.claude/skills/beautiful-article/references/raw-policy.md +0 -86
  851. package/template/.claude/skills/beautiful-article/references/repair-policy.md +0 -35
  852. package/template/.claude/skills/beautiful-article/references/review-checklist.md +0 -133
  853. package/template/.claude/skills/beautiful-article/references/scaffold.md +0 -77
  854. package/template/.claude/skills/beautiful-article/references/section-build.md +0 -100
  855. package/template/.claude/skills/beautiful-article/references/source-to-markdown.md +0 -118
  856. package/template/.claude/skills/beautiful-article/references/theme-selection.md +0 -48
  857. package/template/.claude/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  858. package/template/.claude/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  859. package/template/.claude/skills/beautiful-article/scripts/scaffold.sh +0 -172
  860. package/template/.claude/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  861. package/template/.claude/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  862. package/template/.claude/skills/beautiful-article/theme-profiles/andy.md +0 -57
  863. package/template/.claude/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  864. package/template/.claude/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  865. package/template/.claude/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  866. package/template/.claude/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  867. package/template/.claude/skills/beautiful-article/theme-profiles/index.json +0 -112
  868. package/template/.claude/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  869. package/template/.claude/skills/beautiful-article/theme-profiles/press.md +0 -61
  870. package/template/.claude/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  871. package/template/.claude/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  872. package/template/.claude/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  873. package/template/.claude/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  874. package/template/.claude/skills/drawio/.mcp.json +0 -8
  875. package/template/.claude/skills/drawio/CHANGELOG.md +0 -216
  876. package/template/.claude/skills/drawio/SKILL.md +0 -157
  877. package/template/.claude/skills/drawio/agents/interface.yaml +0 -26
  878. package/template/.claude/skills/drawio/agents/openai.yaml +0 -26
  879. package/template/.claude/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  880. package/template/.claude/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  881. package/template/.claude/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  882. package/template/.claude/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  883. package/template/.claude/skills/drawio/assets/examples/login-flow.drawio +0 -6
  884. package/template/.claude/skills/drawio/assets/examples/microservices.drawio +0 -6
  885. package/template/.claude/skills/drawio/assets/examples/neural-network.drawio +0 -6
  886. package/template/.claude/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  887. package/template/.claude/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  888. package/template/.claude/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  889. package/template/.claude/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  890. package/template/.claude/skills/drawio/assets/palettes/c4-blue.json +0 -29
  891. package/template/.claude/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  892. package/template/.claude/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  893. package/template/.claude/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  894. package/template/.claude/skills/drawio/assets/palettes/ieee-color.json +0 -17
  895. package/template/.claude/skills/drawio/assets/palettes/journal-jama.json +0 -20
  896. package/template/.claude/skills/drawio/assets/palettes/journal-npg.json +0 -23
  897. package/template/.claude/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  898. package/template/.claude/skills/drawio/assets/palettes/morandi.json +0 -21
  899. package/template/.claude/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  900. package/template/.claude/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  901. package/template/.claude/skills/drawio/assets/palettes/tol-bright.json +0 -20
  902. package/template/.claude/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  903. package/template/.claude/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  904. package/template/.claude/skills/drawio/assets/palettes/tol-muted.json +0 -22
  905. package/template/.claude/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  906. package/template/.claude/skills/drawio/assets/schemas/spec.schema.json +0 -620
  907. package/template/.claude/skills/drawio/assets/themes/academic-color.json +0 -299
  908. package/template/.claude/skills/drawio/assets/themes/academic.json +0 -245
  909. package/template/.claude/skills/drawio/assets/themes/arch-dark.json +0 -253
  910. package/template/.claude/skills/drawio/assets/themes/blueprint.json +0 -246
  911. package/template/.claude/skills/drawio/assets/themes/dark-luxury.json +0 -246
  912. package/template/.claude/skills/drawio/assets/themes/dark-terminal.json +0 -244
  913. package/template/.claude/skills/drawio/assets/themes/dark.json +0 -220
  914. package/template/.claude/skills/drawio/assets/themes/high-contrast.json +0 -220
  915. package/template/.claude/skills/drawio/assets/themes/nature.json +0 -220
  916. package/template/.claude/skills/drawio/assets/themes/notion-clean.json +0 -246
  917. package/template/.claude/skills/drawio/assets/themes/tech-blue.json +0 -220
  918. package/template/.claude/skills/drawio/evals/README.md +0 -17
  919. package/template/.claude/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  920. package/template/.claude/skills/drawio/evals/baseline-prompts.json +0 -122
  921. package/template/.claude/skills/drawio/evals/darwin-results.tsv +0 -4
  922. package/template/.claude/skills/drawio/evals/evals.json +0 -223
  923. package/template/.claude/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  924. package/template/.claude/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  925. package/template/.claude/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  926. package/template/.claude/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  927. package/template/.claude/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  928. package/template/.claude/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  929. package/template/.claude/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  930. package/template/.claude/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  931. package/template/.claude/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  932. package/template/.claude/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  933. package/template/.claude/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  934. package/template/.claude/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  935. package/template/.claude/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  936. package/template/.claude/skills/drawio/evals/upstream-integration-cases.json +0 -78
  937. package/template/.claude/skills/drawio/evals/vision-preview-cases.json +0 -147
  938. package/template/.claude/skills/drawio/references/docs/agent-diagrams.md +0 -164
  939. package/template/.claude/skills/drawio/references/docs/ah-format.md +0 -322
  940. package/template/.claude/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  941. package/template/.claude/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  942. package/template/.claude/skills/drawio/references/docs/code-importers.md +0 -53
  943. package/template/.claude/skills/drawio/references/docs/config-importers.md +0 -68
  944. package/template/.claude/skills/drawio/references/docs/design-system/README.md +0 -204
  945. package/template/.claude/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  946. package/template/.claude/skills/drawio/references/docs/design-system/connectors.md +0 -388
  947. package/template/.claude/skills/drawio/references/docs/design-system/formulas.md +0 -196
  948. package/template/.claude/skills/drawio/references/docs/design-system/icons.md +0 -332
  949. package/template/.claude/skills/drawio/references/docs/design-system/shapes.md +0 -269
  950. package/template/.claude/skills/drawio/references/docs/design-system/specification.md +0 -754
  951. package/template/.claude/skills/drawio/references/docs/design-system/themes.md +0 -441
  952. package/template/.claude/skills/drawio/references/docs/design-system/tokens.md +0 -232
  953. package/template/.claude/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  954. package/template/.claude/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  955. package/template/.claude/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  956. package/template/.claude/skills/drawio/references/docs/math-typesetting.md +0 -258
  957. package/template/.claude/skills/drawio/references/docs/mcp-tools.md +0 -85
  958. package/template/.claude/skills/drawio/references/docs/migration-readiness.md +0 -73
  959. package/template/.claude/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  960. package/template/.claude/skills/drawio/references/docs/style-extraction.md +0 -261
  961. package/template/.claude/skills/drawio/references/docs/style-presets.md +0 -126
  962. package/template/.claude/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  963. package/template/.claude/skills/drawio/references/docs/xml-format.md +0 -53
  964. package/template/.claude/skills/drawio/references/examples/README.md +0 -33
  965. package/template/.claude/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  966. package/template/.claude/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  967. package/template/.claude/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  968. package/template/.claude/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  969. package/template/.claude/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  970. package/template/.claude/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  971. package/template/.claude/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  972. package/template/.claude/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  973. package/template/.claude/skills/drawio/references/examples/e-commerce.yaml +0 -141
  974. package/template/.claude/skills/drawio/references/examples/importers/README.md +0 -10
  975. package/template/.claude/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  976. package/template/.claude/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  977. package/template/.claude/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  978. package/template/.claude/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  979. package/template/.claude/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  980. package/template/.claude/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  981. package/template/.claude/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  982. package/template/.claude/skills/drawio/references/examples/importers/schema.sql +0 -10
  983. package/template/.claude/skills/drawio/references/examples/importers/terraform.tf +0 -9
  984. package/template/.claude/skills/drawio/references/examples/login-flow.yaml +0 -65
  985. package/template/.claude/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  986. package/template/.claude/skills/drawio/references/examples/microservices.yaml +0 -58
  987. package/template/.claude/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  988. package/template/.claude/skills/drawio/references/examples/neural-network.yaml +0 -66
  989. package/template/.claude/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  990. package/template/.claude/skills/drawio/references/examples/palettes/README.md +0 -29
  991. package/template/.claude/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  992. package/template/.claude/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  993. package/template/.claude/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  994. package/template/.claude/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  995. package/template/.claude/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  996. package/template/.claude/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  997. package/template/.claude/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  998. package/template/.claude/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  999. package/template/.claude/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  1000. package/template/.claude/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  1001. package/template/.claude/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  1002. package/template/.claude/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  1003. package/template/.claude/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  1004. package/template/.claude/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  1005. package/template/.claude/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  1006. package/template/.claude/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  1007. package/template/.claude/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  1008. package/template/.claude/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  1009. package/template/.claude/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  1010. package/template/.claude/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  1011. package/template/.claude/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  1012. package/template/.claude/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  1013. package/template/.claude/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  1014. package/template/.claude/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  1015. package/template/.claude/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  1016. package/template/.claude/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  1017. package/template/.claude/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  1018. package/template/.claude/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  1019. package/template/.claude/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  1020. package/template/.claude/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  1021. package/template/.claude/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  1022. package/template/.claude/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  1023. package/template/.claude/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  1024. package/template/.claude/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  1025. package/template/.claude/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  1026. package/template/.claude/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  1027. package/template/.claude/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  1028. package/template/.claude/skills/drawio/references/official/style-reference.md +0 -936
  1029. package/template/.claude/skills/drawio/references/official/xml-reference.md +0 -262
  1030. package/template/.claude/skills/drawio/references/palette.schema.json +0 -59
  1031. package/template/.claude/skills/drawio/references/theme.schema.json +0 -249
  1032. package/template/.claude/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  1033. package/template/.claude/skills/drawio/references/workflows/create.md +0 -195
  1034. package/template/.claude/skills/drawio/references/workflows/edit.md +0 -174
  1035. package/template/.claude/skills/drawio/references/workflows/replicate.md +0 -239
  1036. package/template/.claude/skills/drawio/references/workflows/visual-review.md +0 -108
  1037. package/template/.claude/skills/drawio/reports/output_quality_scorecard.md +0 -106
  1038. package/template/.claude/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  1039. package/template/.claude/skills/drawio/scripts/adapters/ci.js +0 -139
  1040. package/template/.claude/skills/drawio/scripts/adapters/ci.test.js +0 -41
  1041. package/template/.claude/skills/drawio/scripts/adapters/code-common.js +0 -171
  1042. package/template/.claude/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  1043. package/template/.claude/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  1044. package/template/.claude/skills/drawio/scripts/adapters/compose.js +0 -134
  1045. package/template/.claude/skills/drawio/scripts/adapters/compose.test.js +0 -54
  1046. package/template/.claude/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  1047. package/template/.claude/skills/drawio/scripts/adapters/config-common.js +0 -131
  1048. package/template/.claude/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  1049. package/template/.claude/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  1050. package/template/.claude/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  1051. package/template/.claude/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  1052. package/template/.claude/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  1053. package/template/.claude/skills/drawio/scripts/adapters/go-code.js +0 -168
  1054. package/template/.claude/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  1055. package/template/.claude/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  1056. package/template/.claude/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  1057. package/template/.claude/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  1058. package/template/.claude/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  1059. package/template/.claude/skills/drawio/scripts/adapters/identity.js +0 -244
  1060. package/template/.claude/skills/drawio/scripts/adapters/identity.test.js +0 -123
  1061. package/template/.claude/skills/drawio/scripts/adapters/index.js +0 -489
  1062. package/template/.claude/skills/drawio/scripts/adapters/index.test.js +0 -152
  1063. package/template/.claude/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  1064. package/template/.claude/skills/drawio/scripts/adapters/js-code.js +0 -141
  1065. package/template/.claude/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  1066. package/template/.claude/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  1067. package/template/.claude/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  1068. package/template/.claude/skills/drawio/scripts/adapters/openapi.js +0 -98
  1069. package/template/.claude/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  1070. package/template/.claude/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  1071. package/template/.claude/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  1072. package/template/.claude/skills/drawio/scripts/adapters/optional-python.js +0 -127
  1073. package/template/.claude/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  1074. package/template/.claude/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  1075. package/template/.claude/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  1076. package/template/.claude/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  1077. package/template/.claude/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  1078. package/template/.claude/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  1079. package/template/.claude/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  1080. package/template/.claude/skills/drawio/scripts/adapters/python-code.js +0 -246
  1081. package/template/.claude/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  1082. package/template/.claude/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  1083. package/template/.claude/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  1084. package/template/.claude/skills/drawio/scripts/adapters/rust-code.js +0 -207
  1085. package/template/.claude/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  1086. package/template/.claude/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  1087. package/template/.claude/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  1088. package/template/.claude/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  1089. package/template/.claude/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  1090. package/template/.claude/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  1091. package/template/.claude/skills/drawio/scripts/cli.js +0 -700
  1092. package/template/.claude/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  1093. package/template/.claude/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  1094. package/template/.claude/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  1095. package/template/.claude/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  1096. package/template/.claude/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  1097. package/template/.claude/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  1098. package/template/.claude/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  1099. package/template/.claude/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  1100. package/template/.claude/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  1101. package/template/.claude/skills/drawio/scripts/dsl/document-spec.js +0 -256
  1102. package/template/.claude/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  1103. package/template/.claude/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  1104. package/template/.claude/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  1105. package/template/.claude/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  1106. package/template/.claude/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  1107. package/template/.claude/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  1108. package/template/.claude/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  1109. package/template/.claude/skills/drawio/scripts/dsl/multi-page.js +0 -224
  1110. package/template/.claude/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  1111. package/template/.claude/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  1112. package/template/.claude/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  1113. package/template/.claude/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  1114. package/template/.claude/skills/drawio/scripts/dsl/palette.js +0 -302
  1115. package/template/.claude/skills/drawio/scripts/dsl/palette.test.js +0 -197
  1116. package/template/.claude/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  1117. package/template/.claude/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  1118. package/template/.claude/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  1119. package/template/.claude/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  1120. package/template/.claude/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  1121. package/template/.claude/skills/drawio/scripts/install.bat +0 -64
  1122. package/template/.claude/skills/drawio/scripts/install.sh +0 -44
  1123. package/template/.claude/skills/drawio/scripts/math/index.js +0 -317
  1124. package/template/.claude/skills/drawio/scripts/math/index.test.js +0 -62
  1125. package/template/.claude/skills/drawio/scripts/package.json +0 -1
  1126. package/template/.claude/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  1127. package/template/.claude/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  1128. package/template/.claude/skills/drawio/scripts/postprocess/cli.js +0 -228
  1129. package/template/.claude/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  1130. package/template/.claude/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  1131. package/template/.claude/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  1132. package/template/.claude/skills/drawio/scripts/postprocess/html.js +0 -197
  1133. package/template/.claude/skills/drawio/scripts/postprocess/html.test.js +0 -50
  1134. package/template/.claude/skills/drawio/scripts/postprocess/index.js +0 -5
  1135. package/template/.claude/skills/drawio/scripts/postprocess/input.js +0 -112
  1136. package/template/.claude/skills/drawio/scripts/postprocess/input.test.js +0 -73
  1137. package/template/.claude/skills/drawio/scripts/postprocess/mutate.js +0 -584
  1138. package/template/.claude/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  1139. package/template/.claude/skills/drawio/scripts/postprocess/projection.js +0 -178
  1140. package/template/.claude/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  1141. package/template/.claude/skills/drawio/scripts/runtime/artifacts.js +0 -283
  1142. package/template/.claude/skills/drawio/scripts/runtime/desktop.js +0 -204
  1143. package/template/.claude/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  1144. package/template/.claude/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  1145. package/template/.claude/skills/drawio/scripts/runtime/export-stability.js +0 -75
  1146. package/template/.claude/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  1147. package/template/.claude/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  1148. package/template/.claude/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  1149. package/template/.claude/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  1150. package/template/.claude/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  1151. package/template/.claude/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  1152. package/template/.claude/skills/drawio/scripts/shared/xml-utils.js +0 -241
  1153. package/template/.claude/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  1154. package/template/.claude/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  1155. package/template/.claude/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  1156. package/template/.claude/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  1157. package/template/.claude/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  1158. package/template/.claude/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  1159. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  1160. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  1161. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  1162. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  1163. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  1164. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  1165. package/template/.claude/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  1166. package/template/.claude/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  1167. package/template/.claude/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  1168. package/template/.claude/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  1169. package/template/.claude/skills/drawio/styles/built-in/corporate.json +0 -49
  1170. package/template/.claude/skills/drawio/styles/built-in/default.json +0 -49
  1171. package/template/.claude/skills/drawio/styles/built-in/handdrawn.json +0 -49
  1172. package/template/.claude/skills/drawio/styles/schema.json +0 -112
  1173. package/template/.claude/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  1174. package/template/.claude/skills/drawio-academic-skills/README.md +0 -103
  1175. package/template/.claude/skills/drawio-academic-skills/README_CN.md +0 -103
  1176. package/template/.claude/skills/drawio-academic-skills/SKILL.md +0 -161
  1177. package/template/.claude/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  1178. package/template/.claude/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  1179. package/template/.claude/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  1180. package/template/.claude/skills/drawio-academic-skills/evals/README.md +0 -13
  1181. package/template/.claude/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  1182. package/template/.claude/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  1183. package/template/.claude/skills/drawio-academic-skills/evals/evals.json +0 -228
  1184. package/template/.claude/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  1185. package/template/.claude/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  1186. package/template/.claude/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  1187. package/template/.claude/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  1188. package/template/.claude/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  1189. package/template/.claude/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  1190. package/template/.claude/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  1191. package/template/.claude/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  1192. package/template/.claude/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  1193. package/template/.claude/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  1194. package/template/.claude/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  1195. package/template/.claude/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  1196. package/template/.claude/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  1197. package/template/.claude/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  1198. package/template/.claude/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  1199. package/template/.claude/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  1200. package/template/.claude/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  1201. package/template/.claude/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  1202. package/template/.claude/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  1203. package/template/.claude/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  1204. package/template/.claude/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  1205. package/template/.claude/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  1206. package/template/.claude/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  1207. package/template/.claude/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  1208. package/template/.claude/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  1209. package/template/.claude/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  1210. package/template/.claude/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  1211. package/template/.claude/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  1212. package/template/.claude/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  1213. package/template/.claude/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  1214. package/template/.claude/skills/kb-retriever/README.md +0 -197
  1215. package/template/.claude/skills/kb-retriever/README.zh-CN.md +0 -197
  1216. package/template/.claude/skills/kb-retriever/SKILL.md +0 -250
  1217. package/template/.claude/skills/kb-retriever/manifest.json +0 -15
  1218. package/template/.claude/skills/kb-retriever/references/excel_analysis.md +0 -129
  1219. package/template/.claude/skills/kb-retriever/references/excel_reading.md +0 -72
  1220. package/template/.claude/skills/kb-retriever/references/pdf_reading.md +0 -362
  1221. package/template/.claude/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  1222. package/template/.claude/skills/yss-db2mybatis/SKILL.md +0 -94
  1223. package/template/.claude/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  1224. package/template/.claude/skills/yss-db2mybatis/assets/$.java +0 -19
  1225. package/template/.claude/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  1226. package/template/.claude/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  1227. package/template/.claude/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  1228. package/template/.claude/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  1229. package/template/.claude/skills/yss-db2mybatis/assets/po.java.template +0 -18
  1230. package/template/.claude/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  1231. package/template/.claude/skills/yss-db2mybatis/config/metadata.json +0 -334
  1232. package/template/.claude/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  1233. package/template/.claude/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  1234. package/template/.claude/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  1235. package/template/.claude/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  1236. package/template/.claude/skills/yss-db2mybatis/requirements.txt +0 -4
  1237. package/template/.claude/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  1238. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  1239. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  1240. package/template/.claude/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  1241. package/template/.claude/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  1242. package/template/.claude/skills/yss-valuation/SKILL.md +0 -40
  1243. package/template/.claude/skills/yss-valuation/agents/openai.yaml +0 -4
  1244. package/template/.claude/skills/yss-valuation/references/source-index.md +0 -37
  1245. package/template/.claude/skills/yss-variable/SKILL.md +0 -47
  1246. package/template/.claude/skills/yss-variable/agents/openai.yaml +0 -4
  1247. package/template/.claude/skills/yss-variable/references/source-index.md +0 -60
  1248. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  1249. package/template/.claude/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  1250. package/template/.codex/skills/beautiful-article/README.md +0 -450
  1251. package/template/.codex/skills/beautiful-article/README.zh-CN.md +0 -450
  1252. package/template/.codex/skills/beautiful-article/SKILL.md +0 -466
  1253. package/template/.codex/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  1254. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  1255. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  1256. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  1257. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  1258. package/template/.codex/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  1259. package/template/.codex/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  1260. package/template/.codex/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  1261. package/template/.codex/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  1262. package/template/.codex/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  1263. package/template/.codex/skills/beautiful-article/manifest.json +0 -15
  1264. package/template/.codex/skills/beautiful-article/references/article-types/briefing.md +0 -32
  1265. package/template/.codex/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  1266. package/template/.codex/skills/beautiful-article/references/article-types/essay.md +0 -31
  1267. package/template/.codex/skills/beautiful-article/references/article-types/explainer.md +0 -32
  1268. package/template/.codex/skills/beautiful-article/references/article-types/full-report.md +0 -32
  1269. package/template/.codex/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  1270. package/template/.codex/skills/beautiful-article/references/article-types/longform.md +0 -32
  1271. package/template/.codex/skills/beautiful-article/references/article-types/review.md +0 -32
  1272. package/template/.codex/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  1273. package/template/.codex/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  1274. package/template/.codex/skills/beautiful-article/references/article-types.md +0 -42
  1275. package/template/.codex/skills/beautiful-article/references/asset-policy.md +0 -71
  1276. package/template/.codex/skills/beautiful-article/references/component-policy.md +0 -103
  1277. package/template/.codex/skills/beautiful-article/references/cover.md +0 -208
  1278. package/template/.codex/skills/beautiful-article/references/harness.md +0 -35
  1279. package/template/.codex/skills/beautiful-article/references/html-output.md +0 -42
  1280. package/template/.codex/skills/beautiful-article/references/information-density.md +0 -50
  1281. package/template/.codex/skills/beautiful-article/references/layout.md +0 -46
  1282. package/template/.codex/skills/beautiful-article/references/pdf-output.md +0 -208
  1283. package/template/.codex/skills/beautiful-article/references/plan-template.md +0 -109
  1284. package/template/.codex/skills/beautiful-article/references/raw-policy.md +0 -86
  1285. package/template/.codex/skills/beautiful-article/references/repair-policy.md +0 -35
  1286. package/template/.codex/skills/beautiful-article/references/review-checklist.md +0 -133
  1287. package/template/.codex/skills/beautiful-article/references/scaffold.md +0 -77
  1288. package/template/.codex/skills/beautiful-article/references/section-build.md +0 -100
  1289. package/template/.codex/skills/beautiful-article/references/source-to-markdown.md +0 -118
  1290. package/template/.codex/skills/beautiful-article/references/theme-selection.md +0 -48
  1291. package/template/.codex/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  1292. package/template/.codex/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  1293. package/template/.codex/skills/beautiful-article/scripts/scaffold.sh +0 -172
  1294. package/template/.codex/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  1295. package/template/.codex/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  1296. package/template/.codex/skills/beautiful-article/theme-profiles/andy.md +0 -57
  1297. package/template/.codex/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  1298. package/template/.codex/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  1299. package/template/.codex/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  1300. package/template/.codex/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  1301. package/template/.codex/skills/beautiful-article/theme-profiles/index.json +0 -112
  1302. package/template/.codex/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  1303. package/template/.codex/skills/beautiful-article/theme-profiles/press.md +0 -61
  1304. package/template/.codex/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  1305. package/template/.codex/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  1306. package/template/.codex/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  1307. package/template/.codex/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  1308. package/template/.codex/skills/drawio/.mcp.json +0 -8
  1309. package/template/.codex/skills/drawio/CHANGELOG.md +0 -216
  1310. package/template/.codex/skills/drawio/SKILL.md +0 -157
  1311. package/template/.codex/skills/drawio/agents/interface.yaml +0 -26
  1312. package/template/.codex/skills/drawio/agents/openai.yaml +0 -26
  1313. package/template/.codex/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  1314. package/template/.codex/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  1315. package/template/.codex/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  1316. package/template/.codex/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  1317. package/template/.codex/skills/drawio/assets/examples/login-flow.drawio +0 -6
  1318. package/template/.codex/skills/drawio/assets/examples/microservices.drawio +0 -6
  1319. package/template/.codex/skills/drawio/assets/examples/neural-network.drawio +0 -6
  1320. package/template/.codex/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  1321. package/template/.codex/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  1322. package/template/.codex/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  1323. package/template/.codex/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  1324. package/template/.codex/skills/drawio/assets/palettes/c4-blue.json +0 -29
  1325. package/template/.codex/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  1326. package/template/.codex/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  1327. package/template/.codex/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  1328. package/template/.codex/skills/drawio/assets/palettes/ieee-color.json +0 -17
  1329. package/template/.codex/skills/drawio/assets/palettes/journal-jama.json +0 -20
  1330. package/template/.codex/skills/drawio/assets/palettes/journal-npg.json +0 -23
  1331. package/template/.codex/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  1332. package/template/.codex/skills/drawio/assets/palettes/morandi.json +0 -21
  1333. package/template/.codex/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  1334. package/template/.codex/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  1335. package/template/.codex/skills/drawio/assets/palettes/tol-bright.json +0 -20
  1336. package/template/.codex/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  1337. package/template/.codex/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  1338. package/template/.codex/skills/drawio/assets/palettes/tol-muted.json +0 -22
  1339. package/template/.codex/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  1340. package/template/.codex/skills/drawio/assets/schemas/spec.schema.json +0 -620
  1341. package/template/.codex/skills/drawio/assets/themes/academic-color.json +0 -299
  1342. package/template/.codex/skills/drawio/assets/themes/academic.json +0 -245
  1343. package/template/.codex/skills/drawio/assets/themes/arch-dark.json +0 -253
  1344. package/template/.codex/skills/drawio/assets/themes/blueprint.json +0 -246
  1345. package/template/.codex/skills/drawio/assets/themes/dark-luxury.json +0 -246
  1346. package/template/.codex/skills/drawio/assets/themes/dark-terminal.json +0 -244
  1347. package/template/.codex/skills/drawio/assets/themes/dark.json +0 -220
  1348. package/template/.codex/skills/drawio/assets/themes/high-contrast.json +0 -220
  1349. package/template/.codex/skills/drawio/assets/themes/nature.json +0 -220
  1350. package/template/.codex/skills/drawio/assets/themes/notion-clean.json +0 -246
  1351. package/template/.codex/skills/drawio/assets/themes/tech-blue.json +0 -220
  1352. package/template/.codex/skills/drawio/evals/README.md +0 -17
  1353. package/template/.codex/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  1354. package/template/.codex/skills/drawio/evals/baseline-prompts.json +0 -122
  1355. package/template/.codex/skills/drawio/evals/darwin-results.tsv +0 -4
  1356. package/template/.codex/skills/drawio/evals/evals.json +0 -223
  1357. package/template/.codex/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  1358. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  1359. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  1360. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  1361. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  1362. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  1363. package/template/.codex/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  1364. package/template/.codex/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  1365. package/template/.codex/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  1366. package/template/.codex/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  1367. package/template/.codex/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  1368. package/template/.codex/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  1369. package/template/.codex/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  1370. package/template/.codex/skills/drawio/evals/upstream-integration-cases.json +0 -78
  1371. package/template/.codex/skills/drawio/evals/vision-preview-cases.json +0 -147
  1372. package/template/.codex/skills/drawio/references/docs/agent-diagrams.md +0 -164
  1373. package/template/.codex/skills/drawio/references/docs/ah-format.md +0 -322
  1374. package/template/.codex/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  1375. package/template/.codex/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  1376. package/template/.codex/skills/drawio/references/docs/code-importers.md +0 -53
  1377. package/template/.codex/skills/drawio/references/docs/config-importers.md +0 -68
  1378. package/template/.codex/skills/drawio/references/docs/design-system/README.md +0 -204
  1379. package/template/.codex/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  1380. package/template/.codex/skills/drawio/references/docs/design-system/connectors.md +0 -388
  1381. package/template/.codex/skills/drawio/references/docs/design-system/formulas.md +0 -196
  1382. package/template/.codex/skills/drawio/references/docs/design-system/icons.md +0 -332
  1383. package/template/.codex/skills/drawio/references/docs/design-system/shapes.md +0 -269
  1384. package/template/.codex/skills/drawio/references/docs/design-system/specification.md +0 -754
  1385. package/template/.codex/skills/drawio/references/docs/design-system/themes.md +0 -441
  1386. package/template/.codex/skills/drawio/references/docs/design-system/tokens.md +0 -232
  1387. package/template/.codex/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  1388. package/template/.codex/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  1389. package/template/.codex/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  1390. package/template/.codex/skills/drawio/references/docs/math-typesetting.md +0 -258
  1391. package/template/.codex/skills/drawio/references/docs/mcp-tools.md +0 -85
  1392. package/template/.codex/skills/drawio/references/docs/migration-readiness.md +0 -73
  1393. package/template/.codex/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  1394. package/template/.codex/skills/drawio/references/docs/style-extraction.md +0 -261
  1395. package/template/.codex/skills/drawio/references/docs/style-presets.md +0 -126
  1396. package/template/.codex/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  1397. package/template/.codex/skills/drawio/references/docs/xml-format.md +0 -53
  1398. package/template/.codex/skills/drawio/references/examples/README.md +0 -33
  1399. package/template/.codex/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  1400. package/template/.codex/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  1401. package/template/.codex/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  1402. package/template/.codex/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  1403. package/template/.codex/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  1404. package/template/.codex/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  1405. package/template/.codex/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  1406. package/template/.codex/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  1407. package/template/.codex/skills/drawio/references/examples/e-commerce.yaml +0 -141
  1408. package/template/.codex/skills/drawio/references/examples/importers/README.md +0 -10
  1409. package/template/.codex/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  1410. package/template/.codex/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  1411. package/template/.codex/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  1412. package/template/.codex/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  1413. package/template/.codex/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  1414. package/template/.codex/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  1415. package/template/.codex/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  1416. package/template/.codex/skills/drawio/references/examples/importers/schema.sql +0 -10
  1417. package/template/.codex/skills/drawio/references/examples/importers/terraform.tf +0 -9
  1418. package/template/.codex/skills/drawio/references/examples/login-flow.yaml +0 -65
  1419. package/template/.codex/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  1420. package/template/.codex/skills/drawio/references/examples/microservices.yaml +0 -58
  1421. package/template/.codex/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  1422. package/template/.codex/skills/drawio/references/examples/neural-network.yaml +0 -66
  1423. package/template/.codex/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  1424. package/template/.codex/skills/drawio/references/examples/palettes/README.md +0 -29
  1425. package/template/.codex/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  1426. package/template/.codex/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  1427. package/template/.codex/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  1428. package/template/.codex/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  1429. package/template/.codex/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  1430. package/template/.codex/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  1431. package/template/.codex/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  1432. package/template/.codex/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  1433. package/template/.codex/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  1434. package/template/.codex/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  1435. package/template/.codex/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  1436. package/template/.codex/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  1437. package/template/.codex/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  1438. package/template/.codex/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  1439. package/template/.codex/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  1440. package/template/.codex/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  1441. package/template/.codex/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  1442. package/template/.codex/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  1443. package/template/.codex/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  1444. package/template/.codex/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  1445. package/template/.codex/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  1446. package/template/.codex/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  1447. package/template/.codex/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  1448. package/template/.codex/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  1449. package/template/.codex/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  1450. package/template/.codex/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  1451. package/template/.codex/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  1452. package/template/.codex/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  1453. package/template/.codex/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  1454. package/template/.codex/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  1455. package/template/.codex/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  1456. package/template/.codex/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  1457. package/template/.codex/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  1458. package/template/.codex/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  1459. package/template/.codex/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  1460. package/template/.codex/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  1461. package/template/.codex/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  1462. package/template/.codex/skills/drawio/references/official/style-reference.md +0 -936
  1463. package/template/.codex/skills/drawio/references/official/xml-reference.md +0 -262
  1464. package/template/.codex/skills/drawio/references/palette.schema.json +0 -59
  1465. package/template/.codex/skills/drawio/references/theme.schema.json +0 -249
  1466. package/template/.codex/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  1467. package/template/.codex/skills/drawio/references/workflows/create.md +0 -195
  1468. package/template/.codex/skills/drawio/references/workflows/edit.md +0 -174
  1469. package/template/.codex/skills/drawio/references/workflows/replicate.md +0 -239
  1470. package/template/.codex/skills/drawio/references/workflows/visual-review.md +0 -108
  1471. package/template/.codex/skills/drawio/reports/output_quality_scorecard.md +0 -106
  1472. package/template/.codex/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  1473. package/template/.codex/skills/drawio/scripts/adapters/ci.js +0 -139
  1474. package/template/.codex/skills/drawio/scripts/adapters/ci.test.js +0 -41
  1475. package/template/.codex/skills/drawio/scripts/adapters/code-common.js +0 -171
  1476. package/template/.codex/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  1477. package/template/.codex/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  1478. package/template/.codex/skills/drawio/scripts/adapters/compose.js +0 -134
  1479. package/template/.codex/skills/drawio/scripts/adapters/compose.test.js +0 -54
  1480. package/template/.codex/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  1481. package/template/.codex/skills/drawio/scripts/adapters/config-common.js +0 -131
  1482. package/template/.codex/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  1483. package/template/.codex/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  1484. package/template/.codex/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  1485. package/template/.codex/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  1486. package/template/.codex/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  1487. package/template/.codex/skills/drawio/scripts/adapters/go-code.js +0 -168
  1488. package/template/.codex/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  1489. package/template/.codex/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  1490. package/template/.codex/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  1491. package/template/.codex/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  1492. package/template/.codex/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  1493. package/template/.codex/skills/drawio/scripts/adapters/identity.js +0 -244
  1494. package/template/.codex/skills/drawio/scripts/adapters/identity.test.js +0 -123
  1495. package/template/.codex/skills/drawio/scripts/adapters/index.js +0 -489
  1496. package/template/.codex/skills/drawio/scripts/adapters/index.test.js +0 -152
  1497. package/template/.codex/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  1498. package/template/.codex/skills/drawio/scripts/adapters/js-code.js +0 -141
  1499. package/template/.codex/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  1500. package/template/.codex/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  1501. package/template/.codex/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  1502. package/template/.codex/skills/drawio/scripts/adapters/openapi.js +0 -98
  1503. package/template/.codex/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  1504. package/template/.codex/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  1505. package/template/.codex/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  1506. package/template/.codex/skills/drawio/scripts/adapters/optional-python.js +0 -127
  1507. package/template/.codex/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  1508. package/template/.codex/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  1509. package/template/.codex/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  1510. package/template/.codex/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  1511. package/template/.codex/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  1512. package/template/.codex/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  1513. package/template/.codex/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  1514. package/template/.codex/skills/drawio/scripts/adapters/python-code.js +0 -246
  1515. package/template/.codex/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  1516. package/template/.codex/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  1517. package/template/.codex/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  1518. package/template/.codex/skills/drawio/scripts/adapters/rust-code.js +0 -207
  1519. package/template/.codex/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  1520. package/template/.codex/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  1521. package/template/.codex/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  1522. package/template/.codex/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  1523. package/template/.codex/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  1524. package/template/.codex/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  1525. package/template/.codex/skills/drawio/scripts/cli.js +0 -700
  1526. package/template/.codex/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  1527. package/template/.codex/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  1528. package/template/.codex/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  1529. package/template/.codex/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  1530. package/template/.codex/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  1531. package/template/.codex/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  1532. package/template/.codex/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  1533. package/template/.codex/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  1534. package/template/.codex/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  1535. package/template/.codex/skills/drawio/scripts/dsl/document-spec.js +0 -256
  1536. package/template/.codex/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  1537. package/template/.codex/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  1538. package/template/.codex/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  1539. package/template/.codex/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  1540. package/template/.codex/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  1541. package/template/.codex/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  1542. package/template/.codex/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  1543. package/template/.codex/skills/drawio/scripts/dsl/multi-page.js +0 -224
  1544. package/template/.codex/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  1545. package/template/.codex/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  1546. package/template/.codex/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  1547. package/template/.codex/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  1548. package/template/.codex/skills/drawio/scripts/dsl/palette.js +0 -302
  1549. package/template/.codex/skills/drawio/scripts/dsl/palette.test.js +0 -197
  1550. package/template/.codex/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  1551. package/template/.codex/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  1552. package/template/.codex/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  1553. package/template/.codex/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  1554. package/template/.codex/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  1555. package/template/.codex/skills/drawio/scripts/install.bat +0 -64
  1556. package/template/.codex/skills/drawio/scripts/install.sh +0 -44
  1557. package/template/.codex/skills/drawio/scripts/math/index.js +0 -317
  1558. package/template/.codex/skills/drawio/scripts/math/index.test.js +0 -62
  1559. package/template/.codex/skills/drawio/scripts/package.json +0 -1
  1560. package/template/.codex/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  1561. package/template/.codex/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  1562. package/template/.codex/skills/drawio/scripts/postprocess/cli.js +0 -228
  1563. package/template/.codex/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  1564. package/template/.codex/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  1565. package/template/.codex/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  1566. package/template/.codex/skills/drawio/scripts/postprocess/html.js +0 -197
  1567. package/template/.codex/skills/drawio/scripts/postprocess/html.test.js +0 -50
  1568. package/template/.codex/skills/drawio/scripts/postprocess/index.js +0 -5
  1569. package/template/.codex/skills/drawio/scripts/postprocess/input.js +0 -112
  1570. package/template/.codex/skills/drawio/scripts/postprocess/input.test.js +0 -73
  1571. package/template/.codex/skills/drawio/scripts/postprocess/mutate.js +0 -584
  1572. package/template/.codex/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  1573. package/template/.codex/skills/drawio/scripts/postprocess/projection.js +0 -178
  1574. package/template/.codex/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  1575. package/template/.codex/skills/drawio/scripts/runtime/artifacts.js +0 -283
  1576. package/template/.codex/skills/drawio/scripts/runtime/desktop.js +0 -204
  1577. package/template/.codex/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  1578. package/template/.codex/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  1579. package/template/.codex/skills/drawio/scripts/runtime/export-stability.js +0 -75
  1580. package/template/.codex/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  1581. package/template/.codex/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  1582. package/template/.codex/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  1583. package/template/.codex/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  1584. package/template/.codex/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  1585. package/template/.codex/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  1586. package/template/.codex/skills/drawio/scripts/shared/xml-utils.js +0 -241
  1587. package/template/.codex/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  1588. package/template/.codex/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  1589. package/template/.codex/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  1590. package/template/.codex/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  1591. package/template/.codex/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  1592. package/template/.codex/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  1593. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  1594. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  1595. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  1596. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  1597. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  1598. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  1599. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  1600. package/template/.codex/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  1601. package/template/.codex/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  1602. package/template/.codex/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  1603. package/template/.codex/skills/drawio/styles/built-in/corporate.json +0 -49
  1604. package/template/.codex/skills/drawio/styles/built-in/default.json +0 -49
  1605. package/template/.codex/skills/drawio/styles/built-in/handdrawn.json +0 -49
  1606. package/template/.codex/skills/drawio/styles/schema.json +0 -112
  1607. package/template/.codex/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  1608. package/template/.codex/skills/drawio-academic-skills/README.md +0 -103
  1609. package/template/.codex/skills/drawio-academic-skills/README_CN.md +0 -103
  1610. package/template/.codex/skills/drawio-academic-skills/SKILL.md +0 -161
  1611. package/template/.codex/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  1612. package/template/.codex/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  1613. package/template/.codex/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  1614. package/template/.codex/skills/drawio-academic-skills/evals/README.md +0 -13
  1615. package/template/.codex/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  1616. package/template/.codex/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  1617. package/template/.codex/skills/drawio-academic-skills/evals/evals.json +0 -228
  1618. package/template/.codex/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  1619. package/template/.codex/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  1620. package/template/.codex/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  1621. package/template/.codex/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  1622. package/template/.codex/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  1623. package/template/.codex/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  1624. package/template/.codex/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  1625. package/template/.codex/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  1626. package/template/.codex/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  1627. package/template/.codex/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  1628. package/template/.codex/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  1629. package/template/.codex/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  1630. package/template/.codex/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  1631. package/template/.codex/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  1632. package/template/.codex/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  1633. package/template/.codex/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  1634. package/template/.codex/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  1635. package/template/.codex/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  1636. package/template/.codex/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  1637. package/template/.codex/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  1638. package/template/.codex/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  1639. package/template/.codex/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  1640. package/template/.codex/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  1641. package/template/.codex/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  1642. package/template/.codex/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  1643. package/template/.codex/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  1644. package/template/.codex/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  1645. package/template/.codex/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  1646. package/template/.codex/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  1647. package/template/.codex/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  1648. package/template/.codex/skills/kb-retriever/README.md +0 -197
  1649. package/template/.codex/skills/kb-retriever/README.zh-CN.md +0 -197
  1650. package/template/.codex/skills/kb-retriever/SKILL.md +0 -250
  1651. package/template/.codex/skills/kb-retriever/manifest.json +0 -15
  1652. package/template/.codex/skills/kb-retriever/references/excel_analysis.md +0 -129
  1653. package/template/.codex/skills/kb-retriever/references/excel_reading.md +0 -72
  1654. package/template/.codex/skills/kb-retriever/references/pdf_reading.md +0 -362
  1655. package/template/.codex/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  1656. package/template/.codex/skills/yss-db2mybatis/SKILL.md +0 -94
  1657. package/template/.codex/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  1658. package/template/.codex/skills/yss-db2mybatis/assets/$.java +0 -19
  1659. package/template/.codex/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  1660. package/template/.codex/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  1661. package/template/.codex/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  1662. package/template/.codex/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  1663. package/template/.codex/skills/yss-db2mybatis/assets/po.java.template +0 -18
  1664. package/template/.codex/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  1665. package/template/.codex/skills/yss-db2mybatis/config/metadata.json +0 -334
  1666. package/template/.codex/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  1667. package/template/.codex/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  1668. package/template/.codex/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  1669. package/template/.codex/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  1670. package/template/.codex/skills/yss-db2mybatis/requirements.txt +0 -4
  1671. package/template/.codex/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  1672. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  1673. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  1674. package/template/.codex/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  1675. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  1676. package/template/.codex/skills/yss-valuation/SKILL.md +0 -40
  1677. package/template/.codex/skills/yss-valuation/agents/openai.yaml +0 -4
  1678. package/template/.codex/skills/yss-valuation/references/source-index.md +0 -37
  1679. package/template/.codex/skills/yss-variable/SKILL.md +0 -47
  1680. package/template/.codex/skills/yss-variable/agents/openai.yaml +0 -4
  1681. package/template/.codex/skills/yss-variable/references/source-index.md +0 -60
  1682. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  1683. package/template/.codex/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  1684. package/template/.hermes/skills/beautiful-article/README.md +0 -450
  1685. package/template/.hermes/skills/beautiful-article/README.zh-CN.md +0 -450
  1686. package/template/.hermes/skills/beautiful-article/SKILL.md +0 -466
  1687. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  1688. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  1689. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  1690. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  1691. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  1692. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  1693. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  1694. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  1695. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  1696. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  1697. package/template/.hermes/skills/beautiful-article/manifest.json +0 -15
  1698. package/template/.hermes/skills/beautiful-article/references/article-types/briefing.md +0 -32
  1699. package/template/.hermes/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  1700. package/template/.hermes/skills/beautiful-article/references/article-types/essay.md +0 -31
  1701. package/template/.hermes/skills/beautiful-article/references/article-types/explainer.md +0 -32
  1702. package/template/.hermes/skills/beautiful-article/references/article-types/full-report.md +0 -32
  1703. package/template/.hermes/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  1704. package/template/.hermes/skills/beautiful-article/references/article-types/longform.md +0 -32
  1705. package/template/.hermes/skills/beautiful-article/references/article-types/review.md +0 -32
  1706. package/template/.hermes/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  1707. package/template/.hermes/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  1708. package/template/.hermes/skills/beautiful-article/references/article-types.md +0 -42
  1709. package/template/.hermes/skills/beautiful-article/references/asset-policy.md +0 -71
  1710. package/template/.hermes/skills/beautiful-article/references/component-policy.md +0 -103
  1711. package/template/.hermes/skills/beautiful-article/references/cover.md +0 -208
  1712. package/template/.hermes/skills/beautiful-article/references/harness.md +0 -35
  1713. package/template/.hermes/skills/beautiful-article/references/html-output.md +0 -42
  1714. package/template/.hermes/skills/beautiful-article/references/information-density.md +0 -50
  1715. package/template/.hermes/skills/beautiful-article/references/layout.md +0 -46
  1716. package/template/.hermes/skills/beautiful-article/references/pdf-output.md +0 -208
  1717. package/template/.hermes/skills/beautiful-article/references/plan-template.md +0 -109
  1718. package/template/.hermes/skills/beautiful-article/references/raw-policy.md +0 -86
  1719. package/template/.hermes/skills/beautiful-article/references/repair-policy.md +0 -35
  1720. package/template/.hermes/skills/beautiful-article/references/review-checklist.md +0 -133
  1721. package/template/.hermes/skills/beautiful-article/references/scaffold.md +0 -77
  1722. package/template/.hermes/skills/beautiful-article/references/section-build.md +0 -100
  1723. package/template/.hermes/skills/beautiful-article/references/source-to-markdown.md +0 -118
  1724. package/template/.hermes/skills/beautiful-article/references/theme-selection.md +0 -48
  1725. package/template/.hermes/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  1726. package/template/.hermes/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  1727. package/template/.hermes/skills/beautiful-article/scripts/scaffold.sh +0 -172
  1728. package/template/.hermes/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  1729. package/template/.hermes/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  1730. package/template/.hermes/skills/beautiful-article/theme-profiles/andy.md +0 -57
  1731. package/template/.hermes/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  1732. package/template/.hermes/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  1733. package/template/.hermes/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  1734. package/template/.hermes/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  1735. package/template/.hermes/skills/beautiful-article/theme-profiles/index.json +0 -112
  1736. package/template/.hermes/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  1737. package/template/.hermes/skills/beautiful-article/theme-profiles/press.md +0 -61
  1738. package/template/.hermes/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  1739. package/template/.hermes/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  1740. package/template/.hermes/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  1741. package/template/.hermes/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  1742. package/template/.hermes/skills/drawio/.mcp.json +0 -8
  1743. package/template/.hermes/skills/drawio/CHANGELOG.md +0 -216
  1744. package/template/.hermes/skills/drawio/SKILL.md +0 -157
  1745. package/template/.hermes/skills/drawio/agents/interface.yaml +0 -26
  1746. package/template/.hermes/skills/drawio/agents/openai.yaml +0 -26
  1747. package/template/.hermes/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  1748. package/template/.hermes/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  1749. package/template/.hermes/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  1750. package/template/.hermes/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  1751. package/template/.hermes/skills/drawio/assets/examples/login-flow.drawio +0 -6
  1752. package/template/.hermes/skills/drawio/assets/examples/microservices.drawio +0 -6
  1753. package/template/.hermes/skills/drawio/assets/examples/neural-network.drawio +0 -6
  1754. package/template/.hermes/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  1755. package/template/.hermes/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  1756. package/template/.hermes/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  1757. package/template/.hermes/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  1758. package/template/.hermes/skills/drawio/assets/palettes/c4-blue.json +0 -29
  1759. package/template/.hermes/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  1760. package/template/.hermes/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  1761. package/template/.hermes/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  1762. package/template/.hermes/skills/drawio/assets/palettes/ieee-color.json +0 -17
  1763. package/template/.hermes/skills/drawio/assets/palettes/journal-jama.json +0 -20
  1764. package/template/.hermes/skills/drawio/assets/palettes/journal-npg.json +0 -23
  1765. package/template/.hermes/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  1766. package/template/.hermes/skills/drawio/assets/palettes/morandi.json +0 -21
  1767. package/template/.hermes/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  1768. package/template/.hermes/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  1769. package/template/.hermes/skills/drawio/assets/palettes/tol-bright.json +0 -20
  1770. package/template/.hermes/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  1771. package/template/.hermes/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  1772. package/template/.hermes/skills/drawio/assets/palettes/tol-muted.json +0 -22
  1773. package/template/.hermes/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  1774. package/template/.hermes/skills/drawio/assets/schemas/spec.schema.json +0 -620
  1775. package/template/.hermes/skills/drawio/assets/themes/academic-color.json +0 -299
  1776. package/template/.hermes/skills/drawio/assets/themes/academic.json +0 -245
  1777. package/template/.hermes/skills/drawio/assets/themes/arch-dark.json +0 -253
  1778. package/template/.hermes/skills/drawio/assets/themes/blueprint.json +0 -246
  1779. package/template/.hermes/skills/drawio/assets/themes/dark-luxury.json +0 -246
  1780. package/template/.hermes/skills/drawio/assets/themes/dark-terminal.json +0 -244
  1781. package/template/.hermes/skills/drawio/assets/themes/dark.json +0 -220
  1782. package/template/.hermes/skills/drawio/assets/themes/high-contrast.json +0 -220
  1783. package/template/.hermes/skills/drawio/assets/themes/nature.json +0 -220
  1784. package/template/.hermes/skills/drawio/assets/themes/notion-clean.json +0 -246
  1785. package/template/.hermes/skills/drawio/assets/themes/tech-blue.json +0 -220
  1786. package/template/.hermes/skills/drawio/evals/README.md +0 -17
  1787. package/template/.hermes/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  1788. package/template/.hermes/skills/drawio/evals/baseline-prompts.json +0 -122
  1789. package/template/.hermes/skills/drawio/evals/darwin-results.tsv +0 -4
  1790. package/template/.hermes/skills/drawio/evals/evals.json +0 -223
  1791. package/template/.hermes/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  1792. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  1793. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  1794. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  1795. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  1796. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  1797. package/template/.hermes/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  1798. package/template/.hermes/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  1799. package/template/.hermes/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  1800. package/template/.hermes/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  1801. package/template/.hermes/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  1802. package/template/.hermes/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  1803. package/template/.hermes/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  1804. package/template/.hermes/skills/drawio/evals/upstream-integration-cases.json +0 -78
  1805. package/template/.hermes/skills/drawio/evals/vision-preview-cases.json +0 -147
  1806. package/template/.hermes/skills/drawio/references/docs/agent-diagrams.md +0 -164
  1807. package/template/.hermes/skills/drawio/references/docs/ah-format.md +0 -322
  1808. package/template/.hermes/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  1809. package/template/.hermes/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  1810. package/template/.hermes/skills/drawio/references/docs/code-importers.md +0 -53
  1811. package/template/.hermes/skills/drawio/references/docs/config-importers.md +0 -68
  1812. package/template/.hermes/skills/drawio/references/docs/design-system/README.md +0 -204
  1813. package/template/.hermes/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  1814. package/template/.hermes/skills/drawio/references/docs/design-system/connectors.md +0 -388
  1815. package/template/.hermes/skills/drawio/references/docs/design-system/formulas.md +0 -196
  1816. package/template/.hermes/skills/drawio/references/docs/design-system/icons.md +0 -332
  1817. package/template/.hermes/skills/drawio/references/docs/design-system/shapes.md +0 -269
  1818. package/template/.hermes/skills/drawio/references/docs/design-system/specification.md +0 -754
  1819. package/template/.hermes/skills/drawio/references/docs/design-system/themes.md +0 -441
  1820. package/template/.hermes/skills/drawio/references/docs/design-system/tokens.md +0 -232
  1821. package/template/.hermes/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  1822. package/template/.hermes/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  1823. package/template/.hermes/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  1824. package/template/.hermes/skills/drawio/references/docs/math-typesetting.md +0 -258
  1825. package/template/.hermes/skills/drawio/references/docs/mcp-tools.md +0 -85
  1826. package/template/.hermes/skills/drawio/references/docs/migration-readiness.md +0 -73
  1827. package/template/.hermes/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  1828. package/template/.hermes/skills/drawio/references/docs/style-extraction.md +0 -261
  1829. package/template/.hermes/skills/drawio/references/docs/style-presets.md +0 -126
  1830. package/template/.hermes/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  1831. package/template/.hermes/skills/drawio/references/docs/xml-format.md +0 -53
  1832. package/template/.hermes/skills/drawio/references/examples/README.md +0 -33
  1833. package/template/.hermes/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  1834. package/template/.hermes/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  1835. package/template/.hermes/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  1836. package/template/.hermes/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  1837. package/template/.hermes/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  1838. package/template/.hermes/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  1839. package/template/.hermes/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  1840. package/template/.hermes/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  1841. package/template/.hermes/skills/drawio/references/examples/e-commerce.yaml +0 -141
  1842. package/template/.hermes/skills/drawio/references/examples/importers/README.md +0 -10
  1843. package/template/.hermes/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  1844. package/template/.hermes/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  1845. package/template/.hermes/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  1846. package/template/.hermes/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  1847. package/template/.hermes/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  1848. package/template/.hermes/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  1849. package/template/.hermes/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  1850. package/template/.hermes/skills/drawio/references/examples/importers/schema.sql +0 -10
  1851. package/template/.hermes/skills/drawio/references/examples/importers/terraform.tf +0 -9
  1852. package/template/.hermes/skills/drawio/references/examples/login-flow.yaml +0 -65
  1853. package/template/.hermes/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  1854. package/template/.hermes/skills/drawio/references/examples/microservices.yaml +0 -58
  1855. package/template/.hermes/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  1856. package/template/.hermes/skills/drawio/references/examples/neural-network.yaml +0 -66
  1857. package/template/.hermes/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  1858. package/template/.hermes/skills/drawio/references/examples/palettes/README.md +0 -29
  1859. package/template/.hermes/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  1860. package/template/.hermes/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  1861. package/template/.hermes/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  1862. package/template/.hermes/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  1863. package/template/.hermes/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  1864. package/template/.hermes/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  1865. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  1866. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  1867. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  1868. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  1869. package/template/.hermes/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  1870. package/template/.hermes/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  1871. package/template/.hermes/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  1872. package/template/.hermes/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  1873. package/template/.hermes/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  1874. package/template/.hermes/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  1875. package/template/.hermes/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  1876. package/template/.hermes/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  1877. package/template/.hermes/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  1878. package/template/.hermes/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  1879. package/template/.hermes/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  1880. package/template/.hermes/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  1881. package/template/.hermes/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  1882. package/template/.hermes/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  1883. package/template/.hermes/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  1884. package/template/.hermes/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  1885. package/template/.hermes/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  1886. package/template/.hermes/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  1887. package/template/.hermes/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  1888. package/template/.hermes/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  1889. package/template/.hermes/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  1890. package/template/.hermes/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  1891. package/template/.hermes/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  1892. package/template/.hermes/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  1893. package/template/.hermes/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  1894. package/template/.hermes/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  1895. package/template/.hermes/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  1896. package/template/.hermes/skills/drawio/references/official/style-reference.md +0 -936
  1897. package/template/.hermes/skills/drawio/references/official/xml-reference.md +0 -262
  1898. package/template/.hermes/skills/drawio/references/palette.schema.json +0 -59
  1899. package/template/.hermes/skills/drawio/references/theme.schema.json +0 -249
  1900. package/template/.hermes/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  1901. package/template/.hermes/skills/drawio/references/workflows/create.md +0 -195
  1902. package/template/.hermes/skills/drawio/references/workflows/edit.md +0 -174
  1903. package/template/.hermes/skills/drawio/references/workflows/replicate.md +0 -239
  1904. package/template/.hermes/skills/drawio/references/workflows/visual-review.md +0 -108
  1905. package/template/.hermes/skills/drawio/reports/output_quality_scorecard.md +0 -106
  1906. package/template/.hermes/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  1907. package/template/.hermes/skills/drawio/scripts/adapters/ci.js +0 -139
  1908. package/template/.hermes/skills/drawio/scripts/adapters/ci.test.js +0 -41
  1909. package/template/.hermes/skills/drawio/scripts/adapters/code-common.js +0 -171
  1910. package/template/.hermes/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  1911. package/template/.hermes/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  1912. package/template/.hermes/skills/drawio/scripts/adapters/compose.js +0 -134
  1913. package/template/.hermes/skills/drawio/scripts/adapters/compose.test.js +0 -54
  1914. package/template/.hermes/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  1915. package/template/.hermes/skills/drawio/scripts/adapters/config-common.js +0 -131
  1916. package/template/.hermes/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  1917. package/template/.hermes/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  1918. package/template/.hermes/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  1919. package/template/.hermes/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  1920. package/template/.hermes/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  1921. package/template/.hermes/skills/drawio/scripts/adapters/go-code.js +0 -168
  1922. package/template/.hermes/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  1923. package/template/.hermes/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  1924. package/template/.hermes/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  1925. package/template/.hermes/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  1926. package/template/.hermes/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  1927. package/template/.hermes/skills/drawio/scripts/adapters/identity.js +0 -244
  1928. package/template/.hermes/skills/drawio/scripts/adapters/identity.test.js +0 -123
  1929. package/template/.hermes/skills/drawio/scripts/adapters/index.js +0 -489
  1930. package/template/.hermes/skills/drawio/scripts/adapters/index.test.js +0 -152
  1931. package/template/.hermes/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  1932. package/template/.hermes/skills/drawio/scripts/adapters/js-code.js +0 -141
  1933. package/template/.hermes/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  1934. package/template/.hermes/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  1935. package/template/.hermes/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  1936. package/template/.hermes/skills/drawio/scripts/adapters/openapi.js +0 -98
  1937. package/template/.hermes/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  1938. package/template/.hermes/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  1939. package/template/.hermes/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  1940. package/template/.hermes/skills/drawio/scripts/adapters/optional-python.js +0 -127
  1941. package/template/.hermes/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  1942. package/template/.hermes/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  1943. package/template/.hermes/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  1944. package/template/.hermes/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  1945. package/template/.hermes/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  1946. package/template/.hermes/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  1947. package/template/.hermes/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  1948. package/template/.hermes/skills/drawio/scripts/adapters/python-code.js +0 -246
  1949. package/template/.hermes/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  1950. package/template/.hermes/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  1951. package/template/.hermes/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  1952. package/template/.hermes/skills/drawio/scripts/adapters/rust-code.js +0 -207
  1953. package/template/.hermes/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  1954. package/template/.hermes/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  1955. package/template/.hermes/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  1956. package/template/.hermes/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  1957. package/template/.hermes/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  1958. package/template/.hermes/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  1959. package/template/.hermes/skills/drawio/scripts/cli.js +0 -700
  1960. package/template/.hermes/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  1961. package/template/.hermes/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  1962. package/template/.hermes/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  1963. package/template/.hermes/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  1964. package/template/.hermes/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  1965. package/template/.hermes/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  1966. package/template/.hermes/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  1967. package/template/.hermes/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  1968. package/template/.hermes/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  1969. package/template/.hermes/skills/drawio/scripts/dsl/document-spec.js +0 -256
  1970. package/template/.hermes/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  1971. package/template/.hermes/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  1972. package/template/.hermes/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  1973. package/template/.hermes/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  1974. package/template/.hermes/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  1975. package/template/.hermes/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  1976. package/template/.hermes/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  1977. package/template/.hermes/skills/drawio/scripts/dsl/multi-page.js +0 -224
  1978. package/template/.hermes/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  1979. package/template/.hermes/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  1980. package/template/.hermes/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  1981. package/template/.hermes/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  1982. package/template/.hermes/skills/drawio/scripts/dsl/palette.js +0 -302
  1983. package/template/.hermes/skills/drawio/scripts/dsl/palette.test.js +0 -197
  1984. package/template/.hermes/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  1985. package/template/.hermes/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  1986. package/template/.hermes/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  1987. package/template/.hermes/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  1988. package/template/.hermes/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  1989. package/template/.hermes/skills/drawio/scripts/install.bat +0 -64
  1990. package/template/.hermes/skills/drawio/scripts/install.sh +0 -44
  1991. package/template/.hermes/skills/drawio/scripts/math/index.js +0 -317
  1992. package/template/.hermes/skills/drawio/scripts/math/index.test.js +0 -62
  1993. package/template/.hermes/skills/drawio/scripts/package.json +0 -1
  1994. package/template/.hermes/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  1995. package/template/.hermes/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  1996. package/template/.hermes/skills/drawio/scripts/postprocess/cli.js +0 -228
  1997. package/template/.hermes/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  1998. package/template/.hermes/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  1999. package/template/.hermes/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  2000. package/template/.hermes/skills/drawio/scripts/postprocess/html.js +0 -197
  2001. package/template/.hermes/skills/drawio/scripts/postprocess/html.test.js +0 -50
  2002. package/template/.hermes/skills/drawio/scripts/postprocess/index.js +0 -5
  2003. package/template/.hermes/skills/drawio/scripts/postprocess/input.js +0 -112
  2004. package/template/.hermes/skills/drawio/scripts/postprocess/input.test.js +0 -73
  2005. package/template/.hermes/skills/drawio/scripts/postprocess/mutate.js +0 -584
  2006. package/template/.hermes/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  2007. package/template/.hermes/skills/drawio/scripts/postprocess/projection.js +0 -178
  2008. package/template/.hermes/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  2009. package/template/.hermes/skills/drawio/scripts/runtime/artifacts.js +0 -283
  2010. package/template/.hermes/skills/drawio/scripts/runtime/desktop.js +0 -204
  2011. package/template/.hermes/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  2012. package/template/.hermes/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  2013. package/template/.hermes/skills/drawio/scripts/runtime/export-stability.js +0 -75
  2014. package/template/.hermes/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  2015. package/template/.hermes/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  2016. package/template/.hermes/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  2017. package/template/.hermes/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  2018. package/template/.hermes/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  2019. package/template/.hermes/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  2020. package/template/.hermes/skills/drawio/scripts/shared/xml-utils.js +0 -241
  2021. package/template/.hermes/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  2022. package/template/.hermes/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  2023. package/template/.hermes/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  2024. package/template/.hermes/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  2025. package/template/.hermes/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  2026. package/template/.hermes/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  2027. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  2028. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  2029. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  2030. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  2031. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  2032. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  2033. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  2034. package/template/.hermes/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  2035. package/template/.hermes/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  2036. package/template/.hermes/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  2037. package/template/.hermes/skills/drawio/styles/built-in/corporate.json +0 -49
  2038. package/template/.hermes/skills/drawio/styles/built-in/default.json +0 -49
  2039. package/template/.hermes/skills/drawio/styles/built-in/handdrawn.json +0 -49
  2040. package/template/.hermes/skills/drawio/styles/schema.json +0 -112
  2041. package/template/.hermes/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  2042. package/template/.hermes/skills/drawio-academic-skills/README.md +0 -103
  2043. package/template/.hermes/skills/drawio-academic-skills/README_CN.md +0 -103
  2044. package/template/.hermes/skills/drawio-academic-skills/SKILL.md +0 -161
  2045. package/template/.hermes/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  2046. package/template/.hermes/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  2047. package/template/.hermes/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  2048. package/template/.hermes/skills/drawio-academic-skills/evals/README.md +0 -13
  2049. package/template/.hermes/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  2050. package/template/.hermes/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  2051. package/template/.hermes/skills/drawio-academic-skills/evals/evals.json +0 -228
  2052. package/template/.hermes/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  2053. package/template/.hermes/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  2054. package/template/.hermes/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  2055. package/template/.hermes/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  2056. package/template/.hermes/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  2057. package/template/.hermes/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  2058. package/template/.hermes/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  2059. package/template/.hermes/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  2060. package/template/.hermes/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  2061. package/template/.hermes/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  2062. package/template/.hermes/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  2063. package/template/.hermes/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  2064. package/template/.hermes/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  2065. package/template/.hermes/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  2066. package/template/.hermes/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  2067. package/template/.hermes/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  2068. package/template/.hermes/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  2069. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  2070. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  2071. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  2072. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  2073. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  2074. package/template/.hermes/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  2075. package/template/.hermes/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  2076. package/template/.hermes/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  2077. package/template/.hermes/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  2078. package/template/.hermes/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  2079. package/template/.hermes/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  2080. package/template/.hermes/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  2081. package/template/.hermes/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  2082. package/template/.hermes/skills/kb-retriever/README.md +0 -197
  2083. package/template/.hermes/skills/kb-retriever/README.zh-CN.md +0 -197
  2084. package/template/.hermes/skills/kb-retriever/SKILL.md +0 -250
  2085. package/template/.hermes/skills/kb-retriever/manifest.json +0 -15
  2086. package/template/.hermes/skills/kb-retriever/references/excel_analysis.md +0 -129
  2087. package/template/.hermes/skills/kb-retriever/references/excel_reading.md +0 -72
  2088. package/template/.hermes/skills/kb-retriever/references/pdf_reading.md +0 -362
  2089. package/template/.hermes/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  2090. package/template/.hermes/skills/yss-db2mybatis/SKILL.md +0 -94
  2091. package/template/.hermes/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  2092. package/template/.hermes/skills/yss-db2mybatis/assets/$.java +0 -19
  2093. package/template/.hermes/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  2094. package/template/.hermes/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  2095. package/template/.hermes/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  2096. package/template/.hermes/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  2097. package/template/.hermes/skills/yss-db2mybatis/assets/po.java.template +0 -18
  2098. package/template/.hermes/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  2099. package/template/.hermes/skills/yss-db2mybatis/config/metadata.json +0 -334
  2100. package/template/.hermes/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  2101. package/template/.hermes/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  2102. package/template/.hermes/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  2103. package/template/.hermes/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  2104. package/template/.hermes/skills/yss-db2mybatis/requirements.txt +0 -4
  2105. package/template/.hermes/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  2106. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  2107. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  2108. package/template/.hermes/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  2109. package/template/.hermes/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  2110. package/template/.hermes/skills/yss-valuation/SKILL.md +0 -40
  2111. package/template/.hermes/skills/yss-valuation/agents/openai.yaml +0 -4
  2112. package/template/.hermes/skills/yss-valuation/references/source-index.md +0 -37
  2113. package/template/.hermes/skills/yss-variable/SKILL.md +0 -47
  2114. package/template/.hermes/skills/yss-variable/agents/openai.yaml +0 -4
  2115. package/template/.hermes/skills/yss-variable/references/source-index.md +0 -60
  2116. package/template/.hermes/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  2117. package/template/.hermes/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  2118. package/template/.pi/skills/beautiful-article/README.md +0 -450
  2119. package/template/.pi/skills/beautiful-article/README.zh-CN.md +0 -450
  2120. package/template/.pi/skills/beautiful-article/SKILL.md +0 -466
  2121. package/template/.pi/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  2122. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  2123. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  2124. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  2125. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  2126. package/template/.pi/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  2127. package/template/.pi/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  2128. package/template/.pi/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  2129. package/template/.pi/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  2130. package/template/.pi/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  2131. package/template/.pi/skills/beautiful-article/manifest.json +0 -15
  2132. package/template/.pi/skills/beautiful-article/references/article-types/briefing.md +0 -32
  2133. package/template/.pi/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  2134. package/template/.pi/skills/beautiful-article/references/article-types/essay.md +0 -31
  2135. package/template/.pi/skills/beautiful-article/references/article-types/explainer.md +0 -32
  2136. package/template/.pi/skills/beautiful-article/references/article-types/full-report.md +0 -32
  2137. package/template/.pi/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  2138. package/template/.pi/skills/beautiful-article/references/article-types/longform.md +0 -32
  2139. package/template/.pi/skills/beautiful-article/references/article-types/review.md +0 -32
  2140. package/template/.pi/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  2141. package/template/.pi/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  2142. package/template/.pi/skills/beautiful-article/references/article-types.md +0 -42
  2143. package/template/.pi/skills/beautiful-article/references/asset-policy.md +0 -71
  2144. package/template/.pi/skills/beautiful-article/references/component-policy.md +0 -103
  2145. package/template/.pi/skills/beautiful-article/references/cover.md +0 -208
  2146. package/template/.pi/skills/beautiful-article/references/harness.md +0 -35
  2147. package/template/.pi/skills/beautiful-article/references/html-output.md +0 -42
  2148. package/template/.pi/skills/beautiful-article/references/information-density.md +0 -50
  2149. package/template/.pi/skills/beautiful-article/references/layout.md +0 -46
  2150. package/template/.pi/skills/beautiful-article/references/pdf-output.md +0 -208
  2151. package/template/.pi/skills/beautiful-article/references/plan-template.md +0 -109
  2152. package/template/.pi/skills/beautiful-article/references/raw-policy.md +0 -86
  2153. package/template/.pi/skills/beautiful-article/references/repair-policy.md +0 -35
  2154. package/template/.pi/skills/beautiful-article/references/review-checklist.md +0 -133
  2155. package/template/.pi/skills/beautiful-article/references/scaffold.md +0 -77
  2156. package/template/.pi/skills/beautiful-article/references/section-build.md +0 -100
  2157. package/template/.pi/skills/beautiful-article/references/source-to-markdown.md +0 -118
  2158. package/template/.pi/skills/beautiful-article/references/theme-selection.md +0 -48
  2159. package/template/.pi/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  2160. package/template/.pi/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  2161. package/template/.pi/skills/beautiful-article/scripts/scaffold.sh +0 -172
  2162. package/template/.pi/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  2163. package/template/.pi/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  2164. package/template/.pi/skills/beautiful-article/theme-profiles/andy.md +0 -57
  2165. package/template/.pi/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  2166. package/template/.pi/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  2167. package/template/.pi/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  2168. package/template/.pi/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  2169. package/template/.pi/skills/beautiful-article/theme-profiles/index.json +0 -112
  2170. package/template/.pi/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  2171. package/template/.pi/skills/beautiful-article/theme-profiles/press.md +0 -61
  2172. package/template/.pi/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  2173. package/template/.pi/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  2174. package/template/.pi/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  2175. package/template/.pi/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  2176. package/template/.pi/skills/drawio/.mcp.json +0 -8
  2177. package/template/.pi/skills/drawio/CHANGELOG.md +0 -216
  2178. package/template/.pi/skills/drawio/SKILL.md +0 -157
  2179. package/template/.pi/skills/drawio/agents/interface.yaml +0 -26
  2180. package/template/.pi/skills/drawio/agents/openai.yaml +0 -26
  2181. package/template/.pi/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  2182. package/template/.pi/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  2183. package/template/.pi/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  2184. package/template/.pi/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  2185. package/template/.pi/skills/drawio/assets/examples/login-flow.drawio +0 -6
  2186. package/template/.pi/skills/drawio/assets/examples/microservices.drawio +0 -6
  2187. package/template/.pi/skills/drawio/assets/examples/neural-network.drawio +0 -6
  2188. package/template/.pi/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  2189. package/template/.pi/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  2190. package/template/.pi/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  2191. package/template/.pi/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  2192. package/template/.pi/skills/drawio/assets/palettes/c4-blue.json +0 -29
  2193. package/template/.pi/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  2194. package/template/.pi/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  2195. package/template/.pi/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  2196. package/template/.pi/skills/drawio/assets/palettes/ieee-color.json +0 -17
  2197. package/template/.pi/skills/drawio/assets/palettes/journal-jama.json +0 -20
  2198. package/template/.pi/skills/drawio/assets/palettes/journal-npg.json +0 -23
  2199. package/template/.pi/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  2200. package/template/.pi/skills/drawio/assets/palettes/morandi.json +0 -21
  2201. package/template/.pi/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  2202. package/template/.pi/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  2203. package/template/.pi/skills/drawio/assets/palettes/tol-bright.json +0 -20
  2204. package/template/.pi/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  2205. package/template/.pi/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  2206. package/template/.pi/skills/drawio/assets/palettes/tol-muted.json +0 -22
  2207. package/template/.pi/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  2208. package/template/.pi/skills/drawio/assets/schemas/spec.schema.json +0 -620
  2209. package/template/.pi/skills/drawio/assets/themes/academic-color.json +0 -299
  2210. package/template/.pi/skills/drawio/assets/themes/academic.json +0 -245
  2211. package/template/.pi/skills/drawio/assets/themes/arch-dark.json +0 -253
  2212. package/template/.pi/skills/drawio/assets/themes/blueprint.json +0 -246
  2213. package/template/.pi/skills/drawio/assets/themes/dark-luxury.json +0 -246
  2214. package/template/.pi/skills/drawio/assets/themes/dark-terminal.json +0 -244
  2215. package/template/.pi/skills/drawio/assets/themes/dark.json +0 -220
  2216. package/template/.pi/skills/drawio/assets/themes/high-contrast.json +0 -220
  2217. package/template/.pi/skills/drawio/assets/themes/nature.json +0 -220
  2218. package/template/.pi/skills/drawio/assets/themes/notion-clean.json +0 -246
  2219. package/template/.pi/skills/drawio/assets/themes/tech-blue.json +0 -220
  2220. package/template/.pi/skills/drawio/evals/README.md +0 -17
  2221. package/template/.pi/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  2222. package/template/.pi/skills/drawio/evals/baseline-prompts.json +0 -122
  2223. package/template/.pi/skills/drawio/evals/darwin-results.tsv +0 -4
  2224. package/template/.pi/skills/drawio/evals/evals.json +0 -223
  2225. package/template/.pi/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  2226. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  2227. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  2228. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  2229. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  2230. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  2231. package/template/.pi/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  2232. package/template/.pi/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  2233. package/template/.pi/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  2234. package/template/.pi/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  2235. package/template/.pi/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  2236. package/template/.pi/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  2237. package/template/.pi/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  2238. package/template/.pi/skills/drawio/evals/upstream-integration-cases.json +0 -78
  2239. package/template/.pi/skills/drawio/evals/vision-preview-cases.json +0 -147
  2240. package/template/.pi/skills/drawio/references/docs/agent-diagrams.md +0 -164
  2241. package/template/.pi/skills/drawio/references/docs/ah-format.md +0 -322
  2242. package/template/.pi/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  2243. package/template/.pi/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  2244. package/template/.pi/skills/drawio/references/docs/code-importers.md +0 -53
  2245. package/template/.pi/skills/drawio/references/docs/config-importers.md +0 -68
  2246. package/template/.pi/skills/drawio/references/docs/design-system/README.md +0 -204
  2247. package/template/.pi/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  2248. package/template/.pi/skills/drawio/references/docs/design-system/connectors.md +0 -388
  2249. package/template/.pi/skills/drawio/references/docs/design-system/formulas.md +0 -196
  2250. package/template/.pi/skills/drawio/references/docs/design-system/icons.md +0 -332
  2251. package/template/.pi/skills/drawio/references/docs/design-system/shapes.md +0 -269
  2252. package/template/.pi/skills/drawio/references/docs/design-system/specification.md +0 -754
  2253. package/template/.pi/skills/drawio/references/docs/design-system/themes.md +0 -441
  2254. package/template/.pi/skills/drawio/references/docs/design-system/tokens.md +0 -232
  2255. package/template/.pi/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  2256. package/template/.pi/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  2257. package/template/.pi/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  2258. package/template/.pi/skills/drawio/references/docs/math-typesetting.md +0 -258
  2259. package/template/.pi/skills/drawio/references/docs/mcp-tools.md +0 -85
  2260. package/template/.pi/skills/drawio/references/docs/migration-readiness.md +0 -73
  2261. package/template/.pi/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  2262. package/template/.pi/skills/drawio/references/docs/style-extraction.md +0 -261
  2263. package/template/.pi/skills/drawio/references/docs/style-presets.md +0 -126
  2264. package/template/.pi/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  2265. package/template/.pi/skills/drawio/references/docs/xml-format.md +0 -53
  2266. package/template/.pi/skills/drawio/references/examples/README.md +0 -33
  2267. package/template/.pi/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  2268. package/template/.pi/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  2269. package/template/.pi/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  2270. package/template/.pi/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  2271. package/template/.pi/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  2272. package/template/.pi/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  2273. package/template/.pi/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  2274. package/template/.pi/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  2275. package/template/.pi/skills/drawio/references/examples/e-commerce.yaml +0 -141
  2276. package/template/.pi/skills/drawio/references/examples/importers/README.md +0 -10
  2277. package/template/.pi/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  2278. package/template/.pi/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  2279. package/template/.pi/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  2280. package/template/.pi/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  2281. package/template/.pi/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  2282. package/template/.pi/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  2283. package/template/.pi/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  2284. package/template/.pi/skills/drawio/references/examples/importers/schema.sql +0 -10
  2285. package/template/.pi/skills/drawio/references/examples/importers/terraform.tf +0 -9
  2286. package/template/.pi/skills/drawio/references/examples/login-flow.yaml +0 -65
  2287. package/template/.pi/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  2288. package/template/.pi/skills/drawio/references/examples/microservices.yaml +0 -58
  2289. package/template/.pi/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  2290. package/template/.pi/skills/drawio/references/examples/neural-network.yaml +0 -66
  2291. package/template/.pi/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  2292. package/template/.pi/skills/drawio/references/examples/palettes/README.md +0 -29
  2293. package/template/.pi/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  2294. package/template/.pi/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  2295. package/template/.pi/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  2296. package/template/.pi/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  2297. package/template/.pi/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  2298. package/template/.pi/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  2299. package/template/.pi/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  2300. package/template/.pi/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  2301. package/template/.pi/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  2302. package/template/.pi/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  2303. package/template/.pi/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  2304. package/template/.pi/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  2305. package/template/.pi/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  2306. package/template/.pi/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  2307. package/template/.pi/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  2308. package/template/.pi/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  2309. package/template/.pi/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  2310. package/template/.pi/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  2311. package/template/.pi/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  2312. package/template/.pi/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  2313. package/template/.pi/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  2314. package/template/.pi/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  2315. package/template/.pi/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  2316. package/template/.pi/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  2317. package/template/.pi/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  2318. package/template/.pi/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  2319. package/template/.pi/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  2320. package/template/.pi/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  2321. package/template/.pi/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  2322. package/template/.pi/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  2323. package/template/.pi/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  2324. package/template/.pi/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  2325. package/template/.pi/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  2326. package/template/.pi/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  2327. package/template/.pi/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  2328. package/template/.pi/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  2329. package/template/.pi/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  2330. package/template/.pi/skills/drawio/references/official/style-reference.md +0 -936
  2331. package/template/.pi/skills/drawio/references/official/xml-reference.md +0 -262
  2332. package/template/.pi/skills/drawio/references/palette.schema.json +0 -59
  2333. package/template/.pi/skills/drawio/references/theme.schema.json +0 -249
  2334. package/template/.pi/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  2335. package/template/.pi/skills/drawio/references/workflows/create.md +0 -195
  2336. package/template/.pi/skills/drawio/references/workflows/edit.md +0 -174
  2337. package/template/.pi/skills/drawio/references/workflows/replicate.md +0 -239
  2338. package/template/.pi/skills/drawio/references/workflows/visual-review.md +0 -108
  2339. package/template/.pi/skills/drawio/reports/output_quality_scorecard.md +0 -106
  2340. package/template/.pi/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  2341. package/template/.pi/skills/drawio/scripts/adapters/ci.js +0 -139
  2342. package/template/.pi/skills/drawio/scripts/adapters/ci.test.js +0 -41
  2343. package/template/.pi/skills/drawio/scripts/adapters/code-common.js +0 -171
  2344. package/template/.pi/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  2345. package/template/.pi/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  2346. package/template/.pi/skills/drawio/scripts/adapters/compose.js +0 -134
  2347. package/template/.pi/skills/drawio/scripts/adapters/compose.test.js +0 -54
  2348. package/template/.pi/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  2349. package/template/.pi/skills/drawio/scripts/adapters/config-common.js +0 -131
  2350. package/template/.pi/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  2351. package/template/.pi/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  2352. package/template/.pi/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  2353. package/template/.pi/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  2354. package/template/.pi/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  2355. package/template/.pi/skills/drawio/scripts/adapters/go-code.js +0 -168
  2356. package/template/.pi/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  2357. package/template/.pi/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  2358. package/template/.pi/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  2359. package/template/.pi/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  2360. package/template/.pi/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  2361. package/template/.pi/skills/drawio/scripts/adapters/identity.js +0 -244
  2362. package/template/.pi/skills/drawio/scripts/adapters/identity.test.js +0 -123
  2363. package/template/.pi/skills/drawio/scripts/adapters/index.js +0 -489
  2364. package/template/.pi/skills/drawio/scripts/adapters/index.test.js +0 -152
  2365. package/template/.pi/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  2366. package/template/.pi/skills/drawio/scripts/adapters/js-code.js +0 -141
  2367. package/template/.pi/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  2368. package/template/.pi/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  2369. package/template/.pi/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  2370. package/template/.pi/skills/drawio/scripts/adapters/openapi.js +0 -98
  2371. package/template/.pi/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  2372. package/template/.pi/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  2373. package/template/.pi/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  2374. package/template/.pi/skills/drawio/scripts/adapters/optional-python.js +0 -127
  2375. package/template/.pi/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  2376. package/template/.pi/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  2377. package/template/.pi/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  2378. package/template/.pi/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  2379. package/template/.pi/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  2380. package/template/.pi/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  2381. package/template/.pi/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  2382. package/template/.pi/skills/drawio/scripts/adapters/python-code.js +0 -246
  2383. package/template/.pi/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  2384. package/template/.pi/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  2385. package/template/.pi/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  2386. package/template/.pi/skills/drawio/scripts/adapters/rust-code.js +0 -207
  2387. package/template/.pi/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  2388. package/template/.pi/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  2389. package/template/.pi/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  2390. package/template/.pi/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  2391. package/template/.pi/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  2392. package/template/.pi/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  2393. package/template/.pi/skills/drawio/scripts/cli.js +0 -700
  2394. package/template/.pi/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  2395. package/template/.pi/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  2396. package/template/.pi/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  2397. package/template/.pi/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  2398. package/template/.pi/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  2399. package/template/.pi/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  2400. package/template/.pi/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  2401. package/template/.pi/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  2402. package/template/.pi/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  2403. package/template/.pi/skills/drawio/scripts/dsl/document-spec.js +0 -256
  2404. package/template/.pi/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  2405. package/template/.pi/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  2406. package/template/.pi/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  2407. package/template/.pi/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  2408. package/template/.pi/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  2409. package/template/.pi/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  2410. package/template/.pi/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  2411. package/template/.pi/skills/drawio/scripts/dsl/multi-page.js +0 -224
  2412. package/template/.pi/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  2413. package/template/.pi/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  2414. package/template/.pi/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  2415. package/template/.pi/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  2416. package/template/.pi/skills/drawio/scripts/dsl/palette.js +0 -302
  2417. package/template/.pi/skills/drawio/scripts/dsl/palette.test.js +0 -197
  2418. package/template/.pi/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  2419. package/template/.pi/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  2420. package/template/.pi/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  2421. package/template/.pi/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  2422. package/template/.pi/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  2423. package/template/.pi/skills/drawio/scripts/install.bat +0 -64
  2424. package/template/.pi/skills/drawio/scripts/install.sh +0 -44
  2425. package/template/.pi/skills/drawio/scripts/math/index.js +0 -317
  2426. package/template/.pi/skills/drawio/scripts/math/index.test.js +0 -62
  2427. package/template/.pi/skills/drawio/scripts/package.json +0 -1
  2428. package/template/.pi/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  2429. package/template/.pi/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  2430. package/template/.pi/skills/drawio/scripts/postprocess/cli.js +0 -228
  2431. package/template/.pi/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  2432. package/template/.pi/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  2433. package/template/.pi/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  2434. package/template/.pi/skills/drawio/scripts/postprocess/html.js +0 -197
  2435. package/template/.pi/skills/drawio/scripts/postprocess/html.test.js +0 -50
  2436. package/template/.pi/skills/drawio/scripts/postprocess/index.js +0 -5
  2437. package/template/.pi/skills/drawio/scripts/postprocess/input.js +0 -112
  2438. package/template/.pi/skills/drawio/scripts/postprocess/input.test.js +0 -73
  2439. package/template/.pi/skills/drawio/scripts/postprocess/mutate.js +0 -584
  2440. package/template/.pi/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  2441. package/template/.pi/skills/drawio/scripts/postprocess/projection.js +0 -178
  2442. package/template/.pi/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  2443. package/template/.pi/skills/drawio/scripts/runtime/artifacts.js +0 -283
  2444. package/template/.pi/skills/drawio/scripts/runtime/desktop.js +0 -204
  2445. package/template/.pi/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  2446. package/template/.pi/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  2447. package/template/.pi/skills/drawio/scripts/runtime/export-stability.js +0 -75
  2448. package/template/.pi/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  2449. package/template/.pi/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  2450. package/template/.pi/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  2451. package/template/.pi/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  2452. package/template/.pi/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  2453. package/template/.pi/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  2454. package/template/.pi/skills/drawio/scripts/shared/xml-utils.js +0 -241
  2455. package/template/.pi/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  2456. package/template/.pi/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  2457. package/template/.pi/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  2458. package/template/.pi/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  2459. package/template/.pi/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  2460. package/template/.pi/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  2461. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  2462. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  2463. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  2464. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  2465. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  2466. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  2467. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  2468. package/template/.pi/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  2469. package/template/.pi/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  2470. package/template/.pi/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  2471. package/template/.pi/skills/drawio/styles/built-in/corporate.json +0 -49
  2472. package/template/.pi/skills/drawio/styles/built-in/default.json +0 -49
  2473. package/template/.pi/skills/drawio/styles/built-in/handdrawn.json +0 -49
  2474. package/template/.pi/skills/drawio/styles/schema.json +0 -112
  2475. package/template/.pi/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  2476. package/template/.pi/skills/drawio-academic-skills/README.md +0 -103
  2477. package/template/.pi/skills/drawio-academic-skills/README_CN.md +0 -103
  2478. package/template/.pi/skills/drawio-academic-skills/SKILL.md +0 -161
  2479. package/template/.pi/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  2480. package/template/.pi/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  2481. package/template/.pi/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  2482. package/template/.pi/skills/drawio-academic-skills/evals/README.md +0 -13
  2483. package/template/.pi/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  2484. package/template/.pi/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  2485. package/template/.pi/skills/drawio-academic-skills/evals/evals.json +0 -228
  2486. package/template/.pi/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  2487. package/template/.pi/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  2488. package/template/.pi/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  2489. package/template/.pi/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  2490. package/template/.pi/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  2491. package/template/.pi/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  2492. package/template/.pi/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  2493. package/template/.pi/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  2494. package/template/.pi/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  2495. package/template/.pi/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  2496. package/template/.pi/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  2497. package/template/.pi/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  2498. package/template/.pi/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  2499. package/template/.pi/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  2500. package/template/.pi/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  2501. package/template/.pi/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  2502. package/template/.pi/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  2503. package/template/.pi/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  2504. package/template/.pi/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  2505. package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  2506. package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  2507. package/template/.pi/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  2508. package/template/.pi/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  2509. package/template/.pi/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  2510. package/template/.pi/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  2511. package/template/.pi/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  2512. package/template/.pi/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  2513. package/template/.pi/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  2514. package/template/.pi/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  2515. package/template/.pi/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  2516. package/template/.pi/skills/kb-retriever/README.md +0 -197
  2517. package/template/.pi/skills/kb-retriever/README.zh-CN.md +0 -197
  2518. package/template/.pi/skills/kb-retriever/SKILL.md +0 -250
  2519. package/template/.pi/skills/kb-retriever/manifest.json +0 -15
  2520. package/template/.pi/skills/kb-retriever/references/excel_analysis.md +0 -129
  2521. package/template/.pi/skills/kb-retriever/references/excel_reading.md +0 -72
  2522. package/template/.pi/skills/kb-retriever/references/pdf_reading.md +0 -362
  2523. package/template/.pi/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  2524. package/template/.pi/skills/yss-db2mybatis/SKILL.md +0 -94
  2525. package/template/.pi/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  2526. package/template/.pi/skills/yss-db2mybatis/assets/$.java +0 -19
  2527. package/template/.pi/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  2528. package/template/.pi/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  2529. package/template/.pi/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  2530. package/template/.pi/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  2531. package/template/.pi/skills/yss-db2mybatis/assets/po.java.template +0 -18
  2532. package/template/.pi/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  2533. package/template/.pi/skills/yss-db2mybatis/config/metadata.json +0 -334
  2534. package/template/.pi/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  2535. package/template/.pi/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  2536. package/template/.pi/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  2537. package/template/.pi/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  2538. package/template/.pi/skills/yss-db2mybatis/requirements.txt +0 -4
  2539. package/template/.pi/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  2540. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  2541. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  2542. package/template/.pi/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  2543. package/template/.pi/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  2544. package/template/.pi/skills/yss-valuation/SKILL.md +0 -40
  2545. package/template/.pi/skills/yss-valuation/agents/openai.yaml +0 -4
  2546. package/template/.pi/skills/yss-valuation/references/source-index.md +0 -37
  2547. package/template/.pi/skills/yss-variable/SKILL.md +0 -47
  2548. package/template/.pi/skills/yss-variable/agents/openai.yaml +0 -4
  2549. package/template/.pi/skills/yss-variable/references/source-index.md +0 -60
  2550. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  2551. package/template/.pi/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  2552. package/template/.qoder/skills/beautiful-article/README.md +0 -450
  2553. package/template/.qoder/skills/beautiful-article/README.zh-CN.md +0 -450
  2554. package/template/.qoder/skills/beautiful-article/SKILL.md +0 -466
  2555. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  2556. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  2557. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  2558. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  2559. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  2560. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  2561. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  2562. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  2563. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  2564. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  2565. package/template/.qoder/skills/beautiful-article/manifest.json +0 -15
  2566. package/template/.qoder/skills/beautiful-article/references/article-types/briefing.md +0 -32
  2567. package/template/.qoder/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  2568. package/template/.qoder/skills/beautiful-article/references/article-types/essay.md +0 -31
  2569. package/template/.qoder/skills/beautiful-article/references/article-types/explainer.md +0 -32
  2570. package/template/.qoder/skills/beautiful-article/references/article-types/full-report.md +0 -32
  2571. package/template/.qoder/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  2572. package/template/.qoder/skills/beautiful-article/references/article-types/longform.md +0 -32
  2573. package/template/.qoder/skills/beautiful-article/references/article-types/review.md +0 -32
  2574. package/template/.qoder/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  2575. package/template/.qoder/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  2576. package/template/.qoder/skills/beautiful-article/references/article-types.md +0 -42
  2577. package/template/.qoder/skills/beautiful-article/references/asset-policy.md +0 -71
  2578. package/template/.qoder/skills/beautiful-article/references/component-policy.md +0 -103
  2579. package/template/.qoder/skills/beautiful-article/references/cover.md +0 -208
  2580. package/template/.qoder/skills/beautiful-article/references/harness.md +0 -35
  2581. package/template/.qoder/skills/beautiful-article/references/html-output.md +0 -42
  2582. package/template/.qoder/skills/beautiful-article/references/information-density.md +0 -50
  2583. package/template/.qoder/skills/beautiful-article/references/layout.md +0 -46
  2584. package/template/.qoder/skills/beautiful-article/references/pdf-output.md +0 -208
  2585. package/template/.qoder/skills/beautiful-article/references/plan-template.md +0 -109
  2586. package/template/.qoder/skills/beautiful-article/references/raw-policy.md +0 -86
  2587. package/template/.qoder/skills/beautiful-article/references/repair-policy.md +0 -35
  2588. package/template/.qoder/skills/beautiful-article/references/review-checklist.md +0 -133
  2589. package/template/.qoder/skills/beautiful-article/references/scaffold.md +0 -77
  2590. package/template/.qoder/skills/beautiful-article/references/section-build.md +0 -100
  2591. package/template/.qoder/skills/beautiful-article/references/source-to-markdown.md +0 -118
  2592. package/template/.qoder/skills/beautiful-article/references/theme-selection.md +0 -48
  2593. package/template/.qoder/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  2594. package/template/.qoder/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  2595. package/template/.qoder/skills/beautiful-article/scripts/scaffold.sh +0 -172
  2596. package/template/.qoder/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  2597. package/template/.qoder/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  2598. package/template/.qoder/skills/beautiful-article/theme-profiles/andy.md +0 -57
  2599. package/template/.qoder/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  2600. package/template/.qoder/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  2601. package/template/.qoder/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  2602. package/template/.qoder/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  2603. package/template/.qoder/skills/beautiful-article/theme-profiles/index.json +0 -112
  2604. package/template/.qoder/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  2605. package/template/.qoder/skills/beautiful-article/theme-profiles/press.md +0 -61
  2606. package/template/.qoder/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  2607. package/template/.qoder/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  2608. package/template/.qoder/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  2609. package/template/.qoder/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  2610. package/template/.qoder/skills/drawio/.mcp.json +0 -8
  2611. package/template/.qoder/skills/drawio/CHANGELOG.md +0 -216
  2612. package/template/.qoder/skills/drawio/SKILL.md +0 -157
  2613. package/template/.qoder/skills/drawio/agents/interface.yaml +0 -26
  2614. package/template/.qoder/skills/drawio/agents/openai.yaml +0 -26
  2615. package/template/.qoder/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  2616. package/template/.qoder/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  2617. package/template/.qoder/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  2618. package/template/.qoder/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  2619. package/template/.qoder/skills/drawio/assets/examples/login-flow.drawio +0 -6
  2620. package/template/.qoder/skills/drawio/assets/examples/microservices.drawio +0 -6
  2621. package/template/.qoder/skills/drawio/assets/examples/neural-network.drawio +0 -6
  2622. package/template/.qoder/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  2623. package/template/.qoder/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  2624. package/template/.qoder/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  2625. package/template/.qoder/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  2626. package/template/.qoder/skills/drawio/assets/palettes/c4-blue.json +0 -29
  2627. package/template/.qoder/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  2628. package/template/.qoder/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  2629. package/template/.qoder/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  2630. package/template/.qoder/skills/drawio/assets/palettes/ieee-color.json +0 -17
  2631. package/template/.qoder/skills/drawio/assets/palettes/journal-jama.json +0 -20
  2632. package/template/.qoder/skills/drawio/assets/palettes/journal-npg.json +0 -23
  2633. package/template/.qoder/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  2634. package/template/.qoder/skills/drawio/assets/palettes/morandi.json +0 -21
  2635. package/template/.qoder/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  2636. package/template/.qoder/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  2637. package/template/.qoder/skills/drawio/assets/palettes/tol-bright.json +0 -20
  2638. package/template/.qoder/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  2639. package/template/.qoder/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  2640. package/template/.qoder/skills/drawio/assets/palettes/tol-muted.json +0 -22
  2641. package/template/.qoder/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  2642. package/template/.qoder/skills/drawio/assets/schemas/spec.schema.json +0 -620
  2643. package/template/.qoder/skills/drawio/assets/themes/academic-color.json +0 -299
  2644. package/template/.qoder/skills/drawio/assets/themes/academic.json +0 -245
  2645. package/template/.qoder/skills/drawio/assets/themes/arch-dark.json +0 -253
  2646. package/template/.qoder/skills/drawio/assets/themes/blueprint.json +0 -246
  2647. package/template/.qoder/skills/drawio/assets/themes/dark-luxury.json +0 -246
  2648. package/template/.qoder/skills/drawio/assets/themes/dark-terminal.json +0 -244
  2649. package/template/.qoder/skills/drawio/assets/themes/dark.json +0 -220
  2650. package/template/.qoder/skills/drawio/assets/themes/high-contrast.json +0 -220
  2651. package/template/.qoder/skills/drawio/assets/themes/nature.json +0 -220
  2652. package/template/.qoder/skills/drawio/assets/themes/notion-clean.json +0 -246
  2653. package/template/.qoder/skills/drawio/assets/themes/tech-blue.json +0 -220
  2654. package/template/.qoder/skills/drawio/evals/README.md +0 -17
  2655. package/template/.qoder/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  2656. package/template/.qoder/skills/drawio/evals/baseline-prompts.json +0 -122
  2657. package/template/.qoder/skills/drawio/evals/darwin-results.tsv +0 -4
  2658. package/template/.qoder/skills/drawio/evals/evals.json +0 -223
  2659. package/template/.qoder/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  2660. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  2661. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  2662. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  2663. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  2664. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  2665. package/template/.qoder/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  2666. package/template/.qoder/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  2667. package/template/.qoder/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  2668. package/template/.qoder/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  2669. package/template/.qoder/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  2670. package/template/.qoder/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  2671. package/template/.qoder/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  2672. package/template/.qoder/skills/drawio/evals/upstream-integration-cases.json +0 -78
  2673. package/template/.qoder/skills/drawio/evals/vision-preview-cases.json +0 -147
  2674. package/template/.qoder/skills/drawio/references/docs/agent-diagrams.md +0 -164
  2675. package/template/.qoder/skills/drawio/references/docs/ah-format.md +0 -322
  2676. package/template/.qoder/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  2677. package/template/.qoder/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  2678. package/template/.qoder/skills/drawio/references/docs/code-importers.md +0 -53
  2679. package/template/.qoder/skills/drawio/references/docs/config-importers.md +0 -68
  2680. package/template/.qoder/skills/drawio/references/docs/design-system/README.md +0 -204
  2681. package/template/.qoder/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  2682. package/template/.qoder/skills/drawio/references/docs/design-system/connectors.md +0 -388
  2683. package/template/.qoder/skills/drawio/references/docs/design-system/formulas.md +0 -196
  2684. package/template/.qoder/skills/drawio/references/docs/design-system/icons.md +0 -332
  2685. package/template/.qoder/skills/drawio/references/docs/design-system/shapes.md +0 -269
  2686. package/template/.qoder/skills/drawio/references/docs/design-system/specification.md +0 -754
  2687. package/template/.qoder/skills/drawio/references/docs/design-system/themes.md +0 -441
  2688. package/template/.qoder/skills/drawio/references/docs/design-system/tokens.md +0 -232
  2689. package/template/.qoder/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  2690. package/template/.qoder/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  2691. package/template/.qoder/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  2692. package/template/.qoder/skills/drawio/references/docs/math-typesetting.md +0 -258
  2693. package/template/.qoder/skills/drawio/references/docs/mcp-tools.md +0 -85
  2694. package/template/.qoder/skills/drawio/references/docs/migration-readiness.md +0 -73
  2695. package/template/.qoder/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  2696. package/template/.qoder/skills/drawio/references/docs/style-extraction.md +0 -261
  2697. package/template/.qoder/skills/drawio/references/docs/style-presets.md +0 -126
  2698. package/template/.qoder/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  2699. package/template/.qoder/skills/drawio/references/docs/xml-format.md +0 -53
  2700. package/template/.qoder/skills/drawio/references/examples/README.md +0 -33
  2701. package/template/.qoder/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  2702. package/template/.qoder/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  2703. package/template/.qoder/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  2704. package/template/.qoder/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  2705. package/template/.qoder/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  2706. package/template/.qoder/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  2707. package/template/.qoder/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  2708. package/template/.qoder/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  2709. package/template/.qoder/skills/drawio/references/examples/e-commerce.yaml +0 -141
  2710. package/template/.qoder/skills/drawio/references/examples/importers/README.md +0 -10
  2711. package/template/.qoder/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  2712. package/template/.qoder/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  2713. package/template/.qoder/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  2714. package/template/.qoder/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  2715. package/template/.qoder/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  2716. package/template/.qoder/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  2717. package/template/.qoder/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  2718. package/template/.qoder/skills/drawio/references/examples/importers/schema.sql +0 -10
  2719. package/template/.qoder/skills/drawio/references/examples/importers/terraform.tf +0 -9
  2720. package/template/.qoder/skills/drawio/references/examples/login-flow.yaml +0 -65
  2721. package/template/.qoder/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  2722. package/template/.qoder/skills/drawio/references/examples/microservices.yaml +0 -58
  2723. package/template/.qoder/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  2724. package/template/.qoder/skills/drawio/references/examples/neural-network.yaml +0 -66
  2725. package/template/.qoder/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  2726. package/template/.qoder/skills/drawio/references/examples/palettes/README.md +0 -29
  2727. package/template/.qoder/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  2728. package/template/.qoder/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  2729. package/template/.qoder/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  2730. package/template/.qoder/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  2731. package/template/.qoder/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  2732. package/template/.qoder/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  2733. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  2734. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  2735. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  2736. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  2737. package/template/.qoder/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  2738. package/template/.qoder/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  2739. package/template/.qoder/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  2740. package/template/.qoder/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  2741. package/template/.qoder/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  2742. package/template/.qoder/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  2743. package/template/.qoder/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  2744. package/template/.qoder/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  2745. package/template/.qoder/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  2746. package/template/.qoder/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  2747. package/template/.qoder/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  2748. package/template/.qoder/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  2749. package/template/.qoder/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  2750. package/template/.qoder/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  2751. package/template/.qoder/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  2752. package/template/.qoder/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  2753. package/template/.qoder/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  2754. package/template/.qoder/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  2755. package/template/.qoder/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  2756. package/template/.qoder/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  2757. package/template/.qoder/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  2758. package/template/.qoder/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  2759. package/template/.qoder/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  2760. package/template/.qoder/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  2761. package/template/.qoder/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  2762. package/template/.qoder/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  2763. package/template/.qoder/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  2764. package/template/.qoder/skills/drawio/references/official/style-reference.md +0 -936
  2765. package/template/.qoder/skills/drawio/references/official/xml-reference.md +0 -262
  2766. package/template/.qoder/skills/drawio/references/palette.schema.json +0 -59
  2767. package/template/.qoder/skills/drawio/references/theme.schema.json +0 -249
  2768. package/template/.qoder/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  2769. package/template/.qoder/skills/drawio/references/workflows/create.md +0 -195
  2770. package/template/.qoder/skills/drawio/references/workflows/edit.md +0 -174
  2771. package/template/.qoder/skills/drawio/references/workflows/replicate.md +0 -239
  2772. package/template/.qoder/skills/drawio/references/workflows/visual-review.md +0 -108
  2773. package/template/.qoder/skills/drawio/reports/output_quality_scorecard.md +0 -106
  2774. package/template/.qoder/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  2775. package/template/.qoder/skills/drawio/scripts/adapters/ci.js +0 -139
  2776. package/template/.qoder/skills/drawio/scripts/adapters/ci.test.js +0 -41
  2777. package/template/.qoder/skills/drawio/scripts/adapters/code-common.js +0 -171
  2778. package/template/.qoder/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  2779. package/template/.qoder/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  2780. package/template/.qoder/skills/drawio/scripts/adapters/compose.js +0 -134
  2781. package/template/.qoder/skills/drawio/scripts/adapters/compose.test.js +0 -54
  2782. package/template/.qoder/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  2783. package/template/.qoder/skills/drawio/scripts/adapters/config-common.js +0 -131
  2784. package/template/.qoder/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  2785. package/template/.qoder/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  2786. package/template/.qoder/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  2787. package/template/.qoder/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  2788. package/template/.qoder/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  2789. package/template/.qoder/skills/drawio/scripts/adapters/go-code.js +0 -168
  2790. package/template/.qoder/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  2791. package/template/.qoder/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  2792. package/template/.qoder/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  2793. package/template/.qoder/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  2794. package/template/.qoder/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  2795. package/template/.qoder/skills/drawio/scripts/adapters/identity.js +0 -244
  2796. package/template/.qoder/skills/drawio/scripts/adapters/identity.test.js +0 -123
  2797. package/template/.qoder/skills/drawio/scripts/adapters/index.js +0 -489
  2798. package/template/.qoder/skills/drawio/scripts/adapters/index.test.js +0 -152
  2799. package/template/.qoder/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  2800. package/template/.qoder/skills/drawio/scripts/adapters/js-code.js +0 -141
  2801. package/template/.qoder/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  2802. package/template/.qoder/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  2803. package/template/.qoder/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  2804. package/template/.qoder/skills/drawio/scripts/adapters/openapi.js +0 -98
  2805. package/template/.qoder/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  2806. package/template/.qoder/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  2807. package/template/.qoder/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  2808. package/template/.qoder/skills/drawio/scripts/adapters/optional-python.js +0 -127
  2809. package/template/.qoder/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  2810. package/template/.qoder/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  2811. package/template/.qoder/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  2812. package/template/.qoder/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  2813. package/template/.qoder/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  2814. package/template/.qoder/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  2815. package/template/.qoder/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  2816. package/template/.qoder/skills/drawio/scripts/adapters/python-code.js +0 -246
  2817. package/template/.qoder/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  2818. package/template/.qoder/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  2819. package/template/.qoder/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  2820. package/template/.qoder/skills/drawio/scripts/adapters/rust-code.js +0 -207
  2821. package/template/.qoder/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  2822. package/template/.qoder/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  2823. package/template/.qoder/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  2824. package/template/.qoder/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  2825. package/template/.qoder/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  2826. package/template/.qoder/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  2827. package/template/.qoder/skills/drawio/scripts/cli.js +0 -700
  2828. package/template/.qoder/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  2829. package/template/.qoder/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  2830. package/template/.qoder/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  2831. package/template/.qoder/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  2832. package/template/.qoder/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  2833. package/template/.qoder/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  2834. package/template/.qoder/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  2835. package/template/.qoder/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  2836. package/template/.qoder/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  2837. package/template/.qoder/skills/drawio/scripts/dsl/document-spec.js +0 -256
  2838. package/template/.qoder/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  2839. package/template/.qoder/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  2840. package/template/.qoder/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  2841. package/template/.qoder/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  2842. package/template/.qoder/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  2843. package/template/.qoder/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  2844. package/template/.qoder/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  2845. package/template/.qoder/skills/drawio/scripts/dsl/multi-page.js +0 -224
  2846. package/template/.qoder/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  2847. package/template/.qoder/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  2848. package/template/.qoder/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  2849. package/template/.qoder/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  2850. package/template/.qoder/skills/drawio/scripts/dsl/palette.js +0 -302
  2851. package/template/.qoder/skills/drawio/scripts/dsl/palette.test.js +0 -197
  2852. package/template/.qoder/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  2853. package/template/.qoder/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  2854. package/template/.qoder/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  2855. package/template/.qoder/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  2856. package/template/.qoder/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  2857. package/template/.qoder/skills/drawio/scripts/install.bat +0 -64
  2858. package/template/.qoder/skills/drawio/scripts/install.sh +0 -44
  2859. package/template/.qoder/skills/drawio/scripts/math/index.js +0 -317
  2860. package/template/.qoder/skills/drawio/scripts/math/index.test.js +0 -62
  2861. package/template/.qoder/skills/drawio/scripts/package.json +0 -1
  2862. package/template/.qoder/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  2863. package/template/.qoder/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  2864. package/template/.qoder/skills/drawio/scripts/postprocess/cli.js +0 -228
  2865. package/template/.qoder/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  2866. package/template/.qoder/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  2867. package/template/.qoder/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  2868. package/template/.qoder/skills/drawio/scripts/postprocess/html.js +0 -197
  2869. package/template/.qoder/skills/drawio/scripts/postprocess/html.test.js +0 -50
  2870. package/template/.qoder/skills/drawio/scripts/postprocess/index.js +0 -5
  2871. package/template/.qoder/skills/drawio/scripts/postprocess/input.js +0 -112
  2872. package/template/.qoder/skills/drawio/scripts/postprocess/input.test.js +0 -73
  2873. package/template/.qoder/skills/drawio/scripts/postprocess/mutate.js +0 -584
  2874. package/template/.qoder/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  2875. package/template/.qoder/skills/drawio/scripts/postprocess/projection.js +0 -178
  2876. package/template/.qoder/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  2877. package/template/.qoder/skills/drawio/scripts/runtime/artifacts.js +0 -283
  2878. package/template/.qoder/skills/drawio/scripts/runtime/desktop.js +0 -204
  2879. package/template/.qoder/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  2880. package/template/.qoder/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  2881. package/template/.qoder/skills/drawio/scripts/runtime/export-stability.js +0 -75
  2882. package/template/.qoder/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  2883. package/template/.qoder/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  2884. package/template/.qoder/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  2885. package/template/.qoder/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  2886. package/template/.qoder/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  2887. package/template/.qoder/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  2888. package/template/.qoder/skills/drawio/scripts/shared/xml-utils.js +0 -241
  2889. package/template/.qoder/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  2890. package/template/.qoder/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  2891. package/template/.qoder/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  2892. package/template/.qoder/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  2893. package/template/.qoder/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  2894. package/template/.qoder/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  2895. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  2896. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  2897. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  2898. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  2899. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  2900. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  2901. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  2902. package/template/.qoder/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  2903. package/template/.qoder/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  2904. package/template/.qoder/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  2905. package/template/.qoder/skills/drawio/styles/built-in/corporate.json +0 -49
  2906. package/template/.qoder/skills/drawio/styles/built-in/default.json +0 -49
  2907. package/template/.qoder/skills/drawio/styles/built-in/handdrawn.json +0 -49
  2908. package/template/.qoder/skills/drawio/styles/schema.json +0 -112
  2909. package/template/.qoder/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  2910. package/template/.qoder/skills/drawio-academic-skills/README.md +0 -103
  2911. package/template/.qoder/skills/drawio-academic-skills/README_CN.md +0 -103
  2912. package/template/.qoder/skills/drawio-academic-skills/SKILL.md +0 -161
  2913. package/template/.qoder/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  2914. package/template/.qoder/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  2915. package/template/.qoder/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  2916. package/template/.qoder/skills/drawio-academic-skills/evals/README.md +0 -13
  2917. package/template/.qoder/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  2918. package/template/.qoder/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  2919. package/template/.qoder/skills/drawio-academic-skills/evals/evals.json +0 -228
  2920. package/template/.qoder/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  2921. package/template/.qoder/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  2922. package/template/.qoder/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  2923. package/template/.qoder/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  2924. package/template/.qoder/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  2925. package/template/.qoder/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  2926. package/template/.qoder/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  2927. package/template/.qoder/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  2928. package/template/.qoder/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  2929. package/template/.qoder/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  2930. package/template/.qoder/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  2931. package/template/.qoder/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  2932. package/template/.qoder/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  2933. package/template/.qoder/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  2934. package/template/.qoder/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  2935. package/template/.qoder/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  2936. package/template/.qoder/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  2937. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  2938. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  2939. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  2940. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  2941. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  2942. package/template/.qoder/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  2943. package/template/.qoder/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  2944. package/template/.qoder/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  2945. package/template/.qoder/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  2946. package/template/.qoder/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  2947. package/template/.qoder/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  2948. package/template/.qoder/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  2949. package/template/.qoder/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  2950. package/template/.qoder/skills/kb-retriever/README.md +0 -197
  2951. package/template/.qoder/skills/kb-retriever/README.zh-CN.md +0 -197
  2952. package/template/.qoder/skills/kb-retriever/SKILL.md +0 -250
  2953. package/template/.qoder/skills/kb-retriever/manifest.json +0 -15
  2954. package/template/.qoder/skills/kb-retriever/references/excel_analysis.md +0 -129
  2955. package/template/.qoder/skills/kb-retriever/references/excel_reading.md +0 -72
  2956. package/template/.qoder/skills/kb-retriever/references/pdf_reading.md +0 -362
  2957. package/template/.qoder/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  2958. package/template/.qoder/skills/yss-db2mybatis/SKILL.md +0 -94
  2959. package/template/.qoder/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  2960. package/template/.qoder/skills/yss-db2mybatis/assets/$.java +0 -19
  2961. package/template/.qoder/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  2962. package/template/.qoder/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  2963. package/template/.qoder/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  2964. package/template/.qoder/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  2965. package/template/.qoder/skills/yss-db2mybatis/assets/po.java.template +0 -18
  2966. package/template/.qoder/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  2967. package/template/.qoder/skills/yss-db2mybatis/config/metadata.json +0 -334
  2968. package/template/.qoder/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  2969. package/template/.qoder/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  2970. package/template/.qoder/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  2971. package/template/.qoder/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  2972. package/template/.qoder/skills/yss-db2mybatis/requirements.txt +0 -4
  2973. package/template/.qoder/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  2974. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  2975. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  2976. package/template/.qoder/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  2977. package/template/.qoder/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  2978. package/template/.qoder/skills/yss-valuation/SKILL.md +0 -40
  2979. package/template/.qoder/skills/yss-valuation/agents/openai.yaml +0 -4
  2980. package/template/.qoder/skills/yss-valuation/references/source-index.md +0 -37
  2981. package/template/.qoder/skills/yss-variable/SKILL.md +0 -47
  2982. package/template/.qoder/skills/yss-variable/agents/openai.yaml +0 -4
  2983. package/template/.qoder/skills/yss-variable/references/source-index.md +0 -60
  2984. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  2985. package/template/.qoder/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  2986. package/template/.trae/skills/beautiful-article/README.md +0 -450
  2987. package/template/.trae/skills/beautiful-article/README.zh-CN.md +0 -450
  2988. package/template/.trae/skills/beautiful-article/SKILL.md +0 -466
  2989. package/template/.trae/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  2990. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  2991. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  2992. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  2993. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  2994. package/template/.trae/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  2995. package/template/.trae/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  2996. package/template/.trae/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  2997. package/template/.trae/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  2998. package/template/.trae/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  2999. package/template/.trae/skills/beautiful-article/manifest.json +0 -15
  3000. package/template/.trae/skills/beautiful-article/references/article-types/briefing.md +0 -32
  3001. package/template/.trae/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  3002. package/template/.trae/skills/beautiful-article/references/article-types/essay.md +0 -31
  3003. package/template/.trae/skills/beautiful-article/references/article-types/explainer.md +0 -32
  3004. package/template/.trae/skills/beautiful-article/references/article-types/full-report.md +0 -32
  3005. package/template/.trae/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  3006. package/template/.trae/skills/beautiful-article/references/article-types/longform.md +0 -32
  3007. package/template/.trae/skills/beautiful-article/references/article-types/review.md +0 -32
  3008. package/template/.trae/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  3009. package/template/.trae/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  3010. package/template/.trae/skills/beautiful-article/references/article-types.md +0 -42
  3011. package/template/.trae/skills/beautiful-article/references/asset-policy.md +0 -71
  3012. package/template/.trae/skills/beautiful-article/references/component-policy.md +0 -103
  3013. package/template/.trae/skills/beautiful-article/references/cover.md +0 -208
  3014. package/template/.trae/skills/beautiful-article/references/harness.md +0 -35
  3015. package/template/.trae/skills/beautiful-article/references/html-output.md +0 -42
  3016. package/template/.trae/skills/beautiful-article/references/information-density.md +0 -50
  3017. package/template/.trae/skills/beautiful-article/references/layout.md +0 -46
  3018. package/template/.trae/skills/beautiful-article/references/pdf-output.md +0 -208
  3019. package/template/.trae/skills/beautiful-article/references/plan-template.md +0 -109
  3020. package/template/.trae/skills/beautiful-article/references/raw-policy.md +0 -86
  3021. package/template/.trae/skills/beautiful-article/references/repair-policy.md +0 -35
  3022. package/template/.trae/skills/beautiful-article/references/review-checklist.md +0 -133
  3023. package/template/.trae/skills/beautiful-article/references/scaffold.md +0 -77
  3024. package/template/.trae/skills/beautiful-article/references/section-build.md +0 -100
  3025. package/template/.trae/skills/beautiful-article/references/source-to-markdown.md +0 -118
  3026. package/template/.trae/skills/beautiful-article/references/theme-selection.md +0 -48
  3027. package/template/.trae/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  3028. package/template/.trae/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  3029. package/template/.trae/skills/beautiful-article/scripts/scaffold.sh +0 -172
  3030. package/template/.trae/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  3031. package/template/.trae/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  3032. package/template/.trae/skills/beautiful-article/theme-profiles/andy.md +0 -57
  3033. package/template/.trae/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  3034. package/template/.trae/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  3035. package/template/.trae/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  3036. package/template/.trae/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  3037. package/template/.trae/skills/beautiful-article/theme-profiles/index.json +0 -112
  3038. package/template/.trae/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  3039. package/template/.trae/skills/beautiful-article/theme-profiles/press.md +0 -61
  3040. package/template/.trae/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  3041. package/template/.trae/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  3042. package/template/.trae/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  3043. package/template/.trae/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  3044. package/template/.trae/skills/drawio/.mcp.json +0 -8
  3045. package/template/.trae/skills/drawio/CHANGELOG.md +0 -216
  3046. package/template/.trae/skills/drawio/SKILL.md +0 -157
  3047. package/template/.trae/skills/drawio/agents/interface.yaml +0 -26
  3048. package/template/.trae/skills/drawio/agents/openai.yaml +0 -26
  3049. package/template/.trae/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  3050. package/template/.trae/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  3051. package/template/.trae/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  3052. package/template/.trae/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  3053. package/template/.trae/skills/drawio/assets/examples/login-flow.drawio +0 -6
  3054. package/template/.trae/skills/drawio/assets/examples/microservices.drawio +0 -6
  3055. package/template/.trae/skills/drawio/assets/examples/neural-network.drawio +0 -6
  3056. package/template/.trae/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  3057. package/template/.trae/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  3058. package/template/.trae/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  3059. package/template/.trae/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  3060. package/template/.trae/skills/drawio/assets/palettes/c4-blue.json +0 -29
  3061. package/template/.trae/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  3062. package/template/.trae/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  3063. package/template/.trae/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  3064. package/template/.trae/skills/drawio/assets/palettes/ieee-color.json +0 -17
  3065. package/template/.trae/skills/drawio/assets/palettes/journal-jama.json +0 -20
  3066. package/template/.trae/skills/drawio/assets/palettes/journal-npg.json +0 -23
  3067. package/template/.trae/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  3068. package/template/.trae/skills/drawio/assets/palettes/morandi.json +0 -21
  3069. package/template/.trae/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  3070. package/template/.trae/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  3071. package/template/.trae/skills/drawio/assets/palettes/tol-bright.json +0 -20
  3072. package/template/.trae/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  3073. package/template/.trae/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  3074. package/template/.trae/skills/drawio/assets/palettes/tol-muted.json +0 -22
  3075. package/template/.trae/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  3076. package/template/.trae/skills/drawio/assets/schemas/spec.schema.json +0 -620
  3077. package/template/.trae/skills/drawio/assets/themes/academic-color.json +0 -299
  3078. package/template/.trae/skills/drawio/assets/themes/academic.json +0 -245
  3079. package/template/.trae/skills/drawio/assets/themes/arch-dark.json +0 -253
  3080. package/template/.trae/skills/drawio/assets/themes/blueprint.json +0 -246
  3081. package/template/.trae/skills/drawio/assets/themes/dark-luxury.json +0 -246
  3082. package/template/.trae/skills/drawio/assets/themes/dark-terminal.json +0 -244
  3083. package/template/.trae/skills/drawio/assets/themes/dark.json +0 -220
  3084. package/template/.trae/skills/drawio/assets/themes/high-contrast.json +0 -220
  3085. package/template/.trae/skills/drawio/assets/themes/nature.json +0 -220
  3086. package/template/.trae/skills/drawio/assets/themes/notion-clean.json +0 -246
  3087. package/template/.trae/skills/drawio/assets/themes/tech-blue.json +0 -220
  3088. package/template/.trae/skills/drawio/evals/README.md +0 -17
  3089. package/template/.trae/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  3090. package/template/.trae/skills/drawio/evals/baseline-prompts.json +0 -122
  3091. package/template/.trae/skills/drawio/evals/darwin-results.tsv +0 -4
  3092. package/template/.trae/skills/drawio/evals/evals.json +0 -223
  3093. package/template/.trae/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  3094. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  3095. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  3096. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  3097. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  3098. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  3099. package/template/.trae/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  3100. package/template/.trae/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  3101. package/template/.trae/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  3102. package/template/.trae/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  3103. package/template/.trae/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  3104. package/template/.trae/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  3105. package/template/.trae/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  3106. package/template/.trae/skills/drawio/evals/upstream-integration-cases.json +0 -78
  3107. package/template/.trae/skills/drawio/evals/vision-preview-cases.json +0 -147
  3108. package/template/.trae/skills/drawio/references/docs/agent-diagrams.md +0 -164
  3109. package/template/.trae/skills/drawio/references/docs/ah-format.md +0 -322
  3110. package/template/.trae/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  3111. package/template/.trae/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  3112. package/template/.trae/skills/drawio/references/docs/code-importers.md +0 -53
  3113. package/template/.trae/skills/drawio/references/docs/config-importers.md +0 -68
  3114. package/template/.trae/skills/drawio/references/docs/design-system/README.md +0 -204
  3115. package/template/.trae/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  3116. package/template/.trae/skills/drawio/references/docs/design-system/connectors.md +0 -388
  3117. package/template/.trae/skills/drawio/references/docs/design-system/formulas.md +0 -196
  3118. package/template/.trae/skills/drawio/references/docs/design-system/icons.md +0 -332
  3119. package/template/.trae/skills/drawio/references/docs/design-system/shapes.md +0 -269
  3120. package/template/.trae/skills/drawio/references/docs/design-system/specification.md +0 -754
  3121. package/template/.trae/skills/drawio/references/docs/design-system/themes.md +0 -441
  3122. package/template/.trae/skills/drawio/references/docs/design-system/tokens.md +0 -232
  3123. package/template/.trae/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  3124. package/template/.trae/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  3125. package/template/.trae/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  3126. package/template/.trae/skills/drawio/references/docs/math-typesetting.md +0 -258
  3127. package/template/.trae/skills/drawio/references/docs/mcp-tools.md +0 -85
  3128. package/template/.trae/skills/drawio/references/docs/migration-readiness.md +0 -73
  3129. package/template/.trae/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  3130. package/template/.trae/skills/drawio/references/docs/style-extraction.md +0 -261
  3131. package/template/.trae/skills/drawio/references/docs/style-presets.md +0 -126
  3132. package/template/.trae/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  3133. package/template/.trae/skills/drawio/references/docs/xml-format.md +0 -53
  3134. package/template/.trae/skills/drawio/references/examples/README.md +0 -33
  3135. package/template/.trae/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  3136. package/template/.trae/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  3137. package/template/.trae/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  3138. package/template/.trae/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  3139. package/template/.trae/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  3140. package/template/.trae/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  3141. package/template/.trae/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  3142. package/template/.trae/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  3143. package/template/.trae/skills/drawio/references/examples/e-commerce.yaml +0 -141
  3144. package/template/.trae/skills/drawio/references/examples/importers/README.md +0 -10
  3145. package/template/.trae/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  3146. package/template/.trae/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  3147. package/template/.trae/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  3148. package/template/.trae/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  3149. package/template/.trae/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  3150. package/template/.trae/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  3151. package/template/.trae/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  3152. package/template/.trae/skills/drawio/references/examples/importers/schema.sql +0 -10
  3153. package/template/.trae/skills/drawio/references/examples/importers/terraform.tf +0 -9
  3154. package/template/.trae/skills/drawio/references/examples/login-flow.yaml +0 -65
  3155. package/template/.trae/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  3156. package/template/.trae/skills/drawio/references/examples/microservices.yaml +0 -58
  3157. package/template/.trae/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  3158. package/template/.trae/skills/drawio/references/examples/neural-network.yaml +0 -66
  3159. package/template/.trae/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  3160. package/template/.trae/skills/drawio/references/examples/palettes/README.md +0 -29
  3161. package/template/.trae/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  3162. package/template/.trae/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  3163. package/template/.trae/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  3164. package/template/.trae/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  3165. package/template/.trae/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  3166. package/template/.trae/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  3167. package/template/.trae/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  3168. package/template/.trae/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  3169. package/template/.trae/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  3170. package/template/.trae/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  3171. package/template/.trae/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  3172. package/template/.trae/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  3173. package/template/.trae/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  3174. package/template/.trae/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  3175. package/template/.trae/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  3176. package/template/.trae/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  3177. package/template/.trae/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  3178. package/template/.trae/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  3179. package/template/.trae/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  3180. package/template/.trae/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  3181. package/template/.trae/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  3182. package/template/.trae/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  3183. package/template/.trae/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  3184. package/template/.trae/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  3185. package/template/.trae/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  3186. package/template/.trae/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  3187. package/template/.trae/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  3188. package/template/.trae/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  3189. package/template/.trae/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  3190. package/template/.trae/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  3191. package/template/.trae/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  3192. package/template/.trae/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  3193. package/template/.trae/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  3194. package/template/.trae/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  3195. package/template/.trae/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  3196. package/template/.trae/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  3197. package/template/.trae/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  3198. package/template/.trae/skills/drawio/references/official/style-reference.md +0 -936
  3199. package/template/.trae/skills/drawio/references/official/xml-reference.md +0 -262
  3200. package/template/.trae/skills/drawio/references/palette.schema.json +0 -59
  3201. package/template/.trae/skills/drawio/references/theme.schema.json +0 -249
  3202. package/template/.trae/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  3203. package/template/.trae/skills/drawio/references/workflows/create.md +0 -195
  3204. package/template/.trae/skills/drawio/references/workflows/edit.md +0 -174
  3205. package/template/.trae/skills/drawio/references/workflows/replicate.md +0 -239
  3206. package/template/.trae/skills/drawio/references/workflows/visual-review.md +0 -108
  3207. package/template/.trae/skills/drawio/reports/output_quality_scorecard.md +0 -106
  3208. package/template/.trae/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  3209. package/template/.trae/skills/drawio/scripts/adapters/ci.js +0 -139
  3210. package/template/.trae/skills/drawio/scripts/adapters/ci.test.js +0 -41
  3211. package/template/.trae/skills/drawio/scripts/adapters/code-common.js +0 -171
  3212. package/template/.trae/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  3213. package/template/.trae/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  3214. package/template/.trae/skills/drawio/scripts/adapters/compose.js +0 -134
  3215. package/template/.trae/skills/drawio/scripts/adapters/compose.test.js +0 -54
  3216. package/template/.trae/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  3217. package/template/.trae/skills/drawio/scripts/adapters/config-common.js +0 -131
  3218. package/template/.trae/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  3219. package/template/.trae/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  3220. package/template/.trae/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  3221. package/template/.trae/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  3222. package/template/.trae/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  3223. package/template/.trae/skills/drawio/scripts/adapters/go-code.js +0 -168
  3224. package/template/.trae/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  3225. package/template/.trae/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  3226. package/template/.trae/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  3227. package/template/.trae/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  3228. package/template/.trae/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  3229. package/template/.trae/skills/drawio/scripts/adapters/identity.js +0 -244
  3230. package/template/.trae/skills/drawio/scripts/adapters/identity.test.js +0 -123
  3231. package/template/.trae/skills/drawio/scripts/adapters/index.js +0 -489
  3232. package/template/.trae/skills/drawio/scripts/adapters/index.test.js +0 -152
  3233. package/template/.trae/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  3234. package/template/.trae/skills/drawio/scripts/adapters/js-code.js +0 -141
  3235. package/template/.trae/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  3236. package/template/.trae/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  3237. package/template/.trae/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  3238. package/template/.trae/skills/drawio/scripts/adapters/openapi.js +0 -98
  3239. package/template/.trae/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  3240. package/template/.trae/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  3241. package/template/.trae/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  3242. package/template/.trae/skills/drawio/scripts/adapters/optional-python.js +0 -127
  3243. package/template/.trae/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  3244. package/template/.trae/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  3245. package/template/.trae/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  3246. package/template/.trae/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  3247. package/template/.trae/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  3248. package/template/.trae/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  3249. package/template/.trae/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  3250. package/template/.trae/skills/drawio/scripts/adapters/python-code.js +0 -246
  3251. package/template/.trae/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  3252. package/template/.trae/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  3253. package/template/.trae/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  3254. package/template/.trae/skills/drawio/scripts/adapters/rust-code.js +0 -207
  3255. package/template/.trae/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  3256. package/template/.trae/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  3257. package/template/.trae/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  3258. package/template/.trae/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  3259. package/template/.trae/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  3260. package/template/.trae/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  3261. package/template/.trae/skills/drawio/scripts/cli.js +0 -700
  3262. package/template/.trae/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  3263. package/template/.trae/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  3264. package/template/.trae/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  3265. package/template/.trae/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  3266. package/template/.trae/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  3267. package/template/.trae/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  3268. package/template/.trae/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  3269. package/template/.trae/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  3270. package/template/.trae/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  3271. package/template/.trae/skills/drawio/scripts/dsl/document-spec.js +0 -256
  3272. package/template/.trae/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  3273. package/template/.trae/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  3274. package/template/.trae/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  3275. package/template/.trae/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  3276. package/template/.trae/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  3277. package/template/.trae/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  3278. package/template/.trae/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  3279. package/template/.trae/skills/drawio/scripts/dsl/multi-page.js +0 -224
  3280. package/template/.trae/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  3281. package/template/.trae/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  3282. package/template/.trae/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  3283. package/template/.trae/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  3284. package/template/.trae/skills/drawio/scripts/dsl/palette.js +0 -302
  3285. package/template/.trae/skills/drawio/scripts/dsl/palette.test.js +0 -197
  3286. package/template/.trae/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  3287. package/template/.trae/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  3288. package/template/.trae/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  3289. package/template/.trae/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  3290. package/template/.trae/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  3291. package/template/.trae/skills/drawio/scripts/install.bat +0 -64
  3292. package/template/.trae/skills/drawio/scripts/install.sh +0 -44
  3293. package/template/.trae/skills/drawio/scripts/math/index.js +0 -317
  3294. package/template/.trae/skills/drawio/scripts/math/index.test.js +0 -62
  3295. package/template/.trae/skills/drawio/scripts/package.json +0 -1
  3296. package/template/.trae/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  3297. package/template/.trae/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  3298. package/template/.trae/skills/drawio/scripts/postprocess/cli.js +0 -228
  3299. package/template/.trae/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  3300. package/template/.trae/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  3301. package/template/.trae/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  3302. package/template/.trae/skills/drawio/scripts/postprocess/html.js +0 -197
  3303. package/template/.trae/skills/drawio/scripts/postprocess/html.test.js +0 -50
  3304. package/template/.trae/skills/drawio/scripts/postprocess/index.js +0 -5
  3305. package/template/.trae/skills/drawio/scripts/postprocess/input.js +0 -112
  3306. package/template/.trae/skills/drawio/scripts/postprocess/input.test.js +0 -73
  3307. package/template/.trae/skills/drawio/scripts/postprocess/mutate.js +0 -584
  3308. package/template/.trae/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  3309. package/template/.trae/skills/drawio/scripts/postprocess/projection.js +0 -178
  3310. package/template/.trae/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  3311. package/template/.trae/skills/drawio/scripts/runtime/artifacts.js +0 -283
  3312. package/template/.trae/skills/drawio/scripts/runtime/desktop.js +0 -204
  3313. package/template/.trae/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  3314. package/template/.trae/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  3315. package/template/.trae/skills/drawio/scripts/runtime/export-stability.js +0 -75
  3316. package/template/.trae/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  3317. package/template/.trae/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  3318. package/template/.trae/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  3319. package/template/.trae/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  3320. package/template/.trae/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  3321. package/template/.trae/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  3322. package/template/.trae/skills/drawio/scripts/shared/xml-utils.js +0 -241
  3323. package/template/.trae/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  3324. package/template/.trae/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  3325. package/template/.trae/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  3326. package/template/.trae/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  3327. package/template/.trae/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  3328. package/template/.trae/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  3329. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  3330. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  3331. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  3332. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  3333. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  3334. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  3335. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  3336. package/template/.trae/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  3337. package/template/.trae/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  3338. package/template/.trae/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  3339. package/template/.trae/skills/drawio/styles/built-in/corporate.json +0 -49
  3340. package/template/.trae/skills/drawio/styles/built-in/default.json +0 -49
  3341. package/template/.trae/skills/drawio/styles/built-in/handdrawn.json +0 -49
  3342. package/template/.trae/skills/drawio/styles/schema.json +0 -112
  3343. package/template/.trae/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  3344. package/template/.trae/skills/drawio-academic-skills/README.md +0 -103
  3345. package/template/.trae/skills/drawio-academic-skills/README_CN.md +0 -103
  3346. package/template/.trae/skills/drawio-academic-skills/SKILL.md +0 -161
  3347. package/template/.trae/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  3348. package/template/.trae/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  3349. package/template/.trae/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  3350. package/template/.trae/skills/drawio-academic-skills/evals/README.md +0 -13
  3351. package/template/.trae/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  3352. package/template/.trae/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  3353. package/template/.trae/skills/drawio-academic-skills/evals/evals.json +0 -228
  3354. package/template/.trae/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  3355. package/template/.trae/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  3356. package/template/.trae/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  3357. package/template/.trae/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  3358. package/template/.trae/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  3359. package/template/.trae/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  3360. package/template/.trae/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  3361. package/template/.trae/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  3362. package/template/.trae/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  3363. package/template/.trae/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  3364. package/template/.trae/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  3365. package/template/.trae/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  3366. package/template/.trae/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  3367. package/template/.trae/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  3368. package/template/.trae/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  3369. package/template/.trae/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  3370. package/template/.trae/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  3371. package/template/.trae/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  3372. package/template/.trae/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  3373. package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  3374. package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  3375. package/template/.trae/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  3376. package/template/.trae/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  3377. package/template/.trae/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  3378. package/template/.trae/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  3379. package/template/.trae/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  3380. package/template/.trae/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  3381. package/template/.trae/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  3382. package/template/.trae/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  3383. package/template/.trae/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  3384. package/template/.trae/skills/kb-retriever/README.md +0 -197
  3385. package/template/.trae/skills/kb-retriever/README.zh-CN.md +0 -197
  3386. package/template/.trae/skills/kb-retriever/SKILL.md +0 -250
  3387. package/template/.trae/skills/kb-retriever/manifest.json +0 -15
  3388. package/template/.trae/skills/kb-retriever/references/excel_analysis.md +0 -129
  3389. package/template/.trae/skills/kb-retriever/references/excel_reading.md +0 -72
  3390. package/template/.trae/skills/kb-retriever/references/pdf_reading.md +0 -362
  3391. package/template/.trae/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  3392. package/template/.trae/skills/yss-db2mybatis/SKILL.md +0 -94
  3393. package/template/.trae/skills/yss-db2mybatis/agents/openai.yaml +0 -5
  3394. package/template/.trae/skills/yss-db2mybatis/assets/$.java +0 -19
  3395. package/template/.trae/skills/yss-db2mybatis/assets/convertor.java.template +0 -22
  3396. package/template/.trae/skills/yss-db2mybatis/assets/domain_gateway.java.template +0 -45
  3397. package/template/.trae/skills/yss-db2mybatis/assets/domain_model.java.template +0 -16
  3398. package/template/.trae/skills/yss-db2mybatis/assets/gateway_impl.java.template +0 -62
  3399. package/template/.trae/skills/yss-db2mybatis/assets/po.java.template +0 -18
  3400. package/template/.trae/skills/yss-db2mybatis/assets/repository.java.template +0 -7
  3401. package/template/.trae/skills/yss-db2mybatis/config/metadata.json +0 -334
  3402. package/template/.trae/skills/yss-db2mybatis/config/temp_datasource.json +0 -12
  3403. package/template/.trae/skills/yss-db2mybatis/references/datasource-config.example.json +0 -46
  3404. package/template/.trae/skills/yss-db2mybatis/references/project-convention.example.json +0 -14
  3405. package/template/.trae/skills/yss-db2mybatis/references/type-mapping.json +0 -31
  3406. package/template/.trae/skills/yss-db2mybatis/requirements.txt +0 -4
  3407. package/template/.trae/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  3408. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  3409. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  3410. package/template/.trae/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  3411. package/template/.trae/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  3412. package/template/.trae/skills/yss-valuation/SKILL.md +0 -40
  3413. package/template/.trae/skills/yss-valuation/agents/openai.yaml +0 -4
  3414. package/template/.trae/skills/yss-valuation/references/source-index.md +0 -37
  3415. package/template/.trae/skills/yss-variable/SKILL.md +0 -47
  3416. package/template/.trae/skills/yss-variable/agents/openai.yaml +0 -4
  3417. package/template/.trae/skills/yss-variable/references/source-index.md +0 -60
  3418. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  3419. package/template/.trae/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  3420. package/template/docs/adr/0004-split-lifecycle-and-router-registry-domains.md +0 -5
  3421. package/template/docs/adr/0005-cross-repository-ecosystem-release-manifest.md +0 -5
  3422. package/template/docs/adr/0007-separate-skill-routing-registry-from-integrity-lock.md +0 -5
  3423. package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +0 -90
  3424. package/template/docs/process/harness-optimization-backlog.md +0 -9
  3425. package/template/docs/process/harness-work-unit-map.md +0 -16
  3426. package/template/docs/releases/next-major-template-governance.md +0 -32
  3427. package/template/docs/reviews/lifecycle-registry-phase0-1-red-green-2026-08-17.md +0 -61
  3428. package/template/docs/reviews/matt-yss-p0-ticket-review-git-red-green-2026-08-17.md +0 -91
  3429. package/template/docs/reviews/openapi-skill-primary-source-research-2026-08-16.md +0 -76
  3430. package/template/docs/reviews/openapi-yaml-first-independent-review-2026-08-16.md +0 -121
  3431. package/template/docs/reviews/openapi-yaml-first-pressure-scenarios-2026-08-16.md +0 -191
  3432. package/template/docs/reviews/openapi-yaml-first-red-green-2026-08-16.md +0 -76
  3433. package/template/docs/reviews/openapi-yaml-json-output-independent-review-2026-08-16.md +0 -30
  3434. package/template/docs/reviews/openapi-yaml-json-output-scope-red-green-2026-08-16.md +0 -154
  3435. package/template/docs/reviews/research-create-yss-spec-2026-08-10.md +0 -141
  3436. package/template/docs/reviews/research-create-yss-spec-refresh-2026-08-16.md +0 -164
  3437. package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md +0 -43
  3438. package/template/docs/reviews/template-release-review-remediation-red-green-2026-08-17.md +0 -41
  3439. package/template/docs/reviews/yss-local-tracker-red-green-2026-08-10.md +0 -50
  3440. package/template/docs/user-guide//345/233/276/347/244/272/347/224/237/346/210/220/345/231/250/344/275/277/347/224/250/346/214/207/345/215/227.md +0 -143
  3441. package/template/scripts/implementation-path-policy.rb +0 -50
  3442. package/template/scripts/lifecycle-registry.rb +0 -194
  3443. package/template/scripts/test-export-yss-skills.rb +0 -132
  3444. package/template/scripts/test-lifecycle-registry.rb +0 -74
@@ -1,3022 +0,0 @@
1
- /**
2
- * spec-to-drawio.test.js
3
- * Unit tests for the Design System specification converter
4
- * Uses Node.js built-in test runner
5
- */
6
-
7
- import { describe, it } from 'node:test'
8
- import assert from 'node:assert'
9
- import {
10
- specToDrawioXml,
11
- parseSpecYaml,
12
- detectSemanticType,
13
- getNodeSize,
14
- snapToGrid,
15
- calculateLayout,
16
- generateNodeStyle,
17
- generateConnectorStyle,
18
- generateModuleStyle,
19
- checkComplexity,
20
- loadTheme,
21
- resolveIconShape,
22
- deriveNodeIcon,
23
- validateXml,
24
- validateSpec,
25
- validateColorScheme,
26
- validateLayoutConsistency,
27
- validateShapeReferences,
28
- validateAcademicProfile,
29
- validateSchemaDrift,
30
- computeLayoutQualityMetrics,
31
- SHAPE_STYLES
32
- } from './spec-to-drawio.js'
33
- import { resolveImageIconStyle } from './icon-resolver.js'
34
- import { resolveShapeNameKind } from './shape-catalog.js'
35
- import { drawioToSpec } from './drawio-to-spec.js'
36
- import { createDrawioFileContent } from '../runtime/artifacts.js'
37
-
38
- // ============================================================================
39
- // Semantic Type Detection Tests
40
- // ============================================================================
41
-
42
- describe('detectSemanticType', () => {
43
- it('should return explicit type when provided', () => {
44
- assert.strictEqual(detectSemanticType('API Gateway', 'service'), 'service')
45
- assert.strictEqual(detectSemanticType('Users', 'database'), 'database')
46
- })
47
-
48
- it('should detect database from label keywords', () => {
49
- assert.strictEqual(detectSemanticType('User Database', null), 'database')
50
- assert.strictEqual(detectSemanticType('PostgreSQL', null), 'database')
51
- assert.strictEqual(detectSemanticType('Redis Cache', null), 'database')
52
- assert.strictEqual(detectSemanticType('Data Storage', null), 'database')
53
- })
54
-
55
- it('should detect decision from label keywords', () => {
56
- assert.strictEqual(detectSemanticType('Is Valid?', null), 'decision')
57
- assert.strictEqual(detectSemanticType('Check Condition', null), 'decision')
58
- assert.strictEqual(detectSemanticType('Decision Point', null), 'decision')
59
- })
60
-
61
- it('should detect terminal from label keywords', () => {
62
- assert.strictEqual(detectSemanticType('Start', null), 'terminal')
63
- assert.strictEqual(detectSemanticType('End Process', null), 'terminal')
64
- assert.strictEqual(detectSemanticType('Begin Flow', null), 'terminal')
65
- })
66
-
67
- it('should detect queue from label keywords', () => {
68
- assert.strictEqual(detectSemanticType('Message Queue', null), 'queue')
69
- assert.strictEqual(detectSemanticType('Kafka Topic', null), 'queue')
70
- assert.strictEqual(detectSemanticType('SQS Queue', null), 'queue')
71
- })
72
-
73
- it('should detect formula from official delimiters', () => {
74
- assert.strictEqual(detectSemanticType('$$E = mc^2$$', null), 'formula')
75
- assert.strictEqual(detectSemanticType('Linear: \\(y = mx + b\\)', null), 'formula')
76
- assert.strictEqual(detectSemanticType('Simple relation: `x^2 + y^2`', null), 'formula')
77
- })
78
-
79
- it('should detect standalone unlabeled equations as formula without converting mixed prose labels', () => {
80
- assert.strictEqual(detectSemanticType('E = mc^2', null), 'formula')
81
- assert.strictEqual(detectSemanticType('\\sum_{i=1}^{n} x_i', null), 'formula')
82
- assert.strictEqual(detectSemanticType('Linear: y = mx + b', null), 'service')
83
- })
84
-
85
- it('should not treat discouraged delimiters as official formula signals', () => {
86
- assert.strictEqual(detectSemanticType('\\[E = mc^2\\]', null), 'service')
87
- })
88
-
89
- it('should default to service for unknown labels', () => {
90
- assert.strictEqual(detectSemanticType('API Gateway', null), 'service')
91
- assert.strictEqual(detectSemanticType('Unknown Component', null), 'service')
92
- })
93
-
94
- // Deep learning type detection tests
95
- it('should detect deep learning temporal types', () => {
96
- assert.strictEqual(detectSemanticType('LSTM Layer', null), 'temporal')
97
- assert.strictEqual(detectSemanticType('BiLSTM', null), 'temporal')
98
- assert.strictEqual(detectSemanticType('GRU Cell', null), 'temporal')
99
- assert.strictEqual(detectSemanticType('RNN Block', null), 'temporal')
100
- })
101
-
102
- it('should detect deep learning attention types', () => {
103
- assert.strictEqual(detectSemanticType('Self-Attention', null), 'attention')
104
- assert.strictEqual(detectSemanticType('Multi-Head Attention', null), 'attention')
105
- assert.strictEqual(detectSemanticType('Transformer Block', null), 'attention')
106
- assert.strictEqual(detectSemanticType('Softmax Layer', null), 'attention')
107
- })
108
-
109
- it('should detect deep learning feature extraction types', () => {
110
- assert.strictEqual(detectSemanticType('Feature Extractor', null), 'feature')
111
- assert.strictEqual(detectSemanticType('Encoder Block', null), 'feature')
112
- assert.strictEqual(detectSemanticType('Conv2D Layer', null), 'conv')
113
- assert.strictEqual(detectSemanticType('Convolutional Block', null), 'conv')
114
- })
115
-
116
- it('should detect deep learning normalization types', () => {
117
- assert.strictEqual(detectSemanticType('BatchNorm', null), 'norm')
118
- assert.strictEqual(detectSemanticType('LayerNorm', null), 'norm')
119
- assert.strictEqual(detectSemanticType('Normalization', null), 'norm')
120
- })
121
-
122
- it('should detect deep learning graph types', () => {
123
- assert.strictEqual(detectSemanticType('GCN Layer', null), 'graph')
124
- assert.strictEqual(detectSemanticType('Graph Conv', null), 'graph')
125
- assert.strictEqual(detectSemanticType('GNN Block', null), 'graph')
126
- })
127
-
128
- it('should detect deep learning matrix operation types', () => {
129
- assert.strictEqual(detectSemanticType('MatMul', null), 'matrix')
130
- assert.strictEqual(detectSemanticType('Linear Layer', null), 'matrix')
131
- assert.strictEqual(detectSemanticType('FC Layer', null), 'matrix')
132
- assert.strictEqual(detectSemanticType('Dense Layer', null), 'matrix')
133
- })
134
-
135
- it('should detect network topology types', () => {
136
- assert.strictEqual(detectSemanticType('Core Router', null), 'router')
137
- assert.strictEqual(detectSemanticType('Access Switch', null), 'switch')
138
- assert.strictEqual(detectSemanticType('Edge Firewall', null), 'firewall')
139
- assert.strictEqual(detectSemanticType('Wireless AP', null), 'ap')
140
- })
141
-
142
- it('should preserve legacy decision inference for bare "Switch" labels', () => {
143
- assert.strictEqual(detectSemanticType('Switch', null), 'decision')
144
- assert.strictEqual(detectSemanticType('Switch', 'switch'), 'switch')
145
- })
146
-
147
- it('should respect network.device metadata for semantic type', () => {
148
- assert.strictEqual(detectSemanticType('Gateway', null, { device: 'router' }), 'router')
149
- })
150
- })
151
-
152
- // ============================================================================
153
- // Grid Snapping Tests
154
- // ============================================================================
155
-
156
- describe('snapToGrid', () => {
157
- it('should snap values to 8px grid', () => {
158
- assert.strictEqual(snapToGrid(0), 0)
159
- assert.strictEqual(snapToGrid(4), 8)
160
- assert.strictEqual(snapToGrid(7), 8)
161
- assert.strictEqual(snapToGrid(8), 8)
162
- assert.strictEqual(snapToGrid(12), 16)
163
- assert.strictEqual(snapToGrid(100), 104)
164
- })
165
-
166
- it('should support custom grid sizes', () => {
167
- assert.strictEqual(snapToGrid(5, 10), 10)
168
- assert.strictEqual(snapToGrid(7, 4), 8)
169
- })
170
- })
171
-
172
- // ============================================================================
173
- // Node Size Tests
174
- // ============================================================================
175
-
176
- describe('getNodeSize', () => {
177
- it('should return correct preset sizes', () => {
178
- assert.deepStrictEqual(getNodeSize('tiny'), { width: 32, height: 32 })
179
- assert.deepStrictEqual(getNodeSize('small'), { width: 80, height: 40 })
180
- assert.deepStrictEqual(getNodeSize('medium'), { width: 120, height: 60 })
181
- assert.deepStrictEqual(getNodeSize('large'), { width: 160, height: 80 })
182
- assert.deepStrictEqual(getNodeSize('xl'), { width: 200, height: 100 })
183
- })
184
-
185
- it('should return correct tensor3d preset sizes', () => {
186
- assert.deepStrictEqual(getNodeSize('tensor_sm'), { width: 40, height: 48 })
187
- assert.deepStrictEqual(getNodeSize('tensor_md'), { width: 60, height: 72 })
188
- assert.deepStrictEqual(getNodeSize('tensor_lg'), { width: 80, height: 96 })
189
- assert.deepStrictEqual(getNodeSize('tensor_xl'), { width: 100, height: 120 })
190
- })
191
-
192
- it('should default to medium for unknown sizes', () => {
193
- assert.deepStrictEqual(getNodeSize(), { width: 120, height: 60 })
194
- assert.deepStrictEqual(getNodeSize('unknown'), { width: 120, height: 60 })
195
- })
196
-
197
- it('should use type-based default size when no explicit size', () => {
198
- // Operator nodes should default to tiny (32x32)
199
- assert.deepStrictEqual(getNodeSize(null, 'operator'), { width: 32, height: 32 })
200
- assert.deepStrictEqual(getNodeSize(undefined, 'operator'), { width: 32, height: 32 })
201
- // Decision nodes default to medium
202
- assert.deepStrictEqual(getNodeSize(null, 'decision'), { width: 120, height: 60 })
203
- // tensor3d nodes default to tensor_md
204
- assert.deepStrictEqual(getNodeSize(null, 'tensor3d'), { width: 60, height: 72 })
205
- })
206
-
207
- it('should prioritize explicit size over type default', () => {
208
- // Even if operator defaults to tiny, explicit large should be used
209
- assert.deepStrictEqual(getNodeSize('large', 'operator'), { width: 160, height: 80 })
210
- assert.deepStrictEqual(getNodeSize('small', 'operator'), { width: 80, height: 40 })
211
- })
212
-
213
- it('fits text node width to content when no explicit size is given', () => {
214
- // Short CJK label should be far narrower than the old fixed medium width (120)
215
- const shortText = getNodeSize(null, 'text', '有效频带')
216
- assert.ok(shortText.width < 120, 'short CJK text should be narrower than the medium default')
217
- assert.ok(shortText.width >= 48, 'width should respect the minimum')
218
- // Longer labels widen, but width is capped so the box wraps instead of overflowing
219
- const longText = getNodeSize(null, 'text', 'Conv1D-ResNet + FiLM + Cross-Attention')
220
- assert.ok(longText.width > shortText.width, 'longer label should produce a wider box')
221
- assert.ok(getNodeSize(null, 'text', 'x'.repeat(200)).width <= 320, 'width is clamped at 320')
222
- // Explicit size and the no-label fallback keep their existing behavior
223
- assert.deepStrictEqual(getNodeSize('large', 'text', '短'), { width: 160, height: 80 })
224
- assert.deepStrictEqual(getNodeSize(null, 'text'), { width: 120, height: 60 })
225
- })
226
- })
227
-
228
- // ============================================================================
229
- // Style Generation Tests
230
- // ============================================================================
231
-
232
- describe('generateNodeStyle', () => {
233
- const theme = {
234
- node: {
235
- default: {
236
- fillColor: '#DBEAFE',
237
- strokeColor: '#2563EB',
238
- strokeWidth: 1.5,
239
- fontColor: '#1E293B',
240
- fontSize: 13
241
- },
242
- database: {
243
- fillColor: '#D1FAE5',
244
- strokeColor: '#059669'
245
- }
246
- },
247
- typography: {
248
- fontFamily: { primary: 'Inter, sans-serif' }
249
- }
250
- }
251
-
252
- it('should generate style for service node', () => {
253
- const style = generateNodeStyle({ id: 'n1', label: 'API Gateway', type: 'service' }, theme)
254
- assert.ok(style.includes('rounded=1'), 'should contain rounded=1')
255
- assert.ok(style.includes('fillColor=#DBEAFE'), 'should contain fillColor=#DBEAFE')
256
- assert.ok(style.includes('strokeColor=#2563EB'), 'should contain strokeColor=#2563EB')
257
- })
258
-
259
- it('should generate style for database node', () => {
260
- const style = generateNodeStyle({ id: 'n2', label: 'User DB', type: 'database' }, theme)
261
- assert.ok(style.includes('shape=cylinder3'), 'should contain shape=cylinder3')
262
- assert.ok(style.includes('fillColor=#D1FAE5'), 'should contain fillColor=#D1FAE5')
263
- assert.ok(style.includes('strokeColor=#059669'), 'should contain strokeColor=#059669')
264
- })
265
-
266
- it('should allow style overrides', () => {
267
- const style = generateNodeStyle(
268
- {
269
- id: 'n3',
270
- label: 'Custom',
271
- style: { fillColor: '#FF0000' }
272
- },
273
- theme
274
- )
275
- assert.ok(style.includes('fillColor=#FF0000'), 'should contain custom fillColor')
276
- })
277
-
278
- it('uses theme typography for generic diagrams and Times New Roman when the theme has none', () => {
279
- const style = generateNodeStyle({ id: 'n4', label: 'API Gateway', type: 'service' }, theme)
280
- assert.ok(style.includes('fontFamily=Inter, sans-serif'), 'themed diagrams should use theme typography')
281
- const bare = generateNodeStyle({ id: 'n4b', label: 'API Gateway', type: 'service' }, { node: {} })
282
- assert.ok(bare.includes('fontFamily=Times New Roman'), 'themes without typography fall back to Times New Roman')
283
- })
284
-
285
- it('keeps text nodes transparent with no label background', () => {
286
- const style = generateNodeStyle({ id: 'n5', label: '有效频带', type: 'text' }, theme)
287
- assert.ok(style.includes('fillColor=none'), 'text fill should be transparent')
288
- assert.ok(style.includes('labelBackgroundColor=none'), 'text should have no white label halo')
289
- assert.ok(!style.includes('fillColor=#FFFFFF'), 'text should not use a white fill')
290
- })
291
- })
292
-
293
- describe('generateConnectorStyle', () => {
294
- const theme = {
295
- connector: {
296
- primary: { strokeColor: '#1E293B', strokeWidth: 2, dashed: false, endArrow: 'open', endFill: false },
297
- data: {
298
- strokeColor: '#1E293B',
299
- strokeWidth: 2,
300
- dashed: true,
301
- dashPattern: '6 4',
302
- endArrow: 'open',
303
- endFill: false
304
- },
305
- optional: {
306
- strokeColor: '#64748B',
307
- strokeWidth: 1,
308
- dashed: true,
309
- dashPattern: '2 2',
310
- endArrow: 'open',
311
- endFill: false
312
- }
313
- }
314
- }
315
-
316
- it('should generate primary connector style', () => {
317
- const style = generateConnectorStyle({ from: 'a', to: 'b', type: 'primary' }, theme)
318
- assert.ok(style.includes('strokeWidth=2'), 'should contain strokeWidth=2')
319
- assert.ok(style.includes('endArrow=open'), 'should contain endArrow=open')
320
- assert.ok(!style.includes('dashed=1'), 'should not contain dashed=1')
321
- })
322
-
323
- it('should generate data connector style with dashes', () => {
324
- const style = generateConnectorStyle({ from: 'a', to: 'b', type: 'data' }, theme)
325
- assert.ok(style.includes('dashed=1'), 'should contain dashed=1')
326
- assert.ok(style.includes('dashPattern=6 4'), 'should contain dashPattern=6 4')
327
- })
328
-
329
- it('should generate optional connector style', () => {
330
- const style = generateConnectorStyle({ from: 'a', to: 'b', type: 'optional' }, theme)
331
- assert.ok(style.includes('strokeWidth=1'), 'should contain strokeWidth=1')
332
- assert.ok(style.includes('endArrow=open'), 'should contain endArrow=open')
333
- assert.ok(style.includes('endFill=0'), 'should contain endFill=0')
334
- })
335
- })
336
-
337
- // ============================================================================
338
- // Module Style Tests (IEEE dashed border support)
339
- // ============================================================================
340
-
341
- describe('generateModuleStyle', () => {
342
- it('should generate solid border by default', () => {
343
- const theme = {
344
- module: {
345
- fillColor: '#F8FAFC',
346
- strokeColor: '#E2E8F0',
347
- strokeWidth: 1,
348
- rounded: 12,
349
- dashed: false
350
- }
351
- }
352
- const style = generateModuleStyle({ id: 'm1', label: 'Module' }, theme)
353
- assert.ok(style.includes('fillColor=#F8FAFC'), 'should contain fillColor')
354
- assert.ok(!style.includes('dashed=1'), 'should not contain dashed=1')
355
- })
356
-
357
- it('should generate dashed border for IEEE style', () => {
358
- const theme = {
359
- module: {
360
- fillColor: '#FAFAFA',
361
- strokeColor: '#BDBDBD',
362
- strokeWidth: 1.5,
363
- rounded: 8,
364
- dashed: true,
365
- dashPattern: '8 4'
366
- }
367
- }
368
- const style = generateModuleStyle({ id: 'm1', label: 'TDE Module' }, theme)
369
- assert.ok(style.includes('dashed=1'), 'should contain dashed=1')
370
- assert.ok(style.includes('dashPattern=8 4'), 'should contain dashPattern=8 4')
371
- })
372
-
373
- it('should allow module-level style override', () => {
374
- const theme = {
375
- module: {
376
- fillColor: '#FAFAFA',
377
- strokeColor: '#BDBDBD',
378
- dashed: false
379
- }
380
- }
381
- const moduleWithStyle = {
382
- id: 'm1',
383
- label: 'Custom Module',
384
- style: {
385
- dashed: true,
386
- dashPattern: '4 2'
387
- }
388
- }
389
- const style = generateModuleStyle(moduleWithStyle, theme)
390
- assert.ok(style.includes('dashed=1'), 'should contain dashed=1 from module style')
391
- assert.ok(style.includes('dashPattern=4 2'), 'should use module dashPattern')
392
- })
393
-
394
- it('should resolve theme tokens in module color fields', () => {
395
- const theme = {
396
- colors: {
397
- accentLight: '#EDE9FE',
398
- accent: '#7C3AED',
399
- text: '#1E293B'
400
- },
401
- module: {
402
- fillColor: '#FAFAFA',
403
- strokeColor: '#BDBDBD',
404
- labelFontColor: '#111827'
405
- }
406
- }
407
- const style = generateModuleStyle(
408
- {
409
- id: 'm1',
410
- label: 'Token Module',
411
- color: '$accentLight',
412
- style: {
413
- strokeColor: '$accent',
414
- fontColor: '$text'
415
- }
416
- },
417
- theme
418
- )
419
- assert.ok(style.includes('fillColor=#EDE9FE'), 'module fill should resolve token values')
420
- assert.ok(style.includes('strokeColor=#7C3AED'), 'module stroke should resolve token values')
421
- assert.ok(style.includes('fontColor=#1E293B'), 'module font color should resolve token values')
422
- })
423
-
424
- it('defaults module titles to Times New Roman when no explicit font is provided', () => {
425
- const theme = {
426
- module: {
427
- fillColor: '#FAFAFA',
428
- strokeColor: '#BDBDBD'
429
- }
430
- }
431
- const style = generateModuleStyle({ id: 'm1', label: 'Backend Layer' }, theme)
432
- assert.ok(style.includes('fontFamily=Times New Roman'), 'module titles should default to Times New Roman')
433
- })
434
- })
435
-
436
- // ============================================================================
437
- // Layout Tests
438
- // ============================================================================
439
-
440
- describe('calculateLayout', () => {
441
- it('should calculate horizontal layout positions', () => {
442
- const spec = {
443
- meta: { layout: 'horizontal' },
444
- nodes: [
445
- { id: 'n1', label: 'Node 1' },
446
- { id: 'n2', label: 'Node 2' }
447
- ]
448
- }
449
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
450
- const { positions } = calculateLayout(spec, theme)
451
-
452
- assert.strictEqual(positions.has('n1'), true, 'should have position for n1')
453
- assert.strictEqual(positions.has('n2'), true, 'should have position for n2')
454
-
455
- const pos1 = positions.get('n1')
456
- const pos2 = positions.get('n2')
457
-
458
- // Both should be grid-aligned
459
- assert.strictEqual(pos1.x % 8, 0, 'n1.x should be grid-aligned')
460
- assert.strictEqual(pos1.y % 8, 0, 'n1.y should be grid-aligned')
461
- assert.strictEqual(pos2.x % 8, 0, 'n2.x should be grid-aligned')
462
- assert.strictEqual(pos2.y % 8, 0, 'n2.y should be grid-aligned')
463
- })
464
-
465
- it('should calculate star layout with a central network node', () => {
466
- const spec = {
467
- meta: { layout: 'star' },
468
- nodes: [
469
- { id: 'core', label: 'Core Switch', type: 'switch' },
470
- { id: 'fw', label: 'Firewall', type: 'firewall' },
471
- { id: 'ap', label: 'Wireless AP', type: 'ap' }
472
- ]
473
- }
474
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
475
- const { positions } = calculateLayout(spec, theme)
476
-
477
- const core = positions.get('core')
478
- const fw = positions.get('fw')
479
- const ap = positions.get('ap')
480
- assert.ok(core.x > fw.x, 'core should not be placed left of every spoke')
481
- assert.ok(core.x < ap.x || core.y !== ap.y, 'core should act as central anchor')
482
- })
483
-
484
- it('should calculate mesh layout with dispersed nodes', () => {
485
- const spec = {
486
- meta: { layout: 'mesh' },
487
- nodes: [
488
- { id: 'a', label: 'Node A' },
489
- { id: 'b', label: 'Node B' },
490
- { id: 'c', label: 'Node C' },
491
- { id: 'd', label: 'Node D' }
492
- ]
493
- }
494
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
495
- const { positions } = calculateLayout(spec, theme)
496
-
497
- const xs = [...positions.values()].map((pos) => pos.x)
498
- const ys = [...positions.values()].map((pos) => pos.y)
499
- assert.ok(new Set(xs).size > 2, 'mesh layout should spread x positions')
500
- assert.ok(new Set(ys).size > 2, 'mesh layout should spread y positions')
501
- })
502
-
503
- it('should calculate module containers for star layouts', () => {
504
- const spec = {
505
- meta: { layout: 'star' },
506
- modules: [{ id: 'vpc', label: 'AWS VPC' }],
507
- nodes: [
508
- { id: 'internet', label: 'Internet Gateway', type: 'internet', module: 'vpc' },
509
- { id: 'core', label: 'Core Switch', type: 'switch', module: 'vpc' },
510
- { id: 'app', label: 'App Server', type: 'server', module: 'vpc' }
511
- ]
512
- }
513
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
514
- const { positions, modulePositions } = calculateLayout(spec, theme)
515
-
516
- assert.ok(modulePositions.has('vpc'), 'star layout should include module bounds')
517
- const modulePos = modulePositions.get('vpc')
518
- const nodeBounds = ['internet', 'core', 'app'].map((id) => positions.get(id))
519
- assert.ok(modulePos.width > 0, 'module width should be positive')
520
- assert.ok(modulePos.height > 0, 'module height should be positive')
521
- assert.ok(modulePos.x <= Math.min(...nodeBounds.map((pos) => pos.x)), 'module should start before child nodes')
522
- assert.ok(modulePos.y <= Math.min(...nodeBounds.map((pos) => pos.y)), 'module should start above child nodes')
523
- })
524
-
525
- it('should calculate module containers for mesh layouts with manual nodes', () => {
526
- const spec = {
527
- meta: { layout: 'mesh' },
528
- modules: [
529
- { id: 'dmz', label: 'DMZ' },
530
- { id: 'internal', label: 'Internal Network' }
531
- ],
532
- nodes: [
533
- { id: 'fw', label: 'Perimeter Firewall', type: 'firewall', module: 'dmz' },
534
- { id: 'proxy', label: 'Reverse Proxy', type: 'load_balancer', module: 'dmz' },
535
- { id: 'app', label: 'App Server', type: 'server', module: 'internal' },
536
- { id: 'db', label: 'Database Segment', type: 'subnet', module: 'internal', position: { x: 520, y: 240 } }
537
- ]
538
- }
539
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
540
- const { positions, modulePositions } = calculateLayout(spec, theme)
541
-
542
- assert.ok(modulePositions.has('dmz'), 'mesh layout should include DMZ module bounds')
543
- assert.ok(modulePositions.has('internal'), 'mesh layout should include Internal module bounds')
544
- const internalPos = modulePositions.get('internal')
545
- const dbPos = positions.get('db')
546
- assert.ok(internalPos.x <= dbPos.x, 'internal module should include manually positioned nodes')
547
- assert.ok(internalPos.y <= dbPos.y, 'internal module should extend above manually positioned nodes')
548
- })
549
- })
550
-
551
- // ============================================================================
552
- // Complexity Check Tests
553
- // ============================================================================
554
-
555
- describe('checkComplexity', () => {
556
- it('should warn when node count exceeds threshold', () => {
557
- const spec = {
558
- nodes: Array(41)
559
- .fill(null)
560
- .map((_, i) => ({ id: `n${i}`, label: `Node ${i}` })),
561
- edges: []
562
- }
563
- const warnings = checkComplexity(spec)
564
- assert.ok(
565
- warnings.some((w) => w.level === 'warning' && w.message.includes('nodes')),
566
- 'should have warning about nodes'
567
- )
568
- })
569
-
570
- it('should error when node count is very high', () => {
571
- const spec = {
572
- nodes: Array(61)
573
- .fill(null)
574
- .map((_, i) => ({ id: `n${i}`, label: `Node ${i}` })),
575
- edges: []
576
- }
577
- const warnings = checkComplexity(spec)
578
- assert.ok(
579
- warnings.some((w) => w.level === 'error' && w.message.includes('nodes')),
580
- 'should have error about nodes'
581
- )
582
- })
583
-
584
- it('should warn about long labels', () => {
585
- const spec = {
586
- nodes: [{ id: 'n1', label: 'This is a very long label that exceeds the recommended length' }],
587
- edges: []
588
- }
589
- const warnings = checkComplexity(spec)
590
- assert.ok(
591
- warnings.some((w) => w.level === 'info' && w.message.includes('abbreviation') && w.message.includes('"n1"')),
592
- 'should have info about long labels'
593
- )
594
- })
595
-
596
- it('should return empty array for simple diagrams', () => {
597
- const spec = {
598
- nodes: [
599
- { id: 'n1', label: 'Node 1' },
600
- { id: 'n2', label: 'Node 2' }
601
- ],
602
- edges: [{ from: 'n1', to: 'n2' }]
603
- }
604
- const warnings = checkComplexity(spec)
605
- assert.strictEqual(warnings.length, 0, 'should have no warnings')
606
- })
607
- })
608
-
609
- // ============================================================================
610
- // XML Generation Tests
611
- // ============================================================================
612
-
613
- describe('specToDrawioXml', () => {
614
- it('should generate valid XML from simple spec', () => {
615
- const spec = {
616
- meta: { theme: 'tech-blue' },
617
- nodes: [
618
- { id: 'n1', label: 'API Gateway', type: 'service' },
619
- { id: 'n2', label: 'Database', type: 'database' }
620
- ],
621
- edges: [{ from: 'n1', to: 'n2', type: 'data', label: 'Query' }]
622
- }
623
-
624
- const xml = specToDrawioXml(spec)
625
-
626
- assert.ok(xml.includes('<mxGraphModel'), 'should contain mxGraphModel')
627
- assert.ok(xml.includes('gridSize="8"'), 'should contain gridSize=8')
628
- assert.ok(xml.includes('math="1"'), 'should contain math=1')
629
- assert.ok(xml.includes('API Gateway'), 'should contain API Gateway')
630
- assert.ok(xml.includes('Database'), 'should contain Database')
631
- assert.ok(xml.includes('Query'), 'should contain Query')
632
- })
633
-
634
- it('should use explicit meta.canvas dimensions as minimum page size', () => {
635
- const spec = {
636
- meta: { theme: 'tech-blue', canvas: '1200x800' },
637
- nodes: [{ id: 'n1', label: 'Reference Node', bounds: { x: 40, y: 40, width: 160, height: 80 } }]
638
- }
639
-
640
- const xml = specToDrawioXml(spec)
641
-
642
- assert.ok(xml.includes('pageWidth="1200"'), 'should use explicit canvas width')
643
- assert.ok(xml.includes('pageHeight="800"'), 'should use explicit canvas height')
644
- })
645
-
646
- it('should expand beyond explicit meta.canvas when content exceeds the page', () => {
647
- const spec = {
648
- meta: { theme: 'tech-blue', canvas: '400x300' },
649
- nodes: [{ id: 'n1', label: 'Wide Reference Node', bounds: { x: 440, y: 360, width: 160, height: 80 } }]
650
- }
651
-
652
- const xml = specToDrawioXml(spec)
653
-
654
- assert.ok(xml.includes('pageWidth="680"'), 'content width should expand beyond explicit canvas')
655
- assert.ok(xml.includes('pageHeight="520"'), 'content height should expand beyond explicit canvas')
656
- })
657
-
658
- it('should throw error for invalid spec', () => {
659
- assert.throws(() => specToDrawioXml(null), 'should throw for null')
660
- assert.throws(() => specToDrawioXml({}), 'should throw for empty object')
661
- assert.throws(() => specToDrawioXml({ nodes: [] }), 'should throw for empty nodes')
662
- })
663
-
664
- it('should generate network edge labels from metadata', () => {
665
- const spec = {
666
- meta: { theme: 'tech-blue', layout: 'star' },
667
- nodes: [
668
- { id: 'fw', label: 'Firewall', type: 'firewall' },
669
- { id: 'core', label: 'Core Switch', type: 'switch' }
670
- ],
671
- edges: [
672
- {
673
- from: 'fw',
674
- to: 'core',
675
- srcInterface: 'ge-0/0/0',
676
- dstInterface: 'ge-0/0/1',
677
- vlan: 10,
678
- bandwidth: '1G'
679
- }
680
- ]
681
- }
682
-
683
- const xml = specToDrawioXml(spec)
684
- assert.ok(xml.includes('ge-0/0/0 ↔ ge-0/0/1'), 'should include derived interface label')
685
- assert.ok(xml.includes('VLAN 10'), 'should include VLAN label')
686
- assert.ok(xml.includes('1G'), 'should include bandwidth label')
687
- })
688
-
689
- it('should emit module containers for star and mesh topology examples', () => {
690
- const starSpec = {
691
- meta: { theme: 'tech-blue', layout: 'star' },
692
- modules: [{ id: 'vpc', label: 'AWS VPC' }],
693
- nodes: [
694
- { id: 'internet', label: 'Internet Gateway', type: 'internet', module: 'vpc' },
695
- { id: 'core', label: 'Core Switch', type: 'switch', module: 'vpc' },
696
- { id: 'app', label: 'App Server', type: 'server', module: 'vpc' }
697
- ],
698
- edges: [{ from: 'internet', to: 'core' }]
699
- }
700
- const starXml = specToDrawioXml(starSpec)
701
- const starModuleId = starXml.match(/<mxCell id="(\d+)" value="AWS VPC"[^>]*parent="1">/)?.[1]
702
- assert.ok(starModuleId, 'star layout should render AWS VPC module cell')
703
- assert.match(
704
- starXml,
705
- new RegExp(`<mxCell id="\\d+" value="App Server"[^>]*parent="${starModuleId}">`),
706
- 'star layout should parent module nodes under the module cell'
707
- )
708
-
709
- const meshSpec = {
710
- meta: { theme: 'tech-blue', layout: 'mesh' },
711
- modules: [{ id: 'dmz', label: 'DMZ' }],
712
- nodes: [
713
- { id: 'fw', label: 'Perimeter Firewall', type: 'firewall', module: 'dmz' },
714
- { id: 'proxy', label: 'Reverse Proxy', type: 'load_balancer', module: 'dmz' }
715
- ],
716
- edges: [{ from: 'fw', to: 'proxy' }]
717
- }
718
- const meshXml = specToDrawioXml(meshSpec)
719
- assert.ok(meshXml.includes('value="DMZ"'), 'mesh layout should render DMZ module cell')
720
- })
721
-
722
- it('should resolve Cisco icon prefixes', () => {
723
- assert.strictEqual(resolveIconShape('cisco.firewalls.firewall'), 'mxgraph.cisco.firewalls.firewall')
724
- })
725
-
726
- it('should resolve documented icon aliases', () => {
727
- assert.strictEqual(resolveIconShape('aws.alb'), 'mxgraph.aws4.application_load_balancer')
728
- assert.strictEqual(resolveIconShape('aws.ec2'), 'mxgraph.aws4.ec2')
729
- assert.strictEqual(resolveIconShape('aws.ec2_instance'), 'mxgraph.aws4.ec2')
730
- assert.strictEqual(resolveIconShape('cisco.ap'), 'mxgraph.cisco.misc.access_point')
731
- })
732
-
733
- it('should derive node icons from network vendor/device metadata', () => {
734
- assert.strictEqual(
735
- deriveNodeIcon({ network: { vendor: 'aws', device: 'load_balancer' } }),
736
- 'aws.application_load_balancer'
737
- )
738
- assert.strictEqual(
739
- deriveNodeIcon({ network: { vendor: 'cisco', device: 'firewall' } }),
740
- 'mxgraph.cisco.security.firewall'
741
- )
742
- })
743
-
744
- it('should generate vendor-derived icon shapes when icon field is absent', () => {
745
- const theme = {
746
- node: {
747
- default: { fillColor: '#DBEAFE', strokeColor: '#2563EB', strokeWidth: 1.5, fontColor: '#1E293B', fontSize: 13 }
748
- },
749
- typography: { fontFamily: { primary: 'Inter, sans-serif' } }
750
- }
751
- const style = generateNodeStyle(
752
- {
753
- id: 'fw',
754
- label: 'Cisco Firewall',
755
- type: 'firewall',
756
- network: { vendor: 'cisco', device: 'firewall' }
757
- },
758
- theme
759
- )
760
- assert.ok(style.includes('shape=mxgraph.cisco.security.firewall'), 'should use vendor-derived stencil shape')
761
- })
762
-
763
- it('default behavior: 25 nodes returns a string (no error)', () => {
764
- const nodes = Array.from({ length: 25 }, (_, i) => ({ id: `n${i}`, label: `Node ${i}` }))
765
- const spec = { meta: { theme: 'tech-blue' }, nodes, edges: [] }
766
- const result = specToDrawioXml(spec)
767
- assert.strictEqual(typeof result, 'string', 'should return a string')
768
- assert.ok(result.includes('<mxGraphModel'), 'should contain mxGraphModel')
769
- })
770
-
771
- it('strict mode with 61 nodes: should throw containing "Complexity check failed"', () => {
772
- const nodes = Array.from({ length: 61 }, (_, i) => ({ id: `n${i}`, label: `Node ${i}` }))
773
- const spec = { meta: { theme: 'tech-blue' }, nodes, edges: [] }
774
- assert.throws(
775
- () => specToDrawioXml(spec, { strict: true }),
776
- (err) => {
777
- assert.ok(err instanceof Error)
778
- assert.ok(
779
- err.message.includes('Complexity check failed'),
780
- `Expected "Complexity check failed" in: ${err.message}`
781
- )
782
- return true
783
- }
784
- )
785
- })
786
-
787
- it('strict mode with 2 nodes: should NOT throw', () => {
788
- const spec = {
789
- meta: { theme: 'tech-blue' },
790
- nodes: [
791
- { id: 'n1', label: 'API' },
792
- { id: 'n2', label: 'DB' }
793
- ],
794
- edges: []
795
- }
796
- assert.doesNotThrow(() => specToDrawioXml(spec, { strict: true }))
797
- })
798
-
799
- it('returnWarnings with 41 nodes: returns { xml, warnings } with warning-level items', () => {
800
- const nodes = Array.from({ length: 41 }, (_, i) => ({ id: `n${i}`, label: `Node ${i}` }))
801
- const spec = { meta: { theme: 'tech-blue' }, nodes, edges: [] }
802
- const result = specToDrawioXml(spec, { returnWarnings: true })
803
- assert.ok(result && typeof result === 'object', 'should return an object')
804
- assert.ok(typeof result.xml === 'string', 'result.xml should be a string')
805
- assert.ok(Array.isArray(result.warnings), 'result.warnings should be an array')
806
- assert.ok(result.warnings.length > 0, 'should have at least one warning')
807
- assert.ok(
808
- result.warnings.every((w) => w.level === 'warning' || w.level === 'error'),
809
- 'warnings should have level field'
810
- )
811
- })
812
-
813
- it('returnWarnings with 2 nodes: returns { xml, warnings } where warnings.length === 0', () => {
814
- const spec = {
815
- meta: { theme: 'tech-blue' },
816
- nodes: [
817
- { id: 'n1', label: 'API' },
818
- { id: 'n2', label: 'DB' }
819
- ],
820
- edges: []
821
- }
822
- const result = specToDrawioXml(spec, { returnWarnings: true })
823
- assert.ok(result && typeof result === 'object', 'should return an object')
824
- assert.ok(typeof result.xml === 'string', 'result.xml should be a string')
825
- assert.ok(Array.isArray(result.warnings), 'result.warnings should be an array')
826
- assert.strictEqual(result.warnings.length, 0, 'warnings should be empty for simple spec')
827
- })
828
- })
829
-
830
- // ============================================================================
831
- // YAML Parser Tests
832
- // ============================================================================
833
-
834
- describe('parseSpecYaml', () => {
835
- it('should parse simple YAML specification', () => {
836
- const yaml = `
837
- meta:
838
- theme: tech-blue
839
- layout: horizontal
840
-
841
- nodes:
842
- - id: n1
843
- label: API Gateway
844
- type: service
845
- - id: n2
846
- label: Database
847
- type: database
848
-
849
- edges:
850
- - from: n1
851
- to: n2
852
- type: data
853
- `
854
- const spec = parseSpecYaml(yaml)
855
-
856
- assert.strictEqual(spec.meta.theme, 'tech-blue', 'theme should be tech-blue')
857
- assert.strictEqual(spec.meta.layout, 'horizontal', 'layout should be horizontal')
858
- assert.strictEqual(spec.nodes.length, 2, 'should have 2 nodes')
859
- assert.strictEqual(spec.nodes[0].id, 'n1', 'first node id should be n1')
860
- assert.strictEqual(spec.edges.length, 1, 'should have 1 edge')
861
- })
862
-
863
- it('should parse nested style object on a node', () => {
864
- const yamlText = `
865
- nodes:
866
- - id: n1
867
- label: Box
868
- style:
869
- fillColor: "#FF0000"
870
- strokeColor: "#000000"
871
- `
872
- const spec = parseSpecYaml(yamlText)
873
- assert.strictEqual(spec.nodes[0].style.fillColor, '#FF0000', 'fillColor should be #FF0000')
874
- assert.strictEqual(spec.nodes[0].style.strokeColor, '#000000', 'strokeColor should be #000000')
875
- })
876
-
877
- it('should parse nested position object on a node', () => {
878
- const yamlText = `
879
- nodes:
880
- - id: n1
881
- label: Box
882
- position:
883
- x: 100
884
- y: 200
885
- `
886
- const spec = parseSpecYaml(yamlText)
887
- assert.strictEqual(spec.nodes[0].position.x, 100, 'x should be 100')
888
- assert.strictEqual(spec.nodes[0].position.y, 200, 'y should be 200')
889
- })
890
-
891
- it('should parse nested meta.grid object', () => {
892
- const yamlText = `
893
- meta:
894
- theme: tech-blue
895
- grid:
896
- size: 8
897
- snap: true
898
- `
899
- const spec = parseSpecYaml(yamlText)
900
- assert.strictEqual(spec.meta.grid.size, 8, 'grid.size should be 8')
901
- assert.strictEqual(spec.meta.grid.snap, true, 'grid.snap should be true')
902
- })
903
-
904
- it('should parse replication metadata for replicated specs', () => {
905
- const yamlText = `
906
- meta:
907
- source: replicated
908
- theme: tech-blue
909
- replication:
910
- colorMode: preserve-original
911
- background: "#FFF7ED"
912
- palette:
913
- - hex: "#FDBA74"
914
- role: service fill
915
- appliesTo: nodes
916
- confidence: high
917
- confidenceNotes:
918
- - "Flattened a gradient footer into a solid background"
919
- nodes:
920
- - id: n1
921
- label: Box
922
- `
923
- const spec = parseSpecYaml(yamlText)
924
- assert.strictEqual(spec.meta.source, 'replicated')
925
- assert.strictEqual(spec.meta.replication.colorMode, 'preserve-original')
926
- assert.strictEqual(spec.meta.replication.palette[0].hex, '#FDBA74')
927
- })
928
-
929
- it('should parse explicit canvas metadata', () => {
930
- const yamlText = `
931
- meta:
932
- canvas: 1200x800
933
- nodes:
934
- - id: n1
935
- label: Box
936
- `
937
- const spec = parseSpecYaml(yamlText)
938
- assert.strictEqual(spec.meta.canvas, '1200x800')
939
- })
940
-
941
- it('should return default empty spec for empty string', () => {
942
- const spec = parseSpecYaml('')
943
- assert.deepStrictEqual(spec.meta, {}, 'meta should be empty object')
944
- assert.deepStrictEqual(spec.nodes, [], 'nodes should be empty array')
945
- assert.deepStrictEqual(spec.edges, [], 'edges should be empty array')
946
- assert.deepStrictEqual(spec.modules, [], 'modules should be empty array')
947
- })
948
-
949
- it('should throw TypeError for null input', () => {
950
- assert.throws(() => parseSpecYaml(null), TypeError, 'should throw TypeError for null')
951
- })
952
-
953
- it('should throw Error for invalid YAML', () => {
954
- assert.throws(() => parseSpecYaml('key: [unclosed'), Error, 'should throw Error for invalid YAML')
955
- })
956
-
957
- it('should reject invalid replication color modes', () => {
958
- const yamlText = `
959
- meta:
960
- source: replicated
961
- replication:
962
- colorMode: rainbow
963
- nodes:
964
- - id: n1
965
- label: Box
966
- `
967
- assert.throws(
968
- () => parseSpecYaml(yamlText),
969
- /meta\.replication\.colorMode/,
970
- 'invalid replication color modes should be rejected'
971
- )
972
- })
973
-
974
- it('should reject invalid canvas metadata', () => {
975
- const yamlText = `
976
- meta:
977
- canvas: wide
978
- nodes:
979
- - id: n1
980
- label: Box
981
- `
982
- assert.throws(
983
- () => parseSpecYaml(yamlText),
984
- /Invalid meta\.canvas "wide": use "auto" or WIDTHxHEIGHT/,
985
- 'invalid canvas metadata should be rejected'
986
- )
987
- })
988
- })
989
-
990
- // ============================================================================
991
- // loadTheme Tests
992
- // ============================================================================
993
-
994
- describe('loadTheme', () => {
995
- it('loadTheme("tech-blue") returns object with name: "tech-blue"', () => {
996
- const theme = loadTheme('tech-blue')
997
- assert.strictEqual(theme.name, 'tech-blue', 'should have name tech-blue')
998
- })
999
-
1000
- it('loadTheme("academic") returns object with Times New Roman font family', () => {
1001
- const theme = loadTheme('academic')
1002
- assert.ok(
1003
- theme.typography.fontFamily.primary.includes('Times New Roman'),
1004
- 'academic theme should use Times New Roman'
1005
- )
1006
- })
1007
-
1008
- it('loadTheme("dark") returns object with dark background color', () => {
1009
- const theme = loadTheme('dark')
1010
- assert.ok(
1011
- theme.colors.background === '#0F172A' || theme.canvas?.background === '#0F172A',
1012
- 'dark theme should have dark background'
1013
- )
1014
- })
1015
-
1016
- it('loadTheme("nonexistent") returns DEFAULT_THEME fallback', () => {
1017
- const theme = loadTheme('nonexistent')
1018
- assert.strictEqual(theme.name, 'tech-blue', 'fallback should be tech-blue DEFAULT_THEME')
1019
- })
1020
-
1021
- it('loadTheme() with no args returns tech-blue theme', () => {
1022
- const theme = loadTheme()
1023
- assert.strictEqual(theme.name, 'tech-blue', 'no-arg call should return tech-blue theme')
1024
- })
1025
- })
1026
-
1027
- // ============================================================================
1028
- // Integration: specToDrawioXml respects theme selection
1029
- // ============================================================================
1030
-
1031
- describe('specToDrawioXml theme integration', () => {
1032
- it('specifying meta.theme: "academic" produces XML that does NOT contain tech-blue primary color #2563EB', () => {
1033
- const spec = {
1034
- meta: { theme: 'academic' },
1035
- nodes: [
1036
- { id: 'n1', label: 'Service A', type: 'service' },
1037
- { id: 'n2', label: 'Service B', type: 'service' }
1038
- ],
1039
- edges: [{ from: 'n1', to: 'n2' }]
1040
- }
1041
- const xml = specToDrawioXml(spec)
1042
- assert.ok(!xml.includes('#2563EB'), 'academic theme XML should not contain tech-blue primary color #2563EB')
1043
- })
1044
- })
1045
-
1046
- // ============================================================================
1047
- // Phase 1.4: DEFAULT_THEME loaded from tech-blue.json
1048
- // ============================================================================
1049
-
1050
- describe('Phase 1.4: DEFAULT_THEME from tech-blue.json', () => {
1051
- it('loadTheme("tech-blue") returns full structure from tech-blue.json including canvas.gridColor', () => {
1052
- const theme = loadTheme('tech-blue')
1053
- assert.strictEqual(theme.name, 'tech-blue', 'should have name tech-blue')
1054
- assert.ok(theme.canvas, 'should have canvas section')
1055
- assert.strictEqual(theme.canvas.gridSize, 8, 'should have canvas.gridSize = 8')
1056
- assert.ok(theme.canvas.gridColor, 'should have canvas.gridColor from tech-blue.json (not in hardcoded fallback)')
1057
- assert.strictEqual(theme.module.padding, 24, 'should have module.padding = 24')
1058
- })
1059
- })
1060
-
1061
- // ============================================================================
1062
- // Phase 2.1: startArrow/startFill rendering
1063
- // ============================================================================
1064
-
1065
- describe('Phase 2.1: startArrow/startFill rendering', () => {
1066
- it('bidirectional edge with academic-color theme should contain startArrow=block', () => {
1067
- const theme = loadTheme('academic-color')
1068
- const style = generateConnectorStyle({ from: 'a', to: 'b', type: 'bidirectional' }, theme)
1069
- assert.ok(style.includes('startArrow=block'), 'should contain startArrow=block')
1070
- assert.ok(style.includes('startFill=1'), 'should contain startFill=1')
1071
- })
1072
-
1073
- it('primary edge should NOT contain startArrow', () => {
1074
- const theme = loadTheme('tech-blue')
1075
- const style = generateConnectorStyle({ from: 'a', to: 'b', type: 'primary' }, theme)
1076
- assert.ok(!style.includes('startArrow'), 'primary edge should not contain startArrow')
1077
- })
1078
-
1079
- it('edge with style override for startArrow should use it', () => {
1080
- const theme = loadTheme('tech-blue')
1081
- const style = generateConnectorStyle(
1082
- {
1083
- from: 'a',
1084
- to: 'b',
1085
- type: 'primary',
1086
- style: { startArrow: 'oval', startFill: false }
1087
- },
1088
- theme
1089
- )
1090
- assert.ok(style.includes('startArrow=oval'), 'should contain startArrow=oval')
1091
- assert.ok(style.includes('startFill=0'), 'should contain startFill=0')
1092
- })
1093
- })
1094
-
1095
- // ============================================================================
1096
- // Phase 2.2: Manual node positioning
1097
- // ============================================================================
1098
-
1099
- describe('Phase 2.2: manual node positioning', () => {
1100
- it('node with position should be snapped to grid at specified coordinates', () => {
1101
- const spec = {
1102
- meta: { layout: 'horizontal' },
1103
- nodes: [{ id: 'n1', label: 'Manual Node', position: { x: 100, y: 200 } }]
1104
- }
1105
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
1106
- const { positions } = calculateLayout(spec, theme)
1107
-
1108
- assert.ok(positions.has('n1'), 'should have position for n1')
1109
- const pos = positions.get('n1')
1110
- assert.strictEqual(pos.x, 24, 'x should be snapped to 24 (center - grown width/2)')
1111
- assert.strictEqual(pos.y, 168, 'y should be snapped to 168 (center - height/2 snapped)')
1112
- })
1113
-
1114
- it('mixed manual and auto-positioned nodes both get positions', () => {
1115
- const spec = {
1116
- meta: { layout: 'horizontal' },
1117
- nodes: [
1118
- { id: 'n1', label: 'Manual', position: { x: 300, y: 400 } },
1119
- { id: 'n2', label: 'Auto Node' }
1120
- ]
1121
- }
1122
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
1123
- const { positions } = calculateLayout(spec, theme)
1124
-
1125
- assert.ok(positions.has('n1'), 'should have position for manual n1')
1126
- assert.ok(positions.has('n2'), 'should have position for auto n2')
1127
- const pos1 = positions.get('n1')
1128
- assert.strictEqual(pos1.x, 240, 'manual n1 x should be snapped to 240 (center - width/2)')
1129
- assert.strictEqual(pos1.y, 368, 'manual n1 y should be snapped to 368 (center - height/2 snapped)')
1130
- })
1131
-
1132
- it('node without position property is auto-laid out as usual', () => {
1133
- const spec = {
1134
- meta: { layout: 'horizontal' },
1135
- nodes: [{ id: 'n1', label: 'Auto Only' }]
1136
- }
1137
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
1138
- const { positions } = calculateLayout(spec, theme)
1139
- const pos = positions.get('n1')
1140
- assert.ok(pos.x % 8 === 0, 'auto position x should be grid-aligned')
1141
- assert.ok(pos.y % 8 === 0, 'auto position y should be grid-aligned')
1142
- })
1143
- })
1144
-
1145
- // ============================================================================
1146
- // Phase 2.3: Edge label position
1147
- // ============================================================================
1148
-
1149
- describe('Phase 2.3: edge labelPosition', () => {
1150
- it('edge with labelPosition "start" should produce x="0.2" in XML', () => {
1151
- const spec = {
1152
- meta: { theme: 'tech-blue' },
1153
- nodes: [
1154
- { id: 'n1', label: 'A' },
1155
- { id: 'n2', label: 'B' }
1156
- ],
1157
- edges: [{ from: 'n1', to: 'n2', label: 'flow', labelPosition: 'start' }]
1158
- }
1159
- const xml = specToDrawioXml(spec)
1160
- assert.ok(xml.includes('x="0.2"'), 'should contain x="0.2" for start labelPosition')
1161
- })
1162
-
1163
- it('edge with labelPosition "end" should produce x="0.8" in XML', () => {
1164
- const spec = {
1165
- meta: { theme: 'tech-blue' },
1166
- nodes: [
1167
- { id: 'n1', label: 'A' },
1168
- { id: 'n2', label: 'B' }
1169
- ],
1170
- edges: [{ from: 'n1', to: 'n2', label: 'flow', labelPosition: 'end' }]
1171
- }
1172
- const xml = specToDrawioXml(spec)
1173
- assert.ok(xml.includes('x="0.8"'), 'should contain x="0.8" for end labelPosition')
1174
- })
1175
-
1176
- it('edge with no labelPosition should produce x="0.5" in XML', () => {
1177
- const spec = {
1178
- meta: { theme: 'tech-blue' },
1179
- nodes: [
1180
- { id: 'n1', label: 'A' },
1181
- { id: 'n2', label: 'B' }
1182
- ],
1183
- edges: [{ from: 'n1', to: 'n2', label: 'flow' }]
1184
- }
1185
- const xml = specToDrawioXml(spec)
1186
- assert.ok(xml.includes('x="0.5"'), 'should contain x="0.5" for default center labelPosition')
1187
- })
1188
- })
1189
-
1190
- // ============================================================================
1191
- // Phase 2.3b: Text fidelity
1192
- // ============================================================================
1193
-
1194
- describe('Phase 2.3b: text fidelity', () => {
1195
- it('should preserve explicit bounds for standalone text nodes and text styling', () => {
1196
- const spec = {
1197
- meta: { theme: 'academic' },
1198
- nodes: [
1199
- {
1200
- id: 'title',
1201
- label: 'World Model',
1202
- type: 'text',
1203
- bounds: { x: 24, y: 32, width: 180, height: 36 },
1204
- style: {
1205
- fontFamily: 'Times New Roman, serif',
1206
- fontSize: 16,
1207
- italic: true,
1208
- align: 'left',
1209
- verticalAlign: 'top',
1210
- spacingLeft: 4,
1211
- spacingTop: 2
1212
- }
1213
- }
1214
- ]
1215
- }
1216
-
1217
- const xml = specToDrawioXml(spec)
1218
- assert.ok(xml.includes('style="text;'), 'text nodes should use the text shape')
1219
- assert.ok(xml.includes('x="24" y="32" width="180" height="36"'), 'text nodes should preserve explicit bounds')
1220
- assert.ok(xml.includes('fontFamily=Times New Roman, serif'), 'text nodes should preserve font family')
1221
- assert.ok(xml.includes('fontStyle=2'), 'italic text should be exported with the italic fontStyle bit')
1222
- assert.ok(xml.includes('align=left'), 'text nodes should preserve horizontal alignment')
1223
- assert.ok(xml.includes('verticalAlign=top'), 'text nodes should preserve vertical alignment')
1224
- assert.ok(xml.includes('spacingLeft=4'), 'text nodes should preserve left spacing')
1225
- })
1226
-
1227
- it('should keep formula nodes as dedicated annotations with explicit font styling', () => {
1228
- const spec = {
1229
- meta: { theme: 'academic' },
1230
- nodes: [
1231
- {
1232
- id: 'formula',
1233
- label: '$$h(t)=f(z(t))$$',
1234
- type: 'formula',
1235
- bounds: { x: 260, y: 48, width: 220, height: 56 },
1236
- style: {
1237
- fontFamily: 'Times New Roman, serif',
1238
- fontSize: 15,
1239
- italic: true,
1240
- align: 'center',
1241
- verticalAlign: 'middle'
1242
- }
1243
- }
1244
- ]
1245
- }
1246
-
1247
- const xml = specToDrawioXml(spec)
1248
- assert.ok(
1249
- xml.includes('shape=text') || /rounded=[01]/.test(xml),
1250
- 'formula nodes should remain dedicated annotation nodes'
1251
- )
1252
- assert.ok(xml.includes('fontFamily=Times New Roman, serif'), 'formula nodes should preserve serif typography')
1253
- assert.ok(xml.includes('fontStyle=2'), 'formula nodes should preserve italic styling')
1254
- })
1255
-
1256
- it('should export explicit edge label offsets away from the connector line', () => {
1257
- const spec = {
1258
- meta: { theme: 'tech-blue' },
1259
- nodes: [
1260
- { id: 'h', label: 'h(t)', bounds: { x: 48, y: 80, width: 96, height: 40 } },
1261
- { id: 'z', label: 'z(t)', bounds: { x: 300, y: 80, width: 96, height: 40 } }
1262
- ],
1263
- edges: [
1264
- {
1265
- from: 'h',
1266
- to: 'z',
1267
- label: 's(t)',
1268
- labelPosition: 'center',
1269
- labelOffset: { x: 0, y: -18 }
1270
- }
1271
- ]
1272
- }
1273
-
1274
- const xml = specToDrawioXml(spec)
1275
- assert.ok(xml.includes('<mxPoint x="0" y="-18" as="offset"/>'), 'edge labels should preserve the explicit offset')
1276
- assert.match(
1277
- xml,
1278
- /<mxCell id="\d+" value="" style="[^"]*" edge="1"/,
1279
- 'parent edge cell should not store duplicate label text'
1280
- )
1281
- assert.equal((xml.match(/value="s\(t\)"/g) || []).length, 1, 'edge label text should be stored once')
1282
- assert.ok(
1283
- xml.includes('fontFamily=Inter, Roboto, system-ui, -apple-system, sans-serif'),
1284
- 'edge labels should emit the theme typography font family'
1285
- )
1286
- })
1287
-
1288
- it('should force all covered text surfaces from meta.font and override node-level fontFamily', () => {
1289
- const spec = {
1290
- meta: {
1291
- theme: 'tech-blue',
1292
- font: {
1293
- primary: 'Times New Roman',
1294
- cjk: 'Simsun',
1295
- formula: 'Cambria Math'
1296
- }
1297
- },
1298
- modules: [{ id: 'm1', label: 'Module Title' }],
1299
- nodes: [
1300
- {
1301
- id: 'n1',
1302
- label: 'English Label',
1303
- module: 'm1',
1304
- style: { fontFamily: 'Arial' }
1305
- },
1306
- {
1307
- id: 'n2',
1308
- label: '$$h(t)=f(z(t))$$',
1309
- type: 'formula'
1310
- }
1311
- ],
1312
- edges: [{ from: 'n1', to: 'n2', label: 'flow' }]
1313
- }
1314
-
1315
- const xml = specToDrawioXml(spec)
1316
- assert.ok(xml.includes('fontFamily=Times New Roman'), 'primary text surfaces should use meta.font.primary')
1317
- assert.ok(!xml.includes('fontFamily=Arial'), 'node-level fontFamily should be overridden by meta.font')
1318
- assert.ok(xml.includes('fontFamily=Cambria Math'), 'formula surfaces should use meta.font.formula')
1319
- })
1320
-
1321
- it('should fall back to a Times New Roman + SimSun stack for Chinese text when meta.font is absent', () => {
1322
- const spec = {
1323
- meta: {
1324
- theme: 'academic',
1325
- title: 'Test Figure',
1326
- description: 'Test description',
1327
- figureType: 'architecture'
1328
- },
1329
- modules: [{ id: 'm1', label: '中文模块' }],
1330
- nodes: [
1331
- { id: 'n1', label: '中文标签', module: 'm1' },
1332
- { id: 'n2', label: 'English Label' }
1333
- ],
1334
- edges: [{ from: 'n1', to: 'n2', label: '中文连线' }]
1335
- }
1336
-
1337
- const xml = specToDrawioXml(spec)
1338
- assert.ok(
1339
- xml.includes('fontFamily=Times New Roman, SimSun'),
1340
- 'academic Chinese surfaces should use the theme Times New Roman + SimSun stack'
1341
- )
1342
- assert.ok(
1343
- xml.includes('fontFamily=Times New Roman, Georgia, serif'),
1344
- 'non-CJK academic surfaces should keep the theme serif stack'
1345
- )
1346
-
1347
- const generalXml = specToDrawioXml({
1348
- meta: { theme: 'tech-blue' },
1349
- nodes: [{ id: 'n1', label: '中文标签' }],
1350
- edges: []
1351
- })
1352
- assert.ok(
1353
- generalXml.includes('fontFamily=Times New Roman,SimSun'),
1354
- 'general-profile Chinese text should use the built-in Times New Roman,SimSun policy'
1355
- )
1356
- })
1357
-
1358
- it('should validate meta.font as a complete safe object', () => {
1359
- assert.throws(
1360
- () =>
1361
- validateSpec({
1362
- meta: { font: { primary: 'Times New Roman', cjk: 'Simsun' } },
1363
- nodes: [{ id: 'n1', label: 'Note' }],
1364
- edges: [],
1365
- modules: []
1366
- }),
1367
- /meta\.font\.formula must be a safe font-family string/
1368
- )
1369
-
1370
- assert.throws(
1371
- () =>
1372
- validateSpec({
1373
- meta: { font: { primary: 'Times;Roman', cjk: 'Simsun', formula: 'Cambria Math' } },
1374
- nodes: [{ id: 'n1', label: 'Note' }],
1375
- edges: [],
1376
- modules: []
1377
- }),
1378
- /meta\.font\.primary must be a safe font-family string/
1379
- )
1380
- })
1381
-
1382
- it('should validate explicit text bounds and label offsets', () => {
1383
- assert.throws(
1384
- () =>
1385
- validateSpec({
1386
- meta: {},
1387
- nodes: [{ id: 'n1', label: 'Note', bounds: { x: 10, y: 10, width: 0, height: 20 } }],
1388
- edges: [],
1389
- modules: []
1390
- }),
1391
- /bounds width and height must be greater than 0/
1392
- )
1393
-
1394
- assert.throws(
1395
- () =>
1396
- validateSpec({
1397
- meta: {},
1398
- nodes: [{ id: 'n1', label: 'Note' }],
1399
- edges: [{ from: 'n1', to: 'n2', label: 'flow', labelOffset: { x: 'bad', y: 8 } }],
1400
- modules: []
1401
- }),
1402
- /labelOffset must have numeric x and y/
1403
- )
1404
-
1405
- assert.throws(
1406
- () =>
1407
- validateSpec({
1408
- meta: { canvas: '0x600' },
1409
- nodes: [{ id: 'n1', label: 'Note' }],
1410
- edges: [],
1411
- modules: []
1412
- }),
1413
- /Invalid meta\.canvas "0x600": width and height must be positive integers/
1414
- )
1415
- })
1416
- })
1417
-
1418
- // ============================================================================
1419
- // Phase 2.4: Icon support
1420
- // ============================================================================
1421
-
1422
- describe('Phase 2.4: resolveIconShape', () => {
1423
- it('should resolve aws.lambda to mxgraph.aws4.lambda', () => {
1424
- assert.strictEqual(resolveIconShape('aws.lambda'), 'mxgraph.aws4.lambda')
1425
- })
1426
-
1427
- it('should resolve gcp.functions to mxgraph.gcp2.functions', () => {
1428
- assert.strictEqual(resolveIconShape('gcp.functions'), 'mxgraph.gcp2.functions')
1429
- })
1430
-
1431
- it('should resolve azure.vm to mxgraph.azure.vm', () => {
1432
- assert.strictEqual(resolveIconShape('azure.vm'), 'mxgraph.azure.vm')
1433
- })
1434
-
1435
- it('should resolve k8s.pod to the kubernetes icon2 parameter family', () => {
1436
- assert.strictEqual(resolveIconShape('k8s.pod'), 'mxgraph.kubernetes.icon2:prIcon=pod')
1437
- })
1438
-
1439
- it('should pass through mxgraph. prefix directly', () => {
1440
- assert.strictEqual(resolveIconShape('mxgraph.custom.shape'), 'mxgraph.custom.shape')
1441
- })
1442
-
1443
- it('should return null for null/undefined', () => {
1444
- assert.strictEqual(resolveIconShape(null), null)
1445
- assert.strictEqual(resolveIconShape(undefined), null)
1446
- })
1447
-
1448
- it('should resolve supported image icons to self-contained data URI styles', () => {
1449
- assert.strictEqual(resolveIconShape('brand.openai'), null)
1450
- const supported = [
1451
- 'brand.openai',
1452
- 'brand.redis',
1453
- 'openai',
1454
- 'redis',
1455
- 'lobe.openai',
1456
- 'lobe.claude',
1457
- 'lobe.gemini',
1458
- 'lobe.chatgpt',
1459
- 'lobe.open-ai',
1460
- 'ai.anthropic',
1461
- 'lucide.alarm-clock',
1462
- 'lucide.bot',
1463
- 'lucide.brain-circuit',
1464
- 'lucide.cloud',
1465
- 'lucide.cpu',
1466
- 'lucide.database',
1467
- 'lucide.database-zap',
1468
- 'lucide.file-text',
1469
- 'lucide.layers',
1470
- 'lucide.network',
1471
- 'lucide.search',
1472
- 'lucide.server',
1473
- 'lucide.server-cog',
1474
- 'lucide.shield',
1475
- 'lucide.ai',
1476
- 'lucide.cache',
1477
- 'lucide.workflow'
1478
- ]
1479
- for (const icon of supported) {
1480
- const style = resolveImageIconStyle(icon)
1481
- assert.match(style, /^shape=image;.*image=data:image\/svg\+xml,/, `${icon} should be embedded`)
1482
- assert.doesNotMatch(style, /https?:\/\//, `${icon} should not require network access`)
1483
- }
1484
- })
1485
-
1486
- it('should reject unsupported image icon names', () => {
1487
- assert.strictEqual(resolveImageIconStyle('lobe.definitely-not-a-catalog-brand'), null)
1488
- assert.strictEqual(resolveImageIconStyle('lobe.definitely-not-real'), null)
1489
- assert.strictEqual(resolveImageIconStyle('brand.not-real'), null)
1490
- assert.strictEqual(resolveImageIconStyle('lucide.not-a-real-icon'), null)
1491
- })
1492
-
1493
- it('should treat unknown prefix as direct shape reference', () => {
1494
- assert.strictEqual(resolveIconShape('customShape'), 'customShape')
1495
- })
1496
- })
1497
-
1498
- describe('Phase 2.4: generateNodeStyle with icon', () => {
1499
- const theme = {
1500
- node: {
1501
- default: {
1502
- fillColor: '#DBEAFE',
1503
- strokeColor: '#2563EB',
1504
- strokeWidth: 1.5,
1505
- fontColor: '#1E293B',
1506
- fontSize: 13
1507
- }
1508
- },
1509
- typography: {
1510
- fontFamily: { primary: 'Inter, sans-serif' }
1511
- }
1512
- }
1513
-
1514
- it('node with icon aws.lambda should emit the aws4 resourceIcon compound style', () => {
1515
- const style = generateNodeStyle({ id: 'n1', label: 'Lambda', icon: 'aws.lambda' }, theme)
1516
- assert.ok(
1517
- style.includes('shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.lambda'),
1518
- 'resource-only aws4 icons must use shape=resourceIcon;resIcon=<name>'
1519
- )
1520
- assert.ok(style.includes('verticalLabelPosition=bottom'), 'should contain verticalLabelPosition=bottom')
1521
- assert.ok(style.includes('labelBackgroundColor=none'), 'should contain labelBackgroundColor=none')
1522
- })
1523
-
1524
- it('node with icon gcp.functions should have shape=mxgraph.gcp2.functions in style', () => {
1525
- const style = generateNodeStyle({ id: 'n1', label: 'Functions', icon: 'gcp.functions' }, theme)
1526
- assert.ok(style.includes('shape=mxgraph.gcp2.functions'), 'should contain shape=mxgraph.gcp2.functions')
1527
- })
1528
-
1529
- it('node with icon k8s.pod should emit the kubernetes icon2 compound style', () => {
1530
- const style = generateNodeStyle({ id: 'pod', label: 'Pod', icon: 'k8s.pod' }, theme)
1531
- assert.match(style, /shape=mxgraph\.kubernetes\.icon2;prIcon=pod;aspect=fixed/)
1532
- })
1533
-
1534
- it('imports kubernetes icon2 compound styles back to k8s.<prIcon> syntax', () => {
1535
- const xml = specToDrawioXml(
1536
- { meta: { title: 'K8s' }, nodes: [{ id: 'pod1', label: 'Pod', icon: 'k8s.pod' }], edges: [] },
1537
- { silent: true }
1538
- )
1539
- const roundTripped = drawioToSpec(createDrawioFileContent(xml))
1540
- assert.equal(roundTripped.nodes.find((node) => node.label === 'Pod')?.icon, 'k8s.pod')
1541
- })
1542
-
1543
- it('node with icon brand.openai should emit a Lobe Icons image style', () => {
1544
- const style = generateNodeStyle({ id: 'n1', label: 'OpenAI', icon: 'brand.openai' }, theme)
1545
- assert.ok(style.includes('shape=image'), 'should render brand icons as draw.io image cells')
1546
- assert.ok(style.includes('image=data:image/svg+xml,'), 'OpenAI should resolve through embedded normalized Lobe SVG')
1547
- assert.ok(style.includes('verticalLabelPosition=bottom'), 'should label image icons below the icon')
1548
- })
1549
-
1550
- it('node with icon lobe.gemini should emit a Lobe Icons image style', () => {
1551
- const style = generateNodeStyle({ id: 'n1', label: 'Gemini', icon: 'lobe.gemini' }, theme)
1552
- assert.ok(style.includes('shape=image'), 'should render lobe icons as draw.io image cells')
1553
- assert.ok(style.includes('image=data:image/svg+xml,'))
1554
- })
1555
-
1556
- it('node with icon lucide.database-zap should emit an embedded image style', () => {
1557
- const style = generateNodeStyle({ id: 'n1', label: 'Cache', icon: 'lucide.database-zap' }, theme)
1558
- assert.ok(style.includes('shape=image'), 'should render lucide icons as draw.io image cells')
1559
- assert.ok(style.includes('image=data:image/svg+xml,'), 'lucide icon should be self-contained SVG data')
1560
- })
1561
-
1562
- it('node with icon lucide.server-cog should resolve from the bundled icon set', () => {
1563
- const style = generateNodeStyle({ id: 'n1', label: 'Server Ops', icon: 'lucide.server-cog' }, theme)
1564
- assert.ok(style.includes('shape=image'), 'should render bundled Lucide icons as draw.io image cells')
1565
- assert.ok(style.includes('image=data:image/svg+xml,'), 'should embed the bundled SVG content')
1566
- assert.ok(style.includes('%231E293B'), 'should use the normalized draw.io icon color')
1567
- })
1568
-
1569
- it('node without icon should NOT contain shape=mxgraph', () => {
1570
- const style = generateNodeStyle({ id: 'n1', label: 'API Gateway', type: 'service' }, theme)
1571
- assert.ok(!style.includes('shape=mxgraph'), 'should not contain shape=mxgraph for non-icon node')
1572
- })
1573
- })
1574
-
1575
- // ============================================================================
1576
- // Phase 4.3: validateXml
1577
- // ============================================================================
1578
-
1579
- describe('validateXml', () => {
1580
- const VALID_XML =
1581
- '<mxGraphModel>' +
1582
- '<root>' +
1583
- '<mxCell id="0"/>' +
1584
- '<mxCell id="1" parent="0"/>' +
1585
- '<mxCell id="2" value="A" style="" vertex="1" parent="1">' +
1586
- '<mxGeometry x="40" y="40" width="120" height="60" as="geometry"/>' +
1587
- '</mxCell>' +
1588
- '<mxCell id="3" value="B" style="" vertex="1" parent="1">' +
1589
- '<mxGeometry x="200" y="40" width="120" height="60" as="geometry"/>' +
1590
- '</mxCell>' +
1591
- '<mxCell id="4" style="" edge="1" parent="1" source="2" target="3">' +
1592
- '<mxGeometry relative="1" as="geometry"/>' +
1593
- '</mxCell>' +
1594
- '</root>' +
1595
- '</mxGraphModel>'
1596
-
1597
- it('should return valid:true and empty errors for well-formed XML', () => {
1598
- const result = validateXml(VALID_XML)
1599
- assert.strictEqual(result.valid, true, 'should be valid')
1600
- assert.deepStrictEqual(result.errors, [], 'should have no errors')
1601
- })
1602
-
1603
- it('should return errors when root cells are missing', () => {
1604
- const xml =
1605
- '<mxGraphModel>' +
1606
- '<root>' +
1607
- '<mxCell id="2" value="A" vertex="1" parent="1">' +
1608
- '<mxGeometry as="geometry"/>' +
1609
- '</mxCell>' +
1610
- '</root>' +
1611
- '</mxGraphModel>'
1612
- const result = validateXml(xml)
1613
- assert.strictEqual(result.valid, false, 'should be invalid')
1614
- assert.ok(
1615
- result.errors.some((e) => e.includes('id="0"')),
1616
- 'should report missing id=0 cell'
1617
- )
1618
- assert.ok(
1619
- result.errors.some((e) => e.includes('id="1"')),
1620
- 'should report missing id=1 cell'
1621
- )
1622
- })
1623
-
1624
- it('should return errors for duplicate cell IDs', () => {
1625
- const xml =
1626
- '<mxGraphModel>' +
1627
- '<root>' +
1628
- '<mxCell id="0"/>' +
1629
- '<mxCell id="1" parent="0"/>' +
1630
- '<mxCell id="2" value="A" vertex="1" parent="1"><mxGeometry as="geometry"/></mxCell>' +
1631
- '<mxCell id="2" value="B" vertex="1" parent="1"><mxGeometry as="geometry"/></mxCell>' +
1632
- '</root>' +
1633
- '</mxGraphModel>'
1634
- const result = validateXml(xml)
1635
- assert.strictEqual(result.valid, false, 'should be invalid')
1636
- assert.ok(
1637
- result.errors.some((e) => e.includes('Duplicate') && e.includes('"2"')),
1638
- 'should report duplicate ID 2'
1639
- )
1640
- })
1641
-
1642
- it('should return errors when edge references nonexistent source', () => {
1643
- const xml =
1644
- '<mxGraphModel>' +
1645
- '<root>' +
1646
- '<mxCell id="0"/>' +
1647
- '<mxCell id="1" parent="0"/>' +
1648
- '<mxCell id="2" value="A" vertex="1" parent="1"><mxGeometry as="geometry"/></mxCell>' +
1649
- '<mxCell id="4" style="" edge="1" parent="1" source="999" target="2">' +
1650
- '<mxGeometry relative="1" as="geometry"/>' +
1651
- '</mxCell>' +
1652
- '</root>' +
1653
- '</mxGraphModel>'
1654
- const result = validateXml(xml)
1655
- assert.strictEqual(result.valid, false, 'should be invalid')
1656
- assert.ok(
1657
- result.errors.some((e) => e.includes('source') && e.includes('"999"')),
1658
- 'should report nonexistent source ID'
1659
- )
1660
- })
1661
-
1662
- it('should reject a full-page embedded image cell', () => {
1663
- const xml =
1664
- '<mxGraphModel pageWidth="1200" pageHeight="800">' +
1665
- '<root>' +
1666
- '<mxCell id="0"/>' +
1667
- '<mxCell id="1" parent="0"/>' +
1668
- '<mxCell id="2" value="" style="shape=image;image=data:image/png;base64,abc;" vertex="1" parent="1">' +
1669
- '<mxGeometry x="0" y="0" width="1200" height="800" as="geometry"/>' +
1670
- '</mxCell>' +
1671
- '</root>' +
1672
- '</mxGraphModel>'
1673
- const result = validateXml(xml)
1674
- assert.strictEqual(result.valid, false, 'full-page image should be invalid')
1675
- assert.ok(
1676
- result.errors.some((e) => e.includes('full-page embedded image')),
1677
- 'should report full-page embedded image'
1678
- )
1679
- })
1680
-
1681
- it('should allow small embedded image icon cells', () => {
1682
- const xml =
1683
- '<mxGraphModel pageWidth="1200" pageHeight="800">' +
1684
- '<root>' +
1685
- '<mxCell id="0"/>' +
1686
- '<mxCell id="1" parent="0"/>' +
1687
- '<mxCell id="2" value="" style="shape=image;image=data:image/png;base64,abc;" vertex="1" parent="1">' +
1688
- '<mxGeometry x="40" y="40" width="80" height="80" as="geometry"/>' +
1689
- '</mxCell>' +
1690
- '</root>' +
1691
- '</mxGraphModel>'
1692
- const result = validateXml(xml)
1693
- assert.strictEqual(result.valid, true, 'small image icon should be valid')
1694
- })
1695
- })
1696
-
1697
- // ============================================================================
1698
- // Additional loadTheme Tests
1699
- // ============================================================================
1700
-
1701
- describe('loadTheme additional themes', () => {
1702
- it('loadTheme("nature") returns object with green primary color', () => {
1703
- const theme = loadTheme('nature')
1704
- assert.strictEqual(theme.name, 'nature', 'should have name nature')
1705
- assert.ok(
1706
- theme.colors.primary === '#059669' || theme.node?.default?.strokeColor === '#059669',
1707
- 'nature theme should have green primary color #059669'
1708
- )
1709
- })
1710
-
1711
- it('loadTheme("academic-color") returns object with skip, residual, and attention connector types', () => {
1712
- const theme = loadTheme('academic-color')
1713
- assert.ok(theme.connector.skip, 'should have skip connector type')
1714
- assert.ok(theme.connector.residual, 'should have residual connector type')
1715
- assert.ok(theme.connector.attention, 'should have attention connector type')
1716
- })
1717
- })
1718
-
1719
- // ============================================================================
1720
- // Additional calculateLayout Tests
1721
- // ============================================================================
1722
-
1723
- describe('calculateLayout additional layouts', () => {
1724
- it('vertical layout: 2 nodes in separate modules have different Y positions', () => {
1725
- // In vertical layout, modules are stacked vertically (different Y per module group)
1726
- const spec = {
1727
- meta: { layout: 'vertical' },
1728
- modules: [
1729
- { id: 'm1', label: 'Module 1' },
1730
- { id: 'm2', label: 'Module 2' }
1731
- ],
1732
- nodes: [
1733
- { id: 'n1', label: 'Node 1', module: 'm1' },
1734
- { id: 'n2', label: 'Node 2', module: 'm2' }
1735
- ]
1736
- }
1737
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
1738
- const { positions } = calculateLayout(spec, theme)
1739
-
1740
- const pos1 = positions.get('n1')
1741
- const pos2 = positions.get('n2')
1742
-
1743
- assert.ok(pos1, 'should have position for n1')
1744
- assert.ok(pos2, 'should have position for n2')
1745
- // In vertical layout, modules are stacked: Y values differ between modules
1746
- assert.notStrictEqual(
1747
- pos1.y,
1748
- pos2.y,
1749
- 'vertical layout nodes in different modules should have different Y positions'
1750
- )
1751
- })
1752
-
1753
- it('hierarchical layout: 4 nodes are arranged in a grid pattern', () => {
1754
- const spec = {
1755
- meta: { layout: 'hierarchical' },
1756
- nodes: [
1757
- { id: 'n1', label: 'Node 1' },
1758
- { id: 'n2', label: 'Node 2' },
1759
- { id: 'n3', label: 'Node 3' },
1760
- { id: 'n4', label: 'Node 4' }
1761
- ]
1762
- }
1763
- const theme = { canvas: { gridSize: 8 }, module: { padding: 24 } }
1764
- const { positions } = calculateLayout(spec, theme)
1765
-
1766
- assert.ok(positions.has('n1'), 'should have position for n1')
1767
- assert.ok(positions.has('n2'), 'should have position for n2')
1768
- assert.ok(positions.has('n3'), 'should have position for n3')
1769
- assert.ok(positions.has('n4'), 'should have position for n4')
1770
-
1771
- // All positions should be grid-aligned
1772
- for (const [, pos] of positions) {
1773
- assert.strictEqual(pos.x % 8, 0, 'x should be grid-aligned')
1774
- assert.strictEqual(pos.y % 8, 0, 'y should be grid-aligned')
1775
- }
1776
-
1777
- // Should have at least 2 distinct X or Y values (grid pattern)
1778
- const xs = new Set([...positions.values()].map((p) => p.x))
1779
- const ys = new Set([...positions.values()].map((p) => p.y))
1780
- assert.ok(xs.size > 1 || ys.size > 1, 'hierarchical layout should use multiple X or Y positions')
1781
- })
1782
- })
1783
-
1784
- // ============================================================================
1785
- // Additional specToDrawioXml Integration Tests
1786
- // ============================================================================
1787
-
1788
- describe('specToDrawioXml additional integration tests', () => {
1789
- it('nature theme produces XML with green stroke color (#059669) not tech-blue (#2563EB)', () => {
1790
- const spec = {
1791
- meta: { theme: 'nature' },
1792
- nodes: [
1793
- { id: 'n1', label: 'Service A', type: 'service' },
1794
- { id: 'n2', label: 'Service B', type: 'service' }
1795
- ],
1796
- edges: [{ from: 'n1', to: 'n2' }]
1797
- }
1798
- const xml = specToDrawioXml(spec)
1799
- assert.ok(xml.includes('#059669'), 'nature theme XML should contain green color #059669')
1800
- assert.ok(!xml.includes('#2563EB'), 'nature theme XML should not contain tech-blue color #2563EB')
1801
- })
1802
-
1803
- it('dark theme produces XML with dark background color (#0F172A)', () => {
1804
- const spec = {
1805
- meta: { theme: 'dark' },
1806
- nodes: [{ id: 'n1', label: 'Service A', type: 'service' }],
1807
- edges: []
1808
- }
1809
- const xml = specToDrawioXml(spec)
1810
- assert.ok(xml.includes('#0F172A'), 'dark theme XML should contain dark background color #0F172A')
1811
- })
1812
-
1813
- it('modules produce XML containing module container with correct label', () => {
1814
- const spec = {
1815
- meta: { theme: 'tech-blue' },
1816
- modules: [{ id: 'm1', label: 'MyBackend' }],
1817
- nodes: [{ id: 'n1', label: 'Service', module: 'm1' }],
1818
- edges: []
1819
- }
1820
- const xml = specToDrawioXml(spec)
1821
- assert.ok(xml.includes('MyBackend'), 'XML should contain module label MyBackend')
1822
- })
1823
-
1824
- it('each of the 5 connector types produces the correct endArrow in XML', () => {
1825
- // tech-blue theme defaults: primary=open, data=open, optional=open, dependency=diamond, bidirectional=none
1826
- const edgeTypes = [
1827
- { type: 'primary', expectedArrow: 'endArrow=open' },
1828
- { type: 'data', expectedArrow: 'endArrow=open' },
1829
- { type: 'optional', expectedArrow: 'endArrow=open' },
1830
- { type: 'dependency', expectedArrow: 'endArrow=diamond' },
1831
- { type: 'bidirectional', expectedArrow: 'endArrow=none' }
1832
- ]
1833
-
1834
- for (const { type, expectedArrow } of edgeTypes) {
1835
- const spec = {
1836
- meta: { theme: 'tech-blue' },
1837
- nodes: [
1838
- { id: 'n1', label: 'A' },
1839
- { id: 'n2', label: 'B' }
1840
- ],
1841
- edges: [{ from: 'n1', to: 'n2', type }]
1842
- }
1843
- const xml = specToDrawioXml(spec)
1844
- assert.ok(xml.includes(expectedArrow), `edge type "${type}" should produce "${expectedArrow}" in XML`)
1845
- }
1846
- })
1847
- })
1848
-
1849
- // ============================================================================
1850
- // Edge label presence/absence in XML
1851
- // ============================================================================
1852
-
1853
- describe('edge label in XML', () => {
1854
- it('edge with label produces XML containing that label text', () => {
1855
- const spec = {
1856
- meta: { theme: 'tech-blue' },
1857
- nodes: [
1858
- { id: 'n1', label: 'A' },
1859
- { id: 'n2', label: 'B' }
1860
- ],
1861
- edges: [{ from: 'n1', to: 'n2', label: 'MyEdgeLabel' }]
1862
- }
1863
- const xml = specToDrawioXml(spec)
1864
- assert.ok(xml.includes('MyEdgeLabel'), 'XML should contain edge label text "MyEdgeLabel"')
1865
- assert.match(xml, /<mxCell id="\d+" value="" style="[^"]*" edge="1"/, 'parent edge cell should keep value empty')
1866
- assert.equal((xml.match(/value="MyEdgeLabel"/g) || []).length, 1, 'edge label should not be duplicated in XML')
1867
- })
1868
-
1869
- it('edge without label does NOT produce edgeLabel cell in XML', () => {
1870
- const spec = {
1871
- meta: { theme: 'tech-blue' },
1872
- nodes: [
1873
- { id: 'n1', label: 'A' },
1874
- { id: 'n2', label: 'B' }
1875
- ],
1876
- edges: [{ from: 'n1', to: 'n2' }]
1877
- }
1878
- const xml = specToDrawioXml(spec)
1879
- assert.ok(!xml.includes('edgeLabel'), 'XML should NOT contain edgeLabel when edge has no label')
1880
- })
1881
- })
1882
-
1883
- // ============================================================================
1884
- // validateColorScheme — color validation
1885
- // ============================================================================
1886
-
1887
- describe('validateColorScheme', () => {
1888
- const theme = loadTheme('tech-blue')
1889
-
1890
- it('returns no warnings for a spec with no style overrides', () => {
1891
- const spec = {
1892
- nodes: [{ id: 'n1', label: 'Node' }],
1893
- edges: [],
1894
- modules: []
1895
- }
1896
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
1897
- })
1898
-
1899
- it('returns no warnings for valid hex color overrides (#RGB)', () => {
1900
- const spec = {
1901
- nodes: [{ id: 'n1', label: 'Node', style: { fillColor: '#ABC', strokeColor: '#123456' } }],
1902
- edges: [],
1903
- modules: []
1904
- }
1905
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
1906
- })
1907
-
1908
- it('returns no warnings for valid hex color overrides (#RRGGBB)', () => {
1909
- const spec = {
1910
- nodes: [{ id: 'n1', label: 'Node', style: { fillColor: '#DBEAFE', strokeColor: '#2563EB' } }],
1911
- edges: [],
1912
- modules: []
1913
- }
1914
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
1915
- })
1916
-
1917
- it('returns no warnings for valid theme token overrides', () => {
1918
- const spec = {
1919
- nodes: [{ id: 'n1', label: 'Node', style: { fillColor: '$primaryLight', strokeColor: '$primary' } }],
1920
- edges: [],
1921
- modules: []
1922
- }
1923
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
1924
- })
1925
-
1926
- it('returns a warning for an invalid color value on a node', () => {
1927
- const spec = {
1928
- nodes: [{ id: 'n1', label: 'Node', style: { fillColor: 'blue' } }],
1929
- edges: [],
1930
- modules: []
1931
- }
1932
- const warnings = validateColorScheme(spec, theme)
1933
- assert.strictEqual(warnings.length, 1)
1934
- assert.ok(warnings[0].includes('node "n1"'), 'warning should identify the node')
1935
- assert.ok(warnings[0].includes('"blue"'), 'warning should quote the invalid value')
1936
- })
1937
-
1938
- it('returns a warning for an invalid strokeColor on an edge', () => {
1939
- const spec = {
1940
- nodes: [
1941
- { id: 'n1', label: 'A' },
1942
- { id: 'n2', label: 'B' }
1943
- ],
1944
- edges: [{ from: 'n1', to: 'n2', style: { strokeColor: 'red' } }],
1945
- modules: []
1946
- }
1947
- const warnings = validateColorScheme(spec, theme)
1948
- assert.strictEqual(warnings.length, 1)
1949
- assert.ok(warnings[0].includes('n1→n2'), 'warning should identify the edge')
1950
- })
1951
-
1952
- it('returns a warning for an invalid color on a module', () => {
1953
- const spec = {
1954
- nodes: [{ id: 'n1', label: 'A' }],
1955
- edges: [],
1956
- modules: [{ id: 'm1', label: 'Mod', style: { fillColor: 'not-a-color' } }]
1957
- }
1958
- const warnings = validateColorScheme(spec, theme)
1959
- assert.strictEqual(warnings.length, 1)
1960
- assert.ok(warnings[0].includes('module "m1"'), 'warning should identify the module')
1961
- })
1962
-
1963
- it('returns no warnings for valid module.color token values', () => {
1964
- const spec = {
1965
- nodes: [{ id: 'n1', label: 'A' }],
1966
- edges: [],
1967
- modules: [{ id: 'm1', label: 'Mod', color: '$accent' }]
1968
- }
1969
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
1970
- })
1971
-
1972
- it('returns multiple warnings for multiple invalid values', () => {
1973
- const spec = {
1974
- nodes: [{ id: 'n1', label: 'A', style: { fillColor: 'bad1', strokeColor: 'bad2' } }],
1975
- edges: [],
1976
- modules: []
1977
- }
1978
- const warnings = validateColorScheme(spec, theme)
1979
- assert.strictEqual(warnings.length, 2)
1980
- })
1981
-
1982
- it('ignores undefined / null style color values without warning', () => {
1983
- const spec = {
1984
- nodes: [{ id: 'n1', label: 'Node', style: { fillColor: null, strokeColor: undefined } }],
1985
- edges: [],
1986
- modules: []
1987
- }
1988
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
1989
- })
1990
-
1991
- it('validates replication metadata colors', () => {
1992
- const spec = {
1993
- meta: {
1994
- source: 'replicated',
1995
- replication: {
1996
- background: '#FFF7ED',
1997
- palette: [
1998
- { hex: '#FDBA74', role: 'node fill', appliesTo: 'nodes', confidence: 'high' },
1999
- { hex: '#7C2D12', role: 'connector stroke', appliesTo: 'edges', confidence: 'medium' }
2000
- ]
2001
- }
2002
- },
2003
- nodes: [{ id: 'n1', label: 'A' }],
2004
- edges: [],
2005
- modules: []
2006
- }
2007
- assert.deepStrictEqual(validateColorScheme(spec, theme), [])
2008
- })
2009
-
2010
- it('warns when replication palette colors are not flat hex values', () => {
2011
- const spec = {
2012
- meta: {
2013
- source: 'replicated',
2014
- replication: {
2015
- background: '#FFF7ED',
2016
- palette: [{ hex: '$primary', role: 'bad extracted color', appliesTo: 'nodes' }]
2017
- }
2018
- },
2019
- nodes: [{ id: 'n1', label: 'A' }],
2020
- edges: [],
2021
- modules: []
2022
- }
2023
- const warnings = validateColorScheme(spec, theme)
2024
- assert.strictEqual(warnings.length, 1)
2025
- assert.ok(warnings[0].includes('meta.replication.palette[0].hex'))
2026
- })
2027
- })
2028
-
2029
- // ============================================================================
2030
- // validateLayoutConsistency — coordinate / layout direction checks
2031
- // ============================================================================
2032
-
2033
- describe('validateLayoutConsistency', () => {
2034
- it('returns no warnings when fewer than 2 positioned nodes', () => {
2035
- const spec = {
2036
- meta: { layout: 'horizontal' },
2037
- nodes: [{ id: 'n1', label: 'A', position: { x: 100, y: 100 } }]
2038
- }
2039
- assert.deepStrictEqual(validateLayoutConsistency(spec), [])
2040
- })
2041
-
2042
- it('returns no warnings when layout and positions are consistent (horizontal)', () => {
2043
- const spec = {
2044
- meta: { layout: 'horizontal' },
2045
- nodes: [
2046
- { id: 'n1', label: 'A', position: { x: 100, y: 100 } },
2047
- { id: 'n2', label: 'B', position: { x: 400, y: 120 } }
2048
- ]
2049
- }
2050
- // xRange=300, yRange=20 — clearly horizontal
2051
- assert.deepStrictEqual(validateLayoutConsistency(spec), [])
2052
- })
2053
-
2054
- it('returns no warnings when layout and positions are consistent (vertical)', () => {
2055
- const spec = {
2056
- meta: { layout: 'vertical' },
2057
- nodes: [
2058
- { id: 'n1', label: 'A', position: { x: 100, y: 100 } },
2059
- { id: 'n2', label: 'B', position: { x: 110, y: 500 } }
2060
- ]
2061
- }
2062
- // xRange=10, yRange=400 — clearly vertical
2063
- assert.deepStrictEqual(validateLayoutConsistency(spec), [])
2064
- })
2065
-
2066
- it('warns when horizontal layout has disproportionately large vertical span', () => {
2067
- const spec = {
2068
- meta: { layout: 'horizontal' },
2069
- nodes: [
2070
- { id: 'n1', label: 'A', position: { x: 100, y: 100 } },
2071
- { id: 'n2', label: 'B', position: { x: 120, y: 800 } }
2072
- ]
2073
- }
2074
- // xRange=20, yRange=700 — vertical span >> horizontal
2075
- const warnings = validateLayoutConsistency(spec)
2076
- assert.strictEqual(warnings.length, 1)
2077
- assert.ok(warnings[0].includes('"horizontal"'), 'warning should mention layout direction')
2078
- })
2079
-
2080
- it('warns when vertical layout has disproportionately large horizontal span', () => {
2081
- const spec = {
2082
- meta: { layout: 'vertical' },
2083
- nodes: [
2084
- { id: 'n1', label: 'A', position: { x: 100, y: 100 } },
2085
- { id: 'n2', label: 'B', position: { x: 900, y: 120 } }
2086
- ]
2087
- }
2088
- // xRange=800, yRange=20 — horizontal span >> vertical
2089
- const warnings = validateLayoutConsistency(spec)
2090
- assert.strictEqual(warnings.length, 1)
2091
- assert.ok(warnings[0].includes('"vertical"'), 'warning should mention layout direction')
2092
- })
2093
-
2094
- it('warns when two positioned nodes are too close together (overlap)', () => {
2095
- const spec = {
2096
- meta: { layout: 'horizontal' },
2097
- nodes: [
2098
- { id: 'n1', label: 'A', position: { x: 100, y: 100 } },
2099
- { id: 'n2', label: 'B', position: { x: 105, y: 105 } }
2100
- ]
2101
- }
2102
- const warnings = validateLayoutConsistency(spec)
2103
- const overlapWarning = warnings.find((w) => w.includes('overlap'))
2104
- assert.ok(overlapWarning, 'should warn about node overlap')
2105
- assert.ok(overlapWarning.includes('"n1"') && overlapWarning.includes('"n2"'))
2106
- })
2107
-
2108
- it('does not warn when nodes are sufficiently separated', () => {
2109
- const spec = {
2110
- meta: { layout: 'horizontal' },
2111
- nodes: [
2112
- { id: 'n1', label: 'A', position: { x: 100, y: 100 } },
2113
- { id: 'n2', label: 'B', position: { x: 300, y: 100 } }
2114
- ]
2115
- }
2116
- // distance = 200px — well above MIN_CLEARANCE
2117
- const warnings = validateLayoutConsistency(spec).filter((w) => w.includes('overlap'))
2118
- assert.deepStrictEqual(warnings, [])
2119
- })
2120
-
2121
- it('skips overlap check when nodes exceed 30 (performance guard)', () => {
2122
- const nodes = Array.from({ length: 31 }, (_, i) => ({
2123
- id: `n${i}`,
2124
- label: `N${i}`,
2125
- position: { x: i * 5, y: i * 5 } // would overlap if checked
2126
- }))
2127
- const spec = { meta: { layout: 'horizontal' }, nodes }
2128
- const warnings = validateLayoutConsistency(spec).filter((w) => w.includes('overlap'))
2129
- assert.deepStrictEqual(warnings, [], 'overlap check should be skipped for > 30 nodes')
2130
- })
2131
- })
2132
-
2133
- // ============================================================================
2134
- // specToDrawioXml validation integration
2135
- // ============================================================================
2136
-
2137
- describe('specToDrawioXml validation integration', () => {
2138
- it('includes color warnings in returnWarnings output', () => {
2139
- const spec = {
2140
- meta: { theme: 'tech-blue' },
2141
- nodes: [
2142
- { id: 'n1', label: 'A', style: { fillColor: 'invalid-color' } },
2143
- { id: 'n2', label: 'B' }
2144
- ]
2145
- }
2146
- const result = specToDrawioXml(spec, { returnWarnings: true, silent: true })
2147
- assert.ok(result.xml, 'should still produce XML despite warnings')
2148
- const colorWarning = result.warnings.find((w) => w.message?.includes('invalid-color'))
2149
- assert.ok(colorWarning, 'should include color warning in returned warnings')
2150
- })
2151
-
2152
- it('throws in strict mode when color validation fails', () => {
2153
- const spec = {
2154
- meta: { theme: 'tech-blue' },
2155
- nodes: [
2156
- { id: 'n1', label: 'A', style: { fillColor: 'not-a-color' } },
2157
- { id: 'n2', label: 'B' }
2158
- ]
2159
- }
2160
- assert.throws(
2161
- () => specToDrawioXml(spec, { strict: true, silent: true }),
2162
- /Spec validation failed/,
2163
- 'strict mode should throw on invalid color'
2164
- )
2165
- })
2166
-
2167
- it('does not throw in non-strict mode with invalid colors', () => {
2168
- const spec = {
2169
- meta: { theme: 'tech-blue' },
2170
- nodes: [
2171
- { id: 'n1', label: 'A', style: { fillColor: 'not-a-color' } },
2172
- { id: 'n2', label: 'B' }
2173
- ]
2174
- }
2175
- assert.doesNotThrow(
2176
- () => specToDrawioXml(spec, { silent: true }),
2177
- 'non-strict mode should not throw on invalid color'
2178
- )
2179
- })
2180
- })
2181
-
2182
- // ============================================================================
2183
- // Theme Style Fidelity Tests (rounded corners, typography, shape catalog)
2184
- // ============================================================================
2185
-
2186
- describe('theme style fidelity', () => {
2187
- const academic = loadTheme('academic')
2188
- const techBlue = loadTheme('tech-blue')
2189
-
2190
- it('academic theme renders service nodes with square corners', () => {
2191
- const style = generateNodeStyle({ id: 's1', label: 'Encoder', type: 'service' }, academic)
2192
- assert.ok(style.includes('rounded=0'), 'academic service nodes should be square')
2193
- assert.ok(!style.includes('arcSize='), 'square corners should not carry an arcSize')
2194
- })
2195
-
2196
- it('academic theme renders modules with square corners', () => {
2197
- const style = generateModuleStyle({ id: 'm1', label: 'Encoder Stack' }, academic)
2198
- assert.ok(style.includes('rounded=0'), 'academic modules should be square (module.rounded: 0)')
2199
- assert.ok(!style.includes('arcSize='), 'square modules should not carry an arcSize')
2200
- })
2201
-
2202
- it('terminal stadium shapes keep their semantic rounding under square themes', () => {
2203
- const style = generateNodeStyle({ id: 't1', label: 'Start', type: 'terminal' }, academic)
2204
- assert.ok(style.includes('arcSize=50'), 'stadium rounding is shape semantics, not decoration')
2205
- })
2206
-
2207
- it('tech-blue theme rounded token overrides SHAPE_STYLES arcSize', () => {
2208
- const style = generateNodeStyle({ id: 's2', label: 'API Gateway', type: 'service' }, techBlue)
2209
- assert.ok(style.includes('rounded=1'), 'tech-blue keeps rounded corners')
2210
- assert.ok(style.includes('arcSize=8'), 'tech-blue node.default.rounded=8 should win over the hardcoded 20')
2211
- })
2212
-
2213
- it('theme typography supplies node fonts with meta.font staying strongest', () => {
2214
- const themed = generateNodeStyle({ id: 'f1', label: 'API Gateway', type: 'service' }, techBlue)
2215
- assert.ok(themed.includes('fontFamily=Inter, Roboto, system-ui, -apple-system, sans-serif'))
2216
-
2217
- const formula = generateNodeStyle({ id: 'f2', label: '$$y=mx+b$$', type: 'formula' }, academic)
2218
- assert.ok(
2219
- formula.includes('fontFamily=Latin Modern, STIX Two Math, Times New Roman, serif'),
2220
- 'academic formula nodes should use the theme formula stack'
2221
- )
2222
-
2223
- const xml = specToDrawioXml(
2224
- {
2225
- meta: { theme: 'tech-blue', font: { primary: 'Georgia', cjk: 'SimHei', formula: 'STIX Two Math' } },
2226
- nodes: [{ id: 'n1', label: 'Gateway' }],
2227
- edges: [],
2228
- modules: []
2229
- },
2230
- { silent: true }
2231
- )
2232
- assert.ok(xml.includes('fontFamily=Georgia'), 'meta.font must override theme typography')
2233
- assert.ok(!xml.includes('fontFamily=Inter'), 'meta.font leaves no theme font on covered surfaces')
2234
- })
2235
-
2236
- it('maps aws subnet devices to the swimlane group instead of an RDS icon', () => {
2237
- assert.strictEqual(deriveNodeIcon({ network: { vendor: 'aws', device: 'subnet' } }), null)
2238
- const style = generateNodeStyle(
2239
- { id: 'sn1', label: 'Public Subnet', network: { vendor: 'aws', device: 'subnet' } },
2240
- techBlue
2241
- )
2242
- assert.ok(style.includes('swimlane'), 'subnet nodes should render as swimlane group boxes')
2243
- assert.ok(!style.includes('rds_instance'), 'subnet must not map to the RDS icon')
2244
- })
2245
-
2246
- it('emits aws4 resource icons through the compound resourceIcon style', () => {
2247
- const style = generateNodeStyle(
2248
- { id: 'ec1', label: 'App Server', network: { vendor: 'aws', device: 'ec2' } },
2249
- techBlue
2250
- )
2251
- assert.ok(
2252
- style.includes('shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;aspect=fixed'),
2253
- 'aws4 resource-only icons need shape=resourceIcon;resIcon=<name>'
2254
- )
2255
- })
2256
-
2257
- it('keeps every SHAPE_STYLES stencil reference inside the shape catalog', () => {
2258
- for (const [type, style] of Object.entries(SHAPE_STYLES)) {
2259
- const match = /(?:^|;)shape=([^;]+)/.exec(style)
2260
- if (!match) continue
2261
- const kind = resolveShapeNameKind(match[1])
2262
- assert.ok(
2263
- kind === 'stencil' || kind === 'builtin' || kind === 'unchecked',
2264
- `SHAPE_STYLES.${type} emits unknown shape "${match[1]}" (${kind})`
2265
- )
2266
- }
2267
- })
2268
-
2269
- it('reports errors with search suggestions for unknown covered shape names', () => {
2270
- const result = validateShapeReferences({
2271
- nodes: [
2272
- { id: 'bad', label: 'Broken', icon: 'cisco.wireless.access_point' },
2273
- { id: 'good', label: 'DB', icon: 'aws.rds' },
2274
- { id: 'brand', label: 'OpenAI', icon: 'brand.openai' },
2275
- { id: 'lucide', label: 'Cache', icon: 'lucide.database-zap' },
2276
- { id: 'badLobe', label: 'Missing Lobe', icon: 'lobe.opnai' },
2277
- { id: 'badBrand', label: 'Missing Brand', icon: 'brand.not-real' },
2278
- { id: 'badLucide', label: 'Missing Lucide', icon: 'lucide.not-a-real-icon' }
2279
- ]
2280
- })
2281
- assert.equal(result.errors.length, 1, 'covered stencil names should be errors')
2282
- assert.equal(result.warnings.length, 3, 'uncovered image names should remain warnings')
2283
- assert.match(result.errors[0], /unknown shape "mxgraph\.cisco\.wireless\.access_point"/)
2284
- assert.match(result.errors[0], /Did you mean:/)
2285
- assert.match(result.warnings[0], /unknown AI icon "lobe\.opnai"/)
2286
- assert.match(result.warnings[0], /icon: lobe\.openai/)
2287
- assert.match(result.warnings[1], /unknown shape "brand\.not-real"/)
2288
- assert.match(result.warnings[2], /unknown shape "lucide\.not-a-real-icon"/)
2289
- })
2290
-
2291
- it('rejects unknown covered stencil names by default and allows an explicit downgrade', () => {
2292
- const spec = {
2293
- nodes: [
2294
- { id: 'badAws', label: 'Bad AWS', icon: 'aws.s3_bucket_magic' },
2295
- { id: 'badK8s', label: 'Bad Kubernetes', icon: 'k8s.podd' }
2296
- ]
2297
- }
2298
- assert.throws(
2299
- () => specToDrawioXml(spec, { silent: true }),
2300
- (error) => error.validationErrors?.length === 2 && /k8s\.pod/.test(error.message)
2301
- )
2302
- const result = specToDrawioXml(spec, { silent: true, returnWarnings: true, allowUnknownShapes: true })
2303
- assert.equal(typeof result.xml, 'string')
2304
- assert.equal(result.warnings.filter((warning) => warning.level === 'warning').length, 2)
2305
- })
2306
-
2307
- it('validates and renders canonical SysML and BPMN stencil icons through the existing pipeline', () => {
2308
- const spec = {
2309
- nodes: [
2310
- { id: 'port', label: 'Flow Port', icon: 'mxgraph.sysml.port' },
2311
- { id: 'task', label: 'Review', icon: 'mxgraph.bpmn.task2' }
2312
- ],
2313
- edges: [{ from: 'port', to: 'task' }],
2314
- modules: []
2315
- }
2316
-
2317
- assert.doesNotThrow(() => validateSpec(spec))
2318
- assert.deepEqual(validateShapeReferences(spec), { errors: [], warnings: [] })
2319
- const xml = specToDrawioXml(spec, { silent: true })
2320
- assert.match(xml, /shape=mxgraph\.sysml\.port/)
2321
- assert.match(xml, /shape=mxgraph\.bpmn\.task2/)
2322
- })
2323
- })
2324
-
2325
- describe('academic consistency', () => {
2326
- const academicMeta = {
2327
- profile: 'academic-paper',
2328
- theme: 'academic',
2329
- figureType: 'architecture',
2330
- title: 'Figure',
2331
- description: 'Test figure'
2332
- }
2333
-
2334
- it('exempts explicit text nodes from the verbose-label warning', () => {
2335
- const spec = {
2336
- meta: { ...academicMeta },
2337
- nodes: [
2338
- {
2339
- id: 'legend',
2340
- type: 'text',
2341
- label: 'Solid: data flow / Dashed: gradients / Dotted: control / Bold: main path / Thin: aux path'
2342
- }
2343
- ],
2344
- edges: []
2345
- }
2346
- const warnings = validateAcademicProfile(spec)
2347
- assert.ok(!warnings.some((w) => w.includes('concise')), 'text nodes must be exempt from the verbose-label rule')
2348
- })
2349
-
2350
- it('measures label verbosity by visible length, not raw TeX source length', () => {
2351
- const spec = {
2352
- meta: { ...academicMeta },
2353
- nodes: [
2354
- { id: 'math', label: String.raw`$$\mathbf{X} \in \mathbb{R}^{B \times D \times L}$$` },
2355
- { id: 'plain', label: 'A genuinely verbose plain-text label that keeps going well past forty characters' }
2356
- ],
2357
- edges: []
2358
- }
2359
- const verbose = validateAcademicProfile(spec).find((w) => w.includes('concise'))
2360
- assert.ok(verbose, 'plain long label still warns')
2361
- assert.ok(verbose.includes('"plain"'), 'plain node is named')
2362
- assert.ok(!verbose.includes('"math"'), 'TeX label with short visible text is not flagged')
2363
- })
2364
-
2365
- it('no longer emits the academic density warning (checkComplexity owns density)', () => {
2366
- const spec = {
2367
- meta: { ...academicMeta },
2368
- nodes: Array.from({ length: 30 }, (_, i) => ({ id: `n${i}`, label: `N${i}` })),
2369
- edges: []
2370
- }
2371
- assert.ok(!validateAcademicProfile(spec).some((w) => w.includes('dense')))
2372
- })
2373
-
2374
- it('warns when a wide canvas drops labels below 8pt at single-column width', () => {
2375
- const spec = {
2376
- meta: { ...academicMeta, canvas: '1600x900' },
2377
- nodes: [{ id: 'a', label: 'A', style: { fontSize: 10 } }],
2378
- edges: []
2379
- }
2380
- const sizeWarning = validateAcademicProfile(spec).find((w) => w.includes('252pt'))
2381
- assert.ok(sizeWarning, 'expected layout-size warning for 1600px canvas')
2382
- assert.ok(sizeWarning.includes('1600px'), 'mentions canvas width')
2383
- assert.ok(sizeWarning.includes('>= 51'), 'prescribes ceil(1600 / 31.5) = 51')
2384
- })
2385
-
2386
- it('keeps existing-scale canvases (<= 1500px) silent', () => {
2387
- const spec = {
2388
- meta: { ...academicMeta, canvas: '1200x800' },
2389
- nodes: [{ id: 'a', label: 'A', style: { fontSize: 10 } }],
2390
- edges: []
2391
- }
2392
- assert.ok(!validateAcademicProfile(spec).some((w) => w.includes('252pt')))
2393
- })
2394
-
2395
- it('flags unknown meta keys but accepts template metadata', () => {
2396
- const warnings = validateSchemaDrift({
2397
- meta: { title: 't', template: 'compact', canvasSize: '1200x800', gridSize: 8 },
2398
- nodes: [{ id: 'n1', label: 'L' }]
2399
- })
2400
- assert.equal(warnings.length, 1)
2401
- assert.ok(warnings[0].includes('"canvasSize"'))
2402
- assert.ok(warnings[0].includes('"gridSize"'))
2403
- assert.ok(!warnings[0].includes('"template"'))
2404
- })
2405
-
2406
- it('flags unknown node.style keys such as shape and rounded', () => {
2407
- const warnings = validateSchemaDrift({
2408
- meta: { title: 't' },
2409
- nodes: [{ id: 'n1', label: 'L', style: { shape: 'box', rounded: false, fillColor: '#FFFFFF' } }]
2410
- })
2411
- assert.equal(warnings.length, 1)
2412
- assert.ok(warnings[0].includes('"n1"'))
2413
- assert.ok(warnings[0].includes('"shape"'))
2414
- assert.ok(warnings[0].includes('"rounded"'))
2415
- assert.ok(!warnings[0].includes('"fillColor"'))
2416
- })
2417
-
2418
- it('flags unknown module keys such as bounds', () => {
2419
- const warnings = validateSchemaDrift({
2420
- meta: { title: 't' },
2421
- nodes: [{ id: 'n1', label: 'L' }],
2422
- modules: [{ id: 'm1', label: 'M', bounds: { x: 0, y: 0, width: 100, height: 100 } }]
2423
- })
2424
- assert.equal(warnings.length, 1)
2425
- assert.ok(warnings[0].includes('"m1"'))
2426
- assert.ok(warnings[0].includes('"bounds"'))
2427
- })
2428
-
2429
- it('fails strict conversion when schema drift is present', () => {
2430
- const spec = {
2431
- meta: { title: 't', canvasSize: '1200x800' },
2432
- nodes: [{ id: 'n1', label: 'L' }],
2433
- edges: []
2434
- }
2435
- assert.throws(() => specToDrawioXml(spec, { strict: true, silent: true }), /canvasSize/)
2436
- assert.doesNotThrow(() => specToDrawioXml(spec, { silent: true }))
2437
- })
2438
-
2439
- it('aggregates long-label infos and keeps the 200-char fatal per node', () => {
2440
- const longLabel = 'This label is definitely longer than fourteen characters'
2441
- const spec = {
2442
- nodes: [
2443
- { id: 'a', label: longLabel },
2444
- { id: 'b', label: longLabel },
2445
- { id: 'c', label: longLabel },
2446
- { id: 'd', label: longLabel },
2447
- { id: 'e', label: 'x'.repeat(201) }
2448
- ],
2449
- edges: []
2450
- }
2451
- const warnings = checkComplexity(spec)
2452
- const infos = warnings.filter((w) => w.level === 'info')
2453
- assert.equal(infos.length, 1)
2454
- assert.ok(infos[0].message.includes('4 node label(s)'))
2455
- assert.ok(infos[0].message.includes('"a", "b", "c" +1 more'))
2456
- const fatals = warnings.filter((w) => w.level === 'fatal')
2457
- assert.equal(fatals.length, 1)
2458
- assert.ok(fatals[0].message.includes('"e"'))
2459
- })
2460
- })
2461
-
2462
- describe('tiered layout and centered slots', () => {
2463
- it('places network tiers in North-South rows', () => {
2464
- const spec = {
2465
- meta: { layout: 'tiered' },
2466
- nodes: [
2467
- { id: 'net', label: 'Internet', network: { role: 'internet' } },
2468
- { id: 'fw', label: 'Edge FW', network: { role: 'firewall' } },
2469
- { id: 'core', label: 'Core SW', network: { role: 'core' } },
2470
- { id: 'dist', label: 'Dist SW', network: { role: 'distribution' } },
2471
- { id: 'acc1', label: 'Access 1', network: { role: 'access' } },
2472
- { id: 'acc2', label: 'Access 2', network: { role: 'access' } },
2473
- { id: 'srv', label: 'App Server', network: { role: 'server' } }
2474
- ],
2475
- edges: []
2476
- }
2477
- const layout = calculateLayout(spec, loadTheme('tech-blue'))
2478
- const y = (id) => layout.positions.get(id).y
2479
- assert.ok(y('net') < y('fw'))
2480
- assert.ok(y('fw') < y('core'))
2481
- assert.ok(y('core') < y('dist'))
2482
- assert.ok(y('dist') < y('acc1'))
2483
- assert.equal(y('acc1'), y('acc2'))
2484
- assert.ok(y('acc1') < y('srv'))
2485
- })
2486
-
2487
- it('keeps explicitly positioned nodes untouched in tiered layout', () => {
2488
- const spec = {
2489
- meta: { layout: 'tiered' },
2490
- nodes: [
2491
- {
2492
- id: 'pinned',
2493
- label: 'Pinned',
2494
- bounds: { x: 500, y: 500, width: 100, height: 40 },
2495
- network: { role: 'core' }
2496
- },
2497
- { id: 'auto', label: 'Auto', network: { role: 'access' } }
2498
- ],
2499
- edges: []
2500
- }
2501
- const layout = calculateLayout(spec, loadTheme('tech-blue'))
2502
- assert.deepEqual(layout.positions.get('pinned'), { x: 500, y: 500, width: 100, height: 40 })
2503
- })
2504
-
2505
- it('validateSpec accepts tiered and still rejects unknown layouts', () => {
2506
- assert.doesNotThrow(() =>
2507
- validateSpec({ meta: { layout: 'tiered' }, nodes: [{ id: 'a', label: 'A' }], edges: [], modules: [] })
2508
- )
2509
- assert.throws(() =>
2510
- validateSpec({ meta: { layout: 'diagonal' }, nodes: [{ id: 'a', label: 'A' }], edges: [], modules: [] })
2511
- )
2512
- })
2513
-
2514
- it('centers the connection point when a face has a single edge', () => {
2515
- const spec = {
2516
- meta: { layout: 'horizontal' },
2517
- modules: [{ id: 'm1', label: 'M1' }],
2518
- nodes: [
2519
- { id: 'a', label: 'A', module: 'm1' },
2520
- { id: 'b', label: 'B' }
2521
- ],
2522
- edges: [{ from: 'a', to: 'b' }]
2523
- }
2524
- const xml = specToDrawioXml(spec, { silent: true })
2525
- assert.ok(xml.includes('exitY=0.5'), 'single-edge source face centers at 0.5')
2526
- assert.ok(xml.includes('entryY=0.5'), 'single-edge target face centers at 0.5')
2527
- assert.ok(!xml.includes('exitY=0.25'))
2528
- })
2529
-
2530
- it('distributes multiple edges on a shared face across slots', () => {
2531
- const spec = {
2532
- meta: { layout: 'horizontal' },
2533
- nodes: [
2534
- { id: 'a', label: 'A', position: { x: 100, y: 200 } },
2535
- { id: 'b', label: 'B', position: { x: 400, y: 100 } },
2536
- { id: 'c', label: 'C', position: { x: 400, y: 300 } }
2537
- ],
2538
- edges: [
2539
- { from: 'a', to: 'b' },
2540
- { from: 'a', to: 'c' }
2541
- ]
2542
- }
2543
- const xml = specToDrawioXml(spec, { silent: true })
2544
- // Slots keep the legacy 0.25-first order but dodge to the next slot that
2545
- // honors the 30px corridor rule (0.5 on a 60px face is only 15px away).
2546
- assert.ok(xml.includes('exitY=0.25'))
2547
- assert.ok(xml.includes('exitY=0.75'))
2548
- })
2549
- })
2550
-
2551
- describe('layout quality metrics', () => {
2552
- it('counts an edge cutting through an unrelated node', () => {
2553
- const spec = {
2554
- meta: { layout: 'horizontal' },
2555
- nodes: [
2556
- { id: 'a', label: 'A', bounds: { x: 40, y: 100, width: 80, height: 40 } },
2557
- { id: 'mid', label: 'Mid', bounds: { x: 240, y: 100, width: 80, height: 40 } },
2558
- { id: 'c', label: 'C', bounds: { x: 440, y: 100, width: 80, height: 40 } }
2559
- ],
2560
- edges: [{ from: 'a', to: 'c' }]
2561
- }
2562
- const metrics = computeLayoutQualityMetrics(spec)
2563
- assert.equal(metrics.edgeNodeCrossings, 1)
2564
- assert.equal(metrics.edgeEdgeCrossings, 0)
2565
- assert.equal(metrics.totalEdgeLength, 320)
2566
- })
2567
-
2568
- it('counts crossing edge pairs and stays silent for clean layouts', () => {
2569
- const crossing = {
2570
- meta: { layout: 'horizontal' },
2571
- nodes: [
2572
- { id: 'a', label: 'A', bounds: { x: 40, y: 40, width: 80, height: 40 } },
2573
- { id: 'b', label: 'B', bounds: { x: 40, y: 240, width: 80, height: 40 } },
2574
- { id: 'c', label: 'C', bounds: { x: 440, y: 40, width: 80, height: 40 } },
2575
- { id: 'd', label: 'D', bounds: { x: 440, y: 240, width: 80, height: 40 } }
2576
- ],
2577
- edges: [
2578
- { from: 'a', to: 'd' },
2579
- { from: 'b', to: 'c' }
2580
- ]
2581
- }
2582
- assert.equal(computeLayoutQualityMetrics(crossing).edgeEdgeCrossings, 1)
2583
-
2584
- const clean = {
2585
- meta: { layout: 'horizontal' },
2586
- nodes: [
2587
- { id: 'a', label: 'A', bounds: { x: 40, y: 40, width: 80, height: 40 } },
2588
- { id: 'b', label: 'B', bounds: { x: 240, y: 40, width: 80, height: 40 } }
2589
- ],
2590
- edges: [{ from: 'a', to: 'b' }]
2591
- }
2592
- const metrics = computeLayoutQualityMetrics(clean)
2593
- assert.equal(metrics.edgeNodeCrossings, 0)
2594
- assert.equal(metrics.edgeEdgeCrossings, 0)
2595
- assert.equal(metrics.totalEdgeLength, 120)
2596
- })
2597
- })
2598
-
2599
- describe('straight orthogonal routing', () => {
2600
- function extractEdges(xml) {
2601
- const edges = []
2602
- const re = /<mxCell [^>]*style="([^"]*)"[^>]*edge="1"[^>]*>/g
2603
- let match
2604
- while ((match = re.exec(xml)) !== null) {
2605
- const style = match[1]
2606
- const get = (key) => {
2607
- const found = new RegExp(`${key}=(-?[0-9.]+)`).exec(style)
2608
- return found ? Number(found[1]) : undefined
2609
- }
2610
- edges.push({
2611
- style,
2612
- exitX: get('exitX'),
2613
- exitY: get('exitY'),
2614
- entryX: get('entryX'),
2615
- entryY: get('entryY')
2616
- })
2617
- }
2618
- return edges
2619
- }
2620
-
2621
- it('aligns a vertical edge between different-width boxes into one straight line', () => {
2622
- const spec = {
2623
- meta: {},
2624
- nodes: [
2625
- { id: 'wide', label: 'Wide', bounds: { x: 80, y: 40, width: 880, height: 64 } },
2626
- { id: 'narrow', label: 'Narrow', bounds: { x: 120, y: 280, width: 344, height: 64 } }
2627
- ],
2628
- edges: [{ from: 'narrow', to: 'wide' }]
2629
- }
2630
- const xml = specToDrawioXml(spec, { silent: true })
2631
- const [edge] = extractEdges(xml)
2632
- const absExit = 120 + edge.exitX * 344
2633
- const absEntry = 80 + edge.entryX * 880
2634
- assert.ok(Math.abs(absExit - absEntry) < 0.1, `expected collinear, delta=${Math.abs(absExit - absEntry)}`)
2635
- assert.equal(absExit, 120 + 344 / 2)
2636
- assert.equal(edge.exitY, 0)
2637
- assert.equal(edge.entryY, 1)
2638
- })
2639
-
2640
- it('keeps multiple edges into a wide bar aligned with each counterpart center', () => {
2641
- const spec = {
2642
- meta: {},
2643
- nodes: [
2644
- { id: 'bar', label: 'Bar', bounds: { x: 80, y: 400, width: 880, height: 56 } },
2645
- { id: 'a', label: 'A', bounds: { x: 120, y: 560, width: 160, height: 48 } },
2646
- { id: 'b', label: 'B', bounds: { x: 600, y: 560, width: 160, height: 48 } }
2647
- ],
2648
- edges: [
2649
- { from: 'a', to: 'bar' },
2650
- { from: 'b', to: 'bar' }
2651
- ]
2652
- }
2653
- const xml = specToDrawioXml(spec, { silent: true })
2654
- const edges = extractEdges(xml)
2655
- const coords = []
2656
- for (const [index, source] of [
2657
- [0, { x: 120, width: 160 }],
2658
- [1, { x: 600, width: 160 }]
2659
- ]) {
2660
- const edge = edges[index]
2661
- const absExit = source.x + edge.exitX * source.width
2662
- const absEntry = 80 + edge.entryX * 880
2663
- assert.ok(Math.abs(absExit - absEntry) < 0.1, `edge ${index} not collinear`)
2664
- assert.equal(absExit, source.x + source.width / 2)
2665
- coords.push(absExit)
2666
- }
2667
- assert.ok(Math.abs(coords[0] - coords[1]) >= 30)
2668
- })
2669
-
2670
- it('separates a bidirectional pair into two parallel straight lines', () => {
2671
- const spec = {
2672
- meta: {},
2673
- nodes: [
2674
- { id: 'top', label: 'Top', bounds: { x: 100, y: 0, width: 300, height: 60 } },
2675
- { id: 'bottom', label: 'Bottom', bounds: { x: 100, y: 240, width: 300, height: 60 } }
2676
- ],
2677
- edges: [
2678
- { from: 'top', to: 'bottom' },
2679
- { from: 'bottom', to: 'top' }
2680
- ]
2681
- }
2682
- const xml = specToDrawioXml(spec, { silent: true })
2683
- const edges = extractEdges(xml)
2684
- const downCoord = 100 + edges[0].exitX * 300
2685
- const downEntry = 100 + edges[0].entryX * 300
2686
- const upCoord = 100 + edges[1].exitX * 300
2687
- const upEntry = 100 + edges[1].entryX * 300
2688
- assert.ok(Math.abs(downCoord - downEntry) < 0.1, 'downward edge must stay straight')
2689
- assert.ok(Math.abs(upCoord - upEntry) < 0.1, 'upward edge must stay straight')
2690
- assert.ok(Math.abs(downCoord - upCoord) >= 29.9, `parallel pair too close: ${Math.abs(downCoord - upCoord)}`)
2691
- })
2692
-
2693
- it('falls back to face slots when no collinear interval exists', () => {
2694
- const spec = {
2695
- meta: {},
2696
- nodes: [
2697
- { id: 'a', label: 'A', bounds: { x: 0, y: 0, width: 100, height: 60 } },
2698
- { id: 'b', label: 'B', bounds: { x: 300, y: 200, width: 100, height: 60 } }
2699
- ],
2700
- edges: [{ from: 'a', to: 'b' }]
2701
- }
2702
- const xml = specToDrawioXml(spec, { silent: true })
2703
- const [edge] = extractEdges(xml)
2704
- assert.equal(edge.exitX, 1)
2705
- assert.equal(edge.exitY, 0.5)
2706
- assert.equal(edge.entryX, 0)
2707
- assert.equal(edge.entryY, 0.5)
2708
- })
2709
-
2710
- it('keeps explicit user connection points untouched', () => {
2711
- const spec = {
2712
- meta: {},
2713
- nodes: [
2714
- { id: 'wide', label: 'Wide', bounds: { x: 80, y: 40, width: 880, height: 64 } },
2715
- { id: 'narrow', label: 'Narrow', bounds: { x: 120, y: 280, width: 344, height: 64 } }
2716
- ],
2717
- edges: [
2718
- {
2719
- from: 'narrow',
2720
- to: 'wide',
2721
- style: { exitX: 0.25, exitY: 0, entryX: 0.75, entryY: 1, exitDx: 0, exitDy: 0, entryDx: 0, entryDy: 0 }
2722
- }
2723
- ]
2724
- }
2725
- const xml = specToDrawioXml(spec, { silent: true })
2726
- const [edge] = extractEdges(xml)
2727
- assert.equal(edge.exitX, 0.25)
2728
- assert.equal(edge.entryX, 0.75)
2729
- })
2730
-
2731
- it('routes overlapping wide/narrow boxes vertically instead of through their bodies', () => {
2732
- const spec = {
2733
- meta: {},
2734
- nodes: [
2735
- { id: 'browser', label: 'Browser', bounds: { x: 80, y: 40, width: 880, height: 64 } },
2736
- { id: 'web', label: 'Web', bounds: { x: 600, y: 280, width: 360, height: 64 } }
2737
- ],
2738
- edges: [{ from: 'browser', to: 'web' }]
2739
- }
2740
- const { warnings } = specToDrawioXml(spec, { silent: true, returnWarnings: true })
2741
- const xml = specToDrawioXml(spec, { silent: true })
2742
- const [edge] = extractEdges(xml)
2743
- assert.equal(edge.exitY, 1, 'edge should leave the bottom face')
2744
- assert.equal(edge.entryY, 0, 'edge should enter the top face')
2745
- const segmentWarnings = warnings.filter((w) => String(w.message || w).includes('short final segment'))
2746
- assert.equal(segmentWarnings.length, 0)
2747
- })
2748
-
2749
- it('warns when explicit points bend an edge that could be straight', () => {
2750
- const spec = {
2751
- meta: {},
2752
- nodes: [
2753
- { id: 'top', label: 'Top', bounds: { x: 100, y: 0, width: 300, height: 60 } },
2754
- { id: 'bottom', label: 'Bottom', bounds: { x: 100, y: 240, width: 300, height: 60 } }
2755
- ],
2756
- edges: [
2757
- {
2758
- from: 'top',
2759
- to: 'bottom',
2760
- style: { exitX: 0.2, exitY: 1, entryX: 0.8, entryY: 0, exitDx: 0, exitDy: 0, entryDx: 0, entryDy: 0 }
2761
- }
2762
- ]
2763
- }
2764
- const { warnings } = specToDrawioXml(spec, { silent: true, returnWarnings: true })
2765
- const bendWarnings = warnings.filter((w) => String(w.message || w).includes('off a straight vertical line'))
2766
- assert.equal(bendWarnings.length, 1)
2767
- })
2768
- })
2769
-
2770
- describe('replicate quality gates', () => {
2771
- it('forces plain text nodes transparent even when the spec asks for white', () => {
2772
- const spec = {
2773
- meta: {},
2774
- nodes: [
2775
- {
2776
- id: 'note',
2777
- label: 'note',
2778
- type: 'text',
2779
- bounds: { x: 0, y: 0, width: 120, height: 40 },
2780
- style: { fillColor: '#FFFFFF', strokeColor: '#FF0000' }
2781
- }
2782
- ],
2783
- edges: []
2784
- }
2785
- const { xml, warnings } = specToDrawioXml(spec, { silent: true, returnWarnings: true })
2786
- const styleMatch = /<mxCell[^>]*value="note"[^>]*style="([^"]*)"/.exec(xml)
2787
- assert.ok(styleMatch, 'text cell should exist')
2788
- assert.match(styleMatch[1], /fillColor=none/)
2789
- assert.match(styleMatch[1], /strokeColor=none/)
2790
- assert.match(styleMatch[1], /labelBackgroundColor=none/)
2791
- assert.ok(!styleMatch[1].includes('overflow=hidden'), 'text nodes must not clip their content')
2792
- const overrideWarnings = warnings.filter((w) => String(w.message || w).includes('always render transparent'))
2793
- assert.equal(overrideWarnings.length, 2)
2794
- })
2795
-
2796
- it('warns when text bounds are smaller than the content estimate', () => {
2797
- const spec = {
2798
- meta: {},
2799
- nodes: [
2800
- {
2801
- id: 'clipped',
2802
- label: '过程数据报表汇总说明',
2803
- type: 'text',
2804
- bounds: { x: 0, y: 0, width: 40, height: 16 }
2805
- }
2806
- ],
2807
- edges: []
2808
- }
2809
- const { warnings } = specToDrawioXml(spec, { silent: true, returnWarnings: true })
2810
- const clipWarnings = warnings.filter((w) => String(w.message || w).includes('smaller than the estimated content size'))
2811
- assert.equal(clipWarnings.length, 1)
2812
- })
2813
-
2814
- it('adds a bold default endSize to default (open) and explicit block arrows, honoring overrides', () => {
2815
- const theme = loadTheme('tech-blue')
2816
- const defaultStyle = generateConnectorStyle({ from: 'a', to: 'b' }, theme)
2817
- assert.match(defaultStyle, /endArrow=open/)
2818
- assert.match(defaultStyle, /endSize=12/)
2819
- const blockStyle = generateConnectorStyle({ from: 'a', to: 'b', style: { endArrow: 'block' } }, theme)
2820
- assert.match(blockStyle, /endArrow=block/)
2821
- assert.match(blockStyle, /endSize=12/)
2822
- const overridden = generateConnectorStyle({ from: 'a', to: 'b', style: { endSize: 6 } }, theme)
2823
- assert.match(overridden, /endSize=6/)
2824
- })
2825
-
2826
- it('converts label newlines to <br> so vertical CJK labels survive XML attributes', () => {
2827
- const spec = {
2828
- meta: {},
2829
- nodes: [
2830
- { id: 'v', label: '可\n视\n化', type: 'text', bounds: { x: 0, y: 0, width: 32, height: 80 } },
2831
- { id: 'a', label: 'A', bounds: { x: 100, y: 200, width: 80, height: 40 } },
2832
- { id: 'b', label: 'B', bounds: { x: 100, y: 400, width: 80, height: 40 } }
2833
- ],
2834
- edges: [{ from: 'a', to: 'b', label: '上\n位' }]
2835
- }
2836
- const xml = specToDrawioXml(spec, { silent: true })
2837
- assert.ok(xml.includes('可&lt;br&gt;视&lt;br&gt;化'), 'node label newlines become <br>')
2838
- assert.ok(xml.includes('上&lt;br&gt;位'), 'edge label newlines become <br>')
2839
- })
2840
-
2841
- it('keeps math labels free of injected <br> tags', () => {
2842
- const spec = {
2843
- meta: {},
2844
- nodes: [{ id: 'f', label: '$$a=b\nc=d$$', type: 'formula', bounds: { x: 0, y: 0, width: 120, height: 60 } }],
2845
- edges: []
2846
- }
2847
- const xml = specToDrawioXml(spec, { silent: true })
2848
- assert.ok(!xml.includes('&lt;br&gt;'), 'math labels keep raw newlines')
2849
- })
2850
-
2851
- it('reports floating edges and arrow-shape connectors as validateXml warnings', () => {
2852
- const xml =
2853
- '<mxGraphModel><root>' +
2854
- '<mxCell id="0"/>' +
2855
- '<mxCell id="1" parent="0"/>' +
2856
- '<mxCell id="2" value="A" style="rounded=1" vertex="1" parent="1"><mxGeometry x="0" y="0" width="80" height="40" as="geometry"/></mxCell>' +
2857
- '<mxCell id="3" value="" style="edgeStyle=orthogonalEdgeStyle" edge="1" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell>' +
2858
- '<mxCell id="4" value="" style="shape=singleArrow;fillColor=#000000" vertex="1" parent="1"><mxGeometry x="100" y="0" width="60" height="20" as="geometry"/></mxCell>' +
2859
- '<mxCell id="5" value="t" style="text;html=1;fillColor=#FFFFFF" vertex="1" parent="1"><mxGeometry x="0" y="100" width="60" height="20" as="geometry"/></mxCell>' +
2860
- '</root></mxGraphModel>'
2861
- const result = validateXml(xml)
2862
- assert.equal(result.valid, true)
2863
- const floating = result.warnings.filter((w) => w.includes('not bound to nodes'))
2864
- const arrowShapes = result.warnings.filter((w) => w.includes('arrow shape'))
2865
- const whiteText = result.warnings.filter((w) => w.includes('white background'))
2866
- assert.equal(floating.length, 1)
2867
- assert.equal(arrowShapes.length, 1)
2868
- assert.equal(whiteText.length, 1)
2869
- })
2870
-
2871
- it('flags edge labels that sit on their own connector', () => {
2872
- const spec = {
2873
- meta: {},
2874
- nodes: [
2875
- { id: 'a', label: 'A', bounds: { x: 100, y: 0, width: 120, height: 40 } },
2876
- { id: 'b', label: 'B', bounds: { x: 100, y: 300, width: 120, height: 40 } }
2877
- ],
2878
- edges: [{ from: 'a', to: 'b', label: '很长的水平标签文字', labelOffset: { x: 0, y: 0 } }]
2879
- }
2880
- const { warnings } = specToDrawioXml(spec, { silent: true, returnWarnings: true })
2881
- const onLine = warnings.filter((w) => String(w.message || w).includes('sits on its own connector'))
2882
- assert.equal(onLine.length, 1)
2883
- })
2884
-
2885
- it('accepts none as an explicit transparent module fill', () => {
2886
- const spec = {
2887
- meta: {},
2888
- modules: [{ id: 'm', label: 'M', style: { fillColor: 'none', strokeColor: '#000000' } }],
2889
- nodes: [{ id: 'a', label: 'A', module: 'm', bounds: { x: 0, y: 0, width: 80, height: 40 } }],
2890
- edges: []
2891
- }
2892
- const { warnings } = specToDrawioXml(spec, { silent: true, returnWarnings: true })
2893
- const colorWarnings = warnings.filter((w) => String(w.message || w).includes('Invalid color "none"'))
2894
- assert.equal(colorWarnings.length, 0)
2895
- })
2896
- })
2897
-
2898
- // ============================================================================
2899
- // Font ladder, content-aware sizing, class shrink, and print gate
2900
- // ============================================================================
2901
-
2902
- describe('font ladder and fit system', () => {
2903
- const academicMeta = {
2904
- profile: 'academic-paper',
2905
- figureType: 'architecture',
2906
- theme: 'academic',
2907
- title: 'T',
2908
- description: 'D'
2909
- }
2910
-
2911
- it('materializes the ladder (module 22 / node 20 / edge 18) and keeps author YAML untouched', () => {
2912
- const spec = {
2913
- meta: { ...academicMeta },
2914
- modules: [{ id: 'm1', label: '服务接口层' }],
2915
- nodes: [
2916
- { id: 'a', label: '训练服务\n独立子进程 · GPU绑定', type: 'service', module: 'm1' },
2917
- { id: 'b', label: 'Training API', type: 'service', module: 'm1' }
2918
- ],
2919
- edges: [{ from: 'a', to: 'b', label: '操作请求' }]
2920
- }
2921
- const xml = specToDrawioXml(spec, { silent: true })
2922
- assert.ok(xml.includes('fontSize=22'), 'module titles should use the 22px ladder value')
2923
- assert.ok(xml.includes('fontSize=20'), 'node labels should use the 20px ladder value')
2924
- assert.ok(xml.includes('fontSize=18'), 'edge labels should use the 18px ladder value')
2925
- assert.strictEqual(spec.nodes[0].style, undefined, 'font planning must not mutate the author spec')
2926
- })
2927
-
2928
- it('grows preset boxes to fit long labels only in content-aware mode', () => {
2929
- const label = 'APScheduler 单实例(周期触发 · 任务登记 · 作业库持久化)'
2930
- const grown = getNodeSize(null, 'service', label, { contentAware: true, fontSize: 20 })
2931
- assert.ok(grown.width > 400, `long CJK label should grow the box, got ${grown.width}`)
2932
- const legacy = getNodeSize(null, 'service', label)
2933
- assert.deepStrictEqual(legacy, { width: 120, height: 60 }, 'without options the preset is unchanged')
2934
- const operator = getNodeSize(null, 'operator', 'max', { contentAware: true, fontSize: 20 })
2935
- assert.deepStrictEqual(operator, { width: 32, height: 32 }, 'operators keep their size-coded preset')
2936
- })
2937
-
2938
- it('shrinks a class uniformly to the tightest explicit bounds', () => {
2939
- const spec = {
2940
- meta: { ...academicMeta },
2941
- nodes: [
2942
- { id: 'n1', label: '统一调度层核心组件', type: 'service', bounds: { x: 0, y: 0, width: 180, height: 48 } },
2943
- { id: 'n2', label: '短标签', type: 'service', bounds: { x: 0, y: 100, width: 300, height: 48 } }
2944
- ],
2945
- edges: []
2946
- }
2947
- const xml = specToDrawioXml(spec, { silent: true })
2948
- const sizes = [...xml.matchAll(/fontSize=(\d+)/g)].map((m) => Number(m[1]))
2949
- assert.deepStrictEqual(sizes, [18, 18], 'both class members should share the shrunk size')
2950
- })
2951
-
2952
- it('clamps the shrink at the floor and reports the leftover overflow', () => {
2953
- const spec = {
2954
- meta: { ...academicMeta },
2955
- nodes: [
2956
- { id: 'x', label: '超长中文标签放不下这个盒子的情况', type: 'service', bounds: { x: 0, y: 0, width: 90, height: 30 } }
2957
- ],
2958
- edges: []
2959
- }
2960
- const { xml, warnings } = specToDrawioXml(spec, { returnWarnings: true, silent: true })
2961
- assert.ok(xml.includes('fontSize=12'), 'shrink should stop at the 12px floor')
2962
- assert.ok(
2963
- warnings.some((w) => String(w.message).includes('label needs')),
2964
- 'validateLabelFit should report the overflow left at the floor'
2965
- )
2966
- })
2967
-
2968
- it('keeps explicit style.fontSize overrides on nodes and edges', () => {
2969
- const spec = {
2970
- meta: { theme: 'tech-blue' },
2971
- nodes: [
2972
- { id: 'e1', label: '固定字号', type: 'service', style: { fontSize: 9 } },
2973
- { id: 'e2', label: 'B', type: 'service' }
2974
- ],
2975
- edges: [{ from: 'e1', to: 'e2', label: 'flow', style: { fontSize: 10 } }]
2976
- }
2977
- const xml = specToDrawioXml(spec, { silent: true })
2978
- assert.ok(xml.includes('fontSize=9;'), 'node override should survive font planning')
2979
- assert.ok(xml.includes('fontSize=10;'), 'edge override should survive font planning')
2980
- })
2981
-
2982
- it('meta.print drives the print-readability warning', () => {
2983
- const spec = {
2984
- meta: { ...academicMeta, canvas: '1900x900', print: { target: 'cn-thesis' } },
2985
- modules: [],
2986
- nodes: [{ id: 'p1', label: '节点', type: 'service' }],
2987
- edges: []
2988
- }
2989
- const { warnings } = specToDrawioXml(spec, { returnWarnings: true, silent: true })
2990
- const printWarning = warnings.map((w) => String(w.message)).find((m) => m.includes('prints at'))
2991
- assert.ok(printWarning, 'wide canvas with cn-thesis target should warn')
2992
- assert.ok(printWarning.includes('440'), 'warning should use the cn-thesis 440pt width')
2993
- assert.ok(printWarning.includes('9pt floor'), 'warning should use the cn-thesis 9pt floor')
2994
- })
2995
-
2996
- it('validates meta.print shape', () => {
2997
- const base = { nodes: [{ id: 'n1', label: 'Note' }], edges: [], modules: [] }
2998
- assert.throws(
2999
- () => validateSpec({ ...base, meta: { print: { target: 'a4' } } }),
3000
- /Invalid meta\.print\.target/
3001
- )
3002
- assert.throws(
3003
- () => validateSpec({ ...base, meta: { print: { target: 'cn-thesis', widthPt: -1 } } }),
3004
- /meta\.print\.widthPt must be a positive number/
3005
- )
3006
- assert.throws(() => validateSpec({ ...base, meta: { print: {} } }), /meta\.print requires target or widthPt/)
3007
- })
3008
-
3009
- it('no longer warns about 8-10pt labels on the academic profile', () => {
3010
- const spec = {
3011
- meta: { ...academicMeta },
3012
- modules: [],
3013
- nodes: [{ id: 'n1', label: 'Node', type: 'service', style: { fontSize: 20 } }],
3014
- edges: []
3015
- }
3016
- const { warnings } = specToDrawioXml(spec, { returnWarnings: true, silent: true })
3017
- assert.ok(
3018
- warnings.every((w) => !String(w.message).includes('8-10pt')),
3019
- 'the misleading 8-10pt gate should be gone'
3020
- )
3021
- })
3022
- })