@trieungoctam/vibekit 1.0.0
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 +85 -0
- package/agents/debugger.md +158 -0
- package/agents/docs-manager.md +220 -0
- package/agents/planner.md +129 -0
- package/agents/researcher.md +58 -0
- package/agents/reviewer.md +152 -0
- package/agents/tester.md +126 -0
- package/bin/vibekit.js +18 -0
- package/hooks/lib/ck-config-utils.cjs +831 -0
- package/hooks/lib/colors.cjs +95 -0
- package/hooks/lib/config-counter.cjs +103 -0
- package/hooks/lib/context-builder.cjs +616 -0
- package/hooks/lib/git-info-cache.cjs +143 -0
- package/hooks/lib/hook-logger.cjs +92 -0
- package/hooks/lib/privacy-checker.cjs +297 -0
- package/hooks/lib/project-detector.cjs +474 -0
- package/hooks/lib/scout-checker.cjs +263 -0
- package/hooks/lib/transcript-parser.cjs +181 -0
- package/hooks/post-edit-simplify-reminder.cjs +156 -0
- package/hooks/privacy-block.cjs +166 -0
- package/hooks/scout-block.cjs +147 -0
- package/hooks/session-init.cjs +360 -0
- package/package.json +41 -0
- package/rules/development-rules.md +52 -0
- package/rules/documentation-management.md +121 -0
- package/rules/orchestration-protocol.md +43 -0
- package/rules/primary-workflow.md +57 -0
- package/rules/team-coordination-rules.md +90 -0
- package/skills/ai/agent-browser/SKILL.md +294 -0
- package/skills/ai/agent-browser/references/.gitkeep +0 -0
- package/skills/ai/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
- package/skills/ai/agent-browser/references/browserbase-cloud-setup.md +161 -0
- package/skills/ai/ai-artist/SKILL.md +122 -0
- package/skills/ai/ai-artist/data/awesome-prompts.csv +3592 -0
- package/skills/ai/ai-artist/data/lighting.csv +19 -0
- package/skills/ai/ai-artist/data/nano-banana-templates.csv +17 -0
- package/skills/ai/ai-artist/data/platforms.csv +11 -0
- package/skills/ai/ai-artist/data/styles.csv +26 -0
- package/skills/ai/ai-artist/data/techniques.csv +19 -0
- package/skills/ai/ai-artist/data/use-cases.csv +16 -0
- package/skills/ai/ai-artist/references/advanced-techniques.md +184 -0
- package/skills/ai/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
- package/skills/ai/ai-artist/references/domain-code.md +66 -0
- package/skills/ai/ai-artist/references/domain-data.md +72 -0
- package/skills/ai/ai-artist/references/domain-marketing.md +66 -0
- package/skills/ai/ai-artist/references/domain-patterns.md +33 -0
- package/skills/ai/ai-artist/references/domain-writing.md +68 -0
- package/skills/ai/ai-artist/references/image-prompting.md +141 -0
- package/skills/ai/ai-artist/references/llm-prompting.md +165 -0
- package/skills/ai/ai-artist/references/nano-banana.md +136 -0
- package/skills/ai/ai-artist/references/reasoning-techniques.md +201 -0
- package/skills/ai/ai-artist/references/validation-workflow.md +117 -0
- package/skills/ai/ai-artist/scripts/core.py +197 -0
- package/skills/ai/ai-artist/scripts/extract_prompts.py +102 -0
- package/skills/ai/ai-artist/scripts/generate.py +370 -0
- package/skills/ai/ai-artist/scripts/search.py +147 -0
- package/skills/ai/ai-multimodal/.env.example +204 -0
- package/skills/ai/ai-multimodal/SKILL.md +110 -0
- package/skills/ai/ai-multimodal/references/audio-processing.md +387 -0
- package/skills/ai/ai-multimodal/references/image-generation.md +939 -0
- package/skills/ai/ai-multimodal/references/music-generation.md +311 -0
- package/skills/ai/ai-multimodal/references/video-analysis.md +515 -0
- package/skills/ai/ai-multimodal/references/video-generation.md +457 -0
- package/skills/ai/ai-multimodal/references/vision-understanding.md +492 -0
- package/skills/ai/ai-multimodal/scripts/.coverage +0 -0
- package/skills/ai/ai-multimodal/scripts/check_setup.py +315 -0
- package/skills/ai/ai-multimodal/scripts/document_converter.py +395 -0
- package/skills/ai/ai-multimodal/scripts/gemini_batch_process.py +1185 -0
- package/skills/ai/ai-multimodal/scripts/media_optimizer.py +506 -0
- package/skills/ai/ai-multimodal/scripts/requirements.txt +26 -0
- package/skills/ai/ai-multimodal/scripts/tests/.coverage +0 -0
- package/skills/ai/ai-multimodal/scripts/tests/requirements.txt +20 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
- package/skills/ai/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
- package/skills/ai/mcp-management/README.md +219 -0
- package/skills/ai/mcp-management/SKILL.md +210 -0
- package/skills/ai/mcp-management/assets/tools.json +3146 -0
- package/skills/ai/mcp-management/references/configuration.md +114 -0
- package/skills/ai/mcp-management/references/gemini-cli-integration.md +221 -0
- package/skills/ai/mcp-management/references/mcp-protocol.md +116 -0
- package/skills/ai/mcp-management/scripts/.env.example +10 -0
- package/skills/ai/mcp-management/scripts/cli.ts +195 -0
- package/skills/ai/mcp-management/scripts/dist/analyze-tools.js +70 -0
- package/skills/ai/mcp-management/scripts/dist/cli.js +160 -0
- package/skills/ai/mcp-management/scripts/dist/mcp-client.js +183 -0
- package/skills/ai/mcp-management/scripts/mcp-client.ts +230 -0
- package/skills/ai/mcp-management/scripts/package.json +20 -0
- package/skills/ai/mcp-management/scripts/tsconfig.json +15 -0
- package/skills/core/brainstorm/SKILL.md +164 -0
- package/skills/core/brainstorm/scripts/frame-template.html +214 -0
- package/skills/core/brainstorm/scripts/helper.js +88 -0
- package/skills/core/brainstorm/scripts/server.cjs +338 -0
- package/skills/core/brainstorm/scripts/start-server.sh +153 -0
- package/skills/core/brainstorm/scripts/stop-server.sh +55 -0
- package/skills/core/brainstorm/spec-document-reviewer-prompt.md +49 -0
- package/skills/core/brainstorm/visual-companion.md +286 -0
- package/skills/core/code-review/SKILL.md +147 -0
- package/skills/core/code-review/references/code-review-reception.md +113 -0
- package/skills/core/code-review/references/codebase-scan-workflow.md +29 -0
- package/skills/core/code-review/references/edge-case-scouting.md +119 -0
- package/skills/core/code-review/references/parallel-review-workflow.md +69 -0
- package/skills/core/code-review/references/requesting-code-review.md +116 -0
- package/skills/core/code-review/references/task-management-reviews.md +140 -0
- package/skills/core/code-review/references/verification-before-completion.md +139 -0
- package/skills/core/cook/README.md +86 -0
- package/skills/core/cook/SKILL.md +113 -0
- package/skills/core/cook/references/intent-detection.md +101 -0
- package/skills/core/cook/references/review-cycle.md +75 -0
- package/skills/core/cook/references/subagent-patterns.md +75 -0
- package/skills/core/cook/references/workflow-steps.md +172 -0
- package/skills/core/debug/SKILL.md +121 -0
- package/skills/core/debug/references/defense-in-depth.md +124 -0
- package/skills/core/debug/references/frontend-verification.md +103 -0
- package/skills/core/debug/references/investigation-methodology.md +101 -0
- package/skills/core/debug/references/log-and-ci-analysis.md +97 -0
- package/skills/core/debug/references/performance-diagnostics.md +113 -0
- package/skills/core/debug/references/reporting-standards.md +122 -0
- package/skills/core/debug/references/root-cause-tracing.md +122 -0
- package/skills/core/debug/references/systematic-debugging.md +102 -0
- package/skills/core/debug/references/task-management-debugging.md +155 -0
- package/skills/core/debug/references/verification.md +123 -0
- package/skills/core/debug/scripts/find-polluter.sh +63 -0
- package/skills/core/debug/scripts/find-polluter.test.md +102 -0
- package/skills/core/execute/SKILL.md +70 -0
- package/skills/core/fix/SKILL.md +111 -0
- package/skills/core/fix/references/complexity-assessment.md +72 -0
- package/skills/core/fix/references/mode-selection.md +46 -0
- package/skills/core/fix/references/parallel-exploration.md +100 -0
- package/skills/core/fix/references/review-cycle.md +77 -0
- package/skills/core/fix/references/skill-activation-matrix.md +78 -0
- package/skills/core/fix/references/task-orchestration.md +103 -0
- package/skills/core/fix/references/workflow-ci.md +28 -0
- package/skills/core/fix/references/workflow-deep.md +122 -0
- package/skills/core/fix/references/workflow-logs.md +72 -0
- package/skills/core/fix/references/workflow-quick.md +59 -0
- package/skills/core/fix/references/workflow-standard.md +111 -0
- package/skills/core/fix/references/workflow-test.md +75 -0
- package/skills/core/fix/references/workflow-types.md +33 -0
- package/skills/core/fix/references/workflow-ui.md +75 -0
- package/skills/core/plan/SKILL.md +145 -0
- package/skills/core/plan/plan-document-reviewer-prompt.md +49 -0
- package/skills/core/subagent-dev/SKILL.md +277 -0
- package/skills/core/subagent-dev/code-quality-reviewer-prompt.md +26 -0
- package/skills/core/subagent-dev/implementer-prompt.md +113 -0
- package/skills/core/subagent-dev/spec-reviewer-prompt.md +61 -0
- package/skills/core/tdd/SKILL.md +371 -0
- package/skills/core/tdd/testing-anti-patterns.md +299 -0
- package/skills/core/test/SKILL.md +109 -0
- package/skills/core/test/references/report-format.md +58 -0
- package/skills/core/test/references/test-execution-workflow.md +103 -0
- package/skills/core/test/references/ui-testing-workflow.md +65 -0
- package/skills/core/verify/SKILL.md +139 -0
- package/skills/dev/backend-dev/SKILL.md +96 -0
- package/skills/dev/backend-dev/references/backend-api-design.md +495 -0
- package/skills/dev/backend-dev/references/backend-architecture.md +454 -0
- package/skills/dev/backend-dev/references/backend-authentication.md +338 -0
- package/skills/dev/backend-dev/references/backend-code-quality.md +659 -0
- package/skills/dev/backend-dev/references/backend-debugging.md +904 -0
- package/skills/dev/backend-dev/references/backend-devops.md +494 -0
- package/skills/dev/backend-dev/references/backend-mindset.md +387 -0
- package/skills/dev/backend-dev/references/backend-performance.md +397 -0
- package/skills/dev/backend-dev/references/backend-security.md +290 -0
- package/skills/dev/backend-dev/references/backend-technologies.md +256 -0
- package/skills/dev/backend-dev/references/backend-testing.md +429 -0
- package/skills/dev/context-engineering/SKILL.md +108 -0
- package/skills/dev/context-engineering/references/context-compression.md +84 -0
- package/skills/dev/context-engineering/references/context-degradation.md +93 -0
- package/skills/dev/context-engineering/references/context-fundamentals.md +75 -0
- package/skills/dev/context-engineering/references/context-optimization.md +82 -0
- package/skills/dev/context-engineering/references/evaluation.md +89 -0
- package/skills/dev/context-engineering/references/memory-systems.md +88 -0
- package/skills/dev/context-engineering/references/multi-agent-patterns.md +90 -0
- package/skills/dev/context-engineering/references/project-development.md +97 -0
- package/skills/dev/context-engineering/references/runtime-awareness.md +202 -0
- package/skills/dev/context-engineering/references/tool-design.md +86 -0
- package/skills/dev/context-engineering/scripts/compression_evaluator.py +349 -0
- package/skills/dev/context-engineering/scripts/context_analyzer.py +317 -0
- package/skills/dev/context-engineering/scripts/tests/test_edge_cases.py +246 -0
- package/skills/dev/databases/SKILL.md +84 -0
- package/skills/dev/databases/analytics.md +198 -0
- package/skills/dev/databases/db-design.md +188 -0
- package/skills/dev/databases/incremental-etl.md +213 -0
- package/skills/dev/databases/references/mongodb-aggregation.md +447 -0
- package/skills/dev/databases/references/mongodb-atlas.md +465 -0
- package/skills/dev/databases/references/mongodb-crud.md +408 -0
- package/skills/dev/databases/references/mongodb-indexing.md +442 -0
- package/skills/dev/databases/references/postgresql-administration.md +594 -0
- package/skills/dev/databases/references/postgresql-performance.md +527 -0
- package/skills/dev/databases/references/postgresql-psql-cli.md +467 -0
- package/skills/dev/databases/references/postgresql-queries.md +475 -0
- package/skills/dev/databases/scripts/.coverage +0 -0
- package/skills/dev/databases/scripts/db_backup.py +502 -0
- package/skills/dev/databases/scripts/db_migrate.py +426 -0
- package/skills/dev/databases/scripts/db_performance_check.py +457 -0
- package/skills/dev/databases/scripts/requirements.txt +20 -0
- package/skills/dev/databases/scripts/tests/coverage-db.json +1 -0
- package/skills/dev/databases/scripts/tests/requirements.txt +4 -0
- package/skills/dev/databases/scripts/tests/test_db_backup.py +340 -0
- package/skills/dev/databases/scripts/tests/test_db_migrate.py +277 -0
- package/skills/dev/databases/scripts/tests/test_db_performance_check.py +370 -0
- package/skills/dev/databases/stacks/bigquery.md +231 -0
- package/skills/dev/databases/stacks/d1_cloudflare.md +137 -0
- package/skills/dev/databases/stacks/mysql.md +216 -0
- package/skills/dev/databases/stacks/postgres.md +235 -0
- package/skills/dev/databases/stacks/sqlite.md +244 -0
- package/skills/dev/databases/transactional.md +176 -0
- package/skills/dev/devops/.env.example +76 -0
- package/skills/dev/devops/SKILL.md +97 -0
- package/skills/dev/devops/references/browser-rendering.md +305 -0
- package/skills/dev/devops/references/cloudflare-d1-kv.md +123 -0
- package/skills/dev/devops/references/cloudflare-platform.md +271 -0
- package/skills/dev/devops/references/cloudflare-r2-storage.md +280 -0
- package/skills/dev/devops/references/cloudflare-workers-advanced.md +312 -0
- package/skills/dev/devops/references/cloudflare-workers-apis.md +309 -0
- package/skills/dev/devops/references/cloudflare-workers-basics.md +418 -0
- package/skills/dev/devops/references/docker-basics.md +297 -0
- package/skills/dev/devops/references/docker-compose.md +292 -0
- package/skills/dev/devops/references/gcloud-platform.md +297 -0
- package/skills/dev/devops/references/gcloud-services.md +304 -0
- package/skills/dev/devops/references/kubernetes-basics.md +99 -0
- package/skills/dev/devops/references/kubernetes-helm-advanced.md +75 -0
- package/skills/dev/devops/references/kubernetes-helm.md +81 -0
- package/skills/dev/devops/references/kubernetes-kubectl.md +74 -0
- package/skills/dev/devops/references/kubernetes-security-advanced.md +98 -0
- package/skills/dev/devops/references/kubernetes-security.md +95 -0
- package/skills/dev/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
- package/skills/dev/devops/references/kubernetes-troubleshooting.md +49 -0
- package/skills/dev/devops/references/kubernetes-workflows-advanced.md +75 -0
- package/skills/dev/devops/references/kubernetes-workflows.md +78 -0
- package/skills/dev/devops/scripts/cloudflare_deploy.py +269 -0
- package/skills/dev/devops/scripts/docker_optimize.py +332 -0
- package/skills/dev/devops/scripts/requirements.txt +20 -0
- package/skills/dev/devops/scripts/tests/requirements.txt +3 -0
- package/skills/dev/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
- package/skills/dev/devops/scripts/tests/test_docker_optimize.py +436 -0
- package/skills/dev/frontend-design/SKILL.md +78 -0
- package/skills/dev/frontend-design/references/ai-multimodal-overview.md +165 -0
- package/skills/dev/frontend-design/references/analysis-best-practices.md +80 -0
- package/skills/dev/frontend-design/references/analysis-prompts.md +141 -0
- package/skills/dev/frontend-design/references/analysis-techniques.md +118 -0
- package/skills/dev/frontend-design/references/animejs.md +396 -0
- package/skills/dev/frontend-design/references/asset-generation.md +337 -0
- package/skills/dev/frontend-design/references/design-extraction-overview.md +71 -0
- package/skills/dev/frontend-design/references/extraction-best-practices.md +141 -0
- package/skills/dev/frontend-design/references/extraction-output-templates.md +162 -0
- package/skills/dev/frontend-design/references/extraction-prompts.md +127 -0
- package/skills/dev/frontend-design/references/technical-accessibility.md +119 -0
- package/skills/dev/frontend-design/references/technical-best-practices.md +97 -0
- package/skills/dev/frontend-design/references/technical-optimization.md +44 -0
- package/skills/dev/frontend-design/references/technical-overview.md +90 -0
- package/skills/dev/frontend-design/references/technical-workflows.md +150 -0
- package/skills/dev/frontend-design/references/visual-analysis-overview.md +95 -0
- package/skills/dev/frontend-design/references/workflow-3d.md +102 -0
- package/skills/dev/frontend-design/references/workflow-describe.md +87 -0
- package/skills/dev/frontend-design/references/workflow-immersive.md +87 -0
- package/skills/dev/frontend-design/references/workflow-quick.md +57 -0
- package/skills/dev/frontend-design/references/workflow-screenshot.md +63 -0
- package/skills/dev/frontend-design/references/workflow-video.md +74 -0
- package/skills/dev/frontend-dev/SKILL.md +400 -0
- package/skills/dev/frontend-dev/resources/common-patterns.md +331 -0
- package/skills/dev/frontend-dev/resources/complete-examples.md +872 -0
- package/skills/dev/frontend-dev/resources/component-patterns.md +502 -0
- package/skills/dev/frontend-dev/resources/data-fetching.md +767 -0
- package/skills/dev/frontend-dev/resources/file-organization.md +502 -0
- package/skills/dev/frontend-dev/resources/loading-and-error-states.md +501 -0
- package/skills/dev/frontend-dev/resources/performance.md +406 -0
- package/skills/dev/frontend-dev/resources/routing-guide.md +364 -0
- package/skills/dev/frontend-dev/resources/styling-guide.md +428 -0
- package/skills/dev/frontend-dev/resources/typescript-standards.md +418 -0
- package/skills/dev/git/SKILL.md +114 -0
- package/skills/dev/git/references/branch-management.md +88 -0
- package/skills/dev/git/references/commit-standards.md +46 -0
- package/skills/dev/git/references/gh-cli-guide.md +109 -0
- package/skills/dev/git/references/safety-protocols.md +69 -0
- package/skills/dev/git/references/workflow-commit.md +58 -0
- package/skills/dev/git/references/workflow-merge.md +48 -0
- package/skills/dev/git/references/workflow-pr.md +58 -0
- package/skills/dev/git/references/workflow-push.md +52 -0
- package/skills/dev/git-worktree/SKILL.md +218 -0
- package/skills/utils/ask/SKILL.md +58 -0
- package/skills/utils/bootstrap/SKILL.md +101 -0
- package/skills/utils/bootstrap/references/shared-phases.md +59 -0
- package/skills/utils/bootstrap/references/workflow-auto.md +52 -0
- package/skills/utils/bootstrap/references/workflow-fast.md +50 -0
- package/skills/utils/bootstrap/references/workflow-full.md +60 -0
- package/skills/utils/bootstrap/references/workflow-parallel.md +59 -0
- package/skills/utils/ck-help/SKILL.md +102 -0
- package/skills/utils/ck-help/scripts/ck-help.py +1321 -0
- package/skills/utils/ck-help/scripts/commands_data.yaml +3 -0
- package/skills/utils/ck-help/scripts/skills_data.yaml +593 -0
- package/skills/utils/copywriting/SKILL.md +94 -0
- package/skills/utils/copywriting/references/copy-formulas.md +150 -0
- package/skills/utils/copywriting/references/cta-patterns.md +168 -0
- package/skills/utils/copywriting/references/email-copy.md +193 -0
- package/skills/utils/copywriting/references/headline-templates.md +140 -0
- package/skills/utils/copywriting/references/landing-page-copy.md +175 -0
- package/skills/utils/copywriting/references/power-words.md +189 -0
- package/skills/utils/copywriting/references/social-media-copy.md +222 -0
- package/skills/utils/copywriting/references/workflow-cro.md +83 -0
- package/skills/utils/copywriting/references/workflow-enhance.md +32 -0
- package/skills/utils/copywriting/references/workflow-fast.md +29 -0
- package/skills/utils/copywriting/references/workflow-good.md +39 -0
- package/skills/utils/copywriting/references/writing-styles.md +247 -0
- package/skills/utils/copywriting/scripts/extract-writing-styles.py +308 -0
- package/skills/utils/copywriting/templates/copy-brief.md +49 -0
- package/skills/utils/docs/SKILL.md +55 -0
- package/skills/utils/docs/references/init-workflow.md +32 -0
- package/skills/utils/docs/references/summarize-workflow.md +18 -0
- package/skills/utils/docs/references/update-workflow.md +59 -0
- package/skills/utils/journal/SKILL.md +11 -0
- package/skills/utils/kanban/SKILL.md +99 -0
- package/skills/utils/preview/SKILL.md +75 -0
- package/skills/utils/preview/references/generation-modes.md +95 -0
- package/skills/utils/preview/references/view-mode.md +42 -0
- package/skills/utils/repomix/SKILL.md +248 -0
- package/skills/utils/repomix/references/configuration.md +211 -0
- package/skills/utils/repomix/references/usage-patterns.md +232 -0
- package/skills/utils/repomix/scripts/.coverage +0 -0
- package/skills/utils/repomix/scripts/README.md +179 -0
- package/skills/utils/repomix/scripts/repomix_batch.py +455 -0
- package/skills/utils/repomix/scripts/repos.example.json +15 -0
- package/skills/utils/repomix/scripts/requirements.txt +15 -0
- package/skills/utils/repomix/scripts/tests/test_repomix_batch.py +531 -0
- package/skills/utils/research/SKILL.md +171 -0
- package/skills/utils/scout/SKILL.md +89 -0
- package/skills/utils/scout/references/external-scouting.md +140 -0
- package/skills/utils/scout/references/internal-scouting.md +119 -0
- package/skills/utils/scout/references/task-management-scouting.md +125 -0
- package/skills/utils/sequential-thinking/.env.example +8 -0
- package/skills/utils/sequential-thinking/README.md +183 -0
- package/skills/utils/sequential-thinking/SKILL.md +95 -0
- package/skills/utils/sequential-thinking/package.json +31 -0
- package/skills/utils/sequential-thinking/references/advanced-strategies.md +79 -0
- package/skills/utils/sequential-thinking/references/advanced-techniques.md +76 -0
- package/skills/utils/sequential-thinking/references/core-patterns.md +95 -0
- package/skills/utils/sequential-thinking/references/examples-api.md +88 -0
- package/skills/utils/sequential-thinking/references/examples-architecture.md +94 -0
- package/skills/utils/sequential-thinking/references/examples-debug.md +90 -0
- package/skills/utils/sequential-thinking/scripts/format-thought.js +159 -0
- package/skills/utils/sequential-thinking/scripts/process-thought.js +236 -0
- package/skills/utils/sequential-thinking/tests/format-thought.test.js +133 -0
- package/skills/utils/sequential-thinking/tests/process-thought.test.js +215 -0
- package/skills/utils/write-skill/SKILL.md +655 -0
- package/skills/utils/write-skill/anthropic-best-practices.md +1150 -0
- package/skills/utils/write-skill/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/utils/write-skill/graphviz-conventions.dot +172 -0
- package/skills/utils/write-skill/persuasion-principles.md +187 -0
- package/skills/utils/write-skill/render-graphs.js +168 -0
- package/skills/utils/write-skill/testing-skills-with-subagents.md +384 -0
- package/src/commands/init.js +238 -0
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
# Vision Understanding Reference
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for image analysis, object detection, and visual understanding using Gemini API.
|
|
4
|
+
|
|
5
|
+
## Core Capabilities
|
|
6
|
+
|
|
7
|
+
- **Captioning**: Generate descriptive text for images
|
|
8
|
+
- **Classification**: Categorize and identify content
|
|
9
|
+
- **Visual Q&A**: Answer questions about images
|
|
10
|
+
- **Object Detection**: Locate objects with bounding boxes (2.0+)
|
|
11
|
+
- **Segmentation**: Create pixel-level masks (2.5+)
|
|
12
|
+
- **Multi-image**: Compare up to 3,600 images
|
|
13
|
+
- **OCR**: Extract text from images
|
|
14
|
+
- **Document Understanding**: Process PDFs with vision
|
|
15
|
+
|
|
16
|
+
## Supported Formats
|
|
17
|
+
|
|
18
|
+
- **Images**: PNG, JPEG, WEBP, HEIC, HEIF
|
|
19
|
+
- **Documents**: PDF (up to 1,000 pages)
|
|
20
|
+
- **Size Limits**:
|
|
21
|
+
- Inline: 20MB max total request
|
|
22
|
+
- File API: 2GB per file
|
|
23
|
+
- Max images: 3,600 per request
|
|
24
|
+
|
|
25
|
+
## Model Selection
|
|
26
|
+
|
|
27
|
+
### Gemini 2.5 Series
|
|
28
|
+
- **gemini-2.5-pro**: Best quality, segmentation + detection
|
|
29
|
+
- **gemini-2.5-flash**: Fast, efficient, all features
|
|
30
|
+
- **gemini-2.5-flash-lite**: Lightweight, all features
|
|
31
|
+
|
|
32
|
+
### Feature Requirements
|
|
33
|
+
- **Segmentation**: Requires 2.5+ models
|
|
34
|
+
- **Object Detection**: Requires 2.0+ models
|
|
35
|
+
- **Multi-image**: All models (up to 3,600 images)
|
|
36
|
+
|
|
37
|
+
## Basic Image Analysis
|
|
38
|
+
|
|
39
|
+
### Image Captioning
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from google import genai
|
|
43
|
+
import os
|
|
44
|
+
|
|
45
|
+
client = genai.Client(api_key=os.getenv('GEMINI_API_KEY'))
|
|
46
|
+
|
|
47
|
+
# Local file
|
|
48
|
+
with open('image.jpg', 'rb') as f:
|
|
49
|
+
img_bytes = f.read()
|
|
50
|
+
|
|
51
|
+
response = client.models.generate_content(
|
|
52
|
+
model='gemini-2.5-flash',
|
|
53
|
+
contents=[
|
|
54
|
+
'Describe this image in detail',
|
|
55
|
+
genai.types.Part.from_bytes(data=img_bytes, mime_type='image/jpeg')
|
|
56
|
+
]
|
|
57
|
+
)
|
|
58
|
+
print(response.text)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Image Classification
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
response = client.models.generate_content(
|
|
65
|
+
model='gemini-2.5-flash',
|
|
66
|
+
contents=[
|
|
67
|
+
'Classify this image. Provide category and confidence level.',
|
|
68
|
+
img_part
|
|
69
|
+
]
|
|
70
|
+
)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Visual Question Answering
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
response = client.models.generate_content(
|
|
77
|
+
model='gemini-2.5-flash',
|
|
78
|
+
contents=[
|
|
79
|
+
'How many people are in this image and what are they doing?',
|
|
80
|
+
img_part
|
|
81
|
+
]
|
|
82
|
+
)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Advanced Features
|
|
86
|
+
|
|
87
|
+
### Object Detection (2.5+)
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
response = client.models.generate_content(
|
|
91
|
+
model='gemini-2.5-flash',
|
|
92
|
+
contents=[
|
|
93
|
+
'Detect all objects in this image and provide bounding boxes',
|
|
94
|
+
img_part
|
|
95
|
+
]
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Returns bounding box coordinates: [ymin, xmin, ymax, xmax]
|
|
99
|
+
# Normalized to [0, 1000] range
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Segmentation (2.5+)
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
response = client.models.generate_content(
|
|
106
|
+
model='gemini-2.5-flash',
|
|
107
|
+
contents=[
|
|
108
|
+
'Create a segmentation mask for all people in this image',
|
|
109
|
+
img_part
|
|
110
|
+
]
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
# Returns pixel-level masks for requested objects
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Multi-Image Comparison
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
import PIL.Image
|
|
120
|
+
|
|
121
|
+
img1 = PIL.Image.open('photo1.jpg')
|
|
122
|
+
img2 = PIL.Image.open('photo2.jpg')
|
|
123
|
+
|
|
124
|
+
response = client.models.generate_content(
|
|
125
|
+
model='gemini-2.5-flash',
|
|
126
|
+
contents=[
|
|
127
|
+
'Compare these two images. What are the differences?',
|
|
128
|
+
img1,
|
|
129
|
+
img2
|
|
130
|
+
]
|
|
131
|
+
)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### OCR and Text Extraction
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
response = client.models.generate_content(
|
|
138
|
+
model='gemini-2.5-flash',
|
|
139
|
+
contents=[
|
|
140
|
+
'Extract all visible text from this image',
|
|
141
|
+
img_part
|
|
142
|
+
]
|
|
143
|
+
)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Input Methods
|
|
147
|
+
|
|
148
|
+
### Inline Data (<20MB)
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
from google.genai import types
|
|
152
|
+
|
|
153
|
+
# From file
|
|
154
|
+
with open('image.jpg', 'rb') as f:
|
|
155
|
+
img_bytes = f.read()
|
|
156
|
+
|
|
157
|
+
response = client.models.generate_content(
|
|
158
|
+
model='gemini-2.5-flash',
|
|
159
|
+
contents=[
|
|
160
|
+
'Analyze this image',
|
|
161
|
+
types.Part.from_bytes(data=img_bytes, mime_type='image/jpeg')
|
|
162
|
+
]
|
|
163
|
+
)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### PIL Image
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
import PIL.Image
|
|
170
|
+
|
|
171
|
+
img = PIL.Image.open('photo.jpg')
|
|
172
|
+
|
|
173
|
+
response = client.models.generate_content(
|
|
174
|
+
model='gemini-2.5-flash',
|
|
175
|
+
contents=['What is in this image?', img]
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### File API (>20MB or Reuse)
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
# Upload once
|
|
183
|
+
myfile = client.files.upload(file='large-image.jpg')
|
|
184
|
+
|
|
185
|
+
# Use multiple times
|
|
186
|
+
response1 = client.models.generate_content(
|
|
187
|
+
model='gemini-2.5-flash',
|
|
188
|
+
contents=['Describe this image', myfile]
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
response2 = client.models.generate_content(
|
|
192
|
+
model='gemini-2.5-flash',
|
|
193
|
+
contents=['What colors dominate this image?', myfile]
|
|
194
|
+
)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### URL (Public Images)
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
response = client.models.generate_content(
|
|
201
|
+
model='gemini-2.5-flash',
|
|
202
|
+
contents=[
|
|
203
|
+
'Analyze this image',
|
|
204
|
+
types.Part.from_uri(
|
|
205
|
+
uri='https://example.com/image.jpg',
|
|
206
|
+
mime_type='image/jpeg'
|
|
207
|
+
)
|
|
208
|
+
]
|
|
209
|
+
)
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Token Calculation
|
|
213
|
+
|
|
214
|
+
Images consume tokens based on size:
|
|
215
|
+
|
|
216
|
+
**Small images** (≤384px both dimensions): 258 tokens
|
|
217
|
+
|
|
218
|
+
**Large images**: Tiled into 768×768 chunks, 258 tokens each
|
|
219
|
+
|
|
220
|
+
**Formula**:
|
|
221
|
+
```
|
|
222
|
+
crop_unit = floor(min(width, height) / 1.5)
|
|
223
|
+
tiles = (width / crop_unit) × (height / crop_unit)
|
|
224
|
+
total_tokens = tiles × 258
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Examples**:
|
|
228
|
+
- 256×256: 258 tokens (small)
|
|
229
|
+
- 512×512: 258 tokens (small)
|
|
230
|
+
- 960×540: 6 tiles = 1,548 tokens
|
|
231
|
+
- 1920×1080: 6 tiles = 1,548 tokens
|
|
232
|
+
- 3840×2160 (4K): 24 tiles = 6,192 tokens
|
|
233
|
+
|
|
234
|
+
## Structured Output
|
|
235
|
+
|
|
236
|
+
### JSON Schema Output
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
from pydantic import BaseModel
|
|
240
|
+
from typing import List
|
|
241
|
+
|
|
242
|
+
class ObjectDetection(BaseModel):
|
|
243
|
+
object_name: str
|
|
244
|
+
confidence: float
|
|
245
|
+
bounding_box: List[int] # [ymin, xmin, ymax, xmax]
|
|
246
|
+
|
|
247
|
+
class ImageAnalysis(BaseModel):
|
|
248
|
+
description: str
|
|
249
|
+
objects: List[ObjectDetection]
|
|
250
|
+
scene_type: str
|
|
251
|
+
|
|
252
|
+
response = client.models.generate_content(
|
|
253
|
+
model='gemini-2.5-flash',
|
|
254
|
+
contents=['Analyze this image', img_part],
|
|
255
|
+
config=genai.types.GenerateContentConfig(
|
|
256
|
+
response_mime_type='application/json',
|
|
257
|
+
response_schema=ImageAnalysis
|
|
258
|
+
)
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
result = ImageAnalysis.model_validate_json(response.text)
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Multi-Image Analysis
|
|
265
|
+
|
|
266
|
+
### Batch Processing
|
|
267
|
+
|
|
268
|
+
```python
|
|
269
|
+
images = [
|
|
270
|
+
PIL.Image.open(f'image{i}.jpg')
|
|
271
|
+
for i in range(10)
|
|
272
|
+
]
|
|
273
|
+
|
|
274
|
+
response = client.models.generate_content(
|
|
275
|
+
model='gemini-2.5-flash',
|
|
276
|
+
contents=['Analyze these images and find common themes'] + images
|
|
277
|
+
)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Image Comparison
|
|
281
|
+
|
|
282
|
+
```python
|
|
283
|
+
before = PIL.Image.open('before.jpg')
|
|
284
|
+
after = PIL.Image.open('after.jpg')
|
|
285
|
+
|
|
286
|
+
response = client.models.generate_content(
|
|
287
|
+
model='gemini-2.5-flash',
|
|
288
|
+
contents=[
|
|
289
|
+
'Compare before and after. List all visible changes.',
|
|
290
|
+
before,
|
|
291
|
+
after
|
|
292
|
+
]
|
|
293
|
+
)
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Visual Search
|
|
297
|
+
|
|
298
|
+
```python
|
|
299
|
+
reference = PIL.Image.open('target.jpg')
|
|
300
|
+
candidates = [PIL.Image.open(f'option{i}.jpg') for i in range(5)]
|
|
301
|
+
|
|
302
|
+
response = client.models.generate_content(
|
|
303
|
+
model='gemini-2.5-flash',
|
|
304
|
+
contents=[
|
|
305
|
+
'Find which candidate images contain objects similar to the reference',
|
|
306
|
+
reference
|
|
307
|
+
] + candidates
|
|
308
|
+
)
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
## Best Practices
|
|
312
|
+
|
|
313
|
+
### Image Quality
|
|
314
|
+
|
|
315
|
+
1. **Resolution**: Use clear, non-blurry images
|
|
316
|
+
2. **Rotation**: Verify correct orientation
|
|
317
|
+
3. **Lighting**: Ensure good contrast and lighting
|
|
318
|
+
4. **Size optimization**: Balance quality vs token cost
|
|
319
|
+
5. **Format**: JPEG for photos, PNG for graphics
|
|
320
|
+
|
|
321
|
+
### Prompt Engineering
|
|
322
|
+
|
|
323
|
+
**Specific instructions**:
|
|
324
|
+
- "Identify all vehicles with their colors and positions"
|
|
325
|
+
- "Count people wearing blue shirts"
|
|
326
|
+
- "Extract text from the sign in the top-left corner"
|
|
327
|
+
|
|
328
|
+
**Output format**:
|
|
329
|
+
- "Return results as JSON with fields: category, count, description"
|
|
330
|
+
- "Format as markdown table"
|
|
331
|
+
- "List findings as numbered items"
|
|
332
|
+
|
|
333
|
+
**Few-shot examples**:
|
|
334
|
+
```python
|
|
335
|
+
response = client.models.generate_content(
|
|
336
|
+
model='gemini-2.5-flash',
|
|
337
|
+
contents=[
|
|
338
|
+
'Example: For an image of a cat on a sofa, respond: "Object: cat, Location: sofa"',
|
|
339
|
+
'Now analyze this image:',
|
|
340
|
+
img_part
|
|
341
|
+
]
|
|
342
|
+
)
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### File Management
|
|
346
|
+
|
|
347
|
+
1. Use File API for images >20MB
|
|
348
|
+
2. Use File API for repeated queries (saves tokens)
|
|
349
|
+
3. Files auto-delete after 48 hours
|
|
350
|
+
4. Clean up manually:
|
|
351
|
+
```python
|
|
352
|
+
client.files.delete(name=myfile.name)
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Cost Optimization
|
|
356
|
+
|
|
357
|
+
**Token-efficient strategies**:
|
|
358
|
+
- Resize large images before upload
|
|
359
|
+
- Use File API for repeated queries
|
|
360
|
+
- Batch multiple images when related
|
|
361
|
+
- Use appropriate model (Flash vs Pro)
|
|
362
|
+
|
|
363
|
+
**Token costs** (Gemini 2.5 Flash at $1/1M):
|
|
364
|
+
- Small image (258 tokens): $0.000258
|
|
365
|
+
- HD image (1,548 tokens): $0.001548
|
|
366
|
+
- 4K image (6,192 tokens): $0.006192
|
|
367
|
+
|
|
368
|
+
## Common Use Cases
|
|
369
|
+
|
|
370
|
+
### 1. Product Analysis
|
|
371
|
+
|
|
372
|
+
```python
|
|
373
|
+
response = client.models.generate_content(
|
|
374
|
+
model='gemini-2.5-flash',
|
|
375
|
+
contents=[
|
|
376
|
+
'''Analyze this product image:
|
|
377
|
+
1. Identify the product
|
|
378
|
+
2. List visible features
|
|
379
|
+
3. Assess condition
|
|
380
|
+
4. Estimate value range
|
|
381
|
+
''',
|
|
382
|
+
img_part
|
|
383
|
+
]
|
|
384
|
+
)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### 2. Screenshot Analysis
|
|
388
|
+
|
|
389
|
+
```python
|
|
390
|
+
response = client.models.generate_content(
|
|
391
|
+
model='gemini-2.5-flash',
|
|
392
|
+
contents=[
|
|
393
|
+
'Extract all text and UI elements from this screenshot',
|
|
394
|
+
img_part
|
|
395
|
+
]
|
|
396
|
+
)
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### 3. Medical Imaging (Informational Only)
|
|
400
|
+
|
|
401
|
+
```python
|
|
402
|
+
response = client.models.generate_content(
|
|
403
|
+
model='gemini-2.5-pro',
|
|
404
|
+
contents=[
|
|
405
|
+
'Describe visible features in this medical image. Note: This is for informational purposes only.',
|
|
406
|
+
img_part
|
|
407
|
+
]
|
|
408
|
+
)
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### 4. Chart/Graph Reading
|
|
412
|
+
|
|
413
|
+
```python
|
|
414
|
+
response = client.models.generate_content(
|
|
415
|
+
model='gemini-2.5-flash',
|
|
416
|
+
contents=[
|
|
417
|
+
'Extract data from this chart and format as JSON',
|
|
418
|
+
img_part
|
|
419
|
+
]
|
|
420
|
+
)
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### 5. Scene Understanding
|
|
424
|
+
|
|
425
|
+
```python
|
|
426
|
+
response = client.models.generate_content(
|
|
427
|
+
model='gemini-2.5-flash',
|
|
428
|
+
contents=[
|
|
429
|
+
'''Analyze this scene:
|
|
430
|
+
1. Location type
|
|
431
|
+
2. Time of day
|
|
432
|
+
3. Weather conditions
|
|
433
|
+
4. Activities happening
|
|
434
|
+
5. Mood/atmosphere
|
|
435
|
+
''',
|
|
436
|
+
img_part
|
|
437
|
+
]
|
|
438
|
+
)
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
## Error Handling
|
|
442
|
+
|
|
443
|
+
```python
|
|
444
|
+
import time
|
|
445
|
+
|
|
446
|
+
def analyze_image_with_retry(image_path, prompt, max_retries=3):
|
|
447
|
+
"""Analyze image with exponential backoff retry"""
|
|
448
|
+
for attempt in range(max_retries):
|
|
449
|
+
try:
|
|
450
|
+
with open(image_path, 'rb') as f:
|
|
451
|
+
img_bytes = f.read()
|
|
452
|
+
|
|
453
|
+
response = client.models.generate_content(
|
|
454
|
+
model='gemini-2.5-flash',
|
|
455
|
+
contents=[
|
|
456
|
+
prompt,
|
|
457
|
+
genai.types.Part.from_bytes(
|
|
458
|
+
data=img_bytes,
|
|
459
|
+
mime_type='image/jpeg'
|
|
460
|
+
)
|
|
461
|
+
]
|
|
462
|
+
)
|
|
463
|
+
return response.text
|
|
464
|
+
except Exception as e:
|
|
465
|
+
if attempt == max_retries - 1:
|
|
466
|
+
raise
|
|
467
|
+
wait_time = 2 ** attempt
|
|
468
|
+
print(f"Retry {attempt + 1} after {wait_time}s: {e}")
|
|
469
|
+
time.sleep(wait_time)
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
## Limitations
|
|
473
|
+
|
|
474
|
+
- Maximum 3,600 images per request
|
|
475
|
+
- OCR accuracy varies with text quality
|
|
476
|
+
- Object detection requires 2.0+ models
|
|
477
|
+
- Segmentation requires 2.5+ models
|
|
478
|
+
- No video frame extraction (use video API)
|
|
479
|
+
- Regional restrictions on child images (EEA, CH, UK)
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## Related References
|
|
484
|
+
|
|
485
|
+
**Current**: Image Understanding
|
|
486
|
+
|
|
487
|
+
**Related Capabilities**:
|
|
488
|
+
- [Image Generation](./image-generation.md) - Create and edit images
|
|
489
|
+
- [Video Analysis](./video-analysis.md) - Analyze video frames
|
|
490
|
+
- [Video Generation](./video-generation.md) - Reference images for video generation
|
|
491
|
+
|
|
492
|
+
**Back to**: [AI Multimodal Skill](../SKILL.md)
|
|
Binary file
|