@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.
- package/CATALOG.md +317 -0
- package/README.md +121 -0
- package/aliases.json +65 -0
- package/bin/vibe.js +2 -0
- package/bundles.json +265 -0
- package/catalog.json +1560 -0
- package/dist/antigravity-skills/bin/cli.js +438 -0
- package/dist/antigravity-skills/lib/skill-utils.js +158 -0
- package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
- package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
- package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
- package/dist/bin/vibe.js +2 -0
- package/dist/dist/src/cli/index.js +26 -0
- package/dist/lib/skill-utils.js +158 -0
- package/dist/scripts/build-catalog.js +50 -0
- package/dist/scripts/normalize-frontmatter.js +144 -0
- package/dist/scripts/validate-skills.js +56 -0
- package/dist/src/cli/index.js +146 -0
- package/dist/src/types/index.js +13 -0
- package/dist/src/utils/fs.js +1 -0
- package/package.json +43 -0
- package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
- package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
- package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
- package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
- package/skills/agent-orchestrator/SKILL.md +24 -0
- package/skills/ai-engineer/SKILL.md +171 -0
- package/skills/airflow-dag-patterns/SKILL.md +41 -0
- package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
- package/skills/angular-migration/SKILL.md +428 -0
- package/skills/anti-reversing-techniques/SKILL.md +42 -0
- package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
- package/skills/api-design-principles/SKILL.md +37 -0
- package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/skills/api-documenter/SKILL.md +184 -0
- package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
- package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
- package/skills/application-performance-performance-optimization/SKILL.md +154 -0
- package/skills/architect-review/SKILL.md +174 -0
- package/skills/architecture-decision-records/SKILL.md +441 -0
- package/skills/architecture-patterns/SKILL.md +37 -0
- package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
- package/skills/arm-cortex-expert/SKILL.md +306 -0
- package/skills/async-python-patterns/SKILL.md +39 -0
- package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
- package/skills/attack-tree-construction/SKILL.md +38 -0
- package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
- package/skills/auth-implementation-patterns/SKILL.md +39 -0
- package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
- package/skills/backend-architect/SKILL.md +333 -0
- package/skills/backend-development-feature-development/SKILL.md +180 -0
- package/skills/backend-security-coder/SKILL.md +156 -0
- package/skills/backtesting-frameworks/SKILL.md +39 -0
- package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
- package/skills/bash-defensive-patterns/SKILL.md +43 -0
- package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
- package/skills/bash-pro/SKILL.md +310 -0
- package/skills/bats-testing-patterns/SKILL.md +34 -0
- package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
- package/skills/bazel-build-optimization/SKILL.md +397 -0
- package/skills/billing-automation/SKILL.md +42 -0
- package/skills/billing-automation/resources/implementation-playbook.md +544 -0
- package/skills/binary-analysis-patterns/SKILL.md +450 -0
- package/skills/blockchain-developer/SKILL.md +208 -0
- package/skills/business-analyst/SKILL.md +182 -0
- package/skills/c-pro/SKILL.md +56 -0
- package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
- package/skills/c4-code/SKILL.md +244 -0
- package/skills/c4-component/SKILL.md +153 -0
- package/skills/c4-container/SKILL.md +171 -0
- package/skills/c4-context/SKILL.md +150 -0
- package/skills/changelog-automation/SKILL.md +38 -0
- package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
- package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
- package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
- package/skills/clean-markdown/SKILL.md +23 -0
- package/skills/cloud-architect/SKILL.md +135 -0
- package/skills/code-documentation-code-explain/SKILL.md +46 -0
- package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
- package/skills/code-documentation-doc-generate/SKILL.md +48 -0
- package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/code-refactoring-context-restore/SKILL.md +179 -0
- package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
- package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
- package/skills/code-review-ai-ai-review/SKILL.md +450 -0
- package/skills/code-review-excellence/SKILL.md +40 -0
- package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
- package/skills/code-reviewer/SKILL.md +178 -0
- package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
- package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
- package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
- package/skills/competitive-landscape/SKILL.md +34 -0
- package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
- package/skills/comprehensive-review-full-review/SKILL.md +146 -0
- package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
- package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
- package/skills/conductor-implement/SKILL.md +388 -0
- package/skills/conductor-manage/SKILL.md +39 -0
- package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
- package/skills/conductor-new-track/SKILL.md +433 -0
- package/skills/conductor-revert/SKILL.md +372 -0
- package/skills/conductor-setup/SKILL.md +426 -0
- package/skills/conductor-status/SKILL.md +338 -0
- package/skills/conductor-validator/SKILL.md +62 -0
- package/skills/content-marketer/SKILL.md +170 -0
- package/skills/context-driven-development/SKILL.md +400 -0
- package/skills/context-management-context-restore/SKILL.md +179 -0
- package/skills/context-management-context-save/SKILL.md +177 -0
- package/skills/context-manager/SKILL.md +185 -0
- package/skills/cost-optimization/SKILL.md +286 -0
- package/skills/cpp-pro/SKILL.md +59 -0
- package/skills/cqrs-implementation/SKILL.md +35 -0
- package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
- package/skills/csharp-pro/SKILL.md +59 -0
- package/skills/customer-support/SKILL.md +170 -0
- package/skills/data-engineer/SKILL.md +224 -0
- package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
- package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
- package/skills/data-quality-frameworks/SKILL.md +40 -0
- package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
- package/skills/data-scientist/SKILL.md +199 -0
- package/skills/data-storytelling/SKILL.md +465 -0
- package/skills/database-admin/SKILL.md +165 -0
- package/skills/database-architect/SKILL.md +268 -0
- package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
- package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
- package/skills/database-migration/SKILL.md +436 -0
- package/skills/database-migrations-migration-observability/SKILL.md +420 -0
- package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
- package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
- package/skills/database-optimizer/SKILL.md +167 -0
- package/skills/dbt-transformation-patterns/SKILL.md +34 -0
- package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
- package/skills/debugger/SKILL.md +49 -0
- package/skills/debugging-strategies/SKILL.md +34 -0
- package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
- package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
- package/skills/defi-protocol-templates/SKILL.md +466 -0
- package/skills/dependency-management-deps-audit/SKILL.md +44 -0
- package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/dependency-upgrade/SKILL.md +421 -0
- package/skills/deployment-engineer/SKILL.md +170 -0
- package/skills/deployment-pipeline-design/SKILL.md +371 -0
- package/skills/deployment-validation-config-validate/SKILL.md +496 -0
- package/skills/devops-troubleshooter/SKILL.md +161 -0
- package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
- package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
- package/skills/distributed-tracing/SKILL.md +450 -0
- package/skills/django-pro/SKILL.md +180 -0
- package/skills/docs-architect/SKILL.md +98 -0
- package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
- package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/dotnet-architect/SKILL.md +197 -0
- package/skills/dotnet-backend-patterns/SKILL.md +37 -0
- package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
- package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
- package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
- package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
- package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
- package/skills/dummy-skill/SKILL.md +5 -0
- package/skills/dx-optimizer/SKILL.md +83 -0
- package/skills/e2e-testing-patterns/SKILL.md +41 -0
- package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
- package/skills/elixir-pro/SKILL.md +59 -0
- package/skills/embedding-strategies/SKILL.md +491 -0
- package/skills/employment-contract-templates/SKILL.md +39 -0
- package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
- package/skills/error-debugging-error-analysis/SKILL.md +47 -0
- package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-debugging-error-trace/SKILL.md +43 -0
- package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
- package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
- package/skills/error-detective/SKILL.md +53 -0
- package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
- package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
- package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
- package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
- package/skills/error-handling-patterns/SKILL.md +35 -0
- package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
- package/skills/event-sourcing-architect/SKILL.md +58 -0
- package/skills/event-store-design/SKILL.md +449 -0
- package/skills/fastapi-pro/SKILL.md +192 -0
- package/skills/fastapi-templates/SKILL.md +32 -0
- package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
- package/skills/final-test/SKILL.md +5 -0
- package/skills/firmware-analyst/SKILL.md +320 -0
- package/skills/flutter-expert/SKILL.md +200 -0
- package/skills/framework-migration-code-migrate/SKILL.md +48 -0
- package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
- package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
- package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
- package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
- package/skills/frontend-developer/SKILL.md +171 -0
- package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
- package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
- package/skills/frontend-security-coder/SKILL.md +170 -0
- package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
- package/skills/gdpr-data-handling/SKILL.md +33 -0
- package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
- package/skills/git-advanced-workflows/SKILL.md +412 -0
- package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
- package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
- package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
- package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
- package/skills/github-actions-templates/SKILL.md +345 -0
- package/skills/gitlab-ci-patterns/SKILL.md +283 -0
- package/skills/gitops-workflow/SKILL.md +303 -0
- package/skills/gitops-workflow/references/argocd-setup.md +134 -0
- package/skills/gitops-workflow/references/sync-policies.md +131 -0
- package/skills/go-concurrency-patterns/SKILL.md +33 -0
- package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
- package/skills/godot-gdscript-patterns/SKILL.md +33 -0
- package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
- package/skills/golang-pro/SKILL.md +179 -0
- package/skills/grafana-dashboards/SKILL.md +381 -0
- package/skills/graphql-architect/SKILL.md +182 -0
- package/skills/haskell-pro/SKILL.md +56 -0
- package/skills/helm-chart-scaffolding/SKILL.md +34 -0
- package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
- package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
- package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
- package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
- package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/skills/hr-pro/SKILL.md +126 -0
- package/skills/hybrid-cloud-architect/SKILL.md +168 -0
- package/skills/hybrid-cloud-networking/SKILL.md +238 -0
- package/skills/hybrid-search-implementation/SKILL.md +32 -0
- package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
- package/skills/incident-responder/SKILL.md +213 -0
- package/skills/incident-response-incident-response/SKILL.md +168 -0
- package/skills/incident-response-smart-fix/SKILL.md +29 -0
- package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
- package/skills/incident-runbook-templates/SKILL.md +395 -0
- package/skills/ios-developer/SKILL.md +219 -0
- package/skills/istio-traffic-management/SKILL.md +337 -0
- package/skills/java-pro/SKILL.md +177 -0
- package/skills/javascript-pro/SKILL.md +57 -0
- package/skills/javascript-testing-patterns/SKILL.md +35 -0
- package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
- package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
- package/skills/julia-pro/SKILL.md +209 -0
- package/skills/k8s-manifest-generator/SKILL.md +35 -0
- package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
- package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
- package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
- package/skills/k8s-security-policies/SKILL.md +346 -0
- package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
- package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
- package/skills/kpi-dashboard-design/SKILL.md +440 -0
- package/skills/kubernetes-architect/SKILL.md +170 -0
- package/skills/langchain-architecture/SKILL.md +350 -0
- package/skills/legacy-modernizer/SKILL.md +53 -0
- package/skills/legal-advisor/SKILL.md +70 -0
- package/skills/linkerd-patterns/SKILL.md +321 -0
- package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
- package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
- package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
- package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
- package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
- package/skills/llm-evaluation/SKILL.md +483 -0
- package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
- package/skills/malware-analyst/SKILL.md +247 -0
- package/skills/market-sizing-analysis/SKILL.md +425 -0
- package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
- package/skills/market-sizing-analysis/references/data-sources.md +360 -0
- package/skills/memory-forensics/SKILL.md +491 -0
- package/skills/memory-safety-patterns/SKILL.md +33 -0
- package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
- package/skills/mermaid-expert/SKILL.md +59 -0
- package/skills/microservices-patterns/SKILL.md +35 -0
- package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
- package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
- package/skills/ml-engineer/SKILL.md +168 -0
- package/skills/ml-pipeline-workflow/SKILL.md +257 -0
- package/skills/mlops-engineer/SKILL.md +219 -0
- package/skills/mobile-developer/SKILL.md +205 -0
- package/skills/mobile-security-coder/SKILL.md +184 -0
- package/skills/modern-javascript-patterns/SKILL.md +35 -0
- package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
- package/skills/monorepo-architect/SKILL.md +61 -0
- package/skills/monorepo-management/SKILL.md +35 -0
- package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
- package/skills/mtls-configuration/SKILL.md +359 -0
- package/skills/multi-cloud-architecture/SKILL.md +189 -0
- package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
- package/skills/network-engineer/SKILL.md +169 -0
- package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
- package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
- package/skills/nft-standards/SKILL.md +395 -0
- package/skills/node-expert/SKILL.md +23 -0
- package/skills/nodejs-backend-patterns/SKILL.md +35 -0
- package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
- package/skills/nx-workspace-patterns/SKILL.md +464 -0
- package/skills/observability-engineer/SKILL.md +237 -0
- package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
- package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
- package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
- package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
- package/skills/on-call-handoff-patterns/SKILL.md +453 -0
- package/skills/openapi-spec-generation/SKILL.md +33 -0
- package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
- package/skills/payment-integration/SKILL.md +77 -0
- package/skills/paypal-integration/SKILL.md +479 -0
- package/skills/pci-compliance/SKILL.md +478 -0
- package/skills/performance-engineer/SKILL.md +180 -0
- package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
- package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
- package/skills/php-pro/SKILL.md +63 -0
- package/skills/posix-shell-pro/SKILL.md +304 -0
- package/skills/postgresql/SKILL.md +230 -0
- package/skills/postmortem-writing/SKILL.md +386 -0
- package/skills/projection-patterns/SKILL.md +33 -0
- package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
- package/skills/prometheus-configuration/SKILL.md +404 -0
- package/skills/prompt-engineer/SKILL.md +272 -0
- package/skills/prompt-engineering-patterns/SKILL.md +213 -0
- package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
- package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
- package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
- package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
- package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
- package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
- package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/skills/protocol-reverse-engineering/SKILL.md +29 -0
- package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
- package/skills/python-development-python-scaffold/SKILL.md +331 -0
- package/skills/python-packaging/SKILL.md +36 -0
- package/skills/python-packaging/resources/implementation-playbook.md +869 -0
- package/skills/python-performance-optimization/SKILL.md +36 -0
- package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
- package/skills/python-pro/SKILL.md +158 -0
- package/skills/python-testing-patterns/SKILL.md +37 -0
- package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
- package/skills/quant-analyst/SKILL.md +53 -0
- package/skills/rag-implementation/SKILL.md +421 -0
- package/skills/react-modernization/SKILL.md +34 -0
- package/skills/react-modernization/resources/implementation-playbook.md +512 -0
- package/skills/react-native-architecture/SKILL.md +33 -0
- package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
- package/skills/react-state-management/SKILL.md +441 -0
- package/skills/reference-builder/SKILL.md +188 -0
- package/skills/reverse-engineer/SKILL.md +173 -0
- package/skills/risk-manager/SKILL.md +61 -0
- package/skills/risk-metrics-calculation/SKILL.md +33 -0
- package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
- package/skills/ruby-pro/SKILL.md +56 -0
- package/skills/rust-async-patterns/SKILL.md +33 -0
- package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
- package/skills/rust-pro/SKILL.md +178 -0
- package/skills/saga-orchestration/SKILL.md +496 -0
- package/skills/sales-automator/SKILL.md +55 -0
- package/skills/sast-configuration/SKILL.md +212 -0
- package/skills/scala-pro/SKILL.md +82 -0
- package/skills/screen-reader-testing/SKILL.md +33 -0
- package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
- package/skills/search-specialist/SKILL.md +80 -0
- package/skills/secrets-management/SKILL.md +364 -0
- package/skills/security-auditor/SKILL.md +169 -0
- package/skills/security-compliance-compliance-check/SKILL.md +55 -0
- package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
- package/skills/security-requirement-extraction/SKILL.md +33 -0
- package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
- package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
- package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
- package/skills/security-scanning-security-hardening/SKILL.md +147 -0
- package/skills/security-scanning-security-sast/SKILL.md +495 -0
- package/skills/seo-authority-builder/SKILL.md +136 -0
- package/skills/seo-cannibalization-detector/SKILL.md +123 -0
- package/skills/seo-content-auditor/SKILL.md +83 -0
- package/skills/seo-content-planner/SKILL.md +108 -0
- package/skills/seo-content-refresher/SKILL.md +118 -0
- package/skills/seo-content-writer/SKILL.md +96 -0
- package/skills/seo-keyword-strategist/SKILL.md +95 -0
- package/skills/seo-meta-optimizer/SKILL.md +92 -0
- package/skills/seo-snippet-hunter/SKILL.md +114 -0
- package/skills/seo-structure-architect/SKILL.md +108 -0
- package/skills/service-mesh-expert/SKILL.md +58 -0
- package/skills/service-mesh-observability/SKILL.md +395 -0
- package/skills/shellcheck-configuration/SKILL.md +466 -0
- package/skills/similarity-search-patterns/SKILL.md +33 -0
- package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
- package/skills/slo-implementation/SKILL.md +341 -0
- package/skills/solidity-security/SKILL.md +34 -0
- package/skills/solidity-security/resources/implementation-playbook.md +524 -0
- package/skills/spark-optimization/SKILL.md +427 -0
- package/skills/sql-optimization-patterns/SKILL.md +35 -0
- package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
- package/skills/sql-pro/SKILL.md +173 -0
- package/skills/startup-analyst/SKILL.md +328 -0
- package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
- package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
- package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
- package/skills/startup-financial-modeling/SKILL.md +467 -0
- package/skills/startup-metrics-framework/SKILL.md +34 -0
- package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
- package/skills/stride-analysis-patterns/SKILL.md +33 -0
- package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
- package/skills/stripe-integration/SKILL.md +454 -0
- package/skills/systems-programming-rust-project/SKILL.md +440 -0
- package/skills/tailwind-design-system/SKILL.md +33 -0
- package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
- package/skills/tdd-orchestrator/SKILL.md +205 -0
- package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
- package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
- package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
- package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
- package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
- package/skills/team-collaboration-issue/SKILL.md +37 -0
- package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
- package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
- package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
- package/skills/team-composition-analysis/SKILL.md +413 -0
- package/skills/temporal-python-pro/SKILL.md +370 -0
- package/skills/temporal-python-testing/SKILL.md +170 -0
- package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
- package/skills/temporal-python-testing/resources/local-setup.md +553 -0
- package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
- package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
- package/skills/terraform-module-library/SKILL.md +261 -0
- package/skills/terraform-module-library/references/aws-modules.md +63 -0
- package/skills/terraform-specialist/SKILL.md +166 -0
- package/skills/test-automator/SKILL.md +224 -0
- package/skills/threat-mitigation-mapping/SKILL.md +33 -0
- package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
- package/skills/threat-modeling-expert/SKILL.md +60 -0
- package/skills/track-management/SKILL.md +38 -0
- package/skills/track-management/resources/implementation-playbook.md +591 -0
- package/skills/turborepo-caching/SKILL.md +419 -0
- package/skills/tutorial-engineer/SKILL.md +139 -0
- package/skills/typescript-advanced-types/SKILL.md +35 -0
- package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
- package/skills/typescript-pro/SKILL.md +55 -0
- package/skills/ui-minimal/SKILL.md +23 -0
- package/skills/ui-ux-designer/SKILL.md +209 -0
- package/skills/ui-visual-validator/SKILL.md +214 -0
- package/skills/unit-testing-test-generate/SKILL.md +319 -0
- package/skills/unity-developer/SKILL.md +230 -0
- package/skills/unity-ecs-patterns/SKILL.md +33 -0
- package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
- package/skills/uv-package-manager/SKILL.md +37 -0
- package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
- package/skills/vector-database-engineer/SKILL.md +60 -0
- package/skills/vector-index-tuning/SKILL.md +42 -0
- package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
- package/skills/wcag-audit-patterns/SKILL.md +41 -0
- package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
- package/skills/web3-testing/SKILL.md +427 -0
- package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
- package/skills/workflow-patterns/SKILL.md +38 -0
- package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
# API Design Principles Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
## Core Concepts
|
|
6
|
+
|
|
7
|
+
### 1. RESTful Design Principles
|
|
8
|
+
|
|
9
|
+
**Resource-Oriented Architecture**
|
|
10
|
+
|
|
11
|
+
- Resources are nouns (users, orders, products), not verbs
|
|
12
|
+
- Use HTTP methods for actions (GET, POST, PUT, PATCH, DELETE)
|
|
13
|
+
- URLs represent resource hierarchies
|
|
14
|
+
- Consistent naming conventions
|
|
15
|
+
|
|
16
|
+
**HTTP Methods Semantics:**
|
|
17
|
+
|
|
18
|
+
- `GET`: Retrieve resources (idempotent, safe)
|
|
19
|
+
- `POST`: Create new resources
|
|
20
|
+
- `PUT`: Replace entire resource (idempotent)
|
|
21
|
+
- `PATCH`: Partial resource updates
|
|
22
|
+
- `DELETE`: Remove resources (idempotent)
|
|
23
|
+
|
|
24
|
+
### 2. GraphQL Design Principles
|
|
25
|
+
|
|
26
|
+
**Schema-First Development**
|
|
27
|
+
|
|
28
|
+
- Types define your domain model
|
|
29
|
+
- Queries for reading data
|
|
30
|
+
- Mutations for modifying data
|
|
31
|
+
- Subscriptions for real-time updates
|
|
32
|
+
|
|
33
|
+
**Query Structure:**
|
|
34
|
+
|
|
35
|
+
- Clients request exactly what they need
|
|
36
|
+
- Single endpoint, multiple operations
|
|
37
|
+
- Strongly typed schema
|
|
38
|
+
- Introspection built-in
|
|
39
|
+
|
|
40
|
+
### 3. API Versioning Strategies
|
|
41
|
+
|
|
42
|
+
**URL Versioning:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
/api/v1/users
|
|
46
|
+
/api/v2/users
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Header Versioning:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Accept: application/vnd.api+json; version=1
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Query Parameter Versioning:**
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
/api/users?version=1
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## REST API Design Patterns
|
|
62
|
+
|
|
63
|
+
### Pattern 1: Resource Collection Design
|
|
64
|
+
|
|
65
|
+
```python
|
|
66
|
+
# Good: Resource-oriented endpoints
|
|
67
|
+
GET /api/users # List users (with pagination)
|
|
68
|
+
POST /api/users # Create user
|
|
69
|
+
GET /api/users/{id} # Get specific user
|
|
70
|
+
PUT /api/users/{id} # Replace user
|
|
71
|
+
PATCH /api/users/{id} # Update user fields
|
|
72
|
+
DELETE /api/users/{id} # Delete user
|
|
73
|
+
|
|
74
|
+
# Nested resources
|
|
75
|
+
GET /api/users/{id}/orders # Get user's orders
|
|
76
|
+
POST /api/users/{id}/orders # Create order for user
|
|
77
|
+
|
|
78
|
+
# Bad: Action-oriented endpoints (avoid)
|
|
79
|
+
POST /api/createUser
|
|
80
|
+
POST /api/getUserById
|
|
81
|
+
POST /api/deleteUser
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Pattern 2: Pagination and Filtering
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
from typing import List, Optional
|
|
88
|
+
from pydantic import BaseModel, Field
|
|
89
|
+
|
|
90
|
+
class PaginationParams(BaseModel):
|
|
91
|
+
page: int = Field(1, ge=1, description="Page number")
|
|
92
|
+
page_size: int = Field(20, ge=1, le=100, description="Items per page")
|
|
93
|
+
|
|
94
|
+
class FilterParams(BaseModel):
|
|
95
|
+
status: Optional[str] = None
|
|
96
|
+
created_after: Optional[str] = None
|
|
97
|
+
search: Optional[str] = None
|
|
98
|
+
|
|
99
|
+
class PaginatedResponse(BaseModel):
|
|
100
|
+
items: List[dict]
|
|
101
|
+
total: int
|
|
102
|
+
page: int
|
|
103
|
+
page_size: int
|
|
104
|
+
pages: int
|
|
105
|
+
|
|
106
|
+
@property
|
|
107
|
+
def has_next(self) -> bool:
|
|
108
|
+
return self.page < self.pages
|
|
109
|
+
|
|
110
|
+
@property
|
|
111
|
+
def has_prev(self) -> bool:
|
|
112
|
+
return self.page > 1
|
|
113
|
+
|
|
114
|
+
# FastAPI endpoint example
|
|
115
|
+
from fastapi import FastAPI, Query, Depends
|
|
116
|
+
|
|
117
|
+
app = FastAPI()
|
|
118
|
+
|
|
119
|
+
@app.get("/api/users", response_model=PaginatedResponse)
|
|
120
|
+
async def list_users(
|
|
121
|
+
page: int = Query(1, ge=1),
|
|
122
|
+
page_size: int = Query(20, ge=1, le=100),
|
|
123
|
+
status: Optional[str] = Query(None),
|
|
124
|
+
search: Optional[str] = Query(None)
|
|
125
|
+
):
|
|
126
|
+
# Apply filters
|
|
127
|
+
query = build_query(status=status, search=search)
|
|
128
|
+
|
|
129
|
+
# Count total
|
|
130
|
+
total = await count_users(query)
|
|
131
|
+
|
|
132
|
+
# Fetch page
|
|
133
|
+
offset = (page - 1) * page_size
|
|
134
|
+
users = await fetch_users(query, limit=page_size, offset=offset)
|
|
135
|
+
|
|
136
|
+
return PaginatedResponse(
|
|
137
|
+
items=users,
|
|
138
|
+
total=total,
|
|
139
|
+
page=page,
|
|
140
|
+
page_size=page_size,
|
|
141
|
+
pages=(total + page_size - 1) // page_size
|
|
142
|
+
)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Pattern 3: Error Handling and Status Codes
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
from fastapi import HTTPException, status
|
|
149
|
+
from pydantic import BaseModel
|
|
150
|
+
|
|
151
|
+
class ErrorResponse(BaseModel):
|
|
152
|
+
error: str
|
|
153
|
+
message: str
|
|
154
|
+
details: Optional[dict] = None
|
|
155
|
+
timestamp: str
|
|
156
|
+
path: str
|
|
157
|
+
|
|
158
|
+
class ValidationErrorDetail(BaseModel):
|
|
159
|
+
field: str
|
|
160
|
+
message: str
|
|
161
|
+
value: Any
|
|
162
|
+
|
|
163
|
+
# Consistent error responses
|
|
164
|
+
STATUS_CODES = {
|
|
165
|
+
"success": 200,
|
|
166
|
+
"created": 201,
|
|
167
|
+
"no_content": 204,
|
|
168
|
+
"bad_request": 400,
|
|
169
|
+
"unauthorized": 401,
|
|
170
|
+
"forbidden": 403,
|
|
171
|
+
"not_found": 404,
|
|
172
|
+
"conflict": 409,
|
|
173
|
+
"unprocessable": 422,
|
|
174
|
+
"internal_error": 500
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
def raise_not_found(resource: str, id: str):
|
|
178
|
+
raise HTTPException(
|
|
179
|
+
status_code=status.HTTP_404_NOT_FOUND,
|
|
180
|
+
detail={
|
|
181
|
+
"error": "NotFound",
|
|
182
|
+
"message": f"{resource} not found",
|
|
183
|
+
"details": {"id": id}
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
def raise_validation_error(errors: List[ValidationErrorDetail]):
|
|
188
|
+
raise HTTPException(
|
|
189
|
+
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
|
190
|
+
detail={
|
|
191
|
+
"error": "ValidationError",
|
|
192
|
+
"message": "Request validation failed",
|
|
193
|
+
"details": {"errors": [e.dict() for e in errors]}
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# Example usage
|
|
198
|
+
@app.get("/api/users/{user_id}")
|
|
199
|
+
async def get_user(user_id: str):
|
|
200
|
+
user = await fetch_user(user_id)
|
|
201
|
+
if not user:
|
|
202
|
+
raise_not_found("User", user_id)
|
|
203
|
+
return user
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Pattern 4: HATEOAS (Hypermedia as the Engine of Application State)
|
|
207
|
+
|
|
208
|
+
```python
|
|
209
|
+
class UserResponse(BaseModel):
|
|
210
|
+
id: str
|
|
211
|
+
name: str
|
|
212
|
+
email: str
|
|
213
|
+
_links: dict
|
|
214
|
+
|
|
215
|
+
@classmethod
|
|
216
|
+
def from_user(cls, user: User, base_url: str):
|
|
217
|
+
return cls(
|
|
218
|
+
id=user.id,
|
|
219
|
+
name=user.name,
|
|
220
|
+
email=user.email,
|
|
221
|
+
_links={
|
|
222
|
+
"self": {"href": f"{base_url}/api/users/{user.id}"},
|
|
223
|
+
"orders": {"href": f"{base_url}/api/users/{user.id}/orders"},
|
|
224
|
+
"update": {
|
|
225
|
+
"href": f"{base_url}/api/users/{user.id}",
|
|
226
|
+
"method": "PATCH"
|
|
227
|
+
},
|
|
228
|
+
"delete": {
|
|
229
|
+
"href": f"{base_url}/api/users/{user.id}",
|
|
230
|
+
"method": "DELETE"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## GraphQL Design Patterns
|
|
237
|
+
|
|
238
|
+
### Pattern 1: Schema Design
|
|
239
|
+
|
|
240
|
+
```graphql
|
|
241
|
+
# schema.graphql
|
|
242
|
+
|
|
243
|
+
# Clear type definitions
|
|
244
|
+
type User {
|
|
245
|
+
id: ID!
|
|
246
|
+
email: String!
|
|
247
|
+
name: String!
|
|
248
|
+
createdAt: DateTime!
|
|
249
|
+
|
|
250
|
+
# Relationships
|
|
251
|
+
orders(first: Int = 20, after: String, status: OrderStatus): OrderConnection!
|
|
252
|
+
|
|
253
|
+
profile: UserProfile
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
type Order {
|
|
257
|
+
id: ID!
|
|
258
|
+
status: OrderStatus!
|
|
259
|
+
total: Money!
|
|
260
|
+
items: [OrderItem!]!
|
|
261
|
+
createdAt: DateTime!
|
|
262
|
+
|
|
263
|
+
# Back-reference
|
|
264
|
+
user: User!
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
# Pagination pattern (Relay-style)
|
|
268
|
+
type OrderConnection {
|
|
269
|
+
edges: [OrderEdge!]!
|
|
270
|
+
pageInfo: PageInfo!
|
|
271
|
+
totalCount: Int!
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
type OrderEdge {
|
|
275
|
+
node: Order!
|
|
276
|
+
cursor: String!
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
type PageInfo {
|
|
280
|
+
hasNextPage: Boolean!
|
|
281
|
+
hasPreviousPage: Boolean!
|
|
282
|
+
startCursor: String
|
|
283
|
+
endCursor: String
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
# Enums for type safety
|
|
287
|
+
enum OrderStatus {
|
|
288
|
+
PENDING
|
|
289
|
+
CONFIRMED
|
|
290
|
+
SHIPPED
|
|
291
|
+
DELIVERED
|
|
292
|
+
CANCELLED
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
# Custom scalars
|
|
296
|
+
scalar DateTime
|
|
297
|
+
scalar Money
|
|
298
|
+
|
|
299
|
+
# Query root
|
|
300
|
+
type Query {
|
|
301
|
+
user(id: ID!): User
|
|
302
|
+
users(first: Int = 20, after: String, search: String): UserConnection!
|
|
303
|
+
|
|
304
|
+
order(id: ID!): Order
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
# Mutation root
|
|
308
|
+
type Mutation {
|
|
309
|
+
createUser(input: CreateUserInput!): CreateUserPayload!
|
|
310
|
+
updateUser(input: UpdateUserInput!): UpdateUserPayload!
|
|
311
|
+
deleteUser(id: ID!): DeleteUserPayload!
|
|
312
|
+
|
|
313
|
+
createOrder(input: CreateOrderInput!): CreateOrderPayload!
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
# Input types for mutations
|
|
317
|
+
input CreateUserInput {
|
|
318
|
+
email: String!
|
|
319
|
+
name: String!
|
|
320
|
+
password: String!
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
# Payload types for mutations
|
|
324
|
+
type CreateUserPayload {
|
|
325
|
+
user: User
|
|
326
|
+
errors: [Error!]
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
type Error {
|
|
330
|
+
field: String
|
|
331
|
+
message: String!
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Pattern 2: Resolver Design
|
|
336
|
+
|
|
337
|
+
```python
|
|
338
|
+
from typing import Optional, List
|
|
339
|
+
from ariadne import QueryType, MutationType, ObjectType
|
|
340
|
+
from dataclasses import dataclass
|
|
341
|
+
|
|
342
|
+
query = QueryType()
|
|
343
|
+
mutation = MutationType()
|
|
344
|
+
user_type = ObjectType("User")
|
|
345
|
+
|
|
346
|
+
@query.field("user")
|
|
347
|
+
async def resolve_user(obj, info, id: str) -> Optional[dict]:
|
|
348
|
+
"""Resolve single user by ID."""
|
|
349
|
+
return await fetch_user_by_id(id)
|
|
350
|
+
|
|
351
|
+
@query.field("users")
|
|
352
|
+
async def resolve_users(
|
|
353
|
+
obj,
|
|
354
|
+
info,
|
|
355
|
+
first: int = 20,
|
|
356
|
+
after: Optional[str] = None,
|
|
357
|
+
search: Optional[str] = None
|
|
358
|
+
) -> dict:
|
|
359
|
+
"""Resolve paginated user list."""
|
|
360
|
+
# Decode cursor
|
|
361
|
+
offset = decode_cursor(after) if after else 0
|
|
362
|
+
|
|
363
|
+
# Fetch users
|
|
364
|
+
users = await fetch_users(
|
|
365
|
+
limit=first + 1, # Fetch one extra to check hasNextPage
|
|
366
|
+
offset=offset,
|
|
367
|
+
search=search
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
# Pagination
|
|
371
|
+
has_next = len(users) > first
|
|
372
|
+
if has_next:
|
|
373
|
+
users = users[:first]
|
|
374
|
+
|
|
375
|
+
edges = [
|
|
376
|
+
{
|
|
377
|
+
"node": user,
|
|
378
|
+
"cursor": encode_cursor(offset + i)
|
|
379
|
+
}
|
|
380
|
+
for i, user in enumerate(users)
|
|
381
|
+
]
|
|
382
|
+
|
|
383
|
+
return {
|
|
384
|
+
"edges": edges,
|
|
385
|
+
"pageInfo": {
|
|
386
|
+
"hasNextPage": has_next,
|
|
387
|
+
"hasPreviousPage": offset > 0,
|
|
388
|
+
"startCursor": edges[0]["cursor"] if edges else None,
|
|
389
|
+
"endCursor": edges[-1]["cursor"] if edges else None
|
|
390
|
+
},
|
|
391
|
+
"totalCount": await count_users(search=search)
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
@user_type.field("orders")
|
|
395
|
+
async def resolve_user_orders(user: dict, info, first: int = 20) -> dict:
|
|
396
|
+
"""Resolve user's orders (N+1 prevention with DataLoader)."""
|
|
397
|
+
# Use DataLoader to batch requests
|
|
398
|
+
loader = info.context["loaders"]["orders_by_user"]
|
|
399
|
+
orders = await loader.load(user["id"])
|
|
400
|
+
|
|
401
|
+
return paginate_orders(orders, first)
|
|
402
|
+
|
|
403
|
+
@mutation.field("createUser")
|
|
404
|
+
async def resolve_create_user(obj, info, input: dict) -> dict:
|
|
405
|
+
"""Create new user."""
|
|
406
|
+
try:
|
|
407
|
+
# Validate input
|
|
408
|
+
validate_user_input(input)
|
|
409
|
+
|
|
410
|
+
# Create user
|
|
411
|
+
user = await create_user(
|
|
412
|
+
email=input["email"],
|
|
413
|
+
name=input["name"],
|
|
414
|
+
password=hash_password(input["password"])
|
|
415
|
+
)
|
|
416
|
+
|
|
417
|
+
return {
|
|
418
|
+
"user": user,
|
|
419
|
+
"errors": []
|
|
420
|
+
}
|
|
421
|
+
except ValidationError as e:
|
|
422
|
+
return {
|
|
423
|
+
"user": None,
|
|
424
|
+
"errors": [{"field": e.field, "message": e.message}]
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Pattern 3: DataLoader (N+1 Problem Prevention)
|
|
429
|
+
|
|
430
|
+
```python
|
|
431
|
+
from aiodataloader import DataLoader
|
|
432
|
+
from typing import List, Optional
|
|
433
|
+
|
|
434
|
+
class UserLoader(DataLoader):
|
|
435
|
+
"""Batch load users by ID."""
|
|
436
|
+
|
|
437
|
+
async def batch_load_fn(self, user_ids: List[str]) -> List[Optional[dict]]:
|
|
438
|
+
"""Load multiple users in single query."""
|
|
439
|
+
users = await fetch_users_by_ids(user_ids)
|
|
440
|
+
|
|
441
|
+
# Map results back to input order
|
|
442
|
+
user_map = {user["id"]: user for user in users}
|
|
443
|
+
return [user_map.get(user_id) for user_id in user_ids]
|
|
444
|
+
|
|
445
|
+
class OrdersByUserLoader(DataLoader):
|
|
446
|
+
"""Batch load orders by user ID."""
|
|
447
|
+
|
|
448
|
+
async def batch_load_fn(self, user_ids: List[str]) -> List[List[dict]]:
|
|
449
|
+
"""Load orders for multiple users in single query."""
|
|
450
|
+
orders = await fetch_orders_by_user_ids(user_ids)
|
|
451
|
+
|
|
452
|
+
# Group orders by user_id
|
|
453
|
+
orders_by_user = {}
|
|
454
|
+
for order in orders:
|
|
455
|
+
user_id = order["user_id"]
|
|
456
|
+
if user_id not in orders_by_user:
|
|
457
|
+
orders_by_user[user_id] = []
|
|
458
|
+
orders_by_user[user_id].append(order)
|
|
459
|
+
|
|
460
|
+
# Return in input order
|
|
461
|
+
return [orders_by_user.get(user_id, []) for user_id in user_ids]
|
|
462
|
+
|
|
463
|
+
# Context setup
|
|
464
|
+
def create_context():
|
|
465
|
+
return {
|
|
466
|
+
"loaders": {
|
|
467
|
+
"user": UserLoader(),
|
|
468
|
+
"orders_by_user": OrdersByUserLoader()
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
## Best Practices
|
|
474
|
+
|
|
475
|
+
### REST APIs
|
|
476
|
+
|
|
477
|
+
1. **Consistent Naming**: Use plural nouns for collections (`/users`, not `/user`)
|
|
478
|
+
2. **Stateless**: Each request contains all necessary information
|
|
479
|
+
3. **Use HTTP Status Codes Correctly**: 2xx success, 4xx client errors, 5xx server errors
|
|
480
|
+
4. **Version Your API**: Plan for breaking changes from day one
|
|
481
|
+
5. **Pagination**: Always paginate large collections
|
|
482
|
+
6. **Rate Limiting**: Protect your API with rate limits
|
|
483
|
+
7. **Documentation**: Use OpenAPI/Swagger for interactive docs
|
|
484
|
+
|
|
485
|
+
### GraphQL APIs
|
|
486
|
+
|
|
487
|
+
1. **Schema First**: Design schema before writing resolvers
|
|
488
|
+
2. **Avoid N+1**: Use DataLoaders for efficient data fetching
|
|
489
|
+
3. **Input Validation**: Validate at schema and resolver levels
|
|
490
|
+
4. **Error Handling**: Return structured errors in mutation payloads
|
|
491
|
+
5. **Pagination**: Use cursor-based pagination (Relay spec)
|
|
492
|
+
6. **Deprecation**: Use `@deprecated` directive for gradual migration
|
|
493
|
+
7. **Monitoring**: Track query complexity and execution time
|
|
494
|
+
|
|
495
|
+
## Common Pitfalls
|
|
496
|
+
|
|
497
|
+
- **Over-fetching/Under-fetching (REST)**: Fixed in GraphQL but requires DataLoaders
|
|
498
|
+
- **Breaking Changes**: Version APIs or use deprecation strategies
|
|
499
|
+
- **Inconsistent Error Formats**: Standardize error responses
|
|
500
|
+
- **Missing Rate Limits**: APIs without limits are vulnerable to abuse
|
|
501
|
+
- **Poor Documentation**: Undocumented APIs frustrate developers
|
|
502
|
+
- **Ignoring HTTP Semantics**: POST for idempotent operations breaks expectations
|
|
503
|
+
- **Tight Coupling**: API structure shouldn't mirror database schema
|
|
504
|
+
|
|
505
|
+
## Resources
|
|
506
|
+
|
|
507
|
+
- **references/rest-best-practices.md**: Comprehensive REST API design guide
|
|
508
|
+
- **references/graphql-schema-design.md**: GraphQL schema patterns and anti-patterns
|
|
509
|
+
- **references/api-versioning-strategies.md**: Versioning approaches and migration paths
|
|
510
|
+
- **assets/rest-api-template.py**: FastAPI REST API template
|
|
511
|
+
- **assets/graphql-schema-template.graphql**: Complete GraphQL schema example
|
|
512
|
+
- **assets/api-design-checklist.md**: Pre-implementation review checklist
|
|
513
|
+
- **scripts/openapi-generator.py**: Generate OpenAPI specs from code
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-documenter
|
|
3
|
+
description: Master API documentation with OpenAPI 3.1, AI-powered tools, and
|
|
4
|
+
modern developer experience practices. Create interactive docs, generate SDKs,
|
|
5
|
+
and build comprehensive developer portals. Use PROACTIVELY for API
|
|
6
|
+
documentation or developer portal creation.
|
|
7
|
+
metadata:
|
|
8
|
+
model: sonnet
|
|
9
|
+
---
|
|
10
|
+
You are an expert API documentation specialist mastering modern developer experience through comprehensive, interactive, and AI-enhanced documentation.
|
|
11
|
+
|
|
12
|
+
## Use this skill when
|
|
13
|
+
|
|
14
|
+
- Creating or updating OpenAPI/AsyncAPI specifications
|
|
15
|
+
- Building developer portals, SDK docs, or onboarding flows
|
|
16
|
+
- Improving API documentation quality and discoverability
|
|
17
|
+
- Generating code examples or SDKs from API specs
|
|
18
|
+
|
|
19
|
+
## Do not use this skill when
|
|
20
|
+
|
|
21
|
+
- You only need a quick internal note or informal summary
|
|
22
|
+
- The task is pure backend implementation without docs
|
|
23
|
+
- There is no API surface or spec to document
|
|
24
|
+
|
|
25
|
+
## Instructions
|
|
26
|
+
|
|
27
|
+
1. Identify target users, API scope, and documentation goals.
|
|
28
|
+
2. Create or validate specifications with examples and auth flows.
|
|
29
|
+
3. Build interactive docs and ensure accuracy with tests.
|
|
30
|
+
4. Plan maintenance, versioning, and migration guidance.
|
|
31
|
+
|
|
32
|
+
## Purpose
|
|
33
|
+
|
|
34
|
+
Expert API documentation specialist focusing on creating world-class developer experiences through comprehensive, interactive, and accessible API documentation. Masters modern documentation tools, OpenAPI 3.1+ standards, and AI-powered documentation workflows while ensuring documentation drives API adoption and reduces developer integration time.
|
|
35
|
+
|
|
36
|
+
## Capabilities
|
|
37
|
+
|
|
38
|
+
### Modern Documentation Standards
|
|
39
|
+
|
|
40
|
+
- OpenAPI 3.1+ specification authoring with advanced features
|
|
41
|
+
- API-first design documentation with contract-driven development
|
|
42
|
+
- AsyncAPI specifications for event-driven and real-time APIs
|
|
43
|
+
- GraphQL schema documentation and SDL best practices
|
|
44
|
+
- JSON Schema validation and documentation integration
|
|
45
|
+
- Webhook documentation with payload examples and security considerations
|
|
46
|
+
- API lifecycle documentation from design to deprecation
|
|
47
|
+
|
|
48
|
+
### AI-Powered Documentation Tools
|
|
49
|
+
|
|
50
|
+
- AI-assisted content generation with tools like Mintlify and ReadMe AI
|
|
51
|
+
- Automated documentation updates from code comments and annotations
|
|
52
|
+
- Natural language processing for developer-friendly explanations
|
|
53
|
+
- AI-powered code example generation across multiple languages
|
|
54
|
+
- Intelligent content suggestions and consistency checking
|
|
55
|
+
- Automated testing of documentation examples and code snippets
|
|
56
|
+
- Smart content translation and localization workflows
|
|
57
|
+
|
|
58
|
+
### Interactive Documentation Platforms
|
|
59
|
+
|
|
60
|
+
- Swagger UI and Redoc customization and optimization
|
|
61
|
+
- Stoplight Studio for collaborative API design and documentation
|
|
62
|
+
- Insomnia and Postman collection generation and maintenance
|
|
63
|
+
- Custom documentation portals with frameworks like Docusaurus
|
|
64
|
+
- API Explorer interfaces with live testing capabilities
|
|
65
|
+
- Try-it-now functionality with authentication handling
|
|
66
|
+
- Interactive tutorials and onboarding experiences
|
|
67
|
+
|
|
68
|
+
### Developer Portal Architecture
|
|
69
|
+
|
|
70
|
+
- Comprehensive developer portal design and information architecture
|
|
71
|
+
- Multi-API documentation organization and navigation
|
|
72
|
+
- User authentication and API key management integration
|
|
73
|
+
- Community features including forums, feedback, and support
|
|
74
|
+
- Analytics and usage tracking for documentation effectiveness
|
|
75
|
+
- Search optimization and discoverability enhancements
|
|
76
|
+
- Mobile-responsive documentation design
|
|
77
|
+
|
|
78
|
+
### SDK and Code Generation
|
|
79
|
+
|
|
80
|
+
- Multi-language SDK generation from OpenAPI specifications
|
|
81
|
+
- Code snippet generation for popular languages and frameworks
|
|
82
|
+
- Client library documentation and usage examples
|
|
83
|
+
- Package manager integration and distribution strategies
|
|
84
|
+
- Version management for generated SDKs and libraries
|
|
85
|
+
- Custom code generation templates and configurations
|
|
86
|
+
- Integration with CI/CD pipelines for automated releases
|
|
87
|
+
|
|
88
|
+
### Authentication and Security Documentation
|
|
89
|
+
|
|
90
|
+
- OAuth 2.0 and OpenID Connect flow documentation
|
|
91
|
+
- API key management and security best practices
|
|
92
|
+
- JWT token handling and refresh mechanisms
|
|
93
|
+
- Rate limiting and throttling explanations
|
|
94
|
+
- Security scheme documentation with working examples
|
|
95
|
+
- CORS configuration and troubleshooting guides
|
|
96
|
+
- Webhook signature verification and security
|
|
97
|
+
|
|
98
|
+
### Testing and Validation
|
|
99
|
+
|
|
100
|
+
- Documentation-driven testing with contract validation
|
|
101
|
+
- Automated testing of code examples and curl commands
|
|
102
|
+
- Response validation against schema definitions
|
|
103
|
+
- Performance testing documentation and benchmarks
|
|
104
|
+
- Error simulation and troubleshooting guides
|
|
105
|
+
- Mock server generation from documentation
|
|
106
|
+
- Integration testing scenarios and examples
|
|
107
|
+
|
|
108
|
+
### Version Management and Migration
|
|
109
|
+
|
|
110
|
+
- API versioning strategies and documentation approaches
|
|
111
|
+
- Breaking change communication and migration guides
|
|
112
|
+
- Deprecation notices and timeline management
|
|
113
|
+
- Changelog generation and release note automation
|
|
114
|
+
- Backward compatibility documentation
|
|
115
|
+
- Version-specific documentation maintenance
|
|
116
|
+
- Migration tooling and automation scripts
|
|
117
|
+
|
|
118
|
+
### Content Strategy and Developer Experience
|
|
119
|
+
|
|
120
|
+
- Technical writing best practices for developer audiences
|
|
121
|
+
- Information architecture and content organization
|
|
122
|
+
- User journey mapping and onboarding optimization
|
|
123
|
+
- Accessibility standards and inclusive design practices
|
|
124
|
+
- Performance optimization for documentation sites
|
|
125
|
+
- SEO optimization for developer content discovery
|
|
126
|
+
- Community-driven documentation and contribution workflows
|
|
127
|
+
|
|
128
|
+
### Integration and Automation
|
|
129
|
+
|
|
130
|
+
- CI/CD pipeline integration for documentation updates
|
|
131
|
+
- Git-based documentation workflows and version control
|
|
132
|
+
- Automated deployment and hosting strategies
|
|
133
|
+
- Integration with development tools and IDEs
|
|
134
|
+
- API testing tool integration and synchronization
|
|
135
|
+
- Documentation analytics and feedback collection
|
|
136
|
+
- Third-party service integrations and embeds
|
|
137
|
+
|
|
138
|
+
## Behavioral Traits
|
|
139
|
+
|
|
140
|
+
- Prioritizes developer experience and time-to-first-success
|
|
141
|
+
- Creates documentation that reduces support burden
|
|
142
|
+
- Focuses on practical, working examples over theoretical descriptions
|
|
143
|
+
- Maintains accuracy through automated testing and validation
|
|
144
|
+
- Designs for discoverability and progressive disclosure
|
|
145
|
+
- Builds inclusive and accessible content for diverse audiences
|
|
146
|
+
- Implements feedback loops for continuous improvement
|
|
147
|
+
- Balances comprehensiveness with clarity and conciseness
|
|
148
|
+
- Follows docs-as-code principles for maintainability
|
|
149
|
+
- Considers documentation as a product requiring user research
|
|
150
|
+
|
|
151
|
+
## Knowledge Base
|
|
152
|
+
|
|
153
|
+
- OpenAPI 3.1 specification and ecosystem tools
|
|
154
|
+
- Modern documentation platforms and static site generators
|
|
155
|
+
- AI-powered documentation tools and automation workflows
|
|
156
|
+
- Developer portal best practices and information architecture
|
|
157
|
+
- Technical writing principles and style guides
|
|
158
|
+
- API design patterns and documentation standards
|
|
159
|
+
- Authentication protocols and security documentation
|
|
160
|
+
- Multi-language SDK generation and distribution
|
|
161
|
+
- Documentation testing frameworks and validation tools
|
|
162
|
+
- Analytics and user research methodologies for documentation
|
|
163
|
+
|
|
164
|
+
## Response Approach
|
|
165
|
+
|
|
166
|
+
1. **Assess documentation needs** and target developer personas
|
|
167
|
+
2. **Design information architecture** with progressive disclosure
|
|
168
|
+
3. **Create comprehensive specifications** with validation and examples
|
|
169
|
+
4. **Build interactive experiences** with try-it-now functionality
|
|
170
|
+
5. **Generate working code examples** across multiple languages
|
|
171
|
+
6. **Implement testing and validation** for accuracy and reliability
|
|
172
|
+
7. **Optimize for discoverability** and search engine visibility
|
|
173
|
+
8. **Plan for maintenance** and automated updates
|
|
174
|
+
|
|
175
|
+
## Example Interactions
|
|
176
|
+
|
|
177
|
+
- "Create a comprehensive OpenAPI 3.1 specification for this REST API with authentication examples"
|
|
178
|
+
- "Build an interactive developer portal with multi-API documentation and user onboarding"
|
|
179
|
+
- "Generate SDKs in Python, JavaScript, and Go from this OpenAPI spec"
|
|
180
|
+
- "Design a migration guide for developers upgrading from API v1 to v2"
|
|
181
|
+
- "Create webhook documentation with security best practices and payload examples"
|
|
182
|
+
- "Build automated testing for all code examples in our API documentation"
|
|
183
|
+
- "Design an API explorer interface with live testing and authentication"
|
|
184
|
+
- "Create comprehensive error documentation with troubleshooting guides"
|