create-yss-spec 1.1.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/README.md +20 -2
  2. package/package.json +13 -2
  3. package/src/cli.js +367 -51
  4. package/template/.agents/skills/ask-matt/SKILL.md +8 -4
  5. package/template/.agents/skills/ask-matt/agents/openai.yaml +5 -0
  6. package/template/.agents/skills/code-review/SKILL.md +4 -4
  7. package/template/.agents/skills/code-review/agents/openai.yaml +3 -0
  8. package/template/.agents/skills/codebase-design/agents/openai.yaml +3 -0
  9. package/template/.agents/skills/competitive-intelligence/SKILL.md +5 -5
  10. package/template/.agents/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  11. package/template/.agents/skills/domain-modeling/agents/openai.yaml +3 -0
  12. package/template/.agents/skills/excalidraw-diagram-generator/SKILL.md +3 -3
  13. package/template/.agents/skills/grill-me/agents/openai.yaml +5 -0
  14. package/template/.agents/skills/grill-with-docs/agents/openai.yaml +5 -0
  15. package/template/.agents/skills/grilling/SKILL.md +4 -4
  16. package/template/.agents/skills/grilling/agents/openai.yaml +3 -0
  17. package/template/.agents/skills/handoff/SKILL.md +1 -1
  18. package/template/.agents/skills/handoff/agents/openai.yaml +5 -0
  19. package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +6 -6
  20. package/template/.agents/skills/high-fidelity-html-prototype/agents/openai.yaml +5 -0
  21. package/template/.agents/skills/implement/SKILL.md +2 -2
  22. package/template/.agents/skills/implement/agents/openai.yaml +5 -0
  23. package/template/.agents/skills/improve-codebase-architecture/SKILL.md +6 -1
  24. package/template/.agents/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  25. package/template/.agents/skills/lombok/SKILL.md +345 -0
  26. package/template/.agents/skills/mapstruct/SKILL.md +328 -0
  27. package/template/.agents/skills/prototype/LOGIC.md +3 -3
  28. package/template/.agents/skills/prototype/SKILL.md +2 -6
  29. package/template/.agents/skills/prototype/UI.md +4 -4
  30. package/template/.agents/skills/prototype/agents/openai.yaml +3 -0
  31. package/template/.agents/skills/research/agents/openai.yaml +3 -0
  32. package/template/.agents/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  33. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +21 -32
  34. package/template/.agents/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  35. package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
  36. package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
  37. package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
  38. package/template/.agents/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
  39. package/template/.agents/skills/tdd/agents/openai.yaml +3 -0
  40. package/template/.agents/skills/teach/GLOSSARY-FORMAT.md +35 -0
  41. package/template/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  42. package/template/.agents/skills/teach/MISSION-FORMAT.md +31 -0
  43. package/template/.agents/skills/teach/RESOURCES-FORMAT.md +32 -0
  44. package/template/.agents/skills/teach/SKILL.md +140 -0
  45. package/template/.agents/skills/teach/agents/openai.yaml +5 -0
  46. package/template/.agents/skills/to-spec/SKILL.md +58 -0
  47. package/template/.agents/skills/to-spec/agents/openai.yaml +5 -0
  48. package/template/.agents/skills/to-tickets/SKILL.md +62 -0
  49. package/template/.agents/skills/to-tickets/agents/openai.yaml +5 -0
  50. package/template/.agents/skills/triage/SKILL.md +4 -4
  51. package/template/.agents/skills/triage/agents/openai.yaml +5 -0
  52. package/template/.agents/skills/wayfinder/SKILL.md +128 -0
  53. package/template/.agents/skills/wayfinder/agents/openai.yaml +5 -0
  54. package/template/.agents/skills/web-design-engineer/SKILL.md +2 -2
  55. package/template/.agents/skills/writing-great-skills/GLOSSARY.md +201 -0
  56. package/template/.agents/skills/writing-great-skills/SKILL.md +83 -0
  57. package/template/.agents/skills/writing-great-skills/agents/openai.yaml +5 -0
  58. package/template/.agents/skills/yss-cache/SKILL.md +44 -0
  59. package/template/.agents/skills/yss-cache/agents/openai.yaml +5 -0
  60. package/template/.agents/skills/yss-cache/references/annotations.md +39 -0
  61. package/template/.agents/skills/yss-cache/references/architecture.md +25 -0
  62. package/template/.agents/skills/yss-cache/references/configuration.md +34 -0
  63. package/template/.agents/skills/yss-cache/references/redis-fallback.md +23 -0
  64. package/template/.agents/skills/yss-cache/references/redis-topology.md +62 -0
  65. package/template/.agents/skills/yss-cache/references/serialization.md +17 -0
  66. package/template/.agents/skills/yss-cache/references/source-index.md +64 -0
  67. package/template/.agents/skills/yss-cache/references/troubleshooting.md +33 -0
  68. package/template/.agents/skills/yss-cache/references/verification.md +34 -0
  69. package/template/.agents/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
  70. package/template/.agents/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
  71. package/template/.agents/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
  72. package/template/.claude/skills/ask-matt/SKILL.md +8 -4
  73. package/template/.claude/skills/ask-matt/agents/openai.yaml +5 -0
  74. package/template/.claude/skills/code-review/SKILL.md +4 -4
  75. package/template/.claude/skills/code-review/agents/openai.yaml +3 -0
  76. package/template/.claude/skills/codebase-design/agents/openai.yaml +3 -0
  77. package/template/.claude/skills/competitive-intelligence/SKILL.md +5 -5
  78. package/template/.claude/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  79. package/template/.claude/skills/domain-modeling/agents/openai.yaml +3 -0
  80. package/template/.claude/skills/excalidraw-diagram-generator/SKILL.md +37 -16
  81. package/template/.claude/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
  82. package/template/.claude/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
  83. package/template/.claude/skills/grill-me/agents/openai.yaml +5 -0
  84. package/template/.claude/skills/grill-with-docs/agents/openai.yaml +5 -0
  85. package/template/.claude/skills/grilling/SKILL.md +4 -4
  86. package/template/.claude/skills/grilling/agents/openai.yaml +3 -0
  87. package/template/.claude/skills/handoff/SKILL.md +1 -1
  88. package/template/.claude/skills/handoff/agents/openai.yaml +5 -0
  89. package/template/.claude/skills/implement/SKILL.md +2 -2
  90. package/template/.claude/skills/implement/agents/openai.yaml +5 -0
  91. package/template/.claude/skills/improve-codebase-architecture/SKILL.md +6 -1
  92. package/template/.claude/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  93. package/template/.claude/skills/prototype/LOGIC.md +3 -3
  94. package/template/.claude/skills/prototype/SKILL.md +2 -6
  95. package/template/.claude/skills/prototype/UI.md +4 -4
  96. package/template/.claude/skills/prototype/agents/openai.yaml +3 -0
  97. package/template/.claude/skills/research/agents/openai.yaml +3 -0
  98. package/template/.claude/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  99. package/template/.claude/skills/setup-matt-pocock-skills/SKILL.md +21 -32
  100. package/template/.claude/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  101. package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
  102. package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
  103. package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
  104. package/template/.claude/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
  105. package/template/.claude/skills/tdd/agents/openai.yaml +3 -0
  106. package/template/.claude/skills/teach/GLOSSARY-FORMAT.md +35 -0
  107. package/template/.claude/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  108. package/template/.claude/skills/teach/MISSION-FORMAT.md +31 -0
  109. package/template/.claude/skills/teach/RESOURCES-FORMAT.md +32 -0
  110. package/template/.claude/skills/teach/SKILL.md +140 -0
  111. package/template/.claude/skills/teach/agents/openai.yaml +5 -0
  112. package/template/.claude/skills/to-spec/SKILL.md +58 -0
  113. package/template/.claude/skills/to-spec/agents/openai.yaml +5 -0
  114. package/template/.claude/skills/to-tickets/SKILL.md +62 -0
  115. package/template/.claude/skills/to-tickets/agents/openai.yaml +5 -0
  116. package/template/.claude/skills/triage/SKILL.md +4 -4
  117. package/template/.claude/skills/triage/agents/openai.yaml +5 -0
  118. package/template/.claude/skills/wayfinder/SKILL.md +128 -0
  119. package/template/.claude/skills/wayfinder/agents/openai.yaml +5 -0
  120. package/template/.claude/skills/web-design-engineer/SKILL.md +2 -2
  121. package/template/.claude/skills/writing-great-skills/GLOSSARY.md +201 -0
  122. package/template/.claude/skills/writing-great-skills/SKILL.md +83 -0
  123. package/template/.claude/skills/writing-great-skills/agents/openai.yaml +5 -0
  124. package/template/.claude/skills/yss-cache/SKILL.md +44 -0
  125. package/template/.claude/skills/yss-cache/agents/openai.yaml +5 -0
  126. package/template/.claude/skills/yss-cache/references/annotations.md +39 -0
  127. package/template/.claude/skills/yss-cache/references/architecture.md +25 -0
  128. package/template/.claude/skills/yss-cache/references/configuration.md +34 -0
  129. package/template/.claude/skills/yss-cache/references/redis-fallback.md +23 -0
  130. package/template/.claude/skills/yss-cache/references/redis-topology.md +62 -0
  131. package/template/.claude/skills/yss-cache/references/serialization.md +17 -0
  132. package/template/.claude/skills/yss-cache/references/source-index.md +64 -0
  133. package/template/.claude/skills/yss-cache/references/troubleshooting.md +33 -0
  134. package/template/.claude/skills/yss-cache/references/verification.md +34 -0
  135. package/template/.claude/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
  136. package/template/.claude/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
  137. package/template/.claude/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
  138. package/template/.codex/config.toml +3 -0
  139. package/template/.codex/skills/ask-matt/SKILL.md +8 -4
  140. package/template/.codex/skills/ask-matt/agents/openai.yaml +5 -0
  141. package/template/.codex/skills/code-review/SKILL.md +4 -4
  142. package/template/.codex/skills/code-review/agents/openai.yaml +3 -0
  143. package/template/.codex/skills/code-review-process/references/automation-and-standards.md +1 -1
  144. package/template/.codex/skills/codebase-design/agents/openai.yaml +3 -0
  145. package/template/.codex/skills/competitive-intelligence/SKILL.md +5 -5
  146. package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +1 -1
  147. package/template/.codex/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  148. package/template/.codex/skills/domain-modeling/agents/openai.yaml +3 -0
  149. package/template/.codex/skills/grill-with-docs/agents/openai.yaml +5 -0
  150. package/template/.codex/skills/handoff/SKILL.md +16 -0
  151. package/template/.codex/skills/handoff/agents/openai.yaml +5 -0
  152. package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +6 -6
  153. package/template/.codex/skills/implement/SKILL.md +2 -2
  154. package/template/.codex/skills/implement/agents/openai.yaml +5 -0
  155. package/template/.codex/skills/improve-codebase-architecture/SKILL.md +6 -1
  156. package/template/.codex/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  157. package/template/.codex/skills/product-design-prototype/SKILL.md +14 -10
  158. package/template/.codex/skills/product-design-prototype/agents/openai.yaml +1 -1
  159. package/template/.codex/skills/prototype/LOGIC.md +3 -3
  160. package/template/.codex/skills/prototype/SKILL.md +2 -6
  161. package/template/.codex/skills/prototype/UI.md +4 -4
  162. package/template/.codex/skills/prototype/agents/openai.yaml +3 -0
  163. package/template/.codex/skills/prototype-review/SKILL.md +6 -6
  164. package/template/.codex/skills/prototype-review/agents/openai.yaml +2 -2
  165. package/template/.codex/skills/research/agents/openai.yaml +3 -0
  166. package/template/.codex/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  167. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +21 -32
  168. package/template/.codex/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  169. package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
  170. package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
  171. package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
  172. package/template/.codex/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
  173. package/template/.codex/skills/tdd/agents/openai.yaml +3 -0
  174. package/template/.codex/skills/to-spec/SKILL.md +58 -0
  175. package/template/.codex/skills/to-spec/agents/openai.yaml +5 -0
  176. package/template/.codex/skills/to-tickets/SKILL.md +62 -0
  177. package/template/.codex/skills/to-tickets/agents/openai.yaml +5 -0
  178. package/template/.codex/skills/triage/SKILL.md +4 -4
  179. package/template/.codex/skills/triage/agents/openai.yaml +5 -0
  180. package/template/.codex/skills/wayfinder/SKILL.md +128 -0
  181. package/template/.codex/skills/wayfinder/agents/openai.yaml +5 -0
  182. package/template/.codex/skills/writing-great-skills/GLOSSARY.md +201 -0
  183. package/template/.codex/skills/writing-great-skills/SKILL.md +83 -0
  184. package/template/.codex/skills/writing-great-skills/agents/openai.yaml +5 -0
  185. package/template/.codex/skills/yss-cache/SKILL.md +29 -58
  186. package/template/.codex/skills/yss-cache/agents/openai.yaml +2 -2
  187. package/template/.codex/skills/yss-cache/references/annotations.md +39 -0
  188. package/template/.codex/skills/yss-cache/references/architecture.md +25 -0
  189. package/template/.codex/skills/yss-cache/references/configuration.md +34 -0
  190. package/template/.codex/skills/yss-cache/references/redis-fallback.md +23 -0
  191. package/template/.codex/skills/yss-cache/references/redis-topology.md +62 -0
  192. package/template/.codex/skills/yss-cache/references/serialization.md +17 -0
  193. package/template/.codex/skills/yss-cache/references/source-index.md +1 -1
  194. package/template/.codex/skills/yss-cache/references/troubleshooting.md +33 -0
  195. package/template/.codex/skills/yss-cache/references/verification.md +34 -0
  196. package/template/.codex/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
  197. package/template/.codex/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
  198. package/template/.codex/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
  199. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -0
  200. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  201. package/template/.codex/skills/yss-design-system/SKILL.md +9 -2
  202. package/template/.codex/skills/yss-design-system/references/design-system.md +12 -0
  203. package/template/.codex/skills/yss-domain-modeling/SKILL.md +3 -3
  204. package/template/.codex/skills/yss-domain-modeling/agents/openai.yaml +1 -1
  205. package/template/.codex/skills/yss-domain-modeling/references/modeling-workflow.md +2 -2
  206. package/template/.codex/skills/yss-openapi/SKILL.md +35 -47
  207. package/template/.codex/skills/yss-openapi/img.png +0 -0
  208. package/template/.codex/skills/yss-openapi/img_1.png +0 -0
  209. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -2
  210. package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -2
  211. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +46 -39
  212. package/template/.codex/skills/yss-product-lifecycle/references/artifact-checklist.md +23 -21
  213. package/template/.codex/skills/yss-product-lifecycle/references/stage-routing.md +15 -15
  214. package/template/.codex/skills/yss-product-lifecycle/references/yss-skill-routing.md +13 -8
  215. package/template/.codex/skills/yss-repository/SKILL.md +11 -3
  216. package/template/.codex/skills/yss-router/SKILL.md +1 -1
  217. package/template/.codex/skills/yss-web-controller/SKILL.md +9 -3
  218. package/template/.hermes/skills/ask-matt/SKILL.md +8 -4
  219. package/template/.hermes/skills/ask-matt/agents/openai.yaml +5 -0
  220. package/template/.hermes/skills/code-review/SKILL.md +4 -4
  221. package/template/.hermes/skills/code-review/agents/openai.yaml +3 -0
  222. package/template/.hermes/skills/codebase-design/agents/openai.yaml +3 -0
  223. package/template/.hermes/skills/competitive-intelligence/SKILL.md +5 -5
  224. package/template/.hermes/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  225. package/template/.hermes/skills/domain-modeling/agents/openai.yaml +3 -0
  226. package/template/.hermes/skills/excalidraw-diagram-generator/SKILL.md +37 -16
  227. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
  228. package/template/.hermes/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
  229. package/template/.hermes/skills/grill-me/agents/openai.yaml +5 -0
  230. package/template/.hermes/skills/grill-with-docs/agents/openai.yaml +5 -0
  231. package/template/.hermes/skills/grilling/SKILL.md +4 -4
  232. package/template/.hermes/skills/grilling/agents/openai.yaml +3 -0
  233. package/template/.hermes/skills/handoff/SKILL.md +1 -1
  234. package/template/.hermes/skills/handoff/agents/openai.yaml +5 -0
  235. package/template/.hermes/skills/implement/SKILL.md +2 -2
  236. package/template/.hermes/skills/implement/agents/openai.yaml +5 -0
  237. package/template/.hermes/skills/improve-codebase-architecture/SKILL.md +6 -1
  238. package/template/.hermes/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  239. package/template/.hermes/skills/prototype/LOGIC.md +3 -3
  240. package/template/.hermes/skills/prototype/SKILL.md +2 -6
  241. package/template/.hermes/skills/prototype/UI.md +4 -4
  242. package/template/.hermes/skills/prototype/agents/openai.yaml +3 -0
  243. package/template/.hermes/skills/research/agents/openai.yaml +3 -0
  244. package/template/.hermes/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  245. package/template/.hermes/skills/setup-matt-pocock-skills/SKILL.md +21 -32
  246. package/template/.hermes/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  247. package/template/.hermes/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
  248. package/template/.hermes/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
  249. package/template/.hermes/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
  250. package/template/.hermes/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
  251. package/template/.hermes/skills/tdd/agents/openai.yaml +3 -0
  252. package/template/.hermes/skills/teach/GLOSSARY-FORMAT.md +35 -0
  253. package/template/.hermes/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  254. package/template/.hermes/skills/teach/MISSION-FORMAT.md +31 -0
  255. package/template/.hermes/skills/teach/RESOURCES-FORMAT.md +32 -0
  256. package/template/.hermes/skills/teach/SKILL.md +140 -0
  257. package/template/.hermes/skills/teach/agents/openai.yaml +5 -0
  258. package/template/.hermes/skills/to-spec/SKILL.md +58 -0
  259. package/template/.hermes/skills/to-spec/agents/openai.yaml +5 -0
  260. package/template/.hermes/skills/to-tickets/SKILL.md +62 -0
  261. package/template/.hermes/skills/to-tickets/agents/openai.yaml +5 -0
  262. package/template/.hermes/skills/triage/SKILL.md +4 -4
  263. package/template/.hermes/skills/triage/agents/openai.yaml +5 -0
  264. package/template/.hermes/skills/wayfinder/SKILL.md +128 -0
  265. package/template/.hermes/skills/wayfinder/agents/openai.yaml +5 -0
  266. package/template/.hermes/skills/web-design-engineer/SKILL.md +2 -2
  267. package/template/.hermes/skills/writing-great-skills/GLOSSARY.md +201 -0
  268. package/template/.hermes/skills/writing-great-skills/SKILL.md +83 -0
  269. package/template/.hermes/skills/writing-great-skills/agents/openai.yaml +5 -0
  270. package/template/.hermes/skills/yss-cache/SKILL.md +44 -0
  271. package/template/.hermes/skills/yss-cache/agents/openai.yaml +5 -0
  272. package/template/.hermes/skills/yss-cache/references/annotations.md +39 -0
  273. package/template/.hermes/skills/yss-cache/references/architecture.md +25 -0
  274. package/template/.hermes/skills/yss-cache/references/configuration.md +34 -0
  275. package/template/.hermes/skills/yss-cache/references/redis-fallback.md +23 -0
  276. package/template/.hermes/skills/yss-cache/references/redis-topology.md +62 -0
  277. package/template/.hermes/skills/yss-cache/references/serialization.md +17 -0
  278. package/template/.hermes/skills/yss-cache/references/source-index.md +64 -0
  279. package/template/.hermes/skills/yss-cache/references/troubleshooting.md +33 -0
  280. package/template/.hermes/skills/yss-cache/references/verification.md +34 -0
  281. package/template/.hermes/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
  282. package/template/.hermes/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
  283. package/template/.hermes/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
  284. package/template/.obsidian/app.json +3 -0
  285. package/template/.obsidian/appearance.json +5 -0
  286. package/template/.obsidian/community-plugins.json +4 -0
  287. package/template/.obsidian/core-plugins.json +33 -0
  288. package/template/.obsidian/graph.json +22 -0
  289. package/template/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +1085 -0
  290. package/template/.obsidian/plugins/obsidian-excalidraw-plugin/main.js +30 -0
  291. package/template/.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json +12 -0
  292. package/template/.obsidian/plugins/obsidian-excalidraw-plugin/styles.css +1 -0
  293. package/template/.obsidian/plugins/obsidian-git/main.js +415 -0
  294. package/template/.obsidian/plugins/obsidian-git/manifest.json +10 -0
  295. package/template/.obsidian/plugins/obsidian-git/styles.css +705 -0
  296. package/template/.obsidian/workspace.json +222 -0
  297. package/template/.pi/skills/ask-matt/SKILL.md +8 -4
  298. package/template/.pi/skills/ask-matt/agents/openai.yaml +5 -0
  299. package/template/.pi/skills/code-review/SKILL.md +4 -4
  300. package/template/.pi/skills/code-review/agents/openai.yaml +3 -0
  301. package/template/.pi/skills/codebase-design/agents/openai.yaml +3 -0
  302. package/template/.pi/skills/competitive-intelligence/SKILL.md +5 -5
  303. package/template/.pi/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  304. package/template/.pi/skills/domain-modeling/agents/openai.yaml +3 -0
  305. package/template/.pi/skills/excalidraw-diagram-generator/SKILL.md +37 -16
  306. package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
  307. package/template/.pi/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
  308. package/template/.pi/skills/grill-me/agents/openai.yaml +5 -0
  309. package/template/.pi/skills/grill-with-docs/agents/openai.yaml +5 -0
  310. package/template/.pi/skills/grilling/SKILL.md +4 -4
  311. package/template/.pi/skills/grilling/agents/openai.yaml +3 -0
  312. package/template/.pi/skills/handoff/SKILL.md +1 -1
  313. package/template/.pi/skills/handoff/agents/openai.yaml +5 -0
  314. package/template/.pi/skills/implement/SKILL.md +2 -2
  315. package/template/.pi/skills/implement/agents/openai.yaml +5 -0
  316. package/template/.pi/skills/improve-codebase-architecture/SKILL.md +6 -1
  317. package/template/.pi/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  318. package/template/.pi/skills/prototype/LOGIC.md +3 -3
  319. package/template/.pi/skills/prototype/SKILL.md +2 -6
  320. package/template/.pi/skills/prototype/UI.md +4 -4
  321. package/template/.pi/skills/prototype/agents/openai.yaml +3 -0
  322. package/template/.pi/skills/research/agents/openai.yaml +3 -0
  323. package/template/.pi/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  324. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +21 -32
  325. package/template/.pi/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  326. package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
  327. package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
  328. package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
  329. package/template/.pi/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
  330. package/template/.pi/skills/tdd/agents/openai.yaml +3 -0
  331. package/template/.pi/skills/teach/GLOSSARY-FORMAT.md +35 -0
  332. package/template/.pi/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  333. package/template/.pi/skills/teach/MISSION-FORMAT.md +31 -0
  334. package/template/.pi/skills/teach/RESOURCES-FORMAT.md +32 -0
  335. package/template/.pi/skills/teach/SKILL.md +140 -0
  336. package/template/.pi/skills/teach/agents/openai.yaml +5 -0
  337. package/template/.pi/skills/to-spec/SKILL.md +58 -0
  338. package/template/.pi/skills/to-spec/agents/openai.yaml +5 -0
  339. package/template/.pi/skills/to-tickets/SKILL.md +62 -0
  340. package/template/.pi/skills/to-tickets/agents/openai.yaml +5 -0
  341. package/template/.pi/skills/triage/SKILL.md +4 -4
  342. package/template/.pi/skills/triage/agents/openai.yaml +5 -0
  343. package/template/.pi/skills/wayfinder/SKILL.md +128 -0
  344. package/template/.pi/skills/wayfinder/agents/openai.yaml +5 -0
  345. package/template/.pi/skills/web-design-engineer/SKILL.md +2 -2
  346. package/template/.pi/skills/writing-great-skills/GLOSSARY.md +201 -0
  347. package/template/.pi/skills/writing-great-skills/SKILL.md +83 -0
  348. package/template/.pi/skills/writing-great-skills/agents/openai.yaml +5 -0
  349. package/template/.pi/skills/yss-cache/SKILL.md +44 -0
  350. package/template/.pi/skills/yss-cache/agents/openai.yaml +5 -0
  351. package/template/.pi/skills/yss-cache/references/annotations.md +39 -0
  352. package/template/.pi/skills/yss-cache/references/architecture.md +25 -0
  353. package/template/.pi/skills/yss-cache/references/configuration.md +34 -0
  354. package/template/.pi/skills/yss-cache/references/redis-fallback.md +23 -0
  355. package/template/.pi/skills/yss-cache/references/redis-topology.md +62 -0
  356. package/template/.pi/skills/yss-cache/references/serialization.md +17 -0
  357. package/template/.pi/skills/yss-cache/references/source-index.md +64 -0
  358. package/template/.pi/skills/yss-cache/references/troubleshooting.md +33 -0
  359. package/template/.pi/skills/yss-cache/references/verification.md +34 -0
  360. package/template/.pi/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
  361. package/template/.pi/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
  362. package/template/.pi/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
  363. package/template/.trae/skills/ask-matt/SKILL.md +8 -4
  364. package/template/.trae/skills/ask-matt/agents/openai.yaml +5 -0
  365. package/template/.trae/skills/code-review/SKILL.md +4 -4
  366. package/template/.trae/skills/code-review/agents/openai.yaml +3 -0
  367. package/template/.trae/skills/codebase-design/agents/openai.yaml +3 -0
  368. package/template/.trae/skills/competitive-intelligence/SKILL.md +5 -5
  369. package/template/.trae/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  370. package/template/.trae/skills/domain-modeling/agents/openai.yaml +3 -0
  371. package/template/.trae/skills/excalidraw-diagram-generator/SKILL.md +37 -16
  372. package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-arrow.py +18 -18
  373. package/template/.trae/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +46 -47
  374. package/template/.trae/skills/grill-me/agents/openai.yaml +5 -0
  375. package/template/.trae/skills/grill-with-docs/agents/openai.yaml +5 -0
  376. package/template/.trae/skills/grilling/SKILL.md +4 -4
  377. package/template/.trae/skills/grilling/agents/openai.yaml +3 -0
  378. package/template/.trae/skills/handoff/SKILL.md +1 -1
  379. package/template/.trae/skills/handoff/agents/openai.yaml +5 -0
  380. package/template/.trae/skills/implement/SKILL.md +2 -2
  381. package/template/.trae/skills/implement/agents/openai.yaml +5 -0
  382. package/template/.trae/skills/improve-codebase-architecture/SKILL.md +6 -1
  383. package/template/.trae/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  384. package/template/.trae/skills/prototype/LOGIC.md +3 -3
  385. package/template/.trae/skills/prototype/SKILL.md +2 -6
  386. package/template/.trae/skills/prototype/UI.md +4 -4
  387. package/template/.trae/skills/prototype/agents/openai.yaml +3 -0
  388. package/template/.trae/skills/research/agents/openai.yaml +3 -0
  389. package/template/.trae/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  390. package/template/.trae/skills/setup-matt-pocock-skills/SKILL.md +21 -32
  391. package/template/.trae/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  392. package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-github.md +2 -2
  393. package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +2 -2
  394. package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-local.md +6 -6
  395. package/template/.trae/skills/setup-matt-pocock-skills/triage-labels.md +2 -2
  396. package/template/.trae/skills/tdd/agents/openai.yaml +3 -0
  397. package/template/.trae/skills/teach/GLOSSARY-FORMAT.md +35 -0
  398. package/template/.trae/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  399. package/template/.trae/skills/teach/MISSION-FORMAT.md +31 -0
  400. package/template/.trae/skills/teach/RESOURCES-FORMAT.md +32 -0
  401. package/template/.trae/skills/teach/SKILL.md +140 -0
  402. package/template/.trae/skills/teach/agents/openai.yaml +5 -0
  403. package/template/.trae/skills/to-spec/SKILL.md +58 -0
  404. package/template/.trae/skills/to-spec/agents/openai.yaml +5 -0
  405. package/template/.trae/skills/to-tickets/SKILL.md +62 -0
  406. package/template/.trae/skills/to-tickets/agents/openai.yaml +5 -0
  407. package/template/.trae/skills/triage/SKILL.md +4 -4
  408. package/template/.trae/skills/triage/agents/openai.yaml +5 -0
  409. package/template/.trae/skills/wayfinder/SKILL.md +128 -0
  410. package/template/.trae/skills/wayfinder/agents/openai.yaml +5 -0
  411. package/template/.trae/skills/web-design-engineer/SKILL.md +2 -2
  412. package/template/.trae/skills/writing-great-skills/GLOSSARY.md +201 -0
  413. package/template/.trae/skills/writing-great-skills/SKILL.md +83 -0
  414. package/template/.trae/skills/writing-great-skills/agents/openai.yaml +5 -0
  415. package/template/.trae/skills/yss-cache/SKILL.md +44 -0
  416. package/template/.trae/skills/yss-cache/agents/openai.yaml +5 -0
  417. package/template/.trae/skills/yss-cache/references/annotations.md +39 -0
  418. package/template/.trae/skills/yss-cache/references/architecture.md +25 -0
  419. package/template/.trae/skills/yss-cache/references/configuration.md +34 -0
  420. package/template/.trae/skills/yss-cache/references/redis-fallback.md +23 -0
  421. package/template/.trae/skills/yss-cache/references/redis-topology.md +62 -0
  422. package/template/.trae/skills/yss-cache/references/serialization.md +17 -0
  423. package/template/.trae/skills/yss-cache/references/source-index.md +64 -0
  424. package/template/.trae/skills/yss-cache/references/troubleshooting.md +33 -0
  425. package/template/.trae/skills/yss-cache/references/verification.md +34 -0
  426. package/template/.trae/skills/yss-cache/scripts/check-skill-freshness.sh +84 -0
  427. package/template/.trae/skills/yss-cache/scripts/inspect-cache-usage.sh +96 -0
  428. package/template/.trae/skills/yss-cache/scripts/verify-cache-component.sh +101 -0
  429. package/template/AGENTS.md +89 -258
  430. package/template/CONTEXT.md +24 -11
  431. package/template/README.md +31 -45
  432. package/template/docs/adr/{adr-product-design-prototype-entrypoint.md → 0001-product-design-prototype-entrypoint.md} +3 -3
  433. package/template/docs/adr/0002-yss-project-repository-mode.md +3 -0
  434. package/template/docs/agents/README.md +4 -5
  435. package/template/docs/agents/domain.md +13 -15
  436. package/template/docs/agents/gitlab-workflow-skills.md +5 -5
  437. package/template/docs/agents/issue-tracker.md +15 -14
  438. package/template/docs/agents/skills-maintenance.md +44 -109
  439. package/template/docs/agents/triage-labels.md +10 -12
  440. package/template/docs/api/templates/openapi-draft-review-checklist.md +4 -4
  441. package/template/docs/api/templates/openapi-freeze-record-template.md +5 -5
  442. package/template/docs/architecture/README.md +4 -4
  443. package/template/docs/architecture/templates/architecture-review-checklist.md +4 -4
  444. package/template/docs/architecture/templates/business-architecture-template.md +7 -7
  445. package/template/docs/architecture/templates/data-architecture-template.md +4 -4
  446. package/template/docs/architecture/templates/engineering-baseline-review-template.md +4 -3
  447. package/template/docs/architecture/templates/functional-architecture-template.md +7 -7
  448. package/template/docs/architecture/templates/system-overview-design-template.md +5 -6
  449. package/template/docs/architecture/templates/tech-design-template.md +2 -2
  450. package/template/docs/design/README.md +8 -8
  451. package/template/docs/design/design.md +10 -1
  452. package/template/docs/design/diagrams/README.md +1 -1
  453. package/template/docs/design/templates/interaction-spec-template.md +6 -6
  454. package/template/docs/design/templates/product-overview-design-template.md +8 -8
  455. package/template/docs/design/templates/prototype-confirmation-template.md +4 -4
  456. package/template/docs/design/templates/prototype-review-checklist.md +5 -5
  457. package/template/docs/design/templates/state-matrix-template.md +1 -1
  458. package/template/docs/discovery/IDEATION.md +2 -2
  459. package/template/docs/discovery/README.md +4 -4
  460. package/template/docs/discovery/templates/competitive-analysis-template.md +4 -4
  461. package/template/docs/discovery/templates/discovery-template.md +8 -8
  462. package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +59 -0
  463. package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +35 -35
  464. package/template/docs/process/harness-automation-candidates.md +10 -13
  465. package/template/docs/process/harness-executive-blueprint.md +11 -11
  466. package/template/docs/process/harness-optimization-backlog.md +6 -6
  467. package/template/docs/process/harness-pilot-retro-metrics.md +8 -8
  468. package/template/docs/process/harness-pilot-selection.md +8 -8
  469. package/template/docs/process/harness-process-tailoring.md +31 -19
  470. package/template/docs/process/harness-work-unit-map.md +9 -9
  471. package/template/docs/process/implementation-repo-integration.md +25 -11
  472. package/template/docs/process/lifecycle-artifact-map.md +60 -42
  473. package/template/docs/process/product-prototype-workflow.md +10 -10
  474. package/template/docs/process/skill-governance.md +12 -4
  475. package/template/docs/process/subagent-collaboration-validation.md +53 -0
  476. package/template/docs/process/subagent-collaboration.md +111 -0
  477. package/template/docs/process/template-governance-grilling-record.md +38 -0
  478. package/template/docs/process/template-governance-skill-validation.md +44 -0
  479. package/template/docs/process/templates/stage-checkpoint-template.md +42 -7
  480. package/template/docs/releases/next-major-template-governance.md +32 -0
  481. package/template/docs/requirements/README.md +11 -11
  482. package/template/docs/{adr/template.md → templates/adr-template.md} +2 -2
  483. package/template/docs/templates/agent-brief-template.md +5 -5
  484. package/template/docs/templates/build-architecture-checklist-template.md +41 -11
  485. package/template/docs/templates/implementation-repo-registry-template.md +8 -3
  486. package/template/docs/templates/implementation-routing-template.md +85 -19
  487. package/template/docs/templates/requirement-freeze-template.md +8 -8
  488. package/template/docs/templates/review-report-template.md +50 -0
  489. package/template/docs/templates/spec-delta-template.md +5 -5
  490. package/template/docs/templates/{prd-template.md → spec-template.md} +19 -9
  491. package/template/docs/templates/subagent-task-package-template.md +93 -0
  492. package/template/docs/templates/verification-record-template.md +2 -2
  493. package/template/docs/templates/vertical-slice-ticket-template.md +88 -0
  494. package/template/docs/user-guide/README.md +2 -2
  495. package/template/docs/user-guide/create-yss-spec-cli-guide.md +27 -209
  496. package/template/docs/user-guide/excalidraw-diagram-generator-guide.md +8 -8
  497. package/template/docs/user-guide/grill-with-docs-best-practices.md +16 -16
  498. package/template/docs/user-guide/grill-with-docs-guide.md +19 -19
  499. package/template/docs/user-guide/lifecycle-best-practices.md +40 -40
  500. package/template/docs/user-guide/product-lifecycle-workflow.md +31 -31
  501. package/template/docs/user-guide/product-rd-lifecycle-best-practices.md +121 -121
  502. package/template/docs/user-guide/spec-ticket-migration-guide.md +35 -0
  503. package/template/scripts/sync-skills +126 -0
  504. package/template/scripts/update-skill-lock +202 -0
  505. package/template/scripts/verify-lifecycle-scenarios +136 -0
  506. package/template/scripts/verify-template +148 -141
  507. package/template/skills-lock.json +1068 -108
  508. package/template/yss-project.yaml +2 -0
  509. package/template.manifest.json +3 -16
  510. package/template/.agent/skills/ask-matt/SKILL.md +0 -74
  511. package/template/.agent/skills/code-review/SKILL.md +0 -89
  512. package/template/.agent/skills/codebase-design/DEEPENING.md +0 -37
  513. package/template/.agent/skills/codebase-design/DESIGN-IT-TWICE.md +0 -44
  514. package/template/.agent/skills/codebase-design/SKILL.md +0 -114
  515. package/template/.agent/skills/competitive-intelligence/SKILL.md +0 -94
  516. package/template/.agent/skills/diagnosing-bugs/SKILL.md +0 -134
  517. package/template/.agent/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +0 -41
  518. package/template/.agent/skills/domain-modeling/ADR-FORMAT.md +0 -47
  519. package/template/.agent/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
  520. package/template/.agent/skills/domain-modeling/SKILL.md +0 -74
  521. package/template/.agent/skills/grill-with-docs/SKILL.md +0 -7
  522. package/template/.agent/skills/implement/SKILL.md +0 -15
  523. package/template/.agent/skills/improve-codebase-architecture/HTML-REPORT.md +0 -123
  524. package/template/.agent/skills/improve-codebase-architecture/SKILL.md +0 -66
  525. package/template/.agent/skills/prototype/LOGIC.md +0 -79
  526. package/template/.agent/skills/prototype/SKILL.md +0 -30
  527. package/template/.agent/skills/prototype/UI.md +0 -112
  528. package/template/.agent/skills/research/SKILL.md +0 -12
  529. package/template/.agent/skills/resolving-merge-conflicts/SKILL.md +0 -14
  530. package/template/.agent/skills/setup-matt-pocock-skills/SKILL.md +0 -127
  531. package/template/.agent/skills/setup-matt-pocock-skills/domain.md +0 -51
  532. package/template/.agent/skills/setup-matt-pocock-skills/issue-tracker-github.md +0 -45
  533. package/template/.agent/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +0 -46
  534. package/template/.agent/skills/setup-matt-pocock-skills/issue-tracker-local.md +0 -30
  535. package/template/.agent/skills/setup-matt-pocock-skills/triage-labels.md +0 -15
  536. package/template/.agent/skills/tdd/SKILL.md +0 -36
  537. package/template/.agent/skills/tdd/mocking.md +0 -59
  538. package/template/.agent/skills/tdd/tests.md +0 -77
  539. package/template/.agent/skills/to-issues/SKILL.md +0 -84
  540. package/template/.agent/skills/to-prd/SKILL.md +0 -75
  541. package/template/.agent/skills/triage/AGENT-BRIEF.md +0 -207
  542. package/template/.agent/skills/triage/OUT-OF-SCOPE.md +0 -105
  543. package/template/.agent/skills/triage/SKILL.md +0 -112
  544. package/template/.agents/skills/to-issues/SKILL.md +0 -84
  545. package/template/.agents/skills/to-prd/SKILL.md +0 -75
  546. package/template/.claude/skills/to-issues/SKILL.md +0 -84
  547. package/template/.claude/skills/to-prd/SKILL.md +0 -75
  548. package/template/.codex/skills/to-issues/SKILL.md +0 -84
  549. package/template/.codex/skills/to-prd/SKILL.md +0 -75
  550. package/template/.codex/skills/yss-cache/assets/ClearCache.java +0 -34
  551. package/template/.codex/skills/yss-cache/assets/QueryCache.java +0 -36
  552. package/template/.codex/skills/yss-cache/assets/UpdateCache.java +0 -34
  553. package/template/.codex/skills/yss-cache/references/README.md +0 -5
  554. package/template/.hermes/skills/to-issues/SKILL.md +0 -84
  555. package/template/.hermes/skills/to-prd/SKILL.md +0 -75
  556. package/template/.pi/skills/to-issues/SKILL.md +0 -84
  557. package/template/.pi/skills/to-prd/SKILL.md +0 -75
  558. package/template/.trae/skills/to-issues/SKILL.md +0 -84
  559. package/template/.trae/skills/to-prd/SKILL.md +0 -75
  560. package/template/docs/templates/vertical-slice-issue-template.md +0 -61
  561. /package/template/docs/requirements/{issues → tickets}/.gitkeep +0 -0
