@ruaruababa/vibe-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/CATALOG.md +317 -0
  2. package/README.md +121 -0
  3. package/aliases.json +65 -0
  4. package/bin/vibe.js +2 -0
  5. package/bundles.json +265 -0
  6. package/catalog.json +1560 -0
  7. package/dist/antigravity-skills/bin/cli.js +438 -0
  8. package/dist/antigravity-skills/lib/skill-utils.js +158 -0
  9. package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
  10. package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
  11. package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
  12. package/dist/bin/vibe.js +2 -0
  13. package/dist/dist/src/cli/index.js +26 -0
  14. package/dist/lib/skill-utils.js +158 -0
  15. package/dist/scripts/build-catalog.js +50 -0
  16. package/dist/scripts/normalize-frontmatter.js +144 -0
  17. package/dist/scripts/validate-skills.js +56 -0
  18. package/dist/src/cli/index.js +146 -0
  19. package/dist/src/types/index.js +13 -0
  20. package/dist/src/utils/fs.js +1 -0
  21. package/package.json +43 -0
  22. package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
  23. package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
  24. package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
  25. package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  26. package/skills/agent-orchestrator/SKILL.md +24 -0
  27. package/skills/ai-engineer/SKILL.md +171 -0
  28. package/skills/airflow-dag-patterns/SKILL.md +41 -0
  29. package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  30. package/skills/angular-migration/SKILL.md +428 -0
  31. package/skills/anti-reversing-techniques/SKILL.md +42 -0
  32. package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
  33. package/skills/api-design-principles/SKILL.md +37 -0
  34. package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  35. package/skills/api-design-principles/assets/rest-api-template.py +182 -0
  36. package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  37. package/skills/api-design-principles/references/rest-best-practices.md +408 -0
  38. package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  39. package/skills/api-documenter/SKILL.md +184 -0
  40. package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  41. package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  42. package/skills/application-performance-performance-optimization/SKILL.md +154 -0
  43. package/skills/architect-review/SKILL.md +174 -0
  44. package/skills/architecture-decision-records/SKILL.md +441 -0
  45. package/skills/architecture-patterns/SKILL.md +37 -0
  46. package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  47. package/skills/arm-cortex-expert/SKILL.md +306 -0
  48. package/skills/async-python-patterns/SKILL.md +39 -0
  49. package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
  50. package/skills/attack-tree-construction/SKILL.md +38 -0
  51. package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  52. package/skills/auth-implementation-patterns/SKILL.md +39 -0
  53. package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  54. package/skills/backend-architect/SKILL.md +333 -0
  55. package/skills/backend-development-feature-development/SKILL.md +180 -0
  56. package/skills/backend-security-coder/SKILL.md +156 -0
  57. package/skills/backtesting-frameworks/SKILL.md +39 -0
  58. package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
  59. package/skills/bash-defensive-patterns/SKILL.md +43 -0
  60. package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
  61. package/skills/bash-pro/SKILL.md +310 -0
  62. package/skills/bats-testing-patterns/SKILL.md +34 -0
  63. package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
  64. package/skills/bazel-build-optimization/SKILL.md +397 -0
  65. package/skills/billing-automation/SKILL.md +42 -0
  66. package/skills/billing-automation/resources/implementation-playbook.md +544 -0
  67. package/skills/binary-analysis-patterns/SKILL.md +450 -0
  68. package/skills/blockchain-developer/SKILL.md +208 -0
  69. package/skills/business-analyst/SKILL.md +182 -0
  70. package/skills/c-pro/SKILL.md +56 -0
  71. package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
  72. package/skills/c4-code/SKILL.md +244 -0
  73. package/skills/c4-component/SKILL.md +153 -0
  74. package/skills/c4-container/SKILL.md +171 -0
  75. package/skills/c4-context/SKILL.md +150 -0
  76. package/skills/changelog-automation/SKILL.md +38 -0
  77. package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
  78. package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
  79. package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
  80. package/skills/clean-markdown/SKILL.md +23 -0
  81. package/skills/cloud-architect/SKILL.md +135 -0
  82. package/skills/code-documentation-code-explain/SKILL.md +46 -0
  83. package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
  84. package/skills/code-documentation-doc-generate/SKILL.md +48 -0
  85. package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
  86. package/skills/code-refactoring-context-restore/SKILL.md +179 -0
  87. package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
  88. package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
  89. package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
  90. package/skills/code-review-ai-ai-review/SKILL.md +450 -0
  91. package/skills/code-review-excellence/SKILL.md +40 -0
  92. package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
  93. package/skills/code-reviewer/SKILL.md +178 -0
  94. package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
  95. package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
  96. package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
  97. package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
  98. package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
  99. package/skills/competitive-landscape/SKILL.md +34 -0
  100. package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  101. package/skills/comprehensive-review-full-review/SKILL.md +146 -0
  102. package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
  103. package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
  104. package/skills/conductor-implement/SKILL.md +388 -0
  105. package/skills/conductor-manage/SKILL.md +39 -0
  106. package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
  107. package/skills/conductor-new-track/SKILL.md +433 -0
  108. package/skills/conductor-revert/SKILL.md +372 -0
  109. package/skills/conductor-setup/SKILL.md +426 -0
  110. package/skills/conductor-status/SKILL.md +338 -0
  111. package/skills/conductor-validator/SKILL.md +62 -0
  112. package/skills/content-marketer/SKILL.md +170 -0
  113. package/skills/context-driven-development/SKILL.md +400 -0
  114. package/skills/context-management-context-restore/SKILL.md +179 -0
  115. package/skills/context-management-context-save/SKILL.md +177 -0
  116. package/skills/context-manager/SKILL.md +185 -0
  117. package/skills/cost-optimization/SKILL.md +286 -0
  118. package/skills/cpp-pro/SKILL.md +59 -0
  119. package/skills/cqrs-implementation/SKILL.md +35 -0
  120. package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  121. package/skills/csharp-pro/SKILL.md +59 -0
  122. package/skills/customer-support/SKILL.md +170 -0
  123. package/skills/data-engineer/SKILL.md +224 -0
  124. package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  125. package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  126. package/skills/data-quality-frameworks/SKILL.md +40 -0
  127. package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  128. package/skills/data-scientist/SKILL.md +199 -0
  129. package/skills/data-storytelling/SKILL.md +465 -0
  130. package/skills/database-admin/SKILL.md +165 -0
  131. package/skills/database-architect/SKILL.md +268 -0
  132. package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  133. package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  134. package/skills/database-migration/SKILL.md +436 -0
  135. package/skills/database-migrations-migration-observability/SKILL.md +420 -0
  136. package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  137. package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  138. package/skills/database-optimizer/SKILL.md +167 -0
  139. package/skills/dbt-transformation-patterns/SKILL.md +34 -0
  140. package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  141. package/skills/debugger/SKILL.md +49 -0
  142. package/skills/debugging-strategies/SKILL.md +34 -0
  143. package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  144. package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
  145. package/skills/defi-protocol-templates/SKILL.md +466 -0
  146. package/skills/dependency-management-deps-audit/SKILL.md +44 -0
  147. package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
  148. package/skills/dependency-upgrade/SKILL.md +421 -0
  149. package/skills/deployment-engineer/SKILL.md +170 -0
  150. package/skills/deployment-pipeline-design/SKILL.md +371 -0
  151. package/skills/deployment-validation-config-validate/SKILL.md +496 -0
  152. package/skills/devops-troubleshooter/SKILL.md +161 -0
  153. package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  154. package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  155. package/skills/distributed-tracing/SKILL.md +450 -0
  156. package/skills/django-pro/SKILL.md +180 -0
  157. package/skills/docs-architect/SKILL.md +98 -0
  158. package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
  159. package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
  160. package/skills/dotnet-architect/SKILL.md +197 -0
  161. package/skills/dotnet-backend-patterns/SKILL.md +37 -0
  162. package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  163. package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  164. package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  165. package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  166. package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
  167. package/skills/dummy-skill/SKILL.md +5 -0
  168. package/skills/dx-optimizer/SKILL.md +83 -0
  169. package/skills/e2e-testing-patterns/SKILL.md +41 -0
  170. package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  171. package/skills/elixir-pro/SKILL.md +59 -0
  172. package/skills/embedding-strategies/SKILL.md +491 -0
  173. package/skills/employment-contract-templates/SKILL.md +39 -0
  174. package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  175. package/skills/error-debugging-error-analysis/SKILL.md +47 -0
  176. package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
  177. package/skills/error-debugging-error-trace/SKILL.md +43 -0
  178. package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
  179. package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
  180. package/skills/error-detective/SKILL.md +53 -0
  181. package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  182. package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  183. package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  184. package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  185. package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
  186. package/skills/error-handling-patterns/SKILL.md +35 -0
  187. package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  188. package/skills/event-sourcing-architect/SKILL.md +58 -0
  189. package/skills/event-store-design/SKILL.md +449 -0
  190. package/skills/fastapi-pro/SKILL.md +192 -0
  191. package/skills/fastapi-templates/SKILL.md +32 -0
  192. package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  193. package/skills/final-test/SKILL.md +5 -0
  194. package/skills/firmware-analyst/SKILL.md +320 -0
  195. package/skills/flutter-expert/SKILL.md +200 -0
  196. package/skills/framework-migration-code-migrate/SKILL.md +48 -0
  197. package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
  198. package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
  199. package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
  200. package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
  201. package/skills/frontend-developer/SKILL.md +171 -0
  202. package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
  203. package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
  204. package/skills/frontend-security-coder/SKILL.md +170 -0
  205. package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
  206. package/skills/gdpr-data-handling/SKILL.md +33 -0
  207. package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
  208. package/skills/git-advanced-workflows/SKILL.md +412 -0
  209. package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
  210. package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
  211. package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
  212. package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
  213. package/skills/github-actions-templates/SKILL.md +345 -0
  214. package/skills/gitlab-ci-patterns/SKILL.md +283 -0
  215. package/skills/gitops-workflow/SKILL.md +303 -0
  216. package/skills/gitops-workflow/references/argocd-setup.md +134 -0
  217. package/skills/gitops-workflow/references/sync-policies.md +131 -0
  218. package/skills/go-concurrency-patterns/SKILL.md +33 -0
  219. package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
  220. package/skills/godot-gdscript-patterns/SKILL.md +33 -0
  221. package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
  222. package/skills/golang-pro/SKILL.md +179 -0
  223. package/skills/grafana-dashboards/SKILL.md +381 -0
  224. package/skills/graphql-architect/SKILL.md +182 -0
  225. package/skills/haskell-pro/SKILL.md +56 -0
  226. package/skills/helm-chart-scaffolding/SKILL.md +34 -0
  227. package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  228. package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  229. package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  230. package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  231. package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  232. package/skills/hr-pro/SKILL.md +126 -0
  233. package/skills/hybrid-cloud-architect/SKILL.md +168 -0
  234. package/skills/hybrid-cloud-networking/SKILL.md +238 -0
  235. package/skills/hybrid-search-implementation/SKILL.md +32 -0
  236. package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  237. package/skills/incident-responder/SKILL.md +213 -0
  238. package/skills/incident-response-incident-response/SKILL.md +168 -0
  239. package/skills/incident-response-smart-fix/SKILL.md +29 -0
  240. package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  241. package/skills/incident-runbook-templates/SKILL.md +395 -0
  242. package/skills/ios-developer/SKILL.md +219 -0
  243. package/skills/istio-traffic-management/SKILL.md +337 -0
  244. package/skills/java-pro/SKILL.md +177 -0
  245. package/skills/javascript-pro/SKILL.md +57 -0
  246. package/skills/javascript-testing-patterns/SKILL.md +35 -0
  247. package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  248. package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
  249. package/skills/julia-pro/SKILL.md +209 -0
  250. package/skills/k8s-manifest-generator/SKILL.md +35 -0
  251. package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  252. package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  253. package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  254. package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  255. package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  256. package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  257. package/skills/k8s-security-policies/SKILL.md +346 -0
  258. package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  259. package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  260. package/skills/kpi-dashboard-design/SKILL.md +440 -0
  261. package/skills/kubernetes-architect/SKILL.md +170 -0
  262. package/skills/langchain-architecture/SKILL.md +350 -0
  263. package/skills/legacy-modernizer/SKILL.md +53 -0
  264. package/skills/legal-advisor/SKILL.md +70 -0
  265. package/skills/linkerd-patterns/SKILL.md +321 -0
  266. package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
  267. package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
  268. package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
  269. package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
  270. package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
  271. package/skills/llm-evaluation/SKILL.md +483 -0
  272. package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
  273. package/skills/malware-analyst/SKILL.md +247 -0
  274. package/skills/market-sizing-analysis/SKILL.md +425 -0
  275. package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  276. package/skills/market-sizing-analysis/references/data-sources.md +360 -0
  277. package/skills/memory-forensics/SKILL.md +491 -0
  278. package/skills/memory-safety-patterns/SKILL.md +33 -0
  279. package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
  280. package/skills/mermaid-expert/SKILL.md +59 -0
  281. package/skills/microservices-patterns/SKILL.md +35 -0
  282. package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
  283. package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
  284. package/skills/ml-engineer/SKILL.md +168 -0
  285. package/skills/ml-pipeline-workflow/SKILL.md +257 -0
  286. package/skills/mlops-engineer/SKILL.md +219 -0
  287. package/skills/mobile-developer/SKILL.md +205 -0
  288. package/skills/mobile-security-coder/SKILL.md +184 -0
  289. package/skills/modern-javascript-patterns/SKILL.md +35 -0
  290. package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
  291. package/skills/monorepo-architect/SKILL.md +61 -0
  292. package/skills/monorepo-management/SKILL.md +35 -0
  293. package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
  294. package/skills/mtls-configuration/SKILL.md +359 -0
  295. package/skills/multi-cloud-architecture/SKILL.md +189 -0
  296. package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
  297. package/skills/network-engineer/SKILL.md +169 -0
  298. package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
  299. package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
  300. package/skills/nft-standards/SKILL.md +395 -0
  301. package/skills/node-expert/SKILL.md +23 -0
  302. package/skills/nodejs-backend-patterns/SKILL.md +35 -0
  303. package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  304. package/skills/nx-workspace-patterns/SKILL.md +464 -0
  305. package/skills/observability-engineer/SKILL.md +237 -0
  306. package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  307. package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  308. package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  309. package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  310. package/skills/on-call-handoff-patterns/SKILL.md +453 -0
  311. package/skills/openapi-spec-generation/SKILL.md +33 -0
  312. package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  313. package/skills/payment-integration/SKILL.md +77 -0
  314. package/skills/paypal-integration/SKILL.md +479 -0
  315. package/skills/pci-compliance/SKILL.md +478 -0
  316. package/skills/performance-engineer/SKILL.md +180 -0
  317. package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
  318. package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
  319. package/skills/php-pro/SKILL.md +63 -0
  320. package/skills/posix-shell-pro/SKILL.md +304 -0
  321. package/skills/postgresql/SKILL.md +230 -0
  322. package/skills/postmortem-writing/SKILL.md +386 -0
  323. package/skills/projection-patterns/SKILL.md +33 -0
  324. package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  325. package/skills/prometheus-configuration/SKILL.md +404 -0
  326. package/skills/prompt-engineer/SKILL.md +272 -0
  327. package/skills/prompt-engineering-patterns/SKILL.md +213 -0
  328. package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  329. package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  330. package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  331. package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  332. package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  333. package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  334. package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  335. package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  336. package/skills/protocol-reverse-engineering/SKILL.md +29 -0
  337. package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
  338. package/skills/python-development-python-scaffold/SKILL.md +331 -0
  339. package/skills/python-packaging/SKILL.md +36 -0
  340. package/skills/python-packaging/resources/implementation-playbook.md +869 -0
  341. package/skills/python-performance-optimization/SKILL.md +36 -0
  342. package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
  343. package/skills/python-pro/SKILL.md +158 -0
  344. package/skills/python-testing-patterns/SKILL.md +37 -0
  345. package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
  346. package/skills/quant-analyst/SKILL.md +53 -0
  347. package/skills/rag-implementation/SKILL.md +421 -0
  348. package/skills/react-modernization/SKILL.md +34 -0
  349. package/skills/react-modernization/resources/implementation-playbook.md +512 -0
  350. package/skills/react-native-architecture/SKILL.md +33 -0
  351. package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
  352. package/skills/react-state-management/SKILL.md +441 -0
  353. package/skills/reference-builder/SKILL.md +188 -0
  354. package/skills/reverse-engineer/SKILL.md +173 -0
  355. package/skills/risk-manager/SKILL.md +61 -0
  356. package/skills/risk-metrics-calculation/SKILL.md +33 -0
  357. package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
  358. package/skills/ruby-pro/SKILL.md +56 -0
  359. package/skills/rust-async-patterns/SKILL.md +33 -0
  360. package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
  361. package/skills/rust-pro/SKILL.md +178 -0
  362. package/skills/saga-orchestration/SKILL.md +496 -0
  363. package/skills/sales-automator/SKILL.md +55 -0
  364. package/skills/sast-configuration/SKILL.md +212 -0
  365. package/skills/scala-pro/SKILL.md +82 -0
  366. package/skills/screen-reader-testing/SKILL.md +33 -0
  367. package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
  368. package/skills/search-specialist/SKILL.md +80 -0
  369. package/skills/secrets-management/SKILL.md +364 -0
  370. package/skills/security-auditor/SKILL.md +169 -0
  371. package/skills/security-compliance-compliance-check/SKILL.md +55 -0
  372. package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
  373. package/skills/security-requirement-extraction/SKILL.md +33 -0
  374. package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  375. package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
  376. package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
  377. package/skills/security-scanning-security-hardening/SKILL.md +147 -0
  378. package/skills/security-scanning-security-sast/SKILL.md +495 -0
  379. package/skills/seo-authority-builder/SKILL.md +136 -0
  380. package/skills/seo-cannibalization-detector/SKILL.md +123 -0
  381. package/skills/seo-content-auditor/SKILL.md +83 -0
  382. package/skills/seo-content-planner/SKILL.md +108 -0
  383. package/skills/seo-content-refresher/SKILL.md +118 -0
  384. package/skills/seo-content-writer/SKILL.md +96 -0
  385. package/skills/seo-keyword-strategist/SKILL.md +95 -0
  386. package/skills/seo-meta-optimizer/SKILL.md +92 -0
  387. package/skills/seo-snippet-hunter/SKILL.md +114 -0
  388. package/skills/seo-structure-architect/SKILL.md +108 -0
  389. package/skills/service-mesh-expert/SKILL.md +58 -0
  390. package/skills/service-mesh-observability/SKILL.md +395 -0
  391. package/skills/shellcheck-configuration/SKILL.md +466 -0
  392. package/skills/similarity-search-patterns/SKILL.md +33 -0
  393. package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  394. package/skills/slo-implementation/SKILL.md +341 -0
  395. package/skills/solidity-security/SKILL.md +34 -0
  396. package/skills/solidity-security/resources/implementation-playbook.md +524 -0
  397. package/skills/spark-optimization/SKILL.md +427 -0
  398. package/skills/sql-optimization-patterns/SKILL.md +35 -0
  399. package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  400. package/skills/sql-pro/SKILL.md +173 -0
  401. package/skills/startup-analyst/SKILL.md +328 -0
  402. package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  403. package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  404. package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  405. package/skills/startup-financial-modeling/SKILL.md +467 -0
  406. package/skills/startup-metrics-framework/SKILL.md +34 -0
  407. package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  408. package/skills/stride-analysis-patterns/SKILL.md +33 -0
  409. package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  410. package/skills/stripe-integration/SKILL.md +454 -0
  411. package/skills/systems-programming-rust-project/SKILL.md +440 -0
  412. package/skills/tailwind-design-system/SKILL.md +33 -0
  413. package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
  414. package/skills/tdd-orchestrator/SKILL.md +205 -0
  415. package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
  416. package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
  417. package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
  418. package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
  419. package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
  420. package/skills/team-collaboration-issue/SKILL.md +37 -0
  421. package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
  422. package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
  423. package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
  424. package/skills/team-composition-analysis/SKILL.md +413 -0
  425. package/skills/temporal-python-pro/SKILL.md +370 -0
  426. package/skills/temporal-python-testing/SKILL.md +170 -0
  427. package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  428. package/skills/temporal-python-testing/resources/local-setup.md +553 -0
  429. package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  430. package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  431. package/skills/terraform-module-library/SKILL.md +261 -0
  432. package/skills/terraform-module-library/references/aws-modules.md +63 -0
  433. package/skills/terraform-specialist/SKILL.md +166 -0
  434. package/skills/test-automator/SKILL.md +224 -0
  435. package/skills/threat-mitigation-mapping/SKILL.md +33 -0
  436. package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  437. package/skills/threat-modeling-expert/SKILL.md +60 -0
  438. package/skills/track-management/SKILL.md +38 -0
  439. package/skills/track-management/resources/implementation-playbook.md +591 -0
  440. package/skills/turborepo-caching/SKILL.md +419 -0
  441. package/skills/tutorial-engineer/SKILL.md +139 -0
  442. package/skills/typescript-advanced-types/SKILL.md +35 -0
  443. package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
  444. package/skills/typescript-pro/SKILL.md +55 -0
  445. package/skills/ui-minimal/SKILL.md +23 -0
  446. package/skills/ui-ux-designer/SKILL.md +209 -0
  447. package/skills/ui-visual-validator/SKILL.md +214 -0
  448. package/skills/unit-testing-test-generate/SKILL.md +319 -0
  449. package/skills/unity-developer/SKILL.md +230 -0
  450. package/skills/unity-ecs-patterns/SKILL.md +33 -0
  451. package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
  452. package/skills/uv-package-manager/SKILL.md +37 -0
  453. package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
  454. package/skills/vector-database-engineer/SKILL.md +60 -0
  455. package/skills/vector-index-tuning/SKILL.md +42 -0
  456. package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  457. package/skills/wcag-audit-patterns/SKILL.md +41 -0
  458. package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
  459. package/skills/web3-testing/SKILL.md +427 -0
  460. package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
  461. package/skills/workflow-patterns/SKILL.md +38 -0
  462. package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: payment-integration
