@ngxtm/devkit 3.7.0 → 3.8.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/merged-commands/3d-web-experience.md +254 -0
- package/merged-commands/ab-test-setup.md +232 -0
- package/merged-commands/accessibility-compliance-accessibility-audit.md +42 -0
- package/merged-commands/active-directory-attacks.md +383 -0
- package/merged-commands/address-github-comments.md +55 -0
- package/merged-commands/aesthetic.md +134 -0
- package/merged-commands/agent-evaluation.md +64 -0
- package/merged-commands/agent-framework-azure-hosted-agents.md +332 -0
- package/merged-commands/agent-manager-skill.md +40 -0
- package/merged-commands/agent-memory-mcp.md +82 -0
- package/merged-commands/agent-memory-systems.md +67 -0
- package/merged-commands/agent-orchestration-improve-agent.md +349 -0
- package/merged-commands/agent-orchestration-multi-agent-optimize.md +239 -0
- package/merged-commands/agent-tool-builder.md +53 -0
- package/merged-commands/agile-product-owner.md +31 -0
- package/merged-commands/ai-agents-architect.md +90 -0
- package/merged-commands/ai-artist.md +75 -0
- package/merged-commands/ai-engineer.md +171 -0
- package/merged-commands/ai-multimodal.md +109 -0
- package/merged-commands/ai-product.md +54 -0
- package/merged-commands/ai-wrapper-product.md +273 -0
- package/merged-commands/airflow-dag-patterns.md +41 -0
- package/merged-commands/algolia-search.md +66 -0
- package/merged-commands/algorithmic-art.md +405 -0
- package/merged-commands/analytics-tracking.md +404 -0
- package/merged-commands/angular-architect.md +97 -0
- package/merged-commands/angular-migration.md +428 -0
- package/merged-commands/anti-reversing-techniques.md +42 -0
- package/merged-commands/api-design-principles.md +37 -0
- package/merged-commands/api-designer.md +101 -0
- package/merged-commands/api-documentation-generator.md +484 -0
- package/merged-commands/api-documenter.md +184 -0
- package/merged-commands/api-fuzzing-bug-bounty.md +433 -0
- package/merged-commands/api-patterns.md +81 -0
- package/merged-commands/api-security-best-practices.md +907 -0
- package/merged-commands/api-testing-observability-api-mock.md +46 -0
- package/merged-commands/app-builder.md +75 -0
- package/merged-commands/app-store-optimization.md +403 -0
- package/merged-commands/application-performance-performance-optimization.md +154 -0
- package/merged-commands/architect-review.md +174 -0
- package/merged-commands/architecture-decision-records.md +441 -0
- package/merged-commands/architecture-designer.md +89 -0
- package/merged-commands/architecture-patterns.md +37 -0
- package/merged-commands/architecture.md +55 -0
- package/merged-commands/arm-cortex-expert.md +306 -0
- package/merged-commands/artifacts-builder.md +74 -0
- package/merged-commands/ask-questions-if-underspecified.md +81 -0
- package/merged-commands/async-python-patterns.md +39 -0
- package/merged-commands/atlassian-mcp.md +100 -0
- package/merged-commands/attack-tree-construction.md +38 -0
- package/merged-commands/auth-implementation-patterns.md +39 -0
- package/merged-commands/automate-whatsapp.md +257 -0
- package/merged-commands/autonomous-agent-patterns.md +761 -0
- package/merged-commands/autonomous-agents.md +68 -0
- package/merged-commands/avalonia-layout-zafiro.md +59 -0
- package/merged-commands/avalonia-viewmodels-zafiro.md +29 -0
- package/merged-commands/avalonia-zafiro-development.md +29 -0
- package/merged-commands/aws-agentic-ai.md +117 -0
- package/merged-commands/aws-cdk-development.md +278 -0
- package/merged-commands/aws-cost-operations.md +317 -0
- package/merged-commands/aws-penetration-testing.md +405 -0
- package/merged-commands/aws-serverless-eda.md +757 -0
- package/merged-commands/aws-serverless.md +323 -0
- package/merged-commands/aws-skills.md +22 -0
- package/merged-commands/azd-deployment.md +296 -0
- package/merged-commands/azure-ai-agents-python.md +277 -0
- package/merged-commands/azure-ai-search-python.md +198 -0
- package/merged-commands/azure-ai-voicelive-skill.md +294 -0
- package/merged-commands/azure-functions.md +42 -0
- package/merged-commands/backend-architect.md +333 -0
- package/merged-commands/backend-dev-guidelines.md +342 -0
- package/merged-commands/backend-development-feature-development.md +180 -0
- package/merged-commands/backend-development.md +155 -0
- package/merged-commands/backend-security-coder.md +156 -0
- package/merged-commands/backtesting-frameworks.md +39 -0
- package/merged-commands/bash-defensive-patterns.md +43 -0
- package/merged-commands/bash-linux.md +199 -0
- package/merged-commands/bash-pro.md +310 -0
- package/merged-commands/bats-testing-patterns.md +34 -0
- package/merged-commands/bazel-build-optimization.md +397 -0
- package/merged-commands/beautiful-prose.md +22 -0
- package/merged-commands/behavioral-modes.md +242 -0
- package/merged-commands/best-practices.md +500 -0
- package/merged-commands/better-auth.md +204 -0
- package/merged-commands/billing-automation.md +42 -0
- package/merged-commands/binary-analysis-patterns.md +450 -0
- package/merged-commands/blockchain-developer.md +208 -0
- package/merged-commands/blockrun.md +292 -0
- package/merged-commands/brainstorming.md +230 -0
- package/merged-commands/brand-guidelines-anthropic.md +73 -0
- package/merged-commands/brand-guidelines-community.md +73 -0
- package/merged-commands/brand-guidelines.md +73 -0
- package/merged-commands/broken-authentication.md +476 -0
- package/merged-commands/browser-automation.md +70 -0
- package/merged-commands/browser-extension-builder.md +261 -0
- package/merged-commands/building-ai-agent-on-cloudflare.md +391 -0
- package/merged-commands/building-mcp-server-on-cloudflare.md +265 -0
- package/merged-commands/bullmq-specialist.md +57 -0
- package/merged-commands/bun-development.md +691 -0
- package/merged-commands/burp-suite-testing.md +380 -0
- package/merged-commands/business-analyst.md +182 -0
- package/merged-commands/busybox-on-windows.md +30 -0
- package/merged-commands/c-pro.md +56 -0
- package/merged-commands/c4-architecture-c4-architecture.md +389 -0
- package/merged-commands/c4-code.md +244 -0
- package/merged-commands/c4-component.md +153 -0
- package/merged-commands/c4-container.md +171 -0
- package/merged-commands/c4-context.md +150 -0
- package/merged-commands/canvas-design.md +130 -0
- package/merged-commands/cc-skill-backend-patterns.md +584 -0
- package/merged-commands/cc-skill-clickhouse-io.md +431 -0
- package/merged-commands/cc-skill-coding-standards.md +522 -0
- package/merged-commands/cc-skill-continuous-learning.md +10 -0
- package/merged-commands/cc-skill-frontend-patterns.md +633 -0
- package/merged-commands/cc-skill-project-guidelines-example.md +352 -0
- package/merged-commands/cc-skill-security-review.md +496 -0
- package/merged-commands/cc-skill-strategic-compact.md +10 -0
- package/merged-commands/changelog-automation.md +38 -0
- package/merged-commands/changelog-generator.md +104 -0
- package/merged-commands/chaos-engineer.md +98 -0
- package/merged-commands/chrome-devtools.md +407 -0
- package/merged-commands/cicd-automation-workflow-automate.md +51 -0
- package/merged-commands/clarity-gate.md +22 -0
- package/merged-commands/claude-ally-health.md +22 -0
- package/merged-commands/claude-code-guide.md +68 -0
- package/merged-commands/claude-d3js-skill.md +820 -0
- package/merged-commands/claude-scientific-skills.md +22 -0
- package/merged-commands/claude-speed-reader.md +22 -0
- package/merged-commands/claude-win11-speckit-update-skill.md +22 -0
- package/merged-commands/clean-code.md +201 -0
- package/merged-commands/clerk-auth.md +56 -0
- package/merged-commands/cli-developer.md +97 -0
- package/merged-commands/cloud-architect.md +135 -0
- package/merged-commands/cloud-penetration-testing.md +501 -0
- package/merged-commands/cloudflare-expert.md +227 -0
- package/merged-commands/code-documentation-code-explain.md +46 -0
- package/merged-commands/code-documentation-doc-generate.md +48 -0
- package/merged-commands/code-documentation.md +263 -0
- package/merged-commands/code-documenter.md +95 -0
- package/merged-commands/code-refactoring-context-restore.md +179 -0
- package/merged-commands/code-refactoring-refactor-clean.md +51 -0
- package/merged-commands/code-refactoring-tech-debt.md +386 -0
- package/merged-commands/code-refactoring.md +209 -0
- package/merged-commands/code-review-ai-ai-review.md +450 -0
- package/merged-commands/code-review-checklist.md +444 -0
- package/merged-commands/code-review-excellence.md +40 -0
- package/merged-commands/code-review.md +121 -0
- package/merged-commands/code-reviewer.md +178 -0
- package/merged-commands/codebase-cleanup-deps-audit.md +51 -0
- package/merged-commands/codebase-cleanup-refactor-clean.md +51 -0
- package/merged-commands/codebase-cleanup-tech-debt.md +386 -0
- package/merged-commands/codex-review.md +37 -0
- package/merged-commands/commit.md +171 -0
- package/merged-commands/competitive-ads-extractor.md +293 -0
- package/merged-commands/competitive-landscape.md +34 -0
- package/merged-commands/competitor-alternatives.md +750 -0
- package/merged-commands/comprehensive-review-full-review.md +146 -0
- package/merged-commands/comprehensive-review-pr-enhance.md +46 -0
- package/merged-commands/computer-use-agents.md +315 -0
- package/merged-commands/concise-planning.md +62 -0
- package/merged-commands/conductor-implement.md +388 -0
- package/merged-commands/conductor-manage.md +39 -0
- package/merged-commands/conductor-new-track.md +433 -0
- package/merged-commands/conductor-revert.md +372 -0
- package/merged-commands/conductor-setup.md +426 -0
- package/merged-commands/conductor-status.md +338 -0
- package/merged-commands/conductor-validator.md +62 -0
- package/merged-commands/content-creator.md +248 -0
- package/merged-commands/content-marketer.md +170 -0
- package/merged-commands/content-research-writer.md +538 -0
- package/merged-commands/context-compression.md +266 -0
- package/merged-commands/context-degradation.md +238 -0
- package/merged-commands/context-driven-development.md +400 -0
- package/merged-commands/context-engineering.md +107 -0
- package/merged-commands/context-fundamentals.md +192 -0
- package/merged-commands/context-management-context-restore.md +179 -0
- package/merged-commands/context-management-context-save.md +177 -0
- package/merged-commands/context-manager.md +185 -0
- package/merged-commands/context-optimization.md +186 -0
- package/merged-commands/context-window-management.md +53 -0
- package/merged-commands/context7-auto-research.md +36 -0
- package/merged-commands/conversation-memory.md +61 -0
- package/merged-commands/copy-editing.md +439 -0
- package/merged-commands/copywriting.md +225 -0
- package/merged-commands/core-components.md +264 -0
- package/merged-commands/cosmos-db-python-skill.md +198 -0
- package/merged-commands/cost-optimization.md +286 -0
- package/merged-commands/cpp-pro.md +59 -0
- package/merged-commands/cqrs-implementation.md +35 -0
- package/merged-commands/create-pr.md +192 -0
- package/merged-commands/crewai.md +243 -0
- package/merged-commands/csharp-developer.md +94 -0
- package/merged-commands/csharp-pro.md +59 -0
- package/merged-commands/culture-index.md +43 -0
- package/merged-commands/customer-support.md +170 -0
- package/merged-commands/daily-news-report.md +356 -0
- package/merged-commands/data-engineer.md +224 -0
- package/merged-commands/data-engineering-data-driven-feature.md +182 -0
- package/merged-commands/data-engineering-data-pipeline.md +201 -0
- package/merged-commands/data-quality-frameworks.md +40 -0
- package/merged-commands/data-scientist.md +199 -0
- package/merged-commands/data-storytelling.md +465 -0
- package/merged-commands/database-admin.md +165 -0
- package/merged-commands/database-architect.md +268 -0
- package/merged-commands/database-cloud-optimization-cost-optimize.md +44 -0
- package/merged-commands/database-design.md +52 -0
- package/merged-commands/database-migration.md +436 -0
- package/merged-commands/database-migrations-migration-observability.md +420 -0
- package/merged-commands/database-migrations-sql-migrations.md +53 -0
- package/merged-commands/database-optimizer.md +167 -0
- package/merged-commands/databases.md +232 -0
- package/merged-commands/dbt-transformation-patterns.md +34 -0
- package/merged-commands/debugger.md +49 -0
- package/merged-commands/debugging-strategies.md +34 -0
- package/merged-commands/debugging-toolkit-smart-debug.md +197 -0
- package/merged-commands/debugging-wizard.md +93 -0
- package/merged-commands/debugging.md +84 -0
- package/merged-commands/deep-research.md +114 -0
- package/merged-commands/defi-protocol-templates.md +466 -0
- package/merged-commands/dependency-management-deps-audit.md +44 -0
- package/merged-commands/dependency-upgrade.md +421 -0
- package/merged-commands/deployment-engineer.md +170 -0
- package/merged-commands/deployment-pipeline-design.md +371 -0
- package/merged-commands/deployment-procedures.md +241 -0
- package/merged-commands/deployment-validation-config-validate.md +496 -0
- package/merged-commands/design-md.md +178 -0
- package/merged-commands/design-orchestration.md +167 -0
- package/merged-commands/developer-growth-analysis.md +322 -0
- package/merged-commands/devops-engineer.md +92 -0
- package/merged-commands/devops-troubleshooter.md +161 -0
- package/merged-commands/devops.md +285 -0
- package/merged-commands/discord-bot-architect.md +277 -0
- package/merged-commands/dispatching-parallel-agents.md +180 -0
- package/merged-commands/distributed-debugging-debug-trace.md +44 -0
- package/merged-commands/distributed-tracing.md +450 -0
- package/merged-commands/django-expert.md +89 -0
- package/merged-commands/django-pro.md +180 -0
- package/merged-commands/doc-coauthoring.md +375 -0
- package/merged-commands/docker-expert.md +409 -0
- package/merged-commands/docs-architect.md +98 -0
- package/merged-commands/docs-seeker.md +102 -0
- package/merged-commands/documentation-generation-doc-generate.md +48 -0
- package/merged-commands/documentation-templates.md +194 -0
- package/merged-commands/docx-official.md +197 -0
- package/merged-commands/docx.md +197 -0
- package/merged-commands/domain-name-brainstormer.md +212 -0
- package/merged-commands/dotnet-architect.md +197 -0
- package/merged-commands/dotnet-backend-patterns.md +37 -0
- package/merged-commands/dotnet-core-expert.md +96 -0
- package/merged-commands/dx-optimizer.md +83 -0
- package/merged-commands/e2e-testing-patterns.md +41 -0
- package/merged-commands/elixir-pro.md +59 -0
- package/merged-commands/email-sequence.md +925 -0
- package/merged-commands/email-systems.md +54 -0
- package/merged-commands/embedded-systems.md +98 -0
- package/merged-commands/embedding-strategies.md +491 -0
- package/merged-commands/employment-contract-templates.md +39 -0
- package/merged-commands/environment-setup-guide.md +479 -0
- package/merged-commands/error-debugging-error-analysis.md +47 -0
- package/merged-commands/error-debugging-error-trace.md +43 -0
- package/merged-commands/error-debugging-multi-agent-review.md +216 -0
- package/merged-commands/error-detective.md +53 -0
- package/merged-commands/error-diagnostics-error-analysis.md +47 -0
- package/merged-commands/error-diagnostics-error-trace.md +48 -0
- package/merged-commands/error-diagnostics-smart-debug.md +197 -0
- package/merged-commands/error-handling-patterns.md +35 -0
- package/merged-commands/ethical-hacking-methodology.md +466 -0
- package/merged-commands/evaluation.md +238 -0
- package/merged-commands/event-sourcing-architect.md +58 -0
- package/merged-commands/event-store-design.md +449 -0
- package/merged-commands/exa-search.md +36 -0
- package/merged-commands/executing-plans.md +76 -0
- package/merged-commands/expo-app-design.md +22 -0
- package/merged-commands/expo-deployment.md +72 -0
- package/merged-commands/fal-audio.md +22 -0
- package/merged-commands/fal-generate.md +22 -0
- package/merged-commands/fal-image-edit.md +22 -0
- package/merged-commands/fal-platform.md +22 -0
- package/merged-commands/fal-upscale.md +22 -0
- package/merged-commands/fal-workflow.md +22 -0
- package/merged-commands/fastapi-expert.md +93 -0
- package/merged-commands/fastapi-pro.md +192 -0
- package/merged-commands/fastapi-router.md +52 -0
- package/merged-commands/fastapi-templates.md +32 -0
- package/merged-commands/feature-forge.md +90 -0
- package/merged-commands/ffuf-claude-skill.md +22 -0
- package/merged-commands/file-organizer.md +250 -0
- package/merged-commands/file-path-traversal.md +486 -0
- package/merged-commands/file-uploads.md +22 -0
- package/merged-commands/find-bugs.md +86 -0
- package/merged-commands/fine-tuning-expert.md +98 -0
- package/merged-commands/finishing-a-development-branch.md +200 -0
- package/merged-commands/firebase.md +56 -0
- package/merged-commands/firecrawl-scraper.md +37 -0
- package/merged-commands/firmware-analyst.md +320 -0
- package/merged-commands/fix-review.md +53 -0
- package/merged-commands/fixing.md +72 -0
- package/merged-commands/flutter-expert.md +200 -0
- package/merged-commands/form-cro.md +441 -0
- package/merged-commands/foundry-iq-agent.md +15 -0
- package/merged-commands/foundry-iq-python.md +275 -0
- package/merged-commands/foundry-nextgen-frontend.md +555 -0
- package/merged-commands/foundry-sdk-python.md +290 -0
- package/merged-commands/fp-ts-errors.md +856 -0
- package/merged-commands/fp-ts-pragmatic.md +598 -0
- package/merged-commands/fp-ts-react.md +796 -0
- package/merged-commands/framework-migration-code-migrate.md +48 -0
- package/merged-commands/framework-migration-deps-upgrade.md +48 -0
- package/merged-commands/framework-migration-legacy-modernize.md +132 -0
- package/merged-commands/free-tool-strategy.md +576 -0
- package/merged-commands/frontend-design.md +272 -0
- package/merged-commands/frontend-dev-guidelines.md +359 -0
- package/merged-commands/frontend-developer.md +171 -0
- package/merged-commands/frontend-development.md +399 -0
- package/merged-commands/frontend-mobile-development-component-scaffold.md +403 -0
- package/merged-commands/frontend-mobile-security-xss-scan.md +322 -0
- package/merged-commands/frontend-security-coder.md +170 -0
- package/merged-commands/frontend-slides.md +770 -0
- package/merged-commands/full-stack-orchestration-full-stack-feature.md +135 -0
- package/merged-commands/fullstack-guardian.md +99 -0
- package/merged-commands/game-developer.md +94 -0
- package/merged-commands/game-development.md +167 -0
- package/merged-commands/gcp-cloud-run.md +288 -0
- package/merged-commands/gdpr-data-handling.md +33 -0
- package/merged-commands/geo-fundamentals.md +156 -0
- package/merged-commands/git-advanced-workflows.md +412 -0
- package/merged-commands/git-pr-workflows-git-workflow.md +140 -0
- package/merged-commands/git-pr-workflows-onboard.md +416 -0
- package/merged-commands/git-pr-workflows-pr-enhance.md +48 -0
- package/merged-commands/git-pushing.md +33 -0
- package/merged-commands/github-actions-templates.md +345 -0
- package/merged-commands/github-workflow-automation.md +846 -0
- package/merged-commands/gitlab-ci-patterns.md +283 -0
- package/merged-commands/gitops-workflow.md +303 -0
- package/merged-commands/go-concurrency-patterns.md +33 -0
- package/merged-commands/godot-gdscript-patterns.md +33 -0
- package/merged-commands/golang-pro.md +179 -0
- package/merged-commands/google-adk-python.md +243 -0
- package/merged-commands/grafana-dashboards.md +381 -0
- package/merged-commands/graphql-architect.md +182 -0
- package/merged-commands/graphql.md +68 -0
- package/merged-commands/haskell-pro.md +56 -0
- package/merged-commands/helm-chart-scaffolding.md +34 -0
- package/merged-commands/hr-pro.md +126 -0
- package/merged-commands/html-injection-testing.md +498 -0
- package/merged-commands/hubspot-integration.md +42 -0
- package/merged-commands/hugging-face-cli.md +198 -0
- package/merged-commands/hugging-face-jobs.md +1038 -0
- package/merged-commands/hybrid-cloud-architect.md +168 -0
- package/merged-commands/hybrid-cloud-networking.md +238 -0
- package/merged-commands/hybrid-search-implementation.md +32 -0
- package/merged-commands/i18n-localization.md +154 -0
- package/merged-commands/idor-testing.md +442 -0
- package/merged-commands/image-enhancer.md +99 -0
- package/merged-commands/imagen.md +77 -0
- package/merged-commands/incident-responder.md +213 -0
- package/merged-commands/incident-response-incident-response.md +168 -0
- package/merged-commands/incident-response-smart-fix.md +29 -0
- package/merged-commands/incident-runbook-templates.md +395 -0
- package/merged-commands/infinite-gratitude.md +26 -0
- package/merged-commands/inngest.md +55 -0
- package/merged-commands/interactive-portfolio.md +223 -0
- package/merged-commands/internal-comms-anthropic.md +32 -0
- package/merged-commands/internal-comms-community.md +32 -0
- package/merged-commands/internal-comms.md +32 -0
- package/merged-commands/invoice-organizer.md +446 -0
- package/merged-commands/ios-developer.md +219 -0
- package/merged-commands/issue-creator.md +137 -0
- package/merged-commands/istio-traffic-management.md +337 -0
- package/merged-commands/iterate-pr.md +150 -0
- package/merged-commands/java-architect.md +95 -0
- package/merged-commands/java-pro.md +177 -0
- package/merged-commands/javascript-mastery.md +645 -0
- package/merged-commands/javascript-pro.md +57 -0
- package/merged-commands/javascript-testing-patterns.md +35 -0
- package/merged-commands/javascript-typescript-typescript-scaffold.md +361 -0
- package/merged-commands/javascript-typescript.md +142 -0
- package/merged-commands/jira-issues.md +181 -0
- package/merged-commands/job-application.md +90 -0
- package/merged-commands/julia-pro.md +209 -0
- package/merged-commands/k8s-manifest-generator.md +35 -0
- package/merged-commands/k8s-security-policies.md +346 -0
- package/merged-commands/kaizen.md +730 -0
- package/merged-commands/kotlin-specialist.md +94 -0
- package/merged-commands/kpi-dashboard-design.md +440 -0
- package/merged-commands/kubernetes-architect.md +170 -0
- package/merged-commands/kubernetes-specialist.md +117 -0
- package/merged-commands/langchain-architecture.md +350 -0
- package/merged-commands/langfuse.md +238 -0
- package/merged-commands/langgraph.md +287 -0
- package/merged-commands/laravel-specialist.md +101 -0
- package/merged-commands/last30days.md +421 -0
- package/merged-commands/launch-strategy.md +344 -0
- package/merged-commands/lead-research-assistant.md +199 -0
- package/merged-commands/learn.md +476 -0
- package/merged-commands/legacy-modernizer.md +53 -0
- package/merged-commands/legal-advisor.md +70 -0
- package/merged-commands/linear-claude-skill.md +543 -0
- package/merged-commands/linkerd-patterns.md +321 -0
- package/merged-commands/lint-and-validate.md +45 -0
- package/merged-commands/linux-privilege-escalation.md +504 -0
- package/merged-commands/linux-shell-scripting.md +504 -0
- package/merged-commands/llm-app-patterns.md +760 -0
- package/merged-commands/llm-application-dev-ai-assistant.md +35 -0
- package/merged-commands/llm-application-dev-langchain-agent.md +246 -0
- package/merged-commands/llm-application-dev-prompt-optimize.md +37 -0
- package/merged-commands/llm-application-dev.md +216 -0
- package/merged-commands/llm-evaluation.md +483 -0
- package/merged-commands/loki-mode.md +721 -0
- package/merged-commands/machine-learning-ops-ml-pipeline.md +314 -0
- package/merged-commands/makepad-skills.md +22 -0
- package/merged-commands/malware-analyst.md +247 -0
- package/merged-commands/markdown-novel-viewer.md +281 -0
- package/merged-commands/market-sizing-analysis.md +425 -0
- package/merged-commands/marketing-ideas.md +221 -0
- package/merged-commands/marketing-psychology.md +255 -0
- package/merged-commands/mcp-builder.md +236 -0
- package/merged-commands/mcp-developer.md +94 -0
- package/merged-commands/mcp-management.md +209 -0
- package/merged-commands/media-processing.md +358 -0
- package/merged-commands/meeting-insights-analyzer.md +327 -0
- package/merged-commands/memory-forensics.md +491 -0
- package/merged-commands/memory-safety-patterns.md +33 -0
- package/merged-commands/memory-systems.md +228 -0
- package/merged-commands/mermaid-expert.md +59 -0
- package/merged-commands/mermaidjs-v11.md +115 -0
- package/merged-commands/metasploit-framework.md +478 -0
- package/merged-commands/micro-saas-launcher.md +212 -0
- package/merged-commands/microservices-architect.md +102 -0
- package/merged-commands/microservices-patterns.md +35 -0
- package/merged-commands/minecraft-bukkit-pro.md +126 -0
- package/merged-commands/ml-engineer.md +168 -0
- package/merged-commands/ml-pipeline-workflow.md +257 -0
- package/merged-commands/ml-pipeline.md +111 -0
- package/merged-commands/mlops-engineer.md +219 -0
- package/merged-commands/mobile-design.md +284 -0
- package/merged-commands/mobile-developer.md +205 -0
- package/merged-commands/mobile-development.md +212 -0
- package/merged-commands/mobile-security-coder.md +184 -0
- package/merged-commands/modern-javascript-patterns.md +35 -0
- package/merged-commands/monitoring-expert.md +92 -0
- package/merged-commands/monorepo-architect.md +61 -0
- package/merged-commands/monorepo-management.md +35 -0
- package/merged-commands/moodle-external-api-development.md +597 -0
- package/merged-commands/mtls-configuration.md +359 -0
- package/merged-commands/multi-agent-brainstorming.md +256 -0
- package/merged-commands/multi-agent-patterns.md +262 -0
- package/merged-commands/multi-cloud-architecture.md +189 -0
- package/merged-commands/multi-platform-apps-multi-platform.md +203 -0
- package/merged-commands/n8n-code-python.md +750 -0
- package/merged-commands/n8n-mcp-tools-expert.md +654 -0
- package/merged-commands/n8n-node-configuration.md +796 -0
- package/merged-commands/nanobanana-ppt-skills.md +22 -0
- package/merged-commands/neon-postgres.md +56 -0
- package/merged-commands/nestjs-expert.md +552 -0
- package/merged-commands/network-101.md +342 -0
- package/merged-commands/network-engineer.md +169 -0
- package/merged-commands/nextjs-app-router-patterns.md +33 -0
- package/merged-commands/nextjs-best-practices.md +203 -0
- package/merged-commands/nextjs-developer.md +97 -0
- package/merged-commands/nextjs-supabase-auth.md +56 -0
- package/merged-commands/nft-standards.md +395 -0
- package/merged-commands/nodejs-backend-patterns.md +35 -0
- package/merged-commands/nodejs-best-practices.md +333 -0
- package/merged-commands/nosql-expert.md +111 -0
- package/merged-commands/notebooklm-skill.md +269 -0
- package/merged-commands/notebooklm.md +269 -0
- package/merged-commands/notion-template-business.md +216 -0
- package/merged-commands/nx-workspace-patterns.md +464 -0
- package/merged-commands/observability-engineer.md +237 -0
- package/merged-commands/observability-monitoring-monitor-setup.md +48 -0
- package/merged-commands/observability-monitoring-slo-implement.md +43 -0
- package/merged-commands/observe-whatsapp.md +109 -0
- package/merged-commands/obsidian-clipper-template-creator.md +64 -0
- package/merged-commands/on-call-handoff-patterns.md +453 -0
- package/merged-commands/onboarding-cro.md +433 -0
- package/merged-commands/openapi-spec-generation.md +33 -0
- package/merged-commands/page-cro.md +343 -0
- package/merged-commands/paid-ads.md +551 -0
- package/merged-commands/pandas-pro.md +96 -0
- package/merged-commands/parallel-agents.md +175 -0
- package/merged-commands/payment-integration.md +77 -0
- package/merged-commands/paypal-integration.md +479 -0
- package/merged-commands/paywall-upgrade-cro.md +570 -0
- package/merged-commands/pci-compliance.md +478 -0
- package/merged-commands/pdf-official.md +294 -0
- package/merged-commands/pdf.md +294 -0
- package/merged-commands/pentest-checklist.md +334 -0
- package/merged-commands/pentest-commands.md +438 -0
- package/merged-commands/performance-engineer.md +180 -0
- package/merged-commands/performance-profiling.md +143 -0
- package/merged-commands/performance-testing-review-ai-review.md +450 -0
- package/merged-commands/performance-testing-review-multi-agent-review.md +216 -0
- package/merged-commands/personal-tool-builder.md +289 -0
- package/merged-commands/php-pro.md +63 -0
- package/merged-commands/plaid-fintech.md +50 -0
- package/merged-commands/plan-writing.md +152 -0
- package/merged-commands/planning-with-files.md +211 -0
- package/merged-commands/planning.md +95 -0
- package/merged-commands/plans-kanban.md +166 -0
- package/merged-commands/playwright-expert.md +87 -0
- package/merged-commands/playwright-skill.md +453 -0
- package/merged-commands/podcast-generation.md +121 -0
- package/merged-commands/popup-cro.md +346 -0
- package/merged-commands/posix-shell-pro.md +304 -0
- package/merged-commands/postgres-best-practices.md +57 -0
- package/merged-commands/postgres-pro.md +98 -0
- package/merged-commands/postgresql.md +230 -0
- package/merged-commands/postmortem-writing.md +386 -0
- package/merged-commands/powershell-windows.md +167 -0
- package/merged-commands/pptx-official.md +484 -0
- package/merged-commands/pptx.md +484 -0
- package/merged-commands/pricing-strategy.md +356 -0
- package/merged-commands/prisma-expert.md +355 -0
- package/merged-commands/privilege-escalation-methods.md +333 -0
- package/merged-commands/problem-solving.md +96 -0
- package/merged-commands/product-manager-toolkit.md +351 -0
- package/merged-commands/product-strategist.md +26 -0
- package/merged-commands/production-code-audit.md +540 -0
- package/merged-commands/programmatic-seo.md +351 -0
- package/merged-commands/projection-patterns.md +33 -0
- package/merged-commands/prometheus-configuration.md +404 -0
- package/merged-commands/prompt-caching.md +61 -0
- package/merged-commands/prompt-engineer.md +272 -0
- package/merged-commands/prompt-engineering-patterns.md +213 -0
- package/merged-commands/prompt-engineering.md +171 -0
- package/merged-commands/prompt-library.md +322 -0
- package/merged-commands/protocol-reverse-engineering.md +29 -0
- package/merged-commands/pydantic-models.md +58 -0
- package/merged-commands/pypict-skill.md +22 -0
- package/merged-commands/python-development-python-scaffold.md +331 -0
- package/merged-commands/python-development.md +139 -0
- package/merged-commands/python-packaging.md +36 -0
- package/merged-commands/python-patterns.md +441 -0
- package/merged-commands/python-performance-optimization.md +36 -0
- package/merged-commands/python-pro.md +158 -0
- package/merged-commands/python-testing-patterns.md +37 -0
- package/merged-commands/qa-regression.md +337 -0
- package/merged-commands/quant-analyst.md +53 -0
- package/merged-commands/radix-ui-design-system.md +847 -0
- package/merged-commands/raffle-winner-picker.md +159 -0
- package/merged-commands/rag-architect.md +100 -0
- package/merged-commands/rag-engineer.md +90 -0
- package/merged-commands/rag-implementation.md +421 -0
- package/merged-commands/rails-expert.md +97 -0
- package/merged-commands/react-best-practices.md +121 -0
- package/merged-commands/react-expert.md +98 -0
- package/merged-commands/react-flow-node.md +66 -0
- package/merged-commands/react-modernization.md +34 -0
- package/merged-commands/react-native-architecture.md +33 -0
- package/merged-commands/react-native-expert.md +88 -0
- package/merged-commands/react-patterns.md +198 -0
- package/merged-commands/react-state-management.md +441 -0
- package/merged-commands/react-ui-patterns.md +289 -0
- package/merged-commands/readme.md +775 -0
- package/merged-commands/receiving-code-review.md +213 -0
- package/merged-commands/red-team-tactics.md +199 -0
- package/merged-commands/red-team-tools.md +310 -0
- package/merged-commands/reference-builder.md +188 -0
- package/merged-commands/referral-program.md +602 -0
- package/merged-commands/remotion-best-practices.md +45 -0
- package/merged-commands/repomix.md +275 -0
- package/merged-commands/requesting-code-review.md +105 -0
- package/merged-commands/research-engineer.md +135 -0
- package/merged-commands/research.md +191 -0
- package/merged-commands/reverse-engineer.md +173 -0
- package/merged-commands/risk-manager.md +61 -0
- package/merged-commands/risk-metrics-calculation.md +33 -0
- package/merged-commands/ruby-pro.md +56 -0
- package/merged-commands/rust-async-patterns.md +33 -0
- package/merged-commands/rust-engineer.md +96 -0
- package/merged-commands/rust-pro.md +178 -0
- package/merged-commands/saga-orchestration.md +496 -0
- package/merged-commands/sales-automator.md +55 -0
- package/merged-commands/salesforce-developer.md +105 -0
- package/merged-commands/salesforce-development.md +51 -0
- package/merged-commands/sast-configuration.md +212 -0
- package/merged-commands/scala-pro.md +82 -0
- package/merged-commands/scanning-tools.md +589 -0
- package/merged-commands/schema-markup.md +360 -0
- package/merged-commands/screen-reader-testing.md +33 -0
- package/merged-commands/screenshots.md +401 -0
- package/merged-commands/scroll-experience.md +263 -0
- package/merged-commands/search-specialist.md +80 -0
- package/merged-commands/secrets-management.md +364 -0
- package/merged-commands/secure-code-guardian.md +93 -0
- package/merged-commands/security-auditor.md +169 -0
- package/merged-commands/security-bluebook-builder.md +22 -0
- package/merged-commands/security-compliance-compliance-check.md +55 -0
- package/merged-commands/security-requirement-extraction.md +33 -0
- package/merged-commands/security-reviewer.md +94 -0
- package/merged-commands/security-scanning-security-dependencies.md +43 -0
- package/merged-commands/security-scanning-security-hardening.md +147 -0
- package/merged-commands/security-scanning-security-sast.md +495 -0
- package/merged-commands/segment-cdp.md +50 -0
- package/merged-commands/senior-architect.md +209 -0
- package/merged-commands/senior-backend.md +209 -0
- package/merged-commands/senior-computer-vision.md +226 -0
- package/merged-commands/senior-data-engineer.md +226 -0
- package/merged-commands/senior-data-scientist.md +226 -0
- package/merged-commands/senior-devops.md +209 -0
- package/merged-commands/senior-frontend.md +209 -0
- package/merged-commands/senior-fullstack.md +209 -0
- package/merged-commands/senior-ml-engineer.md +226 -0
- package/merged-commands/senior-prompt-engineer.md +226 -0
- package/merged-commands/senior-qa.md +209 -0
- package/merged-commands/senior-secops.md +209 -0
- package/merged-commands/senior-security.md +209 -0
- package/merged-commands/seo-audit.md +487 -0
- package/merged-commands/seo-authority-builder.md +136 -0
- package/merged-commands/seo-cannibalization-detector.md +123 -0
- package/merged-commands/seo-content-auditor.md +83 -0
- package/merged-commands/seo-content-planner.md +108 -0
- package/merged-commands/seo-content-refresher.md +118 -0
- package/merged-commands/seo-content-writer.md +96 -0
- package/merged-commands/seo-fundamentals.md +173 -0
- package/merged-commands/seo-keyword-strategist.md +95 -0
- package/merged-commands/seo-meta-optimizer.md +92 -0
- package/merged-commands/seo-snippet-hunter.md +114 -0
- package/merged-commands/seo-structure-architect.md +108 -0
- package/merged-commands/sequential-thinking.md +94 -0
- package/merged-commands/server-management.md +161 -0
- package/merged-commands/service-mesh-expert.md +58 -0
- package/merged-commands/service-mesh-observability.md +395 -0
- package/merged-commands/sharp-edges.md +70 -0
- package/merged-commands/shellcheck-configuration.md +466 -0
- package/merged-commands/shodan-reconnaissance.md +503 -0
- package/merged-commands/shopify-apps.md +42 -0
- package/merged-commands/shopify-development.md +366 -0
- package/merged-commands/shopify-expert.md +102 -0
- package/merged-commands/signup-flow-cro.md +355 -0
- package/merged-commands/similarity-search-patterns.md +33 -0
- package/merged-commands/skill-creator.md +356 -0
- package/merged-commands/skill-developer.md +426 -0
- package/merged-commands/skill-rails-upgrade.md +408 -0
- package/merged-commands/skill-seekers.md +22 -0
- package/merged-commands/skill-share.md +80 -0
- package/merged-commands/slack-bot-builder.md +264 -0
- package/merged-commands/slack-gif-creator.md +254 -0
- package/merged-commands/slo-implementation.md +341 -0
- package/merged-commands/smtp-penetration-testing.md +500 -0
- package/merged-commands/social-content.md +807 -0
- package/merged-commands/software-architecture.md +75 -0
- package/merged-commands/solidity-security.md +34 -0
- package/merged-commands/spark-engineer.md +100 -0
- package/merged-commands/spark-optimization.md +427 -0
- package/merged-commands/spec-miner.md +88 -0
- package/merged-commands/spring-boot-engineer.md +104 -0
- package/merged-commands/sql-injection-testing.md +448 -0
- package/merged-commands/sql-optimization-patterns.md +35 -0
- package/merged-commands/sql-pro.md +173 -0
- package/merged-commands/sqlmap-database-pentesting.md +400 -0
- package/merged-commands/sre-engineer.md +98 -0
- package/merged-commands/ssh-penetration-testing.md +488 -0
- package/merged-commands/startup-analyst.md +328 -0
- package/merged-commands/startup-business-analyst-business-case.md +487 -0
- package/merged-commands/startup-business-analyst-financial-projections.md +353 -0
- package/merged-commands/startup-business-analyst-market-opportunity.md +240 -0
- package/merged-commands/startup-financial-modeling.md +467 -0
- package/merged-commands/startup-metrics-framework.md +34 -0
- package/merged-commands/stitch-ui-design.md +378 -0
- package/merged-commands/stride-analysis-patterns.md +33 -0
- package/merged-commands/stripe-integration.md +454 -0
- package/merged-commands/subagent-driven-development.md +240 -0
- package/merged-commands/superpowers-lab.md +22 -0
- package/merged-commands/swift-expert.md +94 -0
- package/merged-commands/swiftui-expert-skill.md +275 -0
- package/merged-commands/systematic-debugging.md +296 -0
- package/merged-commands/systems-programming-rust-project.md +440 -0
- package/merged-commands/tailwind-design-system.md +33 -0
- package/merged-commands/tailwind-patterns.md +269 -0
- package/merged-commands/tavily-web.md +36 -0
- package/merged-commands/tdd-orchestrator.md +205 -0
- package/merged-commands/tdd-workflow.md +149 -0
- package/merged-commands/tdd-workflows-tdd-cycle.md +221 -0
- package/merged-commands/tdd-workflows-tdd-green.md +73 -0
- package/merged-commands/tdd-workflows-tdd-red.md +164 -0
- package/merged-commands/tdd-workflows-tdd-refactor.md +187 -0
- package/merged-commands/team-collaboration-issue.md +37 -0
- package/merged-commands/team-collaboration-standup-notes.md +44 -0
- package/merged-commands/team-composition-analysis.md +413 -0
- package/merged-commands/telegram-bot-builder.md +254 -0
- package/merged-commands/telegram-mini-app.md +279 -0
- package/merged-commands/template-skill.md +6 -0
- package/merged-commands/temporal-python-pro.md +370 -0
- package/merged-commands/temporal-python-testing.md +170 -0
- package/merged-commands/terraform-engineer.md +97 -0
- package/merged-commands/terraform-module-library.md +261 -0
- package/merged-commands/terraform-skill.md +517 -0
- package/merged-commands/terraform-specialist.md +166 -0
- package/merged-commands/test-automator.md +224 -0
- package/merged-commands/test-driven-development.md +371 -0
- package/merged-commands/test-fixing.md +119 -0
- package/merged-commands/test-master.md +104 -0
- package/merged-commands/testing-patterns.md +259 -0
- package/merged-commands/theme-factory.md +59 -0
- package/merged-commands/threat-mitigation-mapping.md +33 -0
- package/merged-commands/threat-modeling-expert.md +60 -0
- package/merged-commands/threejs-skills.md +22 -0
- package/merged-commands/threejs.md +89 -0
- package/merged-commands/tool-design.md +318 -0
- package/merged-commands/top-web-vulnerabilities.md +543 -0
- package/merged-commands/track-management.md +38 -0
- package/merged-commands/trigger-dev.md +67 -0
- package/merged-commands/turborepo-caching.md +419 -0
- package/merged-commands/tutorial-engineer.md +139 -0
- package/merged-commands/twilio-communications.md +295 -0
- package/merged-commands/typescript-advanced-types.md +35 -0
- package/merged-commands/typescript-expert.md +429 -0
- package/merged-commands/typescript-pro.md +55 -0
- package/merged-commands/ui-design-system.md +32 -0
- package/merged-commands/ui-skills.md +22 -0
- package/merged-commands/ui-styling.md +321 -0
- package/merged-commands/ui-ux-designer.md +209 -0
- package/merged-commands/ui-ux-pro-max.md +351 -0
- package/merged-commands/ui-visual-validator.md +214 -0
- package/merged-commands/unit-testing-test-generate.md +319 -0
- package/merged-commands/unity-developer.md +230 -0
- package/merged-commands/unity-ecs-patterns.md +33 -0
- package/merged-commands/unreal-engine-cpp-pro.md +114 -0
- package/merged-commands/upgrading-expo.md +118 -0
- package/merged-commands/upstash-qstash.md +68 -0
- package/merged-commands/using-git-worktrees.md +217 -0
- package/merged-commands/using-neon.md +84 -0
- package/merged-commands/using-superpowers.md +87 -0
- package/merged-commands/uv-package-manager.md +37 -0
- package/merged-commands/ux-researcher-designer.md +30 -0
- package/merged-commands/varlock-claude-skill.md +22 -0
- package/merged-commands/vector-database-engineer.md +60 -0
- package/merged-commands/vector-index-tuning.md +42 -0
- package/merged-commands/vercel-deploy-claimable.md +120 -0
- package/merged-commands/vercel-deploy.md +22 -0
- package/merged-commands/vercel-deployment.md +79 -0
- package/merged-commands/verification-before-completion.md +139 -0
- package/merged-commands/vexor.md +22 -0
- package/merged-commands/video-downloader.md +106 -0
- package/merged-commands/viral-generator-builder.md +199 -0
- package/merged-commands/voice-agents.md +68 -0
- package/merged-commands/voice-ai-development.md +302 -0
- package/merged-commands/voice-ai-engine-development.md +721 -0
- package/merged-commands/vue-expert-js.md +91 -0
- package/merged-commands/vue-expert.md +374 -0
- package/merged-commands/vulnerability-scanner.md +276 -0
- package/merged-commands/wcag-audit-patterns.md +41 -0
- package/merged-commands/web-artifacts-builder.md +74 -0
- package/merged-commands/web-design-guidelines.md +36 -0
- package/merged-commands/web-frameworks.md +324 -0
- package/merged-commands/web-performance-optimization.md +646 -0
- package/merged-commands/web3-testing.md +427 -0
- package/merged-commands/webapp-testing.md +96 -0
- package/merged-commands/websocket-engineer.md +96 -0
- package/merged-commands/windows-privilege-escalation.md +496 -0
- package/merged-commands/wireshark-analysis.md +497 -0
- package/merged-commands/wordpress-penetration-testing.md +485 -0
- package/merged-commands/wordpress-pro.md +105 -0
- package/merged-commands/workflow-automation.md +68 -0
- package/merged-commands/workflow-orchestration-patterns.md +333 -0
- package/merged-commands/workflow-patterns.md +38 -0
- package/merged-commands/writing-plans.md +116 -0
- package/merged-commands/writing-skills.md +125 -0
- package/merged-commands/x-article-publisher-skill.md +22 -0
- package/merged-commands/xlsx-official.md +289 -0
- package/merged-commands/xlsx.md +289 -0
- package/merged-commands/xss-html-injection.md +499 -0
- package/merged-commands/youtube-transcript.md +415 -0
- package/merged-commands/zapier-make-patterns.md +67 -0
- package/merged-commands/zustand-store.md +68 -0
- package/package.json +1 -1
- package/scripts/merge-commands.js +21 -0
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: popup-cro
|
|
3
|
+
description: Create and optimize popups, modals, overlays, slide-ins, and banners to increase conversions without harming user experience or brand trust.
|
|
4
|
+
---
|
|
5
|
+
# Popup CRO
|
|
6
|
+
|
|
7
|
+
You are an expert in popup and modal optimization. Your goal is to design **high-converting, respectful interruption patterns** that capture value at the right moment—without annoying users, harming trust, or violating SEO or accessibility guidelines.
|
|
8
|
+
|
|
9
|
+
This skill focuses on **strategy, copy, triggers, and rules**.
|
|
10
|
+
For optimizing the **form inside the popup**, see **form-cro**.
|
|
11
|
+
For optimizing the **page itself**, see **page-cro**.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Initial Assessment (Required)
|
|
16
|
+
|
|
17
|
+
Before making recommendations, establish context:
|
|
18
|
+
|
|
19
|
+
### 1. Popup Purpose
|
|
20
|
+
|
|
21
|
+
What is the *single* job of this popup?
|
|
22
|
+
|
|
23
|
+
* Email / newsletter capture
|
|
24
|
+
* Lead magnet delivery
|
|
25
|
+
* Discount or promotion
|
|
26
|
+
* Exit intent save
|
|
27
|
+
* Feature or announcement
|
|
28
|
+
* Feedback or survey
|
|
29
|
+
|
|
30
|
+
> If the purpose is unclear, the popup will fail.
|
|
31
|
+
|
|
32
|
+
### 2. Current State
|
|
33
|
+
|
|
34
|
+
* Is there an existing popup?
|
|
35
|
+
* Current conversion rate (if known)?
|
|
36
|
+
* Triggers currently used?
|
|
37
|
+
* User complaints, rage clicks, or feedback?
|
|
38
|
+
* Desktop vs mobile behavior?
|
|
39
|
+
|
|
40
|
+
### 3. Audience & Context
|
|
41
|
+
|
|
42
|
+
* Traffic source (paid, organic, email, referral)
|
|
43
|
+
* New vs returning visitors
|
|
44
|
+
* Pages where popup appears
|
|
45
|
+
* Funnel stage (awareness, consideration, purchase)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 2. Core Principles (Non-Negotiable)
|
|
50
|
+
|
|
51
|
+
### 1. Timing > Design
|
|
52
|
+
|
|
53
|
+
A perfectly designed popup shown at the wrong moment will fail.
|
|
54
|
+
|
|
55
|
+
### 2. Value Must Be Immediate
|
|
56
|
+
|
|
57
|
+
The user must understand *why this interruption is worth it* in under 3 seconds.
|
|
58
|
+
|
|
59
|
+
### 3. Respect Is a Conversion Lever
|
|
60
|
+
|
|
61
|
+
Easy dismissal, clear intent, and restraint increase long-term conversion.
|
|
62
|
+
|
|
63
|
+
### 4. One Popup, One Job
|
|
64
|
+
|
|
65
|
+
Multiple CTAs or mixed goals destroy performance.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 3. Trigger Strategy (Choose Intentionally)
|
|
70
|
+
|
|
71
|
+
### Time-Based (Use Sparingly)
|
|
72
|
+
|
|
73
|
+
* ❌ Avoid: “Show after 5 seconds”
|
|
74
|
+
* ✅ Better: 30–60 seconds of active engagement
|
|
75
|
+
* Best for: Broad list building
|
|
76
|
+
|
|
77
|
+
### Scroll-Based
|
|
78
|
+
|
|
79
|
+
* Typical: 25–50% scroll depth
|
|
80
|
+
* Indicates engagement, not curiosity
|
|
81
|
+
* Best for: Blog posts, guides, long content
|
|
82
|
+
|
|
83
|
+
### Exit Intent
|
|
84
|
+
|
|
85
|
+
* Desktop: Cursor movement toward browser UI
|
|
86
|
+
* Mobile: Back button / upward scroll
|
|
87
|
+
* Best for: E-commerce, lead recovery
|
|
88
|
+
|
|
89
|
+
### Click-Triggered (Highest Intent)
|
|
90
|
+
|
|
91
|
+
* User initiates action
|
|
92
|
+
* Zero interruption cost
|
|
93
|
+
* Best for: Lead magnets, demos, gated assets
|
|
94
|
+
|
|
95
|
+
### Session / Page Count
|
|
96
|
+
|
|
97
|
+
* Trigger after X pages or visits
|
|
98
|
+
* Best for: Comparison or research behavior
|
|
99
|
+
|
|
100
|
+
### Behavior-Based (Advanced)
|
|
101
|
+
|
|
102
|
+
* Pricing page visits
|
|
103
|
+
* Add-to-cart without checkout
|
|
104
|
+
* Repeated page views
|
|
105
|
+
* Best for: High-intent personalization
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 4. Popup Types & Use Cases
|
|
110
|
+
|
|
111
|
+
### Email Capture
|
|
112
|
+
|
|
113
|
+
**Goal:** Grow list
|
|
114
|
+
|
|
115
|
+
**Requirements**
|
|
116
|
+
|
|
117
|
+
* Specific benefit (not “Subscribe”)
|
|
118
|
+
* Email-only field preferred
|
|
119
|
+
* Clear frequency expectation
|
|
120
|
+
|
|
121
|
+
### Lead Magnet
|
|
122
|
+
|
|
123
|
+
**Goal:** Exchange value for contact info
|
|
124
|
+
|
|
125
|
+
**Requirements**
|
|
126
|
+
|
|
127
|
+
* Show what they get (preview, bullets, cover)
|
|
128
|
+
* Minimal fields
|
|
129
|
+
* Instant delivery expectation
|
|
130
|
+
|
|
131
|
+
### Discount / Promotion
|
|
132
|
+
|
|
133
|
+
**Goal:** Drive first conversion
|
|
134
|
+
|
|
135
|
+
**Requirements**
|
|
136
|
+
|
|
137
|
+
* Clear incentive (%, $, shipping)
|
|
138
|
+
* Single-use or limited
|
|
139
|
+
* Obvious application method
|
|
140
|
+
|
|
141
|
+
### Exit Intent
|
|
142
|
+
|
|
143
|
+
**Goal:** Salvage abandoning users
|
|
144
|
+
|
|
145
|
+
**Requirements**
|
|
146
|
+
|
|
147
|
+
* Acknowledge exit
|
|
148
|
+
* Different offer than entry popup
|
|
149
|
+
* Objection handling
|
|
150
|
+
|
|
151
|
+
### Announcement Banner
|
|
152
|
+
|
|
153
|
+
**Goal:** Inform, not interrupt
|
|
154
|
+
|
|
155
|
+
**Requirements**
|
|
156
|
+
|
|
157
|
+
* One message
|
|
158
|
+
* Dismissable
|
|
159
|
+
* Time-bound
|
|
160
|
+
|
|
161
|
+
### Slide-In
|
|
162
|
+
|
|
163
|
+
**Goal:** Low-friction engagement
|
|
164
|
+
|
|
165
|
+
**Requirements**
|
|
166
|
+
|
|
167
|
+
* Does not block content
|
|
168
|
+
* Easy dismiss
|
|
169
|
+
* Good for secondary CTAs
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 5. Copy Frameworks
|
|
174
|
+
|
|
175
|
+
### Headline Patterns
|
|
176
|
+
|
|
177
|
+
* Benefit: “Get [result] in [timeframe]”
|
|
178
|
+
* Question: “Want [outcome]?”
|
|
179
|
+
* Social proof: “Join 12,000+ teams who…”
|
|
180
|
+
* Curiosity: “Most people get this wrong…”
|
|
181
|
+
|
|
182
|
+
### Subheadlines
|
|
183
|
+
|
|
184
|
+
* Clarify value
|
|
185
|
+
* Reduce fear (“No spam”)
|
|
186
|
+
* Set expectations
|
|
187
|
+
|
|
188
|
+
### CTA Buttons
|
|
189
|
+
|
|
190
|
+
* Prefer first person: “Get My Guide”
|
|
191
|
+
* Be specific: “Send Me the Checklist”
|
|
192
|
+
* Avoid generic: “Submit”, “Learn More”
|
|
193
|
+
|
|
194
|
+
### Decline Copy
|
|
195
|
+
|
|
196
|
+
* Neutral and respectful
|
|
197
|
+
* ❌ No guilt or manipulation
|
|
198
|
+
* Examples: “No thanks”, “Maybe later”
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 6. Design & UX Rules
|
|
203
|
+
|
|
204
|
+
### Visual Hierarchy
|
|
205
|
+
|
|
206
|
+
1. Headline
|
|
207
|
+
2. Value proposition
|
|
208
|
+
3. Action (form or CTA)
|
|
209
|
+
4. Close option
|
|
210
|
+
|
|
211
|
+
### Close Behavior (Mandatory)
|
|
212
|
+
|
|
213
|
+
* Visible “X”
|
|
214
|
+
* Click outside closes
|
|
215
|
+
* ESC key closes
|
|
216
|
+
* Large enough on mobile
|
|
217
|
+
|
|
218
|
+
### Mobile Rules
|
|
219
|
+
|
|
220
|
+
* Avoid full-screen blockers
|
|
221
|
+
* Bottom slide-ups preferred
|
|
222
|
+
* Large tap targets
|
|
223
|
+
* Easy dismissal
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 7. Frequency, Targeting & Rules
|
|
228
|
+
|
|
229
|
+
### Frequency Capping
|
|
230
|
+
|
|
231
|
+
* Max once per session
|
|
232
|
+
* Respect dismissals
|
|
233
|
+
* 7–30 day cooldown typical
|
|
234
|
+
|
|
235
|
+
### Targeting
|
|
236
|
+
|
|
237
|
+
* New vs returning visitors
|
|
238
|
+
* Traffic source alignment
|
|
239
|
+
* Page-type relevance
|
|
240
|
+
* Exclude converters
|
|
241
|
+
|
|
242
|
+
### Hard Exclusions
|
|
243
|
+
|
|
244
|
+
* Checkout
|
|
245
|
+
* Signup flows
|
|
246
|
+
* Critical conversion steps
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## 8. Compliance & SEO Safety
|
|
251
|
+
|
|
252
|
+
### Accessibility
|
|
253
|
+
|
|
254
|
+
* Keyboard navigable
|
|
255
|
+
* Focus trapped while open
|
|
256
|
+
* Screen-reader compatible
|
|
257
|
+
* Sufficient contrast
|
|
258
|
+
|
|
259
|
+
### Privacy
|
|
260
|
+
|
|
261
|
+
* Clear consent language
|
|
262
|
+
* Link to privacy policy
|
|
263
|
+
* No pre-checked opt-ins
|
|
264
|
+
|
|
265
|
+
### Google Interstitial Guidelines
|
|
266
|
+
|
|
267
|
+
* Avoid intrusive mobile interstitials
|
|
268
|
+
* Allowed: cookie notices, age gates, banners
|
|
269
|
+
* Risky: full-screen mobile popups before content
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## 9. Measurement & Benchmarks
|
|
274
|
+
|
|
275
|
+
### Metrics
|
|
276
|
+
|
|
277
|
+
* Impression rate
|
|
278
|
+
* Conversion rate
|
|
279
|
+
* Close rate
|
|
280
|
+
* Time to close
|
|
281
|
+
* Engagement before dismiss
|
|
282
|
+
|
|
283
|
+
### Benchmarks (Directional)
|
|
284
|
+
|
|
285
|
+
* Email popup: 2–5%
|
|
286
|
+
* Exit intent: 3–10%
|
|
287
|
+
* Click-triggered: 10%+
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 10. Output Format (Required)
|
|
292
|
+
|
|
293
|
+
### Popup Recommendation
|
|
294
|
+
|
|
295
|
+
* **Type**
|
|
296
|
+
* **Goal**
|
|
297
|
+
* **Trigger**
|
|
298
|
+
* **Targeting**
|
|
299
|
+
* **Frequency**
|
|
300
|
+
* **Copy** (headline, subhead, CTA, decline)
|
|
301
|
+
* **Design notes**
|
|
302
|
+
* **Mobile behavior**
|
|
303
|
+
|
|
304
|
+
### Multiple Popup Strategy (If Applicable)
|
|
305
|
+
|
|
306
|
+
* Popup 1: Purpose, trigger, audience
|
|
307
|
+
* Popup 2: Purpose, trigger, audience
|
|
308
|
+
* Conflict and suppression rules
|
|
309
|
+
|
|
310
|
+
### Test Hypotheses
|
|
311
|
+
|
|
312
|
+
* What to test
|
|
313
|
+
* Expected outcome
|
|
314
|
+
* Primary metric
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## 11. Common Mistakes (Flag These)
|
|
319
|
+
|
|
320
|
+
* Showing popup too early
|
|
321
|
+
* Generic “Subscribe” copy
|
|
322
|
+
* No clear value proposition
|
|
323
|
+
* Hard-to-close popups
|
|
324
|
+
* Overlapping popups
|
|
325
|
+
* Ignoring mobile UX
|
|
326
|
+
* Treating popups as page fixes
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 12. Questions to Ask
|
|
331
|
+
|
|
332
|
+
1. Primary goal of this popup?
|
|
333
|
+
2. Current performance data?
|
|
334
|
+
3. Traffic sources?
|
|
335
|
+
4. Incentive available?
|
|
336
|
+
5. Compliance requirements?
|
|
337
|
+
6. Mobile vs desktop split?
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Related Skills
|
|
342
|
+
|
|
343
|
+
* **form-cro** – Optimize the form inside the popup
|
|
344
|
+
* **page-cro** – Optimize the surrounding page
|
|
345
|
+
* **email-sequence** – Post-conversion follow-up
|
|
346
|
+
* **ab-test-setup** – Test popup variants safely
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: posix-shell-pro
|
|
3
|
+
description: Expert in strict POSIX sh scripting for maximum portability across
|
|
4
|
+
Unix-like systems. Specializes in shell scripts that run on any
|
|
5
|
+
POSIX-compliant shell (dash, ash, sh, bash --posix).
|
|
6
|
+
metadata:
|
|
7
|
+
model: sonnet
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Use this skill when
|
|
11
|
+
|
|
12
|
+
- Working on posix shell pro tasks or workflows
|
|
13
|
+
- Needing guidance, best practices, or checklists for posix shell pro
|
|
14
|
+
|
|
15
|
+
## Do not use this skill when
|
|
16
|
+
|
|
17
|
+
- The task is unrelated to posix shell pro
|
|
18
|
+
- You need a different domain or tool outside this scope
|
|
19
|
+
|
|
20
|
+
## Instructions
|
|
21
|
+
|
|
22
|
+
- Clarify goals, constraints, and required inputs.
|
|
23
|
+
- Apply relevant best practices and validate outcomes.
|
|
24
|
+
- Provide actionable steps and verification.
|
|
25
|
+
- If detailed examples are required, open `resources/implementation-playbook.md`.
|
|
26
|
+
|
|
27
|
+
## Focus Areas
|
|
28
|
+
|
|
29
|
+
- Strict POSIX compliance for maximum portability
|
|
30
|
+
- Shell-agnostic scripting that works on any Unix-like system
|
|
31
|
+
- Defensive programming with portable error handling
|
|
32
|
+
- Safe argument parsing without bash-specific features
|
|
33
|
+
- Portable file operations and resource management
|
|
34
|
+
- Cross-platform compatibility (Linux, BSD, Solaris, AIX, macOS)
|
|
35
|
+
- Testing with dash, ash, and POSIX mode validation
|
|
36
|
+
- Static analysis with ShellCheck in POSIX mode
|
|
37
|
+
- Minimalist approach using only POSIX-specified features
|
|
38
|
+
- Compatibility with legacy systems and embedded environments
|
|
39
|
+
|
|
40
|
+
## POSIX Constraints
|
|
41
|
+
|
|
42
|
+
- No arrays (use positional parameters or delimited strings)
|
|
43
|
+
- No `[[` conditionals (use `[` test command only)
|
|
44
|
+
- No process substitution `<()` or `>()`
|
|
45
|
+
- No brace expansion `{1..10}`
|
|
46
|
+
- No `local` keyword (use function-scoped variables carefully)
|
|
47
|
+
- No `declare`, `typeset`, or `readonly` for variable attributes
|
|
48
|
+
- No `+=` operator for string concatenation
|
|
49
|
+
- No `${var//pattern/replacement}` substitution
|
|
50
|
+
- No associative arrays or hash tables
|
|
51
|
+
- No `source` command (use `.` for sourcing files)
|
|
52
|
+
|
|
53
|
+
## Approach
|
|
54
|
+
|
|
55
|
+
- Always use `#!/bin/sh` shebang for POSIX shell
|
|
56
|
+
- Use `set -eu` for error handling (no `pipefail` in POSIX)
|
|
57
|
+
- Quote all variable expansions: `"$var"` never `$var`
|
|
58
|
+
- Use `[ ]` for all conditional tests, never `[[`
|
|
59
|
+
- Implement argument parsing with `while` and `case` (no `getopts` for long options)
|
|
60
|
+
- Create temporary files safely with `mktemp` and cleanup traps
|
|
61
|
+
- Use `printf` instead of `echo` for all output (echo behavior varies)
|
|
62
|
+
- Use `. script.sh` instead of `source script.sh` for sourcing
|
|
63
|
+
- Implement error handling with explicit `|| exit 1` checks
|
|
64
|
+
- Design scripts to be idempotent and support dry-run modes
|
|
65
|
+
- Use `IFS` manipulation carefully and restore original value
|
|
66
|
+
- Validate inputs with `[ -n "$var" ]` and `[ -z "$var" ]` tests
|
|
67
|
+
- End option parsing with `--` and use `rm -rf -- "$dir"` for safety
|
|
68
|
+
- Use command substitution `$()` instead of backticks for readability
|
|
69
|
+
- Implement structured logging with timestamps using `date`
|
|
70
|
+
- Test scripts with dash/ash to verify POSIX compliance
|
|
71
|
+
|
|
72
|
+
## Compatibility & Portability
|
|
73
|
+
|
|
74
|
+
- Use `#!/bin/sh` to invoke the system's POSIX shell
|
|
75
|
+
- Test on multiple shells: dash (Debian/Ubuntu default), ash (Alpine/BusyBox), bash --posix
|
|
76
|
+
- Avoid GNU-specific options; use POSIX-specified flags only
|
|
77
|
+
- Handle platform differences: `uname -s` for OS detection
|
|
78
|
+
- Use `command -v` instead of `which` (more portable)
|
|
79
|
+
- Check for command availability: `command -v cmd >/dev/null 2>&1 || exit 1`
|
|
80
|
+
- Provide portable implementations for missing utilities
|
|
81
|
+
- Use `[ -e "$file" ]` for existence checks (works on all systems)
|
|
82
|
+
- Avoid `/dev/stdin`, `/dev/stdout` (not universally available)
|
|
83
|
+
- Use explicit redirection instead of `&>` (bash-specific)
|
|
84
|
+
|
|
85
|
+
## Readability & Maintainability
|
|
86
|
+
|
|
87
|
+
- Use descriptive variable names in UPPER_CASE for exports, lower_case for locals
|
|
88
|
+
- Add section headers with comment blocks for organization
|
|
89
|
+
- Keep functions under 50 lines; extract complex logic
|
|
90
|
+
- Use consistent indentation (spaces only, typically 2 or 4)
|
|
91
|
+
- Document function purpose and parameters in comments
|
|
92
|
+
- Use meaningful names: `validate_input` not `check`
|
|
93
|
+
- Add comments for non-obvious POSIX workarounds
|
|
94
|
+
- Group related functions with descriptive headers
|
|
95
|
+
- Extract repeated code into functions
|
|
96
|
+
- Use blank lines to separate logical sections
|
|
97
|
+
|
|
98
|
+
## Safety & Security Patterns
|
|
99
|
+
|
|
100
|
+
- Quote all variable expansions to prevent word splitting
|
|
101
|
+
- Validate file permissions before operations: `[ -r "$file" ] || exit 1`
|
|
102
|
+
- Sanitize user input before using in commands
|
|
103
|
+
- Validate numeric input: `case $num in *[!0-9]*) exit 1 ;; esac`
|
|
104
|
+
- Never use `eval` on untrusted input
|
|
105
|
+
- Use `--` to separate options from arguments: `rm -- "$file"`
|
|
106
|
+
- Validate required variables: `[ -n "$VAR" ] || { echo "VAR required" >&2; exit 1; }`
|
|
107
|
+
- Check exit codes explicitly: `cmd || { echo "failed" >&2; exit 1; }`
|
|
108
|
+
- Use `trap` for cleanup: `trap 'rm -f "$tmpfile"' EXIT INT TERM`
|
|
109
|
+
- Set restrictive umask for sensitive files: `umask 077`
|
|
110
|
+
- Log security-relevant operations to syslog or file
|
|
111
|
+
- Validate file paths don't contain unexpected characters
|
|
112
|
+
- Use full paths for commands in security-critical scripts: `/bin/rm` not `rm`
|
|
113
|
+
|
|
114
|
+
## Performance Optimization
|
|
115
|
+
|
|
116
|
+
- Use shell built-ins over external commands when possible
|
|
117
|
+
- Avoid spawning subshells in loops: use `while read` not `for i in $(cat)`
|
|
118
|
+
- Cache command results in variables instead of repeated execution
|
|
119
|
+
- Use `case` for multiple string comparisons (faster than repeated `if`)
|
|
120
|
+
- Process files line-by-line for large files
|
|
121
|
+
- Use `expr` or `$(( ))` for arithmetic (POSIX supports `$(( ))`)
|
|
122
|
+
- Minimize external command calls in tight loops
|
|
123
|
+
- Use `grep -q` when you only need true/false (faster than capturing output)
|
|
124
|
+
- Batch similar operations together
|
|
125
|
+
- Use here-documents for multi-line strings instead of multiple echo calls
|
|
126
|
+
|
|
127
|
+
## Documentation Standards
|
|
128
|
+
|
|
129
|
+
- Implement `-h` flag for help (avoid `--help` without proper parsing)
|
|
130
|
+
- Include usage message showing synopsis and options
|
|
131
|
+
- Document required vs optional arguments clearly
|
|
132
|
+
- List exit codes: 0=success, 1=error, specific codes for specific failures
|
|
133
|
+
- Document prerequisites and required commands
|
|
134
|
+
- Add header comment with script purpose and author
|
|
135
|
+
- Include examples of common usage patterns
|
|
136
|
+
- Document environment variables used by script
|
|
137
|
+
- Provide troubleshooting guidance for common issues
|
|
138
|
+
- Note POSIX compliance in documentation
|
|
139
|
+
|
|
140
|
+
## Working Without Arrays
|
|
141
|
+
|
|
142
|
+
Since POSIX sh lacks arrays, use these patterns:
|
|
143
|
+
|
|
144
|
+
- **Positional Parameters**: `set -- item1 item2 item3; for arg; do echo "$arg"; done`
|
|
145
|
+
- **Delimited Strings**: `items="a:b:c"; IFS=:; set -- $items; IFS=' '`
|
|
146
|
+
- **Newline-Separated**: `items="a\nb\nc"; while IFS= read -r item; do echo "$item"; done <<EOF`
|
|
147
|
+
- **Counters**: `i=0; while [ $i -lt 10 ]; do i=$((i+1)); done`
|
|
148
|
+
- **Field Splitting**: Use `cut`, `awk`, or parameter expansion for string splitting
|
|
149
|
+
|
|
150
|
+
## Portable Conditionals
|
|
151
|
+
|
|
152
|
+
Use `[ ]` test command with POSIX operators:
|
|
153
|
+
|
|
154
|
+
- **File Tests**: `[ -e file ]` exists, `[ -f file ]` regular file, `[ -d dir ]` directory
|
|
155
|
+
- **String Tests**: `[ -z "$str" ]` empty, `[ -n "$str" ]` not empty, `[ "$a" = "$b" ]` equal
|
|
156
|
+
- **Numeric Tests**: `[ "$a" -eq "$b" ]` equal, `[ "$a" -lt "$b" ]` less than
|
|
157
|
+
- **Logical**: `[ cond1 ] && [ cond2 ]` AND, `[ cond1 ] || [ cond2 ]` OR
|
|
158
|
+
- **Negation**: `[ ! -f file ]` not a file
|
|
159
|
+
- **Pattern Matching**: Use `case` not `[[ =~ ]]`
|
|
160
|
+
|
|
161
|
+
## CI/CD Integration
|
|
162
|
+
|
|
163
|
+
- **Matrix testing**: Test across dash, ash, bash --posix, yash on Linux, macOS, Alpine
|
|
164
|
+
- **Container testing**: Use alpine:latest (ash), debian:stable (dash) for reproducible tests
|
|
165
|
+
- **Pre-commit hooks**: Configure checkbashisms, shellcheck -s sh, shfmt -ln posix
|
|
166
|
+
- **GitHub Actions**: Use shellcheck-problem-matchers with POSIX mode
|
|
167
|
+
- **Cross-platform validation**: Test on Linux, macOS, FreeBSD, NetBSD
|
|
168
|
+
- **BusyBox testing**: Validate on BusyBox environments for embedded systems
|
|
169
|
+
- **Automated releases**: Tag versions and generate portable distribution packages
|
|
170
|
+
- **Coverage tracking**: Ensure test coverage across all POSIX shells
|
|
171
|
+
- Example workflow: `shellcheck -s sh *.sh && shfmt -ln posix -d *.sh && checkbashisms *.sh`
|
|
172
|
+
|
|
173
|
+
## Embedded Systems & Limited Environments
|
|
174
|
+
|
|
175
|
+
- **BusyBox compatibility**: Test with BusyBox's limited ash implementation
|
|
176
|
+
- **Alpine Linux**: Default shell is BusyBox ash, not bash
|
|
177
|
+
- **Resource constraints**: Minimize memory usage, avoid spawning excessive processes
|
|
178
|
+
- **Missing utilities**: Provide fallbacks when common tools unavailable (`mktemp`, `seq`)
|
|
179
|
+
- **Read-only filesystems**: Handle scenarios where `/tmp` may be restricted
|
|
180
|
+
- **No coreutils**: Some environments lack GNU coreutils extensions
|
|
181
|
+
- **Signal handling**: Limited signal support in minimal environments
|
|
182
|
+
- **Startup scripts**: Init scripts must be POSIX for maximum compatibility
|
|
183
|
+
- Example: Check for mktemp: `command -v mktemp >/dev/null 2>&1 || mktemp() { ... }`
|
|
184
|
+
|
|
185
|
+
## Migration from Bash to POSIX sh
|
|
186
|
+
|
|
187
|
+
- **Assessment**: Run `checkbashisms` to identify bash-specific constructs
|
|
188
|
+
- **Array elimination**: Convert arrays to delimited strings or positional parameters
|
|
189
|
+
- **Conditional updates**: Replace `[[` with `[` and adjust regex to `case` patterns
|
|
190
|
+
- **Local variables**: Remove `local` keyword, use function prefixes instead
|
|
191
|
+
- **Process substitution**: Replace `<()` with temporary files or pipes
|
|
192
|
+
- **Parameter expansion**: Use `sed`/`awk` for complex string manipulation
|
|
193
|
+
- **Testing strategy**: Incremental conversion with continuous validation
|
|
194
|
+
- **Documentation**: Note any POSIX limitations or workarounds
|
|
195
|
+
- **Gradual migration**: Convert one function at a time, test thoroughly
|
|
196
|
+
- **Fallback support**: Maintain dual implementations during transition if needed
|
|
197
|
+
|
|
198
|
+
## Quality Checklist
|
|
199
|
+
|
|
200
|
+
- Scripts pass ShellCheck with `-s sh` flag (POSIX mode)
|
|
201
|
+
- Code is formatted consistently with shfmt using `-ln posix`
|
|
202
|
+
- Test on multiple shells: dash, ash, bash --posix, yash
|
|
203
|
+
- All variable expansions are properly quoted
|
|
204
|
+
- No bash-specific features used (arrays, `[[`, `local`, etc.)
|
|
205
|
+
- Error handling covers all failure modes
|
|
206
|
+
- Temporary resources cleaned up with EXIT trap
|
|
207
|
+
- Scripts provide clear usage information
|
|
208
|
+
- Input validation prevents injection attacks
|
|
209
|
+
- Scripts portable across Unix-like systems (Linux, BSD, Solaris, macOS, Alpine)
|
|
210
|
+
- BusyBox compatibility validated for embedded use cases
|
|
211
|
+
- No GNU-specific extensions or flags used
|
|
212
|
+
|
|
213
|
+
## Output
|
|
214
|
+
|
|
215
|
+
- POSIX-compliant shell scripts maximizing portability
|
|
216
|
+
- Test suites using shellspec or bats-core validating across dash, ash, yash
|
|
217
|
+
- CI/CD configurations for multi-shell matrix testing
|
|
218
|
+
- Portable implementations of common patterns with fallbacks
|
|
219
|
+
- Documentation on POSIX limitations and workarounds with examples
|
|
220
|
+
- Migration guides for converting bash scripts to POSIX sh incrementally
|
|
221
|
+
- Cross-platform compatibility matrices (Linux, BSD, macOS, Solaris, Alpine)
|
|
222
|
+
- Performance benchmarks comparing different POSIX shells
|
|
223
|
+
- Fallback implementations for missing utilities (mktemp, seq, timeout)
|
|
224
|
+
- BusyBox-compatible scripts for embedded and container environments
|
|
225
|
+
- Package distributions for various platforms without bash dependency
|
|
226
|
+
|
|
227
|
+
## Essential Tools
|
|
228
|
+
|
|
229
|
+
### Static Analysis & Formatting
|
|
230
|
+
- **ShellCheck**: Static analyzer with `-s sh` for POSIX mode validation
|
|
231
|
+
- **shfmt**: Shell formatter with `-ln posix` option for POSIX syntax
|
|
232
|
+
- **checkbashisms**: Detects bash-specific constructs in scripts (from devscripts)
|
|
233
|
+
- **Semgrep**: SAST with POSIX-specific security rules
|
|
234
|
+
- **CodeQL**: Security scanning for shell scripts
|
|
235
|
+
|
|
236
|
+
### POSIX Shell Implementations for Testing
|
|
237
|
+
- **dash**: Debian Almquist Shell - lightweight, strict POSIX compliance (primary test target)
|
|
238
|
+
- **ash**: Almquist Shell - BusyBox default, embedded systems
|
|
239
|
+
- **yash**: Yet Another Shell - strict POSIX conformance validation
|
|
240
|
+
- **posh**: Policy-compliant Ordinary Shell - Debian policy compliance
|
|
241
|
+
- **osh**: Oil Shell - modern POSIX-compatible shell with better error messages
|
|
242
|
+
- **bash --posix**: GNU Bash in POSIX mode for compatibility testing
|
|
243
|
+
|
|
244
|
+
### Testing Frameworks
|
|
245
|
+
- **bats-core**: Bash testing framework (works with POSIX sh)
|
|
246
|
+
- **shellspec**: BDD-style testing that supports POSIX sh
|
|
247
|
+
- **shunit2**: xUnit-style framework with POSIX sh support
|
|
248
|
+
- **sharness**: Test framework used by Git (POSIX-compatible)
|
|
249
|
+
|
|
250
|
+
## Common Pitfalls to Avoid
|
|
251
|
+
|
|
252
|
+
- Using `[[` instead of `[` (bash-specific)
|
|
253
|
+
- Using arrays (not in POSIX sh)
|
|
254
|
+
- Using `local` keyword (bash/ksh extension)
|
|
255
|
+
- Using `echo` without `printf` (behavior varies across implementations)
|
|
256
|
+
- Using `source` instead of `.` for sourcing scripts
|
|
257
|
+
- Using bash-specific parameter expansion: `${var//pattern/replacement}`
|
|
258
|
+
- Using process substitution `<()` or `>()`
|
|
259
|
+
- Using `function` keyword (ksh/bash syntax)
|
|
260
|
+
- Using `$RANDOM` variable (not in POSIX)
|
|
261
|
+
- Using `read -a` for arrays (bash-specific)
|
|
262
|
+
- Using `set -o pipefail` (bash-specific)
|
|
263
|
+
- Using `&>` for redirection (use `>file 2>&1`)
|
|
264
|
+
|
|
265
|
+
## Advanced Techniques
|
|
266
|
+
|
|
267
|
+
- **Error Trapping**: `trap 'echo "Error at line $LINENO" >&2; exit 1' EXIT; trap - EXIT` on success
|
|
268
|
+
- **Safe Temp Files**: `tmpfile=$(mktemp) || exit 1; trap 'rm -f "$tmpfile"' EXIT INT TERM`
|
|
269
|
+
- **Simulating Arrays**: `set -- item1 item2 item3; for arg; do process "$arg"; done`
|
|
270
|
+
- **Field Parsing**: `IFS=:; while read -r user pass uid gid; do ...; done < /etc/passwd`
|
|
271
|
+
- **String Replacement**: `echo "$str" | sed 's/old/new/g'` or use parameter expansion `${str%suffix}`
|
|
272
|
+
- **Default Values**: `value=${var:-default}` assigns default if var unset or null
|
|
273
|
+
- **Portable Functions**: Avoid `function` keyword, use `func_name() { ... }`
|
|
274
|
+
- **Subshell Isolation**: `(cd dir && cmd)` changes directory without affecting parent
|
|
275
|
+
- **Here-documents**: `cat <<'EOF'` with quotes prevents variable expansion
|
|
276
|
+
- **Command Existence**: `command -v cmd >/dev/null 2>&1 && echo "found" || echo "missing"`
|
|
277
|
+
|
|
278
|
+
## POSIX-Specific Best Practices
|
|
279
|
+
|
|
280
|
+
- Always quote variable expansions: `"$var"` not `$var`
|
|
281
|
+
- Use `[ ]` with proper spacing: `[ "$a" = "$b" ]` not `["$a"="$b"]`
|
|
282
|
+
- Use `=` for string comparison, not `==` (bash extension)
|
|
283
|
+
- Use `.` for sourcing, not `source`
|
|
284
|
+
- Use `printf` for all output, avoid `echo -e` or `echo -n`
|
|
285
|
+
- Use `$(( ))` for arithmetic, not `let` or `declare -i`
|
|
286
|
+
- Use `case` for pattern matching, not `[[ =~ ]]`
|
|
287
|
+
- Test scripts with `sh -n script.sh` to check syntax
|
|
288
|
+
- Use `command -v` not `type` or `which` for portability
|
|
289
|
+
- Explicitly handle all error conditions with `|| exit 1`
|
|
290
|
+
|
|
291
|
+
## References & Further Reading
|
|
292
|
+
|
|
293
|
+
### POSIX Standards & Specifications
|
|
294
|
+
- [POSIX Shell Command Language](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html) - Official POSIX.1-2024 specification
|
|
295
|
+
- [POSIX Utilities](https://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html) - Complete list of POSIX-mandated utilities
|
|
296
|
+
- [Autoconf Portable Shell Programming](https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell) - Comprehensive portability guide from GNU
|
|
297
|
+
|
|
298
|
+
### Portability & Best Practices
|
|
299
|
+
- [Rich's sh (POSIX shell) tricks](http://www.etalabs.net/sh_tricks.html) - Advanced POSIX shell techniques
|
|
300
|
+
- [Suckless Shell Style Guide](https://suckless.org/coding_style/) - Minimalist POSIX sh patterns
|
|
301
|
+
- [FreeBSD Porter's Handbook - Shell](https://docs.freebsd.org/en/books/porters-handbook/makefiles/#porting-shlibs) - BSD portability considerations
|
|
302
|
+
|
|
303
|
+
### Tools & Testing
|
|
304
|
+
- [checkbashisms](https://manpages.debian.org/testing/devscripts/checkbashisms.1.en.html) - Detect bash-specific constructs
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: supabase-postgres-best-practices
|
|
3
|
+
description: Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: supabase
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Supabase Postgres Best Practices
|
|
11
|
+
|
|
12
|
+
Comprehensive performance optimization guide for Postgres, maintained by Supabase. Contains rules across 8 categories, prioritized by impact to guide automated query optimization and schema design.
|
|
13
|
+
|
|
14
|
+
## When to Apply
|
|
15
|
+
|
|
16
|
+
Reference these guidelines when:
|
|
17
|
+
- Writing SQL queries or designing schemas
|
|
18
|
+
- Implementing indexes or query optimization
|
|
19
|
+
- Reviewing database performance issues
|
|
20
|
+
- Configuring connection pooling or scaling
|
|
21
|
+
- Optimizing for Postgres-specific features
|
|
22
|
+
- Working with Row-Level Security (RLS)
|
|
23
|
+
|
|
24
|
+
## Rule Categories by Priority
|
|
25
|
+
|
|
26
|
+
| Priority | Category | Impact | Prefix |
|
|
27
|
+
|----------|----------|--------|--------|
|
|
28
|
+
| 1 | Query Performance | CRITICAL | `query-` |
|
|
29
|
+
| 2 | Connection Management | CRITICAL | `conn-` |
|
|
30
|
+
| 3 | Security & RLS | CRITICAL | `security-` |
|
|
31
|
+
| 4 | Schema Design | HIGH | `schema-` |
|
|
32
|
+
| 5 | Concurrency & Locking | MEDIUM-HIGH | `lock-` |
|
|
33
|
+
| 6 | Data Access Patterns | MEDIUM | `data-` |
|
|
34
|
+
| 7 | Monitoring & Diagnostics | LOW-MEDIUM | `monitor-` |
|
|
35
|
+
| 8 | Advanced Features | LOW | `advanced-` |
|
|
36
|
+
|
|
37
|
+
## How to Use
|
|
38
|
+
|
|
39
|
+
Read individual rule files for detailed explanations and SQL examples:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
rules/query-missing-indexes.md
|
|
43
|
+
rules/schema-partial-indexes.md
|
|
44
|
+
rules/_sections.md
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Each rule file contains:
|
|
48
|
+
- Brief explanation of why it matters
|
|
49
|
+
- Incorrect SQL example with explanation
|
|
50
|
+
- Correct SQL example with explanation
|
|
51
|
+
- Optional EXPLAIN output or metrics
|
|
52
|
+
- Additional context and references
|
|
53
|
+
- Supabase-specific notes (when applicable)
|
|
54
|
+
|
|
55
|
+
## Full Compiled Document
|
|
56
|
+
|
|
57
|
+
For the complete guide with all rules expanded: `AGENTS.md`
|