@caddis/cli 0.1.0 → 0.2.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/README.md +29 -16
- package/bundles/antigravity-plugin-extras/plugin.json +5 -0
- package/bundles/antigravity-plugin-extras/skills/_registry.md +154 -0
- package/bundles/antigravity-plugin-extras/skills/agent-md-refactor/SKILL.md +356 -0
- package/bundles/antigravity-plugin-extras/skills/agent-orchestration/SKILL.md +517 -0
- package/bundles/antigravity-plugin-extras/skills/algorithmic-art/SKILL.md +293 -0
- package/bundles/antigravity-plugin-extras/skills/anchor-review/SKILL.md +135 -0
- package/bundles/antigravity-plugin-extras/skills/api-client-patterns/SKILL.md +367 -0
- package/bundles/antigravity-plugin-extras/skills/architecture-design/SKILL.md +244 -0
- package/bundles/antigravity-plugin-extras/skills/architecture-diagram/SKILL.md +156 -0
- package/bundles/antigravity-plugin-extras/skills/architecture-document/SKILL.md +321 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/SKILL.md +74 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/bundles/antigravity-plugin-extras/skills/ascii-art/SKILL.md +144 -0
- package/bundles/antigravity-plugin-extras/skills/asking-questions/SKILL.md +81 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/SKILL.md +118 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/cross-service/credential-management.md +450 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/browser/README.md +363 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/code-interpreter/README.md +232 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/README.md +100 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deploy-template.sh +117 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deployment-strategies.md +416 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/troubleshooting-guide.md +384 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/validate-deployment.sh +186 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/identity/README.md +186 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/memory/README.md +253 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/observability/README.md +517 -0
- package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/runtime/README.md +215 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/SKILL.md +279 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/references/cdk-patterns.md +431 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/scripts/validate-stack.sh +240 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/SKILL.md +318 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/cloudwatch-alarms.md +567 -0
- package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/operations-patterns.md +394 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/SKILL.md +758 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/deployment-best-practices.md +830 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/eda-patterns.md +1002 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/observability-best-practices.md +770 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/performance-optimization.md +671 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/security-best-practices.md +625 -0
- package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/serverless-patterns.md +838 -0
- package/bundles/antigravity-plugin-extras/skills/backend-to-frontend-handoff/SKILL.md +139 -0
- package/bundles/antigravity-plugin-extras/skills/banner-design/SKILL.md +188 -0
- package/bundles/antigravity-plugin-extras/skills/brand-design/SKILL.md +298 -0
- package/bundles/antigravity-plugin-extras/skills/brand-guidelines/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/brand-guidelines/SKILL.md +118 -0
- package/bundles/antigravity-plugin-extras/skills/brand-voice/SKILL.md +93 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/SKILL.md +392 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/agent-patterns.md +461 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/examples.md +188 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/state-patterns.md +360 -0
- package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/troubleshooting.md +362 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/SKILL.md +266 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/examples.md +115 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +338 -0
- package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +317 -0
- package/bundles/antigravity-plugin-extras/skills/caching-patterns/SKILL.md +385 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/SKILL.md +91 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/changelog-generator/SKILL.md +105 -0
- package/bundles/antigravity-plugin-extras/skills/code-explainer/SKILL.md +91 -0
- package/bundles/antigravity-plugin-extras/skills/competitive-ads-extractor/SKILL.md +294 -0
- package/bundles/antigravity-plugin-extras/skills/component-testing/SKILL.md +310 -0
- package/bundles/antigravity-plugin-extras/skills/content-research-writer/SKILL.md +539 -0
- package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +51 -0
- package/bundles/antigravity-plugin-extras/skills/data-analysis/SKILL.md +111 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/README.md +248 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/SKILL.md +203 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/adapter.py.template +44 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/api-router.py.template +43 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/contract-test.py.template +384 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/display-dto.py.template +39 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-service.ts.template +46 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-types.ts.template +38 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/ingestion-model.py.template +42 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/mapping-doc.md.template +46 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/normalizer.py.template +48 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_requirements.md +36 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_ui_demand.md +35 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/reconcile_mapping.md +66 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/query-catalog.md.template +62 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/consumer-driven-contracts.md +131 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/drift-check-catalog.md +305 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/layer-responsibilities.md +333 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_connections.py +170 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_sources.py +161 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/drift_check.py +171 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py +1363 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_gap_report.py +81 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_mapping_doc.py +294 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/ts_dto_compare.py +214 -0
- package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/validate_lineage.py +51 -0
- package/bundles/antigravity-plugin-extras/skills/data-loader/SKILL.md +753 -0
- package/bundles/antigravity-plugin-extras/skills/data-validation/SKILL.md +220 -0
- package/bundles/antigravity-plugin-extras/skills/db-testing/SKILL.md +117 -0
- package/bundles/antigravity-plugin-extras/skills/deploy-local/SKILL.md +259 -0
- package/bundles/antigravity-plugin-extras/skills/design-md/SKILL.md +167 -0
- package/bundles/antigravity-plugin-extras/skills/design-system-tokens/SKILL.md +240 -0
- package/bundles/antigravity-plugin-extras/skills/design-system-tokens/references/DESIGN-SYSTEM-TEMPLATE.md +577 -0
- package/bundles/antigravity-plugin-extras/skills/developer-growth-analysis/SKILL.md +323 -0
- package/bundles/antigravity-plugin-extras/skills/doc-coauthoring/SKILL.md +378 -0
- package/bundles/antigravity-plugin-extras/skills/documentation-analyzer/SKILL.md +78 -0
- package/bundles/antigravity-plugin-extras/skills/domain-name-brainstormer/SKILL.md +213 -0
- package/bundles/antigravity-plugin-extras/skills/enterprise-dashboard-aesthetic-system/SKILL.md +120 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/SKILL.md +193 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/references/element-types.md +497 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/references/excalidraw-schema.md +356 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/references/reliable-diagrams.md +115 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/README.md +60 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-arrow.py +354 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-icon-to-diagram.py +412 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/split-excalidraw-library.py +183 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/business-flow-swimlane-template.excalidraw +334 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/class-diagram-template.excalidraw +558 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/data-flow-diagram-template.excalidraw +279 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/er-diagram-template.excalidraw +662 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/flowchart-template.excalidraw +179 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/mindmap-template.excalidraw +244 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/relationship-template.excalidraw +145 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/reliable-flowchart.excalidraw +1 -0
- package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/sequence-diagram-template.excalidraw +509 -0
- package/bundles/antigravity-plugin-extras/skills/file-organizer/SKILL.md +434 -0
- package/bundles/antigravity-plugin-extras/skills/game-changing-features/README.md +221 -0
- package/bundles/antigravity-plugin-extras/skills/game-changing-features/SKILL.md +265 -0
- package/bundles/antigravity-plugin-extras/skills/github-issues/SKILL.md +359 -0
- package/bundles/antigravity-plugin-extras/skills/github-issues/references/templates.md +90 -0
- package/bundles/antigravity-plugin-extras/skills/golden-nuggets/SKILL.md +192 -0
- package/bundles/antigravity-plugin-extras/skills/humanizer/SKILL.md +194 -0
- package/bundles/antigravity-plugin-extras/skills/image-enhancer/SKILL.md +100 -0
- package/bundles/antigravity-plugin-extras/skills/intent-writer/SKILL.md +201 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/SKILL.md +124 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/3p-updates.md +47 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/faq-answers.md +30 -0
- package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/general-comms.md +16 -0
- package/bundles/antigravity-plugin-extras/skills/invoice-organizer/SKILL.md +447 -0
- package/bundles/antigravity-plugin-extras/skills/jira-issues/SKILL.md +182 -0
- package/bundles/antigravity-plugin-extras/skills/job-application/SKILL.md +188 -0
- package/bundles/antigravity-plugin-extras/skills/lead-research-assistant/SKILL.md +200 -0
- package/bundles/antigravity-plugin-extras/skills/llm-application-dev/SKILL.md +217 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/SKILL.md +100 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/evaluation.md +602 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/mcp_best_practices.md +915 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/node_mcp_server.md +916 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/python_mcp_server.md +752 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/connections.py +151 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/bundles/antigravity-plugin-extras/skills/meeting-insights-analyzer/SKILL.md +328 -0
- package/bundles/antigravity-plugin-extras/skills/monorepo/SKILL.md +267 -0
- package/bundles/antigravity-plugin-extras/skills/naming-analyzer/SKILL.md +376 -0
- package/bundles/antigravity-plugin-extras/skills/nextjs-app-router/SKILL.md +271 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/AUTHENTICATION.md +154 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/SKILL.md +270 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/references/api_reference.md +309 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/references/troubleshooting.md +376 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/references/usage_patterns.md +338 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/__init__.py +81 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/ask_question.py +256 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/auth_manager.py +358 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_session.py +255 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_utils.py +107 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/cleanup_manager.py +302 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/config.py +44 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/notebook_manager.py +410 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/run.py +102 -0
- package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/setup_environment.py +204 -0
- package/bundles/antigravity-plugin-extras/skills/observability/SKILL.md +371 -0
- package/bundles/antigravity-plugin-extras/skills/onboard-project/SKILL.md +192 -0
- package/bundles/antigravity-plugin-extras/skills/performance-testing/SKILL.md +226 -0
- package/bundles/antigravity-plugin-extras/skills/pipeline-state/SKILL.md +208 -0
- package/bundles/antigravity-plugin-extras/skills/plantuml/SKILL.md +228 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/SKILL.md +142 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/linear.app.md +196 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/stripe.md +214 -0
- package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/vercel.md +218 -0
- package/bundles/antigravity-plugin-extras/skills/prd-to-code/SKILL.md +127 -0
- package/bundles/antigravity-plugin-extras/skills/raffle-winner-picker/SKILL.md +159 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/README.md +320 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/SKILL.md +53 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/alternatives.md +258 -0
- package/bundles/antigravity-plugin-extras/skills/react-useeffect/anti-patterns.md +290 -0
- package/bundles/antigravity-plugin-extras/skills/receiving-code-review/SKILL.md +213 -0
- package/bundles/antigravity-plugin-extras/skills/relay/SKILL.md +246 -0
- package/bundles/antigravity-plugin-extras/skills/requesting-code-review/SKILL.md +105 -0
- package/bundles/antigravity-plugin-extras/skills/requesting-code-review/code-reviewer.md +146 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/SKILL.md +350 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/pwa-checklist.md +226 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/touch-and-interaction.md +265 -0
- package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/transformation-catalogue.md +326 -0
- package/bundles/antigravity-plugin-extras/skills/schema-migration/SKILL.md +275 -0
- package/bundles/antigravity-plugin-extras/skills/setup-project-ai/SKILL.md +120 -0
- package/bundles/antigravity-plugin-extras/skills/shadcn-radix/SKILL.md +330 -0
- package/bundles/antigravity-plugin-extras/skills/sketch/SKILL.md +104 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/SKILL.md +646 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/easing.py +230 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/typography.py +357 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/validators.py +264 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/requirements.txt +4 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/explode.py +331 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/fade.py +329 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/flip.py +291 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/morph.py +329 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/move.py +293 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/shake.py +127 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/slide.py +291 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/spin.py +269 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/bundles/antigravity-plugin-extras/skills/slides/SKILL.md +38 -0
- package/bundles/antigravity-plugin-extras/skills/state-tracking/SKILL.md +131 -0
- package/bundles/antigravity-plugin-extras/skills/streamlit-dev/SKILL.md +268 -0
- package/bundles/antigravity-plugin-extras/skills/svg-create/SKILL.md +251 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/SKILL.md +59 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/theme-showcase.pdf +0 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/desert-rose.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/golden-hour.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/SKILL.md +320 -0
- package/bundles/antigravity-plugin-extras/skills/ui-testing/SKILL.md +660 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/SKILL.md +660 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/_sync_all.py +414 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/app-interface.csv +31 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/charts.csv +26 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/colors.csv +162 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/design.csv +1776 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/draft.csv +1779 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/google-fonts.csv +1924 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/icons.csv +106 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/landing.csv +35 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/products.csv +162 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/react-performance.csv +45 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/styles.csv +85 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/typography.csv +74 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ui-reasoning.csv +162 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ux-guidelines.csv +100 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/core.py +247 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/design_system.py +1067 -0
- package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/search.py +114 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/SKILL.md +140 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/references/commands.md +252 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/references/graph-schema.md +116 -0
- package/bundles/antigravity-plugin-extras/skills/understand-anything/references/pipeline.md +331 -0
- package/bundles/antigravity-plugin-extras/skills/update-readme/SKILL.md +74 -0
- package/bundles/antigravity-plugin-extras/skills/verification-loop/SKILL.md +209 -0
- package/bundles/antigravity-plugin-extras/skills/video-downloader/SKILL.md +107 -0
- package/bundles/antigravity-plugin-extras/skills/webapp-development/SKILL.md +288 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/SKILL.md +339 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/agents/agent-interface.md +175 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/html.md +384 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/nlp-keywords.md +127 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/palettes.md +149 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/python.md +249 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/react.md +427 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/shapes.md +135 -0
- package/bundles/antigravity-plugin-extras/skills/word-cloud/references/stopwords.md +115 -0
- package/bundles/antigravity-plugin-extras/skills/youtube-transcript/SKILL.md +416 -0
- package/bundles/manifest.json +2 -1
- package/dist/cli.js +166 -37
- package/package.json +1 -1
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Zoom Animation - Scale objects dramatically for emphasis.
|
|
4
|
+
|
|
5
|
+
Creates zoom in, zoom out, and dramatic scaling effects.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
import math
|
|
11
|
+
|
|
12
|
+
sys.path.append(str(Path(__file__).parent.parent))
|
|
13
|
+
|
|
14
|
+
from PIL import Image, ImageFilter
|
|
15
|
+
from core.gif_builder import GIFBuilder
|
|
16
|
+
from core.frame_composer import create_blank_frame, draw_emoji_enhanced
|
|
17
|
+
from core.easing import interpolate
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def create_zoom_animation(
|
|
21
|
+
object_type: str = 'emoji',
|
|
22
|
+
object_data: dict | None = None,
|
|
23
|
+
num_frames: int = 30,
|
|
24
|
+
zoom_type: str = 'in', # 'in', 'out', 'in_out', 'punch'
|
|
25
|
+
scale_range: tuple[float, float] = (0.1, 2.0),
|
|
26
|
+
easing: str = 'ease_out',
|
|
27
|
+
add_motion_blur: bool = False,
|
|
28
|
+
center_pos: tuple[int, int] = (240, 240),
|
|
29
|
+
frame_width: int = 480,
|
|
30
|
+
frame_height: int = 480,
|
|
31
|
+
bg_color: tuple[int, int, int] = (255, 255, 255)
|
|
32
|
+
) -> list[Image.Image]:
|
|
33
|
+
"""
|
|
34
|
+
Create zoom animation.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
object_type: 'emoji', 'text', 'image'
|
|
38
|
+
object_data: Object configuration
|
|
39
|
+
num_frames: Number of frames
|
|
40
|
+
zoom_type: Type of zoom effect
|
|
41
|
+
scale_range: (start_scale, end_scale) tuple
|
|
42
|
+
easing: Easing function
|
|
43
|
+
add_motion_blur: Add blur for speed effect
|
|
44
|
+
center_pos: Center position
|
|
45
|
+
frame_width: Frame width
|
|
46
|
+
frame_height: Frame height
|
|
47
|
+
bg_color: Background color
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
List of frames
|
|
51
|
+
"""
|
|
52
|
+
frames = []
|
|
53
|
+
|
|
54
|
+
# Default object data
|
|
55
|
+
if object_data is None:
|
|
56
|
+
if object_type == 'emoji':
|
|
57
|
+
object_data = {'emoji': '🔍', 'size': 100}
|
|
58
|
+
|
|
59
|
+
base_size = object_data.get('size', 100) if object_type == 'emoji' else object_data.get('font_size', 60)
|
|
60
|
+
start_scale, end_scale = scale_range
|
|
61
|
+
|
|
62
|
+
for i in range(num_frames):
|
|
63
|
+
t = i / (num_frames - 1) if num_frames > 1 else 0
|
|
64
|
+
|
|
65
|
+
# Calculate scale based on zoom type
|
|
66
|
+
if zoom_type == 'in':
|
|
67
|
+
scale = interpolate(start_scale, end_scale, t, easing)
|
|
68
|
+
elif zoom_type == 'out':
|
|
69
|
+
scale = interpolate(end_scale, start_scale, t, easing)
|
|
70
|
+
elif zoom_type == 'in_out':
|
|
71
|
+
if t < 0.5:
|
|
72
|
+
scale = interpolate(start_scale, end_scale, t * 2, easing)
|
|
73
|
+
else:
|
|
74
|
+
scale = interpolate(end_scale, start_scale, (t - 0.5) * 2, easing)
|
|
75
|
+
elif zoom_type == 'punch':
|
|
76
|
+
# Quick zoom in with overshoot then settle
|
|
77
|
+
if t < 0.3:
|
|
78
|
+
scale = interpolate(start_scale, end_scale * 1.2, t / 0.3, 'ease_out')
|
|
79
|
+
else:
|
|
80
|
+
scale = interpolate(end_scale * 1.2, end_scale, (t - 0.3) / 0.7, 'elastic_out')
|
|
81
|
+
else:
|
|
82
|
+
scale = interpolate(start_scale, end_scale, t, easing)
|
|
83
|
+
|
|
84
|
+
# Create frame
|
|
85
|
+
frame = create_blank_frame(frame_width, frame_height, bg_color)
|
|
86
|
+
|
|
87
|
+
if object_type == 'emoji':
|
|
88
|
+
current_size = int(base_size * scale)
|
|
89
|
+
|
|
90
|
+
# Clamp size to reasonable bounds
|
|
91
|
+
current_size = max(12, min(current_size, frame_width * 2))
|
|
92
|
+
|
|
93
|
+
# Create emoji on transparent background
|
|
94
|
+
canvas_size = max(frame_width, frame_height, current_size) * 2
|
|
95
|
+
emoji_canvas = Image.new('RGBA', (canvas_size, canvas_size), (0, 0, 0, 0))
|
|
96
|
+
|
|
97
|
+
draw_emoji_enhanced(
|
|
98
|
+
emoji_canvas,
|
|
99
|
+
emoji=object_data['emoji'],
|
|
100
|
+
position=(canvas_size // 2 - current_size // 2, canvas_size // 2 - current_size // 2),
|
|
101
|
+
size=current_size,
|
|
102
|
+
shadow=False
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
# Optional motion blur for fast zooms
|
|
106
|
+
if add_motion_blur and abs(scale - 1.0) > 0.5:
|
|
107
|
+
blur_amount = min(5, int(abs(scale - 1.0) * 3))
|
|
108
|
+
emoji_canvas = emoji_canvas.filter(ImageFilter.GaussianBlur(blur_amount))
|
|
109
|
+
|
|
110
|
+
# Crop to frame size centered
|
|
111
|
+
left = (canvas_size - frame_width) // 2
|
|
112
|
+
top = (canvas_size - frame_height) // 2
|
|
113
|
+
emoji_cropped = emoji_canvas.crop((left, top, left + frame_width, top + frame_height))
|
|
114
|
+
|
|
115
|
+
# Composite
|
|
116
|
+
frame_rgba = frame.convert('RGBA')
|
|
117
|
+
frame = Image.alpha_composite(frame_rgba, emoji_cropped)
|
|
118
|
+
frame = frame.convert('RGB')
|
|
119
|
+
|
|
120
|
+
elif object_type == 'text':
|
|
121
|
+
from core.typography import draw_text_with_outline
|
|
122
|
+
|
|
123
|
+
current_size = int(base_size * scale)
|
|
124
|
+
current_size = max(10, min(current_size, 500))
|
|
125
|
+
|
|
126
|
+
# Create oversized canvas for large text
|
|
127
|
+
canvas_size = max(frame_width, frame_height, current_size * 10)
|
|
128
|
+
text_canvas = Image.new('RGB', (canvas_size, canvas_size), bg_color)
|
|
129
|
+
|
|
130
|
+
draw_text_with_outline(
|
|
131
|
+
text_canvas,
|
|
132
|
+
text=object_data.get('text', 'ZOOM'),
|
|
133
|
+
position=(canvas_size // 2, canvas_size // 2),
|
|
134
|
+
font_size=current_size,
|
|
135
|
+
text_color=object_data.get('text_color', (0, 0, 0)),
|
|
136
|
+
outline_color=object_data.get('outline_color', (255, 255, 255)),
|
|
137
|
+
outline_width=max(2, int(current_size * 0.05)),
|
|
138
|
+
centered=True
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
# Crop to frame
|
|
142
|
+
left = (canvas_size - frame_width) // 2
|
|
143
|
+
top = (canvas_size - frame_height) // 2
|
|
144
|
+
frame = text_canvas.crop((left, top, left + frame_width, top + frame_height))
|
|
145
|
+
|
|
146
|
+
frames.append(frame)
|
|
147
|
+
|
|
148
|
+
return frames
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def create_explosion_zoom(
|
|
152
|
+
emoji: str = '💥',
|
|
153
|
+
num_frames: int = 20,
|
|
154
|
+
frame_width: int = 480,
|
|
155
|
+
frame_height: int = 480,
|
|
156
|
+
bg_color: tuple[int, int, int] = (255, 255, 255)
|
|
157
|
+
) -> list[Image.Image]:
|
|
158
|
+
"""
|
|
159
|
+
Create dramatic explosion zoom effect.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
emoji: Emoji to explode
|
|
163
|
+
num_frames: Number of frames
|
|
164
|
+
frame_width: Frame width
|
|
165
|
+
frame_height: Frame height
|
|
166
|
+
bg_color: Background color
|
|
167
|
+
|
|
168
|
+
Returns:
|
|
169
|
+
List of frames
|
|
170
|
+
"""
|
|
171
|
+
frames = []
|
|
172
|
+
|
|
173
|
+
for i in range(num_frames):
|
|
174
|
+
t = i / (num_frames - 1) if num_frames > 1 else 0
|
|
175
|
+
|
|
176
|
+
# Exponential zoom
|
|
177
|
+
scale = 0.1 * math.exp(t * 5)
|
|
178
|
+
|
|
179
|
+
# Add rotation for drama
|
|
180
|
+
angle = t * 360 * 2
|
|
181
|
+
|
|
182
|
+
frame = create_blank_frame(frame_width, frame_height, bg_color)
|
|
183
|
+
|
|
184
|
+
current_size = int(100 * scale)
|
|
185
|
+
current_size = max(12, min(current_size, frame_width * 3))
|
|
186
|
+
|
|
187
|
+
# Create emoji
|
|
188
|
+
canvas_size = max(frame_width, frame_height, current_size) * 2
|
|
189
|
+
emoji_canvas = Image.new('RGBA', (canvas_size, canvas_size), (0, 0, 0, 0))
|
|
190
|
+
|
|
191
|
+
draw_emoji_enhanced(
|
|
192
|
+
emoji_canvas,
|
|
193
|
+
emoji=emoji,
|
|
194
|
+
position=(canvas_size // 2 - current_size // 2, canvas_size // 2 - current_size // 2),
|
|
195
|
+
size=current_size,
|
|
196
|
+
shadow=False
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
# Rotate
|
|
200
|
+
emoji_canvas = emoji_canvas.rotate(angle, center=(canvas_size // 2, canvas_size // 2), resample=Image.BICUBIC)
|
|
201
|
+
|
|
202
|
+
# Add motion blur for later frames
|
|
203
|
+
if t > 0.5:
|
|
204
|
+
blur_amount = int((t - 0.5) * 10)
|
|
205
|
+
emoji_canvas = emoji_canvas.filter(ImageFilter.GaussianBlur(blur_amount))
|
|
206
|
+
|
|
207
|
+
# Crop and composite
|
|
208
|
+
left = (canvas_size - frame_width) // 2
|
|
209
|
+
top = (canvas_size - frame_height) // 2
|
|
210
|
+
emoji_cropped = emoji_canvas.crop((left, top, left + frame_width, top + frame_height))
|
|
211
|
+
|
|
212
|
+
frame_rgba = frame.convert('RGBA')
|
|
213
|
+
frame = Image.alpha_composite(frame_rgba, emoji_cropped)
|
|
214
|
+
frame = frame.convert('RGB')
|
|
215
|
+
|
|
216
|
+
frames.append(frame)
|
|
217
|
+
|
|
218
|
+
return frames
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def create_mind_blown_zoom(
|
|
222
|
+
emoji: str = '🤯',
|
|
223
|
+
num_frames: int = 30,
|
|
224
|
+
frame_width: int = 480,
|
|
225
|
+
frame_height: int = 480,
|
|
226
|
+
bg_color: tuple[int, int, int] = (255, 255, 255)
|
|
227
|
+
) -> list[Image.Image]:
|
|
228
|
+
"""
|
|
229
|
+
Create "mind blown" dramatic zoom with shake.
|
|
230
|
+
|
|
231
|
+
Args:
|
|
232
|
+
emoji: Emoji to use
|
|
233
|
+
num_frames: Number of frames
|
|
234
|
+
frame_width: Frame width
|
|
235
|
+
frame_height: Frame height
|
|
236
|
+
bg_color: Background color
|
|
237
|
+
|
|
238
|
+
Returns:
|
|
239
|
+
List of frames
|
|
240
|
+
"""
|
|
241
|
+
frames = []
|
|
242
|
+
|
|
243
|
+
for i in range(num_frames):
|
|
244
|
+
t = i / (num_frames - 1) if num_frames > 1 else 0
|
|
245
|
+
|
|
246
|
+
# Zoom in then shake
|
|
247
|
+
if t < 0.5:
|
|
248
|
+
scale = interpolate(0.3, 1.2, t * 2, 'ease_out')
|
|
249
|
+
shake_x = 0
|
|
250
|
+
shake_y = 0
|
|
251
|
+
else:
|
|
252
|
+
scale = 1.2
|
|
253
|
+
# Shake intensifies
|
|
254
|
+
shake_intensity = (t - 0.5) * 40
|
|
255
|
+
shake_x = int(math.sin(t * 50) * shake_intensity)
|
|
256
|
+
shake_y = int(math.cos(t * 45) * shake_intensity)
|
|
257
|
+
|
|
258
|
+
frame = create_blank_frame(frame_width, frame_height, bg_color)
|
|
259
|
+
|
|
260
|
+
current_size = int(100 * scale)
|
|
261
|
+
center_x = frame_width // 2 + shake_x
|
|
262
|
+
center_y = frame_height // 2 + shake_y
|
|
263
|
+
|
|
264
|
+
emoji_canvas = Image.new('RGBA', (frame_width, frame_height), (0, 0, 0, 0))
|
|
265
|
+
draw_emoji_enhanced(
|
|
266
|
+
emoji_canvas,
|
|
267
|
+
emoji=emoji,
|
|
268
|
+
position=(center_x - current_size // 2, center_y - current_size // 2),
|
|
269
|
+
size=current_size,
|
|
270
|
+
shadow=False
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
frame_rgba = frame.convert('RGBA')
|
|
274
|
+
frame = Image.alpha_composite(frame_rgba, emoji_canvas)
|
|
275
|
+
frame = frame.convert('RGB')
|
|
276
|
+
|
|
277
|
+
frames.append(frame)
|
|
278
|
+
|
|
279
|
+
return frames
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
# Example usage
|
|
283
|
+
if __name__ == '__main__':
|
|
284
|
+
print("Creating zoom animations...")
|
|
285
|
+
|
|
286
|
+
builder = GIFBuilder(width=480, height=480, fps=20)
|
|
287
|
+
|
|
288
|
+
# Example 1: Zoom in
|
|
289
|
+
frames = create_zoom_animation(
|
|
290
|
+
object_type='emoji',
|
|
291
|
+
object_data={'emoji': '🔍', 'size': 100},
|
|
292
|
+
num_frames=30,
|
|
293
|
+
zoom_type='in',
|
|
294
|
+
scale_range=(0.1, 1.5),
|
|
295
|
+
easing='ease_out'
|
|
296
|
+
)
|
|
297
|
+
builder.add_frames(frames)
|
|
298
|
+
builder.save('zoom_in.gif', num_colors=128)
|
|
299
|
+
|
|
300
|
+
# Example 2: Explosion zoom
|
|
301
|
+
builder.clear()
|
|
302
|
+
frames = create_explosion_zoom(emoji='💥', num_frames=20)
|
|
303
|
+
builder.add_frames(frames)
|
|
304
|
+
builder.save('zoom_explosion.gif', num_colors=128)
|
|
305
|
+
|
|
306
|
+
# Example 3: Mind blown
|
|
307
|
+
builder.clear()
|
|
308
|
+
frames = create_mind_blown_zoom(emoji='🤯', num_frames=30)
|
|
309
|
+
builder.add_frames(frames)
|
|
310
|
+
builder.save('zoom_mind_blown.gif', num_colors=128)
|
|
311
|
+
|
|
312
|
+
print("Created zoom animations!")
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slides
|
|
3
|
+
description: Create strategic HTML presentations with Chart.js, design tokens, responsive layouts, copywriting formulas, and contextual slide strategies.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Slides
|
|
7
|
+
|
|
8
|
+
Strategic HTML presentation design with data visualization.
|
|
9
|
+
|
|
10
|
+
<args>$ARGUMENTS</args>
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Marketing presentations and pitch decks
|
|
15
|
+
- Data-driven slides with Chart.js
|
|
16
|
+
- Strategic slide design with layout patterns
|
|
17
|
+
- Copywriting-optimized presentation content
|
|
18
|
+
|
|
19
|
+
## Subcommands
|
|
20
|
+
|
|
21
|
+
| Subcommand | Description | Reference |
|
|
22
|
+
|------------|-------------|-----------|
|
|
23
|
+
| `create` | Create strategic presentation slides | `references/create.md` |
|
|
24
|
+
|
|
25
|
+
## References (Knowledge Base)
|
|
26
|
+
|
|
27
|
+
| Topic | File |
|
|
28
|
+
|-------|------|
|
|
29
|
+
| Layout Patterns | `references/layout-patterns.md` |
|
|
30
|
+
| HTML Template | `references/html-template.md` |
|
|
31
|
+
| Copywriting Formulas | `references/copywriting-formulas.md` |
|
|
32
|
+
| Slide Strategies | `references/slide-strategies.md` |
|
|
33
|
+
|
|
34
|
+
## Routing
|
|
35
|
+
|
|
36
|
+
1. Parse subcommand from `$ARGUMENTS` (first word)
|
|
37
|
+
2. Load corresponding `references/{subcommand}.md`
|
|
38
|
+
3. Execute with remaining arguments
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: state-tracking
|
|
3
|
+
context: fork
|
|
4
|
+
description: "USE THIS SKILL when an agent needs to maintain a living record of task progress across multiple sessions or hand-offs. Covers append-only audit logs, CURRENT_STATE head-of-line pattern, relay hand-off protocol, and recovery from mid-session interruptions. Works in both generic and junai-pipeline modes."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# State Tracking Skill
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
Load this skill when you are:
|
|
12
|
+
|
|
13
|
+
- Running a multi-session implementation where work spans more than one chat context
|
|
14
|
+
- Handing off to another agent mid-plan and need to capture exactly where you stopped
|
|
15
|
+
- Working on a long task where context compaction may occur
|
|
16
|
+
- Recovering from an interrupted session and need to reconstruct current state
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## The Two-Document Pattern
|
|
21
|
+
|
|
22
|
+
State tracking uses two distinct documents with different write semantics:
|
|
23
|
+
|
|
24
|
+
| Document | Write mode | Purpose |
|
|
25
|
+
|----------|-----------|---------|
|
|
26
|
+
| **Plan Tracker** (`.github/plans/tracker/<slug>-tracker.md`) | Overwrite each row | Per-phase completion record, linked to commits |
|
|
27
|
+
| **CURRENT_STATE** (`.github/agent-docs/CURRENT_STATE.md`) | Overwrite head section | Single-view of right now: what phase, what's done, what's blocked |
|
|
28
|
+
| **Session Log** (inline in CURRENT_STATE, append-only) | Append only | Chronological audit trail — never rewrite past entries |
|
|
29
|
+
|
|
30
|
+
Never mix them: the tracker is the long-term ledger; CURRENT_STATE is the working note.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## CURRENT_STATE.md — Head-of-Line Pattern
|
|
35
|
+
|
|
36
|
+
The CURRENT_STATE document has two sections:
|
|
37
|
+
|
|
38
|
+
### Section 1: Current Status (overwrite on every update)
|
|
39
|
+
|
|
40
|
+
Replace this section wholesale each time:
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
## Current Status
|
|
44
|
+
|
|
45
|
+
**Plan:** `.github/plans/<feature-slug>.md`
|
|
46
|
+
**Tracker:** `.github/plans/tracker/<feature-slug>-tracker.md`
|
|
47
|
+
**Last updated:** YYYY-MM-DDTHH:MM:SSZ
|
|
48
|
+
**Active agent:** @[Agent] (model: [Model])
|
|
49
|
+
**Current phase:** Phase N — [Name]
|
|
50
|
+
**Phase status:** [Not started | In progress | Blocked | Complete]
|
|
51
|
+
|
|
52
|
+
### What is done
|
|
53
|
+
- Phase 1 ([Name]): complete — commit `abc1234`
|
|
54
|
+
- Phase 2 ([Name]): complete — commit `def5678`
|
|
55
|
+
|
|
56
|
+
### What is in progress
|
|
57
|
+
- Phase 3 ([Name]): step 2 of 5 — [short note on current step]
|
|
58
|
+
|
|
59
|
+
### What is blocked
|
|
60
|
+
- [blocker description, or "nothing"]
|
|
61
|
+
|
|
62
|
+
### Next action
|
|
63
|
+
[One sentence: exactly what the next agent session should start with]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Section 2: Session Log (append-only)
|
|
67
|
+
|
|
68
|
+
Append one entry per session, never edit past entries:
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
## Session Log
|
|
72
|
+
|
|
73
|
+
### [YYYY-MM-DDTHH:MM:SSZ] — @[Agent] (model: [Model])
|
|
74
|
+
**Phase covered:** Phase N [partial | complete]
|
|
75
|
+
**Commits:** `abc1234` (phase(3): [Name] complete)
|
|
76
|
+
**Stopped at:** [exact description of stopping point]
|
|
77
|
+
**Handoff note:** [any context the next agent needs]
|
|
78
|
+
---
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Relay Hand-off Protocol
|
|
84
|
+
|
|
85
|
+
When you are about to end a session mid-plan:
|
|
86
|
+
|
|
87
|
+
1. **Complete the current atomic unit** — do not stop at a half-edited file. Reach the next clean commit point.
|
|
88
|
+
2. **Update CURRENT_STATE.md:**
|
|
89
|
+
- Rewrite the "Current Status" section with the exact stopping point.
|
|
90
|
+
- Append a new entry to the Session Log.
|
|
91
|
+
3. **Update the plan tracker** — mark your current phase's row with `In Progress` if incomplete, or `Complete` if you just finished it.
|
|
92
|
+
4. **Commit both files** with the current phase commit or as a separate `chore(state): update CURRENT_STATE` commit.
|
|
93
|
+
5. **State the hand-off note** in the session log and in your final reply — the next agent must be able to read CURRENT_STATE.md and know exactly where to start.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Recovery Protocol
|
|
98
|
+
|
|
99
|
+
When starting a session on a plan that has a CURRENT_STATE.md:
|
|
100
|
+
|
|
101
|
+
1. Read `.github/agent-docs/CURRENT_STATE.md` — Current Status section first.
|
|
102
|
+
2. Read the last entry in the Session Log to understand what the previous session did.
|
|
103
|
+
3. Read the plan tracker row for the current phase.
|
|
104
|
+
4. Confirm the stated commit exists: `git show <commit> --stat`.
|
|
105
|
+
5. Start from **"Next action"** in the Current Status section.
|
|
106
|
+
6. Do NOT re-run phases that are marked Complete in the tracker unless the user explicitly asks you to.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Template: CURRENT_STATE.md
|
|
111
|
+
|
|
112
|
+
The canonical template is at `.github/agent-docs/CURRENT_STATE.md`. Copy it for new plans or use it as the single shared state file (overwriting the Current Status section each session).
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Integration with Golden-Plan
|
|
117
|
+
|
|
118
|
+
When running a golden-plan:
|
|
119
|
+
- The plan tracker (`.github/plans/tracker/<slug>-tracker.md`) is the commitment ledger.
|
|
120
|
+
- CURRENT_STATE.md is the working scratch-pad for the current session.
|
|
121
|
+
- After completing a phase, update BOTH the tracker row AND the CURRENT_STATE current-status section.
|
|
122
|
+
- When all tracker rows are `Complete`, follow the Plan Completion Protocol in golden-plan: move the plan to `plans/done/`, set `status: done`.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Standing Rules
|
|
127
|
+
|
|
128
|
+
1. **Never rewrite past Session Log entries** — the log is append-only. Corrections go in the next entry.
|
|
129
|
+
2. **One CURRENT_STATE per active plan** — if running two plans in parallel, use two separate state files named `CURRENT_STATE-<slug>.md`.
|
|
130
|
+
3. **CURRENT_STATE is not the tracker** — do not put commit hashes or gate results in CURRENT_STATE; they belong in the tracker. CURRENT_STATE is for human-readable context.
|
|
131
|
+
4. **Commit state files** — CURRENT_STATE updates must be committed, not left as unstaged changes.
|