@@ -0,0 +1,222 @@
1
+ {
2
+ "main": {
3
+ "id": "8e74754dbe944b28",
4
+ "type": "split",
5
+ "children": [
6
+ {
7
+ "id": "184dd44351b30678",
8
+ "type": "tabs",
9
+ "children": [
10
+ {
11
+ "id": "68375a51aa88c101",
12
+ "type": "leaf",
13
+ "state": {
14
+ "type": "markdown",
15
+ "state": {
16
+ "file": "docs/design/design.md",
17
+ "mode": "source",
18
+ "source": false
19
+ },
20
+ "icon": "lucide-file",
21
+ "title": "design"
22
+ }
23
+ }
24
+ ]
25
+ }
26
+ ],
27
+ "direction": "vertical"
28
+ },
29
+ "left": {
30
+ "id": "92728002f7b40856",
31
+ "type": "split",
32
+ "children": [
33
+ {
34
+ "id": "08005c3fc7f52837",
35
+ "type": "tabs",
36
+ "children": [
37
+ {
38
+ "id": "a7eeb977945c7892",
39
+ "type": "leaf",
40
+ "state": {
41
+ "type": "file-explorer",
42
+ "state": {
43
+ "sortOrder": "alphabetical",
44
+ "autoReveal": false
45
+ },
46
+ "icon": "lucide-folder-closed",
47
+ "title": "文件列表"
48
+ }
49
+ },
50
+ {
51
+ "id": "c742468259bb264d",
52
+ "type": "leaf",
53
+ "state": {
54
+ "type": "search",
55
+ "state": {
56
+ "query": "",
57
+ "matchingCase": false,
58
+ "explainSearch": false,
59
+ "collapseAll": false,
60
+ "extraContext": false,
61
+ "sortOrder": "alphabetical"
62
+ },
63
+ "icon": "lucide-search",
64
+ "title": "搜索"
65
+ }
66
+ },
67
+ {
68
+ "id": "a695f6ecd54f3f73",
69
+ "type": "leaf",
70
+ "state": {
71
+ "type": "bookmarks",
72
+ "state": {},
73
+ "icon": "lucide-bookmark",
74
+ "title": "书签"
75
+ }
76
+ }
77
+ ]
78
+ }
79
+ ],
80
+ "direction": "horizontal",
81
+ "width": 476.5
82
+ },
83
+ "right": {
84
+ "id": "f31f5a3bd2b6d392",
85
+ "type": "split",
86
+ "children": [
87
+ {
88
+ "id": "c15dfc8c68d8d544",
89
+ "type": "tabs",
90
+ "children": [
91
+ {
92
+ "id": "d73f0628e23fcbe8",
93
+ "type": "leaf",
94
+ "state": {
95
+ "type": "backlink",
96
+ "state": {
97
+ "file": "docs/user-guide/product-rd-lifecycle-best-practices.md",
98
+ "collapseAll": false,
99
+ "extraContext": false,
100
+ "sortOrder": "alphabetical",
101
+ "showSearch": false,
102
+ "searchQuery": "",
103
+ "backlinkCollapsed": false,
104
+ "unlinkedCollapsed": true
105
+ },
106
+ "icon": "links-coming-in",
107
+ "title": "product-rd-lifecycle-best-practices 的反向链接列表"
108
+ }
109
+ },
110
+ {
111
+ "id": "5d0f382877955b0b",
112
+ "type": "leaf",
113
+ "state": {
114
+ "type": "outgoing-link",
115
+ "state": {
116
+ "file": "docs/user-guide/product-rd-lifecycle-best-practices.md",
117
+ "linksCollapsed": false,
118
+ "unlinkedCollapsed": true
119
+ },
120
+ "icon": "links-going-out",
121
+ "title": "product-rd-lifecycle-best-practices 的出链列表"
122
+ }
123
+ },
124
+ {
125
+ "id": "363fd5ceb07d38d1",
126
+ "type": "leaf",
127
+ "state": {
128
+ "type": "tag",
129
+ "state": {
130
+ "sortOrder": "frequency",
131
+ "useHierarchy": true,
132
+ "showSearch": false,
133
+ "searchQuery": ""
134
+ },
135
+ "icon": "lucide-tags",
136
+ "title": "标签"
137
+ }
138
+ },
139
+ {
140
+ "id": "d5be40ba1d701af0",
141
+ "type": "leaf",
142
+ "state": {
143
+ "type": "all-properties",
144
+ "state": {
145
+ "sortOrder": "frequency",
146
+ "showSearch": false,
147
+ "searchQuery": ""
148
+ },
149
+ "icon": "lucide-archive",
150
+ "title": "添加笔记属性"
151
+ }
152
+ },
153
+ {
154
+ "id": "01078b84dd5c4440",
155
+ "type": "leaf",
156
+ "state": {
157
+ "type": "outline",
158
+ "state": {
159
+ "file": "docs/user-guide/product-rd-lifecycle-best-practices.md",
160
+ "followCursor": false,
161
+ "showSearch": false,
162
+ "searchQuery": ""
163
+ },
164
+ "icon": "lucide-list",
165
+ "title": "product-rd-lifecycle-best-practices 的大纲"
166
+ }
167
+ },
168
+ {
169
+ "id": "57a109fa02a0de7e",
170
+ "type": "leaf",
171
+ "state": {
172
+ "type": "footnotes",
173
+ "state": {
174
+ "file": "docs/design/design.md"
175
+ },
176
+ "icon": "lucide-file-signature",
177
+ "title": "脚注"
178
+ }
179
+ }
180
+ ]
181
+ }
182
+ ],
183
+ "direction": "horizontal",
184
+ "width": 300,
185
+ "collapsed": true
186
+ },
187
+ "left-ribbon": {
188
+ "hiddenItems": {
189
+ "switcher:打开快速切换": false,
190
+ "graph:查看关系图谱": false,
191
+ "canvas:新建白板": false,
192
+ "daily-notes:打开/创建今天的日记": false,
193
+ "templates:插入模板": false,
194
+ "command-palette:打开命令面板": false,
195
+ "bases:新建数据库": false,
196
+ "obsidian-git:Open Git source control": false,
197
+ "obsidian-excalidraw-plugin:新建绘图文件": false,
198
+ "markdown-importer:打开 Markdown 格式转换器": false
199
+ }
200
+ },
201
+ "active": "68375a51aa88c101",
202
+ "lastOpenFiles": [
203
+ "docs/design/diagrams/README.md",
204
+ "Excalidraw/Drawing 2026-07-18 16.46.05.excalidraw.md",
205
+ "2026-07-14.md",
206
+ "Excalidraw",
207
+ "2026-07-18.md",
208
+ "未命名.canvas",
209
+ "未命名.base",
210
+ "AGENTS.md",
211
+ "CONTEXT.md",
212
+ "未命名 1.canvas",
213
+ "docs/user-guide/product-rd-lifecycle-best-practices.md",
214
+ "docs/user-guide/lifecycle-best-practices.md",
215
+ "docs/user-guide/grill-with-docs-guide.md",
216
+ "docs/user-guide/grill-with-docs-best-practices.md",
217
+ "docs/user-guide/excalidraw-diagram-generator-guide.md",
218
+ "docs/adr/adr-product-design-prototype-entrypoint.md",
219
+ "docs/adr/template.md",
220
+ "README.md"
221
+ ]
222
+ }
@@ -20,16 +20,16 @@ The route most work travels. You have an idea and want it built.
20
20
  - **`/prototype`** to answer the question with throwaway code,
