@macpaw/cctk 1.0.0-beta.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/License +21 -0
- package/README.md +142 -0
- package/bin/index.js +5 -0
- package/dist/index.js +1 -0
- package/package.json +65 -0
- package/templates/claude/agents/brainstormer.md +113 -0
- package/templates/claude/agents/code-reviewer.md +157 -0
- package/templates/claude/agents/copywriter.md +110 -0
- package/templates/claude/agents/database-admin.md +92 -0
- package/templates/claude/agents/debugger.md +137 -0
- package/templates/claude/agents/docs-manager.md +208 -0
- package/templates/claude/agents/fullstack-developer.md +95 -0
- package/templates/claude/agents/git-manager.md +394 -0
- package/templates/claude/agents/journal-writer.md +113 -0
- package/templates/claude/agents/mcp-manager.md +89 -0
- package/templates/claude/agents/planner.md +108 -0
- package/templates/claude/agents/project-manager.md +125 -0
- package/templates/claude/agents/registry.json +304 -0
- package/templates/claude/agents/researcher.md +37 -0
- package/templates/claude/agents/scout-external.md +140 -0
- package/templates/claude/agents/scout.md +106 -0
- package/templates/claude/agents/tester.md +105 -0
- package/templates/claude/agents/ui-ux-designer.md +208 -0
- package/templates/claude/commands/ask.md +56 -0
- package/templates/claude/commands/bootstrap/auto/fast.md +106 -0
- package/templates/claude/commands/bootstrap/auto/parallel.md +64 -0
- package/templates/claude/commands/bootstrap/auto.md +110 -0
- package/templates/claude/commands/bootstrap.md +130 -0
- package/templates/claude/commands/brainstorm.md +75 -0
- package/templates/claude/commands/code/auto.md +198 -0
- package/templates/claude/commands/code/no-test.md +172 -0
- package/templates/claude/commands/code/parallel.md +100 -0
- package/templates/claude/commands/code.md +197 -0
- package/templates/claude/commands/coding-level.md +37 -0
- package/templates/claude/commands/content/cro.md +41 -0
- package/templates/claude/commands/content/enhance.md +12 -0
- package/templates/claude/commands/content/fast.md +11 -0
- package/templates/claude/commands/content/good.md +14 -0
- package/templates/claude/commands/cook/auto/fast.md +26 -0
- package/templates/claude/commands/cook/auto/parallel.md +49 -0
- package/templates/claude/commands/cook/auto.md +15 -0
- package/templates/claude/commands/cook.md +101 -0
- package/templates/claude/commands/debug.md +13 -0
- package/templates/claude/commands/docs/init.md +37 -0
- package/templates/claude/commands/docs/summarize.md +22 -0
- package/templates/claude/commands/docs/update.md +78 -0
- package/templates/claude/commands/fix/ci.md +17 -0
- package/templates/claude/commands/fix/fast.md +18 -0
- package/templates/claude/commands/fix/hard.md +35 -0
- package/templates/claude/commands/fix/logs.md +26 -0
- package/templates/claude/commands/fix/parallel.md +54 -0
- package/templates/claude/commands/fix/test.md +20 -0
- package/templates/claude/commands/fix/types.md +9 -0
- package/templates/claude/commands/fix/ui.md +33 -0
- package/templates/claude/commands/fix.md +43 -0
- package/templates/claude/commands/git/cm.md +5 -0
- package/templates/claude/commands/git/cp.md +4 -0
- package/templates/claude/commands/git/merge.md +40 -0
- package/templates/claude/commands/git/pr.md +50 -0
- package/templates/claude/commands/journal.md +7 -0
- package/templates/claude/commands/kanban.md +99 -0
- package/templates/claude/commands/plan/archive.md +57 -0
- package/templates/claude/commands/plan/ci.md +33 -0
- package/templates/claude/commands/plan/cro.md +67 -0
- package/templates/claude/commands/plan/fast.md +66 -0
- package/templates/claude/commands/plan/hard.md +92 -0
- package/templates/claude/commands/plan/parallel.md +129 -0
- package/templates/claude/commands/plan/two.md +45 -0
- package/templates/claude/commands/plan/validate.md +117 -0
- package/templates/claude/commands/plan.md +30 -0
- package/templates/claude/commands/preview.md +87 -0
- package/templates/claude/commands/registry.json +313 -0
- package/templates/claude/commands/review/codebase/parallel.md +122 -0
- package/templates/claude/commands/review/codebase.md +47 -0
- package/templates/claude/commands/scout/ext.md +35 -0
- package/templates/claude/commands/scout.md +28 -0
- package/templates/claude/commands/skill/add.md +36 -0
- package/templates/claude/commands/skill/create.md +29 -0
- package/templates/claude/commands/skill/fix-logs.md +22 -0
- package/templates/claude/commands/skill/optimize/auto.md +25 -0
- package/templates/claude/commands/skill/optimize.md +34 -0
- package/templates/claude/commands/skill/plan.md +45 -0
- package/templates/claude/commands/test/ui.md +91 -0
- package/templates/claude/commands/test.md +8 -0
- package/templates/claude/commands/use-mcp.md +34 -0
- package/templates/claude/commands/watzup.md +8 -0
- package/templates/claude/commands/worktree.md +126 -0
- package/templates/claude/hooks/dev-rules-reminder.cjs +258 -0
- package/templates/claude/hooks/docs/README.md +42 -0
- package/templates/claude/hooks/lib/cctk-config-utils.cjs +751 -0
- package/templates/claude/hooks/lib/cctk-paths.cjs +106 -0
- package/templates/claude/hooks/lib/context-tracker.cjs +346 -0
- package/templates/claude/hooks/privacy-block.cjs +289 -0
- package/templates/claude/hooks/registry.json +77 -0
- package/templates/claude/hooks/scout-block/broad-pattern-detector.cjs +293 -0
- package/templates/claude/hooks/scout-block/error-formatter.cjs +156 -0
- package/templates/claude/hooks/scout-block/path-extractor.cjs +359 -0
- package/templates/claude/hooks/scout-block/pattern-matcher.cjs +184 -0
- package/templates/claude/hooks/scout-block/vendor/ignore.js +626 -0
- package/templates/claude/hooks/scout-block.cjs +167 -0
- package/templates/claude/hooks/session-end.cjs +35 -0
- package/templates/claude/hooks/session-init.cjs +214 -0
- package/templates/claude/hooks/subagent-init.cjs +161 -0
- package/templates/claude/hooks/write-compact-marker.cjs +153 -0
- package/templates/claude/output-styles/coding-level-1.md +148 -0
- package/templates/claude/output-styles/coding-level-2.md +159 -0
- package/templates/claude/output-styles/coding-level-3.md +91 -0
- package/templates/claude/scripts/README.md +33 -0
- package/templates/claude/scripts/generate-catalogs.cjs +318 -0
- package/templates/claude/scripts/registry.json +48 -0
- package/templates/claude/scripts/set-active-plan.cjs +45 -0
- package/templates/claude/scripts/validate-docs.cjs +447 -0
- package/templates/claude/scripts/worktree.cjs +658 -0
- package/templates/claude/skills/README.md +112 -0
- package/templates/claude/skills/ai-artist/SKILL.md +75 -0
- package/templates/claude/skills/ai-artist/references/advanced-techniques.md +184 -0
- package/templates/claude/skills/ai-artist/references/domain-code.md +66 -0
- package/templates/claude/skills/ai-artist/references/domain-data.md +72 -0
- package/templates/claude/skills/ai-artist/references/domain-marketing.md +66 -0
- package/templates/claude/skills/ai-artist/references/domain-patterns.md +33 -0
- package/templates/claude/skills/ai-artist/references/domain-writing.md +68 -0
- package/templates/claude/skills/ai-artist/references/image-prompting.md +141 -0
- package/templates/claude/skills/ai-artist/references/llm-prompting.md +165 -0
- package/templates/claude/skills/ai-artist/references/nano-banana.md +59 -0
- package/templates/claude/skills/ai-artist/references/reasoning-techniques.md +201 -0
- package/templates/claude/skills/backend-development/SKILL.md +95 -0
- package/templates/claude/skills/backend-development/references/backend-api-design.md +495 -0
- package/templates/claude/skills/backend-development/references/backend-architecture.md +454 -0
- package/templates/claude/skills/backend-development/references/backend-authentication.md +338 -0
- package/templates/claude/skills/backend-development/references/backend-code-quality.md +659 -0
- package/templates/claude/skills/backend-development/references/backend-debugging.md +904 -0
- package/templates/claude/skills/backend-development/references/backend-devops.md +494 -0
- package/templates/claude/skills/backend-development/references/backend-mindset.md +387 -0
- package/templates/claude/skills/backend-development/references/backend-performance.md +397 -0
- package/templates/claude/skills/backend-development/references/backend-security.md +290 -0
- package/templates/claude/skills/backend-development/references/backend-technologies.md +256 -0
- package/templates/claude/skills/backend-development/references/backend-testing.md +429 -0
- package/templates/claude/skills/better-auth/SKILL.md +204 -0
- package/templates/claude/skills/better-auth/references/advanced-features.md +553 -0
- package/templates/claude/skills/better-auth/references/database-integration.md +577 -0
- package/templates/claude/skills/better-auth/references/email-password-auth.md +416 -0
- package/templates/claude/skills/better-auth/references/oauth-providers.md +430 -0
- package/templates/claude/skills/better-auth/scripts/better_auth_init.py +521 -0
- package/templates/claude/skills/chrome-devtools/SKILL.md +473 -0
- package/templates/claude/skills/chrome-devtools/references/cdp-domains.md +694 -0
- package/templates/claude/skills/chrome-devtools/references/performance-guide.md +940 -0
- package/templates/claude/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
- package/templates/claude/skills/chrome-devtools/scripts/README.md +288 -0
- package/templates/claude/skills/chrome-devtools/scripts/aria-snapshot.js +368 -0
- package/templates/claude/skills/chrome-devtools/scripts/click.js +92 -0
- package/templates/claude/skills/chrome-devtools/scripts/console.js +85 -0
- package/templates/claude/skills/chrome-devtools/scripts/evaluate.js +59 -0
- package/templates/claude/skills/chrome-devtools/scripts/fill.js +84 -0
- package/templates/claude/skills/chrome-devtools/scripts/inject-auth.js +247 -0
- package/templates/claude/skills/chrome-devtools/scripts/install-deps.sh +11 -0
- package/templates/claude/skills/chrome-devtools/scripts/install.sh +36 -0
- package/templates/claude/skills/chrome-devtools/scripts/lib/browser.js +335 -0
- package/templates/claude/skills/chrome-devtools/scripts/lib/selector.js +183 -0
- package/templates/claude/skills/chrome-devtools/scripts/navigate.js +60 -0
- package/templates/claude/skills/chrome-devtools/scripts/network.js +113 -0
- package/templates/claude/skills/chrome-devtools/scripts/package.json +16 -0
- package/templates/claude/skills/chrome-devtools/scripts/performance.js +159 -0
- package/templates/claude/skills/chrome-devtools/scripts/screenshot.js +212 -0
- package/templates/claude/skills/chrome-devtools/scripts/select-ref.js +151 -0
- package/templates/claude/skills/chrome-devtools/scripts/snapshot.js +143 -0
- package/templates/claude/skills/chrome-devtools/scripts/ws-debug.js +47 -0
- package/templates/claude/skills/chrome-devtools/scripts/ws-full-debug.js +115 -0
- package/templates/claude/skills/claude-code/references/advanced-features.md +399 -0
- package/templates/claude/skills/claude-code/references/agent-skills.md +399 -0
- package/templates/claude/skills/claude-code/references/api-reference.md +498 -0
- package/templates/claude/skills/claude-code/references/best-practices.md +447 -0
- package/templates/claude/skills/claude-code/references/cicd-integration.md +428 -0
- package/templates/claude/skills/claude-code/references/common-workflows.md +107 -0
- package/templates/claude/skills/claude-code/references/configuration.md +480 -0
- package/templates/claude/skills/claude-code/references/enterprise-features.md +472 -0
- package/templates/claude/skills/claude-code/references/getting-started.md +244 -0
- package/templates/claude/skills/claude-code/references/hooks-and-plugins.md +444 -0
- package/templates/claude/skills/claude-code/references/hooks-comprehensive.md +622 -0
- package/templates/claude/skills/claude-code/references/ide-integration.md +316 -0
- package/templates/claude/skills/claude-code/references/mcp-integration.md +386 -0
- package/templates/claude/skills/claude-code/references/slash-commands.md +460 -0
- package/templates/claude/skills/claude-code/references/troubleshooting.md +455 -0
- package/templates/claude/skills/claude-code/skill.md +60 -0
- package/templates/claude/skills/code-review/SKILL.md +143 -0
- package/templates/claude/skills/code-review/references/code-review-reception.md +209 -0
- package/templates/claude/skills/code-review/references/requesting-code-review.md +105 -0
- package/templates/claude/skills/code-review/references/verification-before-completion.md +139 -0
- package/templates/claude/skills/context-engineering/SKILL.md +86 -0
- package/templates/claude/skills/context-engineering/references/context-compression.md +84 -0
- package/templates/claude/skills/context-engineering/references/context-degradation.md +93 -0
- package/templates/claude/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/templates/claude/skills/context-engineering/references/context-optimization.md +82 -0
- package/templates/claude/skills/context-engineering/references/evaluation.md +89 -0
- package/templates/claude/skills/context-engineering/references/memory-systems.md +88 -0
- package/templates/claude/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/templates/claude/skills/context-engineering/references/project-development.md +97 -0
- package/templates/claude/skills/context-engineering/references/tool-design.md +86 -0
- package/templates/claude/skills/context-engineering/scripts/compression_evaluator.py +329 -0
- package/templates/claude/skills/context-engineering/scripts/context_analyzer.py +294 -0
- package/templates/claude/skills/databases/SKILL.md +232 -0
- package/templates/claude/skills/databases/references/mongodb-aggregation.md +447 -0
- package/templates/claude/skills/databases/references/mongodb-atlas.md +465 -0
- package/templates/claude/skills/databases/references/mongodb-crud.md +408 -0
- package/templates/claude/skills/databases/references/mongodb-indexing.md +442 -0
- package/templates/claude/skills/databases/references/postgresql-administration.md +594 -0
- package/templates/claude/skills/databases/references/postgresql-performance.md +527 -0
- package/templates/claude/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/templates/claude/skills/databases/references/postgresql-queries.md +475 -0
- package/templates/claude/skills/databases/scripts/db_backup.py +502 -0
- package/templates/claude/skills/databases/scripts/db_migrate.py +414 -0
- package/templates/claude/skills/databases/scripts/db_performance_check.py +445 -0
- package/templates/claude/skills/debugging/SKILL.md +84 -0
- package/templates/claude/skills/debugging/references/defense-in-depth.md +124 -0
- package/templates/claude/skills/debugging/references/root-cause-tracing.md +122 -0
- package/templates/claude/skills/debugging/references/systematic-debugging.md +102 -0
- package/templates/claude/skills/debugging/references/verification.md +123 -0
- package/templates/claude/skills/debugging/scripts/find-polluter.sh +63 -0
- package/templates/claude/skills/debugging/scripts/find-polluter.test.md +102 -0
- package/templates/claude/skills/devops/SKILL.md +293 -0
- package/templates/claude/skills/devops/references/browser-rendering.md +305 -0
- package/templates/claude/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/templates/claude/skills/devops/references/cloudflare-platform.md +271 -0
- package/templates/claude/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/templates/claude/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/templates/claude/skills/devops/references/docker-basics.md +297 -0
- package/templates/claude/skills/devops/references/docker-compose.md +292 -0
- package/templates/claude/skills/devops/references/gcloud-platform.md +307 -0
- package/templates/claude/skills/devops/references/gcloud-services.md +304 -0
- package/templates/claude/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/templates/claude/skills/devops/scripts/docker_optimize.py +320 -0
- package/templates/claude/skills/docs-seeker/SKILL.md +95 -0
- package/templates/claude/skills/docs-seeker/package.json +24 -0
- package/templates/claude/skills/docs-seeker/references/advanced.md +78 -0
- package/templates/claude/skills/docs-seeker/references/context7-patterns.md +68 -0
- package/templates/claude/skills/docs-seeker/references/errors.md +68 -0
- package/templates/claude/skills/docs-seeker/scripts/analyze-llms-txt.js +245 -0
- package/templates/claude/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/templates/claude/skills/docs-seeker/scripts/fetch-docs.js +212 -0
- package/templates/claude/skills/docs-seeker/workflows/library-search.md +87 -0
- package/templates/claude/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/templates/claude/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/templates/claude/skills/frontend-design/SKILL.md +85 -0
- package/templates/claude/skills/frontend-design/references/analysis-best-practices.md +80 -0
- package/templates/claude/skills/frontend-design/references/analysis-prompts.md +141 -0
- package/templates/claude/skills/frontend-design/references/analysis-techniques.md +118 -0
- package/templates/claude/skills/frontend-design/references/animejs.md +396 -0
- package/templates/claude/skills/frontend-design/references/design-extraction-overview.md +71 -0
- package/templates/claude/skills/frontend-design/references/extraction-best-practices.md +141 -0
- package/templates/claude/skills/frontend-design/references/extraction-output-templates.md +162 -0
- package/templates/claude/skills/frontend-design/references/extraction-prompts.md +127 -0
- package/templates/claude/skills/frontend-design/references/technical-accessibility.md +119 -0
- package/templates/claude/skills/frontend-design/references/technical-best-practices.md +97 -0
- package/templates/claude/skills/frontend-design/references/technical-optimization.md +44 -0
- package/templates/claude/skills/frontend-design/references/technical-overview.md +90 -0
- package/templates/claude/skills/frontend-design/references/technical-workflows.md +150 -0
- package/templates/claude/skills/frontend-design/references/visual-analysis-overview.md +95 -0
- package/templates/claude/skills/frontend-development/SKILL.md +399 -0
- package/templates/claude/skills/frontend-development/resources/common-patterns.md +331 -0
- package/templates/claude/skills/frontend-development/resources/complete-examples.md +872 -0
- package/templates/claude/skills/frontend-development/resources/component-patterns.md +502 -0
- package/templates/claude/skills/frontend-development/resources/data-fetching.md +767 -0
- package/templates/claude/skills/frontend-development/resources/file-organization.md +502 -0
- package/templates/claude/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/templates/claude/skills/frontend-development/resources/performance.md +406 -0
- package/templates/claude/skills/frontend-development/resources/routing-guide.md +364 -0
- package/templates/claude/skills/frontend-development/resources/styling-guide.md +428 -0
- package/templates/claude/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/templates/claude/skills/markdown-novel-viewer/SKILL.md +272 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/directory-browser.css +215 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/favicon.png +0 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/novel-theme.css +872 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/reader.js +378 -0
- package/templates/claude/skills/markdown-novel-viewer/assets/template.html +85 -0
- package/templates/claude/skills/markdown-novel-viewer/package.json +15 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/http-server.cjs +434 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +335 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/plan-navigator.cjs +509 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/port-finder.cjs +49 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/lib/process-mgr.cjs +150 -0
- package/templates/claude/skills/markdown-novel-viewer/scripts/server.cjs +398 -0
- package/templates/claude/skills/mcp-builder/SKILL.md +328 -0
- package/templates/claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/templates/claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/templates/claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/templates/claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/templates/claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/templates/claude/skills/mcp-builder/scripts/evaluation.py +381 -0
- package/templates/claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/templates/claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/templates/claude/skills/mcp-management/README.md +219 -0
- package/templates/claude/skills/mcp-management/SKILL.md +209 -0
- package/templates/claude/skills/mcp-management/assets/tools.json +3146 -0
- package/templates/claude/skills/mcp-management/references/configuration.md +114 -0
- package/templates/claude/skills/mcp-management/references/gemini-cli-integration.md +209 -0
- package/templates/claude/skills/mcp-management/references/mcp-protocol.md +116 -0
- package/templates/claude/skills/mcp-management/scripts/.env.example +10 -0
- package/templates/claude/skills/mcp-management/scripts/cli.ts +202 -0
- package/templates/claude/skills/mcp-management/scripts/mcp-client.ts +247 -0
- package/templates/claude/skills/mcp-management/scripts/package.json +20 -0
- package/templates/claude/skills/mcp-management/scripts/tsconfig.json +15 -0
- package/templates/claude/skills/media-processing/SKILL.md +91 -0
- package/templates/claude/skills/media-processing/references/common-workflows.md +132 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-encoding.md +358 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-filters.md +503 -0
- package/templates/claude/skills/media-processing/references/ffmpeg-streaming.md +395 -0
- package/templates/claude/skills/media-processing/references/format-compatibility.md +375 -0
- package/templates/claude/skills/media-processing/references/imagemagick-batch.md +612 -0
- package/templates/claude/skills/media-processing/references/imagemagick-editing.md +623 -0
- package/templates/claude/skills/media-processing/references/rmbg-background-removal.md +66 -0
- package/templates/claude/skills/media-processing/references/troubleshooting.md +109 -0
- package/templates/claude/skills/media-processing/scripts/README.md +102 -0
- package/templates/claude/skills/media-processing/scripts/batch-remove-background.sh +124 -0
- package/templates/claude/skills/media-processing/scripts/batch_resize.py +342 -0
- package/templates/claude/skills/media-processing/scripts/media_convert.py +311 -0
- package/templates/claude/skills/media-processing/scripts/remove-background.sh +96 -0
- package/templates/claude/skills/media-processing/scripts/remove-bg-node.js +181 -0
- package/templates/claude/skills/mermaidjs-v11/SKILL.md +115 -0
- package/templates/claude/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/templates/claude/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/templates/claude/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/templates/claude/skills/mermaidjs-v11/references/examples.md +344 -0
- package/templates/claude/skills/mermaidjs-v11/references/integration.md +310 -0
- package/templates/claude/skills/planning/SKILL.md +115 -0
- package/templates/claude/skills/planning/references/codebase-understanding.md +62 -0
- package/templates/claude/skills/planning/references/output-standards.md +127 -0
- package/templates/claude/skills/planning/references/plan-organization.md +150 -0
- package/templates/claude/skills/planning/references/research-phase.md +49 -0
- package/templates/claude/skills/planning/references/solution-design.md +63 -0
- package/templates/claude/skills/plans-kanban/SKILL.md +157 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard-template.html +119 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard.css +1594 -0
- package/templates/claude/skills/plans-kanban/assets/dashboard.js +659 -0
- package/templates/claude/skills/plans-kanban/assets/favicon.png +0 -0
- package/templates/claude/skills/plans-kanban/package.json +13 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/dashboard-renderer.cjs +941 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/http-server.cjs +310 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-metadata-extractor.cjs +489 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-parser.cjs +194 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/plan-scanner.cjs +277 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/port-finder.cjs +49 -0
- package/templates/claude/skills/plans-kanban/scripts/lib/process-mgr.cjs +128 -0
- package/templates/claude/skills/plans-kanban/scripts/server.cjs +249 -0
- package/templates/claude/skills/problem-solving/SKILL.md +96 -0
- package/templates/claude/skills/problem-solving/references/attribution.md +69 -0
- package/templates/claude/skills/problem-solving/references/collision-zone-thinking.md +79 -0
- package/templates/claude/skills/problem-solving/references/inversion-exercise.md +91 -0
- package/templates/claude/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/templates/claude/skills/problem-solving/references/scale-game.md +95 -0
- package/templates/claude/skills/problem-solving/references/simplification-cascades.md +80 -0
- package/templates/claude/skills/problem-solving/references/when-stuck.md +72 -0
- package/templates/claude/skills/registry.json +258 -0
- package/templates/claude/skills/repomix/SKILL.md +247 -0
- package/templates/claude/skills/repomix/references/configuration.md +211 -0
- package/templates/claude/skills/repomix/references/usage-patterns.md +232 -0
- package/templates/claude/skills/repomix/scripts/README.md +179 -0
- package/templates/claude/skills/repomix/scripts/repomix_batch.py +455 -0
- package/templates/claude/skills/repomix/scripts/repos.example.json +15 -0
- package/templates/claude/skills/research/SKILL.md +168 -0
- package/templates/claude/skills/sequential-thinking/.env.example +8 -0
- package/templates/claude/skills/sequential-thinking/README.md +183 -0
- package/templates/claude/skills/sequential-thinking/SKILL.md +94 -0
- package/templates/claude/skills/sequential-thinking/package.json +31 -0
- package/templates/claude/skills/sequential-thinking/references/advanced-strategies.md +79 -0
- package/templates/claude/skills/sequential-thinking/references/advanced-techniques.md +76 -0
- package/templates/claude/skills/sequential-thinking/references/core-patterns.md +95 -0
- package/templates/claude/skills/sequential-thinking/references/examples-api.md +88 -0
- package/templates/claude/skills/sequential-thinking/references/examples-architecture.md +94 -0
- package/templates/claude/skills/sequential-thinking/references/examples-debug.md +90 -0
- package/templates/claude/skills/sequential-thinking/scripts/format-thought.js +182 -0
- package/templates/claude/skills/sequential-thinking/scripts/process-thought.js +252 -0
- package/templates/claude/skills/skill-creator/LICENSE.txt +202 -0
- package/templates/claude/skills/skill-creator/SKILL.md +266 -0
- package/templates/claude/skills/skill-creator/references/agent-skills-spec.md +51 -0
- package/templates/claude/skills/skill-creator/scripts/encoding_utils.py +21 -0
- package/templates/claude/skills/skill-creator/scripts/init_skill.py +304 -0
- package/templates/claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/templates/claude/skills/skill-creator/scripts/quick_validate.py +66 -0
- package/templates/claude/skills/template-skill/SKILL.md +6 -0
- package/templates/claude/skills/vitest/SKILL.md +595 -0
- package/templates/claude/skills/vitest/references/async-patterns.md +82 -0
- package/templates/claude/skills/vitest/references/mock-patterns.md +78 -0
- package/templates/claude/skills/vitest/references/monorepo-setup.md +185 -0
- package/templates/claude/skills/vitest/references/turborepo-setup.md +332 -0
- package/templates/claude/skills/web-frameworks/SKILL.md +324 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-app-router.md +465 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-optimization.md +511 -0
- package/templates/claude/skills/web-frameworks/references/nextjs-server-components.md +495 -0
- package/templates/claude/skills/web-frameworks/references/remix-icon-integration.md +603 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-caching.md +551 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-pipelines.md +517 -0
- package/templates/claude/skills/web-frameworks/references/turborepo-setup.md +542 -0
- package/templates/claude/skills/web-frameworks/scripts/nextjs_init.py +547 -0
- package/templates/claude/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/templates/claude/workflows/development-rules.md +40 -0
- package/templates/claude/workflows/documentation-management.md +121 -0
- package/templates/claude/workflows/orchestration-protocol.md +16 -0
- package/templates/claude/workflows/primary-workflow.md +45 -0
- package/templates/claude/workflows/registry.json +37 -0
- package/templates/common/.cct.json +41 -0
- package/templates/common/.cctkignore +22 -0
- package/templates/common/.env.example +39 -0
- package/templates/common/.mcp.json.example +16 -0
- package/templates/common/metadata.json +15 -0
- package/templates/common/settings.json +79 -0
- package/templates/common/statusline.cjs +271 -0
- package/templates/config/.repomixignore +22 -0
- package/templates/config/AGENTS.md +55 -0
- package/templates/config/CLAUDE.md +87 -0
- package/templates/plans/bug-fix-template.md +69 -0
- package/templates/plans/feature-implementation-template.md +84 -0
- package/templates/plans/refactor-template.md +82 -0
- package/templates/plans/template-usage-guide.md +58 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* MCP Client - Core client for interacting with MCP servers
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { readFile } from 'node:fs/promises';
|
|
7
|
+
import { resolve } from 'node:path';
|
|
8
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
9
|
+
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
10
|
+
|
|
11
|
+
interface MCPConfig {
|
|
12
|
+
mcpServers: Record<
|
|
13
|
+
string,
|
|
14
|
+
{
|
|
15
|
+
command: string;
|
|
16
|
+
args: string[];
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface ToolInfo {
|
|
23
|
+
serverName: string;
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
inputSchema: any;
|
|
27
|
+
outputSchema?: any;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface PromptInfo {
|
|
31
|
+
serverName: string;
|
|
32
|
+
name: string;
|
|
33
|
+
description: string;
|
|
34
|
+
arguments?: any[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface ResourceInfo {
|
|
38
|
+
serverName: string;
|
|
39
|
+
uri: string;
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
mimeType?: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export class MCPClientManager {
|
|
46
|
+
private config: MCPConfig | null = null;
|
|
47
|
+
private clients = new Map<string, Client>();
|
|
48
|
+
private transports = new Map<string, StdioClientTransport>();
|
|
49
|
+
|
|
50
|
+
async loadConfig(configPath = '.claude/.mcp.json'): Promise<MCPConfig> {
|
|
51
|
+
const fullPath = resolve(process.cwd(), configPath);
|
|
52
|
+
const content = await readFile(fullPath, 'utf-8');
|
|
53
|
+
const config = JSON.parse(content) as MCPConfig;
|
|
54
|
+
|
|
55
|
+
this.config = config;
|
|
56
|
+
|
|
57
|
+
return config;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async connectToServer(serverName: string): Promise<Client> {
|
|
61
|
+
if (!this.config?.mcpServers[serverName]) {
|
|
62
|
+
throw new Error(`Server ${serverName} not found in config`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const serverConfig = this.config.mcpServers[serverName];
|
|
66
|
+
const transport = new StdioClientTransport({
|
|
67
|
+
command: serverConfig.command,
|
|
68
|
+
args: serverConfig.args,
|
|
69
|
+
env: serverConfig.env,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const client = new Client(
|
|
73
|
+
{
|
|
74
|
+
name: `mcp-manager-${serverName}`,
|
|
75
|
+
version: '1.0.0',
|
|
76
|
+
},
|
|
77
|
+
{ capabilities: {} },
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
await client.connect(transport);
|
|
81
|
+
this.clients.set(serverName, client);
|
|
82
|
+
this.transports.set(serverName, transport); // Track transport!
|
|
83
|
+
|
|
84
|
+
return client;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async connectAll(): Promise<void> {
|
|
88
|
+
if (!this.config) {
|
|
89
|
+
throw new Error('Config not loaded. Call loadConfig() first.');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const serverNames = Object.keys(this.config.mcpServers);
|
|
93
|
+
|
|
94
|
+
console.log(`Connecting to ${serverNames.length} servers sequentially...`);
|
|
95
|
+
|
|
96
|
+
for (const serverName of serverNames) {
|
|
97
|
+
try {
|
|
98
|
+
await this.connectToServer(serverName);
|
|
99
|
+
console.log(`✓ ${serverName} connected`);
|
|
100
|
+
} catch (error) {
|
|
101
|
+
console.error(`✗ ${serverName} failed:`, error);
|
|
102
|
+
// Continue with other servers
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
async getAllTools(): Promise<ToolInfo[]> {
|
|
108
|
+
const allTools: ToolInfo[] = [];
|
|
109
|
+
|
|
110
|
+
for (const [serverName, client] of this.clients.entries()) {
|
|
111
|
+
try {
|
|
112
|
+
const response = await client.listTools({}, { timeout: 300_000 });
|
|
113
|
+
|
|
114
|
+
for (const tool of response.tools) {
|
|
115
|
+
allTools.push({
|
|
116
|
+
serverName,
|
|
117
|
+
name: tool.name,
|
|
118
|
+
description: tool.description || '',
|
|
119
|
+
inputSchema: tool.inputSchema,
|
|
120
|
+
outputSchema: (tool as any).outputSchema,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
} catch (error: any) {
|
|
124
|
+
if (error?.code === -32_601) {
|
|
125
|
+
console.warn(`${serverName} does not support listTools`);
|
|
126
|
+
} else {
|
|
127
|
+
console.error(`Error from ${serverName}:`, error);
|
|
128
|
+
}
|
|
129
|
+
// Continue with other servers!
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return allTools;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
async getAllPrompts(): Promise<PromptInfo[]> {
|
|
137
|
+
const allPrompts: PromptInfo[] = [];
|
|
138
|
+
|
|
139
|
+
for (const [serverName, client] of this.clients.entries()) {
|
|
140
|
+
try {
|
|
141
|
+
const response = await client.listPrompts({}, { timeout: 300_000 });
|
|
142
|
+
|
|
143
|
+
for (const prompt of response.prompts) {
|
|
144
|
+
allPrompts.push({
|
|
145
|
+
serverName,
|
|
146
|
+
name: prompt.name,
|
|
147
|
+
description: prompt.description || '',
|
|
148
|
+
arguments: prompt.arguments,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
} catch (error: any) {
|
|
152
|
+
if (error?.code === -32_601) {
|
|
153
|
+
console.warn(`${serverName} does not support listPrompts`);
|
|
154
|
+
} else {
|
|
155
|
+
console.error(`Error from ${serverName}:`, error);
|
|
156
|
+
}
|
|
157
|
+
// Continue with other servers!
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return allPrompts;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
async getAllResources(): Promise<ResourceInfo[]> {
|
|
165
|
+
const allResources: ResourceInfo[] = [];
|
|
166
|
+
|
|
167
|
+
for (const [serverName, client] of this.clients.entries()) {
|
|
168
|
+
try {
|
|
169
|
+
const response = await client.listResources({}, { timeout: 300_000 });
|
|
170
|
+
|
|
171
|
+
for (const resource of response.resources) {
|
|
172
|
+
allResources.push({
|
|
173
|
+
serverName,
|
|
174
|
+
uri: resource.uri,
|
|
175
|
+
name: resource.name,
|
|
176
|
+
description: resource.description,
|
|
177
|
+
mimeType: resource.mimeType,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
} catch (error: any) {
|
|
181
|
+
if (error?.code === -32_601) {
|
|
182
|
+
console.warn(`${serverName} does not support listResources`);
|
|
183
|
+
} else {
|
|
184
|
+
console.error(`Error from ${serverName}:`, error);
|
|
185
|
+
}
|
|
186
|
+
// Continue with other servers!
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return allResources;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
async callTool(serverName: string, toolName: string, args: any): Promise<any> {
|
|
194
|
+
const client = this.clients.get(serverName);
|
|
195
|
+
|
|
196
|
+
if (!client) throw new Error(`Not connected to server: ${serverName}`);
|
|
197
|
+
|
|
198
|
+
return await client.callTool({ name: toolName, arguments: args }, undefined, { timeout: 300_000 });
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
async getPrompt(serverName: string, promptName: string, args?: any): Promise<any> {
|
|
202
|
+
const client = this.clients.get(serverName);
|
|
203
|
+
|
|
204
|
+
if (!client) throw new Error(`Not connected to server: ${serverName}`);
|
|
205
|
+
|
|
206
|
+
return await client.getPrompt({ name: promptName, arguments: args }, { timeout: 300_000 });
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
async readResource(serverName: string, uri: string): Promise<any> {
|
|
210
|
+
const client = this.clients.get(serverName);
|
|
211
|
+
|
|
212
|
+
if (!client) throw new Error(`Not connected to server: ${serverName}`);
|
|
213
|
+
|
|
214
|
+
return await client.readResource({ uri }, { timeout: 300_000 });
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
async cleanup(): Promise<void> {
|
|
218
|
+
// Close clients with timeout
|
|
219
|
+
const cleanupPromises: Array<Promise<void>> = [];
|
|
220
|
+
|
|
221
|
+
for (const [serverName, client] of this.clients.entries()) {
|
|
222
|
+
cleanupPromises.push(
|
|
223
|
+
(async () => {
|
|
224
|
+
try {
|
|
225
|
+
await client.close();
|
|
226
|
+
} catch (error) {
|
|
227
|
+
console.warn(`Warning closing ${serverName}:`, error);
|
|
228
|
+
}
|
|
229
|
+
})(),
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
await Promise.race([Promise.all(cleanupPromises), new Promise<void>((resolve) => setTimeout(resolve, 5000))]);
|
|
234
|
+
|
|
235
|
+
// CRITICAL: Close transports to kill subprocesses
|
|
236
|
+
for (const [serverName, transport] of this.transports.entries()) {
|
|
237
|
+
try {
|
|
238
|
+
await transport.close();
|
|
239
|
+
} catch (error) {
|
|
240
|
+
console.warn(`Warning closing ${serverName} transport:`, error);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
this.clients.clear();
|
|
245
|
+
this.transports.clear();
|
|
246
|
+
}
|
|
247
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mcp-management-scripts",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "MCP client scripts for managing MCP servers",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsc",
|
|
8
|
+
"test": "node --loader ts-node/esm test.ts"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@modelcontextprotocol/sdk": "^1.25.1"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@types/node": "^20.0.0",
|
|
15
|
+
"nodemon": "^3.1.11",
|
|
16
|
+
"ts-node": "^10.9.2",
|
|
17
|
+
"tsx": "^4.20.6",
|
|
18
|
+
"typescript": "^5.9.3"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"outDir": "./dist",
|
|
10
|
+
"rootDir": "./",
|
|
11
|
+
"resolveJsonModule": true
|
|
12
|
+
},
|
|
13
|
+
"include": ["*.ts"],
|
|
14
|
+
"exclude": ["node_modules", "dist"]
|
|
15
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: media-processing
|
|
3
|
+
description: Process multimedia files with FFmpeg (video/audio encoding, conversion, streaming, filtering, hardware acceleration), ImageMagick (image manipulation, format conversion, batch processing, effects, composition), and RMBG (AI-powered background removal). Use when converting media formats, encoding videos with specific codecs (H.264, H.265, VP9), resizing/cropping images, removing backgrounds from images, extracting audio from video, applying filters and effects, optimizing file sizes, creating streaming manifests (HLS/DASH), generating thumbnails, batch processing images, creating composite images, or implementing media processing pipelines. Supports 100+ formats, hardware acceleration (NVENC, QSV), and complex filtergraphs.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Media Processing Skill
|
|
8
|
+
|
|
9
|
+
Process video, audio, and images using FFmpeg, ImageMagick, and RMBG CLI tools.
|
|
10
|
+
|
|
11
|
+
## Tool Selection
|
|
12
|
+
|
|
13
|
+
| Task | Tool | Reason |
|
|
14
|
+
|------|------|--------|
|
|
15
|
+
| Video encoding/conversion | FFmpeg | Native codec support, streaming |
|
|
16
|
+
| Audio extraction/conversion | FFmpeg | Direct stream manipulation |
|
|
17
|
+
| Image resize/effects | ImageMagick | Optimized for still images |
|
|
18
|
+
| Background removal | RMBG | AI-powered, local processing |
|
|
19
|
+
| Batch images | ImageMagick | mogrify for in-place edits |
|
|
20
|
+
| Video thumbnails | FFmpeg | Frame extraction built-in |
|
|
21
|
+
| GIF creation | FFmpeg/ImageMagick | FFmpeg for video, ImageMagick for images |
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# macOS
|
|
27
|
+
brew install ffmpeg imagemagick
|
|
28
|
+
npm install -g rmbg-cli
|
|
29
|
+
|
|
30
|
+
# Ubuntu/Debian
|
|
31
|
+
sudo apt-get install ffmpeg imagemagick
|
|
32
|
+
npm install -g rmbg-cli
|
|
33
|
+
|
|
34
|
+
# Verify
|
|
35
|
+
ffmpeg -version && magick -version && rmbg --version
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Essential Commands
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Video: Convert/re-encode
|
|
42
|
+
ffmpeg -i input.mkv -c copy output.mp4
|
|
43
|
+
ffmpeg -i input.avi -c:v libx264 -crf 22 -c:a aac output.mp4
|
|
44
|
+
|
|
45
|
+
# Video: Extract audio
|
|
46
|
+
ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
|
|
47
|
+
|
|
48
|
+
# Image: Convert/resize
|
|
49
|
+
magick input.png output.jpg
|
|
50
|
+
magick input.jpg -resize 800x600 output.jpg
|
|
51
|
+
|
|
52
|
+
# Image: Batch resize
|
|
53
|
+
mogrify -resize 800x -quality 85 *.jpg
|
|
54
|
+
|
|
55
|
+
# Background removal
|
|
56
|
+
rmbg input.jpg # Basic (modnet)
|
|
57
|
+
rmbg input.jpg -m briaai -o output.png # High quality
|
|
58
|
+
rmbg input.jpg -m u2netp -o output.png # Fast
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Key Parameters
|
|
62
|
+
|
|
63
|
+
**FFmpeg:**
|
|
64
|
+
- `-c:v libx264` - H.264 codec
|
|
65
|
+
- `-crf 22` - Quality (0-51, lower=better)
|
|
66
|
+
- `-preset slow` - Speed/compression balance
|
|
67
|
+
- `-c:a aac` - Audio codec
|
|
68
|
+
|
|
69
|
+
**ImageMagick:**
|
|
70
|
+
- `800x600` - Fit within (maintains aspect)
|
|
71
|
+
- `800x600^` - Fill (may crop)
|
|
72
|
+
- `-quality 85` - JPEG quality
|
|
73
|
+
- `-strip` - Remove metadata
|
|
74
|
+
|
|
75
|
+
**RMBG:**
|
|
76
|
+
- `-m briaai` - High quality model
|
|
77
|
+
- `-m u2netp` - Fast model
|
|
78
|
+
- `-r 4096` - Max resolution
|
|
79
|
+
|
|
80
|
+
## References
|
|
81
|
+
|
|
82
|
+
Detailed guides in `references/`:
|
|
83
|
+
- `ffmpeg-encoding.md` - Codecs, quality, hardware acceleration
|
|
84
|
+
- `ffmpeg-streaming.md` - HLS/DASH, live streaming
|
|
85
|
+
- `ffmpeg-filters.md` - Filters, complex filtergraphs
|
|
86
|
+
- `imagemagick-editing.md` - Effects, transformations
|
|
87
|
+
- `imagemagick-batch.md` - Batch processing, parallel ops
|
|
88
|
+
- `rmbg-background-removal.md` - AI models, CLI usage
|
|
89
|
+
- `common-workflows.md` - Video optimization, responsive images, GIF creation
|
|
90
|
+
- `troubleshooting.md` - Error fixes, performance tips
|
|
91
|
+
- `format-compatibility.md` - Format support, codec recommendations
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Common Media Processing Workflows
|
|
2
|
+
|
|
3
|
+
## Video Optimization
|
|
4
|
+
|
|
5
|
+
### Optimize for Web
|
|
6
|
+
```bash
|
|
7
|
+
# H.264 with good compression
|
|
8
|
+
ffmpeg -i input.mp4 \
|
|
9
|
+
-c:v libx264 -preset slow -crf 23 \
|
|
10
|
+
-c:a aac -b:a 128k \
|
|
11
|
+
-movflags +faststart \
|
|
12
|
+
output.mp4
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Multi-Pass Encoding
|
|
16
|
+
```bash
|
|
17
|
+
# Pass 1 (analysis)
|
|
18
|
+
ffmpeg -y -i input.mkv -c:v libx264 -b:v 2600k -pass 1 -an -f null /dev/null
|
|
19
|
+
|
|
20
|
+
# Pass 2 (encoding)
|
|
21
|
+
ffmpeg -i input.mkv -c:v libx264 -b:v 2600k -pass 2 -c:a aac output.mp4
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Hardware-Accelerated Encoding
|
|
25
|
+
```bash
|
|
26
|
+
# NVIDIA NVENC
|
|
27
|
+
ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -preset fast -crf 22 output.mp4
|
|
28
|
+
|
|
29
|
+
# Intel QuickSync
|
|
30
|
+
ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v h264_qsv output.mp4
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Extract Video Segment
|
|
34
|
+
```bash
|
|
35
|
+
# From 1:30 to 3:00 (re-encode for precision)
|
|
36
|
+
ffmpeg -i input.mp4 -ss 00:01:30 -to 00:03:00 \
|
|
37
|
+
-c:v libx264 -c:a aac output.mp4
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Image Workflows
|
|
41
|
+
|
|
42
|
+
### Create Responsive Images
|
|
43
|
+
```bash
|
|
44
|
+
# Generate multiple sizes
|
|
45
|
+
for size in 320 640 1024 1920; do
|
|
46
|
+
magick input.jpg -resize ${size}x -quality 85 "output-${size}w.jpg"
|
|
47
|
+
done
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Batch Image Optimization
|
|
51
|
+
```bash
|
|
52
|
+
# Convert PNG to optimized JPEG
|
|
53
|
+
mogrify -path ./optimized -format jpg -quality 85 -strip *.png
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Complex Image Pipeline
|
|
57
|
+
```bash
|
|
58
|
+
# Resize, crop, border, adjust
|
|
59
|
+
magick input.jpg \
|
|
60
|
+
-resize 1000x1000^ \
|
|
61
|
+
-gravity center \
|
|
62
|
+
-crop 1000x1000+0+0 +repage \
|
|
63
|
+
-bordercolor black -border 5x5 \
|
|
64
|
+
-brightness-contrast 5x10 \
|
|
65
|
+
-quality 90 \
|
|
66
|
+
output.jpg
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## GIF Creation
|
|
70
|
+
|
|
71
|
+
### Video to GIF
|
|
72
|
+
```bash
|
|
73
|
+
# High quality GIF with palette
|
|
74
|
+
ffmpeg -i input.mp4 -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Animated GIF from Images
|
|
78
|
+
```bash
|
|
79
|
+
# Create with delay
|
|
80
|
+
magick -delay 100 -loop 0 frame*.png animated.gif
|
|
81
|
+
|
|
82
|
+
# Optimize size
|
|
83
|
+
magick animated.gif -fuzz 5% -layers Optimize optimized.gif
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Background Removal Workflows
|
|
87
|
+
|
|
88
|
+
### Batch Background Removal
|
|
89
|
+
```bash
|
|
90
|
+
# Process all images in directory
|
|
91
|
+
for img in *.jpg; do
|
|
92
|
+
rmbg "$img" -m modnet -o "${img%.jpg}-no-bg.png"
|
|
93
|
+
done
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Product Photography
|
|
97
|
+
```bash
|
|
98
|
+
# 1. Remove background
|
|
99
|
+
rmbg product.jpg -m u2net-cloth -o product-no-bg.png
|
|
100
|
+
|
|
101
|
+
# 2. Resize to multiple sizes
|
|
102
|
+
magick product-no-bg.png -resize 800x800 product-800.png
|
|
103
|
+
magick product-no-bg.png -resize 400x400 product-400.png
|
|
104
|
+
|
|
105
|
+
# 3. Add white background if needed
|
|
106
|
+
magick product-no-bg.png -background white -flatten product-white-bg.jpg
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Media Analysis
|
|
110
|
+
|
|
111
|
+
### Inspect Video Properties
|
|
112
|
+
```bash
|
|
113
|
+
# Detailed JSON output
|
|
114
|
+
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
|
|
115
|
+
|
|
116
|
+
# Get resolution
|
|
117
|
+
ffprobe -v error -select_streams v:0 \
|
|
118
|
+
-show_entries stream=width,height \
|
|
119
|
+
-of csv=s=x:p=0 input.mp4
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Image Information
|
|
123
|
+
```bash
|
|
124
|
+
# Basic info
|
|
125
|
+
identify image.jpg
|
|
126
|
+
|
|
127
|
+
# Detailed format
|
|
128
|
+
identify -verbose image.jpg
|
|
129
|
+
|
|
130
|
+
# Custom format
|
|
131
|
+
identify -format "%f: %wx%h %b\n" image.jpg
|
|
132
|
+
```
|