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,194 @@
|
|
|
1
|
+
# Remix
|
|
2
|
+
|
|
3
|
+
Full-stack framework for building modern web applications with React and TypeScript.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm create remix@latest my-app
|
|
9
|
+
cd my-app
|
|
10
|
+
npm install
|
|
11
|
+
npm run dev
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Route Handler
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// app/routes/users.$id.tsx
|
|
18
|
+
import { json, type LoaderFunctionArgs } from '@remix-run/node';
|
|
19
|
+
import { useLoaderData } from '@remix-run/react';
|
|
20
|
+
|
|
21
|
+
export async function loader({ params }: LoaderFunctionArgs) {
|
|
22
|
+
const user = await db.users.findById(params.id);
|
|
23
|
+
|
|
24
|
+
if (!user) {
|
|
25
|
+
throw new Response('Not Found', { status: 404 });
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return json({ user });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export default function UserPage() {
|
|
32
|
+
const { user } = useLoaderData<typeof loader>();
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<div>
|
|
36
|
+
<h1>{user.name}</h1>
|
|
37
|
+
<p>{user.email}</p>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Forms
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
// app/routes/users.new.tsx
|
|
47
|
+
import { json, redirect, type ActionFunctionArgs } from '@remix-run/node';
|
|
48
|
+
import { Form, useActionData } from '@remix-run/react';
|
|
49
|
+
|
|
50
|
+
export async function action({ request }: ActionFunctionArgs) {
|
|
51
|
+
if (request.method !== 'POST') {
|
|
52
|
+
return json({ error: 'Method not allowed' }, { status: 405 });
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const formData = await request.formData();
|
|
56
|
+
const email = formData.get('email');
|
|
57
|
+
const name = formData.get('name');
|
|
58
|
+
|
|
59
|
+
const errors = {};
|
|
60
|
+
if (!email) errors.email = 'Email required';
|
|
61
|
+
if (!name) errors.name = 'Name required';
|
|
62
|
+
|
|
63
|
+
if (Object.keys(errors).length > 0) {
|
|
64
|
+
return json({ errors }, { status: 400 });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const user = await db.users.create({ email, name });
|
|
68
|
+
|
|
69
|
+
return redirect(`/users/${user.id}`);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default function NewUser() {
|
|
73
|
+
const actionData = useActionData<typeof action>();
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<Form method="post">
|
|
77
|
+
<label>
|
|
78
|
+
Email:
|
|
79
|
+
<input name="email" type="email" required />
|
|
80
|
+
{actionData?.errors.email && <span>{actionData.errors.email}</span>}
|
|
81
|
+
</label>
|
|
82
|
+
|
|
83
|
+
<label>
|
|
84
|
+
Name:
|
|
85
|
+
<input name="name" type="text" required />
|
|
86
|
+
{actionData?.errors.name && <span>{actionData.errors.name}</span>}
|
|
87
|
+
</label>
|
|
88
|
+
|
|
89
|
+
<button type="submit">Create User</button>
|
|
90
|
+
</Form>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Nested Routes
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
// app/routes/dashboard.tsx
|
|
99
|
+
import { Outlet } from '@remix-run/react';
|
|
100
|
+
|
|
101
|
+
export default function DashboardLayout() {
|
|
102
|
+
return (
|
|
103
|
+
<div className="dashboard">
|
|
104
|
+
<nav>
|
|
105
|
+
<Link to="/dashboard/overview">Overview</Link>
|
|
106
|
+
<Link to="/dashboard/analytics">Analytics</Link>
|
|
107
|
+
</nav>
|
|
108
|
+
<main>
|
|
109
|
+
<Outlet />
|
|
110
|
+
</main>
|
|
111
|
+
</div>
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// app/routes/dashboard.overview.tsx
|
|
116
|
+
export default function Overview() {
|
|
117
|
+
return <h1>Overview</h1>;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// app/routes/dashboard.analytics.tsx
|
|
121
|
+
export default function Analytics() {
|
|
122
|
+
return <h1>Analytics</h1>;
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Database Integration
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
// app/services/user.server.ts
|
|
130
|
+
import { db } from '~/utils/db.server';
|
|
131
|
+
|
|
132
|
+
export async function getUser(id: string) {
|
|
133
|
+
return db.users.findUnique({ where: { id } });
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export async function createUser(data: CreateUserInput) {
|
|
137
|
+
return db.users.create({ data });
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// app/routes/api/users.ts
|
|
141
|
+
import { json, type ActionFunctionArgs } from '@remix-run/node';
|
|
142
|
+
import { createUser } from '~/services/user.server';
|
|
143
|
+
|
|
144
|
+
export async function action({ request }: ActionFunctionArgs) {
|
|
145
|
+
if (request.method !== 'POST') {
|
|
146
|
+
return json({ error: 'Method not allowed' }, { status: 405 });
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const data = await request.json();
|
|
150
|
+
const user = await createUser(data);
|
|
151
|
+
|
|
152
|
+
return json(user, { status: 201 });
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Error Handling
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
// app/routes/users.$id.tsx
|
|
160
|
+
import { useRouteError, isRouteErrorResponse } from '@remix-run/react';
|
|
161
|
+
|
|
162
|
+
export function ErrorBoundary() {
|
|
163
|
+
const error = useRouteError();
|
|
164
|
+
|
|
165
|
+
if (isRouteErrorResponse(error)) {
|
|
166
|
+
return (
|
|
167
|
+
<div>
|
|
168
|
+
<h1>{error.status} {error.statusText}</h1>
|
|
169
|
+
<p>{error.data?.message}</p>
|
|
170
|
+
</div>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return (
|
|
175
|
+
<div>
|
|
176
|
+
<h1>Error</h1>
|
|
177
|
+
<p>{error instanceof Error ? error.message : 'Unknown error'}</p>
|
|
178
|
+
</div>
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Best Practices
|
|
184
|
+
|
|
185
|
+
✅ **Server functions** - Keep business logic on server
|
|
186
|
+
✅ **Progressive enhancement** - Works without JavaScript
|
|
187
|
+
✅ **Form handling** - Remix forms > fetch
|
|
188
|
+
✅ **Nested routes** - DRY layout patterns
|
|
189
|
+
✅ **Database queries** - Use .server files
|
|
190
|
+
|
|
191
|
+
## Resources
|
|
192
|
+
|
|
193
|
+
- [Remix Documentation](https://remix.run/docs)
|
|
194
|
+
- [Remix Guide](https://remix.run/docs/en/main/start/tutorial)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# SEO Best Practices
|
|
2
|
+
|
|
3
|
+
Optimizing for search engines.
|
|
4
|
+
|
|
5
|
+
## Meta Tags
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<head>
|
|
9
|
+
<title>Page Title (50-60 characters)</title>
|
|
10
|
+
<meta name="description" content="Page description (150-160 characters)">
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
12
|
+
|
|
13
|
+
<!-- Open Graph -->
|
|
14
|
+
<meta property="og:title" content="Title">
|
|
15
|
+
<meta property="og:description" content="Description">
|
|
16
|
+
<meta property="og:image" content="image.jpg">
|
|
17
|
+
<meta property="og:url" content="https://example.com">
|
|
18
|
+
|
|
19
|
+
<!-- Twitter Card -->
|
|
20
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
21
|
+
</head>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Structured Data
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"@context": "https://schema.org",
|
|
29
|
+
"@type": "Article",
|
|
30
|
+
"headline": "Article Title",
|
|
31
|
+
"author": {
|
|
32
|
+
"@type": "Person",
|
|
33
|
+
"name": "John Doe"
|
|
34
|
+
},
|
|
35
|
+
"datePublished": "2024-01-15",
|
|
36
|
+
"image": "image.jpg"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Next.js SEO
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import Head from 'next/head';
|
|
44
|
+
|
|
45
|
+
export default function Page() {
|
|
46
|
+
return (
|
|
47
|
+
<>
|
|
48
|
+
<Head>
|
|
49
|
+
<title>Page Title</title>
|
|
50
|
+
<meta name="description" content="Description" />
|
|
51
|
+
<link rel="canonical" href="https://example.com/page" />
|
|
52
|
+
</Head>
|
|
53
|
+
<h1>Content</h1>
|
|
54
|
+
</>
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Performance
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Page Speed Insights metrics:
|
|
63
|
+
- Largest Contentful Paint < 2.5s
|
|
64
|
+
- First Input Delay < 100ms
|
|
65
|
+
- Cumulative Layout Shift < 0.1
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Robots & Sitemap
|
|
69
|
+
|
|
70
|
+
```robots
|
|
71
|
+
User-agent: *
|
|
72
|
+
Allow: /
|
|
73
|
+
Disallow: /admin
|
|
74
|
+
Disallow: /private
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```xml
|
|
78
|
+
<!-- sitemap.xml -->
|
|
79
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
80
|
+
<url>
|
|
81
|
+
<loc>https://example.com/page1</loc>
|
|
82
|
+
<lastmod>2024-01-15</lastmod>
|
|
83
|
+
<priority>0.8</priority>
|
|
84
|
+
</url>
|
|
85
|
+
</urlset>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Best Practices
|
|
89
|
+
|
|
90
|
+
✅ **Descriptive headings** - Use H1-H6 properly
|
|
91
|
+
✅ **URL structure** - Short, descriptive URLs
|
|
92
|
+
✅ **Internal links** - Link related pages
|
|
93
|
+
✅ **Mobile optimization** - Responsive design
|
|
94
|
+
✅ **Page speed** - Fast load times
|
|
95
|
+
|
|
96
|
+
## Resources
|
|
97
|
+
|
|
98
|
+
- [Google SEO Starter Guide](https://developers.google.com/search/docs)
|
|
99
|
+
- [Moz SEO Guide](https://moz.com/beginners-guide-to-seo)
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Svelte
|
|
2
|
+
|
|
3
|
+
Reactive compiler for building user interfaces with minimal boilerplate.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm create vite@latest my-app -- --template svelte
|
|
9
|
+
cd my-app
|
|
10
|
+
npm install
|
|
11
|
+
npm run dev
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Basic Component
|
|
15
|
+
|
|
16
|
+
```svelte
|
|
17
|
+
<script>
|
|
18
|
+
let count = 0;
|
|
19
|
+
let name = 'World';
|
|
20
|
+
|
|
21
|
+
function increment() {
|
|
22
|
+
count += 1;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
$: doubled = count * 2;
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<style>
|
|
29
|
+
button {
|
|
30
|
+
background-color: #333;
|
|
31
|
+
color: white;
|
|
32
|
+
padding: 10px 20px;
|
|
33
|
+
border: none;
|
|
34
|
+
border-radius: 4px;
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
}
|
|
37
|
+
</style>
|
|
38
|
+
|
|
39
|
+
<main>
|
|
40
|
+
<h1>Hello {name}!</h1>
|
|
41
|
+
<p>Count: {count}</p>
|
|
42
|
+
<p>Doubled: {doubled}</p>
|
|
43
|
+
<button on:click={increment}>
|
|
44
|
+
Increment
|
|
45
|
+
</button>
|
|
46
|
+
</main>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Reactivity
|
|
50
|
+
|
|
51
|
+
```svelte
|
|
52
|
+
<script>
|
|
53
|
+
let todos = [];
|
|
54
|
+
let input = '';
|
|
55
|
+
|
|
56
|
+
// Reactive declaration
|
|
57
|
+
$: incomplete = todos.filter(t => !t.completed).length;
|
|
58
|
+
|
|
59
|
+
// Reactive statement
|
|
60
|
+
$: if (incomplete === 0) {
|
|
61
|
+
console.log('All done!');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function addTodo() {
|
|
65
|
+
todos = [...todos, {
|
|
66
|
+
id: Date.now(),
|
|
67
|
+
text: input,
|
|
68
|
+
completed: false
|
|
69
|
+
}];
|
|
70
|
+
input = '';
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function toggleTodo(id) {
|
|
74
|
+
todos = todos.map(t =>
|
|
75
|
+
t.id === id ? { ...t, completed: !t.completed } : t
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
</script>
|
|
79
|
+
|
|
80
|
+
<div>
|
|
81
|
+
<input bind:value={input} placeholder="Add todo">
|
|
82
|
+
<button on:click={addTodo}>Add</button>
|
|
83
|
+
|
|
84
|
+
<ul>
|
|
85
|
+
{#each todos as todo (todo.id)}
|
|
86
|
+
<li class:done={todo.completed}>
|
|
87
|
+
<input type="checkbox" bind:checked={todo.completed}>
|
|
88
|
+
{todo.text}
|
|
89
|
+
</li>
|
|
90
|
+
{/each}
|
|
91
|
+
</ul>
|
|
92
|
+
|
|
93
|
+
<p>Incomplete: {incomplete}</p>
|
|
94
|
+
</div>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Component Props
|
|
98
|
+
|
|
99
|
+
```svelte
|
|
100
|
+
<!-- Parent.svelte -->
|
|
101
|
+
<script>
|
|
102
|
+
import Card from './Card.svelte';
|
|
103
|
+
</script>
|
|
104
|
+
|
|
105
|
+
<Card title="User Profile" subtitle="View details">
|
|
106
|
+
<p>Card content here</p>
|
|
107
|
+
</Card>
|
|
108
|
+
|
|
109
|
+
<!-- Card.svelte -->
|
|
110
|
+
<script>
|
|
111
|
+
export let title;
|
|
112
|
+
export let subtitle = '';
|
|
113
|
+
</script>
|
|
114
|
+
|
|
115
|
+
<div class="card">
|
|
116
|
+
<h2>{title}</h2>
|
|
117
|
+
{#if subtitle}
|
|
118
|
+
<p class="subtitle">{subtitle}</p>
|
|
119
|
+
{/if}
|
|
120
|
+
<slot></slot>
|
|
121
|
+
</div>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Forms & Binding
|
|
125
|
+
|
|
126
|
+
```svelte
|
|
127
|
+
<script>
|
|
128
|
+
let form = {
|
|
129
|
+
email: '',
|
|
130
|
+
password: '',
|
|
131
|
+
remember: false,
|
|
132
|
+
country: 'US'
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
function handleSubmit() {
|
|
136
|
+
console.log('Form data:', form);
|
|
137
|
+
}
|
|
138
|
+
</script>
|
|
139
|
+
|
|
140
|
+
<form on:submit|preventDefault={handleSubmit}>
|
|
141
|
+
<input type="email" bind:value={form.email} required>
|
|
142
|
+
<input type="password" bind:value={form.password} required>
|
|
143
|
+
|
|
144
|
+
<select bind:value={form.country}>
|
|
145
|
+
<option value="US">United States</option>
|
|
146
|
+
<option value="CA">Canada</option>
|
|
147
|
+
<option value="UK">United Kingdom</option>
|
|
148
|
+
</select>
|
|
149
|
+
|
|
150
|
+
<label>
|
|
151
|
+
<input type="checkbox" bind:checked={form.remember}>
|
|
152
|
+
Remember me
|
|
153
|
+
</label>
|
|
154
|
+
|
|
155
|
+
<button type="submit">Login</button>
|
|
156
|
+
</form>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Lifecycle
|
|
160
|
+
|
|
161
|
+
```svelte
|
|
162
|
+
<script>
|
|
163
|
+
import { onMount, onDestroy } from 'svelte';
|
|
164
|
+
|
|
165
|
+
let count = 0;
|
|
166
|
+
let unsubscribe;
|
|
167
|
+
|
|
168
|
+
onMount(() => {
|
|
169
|
+
// Component mounted
|
|
170
|
+
const interval = setInterval(() => {
|
|
171
|
+
count += 1;
|
|
172
|
+
}, 1000);
|
|
173
|
+
|
|
174
|
+
return () => clearInterval(interval);
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
onDestroy(() => {
|
|
178
|
+
// Cleanup
|
|
179
|
+
console.log('Component destroyed');
|
|
180
|
+
});
|
|
181
|
+
</script>
|
|
182
|
+
|
|
183
|
+
<p>Count: {count}</p>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## SvelteKit Routing
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
// +page.svelte
|
|
190
|
+
<script>
|
|
191
|
+
import { page } from '$app/stores';
|
|
192
|
+
</script>
|
|
193
|
+
|
|
194
|
+
<h1>{$page.data.title}</h1>
|
|
195
|
+
|
|
196
|
+
<!-- +page.server.ts -->
|
|
197
|
+
export async function load({ params }) {
|
|
198
|
+
return {
|
|
199
|
+
title: 'Home',
|
|
200
|
+
data: await fetchData()
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Animations
|
|
206
|
+
|
|
207
|
+
```svelte
|
|
208
|
+
<script>
|
|
209
|
+
import { fade, slide } from 'svelte/transition';
|
|
210
|
+
|
|
211
|
+
let visible = true;
|
|
212
|
+
</script>
|
|
213
|
+
|
|
214
|
+
{#if visible}
|
|
215
|
+
<div transition:fade={{ duration: 300 }}>
|
|
216
|
+
<p transition:slide>Animated content</p>
|
|
217
|
+
</div>
|
|
218
|
+
{/if}
|
|
219
|
+
|
|
220
|
+
<button on:click={() => visible = !visible}>Toggle</button>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Best Practices
|
|
224
|
+
|
|
225
|
+
✅ **Reactive declarations** - Use $: for computed values
|
|
226
|
+
✅ **Component composition** - Break into small pieces
|
|
227
|
+
✅ **Stores** - For shared state across components
|
|
228
|
+
✅ **Scoped styles** - CSS is component-scoped by default
|
|
229
|
+
✅ **Performance** - Svelte compiles to optimized code
|
|
230
|
+
|
|
231
|
+
## Resources
|
|
232
|
+
|
|
233
|
+
- [Svelte Documentation](https://svelte.dev/)
|
|
234
|
+
- [SvelteKit](https://kit.svelte.dev/)
|
|
@@ -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
|
+
# Marketing Writing
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Write compelling marketing copy that converts visitors into users — landing pages, emails, and product messaging.
|
|
5
|
+
|
|
6
|
+
## Value Proposition Framework
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
Formula: [Product] helps [target audience] [do/achieve X] without [pain point].
|
|
10
|
+
|
|
11
|
+
Examples:
|
|
12
|
+
- "ClaudeInOne helps developers ship production-grade code faster without wasting time on boilerplate."
|
|
13
|
+
- "Resend helps developers send transactional emails that actually reach the inbox, without managing mail servers."
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Landing Page Structure
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
# Hero Section
|
|
20
|
+
Headline: Bold claim that speaks to the #1 desire
|
|
21
|
+
Subheadline: Clarify how, for whom, and why it's different
|
|
22
|
+
CTA: Specific action button ("Start for free" > "Get started")
|
|
23
|
+
|
|
24
|
+
# Social Proof
|
|
25
|
+
- User count, company logos, ratings
|
|
26
|
+
- "Join 10,000+ developers" — specific numbers build trust
|
|
27
|
+
|
|
28
|
+
# Features → Benefits
|
|
29
|
+
Feature: "Real-time collaboration"
|
|
30
|
+
Benefit: "Ship features 3x faster with your whole team working together"
|
|
31
|
+
Rule: Every feature should have a "so you can..." benefit
|
|
32
|
+
|
|
33
|
+
# How It Works
|
|
34
|
+
3-step process — make it look easy
|
|
35
|
+
|
|
36
|
+
# Testimonials
|
|
37
|
+
Quote, name, company, photo — specific results preferred
|
|
38
|
+
"Reduced our deploy time from 2 hours to 15 minutes" > "Great tool!"
|
|
39
|
+
|
|
40
|
+
# Pricing
|
|
41
|
+
Clear tiers, highlight recommended plan, monthly/annual toggle
|
|
42
|
+
|
|
43
|
+
# FAQ
|
|
44
|
+
Address top 5 objections before they arise
|
|
45
|
+
|
|
46
|
+
# Final CTA
|
|
47
|
+
Repeat the main CTA with urgency or guarantee
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Email Subject Lines
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Formulas that work:
|
|
54
|
+
- [Number] ways to [achieve goal]: "5 ways to reduce API latency"
|
|
55
|
+
- Question that challenges assumption: "Are your deployments still taking 30 minutes?"
|
|
56
|
+
- Urgency: "Your trial ends in 24 hours"
|
|
57
|
+
- Personal: "Quick question about your project, [first name]"
|
|
58
|
+
- Intrigue: "The mistake 90% of developers make"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Microcopy Patterns
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
// Empty states — tell users what to do, not what's missing
|
|
65
|
+
// BAD: "No projects found"
|
|
66
|
+
// GOOD: "Create your first project to get started"
|
|
67
|
+
|
|
68
|
+
// Buttons — action + context
|
|
69
|
+
// BAD: "Submit" / "OK" / "Yes"
|
|
70
|
+
// GOOD: "Create Project" / "Confirm Delete" / "Yes, cancel subscription"
|
|
71
|
+
|
|
72
|
+
// Error messages — tell users how to fix it
|
|
73
|
+
// BAD: "An error occurred"
|
|
74
|
+
// GOOD: "Your session expired. Sign in again to continue."
|
|
75
|
+
|
|
76
|
+
// Placeholder text — show the format, not just the label
|
|
77
|
+
// BAD: "Enter email"
|
|
78
|
+
// GOOD: "name@company.com"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Best Practices
|
|
82
|
+
- Write to one person: "you" not "users"
|
|
83
|
+
- Specifics > generics: "saves 2 hours/day" > "saves time"
|
|
84
|
+
- Benefits > features: "ship faster" > "automated deployments"
|
|
85
|
+
- Address the top objection in your headline or first paragraph
|
|
86
|
+
|
|
87
|
+
## Resources
|
|
88
|
+
- [Copyhackers](https://copyhackers.com/blog/)
|
|
89
|
+
- [Harry Dry's Marketing Examples](https://marketingexamples.com)
|