@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,405 @@
|
|
|
1
|
+
# FFmpeg Command Generator
|
|
2
|
+
## Description
|
|
3
|
+
|
|
4
|
+
Generate precise FFmpeg commands from natural language descriptions. This skill covers the most common media transformation tasks developers encounter: format conversion, extraction, compression, streaming preparation, and audio processing.
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
|
|
8
|
+
- User asks to convert, trim, compress, or transform video/audio files
|
|
9
|
+
- Building a media processing pipeline in Node.js
|
|
10
|
+
- Preparing video for web streaming (HLS, DASH)
|
|
11
|
+
- Extracting audio, thumbnails, or clips from video
|
|
12
|
+
- Automating batch media processing
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Common FFmpeg Patterns
|
|
17
|
+
|
|
18
|
+
### Video Format Conversion
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# MP4 (H.264 + AAC) — universal web playback
|
|
22
|
+
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
|
|
23
|
+
|
|
24
|
+
# WebM (VP9 + Opus) — smaller files, modern browsers
|
|
25
|
+
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus -b:a 128k output.webm
|
|
26
|
+
|
|
27
|
+
# MOV (ProRes 422) — editing/archive quality
|
|
28
|
+
ffmpeg -i input.mp4 -c:v prores_ks -profile:v 2 -c:a pcm_s16le output.mov
|
|
29
|
+
|
|
30
|
+
# AV1 (libaom) — best compression, slow encode
|
|
31
|
+
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -c:a libopus output.mkv
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Audio Extraction from Video
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Extract audio as-is (no re-encoding)
|
|
38
|
+
ffmpeg -i input.mp4 -vn -acodec copy output.aac
|
|
39
|
+
|
|
40
|
+
# Extract and convert to MP3
|
|
41
|
+
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
|
|
42
|
+
|
|
43
|
+
# Extract and convert to WAV (uncompressed)
|
|
44
|
+
ffmpeg -i input.mp4 -vn -c:a pcm_s16le -ar 44100 output.wav
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Audio Format Conversion
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# WAV to MP3 (high quality VBR)
|
|
51
|
+
ffmpeg -i input.wav -c:a libmp3lame -q:a 0 output.mp3
|
|
52
|
+
|
|
53
|
+
# WAV to MP3 (constant bitrate 320k)
|
|
54
|
+
ffmpeg -i input.wav -c:a libmp3lame -b:a 320k output.mp3
|
|
55
|
+
|
|
56
|
+
# FLAC to AAC (256k — Apple-compatible)
|
|
57
|
+
ffmpeg -i input.flac -c:a aac -b:a 256k output.m4a
|
|
58
|
+
|
|
59
|
+
# MP3 to OGG Opus (voice-optimized, 64k)
|
|
60
|
+
ffmpeg -i input.mp3 -c:a libopus -b:a 64k -application voip output.opus
|
|
61
|
+
|
|
62
|
+
# Any format to FLAC (lossless archive)
|
|
63
|
+
ffmpeg -i input.wav -c:a flac -compression_level 8 output.flac
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Video Thumbnail Extraction
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# Single frame at timestamp
|
|
70
|
+
ffmpeg -i input.mp4 -ss 00:00:10 -frames:v 1 -q:v 2 thumbnail.jpg
|
|
71
|
+
|
|
72
|
+
# Multiple frames — one every 60 seconds
|
|
73
|
+
ffmpeg -i input.mp4 -vf "fps=1/60" -q:v 2 thumb_%04d.jpg
|
|
74
|
+
|
|
75
|
+
# Scene-detection thumbnails (keyframes on scene changes)
|
|
76
|
+
ffmpeg -i input.mp4 -vf "select='gt(scene,0.4)',showinfo" -vsync vfr -q:v 2 scene_%04d.jpg
|
|
77
|
+
|
|
78
|
+
# Grid of thumbnails (4x4 tile sheet)
|
|
79
|
+
ffmpeg -i input.mp4 -vf "fps=1/30,scale=320:180,tile=4x4" -frames:v 1 grid.jpg
|
|
80
|
+
|
|
81
|
+
# Thumbnail at 10% into the video (useful for previews)
|
|
82
|
+
ffmpeg -i input.mp4 -vf "thumbnail=300" -frames:v 1 -q:v 2 best_thumb.jpg
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Video Trimming / Clipping
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Trim by start time and end time (fast seek — put -ss before -i)
|
|
89
|
+
ffmpeg -ss 00:01:30 -to 00:03:45 -i input.mp4 -c copy clip.mp4
|
|
90
|
+
|
|
91
|
+
# Trim by start time and duration
|
|
92
|
+
ffmpeg -ss 00:01:30 -i input.mp4 -t 00:02:15 -c copy clip.mp4
|
|
93
|
+
|
|
94
|
+
# Trim with re-encoding (frame-accurate, slower)
|
|
95
|
+
ffmpeg -i input.mp4 -ss 00:01:30 -to 00:03:45 -c:v libx264 -crf 23 -c:a aac clip.mp4
|
|
96
|
+
|
|
97
|
+
# Extract last 30 seconds
|
|
98
|
+
ffmpeg -sseof -30 -i input.mp4 -c copy last30.mp4
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Video Concatenation
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Step 1: Create a file list (concat.txt)
|
|
105
|
+
# file 'part1.mp4'
|
|
106
|
+
# file 'part2.mp4'
|
|
107
|
+
# file 'part3.mp4'
|
|
108
|
+
|
|
109
|
+
# Step 2: Concatenate (same codec — no re-encoding)
|
|
110
|
+
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4
|
|
111
|
+
|
|
112
|
+
# Concatenate with re-encoding (different codecs/resolutions)
|
|
113
|
+
ffmpeg -f concat -safe 0 -i concat.txt -c:v libx264 -crf 23 -c:a aac output.mp4
|
|
114
|
+
|
|
115
|
+
# Two files directly (filter method — handles different formats)
|
|
116
|
+
ffmpeg -i part1.mp4 -i part2.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" output.mp4
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### HLS Segmentation for Streaming
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Basic HLS with 6-second segments
|
|
123
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast \
|
|
124
|
+
-c:a aac -b:a 128k \
|
|
125
|
+
-hls_time 6 -hls_list_size 0 -hls_segment_filename "segment_%03d.ts" \
|
|
126
|
+
playlist.m3u8
|
|
127
|
+
|
|
128
|
+
# Multi-bitrate HLS (adaptive streaming)
|
|
129
|
+
ffmpeg -i input.mp4 \
|
|
130
|
+
-filter_complex "[0:v]split=3[v1][v2][v3]; \
|
|
131
|
+
[v1]scale=1920:1080[v1out]; \
|
|
132
|
+
[v2]scale=1280:720[v2out]; \
|
|
133
|
+
[v3]scale=854:480[v3out]" \
|
|
134
|
+
-map "[v1out]" -c:v:0 libx264 -b:v:0 5000k -preset fast \
|
|
135
|
+
-map "[v2out]" -c:v:1 libx264 -b:v:1 2500k -preset fast \
|
|
136
|
+
-map "[v3out]" -c:v:2 libx264 -b:v:2 1000k -preset fast \
|
|
137
|
+
-map a:0 -c:a aac -b:a 128k \
|
|
138
|
+
-f hls -hls_time 6 -hls_list_size 0 \
|
|
139
|
+
-master_pl_name master.m3u8 \
|
|
140
|
+
-var_stream_map "v:0,a:0 v:1,a:0 v:2,a:0" \
|
|
141
|
+
stream_%v/playlist.m3u8
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Subtitle Burning (Hardcoded)
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Burn SRT subtitles into video
|
|
148
|
+
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:v libx264 -crf 23 -c:a copy output.mp4
|
|
149
|
+
|
|
150
|
+
# Burn with custom font styling
|
|
151
|
+
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2'" -c:v libx264 -crf 23 -c:a copy output.mp4
|
|
152
|
+
|
|
153
|
+
# Burn ASS/SSA subtitles (preserves styling)
|
|
154
|
+
ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:v libx264 -crf 23 -c:a copy output.mp4
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Audio Normalization (EBU R128)
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# Two-pass loudness normalization (most accurate)
|
|
161
|
+
# Pass 1: Measure
|
|
162
|
+
ffmpeg -i input.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null NUL
|
|
163
|
+
|
|
164
|
+
# Pass 2: Apply (use measured_I, measured_TP, measured_LRA, measured_thresh from pass 1)
|
|
165
|
+
ffmpeg -i input.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-23.5:measured_TP=-7.2:measured_LRA=14.3:measured_thresh=-34.5:linear=true -c:v copy output.mp4
|
|
166
|
+
|
|
167
|
+
# Single-pass normalization (simpler, slightly less accurate)
|
|
168
|
+
ffmpeg -i input.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11 -c:v copy output.mp4
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Video Compression (CRF Quality Control)
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Light compression (visually lossless) — CRF 18
|
|
175
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a copy output.mp4
|
|
176
|
+
|
|
177
|
+
# Medium compression (good quality) — CRF 23
|
|
178
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
|
|
179
|
+
|
|
180
|
+
# Heavy compression (small file) — CRF 28
|
|
181
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -preset fast -c:a aac -b:a 96k output.mp4
|
|
182
|
+
|
|
183
|
+
# Target file size (two-pass encoding for ~100MB target on a 10min video)
|
|
184
|
+
ffmpeg -i input.mp4 -c:v libx264 -b:v 1300k -pass 1 -an -f null NUL
|
|
185
|
+
ffmpeg -i input.mp4 -c:v libx264 -b:v 1300k -pass 2 -c:a aac -b:a 128k output.mp4
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Watermark Overlay
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# Image watermark — bottom-right corner with padding
|
|
192
|
+
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=W-w-10:H-h-10" -c:v libx264 -crf 23 -c:a copy output.mp4
|
|
193
|
+
|
|
194
|
+
# Semi-transparent watermark
|
|
195
|
+
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1:v]format=rgba,colorchannelmixer=aa=0.3[wm];[0:v][wm]overlay=W-w-10:H-h-10" -c:v libx264 -crf 23 -c:a copy output.mp4
|
|
196
|
+
|
|
197
|
+
# Text watermark
|
|
198
|
+
ffmpeg -i input.mp4 -vf "drawtext=text='My Channel':fontsize=24:fontcolor=white@0.5:x=W-tw-10:y=H-th-10" -c:v libx264 -crf 23 -c:a copy output.mp4
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### GIF Creation from Video
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# High-quality GIF (two-pass with palette)
|
|
205
|
+
ffmpeg -i input.mp4 -ss 00:00:05 -t 3 -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
|
|
206
|
+
|
|
207
|
+
# Simple GIF (lower quality, one command)
|
|
208
|
+
ffmpeg -i input.mp4 -ss 00:00:05 -t 3 -vf "fps=10,scale=320:-1" output.gif
|
|
209
|
+
|
|
210
|
+
# GIF with text overlay
|
|
211
|
+
ffmpeg -i input.mp4 -ss 00:00:05 -t 3 -vf "fps=15,scale=480:-1:flags=lanczos,drawtext=text='Hello':fontsize=36:fontcolor=white:x=(w-tw)/2:y=(h-th)/2,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Node.js Integration with fluent-ffmpeg
|
|
217
|
+
|
|
218
|
+
### Installation
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
npm install fluent-ffmpeg
|
|
222
|
+
# ffmpeg binary must be in PATH, or set path explicitly
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Basic Usage Pattern
|
|
226
|
+
|
|
227
|
+
```javascript
|
|
228
|
+
import ffmpeg from 'fluent-ffmpeg';
|
|
229
|
+
|
|
230
|
+
function convertVideo(input, output) {
|
|
231
|
+
return new Promise((resolve, reject) => {
|
|
232
|
+
ffmpeg(input)
|
|
233
|
+
.output(output)
|
|
234
|
+
.videoCodec('libx264')
|
|
235
|
+
.audioCodec('aac')
|
|
236
|
+
.outputOptions(['-crf 23', '-preset medium'])
|
|
237
|
+
.on('end', () => resolve(output))
|
|
238
|
+
.on('error', (err) => reject(err))
|
|
239
|
+
.run();
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Progress Tracking
|
|
245
|
+
|
|
246
|
+
```javascript
|
|
247
|
+
import ffmpeg from 'fluent-ffmpeg';
|
|
248
|
+
|
|
249
|
+
function convertWithProgress(input, output, onProgress) {
|
|
250
|
+
return new Promise((resolve, reject) => {
|
|
251
|
+
ffmpeg(input)
|
|
252
|
+
.output(output)
|
|
253
|
+
.videoCodec('libx264')
|
|
254
|
+
.audioCodec('aac')
|
|
255
|
+
.outputOptions(['-crf 23', '-preset fast'])
|
|
256
|
+
.on('start', (cmd) => {
|
|
257
|
+
console.log('Running:', cmd);
|
|
258
|
+
})
|
|
259
|
+
.on('progress', (progress) => {
|
|
260
|
+
// progress.percent, progress.timemark, progress.currentFps
|
|
261
|
+
if (onProgress) onProgress(progress);
|
|
262
|
+
console.log(`Progress: ${Math.round(progress.percent || 0)}%`);
|
|
263
|
+
})
|
|
264
|
+
.on('end', () => resolve(output))
|
|
265
|
+
.on('error', (err, stdout, stderr) => {
|
|
266
|
+
console.error('FFmpeg stderr:', stderr);
|
|
267
|
+
reject(err);
|
|
268
|
+
})
|
|
269
|
+
.run();
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Error Handling
|
|
275
|
+
|
|
276
|
+
```javascript
|
|
277
|
+
import ffmpeg from 'fluent-ffmpeg';
|
|
278
|
+
|
|
279
|
+
async function safeConvert(input, output) {
|
|
280
|
+
// Probe input first to validate
|
|
281
|
+
const metadata = await new Promise((resolve, reject) => {
|
|
282
|
+
ffmpeg.ffprobe(input, (err, data) => {
|
|
283
|
+
if (err) reject(new Error(`Cannot read input: ${err.message}`));
|
|
284
|
+
else resolve(data);
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
const duration = metadata.format.duration;
|
|
289
|
+
const hasVideo = metadata.streams.some(s => s.codec_type === 'video');
|
|
290
|
+
const hasAudio = metadata.streams.some(s => s.codec_type === 'audio');
|
|
291
|
+
|
|
292
|
+
console.log(`Input: ${duration}s, video=${hasVideo}, audio=${hasAudio}`);
|
|
293
|
+
|
|
294
|
+
return new Promise((resolve, reject) => {
|
|
295
|
+
const cmd = ffmpeg(input).output(output);
|
|
296
|
+
|
|
297
|
+
if (hasVideo) cmd.videoCodec('libx264').outputOptions(['-crf 23']);
|
|
298
|
+
if (hasAudio) cmd.audioCodec('aac').audioBitrate('128k');
|
|
299
|
+
|
|
300
|
+
cmd
|
|
301
|
+
.on('end', () => resolve({ output, duration }))
|
|
302
|
+
.on('error', (err, stdout, stderr) => {
|
|
303
|
+
// Common errors and their fixes
|
|
304
|
+
if (stderr?.includes('No such file or directory')) {
|
|
305
|
+
reject(new Error('Input file not found'));
|
|
306
|
+
} else if (stderr?.includes('Invalid data found')) {
|
|
307
|
+
reject(new Error('Corrupted or unsupported input format'));
|
|
308
|
+
} else if (stderr?.includes('codec not currently supported')) {
|
|
309
|
+
reject(new Error('Codec not available — install ffmpeg with full codec support'));
|
|
310
|
+
} else {
|
|
311
|
+
reject(new Error(`FFmpeg error: ${err.message}`));
|
|
312
|
+
}
|
|
313
|
+
})
|
|
314
|
+
.run();
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Streaming Output
|
|
320
|
+
|
|
321
|
+
```javascript
|
|
322
|
+
import ffmpeg from 'fluent-ffmpeg';
|
|
323
|
+
import { PassThrough } from 'stream';
|
|
324
|
+
|
|
325
|
+
function streamConvert(inputPath) {
|
|
326
|
+
const passthrough = new PassThrough();
|
|
327
|
+
|
|
328
|
+
ffmpeg(inputPath)
|
|
329
|
+
.format('mp4')
|
|
330
|
+
.videoCodec('libx264')
|
|
331
|
+
.audioCodec('aac')
|
|
332
|
+
.outputOptions(['-crf 23', '-movflags frag_keyframe+empty_moov']) // Required for MP4 streaming
|
|
333
|
+
.pipe(passthrough, { end: true });
|
|
334
|
+
|
|
335
|
+
return passthrough;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Express.js usage
|
|
339
|
+
app.get('/stream/:filename', (req, res) => {
|
|
340
|
+
const inputPath = `/uploads/${req.params.filename}`;
|
|
341
|
+
res.setHeader('Content-Type', 'video/mp4');
|
|
342
|
+
streamConvert(inputPath).pipe(res);
|
|
343
|
+
});
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Hardware Acceleration
|
|
349
|
+
|
|
350
|
+
| Platform | Encoder | Flag | Example |
|
|
351
|
+
|----------|---------|------|---------|
|
|
352
|
+
| NVIDIA (Windows/Linux) | NVENC | `-c:v h264_nvenc` | `ffmpeg -i in.mp4 -c:v h264_nvenc -preset p4 -cq 23 out.mp4` |
|
|
353
|
+
| NVIDIA HEVC | NVENC | `-c:v hevc_nvenc` | `ffmpeg -i in.mp4 -c:v hevc_nvenc -preset p4 -cq 28 out.mp4` |
|
|
354
|
+
| macOS (Apple Silicon) | VideoToolbox | `-c:v h264_videotoolbox` | `ffmpeg -i in.mp4 -c:v h264_videotoolbox -q:v 60 out.mp4` |
|
|
355
|
+
| macOS HEVC | VideoToolbox | `-c:v hevc_videotoolbox` | `ffmpeg -i in.mp4 -c:v hevc_videotoolbox -q:v 60 out.mp4` |
|
|
356
|
+
| Linux Intel | VAAPI | `-c:v h264_vaapi` | `ffmpeg -vaapi_device /dev/dri/renderD128 -i in.mp4 -vf 'format=nv12,hwupload' -c:v h264_vaapi out.mp4` |
|
|
357
|
+
| Linux AMD | VAAPI | `-c:v h264_vaapi` | Same as Intel VAAPI |
|
|
358
|
+
| Windows Intel | QSV | `-c:v h264_qsv` | `ffmpeg -i in.mp4 -c:v h264_qsv -global_quality 23 out.mp4` |
|
|
359
|
+
|
|
360
|
+
**Check available encoders:**
|
|
361
|
+
```bash
|
|
362
|
+
ffmpeg -encoders 2>/dev/null | grep -E "nvenc|videotoolbox|vaapi|qsv"
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Quality Presets
|
|
368
|
+
|
|
369
|
+
| Preset | Resolution | Video Codec | CRF | Audio | Bitrate (approx) | Use Case |
|
|
370
|
+
|--------|-----------|-------------|-----|-------|-------------------|----------|
|
|
371
|
+
| **Web** | 1080p | H.264 | 23 | AAC 128k | 3-5 Mbps | Website embeds, social media |
|
|
372
|
+
| **Mobile** | 720p | H.264 | 26 | AAC 96k | 1-2 Mbps | Mobile apps, low bandwidth |
|
|
373
|
+
| **Archive** | Original | H.264 | 18 | AAC 256k | 8-15 Mbps | Long-term storage, master copies |
|
|
374
|
+
| **Streaming** | Adaptive | H.264 | 21 | AAC 128k | 1-5 Mbps | HLS/DASH adaptive bitrate |
|
|
375
|
+
| **Thumbnail** | 320px wide | MJPEG | q:v 2 | None | N/A | Preview images |
|
|
376
|
+
|
|
377
|
+
**Quick preset commands:**
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
# Web preset
|
|
381
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -vf scale=-2:1080 -c:a aac -b:a 128k web.mp4
|
|
382
|
+
|
|
383
|
+
# Mobile preset
|
|
384
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 26 -preset fast -vf scale=-2:720 -c:a aac -b:a 96k mobile.mp4
|
|
385
|
+
|
|
386
|
+
# Archive preset
|
|
387
|
+
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 256k archive.mp4
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Troubleshooting
|
|
393
|
+
|
|
394
|
+
| Error | Cause | Fix |
|
|
395
|
+
|-------|-------|-----|
|
|
396
|
+
| `No such file or directory` | Input file path wrong or ffmpeg not in PATH | Verify path; run `ffmpeg -version` to confirm installation |
|
|
397
|
+
| `Invalid data found when processing input` | Corrupted file or unsupported container | Try `ffprobe input.mp4` to diagnose; re-download source |
|
|
398
|
+
| `Unknown encoder 'libx264'` | FFmpeg built without x264 support | Install full build: `brew install ffmpeg` / `choco install ffmpeg-full` |
|
|
399
|
+
| `Output file is empty` | `-c copy` used with incompatible trim points | Use re-encoding instead of `-c copy` for frame-accurate cuts |
|
|
400
|
+
| `moov atom not found` | Incomplete MP4 (failed download/recording) | Try `ffmpeg -i broken.mp4 -c copy -movflags faststart fixed.mp4` |
|
|
401
|
+
| `Avi header missing` | Wrong file extension for actual format | Run `ffprobe` to detect real format, rename accordingly |
|
|
402
|
+
| `height not divisible by 2` | Scaling produced odd dimension | Use `scale=-2:720` (the `-2` ensures even numbers) |
|
|
403
|
+
| `NVENC not available` | No NVIDIA GPU or drivers too old | Update GPU drivers; fall back to `libx264` |
|
|
404
|
+
| `Too many packets buffered for output stream` | Encoding too slow for input rate | Add `-max_muxing_queue_size 1024` |
|
|
405
|
+
| `Permission denied` | Output path not writable | Check directory permissions; avoid writing to system dirs |
|