claudeinone-cli 1.0.1 → 1.0.3
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/dist/index.js +16 -1
- package/kit/.claude/.ck.json +9 -0
- package/kit/.claude/.ckignore +12 -0
- package/kit/.claude/agents/accessibility-auditor.md +46 -0
- package/kit/.claude/agents/api-designer.md +43 -0
- package/kit/.claude/agents/backend-developer.md +54 -0
- package/kit/.claude/agents/brainstormer.md +33 -0
- package/kit/.claude/agents/campaign-manager.md +36 -0
- package/kit/.claude/agents/code-reviewer.md +39 -0
- package/kit/.claude/agents/content-creator.md +38 -0
- package/kit/.claude/agents/copywriter.md +42 -0
- package/kit/.claude/agents/database-admin.md +37 -0
- package/kit/.claude/agents/debugger.md +46 -0
- package/kit/.claude/agents/devops-engineer.md +41 -0
- package/kit/.claude/agents/docs-manager.md +33 -0
- package/kit/.claude/agents/email-wizard.md +40 -0
- package/kit/.claude/agents/frontend-developer.md +52 -0
- package/kit/.claude/agents/fullstack-developer.md +55 -0
- package/kit/.claude/agents/git-manager.md +40 -0
- package/kit/.claude/agents/i18n-specialist.md +46 -0
- package/kit/.claude/agents/integration-specialist.md +48 -0
- package/kit/.claude/agents/journal-writer.md +39 -0
- package/kit/.claude/agents/mcp-manager.md +57 -0
- package/kit/.claude/agents/mobile-developer.md +38 -0
- package/kit/.claude/agents/performance-optimizer.md +38 -0
- package/kit/.claude/agents/planner.md +56 -0
- package/kit/.claude/agents/project-manager.md +34 -0
- package/kit/.claude/agents/refactorer.md +43 -0
- package/kit/.claude/agents/researcher.md +45 -0
- package/kit/.claude/agents/risk-analyst.md +33 -0
- package/kit/.claude/agents/scalability-consultant.md +39 -0
- package/kit/.claude/agents/scout.md +25 -0
- package/kit/.claude/agents/security-auditor.md +42 -0
- package/kit/.claude/agents/seo-specialist.md +44 -0
- package/kit/.claude/agents/skill-creator.md +64 -0
- package/kit/.claude/agents/social-media-manager.md +35 -0
- package/kit/.claude/agents/systems-designer.md +35 -0
- package/kit/.claude/agents/technology-strategist.md +43 -0
- package/kit/.claude/agents/tester.md +40 -0
- package/kit/.claude/agents/ui-ux-designer.md +40 -0
- package/kit/.claude/commands/co/ask.md +29 -0
- package/kit/.claude/commands/co/bootstrap-auto-fast.md +28 -0
- package/kit/.claude/commands/co/bootstrap-auto-parallel.md +29 -0
- package/kit/.claude/commands/co/bootstrap-auto.md +30 -0
- package/kit/.claude/commands/co/bootstrap.md +31 -0
- package/kit/.claude/commands/co/brainstorm.md +27 -0
- package/kit/.claude/commands/co/campaign.md +28 -0
- package/kit/.claude/commands/co/changelog.md +25 -0
- package/kit/.claude/commands/co/checkpoint.md +25 -0
- package/kit/.claude/commands/co/ci.md +26 -0
- package/kit/.claude/commands/co/ck-help.md +24 -0
- package/kit/.claude/commands/co/coding-level.md +24 -0
- package/kit/.claude/commands/co/content-cro.md +26 -0
- package/kit/.claude/commands/co/content-enhance.md +26 -0
- package/kit/.claude/commands/co/content-fast.md +24 -0
- package/kit/.claude/commands/co/content-good.md +26 -0
- package/kit/.claude/commands/co/cook.md +33 -0
- package/kit/.claude/commands/co/debug.md +26 -0
- package/kit/.claude/commands/co/deploy.md +25 -0
- package/kit/.claude/commands/co/design-3d.md +27 -0
- package/kit/.claude/commands/co/design-describe.md +25 -0
- package/kit/.claude/commands/co/design-fast.md +25 -0
- package/kit/.claude/commands/co/design-good.md +28 -0
- package/kit/.claude/commands/co/design-screenshot.md +26 -0
- package/kit/.claude/commands/co/design-video.md +26 -0
- package/kit/.claude/commands/co/docker.md +24 -0
- package/kit/.claude/commands/co/docs-api.md +25 -0
- package/kit/.claude/commands/co/docs-init.md +26 -0
- package/kit/.claude/commands/co/docs-readme.md +24 -0
- package/kit/.claude/commands/co/docs-summarize.md +25 -0
- package/kit/.claude/commands/co/docs-update.md +25 -0
- package/kit/.claude/commands/co/env-check.md +25 -0
- package/kit/.claude/commands/co/fix-ci.md +29 -0
- package/kit/.claude/commands/co/fix-fast.md +28 -0
- package/kit/.claude/commands/co/fix-hard.md +33 -0
- package/kit/.claude/commands/co/fix-logs.md +28 -0
- package/kit/.claude/commands/co/fix-types.md +28 -0
- package/kit/.claude/commands/co/fix-ui.md +28 -0
- package/kit/.claude/commands/co/fix.md +27 -0
- package/kit/.claude/commands/co/git-cm.md +26 -0
- package/kit/.claude/commands/co/git-cp.md +26 -0
- package/kit/.claude/commands/co/git-pr.md +26 -0
- package/kit/.claude/commands/co/index.md +24 -0
- package/kit/.claude/commands/co/integrate-polar.md +29 -0
- package/kit/.claude/commands/co/integrate-sepay.md +29 -0
- package/kit/.claude/commands/co/journal.md +27 -0
- package/kit/.claude/commands/co/k8s.md +24 -0
- package/kit/.claude/commands/co/kanban.md +25 -0
- package/kit/.claude/commands/co/lint-fix.md +24 -0
- package/kit/.claude/commands/co/load.md +25 -0
- package/kit/.claude/commands/co/migrate.md +28 -0
- package/kit/.claude/commands/co/mock.md +26 -0
- package/kit/.claude/commands/co/mode.md +24 -0
- package/kit/.claude/commands/co/monitor.md +25 -0
- package/kit/.claude/commands/co/new-feature.md +27 -0
- package/kit/.claude/commands/co/optimize.md +26 -0
- package/kit/.claude/commands/co/plan-archive.md +24 -0
- package/kit/.claude/commands/co/plan-ci.md +28 -0
- package/kit/.claude/commands/co/plan-cro.md +27 -0
- package/kit/.claude/commands/co/plan-fast.md +24 -0
- package/kit/.claude/commands/co/plan-hard.md +27 -0
- package/kit/.claude/commands/co/plan-parallel.md +25 -0
- package/kit/.claude/commands/co/plan-two.md +29 -0
- package/kit/.claude/commands/co/plan-validate.md +27 -0
- package/kit/.claude/commands/co/plan.md +27 -0
- package/kit/.claude/commands/co/pr.md +25 -0
- package/kit/.claude/commands/co/preview.md +26 -0
- package/kit/.claude/commands/co/refactor.md +25 -0
- package/kit/.claude/commands/co/release.md +25 -0
- package/kit/.claude/commands/co/review-a11y.md +24 -0
- package/kit/.claude/commands/co/review-codebase-parallel.md +27 -0
- package/kit/.claude/commands/co/review-codebase.md +27 -0
- package/kit/.claude/commands/co/review-perf.md +24 -0
- package/kit/.claude/commands/co/review-security.md +25 -0
- package/kit/.claude/commands/co/scaffold.md +25 -0
- package/kit/.claude/commands/co/scout.md +26 -0
- package/kit/.claude/commands/co/secure.md +26 -0
- package/kit/.claude/commands/co/seed.md +25 -0
- package/kit/.claude/commands/co/seo-audit.md +24 -0
- package/kit/.claude/commands/co/seo-keywords.md +25 -0
- package/kit/.claude/commands/co/skill-create.md +29 -0
- package/kit/.claude/commands/co/skill-fix-logs.md +28 -0
- package/kit/.claude/commands/co/slide-create.md +24 -0
- package/kit/.claude/commands/co/spawn.md +24 -0
- package/kit/.claude/commands/co/terraform.md +24 -0
- package/kit/.claude/commands/co/test-gen.md +24 -0
- package/kit/.claude/commands/co/test-ui.md +27 -0
- package/kit/.claude/commands/co/test.md +26 -0
- package/kit/.claude/commands/co/use-mcp.md +25 -0
- package/kit/.claude/commands/co/video-script.md +25 -0
- package/kit/.claude/commands/co/watzup.md +25 -0
- package/kit/.claude/commands/co/worktree.md +25 -0
- package/kit/.claude/commands/co/write-blog.md +25 -0
- package/kit/.claude/commands/co/write-copy.md +24 -0
- package/kit/.claude/commands/co/write-email.md +25 -0
- package/kit/.claude/commands/content/content-cro.md +26 -0
- package/kit/.claude/commands/content/content-enhance.md +26 -0
- package/kit/.claude/commands/content/content-fast.md +24 -0
- package/kit/.claude/commands/content/content-good.md +26 -0
- package/kit/.claude/commands/content/enhance.md +26 -0
- package/kit/.claude/commands/content/good.md +26 -0
- package/kit/.claude/commands/core/ask.md +29 -0
- package/kit/.claude/commands/core/bootstrap-auto-fast.md +28 -0
- package/kit/.claude/commands/core/bootstrap-auto-parallel.md +29 -0
- package/kit/.claude/commands/core/bootstrap-auto.md +30 -0
- package/kit/.claude/commands/core/bootstrap.md +31 -0
- package/kit/.claude/commands/core/ck-help.md +24 -0
- package/kit/.claude/commands/core/coding-level.md +24 -0
- package/kit/.claude/commands/core/cook.md +33 -0
- package/kit/.claude/commands/core/debug.md +26 -0
- package/kit/.claude/commands/core/journal.md +27 -0
- package/kit/.claude/commands/core/kanban.md +25 -0
- package/kit/.claude/commands/core/preview.md +26 -0
- package/kit/.claude/commands/core/scout.md +26 -0
- package/kit/.claude/commands/core/test-ui.md +27 -0
- package/kit/.claude/commands/core/test.md +26 -0
- package/kit/.claude/commands/core/use-mcp.md +25 -0
- package/kit/.claude/commands/core/watzup.md +25 -0
- package/kit/.claude/commands/core/worktree.md +25 -0
- package/kit/.claude/commands/design/3d.md +27 -0
- package/kit/.claude/commands/design/design-3d.md +27 -0
- package/kit/.claude/commands/design/design-describe.md +25 -0
- package/kit/.claude/commands/design/design-fast.md +25 -0
- package/kit/.claude/commands/design/design-good.md +28 -0
- package/kit/.claude/commands/design/design-screenshot.md +26 -0
- package/kit/.claude/commands/design/design-video.md +26 -0
- package/kit/.claude/commands/design/good.md +28 -0
- package/kit/.claude/commands/design/video.md +26 -0
- package/kit/.claude/commands/docs/docs-init.md +26 -0
- package/kit/.claude/commands/docs/docs-summarize.md +25 -0
- package/kit/.claude/commands/docs/docs-update.md +25 -0
- package/kit/.claude/commands/docs/init.md +26 -0
- package/kit/.claude/commands/docs/summarize.md +25 -0
- package/kit/.claude/commands/fix/ci.md +29 -0
- package/kit/.claude/commands/fix/fast.md +28 -0
- package/kit/.claude/commands/fix/fix-ci.md +29 -0
- package/kit/.claude/commands/fix/fix-fast.md +28 -0
- package/kit/.claude/commands/fix/fix-hard.md +33 -0
- package/kit/.claude/commands/fix/fix-logs.md +28 -0
- package/kit/.claude/commands/fix/fix-types.md +28 -0
- package/kit/.claude/commands/fix/fix-ui.md +28 -0
- package/kit/.claude/commands/fix/hard.md +33 -0
- package/kit/.claude/commands/fix/logs.md +28 -0
- package/kit/.claude/commands/fix/types.md +28 -0
- package/kit/.claude/commands/fix/ui.md +28 -0
- package/kit/.claude/commands/git/cp.md +26 -0
- package/kit/.claude/commands/git/git-cm.md +26 -0
- package/kit/.claude/commands/git/git-cp.md +26 -0
- package/kit/.claude/commands/git/git-pr.md +26 -0
- package/kit/.claude/commands/integrate/integrate-polar.md +29 -0
- package/kit/.claude/commands/integrate/integrate-sepay.md +29 -0
- package/kit/.claude/commands/integrate/sepay.md +29 -0
- package/kit/.claude/commands/plan/ci.md +28 -0
- package/kit/.claude/commands/plan/cro.md +27 -0
- package/kit/.claude/commands/plan/hard.md +27 -0
- package/kit/.claude/commands/plan/plan-archive.md +24 -0
- package/kit/.claude/commands/plan/plan-ci.md +28 -0
- package/kit/.claude/commands/plan/plan-cro.md +27 -0
- package/kit/.claude/commands/plan/plan-fast.md +24 -0
- package/kit/.claude/commands/plan/plan-hard.md +27 -0
- package/kit/.claude/commands/plan/plan-parallel.md +25 -0
- package/kit/.claude/commands/plan/plan-two.md +29 -0
- package/kit/.claude/commands/plan/plan-validate.md +27 -0
- package/kit/.claude/commands/plan/plan.md +27 -0
- package/kit/.claude/commands/plan/validate.md +27 -0
- package/kit/.claude/commands/skill/fix-logs.md +28 -0
- package/kit/.claude/commands/skill/skill-create.md +29 -0
- package/kit/.claude/commands/skill/skill-fix-logs.md +28 -0
- package/kit/.claude/settings.json +16 -0
- package/kit/.claude/skills/ai-anthropic.md +100 -0
- package/kit/.claude/skills/ai-context-engineering.md +113 -0
- package/kit/.claude/skills/ai-gemini.md +152 -0
- package/kit/.claude/skills/ai-langchain.md +93 -0
- package/kit/.claude/skills/ai-llamaindex.md +179 -0
- package/kit/.claude/skills/ai-mcp-builder.md +101 -0
- package/kit/.claude/skills/ai-openai.md +250 -0
- package/kit/.claude/skills/ai-prompt-engineering.md +173 -0
- package/kit/.claude/skills/ai-rag.md +91 -0
- package/kit/.claude/skills/ai-vectordb.md +215 -0
- package/kit/.claude/skills/analytics-segment.md +161 -0
- package/kit/.claude/skills/api-caching.md +103 -0
- package/kit/.claude/skills/api-documentation.md +50 -0
- package/kit/.claude/skills/api-graphql.md +234 -0
- package/kit/.claude/skills/api-openapi.md +116 -0
- package/kit/.claude/skills/api-pagination-filtering.md +239 -0
- package/kit/.claude/skills/api-rate-limiting.md +179 -0
- package/kit/.claude/skills/api-rest-advanced.md +50 -0
- package/kit/.claude/skills/api-rest.md +217 -0
- package/kit/.claude/skills/api-trpc.md +173 -0
- package/kit/.claude/skills/api-versioning.md +70 -0
- package/kit/.claude/skills/api-webhooks.md +226 -0
- package/kit/.claude/skills/arch-clean-code.md +226 -0
- package/kit/.claude/skills/arch-clean.md +91 -0
- package/kit/.claude/skills/arch-cqrs.md +229 -0
- package/kit/.claude/skills/arch-ddd.md +85 -0
- package/kit/.claude/skills/arch-event-driven.md +189 -0
- package/kit/.claude/skills/arch-microservices.md +80 -0
- package/kit/.claude/skills/arch-monorepo.md +87 -0
- package/kit/.claude/skills/arch-multi-tenant.md +81 -0
- package/kit/.claude/skills/arch-serverless.md +86 -0
- package/kit/.claude/skills/auth-clerk.md +97 -0
- package/kit/.claude/skills/auth-jwt.md +143 -0
- package/kit/.claude/skills/auth-lucia.md +93 -0
- package/kit/.claude/skills/auth-nextauth.md +446 -0
- package/kit/.claude/skills/auth-oauth.md +208 -0
- package/kit/.claude/skills/auth-oauth2.md +110 -0
- package/kit/.claude/skills/auth-passkeys.md +109 -0
- package/kit/.claude/skills/auth-session.md +88 -0
- package/kit/.claude/skills/backend-dotnet.md +414 -0
- package/kit/.claude/skills/backend-express.md +129 -0
- package/kit/.claude/skills/backend-fastify.md +104 -0
- package/kit/.claude/skills/backend-go.md +205 -0
- package/kit/.claude/skills/backend-graphql.md +149 -0
- package/kit/.claude/skills/backend-grpc.md +382 -0
- package/kit/.claude/skills/backend-hono.md +95 -0
- package/kit/.claude/skills/backend-java-spring.md +198 -0
- package/kit/.claude/skills/backend-nodejs-express.md +165 -0
- package/kit/.claude/skills/backend-nodejs.md +143 -0
- package/kit/.claude/skills/backend-php-laravel.md +156 -0
- package/kit/.claude/skills/backend-python-django.md +200 -0
- package/kit/.claude/skills/backend-python-fastapi.md +169 -0
- package/kit/.claude/skills/backend-ruby-rails.md +190 -0
- package/kit/.claude/skills/backend-rust.md +182 -0
- package/kit/.claude/skills/backend-websockets.md +392 -0
- package/kit/.claude/skills/cache-redis.md +195 -0
- package/kit/.claude/skills/caching-strategies.md +100 -0
- package/kit/.claude/skills/cloud-aws.md +165 -0
- package/kit/.claude/skills/cloud-azure.md +187 -0
- package/kit/.claude/skills/cloud-cloudflare.md +74 -0
- package/kit/.claude/skills/cloud-fly.md +94 -0
- package/kit/.claude/skills/cloud-gcp.md +160 -0
- package/kit/.claude/skills/cloud-railway.md +92 -0
- package/kit/.claude/skills/cloud-render.md +70 -0
- package/kit/.claude/skills/cloud-serverless.md +68 -0
- package/kit/.claude/skills/cloud-vercel.md +76 -0
- package/kit/.claude/skills/component-patterns.md +50 -0
- package/kit/.claude/skills/content-management.md +197 -0
- package/kit/.claude/skills/cors-security.md +50 -0
- package/kit/.claude/skills/data-csv-excel.md +210 -0
- package/kit/.claude/skills/database-optimization.md +196 -0
- package/kit/.claude/skills/databases-transactions.md +68 -0
- package/kit/.claude/skills/db-cassandra.md +89 -0
- package/kit/.claude/skills/db-drizzle.md +363 -0
- package/kit/.claude/skills/db-dynamodb.md +83 -0
- package/kit/.claude/skills/db-elasticsearch.md +105 -0
- package/kit/.claude/skills/db-firebase-firestore.md +191 -0
- package/kit/.claude/skills/db-mongodb.md +198 -0
- package/kit/.claude/skills/db-mysql.md +50 -0
- package/kit/.claude/skills/db-neon.md +72 -0
- package/kit/.claude/skills/db-planetscale.md +76 -0
- package/kit/.claude/skills/db-postgresql.md +50 -0
- package/kit/.claude/skills/db-prisma.md +414 -0
- package/kit/.claude/skills/db-redis.md +50 -0
- package/kit/.claude/skills/db-sqlite.md +149 -0
- package/kit/.claude/skills/db-supabase.md +445 -0
- package/kit/.claude/skills/devops-ci-cd.md +271 -0
- package/kit/.claude/skills/devops-database-backup.md +77 -0
- package/kit/.claude/skills/devops-docker.md +93 -0
- package/kit/.claude/skills/devops-github-actions.md +82 -0
- package/kit/.claude/skills/devops-health-checks.md +50 -0
- package/kit/.claude/skills/devops-kubernetes.md +109 -0
- package/kit/.claude/skills/devops-logging.md +163 -0
- package/kit/.claude/skills/devops-monitoring.md +203 -0
- package/kit/.claude/skills/devops-pulumi.md +94 -0
- package/kit/.claude/skills/devops-secrets.md +166 -0
- package/kit/.claude/skills/devops-terraform.md +226 -0
- package/kit/.claude/skills/error-boundaries.md +84 -0
- package/kit/.claude/skills/file-storage.md +50 -0
- package/kit/.claude/skills/frontend-angular.md +104 -0
- package/kit/.claude/skills/frontend-astro.md +94 -0
- package/kit/.claude/skills/frontend-bundle-analysis.md +147 -0
- package/kit/.claude/skills/frontend-forms.md +134 -0
- package/kit/.claude/skills/frontend-htmx.md +86 -0
- package/kit/.claude/skills/frontend-nextjs.md +188 -0
- package/kit/.claude/skills/frontend-pwa.md +105 -0
- package/kit/.claude/skills/frontend-react-hooks.md +238 -0
- package/kit/.claude/skills/frontend-react.md +129 -0
- package/kit/.claude/skills/frontend-remix-advanced.md +106 -0
- package/kit/.claude/skills/frontend-remix.md +101 -0
- package/kit/.claude/skills/frontend-solid.md +99 -0
- package/kit/.claude/skills/frontend-state-management.md +134 -0
- package/kit/.claude/skills/frontend-state.md +106 -0
- package/kit/.claude/skills/frontend-svelte.md +121 -0
- package/kit/.claude/skills/frontend-testing.md +100 -0
- package/kit/.claude/skills/frontend-vite.md +94 -0
- package/kit/.claude/skills/frontend-vue.md +133 -0
- package/kit/.claude/skills/frontend-webpack.md +93 -0
- package/kit/.claude/skills/functional-programming.md +50 -0
- package/kit/.claude/skills/hooks-custom.md +50 -0
- package/kit/.claude/skills/http-server.md +50 -0
- package/kit/.claude/skills/i18n-general.md +89 -0
- package/kit/.claude/skills/i18n-localization.md +191 -0
- package/kit/.claude/skills/i18n-nextjs.md +127 -0
- package/kit/.claude/skills/infrastructure-docker-compose.md +77 -0
- package/kit/.claude/skills/infrastructure-serverless.md +177 -0
- package/kit/.claude/skills/jwt-tokens.md +50 -0
- package/kit/.claude/skills/logging-winston.md +106 -0
- package/kit/.claude/skills/messaging-kafka.md +102 -0
- package/kit/.claude/skills/messaging-rabbitmq.md +50 -0
- package/kit/.claude/skills/mobile-capacitor.md +109 -0
- package/kit/.claude/skills/mobile-expo.md +101 -0
- package/kit/.claude/skills/mobile-flutter.md +259 -0
- package/kit/.claude/skills/mobile-react-native.md +238 -0
- package/kit/.claude/skills/monitoring-apm.md +50 -0
- package/kit/.claude/skills/monitoring-error-tracking.md +217 -0
- package/kit/.claude/skills/nodejs-streams.md +168 -0
- package/kit/.claude/skills/oauth-integration.md +50 -0
- package/kit/.claude/skills/patterns-dependency-injection.md +218 -0
- package/kit/.claude/skills/patterns-factory-singleton.md +209 -0
- package/kit/.claude/skills/patterns-observer-pubsub.md +210 -0
- package/kit/.claude/skills/payment-lemonsqueezy.md +101 -0
- package/kit/.claude/skills/payment-square.md +178 -0
- package/kit/.claude/skills/payment-stripe.md +206 -0
- package/kit/.claude/skills/perf-bundle.md +100 -0
- package/kit/.claude/skills/perf-web-vitals.md +102 -0
- package/kit/.claude/skills/performance-database-connection-pooling.md +67 -0
- package/kit/.claude/skills/performance-metrics.md +73 -0
- package/kit/.claude/skills/performance-optimization.md +208 -0
- package/kit/.claude/skills/performance-web-vitals.md +169 -0
- package/kit/.claude/skills/rate-limiting.md +77 -0
- package/kit/.claude/skills/reactive-programming.md +50 -0
- package/kit/.claude/skills/realtime-database.md +50 -0
- package/kit/.claude/skills/realtime-subscriptions.md +218 -0
- package/kit/.claude/skills/saas-ab-testing.md +90 -0
- package/kit/.claude/skills/saas-analytics.md +113 -0
- package/kit/.claude/skills/saas-billing.md +106 -0
- package/kit/.claude/skills/saas-email.md +88 -0
- package/kit/.claude/skills/saas-feature-flags.md +83 -0
- package/kit/.claude/skills/saas-onboarding.md +96 -0
- package/kit/.claude/skills/saas-user-onboarding.md +207 -0
- package/kit/.claude/skills/security-encryption.md +216 -0
- package/kit/.claude/skills/security-owasp.md +212 -0
- package/kit/.claude/skills/security-secrets-rotation.md +64 -0
- package/kit/.claude/skills/seo-content.md +94 -0
- package/kit/.claude/skills/seo-technical.md +101 -0
- package/kit/.claude/skills/serverless-framework.md +151 -0
- package/kit/.claude/skills/sharding-scaling.md +50 -0
- package/kit/.claude/skills/styling-css-modules.md +219 -0
- package/kit/.claude/skills/styling-styled-components.md +206 -0
- package/kit/.claude/skills/styling-tailwind.md +206 -0
- package/kit/.claude/skills/test-e2e.md +86 -0
- package/kit/.claude/skills/test-integration.md +216 -0
- package/kit/.claude/skills/test-performance.md +162 -0
- package/kit/.claude/skills/test-tdd.md +170 -0
- package/kit/.claude/skills/test-unit.md +301 -0
- package/kit/.claude/skills/testing-accessibility.md +117 -0
- package/kit/.claude/skills/testing-contract.md +75 -0
- package/kit/.claude/skills/testing-e2e-advanced.md +50 -0
- package/kit/.claude/skills/testing-load-stress.md +79 -0
- package/kit/.claude/skills/testing-mutation.md +92 -0
- package/kit/.claude/skills/testing-snapshot.md +50 -0
- package/kit/.claude/skills/testing-vitest.md +172 -0
- package/kit/.claude/skills/tooling-biome.md +91 -0
- package/kit/.claude/skills/tooling-build-tools.md +166 -0
- package/kit/.claude/skills/tooling-bun.md +94 -0
- package/kit/.claude/skills/tooling-eslint.md +103 -0
- package/kit/.claude/skills/tooling-git.md +79 -0
- package/kit/.claude/skills/tooling-monorepo.md +162 -0
- package/kit/.claude/skills/tooling-testing-frameworks.md +207 -0
- package/kit/.claude/skills/tooling-typescript.md +156 -0
- package/kit/.claude/skills/ui-a11y.md +106 -0
- package/kit/.claude/skills/ui-framer.md +106 -0
- package/kit/.claude/skills/ui-gsap.md +102 -0
- package/kit/.claude/skills/ui-radix.md +82 -0
- package/kit/.claude/skills/ui-shadcn.md +463 -0
- package/kit/.claude/skills/ui-tailwind.md +98 -0
- package/kit/.claude/skills/ui-threejs.md +110 -0
- package/kit/.claude/skills/ui-tokens.md +97 -0
- package/kit/.claude/skills/utilities-date-time.md +170 -0
- package/kit/.claude/skills/validation-schemas.md +110 -0
- package/kit/.claude/skills/version-control-git.md +144 -0
- package/kit/.claude/skills/web-accessibility-wcag.md +102 -0
- package/kit/.claude/skills/web-astro.md +197 -0
- package/kit/.claude/skills/web-html-css.md +224 -0
- package/kit/.claude/skills/web-htmx.md +99 -0
- package/kit/.claude/skills/web-nextjs-advanced.md +202 -0
- package/kit/.claude/skills/web-remix.md +194 -0
- package/kit/.claude/skills/web-seo.md +99 -0
- package/kit/.claude/skills/web-svelte.md +234 -0
- package/kit/.claude/skills/websocket-server.md +50 -0
- package/kit/.claude/skills/writing-marketing.md +89 -0
- package/kit/.claude/skills/writing-technical.md +119 -0
- package/kit/CLAUDE.md +206 -0
- package/kit/README.md +150 -0
- package/kit/SKILLS_INDEX.md +188 -0
- package/kit/docs/README.md +3 -0
- package/kit/journals/README.md +3 -0
- package/kit/plans/README.md +3 -0
- package/package.json +3 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Frontend Testing
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Test React components with React Testing Library, mock APIs with MSW, and run E2E tests with Playwright.
|
|
5
|
+
|
|
6
|
+
## React Testing Library
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install -D @testing-library/react @testing-library/user-event @testing-library/jest-dom
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
```tsx
|
|
13
|
+
// components/LoginForm.test.tsx
|
|
14
|
+
import { render, screen } from '@testing-library/react';
|
|
15
|
+
import userEvent from '@testing-library/user-event';
|
|
16
|
+
import { LoginForm } from './LoginForm';
|
|
17
|
+
|
|
18
|
+
describe('LoginForm', () => {
|
|
19
|
+
it('shows error on invalid email', async () => {
|
|
20
|
+
render(<LoginForm onSubmit={vi.fn()} />);
|
|
21
|
+
await userEvent.type(screen.getByLabelText('Email'), 'notanemail');
|
|
22
|
+
await userEvent.click(screen.getByRole('button', { name: /sign in/i }));
|
|
23
|
+
expect(screen.getByText(/invalid email/i)).toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('calls onSubmit with credentials', async () => {
|
|
27
|
+
const onSubmit = vi.fn();
|
|
28
|
+
render(<LoginForm onSubmit={onSubmit} />);
|
|
29
|
+
await userEvent.type(screen.getByLabelText('Email'), 'user@example.com');
|
|
30
|
+
await userEvent.type(screen.getByLabelText('Password'), 'password123');
|
|
31
|
+
await userEvent.click(screen.getByRole('button', { name: /sign in/i }));
|
|
32
|
+
expect(onSubmit).toHaveBeenCalledWith({ email: 'user@example.com', password: 'password123' });
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## MSW (Mock Service Worker)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install -D msw
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
// src/mocks/handlers.ts
|
|
45
|
+
import { http, HttpResponse } from 'msw';
|
|
46
|
+
|
|
47
|
+
export const handlers = [
|
|
48
|
+
http.get('/api/users', () => {
|
|
49
|
+
return HttpResponse.json([
|
|
50
|
+
{ id: '1', name: 'Alice', email: 'alice@example.com' }
|
|
51
|
+
]);
|
|
52
|
+
}),
|
|
53
|
+
http.post('/api/users', async ({ request }) => {
|
|
54
|
+
const body = await request.json() as any;
|
|
55
|
+
return HttpResponse.json({ id: '2', ...body }, { status: 201 });
|
|
56
|
+
}),
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
// src/mocks/server.ts (Node.js for tests)
|
|
60
|
+
import { setupServer } from 'msw/node';
|
|
61
|
+
export const server = setupServer(...handlers);
|
|
62
|
+
|
|
63
|
+
// vitest.setup.ts
|
|
64
|
+
import { server } from './src/mocks/server';
|
|
65
|
+
beforeAll(() => server.listen());
|
|
66
|
+
afterEach(() => server.resetHandlers());
|
|
67
|
+
afterAll(() => server.close());
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Playwright E2E
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install -D @playwright/test
|
|
74
|
+
npx playwright install
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
// e2e/login.spec.ts
|
|
79
|
+
import { test, expect } from '@playwright/test';
|
|
80
|
+
|
|
81
|
+
test('user can log in', async ({ page }) => {
|
|
82
|
+
await page.goto('/login');
|
|
83
|
+
await page.fill('[name="email"]', 'user@example.com');
|
|
84
|
+
await page.fill('[name="password"]', 'password123');
|
|
85
|
+
await page.click('button[type="submit"]');
|
|
86
|
+
await expect(page).toHaveURL('/dashboard');
|
|
87
|
+
await expect(page.getByText('Welcome')).toBeVisible();
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Best Practices
|
|
92
|
+
- Test behavior, not implementation — query by role, label, text
|
|
93
|
+
- Use MSW for API mocking instead of `vi.mock` for fetch
|
|
94
|
+
- Write E2E tests for critical user flows only (login, checkout, signup)
|
|
95
|
+
- Run component tests with `jsdom`, E2E with real browser
|
|
96
|
+
|
|
97
|
+
## Resources
|
|
98
|
+
- [Testing Library docs](https://testing-library.com/docs)
|
|
99
|
+
- [MSW docs](https://mswjs.io/docs)
|
|
100
|
+
- [Playwright docs](https://playwright.dev)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Vite
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Vite is a fast build tool using native ES modules in dev and Rollup for production builds.
|
|
5
|
+
|
|
6
|
+
## Setup
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm create vite@latest my-app -- --template react-ts
|
|
10
|
+
cd my-app && npm install && npm run dev
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## vite.config.ts
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { defineConfig } from 'vite';
|
|
17
|
+
import react from '@vitejs/plugin-react';
|
|
18
|
+
import path from 'path';
|
|
19
|
+
|
|
20
|
+
export default defineConfig({
|
|
21
|
+
plugins: [react()],
|
|
22
|
+
resolve: {
|
|
23
|
+
alias: { '@': path.resolve(__dirname, './src') }
|
|
24
|
+
},
|
|
25
|
+
server: {
|
|
26
|
+
port: 3000,
|
|
27
|
+
proxy: {
|
|
28
|
+
'/api': { target: 'http://localhost:8080', changeOrigin: true }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
build: {
|
|
32
|
+
target: 'esnext',
|
|
33
|
+
sourcemap: true,
|
|
34
|
+
rollupOptions: {
|
|
35
|
+
output: {
|
|
36
|
+
manualChunks: {
|
|
37
|
+
vendor: ['react', 'react-dom'],
|
|
38
|
+
router: ['react-router-dom'],
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Environment Variables
|
|
47
|
+
|
|
48
|
+
```env
|
|
49
|
+
# .env.development
|
|
50
|
+
VITE_API_URL=http://localhost:8080
|
|
51
|
+
VITE_APP_NAME=My App Dev
|
|
52
|
+
|
|
53
|
+
# .env.production
|
|
54
|
+
VITE_API_URL=https://api.example.com
|
|
55
|
+
VITE_APP_NAME=My App
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
// Access in code (must start with VITE_)
|
|
60
|
+
const apiUrl = import.meta.env.VITE_API_URL;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Path Aliases in TypeScript
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
// tsconfig.json
|
|
67
|
+
{
|
|
68
|
+
"compilerOptions": {
|
|
69
|
+
"paths": { "@/*": ["./src/*"] }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Bundle Analysis
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npm install -D rollup-plugin-visualizer
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import { visualizer } from 'rollup-plugin-visualizer';
|
|
82
|
+
export default defineConfig({
|
|
83
|
+
plugins: [react(), visualizer({ open: true, gzipSize: true })]
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Best Practices
|
|
88
|
+
- Use path aliases (`@/`) for clean imports
|
|
89
|
+
- Use `manualChunks` to split vendor and feature bundles
|
|
90
|
+
- Run `vite preview` before deploying to test production build locally
|
|
91
|
+
- Use `import.meta.env.PROD` to conditionally include debug tools
|
|
92
|
+
|
|
93
|
+
## Resources
|
|
94
|
+
- [Vite docs](https://vitejs.dev/guide/)
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Vue 3
|
|
2
|
+
|
|
3
|
+
Progressive JavaScript framework with reactive data binding and component-based architecture.
|
|
4
|
+
|
|
5
|
+
## Composition API (Recommended)
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
import { ref, computed, onMounted } from 'vue';
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
setup() {
|
|
12
|
+
const count = ref(0);
|
|
13
|
+
const doubled = computed(() => count.value * 2);
|
|
14
|
+
|
|
15
|
+
const increment = () => {
|
|
16
|
+
count.value++;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
onMounted(() => {
|
|
20
|
+
console.log('Component mounted');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
return { count, doubled, increment };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Template Syntax
|
|
29
|
+
|
|
30
|
+
```vue
|
|
31
|
+
<template>
|
|
32
|
+
<div>
|
|
33
|
+
<p>Count: {{ count }}</p>
|
|
34
|
+
<p>Doubled: {{ doubled }}</p>
|
|
35
|
+
<button @click="increment">+1</button>
|
|
36
|
+
|
|
37
|
+
<div v-if="count > 5">Count is high!</div>
|
|
38
|
+
<ul>
|
|
39
|
+
<li v-for="item in items" :key="item.id">{{ item.name }}</li>
|
|
40
|
+
</ul>
|
|
41
|
+
|
|
42
|
+
<input v-model="message" />
|
|
43
|
+
</div>
|
|
44
|
+
</template>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Reactive Data
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
import { ref, reactive, watch } from 'vue';
|
|
51
|
+
|
|
52
|
+
// ref for single values
|
|
53
|
+
const count = ref(0);
|
|
54
|
+
|
|
55
|
+
// reactive for objects
|
|
56
|
+
const state = reactive({
|
|
57
|
+
user: { name: 'John', age: 30 },
|
|
58
|
+
posts: []
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Watch for changes
|
|
62
|
+
watch(() => state.user.age, (newAge, oldAge) => {
|
|
63
|
+
console.log(`Age changed from ${oldAge} to ${newAge}`);
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Props & Emits
|
|
68
|
+
|
|
69
|
+
```vue
|
|
70
|
+
<!-- Parent -->
|
|
71
|
+
<MyComponent :user="currentUser" @update="handleUpdate" />
|
|
72
|
+
|
|
73
|
+
<!-- Child -->
|
|
74
|
+
<script setup>
|
|
75
|
+
defineProps({
|
|
76
|
+
user: { type: Object, required: true }
|
|
77
|
+
});
|
|
78
|
+
const emit = defineEmits(['update']);
|
|
79
|
+
</script>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Pinia State Management
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
import { defineStore } from 'pinia';
|
|
86
|
+
|
|
87
|
+
export const useCounterStore = defineStore('counter', () => {
|
|
88
|
+
const count = ref(0);
|
|
89
|
+
const increment = () => count.value++;
|
|
90
|
+
return { count, increment };
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Use in component
|
|
94
|
+
import { useCounterStore } from '@/stores/counter';
|
|
95
|
+
|
|
96
|
+
const counter = useCounterStore();
|
|
97
|
+
counter.increment();
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Lifecycle Hooks
|
|
101
|
+
|
|
102
|
+
- `onBeforeMount`, `onMounted` - Mounting
|
|
103
|
+
- `onBeforeUpdate`, `onUpdated` - Updating
|
|
104
|
+
- `onBeforeUnmount`, `onUnmounted` - Unmounting
|
|
105
|
+
|
|
106
|
+
## Best Practices
|
|
107
|
+
|
|
108
|
+
1. Use Composition API for new projects
|
|
109
|
+
2. Keep components focused and reusable
|
|
110
|
+
3. Use Pinia for state management
|
|
111
|
+
4. Leverage reactive data binding
|
|
112
|
+
5. Use TypeScript for type safety
|
|
113
|
+
|
|
114
|
+
## Nuxt (Vue Meta-Framework)
|
|
115
|
+
|
|
116
|
+
Nuxt provides: file-based routing, server-side rendering, API routes, auto-imports.
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
app/
|
|
120
|
+
├── pages/
|
|
121
|
+
│ ├── index.vue # /
|
|
122
|
+
│ └── about.vue # /about
|
|
123
|
+
├── components/ # Auto-imported
|
|
124
|
+
└── server/
|
|
125
|
+
└── routes/
|
|
126
|
+
└── api.ts # /api/*
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Resources
|
|
130
|
+
|
|
131
|
+
- [Vue 3 Docs](https://vuejs.org/)
|
|
132
|
+
- [Pinia Documentation](https://pinia.vuejs.org/)
|
|
133
|
+
- [Nuxt Documentation](https://nuxt.com/)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Webpack
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Webpack is a module bundler with powerful code splitting, tree shaking, and plugin ecosystem for complex build requirements.
|
|
5
|
+
|
|
6
|
+
## webpack.config.ts
|
|
7
|
+
|
|
8
|
+
```typescript
|
|
9
|
+
import path from 'path';
|
|
10
|
+
import HtmlWebpackPlugin from 'html-webpack-plugin';
|
|
11
|
+
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
12
|
+
import { Configuration } from 'webpack';
|
|
13
|
+
|
|
14
|
+
const config: Configuration = {
|
|
15
|
+
entry: './src/index.tsx',
|
|
16
|
+
output: {
|
|
17
|
+
path: path.resolve(__dirname, 'dist'),
|
|
18
|
+
filename: '[name].[contenthash].js',
|
|
19
|
+
clean: true,
|
|
20
|
+
},
|
|
21
|
+
resolve: {
|
|
22
|
+
extensions: ['.tsx', '.ts', '.js'],
|
|
23
|
+
alias: { '@': path.resolve(__dirname, 'src') },
|
|
24
|
+
},
|
|
25
|
+
module: {
|
|
26
|
+
rules: [
|
|
27
|
+
{
|
|
28
|
+
test: /\.(ts|tsx)$/,
|
|
29
|
+
use: 'ts-loader',
|
|
30
|
+
exclude: /node_modules/,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
test: /\.css$/,
|
|
34
|
+
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader'],
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
plugins: [
|
|
39
|
+
new HtmlWebpackPlugin({ template: './public/index.html' }),
|
|
40
|
+
new MiniCssExtractPlugin({ filename: '[name].[contenthash].css' }),
|
|
41
|
+
],
|
|
42
|
+
optimization: {
|
|
43
|
+
splitChunks: {
|
|
44
|
+
chunks: 'all',
|
|
45
|
+
cacheGroups: {
|
|
46
|
+
vendor: { test: /node_modules/, name: 'vendors', chunks: 'all' },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
runtimeChunk: 'single',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default config;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Dev Server
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
import { merge } from 'webpack-merge';
|
|
60
|
+
import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin';
|
|
61
|
+
|
|
62
|
+
export default merge(config, {
|
|
63
|
+
mode: 'development',
|
|
64
|
+
devtool: 'eval-source-map',
|
|
65
|
+
devServer: {
|
|
66
|
+
port: 3000,
|
|
67
|
+
hot: true,
|
|
68
|
+
historyApiFallback: true,
|
|
69
|
+
proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true } },
|
|
70
|
+
},
|
|
71
|
+
plugins: [new ReactRefreshWebpackPlugin()],
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Bundle Analysis
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npm install -D webpack-bundle-analyzer
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';
|
|
83
|
+
plugins: [new BundleAnalyzerPlugin()]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Best Practices
|
|
87
|
+
- Use `[contenthash]` in filenames for long-term caching
|
|
88
|
+
- Split vendor chunks separately from app code
|
|
89
|
+
- Enable `runtimeChunk: 'single'` to share the runtime across chunks
|
|
90
|
+
- Use `ts-loader` with `transpileOnly: true` for faster builds in dev
|
|
91
|
+
|
|
92
|
+
## Resources
|
|
93
|
+
- [Webpack docs](https://webpack.js.org/concepts/)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Production-Ready Skill Implementation
|
|
2
|
+
|
|
3
|
+
## Setup & Installation
|
|
4
|
+
|
|
5
|
+
Detailed installation and configuration steps for the technology.
|
|
6
|
+
|
|
7
|
+
## Core Concepts
|
|
8
|
+
|
|
9
|
+
Fundamental patterns and approaches.
|
|
10
|
+
|
|
11
|
+
## Implementation Examples
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
// Real production code examples
|
|
15
|
+
// with error handling and best practices
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Advanced Patterns
|
|
19
|
+
|
|
20
|
+
Complex scenarios and optimization techniques.
|
|
21
|
+
|
|
22
|
+
## Performance Optimization
|
|
23
|
+
|
|
24
|
+
Tips for maximizing efficiency and speed.
|
|
25
|
+
|
|
26
|
+
## Security Considerations
|
|
27
|
+
|
|
28
|
+
Security best practices specific to this technology.
|
|
29
|
+
|
|
30
|
+
## Testing
|
|
31
|
+
|
|
32
|
+
How to properly test this feature.
|
|
33
|
+
|
|
34
|
+
## Monitoring & Debugging
|
|
35
|
+
|
|
36
|
+
Tools and techniques for production support.
|
|
37
|
+
|
|
38
|
+
## Best Practices
|
|
39
|
+
|
|
40
|
+
✅ Key recommendations
|
|
41
|
+
✅ Common pitfalls to avoid
|
|
42
|
+
✅ Performance considerations
|
|
43
|
+
✅ Security measures
|
|
44
|
+
✅ Production readiness
|
|
45
|
+
|
|
46
|
+
## Resources
|
|
47
|
+
|
|
48
|
+
- Official documentation
|
|
49
|
+
- Community guides
|
|
50
|
+
- Performance benchmarks
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Production-Ready Skill Implementation
|
|
2
|
+
|
|
3
|
+
## Setup & Installation
|
|
4
|
+
|
|
5
|
+
Detailed installation and configuration steps for the technology.
|
|
6
|
+
|
|
7
|
+
## Core Concepts
|
|
8
|
+
|
|
9
|
+
Fundamental patterns and approaches.
|
|
10
|
+
|
|
11
|
+
## Implementation Examples
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
// Real production code examples
|
|
15
|
+
// with error handling and best practices
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Advanced Patterns
|
|
19
|
+
|
|
20
|
+
Complex scenarios and optimization techniques.
|
|
21
|
+
|
|
22
|
+
## Performance Optimization
|
|
23
|
+
|
|
24
|
+
Tips for maximizing efficiency and speed.
|
|
25
|
+
|
|
26
|
+
## Security Considerations
|
|
27
|
+
|
|
28
|
+
Security best practices specific to this technology.
|
|
29
|
+
|
|
30
|
+
## Testing
|
|
31
|
+
|
|
32
|
+
How to properly test this feature.
|
|
33
|
+
|
|
34
|
+
## Monitoring & Debugging
|
|
35
|
+
|
|
36
|
+
Tools and techniques for production support.
|
|
37
|
+
|
|
38
|
+
## Best Practices
|
|
39
|
+
|
|
40
|
+
✅ Key recommendations
|
|
41
|
+
✅ Common pitfalls to avoid
|
|
42
|
+
✅ Performance considerations
|
|
43
|
+
✅ Security measures
|
|
44
|
+
✅ Production readiness
|
|
45
|
+
|
|
46
|
+
## Resources
|
|
47
|
+
|
|
48
|
+
- Official documentation
|
|
49
|
+
- Community guides
|
|
50
|
+
- Performance benchmarks
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Production-Ready Skill Implementation
|
|
2
|
+
|
|
3
|
+
## Setup & Installation
|
|
4
|
+
|
|
5
|
+
Detailed installation and configuration steps for the technology.
|
|
6
|
+
|
|
7
|
+
## Core Concepts
|
|
8
|
+
|
|
9
|
+
Fundamental patterns and approaches.
|
|
10
|
+
|
|
11
|
+
## Implementation Examples
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
// Real production code examples
|
|
15
|
+
// with error handling and best practices
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Advanced Patterns
|
|
19
|
+
|
|
20
|
+
Complex scenarios and optimization techniques.
|
|
21
|
+
|
|
22
|
+
## Performance Optimization
|
|
23
|
+
|
|
24
|
+
Tips for maximizing efficiency and speed.
|
|
25
|
+
|
|
26
|
+
## Security Considerations
|
|
27
|
+
|
|
28
|
+
Security best practices specific to this technology.
|
|
29
|
+
|
|
30
|
+
## Testing
|
|
31
|
+
|
|
32
|
+
How to properly test this feature.
|
|
33
|
+
|
|
34
|
+
## Monitoring & Debugging
|
|
35
|
+
|
|
36
|
+
Tools and techniques for production support.
|
|
37
|
+
|
|
38
|
+
## Best Practices
|
|
39
|
+
|
|
40
|
+
✅ Key recommendations
|
|
41
|
+
✅ Common pitfalls to avoid
|
|
42
|
+
✅ Performance considerations
|
|
43
|
+
✅ Security measures
|
|
44
|
+
✅ Production readiness
|
|
45
|
+
|
|
46
|
+
## Resources
|
|
47
|
+
|
|
48
|
+
- Official documentation
|
|
49
|
+
- Community guides
|
|
50
|
+
- Performance benchmarks
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Internationalization (i18n)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Support multiple languages and locales in your application with proper translation management and locale-aware formatting.
|
|
5
|
+
|
|
6
|
+
## react-i18next
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install i18next react-i18next i18next-browser-languagedetector
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
// src/i18n/index.ts
|
|
14
|
+
import i18n from 'i18next';
|
|
15
|
+
import { initReactI18next } from 'react-i18next';
|
|
16
|
+
import LanguageDetector from 'i18next-browser-languagedetector';
|
|
17
|
+
import en from './locales/en.json';
|
|
18
|
+
import es from './locales/es.json';
|
|
19
|
+
import ja from './locales/ja.json';
|
|
20
|
+
|
|
21
|
+
i18n
|
|
22
|
+
.use(LanguageDetector)
|
|
23
|
+
.use(initReactI18next)
|
|
24
|
+
.init({
|
|
25
|
+
resources: { en: { translation: en }, es: { translation: es }, ja: { translation: ja } },
|
|
26
|
+
fallbackLng: 'en',
|
|
27
|
+
interpolation: { escapeValue: false },
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Translation Files
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
// locales/en.json
|
|
35
|
+
{
|
|
36
|
+
"common": { "save": "Save", "cancel": "Cancel", "loading": "Loading..." },
|
|
37
|
+
"auth": {
|
|
38
|
+
"login": "Sign in",
|
|
39
|
+
"welcome": "Welcome, {{name}}!",
|
|
40
|
+
"items": "{{count}} item",
|
|
41
|
+
"items_other": "{{count}} items"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Usage in Components
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
import { useTranslation } from 'react-i18next';
|
|
50
|
+
|
|
51
|
+
function Header({ user }: { user: User }) {
|
|
52
|
+
const { t, i18n } = useTranslation();
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<div>
|
|
56
|
+
<h1>{t('auth.welcome', { name: user.name })}</h1>
|
|
57
|
+
<p>{t('auth.items', { count: 5 })}</p>
|
|
58
|
+
<select value={i18n.language} onChange={e => i18n.changeLanguage(e.target.value)}>
|
|
59
|
+
<option value="en">English</option>
|
|
60
|
+
<option value="es">Español</option>
|
|
61
|
+
<option value="ja">日本語</option>
|
|
62
|
+
</select>
|
|
63
|
+
</div>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Date/Number/Currency Formatting
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// Locale-aware formatting
|
|
72
|
+
const formatter = new Intl.DateTimeFormat('ja-JP', { year: 'numeric', month: 'long', day: 'numeric' });
|
|
73
|
+
const price = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });
|
|
74
|
+
const percent = new Intl.NumberFormat('en-US', { style: 'percent', maximumFractionDigits: 1 });
|
|
75
|
+
|
|
76
|
+
formatter.format(new Date()); // '2024年1月15日'
|
|
77
|
+
price.format(1234.56); // '1.234,56 €'
|
|
78
|
+
percent.format(0.856); // '85.6%'
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Best Practices
|
|
82
|
+
- Use ICU message format for plurals and genders
|
|
83
|
+
- Never hardcode strings — extract all user-visible text
|
|
84
|
+
- Provide context keys in long files (`auth.login`, `common.save`)
|
|
85
|
+
- Test RTL layout for Arabic and Hebrew with `dir="rtl"`
|
|
86
|
+
|
|
87
|
+
## Resources
|
|
88
|
+
- [react-i18next docs](https://react.i18next.com)
|
|
89
|
+
- [Intl API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl)
|