cli-jaw 0.1.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 (845) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +411 -0
  3. package/README.md +416 -0
  4. package/README.zh-CN.md +411 -0
  5. package/dist/bin/cli-jaw.js +108 -0
  6. package/dist/bin/cli-jaw.js.map +1 -0
  7. package/dist/bin/commands/browser.js +241 -0
  8. package/dist/bin/commands/browser.js.map +1 -0
  9. package/dist/bin/commands/chat.js +878 -0
  10. package/dist/bin/commands/chat.js.map +1 -0
  11. package/dist/bin/commands/doctor.js +152 -0
  12. package/dist/bin/commands/doctor.js.map +1 -0
  13. package/dist/bin/commands/employee.js +70 -0
  14. package/dist/bin/commands/employee.js.map +1 -0
  15. package/dist/bin/commands/init.js +110 -0
  16. package/dist/bin/commands/init.js.map +1 -0
  17. package/dist/bin/commands/mcp.js +219 -0
  18. package/dist/bin/commands/mcp.js.map +1 -0
  19. package/dist/bin/commands/memory.js +105 -0
  20. package/dist/bin/commands/memory.js.map +1 -0
  21. package/dist/bin/commands/reset.js +109 -0
  22. package/dist/bin/commands/reset.js.map +1 -0
  23. package/dist/bin/commands/serve.js +75 -0
  24. package/dist/bin/commands/serve.js.map +1 -0
  25. package/dist/bin/commands/skill.js +232 -0
  26. package/dist/bin/commands/skill.js.map +1 -0
  27. package/dist/bin/commands/status.js +51 -0
  28. package/dist/bin/commands/status.js.map +1 -0
  29. package/dist/bin/postinstall.js +218 -0
  30. package/dist/bin/postinstall.js.map +1 -0
  31. package/dist/lib/mcp-sync.js +639 -0
  32. package/dist/lib/mcp-sync.js.map +1 -0
  33. package/dist/lib/quota-copilot.js +62 -0
  34. package/dist/lib/quota-copilot.js.map +1 -0
  35. package/dist/lib/upload.js +72 -0
  36. package/dist/lib/upload.js.map +1 -0
  37. package/dist/server.js +832 -0
  38. package/dist/server.js.map +1 -0
  39. package/dist/src/agent/args.js +66 -0
  40. package/dist/src/agent/args.js.map +1 -0
  41. package/dist/src/agent/events.js +328 -0
  42. package/dist/src/agent/events.js.map +1 -0
  43. package/dist/src/agent/spawn.js +646 -0
  44. package/dist/src/agent/spawn.js.map +1 -0
  45. package/dist/src/browser/actions.js +168 -0
  46. package/dist/src/browser/actions.js.map +1 -0
  47. package/dist/src/browser/connection.js +79 -0
  48. package/dist/src/browser/connection.js.map +1 -0
  49. package/dist/src/browser/index.js +4 -0
  50. package/dist/src/browser/index.js.map +1 -0
  51. package/dist/src/browser/vision.js +128 -0
  52. package/dist/src/browser/vision.js.map +1 -0
  53. package/dist/src/cli/acp-client.js +298 -0
  54. package/dist/src/cli/acp-client.js.map +1 -0
  55. package/dist/src/cli/commands.js +267 -0
  56. package/dist/src/cli/commands.js.map +1 -0
  57. package/dist/src/cli/handlers.js +405 -0
  58. package/dist/src/cli/handlers.js.map +1 -0
  59. package/dist/src/cli/registry.js +87 -0
  60. package/dist/src/cli/registry.js.map +1 -0
  61. package/dist/src/command-contract/catalog.js +36 -0
  62. package/dist/src/command-contract/catalog.js.map +1 -0
  63. package/dist/src/command-contract/help-renderer.js +39 -0
  64. package/dist/src/command-contract/help-renderer.js.map +1 -0
  65. package/dist/src/command-contract/policy.js +34 -0
  66. package/dist/src/command-contract/policy.js.map +1 -0
  67. package/dist/src/core/bus.js +17 -0
  68. package/dist/src/core/bus.js.map +1 -0
  69. package/dist/src/core/config.js +198 -0
  70. package/dist/src/core/config.js.map +1 -0
  71. package/dist/src/core/db.js +97 -0
  72. package/dist/src/core/db.js.map +1 -0
  73. package/dist/src/core/i18n.js +86 -0
  74. package/dist/src/core/i18n.js.map +1 -0
  75. package/dist/src/core/logger.js +14 -0
  76. package/dist/src/core/logger.js.map +1 -0
  77. package/dist/src/core/settings-merge.js +40 -0
  78. package/dist/src/core/settings-merge.js.map +1 -0
  79. package/dist/src/http/async-handler.js +6 -0
  80. package/dist/src/http/async-handler.js.map +1 -0
  81. package/dist/src/http/error-middleware.js +24 -0
  82. package/dist/src/http/error-middleware.js.map +1 -0
  83. package/dist/src/http/response.js +16 -0
  84. package/dist/src/http/response.js.map +1 -0
  85. package/dist/src/memory/heartbeat.js +106 -0
  86. package/dist/src/memory/heartbeat.js.map +1 -0
  87. package/dist/src/memory/memory.js +119 -0
  88. package/dist/src/memory/memory.js.map +1 -0
  89. package/dist/src/memory/worklog.js +154 -0
  90. package/dist/src/memory/worklog.js.map +1 -0
  91. package/dist/src/orchestrator/distribute.js +310 -0
  92. package/dist/src/orchestrator/distribute.js.map +1 -0
  93. package/dist/src/orchestrator/parser.js +118 -0
  94. package/dist/src/orchestrator/parser.js.map +1 -0
  95. package/dist/src/orchestrator/pipeline.js +343 -0
  96. package/dist/src/orchestrator/pipeline.js.map +1 -0
  97. package/dist/src/prompt/builder.js +531 -0
  98. package/dist/src/prompt/builder.js.map +1 -0
  99. package/dist/src/routes/browser.js +126 -0
  100. package/dist/src/routes/browser.js.map +1 -0
  101. package/dist/src/routes/quota.js +94 -0
  102. package/dist/src/routes/quota.js.map +1 -0
  103. package/dist/src/security/decode.js +23 -0
  104. package/dist/src/security/decode.js.map +1 -0
  105. package/dist/src/security/path-guards.js +62 -0
  106. package/dist/src/security/path-guards.js.map +1 -0
  107. package/dist/src/telegram/bot.js +469 -0
  108. package/dist/src/telegram/bot.js.map +1 -0
  109. package/dist/src/telegram/forwarder.js +93 -0
  110. package/dist/src/telegram/forwarder.js.map +1 -0
  111. package/package.json +80 -0
  112. package/public/css/chat.css +571 -0
  113. package/public/css/layout.css +350 -0
  114. package/public/css/markdown.css +270 -0
  115. package/public/css/modals.css +172 -0
  116. package/public/css/sidebar.css +225 -0
  117. package/public/css/variables.css +142 -0
  118. package/public/index.html +470 -0
  119. package/public/js/api.js +55 -0
  120. package/public/js/constants.js +119 -0
  121. package/public/js/features/appname.js +43 -0
  122. package/public/js/features/chat.js +242 -0
  123. package/public/js/features/employees.js +120 -0
  124. package/public/js/features/heartbeat.js +80 -0
  125. package/public/js/features/i18n.js +125 -0
  126. package/public/js/features/memory.js +85 -0
  127. package/public/js/features/settings.js +512 -0
  128. package/public/js/features/sidebar.js +88 -0
  129. package/public/js/features/skills.js +68 -0
  130. package/public/js/features/slash-commands.js +231 -0
  131. package/public/js/features/theme.js +40 -0
  132. package/public/js/locale.js +23 -0
  133. package/public/js/main.js +281 -0
  134. package/public/js/render.js +294 -0
  135. package/public/js/state.js +16 -0
  136. package/public/js/ui.js +172 -0
  137. package/public/js/ws.js +76 -0
  138. package/public/locales/en.json +180 -0
  139. package/public/locales/ko.json +180 -0
  140. package/public/theme-test.html +545 -0
  141. package/skills_ref/1password/SKILL.md +70 -0
  142. package/skills_ref/agents-sdk/SKILL.md +155 -0
  143. package/skills_ref/agents-sdk/references/callable.md +92 -0
  144. package/skills_ref/agents-sdk/references/codemode.md +207 -0
  145. package/skills_ref/agents-sdk/references/email.md +146 -0
  146. package/skills_ref/agents-sdk/references/mcp.md +154 -0
  147. package/skills_ref/agents-sdk/references/state-scheduling.md +164 -0
  148. package/skills_ref/agents-sdk/references/streaming-chat.md +178 -0
  149. package/skills_ref/agents-sdk/references/workflows.md +132 -0
  150. package/skills_ref/algorithmic-art/LICENSE.txt +202 -0
  151. package/skills_ref/algorithmic-art/SKILL.md +405 -0
  152. package/skills_ref/algorithmic-art/templates/generator_template.js +223 -0
  153. package/skills_ref/algorithmic-art/templates/viewer.html +599 -0
  154. package/skills_ref/apple-notes/SKILL.md +77 -0
  155. package/skills_ref/apple-reminders/SKILL.md +118 -0
  156. package/skills_ref/atlas/SKILL.md +99 -0
  157. package/skills_ref/brainstorming/SKILL.md +96 -0
  158. package/skills_ref/browser/SKILL.md +179 -0
  159. package/skills_ref/canvas-design/LICENSE.txt +202 -0
  160. package/skills_ref/canvas-design/SKILL.md +130 -0
  161. package/skills_ref/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  162. package/skills_ref/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  163. package/skills_ref/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  164. package/skills_ref/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  165. package/skills_ref/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  166. package/skills_ref/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  167. package/skills_ref/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  168. package/skills_ref/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  169. package/skills_ref/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  170. package/skills_ref/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  171. package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  172. package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  173. package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  174. package/skills_ref/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  175. package/skills_ref/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  176. package/skills_ref/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  177. package/skills_ref/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  178. package/skills_ref/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  179. package/skills_ref/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  180. package/skills_ref/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  181. package/skills_ref/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  182. package/skills_ref/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  183. package/skills_ref/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  184. package/skills_ref/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  185. package/skills_ref/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  186. package/skills_ref/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  187. package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  188. package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  189. package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  190. package/skills_ref/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  191. package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  192. package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  193. package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  194. package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  195. package/skills_ref/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  196. package/skills_ref/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  197. package/skills_ref/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  198. package/skills_ref/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  199. package/skills_ref/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  200. package/skills_ref/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  201. package/skills_ref/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  202. package/skills_ref/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  203. package/skills_ref/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  204. package/skills_ref/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  205. package/skills_ref/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  206. package/skills_ref/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  207. package/skills_ref/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  208. package/skills_ref/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  209. package/skills_ref/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  210. package/skills_ref/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  211. package/skills_ref/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  212. package/skills_ref/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  213. package/skills_ref/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  214. package/skills_ref/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  215. package/skills_ref/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  216. package/skills_ref/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  217. package/skills_ref/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  218. package/skills_ref/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  219. package/skills_ref/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  220. package/skills_ref/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  221. package/skills_ref/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  222. package/skills_ref/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  223. package/skills_ref/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  224. package/skills_ref/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  225. package/skills_ref/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  226. package/skills_ref/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  227. package/skills_ref/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  228. package/skills_ref/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  229. package/skills_ref/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  230. package/skills_ref/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  231. package/skills_ref/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  232. package/skills_ref/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  233. package/skills_ref/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  234. package/skills_ref/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  235. package/skills_ref/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  236. package/skills_ref/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  237. package/skills_ref/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  238. package/skills_ref/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  239. package/skills_ref/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  240. package/skills_ref/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  241. package/skills_ref/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  242. package/skills_ref/changelog-generator/SKILL.md +104 -0
  243. package/skills_ref/cloudflare-deploy/SKILL.md +207 -0
  244. package/skills_ref/codebase-orientation/SKILL.md +29 -0
  245. package/skills_ref/config-file-explainer/SKILL.md +26 -0
  246. package/skills_ref/context-compression/SKILL.md +265 -0
  247. package/skills_ref/context-compression/references/evaluation-framework.md +213 -0
  248. package/skills_ref/context-compression/scripts/compression_evaluator.py +658 -0
  249. package/skills_ref/data-structure-chooser/SKILL.md +26 -0
  250. package/skills_ref/debugging-checklist/SKILL.md +26 -0
  251. package/skills_ref/debugging-helpers/CREATION-LOG.md +119 -0
  252. package/skills_ref/debugging-helpers/SKILL.md +296 -0
  253. package/skills_ref/debugging-helpers/condition-based-waiting-example.ts +158 -0
  254. package/skills_ref/debugging-helpers/condition-based-waiting.md +115 -0
  255. package/skills_ref/debugging-helpers/defense-in-depth.md +122 -0
  256. package/skills_ref/debugging-helpers/find-polluter.sh +63 -0
  257. package/skills_ref/debugging-helpers/root-cause-tracing.md +169 -0
  258. package/skills_ref/debugging-helpers/test-academic.md +14 -0
  259. package/skills_ref/debugging-helpers/test-pressure-1.md +58 -0
  260. package/skills_ref/debugging-helpers/test-pressure-2.md +68 -0
  261. package/skills_ref/debugging-helpers/test-pressure-3.md +69 -0
  262. package/skills_ref/deep-research/.env.example +7 -0
  263. package/skills_ref/deep-research/README.md +246 -0
  264. package/skills_ref/deep-research/SKILL.md +106 -0
  265. package/skills_ref/deep-research/requirements.txt +2 -0
  266. package/skills_ref/deep-research/scripts/research.py +692 -0
  267. package/skills_ref/dependency-install-helper/SKILL.md +26 -0
  268. package/skills_ref/dev/SKILL.md +65 -0
  269. package/skills_ref/dev-backend/SKILL.md +61 -0
  270. package/skills_ref/dev-data/SKILL.md +76 -0
  271. package/skills_ref/dev-frontend/LICENSE.txt +177 -0
  272. package/skills_ref/dev-frontend/SKILL.md +42 -0
  273. package/skills_ref/dev-testing/LICENSE.txt +202 -0
  274. package/skills_ref/dev-testing/SKILL.md +96 -0
  275. package/skills_ref/dev-testing/examples/console_logging.py +35 -0
  276. package/skills_ref/dev-testing/examples/element_discovery.py +40 -0
  277. package/skills_ref/dev-testing/examples/static_html_automation.py +33 -0
  278. package/skills_ref/dev-testing/scripts/with_server.py +106 -0
  279. package/skills_ref/develop-web-game/SKILL.md +149 -0
  280. package/skills_ref/differential-review/.claude-plugin/plugin.json +10 -0
  281. package/skills_ref/differential-review/README.md +109 -0
  282. package/skills_ref/differential-review/commands/diff-review.md +21 -0
  283. package/skills_ref/differential-review/skills/differential-review/SKILL.md +220 -0
  284. package/skills_ref/differential-review/skills/differential-review/adversarial.md +203 -0
  285. package/skills_ref/differential-review/skills/differential-review/methodology.md +234 -0
  286. package/skills_ref/differential-review/skills/differential-review/patterns.md +300 -0
  287. package/skills_ref/differential-review/skills/differential-review/reporting.md +369 -0
  288. package/skills_ref/dispatching-parallel-agents/SKILL.md +180 -0
  289. package/skills_ref/doc-coauthoring/SKILL.md +375 -0
  290. package/skills_ref/docx/LICENSE.txt +30 -0
  291. package/skills_ref/docx/SKILL.md +481 -0
  292. package/skills_ref/docx/scripts/__init__.py +1 -0
  293. package/skills_ref/docx/scripts/accept_changes.py +135 -0
  294. package/skills_ref/docx/scripts/comment.py +318 -0
  295. package/skills_ref/docx/scripts/office/helpers/__init__.py +0 -0
  296. package/skills_ref/docx/scripts/office/helpers/merge_runs.py +199 -0
  297. package/skills_ref/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  298. package/skills_ref/docx/scripts/office/pack.py +159 -0
  299. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  300. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  301. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  302. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  303. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  304. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  305. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  306. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  307. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  308. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  309. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  310. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  311. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  312. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  313. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  314. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  315. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  316. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  317. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  318. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  319. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  320. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  321. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  322. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  323. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  324. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  325. package/skills_ref/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  326. package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  327. package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  328. package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  329. package/skills_ref/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  330. package/skills_ref/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  331. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  332. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  333. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  334. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  335. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  336. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  337. package/skills_ref/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  338. package/skills_ref/docx/scripts/office/soffice.py +183 -0
  339. package/skills_ref/docx/scripts/office/unpack.py +132 -0
  340. package/skills_ref/docx/scripts/office/validate.py +111 -0
  341. package/skills_ref/docx/scripts/office/validators/__init__.py +15 -0
  342. package/skills_ref/docx/scripts/office/validators/base.py +847 -0
  343. package/skills_ref/docx/scripts/office/validators/docx.py +446 -0
  344. package/skills_ref/docx/scripts/office/validators/pptx.py +275 -0
  345. package/skills_ref/docx/scripts/office/validators/redlining.py +247 -0
  346. package/skills_ref/docx/scripts/templates/comments.xml +3 -0
  347. package/skills_ref/docx/scripts/templates/commentsExtended.xml +3 -0
  348. package/skills_ref/docx/scripts/templates/commentsExtensible.xml +3 -0
  349. package/skills_ref/docx/scripts/templates/commentsIds.xml +3 -0
  350. package/skills_ref/docx/scripts/templates/people.xml +3 -0
  351. package/skills_ref/durable-objects/SKILL.md +186 -0
  352. package/skills_ref/durable-objects/references/rules.md +286 -0
  353. package/skills_ref/durable-objects/references/testing.md +264 -0
  354. package/skills_ref/durable-objects/references/workers.md +346 -0
  355. package/skills_ref/email-draft-polish/SKILL.md +24 -0
  356. package/skills_ref/error-message-explainer/SKILL.md +27 -0
  357. package/skills_ref/fal-image-edit/SKILL.md +249 -0
  358. package/skills_ref/fal-image-edit/scripts/edit-image.sh +199 -0
  359. package/skills_ref/figma-implement-design/SKILL.md +264 -0
  360. package/skills_ref/git-worktrees/SKILL.md +218 -0
  361. package/skills_ref/github/SKILL.md +210 -0
  362. package/skills_ref/gog/SKILL.md +116 -0
  363. package/skills_ref/goplaces/SKILL.md +52 -0
  364. package/skills_ref/himalaya/SKILL.md +257 -0
  365. package/skills_ref/hugging-face-cli/SKILL.md +186 -0
  366. package/skills_ref/hugging-face-cli/references/commands.md +954 -0
  367. package/skills_ref/hugging-face-cli/references/examples.md +374 -0
  368. package/skills_ref/hugging-face-evaluation/SKILL.md +651 -0
  369. package/skills_ref/hugging-face-evaluation/examples/.env.example +7 -0
  370. package/skills_ref/hugging-face-evaluation/examples/USAGE_EXAMPLES.md +382 -0
  371. package/skills_ref/hugging-face-evaluation/examples/artificial_analysis_to_hub.py +141 -0
  372. package/skills_ref/hugging-face-evaluation/examples/example_readme_tables.md +135 -0
  373. package/skills_ref/hugging-face-evaluation/examples/metric_mapping.json +50 -0
  374. package/skills_ref/hugging-face-evaluation/requirements.txt +20 -0
  375. package/skills_ref/hugging-face-evaluation/scripts/evaluation_manager.py +1374 -0
  376. package/skills_ref/hugging-face-evaluation/scripts/inspect_eval_uv.py +104 -0
  377. package/skills_ref/hugging-face-evaluation/scripts/inspect_vllm_uv.py +317 -0
  378. package/skills_ref/hugging-face-evaluation/scripts/lighteval_vllm_uv.py +303 -0
  379. package/skills_ref/hugging-face-evaluation/scripts/run_eval_job.py +98 -0
  380. package/skills_ref/hugging-face-evaluation/scripts/run_vllm_eval_job.py +331 -0
  381. package/skills_ref/hugging-face-evaluation/scripts/test_extraction.py +206 -0
  382. package/skills_ref/hugging-face-model-trainer/SKILL.md +718 -0
  383. package/skills_ref/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
  384. package/skills_ref/hugging-face-model-trainer/references/hardware_guide.md +283 -0
  385. package/skills_ref/hugging-face-model-trainer/references/hub_saving.md +364 -0
  386. package/skills_ref/hugging-face-model-trainer/references/reliability_principles.md +371 -0
  387. package/skills_ref/hugging-face-model-trainer/references/trackio_guide.md +189 -0
  388. package/skills_ref/hugging-face-model-trainer/references/training_methods.md +150 -0
  389. package/skills_ref/hugging-face-model-trainer/references/training_patterns.md +203 -0
  390. package/skills_ref/hugging-face-model-trainer/references/troubleshooting.md +282 -0
  391. package/skills_ref/hugging-face-model-trainer/references/unsloth.md +313 -0
  392. package/skills_ref/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
  393. package/skills_ref/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
  394. package/skills_ref/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
  395. package/skills_ref/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
  396. package/skills_ref/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
  397. package/skills_ref/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
  398. package/skills_ref/hugging-face-model-trainer/scripts/unsloth_sft_example.py +512 -0
  399. package/skills_ref/imagegen/SKILL.md +174 -0
  400. package/skills_ref/insecure-defaults/.claude-plugin/plugin.json +10 -0
  401. package/skills_ref/insecure-defaults/README.md +45 -0
  402. package/skills_ref/insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
  403. package/skills_ref/insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
  404. package/skills_ref/jupyter-notebook/SKILL.md +107 -0
  405. package/skills_ref/linear/SKILL.md +87 -0
  406. package/skills_ref/linter-fix-guide/SKILL.md +27 -0
  407. package/skills_ref/log-summarizer/SKILL.md +27 -0
  408. package/skills_ref/mcp-builder/LICENSE.txt +202 -0
  409. package/skills_ref/mcp-builder/SKILL.md +236 -0
  410. package/skills_ref/mcp-builder/reference/evaluation.md +602 -0
  411. package/skills_ref/mcp-builder/reference/mcp_best_practices.md +249 -0
  412. package/skills_ref/mcp-builder/reference/node_mcp_server.md +970 -0
  413. package/skills_ref/mcp-builder/reference/python_mcp_server.md +719 -0
  414. package/skills_ref/mcp-builder/scripts/connections.py +151 -0
  415. package/skills_ref/mcp-builder/scripts/evaluation.py +373 -0
  416. package/skills_ref/mcp-builder/scripts/example_evaluation.xml +22 -0
  417. package/skills_ref/mcp-builder/scripts/requirements.txt +2 -0
  418. package/skills_ref/memory/SKILL.md +129 -0
  419. package/skills_ref/modern-python/.claude-plugin/plugin.json +10 -0
  420. package/skills_ref/modern-python/README.md +66 -0
  421. package/skills_ref/modern-python/hooks/hooks.json +16 -0
  422. package/skills_ref/modern-python/hooks/setup-shims.bats +70 -0
  423. package/skills_ref/modern-python/hooks/setup-shims.sh +24 -0
  424. package/skills_ref/modern-python/hooks/shims/pip +27 -0
  425. package/skills_ref/modern-python/hooks/shims/pip-shim.bats +45 -0
  426. package/skills_ref/modern-python/hooks/shims/pip3 +27 -0
  427. package/skills_ref/modern-python/hooks/shims/pipx +41 -0
  428. package/skills_ref/modern-python/hooks/shims/pipx-shim.bats +64 -0
  429. package/skills_ref/modern-python/hooks/shims/python +26 -0
  430. package/skills_ref/modern-python/hooks/shims/python-shim.bats +53 -0
  431. package/skills_ref/modern-python/hooks/shims/python3 +26 -0
  432. package/skills_ref/modern-python/hooks/shims/uv +27 -0
  433. package/skills_ref/modern-python/hooks/shims/uv-shim.bats +47 -0
  434. package/skills_ref/modern-python/skills/modern-python/SKILL.md +333 -0
  435. package/skills_ref/modern-python/skills/modern-python/references/dependabot.md +43 -0
  436. package/skills_ref/modern-python/skills/modern-python/references/migration-checklist.md +141 -0
  437. package/skills_ref/modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
  438. package/skills_ref/modern-python/skills/modern-python/references/prek.md +211 -0
  439. package/skills_ref/modern-python/skills/modern-python/references/pyproject.md +254 -0
  440. package/skills_ref/modern-python/skills/modern-python/references/ruff-config.md +240 -0
  441. package/skills_ref/modern-python/skills/modern-python/references/security-setup.md +255 -0
  442. package/skills_ref/modern-python/skills/modern-python/references/testing.md +284 -0
  443. package/skills_ref/modern-python/skills/modern-python/references/uv-commands.md +200 -0
  444. package/skills_ref/modern-python/skills/modern-python/templates/dependabot.yml +36 -0
  445. package/skills_ref/modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
  446. package/skills_ref/nano-banana-pro/SKILL.md +58 -0
  447. package/skills_ref/netlify-deploy/SKILL.md +233 -0
  448. package/skills_ref/notion/SKILL.md +304 -0
  449. package/skills_ref/notion-knowledge-capture/SKILL.md +56 -0
  450. package/skills_ref/notion-meeting-intelligence/SKILL.md +60 -0
  451. package/skills_ref/notion-research-documentation/SKILL.md +59 -0
  452. package/skills_ref/notion-spec-to-implementation/SKILL.md +58 -0
  453. package/skills_ref/obsidian/SKILL.md +81 -0
  454. package/skills_ref/openai-docs/SKILL.md +56 -0
  455. package/skills_ref/openhue/SKILL.md +112 -0
  456. package/skills_ref/pdf/SKILL.md +69 -0
  457. package/skills_ref/postgres/README.md +77 -0
  458. package/skills_ref/postgres/SKILL.md +129 -0
  459. package/skills_ref/postgres/connections.example.json +34 -0
  460. package/skills_ref/postgres/requirements.txt +1 -0
  461. package/skills_ref/postgres/scripts/query.py +262 -0
  462. package/skills_ref/pptx/LICENSE.txt +30 -0
  463. package/skills_ref/pptx/SKILL.md +232 -0
  464. package/skills_ref/pptx/editing.md +205 -0
  465. package/skills_ref/pptx/pptxgenjs.md +420 -0
  466. package/skills_ref/pptx/scripts/__init__.py +0 -0
  467. package/skills_ref/pptx/scripts/add_slide.py +195 -0
  468. package/skills_ref/pptx/scripts/clean.py +286 -0
  469. package/skills_ref/pptx/scripts/office/helpers/__init__.py +0 -0
  470. package/skills_ref/pptx/scripts/office/helpers/merge_runs.py +199 -0
  471. package/skills_ref/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  472. package/skills_ref/pptx/scripts/office/pack.py +159 -0
  473. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  474. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  475. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  476. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  477. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  478. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  479. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  480. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  481. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  482. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  483. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  484. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  485. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  486. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  487. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  488. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  489. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  490. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  491. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  492. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  493. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  494. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  495. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  496. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  497. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  498. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  499. package/skills_ref/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  500. package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  501. package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  502. package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  503. package/skills_ref/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  504. package/skills_ref/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  505. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  506. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  507. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  508. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  509. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  510. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  511. package/skills_ref/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  512. package/skills_ref/pptx/scripts/office/soffice.py +183 -0
  513. package/skills_ref/pptx/scripts/office/unpack.py +132 -0
  514. package/skills_ref/pptx/scripts/office/validate.py +111 -0
  515. package/skills_ref/pptx/scripts/office/validators/__init__.py +15 -0
  516. package/skills_ref/pptx/scripts/office/validators/base.py +847 -0
  517. package/skills_ref/pptx/scripts/office/validators/docx.py +446 -0
  518. package/skills_ref/pptx/scripts/office/validators/pptx.py +275 -0
  519. package/skills_ref/pptx/scripts/office/validators/redlining.py +247 -0
  520. package/skills_ref/pptx/scripts/thumbnail.py +289 -0
  521. package/skills_ref/property-based-testing/.claude-plugin/plugin.json +9 -0
  522. package/skills_ref/property-based-testing/README.md +47 -0
  523. package/skills_ref/property-based-testing/skills/property-based-testing/README.md +88 -0
  524. package/skills_ref/property-based-testing/skills/property-based-testing/SKILL.md +123 -0
  525. package/skills_ref/property-based-testing/skills/property-based-testing/references/design.md +191 -0
  526. package/skills_ref/property-based-testing/skills/property-based-testing/references/generating.md +204 -0
  527. package/skills_ref/property-based-testing/skills/property-based-testing/references/interpreting-failures.md +239 -0
  528. package/skills_ref/property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
  529. package/skills_ref/property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
  530. package/skills_ref/property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
  531. package/skills_ref/property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
  532. package/skills_ref/react-best-practices/AGENTS.md +2934 -0
  533. package/skills_ref/react-best-practices/README.md +123 -0
  534. package/skills_ref/react-best-practices/SKILL.md +136 -0
  535. package/skills_ref/react-best-practices/metadata.json +15 -0
  536. package/skills_ref/react-best-practices/rules/_sections.md +46 -0
  537. package/skills_ref/react-best-practices/rules/_template.md +28 -0
  538. package/skills_ref/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  539. package/skills_ref/react-best-practices/rules/advanced-init-once.md +42 -0
  540. package/skills_ref/react-best-practices/rules/advanced-use-latest.md +39 -0
  541. package/skills_ref/react-best-practices/rules/async-api-routes.md +38 -0
  542. package/skills_ref/react-best-practices/rules/async-defer-await.md +80 -0
  543. package/skills_ref/react-best-practices/rules/async-dependencies.md +51 -0
  544. package/skills_ref/react-best-practices/rules/async-parallel.md +28 -0
  545. package/skills_ref/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  546. package/skills_ref/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  547. package/skills_ref/react-best-practices/rules/bundle-conditional.md +31 -0
  548. package/skills_ref/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  549. package/skills_ref/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  550. package/skills_ref/react-best-practices/rules/bundle-preload.md +50 -0
  551. package/skills_ref/react-best-practices/rules/client-event-listeners.md +74 -0
  552. package/skills_ref/react-best-practices/rules/client-localstorage-schema.md +71 -0
  553. package/skills_ref/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  554. package/skills_ref/react-best-practices/rules/client-swr-dedup.md +56 -0
  555. package/skills_ref/react-best-practices/rules/js-batch-dom-css.md +107 -0
  556. package/skills_ref/react-best-practices/rules/js-cache-function-results.md +80 -0
  557. package/skills_ref/react-best-practices/rules/js-cache-property-access.md +28 -0
  558. package/skills_ref/react-best-practices/rules/js-cache-storage.md +70 -0
  559. package/skills_ref/react-best-practices/rules/js-combine-iterations.md +32 -0
  560. package/skills_ref/react-best-practices/rules/js-early-exit.md +50 -0
  561. package/skills_ref/react-best-practices/rules/js-hoist-regexp.md +45 -0
  562. package/skills_ref/react-best-practices/rules/js-index-maps.md +37 -0
  563. package/skills_ref/react-best-practices/rules/js-length-check-first.md +49 -0
  564. package/skills_ref/react-best-practices/rules/js-min-max-loop.md +82 -0
  565. package/skills_ref/react-best-practices/rules/js-set-map-lookups.md +24 -0
  566. package/skills_ref/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  567. package/skills_ref/react-best-practices/rules/rendering-activity.md +26 -0
  568. package/skills_ref/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  569. package/skills_ref/react-best-practices/rules/rendering-conditional-render.md +40 -0
  570. package/skills_ref/react-best-practices/rules/rendering-content-visibility.md +38 -0
  571. package/skills_ref/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  572. package/skills_ref/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  573. package/skills_ref/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  574. package/skills_ref/react-best-practices/rules/rendering-svg-precision.md +28 -0
  575. package/skills_ref/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  576. package/skills_ref/react-best-practices/rules/rerender-defer-reads.md +39 -0
  577. package/skills_ref/react-best-practices/rules/rerender-dependencies.md +45 -0
  578. package/skills_ref/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  579. package/skills_ref/react-best-practices/rules/rerender-derived-state.md +29 -0
  580. package/skills_ref/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  581. package/skills_ref/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  582. package/skills_ref/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  583. package/skills_ref/react-best-practices/rules/rerender-memo.md +44 -0
  584. package/skills_ref/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  585. package/skills_ref/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  586. package/skills_ref/react-best-practices/rules/rerender-transitions.md +40 -0
  587. package/skills_ref/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  588. package/skills_ref/react-best-practices/rules/server-after-nonblocking.md +73 -0
  589. package/skills_ref/react-best-practices/rules/server-auth-actions.md +96 -0
  590. package/skills_ref/react-best-practices/rules/server-cache-lru.md +41 -0
  591. package/skills_ref/react-best-practices/rules/server-cache-react.md +76 -0
  592. package/skills_ref/react-best-practices/rules/server-dedup-props.md +65 -0
  593. package/skills_ref/react-best-practices/rules/server-parallel-fetching.md +83 -0
  594. package/skills_ref/react-best-practices/rules/server-serialization.md +38 -0
  595. package/skills_ref/receiving-code-review/SKILL.md +213 -0
  596. package/skills_ref/registry.json +1493 -0
  597. package/skills_ref/render-deploy/SKILL.md +462 -0
  598. package/skills_ref/requesting-code-review/SKILL.md +105 -0
  599. package/skills_ref/requesting-code-review/code-reviewer.md +146 -0
  600. package/skills_ref/screen-capture/SKILL.md +162 -0
  601. package/skills_ref/security-best-practices/LICENSE.txt +201 -0
  602. package/skills_ref/security-best-practices/SKILL.md +86 -0
  603. package/skills_ref/security-best-practices/agents/openai.yaml +4 -0
  604. package/skills_ref/security-best-practices/references/golang-general-backend-security.md +826 -0
  605. package/skills_ref/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
  606. package/skills_ref/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
  607. package/skills_ref/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
  608. package/skills_ref/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
  609. package/skills_ref/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
  610. package/skills_ref/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
  611. package/skills_ref/security-best-practices/references/python-django-web-server-security.md +882 -0
  612. package/skills_ref/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
  613. package/skills_ref/security-best-practices/references/python-flask-web-server-security.md +705 -0
  614. package/skills_ref/security-ownership-map/LICENSE.txt +201 -0
  615. package/skills_ref/security-ownership-map/SKILL.md +206 -0
  616. package/skills_ref/security-ownership-map/agents/openai.yaml +4 -0
  617. package/skills_ref/security-ownership-map/references/neo4j-import.md +60 -0
  618. package/skills_ref/security-ownership-map/scripts/build_ownership_map.py +956 -0
  619. package/skills_ref/security-ownership-map/scripts/community_maintainers.py +544 -0
  620. package/skills_ref/security-ownership-map/scripts/query_ownership.py +483 -0
  621. package/skills_ref/security-ownership-map/scripts/run_ownership_map.py +200 -0
  622. package/skills_ref/security-threat-model/LICENSE.txt +201 -0
  623. package/skills_ref/security-threat-model/SKILL.md +81 -0
  624. package/skills_ref/security-threat-model/agents/openai.yaml +4 -0
  625. package/skills_ref/security-threat-model/references/prompt-template.md +255 -0
  626. package/skills_ref/security-threat-model/references/security-controls-and-assets.md +32 -0
  627. package/skills_ref/sentry/SKILL.md +123 -0
  628. package/skills_ref/skill-creator/SKILL.md +372 -0
  629. package/skills_ref/sora/SKILL.md +153 -0
  630. package/skills_ref/speech/SKILL.md +144 -0
  631. package/skills_ref/spotify-player/SKILL.md +64 -0
  632. package/skills_ref/static-analysis/.claude-plugin/plugin.json +8 -0
  633. package/skills_ref/static-analysis/README.md +65 -0
  634. package/skills_ref/static-analysis/agents/semgrep-scanner.md +71 -0
  635. package/skills_ref/static-analysis/agents/semgrep-triager.md +107 -0
  636. package/skills_ref/static-analysis/skills/codeql/SKILL.md +119 -0
  637. package/skills_ref/static-analysis/skills/codeql/references/diagnostic-query-templates.md +339 -0
  638. package/skills_ref/static-analysis/skills/codeql/references/language-details.md +207 -0
  639. package/skills_ref/static-analysis/skills/codeql/references/performance-tuning.md +111 -0
  640. package/skills_ref/static-analysis/skills/codeql/references/ruleset-catalog.md +63 -0
  641. package/skills_ref/static-analysis/skills/codeql/references/threat-models.md +44 -0
  642. package/skills_ref/static-analysis/skills/codeql/workflows/build-database.md +669 -0
  643. package/skills_ref/static-analysis/skills/codeql/workflows/create-data-extensions.md +536 -0
  644. package/skills_ref/static-analysis/skills/codeql/workflows/run-analysis.md +436 -0
  645. package/skills_ref/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
  646. package/skills_ref/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
  647. package/skills_ref/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
  648. package/skills_ref/static-analysis/skills/semgrep/SKILL.md +431 -0
  649. package/skills_ref/static-analysis/skills/semgrep/references/rulesets.md +162 -0
  650. package/skills_ref/static-analysis/skills/semgrep/references/scanner-task-prompt.md +102 -0
  651. package/skills_ref/static-analysis/skills/semgrep/references/triage-task-prompt.md +122 -0
  652. package/skills_ref/static-analysis/skills/semgrep/scripts/merge_triaged_sarif.py +252 -0
  653. package/skills_ref/summarize/SKILL.md +87 -0
  654. package/skills_ref/tdd/SKILL.md +371 -0
  655. package/skills_ref/tdd/testing-anti-patterns.md +299 -0
  656. package/skills_ref/telegram-send/SKILL.md +99 -0
  657. package/skills_ref/terraform/README.md +105 -0
  658. package/skills_ref/terraform/code-generation/.claude-plugin/plugin.json +30 -0
  659. package/skills_ref/terraform/code-generation/skills/azure-verified-modules/SKILL.md +613 -0
  660. package/skills_ref/terraform/code-generation/skills/terraform-style-guide/SKILL.md +353 -0
  661. package/skills_ref/terraform/code-generation/skills/terraform-test/SKILL.md +1669 -0
  662. package/skills_ref/terraform/module-generation/.claude-plugin/plugin.json +30 -0
  663. package/skills_ref/terraform/module-generation/skills/refactor-module/SKILL.md +538 -0
  664. package/skills_ref/terraform/module-generation/skills/terraform-stacks/SKILL.md +468 -0
  665. package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/api-monitoring.md +543 -0
  666. package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/component-blocks.md +476 -0
  667. package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/deployment-blocks.md +391 -0
  668. package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/examples.md +1529 -0
  669. package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/linked-stacks.md +187 -0
  670. package/skills_ref/terraform/module-generation/skills/terraform-stacks/references/troubleshooting.md +671 -0
  671. package/skills_ref/terraform/provider-development/.claude-plugin/plugin.json +13 -0
  672. package/skills_ref/terraform/provider-development/skills/new-terraform-provider/SKILL.md +25 -0
  673. package/skills_ref/terraform/provider-development/skills/new-terraform-provider/assets/main.go +40 -0
  674. package/skills_ref/terraform/provider-development/skills/provider-actions/SKILL.md +478 -0
  675. package/skills_ref/terraform/provider-development/skills/provider-resources/SKILL.md +599 -0
  676. package/skills_ref/terraform/provider-development/skills/run-acceptance-tests/SKILL.md +41 -0
  677. package/skills_ref/theme-factory/LICENSE.txt +202 -0
  678. package/skills_ref/theme-factory/SKILL.md +59 -0
  679. package/skills_ref/theme-factory/theme-showcase.pdf +0 -0
  680. package/skills_ref/theme-factory/themes/arctic-frost.md +19 -0
  681. package/skills_ref/theme-factory/themes/botanical-garden.md +19 -0
  682. package/skills_ref/theme-factory/themes/desert-rose.md +19 -0
  683. package/skills_ref/theme-factory/themes/forest-canopy.md +19 -0
  684. package/skills_ref/theme-factory/themes/golden-hour.md +19 -0
  685. package/skills_ref/theme-factory/themes/midnight-galaxy.md +19 -0
  686. package/skills_ref/theme-factory/themes/modern-minimalist.md +19 -0
  687. package/skills_ref/theme-factory/themes/ocean-depths.md +19 -0
  688. package/skills_ref/theme-factory/themes/sunset-boulevard.md +19 -0
  689. package/skills_ref/theme-factory/themes/tech-innovation.md +19 -0
  690. package/skills_ref/things-mac/SKILL.md +86 -0
  691. package/skills_ref/tmux/SKILL.md +153 -0
  692. package/skills_ref/transcribe/SKILL.md +81 -0
  693. package/skills_ref/trello/SKILL.md +95 -0
  694. package/skills_ref/tts/SKILL.md +99 -0
  695. package/skills_ref/vercel-deploy/SKILL.md +115 -0
  696. package/skills_ref/video-downloader/SKILL.md +99 -0
  697. package/skills_ref/video-downloader/scripts/download_video.py +145 -0
  698. package/skills_ref/video-frames/SKILL.md +46 -0
  699. package/skills_ref/vision-click/SKILL.md +128 -0
  700. package/skills_ref/weather/SKILL.md +112 -0
  701. package/skills_ref/web-artifacts-builder/LICENSE.txt +202 -0
  702. package/skills_ref/web-artifacts-builder/SKILL.md +74 -0
  703. package/skills_ref/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  704. package/skills_ref/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  705. package/skills_ref/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  706. package/skills_ref/web-perf/SKILL.md +193 -0
  707. package/skills_ref/web-routing/SKILL.md +26 -0
  708. package/skills_ref/whatsapp/SKILL.md +255 -0
  709. package/skills_ref/whatsapp/assets/agent-app-integration-example.json +35 -0
  710. package/skills_ref/whatsapp/assets/databases-example.json +11 -0
  711. package/skills_ref/whatsapp/assets/function-decide-route-interactive-buttons.json +6 -0
  712. package/skills_ref/whatsapp/assets/functions-example.json +5 -0
  713. package/skills_ref/whatsapp/assets/workflow-agent-simple.json +31 -0
  714. package/skills_ref/whatsapp/assets/workflow-api-template-wait-agent.json +59 -0
  715. package/skills_ref/whatsapp/assets/workflow-customer-support-intake-agent.json +56 -0
  716. package/skills_ref/whatsapp/assets/workflow-decision.json +83 -0
  717. package/skills_ref/whatsapp/assets/workflow-interactive-buttons-decide-ai.json +89 -0
  718. package/skills_ref/whatsapp/assets/workflow-interactive-buttons-decide-function.json +88 -0
  719. package/skills_ref/whatsapp/assets/workflow-linear.json +53 -0
  720. package/skills_ref/whatsapp/package.json +10 -0
  721. package/skills_ref/whatsapp/references/app-integrations.md +89 -0
  722. package/skills_ref/whatsapp/references/databases-reference.md +21 -0
  723. package/skills_ref/whatsapp/references/execution-context.md +42 -0
  724. package/skills_ref/whatsapp/references/function-contracts.md +55 -0
  725. package/skills_ref/whatsapp/references/functions-payloads.md +87 -0
  726. package/skills_ref/whatsapp/references/functions-reference.md +133 -0
  727. package/skills_ref/whatsapp/references/graph-contract.md +145 -0
  728. package/skills_ref/whatsapp/references/node-types.md +430 -0
  729. package/skills_ref/whatsapp/references/triggers.md +20 -0
  730. package/skills_ref/whatsapp/references/workflow-overview.md +22 -0
  731. package/skills_ref/whatsapp/references/workflow-reference.md +123 -0
  732. package/skills_ref/whatsapp/scripts/configure-prop.js +113 -0
  733. package/skills_ref/whatsapp/scripts/create-connect-token.js +38 -0
  734. package/skills_ref/whatsapp/scripts/create-function.js +64 -0
  735. package/skills_ref/whatsapp/scripts/create-integration.js +137 -0
  736. package/skills_ref/whatsapp/scripts/create-row.js +47 -0
  737. package/skills_ref/whatsapp/scripts/create-trigger.js +88 -0
  738. package/skills_ref/whatsapp/scripts/create-workflow.js +85 -0
  739. package/skills_ref/whatsapp/scripts/delete-integration.js +44 -0
  740. package/skills_ref/whatsapp/scripts/delete-row.js +49 -0
  741. package/skills_ref/whatsapp/scripts/delete-trigger.js +44 -0
  742. package/skills_ref/whatsapp/scripts/deploy-function.js +47 -0
  743. package/skills_ref/whatsapp/scripts/edit-graph.js +289 -0
  744. package/skills_ref/whatsapp/scripts/get-action-schema.js +44 -0
  745. package/skills_ref/whatsapp/scripts/get-context-value.js +80 -0
  746. package/skills_ref/whatsapp/scripts/get-execution-event.js +55 -0
  747. package/skills_ref/whatsapp/scripts/get-execution.js +44 -0
  748. package/skills_ref/whatsapp/scripts/get-function.js +43 -0
  749. package/skills_ref/whatsapp/scripts/get-graph.js +85 -0
  750. package/skills_ref/whatsapp/scripts/get-table.js +45 -0
  751. package/skills_ref/whatsapp/scripts/get-workflow.js +44 -0
  752. package/skills_ref/whatsapp/scripts/invoke-function.js +60 -0
  753. package/skills_ref/whatsapp/scripts/lib/databases/args.js +87 -0
  754. package/skills_ref/whatsapp/scripts/lib/databases/filters.js +30 -0
  755. package/skills_ref/whatsapp/scripts/lib/databases/kapso-api.js +70 -0
  756. package/skills_ref/whatsapp/scripts/lib/functions/args.js +55 -0
  757. package/skills_ref/whatsapp/scripts/lib/functions/kapso-api.js +70 -0
  758. package/skills_ref/whatsapp/scripts/lib/workflows/args.js +53 -0
  759. package/skills_ref/whatsapp/scripts/lib/workflows/kapso-api.js +123 -0
  760. package/skills_ref/whatsapp/scripts/lib/workflows/result.js +16 -0
  761. package/skills_ref/whatsapp/scripts/list-accounts.js +62 -0
  762. package/skills_ref/whatsapp/scripts/list-apps.js +42 -0
  763. package/skills_ref/whatsapp/scripts/list-execution-events.js +61 -0
  764. package/skills_ref/whatsapp/scripts/list-executions.js +53 -0
  765. package/skills_ref/whatsapp/scripts/list-function-invocations.js +53 -0
  766. package/skills_ref/whatsapp/scripts/list-functions.js +41 -0
  767. package/skills_ref/whatsapp/scripts/list-integrations.js +41 -0
  768. package/skills_ref/whatsapp/scripts/list-provider-models.js +48 -0
  769. package/skills_ref/whatsapp/scripts/list-tables.js +41 -0
  770. package/skills_ref/whatsapp/scripts/list-triggers.js +44 -0
  771. package/skills_ref/whatsapp/scripts/list-whatsapp-phone-numbers.js +56 -0
  772. package/skills_ref/whatsapp/scripts/list-workflows.js +44 -0
  773. package/skills_ref/whatsapp/scripts/openapi-explore.mjs +1273 -0
  774. package/skills_ref/whatsapp/scripts/query-rows.js +71 -0
  775. package/skills_ref/whatsapp/scripts/reload-props.js +110 -0
  776. package/skills_ref/whatsapp/scripts/resume-execution.js +75 -0
  777. package/skills_ref/whatsapp/scripts/search-actions.js +64 -0
  778. package/skills_ref/whatsapp/scripts/update-execution-status.js +51 -0
  779. package/skills_ref/whatsapp/scripts/update-function.js +65 -0
  780. package/skills_ref/whatsapp/scripts/update-graph.js +154 -0
  781. package/skills_ref/whatsapp/scripts/update-integration.js +82 -0
  782. package/skills_ref/whatsapp/scripts/update-row.js +51 -0
  783. package/skills_ref/whatsapp/scripts/update-trigger.js +60 -0
  784. package/skills_ref/whatsapp/scripts/update-workflow-settings.js +67 -0
  785. package/skills_ref/whatsapp/scripts/upsert-row.js +64 -0
  786. package/skills_ref/whatsapp/scripts/validate-graph.js +293 -0
  787. package/skills_ref/whatsapp/scripts/variables-delete.js +37 -0
  788. package/skills_ref/whatsapp/scripts/variables-list.js +55 -0
  789. package/skills_ref/whatsapp/scripts/variables-set.js +39 -0
  790. package/skills_ref/writing-plans/SKILL.md +116 -0
  791. package/skills_ref/xlsx/LICENSE.txt +30 -0
  792. package/skills_ref/xlsx/SKILL.md +292 -0
  793. package/skills_ref/xlsx/scripts/office/helpers/__init__.py +0 -0
  794. package/skills_ref/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  795. package/skills_ref/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  796. package/skills_ref/xlsx/scripts/office/pack.py +159 -0
  797. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  798. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  799. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  800. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  801. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  802. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  803. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  804. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  805. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  806. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  807. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  808. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  809. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  810. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  811. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  812. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  813. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  814. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  815. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  816. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  817. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  818. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  819. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  820. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  821. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  822. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  823. package/skills_ref/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  824. package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  825. package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  826. package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  827. package/skills_ref/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  828. package/skills_ref/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  829. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  830. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  831. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  832. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  833. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  834. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  835. package/skills_ref/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  836. package/skills_ref/xlsx/scripts/office/soffice.py +183 -0
  837. package/skills_ref/xlsx/scripts/office/unpack.py +132 -0
  838. package/skills_ref/xlsx/scripts/office/validate.py +111 -0
  839. package/skills_ref/xlsx/scripts/office/validators/__init__.py +15 -0
  840. package/skills_ref/xlsx/scripts/office/validators/base.py +847 -0
  841. package/skills_ref/xlsx/scripts/office/validators/docx.py +446 -0
  842. package/skills_ref/xlsx/scripts/office/validators/pptx.py +275 -0
  843. package/skills_ref/xlsx/scripts/office/validators/redlining.py +247 -0
  844. package/skills_ref/xlsx/scripts/recalc.py +184 -0
  845. package/skills_ref/xurl/SKILL.md +461 -0