21
21
  - **`/handoff`** back what you learned, and reference it from the original idea thread.
22
22
  3. **Branch — is this a multi-session build?**
23
- - **Yes** → **`/to-prd`** (turn the thread into a PRD) → **`/to-issues`** (split the PRD into independently-grabbable issues). Because the issues are independent, **clear context between each one**: start a fresh session per issue and kick off **`/implement`** by passing it the PRD and the single issue to work on.
23
+ - **Yes** → **`/to-spec`** (turn the thread into a spec), then **`/to-tickets`** to split it into tracer-bullet tickets, each declaring its **blocking edges**. On a local tracker that's one file per ticket under `.scratch/<feature>/tickets/`, worked blockers-first by hand; on a real tracker the edges become native blocking links, so any ticket whose blockers are done can be grabbed — kick off **`/implement`** per ticket, **clearing context between each one**.
24
24
  - **No** → **`/implement`** right here, in the same context window.
25
25
 
26
26
  Either way, **`/implement`** builds each issue by driving **`/tdd`** internally — one red-green slice at a time — then closes out by running **`/code-review`**, a two-axis review (Standards + Spec) of the diff, before committing. Reach for **`/tdd`** on its own when you just want to build a concrete behaviour test-first without a full spec, and **`/code-review`** on its own whenever you want to review a branch or PR against a fixed point.
