devskill 2.0.7 → 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 (1016) hide show
  1. package/meta.ts +4 -0
  2. package/package.json +1 -1
  3. package/skills/add-educational-comments/LICENSE.md +21 -0
  4. package/skills/add-educational-comments/SKILL.md +128 -0
  5. package/skills/add-educational-comments/SYNC.md +5 -0
  6. package/skills/agent-governance/LICENSE.md +21 -0
  7. package/skills/agent-governance/SKILL.md +569 -0
  8. package/skills/agent-governance/SYNC.md +5 -0
  9. package/skills/agentic-eval/LICENSE.md +21 -0
  10. package/skills/agentic-eval/SKILL.md +189 -0
  11. package/skills/agentic-eval/SYNC.md +5 -0
  12. package/skills/ai-prompt-engineering-safety-review/LICENSE.md +21 -0
  13. package/skills/ai-prompt-engineering-safety-review/SKILL.md +230 -0
  14. package/skills/ai-prompt-engineering-safety-review/SYNC.md +5 -0
  15. package/skills/appinsights-instrumentation/LICENSE.md +21 -0
  16. package/skills/appinsights-instrumentation/LICENSE.txt +21 -0
  17. package/skills/appinsights-instrumentation/SKILL.md +48 -0
  18. package/skills/appinsights-instrumentation/SYNC.md +5 -0
  19. package/skills/appinsights-instrumentation/examples/appinsights.bicep +30 -0
  20. package/skills/appinsights-instrumentation/references/ASPNETCORE.md +29 -0
  21. package/skills/appinsights-instrumentation/references/AUTO.md +13 -0
  22. package/skills/appinsights-instrumentation/references/NODEJS.md +28 -0
  23. package/skills/appinsights-instrumentation/references/PYTHON.md +48 -0
  24. package/skills/appinsights-instrumentation/scripts/appinsights.ps1 +20 -0
  25. package/skills/apple-appstore-reviewer/LICENSE.md +21 -0
  26. package/skills/apple-appstore-reviewer/SKILL.md +305 -0
  27. package/skills/apple-appstore-reviewer/SYNC.md +5 -0
  28. package/skills/arch-linux-triage/LICENSE.md +21 -0
  29. package/skills/arch-linux-triage/SKILL.md +31 -0
  30. package/skills/arch-linux-triage/SYNC.md +5 -0
  31. package/skills/architecture-blueprint-generator/LICENSE.md +21 -0
  32. package/skills/architecture-blueprint-generator/SKILL.md +322 -0
  33. package/skills/architecture-blueprint-generator/SYNC.md +5 -0
  34. package/skills/aspire/LICENSE.md +21 -0
  35. package/skills/aspire/SKILL.md +231 -0
  36. package/skills/aspire/SYNC.md +5 -0
  37. package/skills/aspire/references/architecture.md +341 -0
  38. package/skills/aspire/references/cli-reference.md +307 -0
  39. package/skills/aspire/references/dashboard.md +226 -0
  40. package/skills/aspire/references/deployment.md +237 -0
  41. package/skills/aspire/references/integrations-catalog.md +68 -0
  42. package/skills/aspire/references/mcp-server.md +195 -0
  43. package/skills/aspire/references/polyglot-apis.md +296 -0
  44. package/skills/aspire/references/testing.md +281 -0
  45. package/skills/aspire/references/troubleshooting.md +194 -0
  46. package/skills/aspnet-minimal-api-openapi/LICENSE.md +21 -0
  47. package/skills/aspnet-minimal-api-openapi/SKILL.md +41 -0
  48. package/skills/aspnet-minimal-api-openapi/SYNC.md +5 -0
  49. package/skills/automate-this/LICENSE.md +21 -0
  50. package/skills/automate-this/SKILL.md +244 -0
  51. package/skills/automate-this/SYNC.md +5 -0
  52. package/skills/autoresearch/LICENSE.md +21 -0
  53. package/skills/autoresearch/SKILL.md +275 -0
  54. package/skills/autoresearch/SYNC.md +5 -0
  55. package/skills/aws-cdk-python-setup/LICENSE.md +21 -0
  56. package/skills/aws-cdk-python-setup/SKILL.md +111 -0
  57. package/skills/aws-cdk-python-setup/SYNC.md +5 -0
  58. package/skills/az-cost-optimize/LICENSE.md +21 -0
  59. package/skills/az-cost-optimize/SKILL.md +305 -0
  60. package/skills/az-cost-optimize/SYNC.md +5 -0
  61. package/skills/azure-deployment-preflight/LICENSE.md +21 -0
  62. package/skills/azure-deployment-preflight/SKILL.md +216 -0
  63. package/skills/azure-deployment-preflight/SYNC.md +5 -0
  64. package/skills/azure-deployment-preflight/references/ERROR-HANDLING.md +392 -0
  65. package/skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md +352 -0
  66. package/skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md +379 -0
  67. package/skills/azure-devops-cli/LICENSE.md +21 -0
  68. package/skills/azure-devops-cli/SKILL.md +94 -0
  69. package/skills/azure-devops-cli/SYNC.md +5 -0
  70. package/skills/azure-devops-cli/references/advanced-usage.md +197 -0
  71. package/skills/azure-devops-cli/references/boards-and-iterations.md +258 -0
  72. package/skills/azure-devops-cli/references/org-and-security.md +469 -0
  73. package/skills/azure-devops-cli/references/pipelines-and-builds.md +245 -0
  74. package/skills/azure-devops-cli/references/repos-and-prs.md +333 -0
  75. package/skills/azure-devops-cli/references/variables-and-agents.md +212 -0
  76. package/skills/azure-devops-cli/references/workflows-and-patterns.md +668 -0
  77. package/skills/azure-pricing/LICENSE.md +21 -0
  78. package/skills/azure-pricing/SKILL.md +189 -0
  79. package/skills/azure-pricing/SYNC.md +5 -0
  80. package/skills/azure-pricing/references/COPILOT-STUDIO-RATES.md +135 -0
  81. package/skills/azure-pricing/references/COST-ESTIMATOR.md +142 -0
  82. package/skills/azure-pricing/references/REGIONS.md +84 -0
  83. package/skills/azure-pricing/references/SERVICE-NAMES.md +106 -0
  84. package/skills/azure-resource-health-diagnose/LICENSE.md +21 -0
  85. package/skills/azure-resource-health-diagnose/SKILL.md +290 -0
  86. package/skills/azure-resource-health-diagnose/SYNC.md +5 -0
  87. package/skills/azure-resource-visualizer/LICENSE.md +21 -0
  88. package/skills/azure-resource-visualizer/LICENSE.txt +21 -0
  89. package/skills/azure-resource-visualizer/SKILL.md +233 -0
  90. package/skills/azure-resource-visualizer/SYNC.md +5 -0
  91. package/skills/azure-resource-visualizer/assets/template-architecture.md +41 -0
  92. package/skills/azure-role-selector/LICENSE.md +21 -0
  93. package/skills/azure-role-selector/LICENSE.txt +21 -0
  94. package/skills/azure-role-selector/SKILL.md +6 -0
  95. package/skills/azure-role-selector/SYNC.md +5 -0
  96. package/skills/azure-static-web-apps/LICENSE.md +21 -0
  97. package/skills/azure-static-web-apps/SKILL.md +315 -0
  98. package/skills/azure-static-web-apps/SYNC.md +5 -0
  99. package/skills/bigquery-pipeline-audit/LICENSE.md +21 -0
  100. package/skills/bigquery-pipeline-audit/SKILL.md +129 -0
  101. package/skills/bigquery-pipeline-audit/SYNC.md +5 -0
  102. package/skills/boost-prompt/LICENSE.md +21 -0
  103. package/skills/boost-prompt/SKILL.md +25 -0
  104. package/skills/boost-prompt/SYNC.md +5 -0
  105. package/skills/breakdown-epic-arch/LICENSE.md +21 -0
  106. package/skills/breakdown-epic-arch/SKILL.md +66 -0
  107. package/skills/breakdown-epic-arch/SYNC.md +5 -0
  108. package/skills/breakdown-epic-pm/LICENSE.md +21 -0
  109. package/skills/breakdown-epic-pm/SKILL.md +58 -0
  110. package/skills/breakdown-epic-pm/SYNC.md +5 -0
  111. package/skills/breakdown-feature-implementation/LICENSE.md +21 -0
  112. package/skills/breakdown-feature-implementation/SKILL.md +128 -0
  113. package/skills/breakdown-feature-implementation/SYNC.md +5 -0
  114. package/skills/breakdown-feature-prd/LICENSE.md +21 -0
  115. package/skills/breakdown-feature-prd/SKILL.md +61 -0
  116. package/skills/breakdown-feature-prd/SYNC.md +5 -0
  117. package/skills/breakdown-plan/LICENSE.md +21 -0
  118. package/skills/breakdown-plan/SKILL.md +509 -0
  119. package/skills/breakdown-plan/SYNC.md +5 -0
  120. package/skills/breakdown-test/LICENSE.md +21 -0
  121. package/skills/breakdown-test/SKILL.md +365 -0
  122. package/skills/breakdown-test/SYNC.md +5 -0
  123. package/skills/centos-linux-triage/LICENSE.md +21 -0
  124. package/skills/centos-linux-triage/SKILL.md +31 -0
  125. package/skills/centos-linux-triage/SYNC.md +5 -0
  126. package/skills/chrome-devtools/LICENSE.md +21 -0
  127. package/skills/chrome-devtools/SKILL.md +97 -0
  128. package/skills/chrome-devtools/SYNC.md +5 -0
  129. package/skills/cli-mastery/LICENSE.md +21 -0
  130. package/skills/cli-mastery/SKILL.md +43 -0
  131. package/skills/cli-mastery/SYNC.md +5 -0
  132. package/skills/cli-mastery/references/final-exam.md +24 -0
  133. package/skills/cli-mastery/references/module-1-slash-commands.md +88 -0
  134. package/skills/cli-mastery/references/module-2-keyboard-shortcuts.md +38 -0
  135. package/skills/cli-mastery/references/module-3-modes.md +33 -0
  136. package/skills/cli-mastery/references/module-4-agents.md +42 -0
  137. package/skills/cli-mastery/references/module-5-skills.md +33 -0
  138. package/skills/cli-mastery/references/module-6-mcp.md +50 -0
  139. package/skills/cli-mastery/references/module-7-advanced.md +38 -0
  140. package/skills/cli-mastery/references/module-8-configuration.md +34 -0
  141. package/skills/cli-mastery/references/scenarios.md +44 -0
  142. package/skills/cloud-design-patterns/LICENSE.md +21 -0
  143. package/skills/cloud-design-patterns/SKILL.md +62 -0
  144. package/skills/cloud-design-patterns/SYNC.md +5 -0
  145. package/skills/cloud-design-patterns/references/architecture-design.md +127 -0
  146. package/skills/cloud-design-patterns/references/azure-service-mappings.md +13 -0
  147. package/skills/cloud-design-patterns/references/best-practices.md +34 -0
  148. package/skills/cloud-design-patterns/references/deployment-operational.md +91 -0
  149. package/skills/cloud-design-patterns/references/event-driven.md +21 -0
  150. package/skills/cloud-design-patterns/references/messaging-integration.md +127 -0
  151. package/skills/cloud-design-patterns/references/performance.md +180 -0
  152. package/skills/cloud-design-patterns/references/reliability-resilience.md +156 -0
  153. package/skills/cloud-design-patterns/references/security.md +55 -0
  154. package/skills/code-exemplars-blueprint-generator/LICENSE.md +21 -0
  155. package/skills/code-exemplars-blueprint-generator/SKILL.md +126 -0
  156. package/skills/code-exemplars-blueprint-generator/SYNC.md +5 -0
  157. package/skills/codeql/LICENSE.md +21 -0
  158. package/skills/codeql/SKILL.md +405 -0
  159. package/skills/codeql/SYNC.md +5 -0
  160. package/skills/codeql/references/alert-management.md +170 -0
  161. package/skills/codeql/references/cli-commands.md +283 -0
  162. package/skills/codeql/references/compiled-languages.md +284 -0
  163. package/skills/codeql/references/sarif-output.md +265 -0
  164. package/skills/codeql/references/troubleshooting.md +259 -0
  165. package/skills/codeql/references/workflow-configuration.md +398 -0
  166. package/skills/comment-code-generate-a-tutorial/LICENSE.md +21 -0
  167. package/skills/comment-code-generate-a-tutorial/SKILL.md +26 -0
  168. package/skills/comment-code-generate-a-tutorial/SYNC.md +5 -0
  169. package/skills/containerize-aspnet-framework/LICENSE.md +21 -0
  170. package/skills/containerize-aspnet-framework/SKILL.md +454 -0
  171. package/skills/containerize-aspnet-framework/SYNC.md +5 -0
  172. package/skills/containerize-aspnetcore/LICENSE.md +21 -0
  173. package/skills/containerize-aspnetcore/SKILL.md +392 -0
  174. package/skills/containerize-aspnetcore/SYNC.md +5 -0
  175. package/skills/context-map/LICENSE.md +21 -0
  176. package/skills/context-map/SKILL.md +52 -0
  177. package/skills/context-map/SYNC.md +5 -0
  178. package/skills/conventional-commit/LICENSE.md +21 -0
  179. package/skills/conventional-commit/SKILL.md +72 -0
  180. package/skills/conventional-commit/SYNC.md +5 -0
  181. package/skills/convert-plaintext-to-md/LICENSE.md +21 -0
  182. package/skills/convert-plaintext-to-md/SKILL.md +362 -0
  183. package/skills/convert-plaintext-to-md/SYNC.md +5 -0
  184. package/skills/copilot-cli-quickstart/LICENSE.md +21 -0
  185. package/skills/copilot-cli-quickstart/SKILL.md +774 -0
  186. package/skills/copilot-cli-quickstart/SYNC.md +5 -0
  187. package/skills/copilot-instructions-blueprint-generator/LICENSE.md +21 -0
  188. package/skills/copilot-instructions-blueprint-generator/SKILL.md +294 -0
  189. package/skills/copilot-instructions-blueprint-generator/SYNC.md +5 -0
  190. package/skills/copilot-sdk/LICENSE.md +21 -0
  191. package/skills/copilot-sdk/SKILL.md +914 -0
  192. package/skills/copilot-sdk/SYNC.md +5 -0
  193. package/skills/copilot-spaces/LICENSE.md +21 -0
  194. package/skills/copilot-spaces/SKILL.md +205 -0
  195. package/skills/copilot-spaces/SYNC.md +5 -0
  196. package/skills/copilot-usage-metrics/LICENSE.md +21 -0
  197. package/skills/copilot-usage-metrics/SKILL.md +52 -0
  198. package/skills/copilot-usage-metrics/SYNC.md +5 -0
  199. package/skills/copilot-usage-metrics/get-enterprise-metrics.sh +22 -0
  200. package/skills/copilot-usage-metrics/get-enterprise-user-metrics.sh +22 -0
  201. package/skills/copilot-usage-metrics/get-org-metrics.sh +22 -0
  202. package/skills/copilot-usage-metrics/get-org-user-metrics.sh +22 -0
  203. package/skills/cosmosdb-datamodeling/LICENSE.md +21 -0
  204. package/skills/cosmosdb-datamodeling/SKILL.md +1045 -0
  205. package/skills/cosmosdb-datamodeling/SYNC.md +5 -0
  206. package/skills/create-agentsmd/LICENSE.md +21 -0
  207. package/skills/create-agentsmd/SKILL.md +249 -0
  208. package/skills/create-agentsmd/SYNC.md +5 -0
  209. package/skills/create-architectural-decision-record/LICENSE.md +21 -0
  210. package/skills/create-architectural-decision-record/SKILL.md +97 -0
  211. package/skills/create-architectural-decision-record/SYNC.md +5 -0
  212. package/skills/create-github-action-workflow-specification/LICENSE.md +21 -0
  213. package/skills/create-github-action-workflow-specification/SKILL.md +276 -0
  214. package/skills/create-github-action-workflow-specification/SYNC.md +5 -0
  215. package/skills/create-github-issue-feature-from-specification/LICENSE.md +21 -0
  216. package/skills/create-github-issue-feature-from-specification/SKILL.md +28 -0
  217. package/skills/create-github-issue-feature-from-specification/SYNC.md +5 -0
  218. package/skills/create-github-issues-feature-from-implementation-plan/LICENSE.md +21 -0
  219. package/skills/create-github-issues-feature-from-implementation-plan/SKILL.md +28 -0
  220. package/skills/create-github-issues-feature-from-implementation-plan/SYNC.md +5 -0
  221. package/skills/create-github-issues-for-unmet-specification-requirements/LICENSE.md +21 -0
  222. package/skills/create-github-issues-for-unmet-specification-requirements/SKILL.md +35 -0
  223. package/skills/create-github-issues-for-unmet-specification-requirements/SYNC.md +5 -0
  224. package/skills/create-github-pull-request-from-specification/LICENSE.md +21 -0
  225. package/skills/create-github-pull-request-from-specification/SKILL.md +24 -0
  226. package/skills/create-github-pull-request-from-specification/SYNC.md +5 -0
  227. package/skills/create-implementation-plan/LICENSE.md +21 -0
  228. package/skills/create-implementation-plan/SKILL.md +157 -0
  229. package/skills/create-implementation-plan/SYNC.md +5 -0
  230. package/skills/create-llms/LICENSE.md +21 -0
  231. package/skills/create-llms/SKILL.md +210 -0
  232. package/skills/create-llms/SYNC.md +5 -0
  233. package/skills/create-readme/LICENSE.md +21 -0
  234. package/skills/create-readme/SKILL.md +21 -0
  235. package/skills/create-readme/SYNC.md +5 -0
  236. package/skills/create-specification/LICENSE.md +21 -0
  237. package/skills/create-specification/SKILL.md +127 -0
  238. package/skills/create-specification/SYNC.md +5 -0
  239. package/skills/create-spring-boot-java-project/LICENSE.md +21 -0
  240. package/skills/create-spring-boot-java-project/SKILL.md +163 -0
  241. package/skills/create-spring-boot-java-project/SYNC.md +5 -0
  242. package/skills/create-spring-boot-kotlin-project/LICENSE.md +21 -0
  243. package/skills/create-spring-boot-kotlin-project/SKILL.md +147 -0
  244. package/skills/create-spring-boot-kotlin-project/SYNC.md +5 -0
  245. package/skills/create-technical-spike/LICENSE.md +21 -0
  246. package/skills/create-technical-spike/SKILL.md +230 -0
  247. package/skills/create-technical-spike/SYNC.md +5 -0
  248. package/skills/create-tldr-page/LICENSE.md +21 -0
  249. package/skills/create-tldr-page/SKILL.md +210 -0
  250. package/skills/create-tldr-page/SYNC.md +5 -0
  251. package/skills/creating-oracle-to-postgres-master-migration-plan/LICENSE.md +21 -0
  252. package/skills/creating-oracle-to-postgres-master-migration-plan/SKILL.md +83 -0
  253. package/skills/creating-oracle-to-postgres-master-migration-plan/SYNC.md +5 -0
  254. package/skills/creating-oracle-to-postgres-migration-bug-report/LICENSE.md +21 -0
  255. package/skills/creating-oracle-to-postgres-migration-bug-report/SKILL.md +43 -0
  256. package/skills/creating-oracle-to-postgres-migration-bug-report/SYNC.md +5 -0
  257. package/skills/creating-oracle-to-postgres-migration-bug-report/references/BUG-REPORT-TEMPLATE.md +79 -0
  258. package/skills/creating-oracle-to-postgres-migration-integration-tests/LICENSE.md +21 -0
  259. package/skills/creating-oracle-to-postgres-migration-integration-tests/SKILL.md +60 -0
  260. package/skills/creating-oracle-to-postgres-migration-integration-tests/SYNC.md +5 -0
  261. package/skills/csharp-async/LICENSE.md +21 -0
  262. package/skills/csharp-async/SKILL.md +49 -0
  263. package/skills/csharp-async/SYNC.md +5 -0
  264. package/skills/csharp-docs/LICENSE.md +21 -0
  265. package/skills/csharp-docs/SKILL.md +62 -0
  266. package/skills/csharp-docs/SYNC.md +5 -0
  267. package/skills/csharp-mcp-server-generator/LICENSE.md +21 -0
  268. package/skills/csharp-mcp-server-generator/SKILL.md +59 -0
  269. package/skills/csharp-mcp-server-generator/SYNC.md +5 -0
  270. package/skills/csharp-mstest/LICENSE.md +21 -0
  271. package/skills/csharp-mstest/SKILL.md +478 -0
  272. package/skills/csharp-mstest/SYNC.md +5 -0
  273. package/skills/csharp-nunit/LICENSE.md +21 -0
  274. package/skills/csharp-nunit/SKILL.md +71 -0
  275. package/skills/csharp-nunit/SYNC.md +5 -0
  276. package/skills/csharp-tunit/LICENSE.md +21 -0
  277. package/skills/csharp-tunit/SKILL.md +100 -0
  278. package/skills/csharp-tunit/SYNC.md +5 -0
  279. package/skills/csharp-xunit/LICENSE.md +21 -0
  280. package/skills/csharp-xunit/SKILL.md +68 -0
  281. package/skills/csharp-xunit/SYNC.md +5 -0
  282. package/skills/datanalysis-credit-risk/LICENSE.md +21 -0
  283. package/skills/datanalysis-credit-risk/SKILL.md +113 -0
  284. package/skills/datanalysis-credit-risk/SYNC.md +5 -0
  285. package/skills/datanalysis-credit-risk/references/analysis.py +1223 -0
  286. package/skills/datanalysis-credit-risk/references/func.py +228 -0
  287. package/skills/datanalysis-credit-risk/scripts/example.py +391 -0
  288. package/skills/dataverse-python-advanced-patterns/LICENSE.md +21 -0
  289. package/skills/dataverse-python-advanced-patterns/SKILL.md +17 -0
  290. package/skills/dataverse-python-advanced-patterns/SYNC.md +5 -0
  291. package/skills/dataverse-python-production-code/LICENSE.md +21 -0
  292. package/skills/dataverse-python-production-code/SKILL.md +116 -0
  293. package/skills/dataverse-python-production-code/SYNC.md +5 -0
  294. package/skills/dataverse-python-quickstart/LICENSE.md +21 -0
  295. package/skills/dataverse-python-quickstart/SKILL.md +14 -0
  296. package/skills/dataverse-python-quickstart/SYNC.md +5 -0
  297. package/skills/dataverse-python-usecase-builder/LICENSE.md +21 -0
  298. package/skills/dataverse-python-usecase-builder/SKILL.md +246 -0
  299. package/skills/dataverse-python-usecase-builder/SYNC.md +5 -0
  300. package/skills/debian-linux-triage/LICENSE.md +21 -0
  301. package/skills/debian-linux-triage/SKILL.md +31 -0
  302. package/skills/debian-linux-triage/SYNC.md +5 -0
  303. package/skills/declarative-agents/LICENSE.md +21 -0
  304. package/skills/declarative-agents/SKILL.md +94 -0
  305. package/skills/declarative-agents/SYNC.md +5 -0
  306. package/skills/dependabot/LICENSE.md +21 -0
  307. package/skills/dependabot/SKILL.md +422 -0
  308. package/skills/dependabot/SYNC.md +5 -0
  309. package/skills/dependabot/references/dependabot-yml-reference.md +374 -0
  310. package/skills/dependabot/references/example-configs.md +409 -0
  311. package/skills/dependabot/references/pr-commands.md +91 -0
  312. package/skills/devops-rollout-plan/LICENSE.md +21 -0
  313. package/skills/devops-rollout-plan/SKILL.md +117 -0
  314. package/skills/devops-rollout-plan/SYNC.md +5 -0
  315. package/skills/documentation-writer/LICENSE.md +21 -0
  316. package/skills/documentation-writer/SKILL.md +45 -0
  317. package/skills/documentation-writer/SYNC.md +5 -0
  318. package/skills/dotnet-best-practices/LICENSE.md +21 -0
  319. package/skills/dotnet-best-practices/SKILL.md +85 -0
  320. package/skills/dotnet-best-practices/SYNC.md +5 -0
  321. package/skills/dotnet-design-pattern-review/LICENSE.md +21 -0
  322. package/skills/dotnet-design-pattern-review/SKILL.md +42 -0
  323. package/skills/dotnet-design-pattern-review/SYNC.md +5 -0
  324. package/skills/dotnet-timezone/LICENSE.md +21 -0
  325. package/skills/dotnet-timezone/SKILL.md +109 -0
  326. package/skills/dotnet-timezone/SYNC.md +5 -0
  327. package/skills/dotnet-timezone/references/code-patterns.md +153 -0
  328. package/skills/dotnet-timezone/references/timezone-index.md +87 -0
  329. package/skills/dotnet-upgrade/LICENSE.md +21 -0
  330. package/skills/dotnet-upgrade/SKILL.md +116 -0
  331. package/skills/dotnet-upgrade/SYNC.md +5 -0
  332. package/skills/doublecheck/LICENSE.md +21 -0
  333. package/skills/doublecheck/SKILL.md +277 -0
  334. package/skills/doublecheck/SYNC.md +5 -0
  335. package/skills/doublecheck/assets/verification-report-template.md +92 -0
  336. package/skills/editorconfig/LICENSE.md +21 -0
  337. package/skills/editorconfig/SKILL.md +63 -0
  338. package/skills/editorconfig/SYNC.md +5 -0
  339. package/skills/ef-core/LICENSE.md +21 -0
  340. package/skills/ef-core/SKILL.md +75 -0
  341. package/skills/ef-core/SYNC.md +5 -0
  342. package/skills/entra-agent-user/LICENSE.md +21 -0
  343. package/skills/entra-agent-user/SKILL.md +270 -0
  344. package/skills/entra-agent-user/SYNC.md +5 -0
  345. package/skills/eval-driven-dev/LICENSE.md +21 -0
  346. package/skills/eval-driven-dev/SKILL.md +862 -0
  347. package/skills/eval-driven-dev/SYNC.md +5 -0
  348. package/skills/eval-driven-dev/references/pixie-api.md +195 -0
  349. package/skills/excalidraw-diagram-generator/LICENSE.md +21 -0
  350. package/skills/excalidraw-diagram-generator/SKILL.md +613 -0
  351. package/skills/excalidraw-diagram-generator/SYNC.md +5 -0
  352. package/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
  353. package/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
  354. package/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
  355. package/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
  356. package/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
  357. package/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
  358. package/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
  359. package/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
  360. package/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
  361. package/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
  362. package/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
  363. package/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
  364. package/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
  365. package/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
  366. package/skills/fabric-lakehouse/LICENSE.md +21 -0
  367. package/skills/fabric-lakehouse/SKILL.md +106 -0
  368. package/skills/fabric-lakehouse/SYNC.md +5 -0
  369. package/skills/fabric-lakehouse/references/getdata.md +36 -0
  370. package/skills/fabric-lakehouse/references/pyspark.md +189 -0
  371. package/skills/fedora-linux-triage/LICENSE.md +21 -0
  372. package/skills/fedora-linux-triage/SKILL.md +31 -0
  373. package/skills/fedora-linux-triage/SYNC.md +5 -0
  374. package/skills/finalize-agent-prompt/LICENSE.md +21 -0
  375. package/skills/finalize-agent-prompt/SKILL.md +26 -0
  376. package/skills/finalize-agent-prompt/SYNC.md +5 -0
  377. package/skills/finnish-humanizer/LICENSE.md +21 -0
  378. package/skills/finnish-humanizer/SKILL.md +145 -0
  379. package/skills/finnish-humanizer/SYNC.md +5 -0
  380. package/skills/finnish-humanizer/references/patterns.md +338 -0
  381. package/skills/first-ask/LICENSE.md +21 -0
  382. package/skills/first-ask/SKILL.md +30 -0
  383. package/skills/first-ask/SYNC.md +5 -0
  384. package/skills/flowstudio-power-automate-build/LICENSE.md +21 -0
  385. package/skills/flowstudio-power-automate-build/SKILL.md +460 -0
  386. package/skills/flowstudio-power-automate-build/SYNC.md +5 -0
  387. package/skills/flowstudio-power-automate-build/references/action-patterns-connectors.md +542 -0
  388. package/skills/flowstudio-power-automate-build/references/action-patterns-core.md +542 -0
  389. package/skills/flowstudio-power-automate-build/references/action-patterns-data.md +735 -0
  390. package/skills/flowstudio-power-automate-build/references/build-patterns.md +108 -0
  391. package/skills/flowstudio-power-automate-build/references/flow-schema.md +225 -0
  392. package/skills/flowstudio-power-automate-build/references/trigger-types.md +211 -0
  393. package/skills/flowstudio-power-automate-debug/LICENSE.md +21 -0
  394. package/skills/flowstudio-power-automate-debug/SKILL.md +322 -0
  395. package/skills/flowstudio-power-automate-debug/SYNC.md +5 -0
  396. package/skills/flowstudio-power-automate-debug/references/common-errors.md +188 -0
  397. package/skills/flowstudio-power-automate-debug/references/debug-workflow.md +157 -0
  398. package/skills/flowstudio-power-automate-mcp/LICENSE.md +21 -0
  399. package/skills/flowstudio-power-automate-mcp/SKILL.md +450 -0
  400. package/skills/flowstudio-power-automate-mcp/SYNC.md +5 -0
  401. package/skills/flowstudio-power-automate-mcp/references/MCP-BOOTSTRAP.md +53 -0
  402. package/skills/flowstudio-power-automate-mcp/references/action-types.md +79 -0
  403. package/skills/flowstudio-power-automate-mcp/references/connection-references.md +115 -0
  404. package/skills/flowstudio-power-automate-mcp/references/tool-reference.md +445 -0
  405. package/skills/fluentui-blazor/LICENSE.md +21 -0
  406. package/skills/fluentui-blazor/SKILL.md +231 -0
  407. package/skills/fluentui-blazor/SYNC.md +5 -0
  408. package/skills/fluentui-blazor/references/DATAGRID.md +162 -0
  409. package/skills/fluentui-blazor/references/LAYOUT-AND-NAVIGATION.md +173 -0
  410. package/skills/fluentui-blazor/references/SETUP.md +129 -0
  411. package/skills/fluentui-blazor/references/THEMING.md +103 -0
  412. package/skills/folder-structure-blueprint-generator/LICENSE.md +21 -0
  413. package/skills/folder-structure-blueprint-generator/SKILL.md +405 -0
  414. package/skills/folder-structure-blueprint-generator/SYNC.md +5 -0
  415. package/skills/game-engine/LICENSE.md +21 -0
  416. package/skills/game-engine/SKILL.md +139 -0
  417. package/skills/game-engine/SYNC.md +5 -0
  418. package/skills/game-engine/assets/2d-maze-game.md +528 -0
  419. package/skills/game-engine/assets/2d-platform-game.md +1855 -0
  420. package/skills/game-engine/assets/gameBase-template-repo.md +310 -0
  421. package/skills/game-engine/assets/paddle-game-template.md +1528 -0
  422. package/skills/game-engine/assets/simple-2d-engine.md +507 -0
  423. package/skills/game-engine/references/3d-web-games.md +754 -0
  424. package/skills/game-engine/references/algorithms.md +843 -0
  425. package/skills/game-engine/references/basics.md +343 -0
  426. package/skills/game-engine/references/game-control-mechanisms.md +617 -0
  427. package/skills/game-engine/references/game-engine-core-principles.md +695 -0
  428. package/skills/game-engine/references/game-publishing.md +352 -0
  429. package/skills/game-engine/references/techniques.md +894 -0
  430. package/skills/game-engine/references/terminology.md +354 -0
  431. package/skills/game-engine/references/web-apis.md +1394 -0
  432. package/skills/gen-specs-as-issues/LICENSE.md +21 -0
  433. package/skills/gen-specs-as-issues/SKILL.md +165 -0
  434. package/skills/gen-specs-as-issues/SYNC.md +5 -0
  435. package/skills/generate-custom-instructions-from-codebase/LICENSE.md +21 -0
  436. package/skills/generate-custom-instructions-from-codebase/SKILL.md +240 -0
  437. package/skills/generate-custom-instructions-from-codebase/SYNC.md +5 -0
  438. package/skills/geofeed-tuner/LICENSE.md +21 -0
  439. package/skills/geofeed-tuner/SKILL.md +864 -0
  440. package/skills/geofeed-tuner/SYNC.md +5 -0
  441. package/skills/geofeed-tuner/assets/example/01-user-input-rfc8805-feed.csv +5 -0
  442. package/skills/geofeed-tuner/assets/iso3166-1.json +1249 -0
  443. package/skills/geofeed-tuner/assets/iso3166-2.json +20188 -0
  444. package/skills/geofeed-tuner/assets/small-territories.json +106 -0
  445. package/skills/geofeed-tuner/references/rfc8805.txt +735 -0
  446. package/skills/geofeed-tuner/references/snippets-python3.md +85 -0
  447. package/skills/geofeed-tuner/scripts/templates/index.html +2305 -0
  448. package/skills/gh-cli/LICENSE.md +21 -0
  449. package/skills/gh-cli/SKILL.md +2187 -0
  450. package/skills/gh-cli/SYNC.md +5 -0
  451. package/skills/git-commit/LICENSE.md +21 -0
  452. package/skills/git-commit/SKILL.md +124 -0
  453. package/skills/git-commit/SYNC.md +5 -0
  454. package/skills/git-flow-branch-creator/LICENSE.md +21 -0
  455. package/skills/git-flow-branch-creator/SKILL.md +292 -0
  456. package/skills/git-flow-branch-creator/SYNC.md +5 -0
  457. package/skills/github-copilot-starter/LICENSE.md +21 -0
  458. package/skills/github-copilot-starter/SKILL.md +402 -0
  459. package/skills/github-copilot-starter/SYNC.md +5 -0
  460. package/skills/github-issues/LICENSE.md +21 -0
  461. package/skills/github-issues/SKILL.md +201 -0
  462. package/skills/github-issues/SYNC.md +5 -0
  463. package/skills/github-issues/references/dependencies.md +71 -0
  464. package/skills/github-issues/references/images.md +116 -0
  465. package/skills/github-issues/references/issue-fields.md +191 -0
  466. package/skills/github-issues/references/issue-types.md +72 -0
  467. package/skills/github-issues/references/projects.md +273 -0
  468. package/skills/github-issues/references/search.md +231 -0
  469. package/skills/github-issues/references/sub-issues.md +137 -0
  470. package/skills/github-issues/references/templates.md +90 -0
  471. package/skills/go-mcp-server-generator/LICENSE.md +21 -0
  472. package/skills/go-mcp-server-generator/SKILL.md +334 -0
  473. package/skills/go-mcp-server-generator/SYNC.md +5 -0
  474. package/skills/gtm-0-to-1-launch/LICENSE.md +21 -0
  475. package/skills/gtm-0-to-1-launch/SKILL.md +321 -0
  476. package/skills/gtm-0-to-1-launch/SYNC.md +5 -0
  477. package/skills/gtm-ai-gtm/LICENSE.md +21 -0
  478. package/skills/gtm-ai-gtm/SKILL.md +569 -0
  479. package/skills/gtm-ai-gtm/SYNC.md +5 -0
  480. package/skills/gtm-board-and-investor-communication/LICENSE.md +21 -0
  481. package/skills/gtm-board-and-investor-communication/SKILL.md +456 -0
  482. package/skills/gtm-board-and-investor-communication/SYNC.md +5 -0
  483. package/skills/gtm-developer-ecosystem/LICENSE.md +21 -0
  484. package/skills/gtm-developer-ecosystem/SKILL.md +310 -0
  485. package/skills/gtm-developer-ecosystem/SYNC.md +5 -0
  486. package/skills/gtm-enterprise-account-planning/LICENSE.md +21 -0
  487. package/skills/gtm-enterprise-account-planning/SKILL.md +429 -0
  488. package/skills/gtm-enterprise-account-planning/SYNC.md +5 -0
  489. package/skills/gtm-enterprise-onboarding/LICENSE.md +21 -0
  490. package/skills/gtm-enterprise-onboarding/SKILL.md +457 -0
  491. package/skills/gtm-enterprise-onboarding/SYNC.md +5 -0
  492. package/skills/gtm-operating-cadence/LICENSE.md +21 -0
  493. package/skills/gtm-operating-cadence/SKILL.md +420 -0
  494. package/skills/gtm-operating-cadence/SYNC.md +5 -0
  495. package/skills/gtm-partnership-architecture/LICENSE.md +21 -0
  496. package/skills/gtm-partnership-architecture/SKILL.md +470 -0
  497. package/skills/gtm-partnership-architecture/SYNC.md +5 -0
  498. package/skills/gtm-positioning-strategy/LICENSE.md +21 -0
  499. package/skills/gtm-positioning-strategy/SKILL.md +438 -0
  500. package/skills/gtm-positioning-strategy/SYNC.md +5 -0
  501. package/skills/gtm-product-led-growth/LICENSE.md +21 -0
  502. package/skills/gtm-product-led-growth/SKILL.md +339 -0
  503. package/skills/gtm-product-led-growth/SYNC.md +5 -0
  504. package/skills/gtm-technical-product-pricing/LICENSE.md +21 -0
  505. package/skills/gtm-technical-product-pricing/SKILL.md +353 -0
  506. package/skills/gtm-technical-product-pricing/SYNC.md +5 -0
  507. package/skills/image-manipulation-image-magick/LICENSE.md +21 -0
  508. package/skills/image-manipulation-image-magick/SKILL.md +252 -0
  509. package/skills/image-manipulation-image-magick/SYNC.md +5 -0
  510. package/skills/import-infrastructure-as-code/LICENSE.md +21 -0
  511. package/skills/import-infrastructure-as-code/SKILL.md +367 -0
  512. package/skills/import-infrastructure-as-code/SYNC.md +5 -0
  513. package/skills/issue-fields-migration/LICENSE.md +21 -0
  514. package/skills/issue-fields-migration/SKILL.md +533 -0
  515. package/skills/issue-fields-migration/SYNC.md +5 -0
  516. package/skills/issue-fields-migration/references/issue-fields-api.md +129 -0
  517. package/skills/issue-fields-migration/references/labels-api.md +74 -0
  518. package/skills/issue-fields-migration/references/projects-api.md +116 -0
  519. package/skills/java-add-graalvm-native-image-support/LICENSE.md +21 -0
  520. package/skills/java-add-graalvm-native-image-support/SKILL.md +449 -0
  521. package/skills/java-add-graalvm-native-image-support/SYNC.md +5 -0
  522. package/skills/java-docs/LICENSE.md +21 -0
  523. package/skills/java-docs/SKILL.md +23 -0
  524. package/skills/java-docs/SYNC.md +5 -0
  525. package/skills/java-junit/LICENSE.md +21 -0
  526. package/skills/java-junit/SKILL.md +63 -0
  527. package/skills/java-junit/SYNC.md +5 -0
  528. package/skills/java-mcp-server-generator/LICENSE.md +21 -0
  529. package/skills/java-mcp-server-generator/SKILL.md +756 -0
  530. package/skills/java-mcp-server-generator/SYNC.md +5 -0
  531. package/skills/java-refactoring-extract-method/LICENSE.md +21 -0
  532. package/skills/java-refactoring-extract-method/SKILL.md +104 -0
  533. package/skills/java-refactoring-extract-method/SYNC.md +5 -0
  534. package/skills/java-refactoring-remove-parameter/LICENSE.md +21 -0
  535. package/skills/java-refactoring-remove-parameter/SKILL.md +84 -0
  536. package/skills/java-refactoring-remove-parameter/SYNC.md +5 -0
  537. package/skills/java-springboot/LICENSE.md +21 -0
  538. package/skills/java-springboot/SKILL.md +65 -0
  539. package/skills/java-springboot/SYNC.md +5 -0
  540. package/skills/javascript-typescript-jest/LICENSE.md +21 -0
  541. package/skills/javascript-typescript-jest/SKILL.md +44 -0
  542. package/skills/javascript-typescript-jest/SYNC.md +5 -0
  543. package/skills/kotlin-mcp-server-generator/LICENSE.md +21 -0
  544. package/skills/kotlin-mcp-server-generator/SKILL.md +449 -0
  545. package/skills/kotlin-mcp-server-generator/SYNC.md +5 -0
  546. package/skills/kotlin-springboot/LICENSE.md +21 -0
  547. package/skills/kotlin-springboot/SKILL.md +70 -0
  548. package/skills/kotlin-springboot/SYNC.md +5 -0
  549. package/skills/legacy-circuit-mockups/LICENSE.md +21 -0
  550. package/skills/legacy-circuit-mockups/SKILL.md +276 -0
  551. package/skills/legacy-circuit-mockups/SYNC.md +5 -0
  552. package/skills/legacy-circuit-mockups/references/28256-eeprom.md +190 -0
  553. package/skills/legacy-circuit-mockups/references/555.md +861 -0
  554. package/skills/legacy-circuit-mockups/references/6502.md +221 -0
  555. package/skills/legacy-circuit-mockups/references/6522.md +211 -0
  556. package/skills/legacy-circuit-mockups/references/6C62256.md +177 -0
  557. package/skills/legacy-circuit-mockups/references/7400-series.md +177 -0
  558. package/skills/legacy-circuit-mockups/references/assembly-compiler.md +258 -0
  559. package/skills/legacy-circuit-mockups/references/assembly-language.md +226 -0
  560. package/skills/legacy-circuit-mockups/references/basic-electronic-components.md +86 -0
  561. package/skills/legacy-circuit-mockups/references/breadboard.md +214 -0
  562. package/skills/legacy-circuit-mockups/references/common-breadboard-components.md +281 -0
  563. package/skills/legacy-circuit-mockups/references/connecting-electronic-components.md +310 -0
  564. package/skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md +245 -0
  565. package/skills/legacy-circuit-mockups/references/emulator-6502.md +251 -0
  566. package/skills/legacy-circuit-mockups/references/emulator-6522.md +288 -0
  567. package/skills/legacy-circuit-mockups/references/emulator-6C62256.md +233 -0
  568. package/skills/legacy-circuit-mockups/references/emulator-lcd.md +266 -0
  569. package/skills/legacy-circuit-mockups/references/lcd.md +208 -0
  570. package/skills/legacy-circuit-mockups/references/minipro.md +211 -0
  571. package/skills/legacy-circuit-mockups/references/t48eeprom-programmer.md +174 -0
  572. package/skills/make-repo-contribution/LICENSE.md +21 -0
  573. package/skills/make-repo-contribution/SKILL.md +90 -0
  574. package/skills/make-repo-contribution/SYNC.md +5 -0
  575. package/skills/make-repo-contribution/assets/issue-template.md +37 -0
  576. package/skills/make-repo-contribution/assets/pr-template.md +36 -0
  577. package/skills/make-skill-template/LICENSE.md +21 -0
  578. package/skills/make-skill-template/SKILL.md +147 -0
  579. package/skills/make-skill-template/SYNC.md +5 -0
  580. package/skills/markdown-to-html/LICENSE.md +21 -0
  581. package/skills/markdown-to-html/SKILL.md +916 -0
  582. package/skills/markdown-to-html/SYNC.md +5 -0
  583. package/skills/markdown-to-html/references/basic-markdown-to-html.md +420 -0
  584. package/skills/markdown-to-html/references/basic-markdown.md +496 -0
  585. package/skills/markdown-to-html/references/code-blocks-to-html.md +165 -0
  586. package/skills/markdown-to-html/references/code-blocks.md +70 -0
  587. package/skills/markdown-to-html/references/collapsed-sections-to-html.md +136 -0
  588. package/skills/markdown-to-html/references/collapsed-sections.md +48 -0
  589. package/skills/markdown-to-html/references/gomarkdown.md +253 -0
  590. package/skills/markdown-to-html/references/hugo.md +394 -0
  591. package/skills/markdown-to-html/references/jekyll.md +321 -0
  592. package/skills/markdown-to-html/references/marked.md +121 -0
  593. package/skills/markdown-to-html/references/pandoc.md +226 -0
  594. package/skills/markdown-to-html/references/tables-to-html.md +169 -0
  595. package/skills/markdown-to-html/references/tables.md +72 -0
  596. package/skills/markdown-to-html/references/writing-mathematical-expressions-to-html.md +350 -0
  597. package/skills/markdown-to-html/references/writing-mathematical-expressions.md +76 -0
  598. package/skills/mcp-cli/LICENSE.md +21 -0
  599. package/skills/mcp-cli/SKILL.md +78 -0
  600. package/skills/mcp-cli/SYNC.md +5 -0
  601. package/skills/mcp-copilot-studio-server-generator/LICENSE.md +21 -0
  602. package/skills/mcp-copilot-studio-server-generator/SKILL.md +118 -0
  603. package/skills/mcp-copilot-studio-server-generator/SYNC.md +5 -0
  604. package/skills/mcp-create-adaptive-cards/LICENSE.md +21 -0
  605. package/skills/mcp-create-adaptive-cards/SKILL.md +532 -0
  606. package/skills/mcp-create-adaptive-cards/SYNC.md +5 -0
  607. package/skills/mcp-create-declarative-agent/LICENSE.md +21 -0
  608. package/skills/mcp-create-declarative-agent/SKILL.md +315 -0
  609. package/skills/mcp-create-declarative-agent/SYNC.md +5 -0
  610. package/skills/mcp-deploy-manage-agents/LICENSE.md +21 -0
  611. package/skills/mcp-deploy-manage-agents/SKILL.md +341 -0
  612. package/skills/mcp-deploy-manage-agents/SYNC.md +5 -0
  613. package/skills/meeting-minutes/LICENSE.md +21 -0
  614. package/skills/meeting-minutes/SKILL.md +235 -0
  615. package/skills/meeting-minutes/SYNC.md +5 -0
  616. package/skills/memory-merger/LICENSE.md +21 -0
  617. package/skills/memory-merger/SKILL.md +108 -0
  618. package/skills/memory-merger/SYNC.md +5 -0
  619. package/skills/mentoring-juniors/LICENSE.md +21 -0
  620. package/skills/mentoring-juniors/SKILL.md +310 -0
  621. package/skills/mentoring-juniors/SYNC.md +5 -0
  622. package/skills/microsoft-agent-framework/LICENSE.md +21 -0
  623. package/skills/microsoft-agent-framework/SKILL.md +65 -0
  624. package/skills/microsoft-agent-framework/SYNC.md +5 -0
  625. package/skills/microsoft-agent-framework/references/dotnet.md +24 -0
  626. package/skills/microsoft-agent-framework/references/python.md +24 -0
  627. package/skills/microsoft-code-reference/LICENSE.md +21 -0
  628. package/skills/microsoft-code-reference/SKILL.md +99 -0
  629. package/skills/microsoft-code-reference/SYNC.md +5 -0
  630. package/skills/microsoft-docs/LICENSE.md +21 -0
  631. package/skills/microsoft-docs/SKILL.md +134 -0
  632. package/skills/microsoft-docs/SYNC.md +5 -0
  633. package/skills/microsoft-skill-creator/LICENSE.md +21 -0
  634. package/skills/microsoft-skill-creator/SKILL.md +250 -0
  635. package/skills/microsoft-skill-creator/SYNC.md +5 -0
  636. package/skills/microsoft-skill-creator/references/skill-templates.md +345 -0
  637. package/skills/migrating-oracle-to-postgres-stored-procedures/LICENSE.md +21 -0
  638. package/skills/migrating-oracle-to-postgres-stored-procedures/SKILL.md +42 -0
  639. package/skills/migrating-oracle-to-postgres-stored-procedures/SYNC.md +5 -0
  640. package/skills/mkdocs-translations/LICENSE.md +21 -0
  641. package/skills/mkdocs-translations/SKILL.md +108 -0
  642. package/skills/mkdocs-translations/SYNC.md +5 -0
  643. package/skills/model-recommendation/LICENSE.md +21 -0
  644. package/skills/model-recommendation/SKILL.md +672 -0
  645. package/skills/model-recommendation/SYNC.md +5 -0
  646. package/skills/msstore-cli/LICENSE.md +21 -0
  647. package/skills/msstore-cli/SKILL.md +600 -0
  648. package/skills/msstore-cli/SYNC.md +5 -0
  649. package/skills/multi-stage-dockerfile/LICENSE.md +21 -0
  650. package/skills/multi-stage-dockerfile/SKILL.md +46 -0
  651. package/skills/multi-stage-dockerfile/SYNC.md +5 -0
  652. package/skills/my-issues/LICENSE.md +21 -0
  653. package/skills/my-issues/SKILL.md +8 -0
  654. package/skills/my-issues/SYNC.md +5 -0
  655. package/skills/my-pull-requests/LICENSE.md +21 -0
  656. package/skills/my-pull-requests/SKILL.md +14 -0
  657. package/skills/my-pull-requests/SYNC.md +5 -0
  658. package/skills/nano-banana-pro-openrouter/LICENSE.md +21 -0
  659. package/skills/nano-banana-pro-openrouter/SKILL.md +74 -0
  660. package/skills/nano-banana-pro-openrouter/SYNC.md +5 -0
  661. package/skills/nano-banana-pro-openrouter/assets/SYSTEM_TEMPLATE +14 -0
  662. package/skills/nano-banana-pro-openrouter/scripts/generate_image.py +191 -0
  663. package/skills/napkin/LICENSE.md +21 -0
  664. package/skills/napkin/SKILL.md +154 -0
  665. package/skills/napkin/SYNC.md +5 -0
  666. package/skills/napkin/assets/napkin.html +2019 -0
  667. package/skills/napkin/assets/step1-activate.svg +107 -0
  668. package/skills/napkin/assets/step2-whiteboard.svg +157 -0
  669. package/skills/napkin/assets/step3-draw.svg +143 -0
  670. package/skills/napkin/assets/step4-share.svg +98 -0
  671. package/skills/napkin/assets/step5-response.svg +112 -0
  672. package/skills/next-intl-add-language/LICENSE.md +21 -0
  673. package/skills/next-intl-add-language/SKILL.md +19 -0
  674. package/skills/next-intl-add-language/SYNC.md +5 -0
  675. package/skills/noob-mode/LICENSE.md +21 -0
  676. package/skills/noob-mode/SKILL.md +263 -0
  677. package/skills/noob-mode/SYNC.md +5 -0
  678. package/skills/noob-mode/references/examples.md +418 -0
  679. package/skills/noob-mode/references/glossary.md +368 -0
  680. package/skills/nuget-manager/LICENSE.md +21 -0
  681. package/skills/nuget-manager/SKILL.md +68 -0
  682. package/skills/nuget-manager/SYNC.md +5 -0
  683. package/skills/oo-component-documentation/LICENSE.md +21 -0
  684. package/skills/oo-component-documentation/SKILL.md +74 -0
  685. package/skills/oo-component-documentation/SYNC.md +5 -0
  686. package/skills/oo-component-documentation/assets/documentation-template.md +97 -0
  687. package/skills/oo-component-documentation/references/create-mode.md +32 -0
  688. package/skills/oo-component-documentation/references/update-mode.md +32 -0
  689. package/skills/openapi-to-application-code/LICENSE.md +21 -0
  690. package/skills/openapi-to-application-code/SKILL.md +112 -0
  691. package/skills/openapi-to-application-code/SYNC.md +5 -0
  692. package/skills/pdftk-server/LICENSE.md +21 -0
  693. package/skills/pdftk-server/SKILL.md +162 -0
  694. package/skills/pdftk-server/SYNC.md +5 -0
  695. package/skills/pdftk-server/references/download.md +75 -0
  696. package/skills/pdftk-server/references/pdftk-cli-examples.md +193 -0
  697. package/skills/pdftk-server/references/pdftk-man-page.md +232 -0
  698. package/skills/pdftk-server/references/pdftk-server-license.md +25 -0
  699. package/skills/pdftk-server/references/third-party-materials.md +103 -0
  700. package/skills/penpot-uiux-design/LICENSE.md +21 -0
  701. package/skills/penpot-uiux-design/SKILL.md +342 -0
  702. package/skills/penpot-uiux-design/SYNC.md +5 -0
  703. package/skills/penpot-uiux-design/references/accessibility.md +329 -0
  704. package/skills/penpot-uiux-design/references/component-patterns.md +339 -0
  705. package/skills/penpot-uiux-design/references/platform-guidelines.md +367 -0
  706. package/skills/penpot-uiux-design/references/setup-troubleshooting.md +328 -0
  707. package/skills/php-mcp-server-generator/LICENSE.md +21 -0
  708. package/skills/php-mcp-server-generator/SKILL.md +522 -0
  709. package/skills/php-mcp-server-generator/SYNC.md +5 -0
  710. package/skills/planning-oracle-to-postgres-migration-integration-testing/LICENSE.md +21 -0
  711. package/skills/planning-oracle-to-postgres-migration-integration-testing/SKILL.md +44 -0
  712. package/skills/planning-oracle-to-postgres-migration-integration-testing/SYNC.md +5 -0
  713. package/skills/plantuml-ascii/LICENSE.md +21 -0
  714. package/skills/plantuml-ascii/SKILL.md +305 -0
  715. package/skills/plantuml-ascii/SYNC.md +5 -0
  716. package/skills/playwright-automation-fill-in-form/LICENSE.md +21 -0
  717. package/skills/playwright-automation-fill-in-form/SKILL.md +28 -0
  718. package/skills/playwright-automation-fill-in-form/SYNC.md +5 -0
  719. package/skills/playwright-explore-website/LICENSE.md +21 -0
  720. package/skills/playwright-explore-website/SKILL.md +17 -0
  721. package/skills/playwright-explore-website/SYNC.md +5 -0
  722. package/skills/playwright-generate-test/LICENSE.md +21 -0
  723. package/skills/playwright-generate-test/SKILL.md +17 -0
  724. package/skills/playwright-generate-test/SYNC.md +5 -0
  725. package/skills/polyglot-test-agent/LICENSE.md +21 -0
  726. package/skills/polyglot-test-agent/SKILL.md +161 -0
  727. package/skills/polyglot-test-agent/SYNC.md +5 -0
  728. package/skills/polyglot-test-agent/unit-test-generation.prompt.md +155 -0
  729. package/skills/postgresql-code-review/LICENSE.md +21 -0
  730. package/skills/postgresql-code-review/SKILL.md +212 -0
  731. package/skills/postgresql-code-review/SYNC.md +5 -0
  732. package/skills/postgresql-optimization/LICENSE.md +21 -0
  733. package/skills/postgresql-optimization/SKILL.md +404 -0
  734. package/skills/postgresql-optimization/SYNC.md +5 -0
  735. package/skills/power-apps-code-app-scaffold/LICENSE.md +21 -0
  736. package/skills/power-apps-code-app-scaffold/SKILL.md +146 -0
  737. package/skills/power-apps-code-app-scaffold/SYNC.md +5 -0
  738. package/skills/power-bi-dax-optimization/LICENSE.md +21 -0
  739. package/skills/power-bi-dax-optimization/SKILL.md +173 -0
  740. package/skills/power-bi-dax-optimization/SYNC.md +5 -0
  741. package/skills/power-bi-model-design-review/LICENSE.md +21 -0
  742. package/skills/power-bi-model-design-review/SKILL.md +403 -0
  743. package/skills/power-bi-model-design-review/SYNC.md +5 -0
  744. package/skills/power-bi-performance-troubleshooting/LICENSE.md +21 -0
  745. package/skills/power-bi-performance-troubleshooting/SKILL.md +382 -0
  746. package/skills/power-bi-performance-troubleshooting/SYNC.md +5 -0
  747. package/skills/power-bi-report-design-consultation/LICENSE.md +21 -0
  748. package/skills/power-bi-report-design-consultation/SKILL.md +351 -0
  749. package/skills/power-bi-report-design-consultation/SYNC.md +5 -0
  750. package/skills/power-platform-mcp-connector-suite/LICENSE.md +21 -0
  751. package/skills/power-platform-mcp-connector-suite/SKILL.md +156 -0
  752. package/skills/power-platform-mcp-connector-suite/SYNC.md +5 -0
  753. package/skills/powerbi-modeling/LICENSE.md +21 -0
  754. package/skills/powerbi-modeling/SKILL.md +153 -0
  755. package/skills/powerbi-modeling/SYNC.md +5 -0
  756. package/skills/powerbi-modeling/references/MEASURES-DAX.md +195 -0
  757. package/skills/powerbi-modeling/references/PERFORMANCE.md +215 -0
  758. package/skills/powerbi-modeling/references/RELATIONSHIPS.md +147 -0
  759. package/skills/powerbi-modeling/references/RLS.md +226 -0
  760. package/skills/powerbi-modeling/references/STAR-SCHEMA.md +103 -0
  761. package/skills/prd/LICENSE.md +21 -0
  762. package/skills/prd/SKILL.md +143 -0
  763. package/skills/prd/SYNC.md +5 -0
  764. package/skills/premium-frontend-ui/LICENSE.md +21 -0
  765. package/skills/premium-frontend-ui/SKILL.md +110 -0
  766. package/skills/premium-frontend-ui/SYNC.md +5 -0
  767. package/skills/project-workflow-analysis-blueprint-generator/LICENSE.md +21 -0
  768. package/skills/project-workflow-analysis-blueprint-generator/SKILL.md +293 -0
  769. package/skills/project-workflow-analysis-blueprint-generator/SYNC.md +5 -0
  770. package/skills/prompt-builder/LICENSE.md +21 -0
  771. package/skills/prompt-builder/SKILL.md +141 -0
  772. package/skills/prompt-builder/SYNC.md +5 -0
  773. package/skills/publish-to-pages/LICENSE.md +21 -0
  774. package/skills/publish-to-pages/SKILL.md +107 -0
  775. package/skills/publish-to-pages/SYNC.md +5 -0
  776. package/skills/publish-to-pages/scripts/convert-pdf.py +176 -0
  777. package/skills/publish-to-pages/scripts/convert-pptx.py +376 -0
  778. package/skills/publish-to-pages/scripts/publish.sh +51 -0
  779. package/skills/pytest-coverage/LICENSE.md +21 -0
  780. package/skills/pytest-coverage/SKILL.md +28 -0
  781. package/skills/pytest-coverage/SYNC.md +5 -0
  782. package/skills/python-mcp-server-generator/LICENSE.md +21 -0
  783. package/skills/python-mcp-server-generator/SKILL.md +105 -0
  784. package/skills/python-mcp-server-generator/SYNC.md +5 -0
  785. package/skills/quasi-coder/LICENSE.md +21 -0
  786. package/skills/quasi-coder/SKILL.md +369 -0
  787. package/skills/quasi-coder/SYNC.md +5 -0
  788. package/skills/readme-blueprint-generator/LICENSE.md +21 -0
  789. package/skills/readme-blueprint-generator/SKILL.md +78 -0
  790. package/skills/readme-blueprint-generator/SYNC.md +5 -0
  791. package/skills/refactor/LICENSE.md +21 -0
  792. package/skills/refactor/SKILL.md +645 -0
  793. package/skills/refactor/SYNC.md +5 -0
  794. package/skills/refactor-method-complexity-reduce/LICENSE.md +21 -0
  795. package/skills/refactor-method-complexity-reduce/SKILL.md +98 -0
  796. package/skills/refactor-method-complexity-reduce/SYNC.md +5 -0
  797. package/skills/refactor-plan/LICENSE.md +21 -0
  798. package/skills/refactor-plan/SKILL.md +65 -0
  799. package/skills/refactor-plan/SYNC.md +5 -0
  800. package/skills/remember/LICENSE.md +21 -0
  801. package/skills/remember/SKILL.md +126 -0
  802. package/skills/remember/SYNC.md +5 -0
  803. package/skills/remember-interactive-programming/LICENSE.md +21 -0
  804. package/skills/remember-interactive-programming/SKILL.md +13 -0
  805. package/skills/remember-interactive-programming/SYNC.md +5 -0
  806. package/skills/repo-story-time/LICENSE.md +21 -0
  807. package/skills/repo-story-time/SKILL.md +154 -0
  808. package/skills/repo-story-time/SYNC.md +5 -0
  809. package/skills/review-and-refactor/LICENSE.md +21 -0
  810. package/skills/review-and-refactor/SKILL.md +15 -0
  811. package/skills/review-and-refactor/SYNC.md +5 -0
  812. package/skills/reviewing-oracle-to-postgres-migration/LICENSE.md +21 -0
  813. package/skills/reviewing-oracle-to-postgres-migration/SKILL.md +67 -0
  814. package/skills/reviewing-oracle-to-postgres-migration/SYNC.md +5 -0
  815. package/skills/reviewing-oracle-to-postgres-migration/references/REFERENCE.md +13 -0
  816. package/skills/reviewing-oracle-to-postgres-migration/references/empty-strings-handling.md +69 -0
  817. package/skills/reviewing-oracle-to-postgres-migration/references/no-data-found-exceptions.md +99 -0
  818. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-parentheses-from-clause.md +190 -0
  819. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-sorting.md +51 -0
  820. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-timestamp-timezone.md +187 -0
  821. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-to-char-numeric.md +145 -0
  822. package/skills/reviewing-oracle-to-postgres-migration/references/oracle-to-postgres-type-coercion.md +182 -0
  823. package/skills/reviewing-oracle-to-postgres-migration/references/postgres-concurrent-transactions.md +259 -0
  824. package/skills/reviewing-oracle-to-postgres-migration/references/postgres-refcursor-handling.md +148 -0
  825. package/skills/ruby-mcp-server-generator/LICENSE.md +21 -0
  826. package/skills/ruby-mcp-server-generator/SKILL.md +660 -0
  827. package/skills/ruby-mcp-server-generator/SYNC.md +5 -0
  828. package/skills/rust-mcp-server-generator/LICENSE.md +21 -0
  829. package/skills/rust-mcp-server-generator/SKILL.md +577 -0
  830. package/skills/rust-mcp-server-generator/SYNC.md +5 -0
  831. package/skills/sandbox-npm-install/LICENSE.md +21 -0
  832. package/skills/sandbox-npm-install/SKILL.md +80 -0
  833. package/skills/sandbox-npm-install/SYNC.md +5 -0
  834. package/skills/sandbox-npm-install/scripts/install.sh +193 -0
  835. package/skills/scaffolding-oracle-to-postgres-migration-test-project/LICENSE.md +21 -0
  836. package/skills/scaffolding-oracle-to-postgres-migration-test-project/SKILL.md +54 -0
  837. package/skills/scaffolding-oracle-to-postgres-migration-test-project/SYNC.md +5 -0
  838. package/skills/scoutqa-test/LICENSE.md +21 -0
  839. package/skills/scoutqa-test/SKILL.md +375 -0
  840. package/skills/scoutqa-test/SYNC.md +5 -0
  841. package/skills/secret-scanning/LICENSE.md +21 -0
  842. package/skills/secret-scanning/SKILL.md +224 -0
  843. package/skills/secret-scanning/SYNC.md +5 -0
  844. package/skills/secret-scanning/references/alerts-and-remediation.md +245 -0
  845. package/skills/secret-scanning/references/custom-patterns.md +158 -0
  846. package/skills/secret-scanning/references/push-protection.md +164 -0
  847. package/skills/semantic-kernel/LICENSE.md +21 -0
  848. package/skills/semantic-kernel/SKILL.md +56 -0
  849. package/skills/semantic-kernel/SYNC.md +5 -0
  850. package/skills/semantic-kernel/references/dotnet.md +15 -0
  851. package/skills/semantic-kernel/references/python.md +15 -0
  852. package/skills/shuffle-json-data/LICENSE.md +21 -0
  853. package/skills/shuffle-json-data/SKILL.md +150 -0
  854. package/skills/shuffle-json-data/SYNC.md +5 -0
  855. package/skills/snowflake-semanticview/LICENSE.md +21 -0
  856. package/skills/snowflake-semanticview/SKILL.md +83 -0
  857. package/skills/snowflake-semanticview/SYNC.md +5 -0
  858. package/skills/sponsor-finder/LICENSE.md +21 -0
  859. package/skills/sponsor-finder/SKILL.md +258 -0
  860. package/skills/sponsor-finder/SYNC.md +5 -0
  861. package/skills/spring-boot-testing/LICENSE.md +21 -0
  862. package/skills/spring-boot-testing/SKILL.md +189 -0
  863. package/skills/spring-boot-testing/SYNC.md +5 -0
  864. package/skills/spring-boot-testing/references/assertj-basics.md +207 -0
  865. package/skills/spring-boot-testing/references/assertj-collections.md +183 -0
  866. package/skills/spring-boot-testing/references/context-caching.md +115 -0
  867. package/skills/spring-boot-testing/references/datajpatest.md +197 -0
  868. package/skills/spring-boot-testing/references/instancio.md +230 -0
  869. package/skills/spring-boot-testing/references/mockitobean.md +232 -0
  870. package/skills/spring-boot-testing/references/mockmvc-classic.md +206 -0
  871. package/skills/spring-boot-testing/references/mockmvc-tester.md +311 -0
  872. package/skills/spring-boot-testing/references/restclienttest.md +227 -0
  873. package/skills/spring-boot-testing/references/resttestclient.md +278 -0
  874. package/skills/spring-boot-testing/references/sb4-migration.md +181 -0
  875. package/skills/spring-boot-testing/references/test-slices-overview.md +203 -0
  876. package/skills/spring-boot-testing/references/testcontainers-jdbc.md +234 -0
  877. package/skills/spring-boot-testing/references/webmvctest.md +177 -0
  878. package/skills/sql-code-review/LICENSE.md +21 -0
  879. package/skills/sql-code-review/SKILL.md +301 -0
  880. package/skills/sql-code-review/SYNC.md +5 -0
  881. package/skills/sql-optimization/LICENSE.md +21 -0
  882. package/skills/sql-optimization/SKILL.md +296 -0
  883. package/skills/sql-optimization/SYNC.md +5 -0
  884. package/skills/structured-autonomy-generate/LICENSE.md +21 -0
  885. package/skills/structured-autonomy-generate/SKILL.md +125 -0
  886. package/skills/structured-autonomy-generate/SYNC.md +5 -0
  887. package/skills/structured-autonomy-implement/LICENSE.md +21 -0
  888. package/skills/structured-autonomy-implement/SKILL.md +19 -0
  889. package/skills/structured-autonomy-implement/SYNC.md +5 -0
  890. package/skills/structured-autonomy-plan/LICENSE.md +21 -0
  891. package/skills/structured-autonomy-plan/SKILL.md +81 -0
  892. package/skills/structured-autonomy-plan/SYNC.md +5 -0
  893. package/skills/suggest-awesome-github-copilot-agents/LICENSE.md +21 -0
  894. package/skills/suggest-awesome-github-copilot-agents/SKILL.md +106 -0
  895. package/skills/suggest-awesome-github-copilot-agents/SYNC.md +5 -0
  896. package/skills/suggest-awesome-github-copilot-instructions/LICENSE.md +21 -0
  897. package/skills/suggest-awesome-github-copilot-instructions/SKILL.md +122 -0
  898. package/skills/suggest-awesome-github-copilot-instructions/SYNC.md +5 -0
  899. package/skills/suggest-awesome-github-copilot-skills/LICENSE.md +21 -0
  900. package/skills/suggest-awesome-github-copilot-skills/SKILL.md +130 -0
  901. package/skills/suggest-awesome-github-copilot-skills/SYNC.md +5 -0
  902. package/skills/swift-mcp-server-generator/LICENSE.md +21 -0
  903. package/skills/swift-mcp-server-generator/SKILL.md +669 -0
  904. package/skills/swift-mcp-server-generator/SYNC.md +5 -0
  905. package/skills/technology-stack-blueprint-generator/LICENSE.md +21 -0
  906. package/skills/technology-stack-blueprint-generator/SKILL.md +242 -0
  907. package/skills/technology-stack-blueprint-generator/SYNC.md +5 -0
  908. package/skills/terraform-azurerm-set-diff-analyzer/LICENSE.md +21 -0
  909. package/skills/terraform-azurerm-set-diff-analyzer/SKILL.md +48 -0
  910. package/skills/terraform-azurerm-set-diff-analyzer/SYNC.md +5 -0
  911. package/skills/terraform-azurerm-set-diff-analyzer/references/azurerm_set_attributes.json +154 -0
  912. package/skills/terraform-azurerm-set-diff-analyzer/references/azurerm_set_attributes.md +145 -0
  913. package/skills/terraform-azurerm-set-diff-analyzer/scripts/README.md +205 -0
  914. package/skills/terraform-azurerm-set-diff-analyzer/scripts/analyze_plan.py +940 -0
  915. package/skills/tldr-prompt/LICENSE.md +21 -0
  916. package/skills/tldr-prompt/SKILL.md +304 -0
  917. package/skills/tldr-prompt/SYNC.md +5 -0
  918. package/skills/transloadit-media-processing/LICENSE.md +21 -0
  919. package/skills/transloadit-media-processing/SKILL.md +194 -0
  920. package/skills/transloadit-media-processing/SYNC.md +5 -0
  921. package/skills/typescript-mcp-server-generator/LICENSE.md +21 -0
  922. package/skills/typescript-mcp-server-generator/SKILL.md +90 -0
  923. package/skills/typescript-mcp-server-generator/SYNC.md +5 -0
  924. package/skills/typespec-api-operations/LICENSE.md +21 -0
  925. package/skills/typespec-api-operations/SKILL.md +418 -0
  926. package/skills/typespec-api-operations/SYNC.md +5 -0
  927. package/skills/typespec-create-agent/LICENSE.md +21 -0
  928. package/skills/typespec-create-agent/SKILL.md +91 -0
  929. package/skills/typespec-create-agent/SYNC.md +5 -0
  930. package/skills/typespec-create-api-plugin/LICENSE.md +21 -0
  931. package/skills/typespec-create-api-plugin/SKILL.md +164 -0
  932. package/skills/typespec-create-api-plugin/SYNC.md +5 -0
  933. package/skills/unit-test-vue-pinia/LICENSE.md +21 -0
  934. package/skills/unit-test-vue-pinia/SKILL.md +198 -0
  935. package/skills/unit-test-vue-pinia/SYNC.md +5 -0
  936. package/skills/unit-test-vue-pinia/references/pinia-patterns.md +95 -0
  937. package/skills/update-avm-modules-in-bicep/LICENSE.md +21 -0
  938. package/skills/update-avm-modules-in-bicep/SKILL.md +60 -0
  939. package/skills/update-avm-modules-in-bicep/SYNC.md +5 -0
  940. package/skills/update-implementation-plan/LICENSE.md +21 -0
  941. package/skills/update-implementation-plan/SKILL.md +157 -0
  942. package/skills/update-implementation-plan/SYNC.md +5 -0
  943. package/skills/update-llms/LICENSE.md +21 -0
  944. package/skills/update-llms/SKILL.md +216 -0
  945. package/skills/update-llms/SYNC.md +5 -0
  946. package/skills/update-markdown-file-index/LICENSE.md +21 -0
  947. package/skills/update-markdown-file-index/SKILL.md +76 -0
  948. package/skills/update-markdown-file-index/SYNC.md +5 -0
  949. package/skills/update-specification/LICENSE.md +21 -0
  950. package/skills/update-specification/SKILL.md +127 -0
  951. package/skills/update-specification/SYNC.md +5 -0
  952. package/skills/vscode-ext-commands/LICENSE.md +21 -0
  953. package/skills/vscode-ext-commands/SKILL.md +21 -0
  954. package/skills/vscode-ext-commands/SYNC.md +5 -0
  955. package/skills/vscode-ext-localization/LICENSE.md +21 -0
  956. package/skills/vscode-ext-localization/SKILL.md +25 -0
  957. package/skills/vscode-ext-localization/SYNC.md +5 -0
  958. package/skills/web-coder/LICENSE.md +21 -0
  959. package/skills/web-coder/SKILL.md +563 -0
  960. package/skills/web-coder/SYNC.md +5 -0
  961. package/skills/web-coder/references/accessibility.md +346 -0
  962. package/skills/web-coder/references/architecture-patterns.md +625 -0
  963. package/skills/web-coder/references/browsers-engines.md +358 -0
  964. package/skills/web-coder/references/css-styling.md +696 -0
  965. package/skills/web-coder/references/data-formats-encoding.md +411 -0
  966. package/skills/web-coder/references/development-tools.md +502 -0
  967. package/skills/web-coder/references/glossary.md +649 -0
  968. package/skills/web-coder/references/html-markup.md +387 -0
  969. package/skills/web-coder/references/http-networking.md +538 -0
  970. package/skills/web-coder/references/javascript-programming.md +807 -0
  971. package/skills/web-coder/references/media-graphics.md +504 -0
  972. package/skills/web-coder/references/performance-optimization.md +546 -0
  973. package/skills/web-coder/references/security-authentication.md +603 -0
  974. package/skills/web-coder/references/servers-infrastructure.md +615 -0
  975. package/skills/web-coder/references/web-apis-dom.md +654 -0
  976. package/skills/web-coder/references/web-protocols-standards.md +265 -0
  977. package/skills/web-design-reviewer/LICENSE.md +21 -0
  978. package/skills/web-design-reviewer/SKILL.md +368 -0
  979. package/skills/web-design-reviewer/SYNC.md +5 -0
  980. package/skills/web-design-reviewer/references/framework-fixes.md +475 -0
  981. package/skills/web-design-reviewer/references/visual-checklist.md +236 -0
  982. package/skills/webapp-testing/LICENSE.md +21 -0
  983. package/skills/webapp-testing/SKILL.md +104 -67
  984. package/skills/webapp-testing/SYNC.md +2 -2
  985. package/skills/webapp-testing/assets/test-helper.js +56 -0
  986. package/skills/what-context-needed/LICENSE.md +21 -0
  987. package/skills/what-context-needed/SKILL.md +39 -0
  988. package/skills/what-context-needed/SYNC.md +5 -0
  989. package/skills/winapp-cli/LICENSE.md +21 -0
  990. package/skills/winapp-cli/SKILL.md +217 -0
  991. package/skills/winapp-cli/SYNC.md +5 -0
  992. package/skills/winmd-api-search/LICENSE.md +21 -0
  993. package/skills/winmd-api-search/LICENSE.txt +21 -0
  994. package/skills/winmd-api-search/SKILL.md +192 -0
  995. package/skills/winmd-api-search/SYNC.md +5 -0
  996. package/skills/winmd-api-search/scripts/Invoke-WinMdQuery.ps1 +505 -0
  997. package/skills/winmd-api-search/scripts/Update-WinMdCache.ps1 +208 -0
  998. package/skills/winmd-api-search/scripts/cache-generator/CacheGenerator.csproj +29 -0
  999. package/skills/winmd-api-search/scripts/cache-generator/Directory.Build.props +3 -0
  1000. package/skills/winmd-api-search/scripts/cache-generator/Directory.Build.targets +3 -0
  1001. package/skills/winmd-api-search/scripts/cache-generator/Directory.Packages.props +3 -0
  1002. package/skills/winmd-api-search/scripts/cache-generator/Program.cs +1222 -0
  1003. package/skills/winui3-migration-guide/LICENSE.md +21 -0
  1004. package/skills/winui3-migration-guide/SKILL.md +277 -0
  1005. package/skills/winui3-migration-guide/SYNC.md +5 -0
  1006. package/skills/workiq-copilot/LICENSE.md +21 -0
  1007. package/skills/workiq-copilot/SKILL.md +98 -0
  1008. package/skills/workiq-copilot/SYNC.md +5 -0
  1009. package/skills/write-coding-standards-from-file/LICENSE.md +21 -0
  1010. package/skills/write-coding-standards-from-file/SKILL.md +316 -0
  1011. package/skills/write-coding-standards-from-file/SYNC.md +5 -0
  1012. package/skills/webapp-testing/LICENSE.txt +0 -202
  1013. package/skills/webapp-testing/examples/console_logging.py +0 -35
  1014. package/skills/webapp-testing/examples/element_discovery.py +0 -40
  1015. package/skills/webapp-testing/examples/static_html_automation.py +0 -33
  1016. package/skills/webapp-testing/scripts/with_server.py +0 -106