@@ -0,0 +1,531 @@
1
+ import fs from 'fs';
2
+ import os from 'os';
3
+ import { join } from 'path';
4
+ import { settings, JAW_HOME, PROMPTS_DIR, SKILLS_DIR, SKILLS_REF_DIR, loadHeartbeatFile } from '../core/config.js';
5
+ import { getSession, getEmployees } from '../core/db.js';
6
+ import { memoryFlushCounter } from '../agent/spawn.js';
7
+ const promptCache = new Map();
8
+ // ─── Skill Loading ───────────────────────────────────
9
+ /** Read all active skills from ~/.cli-jaw/skills/ */
10
+ export function loadActiveSkills() {
11
+ try {
12
+ if (!fs.existsSync(SKILLS_DIR))
13
+ return [];
14
+ return fs.readdirSync(SKILLS_DIR, { withFileTypes: true })
15
+ .filter(d => d.isDirectory() && !d.name.startsWith('.'))
16
+ .map(d => {
17
+ const mdPath = join(SKILLS_DIR, d.name, 'SKILL.md');
18
+ if (!fs.existsSync(mdPath))
19
+ return null;
20
+ const content = fs.readFileSync(mdPath, 'utf8');
21
+ const nameMatch = content.match(/^name:\s*(.+)/m);
22
+ const descMatch = content.match(/^description:\s*"?(.+?)"?\s*$/m);
23
+ return {
24
+ id: d.name,
25
+ name: nameMatch?.[1]?.trim() || d.name,
26
+ description: descMatch?.[1]?.trim() || '',
27
+ content,
28
+ };
29
+ })
30
+ .filter(Boolean);
31
+ }
32
+ catch {
33
+ return [];
34
+ }
35
+ }
36
+ /** Read skills_ref registry.json */
37
+ export function loadSkillRegistry() {
38
+ try {
39
+ const regPath = join(SKILLS_REF_DIR, 'registry.json');
40
+ if (!fs.existsSync(regPath))
41
+ return [];
42
+ const reg = JSON.parse(fs.readFileSync(regPath, 'utf8'));
43
+ return Object.entries(reg.skills || {}).map(([id, s]) => ({ id, ...s }));
44
+ }
45
+ catch {
46
+ return [];
47
+ }
48
+ }
49
+ /** Get merged skill list (active + ref) for API */
50
+ export function getMergedSkills() {
51
+ const active = loadActiveSkills();
52
+ const activeIds = new Set(active.map(s => s.id));
53
+ const ref = loadSkillRegistry();
54
+ const merged = [];
55
+ // Active skills (from skills/)
56
+ for (const s of active) {
57
+ const refInfo = ref.find(r => r.id === s.id);
58
+ merged.push({
59
+ id: s.id,
60
+ name: refInfo?.name || s.name,
61
+ name_ko: refInfo?.name_ko || undefined,
62
+ name_en: refInfo?.name_en || undefined,
63
+ emoji: refInfo?.emoji || '🔧',
64
+ category: refInfo?.category || 'installed',
65
+ description: refInfo?.description || s.description,
66
+ desc_ko: refInfo?.desc_ko || undefined,
67
+ desc_en: refInfo?.desc_en || undefined,
68
+ requires: refInfo?.requires || null,
69
+ install: refInfo?.install || null,
70
+ enabled: true,
71
+ source: activeIds.has(s.id) && ref.find(r => r.id === s.id) ? 'both' : 'active',
72
+ });
73
+ }
74
+ // Ref-only skills (not yet activated)
75
+ for (const s of ref) {
76
+ if (!activeIds.has(s.id)) {
77
+ merged.push({
78
+ ...s,
79
+ enabled: false,
80
+ source: 'ref',
81
+ });
82
+ }
83
+ }
84
+ return merged;
85
+ }
86
+ // ─── Prompt Templates ────────────────────────────────
87
+ const A1_CONTENT = `# Jaw Agent
88
+
89
+ You are Jaw Agent, a system-level AI assistant.
90
+ Execute tasks on the user's computer via CLI tools.
91
+
92
+ ## Rules
93
+ - Follow the user's instructions precisely
94
+ - Respond in the user's language
95
+ - Report results clearly with file paths and outputs
96
+ - Ask for clarification when ambiguous
97
+ - Never run git commit/push/branch/reset/clean unless the user explicitly asks in the same turn
98
+ - Default delivery is file changes + verification report (no commit/push)
99
+ - If nothing needs attention on heartbeat, reply HEARTBEAT_OK
100
+
101
+ ## Browser Control (MANDATORY)
102
+ Control Chrome via \`cli-jaw browser\` — never use curl/wget for web interaction.
103
+
104
+ ### Core Workflow: snapshot → act → snapshot → verify
105
+ \`\`\`bash
106
+ cli-jaw browser start # Start Chrome (CDP 9240)
107
+ cli-jaw browser navigate "https://example.com" # Go to URL
108
+ cli-jaw browser snapshot --interactive # Get ref IDs (clickable elements)
109
+ cli-jaw browser click e3 # Click ref
110
+ cli-jaw browser type e5 "hello" --submit # Type + Enter
111
+ cli-jaw browser screenshot # Save screenshot
112
+ \`\`\`
113
+
114
+ ### Key Commands
115
+ - \`snapshot\` / \`snapshot --interactive\` — element list with ref IDs
116
+ - \`click <ref>\` / \`type <ref> "text"\` / \`press Enter\` — interact
117
+ - \`navigate <url>\` / \`open <url>\` (new tab) / \`tabs\` — navigation
118
+ - \`screenshot\` / \`screenshot --full-page\` / \`text\` — observe
119
+ - Ref IDs **reset on navigation** → always re-snapshot after navigate
120
+
121
+ ### Vision Click Fallback (Codex Only)
122
+ If \`snapshot\` returns **no ref** for target (Canvas, iframe, Shadow DOM, WebGL):
123
+ \`\`\`bash
124
+ cli-jaw browser vision-click "Submit button" # screenshot → AI coords → click
125
+ cli-jaw browser vision-click "Menu" --double # double-click variant
126
+ \`\`\`
127
+ - Requires **Codex CLI** — only available when active CLI is codex
128
+ - Always try \`snapshot\` + ref-based click first, vision-click is fallback only
129
+ - If vision-click skill is in your Active Skills list, use it
130
+
131
+ ## Telegram File Delivery (Bot-First)
132
+ For non-text output to Telegram, prefer direct Bot API:
133
+ \`\`\`bash
134
+ TOKEN=$(jq -r '.telegram.token' ~/.cli-jaw/settings.json)
135
+ CHAT_ID=$(jq -r '.telegram.allowedChatIds[-1]' ~/.cli-jaw/settings.json)
136
+ # photo:
137
+ curl -sS -X POST "https://api.telegram.org/bot\${TOKEN}/sendPhoto" \\
138
+ -F "chat_id=\${CHAT_ID}" -F "photo=@/path/to/image.png" -F "caption=desc"
139
+ # voice: .../sendVoice -F voice=@file.ogg
140
+ # document: .../sendDocument -F document=@file.pdf
141
+ \`\`\`
142
+ Fallback local endpoint: \`POST http://localhost:3457/api/telegram/send\`
143
+ - Types: \`text\`, \`voice\`, \`photo\`, \`document\` (requires \`file_path\`)
144
+ - Always provide normal text response alongside file delivery
145
+ - Do not print token values in logs
146
+
147
+ ## Long-term Memory (MANDATORY)
148
+ Two memory sources:
149
+ - Core memory: \`~/.cli-jaw/memory/MEMORY.md\` (structured, persistent)
150
+ - Session memory: \`~/.claude/projects/.../memory/\` (auto-flush)
151
+
152
+ Rules:
153
+ - At conversation start: ALWAYS read MEMORY.md
154
+ - Before answering about past decisions/preferences: search memory first
155
+ - After important decisions or user preferences: save immediately
156
+ - Commands: \`cli-jaw memory search/read/save\`
157
+
158
+ ### What to Save (IMPORTANT)
159
+ - ✅ User preferences, key decisions, project facts
160
+ - ✅ Config changes, tool choices, architectural decisions
161
+ - ✅ Short 1-2 line entries (e.g., "User prefers ES Module only")
162
+ - ❌ Do NOT save development checklists or task lists
163
+ - ❌ Do NOT save commit hashes, phase logs, or progress tracking
164
+ - ❌ Do NOT dump raw conversation history into memory
165
+
166
+ ## Heartbeat System
167
+ Recurring tasks via \`~/.cli-jaw/heartbeat.json\` (auto-reloads on save):
168
+ \`\`\`json
169
+ { "jobs": [{ "id": "hb_<timestamp>", "name": "Job name", "enabled": true,
170
+ "schedule": { "kind": "every", "minutes": 5 }, "prompt": "task description" }] }
171
+ \`\`\`
172
+ - Results auto-forwarded to Telegram. Nothing to report → respond [SILENT]
173
+
174
+ ## Development Rules
175
+ - Max 500 lines per file. Exceed → split
176
+ - ES Module (\`import\`/\`export\`) only. No CommonJS
177
+ - Never delete existing \`export\` (other modules may import)
178
+ - Error handling: \`try/catch\` mandatory, no silent failures
179
+ - Config values → \`config.js\` or \`settings.json\`, never hardcode
180
+
181
+ ### Dev Skills (MANDATORY for Development Tasks)
182
+ Before writing ANY code, you MUST read the relevant dev skill guides:
183
+ 1. **Always read first**: \`~/.cli-jaw/skills/dev/SKILL.md\` — project-wide conventions, file structure, coding standards
184
+ 2. **Role-specific** (read the one matching your task):
185
+ - \`dev-frontend\` — UI components, CSS, browser compatibility
186
+ - \`dev-backend\` — API design, error handling, security
187
+ - \`dev-data\` — database, queries, migrations
188
+ - \`dev-testing\` — test strategy, coverage, assertion patterns
189
+ 3. **How to read**: \`cat ~/.cli-jaw/skills/dev/SKILL.md\` or \`cli-jaw skill read dev\`
190
+ 4. Follow ALL guidelines from the skill before and during implementation
191
+ 5. If a skill contradicts these rules, the skill takes priority (skills are project-specific)
192
+ `;
193
+ const A2_DEFAULT = `# User Configuration
194
+
195
+ ## Identity
196
+ - Name: Jaw
197
+ - Emoji: 🦈
198
+
199
+ ## User
200
+ - Name: (your name)
201
+ - Language: English
202
+ - Timezone: UTC
203
+
204
+ ## Vibe
205
+ - Friendly, warm
206
+ - Technically accurate
207
+
208
+ ## Working Directory
209
+ - ~/
210
+ `;
211
+ const HEARTBEAT_DEFAULT = `# Heartbeat checklist
212
+
213
+ <!-- Keep this empty to skip heartbeat API calls -->
214
+ <!-- Add tasks below when you want periodic checks -->
215
+ `;
216
+ // ─── Paths ───────────────────────────────────────────
217
+ export const A1_PATH = join(PROMPTS_DIR, 'A-1.md');
218
+ export const A2_PATH = join(PROMPTS_DIR, 'A-2.md');
219
+ export const HEARTBEAT_PATH = join(PROMPTS_DIR, 'HEARTBEAT.md');
220
+ // ─── Initialize prompt files ─────────────────────────
221
+ export function initPromptFiles() {
222
+ if (!fs.existsSync(A1_PATH))
223
+ fs.writeFileSync(A1_PATH, A1_CONTENT);
224
+ if (!fs.existsSync(A2_PATH))
225
+ fs.writeFileSync(A2_PATH, A2_DEFAULT);
226
+ if (!fs.existsSync(HEARTBEAT_PATH))
227
+ fs.writeFileSync(HEARTBEAT_PATH, HEARTBEAT_DEFAULT);
228
+ }
229
+ // ─── Memory ──────────────────────────────────────────
230
+ export function getMemoryDir() {
231
+ const wd = (settings.workingDir || os.homedir()).replace(/^~/, os.homedir());
232
+ const hash = wd.replace(/\//g, '-');
233
+ return join(os.homedir(), '.claude', 'projects', hash, 'memory');
234
+ }
235
+ export function loadRecentMemories() {
236
+ try {
237
+ const CHAR_BUDGET = 10000;
238
+ const memDir = getMemoryDir();
239
+ if (!fs.existsSync(memDir))
240
+ return '';
241
+ const files = fs.readdirSync(memDir).filter(f => f.endsWith('.md')).sort().reverse();
242
+ const entries = [];
243
+ let charCount = 0;
244
+ for (const f of files) {
245
+ const sections = fs.readFileSync(join(memDir, f), 'utf8').split(/^## /m).filter(Boolean);
246
+ for (const s of sections.reverse()) {
247
+ const entry = s.trim();
248
+ if (charCount + entry.length > CHAR_BUDGET)
249
+ break;
250
+ entries.push(entry);
251
+ charCount += entry.length;
252
+ }
253
+ if (charCount >= CHAR_BUDGET)
254
+ break;
255
+ }
256
+ if (entries.length) {
257
+ console.log(`[memory] session memory loaded: ${entries.length} entries, ${charCount} chars`);
258
+ }
259
+ return entries.length
260
+ ? '\n\n---\n## Recent Session Memories\n' + entries.map(e => '- ' + e.split('\n')[0]).join('\n')
261
+ : '';
262
+ }
263
+ catch {
264
+ return '';
265
+ }
266
+ }
267
+ // ─── System Prompt Generation ────────────────────────
268
+ export function getSystemPrompt() {
269
+ // A-1: file takes priority (user-editable), hardcoded fallback
270
+ const a1 = fs.existsSync(A1_PATH) ? fs.readFileSync(A1_PATH, 'utf8') : A1_CONTENT;
271
+ const a2 = fs.existsSync(A2_PATH) ? fs.readFileSync(A2_PATH, 'utf8') : '';
272
+ let prompt = `${a1}\n\n${a2}`;
273
+ // Phase 15: Telegram guidance is now part of A1_CONTENT (hardcoded)
274
+ // No dynamic injection needed — Bot-First policy with curl examples included
275
+ // Auto-flush memories (threshold-based injection)
276
+ // Inject every ceil(threshold/2) messages: threshold=5 → inject at 0,3,5,8,10...
277
+ try {
278
+ const threshold = settings.memory?.flushEvery ?? 20;
279
+ const injectInterval = Math.ceil(threshold / 2);
280
+ const shouldInject = memoryFlushCounter % injectInterval === 0;
281
+ if (shouldInject) {
282
+ const memories = loadRecentMemories();
283
+ if (memories) {
284
+ prompt += memories;
285
+ console.log(`[memory] injected (msg ${memoryFlushCounter}, every ${injectInterval})`);
286
+ }
287
+ }
288
+ else {
289
+ console.log(`[memory] skipped injection (msg ${memoryFlushCounter}/${threshold}, interval ${injectInterval})`);
290
+ }
291
+ }
292
+ catch {
293
+ // Fallback: always inject if counter unavailable
294
+ const memories = loadRecentMemories();
295
+ if (memories)
296
+ prompt += memories;
297
+ }
298
+ // Core memory (MEMORY.md, system-level injection)
299
+ try {
300
+ const memPath = join(JAW_HOME, 'memory', 'MEMORY.md');
301
+ if (fs.existsSync(memPath)) {
302
+ const coreMem = fs.readFileSync(memPath, 'utf8').trim();
303
+ if (coreMem && coreMem.length > 50) {
304
+ const truncated = coreMem.length > 1500
305
+ ? coreMem.slice(0, 1500) + '\n...(use `cli-jaw memory read MEMORY.md` for full)'
306
+ : coreMem;
307
+ prompt += '\n\n---\n## Core Memory\n' + truncated;
308
+ console.log(`[memory] MEMORY.md loaded: ${truncated.length} chars`);
309
+ }
310
+ }
311
+ }
312
+ catch { /* memory not ready */ }
313
+ try {
314
+ const emps = getEmployees.all();
315
+ if (emps.length > 0) {
316
+ const list = emps.map(e => `- "${e.name}" (CLI: ${e.cli}) — ${e.role || 'general developer'}`).join('\n');
317
+ const example = emps[0].name;
318
+ prompt += '\n\n---\n';
319
+ prompt += '\n## Orchestration System';
320
+ prompt += '\nYou have external employees (separate CLI processes).';
321
+ prompt += '\nThe middleware detects your JSON output and AUTOMATICALLY spawns employees.';
322
+ prompt += `\n\n### Available Employees\n${list}`;
323
+ prompt += '\n\n### Dispatch Format';
324
+ prompt += '\nTo assign work, output EXACTLY this format (triple-backtick fenced JSON block):';
325
+ prompt += `\n\n\\\`\\\`\\\`json\n{\n "subtasks": [\n {\n "agent": "${example}",\n "task": "Specific task instruction",\n "priority": 1\n }\n ]\n}\n\\\`\\\`\\\``;
326
+ prompt += '\n\n### CRITICAL RULES';
327
+ prompt += '\n1. JSON MUST be wrapped in ```json ... ``` code blocks (mandatory)';
328
+ prompt += '\n2. Never output raw JSON without code blocks';
329
+ prompt += '\n3. Agent name must exactly match the list above';
330
+ prompt += '\n4. Dispatch employees ONLY when the task genuinely needs multiple specialists or parallel work';
331
+ prompt += '\n5. If you can handle the task yourself, respond directly WITHOUT JSON dispatch';
332
+ prompt += '\n6. When receiving a "result report", summarize it in natural language for the user';
333
+ prompt += '\n7. Simple questions, single-file edits, or tasks in your expertise → handle directly';
334
+ prompt += '\n8. For Tier 1-2 tasks: mark independent subtasks with `"parallel": true` for concurrent execution';
335
+ prompt += '\n9. Default is `"parallel": false`. Only use `true` when affected_files have zero overlap';
336
+ prompt += '\n\n### Completion Protocol';
337
+ prompt += '\nAfter dispatching, the system runs a 5-phase pipeline:';
338
+ prompt += '\n Phase 1(기획) → 2(기획검증) → 3(개발) → 4(디버깅) → 5(통합검증)';
339
+ prompt += '\nEmployees can skip phases by emitting `{ "phases_completed": [3,4,5] }`.';
340
+ prompt += '\nA review agent checks each employee\'s output per-phase (Quality Gate).';
341
+ prompt += '\nWhen ALL employees pass ALL their phases, orchestration emits **allDone** and reports the summary to you.';
342
+ prompt += '\nYou then summarize the final result to the user in natural language.';
343
+ }
344
+ }
345
+ catch { /* DB not ready yet */ }
346
+ try {
347
+ const hbData = loadHeartbeatFile();
348
+ if (hbData.jobs.length > 0) {
349
+ const activeJobs = hbData.jobs.filter((j) => j.enabled);
350
+ prompt += '\n\n---\n## Current Heartbeat Jobs\n';
351
+ for (const job of hbData.jobs) {
352
+ const status = job.enabled ? '✅' : '⏸️';
353
+ const mins = job.schedule?.minutes || '?';
354
+ prompt += `- ${status} "${job.name}" — every ${mins}min: ${(job.prompt || '').slice(0, 50)}\n`;
355
+ }
356
+ prompt += `\nActive: ${activeJobs.length}, Total: ${hbData.jobs.length}`;
357
+ prompt += '\nTo modify: edit ~/.cli-jaw/heartbeat.json (auto-reloads on save)';
358
+ }
359
+ }
360
+ catch { /* heartbeat.json not ready */ }
361
+ // ─── Skills (Phase 6) ────────────────────────────
362
+ // Active skills are loaded by CLI tools natively via .agents/skills/ symlink.
363
+ // We only inject: (1) active skill names, (2) ref skill list, (3) search/create instruction.
364
+ try {
365
+ const activeSkills = loadActiveSkills();
366
+ const refSkills = loadSkillRegistry();
367
+ const activeIds = new Set(activeSkills.map(s => s.id));
368
+ const availableRef = refSkills.filter(s => !activeIds.has(s.id));
369
+ if (activeSkills.length > 0 || availableRef.length > 0) {
370
+ prompt += '\n\n---\n## Skills System\n';
371
+ // 1. Active skills — name list only (CLI handles trigger/execution)
372
+ if (activeSkills.length > 0) {
373
+ prompt += `\n### Active Skills (${activeSkills.length})\n`;
374
+ prompt += 'These skills are installed and available for reference.\n';
375
+ prompt += '**Development tasks**: Before writing code, ALWAYS read `~/.cli-jaw/skills/dev/SKILL.md` for project conventions.\n';
376
+ prompt += 'For role-specific tasks, also read the relevant skill (dev-frontend, dev-backend, dev-data, dev-testing).\n';
377
+ for (const s of activeSkills) {
378
+ prompt += `- ${s.name} (${s.id})\n`;
379
+ }
380
+ }
381
+ // 2. Ref skills — compact name list (full details in skills_ref/)
382
+ if (availableRef.length > 0) {
383
+ prompt += `\n### Available Skills (${availableRef.length})\n`;
384
+ prompt += 'These are reference skills — not active yet, but ready to use on demand.\n';
385
+ prompt += '**How to use**: read `~/.cli-jaw/skills_ref/<name>/SKILL.md` and follow its instructions.\n';
386
+ prompt += '**To activate permanently**: `cli-jaw skill install <name>`\n\n';
387
+ prompt += availableRef.map(s => s.id).join(', ') + '\n';
388
+ }
389
+ // 3. Search or create instruction
390
+ prompt += '\n### Skill Discovery\n';
391
+ prompt += 'If a requested task is not covered by any active or available skill:\n';
392
+ prompt += '1. Search the system for relevant CLI tools that can accomplish the task.\n';
393
+ prompt += '2. If a suitable tool exists, create a new SKILL.md and save it to the skills directory.\n';
394
+ prompt += '3. Use the skill-creator reference if available for formatting guidance.\n';
395
+ }
396
+ }
397
+ catch { /* skills not ready */ }
398
+ // ─── Vision-Click Hint (Codex only) ──────────────
399
+ try {
400
+ const session = getSession();
401
+ if (session.active_cli === 'codex') {
402
+ const visionSkillPath = join(SKILLS_DIR, 'vision-click', 'SKILL.md');
403
+ if (fs.existsSync(visionSkillPath)) {
404
+ prompt += '\n### Vision Click (Active)\n';
405
+ prompt += '- If browser snapshot shows no ref for target, use vision-click: screenshot → `codex exec -i` → `mouse-click <x> <y>`.\n';
406
+ prompt += '- See vision-click skill SKILL.md for full workflow.\n';
407
+ }
408
+ }
409
+ }
410
+ catch { /* vision-click not ready */ }
411
+ return prompt;
412
+ }
413
+ // ─── Employee Prompt (orchestration-free) ────────────
414
+ export function getEmployeePrompt(emp) {
415
+ let prompt = `# ${emp.name}\nRole: ${emp.role || 'general developer'}\n`;
416
+ // ─── Core rules (orchestration rules intentionally excluded → prevent recursion)
417
+ prompt += `\n## Rules\n`;
418
+ prompt += `- Execute the given task directly and report the results\n`;
419
+ prompt += `- Do NOT output JSON subtasks (you are an executor, not a planner)\n`;
420
+ prompt += `- Report results concisely in natural language\n`;
421
+ prompt += `- Respond in the user's language\n`;
422
+ prompt += `- Never run git commit/push/branch/reset/clean unless the user explicitly asks\n`;
423
+ // ─── Browser commands
424
+ prompt += `\n## Browser Control\n`;
425
+ prompt += `For web tasks, always use \`cli-jaw browser\` commands.\n`;
426
+ prompt += `Pattern: snapshot → act → snapshot → verify\n`;
427
+ prompt += `Start: \`cli-jaw browser start\`, Snapshot: \`cli-jaw browser snapshot\`\n`;
428
+ prompt += `Click: \`cli-jaw browser click <ref>\`, Type: \`cli-jaw browser type <ref> "text"\`\n`;
429
+ // ─── Telegram file delivery
430
+ prompt += `\n## Telegram File Delivery\n`;
431
+ prompt += `For non-text output, use \`POST /api/telegram/send\`.\n`;
432
+ prompt += `Types: \`voice|photo|document\` (optionally \`text\`)\n`;
433
+ prompt += `Required for non-text: \`type\` + \`file_path\`\n`;
434
+ prompt += `Specify \`chat_id\` when possible; if omitted, the latest active chat is used.\n`;
435
+ prompt += `Always provide a natural language text report alongside file delivery.\n`;
436
+ // ─── Active Skills (dynamic loading)
437
+ try {
438
+ const activeSkills = loadActiveSkills();
439
+ if (activeSkills.length > 0) {
440
+ prompt += `\n## Active Skills (${activeSkills.length})\n`;
441
+ prompt += `Installed skills — automatically triggered by the CLI.\n`;
442
+ for (const s of activeSkills) {
443
+ prompt += `- ${s.name} (${s.id})\n`;
444
+ }
445
+ }
446
+ }
447
+ catch { /* skills not ready */ }
448
+ // ─── Memory commands
449
+ prompt += `\n## Memory\n`;
450
+ prompt += `Long-term memory: use \`cli-jaw memory search/read/save\` commands.\n`;
451
+ // ─── Orchestration Completion Protocol
452
+ prompt += `\n## Task Completion Protocol\n`;
453
+ prompt += `You are an employee agent running inside a 5-phase pipeline.\n`;
454
+ prompt += `When you finish your assigned task(s), output this JSON at the end of your response:\n`;
455
+ prompt += `\`\`\`json\n{ "phases_completed": [3, 4, 5] }\n\`\`\`\n`;
456
+ prompt += `Replace the numbers with the phases you actually completed in this pass.\n`;
457
+ prompt += `- Single phase only → do NOT add this JSON (system auto-advances)\n`;
458
+ prompt += `- Multiple phases at once → MUST add this JSON so the system skips done phases\n`;
459
+ prompt += `- All your remaining phases done → include all of them, system marks you complete\n`;
460
+ return prompt;
461
+ }
462
+ // ─── Employee Prompt v2 (orchestration phase-aware) ──
463
+ export function getEmployeePromptV2(emp, role, currentPhase) {
464
+ const cacheKey = `${emp.id || emp.name}:${role}:${currentPhase}`;
465
+ if (promptCache.has(cacheKey))
466
+ return promptCache.get(cacheKey);
467
+ let prompt = getEmployeePrompt(emp);
468
+ // ─── 1. 공통 Dev 스킬 (항상 주입)
469
+ const devCommonPath = join(SKILLS_DIR, 'dev', 'SKILL.md');
470
+ if (fs.existsSync(devCommonPath)) {
471
+ prompt += `\n\n## Development Guide (Common)\n${fs.readFileSync(devCommonPath, 'utf8')}`;
472
+ }
473
+ // ─── 2. Role 기반 Dev 스킬 주입
474
+ const ROLE_SKILL_MAP = {
475
+ frontend: join(SKILLS_DIR, 'dev-frontend', 'SKILL.md'),
476
+ backend: join(SKILLS_DIR, 'dev-backend', 'SKILL.md'),
477
+ data: join(SKILLS_DIR, 'dev-data', 'SKILL.md'),
478
+ docs: join(SKILLS_DIR, 'documentation', 'SKILL.md'),
479
+ custom: null,
480
+ };
481
+ const skillPath = ROLE_SKILL_MAP[role];
482
+ if (skillPath && fs.existsSync(skillPath)) {
483
+ prompt += `\n\n## Development Guide (${role})\n${fs.readFileSync(skillPath, 'utf8')}`;
484
+ }
485
+ // ─── 3. 디버깅 phase(4) → dev-testing 추가 주입
486
+ if (currentPhase === 4) {
487
+ const testingPath = join(SKILLS_DIR, 'dev-testing', 'SKILL.md');
488
+ if (fs.existsSync(testingPath)) {
489
+ prompt += `\n\n## Testing Guide (Phase 4)\n${fs.readFileSync(testingPath, 'utf8')}`;
490
+ }
491
+ }
492
+ // ─── 4. Phase 컨텍스트 + Quality Gate
493
+ const PHASES = { 1: 'Planning', 2: 'Plan Review', 3: 'Development', 4: 'Debugging', 5: 'Integration' };
494
+ const PHASE_GATES = {
495
+ 1: 'Gate: impact analysis + dependency check + edge case list complete',
496
+ 2: 'Gate: code cross-check + conflict scan + test strategy established',
497
+ 3: 'Gate: changed file list + export/import integrity + zero build errors',
498
+ 4: 'Gate: execution evidence + bug fix log + edge case test results',
499
+ 5: 'Gate: integration tests + docs updated + workflow verified',
500
+ };
501
+ prompt += `\n\n## Current Phase: ${currentPhase} (${PHASES[currentPhase]})`;
502
+ prompt += `\nYou are currently executing the "${PHASES[currentPhase]}" phase.`;
503
+ prompt += `\n${PHASE_GATES[currentPhase]}`;
504
+ prompt += `\n\n## Sequential Execution + Phase Skip`;
505
+ prompt += `\nAgents run one at a time in order. Previous agents' results are already reflected in the files.`;
506
+ prompt += `\n- Read the worklog first to understand what previous agents did`;
507
+ prompt += `\n- Do not touch files already modified by others`;
508
+ prompt += `\n- Focus only on your assigned area`;
509
+ prompt += `\n- If current Phase > 1, previous Phases are already complete. Do not redo planning/review.`;
510
+ prompt += `\n\nNote: You must meet ALL gate conditions above to pass the Quality Gate. Incomplete work will be retried.`;
511
+ promptCache.set(cacheKey, prompt);
512
+ return prompt;
513
+ }
514
+ export function clearPromptCache() { promptCache.clear(); }
515
+ export function regenerateB() {
516
+ const fullPrompt = getSystemPrompt();
517
+ fs.writeFileSync(join(PROMPTS_DIR, 'B.md'), fullPrompt);
518
+ // Generate {workDir}/AGENTS.md — read by Codex, Copilot, and OpenCode
519
+ try {
520
+ const wd = settings.workingDir || os.homedir();
521
+ fs.writeFileSync(join(wd, 'AGENTS.md'), fullPrompt);
522
+ console.log(`[prompt] AGENTS.md generated at ${wd}`);
523
+ }
524
+ catch (e) {
525
+ console.error(`[prompt] AGENTS.md generation failed:`, e.message);
526
+ }
527
+ // Session invalidation removed: all CLIs (Claude, Copilot, Codex, Gemini)
528
+ // dynamically reload AGENTS.md on resume. Nullifying session_id was breaking
529
+ // conversation continuity on every message.
530
+ }
531
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/prompt/builder.ts"],"names":[],"mappings":"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"}