@bcelep/capint 0.4.2 → 0.7.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 (1344) hide show
  1. package/AGENT.md +11 -1
  2. package/CHANGELOG.md +124 -0
  3. package/README.md +38 -10
  4. package/bin/capint.js +22 -1
  5. package/docs/PRD-capint.md +94 -0
  6. package/docs/PRD-v0.5-agent-capability-activation.md +439 -0
  7. package/docs/architecture-decisions.md +2 -0
  8. package/docs/capint-rehber.md +439 -0
  9. package/docs/capint-stack.md +118 -0
  10. package/docs/community.md +19 -0
  11. package/docs/conventions/cli-scripting.md +60 -0
  12. package/docs/conventions/daily-use.md +146 -0
  13. package/docs/conventions/task-to-capability-cheatsheet.md +29 -0
  14. package/docs/eval/beginner-test-protocol.md +39 -0
  15. package/docs/eval/survey-template.md +16 -0
  16. package/docs/execution-intent-contract.md +31 -3
  17. package/docs/generated/README.md +6 -0
  18. package/docs/generated/execution-intent.v1.md +211 -0
  19. package/docs/generated/explanation.v1.md +127 -0
  20. package/docs/generated/explanation.v2.md +142 -0
  21. package/docs/generated/ui-api.v1.md +178 -0
  22. package/docs/kullanim-kilavuzu.md +374 -0
  23. package/docs/maintainer-dogfood.md +91 -0
  24. package/docs/recipes/memory-graph-pairing.md +200 -0
  25. package/docs/skill-audit-runbook.md +32 -0
  26. package/locales/en.json +27 -0
  27. package/locales/tr.json +27 -0
  28. package/package.json +14 -3
  29. package/projections/session-start.md +26 -6
  30. package/registry.json +117 -4
  31. package/schemas/execution-intent.v1.json +69 -0
  32. package/schemas/explanation.v1.json +48 -0
  33. package/schemas/explanation.v2.json +51 -0
  34. package/schemas/ui-api.v1.json +85 -0
  35. package/scripts/capint-task.ps1 +38 -0
  36. package/scripts/capint-task.sh +40 -0
  37. package/scripts/generate-schema-docs.mjs +104 -0
  38. package/scripts/release-check.mjs +24 -1
  39. package/scripts/validate-registry.mjs +44 -0
  40. package/skill-routing-matrix.json +50 -4
  41. package/skills/agent-browser/LICENSE +201 -0
  42. package/skills/agent-browser/SKILL.md +522 -0
  43. package/skills/agent-browser/agents/verdent.yaml +7 -0
  44. package/skills/agent-browser/assets/icon-dark.png +0 -0
  45. package/skills/agent-browser/assets/icon-light.png +0 -0
  46. package/skills/agent-browser/references/authentication.md +202 -0
  47. package/skills/agent-browser/references/commands.md +263 -0
  48. package/skills/agent-browser/references/profiling.md +120 -0
  49. package/skills/agent-browser/references/proxy-support.md +194 -0
  50. package/skills/agent-browser/references/session-management.md +193 -0
  51. package/skills/agent-browser/references/snapshot-refs.md +194 -0
  52. package/skills/agent-browser/references/video-recording.md +173 -0
  53. package/skills/agent-browser/templates/authenticated-session.sh +105 -0
  54. package/skills/agent-browser/templates/capture-workflow.sh +69 -0
  55. package/skills/agent-browser/templates/form-automation.sh +62 -0
  56. package/skills/algorithmic-art/LICENSE.txt +202 -0
  57. package/skills/algorithmic-art/SKILL.md +410 -0
  58. package/skills/algorithmic-art/agents/verdent.yaml +11 -0
  59. package/skills/algorithmic-art/assets/icon-dark.png +0 -0
  60. package/skills/algorithmic-art/assets/icon-light.png +0 -0
  61. package/skills/algorithmic-art/templates/generator_template.js +223 -0
  62. package/skills/algorithmic-art/templates/viewer.html +599 -0
  63. package/skills/api-and-interface-design/SKILL.md +294 -0
  64. package/skills/aspnet-core/LICENSE.txt +202 -0
  65. package/skills/aspnet-core/SKILL.md +67 -0
  66. package/skills/aspnet-core/agents/verdent.yaml +11 -0
  67. package/skills/aspnet-core/assets/dotnet-logo.png +0 -0
  68. package/skills/aspnet-core/assets/icon-dark.png +0 -0
  69. package/skills/aspnet-core/assets/icon-light.png +0 -0
  70. package/skills/aspnet-core/references/_sections.md +40 -0
  71. package/skills/aspnet-core/references/apis-minimal-and-controllers.md +81 -0
  72. package/skills/aspnet-core/references/data-state-and-services.md +69 -0
  73. package/skills/aspnet-core/references/program-and-pipeline.md +103 -0
  74. package/skills/aspnet-core/references/realtime-grpc-and-background-work.md +58 -0
  75. package/skills/aspnet-core/references/security-and-identity.md +75 -0
  76. package/skills/aspnet-core/references/source-map.md +43 -0
  77. package/skills/aspnet-core/references/stack-selection.md +63 -0
  78. package/skills/aspnet-core/references/testing-performance-and-operations.md +92 -0
  79. package/skills/aspnet-core/references/ui-blazor.md +53 -0
  80. package/skills/aspnet-core/references/ui-mvc.md +56 -0
  81. package/skills/aspnet-core/references/ui-razor-pages.md +55 -0
  82. package/skills/aspnet-core/references/versioning-and-upgrades.md +51 -0
  83. package/skills/auth-patterns/SKILL.md +549 -0
  84. package/skills/best-practices/SKILL.md +641 -0
  85. package/skills/better-auth-best-practices/SKILL.md +180 -0
  86. package/skills/better-auth-best-practices/agents/verdent.yaml +11 -0
  87. package/skills/better-auth-best-practices/assets/icon-dark.png +0 -0
  88. package/skills/better-auth-best-practices/assets/icon-light.png +0 -0
  89. package/skills/brainstorming/SKILL.md +164 -0
  90. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  91. package/skills/brainstorming/visual-companion.md +287 -0
  92. package/skills/canvas-design/LICENSE.txt +202 -0
  93. package/skills/canvas-design/SKILL.md +135 -0
  94. package/skills/canvas-design/agents/verdent.yaml +11 -0
  95. package/skills/canvas-design/assets/icon-dark.png +0 -0
  96. package/skills/canvas-design/assets/icon-light.png +0 -0
  97. package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  98. package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  99. package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  100. package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  101. package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  102. package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  103. package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  104. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  105. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  106. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  107. package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  108. package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  109. package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  110. package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  111. package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  112. package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  113. package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  114. package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  115. package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  116. package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  117. package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  118. package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  119. package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  120. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  121. package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  122. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  123. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  124. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  125. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  126. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  127. package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  128. package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  129. package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  130. package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  131. package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  132. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  133. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  134. package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  135. package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  136. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  137. package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  138. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  139. package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  140. package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  141. package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  142. package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  143. package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  144. package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  145. package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  146. package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  147. package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  148. package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  149. package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  150. package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  151. package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  152. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  153. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  154. package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  155. package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  156. package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  157. package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  158. package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  159. package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  160. package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  161. package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  162. package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  163. package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  164. package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  165. package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  166. package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  167. package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  168. package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  169. package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  170. package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  171. package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  172. package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  173. package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  174. package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  175. package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  176. package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  177. package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  178. package/skills/ci-cd-and-automation/SKILL.md +390 -0
  179. package/skills/cloudflare/SKILL.md +233 -0
  180. package/skills/cloudflare/agents/verdent.yaml +12 -0
  181. package/skills/cloudflare/assets/icon-dark.png +0 -0
  182. package/skills/cloudflare/assets/icon-light.png +0 -0
  183. package/skills/cloudflare/references/agents-sdk/README.md +89 -0
  184. package/skills/cloudflare/references/agents-sdk/api.md +190 -0
  185. package/skills/cloudflare/references/agents-sdk/configuration.md +182 -0
  186. package/skills/cloudflare/references/agents-sdk/gotchas.md +158 -0
  187. package/skills/cloudflare/references/agents-sdk/patterns.md +192 -0
  188. package/skills/cloudflare/references/ai-gateway/README.md +175 -0
  189. package/skills/cloudflare/references/ai-gateway/configuration.md +111 -0
  190. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +82 -0
  191. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  192. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +114 -0
  193. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +88 -0
  194. package/skills/cloudflare/references/ai-search/README.md +138 -0
  195. package/skills/cloudflare/references/ai-search/api.md +87 -0
  196. package/skills/cloudflare/references/ai-search/configuration.md +88 -0
  197. package/skills/cloudflare/references/ai-search/gotchas.md +81 -0
  198. package/skills/cloudflare/references/ai-search/patterns.md +85 -0
  199. package/skills/cloudflare/references/analytics-engine/README.md +94 -0
  200. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  201. package/skills/cloudflare/references/analytics-engine/configuration.md +112 -0
  202. package/skills/cloudflare/references/analytics-engine/gotchas.md +85 -0
  203. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  204. package/skills/cloudflare/references/api/README.md +66 -0
  205. package/skills/cloudflare/references/api/api.md +204 -0
  206. package/skills/cloudflare/references/api/configuration.md +160 -0
  207. package/skills/cloudflare/references/api/gotchas.md +225 -0
  208. package/skills/cloudflare/references/api/patterns.md +204 -0
  209. package/skills/cloudflare/references/api-shield/README.md +44 -0
  210. package/skills/cloudflare/references/api-shield/api.md +141 -0
  211. package/skills/cloudflare/references/api-shield/configuration.md +192 -0
  212. package/skills/cloudflare/references/api-shield/gotchas.md +125 -0
  213. package/skills/cloudflare/references/api-shield/patterns.md +180 -0
  214. package/skills/cloudflare/references/argo-smart-routing/README.md +90 -0
  215. package/skills/cloudflare/references/argo-smart-routing/api.md +240 -0
  216. package/skills/cloudflare/references/argo-smart-routing/configuration.md +197 -0
  217. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +111 -0
  218. package/skills/cloudflare/references/argo-smart-routing/patterns.md +104 -0
  219. package/skills/cloudflare/references/bindings/README.md +122 -0
  220. package/skills/cloudflare/references/bindings/api.md +203 -0
  221. package/skills/cloudflare/references/bindings/configuration.md +188 -0
  222. package/skills/cloudflare/references/bindings/gotchas.md +208 -0
  223. package/skills/cloudflare/references/bindings/patterns.md +200 -0
  224. package/skills/cloudflare/references/bot-management/README.md +94 -0
  225. package/skills/cloudflare/references/bot-management/api.md +169 -0
  226. package/skills/cloudflare/references/bot-management/configuration.md +163 -0
  227. package/skills/cloudflare/references/bot-management/gotchas.md +114 -0
  228. package/skills/cloudflare/references/bot-management/patterns.md +182 -0
  229. package/skills/cloudflare/references/browser-rendering/README.md +78 -0
  230. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  231. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  232. package/skills/cloudflare/references/browser-rendering/gotchas.md +88 -0
  233. package/skills/cloudflare/references/browser-rendering/patterns.md +91 -0
  234. package/skills/cloudflare/references/c3/README.md +111 -0
  235. package/skills/cloudflare/references/c3/api.md +71 -0
  236. package/skills/cloudflare/references/c3/configuration.md +81 -0
  237. package/skills/cloudflare/references/c3/gotchas.md +92 -0
  238. package/skills/cloudflare/references/c3/patterns.md +82 -0
  239. package/skills/cloudflare/references/cache-reserve/README.md +147 -0
  240. package/skills/cloudflare/references/cache-reserve/api.md +194 -0
  241. package/skills/cloudflare/references/cache-reserve/configuration.md +169 -0
  242. package/skills/cloudflare/references/cache-reserve/gotchas.md +132 -0
  243. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  244. package/skills/cloudflare/references/containers/README.md +85 -0
  245. package/skills/cloudflare/references/containers/api.md +187 -0
  246. package/skills/cloudflare/references/containers/configuration.md +188 -0
  247. package/skills/cloudflare/references/containers/gotchas.md +178 -0
  248. package/skills/cloudflare/references/containers/patterns.md +202 -0
  249. package/skills/cloudflare/references/cron-triggers/README.md +99 -0
  250. package/skills/cloudflare/references/cron-triggers/api.md +196 -0
  251. package/skills/cloudflare/references/cron-triggers/configuration.md +180 -0
  252. package/skills/cloudflare/references/cron-triggers/gotchas.md +199 -0
  253. package/skills/cloudflare/references/cron-triggers/patterns.md +190 -0
  254. package/skills/cloudflare/references/d1/README.md +133 -0
  255. package/skills/cloudflare/references/d1/api.md +196 -0
  256. package/skills/cloudflare/references/d1/configuration.md +188 -0
  257. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  258. package/skills/cloudflare/references/d1/patterns.md +189 -0
  259. package/skills/cloudflare/references/ddos/README.md +41 -0
  260. package/skills/cloudflare/references/ddos/api.md +164 -0
  261. package/skills/cloudflare/references/ddos/configuration.md +93 -0
  262. package/skills/cloudflare/references/ddos/gotchas.md +107 -0
  263. package/skills/cloudflare/references/ddos/patterns.md +174 -0
  264. package/skills/cloudflare/references/do-storage/README.md +75 -0
  265. package/skills/cloudflare/references/do-storage/api.md +102 -0
  266. package/skills/cloudflare/references/do-storage/configuration.md +112 -0
  267. package/skills/cloudflare/references/do-storage/gotchas.md +150 -0
  268. package/skills/cloudflare/references/do-storage/patterns.md +194 -0
  269. package/skills/cloudflare/references/do-storage/testing.md +183 -0
  270. package/skills/cloudflare/references/durable-objects/README.md +185 -0
  271. package/skills/cloudflare/references/durable-objects/api.md +187 -0
  272. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  273. package/skills/cloudflare/references/durable-objects/gotchas.md +197 -0
  274. package/skills/cloudflare/references/durable-objects/patterns.md +201 -0
  275. package/skills/cloudflare/references/email-routing/README.md +89 -0
  276. package/skills/cloudflare/references/email-routing/api.md +195 -0
  277. package/skills/cloudflare/references/email-routing/configuration.md +186 -0
  278. package/skills/cloudflare/references/email-routing/gotchas.md +196 -0
  279. package/skills/cloudflare/references/email-routing/patterns.md +229 -0
  280. package/skills/cloudflare/references/email-workers/README.md +151 -0
  281. package/skills/cloudflare/references/email-workers/api.md +237 -0
  282. package/skills/cloudflare/references/email-workers/configuration.md +112 -0
  283. package/skills/cloudflare/references/email-workers/gotchas.md +125 -0
  284. package/skills/cloudflare/references/email-workers/patterns.md +102 -0
  285. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  286. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  287. package/skills/cloudflare/references/graphql-api/configuration.md +118 -0
  288. package/skills/cloudflare/references/graphql-api/gotchas.md +110 -0
  289. package/skills/cloudflare/references/graphql-api/patterns.md +225 -0
  290. package/skills/cloudflare/references/hyperdrive/README.md +82 -0
  291. package/skills/cloudflare/references/hyperdrive/api.md +143 -0
  292. package/skills/cloudflare/references/hyperdrive/configuration.md +159 -0
  293. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  294. package/skills/cloudflare/references/hyperdrive/patterns.md +190 -0
  295. package/skills/cloudflare/references/images/README.md +61 -0
  296. package/skills/cloudflare/references/images/api.md +96 -0
  297. package/skills/cloudflare/references/images/configuration.md +211 -0
  298. package/skills/cloudflare/references/images/gotchas.md +99 -0
  299. package/skills/cloudflare/references/images/patterns.md +115 -0
  300. package/skills/cloudflare/references/kv/README.md +89 -0
  301. package/skills/cloudflare/references/kv/api.md +160 -0
  302. package/skills/cloudflare/references/kv/configuration.md +144 -0
  303. package/skills/cloudflare/references/kv/gotchas.md +131 -0
  304. package/skills/cloudflare/references/kv/patterns.md +196 -0
  305. package/skills/cloudflare/references/miniflare/README.md +105 -0
  306. package/skills/cloudflare/references/miniflare/api.md +187 -0
  307. package/skills/cloudflare/references/miniflare/configuration.md +173 -0
  308. package/skills/cloudflare/references/miniflare/gotchas.md +160 -0
  309. package/skills/cloudflare/references/miniflare/patterns.md +181 -0
  310. package/skills/cloudflare/references/network-interconnect/README.md +99 -0
  311. package/skills/cloudflare/references/network-interconnect/api.md +199 -0
  312. package/skills/cloudflare/references/network-interconnect/configuration.md +114 -0
  313. package/skills/cloudflare/references/network-interconnect/gotchas.md +165 -0
  314. package/skills/cloudflare/references/network-interconnect/patterns.md +166 -0
  315. package/skills/cloudflare/references/observability/README.md +88 -0
  316. package/skills/cloudflare/references/observability/api.md +164 -0
  317. package/skills/cloudflare/references/observability/configuration.md +169 -0
  318. package/skills/cloudflare/references/observability/gotchas.md +115 -0
  319. package/skills/cloudflare/references/observability/patterns.md +105 -0
  320. package/skills/cloudflare/references/pages/README.md +88 -0
  321. package/skills/cloudflare/references/pages/api.md +204 -0
  322. package/skills/cloudflare/references/pages/configuration.md +201 -0
  323. package/skills/cloudflare/references/pages/gotchas.md +203 -0
  324. package/skills/cloudflare/references/pages/patterns.md +204 -0
  325. package/skills/cloudflare/references/pages-functions/README.md +98 -0
  326. package/skills/cloudflare/references/pages-functions/api.md +143 -0
  327. package/skills/cloudflare/references/pages-functions/configuration.md +122 -0
  328. package/skills/cloudflare/references/pages-functions/gotchas.md +94 -0
  329. package/skills/cloudflare/references/pages-functions/patterns.md +137 -0
  330. package/skills/cloudflare/references/pipelines/README.md +105 -0
  331. package/skills/cloudflare/references/pipelines/api.md +208 -0
  332. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  333. package/skills/cloudflare/references/pipelines/gotchas.md +80 -0
  334. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  335. package/skills/cloudflare/references/pulumi/README.md +100 -0
  336. package/skills/cloudflare/references/pulumi/api.md +200 -0
  337. package/skills/cloudflare/references/pulumi/configuration.md +198 -0
  338. package/skills/cloudflare/references/pulumi/gotchas.md +181 -0
  339. package/skills/cloudflare/references/pulumi/patterns.md +191 -0
  340. package/skills/cloudflare/references/queues/README.md +96 -0
  341. package/skills/cloudflare/references/queues/api.md +206 -0
  342. package/skills/cloudflare/references/queues/configuration.md +144 -0
  343. package/skills/cloudflare/references/queues/gotchas.md +206 -0
  344. package/skills/cloudflare/references/queues/patterns.md +220 -0
  345. package/skills/cloudflare/references/r2/README.md +95 -0
  346. package/skills/cloudflare/references/r2/api.md +200 -0
  347. package/skills/cloudflare/references/r2/configuration.md +165 -0
  348. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  349. package/skills/cloudflare/references/r2/patterns.md +193 -0
  350. package/skills/cloudflare/references/r2-data-catalog/README.md +149 -0
  351. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  352. package/skills/cloudflare/references/r2-data-catalog/configuration.md +198 -0
  353. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  354. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  355. package/skills/cloudflare/references/r2-sql/README.md +128 -0
  356. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  357. package/skills/cloudflare/references/r2-sql/api.md +158 -0
  358. package/skills/cloudflare/references/r2-sql/configuration.md +147 -0
  359. package/skills/cloudflare/references/r2-sql/gotchas.md +212 -0
  360. package/skills/cloudflare/references/r2-sql/patterns.md +222 -0
  361. package/skills/cloudflare/references/realtime-sfu/README.md +65 -0
  362. package/skills/cloudflare/references/realtime-sfu/api.md +158 -0
  363. package/skills/cloudflare/references/realtime-sfu/configuration.md +137 -0
  364. package/skills/cloudflare/references/realtime-sfu/gotchas.md +133 -0
  365. package/skills/cloudflare/references/realtime-sfu/patterns.md +174 -0
  366. package/skills/cloudflare/references/realtimekit/README.md +113 -0
  367. package/skills/cloudflare/references/realtimekit/api.md +212 -0
  368. package/skills/cloudflare/references/realtimekit/configuration.md +203 -0
  369. package/skills/cloudflare/references/realtimekit/gotchas.md +169 -0
  370. package/skills/cloudflare/references/realtimekit/patterns.md +223 -0
  371. package/skills/cloudflare/references/sandbox/README.md +96 -0
  372. package/skills/cloudflare/references/sandbox/api.md +198 -0
  373. package/skills/cloudflare/references/sandbox/configuration.md +143 -0
  374. package/skills/cloudflare/references/sandbox/gotchas.md +194 -0
  375. package/skills/cloudflare/references/sandbox/patterns.md +201 -0
  376. package/skills/cloudflare/references/secrets-store/README.md +74 -0
  377. package/skills/cloudflare/references/secrets-store/api.md +200 -0
  378. package/skills/cloudflare/references/secrets-store/configuration.md +185 -0
  379. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  380. package/skills/cloudflare/references/secrets-store/patterns.md +207 -0
  381. package/skills/cloudflare/references/smart-placement/README.md +138 -0
  382. package/skills/cloudflare/references/smart-placement/api.md +183 -0
  383. package/skills/cloudflare/references/smart-placement/configuration.md +196 -0
  384. package/skills/cloudflare/references/smart-placement/gotchas.md +174 -0
  385. package/skills/cloudflare/references/smart-placement/patterns.md +183 -0
  386. package/skills/cloudflare/references/snippets/README.md +68 -0
  387. package/skills/cloudflare/references/snippets/api.md +198 -0
  388. package/skills/cloudflare/references/snippets/configuration.md +227 -0
  389. package/skills/cloudflare/references/snippets/gotchas.md +86 -0
  390. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  391. package/skills/cloudflare/references/spectrum/README.md +52 -0
  392. package/skills/cloudflare/references/spectrum/api.md +181 -0
  393. package/skills/cloudflare/references/spectrum/configuration.md +194 -0
  394. package/skills/cloudflare/references/spectrum/gotchas.md +145 -0
  395. package/skills/cloudflare/references/spectrum/patterns.md +196 -0
  396. package/skills/cloudflare/references/static-assets/README.md +65 -0
  397. package/skills/cloudflare/references/static-assets/api.md +199 -0
  398. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  399. package/skills/cloudflare/references/static-assets/gotchas.md +162 -0
  400. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  401. package/skills/cloudflare/references/stream/README.md +114 -0
  402. package/skills/cloudflare/references/stream/api-live.md +195 -0
  403. package/skills/cloudflare/references/stream/api.md +199 -0
  404. package/skills/cloudflare/references/stream/configuration.md +141 -0
  405. package/skills/cloudflare/references/stream/gotchas.md +130 -0
  406. package/skills/cloudflare/references/stream/patterns.md +184 -0
  407. package/skills/cloudflare/references/tail-workers/README.md +89 -0
  408. package/skills/cloudflare/references/tail-workers/api.md +200 -0
  409. package/skills/cloudflare/references/tail-workers/configuration.md +176 -0
  410. package/skills/cloudflare/references/tail-workers/gotchas.md +192 -0
  411. package/skills/cloudflare/references/tail-workers/patterns.md +180 -0
  412. package/skills/cloudflare/references/terraform/README.md +102 -0
  413. package/skills/cloudflare/references/terraform/api.md +178 -0
  414. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  415. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  416. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  417. package/skills/cloudflare/references/tunnel/README.md +129 -0
  418. package/skills/cloudflare/references/tunnel/api.md +193 -0
  419. package/skills/cloudflare/references/tunnel/configuration.md +157 -0
  420. package/skills/cloudflare/references/tunnel/gotchas.md +147 -0
  421. package/skills/cloudflare/references/tunnel/networking.md +168 -0
  422. package/skills/cloudflare/references/tunnel/patterns.md +192 -0
  423. package/skills/cloudflare/references/turn/README.md +82 -0
  424. package/skills/cloudflare/references/turn/api.md +239 -0
  425. package/skills/cloudflare/references/turn/configuration.md +179 -0
  426. package/skills/cloudflare/references/turn/gotchas.md +231 -0
  427. package/skills/cloudflare/references/turn/patterns.md +213 -0
  428. package/skills/cloudflare/references/turnstile/README.md +99 -0
  429. package/skills/cloudflare/references/turnstile/api.md +240 -0
  430. package/skills/cloudflare/references/turnstile/configuration.md +222 -0
  431. package/skills/cloudflare/references/turnstile/gotchas.md +218 -0
  432. package/skills/cloudflare/references/turnstile/patterns.md +193 -0
  433. package/skills/cloudflare/references/vectorize/README.md +133 -0
  434. package/skills/cloudflare/references/vectorize/api.md +88 -0
  435. package/skills/cloudflare/references/vectorize/configuration.md +88 -0
  436. package/skills/cloudflare/references/vectorize/gotchas.md +76 -0
  437. package/skills/cloudflare/references/vectorize/patterns.md +90 -0
  438. package/skills/cloudflare/references/waf/README.md +113 -0
  439. package/skills/cloudflare/references/waf/api.md +202 -0
  440. package/skills/cloudflare/references/waf/configuration.md +203 -0
  441. package/skills/cloudflare/references/waf/gotchas.md +204 -0
  442. package/skills/cloudflare/references/waf/patterns.md +197 -0
  443. package/skills/cloudflare/references/web-analytics/README.md +141 -0
  444. package/skills/cloudflare/references/web-analytics/configuration.md +76 -0
  445. package/skills/cloudflare/references/web-analytics/gotchas.md +82 -0
  446. package/skills/cloudflare/references/web-analytics/integration.md +60 -0
  447. package/skills/cloudflare/references/web-analytics/patterns.md +91 -0
  448. package/skills/cloudflare/references/workerd/README.md +78 -0
  449. package/skills/cloudflare/references/workerd/api.md +185 -0
  450. package/skills/cloudflare/references/workerd/configuration.md +183 -0
  451. package/skills/cloudflare/references/workerd/gotchas.md +139 -0
  452. package/skills/cloudflare/references/workerd/patterns.md +192 -0
  453. package/skills/cloudflare/references/workers/README.md +108 -0
  454. package/skills/cloudflare/references/workers/api.md +195 -0
  455. package/skills/cloudflare/references/workers/configuration.md +185 -0
  456. package/skills/cloudflare/references/workers/frameworks.md +197 -0
  457. package/skills/cloudflare/references/workers/gotchas.md +136 -0
  458. package/skills/cloudflare/references/workers/patterns.md +198 -0
  459. package/skills/cloudflare/references/workers-ai/README.md +197 -0
  460. package/skills/cloudflare/references/workers-ai/api.md +112 -0
  461. package/skills/cloudflare/references/workers-ai/configuration.md +97 -0
  462. package/skills/cloudflare/references/workers-ai/gotchas.md +114 -0
  463. package/skills/cloudflare/references/workers-ai/patterns.md +120 -0
  464. package/skills/cloudflare/references/workers-for-platforms/README.md +89 -0
  465. package/skills/cloudflare/references/workers-for-platforms/api.md +196 -0
  466. package/skills/cloudflare/references/workers-for-platforms/configuration.md +167 -0
  467. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  468. package/skills/cloudflare/references/workers-for-platforms/patterns.md +188 -0
  469. package/skills/cloudflare/references/workers-playground/README.md +127 -0
  470. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  471. package/skills/cloudflare/references/workers-playground/configuration.md +163 -0
  472. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  473. package/skills/cloudflare/references/workers-playground/patterns.md +132 -0
  474. package/skills/cloudflare/references/workers-vpc/README.md +127 -0
  475. package/skills/cloudflare/references/workers-vpc/api.md +202 -0
  476. package/skills/cloudflare/references/workers-vpc/configuration.md +147 -0
  477. package/skills/cloudflare/references/workers-vpc/gotchas.md +167 -0
  478. package/skills/cloudflare/references/workers-vpc/patterns.md +209 -0
  479. package/skills/cloudflare/references/workflows/README.md +69 -0
  480. package/skills/cloudflare/references/workflows/api.md +185 -0
  481. package/skills/cloudflare/references/workflows/configuration.md +151 -0
  482. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  483. package/skills/cloudflare/references/workflows/patterns.md +175 -0
  484. package/skills/cloudflare/references/wrangler/README.md +135 -0
  485. package/skills/cloudflare/references/wrangler/api.md +188 -0
  486. package/skills/cloudflare/references/wrangler/configuration.md +197 -0
  487. package/skills/cloudflare/references/wrangler/gotchas.md +197 -0
  488. package/skills/cloudflare/references/wrangler/patterns.md +209 -0
  489. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
  490. package/skills/cloudflare/references/zaraz/README.md +111 -0
  491. package/skills/cloudflare/references/zaraz/api.md +112 -0
  492. package/skills/cloudflare/references/zaraz/configuration.md +90 -0
  493. package/skills/cloudflare/references/zaraz/gotchas.md +81 -0
  494. package/skills/cloudflare/references/zaraz/patterns.md +74 -0
  495. package/skills/code-reviewer/SKILL.md +347 -0
  496. package/skills/code-simplifier/SKILL.md +124 -0
  497. package/skills/code-simplifier/agents/verdent.yaml +11 -0
  498. package/skills/code-simplifier/assets/icon-dark.png +0 -0
  499. package/skills/code-simplifier/assets/icon-light.png +0 -0
  500. package/skills/concept-modeler/SKILL.md +178 -0
  501. package/skills/context-engineering/SKILL.md +289 -0
  502. package/skills/copywriting/SKILL.md +252 -0
  503. package/skills/copywriting/evals/evals.json +111 -0
  504. package/skills/copywriting/references/copy-frameworks.md +344 -0
  505. package/skills/copywriting/references/natural-transitions.md +272 -0
  506. package/skills/core-web-vitals/SKILL.md +483 -0
  507. package/skills/core-web-vitals/references/LCP.md +208 -0
  508. package/skills/craft-authoring/SKILL.md +123 -0
  509. package/skills/create-design-system-rules/SKILL.md +530 -0
  510. package/skills/create-design-system-rules/agents/verdent.yaml +11 -0
  511. package/skills/create-design-system-rules/assets/icon-dark.png +0 -0
  512. package/skills/create-design-system-rules/assets/icon-light.png +0 -0
  513. package/skills/database-and-data-modeling/SKILL.md +515 -0
  514. package/skills/database-blueprints/SKILL.md +60 -0
  515. package/skills/database-blueprints/agents/verdent.yaml +13 -0
  516. package/skills/database-blueprints/assets/icon-dark.png +0 -0
  517. package/skills/database-blueprints/assets/icon-light.png +0 -0
  518. package/skills/database-blueprints/references/core-schema.md +68 -0
  519. package/skills/database-blueprints/references/migration-safety.md +55 -0
  520. package/skills/database-blueprints/references/mysql.md +50 -0
  521. package/skills/database-blueprints/references/prisma.md +47 -0
  522. package/skills/database-blueprints/references/supabase-postgres.md +63 -0
  523. package/skills/delivery-acceptance/SKILL.md +60 -0
  524. package/skills/delivery-acceptance/agents/verdent.yaml +12 -0
  525. package/skills/delivery-acceptance/assets/icon-dark.png +0 -0
  526. package/skills/delivery-acceptance/assets/icon-light.png +0 -0
  527. package/skills/delivery-acceptance/references/acceptance-checklist.md +44 -0
  528. package/skills/delivery-acceptance/references/mobile-print-file.md +19 -0
  529. package/skills/delivery-acceptance/references/playwright-smoke.md +35 -0
  530. package/skills/dependency-audit/SKILL.md +97 -0
  531. package/skills/deprecation-and-migration/SKILL.md +206 -0
  532. package/skills/design-reviewer/SKILL.md +189 -0
  533. package/skills/develop-web-game/LICENSE.txt +201 -0
  534. package/skills/develop-web-game/SKILL.md +154 -0
  535. package/skills/develop-web-game/agents/verdent.yaml +12 -0
  536. package/skills/develop-web-game/assets/game-small.svg +4 -0
  537. package/skills/develop-web-game/assets/game.png +0 -0
  538. package/skills/develop-web-game/assets/icon-dark.png +0 -0
  539. package/skills/develop-web-game/assets/icon-light.png +0 -0
  540. package/skills/develop-web-game/references/action_payloads.json +7 -0
  541. package/skills/develop-web-game/scripts/web_game_playwright_client.js +356 -0
  542. package/skills/dignified-python/SKILL.md +175 -0
  543. package/skills/dignified-python/agents/verdent.yaml +11 -0
  544. package/skills/dignified-python/assets/icon-dark.png +0 -0
  545. package/skills/dignified-python/assets/icon-light.png +0 -0
  546. package/skills/dignified-python/cli-patterns.md +156 -0
  547. package/skills/dignified-python/dignified-python-core.md +345 -0
  548. package/skills/dignified-python/references/README.md +319 -0
  549. package/skills/dignified-python/references/advanced/api-design.md +230 -0
  550. package/skills/dignified-python/references/advanced/exception-handling.md +185 -0
  551. package/skills/dignified-python/references/advanced/interfaces.md +183 -0
  552. package/skills/dignified-python/references/advanced/typing-advanced.md +158 -0
  553. package/skills/dignified-python/references/checklists.md +134 -0
  554. package/skills/dignified-python/references/module-design.md +214 -0
  555. package/skills/dignified-python/subprocess.md +99 -0
  556. package/skills/dignified-python/versions/python-3.10.md +520 -0
  557. package/skills/dignified-python/versions/python-3.11.md +538 -0
  558. package/skills/dignified-python/versions/python-3.12.md +664 -0
  559. package/skills/dignified-python/versions/python-3.13.md +657 -0
  560. package/skills/dispatching-parallel-agents/SKILL.md +182 -0
  561. package/skills/documentation-and-adrs/SKILL.md +278 -0
  562. package/skills/documentation-sync/SKILL.md +76 -0
  563. package/skills/documentation-writer/SKILL.md +50 -0
  564. package/skills/documentation-writer/agents/verdent.yaml +10 -0
  565. package/skills/documentation-writer/assets/icon-dark.png +0 -0
  566. package/skills/documentation-writer/assets/icon-light.png +0 -0
  567. package/skills/docx/SKILL.md +186 -0
  568. package/skills/docx/agents/verdent.yaml +9 -0
  569. package/skills/docx/assets/docx.png +0 -0
  570. package/skills/docx/assets/icon-dark.png +0 -0
  571. package/skills/docx/assets/icon-light.png +0 -0
  572. package/skills/docx/references/creation-guide.md +309 -0
  573. package/skills/docx/references/xml-editing-guide.md +237 -0
  574. package/skills/docx/scripts/docx_tool.py +164 -0
  575. package/skills/docx/scripts/fixtures/comments.xml +3 -0
  576. package/skills/docx/scripts/fixtures/commentsExtended.xml +3 -0
  577. package/skills/docx/scripts/fixtures/commentsExtensible.xml +3 -0
  578. package/skills/docx/scripts/fixtures/commentsIds.xml +3 -0
  579. package/skills/docx/scripts/fixtures/people.xml +3 -0
  580. package/skills/docx/scripts/internals/__init__.py +0 -0
  581. package/skills/docx/scripts/internals/content.py +307 -0
  582. package/skills/docx/scripts/internals/integrity/__init__.py +0 -0
  583. package/skills/docx/scripts/internals/integrity/foundation.py +559 -0
  584. package/skills/docx/scripts/internals/integrity/orchestrator.py +66 -0
  585. package/skills/docx/scripts/internals/integrity/revision_checker.py +181 -0
  586. package/skills/docx/scripts/internals/integrity/schema_checker.py +294 -0
  587. package/skills/docx/scripts/internals/packaging.py +193 -0
  588. package/skills/docx/scripts/internals/preprocessing/__init__.py +0 -0
  589. package/skills/docx/scripts/internals/preprocessing/revision_merger.py +193 -0
  590. package/skills/docx/scripts/internals/preprocessing/run_consolidator.py +179 -0
  591. package/skills/docx/scripts/internals/runtime/__init__.py +0 -0
  592. package/skills/docx/scripts/internals/runtime/converter.py +184 -0
  593. package/skills/docx/scripts/internals/runtime/renderer.py +60 -0
  594. package/skills/docx/scripts/internals/runtime/revision_acceptor.py +122 -0
  595. package/skills/docx/scripts/render_docx.py +296 -0
  596. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  597. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  598. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  599. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  600. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  601. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  602. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  603. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  604. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  605. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  606. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  607. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  608. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  609. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  610. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  611. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  612. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  613. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  614. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  615. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  616. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  617. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  618. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  619. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  620. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  621. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  622. package/skills/docx/scripts/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  623. package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  624. package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  625. package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  626. package/skills/docx/scripts/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  627. package/skills/docx/scripts/schemas/mce/mc.xsd +75 -0
  628. package/skills/docx/scripts/schemas/microsoft/wml-2010.xsd +560 -0
  629. package/skills/docx/scripts/schemas/microsoft/wml-2012.xsd +67 -0
  630. package/skills/docx/scripts/schemas/microsoft/wml-2018.xsd +14 -0
  631. package/skills/docx/scripts/schemas/microsoft/wml-cex-2018.xsd +20 -0
  632. package/skills/docx/scripts/schemas/microsoft/wml-cid-2016.xsd +13 -0
  633. package/skills/docx/scripts/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  634. package/skills/docx/scripts/schemas/microsoft/wml-symex-2015.xsd +8 -0
  635. package/skills/doubt-driven-development/SKILL.md +243 -0
  636. package/skills/e2e-testing-guide/SKILL.md +204 -0
  637. package/skills/emil-design-eng/SKILL.md +679 -0
  638. package/skills/environment-and-config/SKILL.md +849 -0
  639. package/skills/error-handling/SKILL.md +757 -0
  640. package/skills/excalidraw-diagram-generator/SKILL.md +618 -0
  641. package/skills/excalidraw-diagram-generator/agents/verdent.yaml +11 -0
  642. package/skills/excalidraw-diagram-generator/assets/icon-dark.png +0 -0
  643. package/skills/excalidraw-diagram-generator/assets/icon-light.png +0 -0
  644. package/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
  645. package/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
  646. package/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
  647. package/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
  648. package/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
  649. package/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
  650. package/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
  651. package/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
  652. package/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
  653. package/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
  654. package/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
  655. package/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
  656. package/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
  657. package/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
  658. package/skills/executing-plans/SKILL.md +245 -0
  659. package/skills/figma/LICENSE.txt +202 -0
  660. package/skills/figma/SKILL.md +53 -0
  661. package/skills/figma/agents/verdent.yaml +7 -0
  662. package/skills/figma/assets/figma.png +0 -0
  663. package/skills/figma/assets/icon-dark.png +0 -0
  664. package/skills/figma/assets/icon-light.png +0 -0
  665. package/skills/figma/assets/icon.svg +28 -0
  666. package/skills/figma/references/figma-mcp-config.md +49 -0
  667. package/skills/figma/references/figma-tools-and-prompts.md +39 -0
  668. package/skills/figma-implement-design/LICENSE.txt +202 -0
  669. package/skills/figma-implement-design/SKILL.md +265 -0
  670. package/skills/figma-implement-design/agents/verdent.yaml +7 -0
  671. package/skills/figma-implement-design/assets/figma.png +0 -0
  672. package/skills/figma-implement-design/assets/icon-dark.png +0 -0
  673. package/skills/figma-implement-design/assets/icon-light.png +0 -0
  674. package/skills/figma-implement-design/assets/icon.svg +28 -0
  675. package/skills/find-docs/SKILL.md +164 -0
  676. package/skills/find-docs/agents/verdent.yaml +11 -0
  677. package/skills/find-docs/assets/icon-dark.png +0 -0
  678. package/skills/find-docs/assets/icon-light.png +0 -0
  679. package/skills/find-skills/SKILL.md +142 -0
  680. package/skills/firecrawl/SKILL.md +131 -0
  681. package/skills/firecrawl/agents/verdent.yaml +11 -0
  682. package/skills/firecrawl/assets/icon-dark.png +0 -0
  683. package/skills/firecrawl/assets/icon-light.png +0 -0
  684. package/skills/firecrawl/rules/install.md +63 -0
  685. package/skills/firecrawl/rules/security.md +26 -0
  686. package/skills/flutter-architecting-apps/SKILL.md +164 -0
  687. package/skills/flutter-architecting-apps/agents/verdent.yaml +11 -0
  688. package/skills/flutter-architecting-apps/assets/icon-dark.png +0 -0
  689. package/skills/flutter-architecting-apps/assets/icon-light.png +0 -0
  690. package/skills/frontend-design-pro/SKILL.md +328 -0
  691. package/skills/frontend-slides/LICENSE +21 -0
  692. package/skills/frontend-slides/SKILL.md +1169 -0
  693. package/skills/frontend-slides/STYLE_PRESETS.md +561 -0
  694. package/skills/frontend-slides/agents/verdent.yaml +7 -0
  695. package/skills/frontend-slides/assets/icon-dark.png +0 -0
  696. package/skills/frontend-slides/assets/icon-light.png +0 -0
  697. package/skills/gh-cli/SKILL.md +2192 -0
  698. package/skills/gh-cli/agents/verdent.yaml +12 -0
  699. package/skills/gh-cli/assets/icon-dark.png +0 -0
  700. package/skills/gh-cli/assets/icon-light.png +0 -0
  701. package/skills/git-commit/SKILL.md +129 -0
  702. package/skills/git-commit/agents/verdent.yaml +11 -0
  703. package/skills/git-commit/assets/icon-dark.png +0 -0
  704. package/skills/git-commit/assets/icon-light.png +0 -0
  705. package/skills/git-workflow-and-versioning/SKILL.md +300 -0
  706. package/skills/graphql-operations/SKILL.md +247 -0
  707. package/skills/graphql-operations/agents/verdent.yaml +11 -0
  708. package/skills/graphql-operations/assets/icon-dark.png +0 -0
  709. package/skills/graphql-operations/assets/icon-light.png +0 -0
  710. package/skills/graphql-operations/references/fragments.md +536 -0
  711. package/skills/graphql-operations/references/mutations.md +435 -0
  712. package/skills/graphql-operations/references/queries.md +504 -0
  713. package/skills/graphql-operations/references/tooling.md +404 -0
  714. package/skills/graphql-operations/references/variables.md +440 -0
  715. package/skills/graphql-schema/SKILL.md +175 -0
  716. package/skills/graphql-schema/agents/verdent.yaml +11 -0
  717. package/skills/graphql-schema/assets/icon-dark.png +0 -0
  718. package/skills/graphql-schema/assets/icon-light.png +0 -0
  719. package/skills/graphql-schema/references/errors.md +388 -0
  720. package/skills/graphql-schema/references/naming.md +400 -0
  721. package/skills/graphql-schema/references/pagination.md +396 -0
  722. package/skills/graphql-schema/references/security.md +484 -0
  723. package/skills/graphql-schema/references/types.md +445 -0
  724. package/skills/hugging-face-model-trainer/SKILL.md +722 -0
  725. package/skills/hugging-face-model-trainer/agents/verdent.yaml +12 -0
  726. package/skills/hugging-face-model-trainer/assets/icon-dark.png +0 -0
  727. package/skills/hugging-face-model-trainer/assets/icon-light.png +0 -0
  728. package/skills/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
  729. package/skills/hugging-face-model-trainer/references/hardware_guide.md +283 -0
  730. package/skills/hugging-face-model-trainer/references/hub_saving.md +364 -0
  731. package/skills/hugging-face-model-trainer/references/local_training_macos.md +231 -0
  732. package/skills/hugging-face-model-trainer/references/reliability_principles.md +371 -0
  733. package/skills/hugging-face-model-trainer/references/trackio_guide.md +189 -0
  734. package/skills/hugging-face-model-trainer/references/training_methods.md +150 -0
  735. package/skills/hugging-face-model-trainer/references/training_patterns.md +203 -0
  736. package/skills/hugging-face-model-trainer/references/troubleshooting.md +282 -0
  737. package/skills/hugging-face-model-trainer/references/unsloth.md +313 -0
  738. package/skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
  739. package/skills/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
  740. package/skills/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
  741. package/skills/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
  742. package/skills/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
  743. package/skills/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
  744. package/skills/hugging-face-model-trainer/scripts/unsloth_sft_example.py +512 -0
  745. package/skills/imagegen/LICENSE.txt +201 -0
  746. package/skills/imagegen/SKILL.md +180 -0
  747. package/skills/imagegen/agents/verdent.yaml +11 -0
  748. package/skills/imagegen/assets/icon-dark.png +0 -0
  749. package/skills/imagegen/assets/icon-light.png +0 -0
  750. package/skills/imagegen/assets/imagegen-small.svg +5 -0
  751. package/skills/imagegen/assets/imagegen.png +0 -0
  752. package/skills/imagegen/references/cli.md +132 -0
  753. package/skills/imagegen/references/image-api.md +36 -0
  754. package/skills/imagegen/references/network-notes.md +28 -0
  755. package/skills/imagegen/references/prompting.md +81 -0
  756. package/skills/imagegen/references/sample-prompts.md +384 -0
  757. package/skills/imagegen/scripts/image_gen.py +876 -0
  758. package/skills/impeccable/SKILL.md +450 -0
  759. package/skills/impeccable/reference/adapt.md +190 -0
  760. package/skills/impeccable/reference/animate.md +175 -0
  761. package/skills/impeccable/reference/audit.md +133 -0
  762. package/skills/impeccable/reference/bolder.md +113 -0
  763. package/skills/impeccable/reference/brand.md +114 -0
  764. package/skills/impeccable/reference/clarify.md +174 -0
  765. package/skills/impeccable/reference/cognitive-load.md +106 -0
  766. package/skills/impeccable/reference/color-and-contrast.md +105 -0
  767. package/skills/impeccable/reference/colorize.md +154 -0
  768. package/skills/impeccable/reference/craft.md +193 -0
  769. package/skills/impeccable/reference/critique.md +213 -0
  770. package/skills/impeccable/reference/delight.md +302 -0
  771. package/skills/impeccable/reference/distill.md +111 -0
  772. package/skills/impeccable/reference/document.md +427 -0
  773. package/skills/impeccable/reference/extract.md +69 -0
  774. package/skills/impeccable/reference/harden.md +347 -0
  775. package/skills/impeccable/reference/heuristics-scoring.md +234 -0
  776. package/skills/impeccable/reference/interaction-design.md +195 -0
  777. package/skills/impeccable/reference/layout.md +141 -0
  778. package/skills/impeccable/reference/live.md +622 -0
  779. package/skills/impeccable/reference/motion-design.md +109 -0
  780. package/skills/impeccable/reference/onboard.md +234 -0
  781. package/skills/impeccable/reference/optimize.md +258 -0
  782. package/skills/impeccable/reference/overdrive.md +130 -0
  783. package/skills/impeccable/reference/personas.md +179 -0
  784. package/skills/impeccable/reference/polish.md +233 -0
  785. package/skills/impeccable/reference/product.md +62 -0
  786. package/skills/impeccable/reference/quieter.md +99 -0
  787. package/skills/impeccable/reference/responsive-design.md +114 -0
  788. package/skills/impeccable/reference/shape.md +151 -0
  789. package/skills/impeccable/reference/spatial-design.md +100 -0
  790. package/skills/impeccable/reference/teach.md +156 -0
  791. package/skills/impeccable/reference/typeset.md +124 -0
  792. package/skills/impeccable/reference/typography.md +159 -0
  793. package/skills/impeccable/reference/ux-writing.md +107 -0
  794. package/skills/impeccable/references/A11Y-PATTERNS.md +233 -0
  795. package/skills/impeccable/references/WCAG.md +191 -0
  796. package/skills/impeccable/scripts/cleanup-deprecated.mjs +284 -0
  797. package/skills/impeccable/scripts/command-metadata.json +94 -0
  798. package/skills/impeccable/scripts/design-parser.mjs +820 -0
  799. package/skills/impeccable/scripts/detect-csp.mjs +198 -0
  800. package/skills/impeccable/scripts/impeccable-paths.mjs +105 -0
  801. package/skills/impeccable/scripts/is-generated.mjs +69 -0
  802. package/skills/impeccable/scripts/live-accept.mjs +595 -0
  803. package/skills/impeccable/scripts/live-browser-session.js +123 -0
  804. package/skills/impeccable/scripts/live-browser.js +4860 -0
  805. package/skills/impeccable/scripts/live-complete.mjs +75 -0
  806. package/skills/impeccable/scripts/live-completion.mjs +18 -0
  807. package/skills/impeccable/scripts/live-inject.mjs +446 -0
  808. package/skills/impeccable/scripts/live-poll.mjs +200 -0
  809. package/skills/impeccable/scripts/live-resume.mjs +48 -0
  810. package/skills/impeccable/scripts/live-server.mjs +836 -0
  811. package/skills/impeccable/scripts/live-session-store.mjs +254 -0
  812. package/skills/impeccable/scripts/live-status.mjs +47 -0
  813. package/skills/impeccable/scripts/live-wrap.mjs +632 -0
  814. package/skills/impeccable/scripts/live.mjs +247 -0
  815. package/skills/impeccable/scripts/load-context.mjs +141 -0
  816. package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  817. package/skills/impeccable/scripts/pin.mjs +214 -0
  818. package/skills/improve-codebase-architecture/DEEPENING.md +37 -0
  819. package/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +44 -0
  820. package/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
  821. package/skills/improve-codebase-architecture/SKILL.md +331 -0
  822. package/skills/incident-response/SKILL.md +97 -0
  823. package/skills/interview-me/SKILL.md +221 -0
  824. package/skills/knowledge-base-update/SKILL.md +90 -0
  825. package/skills/langchain-rag/SKILL.md +522 -0
  826. package/skills/langchain-rag/agents/verdent.yaml +12 -0
  827. package/skills/langchain-rag/assets/icon-dark.png +0 -0
  828. package/skills/langchain-rag/assets/icon-light.png +0 -0
  829. package/skills/linear/LICENSE.txt +202 -0
  830. package/skills/linear/SKILL.md +102 -0
  831. package/skills/linear/agents/verdent.yaml +7 -0
  832. package/skills/linear/assets/icon-dark.png +0 -0
  833. package/skills/linear/assets/icon-light.png +0 -0
  834. package/skills/linear/assets/linear.png +0 -0
  835. package/skills/localization-hub/ai-batch.md +23 -0
  836. package/skills/localization-hub/key-naming.md +15 -0
  837. package/skills/localization-hub/route-slugs.md +14 -0
  838. package/skills/mcp-builder/LICENSE.txt +202 -0
  839. package/skills/mcp-builder/SKILL.md +260 -0
  840. package/skills/mcp-builder/agents/verdent.yaml +7 -0
  841. package/skills/mcp-builder/assets/icon-dark.png +0 -0
  842. package/skills/mcp-builder/assets/icon-light.png +0 -0
  843. package/skills/mcp-builder/reference/mcp_best_practices.md +269 -0
  844. package/skills/mcp-builder/reference/node_mcp_server.md +980 -0
  845. package/skills/mcp-builder/reference/python_mcp_server.md +737 -0
  846. package/skills/mcp-builder/scripts/connections.py +151 -0
  847. package/skills/netlify-deploy/LICENSE.txt +201 -0
  848. package/skills/netlify-deploy/SKILL.md +261 -0
  849. package/skills/netlify-deploy/agents/verdent.yaml +7 -0
  850. package/skills/netlify-deploy/assets/icon-dark.png +0 -0
  851. package/skills/netlify-deploy/assets/icon-light.png +0 -0
  852. package/skills/netlify-deploy/assets/netlify.png +0 -0
  853. package/skills/netlify-deploy/references/cli-commands.md +162 -0
  854. package/skills/netlify-deploy/references/deployment-patterns.md +319 -0
  855. package/skills/netlify-deploy/references/netlify-toml.md +259 -0
  856. package/skills/nexus-mapper/SKILL.md +314 -0
  857. package/skills/nexus-mapper/references/language-customization.md +164 -0
  858. package/skills/nexus-mapper/references/output-schema.md +298 -0
  859. package/skills/nexus-mapper/references/probe-protocol.md +246 -0
  860. package/skills/nexus-mapper/scripts/extract_ast.py +705 -0
  861. package/skills/nexus-mapper/scripts/git_detective.py +194 -0
  862. package/skills/nexus-mapper/scripts/languages.json +127 -0
  863. package/skills/nexus-mapper/scripts/query_graph.py +556 -0
  864. package/skills/nexus-mapper/scripts/requirements.txt +6 -0
  865. package/skills/notion-spec-to-implementation/LICENSE.txt +7 -0
  866. package/skills/notion-spec-to-implementation/SKILL.md +67 -0
  867. package/skills/notion-spec-to-implementation/agents/verdent.yaml +7 -0
  868. package/skills/notion-spec-to-implementation/assets/icon-dark.png +0 -0
  869. package/skills/notion-spec-to-implementation/assets/icon-light.png +0 -0
  870. package/skills/notion-spec-to-implementation/assets/notion.png +0 -0
  871. package/skills/notion-spec-to-implementation/evaluations/README.md +130 -0
  872. package/skills/notion-spec-to-implementation/evaluations/basic-spec-implementation.json +31 -0
  873. package/skills/notion-spec-to-implementation/evaluations/spec-to-tasks.json +34 -0
  874. package/skills/notion-spec-to-implementation/examples/api-feature.md +511 -0
  875. package/skills/notion-spec-to-implementation/examples/database-migration.md +89 -0
  876. package/skills/notion-spec-to-implementation/examples/ui-component.md +78 -0
  877. package/skills/notion-spec-to-implementation/reference/milestone-summary-template.md +31 -0
  878. package/skills/notion-spec-to-implementation/reference/progress-tracking.md +507 -0
  879. package/skills/notion-spec-to-implementation/reference/progress-update-template.md +29 -0
  880. package/skills/notion-spec-to-implementation/reference/quick-implementation-plan.md +30 -0
  881. package/skills/notion-spec-to-implementation/reference/spec-parsing.md +406 -0
  882. package/skills/notion-spec-to-implementation/reference/standard-implementation-plan.md +170 -0
  883. package/skills/notion-spec-to-implementation/reference/task-creation-template.md +40 -0
  884. package/skills/notion-spec-to-implementation/reference/task-creation.md +467 -0
  885. package/skills/pdf/LICENSE.txt +201 -0
  886. package/skills/pdf/SKILL.md +715 -0
  887. package/skills/pdf/agents/verdent.yaml +9 -0
  888. package/skills/pdf/assets/icon-dark.png +0 -0
  889. package/skills/pdf/assets/icon-light.png +0 -0
  890. package/skills/pdf/assets/pdf.png +0 -0
  891. package/skills/pdf/reference.md +221 -0
  892. package/skills/performance/SKILL.md +400 -0
  893. package/skills/playwright/LICENSE.txt +201 -0
  894. package/skills/playwright/NOTICE.txt +14 -0
  895. package/skills/playwright/SKILL.md +151 -0
  896. package/skills/playwright/agents/verdent.yaml +7 -0
  897. package/skills/playwright/assets/icon-dark.png +0 -0
  898. package/skills/playwright/assets/icon-light.png +0 -0
  899. package/skills/playwright/assets/playwright.png +0 -0
  900. package/skills/playwright/references/cli.md +116 -0
  901. package/skills/playwright/references/workflows.md +95 -0
  902. package/skills/playwright/scripts/playwright_cli.sh +25 -0
  903. package/skills/playwriter/SKILL.md +69 -0
  904. package/skills/playwriter/agents/verdent.yaml +7 -0
  905. package/skills/playwriter/assets/icon-dark.png +0 -0
  906. package/skills/playwriter/assets/icon-light.png +0 -0
  907. package/skills/pptx/SKILL.md +302 -0
  908. package/skills/pptx/agents/verdent.yaml +9 -0
  909. package/skills/pptx/assets/icon-dark.png +0 -0
  910. package/skills/pptx/assets/icon-light.png +0 -0
  911. package/skills/pptx/references/generate-with-js.md +412 -0
  912. package/skills/pptx/references/modify-workflow.md +157 -0
  913. package/skills/pptx/references/python-charts.md +91 -0
  914. package/skills/pptx/scripts/check_env.py +207 -0
  915. package/skills/pptx/scripts/deck.py +161 -0
  916. package/skills/pptx/scripts/internals/__init__.py +0 -0
  917. package/skills/pptx/scripts/internals/cleanup.py +194 -0
  918. package/skills/pptx/scripts/internals/content.py +62 -0
  919. package/skills/pptx/scripts/internals/create.py +122 -0
  920. package/skills/pptx/scripts/internals/gridshot.py +181 -0
  921. package/skills/pptx/scripts/internals/imaging.py +77 -0
  922. package/skills/pptx/scripts/internals/integrity/__init__.py +0 -0
  923. package/skills/pptx/scripts/internals/integrity/checks.py +318 -0
  924. package/skills/pptx/scripts/internals/packaging.py +127 -0
  925. package/skills/pptx/scripts/internals/runtime/__init__.py +0 -0
  926. package/skills/pptx/scripts/internals/runtime/converter.py +154 -0
  927. package/skills/pptx/scripts/internals/structure.py +162 -0
  928. package/skills/pr-creator/SKILL.md +98 -0
  929. package/skills/pr-creator/agents/verdent.yaml +11 -0
  930. package/skills/pr-creator/assets/icon-dark.png +0 -0
  931. package/skills/pr-creator/assets/icon-light.png +0 -0
  932. package/skills/prd/SKILL.md +148 -0
  933. package/skills/prd/agents/verdent.yaml +11 -0
  934. package/skills/prd/assets/icon-dark.png +0 -0
  935. package/skills/prd/assets/icon-light.png +0 -0
  936. package/skills/prismx-skill-gateway/SKILL.md +186 -0
  937. package/skills/prismx-skill-gateway/references/installed-skills.md +38 -0
  938. package/skills/prismx-skills-catalog/SKILL.md +51 -0
  939. package/skills/prismx-skills-catalog/references/inventory.json +1092 -0
  940. package/skills/prompt-enhancer/SKILL.md +90 -0
  941. package/skills/react-native-best-practices/SKILL.md +241 -0
  942. package/skills/react-native-best-practices/agents/verdent.yaml +11 -0
  943. package/skills/react-native-best-practices/assets/icon-dark.png +0 -0
  944. package/skills/react-native-best-practices/assets/icon-light.png +0 -0
  945. package/skills/react-native-best-practices/references/bundle-analyze-app.md +211 -0
  946. package/skills/react-native-best-practices/references/bundle-analyze-js.md +262 -0
  947. package/skills/react-native-best-practices/references/bundle-barrel-exports.md +248 -0
  948. package/skills/react-native-best-practices/references/bundle-code-splitting.md +224 -0
  949. package/skills/react-native-best-practices/references/bundle-hermes-mmap.md +167 -0
  950. package/skills/react-native-best-practices/references/bundle-library-size.md +177 -0
  951. package/skills/react-native-best-practices/references/bundle-native-assets.md +214 -0
  952. package/skills/react-native-best-practices/references/bundle-r8-android.md +225 -0
  953. package/skills/react-native-best-practices/references/bundle-tree-shaking.md +214 -0
  954. package/skills/react-native-best-practices/references/images/bundle-treemap-source-map-explorer.png +0 -0
  955. package/skills/react-native-best-practices/references/images/controlled-textinput-pingpong.png +0 -0
  956. package/skills/react-native-best-practices/references/images/devtools-flamegraph.png +0 -0
  957. package/skills/react-native-best-practices/references/images/emerge-xray-ios.png +0 -0
  958. package/skills/react-native-best-practices/references/images/expo-atlas-treemap.png +0 -0
  959. package/skills/react-native-best-practices/references/images/flashlight-flatlist-vs-flashlist.png +0 -0
  960. package/skills/react-native-best-practices/references/images/fps-drop-graph.png +0 -0
  961. package/skills/react-native-best-practices/references/images/memory-heap-snapshot.png +0 -0
  962. package/skills/react-native-best-practices/references/images/tti-warm-start-diagram.png +0 -0
  963. package/skills/react-native-best-practices/references/images/view-hierarchy-flattening.png +0 -0
  964. package/skills/react-native-best-practices/references/images/xcode-instruments-templates.png +0 -0
  965. package/skills/react-native-best-practices/references/images/xcode-thread-view.png +0 -0
  966. package/skills/react-native-best-practices/references/js-animations-reanimated.md +254 -0
  967. package/skills/react-native-best-practices/references/js-atomic-state.md +245 -0
  968. package/skills/react-native-best-practices/references/js-concurrent-react.md +236 -0
  969. package/skills/react-native-best-practices/references/js-lists-flatlist-flashlist.md +236 -0
  970. package/skills/react-native-best-practices/references/js-measure-fps.md +180 -0
  971. package/skills/react-native-best-practices/references/js-memory-leaks.md +205 -0
  972. package/skills/react-native-best-practices/references/js-profile-react.md +161 -0
  973. package/skills/react-native-best-practices/references/js-react-compiler.md +368 -0
  974. package/skills/react-native-best-practices/references/js-uncontrolled-components.md +216 -0
  975. package/skills/react-native-best-practices/references/native-android-16kb-alignment.md +113 -0
  976. package/skills/react-native-best-practices/references/native-measure-tti.md +262 -0
  977. package/skills/react-native-best-practices/references/native-memory-leaks.md +240 -0
  978. package/skills/react-native-best-practices/references/native-memory-patterns.md +274 -0
  979. package/skills/react-native-best-practices/references/native-platform-setup.md +110 -0
  980. package/skills/react-native-best-practices/references/native-profiling.md +176 -0
  981. package/skills/react-native-best-practices/references/native-sdks-over-polyfills.md +183 -0
  982. package/skills/react-native-best-practices/references/native-threading-model.md +234 -0
  983. package/skills/react-native-best-practices/references/native-turbo-modules.md +292 -0
  984. package/skills/react-native-best-practices/references/native-view-flattening.md +201 -0
  985. package/skills/redis-development/FULL_GUIDE.md +2216 -0
  986. package/skills/redis-development/SKILL.md +124 -0
  987. package/skills/redis-development/agents/verdent.yaml +12 -0
  988. package/skills/redis-development/assets/icon-dark.png +0 -0
  989. package/skills/redis-development/assets/icon-light.png +0 -0
  990. package/skills/redis-development/assets/logo.png +0 -0
  991. package/skills/redis-development/rules/_contributing.md +97 -0
  992. package/skills/redis-development/rules/_sections.md +50 -0
  993. package/skills/redis-development/rules/_template.md +52 -0
  994. package/skills/redis-development/rules/cluster-hash-tags.md +78 -0
  995. package/skills/redis-development/rules/cluster-read-replicas.md +55 -0
  996. package/skills/redis-development/rules/conn-blocking.md +75 -0
  997. package/skills/redis-development/rules/conn-client-cache.md +70 -0
  998. package/skills/redis-development/rules/conn-pipelining.md +58 -0
  999. package/skills/redis-development/rules/conn-pooling.md +71 -0
  1000. package/skills/redis-development/rules/conn-timeouts.md +41 -0
  1001. package/skills/redis-development/rules/data-choose-structure.md +76 -0
  1002. package/skills/redis-development/rules/data-hash-field-expiry.md +62 -0
  1003. package/skills/redis-development/rules/data-incr.md +76 -0
  1004. package/skills/redis-development/rules/data-key-naming.md +62 -0
  1005. package/skills/redis-development/rules/data-transactions.md +74 -0
  1006. package/skills/redis-development/rules/json-partial-updates.md +49 -0
  1007. package/skills/redis-development/rules/json-vs-hash.md +105 -0
  1008. package/skills/redis-development/rules/observe-commands.md +53 -0
  1009. package/skills/redis-development/rules/observe-metrics.md +39 -0
  1010. package/skills/redis-development/rules/ram-limits.md +42 -0
  1011. package/skills/redis-development/rules/ram-ttl.md +55 -0
  1012. package/skills/redis-development/rules/rqe-dialect.md +47 -0
  1013. package/skills/redis-development/rules/rqe-field-types.md +81 -0
  1014. package/skills/redis-development/rules/rqe-index-creation.md +73 -0
  1015. package/skills/redis-development/rules/rqe-index-management.md +49 -0
  1016. package/skills/redis-development/rules/rqe-query-optimization.md +49 -0
  1017. package/skills/redis-development/rules/rqe-skip-initial-scan.md +82 -0
  1018. package/skills/redis-development/rules/security-acls.md +41 -0
  1019. package/skills/redis-development/rules/security-auth.md +78 -0
  1020. package/skills/redis-development/rules/security-network.md +52 -0
  1021. package/skills/redis-development/rules/semantic-cache-best-practices.md +72 -0
  1022. package/skills/redis-development/rules/semantic-cache-langcache-usage.md +86 -0
  1023. package/skills/redis-development/rules/stream-choosing-pattern.md +44 -0
  1024. package/skills/redis-development/rules/vector-algorithm-choice.md +60 -0
  1025. package/skills/redis-development/rules/vector-hybrid-search.md +49 -0
  1026. package/skills/redis-development/rules/vector-index-creation.md +83 -0
  1027. package/skills/redis-development/rules/vector-rag-pattern.md +51 -0
  1028. package/skills/refactor/agents/verdent.yaml +11 -0
  1029. package/skills/refactor/assets/icon-dark.png +0 -0
  1030. package/skills/refactor/assets/icon-light.png +0 -0
  1031. package/skills/runtime-inspector/SKILL.md +99 -0
  1032. package/skills/schema-markup/SKILL.md +179 -0
  1033. package/skills/schema-markup/evals/evals.json +87 -0
  1034. package/skills/schema-markup/references/schema-examples.md +398 -0
  1035. package/skills/screenshot/LICENSE.txt +201 -0
  1036. package/skills/screenshot/SKILL.md +271 -0
  1037. package/skills/screenshot/agents/verdent.yaml +7 -0
  1038. package/skills/screenshot/assets/icon-dark.png +0 -0
  1039. package/skills/screenshot/assets/icon-light.png +0 -0
  1040. package/skills/screenshot/assets/screenshot.png +0 -0
  1041. package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
  1042. package/skills/screenshot/scripts/macos_display_info.swift +22 -0
  1043. package/skills/screenshot/scripts/macos_permissions.swift +40 -0
  1044. package/skills/screenshot/scripts/macos_window_info.swift +126 -0
  1045. package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
  1046. package/skills/screenshot/scripts/take_screenshot.py +585 -0
  1047. package/skills/security-and-hardening/SKILL.md +349 -0
  1048. package/skills/security-best-practices/LICENSE.txt +201 -0
  1049. package/skills/security-best-practices/SKILL.md +91 -0
  1050. package/skills/security-best-practices/agents/verdent.yaml +7 -0
  1051. package/skills/security-best-practices/assets/icon-dark.png +0 -0
  1052. package/skills/security-best-practices/assets/icon-light.png +0 -0
  1053. package/skills/security-best-practices/references/golang-general-backend-security.md +988 -0
  1054. package/skills/security-best-practices/references/javascript-express-web-server-security.md +1151 -0
  1055. package/skills/security-best-practices/references/javascript-general-web-frontend-security.md +725 -0
  1056. package/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +672 -0
  1057. package/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1138 -0
  1058. package/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +975 -0
  1059. package/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +789 -0
  1060. package/skills/security-best-practices/references/python-django-web-server-security.md +880 -0
  1061. package/skills/security-best-practices/references/python-fastapi-web-server-security.md +1030 -0
  1062. package/skills/security-best-practices/references/python-flask-web-server-security.md +835 -0
  1063. package/skills/security-ownership-map/LICENSE.txt +201 -0
  1064. package/skills/security-ownership-map/SKILL.md +212 -0
  1065. package/skills/security-ownership-map/agents/verdent.yaml +12 -0
  1066. package/skills/security-ownership-map/assets/icon-dark.png +0 -0
  1067. package/skills/security-ownership-map/assets/icon-light.png +0 -0
  1068. package/skills/security-ownership-map/references/neo4j-import.md +60 -0
  1069. package/skills/security-ownership-map/scripts/build_ownership_map.py +956 -0
  1070. package/skills/security-ownership-map/scripts/community_maintainers.py +544 -0
  1071. package/skills/security-ownership-map/scripts/query_ownership.py +483 -0
  1072. package/skills/security-ownership-map/scripts/run_ownership_map.py +200 -0
  1073. package/skills/security-threat-model/LICENSE.txt +201 -0
  1074. package/skills/security-threat-model/SKILL.md +94 -0
  1075. package/skills/security-threat-model/agents/verdent.yaml +7 -0
  1076. package/skills/security-threat-model/assets/icon-dark.png +0 -0
  1077. package/skills/security-threat-model/assets/icon-light.png +0 -0
  1078. package/skills/security-threat-model/references/prompt-template.md +254 -0
  1079. package/skills/security-threat-model/references/security-controls-and-assets.md +35 -0
  1080. package/skills/seo-audit/SKILL.md +527 -0
  1081. package/skills/seo-audit/evals/evals.json +136 -0
  1082. package/skills/seo-audit/references/ai-writing-detection.md +200 -0
  1083. package/skills/seo-audit/references/international-seo.md +230 -0
  1084. package/skills/sequential-thinking/SKILL.md +224 -0
  1085. package/skills/session-context-primer/SKILL.md +69 -0
  1086. package/skills/shipping-and-launch/SKILL.md +309 -0
  1087. package/skills/source-driven-development/SKILL.md +194 -0
  1088. package/skills/spec-writer/SKILL.md +200 -0
  1089. package/skills/speech/LICENSE.txt +201 -0
  1090. package/skills/speech/SKILL.md +150 -0
  1091. package/skills/speech/agents/verdent.yaml +12 -0
  1092. package/skills/speech/assets/icon-dark.png +0 -0
  1093. package/skills/speech/assets/icon-light.png +0 -0
  1094. package/skills/speech/assets/speech-small.svg +3 -0
  1095. package/skills/speech/assets/speech.png +0 -0
  1096. package/skills/speech/references/accessibility.md +32 -0
  1097. package/skills/speech/references/audio-api.md +31 -0
  1098. package/skills/speech/references/cli.md +99 -0
  1099. package/skills/speech/references/ivr.md +32 -0
  1100. package/skills/speech/references/narration.md +31 -0
  1101. package/skills/speech/references/network-notes.md +28 -0
  1102. package/skills/speech/references/prompting.md +38 -0
  1103. package/skills/speech/references/sample-prompts.md +44 -0
  1104. package/skills/speech/references/voice-directions.md +80 -0
  1105. package/skills/speech/references/voiceover.md +31 -0
  1106. package/skills/speech/scripts/text_to_speech.py +528 -0
  1107. package/skills/system-architect/SKILL.md +677 -0
  1108. package/skills/system-designer/SKILL.md +601 -0
  1109. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  1110. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  1111. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  1112. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  1113. package/skills/systematic-debugging/find-polluter.sh +63 -0
  1114. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  1115. package/skills/systematic-debugging/test-academic.md +14 -0
  1116. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  1117. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  1118. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  1119. package/skills/task-planner/SKILL.md +699 -0
  1120. package/skills/task-reviewer/SKILL.md +387 -0
  1121. package/skills/task-skill-router/SKILL.md +105 -0
  1122. package/skills/tech-evaluator/SKILL.md +181 -0
  1123. package/skills/tech-evaluator/references/ADR_TEMPLATE.md +80 -0
  1124. package/skills/tech-evaluator/scripts/evaluate_matrix.py +190 -0
  1125. package/skills/test-driven-development/SKILL.md +383 -0
  1126. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  1127. package/skills/theme-factory/LICENSE.txt +202 -0
  1128. package/skills/theme-factory/SKILL.md +64 -0
  1129. package/skills/theme-factory/agents/verdent.yaml +11 -0
  1130. package/skills/theme-factory/assets/icon-dark.png +0 -0
  1131. package/skills/theme-factory/assets/icon-light.png +0 -0
  1132. package/skills/theme-factory/theme-showcase.pdf +0 -0
  1133. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  1134. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  1135. package/skills/theme-factory/themes/desert-rose.md +19 -0
  1136. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  1137. package/skills/theme-factory/themes/golden-hour.md +19 -0
  1138. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  1139. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  1140. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  1141. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  1142. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  1143. package/skills/transcribe/LICENSE.txt +201 -0
  1144. package/skills/transcribe/SKILL.md +86 -0
  1145. package/skills/transcribe/agents/verdent.yaml +12 -0
  1146. package/skills/transcribe/assets/icon-dark.png +0 -0
  1147. package/skills/transcribe/assets/icon-light.png +0 -0
  1148. package/skills/transcribe/assets/transcribe-small.svg +3 -0
  1149. package/skills/transcribe/assets/transcribe.png +0 -0
  1150. package/skills/transcribe/references/api.md +8 -0
  1151. package/skills/transcribe/scripts/transcribe_diarize.py +276 -0
  1152. package/skills/vercel-composition-patterns/FULL_GUIDE.md +946 -0
  1153. package/skills/vercel-composition-patterns/SKILL.md +92 -0
  1154. package/skills/vercel-composition-patterns/agents/verdent.yaml +12 -0
  1155. package/skills/vercel-composition-patterns/assets/icon-dark.png +0 -0
  1156. package/skills/vercel-composition-patterns/assets/icon-light.png +0 -0
  1157. package/skills/vercel-composition-patterns/rules/_sections.md +29 -0
  1158. package/skills/vercel-composition-patterns/rules/_template.md +24 -0
  1159. package/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  1160. package/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  1161. package/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  1162. package/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  1163. package/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  1164. package/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  1165. package/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  1166. package/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  1167. package/skills/vercel-deploy/LICENSE.txt +21 -0
  1168. package/skills/vercel-deploy/SKILL.md +75 -0
  1169. package/skills/vercel-deploy/agents/verdent.yaml +7 -0
  1170. package/skills/vercel-deploy/assets/icon-dark.png +0 -0
  1171. package/skills/vercel-deploy/assets/icon-light.png +0 -0
  1172. package/skills/vercel-deploy/assets/vercel.png +0 -0
  1173. package/skills/vercel-deploy/scripts/deploy.sh +301 -0
  1174. package/skills/vercel-react-best-practices/FULL_GUIDE.md +3254 -0
  1175. package/skills/vercel-react-best-practices/SKILL.md +144 -0
  1176. package/skills/vercel-react-best-practices/agents/verdent.yaml +12 -0
  1177. package/skills/vercel-react-best-practices/assets/icon-dark.png +0 -0
  1178. package/skills/vercel-react-best-practices/assets/icon-light.png +0 -0
  1179. package/skills/vercel-react-best-practices/rules/_sections.md +46 -0
  1180. package/skills/vercel-react-best-practices/rules/_template.md +28 -0
  1181. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  1182. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  1183. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  1184. package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  1185. package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  1186. package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  1187. package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  1188. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  1189. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  1190. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  1191. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  1192. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  1193. package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  1194. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  1195. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  1196. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  1197. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  1198. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  1199. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  1200. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  1201. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  1202. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  1203. package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  1204. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +60 -0
  1205. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  1206. package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  1207. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  1208. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  1209. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  1210. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  1211. package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  1212. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  1213. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  1214. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  1215. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  1216. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  1217. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  1218. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +85 -0
  1219. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +68 -0
  1220. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  1221. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  1222. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  1223. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  1224. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  1225. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  1226. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  1227. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  1228. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  1229. package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  1230. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  1231. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +82 -0
  1232. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  1233. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  1234. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  1235. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  1236. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  1237. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  1238. package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  1239. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  1240. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
  1241. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  1242. package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  1243. package/skills/verdent-image-cli/SKILL.md +218 -0
  1244. package/skills/verdent-image-cli/agents/verdent.yaml +11 -0
  1245. package/skills/verdent-image-cli/assets/icon-dark.png +0 -0
  1246. package/skills/verdent-image-cli/assets/icon-light.png +0 -0
  1247. package/skills/verdent-skills-catalog/SKILL.md +72 -0
  1248. package/skills/verdent-skills-catalog/references/categories.json +158 -0
  1249. package/skills/verdent-skills-catalog/references/inventory.json +493 -0
  1250. package/skills/verification-before-completion/SKILL.md +139 -0
  1251. package/skills/web-quality-audit/SKILL.md +172 -0
  1252. package/skills/web-quality-audit/scripts/analyze.sh +113 -0
  1253. package/skills/webapp-testing/LICENSE.txt +202 -0
  1254. package/skills/webapp-testing/SKILL.md +302 -0
  1255. package/skills/webapp-testing/examples/console_logging.py +35 -0
  1256. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  1257. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  1258. package/skills/webapp-testing/scripts/with_server.py +110 -0
  1259. package/skills/workers-best-practices/SKILL.md +132 -0
  1260. package/skills/workers-best-practices/agents/verdent.yaml +11 -0
  1261. package/skills/workers-best-practices/assets/icon-dark.png +0 -0
  1262. package/skills/workers-best-practices/assets/icon-light.png +0 -0
  1263. package/skills/workers-best-practices/references/review.md +174 -0
  1264. package/skills/workers-best-practices/references/rules.md +463 -0
  1265. package/skills/xlsx/SKILL.md +318 -0
  1266. package/skills/xlsx/agents/verdent.yaml +9 -0
  1267. package/skills/xlsx/assets/icon-dark.png +0 -0
  1268. package/skills/xlsx/assets/icon-light.png +0 -0
  1269. package/skills/xlsx/assets/spreadsheet.png +0 -0
  1270. package/skills/xlsx/references/advanced-analysis.md +272 -0
  1271. package/skills/xlsx/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
  1272. package/skills/xlsx/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
  1273. package/skills/xlsx/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
  1274. package/skills/xlsx/references/examples/openpyxl/styling_spreadsheet.py +79 -0
  1275. package/skills/xlsx/scripts/formula_engine.py +219 -0
  1276. package/skills/xlsx/scripts/profile.py +62 -0
  1277. package/src/commands/doctor.js +9 -0
  1278. package/src/commands/feedback.js +29 -0
  1279. package/src/commands/init.js +39 -3
  1280. package/src/commands/pipeline.js +31 -0
  1281. package/src/commands/providers.js +54 -0
  1282. package/src/commands/recover.js +62 -0
  1283. package/src/commands/route.js +7 -0
  1284. package/src/commands/scaffold.js +7 -1
  1285. package/src/commands/skill.js +141 -0
  1286. package/src/commands/stack.js +97 -0
  1287. package/src/commands/ui.js +50 -0
  1288. package/src/commands/upgrade.js +2 -2
  1289. package/src/lib/audit.js +9 -1
  1290. package/src/lib/capability-router.js +4 -3
  1291. package/src/lib/contract.js +58 -0
  1292. package/src/lib/disabled-skills.js +86 -0
  1293. package/src/lib/doctor.js +100 -3
  1294. package/src/lib/env-flags.js +35 -0
  1295. package/src/lib/execution-policy.js +80 -4
  1296. package/src/lib/explanation-plain.js +72 -0
  1297. package/src/lib/explanation.js +183 -0
  1298. package/src/lib/feedback.js +65 -0
  1299. package/src/lib/i18n.js +43 -0
  1300. package/src/lib/ide-sync.js +4 -3
  1301. package/src/lib/pipeline.js +68 -0
  1302. package/src/lib/providers/doctor.js +205 -0
  1303. package/src/lib/recover.js +93 -0
  1304. package/src/lib/registry.js +79 -0
  1305. package/src/lib/route-engine.js +21 -1
  1306. package/src/lib/scaffold/index.js +24 -7
  1307. package/src/lib/scaffold/presets.js +213 -24
  1308. package/src/lib/skill-audit.js +141 -0
  1309. package/src/lib/stack/index.js +259 -0
  1310. package/src/lib/ui-server.js +226 -0
  1311. package/src/lib/upgrade-matrix.js +16 -1
  1312. package/src/lib/workspace-boundary.js +60 -0
  1313. package/templates/minimal/AGENT.md +10 -1
  1314. package/templates/minimal/DONE.md +10 -0
  1315. package/templates/minimal/GUNLUK.md +26 -0
  1316. package/templates/minimal/docs/conventions/daily-use.md +132 -0
  1317. package/templates/minimal/docs/conventions/task-to-capability-cheatsheet.md +29 -0
  1318. package/templates/minimal/docs/kullanim-kilavuzu.md +374 -0
  1319. package/ui/app.js +257 -0
  1320. package/ui/index.html +96 -0
  1321. package/ui/styles.css +227 -0
  1322. package/workflows/audit.md +143 -0
  1323. package/workflows/blueprint.md +374 -0
  1324. package/workflows/challenge.md +322 -0
  1325. package/workflows/change.md +162 -0
  1326. package/workflows/craft.md +135 -0
  1327. package/workflows/design-system.md +248 -0
  1328. package/workflows/explore.md +226 -0
  1329. package/workflows/forge.md +570 -34
  1330. package/workflows/genesis.md +307 -0
  1331. package/workflows/ingest.md +145 -0
  1332. package/workflows/init.md +216 -0
  1333. package/workflows/probe.md +181 -0
  1334. package/workflows/query-to-page.md +134 -0
  1335. package/workflows/quickstart.md +111 -0
  1336. package/workflows/retro.md +78 -0
  1337. package/workflows/upgrade.md +146 -0
  1338. package/workflows/wiki-lint.md +159 -0
  1339. package/templates/bundle/skills/capability-router/SKILL.md +0 -12
  1340. package/templates/bundle/skills/context-memory-bridge/SKILL.md +0 -17
  1341. package/templates/bundle/skills/localization-hub/SKILL.md +0 -17
  1342. package/templates/bundle/skills/refactor/SKILL.md +0 -17
  1343. package/templates/bundle/skills/systematic-debugging/SKILL.md +0 -19
  1344. package/templates/bundle/workflows/forge.md +0 -51