@@ -0,0 +1,735 @@
1
+ 
2
+
3
+
4
+
5
+ Independent Submission E. Kline
6
+ Request for Comments: 8805 Loon LLC
7
+ Category: Informational K. Duleba
8
+ ISSN: 2070-1721 Google
9
+ Z. Szamonek
10
+ S. Moser
11
+ Google Switzerland GmbH
12
+ W. Kumari
13
+ Google
14
+ August 2020
15
+
16
+
17
+ A Format for Self-Published IP Geolocation Feeds
18
+
19
+ Abstract
20
+
21
+ This document records a format whereby a network operator can publish
22
+ a mapping of IP address prefixes to simplified geolocation
23
+ information, colloquially termed a "geolocation feed". Interested
24
+ parties can poll and parse these feeds to update or merge with other
25
+ geolocation data sources and procedures. This format intentionally
26
+ only allows specifying coarse-level location.
27
+
28
+ Some technical organizations operating networks that move from one
29
+ conference location to the next have already experimentally published
30
+ small geolocation feeds.
31
+
32
+ This document describes a currently deployed format. At least one
33
+ consumer (Google) has incorporated these feeds into a geolocation
34
+ data pipeline, and a significant number of ISPs are using it to
35
+ inform them where their prefixes should be geolocated.
36
+
37
+ Status of This Memo
38
+
39
+ This document is not an Internet Standards Track specification; it is
40
+ published for informational purposes.
41
+
42
+ This is a contribution to the RFC Series, independently of any other
43
+ RFC stream. The RFC Editor has chosen to publish this document at
44
+ its discretion and makes no statement about its value for
45
+ implementation or deployment. Documents approved for publication by
46
+ the RFC Editor are not candidates for any level of Internet Standard;
47
+ see Section 2 of RFC 7841.
48
+
49
+ Information about the current status of this document, any errata,
50
+ and how to provide feedback on it may be obtained at
51
+ https://www.rfc-editor.org/info/rfc8805.
52
+
53
+ Copyright Notice
54
+
55
+ Copyright (c) 2020 IETF Trust and the persons identified as the
56
+ document authors. All rights reserved.
57
+
58
+ This document is subject to BCP 78 and the IETF Trust's Legal
59
+ Provisions Relating to IETF Documents
60
+ (https://trustee.ietf.org/license-info) in effect on the date of
61
+ publication of this document. Please review these documents
62
+ carefully, as they describe your rights and restrictions with respect
63
+ to this document.
64
+
65
+ Table of Contents
66
+
67
+ 1. Introduction
68
+ 1.1. Motivation
69
+ 1.2. Requirements Notation
70
+ 1.3. Assumptions about Publication
71
+ 2. Self-Published IP Geolocation Feeds
72
+ 2.1. Specification
73
+ 2.1.1. Geolocation Feed Individual Entry Fields
74
+ 2.1.1.1. IP Prefix
75
+ 2.1.1.2. Alpha2code (Previously: 'country')
76
+ 2.1.1.3. Region
77
+ 2.1.1.4. City
78
+ 2.1.1.5. Postal Code
79
+ 2.1.2. Prefixes with No Geolocation Information
80
+ 2.1.3. Additional Parsing Requirements
81
+ 2.2. Examples
82
+ 3. Consuming Self-Published IP Geolocation Feeds
83
+ 3.1. Feed Integrity
84
+ 3.2. Verification of Authority
85
+ 3.3. Verification of Accuracy
86
+ 3.4. Refreshing Feed Information
87
+ 4. Privacy Considerations
88
+ 5. Relation to Other Work
89
+ 6. Security Considerations
90
+ 7. Planned Future Work
91
+ 8. Finding Self-Published IP Geolocation Feeds
92
+ 8.1. Ad Hoc 'Well-Known' URIs
93
+ 8.2. Other Mechanisms
94
+ 9. IANA Considerations
95
+ 10. References
96
+ 10.1. Normative References
97
+ 10.2. Informative References
98
+ Appendix A. Sample Python Validation Code
99
+ Acknowledgements
100
+ Authors' Addresses
101
+
102
+ 1. Introduction
103
+
104
+ 1.1. Motivation
105
+
106
+ Providers of services over the Internet have grown to depend on best-
107
+ effort geolocation information to improve the user experience.
108
+ Locality information can aid in directing traffic to the nearest
109
+ serving location, inferring likely native language, and providing
110
+ additional context for services involving search queries.
111
+
112
+ When an ISP, for example, changes the location where an IP prefix is
113
+ deployed, services that make use of geolocation information may begin
114
+ to suffer degraded performance. This can lead to customer
115
+ complaints, possibly to the ISP directly. Dissemination of correct
116
+ geolocation data is complicated by the lack of any centralized means
117
+ to coordinate and communicate geolocation information to all
118
+ interested consumers of the data.
119
+
120
+ This document records a format whereby a network operator (an ISP, an
121
+ enterprise, or any organization that deems the geolocation of its IP
122
+ prefixes to be of concern) can publish a mapping of IP address
123
+ prefixes to simplified geolocation information, colloquially termed a
124
+ "geolocation feed". Interested parties can poll and parse these
125
+ feeds to update or merge with other geolocation data sources and
126
+ procedures.
127
+
128
+ This document describes a currently deployed format. At least one
129
+ consumer (Google) has incorporated these feeds into a geolocation
130
+ data pipeline, and a significant number of ISPs are using it to
131
+ inform them where their prefixes should be geolocated.
132
+
133
+ 1.2. Requirements Notation
134
+
135
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
136
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
137
+ "OPTIONAL" in this document are to be interpreted as described in
138
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
139
+ capitals, as shown here.
140
+
141
+ As this is an informational document about a data format and set of
142
+ operational practices presently in use, requirements notation
143
+ captures the design goals of the authors and implementors.
144
+
145
+ 1.3. Assumptions about Publication
146
+
147
+ This document describes both a format and a mechanism for publishing
148
+ data, with the assumption that the network operator to whom
149
+ operational responsibility has been delegated for any published data
150
+ wishes it to be public. Any privacy risk is bounded by the format,
151
+ and feed publishers MAY omit prefixes or any location field
152
+ associated with a given prefix to further protect privacy (see
153
+ Section 2.1 for details about which fields exactly may be omitted).
154
+ Feed publishers assume the responsibility of determining which data
155
+ should be made public.
156
+
157
+ This document does not incorporate a mechanism to communicate
158
+ acceptable use policies for self-published data. Publication itself
159
+ is inferred as a desire by the publisher for the data to be usefully
160
+ consumed, similar to the publication of information like host names,
161
+ cryptographic keys, and Sender Policy Framework (SPF) records
162
+ [RFC7208] in the DNS.
163
+
164
+ 2. Self-Published IP Geolocation Feeds
165
+
166
+ The format described here was developed to address the need of
167
+ network operators to rapidly and usefully share geolocation
168
+ information changes. Originally, there arose a specific case where
169
+ regional operators found it desirable to publish location changes
170
+ rather than wait for geolocation algorithms to "learn" about them.
171
+ Later, technical conferences that frequently use the same network
172
+ prefixes advertised from different conference locations experimented
173
+ by publishing geolocation feeds updated in advance of network
174
+ location changes in order to better serve conference attendees.
175
+
176
+ At its simplest, the mechanism consists of a network operator
177
+ publishing a file (the "geolocation feed") that contains several text
178
+ entries, one per line. Each entry is keyed by a unique (within the
179
+ feed) IP prefix (or single IP address) followed by a sequence of
180
+ network locality attributes to be ascribed to the given prefix.
181
+
182
+ 2.1. Specification
183
+
184
+ For operational simplicity, every feed should contain data about all
185
+ IP addresses the provider wants to publish. Alternatives, like
186
+ publishing only entries for IP addresses whose geolocation data has
187
+ changed or differ from current observed geolocation behavior "at
188
+ large", are likely to be too operationally complex.
189
+
190
+ Feeds MUST use UTF-8 [RFC3629] character encoding. Lines are
191
+ delimited by a line break (CRLF) (as specified in [RFC4180]), and
192
+ blank lines are ignored. Text from a '#' character to the end of the
193
+ current line is treated as a comment only and is similarly ignored
194
+ (note that this does not strictly follow [RFC4180], which has no
195
+ support for comments).
196
+
197
+ Feed lines that are not comments MUST be formatted as comma-separated
198
+ values (CSV), as described in [RFC4180]. Each feed entry is a text
199
+ line of the form:
200
+
201
+ ip_prefix,alpha2code,region,city,postal_code
202
+
203
+ The IP prefix field is REQUIRED, all others are OPTIONAL (can be
204
+ empty), though the requisite minimum number of commas SHOULD be
205
+ present.
206
+
207
+ 2.1.1. Geolocation Feed Individual Entry Fields
208
+
209
+ 2.1.1.1. IP Prefix
210
+
211
+ REQUIRED: Each IP prefix field MUST be either a single IP address or
212
+ an IP prefix in Classless Inter-Domain Routing (CIDR) notation in
213
+ conformance with Section 3.1 of [RFC4632] for IPv4 or Section 2.3 of
214
+ [RFC4291] for IPv6.
215
+
216
+ Examples include "192.0.2.1" and "192.0.2.0/24" for IPv4 and
217
+ "2001:db8::1" and "2001:db8::/32" for IPv6.
218
+
219
+ 2.1.1.2. Alpha2code (Previously: 'country')
220
+
221
+ OPTIONAL: The alpha2code field, if non-empty, MUST be a 2-letter ISO
222
+ country code conforming to ISO 3166-1 alpha 2 [ISO.3166.1alpha2].
223
+ Parsers SHOULD treat this field case-insensitively.
224
+
225
+ Earlier versions of this document called this field "country", and it
226
+ may still be referred to as such in existing tools/interfaces.
227
+
228
+ Parsers MAY additionally support other 2-letter codes outside the ISO
229
+ 3166-1 alpha 2 codes, such as the 2-letter codes from the
230
+ "Exceptionally reserved codes" [ISO-GLOSSARY] set.
231
+
232
+ Examples include "US" for the United States, "JP" for Japan, and "PL"
233
+ for Poland.
234
+
235
+ 2.1.1.3. Region
236
+
237
+ OPTIONAL: The region field, if non-empty, MUST be an ISO region code
238
+ conforming to ISO 3166-2 [ISO.3166.2]. Parsers SHOULD treat this
239
+ field case-insensitively.
240
+
241
+ Examples include "ID-RI" for the Riau province of Indonesia and "NG-
242
+ RI" for the Rivers province in Nigeria.
243
+
244
+ 2.1.1.4. City
245
+
246
+ OPTIONAL: The city field, if non-empty, SHOULD be free UTF-8 text,
247
+ excluding the comma (',') character.
248
+
249
+ Examples include "Dublin", "New York", and "Sao Paulo" (specifically
250
+ "S" followed by 0xc3, 0xa3, and "o Paulo").
251
+
252
+ 2.1.1.5. Postal Code
253
+
254
+ OPTIONAL, DEPRECATED: The postal code field, if non-empty, SHOULD be
255
+ free UTF-8 text, excluding the comma (',') character. The use of
256
+ this field is deprecated; consumers of feeds should be able to parse
257
+ feeds containing these fields, but new feeds SHOULD NOT include this
258
+ field due to the granularity of this information. See Section 4 for
259
+ additional discussion.
260
+
261
+ Examples include "106-6126" (in Minato ward, Tokyo, Japan).
262
+
263
+ 2.1.2. Prefixes with No Geolocation Information
264
+
265
+ Feed publishers may indicate that some IP prefixes should not have
266
+ any associated geolocation information. It may be that some prefixes
267
+ under their administrative control are reserved, not yet allocated or
268
+ deployed, or in the process of being redeployed elsewhere and
269
+ existing geolocation information can, from the perspective of the
270
+ publisher, safely be discarded.
271
+
272
+ This special case can be indicated by explicitly leaving blank all
273
+ fields that specify any degree of geolocation information. For
274
+ example:
275
+
276
+ 192.0.2.0/24,,,,
277
+ 2001:db8:1::/48,,,,
278
+ 2001:db8:2::/48,,,,
279
+
280
+ Historically, the user-assigned alpha2code identifier of "ZZ" has
281
+ been used for this same purpose. This is not necessarily preferred,
282
+ and no specific interpretation of any of the other user-assigned
283
+ alpha2code codes is currently defined.
284
+
285
+ 2.1.3. Additional Parsing Requirements
286
+
287
+ Feed entries that do not have an IP address or prefix field or have
288
+ an IP address or prefix field that fails to parse correctly MUST be
289
+ discarded.
290
+
291
+ While publishers SHOULD follow [RFC5952] for IPv6 prefix fields,
292
+ consumers MUST nevertheless accept all valid string representations.
293
+
294
+ Duplicate IP address or prefix entries MUST be considered an error,
295
+ and consumer implementations SHOULD log the repeated entries for
296
+ further administrative review. Publishers SHOULD take measures to
297
+ ensure there is one and only one entry per IP address and prefix.
298
+
299
+ Multiple entries that constitute nested prefixes are permitted.
300
+ Consumers SHOULD consider the entry with the longest matching prefix
301
+ (i.e., the "most specific") to be the best matching entry for a given
302
+ IP address.
303
+
304
+ Feed entries with non-empty optional fields that fail to parse,
305
+ either in part or in full, SHOULD be discarded. It is RECOMMENDED
306
+ that they also be logged for further administrative review.
307
+
308
+ For compatibility with future additional fields, a parser MUST ignore
309
+ any fields beyond those it expects. The data from fields that are
310
+ expected and that parse successfully MUST still be considered valid.
311
+ Per Section 7, no extensions to this format are in use nor are any
312
+ anticipated.
313
+
314
+ 2.2. Examples
315
+
316
+ Example entries using different IP address formats and describing
317
+ locations at alpha2code ("country code"), region, and city
318
+ granularity level, respectively:
319
+
320
+ 192.0.2.0/25,US,US-AL,,
321
+ 192.0.2.5,US,US-AL,Alabaster,
322
+ 192.0.2.128/25,PL,PL-MZ,,
323
+ 2001:db8::/32,PL,,,
324
+ 2001:db8:cafe::/48,PL,PL-MZ,,
325
+
326
+ The IETF network publishes geolocation information for the meeting
327
+ prefixes, and generally just comment out the last meeting information
328
+ and append the new meeting information. The [GEO_IETF], at the time
329
+ of this writing, contains:
330
+
331
+ # IETF106 (Singapore) - November 2019 - Singapore, SG
332
+ 130.129.0.0/16,SG,SG-01,Singapore,
333
+ 2001:df8::/32,SG,SG-01,Singapore,
334
+ 31.133.128.0/18,SG,SG-01,Singapore,
335
+ 31.130.224.0/20,SG,SG-01,Singapore,
336
+ 2001:67c:1230::/46,SG,SG-01,Singapore,
337
+ 2001:67c:370::/48,SG,SG-01,Singapore,
338
+
339
+ Experimentally, RIPE has published geolocation information for their
340
+ conference network prefixes, which change location in accordance with
341
+ each new event. [GEO_RIPE_NCC], at the time of writing, contains:
342
+
343
+ 193.0.24.0/21,NL,NL-ZH,Rotterdam,
344
+ 2001:67c:64::/48,NL,NL-ZH,Rotterdam,
345
+
346
+ Similarly, ICANN has published geolocation information for their
347
+ portable conference network prefixes. [GEO_ICANN], at the time of
348
+ writing, contains:
349
+
350
+ 199.91.192.0/21,MA,MA-07,Marrakech
351
+ 2620:f:8000::/48,MA,MA-07,Marrakech
352
+
353
+ A longer example is the [GEO_Google] Google Corp Geofeed, which lists
354
+ the geolocation information for Google corporate offices.
355
+
356
+ At the time of writing, Google processes approximately 400 feeds
357
+ comprising more than 750,000 IPv4 and IPv6 prefixes.
358
+
359
+ 3. Consuming Self-Published IP Geolocation Feeds
360
+
361
+ Consumers MAY treat published feed data as a hint only and MAY choose
362
+ to prefer other sources of geolocation information for any given IP
363
+ prefix. Regardless of a consumer's stance with respect to a given
364
+ published feed, there are some points of note for sensibly and
365
+ effectively consuming published feeds.
366
+
367
+ 3.1. Feed Integrity
368
+
369
+ The integrity of published information SHOULD be protected by
370
+ securing the means of publication, for example, by using HTTP over
371
+ TLS [RFC2818]. Whenever possible, consumers SHOULD prefer retrieving
372
+ geolocation feeds in a manner that guarantees integrity of the feed.
373
+
374
+ 3.2. Verification of Authority
375
+
376
+ Consumers of self-published IP geolocation feeds SHOULD perform some
377
+ form of verification that the publisher is in fact authoritative for
378
+ the addresses in the feed. The actual means of verification is
379
+ likely dependent upon the way in which the feed is discovered. Ad
380
+ hoc shared URIs, for example, will likely require an ad hoc
381
+ verification process. Future automated means of feed discovery
382
+ SHOULD have an accompanying automated means of verification.
383
+
384
+ A consumer should only trust geolocation information for IP addresses
385
+ or prefixes for which the publisher has been verified as
386
+ administratively authoritative. All other geolocation feed entries
387
+ should be ignored and logged for further administrative review.
388
+
389
+ 3.3. Verification of Accuracy
390
+
391
+ Errors and inaccuracies may occur at many levels, and publication and
392
+ consumption of geolocation data are no exceptions. To the extent
393
+ practical, consumers SHOULD take steps to verify the accuracy of
394
+ published locality. Verification methodology, resolution of
395
+ discrepancies, and preference for alternative sources of data are
396
+ left to the discretion of the feed consumer.
397
+
398
+ Consumers SHOULD decide on discrepancy thresholds and SHOULD flag,
399
+ for administrative review, feed entries that exceed set thresholds.
400
+
401
+ 3.4. Refreshing Feed Information
402
+
403
+ As a publisher can change geolocation data at any time and without
404
+ notification, consumers SHOULD implement mechanisms to periodically
405
+ refresh local copies of feed data. In the absence of any other
406
+ refresh timing information, it is recommended that consumers SHOULD
407
+ refresh feeds no less often than weekly and no more often than is
408
+ likely to cause issues to the publisher.
409
+
410
+ For feeds available via HTTPS (or HTTP), the publisher MAY
411
+ communicate refresh timing information by means of the standard HTTP
412
+ expiration model ([RFC7234]). Specifically, publishers can include
413
+ either an Expires header (Section 5.3 of [RFC7234]) or a Cache-
414
+ Control header (Section 5.2 of [RFC7234]) specifying the max-age.
415
+ Where practical, consumers SHOULD refresh feed information before the
416
+ expiry time is reached.
417
+
418
+ 4. Privacy Considerations
419
+
420
+ Publishers of geolocation feeds are advised to have fully considered
421
+ any and all privacy implications of the disclosure of such
422
+ information for the users of the described networks prior to
423
+ publication. A thorough comprehension of the security considerations
424
+ (Section 13 of [RFC6772]) of a chosen geolocation policy is highly
425
+ recommended, including an understanding of some of the limitations of
426
+ information obscurity (Section 13.5 of [RFC6772]) (see also
427
+ [RFC6772]).
428
+
429
+ As noted in Section 2.1, each location field in an entry is optional,
430
+ in order to support expressing only the level of specificity that the
431
+ publisher has deemed acceptable. There is no requirement that the
432
+ level of specificity be consistent across all entries within a feed.
433
+ In particular, the Postal Code field (Section 2.1.1.5) can provide
434
+ very specific geolocation, sometimes within a building. Such
435
+ specific Postal Code values MUST NOT be published in geofeeds without
436
+ the express consent of the parties being located.
437
+
438
+ Operators who publish geolocation information are strongly encouraged
439
+ to inform affected users/customers of this fact and of the potential
440
+ privacy-related consequences and trade-offs.
441
+
442
+ 5. Relation to Other Work
443
+
444
+ While not originally done in conjunction with the GEOPRIV Working
445
+ Group [GEOPRIV], Richard Barnes observed that this work is
446
+ nevertheless consistent with that which the group has defined, both
447
+ for address format and for privacy. The data elements in geolocation
448
+ feeds are equivalent to the following XML structure ([RFC5139]
449
+ [W3C.REC-xml-20081126]):
450
+
451
+ <civicAddress>
452
+ <country>country</country>
453
+ <A1>region</A1>
454
+ <A2>city</A2>
455
+ <PC>postal_code</PC>
456
+ </civicAddress>
457
+
458
+ Providing geolocation information to this granularity is equivalent
459
+ to the following privacy policy (the definition of the 'building'
460
+ Section 6.5.1 of [RFC6772] level of disclosure):
461
+
462
+ <ruleset>
463
+ <rule>
464
+ <conditions/>
465
+ <actions/>
466
+ <transformations>
467
+ <provide-location profile="civic-transformation">
468
+ <provide-civic>building</provide-civic>
469
+ </provide-location>
470
+ </transformations>
471
+ </rule>
472
+ </ruleset>
473
+
474
+ 6. Security Considerations
475
+
476
+ As there is no true security in the obscurity of the location of any
477
+ given IP address, self-publication of this data fundamentally opens
478
+ no new attack vectors. For publishers, self-published data may
479
+ increase the ease with which such location data might be exploited
480
+ (it can, for example, make easy the discovery of prefixes populated
481
+ with customers as distinct from prefixes not generally in use).
482
+
483
+ For consumers, feed retrieval processes may receive input from
484
+ potentially hostile sources (e.g., in the event of hijacked traffic).
485
+ As such, proper input validation and defense measures MUST be taken
486
+ (see the discussion in Section 3.1).
487
+
488
+ Similarly, consumers who do not perform sufficient verification of
489
+ published data bear the same risks as from other forms of geolocation
490
+ configuration errors (see the discussion in Sections 3.2 and 3.3).
491
+
492
+ Validation of a feed's contents includes verifying that the publisher
493
+ is authoritative for the IP prefixes included in the feed. Failure
494
+ to verify IP prefix authority would, for example, allow ISP Bob to
495
+ make geolocation statements about IP space held by ISP Alice. At
496
+ this time, only out-of-band verification methods are implemented
497
+ (i.e., an ISP's feed may be verified against publicly available IP
498
+ allocation data).
499
+
500
+ 7. Planned Future Work
501
+
502
+ In order to more flexibly support future extensions, use of a more
503
+ expressive feed format has been suggested. Use of JavaScript Object
504
+ Notation (JSON) [RFC8259], specifically, has been discussed.
505
+ However, at the time of writing, no such specification nor
506
+ implementation exists. Nevertheless, work on extensions is deferred
507
+ until a more suitable format has been selected.
508
+
509
+ The authors are planning on writing a document describing such a new
510
+ format. This document describes a currently deployed and used
511
+ format. Given the extremely limited extensibility of the present
512
+ format no extensions to it are anticipated. Extensibility
513
+ requirements are instead expected to be integral to the development
514
+ of a new format.
515
+
516
+ 8. Finding Self-Published IP Geolocation Feeds
517
+
518
+ The issue of finding, and later verifying, geolocation feeds is not
519
+ formally specified in this document. At this time, only ad hoc feed
520
+ discovery and verification has a modicum of established practice (see
521
+ below); discussion of other mechanisms has been removed for clarity.
522
+
523
+ 8.1. Ad Hoc 'Well-Known' URIs
524
+
525
+ To date, geolocation feeds have been shared informally in the form of
526
+ HTTPS URIs exchanged in email threads. Three example URIs
527
+ ([GEO_IETF], [GEO_RIPE_NCC], and [GEO_ICANN]) describe networks that
528
+ change locations periodically, the operators and operational
529
+ practices of which are well known within their respective technical
530
+ communities.
531
+
532
+ The contents of the feeds are verified by a similarly ad hoc process,
533
+ including:
534
+
535
+ * personal knowledge of the parties involved in the exchange and
536
+
537
+ * comparison of feed-advertised prefixes with the BGP-advertised
538
+ prefixes of Autonomous System Numbers known to be operated by the
539
+ publishers.
540
+
541
+ Ad hoc mechanisms, while useful for early experimentation by
542
+ producers and consumers, are unlikely to be adequate for long-term,
543
+ widespread use by multiple parties. Future versions of any such
544
+ self-published geolocation feed mechanism SHOULD address scalability
545
+ concerns by defining a means for automated discovery and verification
546
+ of operational authority of advertised prefixes.
547
+
548
+ 8.2. Other Mechanisms
549
+
550
+ Previous versions of this document referenced use of the WHOIS
551
+ service [RFC3912] operated by Regional Internet Registries (RIRs), as
552
+ well as possible DNS-based schemes to discover and validate geofeeds.
553
+ To the authors' knowledge, support for such mechanisms has never been
554
+ implemented, and this speculative text has been removed to avoid
555
+ ambiguity.
556
+
557
+ 9. IANA Considerations
558
+
559
+ This document has no IANA actions.
560
+
561
+ 10. References
562
+
563
+ 10.1. Normative References
564
+
565
+ [ISO.3166.1alpha2]
566
+ ISO, "ISO 3166-1 decoding table",
567
+ <http://www.iso.org/iso/home/standards/country_codes/iso-
568
+ 3166-1_decoding_table.htm>.
569
+
570
+ [ISO.3166.2]
571
+ ISO, "ISO 3166-2:2007",
572
+ <http://www.iso.org/iso/home/standards/
573
+ country_codes.htm#2012_iso3166-2>.
574
+
575
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
576
+ Requirement Levels", BCP 14, RFC 2119,
577
+ DOI 10.17487/RFC2119, March 1997,
578
+ <https://www.rfc-editor.org/info/rfc2119>.
579
+
580
+ [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
581
+ 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
582
+ 2003, <https://www.rfc-editor.org/info/rfc3629>.
583
+
584
+ [RFC4180] Shafranovich, Y., "Common Format and MIME Type for Comma-
585
+ Separated Values (CSV) Files", RFC 4180,
586
+ DOI 10.17487/RFC4180, October 2005,
587
+ <https://www.rfc-editor.org/info/rfc4180>.
588
+
589
+ [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
590
+ Architecture", RFC 4291, DOI 10.17487/RFC4291, February
591
+ 2006, <https://www.rfc-editor.org/info/rfc4291>.
592
+
593
+ [RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing
594
+ (CIDR): The Internet Address Assignment and Aggregation
595
+ Plan", BCP 122, RFC 4632, DOI 10.17487/RFC4632, August
596
+ 2006, <https://www.rfc-editor.org/info/rfc4632>.
597
+
598
+ [RFC5952] Kawamura, S. and M. Kawashima, "A Recommendation for IPv6
599
+ Address Text Representation", RFC 5952,
600
+ DOI 10.17487/RFC5952, August 2010,
601
+ <https://www.rfc-editor.org/info/rfc5952>.
602
+
603
+ [RFC7234] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
604
+ Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching",
605
+ RFC 7234, DOI 10.17487/RFC7234, June 2014,
606
+ <https://www.rfc-editor.org/info/rfc7234>.
607
+
608
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
609
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
610
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
611
+
612
+ [W3C.REC-xml-20081126]
613
+ Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and
614
+ F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
615
+ Edition)", World Wide Web Consortium Recommendation REC-
616
+ xml-20081126, November 2008,
617
+ <http://www.w3.org/TR/2008/REC-xml-20081126>.
618
+
619
+ 10.2. Informative References
620
+
621
+ [GEOPRIV] IETF, "Geographic Location/Privacy (geopriv)",
622
+ <http://datatracker.ietf.org/wg/geopriv/>.
623
+
624
+ [GEO_Google]
625
+ Google, LLC, "Google Corp Geofeed",
626
+ <https://www.gstatic.com/geofeed/corp_external>.
627
+
628
+ [GEO_ICANN]
629
+ ICANN, "ICANN Meeting Geolocation Data",
630
+ <https://meeting-services.icann.org/geo/google.csv>.
631
+
632
+ [GEO_IETF] Kumari, W., "IETF Meeting Network Geolocation Data",
633
+ <https://noc.ietf.org/geo/google.csv>.
634
+
635
+ [GEO_RIPE_NCC]
636
+ Schepers, M., "RIPE NCC Meeting Geolocation Data",
637
+ <https://meetings.ripe.net/geo/google.csv>.
638
+
639
+ [IPADDR_PY]
640
+ Shields, M. and P. Moody, "Google's Python IP address
641
+ manipulation library",
642
+ <http://code.google.com/p/ipaddr-py/>.
643
+
644
+ [ISO-GLOSSARY]
645
+ ISO, "Glossary for ISO 3166",
646
+ <https://www.iso.org/glossary-for-iso-3166.html>.
647
+
648
+ [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
649
+ DOI 10.17487/RFC2818, May 2000,
650
+ <https://www.rfc-editor.org/info/rfc2818>.
651
+
652
+ [RFC3912] Daigle, L., "WHOIS Protocol Specification", RFC 3912,
653
+ DOI 10.17487/RFC3912, September 2004,
654
+ <https://www.rfc-editor.org/info/rfc3912>.
655
+
656
+ [RFC5139] Thomson, M. and J. Winterbottom, "Revised Civic Location
657
+ Format for Presence Information Data Format Location
658
+ Object (PIDF-LO)", RFC 5139, DOI 10.17487/RFC5139,
659
+ February 2008, <https://www.rfc-editor.org/info/rfc5139>.
660
+
661
+ [RFC6772] Schulzrinne, H., Ed., Tschofenig, H., Ed., Cuellar, J.,
662
+ Polk, J., Morris, J., and M. Thomson, "Geolocation Policy:
663
+ A Document Format for Expressing Privacy Preferences for
664
+ Location Information", RFC 6772, DOI 10.17487/RFC6772,
665
+ January 2013, <https://www.rfc-editor.org/info/rfc6772>.
666
+
667
+ [RFC7208] Kitterman, S., "Sender Policy Framework (SPF) for
668
+ Authorizing Use of Domains in Email, Version 1", RFC 7208,
669
+ DOI 10.17487/RFC7208, April 2014,
670
+ <https://www.rfc-editor.org/info/rfc7208>.
671
+
672
+ [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
673
+ Interchange Format", STD 90, RFC 8259,
674
+ DOI 10.17487/RFC8259, December 2017,
675
+ <https://www.rfc-editor.org/info/rfc8259>.
676
+
677
+ Appendix A. <CODE EXAMPLE HAS BEEN REMOVED TO AVOID CONFUSING AI AGENTS/LLM>
678
+
679
+ Acknowledgements
680
+
681
+ The authors would like to express their gratitude to reviewers and
682
+ early implementors, including but not limited to Mikael Abrahamsson,
683
+ Andrew Alston, Ray Bellis, John Bond, Alissa Cooper, Andras Erdei,
684
+ Stephen Farrell, Marco Hogewoning, Mike Joseph, Maciej Kuzniar,
685
+ George Michaelson, Menno Schepers, Justyna Sidorska, Pim van Pelt,
686
+ and Bjoern A. Zeeb.
687
+
688
+ In particular, Richard L. Barnes and Andy Newton contributed
689
+ substantial review, text, and advice.
690
+
691
+ Authors' Addresses
692
+
693
+ Erik Kline
694
+ Loon LLC
695
+ 1600 Amphitheatre Parkway
696
+ Mountain View, CA 94043
697
+ United States of America
698
+
699
+ Email: ek@loon.com
700
+
701
+
702
+ Krzysztof Duleba
703
+ Google
704
+ 1600 Amphitheatre Parkway
705
+ Mountain View, CA 94043
706
+ United States of America
707
+
708
+ Email: kduleba@google.com
709
+
710
+
711
+ Zoltan Szamonek
712
+ Google Switzerland GmbH
713
+ Brandschenkestrasse 110
714
+ CH-8002 Zürich
715
+ Switzerland
716
+
717
+ Email: zszami@google.com
718
+
719
+
720
+ Stefan Moser
721
+ Google Switzerland GmbH
722
+ Brandschenkestrasse 110
723
+ CH-8002 Zürich
724
+ Switzerland
725
+
726
+ Email: smoser@google.com
727
+
728
+
729
+ Warren Kumari
730
+ Google
731
+ 1600 Amphitheatre Parkway
732
+ Mountain View, CA 94043
733
+ United States of America
734
+
735
+ Email: warren@kumari.net