create-yss-spec 2.1.4 → 2.1.6

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 (3324) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  4. package/template/.agents/skills/product-design-prototype/SKILL.md +6 -2
  5. package/template/.agents/skills/prototype-review/SKILL.md +6 -2
  6. package/template/.agents/skills/wireframe-prototype/SKILL.md +5 -1
  7. package/template/.agents/skills/yss-audit-log/references/source-index.md +4 -3
  8. package/template/.agents/skills/yss-cache/references/source-index.md +4 -3
  9. package/template/.agents/skills/yss-components/references/frontend-docs.md +1 -1
  10. package/template/.agents/skills/yss-db2mybatis/SKILL.md +6 -5
  11. package/template/.agents/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  12. package/template/.agents/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  13. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  14. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  15. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  16. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  17. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  18. package/template/.agents/skills/yss-design-system/SKILL.md +6 -5
  19. package/template/.agents/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  20. package/template/.agents/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  21. package/template/.agents/skills/yss-dictionary/references/source-index.md +25 -25
  22. package/template/.agents/skills/yss-distributed-id/references/source-index.md +6 -6
  23. package/template/.agents/skills/yss-dto/references/source-index.md +7 -4
  24. package/template/.agents/skills/yss-excel-mvc/references/source-index.md +3 -3
  25. package/template/.agents/skills/yss-exception/references/source-index.md +3 -3
  26. package/template/.agents/skills/yss-hook/references/frontend-docs.md +1 -1
  27. package/template/.agents/skills/yss-jdbc/references/source-index.md +3 -3
  28. package/template/.agents/skills/yss-log/references/source-index.md +3 -3
  29. package/template/.agents/skills/yss-mybatis/references/source-index.md +3 -3
  30. package/template/.agents/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  31. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +4 -2
  32. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  33. package/template/.agents/skills/yss-prototype-stage/SKILL.md +40 -0
  34. package/template/.agents/skills/yss-resilience4j/references/source-index.md +3 -3
  35. package/template/.agents/skills/yss-router/references/router-contract.yaml +5 -2
  36. package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +3 -0
  37. package/template/.agents/skills/yss-security-algorithm/references/source-index.md +3 -3
  38. package/template/.agents/skills/yss-source-index/SKILL.md +3 -3
  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-valuation/references/source-index.md +3 -3
  48. package/template/.agents/skills/yss-variable/references/source-index.md +6 -34
  49. package/template/.agents/skills/yss-web-controller/SKILL.md +4 -4
  50. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  51. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  52. package/template/.claude/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  53. package/template/.claude/skills/product-design-prototype/SKILL.md +6 -2
  54. package/template/.claude/skills/prototype-review/SKILL.md +6 -2
  55. package/template/.claude/skills/wireframe-prototype/SKILL.md +5 -1
  56. package/template/.claude/skills/yss-audit-log/references/source-index.md +4 -3
  57. package/template/.claude/skills/yss-cache/references/source-index.md +4 -3
  58. package/template/.claude/skills/yss-components/references/frontend-docs.md +1 -1
  59. package/template/.claude/skills/yss-db2mybatis/SKILL.md +6 -5
  60. package/template/.claude/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  61. package/template/.claude/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  62. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  63. package/template/.claude/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  64. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  65. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  66. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  67. package/template/.claude/skills/yss-design-system/SKILL.md +6 -5
  68. package/template/.claude/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  69. package/template/.claude/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  70. package/template/.claude/skills/yss-dictionary/references/source-index.md +25 -25
  71. package/template/.claude/skills/yss-distributed-id/references/source-index.md +6 -6
  72. package/template/.claude/skills/yss-dto/references/source-index.md +7 -4
  73. package/template/.claude/skills/yss-excel-mvc/references/source-index.md +3 -3
  74. package/template/.claude/skills/yss-exception/references/source-index.md +3 -3
  75. package/template/.claude/skills/yss-hook/references/frontend-docs.md +1 -1
  76. package/template/.claude/skills/yss-jdbc/references/source-index.md +3 -3
  77. package/template/.claude/skills/yss-log/references/source-index.md +3 -3
  78. package/template/.claude/skills/yss-mybatis/references/source-index.md +3 -3
  79. package/template/.claude/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  80. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +4 -2
  81. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  82. package/template/.claude/skills/yss-prototype-stage/SKILL.md +40 -0
  83. package/template/.claude/skills/yss-resilience4j/references/source-index.md +3 -3
  84. package/template/.claude/skills/yss-router/references/router-contract.yaml +5 -2
  85. package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +3 -0
  86. package/template/.claude/skills/yss-security-algorithm/references/source-index.md +3 -3
  87. package/template/.claude/skills/yss-source-index/SKILL.md +3 -3
  88. package/template/.claude/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  89. package/template/.claude/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  90. package/template/.claude/skills/yss-taskflow/references/source-index.md +3 -3
  91. package/template/.claude/skills/yss-ui/references/frontend-docs.md +1 -1
  92. package/template/.claude/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  93. package/template/.claude/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  94. package/template/.claude/skills/yss-userinfo/references/source-index.md +3 -3
  95. package/template/.claude/skills/yss-validation/references/source-index.md +5 -24
  96. package/template/.claude/skills/yss-valuation/references/source-index.md +3 -3
  97. package/template/.claude/skills/yss-variable/references/source-index.md +6 -34
  98. package/template/.claude/skills/yss-web-controller/SKILL.md +4 -4
  99. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  100. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  101. package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  102. package/template/.codex/skills/product-design-prototype/SKILL.md +6 -2
  103. package/template/.codex/skills/prototype-review/SKILL.md +6 -2
  104. package/template/.codex/skills/wireframe-prototype/SKILL.md +5 -1
  105. package/template/.codex/skills/yss-audit-log/references/source-index.md +4 -3
  106. package/template/.codex/skills/yss-cache/references/source-index.md +4 -3
  107. package/template/.codex/skills/yss-components/references/frontend-docs.md +1 -1
  108. package/template/.codex/skills/yss-db2mybatis/SKILL.md +6 -5
  109. package/template/.codex/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  110. package/template/.codex/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  111. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  112. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  113. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  114. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  115. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  116. package/template/.codex/skills/yss-design-system/SKILL.md +6 -5
  117. package/template/.codex/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  118. package/template/.codex/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  119. package/template/.codex/skills/yss-dictionary/references/source-index.md +25 -25
  120. package/template/.codex/skills/yss-distributed-id/references/source-index.md +6 -6
  121. package/template/.codex/skills/yss-dto/references/source-index.md +7 -4
  122. package/template/.codex/skills/yss-excel-mvc/references/source-index.md +3 -3
  123. package/template/.codex/skills/yss-exception/references/source-index.md +3 -3
  124. package/template/.codex/skills/yss-hook/references/frontend-docs.md +1 -1
  125. package/template/.codex/skills/yss-jdbc/references/source-index.md +3 -3
  126. package/template/.codex/skills/yss-log/references/source-index.md +3 -3
  127. package/template/.codex/skills/yss-mybatis/references/source-index.md +3 -3
  128. package/template/.codex/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  129. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +4 -2
  130. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  131. package/template/.codex/skills/yss-prototype-stage/SKILL.md +40 -0
  132. package/template/.codex/skills/yss-resilience4j/references/source-index.md +3 -3
  133. package/template/.codex/skills/yss-router/references/router-contract.yaml +5 -2
  134. package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +3 -0
  135. package/template/.codex/skills/yss-security-algorithm/references/source-index.md +3 -3
  136. package/template/.codex/skills/yss-source-index/SKILL.md +3 -3
  137. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  138. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  139. package/template/.codex/skills/yss-taskflow/references/source-index.md +3 -3
  140. package/template/.codex/skills/yss-ui/references/frontend-docs.md +1 -1
  141. package/template/.codex/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  142. package/template/.codex/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  143. package/template/.codex/skills/yss-userinfo/references/source-index.md +3 -3
  144. package/template/.codex/skills/yss-validation/references/source-index.md +5 -24
  145. package/template/.codex/skills/yss-valuation/references/source-index.md +3 -3
  146. package/template/.codex/skills/yss-variable/references/source-index.md +6 -34
  147. package/template/.codex/skills/yss-web-controller/SKILL.md +4 -4
  148. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  149. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  150. package/template/.github/workflows/template-node-tooling.yml +59 -0
  151. package/template/.hermes/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  152. package/template/.hermes/skills/product-design-prototype/SKILL.md +6 -2
  153. package/template/.hermes/skills/prototype-review/SKILL.md +6 -2
  154. package/template/.hermes/skills/wireframe-prototype/SKILL.md +5 -1
  155. package/template/.hermes/skills/yss-audit-log/references/source-index.md +4 -3
  156. package/template/.hermes/skills/yss-cache/references/source-index.md +4 -3
  157. package/template/.hermes/skills/yss-components/references/frontend-docs.md +1 -1
  158. package/template/.hermes/skills/yss-db2mybatis/SKILL.md +6 -5
  159. package/template/.hermes/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  160. package/template/.hermes/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  161. package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  162. package/template/.hermes/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  163. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  164. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  165. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  166. package/template/.hermes/skills/yss-design-system/SKILL.md +6 -5
  167. package/template/.hermes/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  168. package/template/.hermes/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  169. package/template/.hermes/skills/yss-dictionary/references/source-index.md +25 -25
  170. package/template/.hermes/skills/yss-distributed-id/references/source-index.md +6 -6
  171. package/template/.hermes/skills/yss-dto/references/source-index.md +7 -4
  172. package/template/.hermes/skills/yss-excel-mvc/references/source-index.md +3 -3
  173. package/template/.hermes/skills/yss-exception/references/source-index.md +3 -3
  174. package/template/.hermes/skills/yss-hook/references/frontend-docs.md +1 -1
  175. package/template/.hermes/skills/yss-jdbc/references/source-index.md +3 -3
  176. package/template/.hermes/skills/yss-log/references/source-index.md +3 -3
  177. package/template/.hermes/skills/yss-mybatis/references/source-index.md +3 -3
  178. package/template/.hermes/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  179. package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +4 -2
  180. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  181. package/template/.hermes/skills/yss-prototype-stage/SKILL.md +40 -0
  182. package/template/.hermes/skills/yss-resilience4j/references/source-index.md +3 -3
  183. package/template/.hermes/skills/yss-router/references/router-contract.yaml +5 -2
  184. package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +3 -0
  185. package/template/.hermes/skills/yss-security-algorithm/references/source-index.md +3 -3
  186. package/template/.hermes/skills/yss-source-index/SKILL.md +3 -3
  187. package/template/.hermes/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  188. package/template/.hermes/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  189. package/template/.hermes/skills/yss-taskflow/references/source-index.md +3 -3
  190. package/template/.hermes/skills/yss-ui/references/frontend-docs.md +1 -1
  191. package/template/.hermes/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  192. package/template/.hermes/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  193. package/template/.hermes/skills/yss-userinfo/references/source-index.md +3 -3
  194. package/template/.hermes/skills/yss-validation/references/source-index.md +5 -24
  195. package/template/.hermes/skills/yss-valuation/references/source-index.md +3 -3
  196. package/template/.hermes/skills/yss-variable/references/source-index.md +6 -34
  197. package/template/.hermes/skills/yss-web-controller/SKILL.md +4 -4
  198. package/template/.hermes/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  199. package/template/.hermes/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  200. package/template/.nvmrc +1 -0
  201. package/template/.pi/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  202. package/template/.pi/skills/product-design-prototype/SKILL.md +6 -2
  203. package/template/.pi/skills/prototype-review/SKILL.md +6 -2
  204. package/template/.pi/skills/wireframe-prototype/SKILL.md +5 -1
  205. package/template/.pi/skills/yss-audit-log/references/source-index.md +4 -3
  206. package/template/.pi/skills/yss-cache/references/source-index.md +4 -3
  207. package/template/.pi/skills/yss-components/references/frontend-docs.md +1 -1
  208. package/template/.pi/skills/yss-db2mybatis/SKILL.md +6 -5
  209. package/template/.pi/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  210. package/template/.pi/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  211. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  212. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  213. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  214. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  215. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  216. package/template/.pi/skills/yss-design-system/SKILL.md +6 -5
  217. package/template/.pi/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  218. package/template/.pi/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  219. package/template/.pi/skills/yss-dictionary/references/source-index.md +25 -25
  220. package/template/.pi/skills/yss-distributed-id/references/source-index.md +6 -6
  221. package/template/.pi/skills/yss-dto/references/source-index.md +7 -4
  222. package/template/.pi/skills/yss-excel-mvc/references/source-index.md +3 -3
  223. package/template/.pi/skills/yss-exception/references/source-index.md +3 -3
  224. package/template/.pi/skills/yss-hook/references/frontend-docs.md +1 -1
  225. package/template/.pi/skills/yss-jdbc/references/source-index.md +3 -3
  226. package/template/.pi/skills/yss-log/references/source-index.md +3 -3
  227. package/template/.pi/skills/yss-mybatis/references/source-index.md +3 -3
  228. package/template/.pi/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  229. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +4 -2
  230. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  231. package/template/.pi/skills/yss-prototype-stage/SKILL.md +40 -0
  232. package/template/.pi/skills/yss-resilience4j/references/source-index.md +3 -3
  233. package/template/.pi/skills/yss-router/references/router-contract.yaml +5 -2
  234. package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +3 -0
  235. package/template/.pi/skills/yss-security-algorithm/references/source-index.md +3 -3
  236. package/template/.pi/skills/yss-source-index/SKILL.md +3 -3
  237. package/template/.pi/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  238. package/template/.pi/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  239. package/template/.pi/skills/yss-taskflow/references/source-index.md +3 -3
  240. package/template/.pi/skills/yss-ui/references/frontend-docs.md +1 -1
  241. package/template/.pi/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  242. package/template/.pi/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  243. package/template/.pi/skills/yss-userinfo/references/source-index.md +3 -3
  244. package/template/.pi/skills/yss-validation/references/source-index.md +5 -24
  245. package/template/.pi/skills/yss-valuation/references/source-index.md +3 -3
  246. package/template/.pi/skills/yss-variable/references/source-index.md +6 -34
  247. package/template/.pi/skills/yss-web-controller/SKILL.md +4 -4
  248. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  249. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  250. package/template/.qoder/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  251. package/template/.qoder/skills/product-design-prototype/SKILL.md +6 -2
  252. package/template/.qoder/skills/prototype-review/SKILL.md +6 -2
  253. package/template/.qoder/skills/wireframe-prototype/SKILL.md +5 -1
  254. package/template/.qoder/skills/yss-audit-log/references/source-index.md +4 -3
  255. package/template/.qoder/skills/yss-cache/references/source-index.md +4 -3
  256. package/template/.qoder/skills/yss-components/references/frontend-docs.md +1 -1
  257. package/template/.qoder/skills/yss-db2mybatis/SKILL.md +6 -5
  258. package/template/.qoder/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  259. package/template/.qoder/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  260. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  261. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  262. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  263. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  264. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  265. package/template/.qoder/skills/yss-design-system/SKILL.md +6 -5
  266. package/template/.qoder/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  267. package/template/.qoder/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  268. package/template/.qoder/skills/yss-dictionary/references/source-index.md +25 -25
  269. package/template/.qoder/skills/yss-distributed-id/references/source-index.md +6 -6
  270. package/template/.qoder/skills/yss-dto/references/source-index.md +7 -4
  271. package/template/.qoder/skills/yss-excel-mvc/references/source-index.md +3 -3
  272. package/template/.qoder/skills/yss-exception/references/source-index.md +3 -3
  273. package/template/.qoder/skills/yss-hook/references/frontend-docs.md +1 -1
  274. package/template/.qoder/skills/yss-jdbc/references/source-index.md +3 -3
  275. package/template/.qoder/skills/yss-log/references/source-index.md +3 -3
  276. package/template/.qoder/skills/yss-mybatis/references/source-index.md +3 -3
  277. package/template/.qoder/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  278. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +4 -2
  279. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  280. package/template/.qoder/skills/yss-prototype-stage/SKILL.md +40 -0
  281. package/template/.qoder/skills/yss-resilience4j/references/source-index.md +3 -3
  282. package/template/.qoder/skills/yss-router/references/router-contract.yaml +5 -2
  283. package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +3 -0
  284. package/template/.qoder/skills/yss-security-algorithm/references/source-index.md +3 -3
  285. package/template/.qoder/skills/yss-source-index/SKILL.md +3 -3
  286. package/template/.qoder/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  287. package/template/.qoder/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  288. package/template/.qoder/skills/yss-taskflow/references/source-index.md +3 -3
  289. package/template/.qoder/skills/yss-ui/references/frontend-docs.md +1 -1
  290. package/template/.qoder/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  291. package/template/.qoder/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  292. package/template/.qoder/skills/yss-userinfo/references/source-index.md +3 -3
  293. package/template/.qoder/skills/yss-validation/references/source-index.md +5 -24
  294. package/template/.qoder/skills/yss-valuation/references/source-index.md +3 -3
  295. package/template/.qoder/skills/yss-variable/references/source-index.md +6 -34
  296. package/template/.qoder/skills/yss-web-controller/SKILL.md +4 -4
  297. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  298. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  299. package/template/.trae/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  300. package/template/.trae/skills/product-design-prototype/SKILL.md +6 -2
  301. package/template/.trae/skills/prototype-review/SKILL.md +6 -2
  302. package/template/.trae/skills/wireframe-prototype/SKILL.md +5 -1
  303. package/template/.trae/skills/yss-audit-log/references/source-index.md +4 -3
  304. package/template/.trae/skills/yss-cache/references/source-index.md +4 -3
  305. package/template/.trae/skills/yss-components/references/frontend-docs.md +1 -1
  306. package/template/.trae/skills/yss-db2mybatis/SKILL.md +6 -5
  307. package/template/.trae/skills/yss-db2mybatis/scripts/db2mybatis.mjs +145 -0
  308. package/template/.trae/skills/yss-db2mybatis/scripts/db2mybatis.test.mjs +32 -0
  309. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +5 -5
  310. package/template/.trae/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +2 -2
  311. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +225 -0
  312. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +32 -0
  313. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +26 -0
  314. package/template/.trae/skills/yss-design-system/SKILL.md +6 -5
  315. package/template/.trae/skills/yss-design-system/scripts/validate-frontmatter.mjs +36 -0
  316. package/template/.trae/skills/yss-design-system/scripts/validate-frontmatter.test.mjs +12 -0
  317. package/template/.trae/skills/yss-dictionary/references/source-index.md +25 -25
  318. package/template/.trae/skills/yss-distributed-id/references/source-index.md +6 -6
  319. package/template/.trae/skills/yss-dto/references/source-index.md +7 -4
  320. package/template/.trae/skills/yss-excel-mvc/references/source-index.md +3 -3
  321. package/template/.trae/skills/yss-exception/references/source-index.md +3 -3
  322. package/template/.trae/skills/yss-hook/references/frontend-docs.md +1 -1
  323. package/template/.trae/skills/yss-jdbc/references/source-index.md +3 -3
  324. package/template/.trae/skills/yss-log/references/source-index.md +3 -3
  325. package/template/.trae/skills/yss-mybatis/references/source-index.md +3 -3
  326. package/template/.trae/skills/yss-page-module-development/references/frontend-docs.md +1 -1
  327. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +4 -2
  328. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +2 -2
  329. package/template/.trae/skills/yss-prototype-stage/SKILL.md +40 -0
  330. package/template/.trae/skills/yss-resilience4j/references/source-index.md +3 -3
  331. package/template/.trae/skills/yss-router/references/router-contract.yaml +5 -2
  332. package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +3 -0
  333. package/template/.trae/skills/yss-security-algorithm/references/source-index.md +3 -3
  334. package/template/.trae/skills/yss-source-index/SKILL.md +3 -3
  335. package/template/.trae/skills/yss-source-index/scripts/refresh-yss-skill-index.mjs +24 -0
  336. package/template/.trae/skills/yss-source-index/scripts/refresh-yss-skill-index.test.mjs +15 -0
  337. package/template/.trae/skills/yss-taskflow/references/source-index.md +3 -3
  338. package/template/.trae/skills/yss-ui/references/frontend-docs.md +1 -1
  339. package/template/.trae/skills/yss-use-table-height/references/frontend-docs.md +1 -1
  340. package/template/.trae/skills/yss-use-tree-height/references/frontend-docs.md +1 -1
  341. package/template/.trae/skills/yss-userinfo/references/source-index.md +3 -3
  342. package/template/.trae/skills/yss-validation/references/source-index.md +5 -24
  343. package/template/.trae/skills/yss-valuation/references/source-index.md +3 -3
  344. package/template/.trae/skills/yss-variable/references/source-index.md +6 -34
  345. package/template/.trae/skills/yss-web-controller/SKILL.md +4 -4
  346. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.mjs +77 -0
  347. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.test.mjs +19 -0
  348. package/template/AGENTS.md +1 -1
  349. package/template/CONTEXT.md +2 -0
  350. package/template/README.md +0 -2
  351. package/template/__yss_dotfile__.gitignore +2 -17
  352. package/template/docs/adr/0001-product-design-prototype-entrypoint.md +1 -1
  353. package/template/docs/agents/skills-maintenance.md +2 -0
  354. package/template/docs/architecture/README.md +1 -18
  355. package/template/docs/design/README.md +5 -4
  356. package/template/docs/design/design.md +4 -0
  357. package/template/docs/design/templates/interaction-spec-template.md +3 -3
  358. package/template/docs/design/templates/prototype-confirmation-template.md +9 -6
  359. package/template/docs/design/templates/prototype-evidence-template.yaml +46 -0
  360. package/template/docs/design/templates/prototype-review-checklist.md +4 -4
  361. package/template/docs/process/lifecycle-artifact-map.md +10 -1
  362. package/template/docs/process/lifecycle-registry-baseline.json +10 -1
  363. package/template/docs/process/lifecycle-registry.yaml +35 -1
  364. 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
  365. 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
  366. package/template/scripts/export-yss-skills +3 -385
  367. package/template/scripts/generate-lifecycle-artifacts +2 -26
  368. package/template/scripts/implementation-path-policy +6 -0
  369. package/template/scripts/lib/export-skills.mjs +186 -0
  370. package/template/scripts/lib/implementation-path-policy.mjs +32 -0
  371. package/template/scripts/lib/lifecycle-registry.mjs +175 -0
  372. package/template/scripts/lib/repository-mode.mjs +39 -0
  373. package/template/scripts/lib/scenario-checks.mjs +54 -0
  374. package/template/scripts/lib/skill-supply-chain.mjs +124 -0
  375. package/template/scripts/node-generate-lifecycle-artifacts.mjs +33 -0
  376. package/template/scripts/node-verify-lifecycle-registry.mjs +61 -0
  377. package/template/scripts/repository-mode +9 -0
  378. package/template/scripts/sync-skills +9 -154
  379. package/template/scripts/update-skill-lock +8 -254
  380. package/template/scripts/vendor/NOTICES.md +45 -0
  381. package/template/scripts/vendor/manifest.json +563 -0
  382. package/template/scripts/vendor/xml.mjs +4103 -0
  383. package/template/scripts/vendor/yaml.mjs +6311 -0
  384. package/template/scripts/verify-governance-release +37 -38
  385. package/template/scripts/verify-implementation-path-scenarios +36 -39
  386. package/template/scripts/verify-lifecycle-registry +2 -67
  387. package/template/scripts/verify-lifecycle-scenarios +4 -621
  388. package/template/scripts/verify-matt-yss-integration-scenarios +3 -801
  389. package/template/scripts/verify-openapi-json-handoff-scenarios +3 -270
  390. package/template/scripts/verify-openapi-yaml-first-scenarios +3 -120
  391. package/template/scripts/verify-prototype-backend-scaffold-scenarios +3 -239
  392. package/template/scripts/verify-scaffold-generator-scenarios +4 -4
  393. package/template/scripts/verify-template +18 -277
  394. package/template/scripts/verify-yss-router-scenarios +3 -933
  395. package/template/scripts/verify-yss-ui-scenarios +54 -65
  396. package/template/skills-lock.json +103 -163
  397. package/template/wiki/raw/README.md +0 -2
  398. package/template/wiki/raw/skills-lock.json +0 -75
  399. package/template/yss-public-skills.json +2 -0
  400. package/template.manifest.json +1 -0
  401. package/template.snapshot.json +5 -26
  402. package/template/.agents/skills/beautiful-article/README.md +0 -450
  403. package/template/.agents/skills/beautiful-article/README.zh-CN.md +0 -450
  404. package/template/.agents/skills/beautiful-article/SKILL.md +0 -466
  405. package/template/.agents/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  406. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  407. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  408. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  409. package/template/.agents/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  410. package/template/.agents/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  411. package/template/.agents/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  412. package/template/.agents/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  413. package/template/.agents/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  414. package/template/.agents/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  415. package/template/.agents/skills/beautiful-article/manifest.json +0 -15
  416. package/template/.agents/skills/beautiful-article/references/article-types/briefing.md +0 -32
  417. package/template/.agents/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  418. package/template/.agents/skills/beautiful-article/references/article-types/essay.md +0 -31
  419. package/template/.agents/skills/beautiful-article/references/article-types/explainer.md +0 -32
  420. package/template/.agents/skills/beautiful-article/references/article-types/full-report.md +0 -32
  421. package/template/.agents/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  422. package/template/.agents/skills/beautiful-article/references/article-types/longform.md +0 -32
  423. package/template/.agents/skills/beautiful-article/references/article-types/review.md +0 -32
  424. package/template/.agents/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  425. package/template/.agents/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  426. package/template/.agents/skills/beautiful-article/references/article-types.md +0 -42
  427. package/template/.agents/skills/beautiful-article/references/asset-policy.md +0 -71
  428. package/template/.agents/skills/beautiful-article/references/component-policy.md +0 -103
  429. package/template/.agents/skills/beautiful-article/references/cover.md +0 -208
  430. package/template/.agents/skills/beautiful-article/references/harness.md +0 -35
  431. package/template/.agents/skills/beautiful-article/references/html-output.md +0 -42
  432. package/template/.agents/skills/beautiful-article/references/information-density.md +0 -50
  433. package/template/.agents/skills/beautiful-article/references/layout.md +0 -46
  434. package/template/.agents/skills/beautiful-article/references/pdf-output.md +0 -208
  435. package/template/.agents/skills/beautiful-article/references/plan-template.md +0 -109
  436. package/template/.agents/skills/beautiful-article/references/raw-policy.md +0 -86
  437. package/template/.agents/skills/beautiful-article/references/repair-policy.md +0 -35
  438. package/template/.agents/skills/beautiful-article/references/review-checklist.md +0 -133
  439. package/template/.agents/skills/beautiful-article/references/scaffold.md +0 -77
  440. package/template/.agents/skills/beautiful-article/references/section-build.md +0 -100
  441. package/template/.agents/skills/beautiful-article/references/source-to-markdown.md +0 -118
  442. package/template/.agents/skills/beautiful-article/references/theme-selection.md +0 -48
  443. package/template/.agents/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  444. package/template/.agents/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  445. package/template/.agents/skills/beautiful-article/scripts/scaffold.sh +0 -172
  446. package/template/.agents/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  447. package/template/.agents/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  448. package/template/.agents/skills/beautiful-article/theme-profiles/andy.md +0 -57
  449. package/template/.agents/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  450. package/template/.agents/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  451. package/template/.agents/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  452. package/template/.agents/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  453. package/template/.agents/skills/beautiful-article/theme-profiles/index.json +0 -112
  454. package/template/.agents/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  455. package/template/.agents/skills/beautiful-article/theme-profiles/press.md +0 -61
  456. package/template/.agents/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  457. package/template/.agents/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  458. package/template/.agents/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  459. package/template/.agents/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  460. package/template/.agents/skills/drawio/.mcp.json +0 -8
  461. package/template/.agents/skills/drawio/CHANGELOG.md +0 -216
  462. package/template/.agents/skills/drawio/SKILL.md +0 -157
  463. package/template/.agents/skills/drawio/agents/interface.yaml +0 -26
  464. package/template/.agents/skills/drawio/agents/openai.yaml +0 -26
  465. package/template/.agents/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  466. package/template/.agents/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  467. package/template/.agents/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  468. package/template/.agents/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  469. package/template/.agents/skills/drawio/assets/examples/login-flow.drawio +0 -6
  470. package/template/.agents/skills/drawio/assets/examples/microservices.drawio +0 -6
  471. package/template/.agents/skills/drawio/assets/examples/neural-network.drawio +0 -6
  472. package/template/.agents/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  473. package/template/.agents/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  474. package/template/.agents/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  475. package/template/.agents/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  476. package/template/.agents/skills/drawio/assets/palettes/c4-blue.json +0 -29
  477. package/template/.agents/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  478. package/template/.agents/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  479. package/template/.agents/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  480. package/template/.agents/skills/drawio/assets/palettes/ieee-color.json +0 -17
  481. package/template/.agents/skills/drawio/assets/palettes/journal-jama.json +0 -20
  482. package/template/.agents/skills/drawio/assets/palettes/journal-npg.json +0 -23
  483. package/template/.agents/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  484. package/template/.agents/skills/drawio/assets/palettes/morandi.json +0 -21
  485. package/template/.agents/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  486. package/template/.agents/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  487. package/template/.agents/skills/drawio/assets/palettes/tol-bright.json +0 -20
  488. package/template/.agents/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  489. package/template/.agents/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  490. package/template/.agents/skills/drawio/assets/palettes/tol-muted.json +0 -22
  491. package/template/.agents/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  492. package/template/.agents/skills/drawio/assets/schemas/spec.schema.json +0 -620
  493. package/template/.agents/skills/drawio/assets/themes/academic-color.json +0 -299
  494. package/template/.agents/skills/drawio/assets/themes/academic.json +0 -245
  495. package/template/.agents/skills/drawio/assets/themes/arch-dark.json +0 -253
  496. package/template/.agents/skills/drawio/assets/themes/blueprint.json +0 -246
  497. package/template/.agents/skills/drawio/assets/themes/dark-luxury.json +0 -246
  498. package/template/.agents/skills/drawio/assets/themes/dark-terminal.json +0 -244
  499. package/template/.agents/skills/drawio/assets/themes/dark.json +0 -220
  500. package/template/.agents/skills/drawio/assets/themes/high-contrast.json +0 -220
  501. package/template/.agents/skills/drawio/assets/themes/nature.json +0 -220
  502. package/template/.agents/skills/drawio/assets/themes/notion-clean.json +0 -246
  503. package/template/.agents/skills/drawio/assets/themes/tech-blue.json +0 -220
  504. package/template/.agents/skills/drawio/evals/README.md +0 -17
  505. package/template/.agents/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  506. package/template/.agents/skills/drawio/evals/baseline-prompts.json +0 -122
  507. package/template/.agents/skills/drawio/evals/darwin-results.tsv +0 -4
  508. package/template/.agents/skills/drawio/evals/evals.json +0 -223
  509. package/template/.agents/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  510. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  511. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  512. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  513. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  514. package/template/.agents/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  515. package/template/.agents/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  516. package/template/.agents/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  517. package/template/.agents/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  518. package/template/.agents/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  519. package/template/.agents/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  520. package/template/.agents/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  521. package/template/.agents/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  522. package/template/.agents/skills/drawio/evals/upstream-integration-cases.json +0 -78
  523. package/template/.agents/skills/drawio/evals/vision-preview-cases.json +0 -147
  524. package/template/.agents/skills/drawio/references/docs/agent-diagrams.md +0 -164
  525. package/template/.agents/skills/drawio/references/docs/ah-format.md +0 -322
  526. package/template/.agents/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  527. package/template/.agents/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  528. package/template/.agents/skills/drawio/references/docs/code-importers.md +0 -53
  529. package/template/.agents/skills/drawio/references/docs/config-importers.md +0 -68
  530. package/template/.agents/skills/drawio/references/docs/design-system/README.md +0 -204
  531. package/template/.agents/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  532. package/template/.agents/skills/drawio/references/docs/design-system/connectors.md +0 -388
  533. package/template/.agents/skills/drawio/references/docs/design-system/formulas.md +0 -196
  534. package/template/.agents/skills/drawio/references/docs/design-system/icons.md +0 -332
  535. package/template/.agents/skills/drawio/references/docs/design-system/shapes.md +0 -269
  536. package/template/.agents/skills/drawio/references/docs/design-system/specification.md +0 -754
  537. package/template/.agents/skills/drawio/references/docs/design-system/themes.md +0 -441
  538. package/template/.agents/skills/drawio/references/docs/design-system/tokens.md +0 -232
  539. package/template/.agents/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  540. package/template/.agents/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  541. package/template/.agents/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  542. package/template/.agents/skills/drawio/references/docs/math-typesetting.md +0 -258
  543. package/template/.agents/skills/drawio/references/docs/mcp-tools.md +0 -85
  544. package/template/.agents/skills/drawio/references/docs/migration-readiness.md +0 -73
  545. package/template/.agents/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  546. package/template/.agents/skills/drawio/references/docs/style-extraction.md +0 -261
  547. package/template/.agents/skills/drawio/references/docs/style-presets.md +0 -126
  548. package/template/.agents/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  549. package/template/.agents/skills/drawio/references/docs/xml-format.md +0 -53
  550. package/template/.agents/skills/drawio/references/examples/README.md +0 -33
  551. package/template/.agents/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  552. package/template/.agents/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  553. package/template/.agents/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  554. package/template/.agents/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  555. package/template/.agents/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  556. package/template/.agents/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  557. package/template/.agents/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  558. package/template/.agents/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  559. package/template/.agents/skills/drawio/references/examples/e-commerce.yaml +0 -141
  560. package/template/.agents/skills/drawio/references/examples/importers/README.md +0 -10
  561. package/template/.agents/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  562. package/template/.agents/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  563. package/template/.agents/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  564. package/template/.agents/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  565. package/template/.agents/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  566. package/template/.agents/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  567. package/template/.agents/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  568. package/template/.agents/skills/drawio/references/examples/importers/schema.sql +0 -10
  569. package/template/.agents/skills/drawio/references/examples/importers/terraform.tf +0 -9
  570. package/template/.agents/skills/drawio/references/examples/login-flow.yaml +0 -65
  571. package/template/.agents/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  572. package/template/.agents/skills/drawio/references/examples/microservices.yaml +0 -58
  573. package/template/.agents/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  574. package/template/.agents/skills/drawio/references/examples/neural-network.yaml +0 -66
  575. package/template/.agents/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  576. package/template/.agents/skills/drawio/references/examples/palettes/README.md +0 -29
  577. package/template/.agents/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  578. package/template/.agents/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  579. package/template/.agents/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  580. package/template/.agents/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  581. package/template/.agents/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  582. package/template/.agents/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  583. package/template/.agents/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  584. package/template/.agents/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  585. package/template/.agents/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  586. package/template/.agents/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  587. package/template/.agents/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  588. package/template/.agents/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  589. package/template/.agents/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  590. package/template/.agents/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  591. package/template/.agents/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  592. package/template/.agents/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  593. package/template/.agents/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  594. package/template/.agents/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  595. package/template/.agents/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  596. package/template/.agents/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  597. package/template/.agents/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  598. package/template/.agents/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  599. package/template/.agents/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  600. package/template/.agents/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  601. package/template/.agents/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  602. package/template/.agents/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  603. package/template/.agents/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  604. package/template/.agents/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  605. package/template/.agents/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  606. package/template/.agents/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  607. package/template/.agents/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  608. package/template/.agents/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  609. package/template/.agents/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  610. package/template/.agents/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  611. package/template/.agents/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  612. package/template/.agents/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  613. package/template/.agents/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  614. package/template/.agents/skills/drawio/references/official/style-reference.md +0 -936
  615. package/template/.agents/skills/drawio/references/official/xml-reference.md +0 -262
  616. package/template/.agents/skills/drawio/references/palette.schema.json +0 -59
  617. package/template/.agents/skills/drawio/references/theme.schema.json +0 -249
  618. package/template/.agents/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  619. package/template/.agents/skills/drawio/references/workflows/create.md +0 -195
  620. package/template/.agents/skills/drawio/references/workflows/edit.md +0 -174
  621. package/template/.agents/skills/drawio/references/workflows/replicate.md +0 -239
  622. package/template/.agents/skills/drawio/references/workflows/visual-review.md +0 -108
  623. package/template/.agents/skills/drawio/reports/output_quality_scorecard.md +0 -106
  624. package/template/.agents/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  625. package/template/.agents/skills/drawio/scripts/adapters/ci.js +0 -139
  626. package/template/.agents/skills/drawio/scripts/adapters/ci.test.js +0 -41
  627. package/template/.agents/skills/drawio/scripts/adapters/code-common.js +0 -171
  628. package/template/.agents/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  629. package/template/.agents/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  630. package/template/.agents/skills/drawio/scripts/adapters/compose.js +0 -134
  631. package/template/.agents/skills/drawio/scripts/adapters/compose.test.js +0 -54
  632. package/template/.agents/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  633. package/template/.agents/skills/drawio/scripts/adapters/config-common.js +0 -131
  634. package/template/.agents/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  635. package/template/.agents/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  636. package/template/.agents/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  637. package/template/.agents/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  638. package/template/.agents/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  639. package/template/.agents/skills/drawio/scripts/adapters/go-code.js +0 -168
  640. package/template/.agents/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  641. package/template/.agents/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  642. package/template/.agents/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  643. package/template/.agents/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  644. package/template/.agents/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  645. package/template/.agents/skills/drawio/scripts/adapters/identity.js +0 -244
  646. package/template/.agents/skills/drawio/scripts/adapters/identity.test.js +0 -123
  647. package/template/.agents/skills/drawio/scripts/adapters/index.js +0 -489
  648. package/template/.agents/skills/drawio/scripts/adapters/index.test.js +0 -152
  649. package/template/.agents/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  650. package/template/.agents/skills/drawio/scripts/adapters/js-code.js +0 -141
  651. package/template/.agents/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  652. package/template/.agents/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  653. package/template/.agents/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  654. package/template/.agents/skills/drawio/scripts/adapters/openapi.js +0 -98
  655. package/template/.agents/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  656. package/template/.agents/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  657. package/template/.agents/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  658. package/template/.agents/skills/drawio/scripts/adapters/optional-python.js +0 -127
  659. package/template/.agents/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  660. package/template/.agents/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  661. package/template/.agents/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  662. package/template/.agents/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  663. package/template/.agents/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  664. package/template/.agents/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  665. package/template/.agents/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  666. package/template/.agents/skills/drawio/scripts/adapters/python-code.js +0 -246
  667. package/template/.agents/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  668. package/template/.agents/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  669. package/template/.agents/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  670. package/template/.agents/skills/drawio/scripts/adapters/rust-code.js +0 -207
  671. package/template/.agents/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  672. package/template/.agents/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  673. package/template/.agents/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  674. package/template/.agents/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  675. package/template/.agents/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  676. package/template/.agents/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  677. package/template/.agents/skills/drawio/scripts/cli.js +0 -700
  678. package/template/.agents/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  679. package/template/.agents/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  680. package/template/.agents/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  681. package/template/.agents/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  682. package/template/.agents/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  683. package/template/.agents/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  684. package/template/.agents/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  685. package/template/.agents/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  686. package/template/.agents/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  687. package/template/.agents/skills/drawio/scripts/dsl/document-spec.js +0 -256
  688. package/template/.agents/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  689. package/template/.agents/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  690. package/template/.agents/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  691. package/template/.agents/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  692. package/template/.agents/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  693. package/template/.agents/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  694. package/template/.agents/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  695. package/template/.agents/skills/drawio/scripts/dsl/multi-page.js +0 -224
  696. package/template/.agents/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  697. package/template/.agents/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  698. package/template/.agents/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  699. package/template/.agents/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  700. package/template/.agents/skills/drawio/scripts/dsl/palette.js +0 -302
  701. package/template/.agents/skills/drawio/scripts/dsl/palette.test.js +0 -197
  702. package/template/.agents/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  703. package/template/.agents/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  704. package/template/.agents/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  705. package/template/.agents/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  706. package/template/.agents/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  707. package/template/.agents/skills/drawio/scripts/install.bat +0 -64
  708. package/template/.agents/skills/drawio/scripts/install.sh +0 -44
  709. package/template/.agents/skills/drawio/scripts/math/index.js +0 -317
  710. package/template/.agents/skills/drawio/scripts/math/index.test.js +0 -62
  711. package/template/.agents/skills/drawio/scripts/package.json +0 -1
  712. package/template/.agents/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  713. package/template/.agents/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  714. package/template/.agents/skills/drawio/scripts/postprocess/cli.js +0 -228
  715. package/template/.agents/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  716. package/template/.agents/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  717. package/template/.agents/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  718. package/template/.agents/skills/drawio/scripts/postprocess/html.js +0 -197
  719. package/template/.agents/skills/drawio/scripts/postprocess/html.test.js +0 -50
  720. package/template/.agents/skills/drawio/scripts/postprocess/index.js +0 -5
  721. package/template/.agents/skills/drawio/scripts/postprocess/input.js +0 -112
  722. package/template/.agents/skills/drawio/scripts/postprocess/input.test.js +0 -73
  723. package/template/.agents/skills/drawio/scripts/postprocess/mutate.js +0 -584
  724. package/template/.agents/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  725. package/template/.agents/skills/drawio/scripts/postprocess/projection.js +0 -178
  726. package/template/.agents/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  727. package/template/.agents/skills/drawio/scripts/runtime/artifacts.js +0 -283
  728. package/template/.agents/skills/drawio/scripts/runtime/desktop.js +0 -204
  729. package/template/.agents/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  730. package/template/.agents/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  731. package/template/.agents/skills/drawio/scripts/runtime/export-stability.js +0 -75
  732. package/template/.agents/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  733. package/template/.agents/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  734. package/template/.agents/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  735. package/template/.agents/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  736. package/template/.agents/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  737. package/template/.agents/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  738. package/template/.agents/skills/drawio/scripts/shared/xml-utils.js +0 -241
  739. package/template/.agents/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  740. package/template/.agents/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  741. package/template/.agents/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  742. package/template/.agents/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  743. package/template/.agents/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  744. package/template/.agents/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  745. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  746. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  747. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  748. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  749. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  750. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  751. package/template/.agents/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  752. package/template/.agents/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  753. package/template/.agents/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  754. package/template/.agents/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  755. package/template/.agents/skills/drawio/styles/built-in/corporate.json +0 -49
  756. package/template/.agents/skills/drawio/styles/built-in/default.json +0 -49
  757. package/template/.agents/skills/drawio/styles/built-in/handdrawn.json +0 -49
  758. package/template/.agents/skills/drawio/styles/schema.json +0 -112
  759. package/template/.agents/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  760. package/template/.agents/skills/drawio-academic-skills/README.md +0 -103
  761. package/template/.agents/skills/drawio-academic-skills/README_CN.md +0 -103
  762. package/template/.agents/skills/drawio-academic-skills/SKILL.md +0 -161
  763. package/template/.agents/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  764. package/template/.agents/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  765. package/template/.agents/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  766. package/template/.agents/skills/drawio-academic-skills/evals/README.md +0 -13
  767. package/template/.agents/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  768. package/template/.agents/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  769. package/template/.agents/skills/drawio-academic-skills/evals/evals.json +0 -228
  770. package/template/.agents/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  771. package/template/.agents/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  772. package/template/.agents/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  773. package/template/.agents/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  774. package/template/.agents/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  775. package/template/.agents/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  776. package/template/.agents/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  777. package/template/.agents/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  778. package/template/.agents/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  779. package/template/.agents/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  780. package/template/.agents/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  781. package/template/.agents/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  782. package/template/.agents/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  783. package/template/.agents/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  784. package/template/.agents/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  785. package/template/.agents/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  786. package/template/.agents/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  787. package/template/.agents/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  788. package/template/.agents/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  789. package/template/.agents/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  790. package/template/.agents/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  791. package/template/.agents/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  792. package/template/.agents/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  793. package/template/.agents/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  794. package/template/.agents/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  795. package/template/.agents/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  796. package/template/.agents/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  797. package/template/.agents/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  798. package/template/.agents/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  799. package/template/.agents/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  800. package/template/.agents/skills/kb-retriever/README.md +0 -197
  801. package/template/.agents/skills/kb-retriever/README.zh-CN.md +0 -197
  802. package/template/.agents/skills/kb-retriever/SKILL.md +0 -250
  803. package/template/.agents/skills/kb-retriever/manifest.json +0 -15
  804. package/template/.agents/skills/kb-retriever/references/excel_analysis.md +0 -129
  805. package/template/.agents/skills/kb-retriever/references/excel_reading.md +0 -72
  806. package/template/.agents/skills/kb-retriever/references/pdf_reading.md +0 -362
  807. package/template/.agents/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  808. package/template/.agents/skills/yss-db2mybatis/requirements.txt +0 -4
  809. package/template/.agents/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  810. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  811. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  812. package/template/.agents/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  813. package/template/.agents/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  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/requirements.txt +0 -4
  1223. package/template/.claude/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  1224. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  1225. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  1226. package/template/.claude/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  1227. package/template/.claude/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  1228. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  1229. package/template/.claude/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  1230. package/template/.codex/skills/beautiful-article/README.md +0 -450
  1231. package/template/.codex/skills/beautiful-article/README.zh-CN.md +0 -450
  1232. package/template/.codex/skills/beautiful-article/SKILL.md +0 -466
  1233. package/template/.codex/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  1234. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  1235. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  1236. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  1237. package/template/.codex/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  1238. package/template/.codex/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  1239. package/template/.codex/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  1240. package/template/.codex/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  1241. package/template/.codex/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  1242. package/template/.codex/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  1243. package/template/.codex/skills/beautiful-article/manifest.json +0 -15
  1244. package/template/.codex/skills/beautiful-article/references/article-types/briefing.md +0 -32
  1245. package/template/.codex/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  1246. package/template/.codex/skills/beautiful-article/references/article-types/essay.md +0 -31
  1247. package/template/.codex/skills/beautiful-article/references/article-types/explainer.md +0 -32
  1248. package/template/.codex/skills/beautiful-article/references/article-types/full-report.md +0 -32
  1249. package/template/.codex/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  1250. package/template/.codex/skills/beautiful-article/references/article-types/longform.md +0 -32
  1251. package/template/.codex/skills/beautiful-article/references/article-types/review.md +0 -32
  1252. package/template/.codex/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  1253. package/template/.codex/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  1254. package/template/.codex/skills/beautiful-article/references/article-types.md +0 -42
  1255. package/template/.codex/skills/beautiful-article/references/asset-policy.md +0 -71
  1256. package/template/.codex/skills/beautiful-article/references/component-policy.md +0 -103
  1257. package/template/.codex/skills/beautiful-article/references/cover.md +0 -208
  1258. package/template/.codex/skills/beautiful-article/references/harness.md +0 -35
  1259. package/template/.codex/skills/beautiful-article/references/html-output.md +0 -42
  1260. package/template/.codex/skills/beautiful-article/references/information-density.md +0 -50
  1261. package/template/.codex/skills/beautiful-article/references/layout.md +0 -46
  1262. package/template/.codex/skills/beautiful-article/references/pdf-output.md +0 -208
  1263. package/template/.codex/skills/beautiful-article/references/plan-template.md +0 -109
  1264. package/template/.codex/skills/beautiful-article/references/raw-policy.md +0 -86
  1265. package/template/.codex/skills/beautiful-article/references/repair-policy.md +0 -35
  1266. package/template/.codex/skills/beautiful-article/references/review-checklist.md +0 -133
  1267. package/template/.codex/skills/beautiful-article/references/scaffold.md +0 -77
  1268. package/template/.codex/skills/beautiful-article/references/section-build.md +0 -100
  1269. package/template/.codex/skills/beautiful-article/references/source-to-markdown.md +0 -118
  1270. package/template/.codex/skills/beautiful-article/references/theme-selection.md +0 -48
  1271. package/template/.codex/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  1272. package/template/.codex/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  1273. package/template/.codex/skills/beautiful-article/scripts/scaffold.sh +0 -172
  1274. package/template/.codex/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  1275. package/template/.codex/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  1276. package/template/.codex/skills/beautiful-article/theme-profiles/andy.md +0 -57
  1277. package/template/.codex/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  1278. package/template/.codex/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  1279. package/template/.codex/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  1280. package/template/.codex/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  1281. package/template/.codex/skills/beautiful-article/theme-profiles/index.json +0 -112
  1282. package/template/.codex/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  1283. package/template/.codex/skills/beautiful-article/theme-profiles/press.md +0 -61
  1284. package/template/.codex/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  1285. package/template/.codex/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  1286. package/template/.codex/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  1287. package/template/.codex/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  1288. package/template/.codex/skills/drawio/.mcp.json +0 -8
  1289. package/template/.codex/skills/drawio/CHANGELOG.md +0 -216
  1290. package/template/.codex/skills/drawio/SKILL.md +0 -157
  1291. package/template/.codex/skills/drawio/agents/interface.yaml +0 -26
  1292. package/template/.codex/skills/drawio/agents/openai.yaml +0 -26
  1293. package/template/.codex/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  1294. package/template/.codex/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  1295. package/template/.codex/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  1296. package/template/.codex/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  1297. package/template/.codex/skills/drawio/assets/examples/login-flow.drawio +0 -6
  1298. package/template/.codex/skills/drawio/assets/examples/microservices.drawio +0 -6
  1299. package/template/.codex/skills/drawio/assets/examples/neural-network.drawio +0 -6
  1300. package/template/.codex/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  1301. package/template/.codex/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  1302. package/template/.codex/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  1303. package/template/.codex/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  1304. package/template/.codex/skills/drawio/assets/palettes/c4-blue.json +0 -29
  1305. package/template/.codex/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  1306. package/template/.codex/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  1307. package/template/.codex/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  1308. package/template/.codex/skills/drawio/assets/palettes/ieee-color.json +0 -17
  1309. package/template/.codex/skills/drawio/assets/palettes/journal-jama.json +0 -20
  1310. package/template/.codex/skills/drawio/assets/palettes/journal-npg.json +0 -23
  1311. package/template/.codex/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  1312. package/template/.codex/skills/drawio/assets/palettes/morandi.json +0 -21
  1313. package/template/.codex/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  1314. package/template/.codex/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  1315. package/template/.codex/skills/drawio/assets/palettes/tol-bright.json +0 -20
  1316. package/template/.codex/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  1317. package/template/.codex/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  1318. package/template/.codex/skills/drawio/assets/palettes/tol-muted.json +0 -22
  1319. package/template/.codex/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  1320. package/template/.codex/skills/drawio/assets/schemas/spec.schema.json +0 -620
  1321. package/template/.codex/skills/drawio/assets/themes/academic-color.json +0 -299
  1322. package/template/.codex/skills/drawio/assets/themes/academic.json +0 -245
  1323. package/template/.codex/skills/drawio/assets/themes/arch-dark.json +0 -253
  1324. package/template/.codex/skills/drawio/assets/themes/blueprint.json +0 -246
  1325. package/template/.codex/skills/drawio/assets/themes/dark-luxury.json +0 -246
  1326. package/template/.codex/skills/drawio/assets/themes/dark-terminal.json +0 -244
  1327. package/template/.codex/skills/drawio/assets/themes/dark.json +0 -220
  1328. package/template/.codex/skills/drawio/assets/themes/high-contrast.json +0 -220
  1329. package/template/.codex/skills/drawio/assets/themes/nature.json +0 -220
  1330. package/template/.codex/skills/drawio/assets/themes/notion-clean.json +0 -246
  1331. package/template/.codex/skills/drawio/assets/themes/tech-blue.json +0 -220
  1332. package/template/.codex/skills/drawio/evals/README.md +0 -17
  1333. package/template/.codex/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  1334. package/template/.codex/skills/drawio/evals/baseline-prompts.json +0 -122
  1335. package/template/.codex/skills/drawio/evals/darwin-results.tsv +0 -4
  1336. package/template/.codex/skills/drawio/evals/evals.json +0 -223
  1337. package/template/.codex/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  1338. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  1339. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  1340. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  1341. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  1342. package/template/.codex/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  1343. package/template/.codex/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  1344. package/template/.codex/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  1345. package/template/.codex/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  1346. package/template/.codex/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  1347. package/template/.codex/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  1348. package/template/.codex/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  1349. package/template/.codex/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  1350. package/template/.codex/skills/drawio/evals/upstream-integration-cases.json +0 -78
  1351. package/template/.codex/skills/drawio/evals/vision-preview-cases.json +0 -147
  1352. package/template/.codex/skills/drawio/references/docs/agent-diagrams.md +0 -164
  1353. package/template/.codex/skills/drawio/references/docs/ah-format.md +0 -322
  1354. package/template/.codex/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  1355. package/template/.codex/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  1356. package/template/.codex/skills/drawio/references/docs/code-importers.md +0 -53
  1357. package/template/.codex/skills/drawio/references/docs/config-importers.md +0 -68
  1358. package/template/.codex/skills/drawio/references/docs/design-system/README.md +0 -204
  1359. package/template/.codex/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  1360. package/template/.codex/skills/drawio/references/docs/design-system/connectors.md +0 -388
  1361. package/template/.codex/skills/drawio/references/docs/design-system/formulas.md +0 -196
  1362. package/template/.codex/skills/drawio/references/docs/design-system/icons.md +0 -332
  1363. package/template/.codex/skills/drawio/references/docs/design-system/shapes.md +0 -269
  1364. package/template/.codex/skills/drawio/references/docs/design-system/specification.md +0 -754
  1365. package/template/.codex/skills/drawio/references/docs/design-system/themes.md +0 -441
  1366. package/template/.codex/skills/drawio/references/docs/design-system/tokens.md +0 -232
  1367. package/template/.codex/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  1368. package/template/.codex/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  1369. package/template/.codex/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  1370. package/template/.codex/skills/drawio/references/docs/math-typesetting.md +0 -258
  1371. package/template/.codex/skills/drawio/references/docs/mcp-tools.md +0 -85
  1372. package/template/.codex/skills/drawio/references/docs/migration-readiness.md +0 -73
  1373. package/template/.codex/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  1374. package/template/.codex/skills/drawio/references/docs/style-extraction.md +0 -261
  1375. package/template/.codex/skills/drawio/references/docs/style-presets.md +0 -126
  1376. package/template/.codex/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  1377. package/template/.codex/skills/drawio/references/docs/xml-format.md +0 -53
  1378. package/template/.codex/skills/drawio/references/examples/README.md +0 -33
  1379. package/template/.codex/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  1380. package/template/.codex/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  1381. package/template/.codex/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  1382. package/template/.codex/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  1383. package/template/.codex/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  1384. package/template/.codex/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  1385. package/template/.codex/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  1386. package/template/.codex/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  1387. package/template/.codex/skills/drawio/references/examples/e-commerce.yaml +0 -141
  1388. package/template/.codex/skills/drawio/references/examples/importers/README.md +0 -10
  1389. package/template/.codex/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  1390. package/template/.codex/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  1391. package/template/.codex/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  1392. package/template/.codex/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  1393. package/template/.codex/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  1394. package/template/.codex/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  1395. package/template/.codex/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  1396. package/template/.codex/skills/drawio/references/examples/importers/schema.sql +0 -10
  1397. package/template/.codex/skills/drawio/references/examples/importers/terraform.tf +0 -9
  1398. package/template/.codex/skills/drawio/references/examples/login-flow.yaml +0 -65
  1399. package/template/.codex/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  1400. package/template/.codex/skills/drawio/references/examples/microservices.yaml +0 -58
  1401. package/template/.codex/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  1402. package/template/.codex/skills/drawio/references/examples/neural-network.yaml +0 -66
  1403. package/template/.codex/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  1404. package/template/.codex/skills/drawio/references/examples/palettes/README.md +0 -29
  1405. package/template/.codex/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  1406. package/template/.codex/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  1407. package/template/.codex/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  1408. package/template/.codex/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  1409. package/template/.codex/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  1410. package/template/.codex/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  1411. package/template/.codex/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  1412. package/template/.codex/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  1413. package/template/.codex/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  1414. package/template/.codex/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  1415. package/template/.codex/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  1416. package/template/.codex/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  1417. package/template/.codex/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  1418. package/template/.codex/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  1419. package/template/.codex/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  1420. package/template/.codex/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  1421. package/template/.codex/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  1422. package/template/.codex/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  1423. package/template/.codex/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  1424. package/template/.codex/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  1425. package/template/.codex/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  1426. package/template/.codex/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  1427. package/template/.codex/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  1428. package/template/.codex/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  1429. package/template/.codex/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  1430. package/template/.codex/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  1431. package/template/.codex/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  1432. package/template/.codex/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  1433. package/template/.codex/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  1434. package/template/.codex/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  1435. package/template/.codex/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  1436. package/template/.codex/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  1437. package/template/.codex/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  1438. package/template/.codex/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  1439. package/template/.codex/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  1440. package/template/.codex/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  1441. package/template/.codex/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  1442. package/template/.codex/skills/drawio/references/official/style-reference.md +0 -936
  1443. package/template/.codex/skills/drawio/references/official/xml-reference.md +0 -262
  1444. package/template/.codex/skills/drawio/references/palette.schema.json +0 -59
  1445. package/template/.codex/skills/drawio/references/theme.schema.json +0 -249
  1446. package/template/.codex/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  1447. package/template/.codex/skills/drawio/references/workflows/create.md +0 -195
  1448. package/template/.codex/skills/drawio/references/workflows/edit.md +0 -174
  1449. package/template/.codex/skills/drawio/references/workflows/replicate.md +0 -239
  1450. package/template/.codex/skills/drawio/references/workflows/visual-review.md +0 -108
  1451. package/template/.codex/skills/drawio/reports/output_quality_scorecard.md +0 -106
  1452. package/template/.codex/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  1453. package/template/.codex/skills/drawio/scripts/adapters/ci.js +0 -139
  1454. package/template/.codex/skills/drawio/scripts/adapters/ci.test.js +0 -41
  1455. package/template/.codex/skills/drawio/scripts/adapters/code-common.js +0 -171
  1456. package/template/.codex/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  1457. package/template/.codex/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  1458. package/template/.codex/skills/drawio/scripts/adapters/compose.js +0 -134
  1459. package/template/.codex/skills/drawio/scripts/adapters/compose.test.js +0 -54
  1460. package/template/.codex/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  1461. package/template/.codex/skills/drawio/scripts/adapters/config-common.js +0 -131
  1462. package/template/.codex/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  1463. package/template/.codex/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  1464. package/template/.codex/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  1465. package/template/.codex/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  1466. package/template/.codex/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  1467. package/template/.codex/skills/drawio/scripts/adapters/go-code.js +0 -168
  1468. package/template/.codex/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  1469. package/template/.codex/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  1470. package/template/.codex/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  1471. package/template/.codex/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  1472. package/template/.codex/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  1473. package/template/.codex/skills/drawio/scripts/adapters/identity.js +0 -244
  1474. package/template/.codex/skills/drawio/scripts/adapters/identity.test.js +0 -123
  1475. package/template/.codex/skills/drawio/scripts/adapters/index.js +0 -489
  1476. package/template/.codex/skills/drawio/scripts/adapters/index.test.js +0 -152
  1477. package/template/.codex/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  1478. package/template/.codex/skills/drawio/scripts/adapters/js-code.js +0 -141
  1479. package/template/.codex/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  1480. package/template/.codex/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  1481. package/template/.codex/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  1482. package/template/.codex/skills/drawio/scripts/adapters/openapi.js +0 -98
  1483. package/template/.codex/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  1484. package/template/.codex/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  1485. package/template/.codex/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  1486. package/template/.codex/skills/drawio/scripts/adapters/optional-python.js +0 -127
  1487. package/template/.codex/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  1488. package/template/.codex/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  1489. package/template/.codex/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  1490. package/template/.codex/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  1491. package/template/.codex/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  1492. package/template/.codex/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  1493. package/template/.codex/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  1494. package/template/.codex/skills/drawio/scripts/adapters/python-code.js +0 -246
  1495. package/template/.codex/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  1496. package/template/.codex/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  1497. package/template/.codex/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  1498. package/template/.codex/skills/drawio/scripts/adapters/rust-code.js +0 -207
  1499. package/template/.codex/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  1500. package/template/.codex/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  1501. package/template/.codex/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  1502. package/template/.codex/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  1503. package/template/.codex/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  1504. package/template/.codex/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  1505. package/template/.codex/skills/drawio/scripts/cli.js +0 -700
  1506. package/template/.codex/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  1507. package/template/.codex/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  1508. package/template/.codex/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  1509. package/template/.codex/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  1510. package/template/.codex/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  1511. package/template/.codex/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  1512. package/template/.codex/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  1513. package/template/.codex/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  1514. package/template/.codex/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  1515. package/template/.codex/skills/drawio/scripts/dsl/document-spec.js +0 -256
  1516. package/template/.codex/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  1517. package/template/.codex/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  1518. package/template/.codex/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  1519. package/template/.codex/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  1520. package/template/.codex/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  1521. package/template/.codex/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  1522. package/template/.codex/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  1523. package/template/.codex/skills/drawio/scripts/dsl/multi-page.js +0 -224
  1524. package/template/.codex/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  1525. package/template/.codex/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  1526. package/template/.codex/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  1527. package/template/.codex/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  1528. package/template/.codex/skills/drawio/scripts/dsl/palette.js +0 -302
  1529. package/template/.codex/skills/drawio/scripts/dsl/palette.test.js +0 -197
  1530. package/template/.codex/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  1531. package/template/.codex/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  1532. package/template/.codex/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  1533. package/template/.codex/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  1534. package/template/.codex/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  1535. package/template/.codex/skills/drawio/scripts/install.bat +0 -64
  1536. package/template/.codex/skills/drawio/scripts/install.sh +0 -44
  1537. package/template/.codex/skills/drawio/scripts/math/index.js +0 -317
  1538. package/template/.codex/skills/drawio/scripts/math/index.test.js +0 -62
  1539. package/template/.codex/skills/drawio/scripts/package.json +0 -1
  1540. package/template/.codex/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  1541. package/template/.codex/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  1542. package/template/.codex/skills/drawio/scripts/postprocess/cli.js +0 -228
  1543. package/template/.codex/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  1544. package/template/.codex/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  1545. package/template/.codex/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  1546. package/template/.codex/skills/drawio/scripts/postprocess/html.js +0 -197
  1547. package/template/.codex/skills/drawio/scripts/postprocess/html.test.js +0 -50
  1548. package/template/.codex/skills/drawio/scripts/postprocess/index.js +0 -5
  1549. package/template/.codex/skills/drawio/scripts/postprocess/input.js +0 -112
  1550. package/template/.codex/skills/drawio/scripts/postprocess/input.test.js +0 -73
  1551. package/template/.codex/skills/drawio/scripts/postprocess/mutate.js +0 -584
  1552. package/template/.codex/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  1553. package/template/.codex/skills/drawio/scripts/postprocess/projection.js +0 -178
  1554. package/template/.codex/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  1555. package/template/.codex/skills/drawio/scripts/runtime/artifacts.js +0 -283
  1556. package/template/.codex/skills/drawio/scripts/runtime/desktop.js +0 -204
  1557. package/template/.codex/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  1558. package/template/.codex/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  1559. package/template/.codex/skills/drawio/scripts/runtime/export-stability.js +0 -75
  1560. package/template/.codex/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  1561. package/template/.codex/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  1562. package/template/.codex/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  1563. package/template/.codex/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  1564. package/template/.codex/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  1565. package/template/.codex/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  1566. package/template/.codex/skills/drawio/scripts/shared/xml-utils.js +0 -241
  1567. package/template/.codex/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  1568. package/template/.codex/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  1569. package/template/.codex/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  1570. package/template/.codex/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  1571. package/template/.codex/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  1572. package/template/.codex/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  1573. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  1574. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  1575. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  1576. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  1577. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  1578. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  1579. package/template/.codex/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  1580. package/template/.codex/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  1581. package/template/.codex/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  1582. package/template/.codex/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  1583. package/template/.codex/skills/drawio/styles/built-in/corporate.json +0 -49
  1584. package/template/.codex/skills/drawio/styles/built-in/default.json +0 -49
  1585. package/template/.codex/skills/drawio/styles/built-in/handdrawn.json +0 -49
  1586. package/template/.codex/skills/drawio/styles/schema.json +0 -112
  1587. package/template/.codex/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  1588. package/template/.codex/skills/drawio-academic-skills/README.md +0 -103
  1589. package/template/.codex/skills/drawio-academic-skills/README_CN.md +0 -103
  1590. package/template/.codex/skills/drawio-academic-skills/SKILL.md +0 -161
  1591. package/template/.codex/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  1592. package/template/.codex/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  1593. package/template/.codex/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  1594. package/template/.codex/skills/drawio-academic-skills/evals/README.md +0 -13
  1595. package/template/.codex/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  1596. package/template/.codex/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  1597. package/template/.codex/skills/drawio-academic-skills/evals/evals.json +0 -228
  1598. package/template/.codex/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  1599. package/template/.codex/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  1600. package/template/.codex/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  1601. package/template/.codex/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  1602. package/template/.codex/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  1603. package/template/.codex/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  1604. package/template/.codex/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  1605. package/template/.codex/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  1606. package/template/.codex/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  1607. package/template/.codex/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  1608. package/template/.codex/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  1609. package/template/.codex/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  1610. package/template/.codex/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  1611. package/template/.codex/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  1612. package/template/.codex/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  1613. package/template/.codex/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  1614. package/template/.codex/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  1615. package/template/.codex/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  1616. package/template/.codex/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  1617. package/template/.codex/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  1618. package/template/.codex/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  1619. package/template/.codex/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  1620. package/template/.codex/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  1621. package/template/.codex/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  1622. package/template/.codex/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  1623. package/template/.codex/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  1624. package/template/.codex/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  1625. package/template/.codex/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  1626. package/template/.codex/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  1627. package/template/.codex/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  1628. package/template/.codex/skills/kb-retriever/README.md +0 -197
  1629. package/template/.codex/skills/kb-retriever/README.zh-CN.md +0 -197
  1630. package/template/.codex/skills/kb-retriever/SKILL.md +0 -250
  1631. package/template/.codex/skills/kb-retriever/manifest.json +0 -15
  1632. package/template/.codex/skills/kb-retriever/references/excel_analysis.md +0 -129
  1633. package/template/.codex/skills/kb-retriever/references/excel_reading.md +0 -72
  1634. package/template/.codex/skills/kb-retriever/references/pdf_reading.md +0 -362
  1635. package/template/.codex/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  1636. package/template/.codex/skills/yss-db2mybatis/requirements.txt +0 -4
  1637. package/template/.codex/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  1638. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  1639. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  1640. package/template/.codex/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  1641. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  1642. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  1643. package/template/.codex/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  1644. package/template/.hermes/skills/beautiful-article/README.md +0 -450
  1645. package/template/.hermes/skills/beautiful-article/README.zh-CN.md +0 -450
  1646. package/template/.hermes/skills/beautiful-article/SKILL.md +0 -466
  1647. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  1648. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  1649. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  1650. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  1651. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  1652. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  1653. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  1654. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  1655. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  1656. package/template/.hermes/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  1657. package/template/.hermes/skills/beautiful-article/manifest.json +0 -15
  1658. package/template/.hermes/skills/beautiful-article/references/article-types/briefing.md +0 -32
  1659. package/template/.hermes/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  1660. package/template/.hermes/skills/beautiful-article/references/article-types/essay.md +0 -31
  1661. package/template/.hermes/skills/beautiful-article/references/article-types/explainer.md +0 -32
  1662. package/template/.hermes/skills/beautiful-article/references/article-types/full-report.md +0 -32
  1663. package/template/.hermes/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  1664. package/template/.hermes/skills/beautiful-article/references/article-types/longform.md +0 -32
  1665. package/template/.hermes/skills/beautiful-article/references/article-types/review.md +0 -32
  1666. package/template/.hermes/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  1667. package/template/.hermes/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  1668. package/template/.hermes/skills/beautiful-article/references/article-types.md +0 -42
  1669. package/template/.hermes/skills/beautiful-article/references/asset-policy.md +0 -71
  1670. package/template/.hermes/skills/beautiful-article/references/component-policy.md +0 -103
  1671. package/template/.hermes/skills/beautiful-article/references/cover.md +0 -208
  1672. package/template/.hermes/skills/beautiful-article/references/harness.md +0 -35
  1673. package/template/.hermes/skills/beautiful-article/references/html-output.md +0 -42
  1674. package/template/.hermes/skills/beautiful-article/references/information-density.md +0 -50
  1675. package/template/.hermes/skills/beautiful-article/references/layout.md +0 -46
  1676. package/template/.hermes/skills/beautiful-article/references/pdf-output.md +0 -208
  1677. package/template/.hermes/skills/beautiful-article/references/plan-template.md +0 -109
  1678. package/template/.hermes/skills/beautiful-article/references/raw-policy.md +0 -86
  1679. package/template/.hermes/skills/beautiful-article/references/repair-policy.md +0 -35
  1680. package/template/.hermes/skills/beautiful-article/references/review-checklist.md +0 -133
  1681. package/template/.hermes/skills/beautiful-article/references/scaffold.md +0 -77
  1682. package/template/.hermes/skills/beautiful-article/references/section-build.md +0 -100
  1683. package/template/.hermes/skills/beautiful-article/references/source-to-markdown.md +0 -118
  1684. package/template/.hermes/skills/beautiful-article/references/theme-selection.md +0 -48
  1685. package/template/.hermes/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  1686. package/template/.hermes/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  1687. package/template/.hermes/skills/beautiful-article/scripts/scaffold.sh +0 -172
  1688. package/template/.hermes/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  1689. package/template/.hermes/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  1690. package/template/.hermes/skills/beautiful-article/theme-profiles/andy.md +0 -57
  1691. package/template/.hermes/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  1692. package/template/.hermes/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  1693. package/template/.hermes/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  1694. package/template/.hermes/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  1695. package/template/.hermes/skills/beautiful-article/theme-profiles/index.json +0 -112
  1696. package/template/.hermes/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  1697. package/template/.hermes/skills/beautiful-article/theme-profiles/press.md +0 -61
  1698. package/template/.hermes/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  1699. package/template/.hermes/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  1700. package/template/.hermes/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  1701. package/template/.hermes/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  1702. package/template/.hermes/skills/drawio/.mcp.json +0 -8
  1703. package/template/.hermes/skills/drawio/CHANGELOG.md +0 -216
  1704. package/template/.hermes/skills/drawio/SKILL.md +0 -157
  1705. package/template/.hermes/skills/drawio/agents/interface.yaml +0 -26
  1706. package/template/.hermes/skills/drawio/agents/openai.yaml +0 -26
  1707. package/template/.hermes/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  1708. package/template/.hermes/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  1709. package/template/.hermes/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  1710. package/template/.hermes/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  1711. package/template/.hermes/skills/drawio/assets/examples/login-flow.drawio +0 -6
  1712. package/template/.hermes/skills/drawio/assets/examples/microservices.drawio +0 -6
  1713. package/template/.hermes/skills/drawio/assets/examples/neural-network.drawio +0 -6
  1714. package/template/.hermes/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  1715. package/template/.hermes/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  1716. package/template/.hermes/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  1717. package/template/.hermes/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  1718. package/template/.hermes/skills/drawio/assets/palettes/c4-blue.json +0 -29
  1719. package/template/.hermes/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  1720. package/template/.hermes/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  1721. package/template/.hermes/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  1722. package/template/.hermes/skills/drawio/assets/palettes/ieee-color.json +0 -17
  1723. package/template/.hermes/skills/drawio/assets/palettes/journal-jama.json +0 -20
  1724. package/template/.hermes/skills/drawio/assets/palettes/journal-npg.json +0 -23
  1725. package/template/.hermes/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  1726. package/template/.hermes/skills/drawio/assets/palettes/morandi.json +0 -21
  1727. package/template/.hermes/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  1728. package/template/.hermes/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  1729. package/template/.hermes/skills/drawio/assets/palettes/tol-bright.json +0 -20
  1730. package/template/.hermes/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  1731. package/template/.hermes/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  1732. package/template/.hermes/skills/drawio/assets/palettes/tol-muted.json +0 -22
  1733. package/template/.hermes/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  1734. package/template/.hermes/skills/drawio/assets/schemas/spec.schema.json +0 -620
  1735. package/template/.hermes/skills/drawio/assets/themes/academic-color.json +0 -299
  1736. package/template/.hermes/skills/drawio/assets/themes/academic.json +0 -245
  1737. package/template/.hermes/skills/drawio/assets/themes/arch-dark.json +0 -253
  1738. package/template/.hermes/skills/drawio/assets/themes/blueprint.json +0 -246
  1739. package/template/.hermes/skills/drawio/assets/themes/dark-luxury.json +0 -246
  1740. package/template/.hermes/skills/drawio/assets/themes/dark-terminal.json +0 -244
  1741. package/template/.hermes/skills/drawio/assets/themes/dark.json +0 -220
  1742. package/template/.hermes/skills/drawio/assets/themes/high-contrast.json +0 -220
  1743. package/template/.hermes/skills/drawio/assets/themes/nature.json +0 -220
  1744. package/template/.hermes/skills/drawio/assets/themes/notion-clean.json +0 -246
  1745. package/template/.hermes/skills/drawio/assets/themes/tech-blue.json +0 -220
  1746. package/template/.hermes/skills/drawio/evals/README.md +0 -17
  1747. package/template/.hermes/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  1748. package/template/.hermes/skills/drawio/evals/baseline-prompts.json +0 -122
  1749. package/template/.hermes/skills/drawio/evals/darwin-results.tsv +0 -4
  1750. package/template/.hermes/skills/drawio/evals/evals.json +0 -223
  1751. package/template/.hermes/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  1752. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  1753. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  1754. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  1755. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  1756. package/template/.hermes/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  1757. package/template/.hermes/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  1758. package/template/.hermes/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  1759. package/template/.hermes/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  1760. package/template/.hermes/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  1761. package/template/.hermes/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  1762. package/template/.hermes/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  1763. package/template/.hermes/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  1764. package/template/.hermes/skills/drawio/evals/upstream-integration-cases.json +0 -78
  1765. package/template/.hermes/skills/drawio/evals/vision-preview-cases.json +0 -147
  1766. package/template/.hermes/skills/drawio/references/docs/agent-diagrams.md +0 -164
  1767. package/template/.hermes/skills/drawio/references/docs/ah-format.md +0 -322
  1768. package/template/.hermes/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  1769. package/template/.hermes/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  1770. package/template/.hermes/skills/drawio/references/docs/code-importers.md +0 -53
  1771. package/template/.hermes/skills/drawio/references/docs/config-importers.md +0 -68
  1772. package/template/.hermes/skills/drawio/references/docs/design-system/README.md +0 -204
  1773. package/template/.hermes/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  1774. package/template/.hermes/skills/drawio/references/docs/design-system/connectors.md +0 -388
  1775. package/template/.hermes/skills/drawio/references/docs/design-system/formulas.md +0 -196
  1776. package/template/.hermes/skills/drawio/references/docs/design-system/icons.md +0 -332
  1777. package/template/.hermes/skills/drawio/references/docs/design-system/shapes.md +0 -269
  1778. package/template/.hermes/skills/drawio/references/docs/design-system/specification.md +0 -754
  1779. package/template/.hermes/skills/drawio/references/docs/design-system/themes.md +0 -441
  1780. package/template/.hermes/skills/drawio/references/docs/design-system/tokens.md +0 -232
  1781. package/template/.hermes/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  1782. package/template/.hermes/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  1783. package/template/.hermes/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  1784. package/template/.hermes/skills/drawio/references/docs/math-typesetting.md +0 -258
  1785. package/template/.hermes/skills/drawio/references/docs/mcp-tools.md +0 -85
  1786. package/template/.hermes/skills/drawio/references/docs/migration-readiness.md +0 -73
  1787. package/template/.hermes/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  1788. package/template/.hermes/skills/drawio/references/docs/style-extraction.md +0 -261
  1789. package/template/.hermes/skills/drawio/references/docs/style-presets.md +0 -126
  1790. package/template/.hermes/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  1791. package/template/.hermes/skills/drawio/references/docs/xml-format.md +0 -53
  1792. package/template/.hermes/skills/drawio/references/examples/README.md +0 -33
  1793. package/template/.hermes/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  1794. package/template/.hermes/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  1795. package/template/.hermes/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  1796. package/template/.hermes/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  1797. package/template/.hermes/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  1798. package/template/.hermes/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  1799. package/template/.hermes/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  1800. package/template/.hermes/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  1801. package/template/.hermes/skills/drawio/references/examples/e-commerce.yaml +0 -141
  1802. package/template/.hermes/skills/drawio/references/examples/importers/README.md +0 -10
  1803. package/template/.hermes/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  1804. package/template/.hermes/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  1805. package/template/.hermes/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  1806. package/template/.hermes/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  1807. package/template/.hermes/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  1808. package/template/.hermes/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  1809. package/template/.hermes/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  1810. package/template/.hermes/skills/drawio/references/examples/importers/schema.sql +0 -10
  1811. package/template/.hermes/skills/drawio/references/examples/importers/terraform.tf +0 -9
  1812. package/template/.hermes/skills/drawio/references/examples/login-flow.yaml +0 -65
  1813. package/template/.hermes/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  1814. package/template/.hermes/skills/drawio/references/examples/microservices.yaml +0 -58
  1815. package/template/.hermes/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  1816. package/template/.hermes/skills/drawio/references/examples/neural-network.yaml +0 -66
  1817. package/template/.hermes/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  1818. package/template/.hermes/skills/drawio/references/examples/palettes/README.md +0 -29
  1819. package/template/.hermes/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  1820. package/template/.hermes/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  1821. package/template/.hermes/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  1822. package/template/.hermes/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  1823. package/template/.hermes/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  1824. package/template/.hermes/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  1825. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  1826. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  1827. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  1828. package/template/.hermes/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  1829. package/template/.hermes/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  1830. package/template/.hermes/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  1831. package/template/.hermes/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  1832. package/template/.hermes/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  1833. package/template/.hermes/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  1834. package/template/.hermes/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  1835. package/template/.hermes/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  1836. package/template/.hermes/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  1837. package/template/.hermes/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  1838. package/template/.hermes/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  1839. package/template/.hermes/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  1840. package/template/.hermes/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  1841. package/template/.hermes/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  1842. package/template/.hermes/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  1843. package/template/.hermes/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  1844. package/template/.hermes/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  1845. package/template/.hermes/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  1846. package/template/.hermes/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  1847. package/template/.hermes/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  1848. package/template/.hermes/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  1849. package/template/.hermes/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  1850. package/template/.hermes/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  1851. package/template/.hermes/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  1852. package/template/.hermes/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  1853. package/template/.hermes/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  1854. package/template/.hermes/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  1855. package/template/.hermes/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  1856. package/template/.hermes/skills/drawio/references/official/style-reference.md +0 -936
  1857. package/template/.hermes/skills/drawio/references/official/xml-reference.md +0 -262
  1858. package/template/.hermes/skills/drawio/references/palette.schema.json +0 -59
  1859. package/template/.hermes/skills/drawio/references/theme.schema.json +0 -249
  1860. package/template/.hermes/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  1861. package/template/.hermes/skills/drawio/references/workflows/create.md +0 -195
  1862. package/template/.hermes/skills/drawio/references/workflows/edit.md +0 -174
  1863. package/template/.hermes/skills/drawio/references/workflows/replicate.md +0 -239
  1864. package/template/.hermes/skills/drawio/references/workflows/visual-review.md +0 -108
  1865. package/template/.hermes/skills/drawio/reports/output_quality_scorecard.md +0 -106
  1866. package/template/.hermes/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  1867. package/template/.hermes/skills/drawio/scripts/adapters/ci.js +0 -139
  1868. package/template/.hermes/skills/drawio/scripts/adapters/ci.test.js +0 -41
  1869. package/template/.hermes/skills/drawio/scripts/adapters/code-common.js +0 -171
  1870. package/template/.hermes/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  1871. package/template/.hermes/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  1872. package/template/.hermes/skills/drawio/scripts/adapters/compose.js +0 -134
  1873. package/template/.hermes/skills/drawio/scripts/adapters/compose.test.js +0 -54
  1874. package/template/.hermes/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  1875. package/template/.hermes/skills/drawio/scripts/adapters/config-common.js +0 -131
  1876. package/template/.hermes/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  1877. package/template/.hermes/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  1878. package/template/.hermes/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  1879. package/template/.hermes/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  1880. package/template/.hermes/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  1881. package/template/.hermes/skills/drawio/scripts/adapters/go-code.js +0 -168
  1882. package/template/.hermes/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  1883. package/template/.hermes/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  1884. package/template/.hermes/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  1885. package/template/.hermes/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  1886. package/template/.hermes/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  1887. package/template/.hermes/skills/drawio/scripts/adapters/identity.js +0 -244
  1888. package/template/.hermes/skills/drawio/scripts/adapters/identity.test.js +0 -123
  1889. package/template/.hermes/skills/drawio/scripts/adapters/index.js +0 -489
  1890. package/template/.hermes/skills/drawio/scripts/adapters/index.test.js +0 -152
  1891. package/template/.hermes/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  1892. package/template/.hermes/skills/drawio/scripts/adapters/js-code.js +0 -141
  1893. package/template/.hermes/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  1894. package/template/.hermes/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  1895. package/template/.hermes/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  1896. package/template/.hermes/skills/drawio/scripts/adapters/openapi.js +0 -98
  1897. package/template/.hermes/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  1898. package/template/.hermes/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  1899. package/template/.hermes/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  1900. package/template/.hermes/skills/drawio/scripts/adapters/optional-python.js +0 -127
  1901. package/template/.hermes/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  1902. package/template/.hermes/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  1903. package/template/.hermes/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  1904. package/template/.hermes/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  1905. package/template/.hermes/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  1906. package/template/.hermes/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  1907. package/template/.hermes/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  1908. package/template/.hermes/skills/drawio/scripts/adapters/python-code.js +0 -246
  1909. package/template/.hermes/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  1910. package/template/.hermes/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  1911. package/template/.hermes/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  1912. package/template/.hermes/skills/drawio/scripts/adapters/rust-code.js +0 -207
  1913. package/template/.hermes/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  1914. package/template/.hermes/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  1915. package/template/.hermes/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  1916. package/template/.hermes/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  1917. package/template/.hermes/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  1918. package/template/.hermes/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  1919. package/template/.hermes/skills/drawio/scripts/cli.js +0 -700
  1920. package/template/.hermes/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  1921. package/template/.hermes/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  1922. package/template/.hermes/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  1923. package/template/.hermes/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  1924. package/template/.hermes/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  1925. package/template/.hermes/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  1926. package/template/.hermes/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  1927. package/template/.hermes/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  1928. package/template/.hermes/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  1929. package/template/.hermes/skills/drawio/scripts/dsl/document-spec.js +0 -256
  1930. package/template/.hermes/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  1931. package/template/.hermes/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  1932. package/template/.hermes/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  1933. package/template/.hermes/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  1934. package/template/.hermes/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  1935. package/template/.hermes/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  1936. package/template/.hermes/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  1937. package/template/.hermes/skills/drawio/scripts/dsl/multi-page.js +0 -224
  1938. package/template/.hermes/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  1939. package/template/.hermes/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  1940. package/template/.hermes/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  1941. package/template/.hermes/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  1942. package/template/.hermes/skills/drawio/scripts/dsl/palette.js +0 -302
  1943. package/template/.hermes/skills/drawio/scripts/dsl/palette.test.js +0 -197
  1944. package/template/.hermes/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  1945. package/template/.hermes/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  1946. package/template/.hermes/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  1947. package/template/.hermes/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  1948. package/template/.hermes/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  1949. package/template/.hermes/skills/drawio/scripts/install.bat +0 -64
  1950. package/template/.hermes/skills/drawio/scripts/install.sh +0 -44
  1951. package/template/.hermes/skills/drawio/scripts/math/index.js +0 -317
  1952. package/template/.hermes/skills/drawio/scripts/math/index.test.js +0 -62
  1953. package/template/.hermes/skills/drawio/scripts/package.json +0 -1
  1954. package/template/.hermes/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  1955. package/template/.hermes/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  1956. package/template/.hermes/skills/drawio/scripts/postprocess/cli.js +0 -228
  1957. package/template/.hermes/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  1958. package/template/.hermes/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  1959. package/template/.hermes/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  1960. package/template/.hermes/skills/drawio/scripts/postprocess/html.js +0 -197
  1961. package/template/.hermes/skills/drawio/scripts/postprocess/html.test.js +0 -50
  1962. package/template/.hermes/skills/drawio/scripts/postprocess/index.js +0 -5
  1963. package/template/.hermes/skills/drawio/scripts/postprocess/input.js +0 -112
  1964. package/template/.hermes/skills/drawio/scripts/postprocess/input.test.js +0 -73
  1965. package/template/.hermes/skills/drawio/scripts/postprocess/mutate.js +0 -584
  1966. package/template/.hermes/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  1967. package/template/.hermes/skills/drawio/scripts/postprocess/projection.js +0 -178
  1968. package/template/.hermes/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  1969. package/template/.hermes/skills/drawio/scripts/runtime/artifacts.js +0 -283
  1970. package/template/.hermes/skills/drawio/scripts/runtime/desktop.js +0 -204
  1971. package/template/.hermes/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  1972. package/template/.hermes/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  1973. package/template/.hermes/skills/drawio/scripts/runtime/export-stability.js +0 -75
  1974. package/template/.hermes/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  1975. package/template/.hermes/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  1976. package/template/.hermes/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  1977. package/template/.hermes/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  1978. package/template/.hermes/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  1979. package/template/.hermes/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  1980. package/template/.hermes/skills/drawio/scripts/shared/xml-utils.js +0 -241
  1981. package/template/.hermes/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  1982. package/template/.hermes/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  1983. package/template/.hermes/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  1984. package/template/.hermes/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  1985. package/template/.hermes/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  1986. package/template/.hermes/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  1987. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  1988. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  1989. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  1990. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  1991. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  1992. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  1993. package/template/.hermes/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  1994. package/template/.hermes/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  1995. package/template/.hermes/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  1996. package/template/.hermes/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  1997. package/template/.hermes/skills/drawio/styles/built-in/corporate.json +0 -49
  1998. package/template/.hermes/skills/drawio/styles/built-in/default.json +0 -49
  1999. package/template/.hermes/skills/drawio/styles/built-in/handdrawn.json +0 -49
  2000. package/template/.hermes/skills/drawio/styles/schema.json +0 -112
  2001. package/template/.hermes/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  2002. package/template/.hermes/skills/drawio-academic-skills/README.md +0 -103
  2003. package/template/.hermes/skills/drawio-academic-skills/README_CN.md +0 -103
  2004. package/template/.hermes/skills/drawio-academic-skills/SKILL.md +0 -161
  2005. package/template/.hermes/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  2006. package/template/.hermes/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  2007. package/template/.hermes/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  2008. package/template/.hermes/skills/drawio-academic-skills/evals/README.md +0 -13
  2009. package/template/.hermes/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  2010. package/template/.hermes/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  2011. package/template/.hermes/skills/drawio-academic-skills/evals/evals.json +0 -228
  2012. package/template/.hermes/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  2013. package/template/.hermes/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  2014. package/template/.hermes/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  2015. package/template/.hermes/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  2016. package/template/.hermes/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  2017. package/template/.hermes/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  2018. package/template/.hermes/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  2019. package/template/.hermes/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  2020. package/template/.hermes/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  2021. package/template/.hermes/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  2022. package/template/.hermes/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  2023. package/template/.hermes/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  2024. package/template/.hermes/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  2025. package/template/.hermes/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  2026. package/template/.hermes/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  2027. package/template/.hermes/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  2028. package/template/.hermes/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  2029. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  2030. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  2031. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  2032. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  2033. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  2034. package/template/.hermes/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  2035. package/template/.hermes/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  2036. package/template/.hermes/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  2037. package/template/.hermes/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  2038. package/template/.hermes/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  2039. package/template/.hermes/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  2040. package/template/.hermes/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  2041. package/template/.hermes/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  2042. package/template/.hermes/skills/kb-retriever/README.md +0 -197
  2043. package/template/.hermes/skills/kb-retriever/README.zh-CN.md +0 -197
  2044. package/template/.hermes/skills/kb-retriever/SKILL.md +0 -250
  2045. package/template/.hermes/skills/kb-retriever/manifest.json +0 -15
  2046. package/template/.hermes/skills/kb-retriever/references/excel_analysis.md +0 -129
  2047. package/template/.hermes/skills/kb-retriever/references/excel_reading.md +0 -72
  2048. package/template/.hermes/skills/kb-retriever/references/pdf_reading.md +0 -362
  2049. package/template/.hermes/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  2050. package/template/.hermes/skills/yss-db2mybatis/requirements.txt +0 -4
  2051. package/template/.hermes/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  2052. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  2053. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  2054. package/template/.hermes/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  2055. package/template/.hermes/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  2056. package/template/.hermes/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  2057. package/template/.hermes/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  2058. package/template/.pi/skills/beautiful-article/README.md +0 -450
  2059. package/template/.pi/skills/beautiful-article/README.zh-CN.md +0 -450
  2060. package/template/.pi/skills/beautiful-article/SKILL.md +0 -466
  2061. package/template/.pi/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  2062. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  2063. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  2064. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  2065. package/template/.pi/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  2066. package/template/.pi/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  2067. package/template/.pi/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  2068. package/template/.pi/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  2069. package/template/.pi/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  2070. package/template/.pi/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  2071. package/template/.pi/skills/beautiful-article/manifest.json +0 -15
  2072. package/template/.pi/skills/beautiful-article/references/article-types/briefing.md +0 -32
  2073. package/template/.pi/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  2074. package/template/.pi/skills/beautiful-article/references/article-types/essay.md +0 -31
  2075. package/template/.pi/skills/beautiful-article/references/article-types/explainer.md +0 -32
  2076. package/template/.pi/skills/beautiful-article/references/article-types/full-report.md +0 -32
  2077. package/template/.pi/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  2078. package/template/.pi/skills/beautiful-article/references/article-types/longform.md +0 -32
  2079. package/template/.pi/skills/beautiful-article/references/article-types/review.md +0 -32
  2080. package/template/.pi/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  2081. package/template/.pi/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  2082. package/template/.pi/skills/beautiful-article/references/article-types.md +0 -42
  2083. package/template/.pi/skills/beautiful-article/references/asset-policy.md +0 -71
  2084. package/template/.pi/skills/beautiful-article/references/component-policy.md +0 -103
  2085. package/template/.pi/skills/beautiful-article/references/cover.md +0 -208
  2086. package/template/.pi/skills/beautiful-article/references/harness.md +0 -35
  2087. package/template/.pi/skills/beautiful-article/references/html-output.md +0 -42
  2088. package/template/.pi/skills/beautiful-article/references/information-density.md +0 -50
  2089. package/template/.pi/skills/beautiful-article/references/layout.md +0 -46
  2090. package/template/.pi/skills/beautiful-article/references/pdf-output.md +0 -208
  2091. package/template/.pi/skills/beautiful-article/references/plan-template.md +0 -109
  2092. package/template/.pi/skills/beautiful-article/references/raw-policy.md +0 -86
  2093. package/template/.pi/skills/beautiful-article/references/repair-policy.md +0 -35
  2094. package/template/.pi/skills/beautiful-article/references/review-checklist.md +0 -133
  2095. package/template/.pi/skills/beautiful-article/references/scaffold.md +0 -77
  2096. package/template/.pi/skills/beautiful-article/references/section-build.md +0 -100
  2097. package/template/.pi/skills/beautiful-article/references/source-to-markdown.md +0 -118
  2098. package/template/.pi/skills/beautiful-article/references/theme-selection.md +0 -48
  2099. package/template/.pi/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  2100. package/template/.pi/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  2101. package/template/.pi/skills/beautiful-article/scripts/scaffold.sh +0 -172
  2102. package/template/.pi/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  2103. package/template/.pi/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  2104. package/template/.pi/skills/beautiful-article/theme-profiles/andy.md +0 -57
  2105. package/template/.pi/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  2106. package/template/.pi/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  2107. package/template/.pi/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  2108. package/template/.pi/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  2109. package/template/.pi/skills/beautiful-article/theme-profiles/index.json +0 -112
  2110. package/template/.pi/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  2111. package/template/.pi/skills/beautiful-article/theme-profiles/press.md +0 -61
  2112. package/template/.pi/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  2113. package/template/.pi/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  2114. package/template/.pi/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  2115. package/template/.pi/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  2116. package/template/.pi/skills/drawio/.mcp.json +0 -8
  2117. package/template/.pi/skills/drawio/CHANGELOG.md +0 -216
  2118. package/template/.pi/skills/drawio/SKILL.md +0 -157
  2119. package/template/.pi/skills/drawio/agents/interface.yaml +0 -26
  2120. package/template/.pi/skills/drawio/agents/openai.yaml +0 -26
  2121. package/template/.pi/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  2122. package/template/.pi/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  2123. package/template/.pi/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  2124. package/template/.pi/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  2125. package/template/.pi/skills/drawio/assets/examples/login-flow.drawio +0 -6
  2126. package/template/.pi/skills/drawio/assets/examples/microservices.drawio +0 -6
  2127. package/template/.pi/skills/drawio/assets/examples/neural-network.drawio +0 -6
  2128. package/template/.pi/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  2129. package/template/.pi/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  2130. package/template/.pi/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  2131. package/template/.pi/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  2132. package/template/.pi/skills/drawio/assets/palettes/c4-blue.json +0 -29
  2133. package/template/.pi/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  2134. package/template/.pi/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  2135. package/template/.pi/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  2136. package/template/.pi/skills/drawio/assets/palettes/ieee-color.json +0 -17
  2137. package/template/.pi/skills/drawio/assets/palettes/journal-jama.json +0 -20
  2138. package/template/.pi/skills/drawio/assets/palettes/journal-npg.json +0 -23
  2139. package/template/.pi/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  2140. package/template/.pi/skills/drawio/assets/palettes/morandi.json +0 -21
  2141. package/template/.pi/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  2142. package/template/.pi/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  2143. package/template/.pi/skills/drawio/assets/palettes/tol-bright.json +0 -20
  2144. package/template/.pi/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  2145. package/template/.pi/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  2146. package/template/.pi/skills/drawio/assets/palettes/tol-muted.json +0 -22
  2147. package/template/.pi/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  2148. package/template/.pi/skills/drawio/assets/schemas/spec.schema.json +0 -620
  2149. package/template/.pi/skills/drawio/assets/themes/academic-color.json +0 -299
  2150. package/template/.pi/skills/drawio/assets/themes/academic.json +0 -245
  2151. package/template/.pi/skills/drawio/assets/themes/arch-dark.json +0 -253
  2152. package/template/.pi/skills/drawio/assets/themes/blueprint.json +0 -246
  2153. package/template/.pi/skills/drawio/assets/themes/dark-luxury.json +0 -246
  2154. package/template/.pi/skills/drawio/assets/themes/dark-terminal.json +0 -244
  2155. package/template/.pi/skills/drawio/assets/themes/dark.json +0 -220
  2156. package/template/.pi/skills/drawio/assets/themes/high-contrast.json +0 -220
  2157. package/template/.pi/skills/drawio/assets/themes/nature.json +0 -220
  2158. package/template/.pi/skills/drawio/assets/themes/notion-clean.json +0 -246
  2159. package/template/.pi/skills/drawio/assets/themes/tech-blue.json +0 -220
  2160. package/template/.pi/skills/drawio/evals/README.md +0 -17
  2161. package/template/.pi/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  2162. package/template/.pi/skills/drawio/evals/baseline-prompts.json +0 -122
  2163. package/template/.pi/skills/drawio/evals/darwin-results.tsv +0 -4
  2164. package/template/.pi/skills/drawio/evals/evals.json +0 -223
  2165. package/template/.pi/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  2166. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  2167. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  2168. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  2169. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  2170. package/template/.pi/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  2171. package/template/.pi/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  2172. package/template/.pi/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  2173. package/template/.pi/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  2174. package/template/.pi/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  2175. package/template/.pi/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  2176. package/template/.pi/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  2177. package/template/.pi/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  2178. package/template/.pi/skills/drawio/evals/upstream-integration-cases.json +0 -78
  2179. package/template/.pi/skills/drawio/evals/vision-preview-cases.json +0 -147
  2180. package/template/.pi/skills/drawio/references/docs/agent-diagrams.md +0 -164
  2181. package/template/.pi/skills/drawio/references/docs/ah-format.md +0 -322
  2182. package/template/.pi/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  2183. package/template/.pi/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  2184. package/template/.pi/skills/drawio/references/docs/code-importers.md +0 -53
  2185. package/template/.pi/skills/drawio/references/docs/config-importers.md +0 -68
  2186. package/template/.pi/skills/drawio/references/docs/design-system/README.md +0 -204
  2187. package/template/.pi/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  2188. package/template/.pi/skills/drawio/references/docs/design-system/connectors.md +0 -388
  2189. package/template/.pi/skills/drawio/references/docs/design-system/formulas.md +0 -196
  2190. package/template/.pi/skills/drawio/references/docs/design-system/icons.md +0 -332
  2191. package/template/.pi/skills/drawio/references/docs/design-system/shapes.md +0 -269
  2192. package/template/.pi/skills/drawio/references/docs/design-system/specification.md +0 -754
  2193. package/template/.pi/skills/drawio/references/docs/design-system/themes.md +0 -441
  2194. package/template/.pi/skills/drawio/references/docs/design-system/tokens.md +0 -232
  2195. package/template/.pi/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  2196. package/template/.pi/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  2197. package/template/.pi/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  2198. package/template/.pi/skills/drawio/references/docs/math-typesetting.md +0 -258
  2199. package/template/.pi/skills/drawio/references/docs/mcp-tools.md +0 -85
  2200. package/template/.pi/skills/drawio/references/docs/migration-readiness.md +0 -73
  2201. package/template/.pi/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  2202. package/template/.pi/skills/drawio/references/docs/style-extraction.md +0 -261
  2203. package/template/.pi/skills/drawio/references/docs/style-presets.md +0 -126
  2204. package/template/.pi/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  2205. package/template/.pi/skills/drawio/references/docs/xml-format.md +0 -53
  2206. package/template/.pi/skills/drawio/references/examples/README.md +0 -33
  2207. package/template/.pi/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  2208. package/template/.pi/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  2209. package/template/.pi/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  2210. package/template/.pi/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  2211. package/template/.pi/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  2212. package/template/.pi/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  2213. package/template/.pi/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  2214. package/template/.pi/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  2215. package/template/.pi/skills/drawio/references/examples/e-commerce.yaml +0 -141
  2216. package/template/.pi/skills/drawio/references/examples/importers/README.md +0 -10
  2217. package/template/.pi/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  2218. package/template/.pi/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  2219. package/template/.pi/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  2220. package/template/.pi/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  2221. package/template/.pi/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  2222. package/template/.pi/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  2223. package/template/.pi/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  2224. package/template/.pi/skills/drawio/references/examples/importers/schema.sql +0 -10
  2225. package/template/.pi/skills/drawio/references/examples/importers/terraform.tf +0 -9
  2226. package/template/.pi/skills/drawio/references/examples/login-flow.yaml +0 -65
  2227. package/template/.pi/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  2228. package/template/.pi/skills/drawio/references/examples/microservices.yaml +0 -58
  2229. package/template/.pi/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  2230. package/template/.pi/skills/drawio/references/examples/neural-network.yaml +0 -66
  2231. package/template/.pi/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  2232. package/template/.pi/skills/drawio/references/examples/palettes/README.md +0 -29
  2233. package/template/.pi/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  2234. package/template/.pi/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  2235. package/template/.pi/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  2236. package/template/.pi/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  2237. package/template/.pi/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  2238. package/template/.pi/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  2239. package/template/.pi/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  2240. package/template/.pi/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  2241. package/template/.pi/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  2242. package/template/.pi/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  2243. package/template/.pi/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  2244. package/template/.pi/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  2245. package/template/.pi/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  2246. package/template/.pi/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  2247. package/template/.pi/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  2248. package/template/.pi/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  2249. package/template/.pi/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  2250. package/template/.pi/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  2251. package/template/.pi/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  2252. package/template/.pi/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  2253. package/template/.pi/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  2254. package/template/.pi/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  2255. package/template/.pi/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  2256. package/template/.pi/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  2257. package/template/.pi/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  2258. package/template/.pi/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  2259. package/template/.pi/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  2260. package/template/.pi/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  2261. package/template/.pi/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  2262. package/template/.pi/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  2263. package/template/.pi/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  2264. package/template/.pi/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  2265. package/template/.pi/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  2266. package/template/.pi/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  2267. package/template/.pi/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  2268. package/template/.pi/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  2269. package/template/.pi/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  2270. package/template/.pi/skills/drawio/references/official/style-reference.md +0 -936
  2271. package/template/.pi/skills/drawio/references/official/xml-reference.md +0 -262
  2272. package/template/.pi/skills/drawio/references/palette.schema.json +0 -59
  2273. package/template/.pi/skills/drawio/references/theme.schema.json +0 -249
  2274. package/template/.pi/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  2275. package/template/.pi/skills/drawio/references/workflows/create.md +0 -195
  2276. package/template/.pi/skills/drawio/references/workflows/edit.md +0 -174
  2277. package/template/.pi/skills/drawio/references/workflows/replicate.md +0 -239
  2278. package/template/.pi/skills/drawio/references/workflows/visual-review.md +0 -108
  2279. package/template/.pi/skills/drawio/reports/output_quality_scorecard.md +0 -106
  2280. package/template/.pi/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  2281. package/template/.pi/skills/drawio/scripts/adapters/ci.js +0 -139
  2282. package/template/.pi/skills/drawio/scripts/adapters/ci.test.js +0 -41
  2283. package/template/.pi/skills/drawio/scripts/adapters/code-common.js +0 -171
  2284. package/template/.pi/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  2285. package/template/.pi/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  2286. package/template/.pi/skills/drawio/scripts/adapters/compose.js +0 -134
  2287. package/template/.pi/skills/drawio/scripts/adapters/compose.test.js +0 -54
  2288. package/template/.pi/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  2289. package/template/.pi/skills/drawio/scripts/adapters/config-common.js +0 -131
  2290. package/template/.pi/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  2291. package/template/.pi/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  2292. package/template/.pi/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  2293. package/template/.pi/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  2294. package/template/.pi/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  2295. package/template/.pi/skills/drawio/scripts/adapters/go-code.js +0 -168
  2296. package/template/.pi/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  2297. package/template/.pi/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  2298. package/template/.pi/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  2299. package/template/.pi/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  2300. package/template/.pi/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  2301. package/template/.pi/skills/drawio/scripts/adapters/identity.js +0 -244
  2302. package/template/.pi/skills/drawio/scripts/adapters/identity.test.js +0 -123
  2303. package/template/.pi/skills/drawio/scripts/adapters/index.js +0 -489
  2304. package/template/.pi/skills/drawio/scripts/adapters/index.test.js +0 -152
  2305. package/template/.pi/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  2306. package/template/.pi/skills/drawio/scripts/adapters/js-code.js +0 -141
  2307. package/template/.pi/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  2308. package/template/.pi/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  2309. package/template/.pi/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  2310. package/template/.pi/skills/drawio/scripts/adapters/openapi.js +0 -98
  2311. package/template/.pi/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  2312. package/template/.pi/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  2313. package/template/.pi/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  2314. package/template/.pi/skills/drawio/scripts/adapters/optional-python.js +0 -127
  2315. package/template/.pi/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  2316. package/template/.pi/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  2317. package/template/.pi/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  2318. package/template/.pi/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  2319. package/template/.pi/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  2320. package/template/.pi/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  2321. package/template/.pi/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  2322. package/template/.pi/skills/drawio/scripts/adapters/python-code.js +0 -246
  2323. package/template/.pi/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  2324. package/template/.pi/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  2325. package/template/.pi/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  2326. package/template/.pi/skills/drawio/scripts/adapters/rust-code.js +0 -207
  2327. package/template/.pi/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  2328. package/template/.pi/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  2329. package/template/.pi/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  2330. package/template/.pi/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  2331. package/template/.pi/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  2332. package/template/.pi/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  2333. package/template/.pi/skills/drawio/scripts/cli.js +0 -700
  2334. package/template/.pi/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  2335. package/template/.pi/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  2336. package/template/.pi/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  2337. package/template/.pi/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  2338. package/template/.pi/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  2339. package/template/.pi/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  2340. package/template/.pi/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  2341. package/template/.pi/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  2342. package/template/.pi/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  2343. package/template/.pi/skills/drawio/scripts/dsl/document-spec.js +0 -256
  2344. package/template/.pi/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  2345. package/template/.pi/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  2346. package/template/.pi/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  2347. package/template/.pi/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  2348. package/template/.pi/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  2349. package/template/.pi/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  2350. package/template/.pi/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  2351. package/template/.pi/skills/drawio/scripts/dsl/multi-page.js +0 -224
  2352. package/template/.pi/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  2353. package/template/.pi/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  2354. package/template/.pi/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  2355. package/template/.pi/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  2356. package/template/.pi/skills/drawio/scripts/dsl/palette.js +0 -302
  2357. package/template/.pi/skills/drawio/scripts/dsl/palette.test.js +0 -197
  2358. package/template/.pi/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  2359. package/template/.pi/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  2360. package/template/.pi/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  2361. package/template/.pi/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  2362. package/template/.pi/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  2363. package/template/.pi/skills/drawio/scripts/install.bat +0 -64
  2364. package/template/.pi/skills/drawio/scripts/install.sh +0 -44
  2365. package/template/.pi/skills/drawio/scripts/math/index.js +0 -317
  2366. package/template/.pi/skills/drawio/scripts/math/index.test.js +0 -62
  2367. package/template/.pi/skills/drawio/scripts/package.json +0 -1
  2368. package/template/.pi/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  2369. package/template/.pi/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  2370. package/template/.pi/skills/drawio/scripts/postprocess/cli.js +0 -228
  2371. package/template/.pi/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  2372. package/template/.pi/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  2373. package/template/.pi/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  2374. package/template/.pi/skills/drawio/scripts/postprocess/html.js +0 -197
  2375. package/template/.pi/skills/drawio/scripts/postprocess/html.test.js +0 -50
  2376. package/template/.pi/skills/drawio/scripts/postprocess/index.js +0 -5
  2377. package/template/.pi/skills/drawio/scripts/postprocess/input.js +0 -112
  2378. package/template/.pi/skills/drawio/scripts/postprocess/input.test.js +0 -73
  2379. package/template/.pi/skills/drawio/scripts/postprocess/mutate.js +0 -584
  2380. package/template/.pi/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  2381. package/template/.pi/skills/drawio/scripts/postprocess/projection.js +0 -178
  2382. package/template/.pi/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  2383. package/template/.pi/skills/drawio/scripts/runtime/artifacts.js +0 -283
  2384. package/template/.pi/skills/drawio/scripts/runtime/desktop.js +0 -204
  2385. package/template/.pi/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  2386. package/template/.pi/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  2387. package/template/.pi/skills/drawio/scripts/runtime/export-stability.js +0 -75
  2388. package/template/.pi/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  2389. package/template/.pi/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  2390. package/template/.pi/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  2391. package/template/.pi/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  2392. package/template/.pi/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  2393. package/template/.pi/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  2394. package/template/.pi/skills/drawio/scripts/shared/xml-utils.js +0 -241
  2395. package/template/.pi/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  2396. package/template/.pi/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  2397. package/template/.pi/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  2398. package/template/.pi/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  2399. package/template/.pi/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  2400. package/template/.pi/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  2401. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  2402. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  2403. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  2404. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  2405. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  2406. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  2407. package/template/.pi/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  2408. package/template/.pi/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  2409. package/template/.pi/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  2410. package/template/.pi/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  2411. package/template/.pi/skills/drawio/styles/built-in/corporate.json +0 -49
  2412. package/template/.pi/skills/drawio/styles/built-in/default.json +0 -49
  2413. package/template/.pi/skills/drawio/styles/built-in/handdrawn.json +0 -49
  2414. package/template/.pi/skills/drawio/styles/schema.json +0 -112
  2415. package/template/.pi/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  2416. package/template/.pi/skills/drawio-academic-skills/README.md +0 -103
  2417. package/template/.pi/skills/drawio-academic-skills/README_CN.md +0 -103
  2418. package/template/.pi/skills/drawio-academic-skills/SKILL.md +0 -161
  2419. package/template/.pi/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  2420. package/template/.pi/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  2421. package/template/.pi/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  2422. package/template/.pi/skills/drawio-academic-skills/evals/README.md +0 -13
  2423. package/template/.pi/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  2424. package/template/.pi/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  2425. package/template/.pi/skills/drawio-academic-skills/evals/evals.json +0 -228
  2426. package/template/.pi/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  2427. package/template/.pi/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  2428. package/template/.pi/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  2429. package/template/.pi/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  2430. package/template/.pi/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  2431. package/template/.pi/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  2432. package/template/.pi/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  2433. package/template/.pi/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  2434. package/template/.pi/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  2435. package/template/.pi/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  2436. package/template/.pi/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  2437. package/template/.pi/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  2438. package/template/.pi/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  2439. package/template/.pi/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  2440. package/template/.pi/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  2441. package/template/.pi/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  2442. package/template/.pi/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  2443. package/template/.pi/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  2444. package/template/.pi/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  2445. package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  2446. package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  2447. package/template/.pi/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  2448. package/template/.pi/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  2449. package/template/.pi/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  2450. package/template/.pi/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  2451. package/template/.pi/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  2452. package/template/.pi/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  2453. package/template/.pi/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  2454. package/template/.pi/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  2455. package/template/.pi/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  2456. package/template/.pi/skills/kb-retriever/README.md +0 -197
  2457. package/template/.pi/skills/kb-retriever/README.zh-CN.md +0 -197
  2458. package/template/.pi/skills/kb-retriever/SKILL.md +0 -250
  2459. package/template/.pi/skills/kb-retriever/manifest.json +0 -15
  2460. package/template/.pi/skills/kb-retriever/references/excel_analysis.md +0 -129
  2461. package/template/.pi/skills/kb-retriever/references/excel_reading.md +0 -72
  2462. package/template/.pi/skills/kb-retriever/references/pdf_reading.md +0 -362
  2463. package/template/.pi/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  2464. package/template/.pi/skills/yss-db2mybatis/requirements.txt +0 -4
  2465. package/template/.pi/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  2466. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  2467. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  2468. package/template/.pi/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  2469. package/template/.pi/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  2470. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  2471. package/template/.pi/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  2472. package/template/.qoder/skills/beautiful-article/README.md +0 -450
  2473. package/template/.qoder/skills/beautiful-article/README.zh-CN.md +0 -450
  2474. package/template/.qoder/skills/beautiful-article/SKILL.md +0 -466
  2475. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  2476. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  2477. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  2478. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  2479. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  2480. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  2481. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  2482. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  2483. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  2484. package/template/.qoder/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  2485. package/template/.qoder/skills/beautiful-article/manifest.json +0 -15
  2486. package/template/.qoder/skills/beautiful-article/references/article-types/briefing.md +0 -32
  2487. package/template/.qoder/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  2488. package/template/.qoder/skills/beautiful-article/references/article-types/essay.md +0 -31
  2489. package/template/.qoder/skills/beautiful-article/references/article-types/explainer.md +0 -32
  2490. package/template/.qoder/skills/beautiful-article/references/article-types/full-report.md +0 -32
  2491. package/template/.qoder/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  2492. package/template/.qoder/skills/beautiful-article/references/article-types/longform.md +0 -32
  2493. package/template/.qoder/skills/beautiful-article/references/article-types/review.md +0 -32
  2494. package/template/.qoder/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  2495. package/template/.qoder/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  2496. package/template/.qoder/skills/beautiful-article/references/article-types.md +0 -42
  2497. package/template/.qoder/skills/beautiful-article/references/asset-policy.md +0 -71
  2498. package/template/.qoder/skills/beautiful-article/references/component-policy.md +0 -103
  2499. package/template/.qoder/skills/beautiful-article/references/cover.md +0 -208
  2500. package/template/.qoder/skills/beautiful-article/references/harness.md +0 -35
  2501. package/template/.qoder/skills/beautiful-article/references/html-output.md +0 -42
  2502. package/template/.qoder/skills/beautiful-article/references/information-density.md +0 -50
  2503. package/template/.qoder/skills/beautiful-article/references/layout.md +0 -46
  2504. package/template/.qoder/skills/beautiful-article/references/pdf-output.md +0 -208
  2505. package/template/.qoder/skills/beautiful-article/references/plan-template.md +0 -109
  2506. package/template/.qoder/skills/beautiful-article/references/raw-policy.md +0 -86
  2507. package/template/.qoder/skills/beautiful-article/references/repair-policy.md +0 -35
  2508. package/template/.qoder/skills/beautiful-article/references/review-checklist.md +0 -133
  2509. package/template/.qoder/skills/beautiful-article/references/scaffold.md +0 -77
  2510. package/template/.qoder/skills/beautiful-article/references/section-build.md +0 -100
  2511. package/template/.qoder/skills/beautiful-article/references/source-to-markdown.md +0 -118
  2512. package/template/.qoder/skills/beautiful-article/references/theme-selection.md +0 -48
  2513. package/template/.qoder/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  2514. package/template/.qoder/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  2515. package/template/.qoder/skills/beautiful-article/scripts/scaffold.sh +0 -172
  2516. package/template/.qoder/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  2517. package/template/.qoder/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  2518. package/template/.qoder/skills/beautiful-article/theme-profiles/andy.md +0 -57
  2519. package/template/.qoder/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  2520. package/template/.qoder/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  2521. package/template/.qoder/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  2522. package/template/.qoder/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  2523. package/template/.qoder/skills/beautiful-article/theme-profiles/index.json +0 -112
  2524. package/template/.qoder/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  2525. package/template/.qoder/skills/beautiful-article/theme-profiles/press.md +0 -61
  2526. package/template/.qoder/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  2527. package/template/.qoder/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  2528. package/template/.qoder/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  2529. package/template/.qoder/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  2530. package/template/.qoder/skills/drawio/.mcp.json +0 -8
  2531. package/template/.qoder/skills/drawio/CHANGELOG.md +0 -216
  2532. package/template/.qoder/skills/drawio/SKILL.md +0 -157
  2533. package/template/.qoder/skills/drawio/agents/interface.yaml +0 -26
  2534. package/template/.qoder/skills/drawio/agents/openai.yaml +0 -26
  2535. package/template/.qoder/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  2536. package/template/.qoder/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  2537. package/template/.qoder/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  2538. package/template/.qoder/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  2539. package/template/.qoder/skills/drawio/assets/examples/login-flow.drawio +0 -6
  2540. package/template/.qoder/skills/drawio/assets/examples/microservices.drawio +0 -6
  2541. package/template/.qoder/skills/drawio/assets/examples/neural-network.drawio +0 -6
  2542. package/template/.qoder/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  2543. package/template/.qoder/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  2544. package/template/.qoder/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  2545. package/template/.qoder/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  2546. package/template/.qoder/skills/drawio/assets/palettes/c4-blue.json +0 -29
  2547. package/template/.qoder/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  2548. package/template/.qoder/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  2549. package/template/.qoder/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  2550. package/template/.qoder/skills/drawio/assets/palettes/ieee-color.json +0 -17
  2551. package/template/.qoder/skills/drawio/assets/palettes/journal-jama.json +0 -20
  2552. package/template/.qoder/skills/drawio/assets/palettes/journal-npg.json +0 -23
  2553. package/template/.qoder/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  2554. package/template/.qoder/skills/drawio/assets/palettes/morandi.json +0 -21
  2555. package/template/.qoder/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  2556. package/template/.qoder/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  2557. package/template/.qoder/skills/drawio/assets/palettes/tol-bright.json +0 -20
  2558. package/template/.qoder/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  2559. package/template/.qoder/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  2560. package/template/.qoder/skills/drawio/assets/palettes/tol-muted.json +0 -22
  2561. package/template/.qoder/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  2562. package/template/.qoder/skills/drawio/assets/schemas/spec.schema.json +0 -620
  2563. package/template/.qoder/skills/drawio/assets/themes/academic-color.json +0 -299
  2564. package/template/.qoder/skills/drawio/assets/themes/academic.json +0 -245
  2565. package/template/.qoder/skills/drawio/assets/themes/arch-dark.json +0 -253
  2566. package/template/.qoder/skills/drawio/assets/themes/blueprint.json +0 -246
  2567. package/template/.qoder/skills/drawio/assets/themes/dark-luxury.json +0 -246
  2568. package/template/.qoder/skills/drawio/assets/themes/dark-terminal.json +0 -244
  2569. package/template/.qoder/skills/drawio/assets/themes/dark.json +0 -220
  2570. package/template/.qoder/skills/drawio/assets/themes/high-contrast.json +0 -220
  2571. package/template/.qoder/skills/drawio/assets/themes/nature.json +0 -220
  2572. package/template/.qoder/skills/drawio/assets/themes/notion-clean.json +0 -246
  2573. package/template/.qoder/skills/drawio/assets/themes/tech-blue.json +0 -220
  2574. package/template/.qoder/skills/drawio/evals/README.md +0 -17
  2575. package/template/.qoder/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  2576. package/template/.qoder/skills/drawio/evals/baseline-prompts.json +0 -122
  2577. package/template/.qoder/skills/drawio/evals/darwin-results.tsv +0 -4
  2578. package/template/.qoder/skills/drawio/evals/evals.json +0 -223
  2579. package/template/.qoder/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  2580. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  2581. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  2582. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  2583. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  2584. package/template/.qoder/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  2585. package/template/.qoder/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  2586. package/template/.qoder/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  2587. package/template/.qoder/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  2588. package/template/.qoder/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  2589. package/template/.qoder/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  2590. package/template/.qoder/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  2591. package/template/.qoder/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  2592. package/template/.qoder/skills/drawio/evals/upstream-integration-cases.json +0 -78
  2593. package/template/.qoder/skills/drawio/evals/vision-preview-cases.json +0 -147
  2594. package/template/.qoder/skills/drawio/references/docs/agent-diagrams.md +0 -164
  2595. package/template/.qoder/skills/drawio/references/docs/ah-format.md +0 -322
  2596. package/template/.qoder/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  2597. package/template/.qoder/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  2598. package/template/.qoder/skills/drawio/references/docs/code-importers.md +0 -53
  2599. package/template/.qoder/skills/drawio/references/docs/config-importers.md +0 -68
  2600. package/template/.qoder/skills/drawio/references/docs/design-system/README.md +0 -204
  2601. package/template/.qoder/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  2602. package/template/.qoder/skills/drawio/references/docs/design-system/connectors.md +0 -388
  2603. package/template/.qoder/skills/drawio/references/docs/design-system/formulas.md +0 -196
  2604. package/template/.qoder/skills/drawio/references/docs/design-system/icons.md +0 -332
  2605. package/template/.qoder/skills/drawio/references/docs/design-system/shapes.md +0 -269
  2606. package/template/.qoder/skills/drawio/references/docs/design-system/specification.md +0 -754
  2607. package/template/.qoder/skills/drawio/references/docs/design-system/themes.md +0 -441
  2608. package/template/.qoder/skills/drawio/references/docs/design-system/tokens.md +0 -232
  2609. package/template/.qoder/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  2610. package/template/.qoder/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  2611. package/template/.qoder/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  2612. package/template/.qoder/skills/drawio/references/docs/math-typesetting.md +0 -258
  2613. package/template/.qoder/skills/drawio/references/docs/mcp-tools.md +0 -85
  2614. package/template/.qoder/skills/drawio/references/docs/migration-readiness.md +0 -73
  2615. package/template/.qoder/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  2616. package/template/.qoder/skills/drawio/references/docs/style-extraction.md +0 -261
  2617. package/template/.qoder/skills/drawio/references/docs/style-presets.md +0 -126
  2618. package/template/.qoder/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  2619. package/template/.qoder/skills/drawio/references/docs/xml-format.md +0 -53
  2620. package/template/.qoder/skills/drawio/references/examples/README.md +0 -33
  2621. package/template/.qoder/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  2622. package/template/.qoder/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  2623. package/template/.qoder/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  2624. package/template/.qoder/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  2625. package/template/.qoder/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  2626. package/template/.qoder/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  2627. package/template/.qoder/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  2628. package/template/.qoder/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  2629. package/template/.qoder/skills/drawio/references/examples/e-commerce.yaml +0 -141
  2630. package/template/.qoder/skills/drawio/references/examples/importers/README.md +0 -10
  2631. package/template/.qoder/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  2632. package/template/.qoder/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  2633. package/template/.qoder/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  2634. package/template/.qoder/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  2635. package/template/.qoder/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  2636. package/template/.qoder/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  2637. package/template/.qoder/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  2638. package/template/.qoder/skills/drawio/references/examples/importers/schema.sql +0 -10
  2639. package/template/.qoder/skills/drawio/references/examples/importers/terraform.tf +0 -9
  2640. package/template/.qoder/skills/drawio/references/examples/login-flow.yaml +0 -65
  2641. package/template/.qoder/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  2642. package/template/.qoder/skills/drawio/references/examples/microservices.yaml +0 -58
  2643. package/template/.qoder/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  2644. package/template/.qoder/skills/drawio/references/examples/neural-network.yaml +0 -66
  2645. package/template/.qoder/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  2646. package/template/.qoder/skills/drawio/references/examples/palettes/README.md +0 -29
  2647. package/template/.qoder/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  2648. package/template/.qoder/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  2649. package/template/.qoder/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  2650. package/template/.qoder/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  2651. package/template/.qoder/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  2652. package/template/.qoder/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  2653. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  2654. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  2655. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  2656. package/template/.qoder/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  2657. package/template/.qoder/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  2658. package/template/.qoder/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  2659. package/template/.qoder/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  2660. package/template/.qoder/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  2661. package/template/.qoder/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  2662. package/template/.qoder/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  2663. package/template/.qoder/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  2664. package/template/.qoder/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  2665. package/template/.qoder/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  2666. package/template/.qoder/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  2667. package/template/.qoder/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  2668. package/template/.qoder/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  2669. package/template/.qoder/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  2670. package/template/.qoder/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  2671. package/template/.qoder/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  2672. package/template/.qoder/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  2673. package/template/.qoder/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  2674. package/template/.qoder/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  2675. package/template/.qoder/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  2676. package/template/.qoder/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  2677. package/template/.qoder/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  2678. package/template/.qoder/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  2679. package/template/.qoder/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  2680. package/template/.qoder/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  2681. package/template/.qoder/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  2682. package/template/.qoder/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  2683. package/template/.qoder/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  2684. package/template/.qoder/skills/drawio/references/official/style-reference.md +0 -936
  2685. package/template/.qoder/skills/drawio/references/official/xml-reference.md +0 -262
  2686. package/template/.qoder/skills/drawio/references/palette.schema.json +0 -59
  2687. package/template/.qoder/skills/drawio/references/theme.schema.json +0 -249
  2688. package/template/.qoder/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  2689. package/template/.qoder/skills/drawio/references/workflows/create.md +0 -195
  2690. package/template/.qoder/skills/drawio/references/workflows/edit.md +0 -174
  2691. package/template/.qoder/skills/drawio/references/workflows/replicate.md +0 -239
  2692. package/template/.qoder/skills/drawio/references/workflows/visual-review.md +0 -108
  2693. package/template/.qoder/skills/drawio/reports/output_quality_scorecard.md +0 -106
  2694. package/template/.qoder/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  2695. package/template/.qoder/skills/drawio/scripts/adapters/ci.js +0 -139
  2696. package/template/.qoder/skills/drawio/scripts/adapters/ci.test.js +0 -41
  2697. package/template/.qoder/skills/drawio/scripts/adapters/code-common.js +0 -171
  2698. package/template/.qoder/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  2699. package/template/.qoder/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  2700. package/template/.qoder/skills/drawio/scripts/adapters/compose.js +0 -134
  2701. package/template/.qoder/skills/drawio/scripts/adapters/compose.test.js +0 -54
  2702. package/template/.qoder/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  2703. package/template/.qoder/skills/drawio/scripts/adapters/config-common.js +0 -131
  2704. package/template/.qoder/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  2705. package/template/.qoder/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  2706. package/template/.qoder/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  2707. package/template/.qoder/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  2708. package/template/.qoder/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  2709. package/template/.qoder/skills/drawio/scripts/adapters/go-code.js +0 -168
  2710. package/template/.qoder/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  2711. package/template/.qoder/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  2712. package/template/.qoder/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  2713. package/template/.qoder/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  2714. package/template/.qoder/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  2715. package/template/.qoder/skills/drawio/scripts/adapters/identity.js +0 -244
  2716. package/template/.qoder/skills/drawio/scripts/adapters/identity.test.js +0 -123
  2717. package/template/.qoder/skills/drawio/scripts/adapters/index.js +0 -489
  2718. package/template/.qoder/skills/drawio/scripts/adapters/index.test.js +0 -152
  2719. package/template/.qoder/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  2720. package/template/.qoder/skills/drawio/scripts/adapters/js-code.js +0 -141
  2721. package/template/.qoder/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  2722. package/template/.qoder/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  2723. package/template/.qoder/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  2724. package/template/.qoder/skills/drawio/scripts/adapters/openapi.js +0 -98
  2725. package/template/.qoder/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  2726. package/template/.qoder/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  2727. package/template/.qoder/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  2728. package/template/.qoder/skills/drawio/scripts/adapters/optional-python.js +0 -127
  2729. package/template/.qoder/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  2730. package/template/.qoder/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  2731. package/template/.qoder/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  2732. package/template/.qoder/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  2733. package/template/.qoder/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  2734. package/template/.qoder/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  2735. package/template/.qoder/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  2736. package/template/.qoder/skills/drawio/scripts/adapters/python-code.js +0 -246
  2737. package/template/.qoder/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  2738. package/template/.qoder/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  2739. package/template/.qoder/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  2740. package/template/.qoder/skills/drawio/scripts/adapters/rust-code.js +0 -207
  2741. package/template/.qoder/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  2742. package/template/.qoder/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  2743. package/template/.qoder/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  2744. package/template/.qoder/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  2745. package/template/.qoder/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  2746. package/template/.qoder/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  2747. package/template/.qoder/skills/drawio/scripts/cli.js +0 -700
  2748. package/template/.qoder/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  2749. package/template/.qoder/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  2750. package/template/.qoder/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  2751. package/template/.qoder/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  2752. package/template/.qoder/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  2753. package/template/.qoder/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  2754. package/template/.qoder/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  2755. package/template/.qoder/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  2756. package/template/.qoder/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  2757. package/template/.qoder/skills/drawio/scripts/dsl/document-spec.js +0 -256
  2758. package/template/.qoder/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  2759. package/template/.qoder/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  2760. package/template/.qoder/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  2761. package/template/.qoder/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  2762. package/template/.qoder/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  2763. package/template/.qoder/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  2764. package/template/.qoder/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  2765. package/template/.qoder/skills/drawio/scripts/dsl/multi-page.js +0 -224
  2766. package/template/.qoder/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  2767. package/template/.qoder/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  2768. package/template/.qoder/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  2769. package/template/.qoder/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  2770. package/template/.qoder/skills/drawio/scripts/dsl/palette.js +0 -302
  2771. package/template/.qoder/skills/drawio/scripts/dsl/palette.test.js +0 -197
  2772. package/template/.qoder/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  2773. package/template/.qoder/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  2774. package/template/.qoder/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  2775. package/template/.qoder/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  2776. package/template/.qoder/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  2777. package/template/.qoder/skills/drawio/scripts/install.bat +0 -64
  2778. package/template/.qoder/skills/drawio/scripts/install.sh +0 -44
  2779. package/template/.qoder/skills/drawio/scripts/math/index.js +0 -317
  2780. package/template/.qoder/skills/drawio/scripts/math/index.test.js +0 -62
  2781. package/template/.qoder/skills/drawio/scripts/package.json +0 -1
  2782. package/template/.qoder/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  2783. package/template/.qoder/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  2784. package/template/.qoder/skills/drawio/scripts/postprocess/cli.js +0 -228
  2785. package/template/.qoder/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  2786. package/template/.qoder/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  2787. package/template/.qoder/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  2788. package/template/.qoder/skills/drawio/scripts/postprocess/html.js +0 -197
  2789. package/template/.qoder/skills/drawio/scripts/postprocess/html.test.js +0 -50
  2790. package/template/.qoder/skills/drawio/scripts/postprocess/index.js +0 -5
  2791. package/template/.qoder/skills/drawio/scripts/postprocess/input.js +0 -112
  2792. package/template/.qoder/skills/drawio/scripts/postprocess/input.test.js +0 -73
  2793. package/template/.qoder/skills/drawio/scripts/postprocess/mutate.js +0 -584
  2794. package/template/.qoder/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  2795. package/template/.qoder/skills/drawio/scripts/postprocess/projection.js +0 -178
  2796. package/template/.qoder/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  2797. package/template/.qoder/skills/drawio/scripts/runtime/artifacts.js +0 -283
  2798. package/template/.qoder/skills/drawio/scripts/runtime/desktop.js +0 -204
  2799. package/template/.qoder/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  2800. package/template/.qoder/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  2801. package/template/.qoder/skills/drawio/scripts/runtime/export-stability.js +0 -75
  2802. package/template/.qoder/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  2803. package/template/.qoder/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  2804. package/template/.qoder/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  2805. package/template/.qoder/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  2806. package/template/.qoder/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  2807. package/template/.qoder/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  2808. package/template/.qoder/skills/drawio/scripts/shared/xml-utils.js +0 -241
  2809. package/template/.qoder/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  2810. package/template/.qoder/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  2811. package/template/.qoder/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  2812. package/template/.qoder/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  2813. package/template/.qoder/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  2814. package/template/.qoder/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  2815. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  2816. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  2817. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  2818. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  2819. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  2820. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  2821. package/template/.qoder/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  2822. package/template/.qoder/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  2823. package/template/.qoder/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  2824. package/template/.qoder/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  2825. package/template/.qoder/skills/drawio/styles/built-in/corporate.json +0 -49
  2826. package/template/.qoder/skills/drawio/styles/built-in/default.json +0 -49
  2827. package/template/.qoder/skills/drawio/styles/built-in/handdrawn.json +0 -49
  2828. package/template/.qoder/skills/drawio/styles/schema.json +0 -112
  2829. package/template/.qoder/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  2830. package/template/.qoder/skills/drawio-academic-skills/README.md +0 -103
  2831. package/template/.qoder/skills/drawio-academic-skills/README_CN.md +0 -103
  2832. package/template/.qoder/skills/drawio-academic-skills/SKILL.md +0 -161
  2833. package/template/.qoder/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  2834. package/template/.qoder/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  2835. package/template/.qoder/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  2836. package/template/.qoder/skills/drawio-academic-skills/evals/README.md +0 -13
  2837. package/template/.qoder/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  2838. package/template/.qoder/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  2839. package/template/.qoder/skills/drawio-academic-skills/evals/evals.json +0 -228
  2840. package/template/.qoder/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  2841. package/template/.qoder/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  2842. package/template/.qoder/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  2843. package/template/.qoder/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  2844. package/template/.qoder/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  2845. package/template/.qoder/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  2846. package/template/.qoder/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  2847. package/template/.qoder/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  2848. package/template/.qoder/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  2849. package/template/.qoder/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  2850. package/template/.qoder/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  2851. package/template/.qoder/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  2852. package/template/.qoder/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  2853. package/template/.qoder/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  2854. package/template/.qoder/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  2855. package/template/.qoder/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  2856. package/template/.qoder/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  2857. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  2858. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  2859. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  2860. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  2861. package/template/.qoder/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  2862. package/template/.qoder/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  2863. package/template/.qoder/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  2864. package/template/.qoder/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  2865. package/template/.qoder/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  2866. package/template/.qoder/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  2867. package/template/.qoder/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  2868. package/template/.qoder/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  2869. package/template/.qoder/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  2870. package/template/.qoder/skills/kb-retriever/README.md +0 -197
  2871. package/template/.qoder/skills/kb-retriever/README.zh-CN.md +0 -197
  2872. package/template/.qoder/skills/kb-retriever/SKILL.md +0 -250
  2873. package/template/.qoder/skills/kb-retriever/manifest.json +0 -15
  2874. package/template/.qoder/skills/kb-retriever/references/excel_analysis.md +0 -129
  2875. package/template/.qoder/skills/kb-retriever/references/excel_reading.md +0 -72
  2876. package/template/.qoder/skills/kb-retriever/references/pdf_reading.md +0 -362
  2877. package/template/.qoder/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  2878. package/template/.qoder/skills/yss-db2mybatis/requirements.txt +0 -4
  2879. package/template/.qoder/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  2880. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  2881. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  2882. package/template/.qoder/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  2883. package/template/.qoder/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  2884. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  2885. package/template/.qoder/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  2886. package/template/.trae/skills/beautiful-article/README.md +0 -450
  2887. package/template/.trae/skills/beautiful-article/README.zh-CN.md +0 -450
  2888. package/template/.trae/skills/beautiful-article/SKILL.md +0 -466
  2889. package/template/.trae/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc +0 -1
  2890. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/Article.tsx +0 -69
  2891. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/Cover.tsx +0 -172
  2892. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/main.tsx +0 -26
  2893. package/template/.trae/skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx +0 -30
  2894. package/template/.trae/skills/beautiful-article/assets/scaffold-template/index.html +0 -19
  2895. package/template/.trae/skills/beautiful-article/assets/scaffold-template/package.json +0 -26
  2896. package/template/.trae/skills/beautiful-article/assets/scaffold-template/tsconfig.json +0 -20
  2897. package/template/.trae/skills/beautiful-article/assets/scaffold-template/tsconfig.node.json +0 -11
  2898. package/template/.trae/skills/beautiful-article/assets/scaffold-template/vite.config.ts +0 -18
  2899. package/template/.trae/skills/beautiful-article/manifest.json +0 -15
  2900. package/template/.trae/skills/beautiful-article/references/article-types/briefing.md +0 -32
  2901. package/template/.trae/skills/beautiful-article/references/article-types/dialogue.md +0 -30
  2902. package/template/.trae/skills/beautiful-article/references/article-types/essay.md +0 -31
  2903. package/template/.trae/skills/beautiful-article/references/article-types/explainer.md +0 -32
  2904. package/template/.trae/skills/beautiful-article/references/article-types/full-report.md +0 -32
  2905. package/template/.trae/skills/beautiful-article/references/article-types/interactive-explainer.md +0 -66
  2906. package/template/.trae/skills/beautiful-article/references/article-types/longform.md +0 -32
  2907. package/template/.trae/skills/beautiful-article/references/article-types/review.md +0 -32
  2908. package/template/.trae/skills/beautiful-article/references/article-types/tutorial.md +0 -30
  2909. package/template/.trae/skills/beautiful-article/references/article-types/visual-essay.md +0 -33
  2910. package/template/.trae/skills/beautiful-article/references/article-types.md +0 -42
  2911. package/template/.trae/skills/beautiful-article/references/asset-policy.md +0 -71
  2912. package/template/.trae/skills/beautiful-article/references/component-policy.md +0 -103
  2913. package/template/.trae/skills/beautiful-article/references/cover.md +0 -208
  2914. package/template/.trae/skills/beautiful-article/references/harness.md +0 -35
  2915. package/template/.trae/skills/beautiful-article/references/html-output.md +0 -42
  2916. package/template/.trae/skills/beautiful-article/references/information-density.md +0 -50
  2917. package/template/.trae/skills/beautiful-article/references/layout.md +0 -46
  2918. package/template/.trae/skills/beautiful-article/references/pdf-output.md +0 -208
  2919. package/template/.trae/skills/beautiful-article/references/plan-template.md +0 -109
  2920. package/template/.trae/skills/beautiful-article/references/raw-policy.md +0 -86
  2921. package/template/.trae/skills/beautiful-article/references/repair-policy.md +0 -35
  2922. package/template/.trae/skills/beautiful-article/references/review-checklist.md +0 -133
  2923. package/template/.trae/skills/beautiful-article/references/scaffold.md +0 -77
  2924. package/template/.trae/skills/beautiful-article/references/section-build.md +0 -100
  2925. package/template/.trae/skills/beautiful-article/references/source-to-markdown.md +0 -118
  2926. package/template/.trae/skills/beautiful-article/references/theme-selection.md +0 -48
  2927. package/template/.trae/skills/beautiful-article/scripts/html-to-pdf.sh +0 -160
  2928. package/template/.trae/skills/beautiful-article/scripts/pdf-print-overrides.css +0 -192
  2929. package/template/.trae/skills/beautiful-article/scripts/scaffold.sh +0 -172
  2930. package/template/.trae/skills/beautiful-article/scripts/source-to-markdown-markitdown.py +0 -100
  2931. package/template/.trae/skills/beautiful-article/scripts/source-to-markdown.py +0 -174
  2932. package/template/.trae/skills/beautiful-article/theme-profiles/andy.md +0 -57
  2933. package/template/.trae/skills/beautiful-article/theme-profiles/bayer.md +0 -57
  2934. package/template/.trae/skills/beautiful-article/theme-profiles/bodoni.md +0 -57
  2935. package/template/.trae/skills/beautiful-article/theme-profiles/freddie.md +0 -57
  2936. package/template/.trae/skills/beautiful-article/theme-profiles/fuller.md +0 -56
  2937. package/template/.trae/skills/beautiful-article/theme-profiles/index.json +0 -112
  2938. package/template/.trae/skills/beautiful-article/theme-profiles/knuth.md +0 -60
  2939. package/template/.trae/skills/beautiful-article/theme-profiles/press.md +0 -61
  2940. package/template/.trae/skills/beautiful-article/theme-profiles/shannon.md +0 -64
  2941. package/template/.trae/skills/beautiful-article/theme-profiles/sottsass.md +0 -57
  2942. package/template/.trae/skills/beautiful-article/theme-profiles/tufte.md +0 -64
  2943. package/template/.trae/skills/beautiful-article/theme-profiles/vignelli.md +0 -63
  2944. package/template/.trae/skills/drawio/.mcp.json +0 -8
  2945. package/template/.trae/skills/drawio/CHANGELOG.md +0 -216
  2946. package/template/.trae/skills/drawio/SKILL.md +0 -157
  2947. package/template/.trae/skills/drawio/agents/interface.yaml +0 -26
  2948. package/template/.trae/skills/drawio/agents/openai.yaml +0 -26
  2949. package/template/.trae/skills/drawio/assets/catalog/ai-icons.json.gz +0 -0
  2950. package/template/.trae/skills/drawio/assets/catalog/shape-catalog.json.gz +0 -0
  2951. package/template/.trae/skills/drawio/assets/catalog/shape-index.json.gz +0 -0
  2952. package/template/.trae/skills/drawio/assets/examples/login-flow-test.drawio +0 -6
  2953. package/template/.trae/skills/drawio/assets/examples/login-flow.drawio +0 -6
  2954. package/template/.trae/skills/drawio/assets/examples/microservices.drawio +0 -6
  2955. package/template/.trae/skills/drawio/assets/examples/neural-network.drawio +0 -6
  2956. package/template/.trae/skills/drawio/assets/licenses/architecture-diagram-generator-MIT.txt +0 -26
  2957. package/template/.trae/skills/drawio/assets/licenses/drawio-mcp-shape-index-Apache-2.0.txt +0 -8
  2958. package/template/.trae/skills/drawio/assets/licenses/lobe-icons-MIT.txt +0 -26
  2959. package/template/.trae/skills/drawio/assets/licenses/lucide-ISC.txt +0 -41
  2960. package/template/.trae/skills/drawio/assets/palettes/c4-blue.json +0 -29
  2961. package/template/.trae/skills/drawio/assets/palettes/cloud-aws.json +0 -30
  2962. package/template/.trae/skills/drawio/assets/palettes/drawio-classic.json +0 -21
  2963. package/template/.trae/skills/drawio/assets/palettes/ieee-bw.json +0 -26
  2964. package/template/.trae/skills/drawio/assets/palettes/ieee-color.json +0 -17
  2965. package/template/.trae/skills/drawio/assets/palettes/journal-jama.json +0 -20
  2966. package/template/.trae/skills/drawio/assets/palettes/journal-npg.json +0 -23
  2967. package/template/.trae/skills/drawio/assets/palettes/matlab-lines.json +0 -20
  2968. package/template/.trae/skills/drawio/assets/palettes/morandi.json +0 -21
  2969. package/template/.trae/skills/drawio/assets/palettes/okabe-ito.json +0 -21
  2970. package/template/.trae/skills/drawio/assets/palettes/seaborn-colorblind.json +0 -23
  2971. package/template/.trae/skills/drawio/assets/palettes/tol-bright.json +0 -20
  2972. package/template/.trae/skills/drawio/assets/palettes/tol-high-contrast.json +0 -18
  2973. package/template/.trae/skills/drawio/assets/palettes/tol-light-fill.json +0 -22
  2974. package/template/.trae/skills/drawio/assets/palettes/tol-muted.json +0 -22
  2975. package/template/.trae/skills/drawio/assets/schemas/graph-projection.schema.json +0 -135
  2976. package/template/.trae/skills/drawio/assets/schemas/spec.schema.json +0 -620
  2977. package/template/.trae/skills/drawio/assets/themes/academic-color.json +0 -299
  2978. package/template/.trae/skills/drawio/assets/themes/academic.json +0 -245
  2979. package/template/.trae/skills/drawio/assets/themes/arch-dark.json +0 -253
  2980. package/template/.trae/skills/drawio/assets/themes/blueprint.json +0 -246
  2981. package/template/.trae/skills/drawio/assets/themes/dark-luxury.json +0 -246
  2982. package/template/.trae/skills/drawio/assets/themes/dark-terminal.json +0 -244
  2983. package/template/.trae/skills/drawio/assets/themes/dark.json +0 -220
  2984. package/template/.trae/skills/drawio/assets/themes/high-contrast.json +0 -220
  2985. package/template/.trae/skills/drawio/assets/themes/nature.json +0 -220
  2986. package/template/.trae/skills/drawio/assets/themes/notion-clean.json +0 -246
  2987. package/template/.trae/skills/drawio/assets/themes/tech-blue.json +0 -220
  2988. package/template/.trae/skills/drawio/evals/README.md +0 -17
  2989. package/template/.trae/skills/drawio/evals/ai-icon-catalog-cases.json +0 -89
  2990. package/template/.trae/skills/drawio/evals/baseline-prompts.json +0 -122
  2991. package/template/.trae/skills/drawio/evals/darwin-results.tsv +0 -4
  2992. package/template/.trae/skills/drawio/evals/evals.json +0 -223
  2993. package/template/.trae/skills/drawio/evals/evidence/ai-icon-catalog-desktop.json +0 -134
  2994. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-advanced-svg.yaml +0 -25
  2995. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-cjk-agent-rag.yaml +0 -55
  2996. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-core-aliases.yaml +0 -50
  2997. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-current-color.yaml +0 -25
  2998. package/template/.trae/skills/drawio/evals/fixtures/ai-icons-gradients.yaml +0 -25
  2999. package/template/.trae/skills/drawio/evals/fixtures/import-simple-compressed.drawio +0 -5
  3000. package/template/.trae/skills/drawio/evals/fixtures/import-simple.drawio +0 -28
  3001. package/template/.trae/skills/drawio/evals/fixtures/industrial-architecture.yaml +0 -239
  3002. package/template/.trae/skills/drawio/evals/fixtures/replicate-academic-highlight.svg +0 -13
  3003. package/template/.trae/skills/drawio/evals/fixtures/replicate-brand-architecture.svg +0 -14
  3004. package/template/.trae/skills/drawio/evals/fixtures/replicate-warm-approval.svg +0 -13
  3005. package/template/.trae/skills/drawio/evals/fixtures/vision-tall-workflow.yaml +0 -47
  3006. package/template/.trae/skills/drawio/evals/upstream-integration-cases.json +0 -78
  3007. package/template/.trae/skills/drawio/evals/vision-preview-cases.json +0 -147
  3008. package/template/.trae/skills/drawio/references/docs/agent-diagrams.md +0 -164
  3009. package/template/.trae/skills/drawio/references/docs/ah-format.md +0 -322
  3010. package/template/.trae/skills/drawio/references/docs/architecture-diagrams.md +0 -159
  3011. package/template/.trae/skills/drawio/references/docs/canonical-graph-projection.md +0 -54
  3012. package/template/.trae/skills/drawio/references/docs/code-importers.md +0 -53
  3013. package/template/.trae/skills/drawio/references/docs/config-importers.md +0 -68
  3014. package/template/.trae/skills/drawio/references/docs/design-system/README.md +0 -204
  3015. package/template/.trae/skills/drawio/references/docs/design-system/color-guide.md +0 -255
  3016. package/template/.trae/skills/drawio/references/docs/design-system/connectors.md +0 -388
  3017. package/template/.trae/skills/drawio/references/docs/design-system/formulas.md +0 -196
  3018. package/template/.trae/skills/drawio/references/docs/design-system/icons.md +0 -332
  3019. package/template/.trae/skills/drawio/references/docs/design-system/shapes.md +0 -269
  3020. package/template/.trae/skills/drawio/references/docs/design-system/specification.md +0 -754
  3021. package/template/.trae/skills/drawio/references/docs/design-system/themes.md +0 -441
  3022. package/template/.trae/skills/drawio/references/docs/design-system/tokens.md +0 -232
  3023. package/template/.trae/skills/drawio/references/docs/edge-quality-rules.md +0 -65
  3024. package/template/.trae/skills/drawio/references/docs/ieee-network-diagrams.md +0 -145
  3025. package/template/.trae/skills/drawio/references/docs/live-snapshots-drift.md +0 -72
  3026. package/template/.trae/skills/drawio/references/docs/math-typesetting.md +0 -258
  3027. package/template/.trae/skills/drawio/references/docs/mcp-tools.md +0 -85
  3028. package/template/.trae/skills/drawio/references/docs/migration-readiness.md +0 -73
  3029. package/template/.trae/skills/drawio/references/docs/stencil-library-guide.md +0 -97
  3030. package/template/.trae/skills/drawio/references/docs/style-extraction.md +0 -261
  3031. package/template/.trae/skills/drawio/references/docs/style-presets.md +0 -126
  3032. package/template/.trae/skills/drawio/references/docs/upstream-capability-compatibility.md +0 -61
  3033. package/template/.trae/skills/drawio/references/docs/xml-format.md +0 -53
  3034. package/template/.trae/skills/drawio/references/examples/README.md +0 -33
  3035. package/template/.trae/skills/drawio/references/examples/agentic-rag.yaml +0 -71
  3036. package/template/.trae/skills/drawio/references/examples/arch-dark-aws-serverless.yaml +0 -103
  3037. package/template/.trae/skills/drawio/references/examples/arch-dark-microservices.yaml +0 -146
  3038. package/template/.trae/skills/drawio/references/examples/arch-dark-web-app.yaml +0 -62
  3039. package/template/.trae/skills/drawio/references/examples/auto-layout-workflow.yaml +0 -81
  3040. package/template/.trae/skills/drawio/references/examples/aws-vpc-topology.yaml +0 -66
  3041. package/template/.trae/skills/drawio/references/examples/campus-lan-topology.yaml +0 -89
  3042. package/template/.trae/skills/drawio/references/examples/cloud-reference-architecture.yaml +0 -34
  3043. package/template/.trae/skills/drawio/references/examples/e-commerce.yaml +0 -141
  3044. package/template/.trae/skills/drawio/references/examples/importers/README.md +0 -10
  3045. package/template/.trae/skills/drawio/references/examples/importers/live/compose-drift-evidence.json +0 -49
  3046. package/template/.trae/skills/drawio/references/examples/importers/live/compose-drift-report.json +0 -300
  3047. package/template/.trae/skills/drawio/references/examples/importers/live/compose-drift.spec.yaml +0 -75
  3048. package/template/.trae/skills/drawio/references/examples/importers/live/docker-inspect.json +0 -55
  3049. package/template/.trae/skills/drawio/references/examples/importers/live/drift-declared-compose.yaml +0 -13
  3050. package/template/.trae/skills/drawio/references/examples/importers/live/kubernetes-live.json +0 -71
  3051. package/template/.trae/skills/drawio/references/examples/importers/live/terraform-state.json +0 -70
  3052. package/template/.trae/skills/drawio/references/examples/importers/schema.sql +0 -10
  3053. package/template/.trae/skills/drawio/references/examples/importers/terraform.tf +0 -9
  3054. package/template/.trae/skills/drawio/references/examples/login-flow.yaml +0 -65
  3055. package/template/.trae/skills/drawio/references/examples/mem0-memory-layer.yaml +0 -63
  3056. package/template/.trae/skills/drawio/references/examples/microservices.yaml +0 -58
  3057. package/template/.trae/skills/drawio/references/examples/multi-agent-orchestration.yaml +0 -67
  3058. package/template/.trae/skills/drawio/references/examples/neural-network.yaml +0 -66
  3059. package/template/.trae/skills/drawio/references/examples/onprem-dmz-topology.yaml +0 -62
  3060. package/template/.trae/skills/drawio/references/examples/palettes/README.md +0 -29
  3061. package/template/.trae/skills/drawio/references/examples/palettes/c4-blue.drawio +0 -6
  3062. package/template/.trae/skills/drawio/references/examples/palettes/c4-blue.svg +0 -36
  3063. package/template/.trae/skills/drawio/references/examples/palettes/cloud-aws.drawio +0 -6
  3064. package/template/.trae/skills/drawio/references/examples/palettes/cloud-aws.svg +0 -36
  3065. package/template/.trae/skills/drawio/references/examples/palettes/drawio-classic.drawio +0 -6
  3066. package/template/.trae/skills/drawio/references/examples/palettes/drawio-classic.svg +0 -36
  3067. package/template/.trae/skills/drawio/references/examples/palettes/ieee-bw.drawio +0 -6
  3068. package/template/.trae/skills/drawio/references/examples/palettes/ieee-bw.svg +0 -36
  3069. package/template/.trae/skills/drawio/references/examples/palettes/ieee-color.drawio +0 -6
  3070. package/template/.trae/skills/drawio/references/examples/palettes/ieee-color.svg +0 -36
  3071. package/template/.trae/skills/drawio/references/examples/palettes/journal-jama.drawio +0 -6
  3072. package/template/.trae/skills/drawio/references/examples/palettes/journal-jama.svg +0 -36
  3073. package/template/.trae/skills/drawio/references/examples/palettes/journal-npg.drawio +0 -6
  3074. package/template/.trae/skills/drawio/references/examples/palettes/journal-npg.svg +0 -36
  3075. package/template/.trae/skills/drawio/references/examples/palettes/matlab-lines.drawio +0 -6
  3076. package/template/.trae/skills/drawio/references/examples/palettes/matlab-lines.svg +0 -36
  3077. package/template/.trae/skills/drawio/references/examples/palettes/morandi.drawio +0 -6
  3078. package/template/.trae/skills/drawio/references/examples/palettes/morandi.svg +0 -36
  3079. package/template/.trae/skills/drawio/references/examples/palettes/okabe-ito.drawio +0 -6
  3080. package/template/.trae/skills/drawio/references/examples/palettes/okabe-ito.svg +0 -36
  3081. package/template/.trae/skills/drawio/references/examples/palettes/palette-swatch.template.yaml +0 -56
  3082. package/template/.trae/skills/drawio/references/examples/palettes/seaborn-colorblind.drawio +0 -6
  3083. package/template/.trae/skills/drawio/references/examples/palettes/seaborn-colorblind.svg +0 -36
  3084. package/template/.trae/skills/drawio/references/examples/palettes/tol-bright.drawio +0 -6
  3085. package/template/.trae/skills/drawio/references/examples/palettes/tol-bright.svg +0 -36
  3086. package/template/.trae/skills/drawio/references/examples/palettes/tol-high-contrast.drawio +0 -6
  3087. package/template/.trae/skills/drawio/references/examples/palettes/tol-high-contrast.svg +0 -36
  3088. package/template/.trae/skills/drawio/references/examples/palettes/tol-light-fill.drawio +0 -6
  3089. package/template/.trae/skills/drawio/references/examples/palettes/tol-light-fill.svg +0 -36
  3090. package/template/.trae/skills/drawio/references/examples/palettes/tol-muted.drawio +0 -6
  3091. package/template/.trae/skills/drawio/references/examples/palettes/tol-muted.svg +0 -36
  3092. package/template/.trae/skills/drawio/references/examples/rag-pipeline.yaml +0 -67
  3093. package/template/.trae/skills/drawio/references/examples/replicated-brand-flow.yaml +0 -89
  3094. package/template/.trae/skills/drawio/references/examples/swimlane-engineering-review.yaml +0 -44
  3095. package/template/.trae/skills/drawio/references/examples/tiered-network-topology.yaml +0 -59
  3096. package/template/.trae/skills/drawio/references/examples/tool-call-loop.yaml +0 -63
  3097. package/template/.trae/skills/drawio/references/examples/vendor-device-mapping.yaml +0 -46
  3098. package/template/.trae/skills/drawio/references/official/style-reference.md +0 -936
  3099. package/template/.trae/skills/drawio/references/official/xml-reference.md +0 -262
  3100. package/template/.trae/skills/drawio/references/palette.schema.json +0 -59
  3101. package/template/.trae/skills/drawio/references/theme.schema.json +0 -249
  3102. package/template/.trae/skills/drawio/references/upstream/pure-drawio-skill.md +0 -615
  3103. package/template/.trae/skills/drawio/references/workflows/create.md +0 -195
  3104. package/template/.trae/skills/drawio/references/workflows/edit.md +0 -174
  3105. package/template/.trae/skills/drawio/references/workflows/replicate.md +0 -239
  3106. package/template/.trae/skills/drawio/references/workflows/visual-review.md +0 -108
  3107. package/template/.trae/skills/drawio/reports/output_quality_scorecard.md +0 -106
  3108. package/template/.trae/skills/drawio/reports/upstream-port-release-evidence.md +0 -43
  3109. package/template/.trae/skills/drawio/scripts/adapters/ci.js +0 -139
  3110. package/template/.trae/skills/drawio/scripts/adapters/ci.test.js +0 -41
  3111. package/template/.trae/skills/drawio/scripts/adapters/code-common.js +0 -171
  3112. package/template/.trae/skills/drawio/scripts/adapters/code-imports.test.js +0 -80
  3113. package/template/.trae/skills/drawio/scripts/adapters/code-parsers.integration.test.js +0 -71
  3114. package/template/.trae/skills/drawio/scripts/adapters/compose.js +0 -134
  3115. package/template/.trae/skills/drawio/scripts/adapters/compose.test.js +0 -54
  3116. package/template/.trae/skills/drawio/scripts/adapters/config-adapters.integration.test.js +0 -58
  3117. package/template/.trae/skills/drawio/scripts/adapters/config-common.js +0 -131
  3118. package/template/.trae/skills/drawio/scripts/adapters/config-common.test.js +0 -32
  3119. package/template/.trae/skills/drawio/scripts/adapters/docker-inspect.js +0 -127
  3120. package/template/.trae/skills/drawio/scripts/adapters/docker-inspect.test.js +0 -62
  3121. package/template/.trae/skills/drawio/scripts/adapters/fixtures/raster-extraction.json +0 -31
  3122. package/template/.trae/skills/drawio/scripts/adapters/go-code-adapter.test.js +0 -59
  3123. package/template/.trae/skills/drawio/scripts/adapters/go-code.js +0 -168
  3124. package/template/.trae/skills/drawio/scripts/adapters/graph-drift.file.test.js +0 -67
  3125. package/template/.trae/skills/drawio/scripts/adapters/graph-drift.js +0 -358
  3126. package/template/.trae/skills/drawio/scripts/adapters/graph-drift.test.js +0 -272
  3127. package/template/.trae/skills/drawio/scripts/adapters/graph-projection.js +0 -335
  3128. package/template/.trae/skills/drawio/scripts/adapters/graph-projection.test.js +0 -141
  3129. package/template/.trae/skills/drawio/scripts/adapters/identity.js +0 -244
  3130. package/template/.trae/skills/drawio/scripts/adapters/identity.test.js +0 -123
  3131. package/template/.trae/skills/drawio/scripts/adapters/index.js +0 -489
  3132. package/template/.trae/skills/drawio/scripts/adapters/index.test.js +0 -152
  3133. package/template/.trae/skills/drawio/scripts/adapters/js-code-adapter.test.js +0 -42
  3134. package/template/.trae/skills/drawio/scripts/adapters/js-code.js +0 -141
  3135. package/template/.trae/skills/drawio/scripts/adapters/kubernetes-live.test.js +0 -46
  3136. package/template/.trae/skills/drawio/scripts/adapters/kubernetes.js +0 -258
  3137. package/template/.trae/skills/drawio/scripts/adapters/kubernetes.test.js +0 -81
  3138. package/template/.trae/skills/drawio/scripts/adapters/openapi.js +0 -98
  3139. package/template/.trae/skills/drawio/scripts/adapters/openapi.test.js +0 -46
  3140. package/template/.trae/skills/drawio/scripts/adapters/optional-python-code.js +0 -16
  3141. package/template/.trae/skills/drawio/scripts/adapters/optional-python.integration.test.js +0 -32
  3142. package/template/.trae/skills/drawio/scripts/adapters/optional-python.js +0 -127
  3143. package/template/.trae/skills/drawio/scripts/adapters/optional-python.test.js +0 -55
  3144. package/template/.trae/skills/drawio/scripts/adapters/projection-to-spec.js +0 -116
  3145. package/template/.trae/skills/drawio/scripts/adapters/projection-to-spec.test.js +0 -139
  3146. package/template/.trae/skills/drawio/scripts/adapters/python/code-parser-worker.py +0 -93
  3147. package/template/.trae/skills/drawio/scripts/adapters/python/config-parser-worker.py +0 -237
  3148. package/template/.trae/skills/drawio/scripts/adapters/python/requirements.txt +0 -2
  3149. package/template/.trae/skills/drawio/scripts/adapters/python-code-adapter.test.js +0 -127
  3150. package/template/.trae/skills/drawio/scripts/adapters/python-code.js +0 -246
  3151. package/template/.trae/skills/drawio/scripts/adapters/raster-extraction.js +0 -258
  3152. package/template/.trae/skills/drawio/scripts/adapters/raster-extraction.test.js +0 -308
  3153. package/template/.trae/skills/drawio/scripts/adapters/rust-code-adapter.test.js +0 -64
  3154. package/template/.trae/skills/drawio/scripts/adapters/rust-code.js +0 -207
  3155. package/template/.trae/skills/drawio/scripts/adapters/sql-ddl.js +0 -118
  3156. package/template/.trae/skills/drawio/scripts/adapters/sql-ddl.test.js +0 -56
  3157. package/template/.trae/skills/drawio/scripts/adapters/terraform-config.js +0 -141
  3158. package/template/.trae/skills/drawio/scripts/adapters/terraform-config.test.js +0 -67
  3159. package/template/.trae/skills/drawio/scripts/adapters/terraform-state.js +0 -157
  3160. package/template/.trae/skills/drawio/scripts/adapters/terraform-state.test.js +0 -69
  3161. package/template/.trae/skills/drawio/scripts/cli.js +0 -700
  3162. package/template/.trae/skills/drawio/scripts/dsl/ah-to-drawio.js +0 -276
  3163. package/template/.trae/skills/drawio/scripts/dsl/ah-to-drawio.test.js +0 -77
  3164. package/template/.trae/skills/drawio/scripts/dsl/ai-icon-catalog.js +0 -126
  3165. package/template/.trae/skills/drawio/scripts/dsl/ai-icon-catalog.test.js +0 -86
  3166. package/template/.trae/skills/drawio/scripts/dsl/auto-layout.js +0 -206
  3167. package/template/.trae/skills/drawio/scripts/dsl/auto-layout.test.js +0 -249
  3168. package/template/.trae/skills/drawio/scripts/dsl/catalog-ranking.js +0 -54
  3169. package/template/.trae/skills/drawio/scripts/dsl/catalog-search.js +0 -58
  3170. package/template/.trae/skills/drawio/scripts/dsl/catalog-search.test.js +0 -44
  3171. package/template/.trae/skills/drawio/scripts/dsl/document-spec.js +0 -256
  3172. package/template/.trae/skills/drawio/scripts/dsl/document-spec.test.js +0 -147
  3173. package/template/.trae/skills/drawio/scripts/dsl/drawio-to-spec.js +0 -497
  3174. package/template/.trae/skills/drawio/scripts/dsl/examples-baseline.test.js +0 -30
  3175. package/template/.trae/skills/drawio/scripts/dsl/icon-mappings.js +0 -65
  3176. package/template/.trae/skills/drawio/scripts/dsl/icon-mappings.test.js +0 -19
  3177. package/template/.trae/skills/drawio/scripts/dsl/icon-resolver.js +0 -153
  3178. package/template/.trae/skills/drawio/scripts/dsl/icon-resolver.test.js +0 -62
  3179. package/template/.trae/skills/drawio/scripts/dsl/multi-page.js +0 -224
  3180. package/template/.trae/skills/drawio/scripts/dsl/multi-page.test.js +0 -107
  3181. package/template/.trae/skills/drawio/scripts/dsl/palette-catalog.test.js +0 -138
  3182. package/template/.trae/skills/drawio/scripts/dsl/palette-integration.test.js +0 -182
  3183. package/template/.trae/skills/drawio/scripts/dsl/palette-validate.js +0 -91
  3184. package/template/.trae/skills/drawio/scripts/dsl/palette.js +0 -302
  3185. package/template/.trae/skills/drawio/scripts/dsl/palette.test.js +0 -197
  3186. package/template/.trae/skills/drawio/scripts/dsl/shape-catalog.js +0 -89
  3187. package/template/.trae/skills/drawio/scripts/dsl/shape-catalog.test.js +0 -21
  3188. package/template/.trae/skills/drawio/scripts/dsl/spec-to-drawio.js +0 -3739
  3189. package/template/.trae/skills/drawio/scripts/dsl/spec-to-drawio.test.js +0 -3022
  3190. package/template/.trae/skills/drawio/scripts/generate-palette-swatches.js +0 -87
  3191. package/template/.trae/skills/drawio/scripts/install.bat +0 -64
  3192. package/template/.trae/skills/drawio/scripts/install.sh +0 -44
  3193. package/template/.trae/skills/drawio/scripts/math/index.js +0 -317
  3194. package/template/.trae/skills/drawio/scripts/math/index.test.js +0 -62
  3195. package/template/.trae/skills/drawio/scripts/package.json +0 -1
  3196. package/template/.trae/skills/drawio/scripts/postprocess/artifacts.js +0 -142
  3197. package/template/.trae/skills/drawio/scripts/postprocess/artifacts.test.js +0 -86
  3198. package/template/.trae/skills/drawio/scripts/postprocess/cli.js +0 -228
  3199. package/template/.trae/skills/drawio/scripts/postprocess/cli.test.js +0 -129
  3200. package/template/.trae/skills/drawio/scripts/postprocess/fixtures/bundle.yaml +0 -75
  3201. package/template/.trae/skills/drawio/scripts/postprocess/fixtures/legacy.yaml +0 -21
  3202. package/template/.trae/skills/drawio/scripts/postprocess/html.js +0 -197
  3203. package/template/.trae/skills/drawio/scripts/postprocess/html.test.js +0 -50
  3204. package/template/.trae/skills/drawio/scripts/postprocess/index.js +0 -5
  3205. package/template/.trae/skills/drawio/scripts/postprocess/input.js +0 -112
  3206. package/template/.trae/skills/drawio/scripts/postprocess/input.test.js +0 -73
  3207. package/template/.trae/skills/drawio/scripts/postprocess/mutate.js +0 -584
  3208. package/template/.trae/skills/drawio/scripts/postprocess/mutate.test.js +0 -193
  3209. package/template/.trae/skills/drawio/scripts/postprocess/projection.js +0 -178
  3210. package/template/.trae/skills/drawio/scripts/postprocess/projection.test.js +0 -67
  3211. package/template/.trae/skills/drawio/scripts/runtime/artifacts.js +0 -283
  3212. package/template/.trae/skills/drawio/scripts/runtime/desktop.js +0 -204
  3213. package/template/.trae/skills/drawio/scripts/runtime/desktop.test.js +0 -121
  3214. package/template/.trae/skills/drawio/scripts/runtime/diagrams-net-url.js +0 -122
  3215. package/template/.trae/skills/drawio/scripts/runtime/export-stability.js +0 -75
  3216. package/template/.trae/skills/drawio/scripts/runtime/export-stability.test.js +0 -81
  3217. package/template/.trae/skills/drawio/scripts/runtime/png-inspection.js +0 -157
  3218. package/template/.trae/skills/drawio/scripts/runtime/png-inspection.test.js +0 -120
  3219. package/template/.trae/skills/drawio/scripts/runtime/vision-preview.js +0 -77
  3220. package/template/.trae/skills/drawio/scripts/runtime/vision-preview.test.js +0 -103
  3221. package/template/.trae/skills/drawio/scripts/shared/ai-icon-contract.js +0 -13
  3222. package/template/.trae/skills/drawio/scripts/shared/xml-utils.js +0 -241
  3223. package/template/.trae/skills/drawio/scripts/svg/drawio-to-svg.js +0 -918
  3224. package/template/.trae/skills/drawio/scripts/svg/drawio-to-svg.test.js +0 -763
  3225. package/template/.trae/skills/drawio/scripts/tools/build-ai-icon-catalog.js +0 -208
  3226. package/template/.trae/skills/drawio/scripts/tools/build-ai-icon-catalog.test.js +0 -107
  3227. package/template/.trae/skills/drawio/scripts/tools/build-shape-catalog.js +0 -84
  3228. package/template/.trae/skills/drawio/scripts/tools/build-shape-catalog.test.js +0 -43
  3229. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha-color.svg +0 -1
  3230. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/alpha.svg +0 -1
  3231. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta-brand-color.svg +0 -1
  3232. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/beta.svg +0 -1
  3233. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai-text-color.svg +0 -1
  3234. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/icons/civitai.svg +0 -1
  3235. package/template/.trae/skills/drawio/scripts/tools/fixtures/ai-icons-package/package.json +0 -5
  3236. package/template/.trae/skills/drawio/scripts/vendor/elkjs/LICENSE.md +0 -264
  3237. package/template/.trae/skills/drawio/scripts/vendor/elkjs/README.md +0 -18
  3238. package/template/.trae/skills/drawio/scripts/vendor/elkjs/elk.bundled.cjs +0 -6589
  3239. package/template/.trae/skills/drawio/styles/built-in/corporate.json +0 -49
  3240. package/template/.trae/skills/drawio/styles/built-in/default.json +0 -49
  3241. package/template/.trae/skills/drawio/styles/built-in/handdrawn.json +0 -49
  3242. package/template/.trae/skills/drawio/styles/schema.json +0 -112
  3243. package/template/.trae/skills/drawio-academic-skills/CHANGELOG.md +0 -67
  3244. package/template/.trae/skills/drawio-academic-skills/README.md +0 -103
  3245. package/template/.trae/skills/drawio-academic-skills/README_CN.md +0 -103
  3246. package/template/.trae/skills/drawio-academic-skills/SKILL.md +0 -161
  3247. package/template/.trae/skills/drawio-academic-skills/__yss_dotfile__.gitignore +0 -12
  3248. package/template/.trae/skills/drawio-academic-skills/agents/interface.yaml +0 -25
  3249. package/template/.trae/skills/drawio-academic-skills/agents/openai.yaml +0 -24
  3250. package/template/.trae/skills/drawio-academic-skills/evals/README.md +0 -13
  3251. package/template/.trae/skills/drawio-academic-skills/evals/baseline-prompts.json +0 -52
  3252. package/template/.trae/skills/drawio-academic-skills/evals/darwin-results.tsv +0 -3
  3253. package/template/.trae/skills/drawio-academic-skills/evals/evals.json +0 -228
  3254. package/template/.trae/skills/drawio-academic-skills/evals/test-prompts.json +0 -17
  3255. package/template/.trae/skills/drawio-academic-skills/references/docs/academic-export-checklist.md +0 -45
  3256. package/template/.trae/skills/drawio-academic-skills/references/docs/academic-figure-playbook.md +0 -349
  3257. package/template/.trae/skills/drawio-academic-skills/references/docs/publication-overlay.md +0 -206
  3258. package/template/.trae/skills/drawio-academic-skills/references/examples/ablation-study-pipeline.yaml +0 -39
  3259. package/template/.trae/skills/drawio-academic-skills/references/examples/ieee-network-paper.yaml +0 -44
  3260. package/template/.trae/skills/drawio-academic-skills/references/examples/industrial-architecture-cn-paper.yaml +0 -106
  3261. package/template/.trae/skills/drawio-academic-skills/references/examples/max-pooling-operation-paper.yaml +0 -75
  3262. package/template/.trae/skills/drawio-academic-skills/references/examples/research-pipeline.yaml +0 -54
  3263. package/template/.trae/skills/drawio-academic-skills/references/examples/system-architecture-paper.yaml +0 -45
  3264. package/template/.trae/skills/drawio-academic-skills/references/examples/technical-roadmap-paper.yaml +0 -54
  3265. package/template/.trae/skills/drawio-academic-skills/references/examples/yolo-model-architecture-paper.yaml +0 -118
  3266. package/template/.trae/skills/drawio-academic-skills/references/templates/multi-module-system-compact.yaml +0 -251
  3267. package/template/.trae/skills/drawio-academic-skills/references/templates/neural-network-architecture-compact.yaml +0 -267
  3268. package/template/.trae/skills/excalidraw-diagram-generator/SKILL.md +0 -634
  3269. package/template/.trae/skills/excalidraw-diagram-generator/references/element-types.md +0 -497
  3270. package/template/.trae/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +0 -350
  3271. package/template/.trae/skills/excalidraw-diagram-generator/scripts/README.md +0 -193
  3272. package/template/.trae/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore +0 -34
  3273. package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-arrow.py +0 -315
  3274. package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +0 -406
  3275. package/template/.trae/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +0 -183
  3276. package/template/.trae/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +0 -334
  3277. package/template/.trae/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +0 -558
  3278. package/template/.trae/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +0 -279
  3279. package/template/.trae/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +0 -662
  3280. package/template/.trae/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +0 -179
  3281. package/template/.trae/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +0 -244
  3282. package/template/.trae/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +0 -145
  3283. package/template/.trae/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +0 -509
  3284. package/template/.trae/skills/kb-retriever/README.md +0 -197
  3285. package/template/.trae/skills/kb-retriever/README.zh-CN.md +0 -197
  3286. package/template/.trae/skills/kb-retriever/SKILL.md +0 -250
  3287. package/template/.trae/skills/kb-retriever/manifest.json +0 -15
  3288. package/template/.trae/skills/kb-retriever/references/excel_analysis.md +0 -129
  3289. package/template/.trae/skills/kb-retriever/references/excel_reading.md +0 -72
  3290. package/template/.trae/skills/kb-retriever/references/pdf_reading.md +0 -362
  3291. package/template/.trae/skills/kb-retriever/scripts/convert_pdf_to_images.py +0 -35
  3292. package/template/.trae/skills/yss-db2mybatis/requirements.txt +0 -4
  3293. package/template/.trae/skills/yss-db2mybatis/scripts/db2mybatis.py +0 -1494
  3294. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +0 -728
  3295. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +0 -155
  3296. package/template/.trae/skills/yss-design-system/scripts/validate-frontmatter.py +0 -50
  3297. package/template/.trae/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -371
  3298. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.py +0 -293
  3299. package/template/.trae/skills/yss-web-controller/scripts/test_generate_controller.py +0 -68
  3300. package/template/docs/adr/0004-split-lifecycle-and-router-registry-domains.md +0 -5
  3301. package/template/docs/adr/0005-cross-repository-ecosystem-release-manifest.md +0 -5
  3302. package/template/docs/adr/0007-separate-skill-routing-registry-from-integrity-lock.md +0 -5
  3303. package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +0 -90
  3304. package/template/docs/process/harness-optimization-backlog.md +0 -9
  3305. package/template/docs/process/harness-work-unit-map.md +0 -16
  3306. package/template/docs/releases/next-major-template-governance.md +0 -32
  3307. package/template/docs/reviews/lifecycle-registry-phase0-1-red-green-2026-08-17.md +0 -61
  3308. package/template/docs/reviews/matt-yss-p0-ticket-review-git-red-green-2026-08-17.md +0 -91
  3309. package/template/docs/reviews/openapi-skill-primary-source-research-2026-08-16.md +0 -76
  3310. package/template/docs/reviews/openapi-yaml-first-independent-review-2026-08-16.md +0 -121
  3311. package/template/docs/reviews/openapi-yaml-first-pressure-scenarios-2026-08-16.md +0 -191
  3312. package/template/docs/reviews/openapi-yaml-first-red-green-2026-08-16.md +0 -76
  3313. package/template/docs/reviews/openapi-yaml-json-output-independent-review-2026-08-16.md +0 -30
  3314. package/template/docs/reviews/openapi-yaml-json-output-scope-red-green-2026-08-16.md +0 -154
  3315. package/template/docs/reviews/research-create-yss-spec-2026-08-10.md +0 -141
  3316. package/template/docs/reviews/research-create-yss-spec-refresh-2026-08-16.md +0 -164
  3317. package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md +0 -43
  3318. package/template/docs/reviews/template-release-review-remediation-red-green-2026-08-17.md +0 -41
  3319. package/template/docs/reviews/yss-local-tracker-red-green-2026-08-10.md +0 -50
  3320. 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
  3321. package/template/scripts/implementation-path-policy.rb +0 -50
  3322. package/template/scripts/lifecycle-registry.rb +0 -194
  3323. package/template/scripts/test-export-yss-skills.rb +0 -130
  3324. 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
- })