@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
|
@@ -1,240 +1,240 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: debug-swarm-researcher-escape-hatch
|
|
3
|
-
category: methodology
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
contributed: 2026-03-04
|
|
6
|
-
contributor: dominion-flow-v2
|
|
7
|
-
last_updated: 2026-03-04
|
|
8
|
-
tags: [debugging, swarm, multi-agent, escape-hatch, researcher, blocked, orchestration, autonomous-loop]
|
|
9
|
-
difficulty: hard
|
|
10
|
-
usage_count: 0
|
|
11
|
-
success_rate: 100
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Debug Swarm Researcher Escape Hatch
|
|
15
|
-
|
|
16
|
-
## Problem
|
|
17
|
-
|
|
18
|
-
Multi-agent debug swarms run parallel agents attacking the same bug from different hypotheses. When every hypothesis fails — every agent returns BLOCKED — the orchestrator is stuck. Spinning up identical agents produces identical failures. Halting loses all session context.
|
|
19
|
-
|
|
20
|
-
**Symptoms:**
|
|
21
|
-
- All swarm agents return `{status:"BLOCKED", issue, attempts_made[], error_context}` after N iterations
|
|
22
|
-
- No remaining hypotheses to test
|
|
23
|
-
- Loop stagnation: circuit breaker fires (`CB_STAGNATION >= limit`)
|
|
24
|
-
- Problem requires external knowledge: prior art, community solution, docs deep-dive
|
|
25
|
-
|
|
26
|
-
**The core trap:** You can't debug your way out of a knowledge gap. The swarm needs new information before it can make progress.
|
|
27
|
-
|
|
28
|
-
## Solution Pattern
|
|
29
|
-
|
|
30
|
-
When the swarm hits a collective wall, **escape the debug loop entirely** and spawn a dedicated researcher agent. The researcher searches external sources (skills library, MCP servers, WebSearch, GitHub) and writes structured findings to a persistent file. The findings file is then injected into the next swarm iteration as first-class context.
|
|
31
|
-
|
|
32
|
-
### The Three-Layer Escape
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
Layer 1: SWARM AGENTS (parallel per hypothesis)
|
|
36
|
-
↓ All return BLOCKED
|
|
37
|
-
Layer 2: ESCAPE TRIGGER (orchestrator detects collective BLOCKED)
|
|
38
|
-
↓ Spawns fire-researcher instead of re-trying swarm
|
|
39
|
-
Layer 3: RESEARCHER (skills lib + MCP + WebSearch + GitHub)
|
|
40
|
-
↓ Writes .planning/research/YYYY-MM-DD-{slug}.md
|
|
41
|
-
↓ Returns research summary to orchestrator
|
|
42
|
-
Layer 1 again: NEW SWARM AGENTS (with research injected as context)
|
|
43
|
-
↓ Fresh hypotheses informed by external knowledge
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**Key insight:** The escape does NOT count as a swarm iteration. The loop counter
|
|
47
|
-
stays constant. The researcher is outside the iteration budget.
|
|
48
|
-
|
|
49
|
-
### BLOCKED Agent Response Contract
|
|
50
|
-
|
|
51
|
-
Swarm agents signal a wall using a structured response:
|
|
52
|
-
|
|
53
|
-
```json
|
|
54
|
-
{
|
|
55
|
-
"status": "BLOCKED",
|
|
56
|
-
"issue": "Cannot determine why X fails — tried Y and Z",
|
|
57
|
-
"attempts_made": [
|
|
58
|
-
"Checked env variable binding — correct",
|
|
59
|
-
"Added console.log to line 47 — never fires",
|
|
60
|
-
"Tried disabling auth middleware — same result"
|
|
61
|
-
],
|
|
62
|
-
"error_context": {
|
|
63
|
-
"error": "Cannot read properties of undefined (reading 'id')",
|
|
64
|
-
"file": "src/auth/middleware.ts",
|
|
65
|
-
"line": 23,
|
|
66
|
-
"stack": "..."
|
|
67
|
-
},
|
|
68
|
-
"files_checked": ["src/auth/middleware.ts", "src/routes/users.ts"]
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
The orchestrator collects all BLOCKED responses and synthesizes a research brief.
|
|
73
|
-
|
|
74
|
-
### Orchestrator Escape Logic
|
|
75
|
-
|
|
76
|
-
```python
|
|
77
|
-
def check_escape_condition(swarm_results):
|
|
78
|
-
blocked_count = sum(1 for r in swarm_results if r["status"] == "BLOCKED")
|
|
79
|
-
if blocked_count == len(swarm_results):
|
|
80
|
-
# All agents blocked — trigger escape hatch
|
|
81
|
-
return True
|
|
82
|
-
return False
|
|
83
|
-
|
|
84
|
-
def build_research_brief(blocked_responses):
|
|
85
|
-
# Synthesize what the swarm tried and where it's stuck
|
|
86
|
-
all_attempts = [a for r in blocked_responses for a in r["attempts_made"]]
|
|
87
|
-
error_patterns = [r["error_context"] for r in blocked_responses]
|
|
88
|
-
return {
|
|
89
|
-
"problem_summary": "...",
|
|
90
|
-
"attempted_approaches": all_attempts,
|
|
91
|
-
"error_signatures": error_patterns,
|
|
92
|
-
"research_queries": [
|
|
93
|
-
"Cannot read properties undefined middleware chain express",
|
|
94
|
-
"JWT auth middleware undefined user id request context"
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Researcher Sources (priority order)
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
1. Skills library search — Has this been solved before in our patterns?
|
|
103
|
-
2. context7 MCP server — Framework/library official docs
|
|
104
|
-
3. WebSearch — Community solutions, Stack Overflow, GitHub Issues
|
|
105
|
-
4. GitHub code search — Real-world implementations of the pattern
|
|
106
|
-
5. Episodic memory search — Did WE solve a similar issue in a past session?
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Research Output Format
|
|
110
|
-
|
|
111
|
-
Researcher writes to `.planning/research/YYYY-MM-DD-{slug}.md`:
|
|
112
|
-
|
|
113
|
-
```markdown
|
|
114
|
-
# Research: {problem title}
|
|
115
|
-
**Date:** YYYY-MM-DD
|
|
116
|
-
**Trigger:** Debug swarm collective BLOCKED — N agents, N attempts
|
|
117
|
-
|
|
118
|
-
## Root Cause Hypothesis (from research)
|
|
119
|
-
[What the researcher found that the swarm was missing]
|
|
120
|
-
|
|
121
|
-
## Solution Approach
|
|
122
|
-
[Concrete steps to fix based on external sources]
|
|
123
|
-
|
|
124
|
-
## Code Reference
|
|
125
|
-
```[language]
|
|
126
|
-
// From: [source URL or skill name]
|
|
127
|
-
[relevant code snippet]
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Sources
|
|
131
|
-
- [Source 1 with URL]
|
|
132
|
-
- [Source 2 with URL]
|
|
133
|
-
|
|
134
|
-
## Re-injection Prompt
|
|
135
|
-
[Ready-to-use context block for injecting into next swarm iteration]
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Re-injection Into Next Swarm Iteration
|
|
139
|
-
|
|
140
|
-
After researcher completes, the orchestrator spawns a fresh swarm with the research pre-loaded:
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
CONTEXT FROM PREVIOUS SWARM + RESEARCHER:
|
|
144
|
-
|
|
145
|
-
The debug swarm tried N approaches and was blocked. A researcher agent
|
|
146
|
-
investigated and found:
|
|
147
|
-
|
|
148
|
-
[Research summary — from .planning/research/YYYY-MM-DD-{slug}.md]
|
|
149
|
-
|
|
150
|
-
Known dead ends (do NOT retry):
|
|
151
|
-
- [attempt 1]
|
|
152
|
-
- [attempt 2]
|
|
153
|
-
|
|
154
|
-
New hypotheses to test based on research:
|
|
155
|
-
- [fresh hypothesis 1 from external sources]
|
|
156
|
-
- [fresh hypothesis 2]
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Code Example
|
|
160
|
-
|
|
161
|
-
```markdown
|
|
162
|
-
# fire-debug.md — Swarm Orchestrator (key escape section)
|
|
163
|
-
|
|
164
|
-
## Swarm Mode Orchestrator
|
|
165
|
-
|
|
166
|
-
```pseudocode
|
|
167
|
-
results = await Promise.all(swarm_agents.map(agent => agent.run()))
|
|
168
|
-
|
|
169
|
-
if results.every(r => r.status === "BLOCKED"):
|
|
170
|
-
# Escape hatch: all agents blocked
|
|
171
|
-
brief = build_research_brief(results)
|
|
172
|
-
|
|
173
|
-
research = await spawn_agent(
|
|
174
|
-
"fire-researcher",
|
|
175
|
-
{
|
|
176
|
-
query: brief.problem_summary,
|
|
177
|
-
search_sources: ["skills-library", "context7-mcp", "web-search", "github"],
|
|
178
|
-
write_to: f".planning/research/{today}-{slug}.md"
|
|
179
|
-
}
|
|
180
|
-
)
|
|
181
|
-
|
|
182
|
-
# Re-spawn swarm with research context (doesn't count as iteration)
|
|
183
|
-
new_swarm = spawn_swarm(hypotheses=research.new_hypotheses, context=research)
|
|
184
|
-
results = await new_swarm.run()
|
|
185
|
-
```
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Implementation Steps
|
|
189
|
-
|
|
190
|
-
1. Define BLOCKED response contract in swarm agent instructions (the JSON shape above)
|
|
191
|
-
2. Implement `check_escape_condition()` in orchestrator — triggers when ALL agents blocked
|
|
192
|
-
3. Implement `build_research_brief()` — synthesizes blocked responses into research queries
|
|
193
|
-
4. Spawn `fire-researcher` (or equivalent) with the brief + write path
|
|
194
|
-
5. Researcher writes structured `.planning/research/YYYY-MM-DD-{slug}.md`
|
|
195
|
-
6. Orchestrator reads research, builds re-injection context block
|
|
196
|
-
7. Spawn fresh swarm iteration with research pre-loaded as context
|
|
197
|
-
|
|
198
|
-
## When to Use
|
|
199
|
-
|
|
200
|
-
- Multi-agent debug swarm where ALL agents return BLOCKED simultaneously
|
|
201
|
-
- Problem requires external knowledge (docs, prior art, community solutions)
|
|
202
|
-
- Stagnation circuit breaker has fired due to repeated identical failures
|
|
203
|
-
- The error pattern is unfamiliar — novel framework, obscure edge case, known bug in dependency
|
|
204
|
-
- You want to preserve research findings across sessions (write to disk, not just memory)
|
|
205
|
-
|
|
206
|
-
## When NOT to Use
|
|
207
|
-
|
|
208
|
-
- Single-agent debugging (use systematic-debugging skill instead)
|
|
209
|
-
- Only 1-2 agents blocked (not all) — remaining agents may still find a path
|
|
210
|
-
- Problem is clearly a typo or obvious logic error (don't need external research)
|
|
211
|
-
- Swarm has only run 1 iteration (premature escape — try more hypotheses first)
|
|
212
|
-
- Time-critical hotfix where research delay is unacceptable
|
|
213
|
-
|
|
214
|
-
## Common Mistakes
|
|
215
|
-
|
|
216
|
-
- **Counting escape as an iteration** — the researcher escape is outside the iteration budget; resetting the loop counter erases progress tracking
|
|
217
|
-
- **Vague research brief** — synthesize specific error signatures and exact code context, not just "it doesn't work". The researcher is only as good as the brief
|
|
218
|
-
- **Not writing research to disk** — if findings stay in memory only, they're lost on session compaction. Always write `.planning/research/*.md`
|
|
219
|
-
- **Re-injecting all research** — only inject the relevant new hypotheses, not the full research doc. Context window is precious
|
|
220
|
-
- **Escaping too early** — require collective BLOCKED (all agents, not just some). Partial blocking means other hypotheses are still viable
|
|
221
|
-
|
|
222
|
-
## Exit Codes (when used in shell loop)
|
|
223
|
-
|
|
224
|
-
| Code | Meaning | Action |
|
|
225
|
-
|------|---------|--------|
|
|
226
|
-
| 0 | Bug fixed after research re-injection | Proceed to verify |
|
|
227
|
-
| 2 | Escape triggered, researcher found nothing | Human investigation required |
|
|
228
|
-
| 3 | Research found solution, fix not implemented | Apply research manually |
|
|
229
|
-
|
|
230
|
-
## Related Skills
|
|
231
|
-
|
|
232
|
-
- [shell-autonomous-loop-fixplan](_general/methodology/shell-autonomous-loop-fixplan.md) — shell-level loop with BLOCKED signal (exit code 2)
|
|
233
|
-
- [autonomous-multi-phase-build](_general/methodology/autonomous-multi-phase-build.md) — phase-level orchestration
|
|
234
|
-
- [systematic-debugging] — single-agent debugging pattern
|
|
235
|
-
|
|
236
|
-
## References
|
|
237
|
-
|
|
238
|
-
- Implemented in: `
|
|
239
|
-
- Inspired by: RLHF researcher escalation patterns + bmalph/Ralph BLOCKED exit
|
|
240
|
-
- Contributed from: dominion-flow-v2 build session 2026-03-04
|
|
1
|
+
---
|
|
2
|
+
name: debug-swarm-researcher-escape-hatch
|
|
3
|
+
category: methodology
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
contributed: 2026-03-04
|
|
6
|
+
contributor: dominion-flow-v2
|
|
7
|
+
last_updated: 2026-03-04
|
|
8
|
+
tags: [debugging, swarm, multi-agent, escape-hatch, researcher, blocked, orchestration, autonomous-loop]
|
|
9
|
+
difficulty: hard
|
|
10
|
+
usage_count: 0
|
|
11
|
+
success_rate: 100
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Debug Swarm Researcher Escape Hatch
|
|
15
|
+
|
|
16
|
+
## Problem
|
|
17
|
+
|
|
18
|
+
Multi-agent debug swarms run parallel agents attacking the same bug from different hypotheses. When every hypothesis fails — every agent returns BLOCKED — the orchestrator is stuck. Spinning up identical agents produces identical failures. Halting loses all session context.
|
|
19
|
+
|
|
20
|
+
**Symptoms:**
|
|
21
|
+
- All swarm agents return `{status:"BLOCKED", issue, attempts_made[], error_context}` after N iterations
|
|
22
|
+
- No remaining hypotheses to test
|
|
23
|
+
- Loop stagnation: circuit breaker fires (`CB_STAGNATION >= limit`)
|
|
24
|
+
- Problem requires external knowledge: prior art, community solution, docs deep-dive
|
|
25
|
+
|
|
26
|
+
**The core trap:** You can't debug your way out of a knowledge gap. The swarm needs new information before it can make progress.
|
|
27
|
+
|
|
28
|
+
## Solution Pattern
|
|
29
|
+
|
|
30
|
+
When the swarm hits a collective wall, **escape the debug loop entirely** and spawn a dedicated researcher agent. The researcher searches external sources (skills library, MCP servers, WebSearch, GitHub) and writes structured findings to a persistent file. The findings file is then injected into the next swarm iteration as first-class context.
|
|
31
|
+
|
|
32
|
+
### The Three-Layer Escape
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Layer 1: SWARM AGENTS (parallel per hypothesis)
|
|
36
|
+
↓ All return BLOCKED
|
|
37
|
+
Layer 2: ESCAPE TRIGGER (orchestrator detects collective BLOCKED)
|
|
38
|
+
↓ Spawns fire-researcher instead of re-trying swarm
|
|
39
|
+
Layer 3: RESEARCHER (skills lib + MCP + WebSearch + GitHub)
|
|
40
|
+
↓ Writes .planning/research/YYYY-MM-DD-{slug}.md
|
|
41
|
+
↓ Returns research summary to orchestrator
|
|
42
|
+
Layer 1 again: NEW SWARM AGENTS (with research injected as context)
|
|
43
|
+
↓ Fresh hypotheses informed by external knowledge
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Key insight:** The escape does NOT count as a swarm iteration. The loop counter
|
|
47
|
+
stays constant. The researcher is outside the iteration budget.
|
|
48
|
+
|
|
49
|
+
### BLOCKED Agent Response Contract
|
|
50
|
+
|
|
51
|
+
Swarm agents signal a wall using a structured response:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"status": "BLOCKED",
|
|
56
|
+
"issue": "Cannot determine why X fails — tried Y and Z",
|
|
57
|
+
"attempts_made": [
|
|
58
|
+
"Checked env variable binding — correct",
|
|
59
|
+
"Added console.log to line 47 — never fires",
|
|
60
|
+
"Tried disabling auth middleware — same result"
|
|
61
|
+
],
|
|
62
|
+
"error_context": {
|
|
63
|
+
"error": "Cannot read properties of undefined (reading 'id')",
|
|
64
|
+
"file": "src/auth/middleware.ts",
|
|
65
|
+
"line": 23,
|
|
66
|
+
"stack": "..."
|
|
67
|
+
},
|
|
68
|
+
"files_checked": ["src/auth/middleware.ts", "src/routes/users.ts"]
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The orchestrator collects all BLOCKED responses and synthesizes a research brief.
|
|
73
|
+
|
|
74
|
+
### Orchestrator Escape Logic
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
def check_escape_condition(swarm_results):
|
|
78
|
+
blocked_count = sum(1 for r in swarm_results if r["status"] == "BLOCKED")
|
|
79
|
+
if blocked_count == len(swarm_results):
|
|
80
|
+
# All agents blocked — trigger escape hatch
|
|
81
|
+
return True
|
|
82
|
+
return False
|
|
83
|
+
|
|
84
|
+
def build_research_brief(blocked_responses):
|
|
85
|
+
# Synthesize what the swarm tried and where it's stuck
|
|
86
|
+
all_attempts = [a for r in blocked_responses for a in r["attempts_made"]]
|
|
87
|
+
error_patterns = [r["error_context"] for r in blocked_responses]
|
|
88
|
+
return {
|
|
89
|
+
"problem_summary": "...",
|
|
90
|
+
"attempted_approaches": all_attempts,
|
|
91
|
+
"error_signatures": error_patterns,
|
|
92
|
+
"research_queries": [
|
|
93
|
+
"Cannot read properties undefined middleware chain express",
|
|
94
|
+
"JWT auth middleware undefined user id request context"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Researcher Sources (priority order)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
1. Skills library search — Has this been solved before in our patterns?
|
|
103
|
+
2. context7 MCP server — Framework/library official docs
|
|
104
|
+
3. WebSearch — Community solutions, Stack Overflow, GitHub Issues
|
|
105
|
+
4. GitHub code search — Real-world implementations of the pattern
|
|
106
|
+
5. Episodic memory search — Did WE solve a similar issue in a past session?
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Research Output Format
|
|
110
|
+
|
|
111
|
+
Researcher writes to `.planning/research/YYYY-MM-DD-{slug}.md`:
|
|
112
|
+
|
|
113
|
+
```markdown
|
|
114
|
+
# Research: {problem title}
|
|
115
|
+
**Date:** YYYY-MM-DD
|
|
116
|
+
**Trigger:** Debug swarm collective BLOCKED — N agents, N attempts
|
|
117
|
+
|
|
118
|
+
## Root Cause Hypothesis (from research)
|
|
119
|
+
[What the researcher found that the swarm was missing]
|
|
120
|
+
|
|
121
|
+
## Solution Approach
|
|
122
|
+
[Concrete steps to fix based on external sources]
|
|
123
|
+
|
|
124
|
+
## Code Reference
|
|
125
|
+
```[language]
|
|
126
|
+
// From: [source URL or skill name]
|
|
127
|
+
[relevant code snippet]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Sources
|
|
131
|
+
- [Source 1 with URL]
|
|
132
|
+
- [Source 2 with URL]
|
|
133
|
+
|
|
134
|
+
## Re-injection Prompt
|
|
135
|
+
[Ready-to-use context block for injecting into next swarm iteration]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Re-injection Into Next Swarm Iteration
|
|
139
|
+
|
|
140
|
+
After researcher completes, the orchestrator spawns a fresh swarm with the research pre-loaded:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
CONTEXT FROM PREVIOUS SWARM + RESEARCHER:
|
|
144
|
+
|
|
145
|
+
The debug swarm tried N approaches and was blocked. A researcher agent
|
|
146
|
+
investigated and found:
|
|
147
|
+
|
|
148
|
+
[Research summary — from .planning/research/YYYY-MM-DD-{slug}.md]
|
|
149
|
+
|
|
150
|
+
Known dead ends (do NOT retry):
|
|
151
|
+
- [attempt 1]
|
|
152
|
+
- [attempt 2]
|
|
153
|
+
|
|
154
|
+
New hypotheses to test based on research:
|
|
155
|
+
- [fresh hypothesis 1 from external sources]
|
|
156
|
+
- [fresh hypothesis 2]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Code Example
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
# fire-debug.md — Swarm Orchestrator (key escape section)
|
|
163
|
+
|
|
164
|
+
## Swarm Mode Orchestrator
|
|
165
|
+
|
|
166
|
+
```pseudocode
|
|
167
|
+
results = await Promise.all(swarm_agents.map(agent => agent.run()))
|
|
168
|
+
|
|
169
|
+
if results.every(r => r.status === "BLOCKED"):
|
|
170
|
+
# Escape hatch: all agents blocked
|
|
171
|
+
brief = build_research_brief(results)
|
|
172
|
+
|
|
173
|
+
research = await spawn_agent(
|
|
174
|
+
"fire-researcher",
|
|
175
|
+
{
|
|
176
|
+
query: brief.problem_summary,
|
|
177
|
+
search_sources: ["skills-library", "context7-mcp", "web-search", "github"],
|
|
178
|
+
write_to: f".planning/research/{today}-{slug}.md"
|
|
179
|
+
}
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
# Re-spawn swarm with research context (doesn't count as iteration)
|
|
183
|
+
new_swarm = spawn_swarm(hypotheses=research.new_hypotheses, context=research)
|
|
184
|
+
results = await new_swarm.run()
|
|
185
|
+
```
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Implementation Steps
|
|
189
|
+
|
|
190
|
+
1. Define BLOCKED response contract in swarm agent instructions (the JSON shape above)
|
|
191
|
+
2. Implement `check_escape_condition()` in orchestrator — triggers when ALL agents blocked
|
|
192
|
+
3. Implement `build_research_brief()` — synthesizes blocked responses into research queries
|
|
193
|
+
4. Spawn `fire-researcher` (or equivalent) with the brief + write path
|
|
194
|
+
5. Researcher writes structured `.planning/research/YYYY-MM-DD-{slug}.md`
|
|
195
|
+
6. Orchestrator reads research, builds re-injection context block
|
|
196
|
+
7. Spawn fresh swarm iteration with research pre-loaded as context
|
|
197
|
+
|
|
198
|
+
## When to Use
|
|
199
|
+
|
|
200
|
+
- Multi-agent debug swarm where ALL agents return BLOCKED simultaneously
|
|
201
|
+
- Problem requires external knowledge (docs, prior art, community solutions)
|
|
202
|
+
- Stagnation circuit breaker has fired due to repeated identical failures
|
|
203
|
+
- The error pattern is unfamiliar — novel framework, obscure edge case, known bug in dependency
|
|
204
|
+
- You want to preserve research findings across sessions (write to disk, not just memory)
|
|
205
|
+
|
|
206
|
+
## When NOT to Use
|
|
207
|
+
|
|
208
|
+
- Single-agent debugging (use systematic-debugging skill instead)
|
|
209
|
+
- Only 1-2 agents blocked (not all) — remaining agents may still find a path
|
|
210
|
+
- Problem is clearly a typo or obvious logic error (don't need external research)
|
|
211
|
+
- Swarm has only run 1 iteration (premature escape — try more hypotheses first)
|
|
212
|
+
- Time-critical hotfix where research delay is unacceptable
|
|
213
|
+
|
|
214
|
+
## Common Mistakes
|
|
215
|
+
|
|
216
|
+
- **Counting escape as an iteration** — the researcher escape is outside the iteration budget; resetting the loop counter erases progress tracking
|
|
217
|
+
- **Vague research brief** — synthesize specific error signatures and exact code context, not just "it doesn't work". The researcher is only as good as the brief
|
|
218
|
+
- **Not writing research to disk** — if findings stay in memory only, they're lost on session compaction. Always write `.planning/research/*.md`
|
|
219
|
+
- **Re-injecting all research** — only inject the relevant new hypotheses, not the full research doc. Context window is precious
|
|
220
|
+
- **Escaping too early** — require collective BLOCKED (all agents, not just some). Partial blocking means other hypotheses are still viable
|
|
221
|
+
|
|
222
|
+
## Exit Codes (when used in shell loop)
|
|
223
|
+
|
|
224
|
+
| Code | Meaning | Action |
|
|
225
|
+
|------|---------|--------|
|
|
226
|
+
| 0 | Bug fixed after research re-injection | Proceed to verify |
|
|
227
|
+
| 2 | Escape triggered, researcher found nothing | Human investigation required |
|
|
228
|
+
| 3 | Research found solution, fix not implemented | Apply research manually |
|
|
229
|
+
|
|
230
|
+
## Related Skills
|
|
231
|
+
|
|
232
|
+
- [shell-autonomous-loop-fixplan](_general/methodology/shell-autonomous-loop-fixplan.md) — shell-level loop with BLOCKED signal (exit code 2)
|
|
233
|
+
- [autonomous-multi-phase-build](_general/methodology/autonomous-multi-phase-build.md) — phase-level orchestration
|
|
234
|
+
- [systematic-debugging] — single-agent debugging pattern
|
|
235
|
+
|
|
236
|
+
## References
|
|
237
|
+
|
|
238
|
+
- Implemented in: `dominion-flow-v2/commands/fire-debug.md` (--swarm mode section)
|
|
239
|
+
- Inspired by: RLHF researcher escalation patterns + bmalph/Ralph BLOCKED exit
|
|
240
|
+
- Contributed from: dominion-flow-v2 build session 2026-03-04
|
|
@@ -234,5 +234,5 @@ exit 1
|
|
|
234
234
|
|
|
235
235
|
- Inspired by: [bmalph](https://github.com/LarsCowe/bmalph) — Ralph autonomous loop pattern
|
|
236
236
|
- Ralph loop architecture: `ralph_loop.sh` in bmalph v2.7.0
|
|
237
|
-
- Gap analysis session: 2026-03-04
|
|
237
|
+
- Gap analysis session: 2026-03-04 dominion-flow-v2 implementation
|
|
238
238
|
- Contributed from: dominion-flow-v2 build session
|
|
@@ -220,11 +220,11 @@ Code → [Tier 1: Build/Types/Lint] → FAIL? Stop.
|
|
|
220
220
|
|
|
221
221
|
**When to use:** When agent sessions end and the next session needs to resume from the same state. Context preservation across the session boundary.
|
|
222
222
|
|
|
223
|
-
### 18. Observer →
|
|
223
|
+
### 18. Observer → Cross-Agent Learning
|
|
224
224
|
|
|
225
225
|
**Classical:** When one object changes, all dependents are notified.
|
|
226
226
|
|
|
227
|
-
**AI Agent equivalent:** When any agent discovers a lesson, failure, pattern, or dependency, it
|
|
227
|
+
**AI Agent equivalent:** When any agent discovers a lesson, failure, pattern, or dependency, it records it in shared project state. All subsequent agents read this state on startup — they're "notified" of changes through the file system.
|
|
228
228
|
|
|
229
229
|
**When to use:** When discoveries by one agent should influence all future agents without explicit coupling.
|
|
230
230
|
|
|
@@ -267,7 +267,7 @@ HALF-OPEN → try researched alternative with guardrails
|
|
|
267
267
|
|
|
268
268
|
```
|
|
269
269
|
Template:
|
|
270
|
-
1. Load context (VISION, CONSCIENCE,
|
|
270
|
+
1. Load context (VISION, CONSCIENCE, project state) ← fixed
|
|
271
271
|
2. Validate prerequisites (path, phase, DoR) ← fixed
|
|
272
272
|
3. [OVERRIDE: Core work] ← varies by agent
|
|
273
273
|
4. Write artifacts (BLUEPRINT/RECORD/VERIFICATION) ← fixed
|
|
@@ -307,7 +307,7 @@ Template:
|
|
|
307
307
|
| Iterator | Behavioral | Breath-based execution | 2-4 tasks per breath |
|
|
308
308
|
| Mediator | Behavioral | Autonomous orchestrator | fire-autonomous |
|
|
309
309
|
| Memento | Behavioral | WARRIOR handoffs | Session state capture |
|
|
310
|
-
| Observer | Behavioral |
|
|
310
|
+
| Observer | Behavioral | Cross-agent learning | Shared project state |
|
|
311
311
|
| State | Behavioral | Circuit breaker | CLOSED/OPEN/HALF-OPEN |
|
|
312
312
|
| Strategy | Behavioral | Stuck interventions | 6 types × 6 strategies |
|
|
313
313
|
| Template Method | Behavioral | Agent lifecycle | Load → Validate → Work → Write → Report |
|
|
@@ -333,7 +333,7 @@ Template:
|
|
|
333
333
|
|
|
334
334
|
- **Confusing Strategy with State** — Strategy = choosing an algorithm. State = changing behavior based on accumulated state. Stuck-type classification is Strategy. Circuit breaker is State.
|
|
335
335
|
- **Skipping Facade** — Systems without an OVERVIEW doc force every new agent to read everything. Add a facade early.
|
|
336
|
-
- **Missing Observer** — If agent discoveries die with the session, you have no Observer pattern. Add
|
|
336
|
+
- **Missing Observer** — If agent discoveries die with the session, you have no Observer pattern. Add shared state files.
|
|
337
337
|
|
|
338
338
|
## Related Skills
|
|
339
339
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cascading-failure-diagnosis
|
|
3
|
+
category: patterns-standards
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
contributed: 2026-03-12
|
|
6
|
+
contributor: claude-mission-control
|
|
7
|
+
last_updated: 2026-03-12
|
|
8
|
+
contributors:
|
|
9
|
+
- claude-mission-control
|
|
10
|
+
tags: [debugging, react, performance, cascading, diagnosis, layered]
|
|
11
|
+
difficulty: hard
|
|
12
|
+
usage_count: 0
|
|
13
|
+
success_rate: 100
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Cascading Failure Diagnosis
|
|
17
|
+
|
|
18
|
+
## Problem
|
|
19
|
+
|
|
20
|
+
A UI appears "glitchy" or "broken" with no single clear error. The symptoms are vague — clicks don't respond, the app freezes briefly, components flash or re-render excessively. Traditional debugging (find error → fix) fails because there is no single root cause. Instead, **multiple independent bugs stack** to create a compound failure that looks like one problem but is actually 3-5 layered issues.
|
|
21
|
+
|
|
22
|
+
**Symptoms:**
|
|
23
|
+
- App feels "slow" or "clicky" with no specific error
|
|
24
|
+
- Fixing one thing doesn't resolve the overall problem
|
|
25
|
+
- Console shows mixed signals (some errors, some warnings, some clean)
|
|
26
|
+
- Performance profiler shows multiple hot paths, not one bottleneck
|
|
27
|
+
|
|
28
|
+
## Solution Pattern
|
|
29
|
+
|
|
30
|
+
**Layer-by-layer peeling** — instead of looking for THE bug, systematically isolate and fix bugs starting from the lowest layer (infrastructure/connection) upward to the highest (UI/rendering). Each fix reveals the next layer's bug that was previously masked.
|
|
31
|
+
|
|
32
|
+
### The Diagnostic Stack (bottom to top)
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Layer 4: UI/Rendering ← re-render storms, wrong data display
|
|
36
|
+
Layer 3: Data Shape ← API response != client expectation
|
|
37
|
+
Layer 2: React Lifecycle ← hooks ordering, effect dependencies
|
|
38
|
+
Layer 1: Connection ← exhausted pools, slow endpoints, timeouts
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Always diagnose bottom-up.** A connection issue (Layer 1) can cause timeouts that trigger re-renders (Layer 4), making it look like a UI bug. Fixing Layer 4 first wastes time because the root is at Layer 1.
|
|
42
|
+
|
|
43
|
+
## Code Example
|
|
44
|
+
|
|
45
|
+
```javascript
|
|
46
|
+
// Real-world example: C3 Dashboard had 4 stacked bugs
|
|
47
|
+
|
|
48
|
+
// Layer 1: Connection exhaustion
|
|
49
|
+
// BEFORE: Health endpoint did heavy I/O, slow responses exhausted Vite proxy pool
|
|
50
|
+
app.get('/api/system/health', async (req, res) => {
|
|
51
|
+
const data = await heavyHealthCheck(); // 2-5 second response
|
|
52
|
+
res.json(data);
|
|
53
|
+
});
|
|
54
|
+
// AFTER: Add zero-I/O ping endpoint for connection checks
|
|
55
|
+
app.get('/api/ping', (req, res) => res.json({ ok: true }));
|
|
56
|
+
|
|
57
|
+
// Layer 2: React hooks crash
|
|
58
|
+
// BEFORE: useMemo placed after early return = hook count mismatch
|
|
59
|
+
function App() {
|
|
60
|
+
const [loading, setLoading] = useState(true);
|
|
61
|
+
if (loading) return <Loading />; // early return BEFORE hooks
|
|
62
|
+
const panels = useMemo(() => build(), []); // hook after conditional = crash
|
|
63
|
+
}
|
|
64
|
+
// AFTER: All hooks before any conditional returns
|
|
65
|
+
function App() {
|
|
66
|
+
const [loading, setLoading] = useState(true);
|
|
67
|
+
const panels = useMemo(() => build(), []); // hooks FIRST
|
|
68
|
+
if (loading) return <Loading />; // conditionals AFTER
|
|
69
|
+
|
|
70
|
+
// Layer 3: Data shape mismatch
|
|
71
|
+
// BEFORE: Server returned array, client expected { loops: [...] }
|
|
72
|
+
const data = await fetch('/api/loops').then(r => r.json());
|
|
73
|
+
const loops = data.loops; // undefined — server sent raw array
|
|
74
|
+
// AFTER: Handle both shapes or fix server response
|
|
75
|
+
|
|
76
|
+
// Layer 4: Re-render storm
|
|
77
|
+
// BEFORE: 25 panel renderers recreated every render
|
|
78
|
+
const sections = panels.map(p => ({ render: () => <Panel {...p} /> }));
|
|
79
|
+
// AFTER: Memoize panel renderers
|
|
80
|
+
const sections = useMemo(() =>
|
|
81
|
+
panels.map(p => ({ render: () => <Panel {...p} /> })), [panels]);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Implementation Steps
|
|
85
|
+
|
|
86
|
+
1. **Start at Layer 1 (Connection):** Check network tab — are requests timing out, queuing, or returning errors? Fix connection/endpoint issues first.
|
|
87
|
+
2. **Move to Layer 2 (Lifecycle):** Check console for React warnings about hooks, effects, or unmounted components. Fix hook ordering and dependency arrays.
|
|
88
|
+
3. **Check Layer 3 (Data):** Log API responses — does the shape match what components expect? Fix response parsing.
|
|
89
|
+
4. **Finish at Layer 4 (Rendering):** Use React DevTools Profiler — are components re-rendering unnecessarily? Add memoization.
|
|
90
|
+
5. **After each layer fix, re-test** — the next layer's symptoms will now be clearer.
|
|
91
|
+
|
|
92
|
+
## When to Use
|
|
93
|
+
|
|
94
|
+
- App has vague "it's broken" symptoms with no clear single error
|
|
95
|
+
- Fixing one bug doesn't resolve the overall issue
|
|
96
|
+
- Performance profiler shows multiple hot paths
|
|
97
|
+
- The problem appeared suddenly after multiple changes
|
|
98
|
+
|
|
99
|
+
## When NOT to Use
|
|
100
|
+
|
|
101
|
+
- There's a clear, single error message — fix that directly
|
|
102
|
+
- The issue is purely visual (CSS/layout) — no cascading involved
|
|
103
|
+
- The app crashes with a stack trace pointing to one location
|
|
104
|
+
|
|
105
|
+
## Common Mistakes
|
|
106
|
+
|
|
107
|
+
- **Starting at the wrong layer** — fixing UI re-renders when the real issue is connection exhaustion
|
|
108
|
+
- **Declaring victory after fixing one layer** — always test all layers after each fix
|
|
109
|
+
- **Assuming a single root cause** — cascading failures by definition have multiple independent causes
|
|
110
|
+
- **Using console.log debugging only** — use Network tab (Layer 1), React DevTools (Layer 2-4), and Profiler (Layer 4)
|
|
111
|
+
|
|
112
|
+
## Related Skills
|
|
113
|
+
|
|
114
|
+
- [react-hooks-order-debugging](../_general/frontend/react-hooks-order-debugging.md) — Layer 2 specific fix
|
|
115
|
+
- [ref-based-canvas-animation](../_general/performance/ref-based-canvas-animation.md) — Layer 4 performance pattern
|
|
116
|
+
|
|
117
|
+
## References
|
|
118
|
+
|
|
119
|
+
- Contributed from: claude-mission-control C3 Dashboard (4 stacked bugs fixed in one session, 2026-03-12)
|