27
27
 
28
28
  ### Context hygiene
29
29
 
30
- Keep steps 1–3 in **one unbroken context window** — don't compact or clear until after `/to-issues` — so the grilling, PRD, and issues all build on the same thinking. Each `/implement` then starts fresh, working from the issue.
30
+ Keep steps 1–3 in **one unbroken context window** — don't compact or clear until after `/to-tickets` — so the grilling, spec, and tickets all build on the same thinking. Each `/implement` then starts fresh, working from the ticket.
31
31
 
32
- The limit on this is the **[smart zone](https://www.aihero.dev/ai-coding-dictionary/smart-zone)**: the window (~120k tokens on state-of-the-art models) within which the model still reasons sharply. If a session approaches it before `/to-issues`, don't push on degraded — `/handoff` and continue in a fresh thread.
32
+ The limit on this is the **[smart zone](https://www.aihero.dev/ai-coding-dictionary/smart-zone)**: the window (~120k tokens on state-of-the-art models) within which the model still reasons sharply. If a session approaches it before `/to-tickets`, don't push on degraded — `/handoff` and continue in a fresh thread.
33
33
 
34
34
  ## On-ramps
35
35
 
@@ -37,10 +37,14 @@ A starting situation that generates work, then merges onto the main flow.
37
37
 
38
38
  - **Bugs and requests piling up** → **`/triage`**. It moves issues through triage roles and produces agent-ready issues, which **`/implement`** later picks up.
39
39
 
40
- Triage is only for issues **you didn't create** — bug reports, incoming feature requests, anything that arrives raw. Issues that `/to-issues` produced are already agent-ready, so **don't triage them**.
40
+ Triage is only for issues **you didn't create** — bug reports, incoming feature requests, anything that arrives raw. Tickets that `/to-tickets` produced are already agent-ready, so **don't triage them**.
41
41
 
42
42
  - **Something's broken** → **`/diagnosing-bugs`**. For the hard ones: the bug that resists a first glance, the intermittent flake, the regression that crept in between two known-good states. It refuses to theorise until it has a **tight feedback loop** — one command that already goes red on *this* bug — then fixes with a regression test. Its post-mortem hands off to **`/improve-codebase-architecture`** when the real finding is that there's no good seam to lock the bug down.
43
43
 
44
+ - **A huge, foggy effort — a greenfield project or a huge feature build, too big for one session** → **`/wayfinder`**, the most cognitively demanding flow here. When the way from here to the destination isn't visible yet, it charts a **shared map** of **decision tickets** on the issue tracker and resolves them one at a time — producing **decisions, not deliverables** — until the fog is pushed back and the way is clear. Where **`/grill-with-docs`** sharpens an idea you can hold in one session, wayfinder is for the idea you can't — and it's slower and denser, so save it for exactly that, never a well-scoped feature.
45
+
46
+ When the map clears, **it hands off, it doesn't build**: merge onto the main flow at **`/to-spec`**, which collapses the map's linked decisions into a buildable plan, then `/to-tickets` and `/implement` as usual. Looping the map straight into `/implement` skips that collapse and throws the linked detail away — go straight to `/implement` only when the effort turned out genuinely small.
47
+
44
48
  ## Codebase health
45
49
 
46
50
  Not feature work — upkeep.
@@ -0,0 +1,5 @@
1
+ interface:
2
+ display_name: "Ask Matt"
3
+ short_description: "Find the right skill or workflow"
4
+ policy:
5
+ allow_implicit_invocation: false
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: code-review
3
- description: Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
3
+ description: Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/Spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
4
4
  ---
5
5
 
6
6
  Two-axis review of the diff between `HEAD` and a fixed point the user supplies:
7
7
 
8
8
  - **Standards** — does the code conform to this repo's documented coding standards?
9
- - **Spec** — does the code faithfully implement the originating issue / PRD / spec?
9
+ - **Spec** — does the code faithfully implement the originating Ticket / Spec?
10
10
 
11
11
  Both axes run as **parallel sub-agents** so they don't pollute each other's context, then this skill aggregates their findings.
12
12
 
@@ -26,9 +26,9 @@ Before going further, confirm the fixed point resolves (`git rev-parse <fixed-po
26
26
 
27
27
  Look for the originating spec, in this order:
28
28
 
29
- 1. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
29
+ 1. Ticket references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
30
30
  2. A path the user passed as an argument.
31
- 3. A PRD/spec file under `docs/`, `specs/`, or `.scratch/` matching the branch name or feature.
31
+ 3. A Spec file under `docs/`, `specs/`, or `.scratch/` matching the branch name or feature.
32
32
  4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".
33
33
 
34
34
  ### 3. Identify the standards sources
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "Code Review"
3
+ short_description: "Review a diff on standards and spec"
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "Codebase Design"
3
+ short_description: "Vocabulary for deep-module design"
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: competitive-intelligence
3
- description: Use when researching competitors, market positioning, pricing, feature gaps, customer sentiment, or category trends before Discovery, PRD, product strategy, or roadmap decisions.
3
+ description: Use when researching competitors, market positioning, pricing, feature gaps, customer sentiment, or category trends before Discovery, Spec, product strategy, or roadmap decisions.
4
4
  ---
5
5
 
6
6
  # Competitive Intelligence
7
7
 
8
8
  Source requested for this project: `anthropics/knowledge-work-plugins`, `sales/skills/competitive-intelligence`.
9
9
 
10
- Use this skill when competitive or market facts are needed to shape product Discovery, PRD scope, positioning, differentiation, pricing assumptions, or roadmap tradeoffs.
10
+ Use this skill when competitive or market facts are needed to shape product Discovery, Spec scope, positioning, differentiation, pricing assumptions, or roadmap tradeoffs.
11
11
 
12
12
  ## Core Rules
13
13
 
@@ -43,11 +43,11 @@ Use this skill when competitive or market facts are needed to shape product Disc
43
43
  - Differentiators and defensibility.
44
44
  - Gaps and underserved jobs-to-be-done.
45
45
  - Risks if we copy the competitor too closely.
46
- - Product opportunities for PRD or roadmap.
46
+ - Product opportunities for Spec or roadmap.
47
47
  5. Hand off to lifecycle assets:
48
48
  - Update Discovery findings in `docs/discovery/`.
49
49
  - Create or update a competitor matrix in `docs/discovery/reports/`.
50
- - Feed stable user, pain, MVP, non-goal, and success criteria into `grill-with-docs` and `to-prd`.
50
+ - Feed stable user, pain, MVP, non-goal, and success criteria into `grill-with-docs` and `to-spec`.
51
51
  - Record uncertain claims as assumptions, not requirements.
52
52
 
53
53
  ## Output Shape
@@ -76,7 +76,7 @@ For a quick brief:
76
76
  | 维度 | 竞品 A | 竞品 B | 我们的机会 |
77
77
  |---|---|---|---|
78
78
 
79
- ### PRD 输入
79
+ ### Spec 输入
80
80
  - 用户 / 痛点:
81
81
  - MVP 建议:
82
82
  - 非目标范围:
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "Diagnosing Bugs"
3
+ short_description: "Diagnose hard bugs and regressions"
@@ -0,0 +1,3 @@
1
+ interface:
2
+ display_name: "Domain Modeling"
3
+ short_description: "Build and sharpen a domain model"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: excalidraw-diagram-generator
3
- description: 'Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.'
3
+ description: 'Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "draw business/functional/system/data architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, business flows, system architecture, ER, class, sequence, lineage, and data flow diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.'
4
4
  ---
5
5
 
6
6
  # Excalidraw Diagram Generator
@@ -31,6 +31,27 @@ Use this skill when users request:
31
31
  - 🔄 **Sequence Diagrams**: Object interactions over time, message flows
32
32
  - 🗃️ **ER Diagrams**: Database entity relationships, data models
33
33
 
34
+ ## YSS Lifecycle Integration
35
+
36
+ In YSS projects, this skill is a visualization and review aid. It can clarify lifecycle artifacts, but it must not replace Discovery, Spec, OpenAPI, ADR, Spec Delta design, or tests.
37
+
38
+ Use it after the relevant source artifact exists:
39
+
40
+ | Lifecycle artifact | Typical timing | Useful diagrams | Recommended output |
41
+ |--------------------|----------------|-----------------|--------------------|
42
+ | Business architecture | Opportunity exploration / Discovery | user journey, value stream, swimlane, capability map, ecosystem map | `docs/discovery/diagrams/` or `docs/architecture/diagrams/` |
43
+ | Functional architecture | Spec baseline / product design / Spec calibration | feature map, module map, dependency graph, page map | `docs/design/diagrams/` or `docs/architecture/diagrams/` |
44
+ | System architecture | Engineering baseline / Architecture / Spec Delta design | C4/container view, deployment, sequence, DDD boundary, DFD | `docs/architecture/diagrams/` |
45
+ | Data architecture | Detailed design before persistence / repository work | ER, class, meta-model, lineage graph, query/data-flow diagram | `docs/architecture/diagrams/` |
46
+
47
+ Guardrails:
48
+
49
+ - Do not invent product requirements or architecture decisions only from the diagram prompt.
50
+ - Reference the source artifact in the Markdown document that links the `.excalidraw` file.
51
+ - If a diagram exposes a missing field, unclear state, dependency, or boundary problem, write that finding back to the source Spec, OpenAPI Draft, architecture document, ADR, Spec Delta design, or issue.
52
+ - Do not require diagrams for small copy, style, configuration, or single-point bug fixes.
53
+ - For data modeling, metadata management, model versioning, or lineage-analysis products, prefer ER, class/meta-model, DFD, and lineage diagrams before persistence implementation.
54
+
34
55
  ## Prerequisites
35
56
 
36
57
  - Clear description of what should be visualized
@@ -178,7 +199,7 @@ Structure the complete Excalidraw file:
178
199
  ### Layout Tips
179
200
 
180
201
  1. **Start positions**: Center important elements, use consistent spacing
181
- 2. **Spacing**:
202
+ 2. **Spacing**:
182
203
  - Horizontal gap: 200-300px between elements
183
204
  - Vertical gap: 100-150px between rows
184
205
  3. **Colors**: Use consistent color scheme
@@ -315,18 +336,18 @@ For specialized diagrams (e.g., AWS/GCP/Azure architecture diagrams), you can us
315
336
 
316
337
  ```
317
338
  To use [AWS/GCP/Azure/etc.] architecture icons, please follow these steps:
318
-
339
+
319
340
  1. Visit https://libraries.excalidraw.com/
320
341
  2. Search for "[AWS Architecture Icons/etc.]" and download the .excalidrawlib file
321
342
  3. Create directory: skills/excalidraw-diagram-generator/libraries/[icon-set-name]/
322
343
  4. Place the downloaded file in that directory
323
344
  5. Run the splitter script:
324
345
  python skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py skills/excalidraw-diagram-generator/libraries/[icon-set-name]/
325
-
346
+
326
347
  This will split the library into individual icon files for efficient use.
327
348
  After setup is complete, I can create your diagram using the actual AWS/cloud icons.
328
-
329
- Alternatively, I can create the diagram now using simple shapes (rectangles, ellipses)
349
+
350
+ Alternatively, I can create the diagram now using simple shapes (rectangles, ellipses)
330
351
  which you can later replace with icons manually in Excalidraw.
331
352
  ```
332
353
 
@@ -389,15 +410,15 @@ The repository includes Python scripts that handle icon integration automaticall
389
410
  <diagram-path> <icon-name> <x> <y> [--label "Text"] [--library-path PATH]
390
411
  ```
391
412
  - Edit via `.excalidraw.edit` is enabled by default to avoid overwrite issues; pass `--no-use-edit-suffix` to disable.
392
-
413
+
393
414
  **Examples**:
394
415
  ```bash
395
416
  # Add EC2 icon at position (400, 300) with label
396
417
  python scripts/add-icon-to-diagram.py diagram.excalidraw EC2 400 300 --label "Web Server"
397
-
418
+
398
419
  # Add VPC icon at position (200, 150)
399
420
  python scripts/add-icon-to-diagram.py diagram.excalidraw VPC 200 150
400
-
421
+
401
422
  # Add icon from different library
402
423
  python scripts/add-icon-to-diagram.py diagram.excalidraw Compute-Engine 500 200 \
403
424
  --library-path libraries/gcp-icons --label "API Server"
@@ -409,15 +430,15 @@ The repository includes Python scripts that handle icon integration automaticall
409
430
  <diagram-path> <from-x> <from-y> <to-x> <to-y> [--label "Text"] [--style solid|dashed|dotted] [--color HEX]
410
431
  ```
411
432
  - Edit via `.excalidraw.edit` is enabled by default to avoid overwrite issues; pass `--no-use-edit-suffix` to disable.
412
-
433
+
413
434
  **Examples**:
414
435
  ```bash
415
436
  # Simple arrow from (300, 250) to (500, 300)
416
437
  python scripts/add-arrow.py diagram.excalidraw 300 250 500 300
417
-
438
+
418
439
  # Arrow with label
419
440
  python scripts/add-arrow.py diagram.excalidraw 300 250 500 300 --label "HTTPS"
420
-
441
+
421
442
  # Dashed arrow with custom color
422
443
  python scripts/add-arrow.py diagram.excalidraw 400 350 600 400 --style dashed --color "#7950f2"
423
444
  ```
@@ -426,14 +447,14 @@ The repository includes Python scripts that handle icon integration automaticall
426
447
  ```bash
427
448
  # Step 1: Create base diagram with title and structure
428
449
  # (Create .excalidraw file with initial elements)
429
-
450
+
430
451
  # Step 2: Add icons with labels
431
452
  python scripts/add-icon-to-diagram.py my-diagram.excalidraw "Internet-gateway" 200 150 --label "Internet Gateway"
432
453
  python scripts/add-icon-to-diagram.py my-diagram.excalidraw VPC 250 250
433
454
  python scripts/add-icon-to-diagram.py my-diagram.excalidraw ELB 350 300 --label "Load Balancer"
434
455
  python scripts/add-icon-to-diagram.py my-diagram.excalidraw EC2 450 350 --label "EC2 Instance"
435
456
  python scripts/add-icon-to-diagram.py my-diagram.excalidraw RDS 550 400 --label "Database"
436
-
457
+
437
458
  # Step 3: Add connecting arrows
438
459
  python scripts/add-arrow.py my-diagram.excalidraw 250 200 300 250 # Internet → VPC
439
460
  python scripts/add-arrow.py my-diagram.excalidraw 300 300 400 300 # VPC → ELB
@@ -453,7 +474,7 @@ The repository includes Python scripts that handle icon integration automaticall
453
474
 
454
475
  Only use this if Python scripts are unavailable:
455
476
 
456
- 1. **Check for libraries**:
477
+ 1. **Check for libraries**:
457
478
  ```
458
479
  List directory: skills/excalidraw-diagram-generator/libraries/
459
480
  Look for subdirectories containing reference.md files
@@ -549,7 +570,7 @@ python scripts/add-arrow.py my-aws-diagram.excalidraw 565 330 650 350 --label "S
549
570
  - `icons/Internet-gateway.json` (298 lines)
550
571
  - `icons/VPC.json` (550 lines)
551
572
  - `icons/ELB.json` (363 lines)
552
- - `icons/EC2.json` (231 lines)
573
+ - `icons/EC2.json` (231 lines)
553
574
  - `icons/RDS.json` (similar size)
554
575
  **Total: ~2000+ lines of JSON to process**
555
576
  4. Extract elements from each JSON
@@ -77,7 +77,7 @@ def create_arrow(
77
77
  ) -> list:
78
78
  """
79
79
  Create an arrow element.
80
-
80
+
81
81
  Args:
82
82
  from_x: Starting X coordinate
83
83
  from_y: Starting Y coordinate
@@ -86,12 +86,12 @@ def create_arrow(
86
86
  style: Line style (solid, dashed, dotted)
87
87
  color: Arrow color
88
88
  label: Optional text label on the arrow
89
-
89
+
90
90
  Returns:
91
91
  List of elements (arrow and optional label)
92
92
  """
93
93
  elements = []
94
-
94
+
95
95
  # Arrow element
96
96
  arrow = {
97
97
  "id": generate_unique_id(),
@@ -133,12 +133,12 @@ def create_arrow(
133
133
  "lastCommittedPoint": None
134
134
  }
135
135
  elements.append(arrow)
136
-
136
+
137
137
  # Optional label
138
138
  if label:
139
139
  mid_x = (from_x + to_x) / 2 - (len(label) * 5)
140
140
  mid_y = (from_y + to_y) / 2 - 10
141
-
141
+
142
142
  label_element = {
143
143
  "id": generate_unique_id(),
144
144
  "type": "text",
@@ -177,7 +177,7 @@ def create_arrow(
177
177
  "lineHeight": 1.25
178
178
  }
179
179
  elements.append(label_element)
180
-
180
+
181
181
  return elements
182
182
 
183
183
 
@@ -193,7 +193,7 @@ def add_arrow_to_diagram(
193
193
  ) -> None:
194
194
  """
195
195
  Add an arrow to an Excalidraw diagram.
196
-
196
+
197
197
  Args:
198
198
  diagram_path: Path to the Excalidraw diagram file
199
199
  from_x: Starting X coordinate
@@ -206,28 +206,28 @@ def add_arrow_to_diagram(
206
206
  """
207
207
  print(f"Creating arrow from ({from_x}, {from_y}) to ({to_x}, {to_y})")
208
208
  arrow_elements = create_arrow(from_x, from_y, to_x, to_y, style, color, label)
209
-
209
+
210
210
  if label:
211
211
  print(f" With label: '{label}'")
212
-
212
+
213
213
  # Load diagram
214
214
  print(f"Loading diagram: {diagram_path}")
215
215
  with open(diagram_path, 'r', encoding='utf-8') as f:
216
216
  diagram = json.load(f)
217
-
217
+
218
218
  # Add arrow elements
219
219
  if 'elements' not in diagram:
220
220
  diagram['elements'] = []
221
-
221
+
222
222
  original_count = len(diagram['elements'])
223
223
  diagram['elements'].extend(arrow_elements)
224
224
  print(f" Added {len(arrow_elements)} elements (total: {original_count} -> {len(diagram['elements'])})")
225
-
225
+
226
226
  # Save diagram
227
227
  print(f"Saving diagram")
228
228
  with open(diagram_path, 'w', encoding='utf-8') as f:
229
229
  json.dump(diagram, f, indent=2, ensure_ascii=False)
230
-
230
+
231
231
  print(f"✓ Successfully added arrow to diagram")
232
232
 
233
233
 
@@ -247,20 +247,20 @@ def main():
247
247
  print(" python add-arrow.py diagram.excalidraw 300 200 500 300")
248
248
  print(" python add-arrow.py diagram.excalidraw 300 200 500 300 --label 'HTTP'")
249
249
  sys.exit(1)
250
-
250
+
251
251
  diagram_path = Path(sys.argv[1])
252
252
  from_x = float(sys.argv[2])
253
253
  from_y = float(sys.argv[3])
254
254
  to_x = float(sys.argv[4])
255
255
  to_y = float(sys.argv[5])
256
-
256
+
257
257
  # Parse optional arguments
258
258
  style = "solid"
259
259
  color = "#1e1e1e"
260
260
  label = None
261
261
  # Default: use edit suffix to avoid editor overwrite issues
262
262
  use_edit_suffix = True
263
-
263
+
264
264
  i = 6
265
265
  while i < len(sys.argv):
266
266
  if sys.argv[i] == '--style':
@@ -296,12 +296,12 @@ def main():
296
296
  else:
297
297
  print(f"Error: Unknown option: {sys.argv[i]}")
298
298
  sys.exit(1)
299
-
299
+
300
300
  # Validate inputs
301
301
  if not diagram_path.exists():
302
302
  print(f"Error: Diagram file not found: {diagram_path}")
303
303
  sys.exit(1)
304
-
304
+
305
305
  try:
306
306
  work_path, final_path = prepare_edit_path(diagram_path, use_edit_suffix)
307
307
  add_arrow_to_diagram(work_path, from_x, from_y, to_x, to_y, style, color, label)