@@ -0,0 +1,980 @@
1
+ # Node/TypeScript MCP Server Implementation Guide
2
+
3
+ ## Overview
4
+
5
+ This document provides Node/TypeScript-specific best practices and examples for implementing MCP servers using the MCP TypeScript SDK. It covers project structure, server setup, tool registration patterns, input validation with Zod, error handling, and complete working examples.
6
+
7
+ ---
8
+
9
+ ## Quick Reference
10
+
11
+ ### Key Imports
12
+
13
+ ```typescript
14
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
15
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
16
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
17
+ import express from 'express';
18
+ import { z } from 'zod';
19
+ ```
20
+
21
+ ### Server Initialization
22
+
23
+ ```typescript
24
+ const server = new McpServer({
25
+ name: 'service-mcp-server',
26
+ version: '1.0.0',
27
+ });
28
+ ```
29
+
30
+ ### Tool Registration Pattern
31
+
32
+ ```typescript
33
+ server.registerTool(
34
+ 'tool_name',
35
+ {
36
+ title: 'Tool Display Name',
37
+ description: 'What the tool does',
38
+ inputSchema: { param: z.string() },
39
+ outputSchema: { result: z.string() },
40
+ },
41
+ async ({ param }) => {
42
+ const output = { result: `Processed: ${param}` };
43
+ return {
44
+ content: [{ type: 'text', text: JSON.stringify(output) }],
45
+ structuredContent: output, // Modern pattern for structured data
46
+ };
47
+ },
48
+ );
49
+ ```
50
+
51
+ ---
52
+
53
+ ## MCP TypeScript SDK
54
+
55
+ The official MCP TypeScript SDK provides:
56
+
57
+ - `McpServer` class for server initialization
58
+ - `registerTool` method for tool registration
59
+ - Zod schema integration for runtime input validation
60
+ - Type-safe tool handler implementations
61
+
62
+ **IMPORTANT - Use Modern APIs Only:**
63
+
64
+ - **DO use**: `server.registerTool()`, `server.registerResource()`, `server.registerPrompt()`
65
+ - **DO NOT use**: Old deprecated APIs such as `server.tool()`, `server.setRequestHandler(ListToolsRequestSchema, ...)`, or manual handler registration
66
+ - The `register*` methods provide better type safety, automatic schema handling, and are the recommended approach
67
+
68
+ See the MCP SDK documentation in the references for complete details.
69
+
70
+ ## Server Naming Convention
71
+
72
+ Node/TypeScript MCP servers must follow this naming pattern:
73
+
74
+ - **Format**: `{service}-mcp-server` (lowercase with hyphens)
75
+ - **Examples**: `github-mcp-server`, `jira-mcp-server`, `stripe-mcp-server`
76
+
77
+ The name should be:
78
+
79
+ - General (not tied to specific features)
80
+ - Descriptive of the service/API being integrated
81
+ - Easy to infer from the task description
82
+ - Without version numbers or dates
83
+
84
+ ## Project Structure
85
+
86
+ Create the following structure for Node/TypeScript MCP servers:
87
+
88
+ ```
89
+ {service}-mcp-server/
90
+ ├── package.json
91
+ ├── tsconfig.json
92
+ ├── README.md
93
+ ├── src/
94
+ │ ├── index.ts # Main entry point with McpServer initialization
95
+ │ ├── types.ts # TypeScript type definitions and interfaces
96
+ │ ├── tools/ # Tool implementations (one file per domain)
97
+ │ ├── services/ # API clients and shared utilities
98
+ │ ├── schemas/ # Zod validation schemas
99
+ │ └── constants.ts # Shared constants (API_URL, CHARACTER_LIMIT, etc.)
100
+ └── dist/ # Built JavaScript files (entry point: dist/index.js)
101
+ ```
102
+
103
+ ## Tool Implementation
104
+
105
+ ### Tool Naming
106
+
107
+ Use snake_case for tool names (e.g., "search_users", "create_project", "get_channel_info") with clear, action-oriented names.
108
+
109
+ **Avoid Naming Conflicts**: Include the service context to prevent overlaps:
110
+
111
+ - Use "slack_send_message" instead of just "send_message"
112
+ - Use "github_create_issue" instead of just "create_issue"
113
+ - Use "asana_list_tasks" instead of just "list_tasks"
114
+
115
+ ### Tool Structure
116
+
117
+ Tools are registered using the `registerTool` method with the following requirements:
118
+
119
+ - Use Zod schemas for runtime input validation and type safety
120
+ - The `description` field must be explicitly provided - JSDoc comments are NOT automatically extracted
121
+ - Explicitly provide `title`, `description`, `inputSchema`, and `annotations`
122
+ - The `inputSchema` must be a Zod schema object (not a JSON schema)
123
+ - Type all parameters and return values explicitly
124
+
125
+ ```typescript
126
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
127
+ import { z } from 'zod';
128
+
129
+ const server = new McpServer({
130
+ name: 'example-mcp',
131
+ version: '1.0.0',
132
+ });
133
+
134
+ // Zod schema for input validation
135
+ const UserSearchInputSchema = z
136
+ .object({
137
+ query: z
138
+ .string()
139
+ .min(2, 'Query must be at least 2 characters')
140
+ .max(200, 'Query must not exceed 200 characters')
141
+ .describe('Search string to match against names/emails'),
142
+ limit: z.number().int().min(1).max(100).default(20).describe('Maximum results to return'),
143
+ offset: z.number().int().min(0).default(0).describe('Number of results to skip for pagination'),
144
+ response_format: z
145
+ .nativeEnum(ResponseFormat)
146
+ .default(ResponseFormat.MARKDOWN)
147
+ .describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
148
+ })
149
+ .strict();
150
+
151
+ // Type definition from Zod schema
152
+ type UserSearchInput = z.infer<typeof UserSearchInputSchema>;
153
+
154
+ server.registerTool(
155
+ 'example_search_users',
156
+ {
157
+ title: 'Search Example Users',
158
+ description: `Search for users in the Example system by name, email, or team.
159
+
160
+ This tool searches across all user profiles in the Example platform, supporting partial matches and various search filters. It does NOT create or modify users, only searches existing ones.
161
+
162
+ Args:
163
+ - query (string): Search string to match against names/emails
164
+ - limit (number): Maximum results to return, between 1-100 (default: 20)
165
+ - offset (number): Number of results to skip for pagination (default: 0)
166
+ - response_format ('markdown' | 'json'): Output format (default: 'markdown')
167
+
168
+ Returns:
169
+ For JSON format: Structured data with schema:
170
+ {
171
+ "total": number, // Total number of matches found
172
+ "count": number, // Number of results in this response
173
+ "offset": number, // Current pagination offset
174
+ "users": [
175
+ {
176
+ "id": string, // User ID (e.g., "U123456789")
177
+ "name": string, // Full name (e.g., "John Doe")
178
+ "email": string, // Email address
179
+ "team": string, // Team name (optional)
180
+ "active": boolean // Whether user is active
181
+ }
182
+ ],
183
+ "has_more": boolean, // Whether more results are available
184
+ "next_offset": number // Offset for next page (if has_more is true)
185
+ }
186
+
187
+ Examples:
188
+ - Use when: "Find all marketing team members" -> params with query="team:marketing"
189
+ - Use when: "Search for John's account" -> params with query="john"
190
+ - Don't use when: You need to create a user (use example_create_user instead)
191
+
192
+ Error Handling:
193
+ - Returns "Error: Rate limit exceeded" if too many requests (429 status)
194
+ - Returns "No users found matching '<query>'" if search returns empty`,
195
+ inputSchema: UserSearchInputSchema,
196
+ annotations: {
197
+ readOnlyHint: true,
198
+ destructiveHint: false,
199
+ idempotentHint: true,
200
+ openWorldHint: true,
201
+ },
202
+ },
203
+ async (params: UserSearchInput) => {
204
+ try {
205
+ // Input validation is handled by Zod schema
206
+ // Make API request using validated parameters
207
+ const data = await makeApiRequest<any>('users/search', 'GET', undefined, {
208
+ q: params.query,
209
+ limit: params.limit,
210
+ offset: params.offset,
211
+ });
212
+
213
+ const users = data.users || [];
214
+ const total = data.total || 0;
215
+
216
+ if (!users.length) {
217
+ return {
218
+ content: [
219
+ {
220
+ type: 'text',
221
+ text: `No users found matching '${params.query}'`,
222
+ },
223
+ ],
224
+ };
225
+ }
226
+
227
+ // Prepare structured output
228
+ const output = {
229
+ total,
230
+ count: users.length,
231
+ offset: params.offset,
232
+ users: users.map((user: any) => ({
233
+ id: user.id,
234
+ name: user.name,
235
+ email: user.email,
236
+ ...(user.team ? { team: user.team } : {}),
237
+ active: user.active ?? true,
238
+ })),
239
+ has_more: total > params.offset + users.length,
240
+ ...(total > params.offset + users.length
241
+ ? {
242
+ next_offset: params.offset + users.length,
243
+ }
244
+ : {}),
245
+ };
246
+
247
+ // Format text representation based on requested format
248
+ let textContent: string;
249
+ if (params.response_format === ResponseFormat.MARKDOWN) {
250
+ const lines = [
251
+ `# User Search Results: '${params.query}'`,
252
+ '',
253
+ `Found ${total} users (showing ${users.length})`,
254
+ '',
255
+ ];
256
+ for (const user of users) {
257
+ lines.push(`## ${user.name} (${user.id})`);
258
+ lines.push(`- **Email**: ${user.email}`);
259
+ if (user.team) lines.push(`- **Team**: ${user.team}`);
260
+ lines.push('');
261
+ }
262
+ textContent = lines.join('\n');
263
+ } else {
264
+ textContent = JSON.stringify(output, null, 2);
265
+ }
266
+
267
+ return {
268
+ content: [{ type: 'text', text: textContent }],
269
+ structuredContent: output, // Modern pattern for structured data
270
+ };
271
+ } catch (error) {
272
+ return {
273
+ content: [
274
+ {
275
+ type: 'text',
276
+ text: handleApiError(error),
277
+ },
278
+ ],
279
+ };
280
+ }
281
+ },
282
+ );
283
+ ```
284
+
285
+ ## Zod Schemas for Input Validation
286
+
287
+ Zod provides runtime type validation:
288
+
289
+ ```typescript
290
+ import { z } from 'zod';
291
+
292
+ // Basic schema with validation
293
+ const CreateUserSchema = z
294
+ .object({
295
+ name: z.string().min(1, 'Name is required').max(100, 'Name must not exceed 100 characters'),
296
+ email: z.string().email('Invalid email format'),
297
+ age: z
298
+ .number()
299
+ .int('Age must be a whole number')
300
+ .min(0, 'Age cannot be negative')
301
+ .max(150, 'Age cannot be greater than 150'),
302
+ })
303
+ .strict(); // Use .strict() to forbid extra fields
304
+
305
+ // Enums
306
+ enum ResponseFormat {
307
+ MARKDOWN = 'markdown',
308
+ JSON = 'json',
309
+ }
310
+
311
+ const SearchSchema = z.object({
312
+ response_format: z
313
+ .nativeEnum(ResponseFormat)
314
+ .default(ResponseFormat.MARKDOWN)
315
+ .describe('Output format'),
316
+ });
317
+
318
+ // Optional fields with defaults
319
+ const PaginationSchema = z.object({
320
+ limit: z.number().int().min(1).max(100).default(20).describe('Maximum results to return'),
321
+ offset: z.number().int().min(0).default(0).describe('Number of results to skip'),
322
+ });
323
+ ```
324
+
325
+ ## Response Format Options
326
+
327
+ Support multiple output formats for flexibility:
328
+
329
+ ```typescript
330
+ enum ResponseFormat {
331
+ MARKDOWN = 'markdown',
332
+ JSON = 'json',
333
+ }
334
+
335
+ const inputSchema = z.object({
336
+ query: z.string(),
337
+ response_format: z
338
+ .nativeEnum(ResponseFormat)
339
+ .default(ResponseFormat.MARKDOWN)
340
+ .describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
341
+ });
342
+ ```
343
+
344
+ **Markdown format**:
345
+
346
+ - Use headers, lists, and formatting for clarity
347
+ - Convert timestamps to human-readable format
348
+ - Show display names with IDs in parentheses
349
+ - Omit verbose metadata
350
+ - Group related information logically
351
+
352
+ **JSON format**:
353
+
354
+ - Return complete, structured data suitable for programmatic processing
355
+ - Include all available fields and metadata
356
+ - Use consistent field names and types
357
+
358
+ ## Pagination Implementation
359
+
360
+ For tools that list resources:
361
+
362
+ ```typescript
363
+ const ListSchema = z.object({
364
+ limit: z.number().int().min(1).max(100).default(20),
365
+ offset: z.number().int().min(0).default(0),
366
+ });
367
+
368
+ async function listItems(params: z.infer<typeof ListSchema>) {
369
+ const data = await apiRequest(params.limit, params.offset);
370
+
371
+ const response = {
372
+ total: data.total,
373
+ count: data.items.length,
374
+ offset: params.offset,
375
+ items: data.items,
376
+ has_more: data.total > params.offset + data.items.length,
377
+ next_offset:
378
+ data.total > params.offset + data.items.length
379
+ ? params.offset + data.items.length
380
+ : undefined,
381
+ };
382
+
383
+ return JSON.stringify(response, null, 2);
384
+ }
385
+ ```
386
+
387
+ ## Character Limits and Truncation
388
+
389
+ Add a CHARACTER_LIMIT constant to prevent overwhelming responses:
390
+
391
+ ```typescript
392
+ // At module level in constants.ts
393
+ export const CHARACTER_LIMIT = 25000; // Maximum response size in characters
394
+
395
+ async function searchTool(params: SearchInput) {
396
+ let result = generateResponse(data);
397
+
398
+ // Check character limit and truncate if needed
399
+ if (result.length > CHARACTER_LIMIT) {
400
+ const truncatedData = data.slice(0, Math.max(1, data.length / 2));
401
+ response.data = truncatedData;
402
+ response.truncated = true;
403
+ response.truncation_message =
404
+ `Response truncated from ${data.length} to ${truncatedData.length} items. ` +
405
+ `Use 'offset' parameter or add filters to see more results.`;
406
+ result = JSON.stringify(response, null, 2);
407
+ }
408
+
409
+ return result;
410
+ }
411
+ ```
412
+
413
+ ## Error Handling
414
+
415
+ Provide clear, actionable error messages:
416
+
417
+ ```typescript
418
+ import axios, { AxiosError } from 'axios';
419
+
420
+ function handleApiError(error: unknown): string {
421
+ if (error instanceof AxiosError) {
422
+ if (error.response) {
423
+ switch (error.response.status) {
424
+ case 404:
425
+ return 'Error: Resource not found. Please check the ID is correct.';
426
+ case 403:
427
+ return "Error: Permission denied. You don't have access to this resource.";
428
+ case 429:
429
+ return 'Error: Rate limit exceeded. Please wait before making more requests.';
430
+ default:
431
+ return `Error: API request failed with status ${error.response.status}`;
432
+ }
433
+ } else if (error.code === 'ECONNABORTED') {
434
+ return 'Error: Request timed out. Please try again.';
435
+ }
436
+ }
437
+ return `Error: Unexpected error occurred: ${error instanceof Error ? error.message : String(error)}`;
438
+ }
439
+ ```
440
+
441
+ ## Shared Utilities
442
+
443
+ Extract common functionality into reusable functions:
444
+
445
+ ```typescript
446
+ // Shared API request function
447
+ async function makeApiRequest<T>(
448
+ endpoint: string,
449
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' = 'GET',
450
+ data?: any,
451
+ params?: any,
452
+ ): Promise<T> {
453
+ try {
454
+ const response = await axios({
455
+ method,
456
+ url: `${API_BASE_URL}/${endpoint}`,
457
+ data,
458
+ params,
459
+ timeout: 30000,
460
+ headers: {
461
+ 'Content-Type': 'application/json',
462
+ Accept: 'application/json',
463
+ },
464
+ });
465
+ return response.data;
466
+ } catch (error) {
467
+ throw error;
468
+ }
469
+ }
470
+ ```
471
+
472
+ ## Async/Await Best Practices
473
+
474
+ Always use async/await for network requests and I/O operations:
475
+
476
+ ```typescript
477
+ // Good: Async network request
478
+ async function fetchData(resourceId: string): Promise<ResourceData> {
479
+ const response = await axios.get(`${API_URL}/resource/${resourceId}`);
480
+ return response.data;
481
+ }
482
+
483
+ // Bad: Promise chains
484
+ function fetchData(resourceId: string): Promise<ResourceData> {
485
+ return axios.get(`${API_URL}/resource/${resourceId}`).then(response => response.data); // Harder to read and maintain
486
+ }
487
+ ```
488
+
489
+ ## TypeScript Best Practices
490
+
491
+ 1. **Use Strict TypeScript**: Enable strict mode in tsconfig.json
492
+ 2. **Define Interfaces**: Create clear interface definitions for all data structures
493
+ 3. **Avoid `any`**: Use proper types or `unknown` instead of `any`
494
+ 4. **Zod for Runtime Validation**: Use Zod schemas to validate external data
495
+ 5. **Type Guards**: Create type guard functions for complex type checking
496
+ 6. **Error Handling**: Always use try-catch with proper error type checking
497
+ 7. **Null Safety**: Use optional chaining (`?.`) and nullish coalescing (`??`)
498
+
499
+ ```typescript
500
+ // Good: Type-safe with Zod and interfaces
501
+ interface UserResponse {
502
+ id: string;
503
+ name: string;
504
+ email: string;
505
+ team?: string;
506
+ active: boolean;
507
+ }
508
+
509
+ const UserSchema = z.object({
510
+ id: z.string(),
511
+ name: z.string(),
512
+ email: z.string().email(),
513
+ team: z.string().optional(),
514
+ active: z.boolean(),
515
+ });
516
+
517
+ type User = z.infer<typeof UserSchema>;
518
+
519
+ async function getUser(id: string): Promise<User> {
520
+ const data = await apiCall(`/users/${id}`);
521
+ return UserSchema.parse(data); // Runtime validation
522
+ }
523
+
524
+ // Bad: Using any
525
+ async function getUser(id: string): Promise<any> {
526
+ return await apiCall(`/users/${id}`); // No type safety
527
+ }
528
+ ```
529
+
530
+ ## Package Configuration
531
+
532
+ ### package.json
533
+
534
+ ```json
535
+ {
536
+ "name": "{service}-mcp-server",
537
+ "version": "1.0.0",
538
+ "description": "MCP server for {Service} API integration",
539
+ "type": "module",
540
+ "main": "dist/index.js",
541
+ "scripts": {
542
+ "start": "node dist/index.js",
543
+ "dev": "tsx watch src/index.ts",
544
+ "build": "tsc",
545
+ "clean": "rm -rf dist"
546
+ },
547
+ "engines": {
548
+ "node": ">=18"
549
+ },
550
+ "dependencies": {
551
+ "@modelcontextprotocol/sdk": "^1.6.1",
552
+ "axios": "^1.7.9",
553
+ "zod": "^3.23.8"
554
+ },
555
+ "devDependencies": {
556
+ "@types/node": "^22.10.0",
557
+ "tsx": "^4.19.2",
558
+ "typescript": "^5.7.2"
559
+ }
560
+ }
561
+ ```
562
+
563
+ ### tsconfig.json
564
+
565
+ ```json
566
+ {
567
+ "compilerOptions": {
568
+ "target": "ES2022",
569
+ "module": "Node16",
570
+ "moduleResolution": "Node16",
571
+ "lib": ["ES2022"],
572
+ "outDir": "./dist",
573
+ "rootDir": "./src",
574
+ "strict": true,
575
+ "esModuleInterop": true,
576
+ "skipLibCheck": true,
577
+ "forceConsistentCasingInFileNames": true,
578
+ "declaration": true,
579
+ "declarationMap": true,
580
+ "sourceMap": true,
581
+ "allowSyntheticDefaultImports": true
582
+ },
583
+ "include": ["src/**/*"],
584
+ "exclude": ["node_modules", "dist"]
585
+ }
586
+ ```
587
+
588
+ ## Complete Example
589
+
590
+ ```typescript
591
+ #!/usr/bin/env node
592
+ /**
593
+ * MCP Server for Example Service.
594
+ *
595
+ * This server provides tools to interact with Example API, including user search,
596
+ * project management, and data export capabilities.
597
+ */
598
+
599
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
600
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
601
+ import { z } from 'zod';
602
+ import axios, { AxiosError } from 'axios';
603
+
604
+ // Constants
605
+ const API_BASE_URL = 'https://api.example.com/v1';
606
+ const CHARACTER_LIMIT = 25000;
607
+
608
+ // Enums
609
+ enum ResponseFormat {
610
+ MARKDOWN = 'markdown',
611
+ JSON = 'json',
612
+ }
613
+
614
+ // Zod schemas
615
+ const UserSearchInputSchema = z
616
+ .object({
617
+ query: z
618
+ .string()
619
+ .min(2, 'Query must be at least 2 characters')
620
+ .max(200, 'Query must not exceed 200 characters')
621
+ .describe('Search string to match against names/emails'),
622
+ limit: z.number().int().min(1).max(100).default(20).describe('Maximum results to return'),
623
+ offset: z.number().int().min(0).default(0).describe('Number of results to skip for pagination'),
624
+ response_format: z
625
+ .nativeEnum(ResponseFormat)
626
+ .default(ResponseFormat.MARKDOWN)
627
+ .describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
628
+ })
629
+ .strict();
630
+
631
+ type UserSearchInput = z.infer<typeof UserSearchInputSchema>;
632
+
633
+ // Shared utility functions
634
+ async function makeApiRequest<T>(
635
+ endpoint: string,
636
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' = 'GET',
637
+ data?: any,
638
+ params?: any,
639
+ ): Promise<T> {
640
+ try {
641
+ const response = await axios({
642
+ method,
643
+ url: `${API_BASE_URL}/${endpoint}`,
644
+ data,
645
+ params,
646
+ timeout: 30000,
647
+ headers: {
648
+ 'Content-Type': 'application/json',
649
+ Accept: 'application/json',
650
+ },
651
+ });
652
+ return response.data;
653
+ } catch (error) {
654
+ throw error;
655
+ }
656
+ }
657
+
658
+ function handleApiError(error: unknown): string {
659
+ if (error instanceof AxiosError) {
660
+ if (error.response) {
661
+ switch (error.response.status) {
662
+ case 404:
663
+ return 'Error: Resource not found. Please check the ID is correct.';
664
+ case 403:
665
+ return "Error: Permission denied. You don't have access to this resource.";
666
+ case 429:
667
+ return 'Error: Rate limit exceeded. Please wait before making more requests.';
668
+ default:
669
+ return `Error: API request failed with status ${error.response.status}`;
670
+ }
671
+ } else if (error.code === 'ECONNABORTED') {
672
+ return 'Error: Request timed out. Please try again.';
673
+ }
674
+ }
675
+ return `Error: Unexpected error occurred: ${error instanceof Error ? error.message : String(error)}`;
676
+ }
677
+
678
+ // Create MCP server instance
679
+ const server = new McpServer({
680
+ name: 'example-mcp',
681
+ version: '1.0.0',
682
+ });
683
+
684
+ // Register tools
685
+ server.registerTool(
686
+ 'example_search_users',
687
+ {
688
+ title: 'Search Example Users',
689
+ description: `[Full description as shown above]`,
690
+ inputSchema: UserSearchInputSchema,
691
+ annotations: {
692
+ readOnlyHint: true,
693
+ destructiveHint: false,
694
+ idempotentHint: true,
695
+ openWorldHint: true,
696
+ },
697
+ },
698
+ async (params: UserSearchInput) => {
699
+ // Implementation as shown above
700
+ },
701
+ );
702
+
703
+ // Main function
704
+ // For stdio (local):
705
+ async function runStdio() {
706
+ if (!process.env.EXAMPLE_API_KEY) {
707
+ console.error('ERROR: EXAMPLE_API_KEY environment variable is required');
708
+ process.exit(1);
709
+ }
710
+
711
+ const transport = new StdioServerTransport();
712
+ await server.connect(transport);
713
+ console.error('MCP server running via stdio');
714
+ }
715
+
716
+ // For streamable HTTP (remote):
717
+ async function runHTTP() {
718
+ if (!process.env.EXAMPLE_API_KEY) {
719
+ console.error('ERROR: EXAMPLE_API_KEY environment variable is required');
720
+ process.exit(1);
721
+ }
722
+
723
+ const app = express();
724
+ app.use(express.json());
725
+
726
+ app.post('/mcp', async (req, res) => {
727
+ const transport = new StreamableHTTPServerTransport({
728
+ sessionIdGenerator: undefined,
729
+ enableJsonResponse: true,
730
+ });
731
+ res.on('close', () => transport.close());
732
+ await server.connect(transport);
733
+ await transport.handleRequest(req, res, req.body);
734
+ });
735
+
736
+ const port = parseInt(process.env.PORT || '3000');
737
+ app.listen(port, () => {
738
+ console.error(`MCP server running on http://localhost:${port}/mcp`);
739
+ });
740
+ }
741
+
742
+ // Choose transport based on environment
743
+ const transport = process.env.TRANSPORT || 'stdio';
744
+ if (transport === 'http') {
745
+ runHTTP().catch(error => {
746
+ console.error('Server error:', error);
747
+ process.exit(1);
748
+ });
749
+ } else {
750
+ runStdio().catch(error => {
751
+ console.error('Server error:', error);
752
+ process.exit(1);
753
+ });
754
+ }
755
+ ```
756
+
757
+ ---
758
+
759
+ ## Advanced MCP Features
760
+
761
+ ### Resource Registration
762
+
763
+ Expose data as resources for efficient, URI-based access:
764
+
765
+ ```typescript
766
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/types.js';
767
+
768
+ // Register a resource with URI template
769
+ server.registerResource(
770
+ {
771
+ uri: 'file://documents/{name}',
772
+ name: 'Document Resource',
773
+ description: 'Access documents by name',
774
+ mimeType: 'text/plain',
775
+ },
776
+ async (uri: string) => {
777
+ // Extract parameter from URI
778
+ const match = uri.match(/^file:\/\/documents\/(.+)$/);
779
+ if (!match) {
780
+ throw new Error('Invalid URI format');
781
+ }
782
+
783
+ const documentName = match[1];
784
+ const content = await loadDocument(documentName);
785
+
786
+ return {
787
+ contents: [
788
+ {
789
+ uri,
790
+ mimeType: 'text/plain',
791
+ text: content,
792
+ },
793
+ ],
794
+ };
795
+ },
796
+ );
797
+
798
+ // List available resources dynamically
799
+ server.registerResourceList(async () => {
800
+ const documents = await getAvailableDocuments();
801
+ return {
802
+ resources: documents.map(doc => ({
803
+ uri: `file://documents/${doc.name}`,
804
+ name: doc.name,
805
+ mimeType: 'text/plain',
806
+ description: doc.description,
807
+ })),
808
+ };
809
+ });
810
+ ```
811
+
812
+ **When to use Resources vs Tools:**
813
+
814
+ - **Resources**: For data access with simple URI-based parameters
815
+ - **Tools**: For complex operations requiring validation and business logic
816
+ - **Resources**: When data is relatively static or template-based
817
+ - **Tools**: When operations have side effects or complex workflows
818
+
819
+ ### Transport Options
820
+
821
+ The TypeScript SDK supports two main transport mechanisms:
822
+
823
+ #### Streamable HTTP (Recommended for Remote Servers)
824
+
825
+ ```typescript
826
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
827
+ import express from 'express';
828
+
829
+ const app = express();
830
+ app.use(express.json());
831
+
832
+ app.post('/mcp', async (req, res) => {
833
+ // Create new transport for each request (stateless, prevents request ID collisions)
834
+ const transport = new StreamableHTTPServerTransport({
835
+ sessionIdGenerator: undefined,
836
+ enableJsonResponse: true,
837
+ });
838
+
839
+ res.on('close', () => transport.close());
840
+
841
+ await server.connect(transport);
842
+ await transport.handleRequest(req, res, req.body);
843
+ });
844
+
845
+ app.listen(3000);
846
+ ```
847
+
848
+ #### stdio (For Local Integrations)
849
+
850
+ ```typescript
851
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
852
+
853
+ const transport = new StdioServerTransport();
854
+ await server.connect(transport);
855
+ ```
856
+
857
+ **Transport selection:**
858
+
859
+ - **Streamable HTTP**: Web services, remote access, multiple clients
860
+ - **stdio**: Command-line tools, local development, subprocess integration
861
+
862
+ ### Notification Support
863
+
864
+ Notify clients when server state changes:
865
+
866
+ ```typescript
867
+ // Notify when tools list changes
868
+ server.notification({
869
+ method: 'notifications/tools/list_changed',
870
+ });
871
+
872
+ // Notify when resources change
873
+ server.notification({
874
+ method: 'notifications/resources/list_changed',
875
+ });
876
+ ```
877
+
878
+ Use notifications sparingly - only when server capabilities genuinely change.
879
+
880
+ ---
881
+
882
+ ## Code Best Practices
883
+
884
+ ### Code Composability and Reusability
885
+
886
+ Your implementation MUST prioritize composability and code reuse:
887
+
888
+ 1. **Extract Common Functionality**:
889
+ - Create reusable helper functions for operations used across multiple tools
890
+ - Build shared API clients for HTTP requests instead of duplicating code
891
+ - Centralize error handling logic in utility functions
892
+ - Extract business logic into dedicated functions that can be composed
893
+ - Extract shared markdown or JSON field selection & formatting functionality
894
+
895
+ 2. **Avoid Duplication**:
896
+ - NEVER copy-paste similar code between tools
897
+ - If you find yourself writing similar logic twice, extract it into a function
898
+ - Common operations like pagination, filtering, field selection, and formatting should be shared
899
+ - Authentication/authorization logic should be centralized
900
+
901
+ ## Building and Running
902
+
903
+ Always build your TypeScript code before running:
904
+
905
+ ```bash
906
+ # Build the project
907
+ npm run build
908
+
909
+ # Run the server
910
+ npm start
911
+
912
+ # Development with auto-reload
913
+ npm run dev
914
+ ```
915
+
916
+ Always ensure `npm run build` completes successfully before considering the implementation complete.
917
+
918
+ ## Quality Checklist
919
+
920
+ Before finalizing your Node/TypeScript MCP server implementation, ensure:
921
+
922
+ ### Strategic Design
923
+
924
+ - [ ] Tools enable complete workflows, not just API endpoint wrappers
925
+ - [ ] Tool names reflect natural task subdivisions
926
+ - [ ] Response formats optimize for agent context efficiency
927
+ - [ ] Human-readable identifiers used where appropriate
928
+ - [ ] Error messages guide agents toward correct usage
929
+
930
+ ### Implementation Quality
931
+
932
+ - [ ] FOCUSED IMPLEMENTATION: Most important and valuable tools implemented
933
+ - [ ] All tools registered using `registerTool` with complete configuration
934
+ - [ ] All tools include `title`, `description`, `inputSchema`, and `annotations`
935
+ - [ ] Annotations correctly set (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
936
+ - [ ] All tools use Zod schemas for runtime input validation with `.strict()` enforcement
937
+ - [ ] All Zod schemas have proper constraints and descriptive error messages
938
+ - [ ] All tools have comprehensive descriptions with explicit input/output types
939
+ - [ ] Descriptions include return value examples and complete schema documentation
940
+ - [ ] Error messages are clear, actionable, and educational
941
+
942
+ ### TypeScript Quality
943
+
944
+ - [ ] TypeScript interfaces are defined for all data structures
945
+ - [ ] Strict TypeScript is enabled in tsconfig.json
946
+ - [ ] No use of `any` type - use `unknown` or proper types instead
947
+ - [ ] All async functions have explicit Promise<T> return types
948
+ - [ ] Error handling uses proper type guards (e.g., `axios.isAxiosError`, `z.ZodError`)
949
+
950
+ ### Advanced Features (where applicable)
951
+
952
+ - [ ] Resources registered for appropriate data endpoints
953
+ - [ ] Appropriate transport configured (stdio or streamable HTTP)
954
+ - [ ] Notifications implemented for dynamic server capabilities
955
+ - [ ] Type-safe with SDK interfaces
956
+
957
+ ### Project Configuration
958
+
959
+ - [ ] Package.json includes all necessary dependencies
960
+ - [ ] Build script produces working JavaScript in dist/ directory
961
+ - [ ] Main entry point is properly configured as dist/index.js
962
+ - [ ] Server name follows format: `{service}-mcp-server`
963
+ - [ ] tsconfig.json properly configured with strict mode
964
+
965
+ ### Code Quality
966
+
967
+ - [ ] Pagination is properly implemented where applicable
968
+ - [ ] Large responses check CHARACTER_LIMIT constant and truncate with clear messages
969
+ - [ ] Filtering options are provided for potentially large result sets
970
+ - [ ] All network operations handle timeouts and connection errors gracefully
971
+ - [ ] Common functionality is extracted into reusable functions
972
+ - [ ] Return types are consistent across similar operations
973
+
974
+ ### Testing and Build
975
+
976
+ - [ ] `npm run build` completes successfully without errors
977
+ - [ ] dist/index.js created and executable
978
+ - [ ] Server runs: `node dist/index.js --help`
979
+ - [ ] All imports resolve correctly
980
+ - [ ] Sample tool calls work as expected