@thierrynakoa/fire-flow 12.2.1 → 13.0.1
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/CREDITS.md +25 -0
- package/DOMINION-FLOW-OVERVIEW.md +182 -38
- package/README.md +399 -455
- package/TROUBLESHOOTING.md +264 -264
- package/agents/fire-debugger.md +54 -0
- package/agents/fire-executor.md +1610 -1033
- package/agents/fire-fact-checker.md +1 -1
- package/agents/fire-planner.md +85 -17
- package/agents/fire-project-researcher.md +1 -1
- package/agents/fire-researcher.md +4 -22
- package/agents/{fire-phoenix-analyst.md → fire-resurrection-analyst.md} +394 -394
- package/agents/fire-reviewer.md +552 -499
- package/agents/fire-verifier.md +114 -19
- package/bin/cli.js +18 -101
- package/commands/fire-0-orient.md +2 -2
- package/commands/fire-1a-new.md +50 -15
- package/commands/fire-1c-setup.md +33 -5
- package/commands/fire-1d-discuss.md +87 -1
- package/commands/fire-2-plan.md +556 -527
- package/commands/fire-3-execute.md +2046 -1356
- package/commands/fire-4-verify.md +975 -906
- package/commands/fire-5-handoff.md +46 -5
- package/commands/fire-6-resume.md +2 -31
- package/commands/fire-add-new-skill.md +138 -19
- package/commands/fire-autonomous.md +14 -2
- package/commands/fire-complete-milestone.md +1 -1
- package/commands/fire-cost.md +179 -183
- package/commands/fire-debug.md +1 -6
- package/commands/fire-loop-resume.md +2 -2
- package/commands/fire-loop-stop.md +1 -1
- package/commands/fire-loop.md +2 -15
- package/commands/fire-map-codebase.md +1 -1
- package/commands/fire-migrate-database.md +548 -0
- package/commands/fire-new-milestone.md +1 -1
- package/commands/fire-reflect.md +1 -2
- package/commands/fire-research.md +142 -21
- package/commands/{fire-phoenix.md → fire-resurrect.md} +859 -603
- package/commands/fire-scaffold.md +297 -0
- package/commands/fire-search.md +1 -2
- package/commands/fire-security-scan.md +483 -484
- package/commands/fire-setup.md +359 -0
- package/commands/fire-skill.md +770 -0
- package/commands/fire-skills-diff.md +506 -506
- package/commands/fire-skills-history.md +388 -388
- package/commands/fire-skills-rollback.md +7 -7
- package/commands/fire-skills-sync.md +470 -470
- package/commands/fire-test.md +5 -5
- package/commands/fire-todos.md +1 -1
- package/commands/fire-update.md +5 -5
- package/commands/fire-validate-skills.md +282 -0
- package/commands/fire-vuln-scan.md +492 -493
- package/hooks/run-hook.sh +8 -8
- package/hooks/run-session-end.sh +7 -7
- package/hooks/session-end.sh +90 -90
- package/hooks/session-start.sh +1 -1
- package/package.json +4 -24
- package/plugin.json +7 -7
- package/references/autonomy-levels.md +235 -0
- package/references/behavioral-directives.md +95 -3
- package/references/blocker-tracking.md +1 -1
- package/references/circuit-breaker.md +93 -2
- package/references/context-engineering.md +227 -9
- package/references/honesty-protocols.md +70 -1
- package/references/issue-to-pr-pipeline.md +149 -150
- package/references/metrics-and-trends.md +1 -2
- package/references/research-improvements.md +4 -108
- package/references/sdlc-mapping.md +73 -0
- package/references/state-machine.md +151 -0
- package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
- package/skills-library/SKILLS-INDEX.md +57 -558
- package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
- package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
- package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
- package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
- package/skills-library/_general/automation/settings-gui-generator.md +172 -0
- package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
- package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
- package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
- package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
- package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
- package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
- package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
- package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
- package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
- package/skills-library/_general/frontend/color-token-migration.md +112 -0
- package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
- package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
- package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
- package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
- package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
- package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
- package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
- package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
- package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
- package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
- package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
- package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
- package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
- package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
- package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
- package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
- package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
- package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
- package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
- package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
- package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
- package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
- package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
- package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
- package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
- package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
- package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
- package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
- package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
- package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
- package/skills-library/_general/methodology/dead-code-activation.md +123 -0
- package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
- package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
- package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
- package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
- package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
- package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
- package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
- package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
- package/skills-library/_general/performance/liveclock-extraction.md +112 -0
- package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
- package/skills-library/_general/performance/use-visible-interval.md +131 -0
- package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
- package/skills-library/_quarantine/README.md +30 -0
- package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
- package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
- package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
- package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
- package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
- package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
- package/skills-library/api-patterns/graphql-content-queries.md +708 -0
- package/skills-library/appointment-scheduler-design.md +423 -0
- package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
- package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
- package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
- package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
- package/skills-library/automation/scheduled-content-publishing.md +608 -0
- package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
- package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
- package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
- package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
- package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
- package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
- package/skills-library/cms-patterns/content-branch-preview.md +515 -0
- package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
- package/skills-library/cms-patterns/mdx-component-content.md +649 -0
- package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
- package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
- package/skills-library/complexity-metrics/complexity-divider.md +707 -0
- package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
- package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
- package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
- package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
- package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
- package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
- package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
- package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
- package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
- package/skills-library/creative-multimedia/og-image-generator.md +635 -0
- package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
- package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
- package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
- package/skills-library/creative-multimedia/svg-generation.md +750 -0
- package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
- package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
- package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
- package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
- package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
- package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
- package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
- package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
- package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
- package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
- package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
- package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
- package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
- package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
- package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
- package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
- package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
- package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
- package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
- package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
- package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
- package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
- package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
- package/skills-library/database-solutions/content-publishing-states.md +631 -0
- package/skills-library/database-solutions/database-schema-designer.md +522 -0
- package/skills-library/database-solutions/er-diagram-components.md +569 -0
- package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
- package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
- package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
- package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
- package/skills-library/database-solutions/normalization-validator.md +778 -0
- package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
- package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
- package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
- package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
- package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
- package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
- package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
- package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
- package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
- package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
- package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
- package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
- package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
- package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
- package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
- package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
- package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
- package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
- package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
- package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
- package/skills-library/deployment-security/SECURITY.md +41 -0
- package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
- package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
- package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
- package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
- package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
- package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
- package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
- package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
- package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
- package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
- package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
- package/skills-library/deployment-security/vps-deployment.md +135 -0
- package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
- package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
- package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
- package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
- package/skills-library/document-processing/md-to-word-converter.md +318 -0
- package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
- package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
- package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
- package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
- package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
- package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
- package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
- package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
- package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
- package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
- package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
- package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
- package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
- package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
- package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
- package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
- package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
- package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
- package/skills-library/ecommerce/inventory-stock-management.md +270 -0
- package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
- package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
- package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
- package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
- package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
- package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
- package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
- package/skills-library/excalidraw-diagrams/LICENSE +21 -0
- package/skills-library/excalidraw-diagrams/README.md +178 -0
- package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
- package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
- package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
- package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
- package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
- package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
- package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
- package/skills-library/infrastructure/observability-designer.md +264 -0
- package/skills-library/infrastructure/performance-profiler.md +621 -0
- package/skills-library/installer-wizard-patterns.md +249 -0
- package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
- package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
- package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
- package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
- package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
- package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
- package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
- package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
- package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
- package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
- package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
- package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
- package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
- package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
- package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
- package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
- package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
- package/skills-library/integrations/headless-cms-architecture.md +484 -0
- package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
- package/skills-library/integrations/payload-cms-patterns.md +674 -0
- package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
- package/skills-library/integrations/rss-podcast-integration.md +300 -0
- package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
- package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
- package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
- package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
- package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
- package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
- package/skills-library/marketing/campaign-analytics.md +97 -0
- package/skills-library/marketing/content-creator.md +105 -0
- package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
- package/skills-library/marketing/social-media-analyzer.md +81 -0
- package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
- package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
- package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
- package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
- package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
- package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
- package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
- package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
- package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
- package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
- package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
- package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
- package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
- package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
- package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
- package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
- package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
- package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
- package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
- package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
- package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
- package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
- package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
- package/skills-library/methodology/tech-debt-tracker.md +570 -0
- package/skills-library/parallel-debug/SKILL.md +60 -0
- package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
- package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
- package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
- package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
- package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
- package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
- package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
- package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
- package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
- package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
- package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
- package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
- package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
- package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
- package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
- package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
- package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
- package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
- package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
- package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
- package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
- package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
- package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
- package/skills-library/security/admin-deletion-safety.md +396 -0
- package/skills-library/security/application-vuln-patterns.md +477 -0
- package/skills-library/security/env-secrets-manager.md +686 -0
- package/skills-library/security/secure-ai-application-templates.md +347 -0
- package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
- package/skills-library/supabase-connection-pooler-fix.md +102 -0
- package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
- package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
- package/skills-library/system-context/SKILL.md +40 -0
- package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
- package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
- package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
- package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
- package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
- package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
- package/skills-library/testing/playwright-api-security-tests.md +202 -0
- package/skills-library/toolbox/SKILL.md +84 -0
- package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
- package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
- package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
- package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
- package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
- package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
- package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills-library/wordpress-style-theme-components.md +1526 -0
- package/templates/ASSUMPTIONS.md +1 -1
- package/templates/DECISION_LOG.md +0 -1
- package/templates/phase-prompt.md +1 -1
- package/templates/phoenix-comparison.md +6 -6
- package/templates/skill-api-integration.md +106 -0
- package/templates/skill-architecture-pattern.md +92 -0
- package/templates/skill-debug-pattern.md +98 -0
- package/templates/skill-devops-recipe.md +107 -0
- package/templates/skill-general.md +65 -0
- package/templates/skill-ui-component.md +113 -0
- package/tools/uat-runner.py +179 -0
- package/version.json +7 -3
- package/workflows/handoff-session.md +2 -2
- package/workflows/new-project.md +2 -2
- package/workflows/plan-phase.md +1 -1
- package/.claude-plugin/plugin.json +0 -64
- package/skills-library/_general/methodology/LIVE_BREADCRUMB_PROTOCOL.md +0 -242
- package/skills-library/_general/methodology/llm-judge-memory-crud.md +0 -241
- package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +0 -183
- package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +0 -263
- package/skills-library/methodology/SABBATH_REST_PATTERN.md +0 -267
- package/skills-library/methodology/STONE_AND_SCAFFOLD.md +0 -220
- package/skills-library/specialists/api-architecture/api-designer.md +0 -49
- package/skills-library/specialists/api-architecture/graphql-architect.md +0 -49
- package/skills-library/specialists/api-architecture/mcp-developer.md +0 -51
- package/skills-library/specialists/api-architecture/microservices-architect.md +0 -50
- package/skills-library/specialists/api-architecture/websocket-engineer.md +0 -48
- package/skills-library/specialists/backend/django-expert.md +0 -52
- package/skills-library/specialists/backend/fastapi-expert.md +0 -52
- package/skills-library/specialists/backend/laravel-specialist.md +0 -52
- package/skills-library/specialists/backend/nestjs-expert.md +0 -51
- package/skills-library/specialists/backend/rails-expert.md +0 -53
- package/skills-library/specialists/backend/spring-boot-engineer.md +0 -56
- package/skills-library/specialists/data-ml/fine-tuning-expert.md +0 -48
- package/skills-library/specialists/data-ml/ml-pipeline.md +0 -47
- package/skills-library/specialists/data-ml/pandas-pro.md +0 -47
- package/skills-library/specialists/data-ml/rag-architect.md +0 -51
- package/skills-library/specialists/data-ml/spark-engineer.md +0 -47
- package/skills-library/specialists/frontend/angular-architect.md +0 -52
- package/skills-library/specialists/frontend/flutter-expert.md +0 -51
- package/skills-library/specialists/frontend/nextjs-developer.md +0 -54
- package/skills-library/specialists/frontend/react-native-expert.md +0 -50
- package/skills-library/specialists/frontend/vue-expert.md +0 -51
- package/skills-library/specialists/infrastructure/chaos-engineer.md +0 -74
- package/skills-library/specialists/infrastructure/cloud-architect.md +0 -70
- package/skills-library/specialists/infrastructure/database-optimizer.md +0 -64
- package/skills-library/specialists/infrastructure/devops-engineer.md +0 -70
- package/skills-library/specialists/infrastructure/kubernetes-specialist.md +0 -52
- package/skills-library/specialists/infrastructure/monitoring-expert.md +0 -70
- package/skills-library/specialists/infrastructure/sre-engineer.md +0 -70
- package/skills-library/specialists/infrastructure/terraform-engineer.md +0 -51
- package/skills-library/specialists/languages/cpp-pro.md +0 -74
- package/skills-library/specialists/languages/csharp-developer.md +0 -69
- package/skills-library/specialists/languages/dotnet-core-expert.md +0 -54
- package/skills-library/specialists/languages/golang-pro.md +0 -51
- package/skills-library/specialists/languages/java-architect.md +0 -49
- package/skills-library/specialists/languages/javascript-pro.md +0 -68
- package/skills-library/specialists/languages/kotlin-specialist.md +0 -68
- package/skills-library/specialists/languages/php-pro.md +0 -49
- package/skills-library/specialists/languages/python-pro.md +0 -52
- package/skills-library/specialists/languages/react-expert.md +0 -51
- package/skills-library/specialists/languages/rust-engineer.md +0 -50
- package/skills-library/specialists/languages/sql-pro.md +0 -56
- package/skills-library/specialists/languages/swift-expert.md +0 -69
- package/skills-library/specialists/languages/typescript-pro.md +0 -51
- package/skills-library/specialists/platform/atlassian-mcp.md +0 -52
- package/skills-library/specialists/platform/embedded-systems.md +0 -53
- package/skills-library/specialists/platform/game-developer.md +0 -53
- package/skills-library/specialists/platform/salesforce-developer.md +0 -53
- package/skills-library/specialists/platform/shopify-expert.md +0 -49
- package/skills-library/specialists/platform/wordpress-pro.md +0 -49
- package/skills-library/specialists/quality/code-documenter.md +0 -51
- package/skills-library/specialists/quality/code-reviewer.md +0 -67
- package/skills-library/specialists/quality/debugging-wizard.md +0 -51
- package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
- package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
- package/skills-library/specialists/quality/playwright-expert.md +0 -65
- package/skills-library/specialists/quality/spec-miner.md +0 -56
- package/skills-library/specialists/quality/test-master.md +0 -65
- package/skills-library/specialists/security/secure-code-guardian.md +0 -55
- package/skills-library/specialists/security/security-reviewer.md +0 -53
- package/skills-library/specialists/workflow/architecture-designer.md +0 -53
- package/skills-library/specialists/workflow/cli-developer.md +0 -70
- package/skills-library/specialists/workflow/feature-forge.md +0 -65
- package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
- package/skills-library/specialists/workflow/the-fool.md +0 -62
- /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
- /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
- /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Checkout UX Conversion Patterns
|
|
2
|
+
|
|
3
|
+
> Evidence-based checkout design patterns that yield up to 35% conversion lift. Template for AI agents generating checkout flows.
|
|
4
|
+
|
|
5
|
+
**When to use:** Building or reviewing any checkout flow. Apply these patterns when scaffolding checkout components.
|
|
6
|
+
**Stack:** React, Next.js, or any frontend framework
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## The 10 Checkout Rules
|
|
11
|
+
|
|
12
|
+
### 1. Guest Checkout First
|
|
13
|
+
|
|
14
|
+
```jsx
|
|
15
|
+
// WRONG: Force account creation before checkout
|
|
16
|
+
<Button onClick={() => navigate('/register')}>Create Account to Continue</Button>
|
|
17
|
+
|
|
18
|
+
// RIGHT: Guest checkout with optional account creation after purchase
|
|
19
|
+
<Button onClick={() => navigate('/checkout')}>Continue as Guest</Button>
|
|
20
|
+
<Button variant="secondary" onClick={() => navigate('/login')}>Sign In</Button>
|
|
21
|
+
// After order confirmation:
|
|
22
|
+
<p>Save your info for next time?</p>
|
|
23
|
+
<Button onClick={createAccountFromOrder}>Create Account</Button>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Why:** 24% of users abandon when forced to create an account (Baymard).
|
|
27
|
+
|
|
28
|
+
### 2. Progress Indicator
|
|
29
|
+
|
|
30
|
+
```jsx
|
|
31
|
+
function CheckoutProgress({ currentStep }) {
|
|
32
|
+
const steps = ['Cart', 'Shipping', 'Payment', 'Confirm'];
|
|
33
|
+
return (
|
|
34
|
+
<div className="flex justify-between mb-8" role="progressbar">
|
|
35
|
+
{steps.map((step, i) => (
|
|
36
|
+
<div key={step} className={`flex items-center ${i <= currentStep ? 'text-blue-600' : 'text-gray-400'}`}>
|
|
37
|
+
<span className={`w-8 h-8 rounded-full flex items-center justify-center
|
|
38
|
+
${i < currentStep ? 'bg-blue-600 text-white' : i === currentStep ? 'border-2 border-blue-600' : 'border border-gray-300'}`}>
|
|
39
|
+
{i < currentStep ? '✓' : i + 1}
|
|
40
|
+
</span>
|
|
41
|
+
<span className="ml-2 text-sm">{step}</span>
|
|
42
|
+
</div>
|
|
43
|
+
))}
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. Inline Validation
|
|
50
|
+
|
|
51
|
+
```jsx
|
|
52
|
+
// WRONG: Validate only on submit, show all errors at top
|
|
53
|
+
// RIGHT: Validate each field on blur, show error next to field
|
|
54
|
+
<input
|
|
55
|
+
type="email"
|
|
56
|
+
onBlur={(e) => {
|
|
57
|
+
if (!e.target.value.includes('@')) {
|
|
58
|
+
setErrors(prev => ({ ...prev, email: 'Please enter a valid email' }));
|
|
59
|
+
} else {
|
|
60
|
+
setErrors(prev => ({ ...prev, email: null }));
|
|
61
|
+
}
|
|
62
|
+
}}
|
|
63
|
+
/>
|
|
64
|
+
{errors.email && <span className="text-red-500 text-sm mt-1">{errors.email}</span>}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 4. Transparent Pricing (No Surprise Costs)
|
|
68
|
+
|
|
69
|
+
```jsx
|
|
70
|
+
function OrderSummary({ items, shipping, tax, discount }) {
|
|
71
|
+
const subtotal = items.reduce((sum, i) => sum + i.price * i.quantity, 0);
|
|
72
|
+
const total = subtotal + shipping + tax - discount;
|
|
73
|
+
|
|
74
|
+
return (
|
|
75
|
+
<div className="border rounded p-4">
|
|
76
|
+
<h3 className="font-bold mb-4">Order Summary</h3>
|
|
77
|
+
{items.map(item => (
|
|
78
|
+
<div key={item.id} className="flex justify-between text-sm mb-2">
|
|
79
|
+
<span>{item.name} x{item.quantity}</span>
|
|
80
|
+
<span>${(item.price * item.quantity).toFixed(2)}</span>
|
|
81
|
+
</div>
|
|
82
|
+
))}
|
|
83
|
+
<hr className="my-2" />
|
|
84
|
+
<div className="flex justify-between text-sm">
|
|
85
|
+
<span>Subtotal</span><span>${subtotal.toFixed(2)}</span>
|
|
86
|
+
</div>
|
|
87
|
+
<div className="flex justify-between text-sm">
|
|
88
|
+
<span>Shipping</span>
|
|
89
|
+
<span>{shipping === 0 ? 'FREE' : `$${shipping.toFixed(2)}`}</span>
|
|
90
|
+
</div>
|
|
91
|
+
<div className="flex justify-between text-sm">
|
|
92
|
+
<span>Tax</span><span>${tax.toFixed(2)}</span>
|
|
93
|
+
</div>
|
|
94
|
+
{discount > 0 && (
|
|
95
|
+
<div className="flex justify-between text-sm text-green-600">
|
|
96
|
+
<span>Discount</span><span>-${discount.toFixed(2)}</span>
|
|
97
|
+
</div>
|
|
98
|
+
)}
|
|
99
|
+
<hr className="my-2" />
|
|
100
|
+
<div className="flex justify-between font-bold">
|
|
101
|
+
<span>Total</span><span>${total.toFixed(2)}</span>
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Why:** 49% of users abandon when extra costs (shipping, tax) are shown too late (Baymard).
|
|
109
|
+
|
|
110
|
+
### 5. Trust Signals Near Payment
|
|
111
|
+
|
|
112
|
+
```jsx
|
|
113
|
+
<div className="flex items-center gap-2 text-sm text-gray-600 mt-4">
|
|
114
|
+
<LockIcon className="w-4 h-4" />
|
|
115
|
+
<span>Secure checkout powered by Stripe</span>
|
|
116
|
+
</div>
|
|
117
|
+
<div className="flex gap-4 mt-2">
|
|
118
|
+
<img src="/visa.svg" alt="Visa" className="h-6" />
|
|
119
|
+
<img src="/mastercard.svg" alt="Mastercard" className="h-6" />
|
|
120
|
+
<img src="/amex.svg" alt="Amex" className="h-6" />
|
|
121
|
+
</div>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 6. Mobile-Optimized Touch Targets
|
|
125
|
+
|
|
126
|
+
```css
|
|
127
|
+
/* Minimum 44x44px touch targets (Apple HIG) */
|
|
128
|
+
.checkout-button {
|
|
129
|
+
min-height: 44px;
|
|
130
|
+
min-width: 44px;
|
|
131
|
+
padding: 12px 24px;
|
|
132
|
+
font-size: 16px; /* Prevents iOS zoom on focus */
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.checkout-input {
|
|
136
|
+
min-height: 44px;
|
|
137
|
+
font-size: 16px; /* Critical: prevents auto-zoom on iOS */
|
|
138
|
+
padding: 12px;
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 7. Prevent Double-Submit
|
|
143
|
+
|
|
144
|
+
```jsx
|
|
145
|
+
function CheckoutButton({ onSubmit }) {
|
|
146
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
147
|
+
|
|
148
|
+
const handleClick = async () => {
|
|
149
|
+
if (isSubmitting) return;
|
|
150
|
+
setIsSubmitting(true);
|
|
151
|
+
try {
|
|
152
|
+
await onSubmit();
|
|
153
|
+
} finally {
|
|
154
|
+
setIsSubmitting(false);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
return (
|
|
159
|
+
<button onClick={handleClick} disabled={isSubmitting}
|
|
160
|
+
className={`w-full py-3 rounded ${isSubmitting ? 'bg-gray-400' : 'bg-blue-600 hover:bg-blue-700'} text-white`}>
|
|
161
|
+
{isSubmitting ? 'Processing...' : 'Complete Purchase'}
|
|
162
|
+
</button>
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 8. Address Autocomplete
|
|
168
|
+
|
|
169
|
+
```jsx
|
|
170
|
+
// Use browser's built-in autocomplete
|
|
171
|
+
<input name="street-address" autoComplete="street-address" />
|
|
172
|
+
<input name="city" autoComplete="address-level2" />
|
|
173
|
+
<input name="state" autoComplete="address-level1" />
|
|
174
|
+
<input name="postal-code" autoComplete="postal-code" />
|
|
175
|
+
<input name="country" autoComplete="country" />
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 9. Edit Cart Without Leaving Checkout
|
|
179
|
+
|
|
180
|
+
```jsx
|
|
181
|
+
// Show editable cart summary in sidebar/drawer during checkout
|
|
182
|
+
// Don't force user back to /cart page to change quantities
|
|
183
|
+
<CartItem>
|
|
184
|
+
<QuantitySelector value={item.quantity}
|
|
185
|
+
onChange={(qty) => updateCartItem(item.id, qty)} />
|
|
186
|
+
<RemoveButton onClick={() => removeCartItem(item.id)} />
|
|
187
|
+
</CartItem>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 10. Clear Error Recovery
|
|
191
|
+
|
|
192
|
+
```jsx
|
|
193
|
+
// After payment failure, show clear next steps
|
|
194
|
+
{paymentError && (
|
|
195
|
+
<div className="bg-red-50 border border-red-200 rounded p-4 mb-4">
|
|
196
|
+
<p className="font-medium text-red-800">Payment could not be processed</p>
|
|
197
|
+
<p className="text-sm text-red-600 mt-1">{paymentError.message}</p>
|
|
198
|
+
<p className="text-sm mt-2">You can try a different card or payment method below.</p>
|
|
199
|
+
</div>
|
|
200
|
+
)}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Verification Checklist
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
□ Guest checkout available (no forced registration)
|
|
209
|
+
□ Progress indicator visible
|
|
210
|
+
□ Inline field validation on blur
|
|
211
|
+
□ All costs shown before payment step
|
|
212
|
+
□ Trust signals near payment form
|
|
213
|
+
□ Touch targets ≥ 44x44px on mobile
|
|
214
|
+
□ Input font-size ≥ 16px (prevents iOS zoom)
|
|
215
|
+
□ Submit button disabled after click
|
|
216
|
+
□ Address autocomplete attributes set
|
|
217
|
+
□ Cart editable from checkout page
|
|
218
|
+
□ Clear error messages on payment failure
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Sources
|
|
224
|
+
|
|
225
|
+
- Baymard Institute: "Current State of Checkout UX" (2025)
|
|
226
|
+
- Amazon-Bench (arXiv:2508.15832) — E-Commerce Agent Safety Benchmark (Aug 2025)
|
|
227
|
+
- Apple Human Interface Guidelines: Touch target sizing
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Composable Commerce Architecture Selection Guide
|
|
2
|
+
|
|
3
|
+
> Decision tree for choosing between monolithic, headless, and composable commerce architectures based on project requirements.
|
|
4
|
+
|
|
5
|
+
**When to use:** Starting a new e-commerce project or evaluating whether to migrate from a monolithic platform. Use during the planning phase to make the architecture decision explicit.
|
|
6
|
+
**Stack:** Framework-agnostic (the decision determines the stack)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Architecture Spectrum
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Simple ◀────────────────────────────────────────────▶ Complex
|
|
14
|
+
|
|
15
|
+
┌──────────┐ ┌──────────┐ ┌────────────────┐
|
|
16
|
+
│ Monolithic│ │ Headless │ │ Composable │
|
|
17
|
+
│ (Shopify, │ │ (Medusa, │ │ (Mix-and-match│
|
|
18
|
+
│ WooComm) │ │ Saleor) │ │ best APIs) │
|
|
19
|
+
└──────────┘ └──────────┘ └────────────────┘
|
|
20
|
+
│ │ │
|
|
21
|
+
All-in-one Decouple Decouple
|
|
22
|
+
frontend + frontend EVERYTHING
|
|
23
|
+
backend from backend
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Decision Tree
|
|
29
|
+
|
|
30
|
+
### Question 1: Who are your customers?
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
IF single storefront (web only):
|
|
34
|
+
→ Monolithic or Headless both work
|
|
35
|
+
IF multi-channel (web + mobile + email + kiosks):
|
|
36
|
+
→ Headless or Composable (monolithic can't serve multiple frontends)
|
|
37
|
+
IF B2B + B2C or marketplace:
|
|
38
|
+
→ Composable (different channels have different business logic)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Question 2: How fast do you need to launch?
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
IF < 2 weeks to MVP:
|
|
45
|
+
→ Monolithic (Shopify, WooCommerce, Squarespace)
|
|
46
|
+
IF 1-3 months:
|
|
47
|
+
→ Headless (Medusa.js, Saleor, Shopify Hydrogen)
|
|
48
|
+
IF 3+ months, complex requirements:
|
|
49
|
+
→ Composable (custom API composition)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Question 3: How custom is your business logic?
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
IF standard catalog + checkout:
|
|
56
|
+
→ Monolithic (no need to reinvent)
|
|
57
|
+
IF custom pricing, subscriptions, or workflows:
|
|
58
|
+
→ Headless (customize backend, own frontend)
|
|
59
|
+
IF unique fulfillment, multi-vendor, or complex tax rules:
|
|
60
|
+
→ Composable (swap individual components)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Question 4: What's your team's capability?
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
IF non-technical or small team:
|
|
67
|
+
→ Monolithic (hosted, managed, minimal code)
|
|
68
|
+
IF full-stack developers:
|
|
69
|
+
→ Headless (you build the frontend, platform handles commerce)
|
|
70
|
+
IF platform/infra team:
|
|
71
|
+
→ Composable (you manage multiple services)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Platform Comparison
|
|
77
|
+
|
|
78
|
+
| Feature | Shopify | Medusa.js v2 | Saleor | Composable |
|
|
79
|
+
|---------|---------|-------------|--------|------------|
|
|
80
|
+
| **Type** | Monolithic (+ Hydrogen headless) | Headless | Headless | Architecture pattern |
|
|
81
|
+
| **Frontend** | Themes or Hydrogen (React) | Any | Any | Any |
|
|
82
|
+
| **API** | REST + GraphQL | REST + JS SDK | GraphQL only | Mix |
|
|
83
|
+
| **Database** | Managed | PostgreSQL | PostgreSQL | Per-service |
|
|
84
|
+
| **Payments** | Shopify Payments + 100+ | Stripe module | Stripe/Adyen | Any |
|
|
85
|
+
| **Self-host** | No (SaaS) | Yes (open source) | Yes (open source) | Yes |
|
|
86
|
+
| **Pricing** | $29-$299/mo + transaction fees | Free (self-host) | Free (self-host) | Varies |
|
|
87
|
+
| **Best for** | Quick launch, non-technical | Custom commerce, developers | GraphQL-first, multi-channel | Enterprise, multi-vendor |
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Medusa.js v2 Quick Reference
|
|
92
|
+
|
|
93
|
+
Medusa 2.0 uses composable Workflows made of atomic Steps:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
// Example: Custom checkout workflow
|
|
97
|
+
import { createWorkflow, createStep } from "@medusajs/workflows-sdk";
|
|
98
|
+
|
|
99
|
+
const validateCartStep = createStep("validate-cart", async (input) => {
|
|
100
|
+
// Validate cart items, prices, stock
|
|
101
|
+
return { valid: true };
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
const capturePaymentStep = createStep("capture-payment", async (input) => {
|
|
105
|
+
// Capture payment via Stripe module
|
|
106
|
+
return { payment_id: "pi_xxx" };
|
|
107
|
+
}, {
|
|
108
|
+
// Compensating action if later steps fail
|
|
109
|
+
compensate: async (input) => {
|
|
110
|
+
await refundPayment(input.payment_id);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
export const checkoutWorkflow = createWorkflow("checkout", (input) => {
|
|
115
|
+
const validation = validateCartStep(input);
|
|
116
|
+
const payment = capturePaymentStep(input);
|
|
117
|
+
return { validation, payment };
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Saleor Quick Reference
|
|
124
|
+
|
|
125
|
+
GraphQL-native, variant-based checkout:
|
|
126
|
+
|
|
127
|
+
```graphql
|
|
128
|
+
# Create checkout with variant IDs (not product IDs)
|
|
129
|
+
mutation {
|
|
130
|
+
checkoutCreate(input: {
|
|
131
|
+
lines: [
|
|
132
|
+
{ variantId: "VmFyaWFudDox", quantity: 2 }
|
|
133
|
+
]
|
|
134
|
+
email: "customer@example.com"
|
|
135
|
+
}) {
|
|
136
|
+
checkout {
|
|
137
|
+
id
|
|
138
|
+
totalPrice { gross { amount currency } }
|
|
139
|
+
}
|
|
140
|
+
errors { field message }
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Recommendation by Project Type
|
|
148
|
+
|
|
149
|
+
| Project Type | Recommended | Why |
|
|
150
|
+
|-------------|-------------|-----|
|
|
151
|
+
| Landing page + buy button | Shopify | Fastest to revenue |
|
|
152
|
+
| Custom SaaS with billing | Stripe Checkout (no platform) | Direct integration |
|
|
153
|
+
| Online course platform | Headless (Medusa/custom) | Custom enrollment logic |
|
|
154
|
+
| Marketplace | Composable | Multi-vendor, complex fulfillment |
|
|
155
|
+
| Church/nonprofit store | WooCommerce or Shopify | Low cost, familiar |
|
|
156
|
+
| B2B with custom pricing | Composable | Price tiers, quotes, contracts |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Sources
|
|
161
|
+
|
|
162
|
+
- composable.com: "Composable Commerce in 2025" (2025)
|
|
163
|
+
- composable.com: "Headless vs Composable Commerce" (2025)
|
|
164
|
+
- Medusa.js v2 Architecture Documentation (2025)
|
|
165
|
+
- Saleor API Documentation (2025)
|
|
166
|
+
- Shopify Hydrogen Winter '26 Update (2025)
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# E-Commerce Analytics & Reporting Patterns
|
|
2
|
+
|
|
3
|
+
> Funnel analysis, customer lifetime value, cohort analysis, and revenue forecasting for e-commerce dashboards.
|
|
4
|
+
|
|
5
|
+
**When to use:** Building admin dashboards or reporting features for e-commerce systems.
|
|
6
|
+
**Stack:** PostgreSQL (window functions, CTEs), any charting library (Recharts, Chart.js)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Core KPIs
|
|
11
|
+
|
|
12
|
+
### 1. Revenue Summary
|
|
13
|
+
|
|
14
|
+
```sql
|
|
15
|
+
SELECT
|
|
16
|
+
DATE_TRUNC('month', created_at) as month,
|
|
17
|
+
COUNT(*) as order_count,
|
|
18
|
+
SUM(total) as revenue,
|
|
19
|
+
AVG(total) as avg_order_value,
|
|
20
|
+
COUNT(DISTINCT user_id) as unique_customers
|
|
21
|
+
FROM orders
|
|
22
|
+
WHERE status IN ('confirmed', 'processing', 'shipped', 'delivered')
|
|
23
|
+
AND created_at > NOW() - INTERVAL '12 months'
|
|
24
|
+
GROUP BY DATE_TRUNC('month', created_at)
|
|
25
|
+
ORDER BY month DESC;
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 2. Conversion Funnel
|
|
29
|
+
|
|
30
|
+
```sql
|
|
31
|
+
WITH funnel AS (
|
|
32
|
+
SELECT
|
|
33
|
+
COUNT(DISTINCT CASE WHEN event_type = 'product_viewed' THEN session_id END) as viewed,
|
|
34
|
+
COUNT(DISTINCT CASE WHEN event_type = 'item_added' THEN session_id END) as added_to_cart,
|
|
35
|
+
COUNT(DISTINCT CASE WHEN event_type = 'checkout_started' THEN session_id END) as checkout,
|
|
36
|
+
COUNT(DISTINCT CASE WHEN event_type = 'order_completed' THEN session_id END) as purchased
|
|
37
|
+
FROM cart_events
|
|
38
|
+
WHERE created_at > NOW() - INTERVAL '30 days'
|
|
39
|
+
)
|
|
40
|
+
SELECT
|
|
41
|
+
viewed,
|
|
42
|
+
added_to_cart,
|
|
43
|
+
ROUND(added_to_cart::numeric / NULLIF(viewed, 0) * 100, 1) as view_to_cart_pct,
|
|
44
|
+
checkout,
|
|
45
|
+
ROUND(checkout::numeric / NULLIF(added_to_cart, 0) * 100, 1) as cart_to_checkout_pct,
|
|
46
|
+
purchased,
|
|
47
|
+
ROUND(purchased::numeric / NULLIF(checkout, 0) * 100, 1) as checkout_to_purchase_pct,
|
|
48
|
+
ROUND(purchased::numeric / NULLIF(viewed, 0) * 100, 1) as overall_conversion_pct
|
|
49
|
+
FROM funnel;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. Customer Lifetime Value (CLV)
|
|
53
|
+
|
|
54
|
+
```sql
|
|
55
|
+
WITH customer_stats AS (
|
|
56
|
+
SELECT
|
|
57
|
+
user_id,
|
|
58
|
+
COUNT(*) as order_count,
|
|
59
|
+
SUM(total) as total_spent,
|
|
60
|
+
MIN(created_at) as first_order,
|
|
61
|
+
MAX(created_at) as last_order,
|
|
62
|
+
AVG(total) as avg_order_value
|
|
63
|
+
FROM orders
|
|
64
|
+
WHERE status NOT IN ('cancelled', 'failed', 'refunded')
|
|
65
|
+
GROUP BY user_id
|
|
66
|
+
)
|
|
67
|
+
SELECT
|
|
68
|
+
CASE
|
|
69
|
+
WHEN total_spent > 500 THEN 'VIP (>$500)'
|
|
70
|
+
WHEN total_spent > 200 THEN 'Regular ($200-500)'
|
|
71
|
+
WHEN total_spent > 50 THEN 'Casual ($50-200)'
|
|
72
|
+
ELSE 'New (<$50)'
|
|
73
|
+
END as customer_tier,
|
|
74
|
+
COUNT(*) as customer_count,
|
|
75
|
+
ROUND(AVG(total_spent), 2) as avg_clv,
|
|
76
|
+
ROUND(AVG(order_count), 1) as avg_orders,
|
|
77
|
+
ROUND(AVG(avg_order_value), 2) as avg_order_value,
|
|
78
|
+
ROUND(AVG(EXTRACT(EPOCH FROM last_order - first_order) / 86400), 0) as avg_lifespan_days
|
|
79
|
+
FROM customer_stats
|
|
80
|
+
GROUP BY 1
|
|
81
|
+
ORDER BY avg_clv DESC;
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 4. Product Performance
|
|
85
|
+
|
|
86
|
+
```sql
|
|
87
|
+
SELECT
|
|
88
|
+
p.name,
|
|
89
|
+
COUNT(oi.id) as units_sold,
|
|
90
|
+
SUM(oi.total_price) as revenue,
|
|
91
|
+
ROUND(AVG(oi.unit_price), 2) as avg_price,
|
|
92
|
+
pv.stock_quantity as current_stock,
|
|
93
|
+
ROUND(COUNT(oi.id)::numeric /
|
|
94
|
+
NULLIF(EXTRACT(DAYS FROM NOW() - MIN(oi.created_at)), 0), 1) as daily_velocity
|
|
95
|
+
FROM order_items oi
|
|
96
|
+
JOIN products p ON p.id = oi.product_id
|
|
97
|
+
LEFT JOIN product_variants pv ON pv.product_id = p.id
|
|
98
|
+
JOIN orders o ON o.id = oi.order_id
|
|
99
|
+
WHERE o.status NOT IN ('cancelled', 'failed')
|
|
100
|
+
AND o.created_at > NOW() - INTERVAL '30 days'
|
|
101
|
+
GROUP BY p.id, p.name, pv.stock_quantity
|
|
102
|
+
ORDER BY revenue DESC
|
|
103
|
+
LIMIT 20;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 5. Cohort Retention
|
|
107
|
+
|
|
108
|
+
```sql
|
|
109
|
+
WITH first_purchase AS (
|
|
110
|
+
SELECT user_id, DATE_TRUNC('month', MIN(created_at)) as cohort_month
|
|
111
|
+
FROM orders WHERE status NOT IN ('cancelled', 'failed')
|
|
112
|
+
GROUP BY user_id
|
|
113
|
+
),
|
|
114
|
+
monthly_activity AS (
|
|
115
|
+
SELECT
|
|
116
|
+
fp.cohort_month,
|
|
117
|
+
DATE_TRUNC('month', o.created_at) as activity_month,
|
|
118
|
+
COUNT(DISTINCT o.user_id) as active_customers
|
|
119
|
+
FROM orders o
|
|
120
|
+
JOIN first_purchase fp ON fp.user_id = o.user_id
|
|
121
|
+
WHERE o.status NOT IN ('cancelled', 'failed')
|
|
122
|
+
GROUP BY fp.cohort_month, DATE_TRUNC('month', o.created_at)
|
|
123
|
+
)
|
|
124
|
+
SELECT
|
|
125
|
+
cohort_month,
|
|
126
|
+
activity_month,
|
|
127
|
+
EXTRACT(MONTH FROM activity_month - cohort_month) as months_since_first,
|
|
128
|
+
active_customers,
|
|
129
|
+
ROUND(active_customers::numeric / FIRST_VALUE(active_customers)
|
|
130
|
+
OVER (PARTITION BY cohort_month ORDER BY activity_month) * 100, 1) as retention_pct
|
|
131
|
+
FROM monthly_activity
|
|
132
|
+
ORDER BY cohort_month, activity_month;
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## API Endpoints
|
|
138
|
+
|
|
139
|
+
```javascript
|
|
140
|
+
// GET /api/admin/analytics/summary — Dashboard overview
|
|
141
|
+
router.get('/admin/analytics/summary', requireAdmin, async (req, res) => {
|
|
142
|
+
const { period = '30d' } = req.query;
|
|
143
|
+
const interval = period === '7d' ? '7 days' : period === '90d' ? '90 days' : '30 days';
|
|
144
|
+
|
|
145
|
+
const [revenue, orders, customers, topProducts] = await Promise.all([
|
|
146
|
+
getRevenueSummary(interval),
|
|
147
|
+
getOrderStats(interval),
|
|
148
|
+
getCustomerStats(interval),
|
|
149
|
+
getTopProducts(interval, 10),
|
|
150
|
+
]);
|
|
151
|
+
|
|
152
|
+
res.json({ revenue, orders, customers, topProducts, period });
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// GET /api/admin/analytics/funnel
|
|
156
|
+
router.get('/admin/analytics/funnel', requireAdmin, async (req, res) => {
|
|
157
|
+
const funnel = await getConversionFunnel(req.query.period || '30d');
|
|
158
|
+
res.json(funnel);
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Sources
|
|
165
|
+
|
|
166
|
+
- Internal gap analysis: GAP-ECOM-9 (E-Commerce Analytics)
|
|
167
|
+
- PostgreSQL: Window functions and CTEs documentation
|