@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,441 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-state-management
|
|
3
|
+
description: Master modern React state management with Redux Toolkit, Zustand, Jotai, and React Query. Use when setting up global state, managing server state, or choosing between state management solutions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# React State Management
|
|
7
|
+
|
|
8
|
+
Comprehensive guide to modern React state management patterns, from local component state to global stores and server state synchronization.
|
|
9
|
+
|
|
10
|
+
## Do not use this skill when
|
|
11
|
+
|
|
12
|
+
- The task is unrelated to react state management
|
|
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
|
+
- Setting up global state management in a React app
|
|
25
|
+
- Choosing between Redux Toolkit, Zustand, or Jotai
|
|
26
|
+
- Managing server state with React Query or SWR
|
|
27
|
+
- Implementing optimistic updates
|
|
28
|
+
- Debugging state-related issues
|
|
29
|
+
- Migrating from legacy Redux to modern patterns
|
|
30
|
+
|
|
31
|
+
## Core Concepts
|
|
32
|
+
|
|
33
|
+
### 1. State Categories
|
|
34
|
+
|
|
35
|
+
| Type | Description | Solutions |
|
|
36
|
+
|------|-------------|-----------|
|
|
37
|
+
| **Local State** | Component-specific, UI state | useState, useReducer |
|
|
38
|
+
| **Global State** | Shared across components | Redux Toolkit, Zustand, Jotai |
|
|
39
|
+
| **Server State** | Remote data, caching | React Query, SWR, RTK Query |
|
|
40
|
+
| **URL State** | Route parameters, search | React Router, nuqs |
|
|
41
|
+
| **Form State** | Input values, validation | React Hook Form, Formik |
|
|
42
|
+
|
|
43
|
+
### 2. Selection Criteria
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Small app, simple state → Zustand or Jotai
|
|
47
|
+
Large app, complex state → Redux Toolkit
|
|
48
|
+
Heavy server interaction → React Query + light client state
|
|
49
|
+
Atomic/granular updates → Jotai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
### Zustand (Simplest)
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// store/useStore.ts
|
|
58
|
+
import { create } from 'zustand'
|
|
59
|
+
import { devtools, persist } from 'zustand/middleware'
|
|
60
|
+
|
|
61
|
+
interface AppState {
|
|
62
|
+
user: User | null
|
|
63
|
+
theme: 'light' | 'dark'
|
|
64
|
+
setUser: (user: User | null) => void
|
|
65
|
+
toggleTheme: () => void
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export const useStore = create<AppState>()(
|
|
69
|
+
devtools(
|
|
70
|
+
persist(
|
|
71
|
+
(set) => ({
|
|
72
|
+
user: null,
|
|
73
|
+
theme: 'light',
|
|
74
|
+
setUser: (user) => set({ user }),
|
|
75
|
+
toggleTheme: () => set((state) => ({
|
|
76
|
+
theme: state.theme === 'light' ? 'dark' : 'light'
|
|
77
|
+
})),
|
|
78
|
+
}),
|
|
79
|
+
{ name: 'app-storage' }
|
|
80
|
+
)
|
|
81
|
+
)
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
// Usage in component
|
|
85
|
+
function Header() {
|
|
86
|
+
const { user, theme, toggleTheme } = useStore()
|
|
87
|
+
return (
|
|
88
|
+
<header className={theme}>
|
|
89
|
+
{user?.name}
|
|
90
|
+
<button onClick={toggleTheme}>Toggle Theme</button>
|
|
91
|
+
</header>
|
|
92
|
+
)
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Patterns
|
|
97
|
+
|
|
98
|
+
### Pattern 1: Redux Toolkit with TypeScript
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
// store/index.ts
|
|
102
|
+
import { configureStore } from '@reduxjs/toolkit'
|
|
103
|
+
import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
|
|
104
|
+
import userReducer from './slices/userSlice'
|
|
105
|
+
import cartReducer from './slices/cartSlice'
|
|
106
|
+
|
|
107
|
+
export const store = configureStore({
|
|
108
|
+
reducer: {
|
|
109
|
+
user: userReducer,
|
|
110
|
+
cart: cartReducer,
|
|
111
|
+
},
|
|
112
|
+
middleware: (getDefaultMiddleware) =>
|
|
113
|
+
getDefaultMiddleware({
|
|
114
|
+
serializableCheck: {
|
|
115
|
+
ignoredActions: ['persist/PERSIST'],
|
|
116
|
+
},
|
|
117
|
+
}),
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
export type RootState = ReturnType<typeof store.getState>
|
|
121
|
+
export type AppDispatch = typeof store.dispatch
|
|
122
|
+
|
|
123
|
+
// Typed hooks
|
|
124
|
+
export const useAppDispatch: () => AppDispatch = useDispatch
|
|
125
|
+
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
// store/slices/userSlice.ts
|
|
130
|
+
import { createSlice, createAsyncThunk, PayloadAction } from '@reduxjs/toolkit'
|
|
131
|
+
|
|
132
|
+
interface User {
|
|
133
|
+
id: string
|
|
134
|
+
email: string
|
|
135
|
+
name: string
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
interface UserState {
|
|
139
|
+
current: User | null
|
|
140
|
+
status: 'idle' | 'loading' | 'succeeded' | 'failed'
|
|
141
|
+
error: string | null
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const initialState: UserState = {
|
|
145
|
+
current: null,
|
|
146
|
+
status: 'idle',
|
|
147
|
+
error: null,
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export const fetchUser = createAsyncThunk(
|
|
151
|
+
'user/fetchUser',
|
|
152
|
+
async (userId: string, { rejectWithValue }) => {
|
|
153
|
+
try {
|
|
154
|
+
const response = await fetch(`/api/users/${userId}`)
|
|
155
|
+
if (!response.ok) throw new Error('Failed to fetch user')
|
|
156
|
+
return await response.json()
|
|
157
|
+
} catch (error) {
|
|
158
|
+
return rejectWithValue((error as Error).message)
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
const userSlice = createSlice({
|
|
164
|
+
name: 'user',
|
|
165
|
+
initialState,
|
|
166
|
+
reducers: {
|
|
167
|
+
setUser: (state, action: PayloadAction<User>) => {
|
|
168
|
+
state.current = action.payload
|
|
169
|
+
state.status = 'succeeded'
|
|
170
|
+
},
|
|
171
|
+
clearUser: (state) => {
|
|
172
|
+
state.current = null
|
|
173
|
+
state.status = 'idle'
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
extraReducers: (builder) => {
|
|
177
|
+
builder
|
|
178
|
+
.addCase(fetchUser.pending, (state) => {
|
|
179
|
+
state.status = 'loading'
|
|
180
|
+
state.error = null
|
|
181
|
+
})
|
|
182
|
+
.addCase(fetchUser.fulfilled, (state, action) => {
|
|
183
|
+
state.status = 'succeeded'
|
|
184
|
+
state.current = action.payload
|
|
185
|
+
})
|
|
186
|
+
.addCase(fetchUser.rejected, (state, action) => {
|
|
187
|
+
state.status = 'failed'
|
|
188
|
+
state.error = action.payload as string
|
|
189
|
+
})
|
|
190
|
+
},
|
|
191
|
+
})
|
|
192
|
+
|
|
193
|
+
export const { setUser, clearUser } = userSlice.actions
|
|
194
|
+
export default userSlice.reducer
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Pattern 2: Zustand with Slices (Scalable)
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
// store/slices/createUserSlice.ts
|
|
201
|
+
import { StateCreator } from 'zustand'
|
|
202
|
+
|
|
203
|
+
export interface UserSlice {
|
|
204
|
+
user: User | null
|
|
205
|
+
isAuthenticated: boolean
|
|
206
|
+
login: (credentials: Credentials) => Promise<void>
|
|
207
|
+
logout: () => void
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export const createUserSlice: StateCreator<
|
|
211
|
+
UserSlice & CartSlice, // Combined store type
|
|
212
|
+
[],
|
|
213
|
+
[],
|
|
214
|
+
UserSlice
|
|
215
|
+
> = (set, get) => ({
|
|
216
|
+
user: null,
|
|
217
|
+
isAuthenticated: false,
|
|
218
|
+
login: async (credentials) => {
|
|
219
|
+
const user = await authApi.login(credentials)
|
|
220
|
+
set({ user, isAuthenticated: true })
|
|
221
|
+
},
|
|
222
|
+
logout: () => {
|
|
223
|
+
set({ user: null, isAuthenticated: false })
|
|
224
|
+
// Can access other slices
|
|
225
|
+
// get().clearCart()
|
|
226
|
+
},
|
|
227
|
+
})
|
|
228
|
+
|
|
229
|
+
// store/index.ts
|
|
230
|
+
import { create } from 'zustand'
|
|
231
|
+
import { createUserSlice, UserSlice } from './slices/createUserSlice'
|
|
232
|
+
import { createCartSlice, CartSlice } from './slices/createCartSlice'
|
|
233
|
+
|
|
234
|
+
type StoreState = UserSlice & CartSlice
|
|
235
|
+
|
|
236
|
+
export const useStore = create<StoreState>()((...args) => ({
|
|
237
|
+
...createUserSlice(...args),
|
|
238
|
+
...createCartSlice(...args),
|
|
239
|
+
}))
|
|
240
|
+
|
|
241
|
+
// Selective subscriptions (prevents unnecessary re-renders)
|
|
242
|
+
export const useUser = () => useStore((state) => state.user)
|
|
243
|
+
export const useCart = () => useStore((state) => state.cart)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Pattern 3: Jotai for Atomic State
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
// atoms/userAtoms.ts
|
|
250
|
+
import { atom } from 'jotai'
|
|
251
|
+
import { atomWithStorage } from 'jotai/utils'
|
|
252
|
+
|
|
253
|
+
// Basic atom
|
|
254
|
+
export const userAtom = atom<User | null>(null)
|
|
255
|
+
|
|
256
|
+
// Derived atom (computed)
|
|
257
|
+
export const isAuthenticatedAtom = atom((get) => get(userAtom) !== null)
|
|
258
|
+
|
|
259
|
+
// Atom with localStorage persistence
|
|
260
|
+
export const themeAtom = atomWithStorage<'light' | 'dark'>('theme', 'light')
|
|
261
|
+
|
|
262
|
+
// Async atom
|
|
263
|
+
export const userProfileAtom = atom(async (get) => {
|
|
264
|
+
const user = get(userAtom)
|
|
265
|
+
if (!user) return null
|
|
266
|
+
const response = await fetch(`/api/users/${user.id}/profile`)
|
|
267
|
+
return response.json()
|
|
268
|
+
})
|
|
269
|
+
|
|
270
|
+
// Write-only atom (action)
|
|
271
|
+
export const logoutAtom = atom(null, (get, set) => {
|
|
272
|
+
set(userAtom, null)
|
|
273
|
+
set(cartAtom, [])
|
|
274
|
+
localStorage.removeItem('token')
|
|
275
|
+
})
|
|
276
|
+
|
|
277
|
+
// Usage
|
|
278
|
+
function Profile() {
|
|
279
|
+
const [user] = useAtom(userAtom)
|
|
280
|
+
const [, logout] = useAtom(logoutAtom)
|
|
281
|
+
const [profile] = useAtom(userProfileAtom) // Suspense-enabled
|
|
282
|
+
|
|
283
|
+
return (
|
|
284
|
+
<Suspense fallback={<Skeleton />}>
|
|
285
|
+
<ProfileContent profile={profile} onLogout={logout} />
|
|
286
|
+
</Suspense>
|
|
287
|
+
)
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Pattern 4: React Query for Server State
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
// hooks/useUsers.ts
|
|
295
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
|
|
296
|
+
|
|
297
|
+
// Query keys factory
|
|
298
|
+
export const userKeys = {
|
|
299
|
+
all: ['users'] as const,
|
|
300
|
+
lists: () => [...userKeys.all, 'list'] as const,
|
|
301
|
+
list: (filters: UserFilters) => [...userKeys.lists(), filters] as const,
|
|
302
|
+
details: () => [...userKeys.all, 'detail'] as const,
|
|
303
|
+
detail: (id: string) => [...userKeys.details(), id] as const,
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Fetch hook
|
|
307
|
+
export function useUsers(filters: UserFilters) {
|
|
308
|
+
return useQuery({
|
|
309
|
+
queryKey: userKeys.list(filters),
|
|
310
|
+
queryFn: () => fetchUsers(filters),
|
|
311
|
+
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
312
|
+
gcTime: 30 * 60 * 1000, // 30 minutes (formerly cacheTime)
|
|
313
|
+
})
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// Single user hook
|
|
317
|
+
export function useUser(id: string) {
|
|
318
|
+
return useQuery({
|
|
319
|
+
queryKey: userKeys.detail(id),
|
|
320
|
+
queryFn: () => fetchUser(id),
|
|
321
|
+
enabled: !!id, // Don't fetch if no id
|
|
322
|
+
})
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// Mutation with optimistic update
|
|
326
|
+
export function useUpdateUser() {
|
|
327
|
+
const queryClient = useQueryClient()
|
|
328
|
+
|
|
329
|
+
return useMutation({
|
|
330
|
+
mutationFn: updateUser,
|
|
331
|
+
onMutate: async (newUser) => {
|
|
332
|
+
// Cancel outgoing refetches
|
|
333
|
+
await queryClient.cancelQueries({ queryKey: userKeys.detail(newUser.id) })
|
|
334
|
+
|
|
335
|
+
// Snapshot previous value
|
|
336
|
+
const previousUser = queryClient.getQueryData(userKeys.detail(newUser.id))
|
|
337
|
+
|
|
338
|
+
// Optimistically update
|
|
339
|
+
queryClient.setQueryData(userKeys.detail(newUser.id), newUser)
|
|
340
|
+
|
|
341
|
+
return { previousUser }
|
|
342
|
+
},
|
|
343
|
+
onError: (err, newUser, context) => {
|
|
344
|
+
// Rollback on error
|
|
345
|
+
queryClient.setQueryData(
|
|
346
|
+
userKeys.detail(newUser.id),
|
|
347
|
+
context?.previousUser
|
|
348
|
+
)
|
|
349
|
+
},
|
|
350
|
+
onSettled: (data, error, variables) => {
|
|
351
|
+
// Refetch after mutation
|
|
352
|
+
queryClient.invalidateQueries({ queryKey: userKeys.detail(variables.id) })
|
|
353
|
+
},
|
|
354
|
+
})
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### Pattern 5: Combining Client + Server State
|
|
359
|
+
|
|
360
|
+
```typescript
|
|
361
|
+
// Zustand for client state
|
|
362
|
+
const useUIStore = create<UIState>((set) => ({
|
|
363
|
+
sidebarOpen: true,
|
|
364
|
+
modal: null,
|
|
365
|
+
toggleSidebar: () => set((s) => ({ sidebarOpen: !s.sidebarOpen })),
|
|
366
|
+
openModal: (modal) => set({ modal }),
|
|
367
|
+
closeModal: () => set({ modal: null }),
|
|
368
|
+
}))
|
|
369
|
+
|
|
370
|
+
// React Query for server state
|
|
371
|
+
function Dashboard() {
|
|
372
|
+
const { sidebarOpen, toggleSidebar } = useUIStore()
|
|
373
|
+
const { data: users, isLoading } = useUsers({ active: true })
|
|
374
|
+
const { data: stats } = useStats()
|
|
375
|
+
|
|
376
|
+
if (isLoading) return <DashboardSkeleton />
|
|
377
|
+
|
|
378
|
+
return (
|
|
379
|
+
<div className={sidebarOpen ? 'with-sidebar' : ''}>
|
|
380
|
+
<Sidebar open={sidebarOpen} onToggle={toggleSidebar} />
|
|
381
|
+
<main>
|
|
382
|
+
<StatsCards stats={stats} />
|
|
383
|
+
<UserTable users={users} />
|
|
384
|
+
</main>
|
|
385
|
+
</div>
|
|
386
|
+
)
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## Best Practices
|
|
391
|
+
|
|
392
|
+
### Do's
|
|
393
|
+
- **Colocate state** - Keep state as close to where it's used as possible
|
|
394
|
+
- **Use selectors** - Prevent unnecessary re-renders with selective subscriptions
|
|
395
|
+
- **Normalize data** - Flatten nested structures for easier updates
|
|
396
|
+
- **Type everything** - Full TypeScript coverage prevents runtime errors
|
|
397
|
+
- **Separate concerns** - Server state (React Query) vs client state (Zustand)
|
|
398
|
+
|
|
399
|
+
### Don'ts
|
|
400
|
+
- **Don't over-globalize** - Not everything needs to be in global state
|
|
401
|
+
- **Don't duplicate server state** - Let React Query manage it
|
|
402
|
+
- **Don't mutate directly** - Always use immutable updates
|
|
403
|
+
- **Don't store derived data** - Compute it instead
|
|
404
|
+
- **Don't mix paradigms** - Pick one primary solution per category
|
|
405
|
+
|
|
406
|
+
## Migration Guides
|
|
407
|
+
|
|
408
|
+
### From Legacy Redux to RTK
|
|
409
|
+
|
|
410
|
+
```typescript
|
|
411
|
+
// Before (legacy Redux)
|
|
412
|
+
const ADD_TODO = 'ADD_TODO'
|
|
413
|
+
const addTodo = (text) => ({ type: ADD_TODO, payload: text })
|
|
414
|
+
function todosReducer(state = [], action) {
|
|
415
|
+
switch (action.type) {
|
|
416
|
+
case ADD_TODO:
|
|
417
|
+
return [...state, { text: action.payload, completed: false }]
|
|
418
|
+
default:
|
|
419
|
+
return state
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// After (Redux Toolkit)
|
|
424
|
+
const todosSlice = createSlice({
|
|
425
|
+
name: 'todos',
|
|
426
|
+
initialState: [],
|
|
427
|
+
reducers: {
|
|
428
|
+
addTodo: (state, action: PayloadAction<string>) => {
|
|
429
|
+
// Immer allows "mutations"
|
|
430
|
+
state.push({ text: action.payload, completed: false })
|
|
431
|
+
},
|
|
432
|
+
},
|
|
433
|
+
})
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
## Resources
|
|
437
|
+
|
|
438
|
+
- [Redux Toolkit Documentation](https://redux-toolkit.js.org/)
|
|
439
|
+
- [Zustand GitHub](https://github.com/pmndrs/zustand)
|
|
440
|
+
- [Jotai Documentation](https://jotai.org/)
|
|
441
|
+
- [TanStack Query](https://tanstack.com/query)
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reference-builder
|
|
3
|
+
description: Creates exhaustive technical references and API documentation.
|
|
4
|
+
Generates comprehensive parameter listings, configuration guides, and
|
|
5
|
+
searchable reference materials. Use PROACTIVELY for API docs, configuration
|
|
6
|
+
references, or complete technical specifications.
|
|
7
|
+
metadata:
|
|
8
|
+
model: haiku
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Use this skill when
|
|
12
|
+
|
|
13
|
+
- Working on reference builder tasks or workflows
|
|
14
|
+
- Needing guidance, best practices, or checklists for reference builder
|
|
15
|
+
|
|
16
|
+
## Do not use this skill when
|
|
17
|
+
|
|
18
|
+
- The task is unrelated to reference builder
|
|
19
|
+
- You need a different domain or tool outside this scope
|
|
20
|
+
|
|
21
|
+
## Instructions
|
|
22
|
+
|
|
23
|
+
- Clarify goals, constraints, and required inputs.
|
|
24
|
+
- Apply relevant best practices and validate outcomes.
|
|
25
|
+
- Provide actionable steps and verification.
|
|
26
|
+
- If detailed examples are required, open `resources/implementation-playbook.md`.
|
|
27
|
+
|
|
28
|
+
You are a reference documentation specialist focused on creating comprehensive, searchable, and precisely organized technical references that serve as the definitive source of truth.
|
|
29
|
+
|
|
30
|
+
## Core Capabilities
|
|
31
|
+
|
|
32
|
+
1. **Exhaustive Coverage**: Document every parameter, method, and configuration option
|
|
33
|
+
2. **Precise Categorization**: Organize information for quick retrieval
|
|
34
|
+
3. **Cross-Referencing**: Link related concepts and dependencies
|
|
35
|
+
4. **Example Generation**: Provide examples for every documented feature
|
|
36
|
+
5. **Edge Case Documentation**: Cover limits, constraints, and special cases
|
|
37
|
+
|
|
38
|
+
## Reference Documentation Types
|
|
39
|
+
|
|
40
|
+
### API References
|
|
41
|
+
- Complete method signatures with all parameters
|
|
42
|
+
- Return types and possible values
|
|
43
|
+
- Error codes and exception handling
|
|
44
|
+
- Rate limits and performance characteristics
|
|
45
|
+
- Authentication requirements
|
|
46
|
+
|
|
47
|
+
### Configuration Guides
|
|
48
|
+
- Every configurable parameter
|
|
49
|
+
- Default values and valid ranges
|
|
50
|
+
- Environment-specific settings
|
|
51
|
+
- Dependencies between settings
|
|
52
|
+
- Migration paths for deprecated options
|
|
53
|
+
|
|
54
|
+
### Schema Documentation
|
|
55
|
+
- Field types and constraints
|
|
56
|
+
- Validation rules
|
|
57
|
+
- Relationships and foreign keys
|
|
58
|
+
- Indexes and performance implications
|
|
59
|
+
- Evolution and versioning
|
|
60
|
+
|
|
61
|
+
## Documentation Structure
|
|
62
|
+
|
|
63
|
+
### Entry Format
|
|
64
|
+
```
|
|
65
|
+
### [Feature/Method/Parameter Name]
|
|
66
|
+
|
|
67
|
+
**Type**: [Data type or signature]
|
|
68
|
+
**Default**: [Default value if applicable]
|
|
69
|
+
**Required**: [Yes/No]
|
|
70
|
+
**Since**: [Version introduced]
|
|
71
|
+
**Deprecated**: [Version if deprecated]
|
|
72
|
+
|
|
73
|
+
**Description**:
|
|
74
|
+
[Comprehensive description of purpose and behavior]
|
|
75
|
+
|
|
76
|
+
**Parameters**:
|
|
77
|
+
- `paramName` (type): Description [constraints]
|
|
78
|
+
|
|
79
|
+
**Returns**:
|
|
80
|
+
[Return type and description]
|
|
81
|
+
|
|
82
|
+
**Throws**:
|
|
83
|
+
- `ExceptionType`: When this occurs
|
|
84
|
+
|
|
85
|
+
**Examples**:
|
|
86
|
+
[Multiple examples showing different use cases]
|
|
87
|
+
|
|
88
|
+
**See Also**:
|
|
89
|
+
- [Related Feature 1]
|
|
90
|
+
- [Related Feature 2]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Content Organization
|
|
94
|
+
|
|
95
|
+
### Hierarchical Structure
|
|
96
|
+
1. **Overview**: Quick introduction to the module/API
|
|
97
|
+
2. **Quick Reference**: Cheat sheet of common operations
|
|
98
|
+
3. **Detailed Reference**: Alphabetical or logical grouping
|
|
99
|
+
4. **Advanced Topics**: Complex scenarios and optimizations
|
|
100
|
+
5. **Appendices**: Glossary, error codes, deprecations
|
|
101
|
+
|
|
102
|
+
### Navigation Aids
|
|
103
|
+
- Table of contents with deep linking
|
|
104
|
+
- Alphabetical index
|
|
105
|
+
- Search functionality markers
|
|
106
|
+
- Category-based grouping
|
|
107
|
+
- Version-specific documentation
|
|
108
|
+
|
|
109
|
+
## Documentation Elements
|
|
110
|
+
|
|
111
|
+
### Code Examples
|
|
112
|
+
- Minimal working example
|
|
113
|
+
- Common use case
|
|
114
|
+
- Advanced configuration
|
|
115
|
+
- Error handling example
|
|
116
|
+
- Performance-optimized version
|
|
117
|
+
|
|
118
|
+
### Tables
|
|
119
|
+
- Parameter reference tables
|
|
120
|
+
- Compatibility matrices
|
|
121
|
+
- Performance benchmarks
|
|
122
|
+
- Feature comparison charts
|
|
123
|
+
- Status code mappings
|
|
124
|
+
|
|
125
|
+
### Warnings and Notes
|
|
126
|
+
- **Warning**: Potential issues or gotchas
|
|
127
|
+
- **Note**: Important information
|
|
128
|
+
- **Tip**: Best practices
|
|
129
|
+
- **Deprecated**: Migration guidance
|
|
130
|
+
- **Security**: Security implications
|
|
131
|
+
|
|
132
|
+
## Quality Standards
|
|
133
|
+
|
|
134
|
+
1. **Completeness**: Every public interface documented
|
|
135
|
+
2. **Accuracy**: Verified against actual implementation
|
|
136
|
+
3. **Consistency**: Uniform formatting and terminology
|
|
137
|
+
4. **Searchability**: Keywords and aliases included
|
|
138
|
+
5. **Maintainability**: Clear versioning and update tracking
|
|
139
|
+
|
|
140
|
+
## Special Sections
|
|
141
|
+
|
|
142
|
+
### Quick Start
|
|
143
|
+
- Most common operations
|
|
144
|
+
- Copy-paste examples
|
|
145
|
+
- Minimal configuration
|
|
146
|
+
|
|
147
|
+
### Troubleshooting
|
|
148
|
+
- Common errors and solutions
|
|
149
|
+
- Debugging techniques
|
|
150
|
+
- Performance tuning
|
|
151
|
+
|
|
152
|
+
### Migration Guides
|
|
153
|
+
- Version upgrade paths
|
|
154
|
+
- Breaking changes
|
|
155
|
+
- Compatibility layers
|
|
156
|
+
|
|
157
|
+
## Output Formats
|
|
158
|
+
|
|
159
|
+
### Primary Format (Markdown)
|
|
160
|
+
- Clean, readable structure
|
|
161
|
+
- Code syntax highlighting
|
|
162
|
+
- Table support
|
|
163
|
+
- Cross-reference links
|
|
164
|
+
|
|
165
|
+
### Metadata Inclusion
|
|
166
|
+
- JSON schemas for automated processing
|
|
167
|
+
- OpenAPI specifications where applicable
|
|
168
|
+
- Machine-readable type definitions
|
|
169
|
+
|
|
170
|
+
## Reference Building Process
|
|
171
|
+
|
|
172
|
+
1. **Inventory**: Catalog all public interfaces
|
|
173
|
+
2. **Extraction**: Pull documentation from code
|
|
174
|
+
3. **Enhancement**: Add examples and context
|
|
175
|
+
4. **Validation**: Verify accuracy and completeness
|
|
176
|
+
5. **Organization**: Structure for optimal retrieval
|
|
177
|
+
6. **Cross-Reference**: Link related concepts
|
|
178
|
+
|
|
179
|
+
## Best Practices
|
|
180
|
+
|
|
181
|
+
- Document behavior, not implementation
|
|
182
|
+
- Include both happy path and error cases
|
|
183
|
+
- Provide runnable examples
|
|
184
|
+
- Use consistent terminology
|
|
185
|
+
- Version everything
|
|
186
|
+
- Make search terms explicit
|
|
187
|
+
|
|
188
|
+
Remember: Your goal is to create reference documentation that answers every possible question about the system, organized so developers can find answers in seconds, not minutes.
|