3
+ description: Integrate Stripe, PayPal, and payment processors. Handles checkout
4
+ flows, subscriptions, webhooks, and PCI compliance. Use PROACTIVELY when
5
+ implementing payments, billing, or subscription features.
6
+ metadata:
7
+ model: sonnet
8
+ ---
9
+
10
+ ## Use this skill when
11
+
12
+ - Working on payment integration tasks or workflows
13
+ - Needing guidance, best practices, or checklists for payment integration
14
+
15
+ ## Do not use this skill when
16
+
17
+ - The task is unrelated to payment integration
18
+ - You need a different domain or tool outside this scope
19
+
20
+ ## Instructions
21
+
22
+ - Clarify goals, constraints, and required inputs.
23
+ - Apply relevant best practices and validate outcomes.
24
+ - Provide actionable steps and verification.
25
+ - If detailed examples are required, open `resources/implementation-playbook.md`.
26
+
27
+ You are a payment integration specialist focused on secure, reliable payment processing.
28
+
29
+ ## Focus Areas
30
+ - Stripe/PayPal/Square API integration
31
+ - Checkout flows and payment forms
32
+ - Subscription billing and recurring payments
33
+ - Webhook handling for payment events
34
+ - PCI compliance and security best practices
35
+ - Payment error handling and retry logic
36
+
37
+ ## Approach
38
+ 1. Security first - never log sensitive card data
39
+ 2. Implement idempotency for all payment operations
40
+ 3. Handle all edge cases (failed payments, disputes, refunds)
41
+ 4. Test mode first, with clear migration path to production
42
+ 5. Comprehensive webhook handling for async events
43
+
44
+ ## Critical Requirements
45
+
46
+ ### Webhook Security & Idempotency
47
+ - **Signature Verification**: ALWAYS verify webhook signatures using official SDK libraries (Stripe, PayPal include HMAC signatures). Never process unverified webhooks.
48
+ - **Raw Body Preservation**: Never modify webhook request body before verification - JSON middleware breaks signature validation.
49
+ - **Idempotent Handlers**: Store event IDs in your database and check before processing. Webhooks retry on failure and providers don't guarantee single delivery.
50
+ - **Quick Response**: Return `2xx` status within 200ms, BEFORE expensive operations (database writes, external APIs). Timeouts trigger retries and duplicate processing.
51
+ - **Server Validation**: Re-fetch payment status from provider API. Never trust webhook payload or client response alone.
52
+
53
+ ### PCI Compliance Essentials
54
+ - **Never Handle Raw Cards**: Use tokenization APIs (Stripe Elements, PayPal SDK) that handle card data in provider's iframe. NEVER store, process, or transmit raw card numbers.
55
+ - **Server-Side Validation**: All payment verification must happen server-side via direct API calls to payment provider.
56
+ - **Environment Separation**: Test credentials must fail in production. Misconfigured gateways commonly accept test cards on live sites.
57
+
58
+ ## Common Failures
59
+
60
+ **Real-world examples from Stripe, PayPal, OWASP:**
61
+ - Payment processor collapse during traffic spike → webhook queue backups, revenue loss
62
+ - Out-of-order webhooks breaking Lambda functions (no idempotency) → production failures
63
+ - Malicious price manipulation on unencrypted payment buttons → fraudulent payments
64
+ - Test cards accepted on live sites due to misconfiguration → PCI violations
65
+ - Webhook signature skipped → system flooded with malicious requests
66
+
67
+ **Sources**: Stripe official docs, PayPal Security Guidelines, OWASP Testing Guide, production retrospectives
68
+
69
+ ## Output
70
+ - Payment integration code with error handling
71
+ - Webhook endpoint implementations
72
+ - Database schema for payment records
73
+ - Security checklist (PCI compliance points)
74
+ - Test payment scenarios and edge cases
75
+ - Environment variable configuration
76
+
77
+ Always use official SDKs. Include both server-side and client-side code where needed.
@@ -0,0 +1,479 @@
1
+ ---
2
+ name: paypal-integration
3
+ description: Integrate PayPal payment processing with support for express checkout, subscriptions, and refund management. Use when implementing PayPal payments, processing online transactions, or building e-commerce checkout flows.
4
+ ---
5
+
6
+ # PayPal Integration
7
+
8
+ Master PayPal payment integration including Express Checkout, IPN handling, recurring billing, and refund workflows.
9
+
10
+ ## Do not use this skill when
11
+
12
+ - The task is unrelated to paypal integration
13
+ - You need a different domain or tool outside this scope
14
+
15
+ ## Instructions
16
+
17
+ - Clarify goals, constraints, and required inputs.
18
+ - Apply relevant best practices and validate outcomes.
19
+ - Provide actionable steps and verification.
20
+ - If detailed examples are required, open `resources/implementation-playbook.md`.
21
+
22
+ ## Use this skill when
23
+
24
+ - Integrating PayPal as a payment option
25
+ - Implementing express checkout flows
26
+ - Setting up recurring billing with PayPal
27
+ - Processing refunds and payment disputes
28
+ - Handling PayPal webhooks (IPN)
29
+ - Supporting international payments
30
+ - Implementing PayPal subscriptions
31
+
32
+ ## Core Concepts
33
+
34
+ ### 1. Payment Products
35
+ **PayPal Checkout**
36
+ - One-time payments
37
+ - Express checkout experience
38
+ - Guest and PayPal account payments
39
+
40
+ **PayPal Subscriptions**
41
+ - Recurring billing
42
+ - Subscription plans
43
+ - Automatic renewals
44
+
45
+ **PayPal Payouts**
46
+ - Send money to multiple recipients
47
+ - Marketplace and platform payments
48
+
49
+ ### 2. Integration Methods
50
+ **Client-Side (JavaScript SDK)**
51
+ - Smart Payment Buttons
52
+ - Hosted payment flow
53
+ - Minimal backend code
54
+
55
+ **Server-Side (REST API)**
56
+ - Full control over payment flow
57
+ - Custom checkout UI
58
+ - Advanced features
59
+
60
+ ### 3. IPN (Instant Payment Notification)
61
+ - Webhook-like payment notifications
62
+ - Asynchronous payment updates
63
+ - Verification required
64
+
65
+ ## Quick Start
66
+
67
+ ```javascript
68
+ // Frontend - PayPal Smart Buttons
69
+ <div id="paypal-button-container"></div>
70
+
71
+ <script src="https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID&currency=USD"></script>
72
+ <script>
73
+ paypal.Buttons({
74
+ createOrder: function(data, actions) {
75
+ return actions.order.create({
76
+ purchase_units: [{
77
+ amount: {
78
+ value: '25.00'
79
+ }
80
+ }]
81
+ });
82
+ },
83
+ onApprove: function(data, actions) {
84
+ return actions.order.capture().then(function(details) {
85
+ // Payment successful
86
+ console.log('Transaction completed by ' + details.payer.name.given_name);
87
+
88
+ // Send to backend for verification
89
+ fetch('/api/paypal/capture', {
90
+ method: 'POST',
91
+ headers: {'Content-Type': 'application/json'},
92
+ body: JSON.stringify({orderID: data.orderID})
93
+ });
94
+ });
95
+ }
96
+ }).render('#paypal-button-container');
97
+ </script>
98
+ ```
99
+
100
+ ```python
101
+ # Backend - Verify and capture order
102
+ from paypalrestsdk import Payment
103
+ import paypalrestsdk
104
+
105
+ paypalrestsdk.configure({
106
+ "mode": "sandbox", # or "live"
107
+ "client_id": "YOUR_CLIENT_ID",
108
+ "client_secret": "YOUR_CLIENT_SECRET"
109
+ })
110
+
111
+ def capture_paypal_order(order_id):
112
+ """Capture a PayPal order."""
113
+ payment = Payment.find(order_id)
114
+
115
+ if payment.execute({"payer_id": payment.payer.payer_info.payer_id}):
116
+ # Payment successful
117
+ return {
118
+ 'status': 'success',
119
+ 'transaction_id': payment.id,
120
+ 'amount': payment.transactions[0].amount.total
121
+ }
122
+ else:
123
+ # Payment failed
124
+ return {
125
+ 'status': 'failed',
126
+ 'error': payment.error
127
+ }
128
+ ```
129
+
130
+ ## Express Checkout Implementation
131
+
132
+ ### Server-Side Order Creation
133
+ ```python
134
+ import requests
135
+ import json
136
+
137
+ class PayPalClient:
138
+ def __init__(self, client_id, client_secret, mode='sandbox'):
139
+ self.client_id = client_id
140
+ self.client_secret = client_secret
141
+ self.base_url = 'https://api-m.sandbox.paypal.com' if mode == 'sandbox' else 'https://api-m.paypal.com'
142
+ self.access_token = self.get_access_token()
143
+
144
+ def get_access_token(self):
145
+ """Get OAuth access token."""
146
+ url = f"{self.base_url}/v1/oauth2/token"
147
+ headers = {"Accept": "application/json", "Accept-Language": "en_US"}
148
+
149
+ response = requests.post(
150
+ url,
151
+ headers=headers,
152
+ data={"grant_type": "client_credentials"},
153
+ auth=(self.client_id, self.client_secret)
154
+ )
155
+
156
+ return response.json()['access_token']
157
+
158
+ def create_order(self, amount, currency='USD'):
159
+ """Create a PayPal order."""
160
+ url = f"{self.base_url}/v2/checkout/orders"
161
+ headers = {
162
+ "Content-Type": "application/json",
163
+ "Authorization": f"Bearer {self.access_token}"
164
+ }
165
+
166
+ payload = {
167
+ "intent": "CAPTURE",
168
+ "purchase_units": [{
169
+ "amount": {
170
+ "currency_code": currency,
171
+ "value": str(amount)
172
+ }
173
+ }]
174
+ }
175
+
176
+ response = requests.post(url, headers=headers, json=payload)
177
+ return response.json()
178
+
179
+ def capture_order(self, order_id):
180
+ """Capture payment for an order."""
181
+ url = f"{self.base_url}/v2/checkout/orders/{order_id}/capture"
182
+ headers = {
183
+ "Content-Type": "application/json",
184
+ "Authorization": f"Bearer {self.access_token}"
185
+ }
186
+
187
+ response = requests.post(url, headers=headers)
188
+ return response.json()
189
+
190
+ def get_order_details(self, order_id):
191
+ """Get order details."""
192
+ url = f"{self.base_url}/v2/checkout/orders/{order_id}"
193
+ headers = {
194
+ "Authorization": f"Bearer {self.access_token}"
195
+ }
196
+
197
+ response = requests.get(url, headers=headers)
198
+ return response.json()
199
+ ```
200
+
201
+ ## IPN (Instant Payment Notification) Handling
202
+
203
+ ### IPN Verification and Processing
204
+ ```python
205
+ from flask import Flask, request
206
+ import requests
207
+ from urllib.parse import parse_qs
208
+
209
+ app = Flask(__name__)
210
+
211
+ @app.route('/ipn', methods=['POST'])
212
+ def handle_ipn():
213
+ """Handle PayPal IPN notifications."""
214
+ # Get IPN message
215
+ ipn_data = request.form.to_dict()
216
+
217
+ # Verify IPN with PayPal
218
+ if not verify_ipn(ipn_data):
219
+ return 'IPN verification failed', 400
220
+
221
+ # Process IPN based on transaction type
222
+ payment_status = ipn_data.get('payment_status')
223
+ txn_type = ipn_data.get('txn_type')
224
+
225
+ if payment_status == 'Completed':
226
+ handle_payment_completed(ipn_data)
227
+ elif payment_status == 'Refunded':
228
+ handle_refund(ipn_data)
229
+ elif payment_status == 'Reversed':
230
+ handle_chargeback(ipn_data)
231
+
232
+ return 'IPN processed', 200
233
+
234
+ def verify_ipn(ipn_data):
235
+ """Verify IPN message authenticity."""
236
+ # Add 'cmd' parameter
237
+ verify_data = ipn_data.copy()
238
+ verify_data['cmd'] = '_notify-validate'
239
+
240
+ # Send back to PayPal for verification
241
+ paypal_url = 'https://ipnpb.sandbox.paypal.com/cgi-bin/webscr' # or production URL
242
+
243
+ response = requests.post(paypal_url, data=verify_data)
244
+
245
+ return response.text == 'VERIFIED'
246
+
247
+ def handle_payment_completed(ipn_data):
248
+ """Process completed payment."""
249
+ txn_id = ipn_data.get('txn_id')
250
+ payer_email = ipn_data.get('payer_email')
251
+ mc_gross = ipn_data.get('mc_gross')
252
+ item_name = ipn_data.get('item_name')
253
+
254
+ # Check if already processed (prevent duplicates)
255
+ if is_transaction_processed(txn_id):
256
+ return
257
+
258
+ # Update database
259
+ # Send confirmation email
260
+ # Fulfill order
261
+ print(f"Payment completed: {txn_id}, Amount: ${mc_gross}")
262
+
263
+ def handle_refund(ipn_data):
264
+ """Handle refund."""
265
+ parent_txn_id = ipn_data.get('parent_txn_id')
266
+ mc_gross = ipn_data.get('mc_gross')
267
+
268
+ # Process refund in your system
269
+ print(f"Refund processed: {parent_txn_id}, Amount: ${mc_gross}")
270
+
271
+ def handle_chargeback(ipn_data):
272
+ """Handle payment reversal/chargeback."""
273
+ txn_id = ipn_data.get('txn_id')
274
+ reason_code = ipn_data.get('reason_code')
275
+
276
+ # Handle chargeback
277
+ print(f"Chargeback: {txn_id}, Reason: {reason_code}")
278
+ ```
279
+
280
+ ## Subscription/Recurring Billing
281
+
282
+ ### Create Subscription Plan
283
+ ```python
284
+ def create_subscription_plan(name, amount, interval='MONTH'):
285
+ """Create a subscription plan."""
286
+ client = PayPalClient(CLIENT_ID, CLIENT_SECRET)
287
+
288
+ url = f"{client.base_url}/v1/billing/plans"
289
+ headers = {
290
+ "Content-Type": "application/json",
291
+ "Authorization": f"Bearer {client.access_token}"
292
+ }
293
+
294
+ payload = {
295
+ "product_id": "PRODUCT_ID", # Create product first
296
+ "name": name,
297
+ "billing_cycles": [{
298
+ "frequency": {
299
+ "interval_unit": interval,
300
+ "interval_count": 1
301
+ },
302
+ "tenure_type": "REGULAR",
303
+ "sequence": 1,
304
+ "total_cycles": 0, # Infinite
305
+ "pricing_scheme": {
306
+ "fixed_price": {
307
+ "value": str(amount),
308
+ "currency_code": "USD"
309
+ }
310
+ }
311
+ }],
312
+ "payment_preferences": {
313
+ "auto_bill_outstanding": True,
314
+ "setup_fee": {
315
+ "value": "0",
316
+ "currency_code": "USD"
317
+ },
318
+ "setup_fee_failure_action": "CONTINUE",
319
+ "payment_failure_threshold": 3
320
+ }
321
+ }
322
+
323
+ response = requests.post(url, headers=headers, json=payload)
324
+ return response.json()
325
+
326
+ def create_subscription(plan_id, subscriber_email):
327
+ """Create a subscription for a customer."""
328
+ client = PayPalClient(CLIENT_ID, CLIENT_SECRET)
329
+
330
+ url = f"{client.base_url}/v1/billing/subscriptions"
331
+ headers = {
332
+ "Content-Type": "application/json",
333
+ "Authorization": f"Bearer {client.access_token}"
334
+ }
335
+
336
+ payload = {
337
+ "plan_id": plan_id,
338
+ "subscriber": {
339
+ "email_address": subscriber_email
340
+ },
341
+ "application_context": {
342
+ "return_url": "https://yourdomain.com/subscription/success",
343
+ "cancel_url": "https://yourdomain.com/subscription/cancel"
344
+ }
345
+ }
346
+
347
+ response = requests.post(url, headers=headers, json=payload)
348
+ subscription = response.json()
349
+
350
+ # Get approval URL
351
+ for link in subscription.get('links', []):
352
+ if link['rel'] == 'approve':
353
+ return {
354
+ 'subscription_id': subscription['id'],
355
+ 'approval_url': link['href']
356
+ }
357
+ ```
358
+
359
+ ## Refund Workflows
360
+
361
+ ```python
362
+ def create_refund(capture_id, amount=None, note=None):
363
+ """Create a refund for a captured payment."""
364
+ client = PayPalClient(CLIENT_ID, CLIENT_SECRET)
365
+
366
+ url = f"{client.base_url}/v2/payments/captures/{capture_id}/refund"
367
+ headers = {
368
+ "Content-Type": "application/json",
369
+ "Authorization": f"Bearer {client.access_token}"
370
+ }
371
+
372
+ payload = {}
373
+ if amount:
374
+ payload["amount"] = {
375
+ "value": str(amount),
376
+ "currency_code": "USD"
377
+ }
378
+
379
+ if note:
380
+ payload["note_to_payer"] = note
381
+
382
+ response = requests.post(url, headers=headers, json=payload)
383
+ return response.json()
384
+
385
+ def get_refund_details(refund_id):
386
+ """Get refund details."""
387
+ client = PayPalClient(CLIENT_ID, CLIENT_SECRET)
388
+
389
+ url = f"{client.base_url}/v2/payments/refunds/{refund_id}"
390
+ headers = {
391
+ "Authorization": f"Bearer {client.access_token}"
392
+ }
393
+
394
+ response = requests.get(url, headers=headers)
395
+ return response.json()
396
+ ```
397
+
398
+ ## Error Handling
399
+
400
+ ```python
401
+ class PayPalError(Exception):
402
+ """Custom PayPal error."""
403
+ pass
404
+
405
+ def handle_paypal_api_call(api_function):
406
+ """Wrapper for PayPal API calls with error handling."""
407
+ try:
408
+ result = api_function()
409
+ return result
410
+ except requests.exceptions.RequestException as e:
411
+ # Network error
412
+ raise PayPalError(f"Network error: {str(e)}")
413
+ except Exception as e:
414
+ # Other errors
415
+ raise PayPalError(f"PayPal API error: {str(e)}")
416
+
417
+ # Usage
418
+ try:
419
+ order = handle_paypal_api_call(lambda: client.create_order(25.00))
420
+ except PayPalError as e:
421
+ # Handle error appropriately
422
+ log_error(e)
423
+ ```
424
+
425
+ ## Testing
426
+
427
+ ```python
428
+ # Use sandbox credentials
429
+ SANDBOX_CLIENT_ID = "..."
430
+ SANDBOX_SECRET = "..."
431
+
432
+ # Test accounts
433
+ # Create test buyer and seller accounts at developer.paypal.com
434
+
435
+ def test_payment_flow():
436
+ """Test complete payment flow."""
437
+ client = PayPalClient(SANDBOX_CLIENT_ID, SANDBOX_SECRET, mode='sandbox')
438
+
439
+ # Create order
440
+ order = client.create_order(10.00)
441
+ assert 'id' in order
442
+
443
+ # Get approval URL
444
+ approval_url = next((link['href'] for link in order['links'] if link['rel'] == 'approve'), None)
445
+ assert approval_url is not None
446
+
447
+ # After approval (manual step with test account)
448
+ # Capture order
449
+ # captured = client.capture_order(order['id'])
450
+ # assert captured['status'] == 'COMPLETED'
451
+ ```
452
+
453
+ ## Resources
454
+
455
+ - **references/express-checkout.md**: Express Checkout implementation guide
456
+ - **references/ipn-handling.md**: IPN verification and processing
457
+ - **references/refund-workflows.md**: Refund handling patterns
458
+ - **references/billing-agreements.md**: Recurring billing setup
459
+ - **assets/paypal-client.py**: Production PayPal client
460
+ - **assets/ipn-processor.py**: IPN webhook processor
461
+ - **assets/recurring-billing.py**: Subscription management
462
+
463
+ ## Best Practices
464
+
465
+ 1. **Always Verify IPN**: Never trust IPN without verification
466
+ 2. **Idempotent Processing**: Handle duplicate IPN notifications
467
+ 3. **Error Handling**: Implement robust error handling
468
+ 4. **Logging**: Log all transactions and errors
469
+ 5. **Test Thoroughly**: Use sandbox extensively
470
+ 6. **Webhook Backup**: Don't rely solely on client-side callbacks
471
+ 7. **Currency Handling**: Always specify currency explicitly
472
+
473
+ ## Common Pitfalls
474
+
475
+ - **Not Verifying IPN**: Accepting IPN without verification
476
+ - **Duplicate Processing**: Not checking for duplicate transactions
477
+ - **Wrong Environment**: Mixing sandbox and production URLs/credentials
478
+ - **Missing Webhooks**: Not handling all payment states
479
+ - **Hardcoded Values**: Not making configurable for different environments