claudeguide-engineer 1.14.8
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/.claude/.env.example +32 -0
- package/.claude/.mcp.json.example +23 -0
- package/.claude/agents/brainstormer.md +101 -0
- package/.claude/agents/code-reviewer.md +152 -0
- package/.claude/agents/copywriter.md +110 -0
- package/.claude/agents/database-admin.md +90 -0
- package/.claude/agents/debugger.md +134 -0
- package/.claude/agents/docs-manager.md +118 -0
- package/.claude/agents/git-manager.md +199 -0
- package/.claude/agents/journal-writer.md +113 -0
- package/.claude/agents/mcp-manager.md +93 -0
- package/.claude/agents/planner.md +35 -0
- package/.claude/agents/project-manager.md +117 -0
- package/.claude/agents/researcher.md +34 -0
- package/.claude/agents/scout-external.md +131 -0
- package/.claude/agents/scout.md +105 -0
- package/.claude/agents/tester.md +102 -0
- package/.claude/agents/ui-ux-designer.md +219 -0
- package/.claude/commands/ask.md +56 -0
- package/.claude/commands/bootstrap/auto/fast.md +111 -0
- package/.claude/commands/bootstrap/auto.md +115 -0
- package/.claude/commands/bootstrap.md +137 -0
- package/.claude/commands/brainstorm.md +69 -0
- package/.claude/commands/code.md +93 -0
- package/.claude/commands/content/cro.md +43 -0
- package/.claude/commands/content/enhance.md +14 -0
- package/.claude/commands/content/fast.md +13 -0
- package/.claude/commands/content/good.md +16 -0
- package/.claude/commands/cook/auto/fast.md +26 -0
- package/.claude/commands/cook/auto.md +15 -0
- package/.claude/commands/cook.md +105 -0
- package/.claude/commands/debug.md +13 -0
- package/.claude/commands/design/3d.md +74 -0
- package/.claude/commands/design/describe.md +21 -0
- package/.claude/commands/design/fast.md +22 -0
- package/.claude/commands/design/good.md +26 -0
- package/.claude/commands/design/screenshot.md +32 -0
- package/.claude/commands/design/video.md +32 -0
- package/.claude/commands/docs/init.md +15 -0
- package/.claude/commands/docs/summarize.md +22 -0
- package/.claude/commands/docs/update.md +23 -0
- package/.claude/commands/fix/ci.md +20 -0
- package/.claude/commands/fix/fast.md +19 -0
- package/.claude/commands/fix/hard.md +43 -0
- package/.claude/commands/fix/logs.md +20 -0
- package/.claude/commands/fix/test.md +20 -0
- package/.claude/commands/fix/types.md +9 -0
- package/.claude/commands/fix/ui.md +35 -0
- package/.claude/commands/fix.md +12 -0
- package/.claude/commands/git/cm.md +5 -0
- package/.claude/commands/git/cp.md +4 -0
- package/.claude/commands/git/pr.md +15 -0
- package/.claude/commands/integrate/polar.md +28 -0
- package/.claude/commands/integrate/sepay.md +28 -0
- package/.claude/commands/journal.md +5 -0
- package/.claude/commands/plan/ci.md +18 -0
- package/.claude/commands/plan/cro.md +56 -0
- package/.claude/commands/plan/fast.md +46 -0
- package/.claude/commands/plan/hard.md +57 -0
- package/.claude/commands/plan/two.md +30 -0
- package/.claude/commands/plan.md +23 -0
- package/.claude/commands/review/codebase.md +49 -0
- package/.claude/commands/scout/ext.md +35 -0
- package/.claude/commands/scout.md +28 -0
- package/.claude/commands/skill/add.md +29 -0
- package/.claude/commands/skill/create.md +22 -0
- package/.claude/commands/skill/fix-logs.md +21 -0
- package/.claude/commands/skill/optimize.md +28 -0
- package/.claude/commands/test.md +8 -0
- package/.claude/commands/use-mcp.md +34 -0
- package/.claude/commands/watzup.md +8 -0
- package/.claude/hooks/.env.example +15 -0
- package/.claude/hooks/README.md +339 -0
- package/.claude/hooks/discord-hook-setup.md +440 -0
- package/.claude/hooks/discord_notify.sh +221 -0
- package/.claude/hooks/modularization-hook.js +108 -0
- package/.claude/hooks/scout-block.js +89 -0
- package/.claude/hooks/scout-block.ps1 +65 -0
- package/.claude/hooks/scout-block.sh +51 -0
- package/.claude/hooks/send-discord.sh +75 -0
- package/.claude/hooks/telegram-hook-setup.md +843 -0
- package/.claude/hooks/telegram_notify.sh +158 -0
- package/.claude/metadata.json +15 -0
- package/.claude/settings.json +32 -0
- package/.claude/skills/.env.example +32 -0
- package/.claude/skills/INSTALLATION.md +280 -0
- package/.claude/skills/README.md +111 -0
- package/.claude/skills/THIRD_PARTY_NOTICES.md +405 -0
- package/.claude/skills/aesthetic/SKILL.md +121 -0
- package/.claude/skills/aesthetic/assets/design-guideline-template.md +163 -0
- package/.claude/skills/aesthetic/assets/design-story-template.md +135 -0
- package/.claude/skills/aesthetic/references/design-principles.md +62 -0
- package/.claude/skills/aesthetic/references/design-resources.md +75 -0
- package/.claude/skills/aesthetic/references/micro-interactions.md +53 -0
- package/.claude/skills/aesthetic/references/storytelling-design.md +50 -0
- package/.claude/skills/agent_skills_spec.md +55 -0
- package/.claude/skills/ai-multimodal/.env.example +97 -0
- package/.claude/skills/ai-multimodal/SKILL.md +353 -0
- package/.claude/skills/ai-multimodal/references/audio-processing.md +373 -0
- package/.claude/skills/ai-multimodal/references/image-generation.md +558 -0
- package/.claude/skills/ai-multimodal/references/video-analysis.md +498 -0
- package/.claude/skills/ai-multimodal/references/vision-understanding.md +479 -0
- package/.claude/skills/ai-multimodal/scripts/.coverage +0 -0
- package/.claude/skills/ai-multimodal/scripts/document_converter.py +395 -0
- package/.claude/skills/ai-multimodal/scripts/gemini_batch_process.py +480 -0
- package/.claude/skills/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/.claude/skills/ai-multimodal/scripts/requirements.txt +26 -0
- package/.claude/skills/ai-multimodal/scripts/tests/.coverage +0 -0
- package/.claude/skills/ai-multimodal/scripts/tests/requirements.txt +20 -0
- package/.claude/skills/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
- package/.claude/skills/ai-multimodal/scripts/tests/test_failures.log +258 -0
- package/.claude/skills/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
- package/.claude/skills/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
- package/.claude/skills/backend-development/SKILL.md +95 -0
- package/.claude/skills/backend-development/references/backend-api-design.md +495 -0
- package/.claude/skills/backend-development/references/backend-architecture.md +454 -0
- package/.claude/skills/backend-development/references/backend-authentication.md +338 -0
- package/.claude/skills/backend-development/references/backend-code-quality.md +659 -0
- package/.claude/skills/backend-development/references/backend-debugging.md +904 -0
- package/.claude/skills/backend-development/references/backend-devops.md +494 -0
- package/.claude/skills/backend-development/references/backend-mindset.md +387 -0
- package/.claude/skills/backend-development/references/backend-performance.md +397 -0
- package/.claude/skills/backend-development/references/backend-security.md +290 -0
- package/.claude/skills/backend-development/references/backend-technologies.md +256 -0
- package/.claude/skills/backend-development/references/backend-testing.md +429 -0
- package/.claude/skills/better-auth/SKILL.md +204 -0
- package/.claude/skills/better-auth/references/advanced-features.md +553 -0
- package/.claude/skills/better-auth/references/database-integration.md +577 -0
- package/.claude/skills/better-auth/references/email-password-auth.md +416 -0
- package/.claude/skills/better-auth/references/oauth-providers.md +430 -0
- package/.claude/skills/better-auth/scripts/.coverage +0 -0
- package/.claude/skills/better-auth/scripts/better_auth_init.py +521 -0
- package/.claude/skills/better-auth/scripts/requirements.txt +15 -0
- package/.claude/skills/better-auth/scripts/tests/.coverage +0 -0
- package/.claude/skills/better-auth/scripts/tests/test_better_auth_init.py +421 -0
- package/.claude/skills/chrome-devtools/SKILL.md +360 -0
- package/.claude/skills/chrome-devtools/references/cdp-domains.md +694 -0
- package/.claude/skills/chrome-devtools/references/performance-guide.md +940 -0
- package/.claude/skills/chrome-devtools/references/puppeteer-reference.md +953 -0
- package/.claude/skills/chrome-devtools/scripts/README.md +213 -0
- package/.claude/skills/chrome-devtools/scripts/__tests__/selector.test.js +210 -0
- package/.claude/skills/chrome-devtools/scripts/click.js +79 -0
- package/.claude/skills/chrome-devtools/scripts/console.js +75 -0
- package/.claude/skills/chrome-devtools/scripts/evaluate.js +49 -0
- package/.claude/skills/chrome-devtools/scripts/fill.js +72 -0
- package/.claude/skills/chrome-devtools/scripts/install-deps.sh +181 -0
- package/.claude/skills/chrome-devtools/scripts/install.sh +83 -0
- package/.claude/skills/chrome-devtools/scripts/lib/browser.js +122 -0
- package/.claude/skills/chrome-devtools/scripts/lib/selector.js +178 -0
- package/.claude/skills/chrome-devtools/scripts/navigate.js +46 -0
- package/.claude/skills/chrome-devtools/scripts/network.js +102 -0
- package/.claude/skills/chrome-devtools/scripts/package.json +15 -0
- package/.claude/skills/chrome-devtools/scripts/performance.js +145 -0
- package/.claude/skills/chrome-devtools/scripts/screenshot.js +180 -0
- package/.claude/skills/chrome-devtools/scripts/snapshot.js +131 -0
- package/.claude/skills/claude-code/references/advanced-features.md +399 -0
- package/.claude/skills/claude-code/references/agent-skills.md +399 -0
- package/.claude/skills/claude-code/references/api-reference.md +498 -0
- package/.claude/skills/claude-code/references/best-practices.md +447 -0
- package/.claude/skills/claude-code/references/cicd-integration.md +428 -0
- package/.claude/skills/claude-code/references/configuration.md +480 -0
- package/.claude/skills/claude-code/references/enterprise-features.md +472 -0
- package/.claude/skills/claude-code/references/getting-started.md +252 -0
- package/.claude/skills/claude-code/references/hooks-and-plugins.md +441 -0
- package/.claude/skills/claude-code/references/ide-integration.md +316 -0
- package/.claude/skills/claude-code/references/mcp-integration.md +386 -0
- package/.claude/skills/claude-code/references/slash-commands.md +489 -0
- package/.claude/skills/claude-code/references/troubleshooting.md +456 -0
- package/.claude/skills/claude-code/skill.md +188 -0
- package/.claude/skills/code-review/SKILL.md +143 -0
- package/.claude/skills/code-review/references/code-review-reception.md +209 -0
- package/.claude/skills/code-review/references/requesting-code-review.md +105 -0
- package/.claude/skills/code-review/references/verification-before-completion.md +139 -0
- package/.claude/skills/common/README.md +120 -0
- package/.claude/skills/common/api_key_helper.py +300 -0
- package/.claude/skills/databases/SKILL.md +232 -0
- package/.claude/skills/databases/references/mongodb-aggregation.md +447 -0
- package/.claude/skills/databases/references/mongodb-atlas.md +465 -0
- package/.claude/skills/databases/references/mongodb-crud.md +408 -0
- package/.claude/skills/databases/references/mongodb-indexing.md +442 -0
- package/.claude/skills/databases/references/postgresql-administration.md +594 -0
- package/.claude/skills/databases/references/postgresql-performance.md +527 -0
- package/.claude/skills/databases/references/postgresql-psql-cli.md +467 -0
- package/.claude/skills/databases/references/postgresql-queries.md +475 -0
- package/.claude/skills/databases/scripts/.coverage +0 -0
- package/.claude/skills/databases/scripts/db_backup.py +502 -0
- package/.claude/skills/databases/scripts/db_migrate.py +414 -0
- package/.claude/skills/databases/scripts/db_performance_check.py +444 -0
- package/.claude/skills/databases/scripts/requirements.txt +20 -0
- package/.claude/skills/databases/scripts/tests/coverage-db.json +1 -0
- package/.claude/skills/databases/scripts/tests/requirements.txt +4 -0
- package/.claude/skills/databases/scripts/tests/test_db_backup.py +340 -0
- package/.claude/skills/databases/scripts/tests/test_db_migrate.py +277 -0
- package/.claude/skills/databases/scripts/tests/test_db_performance_check.py +370 -0
- package/.claude/skills/debugging/SKILL.md +84 -0
- package/.claude/skills/debugging/references/defense-in-depth.md +124 -0
- package/.claude/skills/debugging/references/root-cause-tracing.md +122 -0
- package/.claude/skills/debugging/references/systematic-debugging.md +102 -0
- package/.claude/skills/debugging/references/verification.md +123 -0
- package/.claude/skills/debugging/scripts/find-polluter.sh +63 -0
- package/.claude/skills/debugging/scripts/find-polluter.test.md +102 -0
- package/.claude/skills/devops/.env.example +76 -0
- package/.claude/skills/devops/SKILL.md +285 -0
- package/.claude/skills/devops/references/browser-rendering.md +305 -0
- package/.claude/skills/devops/references/cloudflare-d1-kv.md +123 -0
- package/.claude/skills/devops/references/cloudflare-platform.md +271 -0
- package/.claude/skills/devops/references/cloudflare-r2-storage.md +280 -0
- package/.claude/skills/devops/references/cloudflare-workers-advanced.md +312 -0
- package/.claude/skills/devops/references/cloudflare-workers-apis.md +309 -0
- package/.claude/skills/devops/references/cloudflare-workers-basics.md +418 -0
- package/.claude/skills/devops/references/docker-basics.md +297 -0
- package/.claude/skills/devops/references/docker-compose.md +292 -0
- package/.claude/skills/devops/references/gcloud-platform.md +297 -0
- package/.claude/skills/devops/references/gcloud-services.md +304 -0
- package/.claude/skills/devops/scripts/cloudflare_deploy.py +269 -0
- package/.claude/skills/devops/scripts/docker_optimize.py +320 -0
- package/.claude/skills/devops/scripts/requirements.txt +20 -0
- package/.claude/skills/devops/scripts/tests/requirements.txt +3 -0
- package/.claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/.claude/skills/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/.claude/skills/docs-seeker/.env.example +15 -0
- package/.claude/skills/docs-seeker/SKILL.md +97 -0
- package/.claude/skills/docs-seeker/package.json +25 -0
- package/.claude/skills/docs-seeker/references/advanced.md +79 -0
- package/.claude/skills/docs-seeker/references/context7-patterns.md +68 -0
- package/.claude/skills/docs-seeker/references/errors.md +68 -0
- package/.claude/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
- package/.claude/skills/docs-seeker/scripts/detect-topic.js +172 -0
- package/.claude/skills/docs-seeker/scripts/fetch-docs.js +213 -0
- package/.claude/skills/docs-seeker/scripts/tests/run-tests.js +72 -0
- package/.claude/skills/docs-seeker/scripts/tests/test-analyze-llms.js +119 -0
- package/.claude/skills/docs-seeker/scripts/tests/test-detect-topic.js +112 -0
- package/.claude/skills/docs-seeker/scripts/tests/test-fetch-docs.js +84 -0
- package/.claude/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
- package/.claude/skills/docs-seeker/workflows/library-search.md +87 -0
- package/.claude/skills/docs-seeker/workflows/repo-analysis.md +91 -0
- package/.claude/skills/docs-seeker/workflows/topic-search.md +77 -0
- package/.claude/skills/document-skills/docx/LICENSE.txt +30 -0
- package/.claude/skills/document-skills/docx/SKILL.md +197 -0
- package/.claude/skills/document-skills/docx/docx-js.md +350 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/.claude/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/.claude/skills/document-skills/docx/ooxml.md +610 -0
- package/.claude/skills/document-skills/docx/scripts/__init__.py +1 -0
- package/.claude/skills/document-skills/docx/scripts/document.py +1276 -0
- package/.claude/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- package/.claude/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/.claude/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/.claude/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/.claude/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- package/.claude/skills/document-skills/docx/scripts/utilities.py +374 -0
- package/.claude/skills/document-skills/pdf/LICENSE.txt +30 -0
- package/.claude/skills/document-skills/pdf/SKILL.md +294 -0
- package/.claude/skills/document-skills/pdf/forms.md +205 -0
- package/.claude/skills/document-skills/pdf/reference.md +612 -0
- package/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/.claude/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/.claude/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/.claude/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- package/.claude/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/.claude/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/.claude/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/.claude/skills/document-skills/pptx/LICENSE.txt +30 -0
- package/.claude/skills/document-skills/pptx/SKILL.md +484 -0
- package/.claude/skills/document-skills/pptx/html2pptx.md +625 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/.claude/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/.claude/skills/document-skills/pptx/ooxml.md +427 -0
- package/.claude/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- package/.claude/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- package/.claude/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- package/.claude/skills/document-skills/pptx/scripts/replace.py +385 -0
- package/.claude/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- package/.claude/skills/document-skills/xlsx/LICENSE.txt +30 -0
- package/.claude/skills/document-skills/xlsx/SKILL.md +289 -0
- package/.claude/skills/document-skills/xlsx/recalc.py +178 -0
- package/.claude/skills/frontend-design/SKILL.md +42 -0
- package/.claude/skills/frontend-design/references/animejs.md +396 -0
- package/.claude/skills/frontend-development/SKILL.md +399 -0
- package/.claude/skills/frontend-development/resources/common-patterns.md +331 -0
- package/.claude/skills/frontend-development/resources/complete-examples.md +872 -0
- package/.claude/skills/frontend-development/resources/component-patterns.md +502 -0
- package/.claude/skills/frontend-development/resources/data-fetching.md +767 -0
- package/.claude/skills/frontend-development/resources/file-organization.md +502 -0
- package/.claude/skills/frontend-development/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/frontend-development/resources/performance.md +406 -0
- package/.claude/skills/frontend-development/resources/routing-guide.md +364 -0
- package/.claude/skills/frontend-development/resources/styling-guide.md +428 -0
- package/.claude/skills/frontend-development/resources/typescript-standards.md +418 -0
- package/.claude/skills/google-adk-python/SKILL.md +237 -0
- package/.claude/skills/mcp-builder/LICENSE.txt +202 -0
- package/.claude/skills/mcp-builder/SKILL.md +328 -0
- package/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/.claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/.claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/.claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.claude/skills/mcp-management/README.md +219 -0
- package/.claude/skills/mcp-management/SKILL.md +209 -0
- package/.claude/skills/mcp-management/assets/tools.json +3146 -0
- package/.claude/skills/mcp-management/references/configuration.md +114 -0
- package/.claude/skills/mcp-management/references/gemini-cli-integration.md +215 -0
- package/.claude/skills/mcp-management/references/mcp-protocol.md +116 -0
- package/.claude/skills/mcp-management/scripts/.env.example +10 -0
- package/.claude/skills/mcp-management/scripts/cli.ts +195 -0
- package/.claude/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/.claude/skills/mcp-management/scripts/dist/cli.js +127 -0
- package/.claude/skills/mcp-management/scripts/dist/mcp-client.js +115 -0
- package/.claude/skills/mcp-management/scripts/mcp-client.ts +230 -0
- package/.claude/skills/mcp-management/scripts/package.json +20 -0
- package/.claude/skills/mcp-management/scripts/tsconfig.json +15 -0
- package/.claude/skills/media-processing/SKILL.md +358 -0
- package/.claude/skills/media-processing/references/ffmpeg-encoding.md +358 -0
- package/.claude/skills/media-processing/references/ffmpeg-filters.md +503 -0
- package/.claude/skills/media-processing/references/ffmpeg-streaming.md +403 -0
- package/.claude/skills/media-processing/references/format-compatibility.md +375 -0
- package/.claude/skills/media-processing/references/imagemagick-batch.md +612 -0
- package/.claude/skills/media-processing/references/imagemagick-editing.md +623 -0
- package/.claude/skills/media-processing/scripts/batch_resize.py +342 -0
- package/.claude/skills/media-processing/scripts/media_convert.py +311 -0
- package/.claude/skills/media-processing/scripts/requirements.txt +24 -0
- package/.claude/skills/media-processing/scripts/tests/.coverage +0 -0
- package/.claude/skills/media-processing/scripts/tests/requirements.txt +2 -0
- package/.claude/skills/media-processing/scripts/tests/test_batch_resize.py +372 -0
- package/.claude/skills/media-processing/scripts/tests/test_media_convert.py +259 -0
- package/.claude/skills/media-processing/scripts/tests/test_video_optimize.py +397 -0
- package/.claude/skills/media-processing/scripts/video_optimize.py +414 -0
- package/.claude/skills/mobile-development/SKILL.md +212 -0
- package/.claude/skills/mobile-development/references/mobile-android.md +604 -0
- package/.claude/skills/mobile-development/references/mobile-best-practices.md +545 -0
- package/.claude/skills/mobile-development/references/mobile-debugging.md +1089 -0
- package/.claude/skills/mobile-development/references/mobile-frameworks.md +465 -0
- package/.claude/skills/mobile-development/references/mobile-ios.md +496 -0
- package/.claude/skills/mobile-development/references/mobile-mindset.md +544 -0
- package/.claude/skills/payment-integration/README.md +185 -0
- package/.claude/skills/payment-integration/SKILL.md +118 -0
- package/.claude/skills/payment-integration/references/polar/benefits.md +396 -0
- package/.claude/skills/payment-integration/references/polar/best-practices.md +482 -0
- package/.claude/skills/payment-integration/references/polar/checkouts.md +266 -0
- package/.claude/skills/payment-integration/references/polar/overview.md +184 -0
- package/.claude/skills/payment-integration/references/polar/products.md +244 -0
- package/.claude/skills/payment-integration/references/polar/sdk.md +436 -0
- package/.claude/skills/payment-integration/references/polar/subscriptions.md +340 -0
- package/.claude/skills/payment-integration/references/polar/webhooks.md +405 -0
- package/.claude/skills/payment-integration/references/sepay/api.md +140 -0
- package/.claude/skills/payment-integration/references/sepay/best-practices.md +337 -0
- package/.claude/skills/payment-integration/references/sepay/overview.md +138 -0
- package/.claude/skills/payment-integration/references/sepay/qr-codes.md +228 -0
- package/.claude/skills/payment-integration/references/sepay/sdk.md +213 -0
- package/.claude/skills/payment-integration/references/sepay/webhooks.md +208 -0
- package/.claude/skills/payment-integration/scripts/.env.example +20 -0
- package/.claude/skills/payment-integration/scripts/checkout-helper.js +244 -0
- package/.claude/skills/payment-integration/scripts/package.json +17 -0
- package/.claude/skills/payment-integration/scripts/polar-webhook-verify.js +202 -0
- package/.claude/skills/payment-integration/scripts/sepay-webhook-verify.js +193 -0
- package/.claude/skills/payment-integration/scripts/test-scripts.js +237 -0
- package/.claude/skills/payment-integration.tar.gz +0 -0
- package/.claude/skills/planning/SKILL.md +88 -0
- package/.claude/skills/planning/references/codebase-understanding.md +62 -0
- package/.claude/skills/planning/references/output-standards.md +87 -0
- package/.claude/skills/planning/references/plan-organization.md +100 -0
- package/.claude/skills/planning/references/research-phase.md +49 -0
- package/.claude/skills/planning/references/solution-design.md +63 -0
- package/.claude/skills/problem-solving/SKILL.md +96 -0
- package/.claude/skills/problem-solving/references/attribution.md +69 -0
- package/.claude/skills/problem-solving/references/collision-zone-thinking.md +79 -0
- package/.claude/skills/problem-solving/references/inversion-exercise.md +91 -0
- package/.claude/skills/problem-solving/references/meta-pattern-recognition.md +87 -0
- package/.claude/skills/problem-solving/references/scale-game.md +95 -0
- package/.claude/skills/problem-solving/references/simplification-cascades.md +80 -0
- package/.claude/skills/problem-solving/references/when-stuck.md +72 -0
- package/.claude/skills/repomix/SKILL.md +247 -0
- package/.claude/skills/repomix/references/configuration.md +211 -0
- package/.claude/skills/repomix/references/usage-patterns.md +232 -0
- package/.claude/skills/repomix/scripts/.coverage +0 -0
- package/.claude/skills/repomix/scripts/README.md +179 -0
- package/.claude/skills/repomix/scripts/repomix_batch.py +455 -0
- package/.claude/skills/repomix/scripts/repos.example.json +15 -0
- package/.claude/skills/repomix/scripts/requirements.txt +15 -0
- package/.claude/skills/repomix/scripts/tests/test_repomix_batch.py +531 -0
- package/.claude/skills/research/SKILL.md +168 -0
- package/.claude/skills/sequential-thinking/.env.example +8 -0
- package/.claude/skills/sequential-thinking/README.md +183 -0
- package/.claude/skills/sequential-thinking/SKILL.md +94 -0
- package/.claude/skills/sequential-thinking/package.json +31 -0
- package/.claude/skills/sequential-thinking/references/advanced-strategies.md +79 -0
- package/.claude/skills/sequential-thinking/references/advanced-techniques.md +76 -0
- package/.claude/skills/sequential-thinking/references/core-patterns.md +95 -0
- package/.claude/skills/sequential-thinking/references/examples-api.md +88 -0
- package/.claude/skills/sequential-thinking/references/examples-architecture.md +94 -0
- package/.claude/skills/sequential-thinking/references/examples-debug.md +90 -0
- package/.claude/skills/sequential-thinking/scripts/format-thought.js +159 -0
- package/.claude/skills/sequential-thinking/scripts/process-thought.js +236 -0
- package/.claude/skills/sequential-thinking/tests/format-thought.test.js +133 -0
- package/.claude/skills/sequential-thinking/tests/process-thought.test.js +215 -0
- package/.claude/skills/shopify/README.md +66 -0
- package/.claude/skills/shopify/SKILL.md +319 -0
- package/.claude/skills/shopify/references/app-development.md +470 -0
- package/.claude/skills/shopify/references/extensions.md +493 -0
- package/.claude/skills/shopify/references/themes.md +498 -0
- package/.claude/skills/shopify/scripts/.coverage +0 -0
- package/.claude/skills/shopify/scripts/requirements.txt +19 -0
- package/.claude/skills/shopify/scripts/shopify_init.py +423 -0
- package/.claude/skills/shopify/scripts/tests/.coverage +0 -0
- package/.claude/skills/shopify/scripts/tests/test_shopify_init.py +385 -0
- package/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/skill-creator/SKILL.md +255 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/.claude/skills/template-skill/SKILL.md +6 -0
- package/.claude/skills/threejs/SKILL.md +89 -0
- package/.claude/skills/threejs/references/01-getting-started.md +177 -0
- package/.claude/skills/threejs/references/02-loaders.md +169 -0
- package/.claude/skills/threejs/references/03-textures.md +170 -0
- package/.claude/skills/threejs/references/04-cameras.md +195 -0
- package/.claude/skills/threejs/references/05-lights.md +183 -0
- package/.claude/skills/threejs/references/06-animations.md +214 -0
- package/.claude/skills/threejs/references/07-math.md +260 -0
- package/.claude/skills/threejs/references/08-interaction.md +267 -0
- package/.claude/skills/threejs/references/09-postprocessing.md +240 -0
- package/.claude/skills/threejs/references/10-controls.md +259 -0
- package/.claude/skills/threejs/references/11-materials-advanced.md +270 -0
- package/.claude/skills/threejs/references/12-performance.md +269 -0
- package/.claude/skills/threejs/references/13-node-materials.md +298 -0
- package/.claude/skills/threejs/references/14-physics-vr.md +304 -0
- package/.claude/skills/threejs/references/15-specialized-loaders.md +333 -0
- package/.claude/skills/threejs/references/16-webgpu.md +302 -0
- package/.claude/skills/ui-styling/LICENSE.txt +202 -0
- package/.claude/skills/ui-styling/SKILL.md +321 -0
- package/.claude/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/.claude/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/.claude/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/.claude/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/.claude/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/.claude/skills/ui-styling/references/shadcn-components.md +424 -0
- package/.claude/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/.claude/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/.claude/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/.claude/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/.claude/skills/ui-styling/scripts/.coverage +0 -0
- package/.claude/skills/ui-styling/scripts/requirements.txt +17 -0
- package/.claude/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/.claude/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/.claude/skills/ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/.claude/skills/ui-styling/scripts/tests/requirements.txt +3 -0
- package/.claude/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/.claude/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/.claude/skills/web-frameworks/SKILL.md +324 -0
- package/.claude/skills/web-frameworks/references/nextjs-app-router.md +465 -0
- package/.claude/skills/web-frameworks/references/nextjs-data-fetching.md +459 -0
- package/.claude/skills/web-frameworks/references/nextjs-optimization.md +511 -0
- package/.claude/skills/web-frameworks/references/nextjs-server-components.md +495 -0
- package/.claude/skills/web-frameworks/references/remix-icon-integration.md +603 -0
- package/.claude/skills/web-frameworks/references/turborepo-caching.md +551 -0
- package/.claude/skills/web-frameworks/references/turborepo-pipelines.md +517 -0
- package/.claude/skills/web-frameworks/references/turborepo-setup.md +542 -0
- package/.claude/skills/web-frameworks/scripts/.coverage +0 -0
- package/.claude/skills/web-frameworks/scripts/__init__.py +0 -0
- package/.claude/skills/web-frameworks/scripts/nextjs_init.py +547 -0
- package/.claude/skills/web-frameworks/scripts/requirements.txt +16 -0
- package/.claude/skills/web-frameworks/scripts/tests/coverage-web.json +1 -0
- package/.claude/skills/web-frameworks/scripts/tests/requirements.txt +3 -0
- package/.claude/skills/web-frameworks/scripts/tests/test_nextjs_init.py +319 -0
- package/.claude/skills/web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -0
- package/.claude/skills/web-frameworks/scripts/turborepo_migrate.py +394 -0
- package/.claude/statusline.js +263 -0
- package/.claude/statusline.ps1 +312 -0
- package/.claude/statusline.sh +141 -0
- package/.claude/workflows/development-rules.md +42 -0
- package/.claude/workflows/documentation-management.md +28 -0
- package/.claude/workflows/orchestration-protocol.md +16 -0
- package/.claude/workflows/primary-workflow.md +45 -0
- package/.opencode/agent/code-reviewer.md +141 -0
- package/.opencode/agent/debugger.md +75 -0
- package/.opencode/agent/docs-manager.md +120 -0
- package/.opencode/agent/git-manager.md +60 -0
- package/.opencode/agent/planner-researcher.md +101 -0
- package/.opencode/agent/planner.md +88 -0
- package/.opencode/agent/project-manager.md +113 -0
- package/.opencode/agent/researcher.md +174 -0
- package/.opencode/agent/solution-brainstormer.md +90 -0
- package/.opencode/agent/system-architecture.md +193 -0
- package/.opencode/agent/tester.md +96 -0
- package/.opencode/agent/ui-ux-designer.md +233 -0
- package/.opencode/agent/ui-ux-developer.md +98 -0
- package/.opencode/command/cook.md +7 -0
- package/.opencode/command/debug.md +10 -0
- package/.opencode/command/design/3d.md +65 -0
- package/.opencode/command/design/fast.md +18 -0
- package/.opencode/command/design/good.md +21 -0
- package/.opencode/command/design/screenshot.md +22 -0
- package/.opencode/command/design/video.md +22 -0
- package/.opencode/command/docs/init.md +11 -0
- package/.opencode/command/docs/summarize.md +10 -0
- package/.opencode/command/docs/update.md +18 -0
- package/.opencode/command/fix/ci.md +8 -0
- package/.opencode/command/fix/fast.md +11 -0
- package/.opencode/command/fix/hard.md +15 -0
- package/.opencode/command/fix/logs.md +16 -0
- package/.opencode/command/fix/test.md +18 -0
- package/.opencode/command/fix/types.md +10 -0
- package/.opencode/command/git/cm.md +5 -0
- package/.opencode/command/git/cp.md +4 -0
- package/.opencode/command/plan/ci.md +12 -0
- package/.opencode/command/plan/two.md +13 -0
- package/.opencode/command/plan.md +10 -0
- package/.opencode/command/test.md +7 -0
- package/.opencode/command/watzup.md +8 -0
- package/CLAUDE.md +39 -0
- package/LICENSE +21 -0
- package/README.md +639 -0
- package/package.json +61 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-multimodal
|
|
3
|
+
description: Process and generate multimedia content using Google Gemini API. Capabilities include analyze audio files (transcription with timestamps, summarization, speech understanding, music/sound analysis up to 9.5 hours), understand images (captioning, object detection, OCR, visual Q&A, segmentation), process videos (scene detection, Q&A, temporal analysis, YouTube URLs, up to 6 hours), extract from documents (PDF tables, forms, charts, diagrams, multi-page), generate images (text-to-image, editing, composition, refinement). Use when working with audio/video files, analyzing images or screenshots, processing PDF documents, extracting structured data from media, creating images from text prompts, or implementing multimodal AI features. Supports multiple models (Gemini 2.5/2.0) with context windows up to 2M tokens.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Bash
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# AI Multimodal Processing Skill
|
|
13
|
+
|
|
14
|
+
Process audio, images, videos, documents, and generate images using Google Gemini's multimodal API. Unified interface for all multimedia content understanding and generation.
|
|
15
|
+
|
|
16
|
+
## Core Capabilities
|
|
17
|
+
|
|
18
|
+
### Audio Processing
|
|
19
|
+
- Transcription with timestamps (up to 9.5 hours)
|
|
20
|
+
- Audio summarization and analysis
|
|
21
|
+
- Speech understanding and speaker identification
|
|
22
|
+
- Music and environmental sound analysis
|
|
23
|
+
- Text-to-speech generation with controllable voice
|
|
24
|
+
|
|
25
|
+
### Image Understanding
|
|
26
|
+
- Image captioning and description
|
|
27
|
+
- Object detection with bounding boxes (2.0+)
|
|
28
|
+
- Pixel-level segmentation (2.5+)
|
|
29
|
+
- Visual question answering
|
|
30
|
+
- Multi-image comparison (up to 3,600 images)
|
|
31
|
+
- OCR and text extraction
|
|
32
|
+
|
|
33
|
+
### Video Analysis
|
|
34
|
+
- Scene detection and summarization
|
|
35
|
+
- Video Q&A with temporal understanding
|
|
36
|
+
- Transcription with visual descriptions
|
|
37
|
+
- YouTube URL support
|
|
38
|
+
- Long video processing (up to 6 hours)
|
|
39
|
+
- Frame-level analysis
|
|
40
|
+
|
|
41
|
+
### Document Extraction
|
|
42
|
+
- Native PDF vision processing (up to 1,000 pages)
|
|
43
|
+
- Table and form extraction
|
|
44
|
+
- Chart and diagram analysis
|
|
45
|
+
- Multi-page document understanding
|
|
46
|
+
- Structured data output (JSON schema)
|
|
47
|
+
- Format conversion (PDF to HTML/JSON)
|
|
48
|
+
|
|
49
|
+
### Image Generation
|
|
50
|
+
- Text-to-image generation
|
|
51
|
+
- Image editing and modification
|
|
52
|
+
- Multi-image composition (up to 3 images)
|
|
53
|
+
- Iterative refinement
|
|
54
|
+
- Multiple aspect ratios (1:1, 16:9, 9:16, 4:3, 3:4)
|
|
55
|
+
- Controllable style and quality
|
|
56
|
+
|
|
57
|
+
## Capability Matrix
|
|
58
|
+
|
|
59
|
+
| Task | Audio | Image | Video | Document | Generation |
|
|
60
|
+
|------|:-----:|:-----:|:-----:|:--------:|:----------:|
|
|
61
|
+
| Transcription | ✓ | - | ✓ | - | - |
|
|
62
|
+
| Summarization | ✓ | ✓ | ✓ | ✓ | - |
|
|
63
|
+
| Q&A | ✓ | ✓ | ✓ | ✓ | - |
|
|
64
|
+
| Object Detection | - | ✓ | ✓ | - | - |
|
|
65
|
+
| Text Extraction | - | ✓ | - | ✓ | - |
|
|
66
|
+
| Structured Output | ✓ | ✓ | ✓ | ✓ | - |
|
|
67
|
+
| Creation | TTS | - | - | - | ✓ |
|
|
68
|
+
| Timestamps | ✓ | - | ✓ | - | - |
|
|
69
|
+
| Segmentation | - | ✓ | - | - | - |
|
|
70
|
+
|
|
71
|
+
## Model Selection Guide
|
|
72
|
+
|
|
73
|
+
### Gemini 2.5 Series (Recommended)
|
|
74
|
+
- **gemini-2.5-pro**: Highest quality, all features, 1M-2M context
|
|
75
|
+
- **gemini-2.5-flash**: Best balance, all features, 1M-2M context
|
|
76
|
+
- **gemini-2.5-flash-lite**: Lightweight, segmentation support
|
|
77
|
+
- **gemini-2.5-flash-image**: Image generation only
|
|
78
|
+
|
|
79
|
+
### Feature Requirements
|
|
80
|
+
- **Segmentation**: Requires 2.5+ models
|
|
81
|
+
- **Object Detection**: Requires 2.0+ models
|
|
82
|
+
- **Multi-video**: Requires 2.5+ models
|
|
83
|
+
- **Image Generation**: Requires flash-image model
|
|
84
|
+
|
|
85
|
+
### Context Windows
|
|
86
|
+
- **2M tokens**: ~6 hours video (low-res) or ~2 hours (default)
|
|
87
|
+
- **1M tokens**: ~3 hours video (low-res) or ~1 hour (default)
|
|
88
|
+
- **Audio**: 32 tokens/second (1 min = 1,920 tokens)
|
|
89
|
+
- **PDF**: 258 tokens/page (fixed)
|
|
90
|
+
- **Image**: 258-1,548 tokens based on size
|
|
91
|
+
|
|
92
|
+
## Quick Start
|
|
93
|
+
|
|
94
|
+
### Prerequisites
|
|
95
|
+
|
|
96
|
+
**API Key Setup**: Supports both Google AI Studio and Vertex AI.
|
|
97
|
+
|
|
98
|
+
The skill checks for `GEMINI_API_KEY` in this order:
|
|
99
|
+
1. Process environment: `export GEMINI_API_KEY="your-key"`
|
|
100
|
+
2. Project root: `.env`
|
|
101
|
+
3. `.claude/.env`
|
|
102
|
+
4. `.claude/skills/.env`
|
|
103
|
+
5. `.claude/skills/ai-multimodal/.env`
|
|
104
|
+
|
|
105
|
+
**Get API key**: https://aistudio.google.com/apikey
|
|
106
|
+
|
|
107
|
+
**For Vertex AI**:
|
|
108
|
+
```bash
|
|
109
|
+
export GEMINI_USE_VERTEX=true
|
|
110
|
+
export VERTEX_PROJECT_ID=your-gcp-project-id
|
|
111
|
+
export VERTEX_LOCATION=us-central1 # Optional
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Install SDK**:
|
|
115
|
+
```bash
|
|
116
|
+
pip install google-genai python-dotenv pillow
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Common Patterns
|
|
120
|
+
|
|
121
|
+
**Transcribe Audio**:
|
|
122
|
+
```bash
|
|
123
|
+
python scripts/gemini_batch_process.py \
|
|
124
|
+
--files audio.mp3 \
|
|
125
|
+
--task transcribe \
|
|
126
|
+
--model gemini-2.5-flash
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Analyze Image**:
|
|
130
|
+
```bash
|
|
131
|
+
python scripts/gemini_batch_process.py \
|
|
132
|
+
--files image.jpg \
|
|
133
|
+
--task analyze \
|
|
134
|
+
--prompt "Describe this image" \
|
|
135
|
+
--output docs/assets/<output-name>.md \
|
|
136
|
+
--model gemini-2.5-flash
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Process Video**:
|
|
140
|
+
```bash
|
|
141
|
+
python scripts/gemini_batch_process.py \
|
|
142
|
+
--files video.mp4 \
|
|
143
|
+
--task analyze \
|
|
144
|
+
--prompt "Summarize key points with timestamps" \
|
|
145
|
+
--output docs/assets/<output-name>.md \
|
|
146
|
+
--model gemini-2.5-flash
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Extract from PDF**:
|
|
150
|
+
```bash
|
|
151
|
+
python scripts/gemini_batch_process.py \
|
|
152
|
+
--files document.pdf \
|
|
153
|
+
--task extract \
|
|
154
|
+
--prompt "Extract table data as JSON" \
|
|
155
|
+
--output docs/assets/<output-name>.md \
|
|
156
|
+
--format json
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Generate Image**:
|
|
160
|
+
```bash
|
|
161
|
+
python scripts/gemini_batch_process.py \
|
|
162
|
+
--task generate \
|
|
163
|
+
--prompt "A futuristic city at sunset" \
|
|
164
|
+
--output docs/assets/<output-file-name> \
|
|
165
|
+
--model gemini-2.5-flash-image \
|
|
166
|
+
--aspect-ratio 16:9
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Optimize Media**:
|
|
170
|
+
```bash
|
|
171
|
+
# Prepare large video for processing
|
|
172
|
+
python scripts/media_optimizer.py \
|
|
173
|
+
--input large-video.mp4 \
|
|
174
|
+
--output docs/assets/<output-file-name> \
|
|
175
|
+
--target-size 100MB
|
|
176
|
+
|
|
177
|
+
# Batch optimize multiple files
|
|
178
|
+
python scripts/media_optimizer.py \
|
|
179
|
+
--input-dir ./videos \
|
|
180
|
+
--output-dir docs/assets/optimized \
|
|
181
|
+
--quality 85
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Convert Documents to Markdown**:
|
|
185
|
+
```bash
|
|
186
|
+
# Convert to PDF
|
|
187
|
+
python scripts/document_converter.py \
|
|
188
|
+
--input document.docx \
|
|
189
|
+
--output docs/assets/document.md
|
|
190
|
+
|
|
191
|
+
# Extract pages
|
|
192
|
+
python scripts/document_converter.py \
|
|
193
|
+
--input large.pdf \
|
|
194
|
+
--output docs/assets/chapter1.md \
|
|
195
|
+
--pages 1-20
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Supported Formats
|
|
199
|
+
|
|
200
|
+
### Audio
|
|
201
|
+
- WAV, MP3, AAC, FLAC, OGG Vorbis, AIFF
|
|
202
|
+
- Max 9.5 hours per request
|
|
203
|
+
- Auto-downsampled to 16 Kbps mono
|
|
204
|
+
|
|
205
|
+
### Images
|
|
206
|
+
- PNG, JPEG, WEBP, HEIC, HEIF
|
|
207
|
+
- Max 3,600 images per request
|
|
208
|
+
- Resolution: ≤384px = 258 tokens, larger = tiled
|
|
209
|
+
|
|
210
|
+
### Video
|
|
211
|
+
- MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV, 3GPP
|
|
212
|
+
- Max 6 hours (low-res) or 2 hours (default)
|
|
213
|
+
- YouTube URLs supported (public only)
|
|
214
|
+
|
|
215
|
+
### Documents
|
|
216
|
+
- PDF only for vision processing
|
|
217
|
+
- Max 1,000 pages
|
|
218
|
+
- TXT, HTML, Markdown supported (text-only)
|
|
219
|
+
|
|
220
|
+
### Size Limits
|
|
221
|
+
- **Inline**: <20MB total request
|
|
222
|
+
- **File API**: 2GB per file, 20GB project quota
|
|
223
|
+
- **Retention**: 48 hours auto-delete
|
|
224
|
+
|
|
225
|
+
## Reference Navigation
|
|
226
|
+
|
|
227
|
+
For detailed implementation guidance, see:
|
|
228
|
+
|
|
229
|
+
### Audio Processing
|
|
230
|
+
- `references/audio-processing.md` - Transcription, analysis, TTS
|
|
231
|
+
- Timestamp handling and segment analysis
|
|
232
|
+
- Multi-speaker identification
|
|
233
|
+
- Non-speech audio analysis
|
|
234
|
+
- Text-to-speech generation
|
|
235
|
+
|
|
236
|
+
### Image Understanding
|
|
237
|
+
- `references/vision-understanding.md` - Captioning, detection, OCR
|
|
238
|
+
- Object detection and localization
|
|
239
|
+
- Pixel-level segmentation
|
|
240
|
+
- Visual question answering
|
|
241
|
+
- Multi-image comparison
|
|
242
|
+
|
|
243
|
+
### Video Analysis
|
|
244
|
+
- `references/video-analysis.md` - Scene detection, temporal understanding
|
|
245
|
+
- YouTube URL processing
|
|
246
|
+
- Timestamp-based queries
|
|
247
|
+
- Video clipping and FPS control
|
|
248
|
+
- Long video optimization
|
|
249
|
+
|
|
250
|
+
### Document Extraction
|
|
251
|
+
- `references/document-extraction.md` - PDF processing, structured output
|
|
252
|
+
- Table and form extraction
|
|
253
|
+
- Chart and diagram analysis
|
|
254
|
+
- JSON schema validation
|
|
255
|
+
- Multi-page handling
|
|
256
|
+
|
|
257
|
+
### Image Generation
|
|
258
|
+
- `references/image-generation.md` - Text-to-image, editing
|
|
259
|
+
- Prompt engineering strategies
|
|
260
|
+
- Image editing and composition
|
|
261
|
+
- Aspect ratio selection
|
|
262
|
+
- Safety settings
|
|
263
|
+
|
|
264
|
+
## Cost Optimization
|
|
265
|
+
|
|
266
|
+
### Token Costs
|
|
267
|
+
**Input Pricing**:
|
|
268
|
+
- Gemini 2.5 Flash: $1.00/1M input, $0.10/1M output
|
|
269
|
+
- Gemini 2.5 Pro: $3.00/1M input, $12.00/1M output
|
|
270
|
+
- Gemini 1.5 Flash: $0.70/1M input, $0.175/1M output
|
|
271
|
+
|
|
272
|
+
**Token Rates**:
|
|
273
|
+
- Audio: 32 tokens/second (1 min = 1,920 tokens)
|
|
274
|
+
- Video: ~300 tokens/second (default) or ~100 (low-res)
|
|
275
|
+
- PDF: 258 tokens/page (fixed)
|
|
276
|
+
- Image: 258-1,548 tokens based on size
|
|
277
|
+
|
|
278
|
+
**TTS Pricing**:
|
|
279
|
+
- Flash TTS: $10/1M tokens
|
|
280
|
+
- Pro TTS: $20/1M tokens
|
|
281
|
+
|
|
282
|
+
### Best Practices
|
|
283
|
+
1. Use `gemini-2.5-flash` for most tasks (best price/performance)
|
|
284
|
+
2. Use File API for files >20MB or repeated queries
|
|
285
|
+
3. Optimize media before upload (see `media_optimizer.py`)
|
|
286
|
+
4. Process specific segments instead of full videos
|
|
287
|
+
5. Use lower FPS for static content
|
|
288
|
+
6. Implement context caching for repeated queries
|
|
289
|
+
7. Batch process multiple files in parallel
|
|
290
|
+
|
|
291
|
+
## Rate Limits
|
|
292
|
+
|
|
293
|
+
**Free Tier**:
|
|
294
|
+
- 10-15 RPM (requests per minute)
|
|
295
|
+
- 1M-4M TPM (tokens per minute)
|
|
296
|
+
- 1,500 RPD (requests per day)
|
|
297
|
+
|
|
298
|
+
**YouTube Limits**:
|
|
299
|
+
- Free tier: 8 hours/day
|
|
300
|
+
- Paid tier: No length limits
|
|
301
|
+
- Public videos only
|
|
302
|
+
|
|
303
|
+
**Storage Limits**:
|
|
304
|
+
- 20GB per project
|
|
305
|
+
- 2GB per file
|
|
306
|
+
- 48-hour retention
|
|
307
|
+
|
|
308
|
+
## Error Handling
|
|
309
|
+
|
|
310
|
+
Common errors and solutions:
|
|
311
|
+
- **400**: Invalid format/size - validate before upload
|
|
312
|
+
- **401**: Invalid API key - check configuration
|
|
313
|
+
- **403**: Permission denied - verify API key restrictions
|
|
314
|
+
- **404**: File not found - ensure file uploaded and active
|
|
315
|
+
- **429**: Rate limit exceeded - implement exponential backoff
|
|
316
|
+
- **500**: Server error - retry with backoff
|
|
317
|
+
|
|
318
|
+
## Scripts Overview
|
|
319
|
+
|
|
320
|
+
All scripts support unified API key detection and error handling:
|
|
321
|
+
|
|
322
|
+
**gemini_batch_process.py**: Batch process multiple media files
|
|
323
|
+
- Supports all modalities (audio, image, video, PDF)
|
|
324
|
+
- Progress tracking and error recovery
|
|
325
|
+
- Output formats: JSON, Markdown, CSV
|
|
326
|
+
- Rate limiting and retry logic
|
|
327
|
+
- Dry-run mode
|
|
328
|
+
|
|
329
|
+
**media_optimizer.py**: Prepare media for Gemini API
|
|
330
|
+
- Compress videos/audio for size limits
|
|
331
|
+
- Resize images appropriately
|
|
332
|
+
- Split long videos into chunks
|
|
333
|
+
- Format conversion
|
|
334
|
+
- Quality vs size optimization
|
|
335
|
+
|
|
336
|
+
**document_converter.py**: Convert documents to PDF
|
|
337
|
+
- Convert DOCX, XLSX, PPTX to PDF
|
|
338
|
+
- Extract page ranges
|
|
339
|
+
- Optimize PDFs for Gemini
|
|
340
|
+
- Extract images from PDFs
|
|
341
|
+
- Batch conversion support
|
|
342
|
+
|
|
343
|
+
Run any script with `--help` for detailed usage.
|
|
344
|
+
|
|
345
|
+
## Resources
|
|
346
|
+
|
|
347
|
+
- [Audio API Docs](https://ai.google.dev/gemini-api/docs/audio)
|
|
348
|
+
- [Image API Docs](https://ai.google.dev/gemini-api/docs/image-understanding)
|
|
349
|
+
- [Video API Docs](https://ai.google.dev/gemini-api/docs/video-understanding)
|
|
350
|
+
- [Document API Docs](https://ai.google.dev/gemini-api/docs/document-processing)
|
|
351
|
+
- [Image Gen Docs](https://ai.google.dev/gemini-api/docs/image-generation)
|
|
352
|
+
- [Get API Key](https://aistudio.google.com/apikey)
|
|
353
|
+
- [Pricing](https://ai.google.dev/pricing)
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# Audio Processing Reference
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for audio analysis and speech generation using Gemini API.
|
|
4
|
+
|
|
5
|
+
## Audio Understanding
|
|
6
|
+
|
|
7
|
+
### Supported Formats
|
|
8
|
+
|
|
9
|
+
| Format | MIME Type | Best Use |
|
|
10
|
+
|--------|-----------|----------|
|
|
11
|
+
| WAV | `audio/wav` | Uncompressed, highest quality |
|
|
12
|
+
| MP3 | `audio/mp3` | Compressed, widely compatible |
|
|
13
|
+
| AAC | `audio/aac` | Compressed, good quality |
|
|
14
|
+
| FLAC | `audio/flac` | Lossless compression |
|
|
15
|
+
| OGG Vorbis | `audio/ogg` | Open format |
|
|
16
|
+
| AIFF | `audio/aiff` | Apple format |
|
|
17
|
+
|
|
18
|
+
### Specifications
|
|
19
|
+
|
|
20
|
+
- **Maximum length**: 9.5 hours per request
|
|
21
|
+
- **Multiple files**: Unlimited count, combined max 9.5 hours
|
|
22
|
+
- **Token rate**: 32 tokens/second (1 minute = 1,920 tokens)
|
|
23
|
+
- **Processing**: Auto-downsampled to 16 Kbps mono
|
|
24
|
+
- **File size limits**:
|
|
25
|
+
- Inline: 20 MB max total request
|
|
26
|
+
- File API: 2 GB per file, 20 GB project quota
|
|
27
|
+
- Retention: 48 hours auto-delete
|
|
28
|
+
|
|
29
|
+
## Transcription
|
|
30
|
+
|
|
31
|
+
### Basic Transcription
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
from google import genai
|
|
35
|
+
import os
|
|
36
|
+
|
|
37
|
+
client = genai.Client(api_key=os.getenv('GEMINI_API_KEY'))
|
|
38
|
+
|
|
39
|
+
# Upload audio
|
|
40
|
+
myfile = client.files.upload(file='meeting.mp3')
|
|
41
|
+
|
|
42
|
+
# Transcribe
|
|
43
|
+
response = client.models.generate_content(
|
|
44
|
+
model='gemini-2.5-flash',
|
|
45
|
+
contents=['Generate a transcript of the speech.', myfile]
|
|
46
|
+
)
|
|
47
|
+
print(response.text)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### With Timestamps
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
response = client.models.generate_content(
|
|
54
|
+
model='gemini-2.5-flash',
|
|
55
|
+
contents=['Generate transcript with timestamps in MM:SS format.', myfile]
|
|
56
|
+
)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Multi-Speaker Identification
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
response = client.models.generate_content(
|
|
63
|
+
model='gemini-2.5-flash',
|
|
64
|
+
contents=['Transcribe with speaker labels. Format: [Speaker 1], [Speaker 2], etc.', myfile]
|
|
65
|
+
)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Segment-Specific Transcription
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
response = client.models.generate_content(
|
|
72
|
+
model='gemini-2.5-flash',
|
|
73
|
+
contents=['Transcribe only the segment from 02:30 to 05:15.', myfile]
|
|
74
|
+
)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Audio Analysis
|
|
78
|
+
|
|
79
|
+
### Summarization
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
response = client.models.generate_content(
|
|
83
|
+
model='gemini-2.5-flash',
|
|
84
|
+
contents=['Summarize key points in 5 bullets with timestamps.', myfile]
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Non-Speech Audio Analysis
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
# Music analysis
|
|
92
|
+
response = client.models.generate_content(
|
|
93
|
+
model='gemini-2.5-flash',
|
|
94
|
+
contents=['Identify the musical instruments and genre.', myfile]
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
# Environmental sounds
|
|
98
|
+
response = client.models.generate_content(
|
|
99
|
+
model='gemini-2.5-flash',
|
|
100
|
+
contents=['Identify all sounds: voices, music, ambient noise.', myfile]
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# Birdsong identification
|
|
104
|
+
response = client.models.generate_content(
|
|
105
|
+
model='gemini-2.5-flash',
|
|
106
|
+
contents=['Identify bird species based on their calls.', myfile]
|
|
107
|
+
)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Timestamp-Based Analysis
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
response = client.models.generate_content(
|
|
114
|
+
model='gemini-2.5-flash',
|
|
115
|
+
contents=['What is discussed from 10:30 to 15:45? Provide key points.', myfile]
|
|
116
|
+
)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Input Methods
|
|
120
|
+
|
|
121
|
+
### File Upload (>20MB or Reuse)
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
# Upload once, use multiple times
|
|
125
|
+
myfile = client.files.upload(file='large-audio.mp3')
|
|
126
|
+
|
|
127
|
+
# First query
|
|
128
|
+
response1 = client.models.generate_content(
|
|
129
|
+
model='gemini-2.5-flash',
|
|
130
|
+
contents=['Transcribe this', myfile]
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
# Second query (reuses same file)
|
|
134
|
+
response2 = client.models.generate_content(
|
|
135
|
+
model='gemini-2.5-flash',
|
|
136
|
+
contents=['Summarize this', myfile]
|
|
137
|
+
)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Inline Data (<20MB)
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
from google.genai import types
|
|
144
|
+
|
|
145
|
+
with open('small-audio.mp3', 'rb') as f:
|
|
146
|
+
audio_bytes = f.read()
|
|
147
|
+
|
|
148
|
+
response = client.models.generate_content(
|
|
149
|
+
model='gemini-2.5-flash',
|
|
150
|
+
contents=[
|
|
151
|
+
'Describe this audio',
|
|
152
|
+
types.Part.from_bytes(data=audio_bytes, mime_type='audio/mp3')
|
|
153
|
+
]
|
|
154
|
+
)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Speech Generation (TTS)
|
|
158
|
+
|
|
159
|
+
### Available Models
|
|
160
|
+
|
|
161
|
+
| Model | Quality | Speed | Cost/1M tokens |
|
|
162
|
+
|-------|---------|-------|----------------|
|
|
163
|
+
| `gemini-2.5-flash-native-audio-preview-09-2025` | High | Fast | $10 |
|
|
164
|
+
| `gemini-2.5-pro` TTS mode | Premium | Slower | $20 |
|
|
165
|
+
|
|
166
|
+
### Basic TTS
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
response = client.models.generate_content(
|
|
170
|
+
model='gemini-2.5-flash-native-audio-preview-09-2025',
|
|
171
|
+
contents='Generate audio: Welcome to today\'s episode.'
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
# Save audio
|
|
175
|
+
with open('output.wav', 'wb') as f:
|
|
176
|
+
f.write(response.audio_data)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Controllable Voice Style
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
# Professional tone
|
|
183
|
+
response = client.models.generate_content(
|
|
184
|
+
model='gemini-2.5-flash-native-audio-preview-09-2025',
|
|
185
|
+
contents='Generate audio in a professional, clear tone: Welcome to our quarterly earnings call.'
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
# Casual and friendly
|
|
189
|
+
response = client.models.generate_content(
|
|
190
|
+
model='gemini-2.5-flash-native-audio-preview-09-2025',
|
|
191
|
+
contents='Generate audio in a friendly, conversational tone: Hey there! Let\'s dive into today\'s topic.'
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
# Narrative style
|
|
195
|
+
response = client.models.generate_content(
|
|
196
|
+
model='gemini-2.5-flash-native-audio-preview-09-2025',
|
|
197
|
+
contents='Generate audio in a narrative, storytelling tone: Once upon a time, in a land far away...'
|
|
198
|
+
)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Voice Control Parameters
|
|
202
|
+
|
|
203
|
+
- **Style**: Professional, casual, narrative, conversational
|
|
204
|
+
- **Pace**: Slow, normal, fast
|
|
205
|
+
- **Tone**: Friendly, serious, enthusiastic
|
|
206
|
+
- **Accent**: Natural language control (e.g., "British accent", "Southern drawl")
|
|
207
|
+
|
|
208
|
+
## Best Practices
|
|
209
|
+
|
|
210
|
+
### File Management
|
|
211
|
+
|
|
212
|
+
1. Use File API for files >20MB
|
|
213
|
+
2. Use File API for repeated queries (saves tokens)
|
|
214
|
+
3. Files auto-delete after 48 hours
|
|
215
|
+
4. Clean up manually when done:
|
|
216
|
+
```python
|
|
217
|
+
client.files.delete(name=myfile.name)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Prompt Engineering
|
|
221
|
+
|
|
222
|
+
**Effective prompts**:
|
|
223
|
+
- "Transcribe from 02:30 to 03:29 in MM:SS format"
|
|
224
|
+
- "Identify speakers and extract dialogue with timestamps"
|
|
225
|
+
- "Summarize key points with relevant timestamps"
|
|
226
|
+
- "Transcribe and analyze sentiment for each speaker"
|
|
227
|
+
|
|
228
|
+
**Context improves accuracy**:
|
|
229
|
+
- "This is a medical interview - use appropriate terminology"
|
|
230
|
+
- "Transcribe this legal deposition with precise terminology"
|
|
231
|
+
- "This is a technical podcast about machine learning"
|
|
232
|
+
|
|
233
|
+
**Combined tasks**:
|
|
234
|
+
- "Transcribe and summarize in bullet points"
|
|
235
|
+
- "Extract key quotes with timestamps and speaker labels"
|
|
236
|
+
- "Transcribe and identify action items with timestamps"
|
|
237
|
+
|
|
238
|
+
### Cost Optimization
|
|
239
|
+
|
|
240
|
+
**Token calculation**:
|
|
241
|
+
- 1 minute audio = 1,920 tokens
|
|
242
|
+
- 1 hour audio = 115,200 tokens
|
|
243
|
+
- 9.5 hours = 1,094,400 tokens
|
|
244
|
+
|
|
245
|
+
**Model selection**:
|
|
246
|
+
- Use `gemini-2.5-flash` ($1/1M tokens) for most tasks
|
|
247
|
+
- Upgrade to `gemini-2.5-pro` ($3/1M tokens) for complex analysis
|
|
248
|
+
- For high-volume: `gemini-1.5-flash` ($0.70/1M tokens)
|
|
249
|
+
|
|
250
|
+
**Reduce costs**:
|
|
251
|
+
- Process only relevant segments using timestamps
|
|
252
|
+
- Use lower-quality audio when possible
|
|
253
|
+
- Batch multiple short files in one request
|
|
254
|
+
- Cache context for repeated queries
|
|
255
|
+
|
|
256
|
+
### Error Handling
|
|
257
|
+
|
|
258
|
+
```python
|
|
259
|
+
import time
|
|
260
|
+
|
|
261
|
+
def transcribe_with_retry(file_path, max_retries=3):
|
|
262
|
+
"""Transcribe audio with exponential backoff retry"""
|
|
263
|
+
for attempt in range(max_retries):
|
|
264
|
+
try:
|
|
265
|
+
myfile = client.files.upload(file=file_path)
|
|
266
|
+
response = client.models.generate_content(
|
|
267
|
+
model='gemini-2.5-flash',
|
|
268
|
+
contents=['Transcribe with timestamps', myfile]
|
|
269
|
+
)
|
|
270
|
+
return response.text
|
|
271
|
+
except Exception as e:
|
|
272
|
+
if attempt == max_retries - 1:
|
|
273
|
+
raise
|
|
274
|
+
wait_time = 2 ** attempt
|
|
275
|
+
print(f"Retry {attempt + 1} after {wait_time}s")
|
|
276
|
+
time.sleep(wait_time)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Common Use Cases
|
|
280
|
+
|
|
281
|
+
### 1. Meeting Transcription
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
response = client.models.generate_content(
|
|
285
|
+
model='gemini-2.5-flash',
|
|
286
|
+
contents=[
|
|
287
|
+
'''Transcribe this meeting with:
|
|
288
|
+
1. Speaker labels
|
|
289
|
+
2. Timestamps for topic changes
|
|
290
|
+
3. Action items highlighted
|
|
291
|
+
''',
|
|
292
|
+
myfile
|
|
293
|
+
]
|
|
294
|
+
)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### 2. Podcast Summary
|
|
298
|
+
|
|
299
|
+
```python
|
|
300
|
+
response = client.models.generate_content(
|
|
301
|
+
model='gemini-2.5-flash',
|
|
302
|
+
contents=[
|
|
303
|
+
'''Create podcast summary with:
|
|
304
|
+
1. Main topics with timestamps
|
|
305
|
+
2. Key quotes from each speaker
|
|
306
|
+
3. Recommended episode highlights
|
|
307
|
+
''',
|
|
308
|
+
myfile
|
|
309
|
+
]
|
|
310
|
+
)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### 3. Interview Analysis
|
|
314
|
+
|
|
315
|
+
```python
|
|
316
|
+
response = client.models.generate_content(
|
|
317
|
+
model='gemini-2.5-flash',
|
|
318
|
+
contents=[
|
|
319
|
+
'''Analyze interview:
|
|
320
|
+
1. Questions asked with timestamps
|
|
321
|
+
2. Key responses from interviewee
|
|
322
|
+
3. Overall sentiment and tone
|
|
323
|
+
''',
|
|
324
|
+
myfile
|
|
325
|
+
]
|
|
326
|
+
)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 4. Content Verification
|
|
330
|
+
|
|
331
|
+
```python
|
|
332
|
+
response = client.models.generate_content(
|
|
333
|
+
model='gemini-2.5-flash',
|
|
334
|
+
contents=[
|
|
335
|
+
'''Verify audio content:
|
|
336
|
+
1. Check for specific keywords or phrases
|
|
337
|
+
2. Identify any compliance issues
|
|
338
|
+
3. Note any concerning statements with timestamps
|
|
339
|
+
''',
|
|
340
|
+
myfile
|
|
341
|
+
]
|
|
342
|
+
)
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### 5. Multilingual Transcription
|
|
346
|
+
|
|
347
|
+
```python
|
|
348
|
+
# Gemini auto-detects language
|
|
349
|
+
response = client.models.generate_content(
|
|
350
|
+
model='gemini-2.5-flash',
|
|
351
|
+
contents=['Transcribe this audio and translate to English if needed.', myfile]
|
|
352
|
+
)
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
## Token Costs
|
|
356
|
+
|
|
357
|
+
**Audio Input** (32 tokens/second):
|
|
358
|
+
- 1 minute = 1,920 tokens
|
|
359
|
+
- 10 minutes = 19,200 tokens
|
|
360
|
+
- 1 hour = 115,200 tokens
|
|
361
|
+
- 9.5 hours = 1,094,400 tokens
|
|
362
|
+
|
|
363
|
+
**Example costs** (Gemini 2.5 Flash at $1/1M):
|
|
364
|
+
- 1 hour audio: 115,200 tokens = $0.12
|
|
365
|
+
- Full day podcast (8 hours): 921,600 tokens = $0.92
|
|
366
|
+
|
|
367
|
+
## Limitations
|
|
368
|
+
|
|
369
|
+
- Maximum 9.5 hours per request
|
|
370
|
+
- Auto-downsampled to 16 Kbps mono (quality loss)
|
|
371
|
+
- Files expire after 48 hours
|
|
372
|
+
- No real-time streaming support
|
|
373
|
+
- Non-speech audio less accurate than speech
|