gkt-node 3.3.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.
- package/README.md +89 -0
- package/assets/.agent/brain/agent_index.json +208 -0
- package/assets/.agent/brain/project_context.json +31 -0
- package/assets/.agent/skills/ab-test-setup/SKILL.md +232 -0
- package/assets/.agent/skills/agent-evaluation/SKILL.md +64 -0
- package/assets/.agent/skills/agent-memory-mcp/SKILL.md +82 -0
- package/assets/.agent/skills/agent-memory-systems/SKILL.md +67 -0
- package/assets/.agent/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
- package/assets/.agent/skills/agent-tool-builder/SKILL.md +53 -0
- package/assets/.agent/skills/ai-agents-architect/SKILL.md +90 -0
- package/assets/.agent/skills/ai-engineer/SKILL.md +171 -0
- package/assets/.agent/skills/ai-product/SKILL.md +54 -0
- package/assets/.agent/skills/ai-wrapper-product/SKILL.md +273 -0
- package/assets/.agent/skills/airflow-dag-patterns/SKILL.md +41 -0
- package/assets/.agent/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
- package/assets/.agent/skills/airtable-automation/SKILL.md +170 -0
- package/assets/.agent/skills/analytics-tracking/SKILL.md +404 -0
- package/assets/.agent/skills/api-design-principles/SKILL.md +37 -0
- package/assets/.agent/skills/api-design-principles/assets/__pycache__/rest-api-template.cpython-314.pyc +0 -0
- package/assets/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/assets/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/assets/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/assets/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/assets/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/assets/.agent/skills/api-designer/SKILL.md +22 -0
- package/assets/.agent/skills/api-designer/data/api_patterns.json +107 -0
- package/assets/.agent/skills/api-designer/scripts/__pycache__/api_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/api-designer/scripts/api_gen.py +80 -0
- package/assets/.agent/skills/api-documentation-generator/SKILL.md +484 -0
- package/assets/.agent/skills/api-documenter/SKILL.md +184 -0
- package/assets/.agent/skills/api-fuzzing-bug-bounty/SKILL.md +433 -0
- package/assets/.agent/skills/api-patterns/SKILL.md +81 -0
- package/assets/.agent/skills/api-patterns/api-style.md +42 -0
- package/assets/.agent/skills/api-patterns/auth.md +24 -0
- package/assets/.agent/skills/api-patterns/documentation.md +26 -0
- package/assets/.agent/skills/api-patterns/graphql.md +41 -0
- package/assets/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/assets/.agent/skills/api-patterns/response.md +37 -0
- package/assets/.agent/skills/api-patterns/rest.md +40 -0
- package/assets/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-314.pyc +0 -0
- package/assets/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/assets/.agent/skills/api-patterns/security-testing.md +122 -0
- package/assets/.agent/skills/api-patterns/trpc.md +41 -0
- package/assets/.agent/skills/api-patterns/versioning.md +22 -0
- package/assets/.agent/skills/api-security-best-practices/SKILL.md +907 -0
- package/assets/.agent/skills/api-testing-observability-api-mock/SKILL.md +46 -0
- package/assets/.agent/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
- package/assets/.agent/skills/app-store-optimization/HOW_TO_USE.md +281 -0
- package/assets/.agent/skills/app-store-optimization/README.md +430 -0
- package/assets/.agent/skills/app-store-optimization/SKILL.md +403 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/ab_test_planner.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/aso_scorer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/competitor_analyzer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/keyword_analyzer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/launch_checklist.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/localization_helper.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/metadata_optimizer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/__pycache__/review_analyzer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/app-store-optimization/ab_test_planner.py +662 -0
- package/assets/.agent/skills/app-store-optimization/aso_scorer.py +482 -0
- package/assets/.agent/skills/app-store-optimization/competitor_analyzer.py +577 -0
- package/assets/.agent/skills/app-store-optimization/expected_output.json +170 -0
- package/assets/.agent/skills/app-store-optimization/keyword_analyzer.py +406 -0
- package/assets/.agent/skills/app-store-optimization/launch_checklist.py +739 -0
- package/assets/.agent/skills/app-store-optimization/localization_helper.py +588 -0
- package/assets/.agent/skills/app-store-optimization/metadata_optimizer.py +581 -0
- package/assets/.agent/skills/app-store-optimization/review_analyzer.py +714 -0
- package/assets/.agent/skills/app-store-optimization/sample_input.json +30 -0
- package/assets/.agent/skills/architecture-auditor/SKILL.md +35 -0
- package/assets/.agent/skills/architecture-auditor/data/standards.json +45 -0
- package/assets/.agent/skills/architecture-auditor/scripts/__pycache__/auditor.cpython-314.pyc +0 -0
- package/assets/.agent/skills/architecture-auditor/scripts/auditor.py +69 -0
- package/assets/.agent/skills/architecture-decision-records/SKILL.md +441 -0
- package/assets/.agent/skills/architecture-patterns/SKILL.md +37 -0
- package/assets/.agent/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
- package/assets/.agent/skills/asana-automation/SKILL.md +171 -0
- package/assets/.agent/skills/attack-tree-construction/SKILL.md +38 -0
- package/assets/.agent/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
- package/assets/.agent/skills/auth-implementation-patterns/SKILL.md +39 -0
- package/assets/.agent/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
- package/assets/.agent/skills/autonomous-agent-patterns/SKILL.md +761 -0
- package/assets/.agent/skills/aws-penetration-testing/SKILL.md +405 -0
- package/assets/.agent/skills/aws-penetration-testing/references/advanced-aws-pentesting.md +469 -0
- package/assets/.agent/skills/aws-serverless/SKILL.md +323 -0
- package/assets/.agent/skills/backend-architect/SKILL.md +333 -0
- package/assets/.agent/skills/billing-automation/SKILL.md +42 -0
- package/assets/.agent/skills/billing-automation/resources/implementation-playbook.md +544 -0
- package/assets/.agent/skills/broken-authentication/SKILL.md +476 -0
- package/assets/.agent/skills/bullmq-specialist/SKILL.md +57 -0
- package/assets/.agent/skills/business-analyst/SKILL.md +182 -0
- package/assets/.agent/skills/cc-skill-backend-patterns/SKILL.md +584 -0
- package/assets/.agent/skills/cc-skill-clickhouse-io/SKILL.md +431 -0
- package/assets/.agent/skills/cc-skill-coding-standards/SKILL.md +522 -0
- package/assets/.agent/skills/cc-skill-continuous-learning/SKILL.md +10 -0
- package/assets/.agent/skills/cc-skill-continuous-learning/config.json +18 -0
- package/assets/.agent/skills/cc-skill-continuous-learning/evaluate-session.sh +60 -0
- package/assets/.agent/skills/cc-skill-frontend-patterns/SKILL.md +633 -0
- package/assets/.agent/skills/cc-skill-project-guidelines-example/SKILL.md +352 -0
- package/assets/.agent/skills/cc-skill-security-review/SKILL.md +496 -0
- package/assets/.agent/skills/cc-skill-strategic-compact/SKILL.md +10 -0
- package/assets/.agent/skills/cc-skill-strategic-compact/suggest-compact.sh +52 -0
- package/assets/.agent/skills/ci-cd-setup/SKILL.md +14 -0
- package/assets/.agent/skills/ci-cd-setup/data/pipeline_templates.json +42 -0
- package/assets/.agent/skills/ci-cd-setup/scripts/__pycache__/ci_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/ci-cd-setup/scripts/ci_gen.py +75 -0
- package/assets/.agent/skills/claude-code-guide/SKILL.md +68 -0
- package/assets/.agent/skills/clean-code/SKILL.md +94 -0
- package/assets/.agent/skills/clickup-automation/SKILL.md +234 -0
- package/assets/.agent/skills/cloud-architect/SKILL.md +135 -0
- package/assets/.agent/skills/cloud-penetration-testing/SKILL.md +501 -0
- package/assets/.agent/skills/cloud-penetration-testing/references/advanced-cloud-scripts.md +318 -0
- package/assets/.agent/skills/code-reviewer/SKILL.md +31 -0
- package/assets/.agent/skills/code-reviewer/data/review_rules.json +172 -0
- package/assets/.agent/skills/code-reviewer/scripts/__pycache__/reviewer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/code-reviewer/scripts/reviewer.py +192 -0
- package/assets/.agent/skills/codebase-navigator/SKILL.md +37 -0
- package/assets/.agent/skills/codebase-navigator/data/codebase_index.json +577 -0
- package/assets/.agent/skills/codebase-navigator/scripts/__pycache__/navigator.cpython-314.pyc +0 -0
- package/assets/.agent/skills/codebase-navigator/scripts/navigator.py +240 -0
- package/assets/.agent/skills/color-palette-generator/SKILL.md +26 -0
- package/assets/.agent/skills/color-palette-generator/data/palettes.json +37 -0
- package/assets/.agent/skills/color-palette-generator/scripts/__pycache__/palette.cpython-314.pyc +0 -0
- package/assets/.agent/skills/color-palette-generator/scripts/palette.py +57 -0
- package/assets/.agent/skills/competitive-landscape/SKILL.md +34 -0
- package/assets/.agent/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
- package/assets/.agent/skills/competitor-alternatives/SKILL.md +750 -0
- package/assets/.agent/skills/computer-use-agents/SKILL.md +315 -0
- package/assets/.agent/skills/content-creator/SKILL.md +248 -0
- package/assets/.agent/skills/content-creator/assets/content_calendar_template.md +99 -0
- package/assets/.agent/skills/content-creator/references/brand_guidelines.md +199 -0
- package/assets/.agent/skills/content-creator/references/content_frameworks.md +534 -0
- package/assets/.agent/skills/content-creator/references/social_media_optimization.md +317 -0
- package/assets/.agent/skills/content-creator/scripts/__pycache__/brand_voice_analyzer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/content-creator/scripts/__pycache__/seo_optimizer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/content-creator/scripts/brand_voice_analyzer.py +185 -0
- package/assets/.agent/skills/content-creator/scripts/seo_optimizer.py +419 -0
- package/assets/.agent/skills/content-marketer/SKILL.md +170 -0
- package/assets/.agent/skills/context-compression/SKILL.md +266 -0
- package/assets/.agent/skills/context-degradation/SKILL.md +238 -0
- package/assets/.agent/skills/context-driven-development/SKILL.md +400 -0
- package/assets/.agent/skills/context-fundamentals/SKILL.md +192 -0
- package/assets/.agent/skills/context-manager/SKILL.md +26 -0
- package/assets/.agent/skills/context-manager/scripts/__pycache__/minify.cpython-314.pyc +0 -0
- package/assets/.agent/skills/context-manager/scripts/minify.py +82 -0
- package/assets/.agent/skills/context-optimization/SKILL.md +186 -0
- package/assets/.agent/skills/context-router/SKILL.md +42 -0
- package/assets/.agent/skills/context-router/scripts/__pycache__/context_router.cpython-314.pyc +0 -0
- package/assets/.agent/skills/context-router/scripts/context_router.py +185 -0
- package/assets/.agent/skills/context-window-management/SKILL.md +53 -0
- package/assets/.agent/skills/conversation-memory/SKILL.md +61 -0
- package/assets/.agent/skills/copywriting/SKILL.md +225 -0
- package/assets/.agent/skills/cost-optimization/SKILL.md +286 -0
- package/assets/.agent/skills/cqrs-implementation/SKILL.md +35 -0
- package/assets/.agent/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
- package/assets/.agent/skills/crewai/SKILL.md +243 -0
- package/assets/.agent/skills/daily-news-report/SKILL.md +356 -0
- package/assets/.agent/skills/daily-news-report/cache.json +41 -0
- package/assets/.agent/skills/daily-news-report/sources.json +183 -0
- package/assets/.agent/skills/data-engineer/SKILL.md +224 -0
- package/assets/.agent/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
- package/assets/.agent/skills/data-engineering-data-pipeline/SKILL.md +201 -0
- package/assets/.agent/skills/data-quality-frameworks/SKILL.md +40 -0
- package/assets/.agent/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
- package/assets/.agent/skills/data-scientist/SKILL.md +199 -0
- package/assets/.agent/skills/data-storytelling/SKILL.md +465 -0
- package/assets/.agent/skills/database-admin/SKILL.md +165 -0
- package/assets/.agent/skills/database-architect/SKILL.md +268 -0
- package/assets/.agent/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
- package/assets/.agent/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
- package/assets/.agent/skills/database-design/SKILL.md +52 -0
- package/assets/.agent/skills/database-design/database-selection.md +43 -0
- package/assets/.agent/skills/database-design/indexing.md +39 -0
- package/assets/.agent/skills/database-design/migrations.md +48 -0
- package/assets/.agent/skills/database-design/optimization.md +36 -0
- package/assets/.agent/skills/database-design/orm-selection.md +30 -0
- package/assets/.agent/skills/database-design/schema-design.md +56 -0
- package/assets/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-314.pyc +0 -0
- package/assets/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/assets/.agent/skills/database-migration/SKILL.md +436 -0
- package/assets/.agent/skills/database-migrations-migration-observability/SKILL.md +420 -0
- package/assets/.agent/skills/database-migrations-sql-migrations/SKILL.md +53 -0
- package/assets/.agent/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
- package/assets/.agent/skills/database-optimizer/SKILL.md +167 -0
- package/assets/.agent/skills/datadog-automation/SKILL.md +235 -0
- package/assets/.agent/skills/db-designer/SKILL.md +22 -0
- package/assets/.agent/skills/db-designer/data/schema_patterns.json +156 -0
- package/assets/.agent/skills/db-designer/scripts/__pycache__/sql_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/db-designer/scripts/sql_gen.py +90 -0
- package/assets/.agent/skills/dbt-transformation-patterns/SKILL.md +34 -0
- package/assets/.agent/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
- package/assets/.agent/skills/debugger/SKILL.md +49 -0
- package/assets/.agent/skills/debugging-strategies/SKILL.md +34 -0
- package/assets/.agent/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
- package/assets/.agent/skills/deep-research/SKILL.md +114 -0
- package/assets/.agent/skills/deployment-engineer/SKILL.md +170 -0
- package/assets/.agent/skills/deployment-pipeline-design/SKILL.md +371 -0
- package/assets/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/assets/.agent/skills/diff-applier/SKILL.md +34 -0
- package/assets/.agent/skills/diff-applier/scripts/__pycache__/apply_patch.cpython-314.pyc +0 -0
- package/assets/.agent/skills/diff-applier/scripts/apply_patch.py +137 -0
- package/assets/.agent/skills/discord-automation/SKILL.md +187 -0
- package/assets/.agent/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
- package/assets/.agent/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
- package/assets/.agent/skills/distributed-tracing/SKILL.md +450 -0
- package/assets/.agent/skills/doc-generator/SKILL.md +14 -0
- package/assets/.agent/skills/doc-generator/data/doc_templates.json +40 -0
- package/assets/.agent/skills/doc-generator/scripts/__pycache__/doc_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/doc-generator/scripts/doc_gen.py +48 -0
- package/assets/.agent/skills/docker-expert/SKILL.md +409 -0
- package/assets/.agent/skills/docker-wizard/SKILL.md +14 -0
- package/assets/.agent/skills/docker-wizard/data/docker_templates.json +93 -0
- package/assets/.agent/skills/docker-wizard/scripts/__pycache__/docker_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/docker-wizard/scripts/docker_gen.py +86 -0
- package/assets/.agent/skills/docs-architect/SKILL.md +98 -0
- package/assets/.agent/skills/e2e-testing-patterns/SKILL.md +41 -0
- package/assets/.agent/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
- package/assets/.agent/skills/email-sequence/SKILL.md +925 -0
- package/assets/.agent/skills/embedding-strategies/SKILL.md +491 -0
- package/assets/.agent/skills/employment-contract-templates/SKILL.md +39 -0
- package/assets/.agent/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
- package/assets/.agent/skills/env-manager/SKILL.md +33 -0
- package/assets/.agent/skills/env-manager/scripts/__pycache__/env_scanner.cpython-314.pyc +0 -0
- package/assets/.agent/skills/env-manager/scripts/env_scanner.py +181 -0
- package/assets/.agent/skills/error-detective/SKILL.md +53 -0
- package/assets/.agent/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
- package/assets/.agent/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
- package/assets/.agent/skills/error-diagnostics-error-trace/SKILL.md +48 -0
- package/assets/.agent/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
- package/assets/.agent/skills/error-handling-patterns/SKILL.md +35 -0
- package/assets/.agent/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
- package/assets/.agent/skills/ethical-hacking-methodology/SKILL.md +466 -0
- package/assets/.agent/skills/event-sourcing-architect/SKILL.md +58 -0
- package/assets/.agent/skills/event-store-design/SKILL.md +449 -0
- package/assets/.agent/skills/exa-search/SKILL.md +36 -0
- package/assets/.agent/skills/fastapi-pro/SKILL.md +192 -0
- package/assets/.agent/skills/fastapi-router-py/SKILL.md +52 -0
- package/assets/.agent/skills/fastapi-templates/SKILL.md +32 -0
- package/assets/.agent/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
- package/assets/.agent/skills/free-tool-strategy/SKILL.md +576 -0
- package/assets/.agent/skills/freshdesk-automation/SKILL.md +219 -0
- package/assets/.agent/skills/frontend-developer/SKILL.md +171 -0
- package/assets/.agent/skills/gcp-cloud-run/SKILL.md +288 -0
- package/assets/.agent/skills/gemini-api-dev/SKILL.md +127 -0
- package/assets/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/assets/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-314.pyc +0 -0
- package/assets/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/assets/.agent/skills/git-advanced-workflows/SKILL.md +412 -0
- package/assets/.agent/skills/git-manager/SKILL.md +22 -0
- package/assets/.agent/skills/git-manager/data/git_conventions.json +84 -0
- package/assets/.agent/skills/git-manager/scripts/__pycache__/commit.cpython-314.pyc +0 -0
- package/assets/.agent/skills/git-manager/scripts/__pycache__/log.cpython-314.pyc +0 -0
- package/assets/.agent/skills/git-manager/scripts/commit.py +70 -0
- package/assets/.agent/skills/git-manager/scripts/log.py +29 -0
- package/assets/.agent/skills/github-actions-templates/SKILL.md +345 -0
- package/assets/.agent/skills/github-automation/SKILL.md +227 -0
- package/assets/.agent/skills/gitlab-ci-patterns/SKILL.md +283 -0
- package/assets/.agent/skills/gitops-workflow/SKILL.md +303 -0
- package/assets/.agent/skills/gitops-workflow/references/argocd-setup.md +134 -0
- package/assets/.agent/skills/gitops-workflow/references/sync-policies.md +131 -0
- package/assets/.agent/skills/gmail-automation/SKILL.md +270 -0
- package/assets/.agent/skills/google-calendar-automation/SKILL.md +176 -0
- package/assets/.agent/skills/google-drive-automation/SKILL.md +193 -0
- package/assets/.agent/skills/googlesheets-automation/SKILL.md +197 -0
- package/assets/.agent/skills/grafana-dashboards/SKILL.md +381 -0
- package/assets/.agent/skills/graphql/SKILL.md +68 -0
- package/assets/.agent/skills/graphql-architect/SKILL.md +182 -0
- package/assets/.agent/skills/helm-chart-scaffolding/SKILL.md +34 -0
- package/assets/.agent/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
- package/assets/.agent/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
- package/assets/.agent/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
- package/assets/.agent/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
- package/assets/.agent/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/assets/.agent/skills/hr-pro/SKILL.md +126 -0
- package/assets/.agent/skills/hubspot-automation/SKILL.md +178 -0
- package/assets/.agent/skills/hubspot-integration/SKILL.md +42 -0
- package/assets/.agent/skills/hybrid-search-implementation/SKILL.md +32 -0
- package/assets/.agent/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
- package/assets/.agent/skills/incident-responder/SKILL.md +213 -0
- package/assets/.agent/skills/incident-response-incident-response/SKILL.md +168 -0
- package/assets/.agent/skills/incident-response-smart-fix/SKILL.md +29 -0
- package/assets/.agent/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
- package/assets/.agent/skills/incident-runbook-templates/SKILL.md +395 -0
- package/assets/.agent/skills/infinite-gratitude/SKILL.md +26 -0
- package/assets/.agent/skills/inngest/SKILL.md +55 -0
- package/assets/.agent/skills/instagram-automation/SKILL.md +192 -0
- package/assets/.agent/skills/intercom-automation/SKILL.md +248 -0
- package/assets/.agent/skills/javascript-mastery/SKILL.md +645 -0
- package/assets/.agent/skills/javascript-testing-patterns/SKILL.md +35 -0
- package/assets/.agent/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
- package/assets/.agent/skills/jira-automation/SKILL.md +185 -0
- package/assets/.agent/skills/k8s-manifest-generator/SKILL.md +35 -0
- package/assets/.agent/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/assets/.agent/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/assets/.agent/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/assets/.agent/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
- package/assets/.agent/skills/k8s-manifest-generator/references/service-spec.md +724 -0
- package/assets/.agent/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
- package/assets/.agent/skills/k8s-security-policies/SKILL.md +346 -0
- package/assets/.agent/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
- package/assets/.agent/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
- package/assets/.agent/skills/knowledge-guide/SKILL.md +34 -0
- package/assets/.agent/skills/knowledge-guide/scripts/__pycache__/note_taker.cpython-314.pyc +0 -0
- package/assets/.agent/skills/knowledge-guide/scripts/note_taker.py +50 -0
- package/assets/.agent/skills/kpi-dashboard-design/SKILL.md +440 -0
- package/assets/.agent/skills/kubernetes-architect/SKILL.md +170 -0
- package/assets/.agent/skills/langchain-architecture/SKILL.md +350 -0
- package/assets/.agent/skills/langfuse/SKILL.md +238 -0
- package/assets/.agent/skills/langgraph/SKILL.md +287 -0
- package/assets/.agent/skills/launch-strategy/SKILL.md +344 -0
- package/assets/.agent/skills/legal-advisor/SKILL.md +70 -0
- package/assets/.agent/skills/linkedin-automation/SKILL.md +175 -0
- package/assets/.agent/skills/linux-privilege-escalation/SKILL.md +504 -0
- package/assets/.agent/skills/llm-app-patterns/SKILL.md +760 -0
- package/assets/.agent/skills/llm-evaluation/SKILL.md +483 -0
- package/assets/.agent/skills/mailchimp-automation/SKILL.md +231 -0
- package/assets/.agent/skills/market-sizing-analysis/SKILL.md +425 -0
- package/assets/.agent/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
- package/assets/.agent/skills/market-sizing-analysis/references/data-sources.md +360 -0
- package/assets/.agent/skills/marketing-ideas/SKILL.md +221 -0
- package/assets/.agent/skills/marketing-psychology/SKILL.md +255 -0
- package/assets/.agent/skills/mcp-builder/LICENSE.txt +202 -0
- package/assets/.agent/skills/mcp-builder/SKILL.md +236 -0
- package/assets/.agent/skills/mcp-builder/reference/evaluation.md +602 -0
- package/assets/.agent/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/assets/.agent/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/assets/.agent/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/assets/.agent/skills/mcp-builder/scripts/__pycache__/connections.cpython-314.pyc +0 -0
- package/assets/.agent/skills/mcp-builder/scripts/__pycache__/evaluation.cpython-314.pyc +0 -0
- package/assets/.agent/skills/mcp-builder/scripts/connections.py +151 -0
- package/assets/.agent/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/assets/.agent/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/assets/.agent/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/assets/.agent/skills/mermaid-expert/SKILL.md +59 -0
- package/assets/.agent/skills/meta-thinker/SKILL.md +41 -0
- package/assets/.agent/skills/meta-thinker/data/brainstorm_frameworks.json +614 -0
- package/assets/.agent/skills/meta-thinker/data/feature_ideas.json +352 -0
- package/assets/.agent/skills/meta-thinker/data/industry_database.json +1693 -0
- package/assets/.agent/skills/meta-thinker/data/monetization_models.json +570 -0
- package/assets/.agent/skills/meta-thinker/data/platform_guide.json +361 -0
- package/assets/.agent/skills/meta-thinker/data/product_archetypes.json +998 -0
- package/assets/.agent/skills/meta-thinker/scripts/__pycache__/idea_engine.cpython-314.pyc +0 -0
- package/assets/.agent/skills/meta-thinker/scripts/idea_engine.py +246 -0
- package/assets/.agent/skills/metasploit-framework/SKILL.md +478 -0
- package/assets/.agent/skills/micro-saas-launcher/SKILL.md +212 -0
- package/assets/.agent/skills/monday-automation/SKILL.md +233 -0
- package/assets/.agent/skills/multi-agent-patterns/SKILL.md +262 -0
- package/assets/.agent/skills/n8n-code-python/SKILL.md +750 -0
- package/assets/.agent/skills/n8n-mcp-tools-expert/SKILL.md +654 -0
- package/assets/.agent/skills/n8n-node-configuration/SKILL.md +796 -0
- package/assets/.agent/skills/neon-postgres/SKILL.md +56 -0
- package/assets/.agent/skills/nestjs-expert/SKILL.md +552 -0
- package/assets/.agent/skills/nextjs-best-practices/SKILL.md +203 -0
- package/assets/.agent/skills/nocobase-plugin-developer/SKILL.md +1289 -0
- package/assets/.agent/skills/nodejs-backend-patterns/SKILL.md +35 -0
- package/assets/.agent/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
- package/assets/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/assets/.agent/skills/nosql-expert/SKILL.md +111 -0
- package/assets/.agent/skills/notion-automation/SKILL.md +215 -0
- package/assets/.agent/skills/observability-engineer/SKILL.md +237 -0
- package/assets/.agent/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
- package/assets/.agent/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
- package/assets/.agent/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
- package/assets/.agent/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
- package/assets/.agent/skills/on-call-handoff-patterns/SKILL.md +453 -0
- package/assets/.agent/skills/onboarding-cro/SKILL.md +433 -0
- package/assets/.agent/skills/openapi-spec-generation/SKILL.md +33 -0
- package/assets/.agent/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
- package/assets/.agent/skills/page-cro/SKILL.md +343 -0
- package/assets/.agent/skills/paid-ads/SKILL.md +551 -0
- package/assets/.agent/skills/payment-integration/SKILL.md +77 -0
- package/assets/.agent/skills/paypal-integration/SKILL.md +479 -0
- package/assets/.agent/skills/paywall-upgrade-cro/SKILL.md +570 -0
- package/assets/.agent/skills/pentest-checklist/SKILL.md +334 -0
- package/assets/.agent/skills/pentest-commands/SKILL.md +438 -0
- package/assets/.agent/skills/pipedrive-automation/SKILL.md +224 -0
- package/assets/.agent/skills/plaid-fintech/SKILL.md +50 -0
- package/assets/.agent/skills/popup-cro/SKILL.md +346 -0
- package/assets/.agent/skills/postgresql/SKILL.md +230 -0
- package/assets/.agent/skills/postmortem-writing/SKILL.md +386 -0
- package/assets/.agent/skills/pricing-strategy/SKILL.md +356 -0
- package/assets/.agent/skills/prisma-expert/SKILL.md +355 -0
- package/assets/.agent/skills/product-manager-toolkit/SKILL.md +351 -0
- package/assets/.agent/skills/product-manager-toolkit/references/prd_templates.md +317 -0
- package/assets/.agent/skills/product-manager-toolkit/scripts/__pycache__/customer_interview_analyzer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/product-manager-toolkit/scripts/__pycache__/rice_prioritizer.cpython-314.pyc +0 -0
- package/assets/.agent/skills/product-manager-toolkit/scripts/customer_interview_analyzer.py +441 -0
- package/assets/.agent/skills/product-manager-toolkit/scripts/rice_prioritizer.py +296 -0
- package/assets/.agent/skills/programmatic-seo/SKILL.md +351 -0
- package/assets/.agent/skills/project-scaffolder/SKILL.md +26 -0
- package/assets/.agent/skills/project-scaffolder/data/scaffold_templates.json +150 -0
- package/assets/.agent/skills/project-scaffolder/scripts/__pycache__/scaffold.cpython-314.pyc +0 -0
- package/assets/.agent/skills/project-scaffolder/scripts/scaffold.py +249 -0
- package/assets/.agent/skills/projection-patterns/SKILL.md +33 -0
- package/assets/.agent/skills/projection-patterns/resources/implementation-playbook.md +501 -0
- package/assets/.agent/skills/prometheus-configuration/SKILL.md +404 -0
- package/assets/.agent/skills/prompt-caching/SKILL.md +61 -0
- package/assets/.agent/skills/prompt-engineer/README.md +659 -0
- package/assets/.agent/skills/prompt-engineer/SKILL.md +252 -0
- package/assets/.agent/skills/prompt-engineering/SKILL.md +171 -0
- package/assets/.agent/skills/prompt-engineering-patterns/SKILL.md +213 -0
- package/assets/.agent/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/assets/.agent/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
- package/assets/.agent/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
- package/assets/.agent/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
- package/assets/.agent/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
- package/assets/.agent/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
- package/assets/.agent/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
- package/assets/.agent/skills/prompt-engineering-patterns/scripts/__pycache__/optimize-prompt.cpython-314.pyc +0 -0
- package/assets/.agent/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/assets/.agent/skills/prompt-library/SKILL.md +322 -0
- package/assets/.agent/skills/rag-engineer/SKILL.md +90 -0
- package/assets/.agent/skills/rag-implementation/SKILL.md +421 -0
- package/assets/.agent/skills/react-patterns/SKILL.md +198 -0
- package/assets/.agent/skills/react-state-management/SKILL.md +441 -0
- package/assets/.agent/skills/react-ui-patterns/SKILL.md +289 -0
- package/assets/.agent/skills/readme-generator/SKILL.md +14 -0
- package/assets/.agent/skills/readme-generator/data/readme_templates.json +22 -0
- package/assets/.agent/skills/readme-generator/scripts/__pycache__/readme_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/readme-generator/scripts/readme_gen.py +81 -0
- package/assets/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/assets/.agent/skills/red-team-tools/SKILL.md +310 -0
- package/assets/.agent/skills/reference-builder/SKILL.md +188 -0
- package/assets/.agent/skills/referral-program/SKILL.md +602 -0
- package/assets/.agent/skills/release-manager/SKILL.md +30 -0
- package/assets/.agent/skills/release-manager/scripts/__pycache__/release.cpython-314.pyc +0 -0
- package/assets/.agent/skills/release-manager/scripts/release.py +210 -0
- package/assets/.agent/skills/reliability-engineer/SKILL.md +30 -0
- package/assets/.agent/skills/reliability-engineer/data/reliability.json +57 -0
- package/assets/.agent/skills/reliability-engineer/scripts/__pycache__/sre.cpython-314.pyc +0 -0
- package/assets/.agent/skills/reliability-engineer/scripts/sre.py +94 -0
- package/assets/.agent/skills/saga-orchestration/SKILL.md +496 -0
- package/assets/.agent/skills/sales-automator/SKILL.md +55 -0
- package/assets/.agent/skills/salesforce-automation/SKILL.md +190 -0
- package/assets/.agent/skills/sast-configuration/SKILL.md +212 -0
- package/assets/.agent/skills/scanning-tools/SKILL.md +589 -0
- package/assets/.agent/skills/schema-markup/SKILL.md +360 -0
- package/assets/.agent/skills/search-specialist/SKILL.md +80 -0
- package/assets/.agent/skills/secrets-management/SKILL.md +364 -0
- package/assets/.agent/skills/security-auditor/SKILL.md +169 -0
- package/assets/.agent/skills/security-bluebook-builder/SKILL.md +22 -0
- package/assets/.agent/skills/security-requirement-extraction/SKILL.md +33 -0
- package/assets/.agent/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
- package/assets/.agent/skills/security-scanner/SKILL.md +21 -0
- package/assets/.agent/skills/security-scanner/data/security_patterns.json +101 -0
- package/assets/.agent/skills/security-scanner/scripts/__pycache__/checklist_gen.cpython-314.pyc +0 -0
- package/assets/.agent/skills/security-scanner/scripts/__pycache__/vuln_scan.cpython-314.pyc +0 -0
- package/assets/.agent/skills/security-scanner/scripts/checklist_gen.py +49 -0
- package/assets/.agent/skills/security-scanner/scripts/vuln_scan.py +81 -0
- package/assets/.agent/skills/sendgrid-automation/SKILL.md +228 -0
- package/assets/.agent/skills/seo-audit/SKILL.md +487 -0
- package/assets/.agent/skills/seo-authority-builder/SKILL.md +136 -0
- package/assets/.agent/skills/seo-cannibalization-detector/SKILL.md +123 -0
- package/assets/.agent/skills/seo-content-auditor/SKILL.md +83 -0
- package/assets/.agent/skills/seo-content-planner/SKILL.md +108 -0
- package/assets/.agent/skills/seo-content-refresher/SKILL.md +118 -0
- package/assets/.agent/skills/seo-content-writer/SKILL.md +96 -0
- package/assets/.agent/skills/seo-fundamentals/SKILL.md +173 -0
- package/assets/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-314.pyc +0 -0
- package/assets/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/assets/.agent/skills/seo-keyword-strategist/SKILL.md +95 -0
- package/assets/.agent/skills/seo-meta-optimizer/SKILL.md +92 -0
- package/assets/.agent/skills/seo-snippet-hunter/SKILL.md +114 -0
- package/assets/.agent/skills/seo-structure-architect/SKILL.md +108 -0
- package/assets/.agent/skills/service-mesh-observability/SKILL.md +395 -0
- package/assets/.agent/skills/shodan-reconnaissance/SKILL.md +503 -0
- package/assets/.agent/skills/shopify-apps/SKILL.md +42 -0
- package/assets/.agent/skills/shopify-automation/SKILL.md +168 -0
- package/assets/.agent/skills/signup-flow-cro/SKILL.md +355 -0
- package/assets/.agent/skills/similarity-search-patterns/SKILL.md +33 -0
- package/assets/.agent/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
- package/assets/.agent/skills/skill-creator/LICENSE.txt +202 -0
- package/assets/.agent/skills/skill-creator/README.md +270 -0
- package/assets/.agent/skills/skill-creator/SKILL.md +593 -0
- package/assets/.agent/skills/skill-creator/references/output-patterns.md +82 -0
- package/assets/.agent/skills/skill-creator/references/workflows.md +28 -0
- package/assets/.agent/skills/skill-creator/scripts/__pycache__/init_skill.cpython-314.pyc +0 -0
- package/assets/.agent/skills/skill-creator/scripts/__pycache__/package_skill.cpython-314.pyc +0 -0
- package/assets/.agent/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-314.pyc +0 -0
- package/assets/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
- package/assets/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
- package/assets/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/assets/.agent/skills/skill-developer/ADVANCED.md +197 -0
- package/assets/.agent/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/assets/.agent/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/assets/.agent/skills/skill-developer/SKILL.md +426 -0
- package/assets/.agent/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/assets/.agent/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/assets/.agent/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/assets/.agent/skills/slack-automation/SKILL.md +189 -0
- package/assets/.agent/skills/slo-implementation/SKILL.md +341 -0
- package/assets/.agent/skills/social-content/SKILL.md +807 -0
- package/assets/.agent/skills/spark-optimization/SKILL.md +427 -0
- package/assets/.agent/skills/sql-injection-testing/SKILL.md +448 -0
- package/assets/.agent/skills/sql-optimization-patterns/SKILL.md +35 -0
- package/assets/.agent/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
- package/assets/.agent/skills/sql-pro/SKILL.md +173 -0
- package/assets/.agent/skills/ssh-penetration-testing/SKILL.md +488 -0
- package/assets/.agent/skills/startup-analyst/SKILL.md +328 -0
- package/assets/.agent/skills/startup-business-analyst-business-case/SKILL.md +487 -0
- package/assets/.agent/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
- package/assets/.agent/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
- package/assets/.agent/skills/startup-financial-modeling/SKILL.md +467 -0
- package/assets/.agent/skills/startup-metrics-framework/SKILL.md +34 -0
- package/assets/.agent/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
- package/assets/.agent/skills/stride-analysis-patterns/SKILL.md +33 -0
- package/assets/.agent/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
- package/assets/.agent/skills/stripe-automation/SKILL.md +198 -0
- package/assets/.agent/skills/stripe-integration/SKILL.md +454 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/AGENTS.md +1490 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/README.md +119 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/SKILL.md +57 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/metadata.json +13 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/_contributing.md +171 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/_sections.md +39 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/_template.md +34 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
- package/assets/.agent/skills/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
- package/assets/.agent/skills/system-diagrammer/SKILL.md +25 -0
- package/assets/.agent/skills/system-diagrammer/data/diagram_templates.json +69 -0
- package/assets/.agent/skills/system-diagrammer/scripts/__pycache__/diagram.cpython-314.pyc +0 -0
- package/assets/.agent/skills/system-diagrammer/scripts/diagram.py +81 -0
- package/assets/.agent/skills/system-strategist/SKILL.md +35 -0
- package/assets/.agent/skills/system-strategist/data/strategy_patterns.json +170 -0
- package/assets/.agent/skills/system-strategist/scripts/__pycache__/strategist.cpython-314.pyc +0 -0
- package/assets/.agent/skills/system-strategist/scripts/strategist.py +136 -0
- package/assets/.agent/skills/tavily-web/SKILL.md +36 -0
- package/assets/.agent/skills/team-composition-analysis/SKILL.md +413 -0
- package/assets/.agent/skills/tech-stack-advisor/SKILL.md +59 -0
- package/assets/.agent/skills/tech-stack-advisor/data/stacks.json +727 -0
- package/assets/.agent/skills/tech-stack-advisor/data/tech_data.json +1297 -0
- package/assets/.agent/skills/tech-stack-advisor/scripts/__pycache__/advisor.cpython-314.pyc +0 -0
- package/assets/.agent/skills/tech-stack-advisor/scripts/__pycache__/scanner.cpython-314.pyc +0 -0
- package/assets/.agent/skills/tech-stack-advisor/scripts/advisor.py +211 -0
- package/assets/.agent/skills/tech-stack-advisor/scripts/scanner.py +102 -0
- package/assets/.agent/skills/terraform-module-library/SKILL.md +261 -0
- package/assets/.agent/skills/terraform-module-library/references/aws-modules.md +63 -0
- package/assets/.agent/skills/terraform-skill/SKILL.md +517 -0
- package/assets/.agent/skills/terraform-specialist/SKILL.md +166 -0
- package/assets/.agent/skills/test-generator/SKILL.md +14 -0
- package/assets/.agent/skills/test-generator/data/test_patterns.json +39 -0
- package/assets/.agent/skills/test-generator/scripts/__pycache__/gen_skeleton.cpython-314.pyc +0 -0
- package/assets/.agent/skills/test-generator/scripts/gen_skeleton.py +61 -0
- package/assets/.agent/skills/testing-patterns/SKILL.md +259 -0
- package/assets/.agent/skills/threat-mitigation-mapping/SKILL.md +33 -0
- package/assets/.agent/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
- package/assets/.agent/skills/threat-modeling-expert/SKILL.md +60 -0
- package/assets/.agent/skills/tool-design/SKILL.md +318 -0
- package/assets/.agent/skills/top-web-vulnerabilities/SKILL.md +543 -0
- package/assets/.agent/skills/trello-automation/SKILL.md +181 -0
- package/assets/.agent/skills/trigger-dev/SKILL.md +67 -0
- package/assets/.agent/skills/tutorial-engineer/SKILL.md +139 -0
- package/assets/.agent/skills/twitter-automation/SKILL.md +231 -0
- package/assets/.agent/skills/typescript-pro/SKILL.md +55 -0
- package/assets/.agent/skills/ui-ux-pro-max/SKILL.md +30 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/assets/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/assets/.agent/skills/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
- package/assets/.agent/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/assets/.agent/skills/ui-ux-pro-max/scripts/design_system.py +1110 -0
- package/assets/.agent/skills/ui-ux-pro-max/scripts/search.py +162 -0
- package/assets/.agent/skills/using-neon/SKILL.md +84 -0
- package/assets/.agent/skills/vector-database-engineer/SKILL.md +60 -0
- package/assets/.agent/skills/vector-index-tuning/SKILL.md +42 -0
- package/assets/.agent/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
- package/assets/.agent/skills/vercel-deployment/SKILL.md +79 -0
- package/assets/.agent/skills/voice-agents/SKILL.md +68 -0
- package/assets/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/assets/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/assets/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-314.pyc +0 -0
- package/assets/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/assets/.agent/skills/whatsapp-automation/SKILL.md +214 -0
- package/assets/.agent/skills/wiki-architect/SKILL.md +60 -0
- package/assets/.agent/skills/wiki-onboarding/SKILL.md +77 -0
- package/assets/.agent/skills/wiki-page-writer/SKILL.md +65 -0
- package/assets/.agent/skills/wiki-researcher/SKILL.md +65 -0
- package/assets/.agent/skills/windows-privilege-escalation/SKILL.md +496 -0
- package/assets/.agent/skills/wireshark-analysis/SKILL.md +497 -0
- package/assets/.agent/skills/wordpress-penetration-testing/SKILL.md +485 -0
- package/assets/.agent/skills/workflow-automation/SKILL.md +68 -0
- package/assets/.agent/skills/xss-html-injection/SKILL.md +499 -0
- package/assets/.agent/skills/zapier-make-patterns/SKILL.md +67 -0
- package/assets/.agent/skills/zendesk-automation/SKILL.md +215 -0
- package/assets/.agent/workflows/ai-agent-builder.md +93 -0
- package/assets/.agent/workflows/api-graphql-dev.md +45 -0
- package/assets/.agent/workflows/architect.md +43 -0
- package/assets/.agent/workflows/backend-dev.md +43 -0
- package/assets/.agent/workflows/claude-code-dev.md +51 -0
- package/assets/.agent/workflows/cloud-deployer.md +422 -0
- package/assets/.agent/workflows/code-reviewer.md +62 -0
- package/assets/.agent/workflows/context-data-eng.md +58 -0
- package/assets/.agent/workflows/database-eng.md +60 -0
- package/assets/.agent/workflows/deep-researcher.md +175 -0
- package/assets/.agent/workflows/designer.md +36 -0
- package/assets/.agent/workflows/devops.md +37 -0
- package/assets/.agent/workflows/doc-writer.md +211 -0
- package/assets/.agent/workflows/frontend-dev.md +63 -0
- package/assets/.agent/workflows/fullstack-coder.md +141 -0
- package/assets/.agent/workflows/image-creator.md +186 -0
- package/assets/.agent/workflows/knowledge-guide.md +48 -0
- package/assets/.agent/workflows/leader.md +238 -0
- package/assets/.agent/workflows/meta-thinker.md +204 -0
- package/assets/.agent/workflows/mobile-dev.md +26 -0
- package/assets/.agent/workflows/n8n-automator.md +114 -0
- package/assets/.agent/workflows/nocobase-plugin-build.md +291 -0
- package/assets/.agent/workflows/nocobase-plugin-expert.md +250 -0
- package/assets/.agent/workflows/observability-eng.md +54 -0
- package/assets/.agent/workflows/planner.md +48 -0
- package/assets/.agent/workflows/prompt-engineer.md +303 -0
- package/assets/.agent/workflows/qa-engineer.md +65 -0
- package/assets/.agent/workflows/quality-guardian.md +126 -0
- package/assets/.agent/workflows/quickstart.md +107 -0
- package/assets/.agent/workflows/release-manager.md +56 -0
- package/assets/.agent/workflows/research-analyst.md +483 -0
- package/assets/.agent/workflows/researcher.md +98 -0
- package/assets/.agent/workflows/saas-connector.md +86 -0
- package/assets/.agent/workflows/security-auditor.md +82 -0
- package/assets/.agent/workflows/security-engineer.md +48 -0
- package/assets/.agent/workflows/seo-marketer.md +91 -0
- package/assets/.agent/workflows/seo-specialist.md +27 -0
- package/assets/.agent/workflows/solution-architect.md +164 -0
- package/assets/.agent/workflows/startup-advisor.md +94 -0
- package/assets/.agent/workflows/tech-writer.md +43 -0
- package/assets/ide-adapters/cline/architect.md +43 -0
- package/assets/ide-adapters/cline/backend-dev.md +43 -0
- package/assets/ide-adapters/cline/designer.md +36 -0
- package/assets/ide-adapters/cline/devops.md +37 -0
- package/assets/ide-adapters/cline/frontend-dev.md +63 -0
- package/assets/ide-adapters/cline/knowledge-guide.md +48 -0
- package/assets/ide-adapters/cline/leader.md +88 -0
- package/assets/ide-adapters/cline/meta-thinker.md +87 -0
- package/assets/ide-adapters/cline/mobile-dev.md +26 -0
- package/assets/ide-adapters/cline/planner.md +48 -0
- package/assets/ide-adapters/cline/qa-engineer.md +65 -0
- package/assets/ide-adapters/cline/security-engineer.md +48 -0
- package/assets/ide-adapters/cline/seo-specialist.md +27 -0
- package/assets/ide-adapters/cline/tech-writer.md +43 -0
- package/assets/ide-adapters/copilot/architect.instructions.md +43 -0
- package/assets/ide-adapters/copilot/backend-dev.instructions.md +43 -0
- package/assets/ide-adapters/copilot/designer.instructions.md +36 -0
- package/assets/ide-adapters/copilot/devops.instructions.md +37 -0
- package/assets/ide-adapters/copilot/frontend-dev.instructions.md +63 -0
- package/assets/ide-adapters/copilot/knowledge-guide.instructions.md +48 -0
- package/assets/ide-adapters/copilot/leader.instructions.md +88 -0
- package/assets/ide-adapters/copilot/meta-thinker.instructions.md +87 -0
- package/assets/ide-adapters/copilot/mobile-dev.instructions.md +26 -0
- package/assets/ide-adapters/copilot/planner.instructions.md +48 -0
- package/assets/ide-adapters/copilot/qa-engineer.instructions.md +65 -0
- package/assets/ide-adapters/copilot/security-engineer.instructions.md +48 -0
- package/assets/ide-adapters/copilot/seo-specialist.instructions.md +27 -0
- package/assets/ide-adapters/copilot/tech-writer.instructions.md +43 -0
- package/assets/ide-adapters/cursor/architect.mdc +44 -0
- package/assets/ide-adapters/cursor/backend-dev.mdc +44 -0
- package/assets/ide-adapters/cursor/designer.mdc +37 -0
- package/assets/ide-adapters/cursor/devops.mdc +38 -0
- package/assets/ide-adapters/cursor/frontend-dev.mdc +64 -0
- package/assets/ide-adapters/cursor/knowledge-guide.mdc +49 -0
- package/assets/ide-adapters/cursor/leader.mdc +89 -0
- package/assets/ide-adapters/cursor/meta-thinker.mdc +88 -0
- package/assets/ide-adapters/cursor/mobile-dev.mdc +27 -0
- package/assets/ide-adapters/cursor/planner.mdc +49 -0
- package/assets/ide-adapters/cursor/qa-engineer.mdc +66 -0
- package/assets/ide-adapters/cursor/security-engineer.mdc +49 -0
- package/assets/ide-adapters/cursor/seo-specialist.mdc +28 -0
- package/assets/ide-adapters/cursor/tech-writer.mdc +44 -0
- package/assets/ide-adapters/kilocode/architect.md +43 -0
- package/assets/ide-adapters/kilocode/backend-dev.md +43 -0
- package/assets/ide-adapters/kilocode/designer.md +36 -0
- package/assets/ide-adapters/kilocode/devops.md +37 -0
- package/assets/ide-adapters/kilocode/frontend-dev.md +63 -0
- package/assets/ide-adapters/kilocode/knowledge-guide.md +48 -0
- package/assets/ide-adapters/kilocode/leader.md +88 -0
- package/assets/ide-adapters/kilocode/meta-thinker.md +87 -0
- package/assets/ide-adapters/kilocode/mobile-dev.md +26 -0
- package/assets/ide-adapters/kilocode/planner.md +48 -0
- package/assets/ide-adapters/kilocode/qa-engineer.md +65 -0
- package/assets/ide-adapters/kilocode/security-engineer.md +48 -0
- package/assets/ide-adapters/kilocode/seo-specialist.md +27 -0
- package/assets/ide-adapters/kilocode/tech-writer.md +43 -0
- package/assets/ide-adapters/kiro/hooks/auto-lint.json +8 -0
- package/assets/ide-adapters/kiro/hooks/auto-test.json +8 -0
- package/assets/ide-adapters/kiro/specs/.gitkeep +0 -0
- package/assets/ide-adapters/kiro/steering/product.md +23 -0
- package/assets/ide-adapters/kiro/steering/structure.md +23 -0
- package/assets/ide-adapters/kiro/steering/tech.md +27 -0
- package/assets/ide-adapters/windsurf/architect.md +41 -0
- package/assets/ide-adapters/windsurf/backend-dev.md +41 -0
- package/assets/ide-adapters/windsurf/designer.md +34 -0
- package/assets/ide-adapters/windsurf/devops.md +35 -0
- package/assets/ide-adapters/windsurf/frontend-dev.md +61 -0
- package/assets/ide-adapters/windsurf/knowledge-guide.md +46 -0
- package/assets/ide-adapters/windsurf/leader.md +86 -0
- package/assets/ide-adapters/windsurf/meta-thinker.md +85 -0
- package/assets/ide-adapters/windsurf/mobile-dev.md +24 -0
- package/assets/ide-adapters/windsurf/planner.md +46 -0
- package/assets/ide-adapters/windsurf/qa-engineer.md +63 -0
- package/assets/ide-adapters/windsurf/security-engineer.md +46 -0
- package/assets/ide-adapters/windsurf/seo-specialist.md +25 -0
- package/assets/ide-adapters/windsurf/tech-writer.md +41 -0
- package/assets/skill_groups.json +574 -0
- package/bin/cli.js +101 -0
- package/lib/commands.js +133 -0
- package/lib/constants.js +76 -0
- package/lib/download.js +165 -0
- package/lib/init.js +294 -0
- package/package.json +45 -0
- package/scripts/build-assets.js +177 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stripe-automation
|
|
3
|
+
description: "Automate Stripe tasks via Rube MCP (Composio): customers, charges, subscriptions, invoices, products, refunds. Always search tools first for current schemas."
|
|
4
|
+
requires:
|
|
5
|
+
mcp: [rube]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Stripe Automation via Rube MCP
|
|
9
|
+
|
|
10
|
+
Automate Stripe payment operations through Composio's Stripe toolkit via Rube MCP.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
|
|
15
|
+
- Active Stripe connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `stripe`
|
|
16
|
+
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
|
|
17
|
+
|
|
18
|
+
## Setup
|
|
19
|
+
|
|
20
|
+
**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
|
|
24
|
+
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `stripe`
|
|
25
|
+
3. If connection is not ACTIVE, follow the returned auth link to complete Stripe connection
|
|
26
|
+
4. Confirm connection status shows ACTIVE before running any workflows
|
|
27
|
+
|
|
28
|
+
## Core Workflows
|
|
29
|
+
|
|
30
|
+
### 1. Manage Customers
|
|
31
|
+
|
|
32
|
+
**When to use**: User wants to create, update, search, or list Stripe customers
|
|
33
|
+
|
|
34
|
+
**Tool sequence**:
|
|
35
|
+
1. `STRIPE_SEARCH_CUSTOMERS` - Search customers by email/name [Optional]
|
|
36
|
+
2. `STRIPE_LIST_CUSTOMERS` - List all customers [Optional]
|
|
37
|
+
3. `STRIPE_CREATE_CUSTOMER` - Create a new customer [Optional]
|
|
38
|
+
4. `STRIPE_POST_CUSTOMERS_CUSTOMER` - Update a customer [Optional]
|
|
39
|
+
|
|
40
|
+
**Key parameters**:
|
|
41
|
+
- `email`: Customer email
|
|
42
|
+
- `name`: Customer name
|
|
43
|
+
- `description`: Customer description
|
|
44
|
+
- `metadata`: Key-value metadata pairs
|
|
45
|
+
- `customer`: Customer ID for updates (e.g., 'cus_xxx')
|
|
46
|
+
|
|
47
|
+
**Pitfalls**:
|
|
48
|
+
- Stripe allows duplicate customers with the same email; search first to avoid duplicates
|
|
49
|
+
- Customer IDs start with 'cus_'
|
|
50
|
+
|
|
51
|
+
### 2. Manage Charges and Payments
|
|
52
|
+
|
|
53
|
+
**When to use**: User wants to create charges, payment intents, or view charge history
|
|
54
|
+
|
|
55
|
+
**Tool sequence**:
|
|
56
|
+
1. `STRIPE_LIST_CHARGES` - List charges with filters [Optional]
|
|
57
|
+
2. `STRIPE_CREATE_PAYMENT_INTENT` - Create a payment intent [Optional]
|
|
58
|
+
3. `STRIPE_CONFIRM_PAYMENT_INTENT` - Confirm a payment intent [Optional]
|
|
59
|
+
4. `STRIPE_POST_CHARGES` - Create a direct charge [Optional]
|
|
60
|
+
5. `STRIPE_CAPTURE_CHARGE` - Capture an authorized charge [Optional]
|
|
61
|
+
|
|
62
|
+
**Key parameters**:
|
|
63
|
+
- `amount`: Amount in smallest currency unit (e.g., cents for USD)
|
|
64
|
+
- `currency`: Three-letter ISO currency code (e.g., 'usd')
|
|
65
|
+
- `customer`: Customer ID
|
|
66
|
+
- `payment_method`: Payment method ID
|
|
67
|
+
- `description`: Charge description
|
|
68
|
+
|
|
69
|
+
**Pitfalls**:
|
|
70
|
+
- Amounts are in smallest currency unit (100 = $1.00 for USD)
|
|
71
|
+
- Currency codes must be lowercase (e.g., 'usd' not 'USD')
|
|
72
|
+
- Payment intents are the recommended flow over direct charges
|
|
73
|
+
|
|
74
|
+
### 3. Manage Subscriptions
|
|
75
|
+
|
|
76
|
+
**When to use**: User wants to create, list, update, or cancel subscriptions
|
|
77
|
+
|
|
78
|
+
**Tool sequence**:
|
|
79
|
+
1. `STRIPE_LIST_SUBSCRIPTIONS` - List subscriptions [Optional]
|
|
80
|
+
2. `STRIPE_POST_CUSTOMERS_CUSTOMER_SUBSCRIPTIONS` - Create subscription [Optional]
|
|
81
|
+
3. `STRIPE_RETRIEVE_SUBSCRIPTION` - Get subscription details [Optional]
|
|
82
|
+
4. `STRIPE_UPDATE_SUBSCRIPTION` - Modify subscription [Optional]
|
|
83
|
+
|
|
84
|
+
**Key parameters**:
|
|
85
|
+
- `customer`: Customer ID
|
|
86
|
+
- `items`: Array of price items (price_id and quantity)
|
|
87
|
+
- `subscription`: Subscription ID for retrieval/update (e.g., 'sub_xxx')
|
|
88
|
+
|
|
89
|
+
**Pitfalls**:
|
|
90
|
+
- Subscriptions require a valid customer with a payment method
|
|
91
|
+
- Price IDs (not product IDs) are used for subscription items
|
|
92
|
+
- Cancellation can be immediate or at period end
|
|
93
|
+
|
|
94
|
+
### 4. Manage Invoices
|
|
95
|
+
|
|
96
|
+
**When to use**: User wants to create, list, or search invoices
|
|
97
|
+
|
|
98
|
+
**Tool sequence**:
|
|
99
|
+
1. `STRIPE_LIST_INVOICES` - List invoices [Optional]
|
|
100
|
+
2. `STRIPE_SEARCH_INVOICES` - Search invoices [Optional]
|
|
101
|
+
3. `STRIPE_CREATE_INVOICE` - Create an invoice [Optional]
|
|
102
|
+
|
|
103
|
+
**Key parameters**:
|
|
104
|
+
- `customer`: Customer ID for invoice
|
|
105
|
+
- `collection_method`: 'charge_automatically' or 'send_invoice'
|
|
106
|
+
- `days_until_due`: Days until invoice is due
|
|
107
|
+
|
|
108
|
+
**Pitfalls**:
|
|
109
|
+
- Invoices auto-finalize by default; use `auto_advance: false` for draft invoices
|
|
110
|
+
|
|
111
|
+
### 5. Manage Products and Prices
|
|
112
|
+
|
|
113
|
+
**When to use**: User wants to list or search products and their pricing
|
|
114
|
+
|
|
115
|
+
**Tool sequence**:
|
|
116
|
+
1. `STRIPE_LIST_PRODUCTS` - List products [Optional]
|
|
117
|
+
2. `STRIPE_SEARCH_PRODUCTS` - Search products [Optional]
|
|
118
|
+
3. `STRIPE_LIST_PRICES` - List prices [Optional]
|
|
119
|
+
4. `STRIPE_GET_PRICES_SEARCH` - Search prices [Optional]
|
|
120
|
+
|
|
121
|
+
**Key parameters**:
|
|
122
|
+
- `active`: Filter by active/inactive status
|
|
123
|
+
- `query`: Search query for search endpoints
|
|
124
|
+
|
|
125
|
+
**Pitfalls**:
|
|
126
|
+
- Products and prices are separate objects; a product can have multiple prices
|
|
127
|
+
- Price IDs (e.g., 'price_xxx') are used for subscriptions and checkout
|
|
128
|
+
|
|
129
|
+
### 6. Handle Refunds
|
|
130
|
+
|
|
131
|
+
**When to use**: User wants to issue refunds on charges
|
|
132
|
+
|
|
133
|
+
**Tool sequence**:
|
|
134
|
+
1. `STRIPE_LIST_REFUNDS` - List refunds [Optional]
|
|
135
|
+
2. `STRIPE_POST_CHARGES_CHARGE_REFUNDS` - Create a refund [Optional]
|
|
136
|
+
3. `STRIPE_CREATE_REFUND` - Create refund via payment intent [Optional]
|
|
137
|
+
|
|
138
|
+
**Key parameters**:
|
|
139
|
+
- `charge`: Charge ID for refund
|
|
140
|
+
- `amount`: Partial refund amount (omit for full refund)
|
|
141
|
+
- `reason`: Refund reason ('duplicate', 'fraudulent', 'requested_by_customer')
|
|
142
|
+
|
|
143
|
+
**Pitfalls**:
|
|
144
|
+
- Refunds can take 5-10 business days to appear on customer statements
|
|
145
|
+
- Amount is in smallest currency unit
|
|
146
|
+
|
|
147
|
+
## Common Patterns
|
|
148
|
+
|
|
149
|
+
### Amount Formatting
|
|
150
|
+
|
|
151
|
+
Stripe uses smallest currency unit:
|
|
152
|
+
- USD: $10.50 = 1050 cents
|
|
153
|
+
- EUR: 10.50 = 1050 cents
|
|
154
|
+
- JPY: 1000 = 1000 (no decimals)
|
|
155
|
+
|
|
156
|
+
### Pagination
|
|
157
|
+
|
|
158
|
+
- Use `limit` parameter (max 100)
|
|
159
|
+
- Check `has_more` in response
|
|
160
|
+
- Pass `starting_after` with last object ID for next page
|
|
161
|
+
- Continue until `has_more` is false
|
|
162
|
+
|
|
163
|
+
## Known Pitfalls
|
|
164
|
+
|
|
165
|
+
**Amount Units**:
|
|
166
|
+
- Always use smallest currency unit (cents for USD/EUR)
|
|
167
|
+
- Zero-decimal currencies (JPY, KRW) use the amount directly
|
|
168
|
+
|
|
169
|
+
**ID Prefixes**:
|
|
170
|
+
- Customers: `cus_`, Charges: `ch_`, Subscriptions: `sub_`
|
|
171
|
+
- Invoices: `in_`, Products: `prod_`, Prices: `price_`
|
|
172
|
+
- Payment Intents: `pi_`, Refunds: `re_`
|
|
173
|
+
|
|
174
|
+
## Quick Reference
|
|
175
|
+
|
|
176
|
+
| Task | Tool Slug | Key Params |
|
|
177
|
+
|------|-----------|------------|
|
|
178
|
+
| Create customer | STRIPE_CREATE_CUSTOMER | email, name |
|
|
179
|
+
| Search customers | STRIPE_SEARCH_CUSTOMERS | query |
|
|
180
|
+
| Update customer | STRIPE_POST_CUSTOMERS_CUSTOMER | customer, fields |
|
|
181
|
+
| List charges | STRIPE_LIST_CHARGES | customer, limit |
|
|
182
|
+
| Create payment intent | STRIPE_CREATE_PAYMENT_INTENT | amount, currency |
|
|
183
|
+
| Confirm payment | STRIPE_CONFIRM_PAYMENT_INTENT | payment_intent |
|
|
184
|
+
| List subscriptions | STRIPE_LIST_SUBSCRIPTIONS | customer |
|
|
185
|
+
| Create subscription | STRIPE_POST_CUSTOMERS_CUSTOMER_SUBSCRIPTIONS | customer, items |
|
|
186
|
+
| Update subscription | STRIPE_UPDATE_SUBSCRIPTION | subscription, fields |
|
|
187
|
+
| List invoices | STRIPE_LIST_INVOICES | customer |
|
|
188
|
+
| Create invoice | STRIPE_CREATE_INVOICE | customer |
|
|
189
|
+
| Search invoices | STRIPE_SEARCH_INVOICES | query |
|
|
190
|
+
| List products | STRIPE_LIST_PRODUCTS | active |
|
|
191
|
+
| Search products | STRIPE_SEARCH_PRODUCTS | query |
|
|
192
|
+
| List prices | STRIPE_LIST_PRICES | product |
|
|
193
|
+
| Search prices | STRIPE_GET_PRICES_SEARCH | query |
|
|
194
|
+
| List refunds | STRIPE_LIST_REFUNDS | charge |
|
|
195
|
+
| Create refund | STRIPE_CREATE_REFUND | charge, amount |
|
|
196
|
+
| Payment methods | STRIPE_LIST_CUSTOMER_PAYMENT_METHODS | customer |
|
|
197
|
+
| Checkout session | STRIPE_CREATE_CHECKOUT_SESSION | line_items |
|
|
198
|
+
| List payment intents | STRIPE_LIST_PAYMENT_INTENTS | customer |
|
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stripe-integration
|
|
3
|
+
description: Implement Stripe payment processing for robust, PCI-compliant payment flows including checkout, subscriptions, and webhooks. Use when integrating Stripe payments, building subscription systems, or implementing secure checkout flows.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Stripe Integration
|
|
7
|
+
|
|
8
|
+
Master Stripe payment processing integration for robust, PCI-compliant payment flows including checkout, subscriptions, webhooks, and refunds.
|
|
9
|
+
|
|
10
|
+
## Do not use this skill when
|
|
11
|
+
|
|
12
|
+
- The task is unrelated to stripe 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
|
+
- Implementing payment processing in web/mobile applications
|
|
25
|
+
- Setting up subscription billing systems
|
|
26
|
+
- Handling one-time payments and recurring charges
|
|
27
|
+
- Processing refunds and disputes
|
|
28
|
+
- Managing customer payment methods
|
|
29
|
+
- Implementing SCA (Strong Customer Authentication) for European payments
|
|
30
|
+
- Building marketplace payment flows with Stripe Connect
|
|
31
|
+
|
|
32
|
+
## Core Concepts
|
|
33
|
+
|
|
34
|
+
### 1. Payment Flows
|
|
35
|
+
**Checkout Session (Hosted)**
|
|
36
|
+
- Stripe-hosted payment page
|
|
37
|
+
- Minimal PCI compliance burden
|
|
38
|
+
- Fastest implementation
|
|
39
|
+
- Supports one-time and recurring payments
|
|
40
|
+
|
|
41
|
+
**Payment Intents (Custom UI)**
|
|
42
|
+
- Full control over payment UI
|
|
43
|
+
- Requires Stripe.js for PCI compliance
|
|
44
|
+
- More complex implementation
|
|
45
|
+
- Better customization options
|
|
46
|
+
|
|
47
|
+
**Setup Intents (Save Payment Methods)**
|
|
48
|
+
- Collect payment method without charging
|
|
49
|
+
- Used for subscriptions and future payments
|
|
50
|
+
- Requires customer confirmation
|
|
51
|
+
|
|
52
|
+
### 2. Webhooks
|
|
53
|
+
**Critical Events:**
|
|
54
|
+
- `payment_intent.succeeded`: Payment completed
|
|
55
|
+
- `payment_intent.payment_failed`: Payment failed
|
|
56
|
+
- `customer.subscription.updated`: Subscription changed
|
|
57
|
+
- `customer.subscription.deleted`: Subscription canceled
|
|
58
|
+
- `charge.refunded`: Refund processed
|
|
59
|
+
- `invoice.payment_succeeded`: Subscription payment successful
|
|
60
|
+
|
|
61
|
+
### 3. Subscriptions
|
|
62
|
+
**Components:**
|
|
63
|
+
- **Product**: What you're selling
|
|
64
|
+
- **Price**: How much and how often
|
|
65
|
+
- **Subscription**: Customer's recurring payment
|
|
66
|
+
- **Invoice**: Generated for each billing cycle
|
|
67
|
+
|
|
68
|
+
### 4. Customer Management
|
|
69
|
+
- Create and manage customer records
|
|
70
|
+
- Store multiple payment methods
|
|
71
|
+
- Track customer metadata
|
|
72
|
+
- Manage billing details
|
|
73
|
+
|
|
74
|
+
## Quick Start
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
import stripe
|
|
78
|
+
|
|
79
|
+
stripe.api_key = "sk_test_..."
|
|
80
|
+
|
|
81
|
+
# Create a checkout session
|
|
82
|
+
session = stripe.checkout.Session.create(
|
|
83
|
+
payment_method_types=['card'],
|
|
84
|
+
line_items=[{
|
|
85
|
+
'price_data': {
|
|
86
|
+
'currency': 'usd',
|
|
87
|
+
'product_data': {
|
|
88
|
+
'name': 'Premium Subscription',
|
|
89
|
+
},
|
|
90
|
+
'unit_amount': 2000, # $20.00
|
|
91
|
+
'recurring': {
|
|
92
|
+
'interval': 'month',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
'quantity': 1,
|
|
96
|
+
}],
|
|
97
|
+
mode='subscription',
|
|
98
|
+
success_url='https://yourdomain.com/success?session_id={CHECKOUT_SESSION_ID}',
|
|
99
|
+
cancel_url='https://yourdomain.com/cancel',
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
# Redirect user to session.url
|
|
103
|
+
print(session.url)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Payment Implementation Patterns
|
|
107
|
+
|
|
108
|
+
### Pattern 1: One-Time Payment (Hosted Checkout)
|
|
109
|
+
```python
|
|
110
|
+
def create_checkout_session(amount, currency='usd'):
|
|
111
|
+
"""Create a one-time payment checkout session."""
|
|
112
|
+
try:
|
|
113
|
+
session = stripe.checkout.Session.create(
|
|
114
|
+
payment_method_types=['card'],
|
|
115
|
+
line_items=[{
|
|
116
|
+
'price_data': {
|
|
117
|
+
'currency': currency,
|
|
118
|
+
'product_data': {
|
|
119
|
+
'name': 'Purchase',
|
|
120
|
+
'images': ['https://example.com/product.jpg'],
|
|
121
|
+
},
|
|
122
|
+
'unit_amount': amount, # Amount in cents
|
|
123
|
+
},
|
|
124
|
+
'quantity': 1,
|
|
125
|
+
}],
|
|
126
|
+
mode='payment',
|
|
127
|
+
success_url='https://yourdomain.com/success?session_id={CHECKOUT_SESSION_ID}',
|
|
128
|
+
cancel_url='https://yourdomain.com/cancel',
|
|
129
|
+
metadata={
|
|
130
|
+
'order_id': 'order_123',
|
|
131
|
+
'user_id': 'user_456'
|
|
132
|
+
}
|
|
133
|
+
)
|
|
134
|
+
return session
|
|
135
|
+
except stripe.error.StripeError as e:
|
|
136
|
+
# Handle error
|
|
137
|
+
print(f"Stripe error: {e.user_message}")
|
|
138
|
+
raise
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Pattern 2: Custom Payment Intent Flow
|
|
142
|
+
```python
|
|
143
|
+
def create_payment_intent(amount, currency='usd', customer_id=None):
|
|
144
|
+
"""Create a payment intent for custom checkout UI."""
|
|
145
|
+
intent = stripe.PaymentIntent.create(
|
|
146
|
+
amount=amount,
|
|
147
|
+
currency=currency,
|
|
148
|
+
customer=customer_id,
|
|
149
|
+
automatic_payment_methods={
|
|
150
|
+
'enabled': True,
|
|
151
|
+
},
|
|
152
|
+
metadata={
|
|
153
|
+
'integration_check': 'accept_a_payment'
|
|
154
|
+
}
|
|
155
|
+
)
|
|
156
|
+
return intent.client_secret # Send to frontend
|
|
157
|
+
|
|
158
|
+
# Frontend (JavaScript)
|
|
159
|
+
"""
|
|
160
|
+
const stripe = Stripe('pk_test_...');
|
|
161
|
+
const elements = stripe.elements();
|
|
162
|
+
const cardElement = elements.create('card');
|
|
163
|
+
cardElement.mount('#card-element');
|
|
164
|
+
|
|
165
|
+
const {error, paymentIntent} = await stripe.confirmCardPayment(
|
|
166
|
+
clientSecret,
|
|
167
|
+
{
|
|
168
|
+
payment_method: {
|
|
169
|
+
card: cardElement,
|
|
170
|
+
billing_details: {
|
|
171
|
+
name: 'Customer Name'
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
if (error) {
|
|
178
|
+
// Handle error
|
|
179
|
+
} else if (paymentIntent.status === 'succeeded') {
|
|
180
|
+
// Payment successful
|
|
181
|
+
}
|
|
182
|
+
"""
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Pattern 3: Subscription Creation
|
|
186
|
+
```python
|
|
187
|
+
def create_subscription(customer_id, price_id):
|
|
188
|
+
"""Create a subscription for a customer."""
|
|
189
|
+
try:
|
|
190
|
+
subscription = stripe.Subscription.create(
|
|
191
|
+
customer=customer_id,
|
|
192
|
+
items=[{'price': price_id}],
|
|
193
|
+
payment_behavior='default_incomplete',
|
|
194
|
+
payment_settings={'save_default_payment_method': 'on_subscription'},
|
|
195
|
+
expand=['latest_invoice.payment_intent'],
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
'subscription_id': subscription.id,
|
|
200
|
+
'client_secret': subscription.latest_invoice.payment_intent.client_secret
|
|
201
|
+
}
|
|
202
|
+
except stripe.error.StripeError as e:
|
|
203
|
+
print(f"Subscription creation failed: {e}")
|
|
204
|
+
raise
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Pattern 4: Customer Portal
|
|
208
|
+
```python
|
|
209
|
+
def create_customer_portal_session(customer_id):
|
|
210
|
+
"""Create a portal session for customers to manage subscriptions."""
|
|
211
|
+
session = stripe.billing_portal.Session.create(
|
|
212
|
+
customer=customer_id,
|
|
213
|
+
return_url='https://yourdomain.com/account',
|
|
214
|
+
)
|
|
215
|
+
return session.url # Redirect customer here
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Webhook Handling
|
|
219
|
+
|
|
220
|
+
### Secure Webhook Endpoint
|
|
221
|
+
```python
|
|
222
|
+
from flask import Flask, request
|
|
223
|
+
import stripe
|
|
224
|
+
|
|
225
|
+
app = Flask(__name__)
|
|
226
|
+
|
|
227
|
+
endpoint_secret = 'whsec_...'
|
|
228
|
+
|
|
229
|
+
@app.route('/webhook', methods=['POST'])
|
|
230
|
+
def webhook():
|
|
231
|
+
payload = request.data
|
|
232
|
+
sig_header = request.headers.get('Stripe-Signature')
|
|
233
|
+
|
|
234
|
+
try:
|
|
235
|
+
event = stripe.Webhook.construct_event(
|
|
236
|
+
payload, sig_header, endpoint_secret
|
|
237
|
+
)
|
|
238
|
+
except ValueError:
|
|
239
|
+
# Invalid payload
|
|
240
|
+
return 'Invalid payload', 400
|
|
241
|
+
except stripe.error.SignatureVerificationError:
|
|
242
|
+
# Invalid signature
|
|
243
|
+
return 'Invalid signature', 400
|
|
244
|
+
|
|
245
|
+
# Handle the event
|
|
246
|
+
if event['type'] == 'payment_intent.succeeded':
|
|
247
|
+
payment_intent = event['data']['object']
|
|
248
|
+
handle_successful_payment(payment_intent)
|
|
249
|
+
elif event['type'] == 'payment_intent.payment_failed':
|
|
250
|
+
payment_intent = event['data']['object']
|
|
251
|
+
handle_failed_payment(payment_intent)
|
|
252
|
+
elif event['type'] == 'customer.subscription.deleted':
|
|
253
|
+
subscription = event['data']['object']
|
|
254
|
+
handle_subscription_canceled(subscription)
|
|
255
|
+
|
|
256
|
+
return 'Success', 200
|
|
257
|
+
|
|
258
|
+
def handle_successful_payment(payment_intent):
|
|
259
|
+
"""Process successful payment."""
|
|
260
|
+
customer_id = payment_intent.get('customer')
|
|
261
|
+
amount = payment_intent['amount']
|
|
262
|
+
metadata = payment_intent.get('metadata', {})
|
|
263
|
+
|
|
264
|
+
# Update your database
|
|
265
|
+
# Send confirmation email
|
|
266
|
+
# Fulfill order
|
|
267
|
+
print(f"Payment succeeded: {payment_intent['id']}")
|
|
268
|
+
|
|
269
|
+
def handle_failed_payment(payment_intent):
|
|
270
|
+
"""Handle failed payment."""
|
|
271
|
+
error = payment_intent.get('last_payment_error', {})
|
|
272
|
+
print(f"Payment failed: {error.get('message')}")
|
|
273
|
+
# Notify customer
|
|
274
|
+
# Update order status
|
|
275
|
+
|
|
276
|
+
def handle_subscription_canceled(subscription):
|
|
277
|
+
"""Handle subscription cancellation."""
|
|
278
|
+
customer_id = subscription['customer']
|
|
279
|
+
# Update user access
|
|
280
|
+
# Send cancellation email
|
|
281
|
+
print(f"Subscription canceled: {subscription['id']}")
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Webhook Best Practices
|
|
285
|
+
```python
|
|
286
|
+
import hashlib
|
|
287
|
+
import hmac
|
|
288
|
+
|
|
289
|
+
def verify_webhook_signature(payload, signature, secret):
|
|
290
|
+
"""Manually verify webhook signature."""
|
|
291
|
+
expected_sig = hmac.new(
|
|
292
|
+
secret.encode('utf-8'),
|
|
293
|
+
payload,
|
|
294
|
+
hashlib.sha256
|
|
295
|
+
).hexdigest()
|
|
296
|
+
|
|
297
|
+
return hmac.compare_digest(signature, expected_sig)
|
|
298
|
+
|
|
299
|
+
def handle_webhook_idempotently(event_id, handler):
|
|
300
|
+
"""Ensure webhook is processed exactly once."""
|
|
301
|
+
# Check if event already processed
|
|
302
|
+
if is_event_processed(event_id):
|
|
303
|
+
return
|
|
304
|
+
|
|
305
|
+
# Process event
|
|
306
|
+
try:
|
|
307
|
+
handler()
|
|
308
|
+
mark_event_processed(event_id)
|
|
309
|
+
except Exception as e:
|
|
310
|
+
log_error(e)
|
|
311
|
+
# Stripe will retry failed webhooks
|
|
312
|
+
raise
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Customer Management
|
|
316
|
+
|
|
317
|
+
```python
|
|
318
|
+
def create_customer(email, name, payment_method_id=None):
|
|
319
|
+
"""Create a Stripe customer."""
|
|
320
|
+
customer = stripe.Customer.create(
|
|
321
|
+
email=email,
|
|
322
|
+
name=name,
|
|
323
|
+
payment_method=payment_method_id,
|
|
324
|
+
invoice_settings={
|
|
325
|
+
'default_payment_method': payment_method_id
|
|
326
|
+
} if payment_method_id else None,
|
|
327
|
+
metadata={
|
|
328
|
+
'user_id': '12345'
|
|
329
|
+
}
|
|
330
|
+
)
|
|
331
|
+
return customer
|
|
332
|
+
|
|
333
|
+
def attach_payment_method(customer_id, payment_method_id):
|
|
334
|
+
"""Attach a payment method to a customer."""
|
|
335
|
+
stripe.PaymentMethod.attach(
|
|
336
|
+
payment_method_id,
|
|
337
|
+
customer=customer_id
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
# Set as default
|
|
341
|
+
stripe.Customer.modify(
|
|
342
|
+
customer_id,
|
|
343
|
+
invoice_settings={
|
|
344
|
+
'default_payment_method': payment_method_id
|
|
345
|
+
}
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
def list_customer_payment_methods(customer_id):
|
|
349
|
+
"""List all payment methods for a customer."""
|
|
350
|
+
payment_methods = stripe.PaymentMethod.list(
|
|
351
|
+
customer=customer_id,
|
|
352
|
+
type='card'
|
|
353
|
+
)
|
|
354
|
+
return payment_methods.data
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Refund Handling
|
|
358
|
+
|
|
359
|
+
```python
|
|
360
|
+
def create_refund(payment_intent_id, amount=None, reason=None):
|
|
361
|
+
"""Create a refund."""
|
|
362
|
+
refund_params = {
|
|
363
|
+
'payment_intent': payment_intent_id
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
if amount:
|
|
367
|
+
refund_params['amount'] = amount # Partial refund
|
|
368
|
+
|
|
369
|
+
if reason:
|
|
370
|
+
refund_params['reason'] = reason # 'duplicate', 'fraudulent', 'requested_by_customer'
|
|
371
|
+
|
|
372
|
+
refund = stripe.Refund.create(**refund_params)
|
|
373
|
+
return refund
|
|
374
|
+
|
|
375
|
+
def handle_dispute(charge_id, evidence):
|
|
376
|
+
"""Update dispute with evidence."""
|
|
377
|
+
stripe.Dispute.modify(
|
|
378
|
+
charge_id,
|
|
379
|
+
evidence={
|
|
380
|
+
'customer_name': evidence.get('customer_name'),
|
|
381
|
+
'customer_email_address': evidence.get('customer_email'),
|
|
382
|
+
'shipping_documentation': evidence.get('shipping_proof'),
|
|
383
|
+
'customer_communication': evidence.get('communication'),
|
|
384
|
+
}
|
|
385
|
+
)
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Testing
|
|
389
|
+
|
|
390
|
+
```python
|
|
391
|
+
# Use test mode keys
|
|
392
|
+
stripe.api_key = "sk_test_..."
|
|
393
|
+
|
|
394
|
+
# Test card numbers
|
|
395
|
+
TEST_CARDS = {
|
|
396
|
+
'success': '4242424242424242',
|
|
397
|
+
'declined': '4000000000000002',
|
|
398
|
+
'3d_secure': '4000002500003155',
|
|
399
|
+
'insufficient_funds': '4000000000009995'
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
def test_payment_flow():
|
|
403
|
+
"""Test complete payment flow."""
|
|
404
|
+
# Create test customer
|
|
405
|
+
customer = stripe.Customer.create(
|
|
406
|
+
email="test@example.com"
|
|
407
|
+
)
|
|
408
|
+
|
|
409
|
+
# Create payment intent
|
|
410
|
+
intent = stripe.PaymentIntent.create(
|
|
411
|
+
amount=1000,
|
|
412
|
+
currency='usd',
|
|
413
|
+
customer=customer.id,
|
|
414
|
+
payment_method_types=['card']
|
|
415
|
+
)
|
|
416
|
+
|
|
417
|
+
# Confirm with test card
|
|
418
|
+
confirmed = stripe.PaymentIntent.confirm(
|
|
419
|
+
intent.id,
|
|
420
|
+
payment_method='pm_card_visa' # Test payment method
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
assert confirmed.status == 'succeeded'
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
## Resources
|
|
427
|
+
|
|
428
|
+
- **references/checkout-flows.md**: Detailed checkout implementation
|
|
429
|
+
- **references/webhook-handling.md**: Webhook security and processing
|
|
430
|
+
- **references/subscription-management.md**: Subscription lifecycle
|
|
431
|
+
- **references/customer-management.md**: Customer and payment method handling
|
|
432
|
+
- **references/invoice-generation.md**: Invoicing and billing
|
|
433
|
+
- **assets/stripe-client.py**: Production-ready Stripe client wrapper
|
|
434
|
+
- **assets/webhook-handler.py**: Complete webhook processor
|
|
435
|
+
- **assets/checkout-config.json**: Checkout configuration templates
|
|
436
|
+
|
|
437
|
+
## Best Practices
|
|
438
|
+
|
|
439
|
+
1. **Always Use Webhooks**: Don't rely solely on client-side confirmation
|
|
440
|
+
2. **Idempotency**: Handle webhook events idempotently
|
|
441
|
+
3. **Error Handling**: Gracefully handle all Stripe errors
|
|
442
|
+
4. **Test Mode**: Thoroughly test with test keys before production
|
|
443
|
+
5. **Metadata**: Use metadata to link Stripe objects to your database
|
|
444
|
+
6. **Monitoring**: Track payment success rates and errors
|
|
445
|
+
7. **PCI Compliance**: Never handle raw card data on your server
|
|
446
|
+
8. **SCA Ready**: Implement 3D Secure for European payments
|
|
447
|
+
|
|
448
|
+
## Common Pitfalls
|
|
449
|
+
|
|
450
|
+
- **Not Verifying Webhooks**: Always verify webhook signatures
|
|
451
|
+
- **Missing Webhook Events**: Handle all relevant webhook events
|
|
452
|
+
- **Hardcoded Amounts**: Use cents/smallest currency unit
|
|
453
|
+
- **No Retry Logic**: Implement retries for API calls
|
|
454
|
+
- **Ignoring Test Mode**: Test all edge cases with test cards
|