devskill 2.0.6 → 2.0.8

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 (1437) hide show
  1. package/meta.ts +13 -1
  2. package/package.json +1 -1
  3. package/scripts/cli.ts +55 -10
  4. package/skills/add-educational-comments/LICENSE.md +21 -0
  5. package/skills/add-educational-comments/SKILL.md +128 -0
  6. package/skills/add-educational-comments/SYNC.md +5 -0
  7. package/skills/agent-governance/LICENSE.md +21 -0
  8. package/skills/agent-governance/SKILL.md +569 -0
  9. package/skills/agent-governance/SYNC.md +5 -0
  10. package/skills/agentic-eval/LICENSE.md +21 -0
  11. package/skills/agentic-eval/SKILL.md +189 -0
  12. package/skills/agentic-eval/SYNC.md +5 -0
  13. package/skills/ai-prompt-engineering-safety-review/LICENSE.md +21 -0
  14. package/skills/ai-prompt-engineering-safety-review/SKILL.md +230 -0
  15. package/skills/ai-prompt-engineering-safety-review/SYNC.md +5 -0
  16. package/skills/algorithmic-art/LICENSE.txt +202 -0
  17. package/skills/algorithmic-art/SKILL.md +405 -0
  18. package/skills/algorithmic-art/SYNC.md +5 -0
  19. package/skills/algorithmic-art/templates/generator_template.js +223 -0
  20. package/skills/algorithmic-art/templates/viewer.html +599 -0
  21. package/skills/appinsights-instrumentation/LICENSE.md +21 -0
  22. package/skills/appinsights-instrumentation/LICENSE.txt +21 -0
  23. package/skills/appinsights-instrumentation/SKILL.md +48 -0
  24. package/skills/appinsights-instrumentation/SYNC.md +5 -0
  25. package/skills/appinsights-instrumentation/examples/appinsights.bicep +30 -0
  26. package/skills/appinsights-instrumentation/references/ASPNETCORE.md +29 -0
  27. package/skills/appinsights-instrumentation/references/AUTO.md +13 -0
  28. package/skills/appinsights-instrumentation/references/NODEJS.md +28 -0
  29. package/skills/appinsights-instrumentation/references/PYTHON.md +48 -0
  30. package/skills/appinsights-instrumentation/scripts/appinsights.ps1 +20 -0
  31. package/skills/apple-appstore-reviewer/LICENSE.md +21 -0
  32. package/skills/apple-appstore-reviewer/SKILL.md +305 -0
  33. package/skills/apple-appstore-reviewer/SYNC.md +5 -0
  34. package/skills/arch-linux-triage/LICENSE.md +21 -0
  35. package/skills/arch-linux-triage/SKILL.md +31 -0
  36. package/skills/arch-linux-triage/SYNC.md +5 -0
  37. package/skills/architecture-blueprint-generator/LICENSE.md +21 -0
  38. package/skills/architecture-blueprint-generator/SKILL.md +322 -0
  39. package/skills/architecture-blueprint-generator/SYNC.md +5 -0
  40. package/skills/aspire/LICENSE.md +21 -0
  41. package/skills/aspire/SKILL.md +231 -0
  42. package/skills/aspire/SYNC.md +5 -0
  43. package/skills/aspire/references/architecture.md +341 -0
  44. package/skills/aspire/references/cli-reference.md +307 -0
  45. package/skills/aspire/references/dashboard.md +226 -0
  46. package/skills/aspire/references/deployment.md +237 -0
  47. package/skills/aspire/references/integrations-catalog.md +68 -0
  48. package/skills/aspire/references/mcp-server.md +195 -0
  49. package/skills/aspire/references/polyglot-apis.md +296 -0
  50. package/skills/aspire/references/testing.md +281 -0
  51. package/skills/aspire/references/troubleshooting.md +194 -0
  52. package/skills/aspnet-minimal-api-openapi/LICENSE.md +21 -0
  53. package/skills/aspnet-minimal-api-openapi/SKILL.md +41 -0
  54. package/skills/aspnet-minimal-api-openapi/SYNC.md +5 -0
  55. package/skills/automate-this/LICENSE.md +21 -0
  56. package/skills/automate-this/SKILL.md +244 -0
  57. package/skills/automate-this/SYNC.md +5 -0
  58. package/skills/autoresearch/LICENSE.md +21 -0
  59. package/skills/autoresearch/SKILL.md +275 -0
  60. package/skills/autoresearch/SYNC.md +5 -0
  61. package/skills/aws-cdk-python-setup/LICENSE.md +21 -0
  62. package/skills/aws-cdk-python-setup/SKILL.md +111 -0
  63. package/skills/aws-cdk-python-setup/SYNC.md +5 -0
  64. package/skills/az-cost-optimize/LICENSE.md +21 -0
  65. package/skills/az-cost-optimize/SKILL.md +305 -0
  66. package/skills/az-cost-optimize/SYNC.md +5 -0
  67. package/skills/azure-deployment-preflight/LICENSE.md +21 -0
  68. package/skills/azure-deployment-preflight/SKILL.md +216 -0
  69. package/skills/azure-deployment-preflight/SYNC.md +5 -0
  70. package/skills/azure-deployment-preflight/references/ERROR-HANDLING.md +392 -0
  71. package/skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md +352 -0
  72. package/skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md +379 -0
  73. package/skills/azure-devops-cli/LICENSE.md +21 -0
  74. package/skills/azure-devops-cli/SKILL.md +94 -0
  75. package/skills/azure-devops-cli/SYNC.md +5 -0
  76. package/skills/azure-devops-cli/references/advanced-usage.md +197 -0
  77. package/skills/azure-devops-cli/references/boards-and-iterations.md +258 -0
  78. package/skills/azure-devops-cli/references/org-and-security.md +469 -0
  79. package/skills/azure-devops-cli/references/pipelines-and-builds.md +245 -0
  80. package/skills/azure-devops-cli/references/repos-and-prs.md +333 -0
  81. package/skills/azure-devops-cli/references/variables-and-agents.md +212 -0
  82. package/skills/azure-devops-cli/references/workflows-and-patterns.md +668 -0
  83. package/skills/azure-pricing/LICENSE.md +21 -0
  84. package/skills/azure-pricing/SKILL.md +189 -0
  85. package/skills/azure-pricing/SYNC.md +5 -0
  86. package/skills/azure-pricing/references/COPILOT-STUDIO-RATES.md +135 -0
  87. package/skills/azure-pricing/references/COST-ESTIMATOR.md +142 -0
  88. package/skills/azure-pricing/references/REGIONS.md +84 -0
  89. package/skills/azure-pricing/references/SERVICE-NAMES.md +106 -0
  90. package/skills/azure-resource-health-diagnose/LICENSE.md +21 -0
  91. package/skills/azure-resource-health-diagnose/SKILL.md +290 -0
  92. package/skills/azure-resource-health-diagnose/SYNC.md +5 -0
  93. package/skills/azure-resource-visualizer/LICENSE.md +21 -0
  94. package/skills/azure-resource-visualizer/LICENSE.txt +21 -0
  95. package/skills/azure-resource-visualizer/SKILL.md +233 -0
  96. package/skills/azure-resource-visualizer/SYNC.md +5 -0
  97. package/skills/azure-resource-visualizer/assets/template-architecture.md +41 -0
  98. package/skills/azure-role-selector/LICENSE.md +21 -0
  99. package/skills/azure-role-selector/LICENSE.txt +21 -0
  100. package/skills/azure-role-selector/SKILL.md +6 -0
  101. package/skills/azure-role-selector/SYNC.md +5 -0
  102. package/skills/azure-static-web-apps/LICENSE.md +21 -0
  103. package/skills/azure-static-web-apps/SKILL.md +315 -0
  104. package/skills/azure-static-web-apps/SYNC.md +5 -0
  105. package/skills/bigquery-pipeline-audit/LICENSE.md +21 -0
  106. package/skills/bigquery-pipeline-audit/SKILL.md +129 -0
  107. package/skills/bigquery-pipeline-audit/SYNC.md +5 -0
  108. package/skills/boost-prompt/LICENSE.md +21 -0
  109. package/skills/boost-prompt/SKILL.md +25 -0
  110. package/skills/boost-prompt/SYNC.md +5 -0
  111. package/skills/brand-guidelines/LICENSE.txt +202 -0
  112. package/skills/brand-guidelines/SKILL.md +73 -0
  113. package/skills/brand-guidelines/SYNC.md +5 -0
  114. package/skills/breakdown-epic-arch/LICENSE.md +21 -0
  115. package/skills/breakdown-epic-arch/SKILL.md +66 -0
  116. package/skills/breakdown-epic-arch/SYNC.md +5 -0
  117. package/skills/breakdown-epic-pm/LICENSE.md +21 -0
  118. package/skills/breakdown-epic-pm/SKILL.md +58 -0
  119. package/skills/breakdown-epic-pm/SYNC.md +5 -0
  120. package/skills/breakdown-feature-implementation/LICENSE.md +21 -0
  121. package/skills/breakdown-feature-implementation/SKILL.md +128 -0
  122. package/skills/breakdown-feature-implementation/SYNC.md +5 -0
  123. package/skills/breakdown-feature-prd/LICENSE.md +21 -0
  124. package/skills/breakdown-feature-prd/SKILL.md +61 -0
  125. package/skills/breakdown-feature-prd/SYNC.md +5 -0
  126. package/skills/breakdown-plan/LICENSE.md +21 -0
  127. package/skills/breakdown-plan/SKILL.md +509 -0
  128. package/skills/breakdown-plan/SYNC.md +5 -0
  129. package/skills/breakdown-test/LICENSE.md +21 -0
  130. package/skills/breakdown-test/SKILL.md +365 -0
  131. package/skills/breakdown-test/SYNC.md +5 -0
  132. package/skills/canvas-design/LICENSE.txt +202 -0
  133. package/skills/canvas-design/SKILL.md +130 -0
  134. package/skills/canvas-design/SYNC.md +5 -0
  135. package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  136. package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  137. package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  138. package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  139. package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  140. package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  141. package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  142. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  143. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  144. package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  145. package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  146. package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  147. package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  148. package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  149. package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  150. package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  151. package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  152. package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  153. package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  154. package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  155. package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  156. package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  157. package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  158. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  159. package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  160. package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  161. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  162. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  163. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  164. package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  165. package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  166. package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  167. package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  168. package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  169. package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  170. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  171. package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  172. package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  173. package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  174. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  175. package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  176. package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  177. package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  178. package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  179. package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  180. package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  181. package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  182. package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  183. package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  184. package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  185. package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  186. package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  187. package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  188. package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  189. package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  190. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  191. package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  192. package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  193. package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  194. package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  195. package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  196. package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  197. package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  198. package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  199. package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  200. package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  201. package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  202. package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  203. package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  204. package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  205. package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  206. package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  207. package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  208. package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  209. package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  210. package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  211. package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  212. package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  213. package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  214. package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  215. package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  216. package/skills/centos-linux-triage/LICENSE.md +21 -0
  217. package/skills/centos-linux-triage/SKILL.md +31 -0
  218. package/skills/centos-linux-triage/SYNC.md +5 -0
  219. package/skills/chrome-devtools/LICENSE.md +21 -0
  220. package/skills/chrome-devtools/SKILL.md +97 -0
  221. package/skills/chrome-devtools/SYNC.md +5 -0
  222. package/skills/claude-api/LICENSE.txt +202 -0
  223. package/skills/claude-api/SKILL.md +246 -0
  224. package/skills/claude-api/SYNC.md +5 -0
  225. package/skills/claude-api/csharp/claude-api.md +400 -0
  226. package/skills/claude-api/curl/examples.md +193 -0
  227. package/skills/claude-api/go/claude-api.md +404 -0
  228. package/skills/claude-api/java/claude-api.md +430 -0
  229. package/skills/claude-api/php/claude-api.md +241 -0
  230. package/skills/claude-api/python/agent-sdk/README.md +345 -0
  231. package/skills/claude-api/python/agent-sdk/patterns.md +359 -0
  232. package/skills/claude-api/python/claude-api/README.md +410 -0
  233. package/skills/claude-api/python/claude-api/batches.md +185 -0
  234. package/skills/claude-api/python/claude-api/files-api.md +165 -0
  235. package/skills/claude-api/python/claude-api/streaming.md +162 -0
  236. package/skills/claude-api/python/claude-api/tool-use.md +590 -0
  237. package/skills/claude-api/ruby/claude-api.md +92 -0
  238. package/skills/claude-api/shared/error-codes.md +206 -0
  239. package/skills/claude-api/shared/live-sources.md +121 -0
  240. package/skills/claude-api/shared/models.md +119 -0
  241. package/skills/claude-api/shared/tool-use-concepts.md +305 -0
  242. package/skills/claude-api/typescript/agent-sdk/README.md +296 -0
  243. package/skills/claude-api/typescript/agent-sdk/patterns.md +209 -0
  244. package/skills/claude-api/typescript/claude-api/README.md +321 -0
  245. package/skills/claude-api/typescript/claude-api/batches.md +106 -0
  246. package/skills/claude-api/typescript/claude-api/files-api.md +98 -0
  247. package/skills/claude-api/typescript/claude-api/streaming.md +178 -0
  248. package/skills/claude-api/typescript/claude-api/tool-use.md +527 -0
  249. package/skills/cli-mastery/LICENSE.md +21 -0
  250. package/skills/cli-mastery/SKILL.md +43 -0
  251. package/skills/cli-mastery/SYNC.md +5 -0
  252. package/skills/cli-mastery/references/final-exam.md +24 -0
  253. package/skills/cli-mastery/references/module-1-slash-commands.md +88 -0
  254. package/skills/cli-mastery/references/module-2-keyboard-shortcuts.md +38 -0
  255. package/skills/cli-mastery/references/module-3-modes.md +33 -0
  256. package/skills/cli-mastery/references/module-4-agents.md +42 -0
  257. package/skills/cli-mastery/references/module-5-skills.md +33 -0
  258. package/skills/cli-mastery/references/module-6-mcp.md +50 -0
  259. package/skills/cli-mastery/references/module-7-advanced.md +38 -0
  260. package/skills/cli-mastery/references/module-8-configuration.md +34 -0
  261. package/skills/cli-mastery/references/scenarios.md +44 -0
  262. package/skills/cloud-design-patterns/LICENSE.md +21 -0
  263. package/skills/cloud-design-patterns/SKILL.md +62 -0
  264. package/skills/cloud-design-patterns/SYNC.md +5 -0
  265. package/skills/cloud-design-patterns/references/architecture-design.md +127 -0
  266. package/skills/cloud-design-patterns/references/azure-service-mappings.md +13 -0
  267. package/skills/cloud-design-patterns/references/best-practices.md +34 -0
  268. package/skills/cloud-design-patterns/references/deployment-operational.md +91 -0
  269. package/skills/cloud-design-patterns/references/event-driven.md +21 -0
  270. package/skills/cloud-design-patterns/references/messaging-integration.md +127 -0
  271. package/skills/cloud-design-patterns/references/performance.md +180 -0
  272. package/skills/cloud-design-patterns/references/reliability-resilience.md +156 -0
  273. package/skills/cloud-design-patterns/references/security.md +55 -0
  274. package/skills/code-exemplars-blueprint-generator/LICENSE.md +21 -0
  275. package/skills/code-exemplars-blueprint-generator/SKILL.md +126 -0
  276. package/skills/code-exemplars-blueprint-generator/SYNC.md +5 -0
  277. package/skills/codeql/LICENSE.md +21 -0
  278. package/skills/codeql/SKILL.md +405 -0
  279. package/skills/codeql/SYNC.md +5 -0
  280. package/skills/codeql/references/alert-management.md +170 -0
  281. package/skills/codeql/references/cli-commands.md +283 -0
  282. package/skills/codeql/references/compiled-languages.md +284 -0
  283. package/skills/codeql/references/sarif-output.md +265 -0
  284. package/skills/codeql/references/troubleshooting.md +259 -0
  285. package/skills/codeql/references/workflow-configuration.md +398 -0
  286. package/skills/comment-code-generate-a-tutorial/LICENSE.md +21 -0
  287. package/skills/comment-code-generate-a-tutorial/SKILL.md +26 -0
  288. package/skills/comment-code-generate-a-tutorial/SYNC.md +5 -0
  289. package/skills/containerize-aspnet-framework/LICENSE.md +21 -0
  290. package/skills/containerize-aspnet-framework/SKILL.md +454 -0
  291. package/skills/containerize-aspnet-framework/SYNC.md +5 -0
  292. package/skills/containerize-aspnetcore/LICENSE.md +21 -0
  293. package/skills/containerize-aspnetcore/SKILL.md +392 -0
  294. package/skills/containerize-aspnetcore/SYNC.md +5 -0
  295. package/skills/context-map/LICENSE.md +21 -0
  296. package/skills/context-map/SKILL.md +52 -0
  297. package/skills/context-map/SYNC.md +5 -0
  298. package/skills/conventional-commit/LICENSE.md +21 -0
  299. package/skills/conventional-commit/SKILL.md +72 -0
  300. package/skills/conventional-commit/SYNC.md +5 -0
  301. package/skills/convert-plaintext-to-md/LICENSE.md +21 -0
  302. package/skills/convert-plaintext-to-md/SKILL.md +362 -0
  303. package/skills/convert-plaintext-to-md/SYNC.md +5 -0
  304. package/skills/copilot-cli-quickstart/LICENSE.md +21 -0
  305. package/skills/copilot-cli-quickstart/SKILL.md +774 -0
  306. package/skills/copilot-cli-quickstart/SYNC.md +5 -0
  307. package/skills/copilot-instructions-blueprint-generator/LICENSE.md +21 -0
  308. package/skills/copilot-instructions-blueprint-generator/SKILL.md +294 -0
  309. package/skills/copilot-instructions-blueprint-generator/SYNC.md +5 -0
  310. package/skills/copilot-sdk/LICENSE.md +21 -0
  311. package/skills/copilot-sdk/SKILL.md +914 -0
  312. package/skills/copilot-sdk/SYNC.md +5 -0
  313. package/skills/copilot-spaces/LICENSE.md +21 -0
  314. package/skills/copilot-spaces/SKILL.md +205 -0
  315. package/skills/copilot-spaces/SYNC.md +5 -0
  316. package/skills/copilot-usage-metrics/LICENSE.md +21 -0
  317. package/skills/copilot-usage-metrics/SKILL.md +52 -0
  318. package/skills/copilot-usage-metrics/SYNC.md +5 -0
  319. package/skills/copilot-usage-metrics/get-enterprise-metrics.sh +22 -0
  320. package/skills/copilot-usage-metrics/get-enterprise-user-metrics.sh +22 -0
  321. package/skills/copilot-usage-metrics/get-org-metrics.sh +22 -0
  322. package/skills/copilot-usage-metrics/get-org-user-metrics.sh +22 -0
  323. package/skills/cosmosdb-datamodeling/LICENSE.md +21 -0
  324. package/skills/cosmosdb-datamodeling/SKILL.md +1045 -0
  325. package/skills/cosmosdb-datamodeling/SYNC.md +5 -0
  326. package/skills/create-agentsmd/LICENSE.md +21 -0
  327. package/skills/create-agentsmd/SKILL.md +249 -0
  328. package/skills/create-agentsmd/SYNC.md +5 -0
  329. package/skills/create-architectural-decision-record/LICENSE.md +21 -0
  330. package/skills/create-architectural-decision-record/SKILL.md +97 -0
  331. package/skills/create-architectural-decision-record/SYNC.md +5 -0
  332. package/skills/create-github-action-workflow-specification/LICENSE.md +21 -0
  333. package/skills/create-github-action-workflow-specification/SKILL.md +276 -0
  334. package/skills/create-github-action-workflow-specification/SYNC.md +5 -0
  335. package/skills/create-github-issue-feature-from-specification/LICENSE.md +21 -0
  336. package/skills/create-github-issue-feature-from-specification/SKILL.md +28 -0
  337. package/skills/create-github-issue-feature-from-specification/SYNC.md +5 -0
  338. package/skills/create-github-issues-feature-from-implementation-plan/LICENSE.md +21 -0
  339. package/skills/create-github-issues-feature-from-implementation-plan/SKILL.md +28 -0
  340. package/skills/create-github-issues-feature-from-implementation-plan/SYNC.md +5 -0
  341. package/skills/create-github-issues-for-unmet-specification-requirements/LICENSE.md +21 -0
  342. package/skills/create-github-issues-for-unmet-specification-requirements/SKILL.md +35 -0
  343. package/skills/create-github-issues-for-unmet-specification-requirements/SYNC.md +5 -0
  344. package/skills/create-github-pull-request-from-specification/LICENSE.md +21 -0
  345. package/skills/create-github-pull-request-from-specification/SKILL.md +24 -0
  346. package/skills/create-github-pull-request-from-specification/SYNC.md +5 -0
  347. package/skills/create-implementation-plan/LICENSE.md +21 -0
  348. package/skills/create-implementation-plan/SKILL.md +157 -0
  349. package/skills/create-implementation-plan/SYNC.md +5 -0
  350. package/skills/create-llms/LICENSE.md +21 -0
  351. package/skills/create-llms/SKILL.md +210 -0
  352. package/skills/create-llms/SYNC.md +5 -0
  353. package/skills/create-readme/LICENSE.md +21 -0
  354. package/skills/create-readme/SKILL.md +21 -0
  355. package/skills/create-readme/SYNC.md +5 -0
  356. package/skills/create-specification/LICENSE.md +21 -0
  357. package/skills/create-specification/SKILL.md +127 -0
  358. package/skills/create-specification/SYNC.md +5 -0
  359. package/skills/create-spring-boot-java-project/LICENSE.md +21 -0
  360. package/skills/create-spring-boot-java-project/SKILL.md +163 -0
  361. package/skills/create-spring-boot-java-project/SYNC.md +5 -0
  362. package/skills/create-spring-boot-kotlin-project/LICENSE.md +21 -0
  363. package/skills/create-spring-boot-kotlin-project/SKILL.md +147 -0
  364. package/skills/create-spring-boot-kotlin-project/SYNC.md +5 -0
  365. package/skills/create-technical-spike/LICENSE.md +21 -0
  366. package/skills/create-technical-spike/SKILL.md +230 -0
  367. package/skills/create-technical-spike/SYNC.md +5 -0
  368. package/skills/create-tldr-page/LICENSE.md +21 -0
  369. package/skills/create-tldr-page/SKILL.md +210 -0
  370. package/skills/create-tldr-page/SYNC.md +5 -0
  371. package/skills/creating-oracle-to-postgres-master-migration-plan/LICENSE.md +21 -0
  372. package/skills/creating-oracle-to-postgres-master-migration-plan/SKILL.md +83 -0
  373. package/skills/creating-oracle-to-postgres-master-migration-plan/SYNC.md +5 -0
  374. package/skills/creating-oracle-to-postgres-migration-bug-report/LICENSE.md +21 -0
  375. package/skills/creating-oracle-to-postgres-migration-bug-report/SKILL.md +43 -0
  376. package/skills/creating-oracle-to-postgres-migration-bug-report/SYNC.md +5 -0
  377. package/skills/creating-oracle-to-postgres-migration-bug-report/references/BUG-REPORT-TEMPLATE.md +79 -0
  378. package/skills/creating-oracle-to-postgres-migration-integration-tests/LICENSE.md +21 -0
  379. package/skills/creating-oracle-to-postgres-migration-integration-tests/SKILL.md +60 -0
  380. package/skills/creating-oracle-to-postgres-migration-integration-tests/SYNC.md +5 -0
  381. package/skills/csharp-async/LICENSE.md +21 -0
  382. package/skills/csharp-async/SKILL.md +49 -0
  383. package/skills/csharp-async/SYNC.md +5 -0
  384. package/skills/csharp-docs/LICENSE.md +21 -0
  385. package/skills/csharp-docs/SKILL.md +62 -0
  386. package/skills/csharp-docs/SYNC.md +5 -0
  387. package/skills/csharp-mcp-server-generator/LICENSE.md +21 -0
  388. package/skills/csharp-mcp-server-generator/SKILL.md +59 -0
  389. package/skills/csharp-mcp-server-generator/SYNC.md +5 -0
  390. package/skills/csharp-mstest/LICENSE.md +21 -0
  391. package/skills/csharp-mstest/SKILL.md +478 -0
  392. package/skills/csharp-mstest/SYNC.md +5 -0
  393. package/skills/csharp-nunit/LICENSE.md +21 -0
  394. package/skills/csharp-nunit/SKILL.md +71 -0
  395. package/skills/csharp-nunit/SYNC.md +5 -0
  396. package/skills/csharp-tunit/LICENSE.md +21 -0
  397. package/skills/csharp-tunit/SKILL.md +100 -0
  398. package/skills/csharp-tunit/SYNC.md +5 -0
  399. package/skills/csharp-xunit/LICENSE.md +21 -0
  400. package/skills/csharp-xunit/SKILL.md +68 -0
  401. package/skills/csharp-xunit/SYNC.md +5 -0
  402. package/skills/datanalysis-credit-risk/LICENSE.md +21 -0
  403. package/skills/datanalysis-credit-risk/SKILL.md +113 -0
  404. package/skills/datanalysis-credit-risk/SYNC.md +5 -0
  405. package/skills/datanalysis-credit-risk/references/analysis.py +1223 -0
  406. package/skills/datanalysis-credit-risk/references/func.py +228 -0
  407. package/skills/datanalysis-credit-risk/scripts/example.py +391 -0
  408. package/skills/dataverse-python-advanced-patterns/LICENSE.md +21 -0
  409. package/skills/dataverse-python-advanced-patterns/SKILL.md +17 -0
  410. package/skills/dataverse-python-advanced-patterns/SYNC.md +5 -0
  411. package/skills/dataverse-python-production-code/LICENSE.md +21 -0
  412. package/skills/dataverse-python-production-code/SKILL.md +116 -0
  413. package/skills/dataverse-python-production-code/SYNC.md +5 -0
  414. package/skills/dataverse-python-quickstart/LICENSE.md +21 -0
  415. package/skills/dataverse-python-quickstart/SKILL.md +14 -0
  416. package/skills/dataverse-python-quickstart/SYNC.md +5 -0
  417. package/skills/dataverse-python-usecase-builder/LICENSE.md +21 -0
  418. package/skills/dataverse-python-usecase-builder/SKILL.md +246 -0
  419. package/skills/dataverse-python-usecase-builder/SYNC.md +5 -0
  420. package/skills/debian-linux-triage/LICENSE.md +21 -0
  421. package/skills/debian-linux-triage/SKILL.md +31 -0
  422. package/skills/debian-linux-triage/SYNC.md +5 -0
  423. package/skills/declarative-agents/LICENSE.md +21 -0
  424. package/skills/declarative-agents/SKILL.md +94 -0
  425. package/skills/declarative-agents/SYNC.md +5 -0
  426. package/skills/dependabot/LICENSE.md +21 -0
  427. package/skills/dependabot/SKILL.md +422 -0
  428. package/skills/dependabot/SYNC.md +5 -0
  429. package/skills/dependabot/references/dependabot-yml-reference.md +374 -0
  430. package/skills/dependabot/references/example-configs.md +409 -0
  431. package/skills/dependabot/references/pr-commands.md +91 -0
  432. package/skills/devops-rollout-plan/LICENSE.md +21 -0
  433. package/skills/devops-rollout-plan/SKILL.md +117 -0
  434. package/skills/devops-rollout-plan/SYNC.md +5 -0
  435. package/skills/doc-coauthoring/SKILL.md +375 -0
  436. package/skills/doc-coauthoring/SYNC.md +5 -0
  437. package/skills/documentation-writer/LICENSE.md +21 -0
  438. package/skills/documentation-writer/SKILL.md +45 -0
  439. package/skills/documentation-writer/SYNC.md +5 -0
  440. package/skills/docx/LICENSE.txt +30 -0
  441. package/skills/docx/SKILL.md +590 -0
  442. package/skills/docx/SYNC.md +5 -0
  443. package/skills/docx/scripts/__init__.py +1 -0
  444. package/skills/docx/scripts/accept_changes.py +135 -0
  445. package/skills/docx/scripts/comment.py +318 -0
  446. package/skills/docx/scripts/office/helpers/__init__.py +0 -0
  447. package/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
  448. package/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  449. package/skills/docx/scripts/office/pack.py +159 -0
  450. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  451. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  452. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  453. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  454. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  455. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  456. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  457. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  458. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  459. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  460. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  461. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  462. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  463. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  464. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  465. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  466. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  467. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  468. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  469. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  470. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  471. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  472. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  473. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  474. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  475. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  476. package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  477. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  478. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  479. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  480. package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  481. package/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  482. package/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  483. package/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  484. package/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  485. package/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  486. package/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  487. package/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  488. package/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  489. package/skills/docx/scripts/office/soffice.py +183 -0
  490. package/skills/docx/scripts/office/unpack.py +132 -0
  491. package/skills/docx/scripts/office/validate.py +111 -0
  492. package/skills/docx/scripts/office/validators/__init__.py +15 -0
  493. package/skills/docx/scripts/office/validators/base.py +847 -0
  494. package/skills/docx/scripts/office/validators/docx.py +446 -0
  495. package/skills/docx/scripts/office/validators/pptx.py +275 -0
  496. package/skills/docx/scripts/office/validators/redlining.py +247 -0
  497. package/skills/docx/scripts/templates/comments.xml +3 -0
  498. package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  499. package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  500. package/skills/docx/scripts/templates/commentsIds.xml +3 -0
  501. package/skills/docx/scripts/templates/people.xml +3 -0
  502. package/skills/dotnet-best-practices/LICENSE.md +21 -0
  503. package/skills/dotnet-best-practices/SKILL.md +85 -0
  504. package/skills/dotnet-best-practices/SYNC.md +5 -0
  505. package/skills/dotnet-design-pattern-review/LICENSE.md +21 -0
  506. package/skills/dotnet-design-pattern-review/SKILL.md +42 -0
  507. package/skills/dotnet-design-pattern-review/SYNC.md +5 -0
  508. package/skills/dotnet-timezone/LICENSE.md +21 -0
  509. package/skills/dotnet-timezone/SKILL.md +109 -0
  510. package/skills/dotnet-timezone/SYNC.md +5 -0
  511. package/skills/dotnet-timezone/references/code-patterns.md +153 -0
  512. package/skills/dotnet-timezone/references/timezone-index.md +87 -0
  513. package/skills/dotnet-upgrade/LICENSE.md +21 -0
  514. package/skills/dotnet-upgrade/SKILL.md +116 -0
  515. package/skills/dotnet-upgrade/SYNC.md +5 -0
  516. package/skills/doublecheck/LICENSE.md +21 -0
  517. package/skills/doublecheck/SKILL.md +277 -0
  518. package/skills/doublecheck/SYNC.md +5 -0
  519. package/skills/doublecheck/assets/verification-report-template.md +92 -0
  520. package/skills/editorconfig/LICENSE.md +21 -0
  521. package/skills/editorconfig/SKILL.md +63 -0
  522. package/skills/editorconfig/SYNC.md +5 -0
  523. package/skills/ef-core/LICENSE.md +21 -0
  524. package/skills/ef-core/SKILL.md +75 -0
  525. package/skills/ef-core/SYNC.md +5 -0
  526. package/skills/entra-agent-user/LICENSE.md +21 -0
  527. package/skills/entra-agent-user/SKILL.md +270 -0
  528. package/skills/entra-agent-user/SYNC.md +5 -0
  529. package/skills/eval-driven-dev/LICENSE.md +21 -0
  530. package/skills/eval-driven-dev/SKILL.md +862 -0
  531. package/skills/eval-driven-dev/SYNC.md +5 -0
  532. package/skills/eval-driven-dev/references/pixie-api.md +195 -0
  533. package/skills/excalidraw-diagram-generator/LICENSE.md +21 -0
  534. package/skills/excalidraw-diagram-generator/SKILL.md +613 -0
  535. package/skills/excalidraw-diagram-generator/SYNC.md +5 -0
  536. package/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
  537. package/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
  538. package/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
  539. package/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
  540. package/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
  541. package/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
  542. package/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
  543. package/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
  544. package/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
  545. package/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
  546. package/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
  547. package/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
  548. package/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
  549. package/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
  550. package/skills/fabric-lakehouse/LICENSE.md +21 -0
  551. package/skills/fabric-lakehouse/SKILL.md +106 -0
  552. package/skills/fabric-lakehouse/SYNC.md +5 -0
  553. package/skills/fabric-lakehouse/references/getdata.md +36 -0
  554. package/skills/fabric-lakehouse/references/pyspark.md +189 -0
  555. package/skills/fedora-linux-triage/LICENSE.md +21 -0
  556. package/skills/fedora-linux-triage/SKILL.md +31 -0
  557. package/skills/fedora-linux-triage/SYNC.md +5 -0
  558. package/skills/finalize-agent-prompt/LICENSE.md +21 -0
  559. package/skills/finalize-agent-prompt/SKILL.md +26 -0
  560. package/skills/finalize-agent-prompt/SYNC.md +5 -0
  561. package/skills/finnish-humanizer/LICENSE.md +21 -0
  562. package/skills/finnish-humanizer/SKILL.md +145 -0
  563. package/skills/finnish-humanizer/SYNC.md +5 -0
  564. package/skills/finnish-humanizer/references/patterns.md +338 -0
  565. package/skills/first-ask/LICENSE.md +21 -0
  566. package/skills/first-ask/SKILL.md +30 -0
  567. package/skills/first-ask/SYNC.md +5 -0
  568. package/skills/flowstudio-power-automate-build/LICENSE.md +21 -0
  569. package/skills/flowstudio-power-automate-build/SKILL.md +460 -0
  570. package/skills/flowstudio-power-automate-build/SYNC.md +5 -0
  571. package/skills/flowstudio-power-automate-build/references/action-patterns-connectors.md +542 -0
  572. package/skills/flowstudio-power-automate-build/references/action-patterns-core.md +542 -0
  573. package/skills/flowstudio-power-automate-build/references/action-patterns-data.md +735 -0
  574. package/skills/flowstudio-power-automate-build/references/build-patterns.md +108 -0
  575. package/skills/flowstudio-power-automate-build/references/flow-schema.md +225 -0
  576. package/skills/flowstudio-power-automate-build/references/trigger-types.md +211 -0
  577. package/skills/flowstudio-power-automate-debug/LICENSE.md +21 -0
  578. package/skills/flowstudio-power-automate-debug/SKILL.md +322 -0
  579. package/skills/flowstudio-power-automate-debug/SYNC.md +5 -0
  580. package/skills/flowstudio-power-automate-debug/references/common-errors.md +188 -0
  581. package/skills/flowstudio-power-automate-debug/references/debug-workflow.md +157 -0
  582. package/skills/flowstudio-power-automate-mcp/LICENSE.md +21 -0
  583. package/skills/flowstudio-power-automate-mcp/SKILL.md +450 -0
  584. package/skills/flowstudio-power-automate-mcp/SYNC.md +5 -0
  585. package/skills/flowstudio-power-automate-mcp/references/MCP-BOOTSTRAP.md +53 -0
  586. package/skills/flowstudio-power-automate-mcp/references/action-types.md +79 -0
  587. package/skills/flowstudio-power-automate-mcp/references/connection-references.md +115 -0
  588. package/skills/flowstudio-power-automate-mcp/references/tool-reference.md +445 -0
  589. package/skills/fluentui-blazor/LICENSE.md +21 -0
  590. package/skills/fluentui-blazor/SKILL.md +231 -0
  591. package/skills/fluentui-blazor/SYNC.md +5 -0
  592. package/skills/fluentui-blazor/references/DATAGRID.md +162 -0
  593. package/skills/fluentui-blazor/references/LAYOUT-AND-NAVIGATION.md +173 -0
  594. package/skills/fluentui-blazor/references/SETUP.md +129 -0
  595. package/skills/fluentui-blazor/references/THEMING.md +103 -0
  596. package/skills/folder-structure-blueprint-generator/LICENSE.md +21 -0
  597. package/skills/folder-structure-blueprint-generator/SKILL.md +405 -0
  598. package/skills/folder-structure-blueprint-generator/SYNC.md +5 -0
  599. package/skills/frontend-design/LICENSE.txt +177 -0
  600. package/skills/frontend-design/SKILL.md +42 -0
  601. package/skills/frontend-design/SYNC.md +5 -0
  602. package/skills/game-engine/LICENSE.md +21 -0
  603. package/skills/game-engine/SKILL.md +139 -0
  604. package/skills/game-engine/SYNC.md +5 -0
  605. package/skills/game-engine/assets/2d-maze-game.md +528 -0
  606. package/skills/game-engine/assets/2d-platform-game.md +1855 -0
  607. package/skills/game-engine/assets/gameBase-template-repo.md +310 -0
  608. package/skills/game-engine/assets/paddle-game-template.md +1528 -0
  609. package/skills/game-engine/assets/simple-2d-engine.md +507 -0
  610. package/skills/game-engine/references/3d-web-games.md +754 -0
  611. package/skills/game-engine/references/algorithms.md +843 -0
  612. package/skills/game-engine/references/basics.md +343 -0
  613. package/skills/game-engine/references/game-control-mechanisms.md +617 -0
  614. package/skills/game-engine/references/game-engine-core-principles.md +695 -0
  615. package/skills/game-engine/references/game-publishing.md +352 -0
  616. package/skills/game-engine/references/techniques.md +894 -0
  617. package/skills/game-engine/references/terminology.md +354 -0
  618. package/skills/game-engine/references/web-apis.md +1394 -0
  619. package/skills/gen-specs-as-issues/LICENSE.md +21 -0
  620. package/skills/gen-specs-as-issues/SKILL.md +165 -0
  621. package/skills/gen-specs-as-issues/SYNC.md +5 -0
  622. package/skills/generate-custom-instructions-from-codebase/LICENSE.md +21 -0
  623. package/skills/generate-custom-instructions-from-codebase/SKILL.md +240 -0
  624. package/skills/generate-custom-instructions-from-codebase/SYNC.md +5 -0
  625. package/skills/geofeed-tuner/LICENSE.md +21 -0
  626. package/skills/geofeed-tuner/SKILL.md +864 -0
  627. package/skills/geofeed-tuner/SYNC.md +5 -0
  628. package/skills/geofeed-tuner/assets/example/01-user-input-rfc8805-feed.csv +5 -0
  629. package/skills/geofeed-tuner/assets/iso3166-1.json +1249 -0
  630. package/skills/geofeed-tuner/assets/iso3166-2.json +20188 -0
  631. package/skills/geofeed-tuner/assets/small-territories.json +106 -0
  632. package/skills/geofeed-tuner/references/rfc8805.txt +735 -0
  633. package/skills/geofeed-tuner/references/snippets-python3.md +85 -0
  634. package/skills/geofeed-tuner/scripts/templates/index.html +2305 -0
  635. package/skills/gh-cli/LICENSE.md +21 -0
  636. package/skills/gh-cli/SKILL.md +2187 -0
  637. package/skills/gh-cli/SYNC.md +5 -0
  638. package/skills/git-commit/LICENSE.md +21 -0
  639. package/skills/git-commit/SKILL.md +124 -0
  640. package/skills/git-commit/SYNC.md +5 -0
  641. package/skills/git-flow-branch-creator/LICENSE.md +21 -0
  642. package/skills/git-flow-branch-creator/SKILL.md +292 -0
  643. package/skills/git-flow-branch-creator/SYNC.md +5 -0
  644. package/skills/github-copilot-starter/LICENSE.md +21 -0
  645. package/skills/github-copilot-starter/SKILL.md +402 -0
  646. package/skills/github-copilot-starter/SYNC.md +5 -0
  647. package/skills/github-issues/LICENSE.md +21 -0
  648. package/skills/github-issues/SKILL.md +201 -0
  649. package/skills/github-issues/SYNC.md +5 -0
  650. package/skills/github-issues/references/dependencies.md +71 -0
  651. package/skills/github-issues/references/images.md +116 -0
  652. package/skills/github-issues/references/issue-fields.md +191 -0
  653. package/skills/github-issues/references/issue-types.md +72 -0
  654. package/skills/github-issues/references/projects.md +273 -0
  655. package/skills/github-issues/references/search.md +231 -0
  656. package/skills/github-issues/references/sub-issues.md +137 -0
  657. package/skills/github-issues/references/templates.md +90 -0
  658. package/skills/go-mcp-server-generator/LICENSE.md +21 -0
  659. package/skills/go-mcp-server-generator/SKILL.md +334 -0
  660. package/skills/go-mcp-server-generator/SYNC.md +5 -0
  661. package/skills/gtm-0-to-1-launch/LICENSE.md +21 -0
  662. package/skills/gtm-0-to-1-launch/SKILL.md +321 -0
  663. package/skills/gtm-0-to-1-launch/SYNC.md +5 -0
  664. package/skills/gtm-ai-gtm/LICENSE.md +21 -0
  665. package/skills/gtm-ai-gtm/SKILL.md +569 -0
  666. package/skills/gtm-ai-gtm/SYNC.md +5 -0
  667. package/skills/gtm-board-and-investor-communication/LICENSE.md +21 -0
  668. package/skills/gtm-board-and-investor-communication/SKILL.md +456 -0
  669. package/skills/gtm-board-and-investor-communication/SYNC.md +5 -0
  670. package/skills/gtm-developer-ecosystem/LICENSE.md +21 -0
  671. package/skills/gtm-developer-ecosystem/SKILL.md +310 -0
  672. package/skills/gtm-developer-ecosystem/SYNC.md +5 -0
  673. package/skills/gtm-enterprise-account-planning/LICENSE.md +21 -0
  674. package/skills/gtm-enterprise-account-planning/SKILL.md +429 -0
  675. package/skills/gtm-enterprise-account-planning/SYNC.md +5 -0
  676. package/skills/gtm-enterprise-onboarding/LICENSE.md +21 -0
  677. package/skills/gtm-enterprise-onboarding/SKILL.md +457 -0
  678. package/skills/gtm-enterprise-onboarding/SYNC.md +5 -0
  679. package/skills/gtm-operating-cadence/LICENSE.md +21 -0
  680. package/skills/gtm-operating-cadence/SKILL.md +420 -0
  681. package/skills/gtm-operating-cadence/SYNC.md +5 -0
  682. package/skills/gtm-partnership-architecture/LICENSE.md +21 -0
  683. package/skills/gtm-partnership-architecture/SKILL.md +470 -0
  684. package/skills/gtm-partnership-architecture/SYNC.md +5 -0
  685. package/skills/gtm-positioning-strategy/LICENSE.md +21 -0
  686. package/skills/gtm-positioning-strategy/SKILL.md +438 -0
  687. package/skills/gtm-positioning-strategy/SYNC.md +5 -0
  688. package/skills/gtm-product-led-growth/LICENSE.md +21 -0
  689. package/skills/gtm-product-led-growth/SKILL.md +339 -0
  690. package/skills/gtm-product-led-growth/SYNC.md +5 -0
  691. package/skills/gtm-technical-product-pricing/LICENSE.md +21 -0
  692. package/skills/gtm-technical-product-pricing/SKILL.md +353 -0
  693. package/skills/gtm-technical-product-pricing/SYNC.md +5 -0
  694. package/skills/image-manipulation-image-magick/LICENSE.md +21 -0
  695. package/skills/image-manipulation-image-magick/SKILL.md +252 -0
  696. package/skills/image-manipulation-image-magick/SYNC.md +5 -0
  697. package/skills/import-infrastructure-as-code/LICENSE.md +21 -0
  698. package/skills/import-infrastructure-as-code/SKILL.md +367 -0
  699. package/skills/import-infrastructure-as-code/SYNC.md +5 -0
  700. package/skills/internal-comms/LICENSE.txt +202 -0
  701. package/skills/internal-comms/SKILL.md +32 -0
  702. package/skills/internal-comms/SYNC.md +5 -0
  703. package/skills/internal-comms/examples/3p-updates.md +47 -0
  704. package/skills/internal-comms/examples/company-newsletter.md +65 -0
  705. package/skills/internal-comms/examples/faq-answers.md +30 -0
  706. package/skills/internal-comms/examples/general-comms.md +16 -0
  707. package/skills/issue-fields-migration/LICENSE.md +21 -0
  708. package/skills/issue-fields-migration/SKILL.md +533 -0
  709. package/skills/issue-fields-migration/SYNC.md +5 -0
  710. package/skills/issue-fields-migration/references/issue-fields-api.md +129 -0
  711. package/skills/issue-fields-migration/references/labels-api.md +74 -0
  712. package/skills/issue-fields-migration/references/projects-api.md +116 -0
  713. package/skills/java-add-graalvm-native-image-support/LICENSE.md +21 -0
  714. package/skills/java-add-graalvm-native-image-support/SKILL.md +449 -0
  715. package/skills/java-add-graalvm-native-image-support/SYNC.md +5 -0
  716. package/skills/java-docs/LICENSE.md +21 -0
  717. package/skills/java-docs/SKILL.md +23 -0
  718. package/skills/java-docs/SYNC.md +5 -0
  719. package/skills/java-junit/LICENSE.md +21 -0
  720. package/skills/java-junit/SKILL.md +63 -0
  721. package/skills/java-junit/SYNC.md +5 -0
  722. package/skills/java-mcp-server-generator/LICENSE.md +21 -0
  723. package/skills/java-mcp-server-generator/SKILL.md +756 -0
  724. package/skills/java-mcp-server-generator/SYNC.md +5 -0
  725. package/skills/java-refactoring-extract-method/LICENSE.md +21 -0
  726. package/skills/java-refactoring-extract-method/SKILL.md +104 -0
  727. package/skills/java-refactoring-extract-method/SYNC.md +5 -0
  728. package/skills/java-refactoring-remove-parameter/LICENSE.md +21 -0
  729. package/skills/java-refactoring-remove-parameter/SKILL.md +84 -0
  730. package/skills/java-refactoring-remove-parameter/SYNC.md +5 -0
  731. package/skills/java-springboot/LICENSE.md +21 -0
  732. package/skills/java-springboot/SKILL.md +65 -0
  733. package/skills/java-springboot/SYNC.md +5 -0
  734. package/skills/javascript-typescript-jest/LICENSE.md +21 -0
  735. package/skills/javascript-typescript-jest/SKILL.md +44 -0
  736. package/skills/javascript-typescript-jest/SYNC.md +5 -0
  737. package/skills/kotlin-mcp-server-generator/LICENSE.md +21 -0
  738. package/skills/kotlin-mcp-server-generator/SKILL.md +449 -0
  739. package/skills/kotlin-mcp-server-generator/SYNC.md +5 -0
  740. package/skills/kotlin-springboot/LICENSE.md +21 -0
  741. package/skills/kotlin-springboot/SKILL.md +70 -0
  742. package/skills/kotlin-springboot/SYNC.md +5 -0
  743. package/skills/legacy-circuit-mockups/LICENSE.md +21 -0
  744. package/skills/legacy-circuit-mockups/SKILL.md +276 -0
  745. package/skills/legacy-circuit-mockups/SYNC.md +5 -0
  746. package/skills/legacy-circuit-mockups/references/28256-eeprom.md +190 -0
  747. package/skills/legacy-circuit-mockups/references/555.md +861 -0
  748. package/skills/legacy-circuit-mockups/references/6502.md +221 -0
  749. package/skills/legacy-circuit-mockups/references/6522.md +211 -0
  750. package/skills/legacy-circuit-mockups/references/6C62256.md +177 -0
  751. package/skills/legacy-circuit-mockups/references/7400-series.md +177 -0
  752. package/skills/legacy-circuit-mockups/references/assembly-compiler.md +258 -0
  753. package/skills/legacy-circuit-mockups/references/assembly-language.md +226 -0
  754. package/skills/legacy-circuit-mockups/references/basic-electronic-components.md +86 -0
  755. package/skills/legacy-circuit-mockups/references/breadboard.md +214 -0
  756. package/skills/legacy-circuit-mockups/references/common-breadboard-components.md +281 -0
  757. package/skills/legacy-circuit-mockups/references/connecting-electronic-components.md +310 -0
  758. package/skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md +245 -0
  759. package/skills/legacy-circuit-mockups/references/emulator-6502.md +251 -0
  760. package/skills/legacy-circuit-mockups/references/emulator-6522.md +288 -0
  761. package/skills/legacy-circuit-mockups/references/emulator-6C62256.md +233 -0
  762. package/skills/legacy-circuit-mockups/references/emulator-lcd.md +266 -0
  763. package/skills/legacy-circuit-mockups/references/lcd.md +208 -0
  764. package/skills/legacy-circuit-mockups/references/minipro.md +211 -0
  765. package/skills/legacy-circuit-mockups/references/t48eeprom-programmer.md +174 -0
  766. package/skills/make-repo-contribution/LICENSE.md +21 -0
  767. package/skills/make-repo-contribution/SKILL.md +90 -0
  768. package/skills/make-repo-contribution/SYNC.md +5 -0
  769. package/skills/make-repo-contribution/assets/issue-template.md +37 -0
  770. package/skills/make-repo-contribution/assets/pr-template.md +36 -0
  771. package/skills/make-skill-template/LICENSE.md +21 -0
  772. package/skills/make-skill-template/SKILL.md +147 -0
  773. package/skills/make-skill-template/SYNC.md +5 -0
  774. package/skills/markdown-to-html/LICENSE.md +21 -0
  775. package/skills/markdown-to-html/SKILL.md +916 -0
  776. package/skills/markdown-to-html/SYNC.md +5 -0
  777. package/skills/markdown-to-html/references/basic-markdown-to-html.md +420 -0
  778. package/skills/markdown-to-html/references/basic-markdown.md +496 -0
  779. package/skills/markdown-to-html/references/code-blocks-to-html.md +165 -0
  780. package/skills/markdown-to-html/references/code-blocks.md +70 -0
  781. package/skills/markdown-to-html/references/collapsed-sections-to-html.md +136 -0
  782. package/skills/markdown-to-html/references/collapsed-sections.md +48 -0
  783. package/skills/markdown-to-html/references/gomarkdown.md +253 -0
  784. package/skills/markdown-to-html/references/hugo.md +394 -0
  785. package/skills/markdown-to-html/references/jekyll.md +321 -0
  786. package/skills/markdown-to-html/references/marked.md +121 -0
  787. package/skills/markdown-to-html/references/pandoc.md +226 -0
  788. package/skills/markdown-to-html/references/tables-to-html.md +169 -0
  789. package/skills/markdown-to-html/references/tables.md +72 -0
  790. package/skills/markdown-to-html/references/writing-mathematical-expressions-to-html.md +350 -0
  791. package/skills/markdown-to-html/references/writing-mathematical-expressions.md +76 -0
  792. package/skills/mcp-builder/LICENSE.txt +202 -0
  793. package/skills/mcp-builder/SKILL.md +236 -0
  794. package/skills/mcp-builder/SYNC.md +5 -0
  795. package/skills/mcp-builder/reference/evaluation.md +602 -0
  796. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  797. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  798. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  799. package/skills/mcp-builder/scripts/connections.py +151 -0
  800. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  801. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  802. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  803. package/skills/mcp-cli/LICENSE.md +21 -0
  804. package/skills/mcp-cli/SKILL.md +78 -0
  805. package/skills/mcp-cli/SYNC.md +5 -0
  806. package/skills/mcp-copilot-studio-server-generator/LICENSE.md +21 -0
  807. package/skills/mcp-copilot-studio-server-generator/SKILL.md +118 -0
  808. package/skills/mcp-copilot-studio-server-generator/SYNC.md +5 -0
  809. package/skills/mcp-create-adaptive-cards/LICENSE.md +21 -0
  810. package/skills/mcp-create-adaptive-cards/SKILL.md +532 -0
  811. package/skills/mcp-create-adaptive-cards/SYNC.md +5 -0
  812. package/skills/mcp-create-declarative-agent/LICENSE.md +21 -0
  813. package/skills/mcp-create-declarative-agent/SKILL.md +315 -0
  814. package/skills/mcp-create-declarative-agent/SYNC.md +5 -0
  815. package/skills/mcp-deploy-manage-agents/LICENSE.md +21 -0
  816. package/skills/mcp-deploy-manage-agents/SKILL.md +341 -0
  817. package/skills/mcp-deploy-manage-agents/SYNC.md +5 -0
  818. package/skills/meeting-minutes/LICENSE.md +21 -0
  819. package/skills/meeting-minutes/SKILL.md +235 -0
  820. package/skills/meeting-minutes/SYNC.md +5 -0
  821. package/skills/memory-merger/LICENSE.md +21 -0
  822. package/skills/memory-merger/SKILL.md +108 -0
  823. package/skills/memory-merger/SYNC.md +5 -0
  824. package/skills/mentoring-juniors/LICENSE.md +21 -0
  825. package/skills/mentoring-juniors/SKILL.md +310 -0
  826. package/skills/mentoring-juniors/SYNC.md +5 -0
  827. package/skills/microsoft-agent-framework/LICENSE.md +21 -0
  828. package/skills/microsoft-agent-framework/SKILL.md +65 -0
  829. package/skills/microsoft-agent-framework/SYNC.md +5 -0
  830. package/skills/microsoft-agent-framework/references/dotnet.md +24 -0
  831. package/skills/microsoft-agent-framework/references/python.md +24 -0
  832. package/skills/microsoft-code-reference/LICENSE.md +21 -0
  833. package/skills/microsoft-code-reference/SKILL.md +99 -0
  834. package/skills/microsoft-code-reference/SYNC.md +5 -0
  835. package/skills/microsoft-docs/LICENSE.md +21 -0
  836. package/skills/microsoft-docs/SKILL.md +134 -0
  837. package/skills/microsoft-docs/SYNC.md +5 -0
  838. package/skills/microsoft-skill-creator/LICENSE.md +21 -0
  839. package/skills/microsoft-skill-creator/SKILL.md +250 -0
  840. package/skills/microsoft-skill-creator/SYNC.md +5 -0
  841. package/skills/microsoft-skill-creator/references/skill-templates.md +345 -0
  842. package/skills/migrating-oracle-to-postgres-stored-procedures/LICENSE.md +21 -0
  843. package/skills/migrating-oracle-to-postgres-stored-procedures/SKILL.md +42 -0
  844. package/skills/migrating-oracle-to-postgres-stored-procedures/SYNC.md +5 -0
  845. package/skills/mkdocs-translations/LICENSE.md +21 -0
  846. package/skills/mkdocs-translations/SKILL.md +108 -0
  847. package/skills/mkdocs-translations/SYNC.md +5 -0
  848. package/skills/model-recommendation/LICENSE.md +21 -0
  849. package/skills/model-recommendation/SKILL.md +672 -0
  850. package/skills/model-recommendation/SYNC.md +5 -0
  851. package/skills/msstore-cli/LICENSE.md +21 -0
  852. package/skills/msstore-cli/SKILL.md +600 -0
  853. package/skills/msstore-cli/SYNC.md +5 -0
  854. package/skills/multi-stage-dockerfile/LICENSE.md +21 -0
  855. package/skills/multi-stage-dockerfile/SKILL.md +46 -0
  856. package/skills/multi-stage-dockerfile/SYNC.md +5 -0
  857. package/skills/my-issues/LICENSE.md +21 -0
  858. package/skills/my-issues/SKILL.md +8 -0
  859. package/skills/my-issues/SYNC.md +5 -0
  860. package/skills/my-pull-requests/LICENSE.md +21 -0
  861. package/skills/my-pull-requests/SKILL.md +14 -0
  862. package/skills/my-pull-requests/SYNC.md +5 -0
  863. package/skills/nano-banana-pro-openrouter/LICENSE.md +21 -0
  864. package/skills/nano-banana-pro-openrouter/SKILL.md +74 -0
  865. package/skills/nano-banana-pro-openrouter/SYNC.md +5 -0
  866. package/skills/nano-banana-pro-openrouter/assets/SYSTEM_TEMPLATE +14 -0
  867. package/skills/nano-banana-pro-openrouter/scripts/generate_image.py +191 -0
  868. package/skills/napkin/LICENSE.md +21 -0
  869. package/skills/napkin/SKILL.md +154 -0
  870. package/skills/napkin/SYNC.md +5 -0
  871. package/skills/napkin/assets/napkin.html +2019 -0
  872. package/skills/napkin/assets/step1-activate.svg +107 -0
  873. package/skills/napkin/assets/step2-whiteboard.svg +157 -0
  874. package/skills/napkin/assets/step3-draw.svg +143 -0
  875. package/skills/napkin/assets/step4-share.svg +98 -0
  876. package/skills/napkin/assets/step5-response.svg +112 -0
  877. package/skills/next-best-practices/SKILL.md +153 -0
  878. package/skills/next-best-practices/SYNC.md +5 -0
  879. package/skills/next-best-practices/async-patterns.md +87 -0
  880. package/skills/next-best-practices/bundling.md +180 -0
  881. package/skills/next-best-practices/data-patterns.md +297 -0
  882. package/skills/next-best-practices/debug-tricks.md +105 -0
  883. package/skills/next-best-practices/directives.md +73 -0
  884. package/skills/next-best-practices/error-handling.md +227 -0
  885. package/skills/next-best-practices/file-conventions.md +140 -0
  886. package/skills/next-best-practices/font.md +245 -0
  887. package/skills/next-best-practices/functions.md +108 -0
  888. package/skills/next-best-practices/hydration-error.md +91 -0
  889. package/skills/next-best-practices/image.md +173 -0
  890. package/skills/next-best-practices/metadata.md +301 -0
  891. package/skills/next-best-practices/parallel-routes.md +287 -0
  892. package/skills/next-best-practices/route-handlers.md +146 -0
  893. package/skills/next-best-practices/rsc-boundaries.md +159 -0
  894. package/skills/next-best-practices/runtime-selection.md +39 -0
  895. package/skills/next-best-practices/scripts.md +141 -0
  896. package/skills/next-best-practices/self-hosting.md +371 -0
  897. package/skills/next-best-practices/suspense-boundaries.md +67 -0
  898. package/skills/next-cache-components/SKILL.md +411 -0
  899. package/skills/next-cache-components/SYNC.md +5 -0
  900. package/skills/next-intl-add-language/LICENSE.md +21 -0
  901. package/skills/next-intl-add-language/SKILL.md +19 -0
  902. package/skills/next-intl-add-language/SYNC.md +5 -0
  903. package/skills/next-upgrade/SKILL.md +50 -0
  904. package/skills/next-upgrade/SYNC.md +5 -0
  905. package/skills/noob-mode/LICENSE.md +21 -0
  906. package/skills/noob-mode/SKILL.md +263 -0
  907. package/skills/noob-mode/SYNC.md +5 -0
  908. package/skills/noob-mode/references/examples.md +418 -0
  909. package/skills/noob-mode/references/glossary.md +368 -0
  910. package/skills/nuget-manager/LICENSE.md +21 -0
  911. package/skills/nuget-manager/SKILL.md +68 -0
  912. package/skills/nuget-manager/SYNC.md +5 -0
  913. package/skills/oo-component-documentation/LICENSE.md +21 -0
  914. package/skills/oo-component-documentation/SKILL.md +74 -0
  915. package/skills/oo-component-documentation/SYNC.md +5 -0
  916. package/skills/oo-component-documentation/assets/documentation-template.md +97 -0
  917. package/skills/oo-component-documentation/references/create-mode.md +32 -0
  918. package/skills/oo-component-documentation/references/update-mode.md +32 -0
  919. package/skills/openapi-to-application-code/LICENSE.md +21 -0
  920. package/skills/openapi-to-application-code/SKILL.md +112 -0
  921. package/skills/openapi-to-application-code/SYNC.md +5 -0
  922. package/skills/pdf/LICENSE.txt +30 -0
  923. package/skills/pdf/SKILL.md +314 -0
  924. package/skills/pdf/SYNC.md +5 -0
  925. package/skills/pdf/forms.md +294 -0
  926. package/skills/pdf/reference.md +612 -0
  927. package/skills/pdf/scripts/check_bounding_boxes.py +65 -0
  928. package/skills/pdf/scripts/check_fillable_fields.py +11 -0
  929. package/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
  930. package/skills/pdf/scripts/create_validation_image.py +37 -0
  931. package/skills/pdf/scripts/extract_form_field_info.py +122 -0
  932. package/skills/pdf/scripts/extract_form_structure.py +115 -0
  933. package/skills/pdf/scripts/fill_fillable_fields.py +98 -0
  934. package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  935. package/skills/pdftk-server/LICENSE.md +21 -0
  936. package/skills/pdftk-server/SKILL.md +162 -0
  937. package/skills/pdftk-server/SYNC.md +5 -0
  938. package/skills/pdftk-server/references/download.md +75 -0
  939. package/skills/pdftk-server/references/pdftk-cli-examples.md +193 -0
  940. package/skills/pdftk-server/references/pdftk-man-page.md +232 -0
  941. package/skills/pdftk-server/references/pdftk-server-license.md +25 -0
  942. package/skills/pdftk-server/references/third-party-materials.md +103 -0
  943. package/skills/penpot-uiux-design/LICENSE.md +21 -0
  944. package/skills/penpot-uiux-design/SKILL.md +342 -0
  945. package/skills/penpot-uiux-design/SYNC.md +5 -0
  946. package/skills/penpot-uiux-design/references/accessibility.md +329 -0
  947. package/skills/penpot-uiux-design/references/component-patterns.md +339 -0
  948. package/skills/penpot-uiux-design/references/platform-guidelines.md +367 -0
  949. package/skills/penpot-uiux-design/references/setup-troubleshooting.md +328 -0
  950. package/skills/php-mcp-server-generator/LICENSE.md +21 -0
  951. package/skills/php-mcp-server-generator/SKILL.md +522 -0
  952. package/skills/php-mcp-server-generator/SYNC.md +5 -0
  953. package/skills/planning-oracle-to-postgres-migration-integration-testing/LICENSE.md +21 -0
  954. package/skills/planning-oracle-to-postgres-migration-integration-testing/SKILL.md +44 -0
  955. package/skills/planning-oracle-to-postgres-migration-integration-testing/SYNC.md +5 -0
  956. package/skills/plantuml-ascii/LICENSE.md +21 -0
  957. package/skills/plantuml-ascii/SKILL.md +305 -0
  958. package/skills/plantuml-ascii/SYNC.md +5 -0
  959. package/skills/playwright-automation-fill-in-form/LICENSE.md +21 -0
  960. package/skills/playwright-automation-fill-in-form/SKILL.md +28 -0
  961. package/skills/playwright-automation-fill-in-form/SYNC.md +5 -0
  962. package/skills/playwright-explore-website/LICENSE.md +21 -0
  963. package/skills/playwright-explore-website/SKILL.md +17 -0
  964. package/skills/playwright-explore-website/SYNC.md +5 -0
  965. package/skills/playwright-generate-test/LICENSE.md +21 -0
  966. package/skills/playwright-generate-test/SKILL.md +17 -0
  967. package/skills/playwright-generate-test/SYNC.md +5 -0
  968. package/skills/polyglot-test-agent/LICENSE.md +21 -0
  969. package/skills/polyglot-test-agent/SKILL.md +161 -0
  970. package/skills/polyglot-test-agent/SYNC.md +5 -0
  971. package/skills/polyglot-test-agent/unit-test-generation.prompt.md +155 -0
  972. package/skills/postgresql-code-review/LICENSE.md +21 -0
  973. package/skills/postgresql-code-review/SKILL.md +212 -0
  974. package/skills/postgresql-code-review/SYNC.md +5 -0
  975. package/skills/postgresql-optimization/LICENSE.md +21 -0
  976. package/skills/postgresql-optimization/SKILL.md +404 -0
  977. package/skills/postgresql-optimization/SYNC.md +5 -0
  978. package/skills/power-apps-code-app-scaffold/LICENSE.md +21 -0
  979. package/skills/power-apps-code-app-scaffold/SKILL.md +146 -0
  980. package/skills/power-apps-code-app-scaffold/SYNC.md +5 -0
  981. package/skills/power-bi-dax-optimization/LICENSE.md +21 -0
  982. package/skills/power-bi-dax-optimization/SKILL.md +173 -0
  983. package/skills/power-bi-dax-optimization/SYNC.md +5 -0
  984. package/skills/power-bi-model-design-review/LICENSE.md +21 -0
  985. package/skills/power-bi-model-design-review/SKILL.md +403 -0
  986. package/skills/power-bi-model-design-review/SYNC.md +5 -0
  987. package/skills/power-bi-performance-troubleshooting/LICENSE.md +21 -0
  988. package/skills/power-bi-performance-troubleshooting/SKILL.md +382 -0
  989. package/skills/power-bi-performance-troubleshooting/SYNC.md +5 -0
  990. package/skills/power-bi-report-design-consultation/LICENSE.md +21 -0
  991. package/skills/power-bi-report-design-consultation/SKILL.md +351 -0
  992. package/skills/power-bi-report-design-consultation/SYNC.md +5 -0
  993. package/skills/power-platform-mcp-connector-suite/LICENSE.md +21 -0
  994. package/skills/power-platform-mcp-connector-suite/SKILL.md +156 -0
  995. package/skills/power-platform-mcp-connector-suite/SYNC.md +5 -0
  996. package/skills/powerbi-modeling/LICENSE.md +21 -0
  997. package/skills/powerbi-modeling/SKILL.md +153 -0
  998. package/skills/powerbi-modeling/SYNC.md +5 -0
  999. package/skills/powerbi-modeling/references/MEASURES-DAX.md +195 -0
  1000. package/skills/powerbi-modeling/references/PERFORMANCE.md +215 -0
  1001. package/skills/powerbi-modeling/references/RELATIONSHIPS.md +147 -0
  1002. package/skills/powerbi-modeling/references/RLS.md +226 -0
  1003. package/skills/powerbi-modeling/references/STAR-SCHEMA.md +103 -0
  1004. package/skills/pptx/LICENSE.txt +30 -0
  1005. package/skills/pptx/SKILL.md +232 -0
  1006. package/skills/pptx/SYNC.md +5 -0
  1007. package/skills/pptx/editing.md +205 -0
  1008. package/skills/pptx/pptxgenjs.md +420 -0
  1009. package/skills/pptx/scripts/__init__.py +0 -0
  1010. package/skills/pptx/scripts/add_slide.py +195 -0
  1011. package/skills/pptx/scripts/clean.py +286 -0
  1012. package/skills/pptx/scripts/office/helpers/__init__.py +0 -0
  1013. package/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
  1014. package/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  1015. package/skills/pptx/scripts/office/pack.py +159 -0
  1016. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  1017. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  1018. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  1019. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  1020. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  1021. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  1022. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  1023. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  1024. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  1025. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  1026. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  1027. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  1028. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  1029. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  1030. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  1031. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  1032. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  1033. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  1034. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  1035. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  1036. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  1037. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  1038. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  1039. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  1040. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  1041. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  1042. package/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  1043. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  1044. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  1045. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  1046. package/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  1047. package/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  1048. package/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  1049. package/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  1050. package/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  1051. package/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  1052. package/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  1053. package/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  1054. package/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  1055. package/skills/pptx/scripts/office/soffice.py +183 -0
  1056. package/skills/pptx/scripts/office/unpack.py +132 -0
  1057. package/skills/pptx/scripts/office/validate.py +111 -0
  1058. package/skills/pptx/scripts/office/validators/__init__.py +15 -0
  1059. package/skills/pptx/scripts/office/validators/base.py +847 -0
  1060. package/skills/pptx/scripts/office/validators/docx.py +446 -0
  1061. package/skills/pptx/scripts/office/validators/pptx.py +275 -0
  1062. package/skills/pptx/scripts/office/validators/redlining.py +247 -0
  1063. package/skills/pptx/scripts/thumbnail.py +289 -0
  1064. package/skills/prd/LICENSE.md +21 -0
  1065. package/skills/prd/SKILL.md +143 -0
  1066. package/skills/prd/SYNC.md +5 -0
  1067. package/skills/premium-frontend-ui/LICENSE.md +21 -0
  1068. package/skills/premium-frontend-ui/SKILL.md +110 -0
  1069. package/skills/premium-frontend-ui/SYNC.md +5 -0
  1070. package/skills/project-workflow-analysis-blueprint-generator/LICENSE.md +21 -0
  1071. package/skills/project-workflow-analysis-blueprint-generator/SKILL.md +293 -0
  1072. package/skills/project-workflow-analysis-blueprint-generator/SYNC.md +5 -0
  1073. package/skills/prompt-builder/LICENSE.md +21 -0
  1074. package/skills/prompt-builder/SKILL.md +141 -0
  1075. package/skills/prompt-builder/SYNC.md +5 -0
  1076. package/skills/publish-to-pages/LICENSE.md +21 -0
  1077. package/skills/publish-to-pages/SKILL.md +107 -0
  1078. package/skills/publish-to-pages/SYNC.md +5 -0
  1079. package/skills/publish-to-pages/scripts/convert-pdf.py +176 -0
  1080. package/skills/publish-to-pages/scripts/convert-pptx.py +376 -0
  1081. package/skills/publish-to-pages/scripts/publish.sh +51 -0
  1082. package/skills/pytest-coverage/LICENSE.md +21 -0
  1083. package/skills/pytest-coverage/SKILL.md +28 -0
  1084. package/skills/pytest-coverage/SYNC.md +5 -0
  1085. package/skills/python-mcp-server-generator/LICENSE.md +21 -0
  1086. package/skills/python-mcp-server-generator/SKILL.md +105 -0
  1087. package/skills/python-mcp-server-generator/SYNC.md +5 -0
  1088. package/skills/quasi-coder/LICENSE.md +21 -0
  1089. package/skills/quasi-coder/SKILL.md +369 -0
  1090. package/skills/quasi-coder/SYNC.md +5 -0
  1091. package/skills/readme-blueprint-generator/LICENSE.md +21 -0
  1092. package/skills/readme-blueprint-generator/SKILL.md +78 -0
  1093. package/skills/readme-blueprint-generator/SYNC.md +5 -0
  1094. package/skills/refactor/LICENSE.md +21 -0
  1095. package/skills/refactor/SKILL.md +645 -0
  1096. package/skills/refactor/SYNC.md +5 -0
  1097. package/skills/refactor-method-complexity-reduce/LICENSE.md +21 -0
  1098. package/skills/refactor-method-complexity-reduce/SKILL.md +98 -0
  1099. package/skills/refactor-method-complexity-reduce/SYNC.md +5 -0
  1100. package/skills/refactor-plan/LICENSE.md +21 -0
  1101. package/skills/refactor-plan/SKILL.md +65 -0
  1102. package/skills/refactor-plan/SYNC.md +5 -0
  1103. package/skills/remember/LICENSE.md +21 -0
  1104. package/skills/remember/SKILL.md +126 -0
  1105. package/skills/remember/SYNC.md +5 -0
  1106. package/skills/remember-interactive-programming/LICENSE.md +21 -0
  1107. package/skills/remember-interactive-programming/SKILL.md +13 -0
  1108. package/skills/remember-interactive-programming/SYNC.md +5 -0
  1109. package/skills/repo-story-time/LICENSE.md +21 -0
  1110. package/skills/repo-story-time/SKILL.md +154 -0
  1111. package/skills/repo-story-time/SYNC.md +5 -0
  1112. package/skills/review-and-refactor/LICENSE.md +21 -0
  1113. package/skills/review-and-refactor/SKILL.md +15 -0
  1114. package/skills/review-and-refactor/SYNC.md +5 -0
  1115. package/skills/reviewing-oracle-to-postgres-migration/LICENSE.md +21 -0
  1116. package/skills/reviewing-oracle-to-postgres-migration/SKILL.md +67 -0
  1117. package/skills/reviewing-oracle-to-postgres-migration/SYNC.md +5 -0
  1118. package/skills/reviewing-oracle-to-postgres-migration/references/REFERENCE.md +13 -0
  1119. package/skills/reviewing-oracle-to-postgres-migration/references/empty-strings-handling.md +69 -0
  1120. package/skills/reviewing-oracle-to-postgres-migration/references/no-data-found-exceptions.md +99 -0
  1121. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-parentheses-from-clause.md +190 -0
  1122. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-sorting.md +51 -0
  1123. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-timestamp-timezone.md +187 -0
  1124. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-to-char-numeric.md +145 -0
  1125. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-type-coercion.md +182 -0
  1126. package/skills/reviewing-oracle-to-postgres-migration/references/postgres-concurrent-transactions.md +259 -0
  1127. package/skills/reviewing-oracle-to-postgres-migration/references/postgres-refcursor-handling.md +148 -0
  1128. package/skills/ruby-mcp-server-generator/LICENSE.md +21 -0
  1129. package/skills/ruby-mcp-server-generator/SKILL.md +660 -0
  1130. package/skills/ruby-mcp-server-generator/SYNC.md +5 -0
  1131. package/skills/rust-mcp-server-generator/LICENSE.md +21 -0
  1132. package/skills/rust-mcp-server-generator/SKILL.md +577 -0
  1133. package/skills/rust-mcp-server-generator/SYNC.md +5 -0
  1134. package/skills/sandbox-npm-install/LICENSE.md +21 -0
  1135. package/skills/sandbox-npm-install/SKILL.md +80 -0
  1136. package/skills/sandbox-npm-install/SYNC.md +5 -0
  1137. package/skills/sandbox-npm-install/scripts/install.sh +193 -0
  1138. package/skills/scaffolding-oracle-to-postgres-migration-test-project/LICENSE.md +21 -0
  1139. package/skills/scaffolding-oracle-to-postgres-migration-test-project/SKILL.md +54 -0
  1140. package/skills/scaffolding-oracle-to-postgres-migration-test-project/SYNC.md +5 -0
  1141. package/skills/scoutqa-test/LICENSE.md +21 -0
  1142. package/skills/scoutqa-test/SKILL.md +375 -0
  1143. package/skills/scoutqa-test/SYNC.md +5 -0
  1144. package/skills/secret-scanning/LICENSE.md +21 -0
  1145. package/skills/secret-scanning/SKILL.md +224 -0
  1146. package/skills/secret-scanning/SYNC.md +5 -0
  1147. package/skills/secret-scanning/references/alerts-and-remediation.md +245 -0
  1148. package/skills/secret-scanning/references/custom-patterns.md +158 -0
  1149. package/skills/secret-scanning/references/push-protection.md +164 -0
  1150. package/skills/semantic-kernel/LICENSE.md +21 -0
  1151. package/skills/semantic-kernel/SKILL.md +56 -0
  1152. package/skills/semantic-kernel/SYNC.md +5 -0
  1153. package/skills/semantic-kernel/references/dotnet.md +15 -0
  1154. package/skills/semantic-kernel/references/python.md +15 -0
  1155. package/skills/shadcn/LICENSE.md +21 -0
  1156. package/skills/shadcn/SKILL.md +242 -0
  1157. package/skills/shadcn/SYNC.md +5 -0
  1158. package/skills/shadcn/agents/openai.yml +5 -0
  1159. package/skills/shadcn/assets/shadcn-small.png +0 -0
  1160. package/skills/shadcn/assets/shadcn.png +0 -0
  1161. package/skills/shadcn/cli.md +257 -0
  1162. package/skills/shadcn/customization.md +202 -0
  1163. package/skills/shadcn/evals/evals.json +47 -0
  1164. package/skills/shadcn/mcp.md +94 -0
  1165. package/skills/shadcn/rules/base-vs-radix.md +306 -0
  1166. package/skills/shadcn/rules/composition.md +195 -0
  1167. package/skills/shadcn/rules/forms.md +192 -0
  1168. package/skills/shadcn/rules/icons.md +101 -0
  1169. package/skills/shadcn/rules/styling.md +162 -0
  1170. package/skills/shuffle-json-data/LICENSE.md +21 -0
  1171. package/skills/shuffle-json-data/SKILL.md +150 -0
  1172. package/skills/shuffle-json-data/SYNC.md +5 -0
  1173. package/skills/skill-creator/LICENSE.txt +202 -0
  1174. package/skills/skill-creator/SKILL.md +485 -0
  1175. package/skills/skill-creator/SYNC.md +5 -0
  1176. package/skills/skill-creator/agents/analyzer.md +274 -0
  1177. package/skills/skill-creator/agents/comparator.md +202 -0
  1178. package/skills/skill-creator/agents/grader.md +223 -0
  1179. package/skills/skill-creator/assets/eval_review.html +146 -0
  1180. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  1181. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  1182. package/skills/skill-creator/references/schemas.md +430 -0
  1183. package/skills/skill-creator/scripts/__init__.py +0 -0
  1184. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  1185. package/skills/skill-creator/scripts/generate_report.py +326 -0
  1186. package/skills/skill-creator/scripts/improve_description.py +247 -0
  1187. package/skills/skill-creator/scripts/package_skill.py +136 -0
  1188. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  1189. package/skills/skill-creator/scripts/run_eval.py +310 -0
  1190. package/skills/skill-creator/scripts/run_loop.py +328 -0
  1191. package/skills/skill-creator/scripts/utils.py +47 -0
  1192. package/skills/slack-gif-creator/LICENSE.txt +202 -0
  1193. package/skills/slack-gif-creator/SKILL.md +254 -0
  1194. package/skills/slack-gif-creator/SYNC.md +5 -0
  1195. package/skills/slack-gif-creator/core/easing.py +234 -0
  1196. package/skills/slack-gif-creator/core/frame_composer.py +176 -0
  1197. package/skills/slack-gif-creator/core/gif_builder.py +269 -0
  1198. package/skills/slack-gif-creator/core/validators.py +136 -0
  1199. package/skills/slack-gif-creator/requirements.txt +4 -0
  1200. package/skills/snowflake-semanticview/LICENSE.md +21 -0
  1201. package/skills/snowflake-semanticview/SKILL.md +83 -0
  1202. package/skills/snowflake-semanticview/SYNC.md +5 -0
  1203. package/skills/sponsor-finder/LICENSE.md +21 -0
  1204. package/skills/sponsor-finder/SKILL.md +258 -0
  1205. package/skills/sponsor-finder/SYNC.md +5 -0
  1206. package/skills/spring-boot-testing/LICENSE.md +21 -0
  1207. package/skills/spring-boot-testing/SKILL.md +189 -0
  1208. package/skills/spring-boot-testing/SYNC.md +5 -0
  1209. package/skills/spring-boot-testing/references/assertj-basics.md +207 -0
  1210. package/skills/spring-boot-testing/references/assertj-collections.md +183 -0
  1211. package/skills/spring-boot-testing/references/context-caching.md +115 -0
  1212. package/skills/spring-boot-testing/references/datajpatest.md +197 -0
  1213. package/skills/spring-boot-testing/references/instancio.md +230 -0
  1214. package/skills/spring-boot-testing/references/mockitobean.md +232 -0
  1215. package/skills/spring-boot-testing/references/mockmvc-classic.md +206 -0
  1216. package/skills/spring-boot-testing/references/mockmvc-tester.md +311 -0
  1217. package/skills/spring-boot-testing/references/restclienttest.md +227 -0
  1218. package/skills/spring-boot-testing/references/resttestclient.md +278 -0
  1219. package/skills/spring-boot-testing/references/sb4-migration.md +181 -0
  1220. package/skills/spring-boot-testing/references/test-slices-overview.md +203 -0
  1221. package/skills/spring-boot-testing/references/testcontainers-jdbc.md +234 -0
  1222. package/skills/spring-boot-testing/references/webmvctest.md +177 -0
  1223. package/skills/sql-code-review/LICENSE.md +21 -0
  1224. package/skills/sql-code-review/SKILL.md +301 -0
  1225. package/skills/sql-code-review/SYNC.md +5 -0
  1226. package/skills/sql-optimization/LICENSE.md +21 -0
  1227. package/skills/sql-optimization/SKILL.md +296 -0
  1228. package/skills/sql-optimization/SYNC.md +5 -0
  1229. package/skills/structured-autonomy-generate/LICENSE.md +21 -0
  1230. package/skills/structured-autonomy-generate/SKILL.md +125 -0
  1231. package/skills/structured-autonomy-generate/SYNC.md +5 -0
  1232. package/skills/structured-autonomy-implement/LICENSE.md +21 -0
  1233. package/skills/structured-autonomy-implement/SKILL.md +19 -0
  1234. package/skills/structured-autonomy-implement/SYNC.md +5 -0
  1235. package/skills/structured-autonomy-plan/LICENSE.md +21 -0
  1236. package/skills/structured-autonomy-plan/SKILL.md +81 -0
  1237. package/skills/structured-autonomy-plan/SYNC.md +5 -0
  1238. package/skills/suggest-awesome-github-copilot-agents/LICENSE.md +21 -0
  1239. package/skills/suggest-awesome-github-copilot-agents/SKILL.md +106 -0
  1240. package/skills/suggest-awesome-github-copilot-agents/SYNC.md +5 -0
  1241. package/skills/suggest-awesome-github-copilot-instructions/LICENSE.md +21 -0
  1242. package/skills/suggest-awesome-github-copilot-instructions/SKILL.md +122 -0
  1243. package/skills/suggest-awesome-github-copilot-instructions/SYNC.md +5 -0
  1244. package/skills/suggest-awesome-github-copilot-skills/LICENSE.md +21 -0
  1245. package/skills/suggest-awesome-github-copilot-skills/SKILL.md +130 -0
  1246. package/skills/suggest-awesome-github-copilot-skills/SYNC.md +5 -0
  1247. package/skills/swift-mcp-server-generator/LICENSE.md +21 -0
  1248. package/skills/swift-mcp-server-generator/SKILL.md +669 -0
  1249. package/skills/swift-mcp-server-generator/SYNC.md +5 -0
  1250. package/skills/technology-stack-blueprint-generator/LICENSE.md +21 -0
  1251. package/skills/technology-stack-blueprint-generator/SKILL.md +242 -0
  1252. package/skills/technology-stack-blueprint-generator/SYNC.md +5 -0
  1253. package/skills/terraform-azurerm-set-diff-analyzer/LICENSE.md +21 -0
  1254. package/skills/terraform-azurerm-set-diff-analyzer/SKILL.md +48 -0
  1255. package/skills/terraform-azurerm-set-diff-analyzer/SYNC.md +5 -0
  1256. package/skills/terraform-azurerm-set-diff-analyzer/references/azurerm_set_attributes.json +154 -0
  1257. package/skills/terraform-azurerm-set-diff-analyzer/references/azurerm_set_attributes.md +145 -0
  1258. package/skills/terraform-azurerm-set-diff-analyzer/scripts/README.md +205 -0
  1259. package/skills/terraform-azurerm-set-diff-analyzer/scripts/analyze_plan.py +940 -0
  1260. package/skills/theme-factory/LICENSE.txt +202 -0
  1261. package/skills/theme-factory/SKILL.md +59 -0
  1262. package/skills/theme-factory/SYNC.md +5 -0
  1263. package/skills/theme-factory/theme-showcase.pdf +0 -0
  1264. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  1265. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  1266. package/skills/theme-factory/themes/desert-rose.md +19 -0
  1267. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  1268. package/skills/theme-factory/themes/golden-hour.md +19 -0
  1269. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  1270. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  1271. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  1272. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  1273. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  1274. package/skills/tldr-prompt/LICENSE.md +21 -0
  1275. package/skills/tldr-prompt/SKILL.md +304 -0
  1276. package/skills/tldr-prompt/SYNC.md +5 -0
  1277. package/skills/transloadit-media-processing/LICENSE.md +21 -0
  1278. package/skills/transloadit-media-processing/SKILL.md +194 -0
  1279. package/skills/transloadit-media-processing/SYNC.md +5 -0
  1280. package/skills/typescript-mcp-server-generator/LICENSE.md +21 -0
  1281. package/skills/typescript-mcp-server-generator/SKILL.md +90 -0
  1282. package/skills/typescript-mcp-server-generator/SYNC.md +5 -0
  1283. package/skills/typespec-api-operations/LICENSE.md +21 -0
  1284. package/skills/typespec-api-operations/SKILL.md +418 -0
  1285. package/skills/typespec-api-operations/SYNC.md +5 -0
  1286. package/skills/typespec-create-agent/LICENSE.md +21 -0
  1287. package/skills/typespec-create-agent/SKILL.md +91 -0
  1288. package/skills/typespec-create-agent/SYNC.md +5 -0
  1289. package/skills/typespec-create-api-plugin/LICENSE.md +21 -0
  1290. package/skills/typespec-create-api-plugin/SKILL.md +164 -0
  1291. package/skills/typespec-create-api-plugin/SYNC.md +5 -0
  1292. package/skills/unit-test-vue-pinia/LICENSE.md +21 -0
  1293. package/skills/unit-test-vue-pinia/SKILL.md +198 -0
  1294. package/skills/unit-test-vue-pinia/SYNC.md +5 -0
  1295. package/skills/unit-test-vue-pinia/references/pinia-patterns.md +95 -0
  1296. package/skills/update-avm-modules-in-bicep/LICENSE.md +21 -0
  1297. package/skills/update-avm-modules-in-bicep/SKILL.md +60 -0
  1298. package/skills/update-avm-modules-in-bicep/SYNC.md +5 -0
  1299. package/skills/update-implementation-plan/LICENSE.md +21 -0
  1300. package/skills/update-implementation-plan/SKILL.md +157 -0
  1301. package/skills/update-implementation-plan/SYNC.md +5 -0
  1302. package/skills/update-llms/LICENSE.md +21 -0
  1303. package/skills/update-llms/SKILL.md +216 -0
  1304. package/skills/update-llms/SYNC.md +5 -0
  1305. package/skills/update-markdown-file-index/LICENSE.md +21 -0
  1306. package/skills/update-markdown-file-index/SKILL.md +76 -0
  1307. package/skills/update-markdown-file-index/SYNC.md +5 -0
  1308. package/skills/update-specification/LICENSE.md +21 -0
  1309. package/skills/update-specification/SKILL.md +127 -0
  1310. package/skills/update-specification/SYNC.md +5 -0
  1311. package/skills/vscode-ext-commands/LICENSE.md +21 -0
  1312. package/skills/vscode-ext-commands/SKILL.md +21 -0
  1313. package/skills/vscode-ext-commands/SYNC.md +5 -0
  1314. package/skills/vscode-ext-localization/LICENSE.md +21 -0
  1315. package/skills/vscode-ext-localization/SKILL.md +25 -0
  1316. package/skills/vscode-ext-localization/SYNC.md +5 -0
  1317. package/skills/vue-best-practices/SYNC.md +1 -1
  1318. package/skills/vue-jsx-best-practices/SYNC.md +1 -1
  1319. package/skills/vue-options-api-best-practices/SYNC.md +1 -1
  1320. package/skills/vue-pinia-best-practices/SYNC.md +1 -1
  1321. package/skills/vue-router-best-practices/SYNC.md +1 -1
  1322. package/skills/vue-testing-best-practices/SYNC.md +1 -1
  1323. package/skills/web-artifacts-builder/LICENSE.txt +202 -0
  1324. package/skills/web-artifacts-builder/SKILL.md +74 -0
  1325. package/skills/web-artifacts-builder/SYNC.md +5 -0
  1326. package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  1327. package/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  1328. package/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  1329. package/skills/web-coder/LICENSE.md +21 -0
  1330. package/skills/web-coder/SKILL.md +563 -0
  1331. package/skills/web-coder/SYNC.md +5 -0
  1332. package/skills/web-coder/references/accessibility.md +346 -0
  1333. package/skills/web-coder/references/architecture-patterns.md +625 -0
  1334. package/skills/web-coder/references/browsers-engines.md +358 -0
  1335. package/skills/web-coder/references/css-styling.md +696 -0
  1336. package/skills/web-coder/references/data-formats-encoding.md +411 -0
  1337. package/skills/web-coder/references/development-tools.md +502 -0
  1338. package/skills/web-coder/references/glossary.md +649 -0
  1339. package/skills/web-coder/references/html-markup.md +387 -0
  1340. package/skills/web-coder/references/http-networking.md +538 -0
  1341. package/skills/web-coder/references/javascript-programming.md +807 -0
  1342. package/skills/web-coder/references/media-graphics.md +504 -0
  1343. package/skills/web-coder/references/performance-optimization.md +546 -0
  1344. package/skills/web-coder/references/security-authentication.md +603 -0
  1345. package/skills/web-coder/references/servers-infrastructure.md +615 -0
  1346. package/skills/web-coder/references/web-apis-dom.md +654 -0
  1347. package/skills/web-coder/references/web-protocols-standards.md +265 -0
  1348. package/skills/web-design-reviewer/LICENSE.md +21 -0
  1349. package/skills/web-design-reviewer/SKILL.md +368 -0
  1350. package/skills/web-design-reviewer/SYNC.md +5 -0
  1351. package/skills/web-design-reviewer/references/framework-fixes.md +475 -0
  1352. package/skills/web-design-reviewer/references/visual-checklist.md +236 -0
  1353. package/skills/webapp-testing/LICENSE.md +21 -0
  1354. package/skills/webapp-testing/SKILL.md +133 -0
  1355. package/skills/webapp-testing/SYNC.md +5 -0
  1356. package/skills/webapp-testing/assets/test-helper.js +56 -0
  1357. package/skills/what-context-needed/LICENSE.md +21 -0
  1358. package/skills/what-context-needed/SKILL.md +39 -0
  1359. package/skills/what-context-needed/SYNC.md +5 -0
  1360. package/skills/winapp-cli/LICENSE.md +21 -0
  1361. package/skills/winapp-cli/SKILL.md +217 -0
  1362. package/skills/winapp-cli/SYNC.md +5 -0
  1363. package/skills/winmd-api-search/LICENSE.md +21 -0
  1364. package/skills/winmd-api-search/LICENSE.txt +21 -0
  1365. package/skills/winmd-api-search/SKILL.md +192 -0
  1366. package/skills/winmd-api-search/SYNC.md +5 -0
  1367. package/skills/winmd-api-search/scripts/Invoke-WinMdQuery.ps1 +505 -0
  1368. package/skills/winmd-api-search/scripts/Update-WinMdCache.ps1 +208 -0
  1369. package/skills/winmd-api-search/scripts/cache-generator/CacheGenerator.csproj +29 -0
  1370. package/skills/winmd-api-search/scripts/cache-generator/Directory.Build.props +3 -0
  1371. package/skills/winmd-api-search/scripts/cache-generator/Directory.Build.targets +3 -0
  1372. package/skills/winmd-api-search/scripts/cache-generator/Directory.Packages.props +3 -0
  1373. package/skills/winmd-api-search/scripts/cache-generator/Program.cs +1222 -0
  1374. package/skills/winui3-migration-guide/LICENSE.md +21 -0
  1375. package/skills/winui3-migration-guide/SKILL.md +277 -0
  1376. package/skills/winui3-migration-guide/SYNC.md +5 -0
  1377. package/skills/workiq-copilot/LICENSE.md +21 -0
  1378. package/skills/workiq-copilot/SKILL.md +98 -0
  1379. package/skills/workiq-copilot/SYNC.md +5 -0
  1380. package/skills/write-coding-standards-from-file/LICENSE.md +21 -0
  1381. package/skills/write-coding-standards-from-file/SKILL.md +316 -0
  1382. package/skills/write-coding-standards-from-file/SYNC.md +5 -0
  1383. package/skills/xlsx/LICENSE.txt +30 -0
  1384. package/skills/xlsx/SKILL.md +292 -0
  1385. package/skills/xlsx/SYNC.md +5 -0
  1386. package/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  1387. package/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  1388. package/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  1389. package/skills/xlsx/scripts/office/pack.py +159 -0
  1390. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  1391. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  1392. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  1393. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  1394. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  1395. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  1396. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  1397. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  1398. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  1399. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  1400. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  1401. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  1402. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  1403. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  1404. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  1405. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  1406. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  1407. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  1408. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  1409. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  1410. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  1411. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  1412. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  1413. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  1414. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  1415. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  1416. package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  1417. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  1418. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  1419. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  1420. package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  1421. package/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  1422. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  1423. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  1424. package/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  1425. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  1426. package/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  1427. package/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  1428. package/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  1429. package/skills/xlsx/scripts/office/soffice.py +183 -0
  1430. package/skills/xlsx/scripts/office/unpack.py +132 -0
  1431. package/skills/xlsx/scripts/office/validate.py +111 -0
  1432. package/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  1433. package/skills/xlsx/scripts/office/validators/base.py +847 -0
  1434. package/skills/xlsx/scripts/office/validators/docx.py +446 -0
  1435. package/skills/xlsx/scripts/office/validators/pptx.py +275 -0
  1436. package/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  1437. package/skills/xlsx/scripts/recalc.py +184 -0
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: reviewing-oracle-to-postgres-migration
3
+ description: 'Identifies Oracle-to-PostgreSQL migration risks by cross-referencing code against known behavioral differences (empty strings, refcursors, type coercion, sorting, timestamps, concurrent transactions, etc.). Use when planning a database migration, reviewing migration artifacts, or validating that integration tests cover Oracle/PostgreSQL differences.'
4
+ ---
5
+
6
+ # Oracle-to-PostgreSQL Database Migration
7
+
8
+ Surfaces migration risks and validates migration work against known Oracle/PostgreSQL behavioral differences documented in the `references/` folder.
9
+
10
+ ## When to use
11
+
12
+ 1. **Planning** — Before starting migration work on a procedure, trigger, query, or refcursor client. Identify which reference insights apply so risks are addressed up front.
13
+ 2. **Validating** — After migration work is done, confirm every applicable insight was addressed and integration tests cover the new PostgreSQL semantics.
14
+
15
+ ## Workflow
16
+
17
+ Determine the task type:
18
+
19
+ **Planning a migration?** Follow the risk assessment workflow.
20
+ **Validating completed work?** Follow the validation workflow.
21
+
22
+ ### Risk assessment workflow (planning)
23
+
24
+ ```
25
+ Risk Assessment:
26
+ - [ ] Step 1: Identify the migration scope
27
+ - [ ] Step 2: Screen each insight for applicability
28
+ - [ ] Step 3: Document risks and recommended actions
29
+ ```
30
+
31
+ **Step 1: Identify the migration scope**
32
+
33
+ List the affected database objects (procedures, triggers, queries, views) and the application code that calls them.
34
+
35
+ **Step 2: Screen each insight for applicability**
36
+
37
+ Review the reference index in [references/REFERENCE.md](references/REFERENCE.md). For each entry, determine whether the migration scope contains patterns affected by that insight. Read the full reference file only when the insight is potentially relevant.
38
+
39
+ **Step 3: Document risks and recommended actions**
40
+
41
+ For each applicable insight, note the specific risk and the recommended fix pattern from the reference file. Flag any insight that requires a design decision (e.g., whether to preserve Oracle empty-string-as-NULL semantics or adopt PostgreSQL behavior).
42
+
43
+ ### Validation workflow (post-migration)
44
+
45
+ ```
46
+ Validation:
47
+ - [ ] Step 1: Map the migration artifact
48
+ - [ ] Step 2: Cross-check applicable insights
49
+ - [ ] Step 3: Verify integration test coverage
50
+ - [ ] Step 4: Gate the result
51
+ ```
52
+
53
+ **Step 1: Map the migration artifact**
54
+
55
+ Identify the migrated object and summarize the change set.
56
+
57
+ **Step 2: Cross-check applicable insights**
58
+
59
+ For each reference in [references/REFERENCE.md](references/REFERENCE.md), confirm the behavior or test requirement is acknowledged and addressed in the migration work.
60
+
61
+ **Step 3: Verify integration test coverage**
62
+
63
+ Confirm tests exercise both the happy path and the failure scenarios highlighted in applicable insights (exceptions, sorting, refcursor consumption, concurrent transactions, timestamps, etc.).
64
+
65
+ **Step 4: Gate the result**
66
+
67
+ Return a checklist asserting each applicable insight was addressed, migration scripts run, and integration tests pass.
@@ -0,0 +1,5 @@
1
+ # Sync Info
2
+
3
+ - **Source:** `vendor/awesome-copilot/skills/reviewing-oracle-to-postgres-migration`
4
+ - **Git SHA:** `23fb7006c132a0bba75b0e5af7a35cab11272812`
5
+ - **Synced:** 2026-03-24
@@ -0,0 +1,13 @@
1
+ # Reference Index
2
+
3
+ | File | Brief description |
4
+ | --- | --- |
5
+ | [empty-strings-handling.md](empty-strings-handling.md) | Oracle treats '' as NULL; PostgreSQL keeps empty strings distinct—patterns to align behavior in code, tests, and migrations. |
6
+ | [no-data-found-exceptions.md](no-data-found-exceptions.md) | Oracle SELECT INTO raises "no data found"; PostgreSQL doesn’t—add explicit NOT FOUND handling to mirror Oracle behavior. |
7
+ | [oracle-parentheses-from-clause.md](oracle-parentheses-from-clause.md) | Oracle allows `FROM(TABLE_NAME)` syntax; PostgreSQL requires `FROM TABLE_NAME`—remove unnecessary parentheses around table names. |
8
+ | [oracle-to-postgres-sorting.md](oracle-to-postgres-sorting.md) | How to preserve Oracle-like ordering in PostgreSQL using COLLATE "C" and DISTINCT wrapper patterns. |
9
+ | [oracle-to-postgres-to-char-numeric.md](oracle-to-postgres-to-char-numeric.md) | Oracle allows TO_CHAR(numeric) without format; PostgreSQL requires format string—use CAST(numeric AS TEXT) instead. |
10
+ | [oracle-to-postgres-type-coercion.md](oracle-to-postgres-type-coercion.md) | PostgreSQL strict type checks vs. Oracle implicit coercion—fix comparison errors by quoting or casting literals. |
11
+ | [postgres-concurrent-transactions.md](postgres-concurrent-transactions.md) | PostgreSQL allows only one active command per connection—materialize results or use separate connections to avoid concurrent operation errors. |
12
+ | [postgres-refcursor-handling.md](postgres-refcursor-handling.md) | Differences in refcursor handling; PostgreSQL requires fetching by cursor name—C# patterns to unwrap and read results. |
13
+ | [oracle-to-postgres-timestamp-timezone.md](oracle-to-postgres-timestamp-timezone.md) | CURRENT_TIMESTAMP / NOW() return UTC-normalised timestamptz in PostgreSQL; Npgsql surfaces DateTime.Kind=Unspecified—force UTC at connection open and in application code. |
@@ -0,0 +1,69 @@
1
+ # Oracle to PostgreSQL: Empty String Handling Differences
2
+
3
+ ## Problem
4
+
5
+ Oracle automatically converts empty strings (`''`) to `NULL` in VARCHAR2 columns. PostgreSQL preserves empty strings as distinct from `NULL`. This difference can cause application logic errors and test failures during migration.
6
+
7
+ ## Behavior Comparison
8
+
9
+ **Oracle:**
10
+ - Empty string (`''`) is **always** treated as `NULL` in VARCHAR2 columns
11
+ - `WHERE column = ''` never matches rows; use `WHERE column IS NULL`
12
+ - Cannot distinguish between explicit empty string and `NULL`
13
+
14
+ **PostgreSQL:**
15
+ - Empty string (`''`) and `NULL` are **distinct** values
16
+ - `WHERE column = ''` matches empty strings
17
+ - `WHERE column IS NULL` matches `NULL` values
18
+
19
+ ## Code Example
20
+
21
+ ```sql
22
+ -- Oracle behavior
23
+ INSERT INTO table (varchar_column) VALUES ('');
24
+ SELECT * FROM table WHERE varchar_column IS NULL; -- Returns the row
25
+
26
+ -- PostgreSQL behavior
27
+ INSERT INTO table (varchar_column) VALUES ('');
28
+ SELECT * FROM table WHERE varchar_column IS NULL; -- Returns nothing
29
+ SELECT * FROM table WHERE varchar_column = ''; -- Returns the row
30
+ ```
31
+
32
+ ## Migration Actions
33
+
34
+ ### 1. Stored Procedures
35
+ Update logic that assumes empty strings convert to `NULL`:
36
+
37
+ ```sql
38
+ -- Preserve Oracle behavior (convert empty to NULL):
39
+ column = NULLIF(param, '')
40
+
41
+ -- Or accept PostgreSQL behavior (preserve empty string):
42
+ column = param
43
+ ```
44
+
45
+ ### 2. Application Code
46
+ Review code that checks for `NULL` and ensure it handles empty strings appropriately:
47
+
48
+ ```csharp
49
+ // Before (Oracle-specific)
50
+ if (value == null) { }
51
+
52
+ // After (PostgreSQL-compatible)
53
+ if (string.IsNullOrEmpty(value)) { }
54
+ ```
55
+
56
+ ### 3. Tests
57
+ Update assertions to be compatible with both behaviors:
58
+
59
+ ```csharp
60
+ // Migration-compatible test pattern
61
+ var value = reader.IsDBNull(columnIndex) ? null : reader.GetString(columnIndex);
62
+ Assert.IsTrue(string.IsNullOrEmpty(value));
63
+ ```
64
+
65
+ ### 4. Data Migration
66
+ Decide whether to:
67
+ - Convert existing `NULL` values to empty strings
68
+ - Convert empty strings to `NULL` using `NULLIF(column, '')`
69
+ - Leave values as-is and update application logic
@@ -0,0 +1,99 @@
1
+ # PostgreSQL Exception Handling: SELECT INTO No Data Found
2
+
3
+ ## Overview
4
+
5
+ A common issue when migrating from Oracle to PostgreSQL involves `SELECT INTO` statements that expect to raise an exception when no rows are found. This pattern difference can cause integration tests to fail and application logic to behave incorrectly if not properly handled.
6
+
7
+ ---
8
+
9
+ ## Problem Description
10
+
11
+ ### Scenario
12
+
13
+ A stored procedure performs a lookup operation using `SELECT INTO` to retrieve a required value:
14
+
15
+ ```sql
16
+ SELECT column_name
17
+ INTO variable_name
18
+ FROM table1, table2
19
+ WHERE table1.id = table2.id AND table1.id = parameter_value;
20
+ ```
21
+
22
+ ### Oracle Behavior
23
+
24
+ When a `SELECT INTO` statement in Oracle does **not find any rows**, it automatically raises:
25
+
26
+ ```
27
+ ORA-01403: no data found
28
+ ```
29
+
30
+ This exception is caught by the procedure's exception handler and re-raised to the calling application.
31
+
32
+ ### PostgreSQL Behavior (Pre-Fix)
33
+
34
+ When a `SELECT INTO` statement in PostgreSQL does **not find any rows**, it:
35
+
36
+ - Sets the `FOUND` variable to `false`
37
+ - **Silently continues** execution without raising an exception
38
+
39
+ This fundamental difference can cause tests to fail silently and logic errors in production code.
40
+
41
+ ---
42
+
43
+ ## Root Cause Analysis
44
+
45
+ The PostgreSQL version was missing explicit error handling for the `NOT FOUND` condition after the `SELECT INTO` statement.
46
+
47
+ **Original Code (Problematic):**
48
+
49
+ ```plpgsql
50
+ SELECT column_name
51
+ INTO variable_name
52
+ FROM table1, table2
53
+ WHERE table1.id = table2.id AND table1.id = parameter_value;
54
+
55
+ IF variable_name = 'X' THEN
56
+ result_variable := 1;
57
+ ELSE
58
+ result_variable := 2;
59
+ END IF;
60
+ ```
61
+
62
+ **Problem:** No check for `NOT FOUND` condition. When an invalid parameter is passed, the SELECT returns no rows, `FOUND` becomes `false`, and execution continues with an uninitialized variable.
63
+
64
+ ---
65
+
66
+ ## Key Differences: Oracle vs PostgreSQL
67
+
68
+ Add explicit `NOT FOUND` error handling to match Oracle behavior.
69
+
70
+ **Fixed Code:**
71
+
72
+ ```plpgsql
73
+ SELECT column_name
74
+ INTO variable_name
75
+ FROM table1, table2
76
+ WHERE table1.id = table2.id AND table1.id = parameter_value;
77
+
78
+ -- Explicitly raise exception if no data found (matching Oracle behavior)
79
+ IF NOT FOUND THEN
80
+ RAISE EXCEPTION 'no data found';
81
+ END IF;
82
+
83
+ IF variable_name = 'X' THEN
84
+ result_variable := 1;
85
+ ELSE
86
+ result_variable := 2;
87
+ END IF;
88
+ ```
89
+
90
+ ---
91
+
92
+ ## Migration Notes for Similar Issues
93
+
94
+ When fixing this issue, verify:
95
+
96
+ 1. **Success path tests** - Confirm valid parameters still work correctly
97
+ 2. **Exception tests** - Verify exceptions are raised with invalid parameters
98
+ 3. **Transaction rollback** - Ensure proper cleanup on errors
99
+ 4. **Data integrity** - Confirm all fields are populated correctly in success cases
@@ -0,0 +1,190 @@
1
+ # Oracle to PostgreSQL: Parentheses in FROM Clause
2
+
3
+ ## Contents
4
+
5
+ - Problem
6
+ - Root Cause
7
+ - Solution Pattern
8
+ - Examples
9
+ - Migration Checklist
10
+ - Common Locations
11
+ - Application Code Examples
12
+ - Error Messages to Watch For
13
+ - Testing Recommendations
14
+
15
+ ## Problem
16
+
17
+ Oracle allows optional parentheses around table names in the FROM clause:
18
+
19
+ ```sql
20
+ -- Oracle: Both are valid
21
+ SELECT * FROM (TABLE_NAME) WHERE id = 1;
22
+ SELECT * FROM TABLE_NAME WHERE id = 1;
23
+ ```
24
+
25
+ PostgreSQL does **not** allow extra parentheses around a single table name in the FROM clause without it being a derived table or subquery. Attempting to use this pattern results in:
26
+
27
+ ```
28
+ Npgsql.PostgresException: 42601: syntax error at or near ")"
29
+ ```
30
+
31
+ ## Root Cause
32
+
33
+ - **Oracle**: Treats `FROM(TABLE_NAME)` as equivalent to `FROM TABLE_NAME`
34
+ - **PostgreSQL**: Parentheses in the FROM clause are only valid for:
35
+ - Subqueries: `FROM (SELECT * FROM table)`
36
+ - Explicit table references that are part of join syntax
37
+ - Common Table Expressions (CTEs)
38
+ - Without a valid SELECT or join context, PostgreSQL raises a syntax error
39
+
40
+ ## Solution Pattern
41
+
42
+ Remove the unnecessary parentheses around the table name:
43
+
44
+ ```sql
45
+ -- Oracle (problematic in PostgreSQL)
46
+ SELECT col1, col2
47
+ FROM (TABLE_NAME)
48
+ WHERE id = 1;
49
+
50
+ -- PostgreSQL (correct)
51
+ SELECT col1, col2
52
+ FROM TABLE_NAME
53
+ WHERE id = 1;
54
+ ```
55
+
56
+ ## Examples
57
+
58
+ ### Example 1: Simple Table Reference
59
+
60
+ ```sql
61
+ -- Oracle
62
+ SELECT employee_id, employee_name
63
+ FROM (EMPLOYEES)
64
+ WHERE department_id = 10;
65
+
66
+ -- PostgreSQL (fixed)
67
+ SELECT employee_id, employee_name
68
+ FROM EMPLOYEES
69
+ WHERE department_id = 10;
70
+ ```
71
+
72
+ ### Example 2: Join with Parentheses
73
+
74
+ ```sql
75
+ -- Oracle (problematic)
76
+ SELECT e.employee_id, d.department_name
77
+ FROM (EMPLOYEES) e
78
+ JOIN (DEPARTMENTS) d ON e.department_id = d.department_id;
79
+
80
+ -- PostgreSQL (fixed)
81
+ SELECT e.employee_id, d.department_name
82
+ FROM EMPLOYEES e
83
+ JOIN DEPARTMENTS d ON e.department_id = d.department_id;
84
+ ```
85
+
86
+ ### Example 3: Valid Subquery Parentheses (Works in Both)
87
+
88
+ ```sql
89
+ -- Both Oracle and PostgreSQL
90
+ SELECT *
91
+ FROM (SELECT employee_id, employee_name FROM EMPLOYEES WHERE department_id = 10) sub;
92
+ ```
93
+
94
+ ## Migration Checklist
95
+
96
+ When fixing this issue, verify:
97
+
98
+ 1. **Identify all problematic FROM clauses**:
99
+ - Search for `FROM (` pattern in SQL
100
+ - Verify the opening parenthesis is immediately after `FROM` followed by a table name
101
+ - Confirm it's **not** a subquery (no SELECT keyword inside)
102
+
103
+ 2. **Distinguish valid parentheses**:
104
+ - ✅ `FROM (SELECT ...)` - Valid subquery
105
+ - ✅ `FROM (table_name` followed by a join - Check if JOIN keyword follows
106
+ - ❌ `FROM (TABLE_NAME)` - Invalid, remove parentheses
107
+
108
+ 3. **Apply the fix**:
109
+ - Remove the parentheses around the table name
110
+ - Keep parentheses for legitimate subqueries
111
+
112
+ 4. **Test thoroughly**:
113
+ - Execute the query in PostgreSQL
114
+ - Verify result set matches original Oracle query
115
+ - Include in integration tests
116
+
117
+ ## Common Locations
118
+
119
+ Search for `FROM (` in:
120
+
121
+ - ✅ Stored procedures and functions (DDL scripts)
122
+ - ✅ Application data access layers (DAL classes)
123
+ - ✅ Dynamic SQL builders
124
+ - ✅ Reporting queries
125
+ - ✅ Views and materialized views
126
+ - ✅ Complex queries with multiple joins
127
+
128
+ ## Application Code Examples
129
+
130
+ ### VB.NET
131
+
132
+ ```vb
133
+ ' Before (Oracle)
134
+ StrSQL = "SELECT employee_id, NAME " _
135
+ & "FROM (EMPLOYEES) e " _
136
+ & "WHERE e.department_id = 10"
137
+
138
+ ' After (PostgreSQL)
139
+ StrSQL = "SELECT employee_id, NAME " _
140
+ & "FROM EMPLOYEES e " _
141
+ & "WHERE e.department_id = 10"
142
+ ```
143
+
144
+ ### C #
145
+
146
+ ```csharp
147
+ // Before (Oracle)
148
+ var sql = "SELECT id, name FROM (USERS) WHERE status = @status";
149
+
150
+ // After (PostgreSQL)
151
+ var sql = "SELECT id, name FROM USERS WHERE status = @status";
152
+ ```
153
+
154
+ ## Error Messages to Watch For
155
+
156
+ ```
157
+ Npgsql.PostgresException: 42601: syntax error at or near ")"
158
+ ERROR: syntax error at or near ")"
159
+ LINE 1: SELECT * FROM (TABLE_NAME) WHERE ...
160
+ ^
161
+ ```
162
+
163
+ ## Testing Recommendations
164
+
165
+ 1. **Syntax Verification**: Parse all migrated queries to ensure they run without syntax errors
166
+
167
+ ```csharp
168
+ [Fact]
169
+ public void GetEmployees_ExecutesWithoutSyntaxError()
170
+ {
171
+ // Should not throw PostgresException with error code 42601
172
+ var employees = dal.GetEmployees(departmentId: 10);
173
+ Assert.NotEmpty(employees);
174
+ }
175
+ ```
176
+
177
+ 2. **Result Comparison**: Verify that result sets are identical before and after migration
178
+ 3. **Regex-based Search**: Use pattern `FROM\s*\(\s*[A-Za-z_][A-Za-z0-9_]*\s*\)` to identify candidates
179
+
180
+ ## Related Files
181
+
182
+ - Reference: [oracle-to-postgres-type-coercion.md](oracle-to-postgres-type-coercion.md) - Other syntax differences
183
+ - PostgreSQL Documentation: [SELECT Statement](https://www.postgresql.org/docs/current/sql-select.html)
184
+
185
+ ## Migration Notes
186
+
187
+ - This is a straightforward syntactic fix with no semantic implications
188
+ - No data conversion required
189
+ - Safe to apply automated find-and-replace, but manually verify complex queries
190
+ - Update integration tests to exercise the migrated queries
@@ -0,0 +1,51 @@
1
+ # Oracle to PostgreSQL Sorting Migration Guide
2
+
3
+ Purpose: Preserve Oracle-like sorting semantics when moving queries to PostgreSQL.
4
+
5
+ ## Key points
6
+ - Oracle often treats plain `ORDER BY` as binary/byte-wise, giving case-insensitive ordering for ASCII.
7
+ - PostgreSQL defaults differ; to match Oracle behavior, use `COLLATE "C"` on sort expressions.
8
+
9
+ ## 1) Standard `SELECT … ORDER BY`
10
+ **Goal:** Keep Oracle-style ordering.
11
+
12
+ **Pattern:**
13
+ ```sql
14
+ SELECT col1
15
+ FROM your_table
16
+ ORDER BY col1 COLLATE "C";
17
+ ```
18
+
19
+ **Notes:**
20
+ - Apply `COLLATE "C"` to each sort expression that must mimic Oracle.
21
+ - Works with ascending/descending and multi-column sorts, e.g. `ORDER BY col1 COLLATE "C", col2 COLLATE "C" DESC`.
22
+
23
+ ## 2) `SELECT DISTINCT … ORDER BY`
24
+ **Issue:** PostgreSQL enforces that `ORDER BY` expressions appear in the `SELECT` list for `DISTINCT`, raising:
25
+ `Npgsql.PostgresException: 42P10: for SELECT DISTINCT, ORDER BY expressions must appear in select list`
26
+
27
+ **Oracle difference:** Oracle allowed ordering by expressions not projected when using `DISTINCT`.
28
+
29
+ **Recommended pattern (wrap and sort):**
30
+ ```sql
31
+ SELECT *
32
+ FROM (
33
+ SELECT DISTINCT col1, col2
34
+ FROM your_table
35
+ ) AS distinct_results
36
+ ORDER BY col2 COLLATE "C";
37
+ ```
38
+
39
+ **Why:**
40
+ - The inner query performs the `DISTINCT` projection.
41
+ - The outer query safely orders the result set and adds `COLLATE "C"` to align with Oracle sorting.
42
+
43
+ **Tips:**
44
+ - Ensure any columns used in the outer `ORDER BY` are included in the inner projection.
45
+ - For multi-column sorts, collate each relevant expression: `ORDER BY col2 COLLATE "C", col3 COLLATE "C" DESC`.
46
+
47
+ ## Validation checklist
48
+ - [ ] Added `COLLATE "C"` to every `ORDER BY` that should follow Oracle sorting rules.
49
+ - [ ] For `DISTINCT` queries, wrapped the projection and sorted in the outer query.
50
+ - [ ] Confirmed ordered columns are present in the inner projection.
51
+ - [ ] Re-ran tests or representative queries to verify ordering matches Oracle outputs.
@@ -0,0 +1,187 @@
1
+ # Oracle to PostgreSQL: CURRENT_TIMESTAMP and NOW() Timezone Handling
2
+
3
+ ## Contents
4
+
5
+ - Problem
6
+ - Behavior Comparison
7
+ - PostgreSQL Timezone Precedence
8
+ - Common Error Symptoms
9
+ - Migration Actions — Npgsql config, DateTime normalization, stored procedures, session timezone, application code
10
+ - Integration Test Patterns
11
+ - Checklist
12
+
13
+ ## Problem
14
+
15
+ Oracle's `CURRENT_TIMESTAMP` returns a value in the **session timezone** and stores it in the column's declared precision. When .NET reads this value back via ODP.NET, it is surfaced as a `DateTime` with `Kind=Local`, reflecting the OS timezone of the client.
16
+
17
+ PostgreSQL's `CURRENT_TIMESTAMP` and `NOW()` both return a `timestamptz` (timestamp with time zone) anchored to **UTC**, regardless of the session timezone setting. How Npgsql surfaces this value depends on the driver version and configuration:
18
+
19
+ - **Npgsql < 6 / legacy mode (`EnableLegacyTimestampBehavior = true`):** `timestamptz` columns are returned as `DateTime` with `Kind=Unspecified`. This is the source of silent timezone bugs when migrating from Oracle.
20
+ - **Npgsql 6+ with legacy mode disabled (the new default):** `timestamptz` columns are returned as `DateTime` with `Kind=Utc`, and writing a `Kind=Unspecified` value throws an exception at insertion time.
21
+
22
+ Projects that have not yet upgraded to Npgsql 6+, or that explicitly opt back into legacy mode, remain vulnerable to the `Kind=Unspecified` issue. This mismatch — and the ease of accidentally re-enabling legacy mode — causes silent data corruption, incorrect comparisons, and off-by-N-hours bugs that are extremely difficult to trace.
23
+
24
+ ---
25
+
26
+ ## Behavior Comparison
27
+
28
+ | Aspect | Oracle | PostgreSQL |
29
+ |---|---|---|
30
+ | `CURRENT_TIMESTAMP` type | `TIMESTAMP WITH LOCAL TIME ZONE` | `timestamptz` (UTC-normalised) |
31
+ | Client `DateTime.Kind` via driver | `Local` | `Unspecified` (Npgsql < 6 / legacy mode); `Utc` (Npgsql 6+ default) |
32
+ | Session timezone influence | Yes — affects stored/returned value | Affects *display* only; UTC stored internally |
33
+ | NOW() equivalent | `SYSDATE` / `CURRENT_TIMESTAMP` | `NOW()` = `CURRENT_TIMESTAMP` (both return `timestamptz`) |
34
+ | Implicit conversion on comparison | Oracle applies session TZ offset | PostgreSQL compares UTC; session TZ is display-only |
35
+
36
+ ---
37
+
38
+ ## PostgreSQL Timezone Precedence
39
+
40
+ PostgreSQL resolves the effective session timezone using the following hierarchy (highest priority wins):
41
+
42
+ | Level | How it is set |
43
+ |---|---|
44
+ | **Session** | `SET TimeZone = 'UTC'` sent at connection open |
45
+ | **Role** | `ALTER ROLE app_user SET TimeZone = 'UTC'` |
46
+ | **Database** | `ALTER DATABASE mydb SET TimeZone = 'UTC'` |
47
+ | **Server** | `postgresql.conf` → `TimeZone = 'America/New_York'` |
48
+
49
+ The session timezone does **not** affect the stored UTC value of a `timestamptz` column — it only controls how `SHOW timezone` and `::text` casts format a value for display. Application code that relies on `DateTime.Kind` or compares timestamps without an explicit timezone can produce incorrect results if the server's default timezone is not UTC.
50
+
51
+ ---
52
+
53
+ ## Common Error Symptoms
54
+
55
+ - Timestamps read from PostgreSQL have `Kind=Unspecified`; comparisons with `DateTime.UtcNow` or `DateTime.Now` produce incorrect results.
56
+ - Date-range queries return too few or too many rows because the WHERE clause comparison is evaluated in a timezone that differs from the stored UTC value.
57
+ - Integration tests pass on a developer machine (UTC OS timezone) but fail in CI or production (non-UTC timezone).
58
+ - Stored procedure output parameters carrying timestamps arrive with a session-offset applied by the server but are then compared to UTC values in the application.
59
+
60
+ ---
61
+
62
+ ## Migration Actions
63
+
64
+ ### 1. Configure Npgsql for UTC via Connection String or AppContext
65
+
66
+ Npgsql 6+ ships with `EnableLegacyTimestampBehavior` set to `false` by default, which causes `timestamptz` values to be returned as `DateTime` with `Kind=Utc`. Explicitly setting the switch at startup is still recommended to guard against accidental opt-in to legacy mode (e.g., via a config file or a transitive dependency) and to make the intent visible to future maintainers:
67
+
68
+ ```csharp
69
+ // Program.cs / Startup.cs — apply once at application start
70
+ AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", false);
71
+ ```
72
+
73
+ With this switch disabled, Npgsql throws if you try to write a `DateTime` with `Kind=Unspecified` to a `timestamptz` column, making timezone bugs loud and detectable at insertion time rather than silently at query time.
74
+
75
+ ### 2. Normalise DateTime Values Before Persistence
76
+
77
+ Replace any `DateTime.Now` with `DateTime.UtcNow` throughout the migrated codebase. For values that originate from external input (e.g., user-provided dates deserialized from JSON), ensure they are converted to UTC before being saved:
78
+
79
+ ```csharp
80
+ // Before (Oracle-era code — relied on session/OS timezone)
81
+ var timestamp = DateTime.Now;
82
+
83
+ // After (PostgreSQL-compatible)
84
+ var timestamp = DateTime.UtcNow;
85
+
86
+ // For externally-supplied values
87
+ var utcTimestamp = dateTimeInput.Kind == DateTimeKind.Utc
88
+ ? dateTimeInput
89
+ : dateTimeInput.ToUniversalTime();
90
+ ```
91
+
92
+ ### 3. Fix Stored Procedures Using CURRENT_TIMESTAMP / NOW()
93
+
94
+ Stored procedures that assign `CURRENT_TIMESTAMP` or `NOW()` to a `timestamp without time zone` (`timestamp`) column must be reviewed. Prefer `timestamptz` columns or cast explicitly:
95
+
96
+ ```sql
97
+ -- Ambiguous: server timezone influences interpretation
98
+ INSERT INTO audit_log (created_at) VALUES (NOW()::timestamp);
99
+
100
+ -- Safe: always UTC
101
+ INSERT INTO audit_log (created_at) VALUES (NOW() AT TIME ZONE 'UTC');
102
+
103
+ -- Or: use timestamptz column type and let PostgreSQL store UTC natively
104
+ INSERT INTO audit_log (created_at) VALUES (CURRENT_TIMESTAMP);
105
+ ```
106
+
107
+ ### 4. Force Session Timezone on Connection Open (Defence-in-Depth)
108
+
109
+ Regardless of role or database defaults, set the session timezone explicitly when opening a connection. This guarantees consistent behavior independent of server configuration:
110
+
111
+ ```csharp
112
+ // Npgsql connection string approach
113
+ var connString = "Host=localhost;Database=mydb;Username=app;Password=...;Timezone=UTC";
114
+
115
+ // Or: apply via NpgsqlDataSourceBuilder
116
+ var dataSource = new NpgsqlDataSourceBuilder(connString)
117
+ .Build();
118
+
119
+ // Or: execute on every new connection
120
+ await using var conn = new NpgsqlConnection(connString);
121
+ await conn.OpenAsync();
122
+ await using var cmd = new NpgsqlCommand("SET TimeZone = 'UTC'", conn);
123
+ await cmd.ExecuteNonQueryAsync();
124
+ ```
125
+
126
+ ### 5. Application Code — Avoid DateTime.Kind=Unspecified
127
+
128
+ Audit all repository and data-access code that reads timestamp columns. Where Npgsql returns `Unspecified`, either configure the data source globally (option 1 above) or wrap the read:
129
+
130
+ ```csharp
131
+ // Safe reader helper — convert Unspecified to Utc at the boundary
132
+ DateTime ReadUtcDateTime(NpgsqlDataReader reader, int ordinal)
133
+ {
134
+ var dt = reader.GetDateTime(ordinal);
135
+ return dt.Kind == DateTimeKind.Unspecified
136
+ ? DateTime.SpecifyKind(dt, DateTimeKind.Utc)
137
+ : dt.ToUniversalTime();
138
+ }
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Integration Test Patterns
144
+
145
+ ### Test: Verify timestamps persist and return as UTC
146
+
147
+ ```csharp
148
+ [Fact]
149
+ public async Task InsertedTimestamp_ShouldRoundTripAsUtc()
150
+ {
151
+ var before = DateTime.UtcNow;
152
+
153
+ await repository.InsertAuditEntryAsync(/* ... */);
154
+
155
+ var retrieved = await repository.GetLatestAuditEntryAsync();
156
+
157
+ Assert.Equal(DateTimeKind.Utc, retrieved.CreatedAt.Kind);
158
+ Assert.True(retrieved.CreatedAt >= before,
159
+ "Persisted CreatedAt should not be earlier than the pre-insert UTC timestamp.");
160
+ }
161
+ ```
162
+
163
+ ### Test: Verify timestamp comparisons across Oracle and PostgreSQL baselines
164
+
165
+ ```csharp
166
+ [Fact]
167
+ public async Task TimestampComparison_ShouldReturnSameRowsAsOracle()
168
+ {
169
+ var cutoff = DateTime.UtcNow.AddDays(-1);
170
+
171
+ var oracleResults = await oracleRepository.GetEntriesAfter(cutoff);
172
+ var postgresResults = await postgresRepository.GetEntriesAfter(cutoff);
173
+
174
+ Assert.Equal(oracleResults.Count, postgresResults.Count);
175
+ }
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Checklist
181
+
182
+ - [ ] `AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", false)` applied at application startup.
183
+ - [ ] All `DateTime.Now` usages in data-access code replaced with `DateTime.UtcNow`.
184
+ - [ ] Connection string or connection-open hook sets `Timezone=UTC` / `SET TimeZone = 'UTC'`.
185
+ - [ ] Stored procedures that use `CURRENT_TIMESTAMP` or `NOW()` reviewed; `timestamp without time zone` columns explicitly cast or replaced with `timestamptz`.
186
+ - [ ] Integration tests assert `DateTime.Kind == Utc` on retrieved timestamp values.
187
+ - [ ] Tests cover date-range queries to confirm row counts match Oracle baseline.