@caddis/cli 0.0.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/LICENSE +21 -0
- package/README.md +163 -1
- package/bundles/antigravity-plugin/agents/code-reviewer.md +47 -0
- package/bundles/antigravity-plugin/agents/preflight.md +53 -0
- package/bundles/antigravity-plugin/guard_agy.py +338 -0
- package/bundles/antigravity-plugin/hooks.json +36 -0
- package/bundles/antigravity-plugin/mcp_config.json +8 -0
- package/bundles/antigravity-plugin/mcp_ping_server.py +55 -0
- package/bundles/antigravity-plugin/plugin.json +5 -0
- package/bundles/antigravity-plugin/session_end_agy.py +57 -0
- package/bundles/antigravity-plugin/skills/_registry.md +115 -0
- package/bundles/antigravity-plugin/skills/add-rules/SKILL.md +45 -0
- package/bundles/antigravity-plugin/skills/api-design/SKILL.md +249 -0
- package/bundles/antigravity-plugin/skills/backend-development/SKILL.md +305 -0
- package/bundles/antigravity-plugin/skills/best-practices/SKILL.md +500 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/best-practices-referencer.md +263 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/codebase-context-builder.md +326 -0
- package/bundles/antigravity-plugin/skills/best-practices/agents/task-intent-analyzer.md +245 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/anti-patterns.md +571 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/before-after-examples.md +1114 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/best-practices-guide.md +513 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/common-workflows.md +692 -0
- package/bundles/antigravity-plugin/skills/best-practices/references/prompt-patterns.md +547 -0
- package/bundles/antigravity-plugin/skills/brainstorming/SKILL.md +57 -0
- package/bundles/antigravity-plugin/skills/ci-cd-pipeline/SKILL.md +315 -0
- package/bundles/antigravity-plugin/skills/code-documentation/SKILL.md +271 -0
- package/bundles/antigravity-plugin/skills/code-review/SKILL.md +122 -0
- package/bundles/antigravity-plugin/skills/codebase-audit/SKILL.md +204 -0
- package/bundles/antigravity-plugin/skills/context-curator/SKILL.md +157 -0
- package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +40 -0
- package/bundles/antigravity-plugin/skills/css-architecture/SKILL.md +305 -0
- package/bundles/antigravity-plugin/skills/css-architecture/references/RESPONSIVE-DESIGN.md +604 -0
- package/bundles/antigravity-plugin/skills/database-design/SKILL.md +177 -0
- package/bundles/antigravity-plugin/skills/db-diagram/SKILL.md +148 -0
- package/bundles/antigravity-plugin/skills/db-diagram/scripts/sql_to_graph.py +1212 -0
- package/bundles/antigravity-plugin/skills/digress/SKILL.md +61 -0
- package/bundles/antigravity-plugin/skills/draw-io/SKILL.md +162 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/aws-icons.md +677 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/layout-guidelines.md +142 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/troubleshooting.md +118 -0
- package/bundles/antigravity-plugin/skills/draw-io/references/workflows.md +103 -0
- package/bundles/antigravity-plugin/skills/draw-io/scripts/convert-drawio-to-png.sh +25 -0
- package/bundles/antigravity-plugin/skills/draw-io/scripts/find_aws_icon.py +79 -0
- package/bundles/antigravity-plugin/skills/error-handling/SKILL.md +260 -0
- package/bundles/antigravity-plugin/skills/excalidraw-db/SKILL.md +38 -0
- package/bundles/antigravity-plugin/skills/fastapi-dev/SKILL.md +300 -0
- package/bundles/antigravity-plugin/skills/feature-plan/SKILL.md +198 -0
- package/bundles/antigravity-plugin/skills/frontend-design/SKILL.md +193 -0
- package/bundles/antigravity-plugin/skills/frontend-design/references/my-tech-stack.md +127 -0
- package/bundles/antigravity-plugin/skills/gh-cli/SKILL.md +195 -0
- package/bundles/antigravity-plugin/skills/git-commit/SKILL.md +285 -0
- package/bundles/antigravity-plugin/skills/golden-plan/SKILL.md +577 -0
- package/bundles/antigravity-plugin/skills/handoff/SKILL.md +100 -0
- package/bundles/antigravity-plugin/skills/implement/SKILL.md +114 -0
- package/bundles/antigravity-plugin/skills/javascript-typescript/SKILL.md +142 -0
- package/bundles/antigravity-plugin/skills/kb/SKILL.md +60 -0
- package/bundles/antigravity-plugin/skills/mermaid-db/SKILL.md +33 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/SKILL.md +236 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/ENHANCEMENTS.md +264 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/MERMAID-SUMMARY.md +137 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/advanced-features.md +556 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/architecture-diagrams.md +192 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/c4-diagrams.md +410 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/class-diagrams.md +361 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/erd-diagrams.md +510 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/flowcharts.md +450 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/sequence-diagrams.md +394 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/troubleshooting.md +335 -0
- package/bundles/antigravity-plugin/skills/mermaid-diagrams/references/workflows.md +418 -0
- package/bundles/antigravity-plugin/skills/migrate-dir/SKILL.md +68 -0
- package/bundles/antigravity-plugin/skills/mockup/SKILL.md +242 -0
- package/bundles/antigravity-plugin/skills/particle-art/SKILL.md +243 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/canvas-utils.ts +171 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/dot-field.template.tsx +203 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/flow-field.template.tsx +263 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/node-shape.template.tsx +261 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/shape-sampler.ts +281 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/stipple-morph.template.tsx +167 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/stipple.template.tsx +175 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/trail-ghost.template.tsx +266 -0
- package/bundles/antigravity-plugin/skills/particle-art/references/usage-examples.md +320 -0
- package/bundles/antigravity-plugin/skills/playwright/API_REFERENCE.md +653 -0
- package/bundles/antigravity-plugin/skills/playwright/SKILL.md +454 -0
- package/bundles/antigravity-plugin/skills/playwright/lib/helpers.js +441 -0
- package/bundles/antigravity-plugin/skills/playwright/package.json +26 -0
- package/bundles/antigravity-plugin/skills/playwright/run.js +228 -0
- package/bundles/antigravity-plugin/skills/prd/SKILL.md +107 -0
- package/bundles/antigravity-plugin/skills/preflight/SKILL.md +435 -0
- package/bundles/antigravity-plugin/skills/python/SKILL.md +388 -0
- package/bundles/antigravity-plugin/skills/react-best-practices/SKILL.md +269 -0
- package/bundles/antigravity-plugin/skills/react-dev/README.md +404 -0
- package/bundles/antigravity-plugin/skills/react-dev/SKILL.md +459 -0
- package/bundles/antigravity-plugin/skills/react-dev/examples/generic-components.md +579 -0
- package/bundles/antigravity-plugin/skills/react-dev/examples/server-components.md +579 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/event-handlers.md +574 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/hooks.md +456 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/react-19-patterns.md +638 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/react-router.md +1002 -0
- package/bundles/antigravity-plugin/skills/react-dev/references/tanstack-router.md +587 -0
- package/bundles/antigravity-plugin/skills/refactoring/SKILL.md +486 -0
- package/bundles/antigravity-plugin/skills/resume/SKILL.md +36 -0
- package/bundles/antigravity-plugin/skills/security-review/SKILL.md +196 -0
- package/bundles/antigravity-plugin/skills/setup-project-ai/SKILL.md +61 -0
- package/bundles/antigravity-plugin/skills/ship/SKILL.md +107 -0
- package/bundles/antigravity-plugin/skills/ship-merge/SKILL.md +103 -0
- package/bundles/antigravity-plugin/skills/ship-pr/SKILL.md +102 -0
- package/bundles/antigravity-plugin/skills/skill-creator/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin/skills/skill-creator/SKILL.md +491 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/analyzer.md +274 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/comparator.md +202 -0
- package/bundles/antigravity-plugin/skills/skill-creator/agents/grader.md +223 -0
- package/bundles/antigravity-plugin/skills/skill-creator/assets/eval_review.html +146 -0
- package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/bundles/antigravity-plugin/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/bundles/antigravity-plugin/skills/skill-creator/references/schemas.md +430 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/__init__.py +0 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/generate_report.py +326 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/improve_description.py +247 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/package_skill.py +136 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_eval.py +310 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/run_loop.py +328 -0
- package/bundles/antigravity-plugin/skills/skill-creator/scripts/utils.py +47 -0
- package/bundles/antigravity-plugin/skills/sql/SKILL.md +321 -0
- package/bundles/antigravity-plugin/skills/tdd/SKILL.md +37 -0
- package/bundles/antigravity-plugin/skills/tdd-workflow/SKILL.md +188 -0
- package/bundles/antigravity-plugin/skills/technical-writing/SKILL.md +286 -0
- package/bundles/antigravity-plugin/skills/test-strategy/SKILL.md +155 -0
- package/bundles/antigravity-plugin/skills/ui-brief/SKILL.md +84 -0
- package/bundles/antigravity-plugin/skills/ui-review/SKILL.md +176 -0
- package/bundles/antigravity-plugin/skills/ui-review/references/framework-fixes.md +471 -0
- package/bundles/antigravity-plugin/skills/ui-review/references/visual-checklist.md +236 -0
- package/bundles/antigravity-plugin/skills/usage-review/SKILL.md +77 -0
- package/bundles/antigravity-plugin/skills/use-model/SKILL.md +64 -0
- package/bundles/antigravity-plugin/skills/using-git-worktrees/SKILL.md +217 -0
- package/bundles/antigravity-plugin/skills/version/SKILL.md +18 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/DESIGN_TOKENS.md +487 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/IMPLEMENTATION_GUIDE.md +177 -0
- package/bundles/antigravity-plugin/skills/warm-editorial-ui/SKILL.md +732 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/LICENSE.txt +202 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/SKILL.md +97 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/console_logging.py +35 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/bundles/antigravity-plugin/skills/webapp-testing/scripts/with_server.py +106 -0
- package/bundles/antigravity-plugin/skills/windows-deployment/SKILL.md +880 -0
- package/bundles/antigravity-plugin/skills/writing-plans/SKILL.md +384 -0
- package/bundles/antigravity-plugin/statusline-command-agy.sh +91 -0
- package/bundles/antigravity-plugin/warm_start_agy.py +149 -0
- 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 +7 -0
- package/dist/cli.js +5492 -0
- package/package.json +61 -4
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-validation
|
|
3
|
+
context: fork
|
|
4
|
+
description: Data quality and validation patterns for ETL pipelines, API inputs, and data processing. Use when defining validation rules, building data quality checks, implementing schema validation, or designing data contracts. Covers Pydantic, Great Expectations patterns, and SQL-level constraints.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Validation Skill
|
|
8
|
+
|
|
9
|
+
Bad data in → bad decisions out. Validate at every boundary: ingestion, transformation, and output.
|
|
10
|
+
|
|
11
|
+
## 1. When to Apply This Skill
|
|
12
|
+
|
|
13
|
+
**Trigger conditions:**
|
|
14
|
+
- Building or reviewing ETL/ELT pipelines
|
|
15
|
+
- "How do we validate incoming data?"
|
|
16
|
+
- Designing data contracts between services
|
|
17
|
+
- Data quality issues in production
|
|
18
|
+
- Schema migration or new data source integration
|
|
19
|
+
|
|
20
|
+
## 2. Validation Layers
|
|
21
|
+
|
|
22
|
+
Validate at three boundaries — not just one.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Source → [Ingestion Validation] → Raw Layer
|
|
26
|
+
Raw → [Transform Validation] → Clean Layer
|
|
27
|
+
Clean → [Output Validation] → Consumer / API / Report
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| Layer | What to Check | Fail Strategy |
|
|
31
|
+
|-------|--------------|---------------|
|
|
32
|
+
| **Ingestion** | Schema, types, required fields, file format | Reject row or file, log to dead-letter |
|
|
33
|
+
| **Transform** | Business rules, referential integrity, ranges | Flag row, route to review queue |
|
|
34
|
+
| **Output** | Final shape matches consumer contract | Block publish, alert team |
|
|
35
|
+
|
|
36
|
+
## 3. Pydantic Validation (Python)
|
|
37
|
+
|
|
38
|
+
### Schema Definition
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
from pydantic import BaseModel, Field, field_validator, model_validator
|
|
42
|
+
from datetime import date
|
|
43
|
+
from enum import Enum
|
|
44
|
+
|
|
45
|
+
class Priority(str, Enum):
|
|
46
|
+
LOW = "low"
|
|
47
|
+
MEDIUM = "medium"
|
|
48
|
+
HIGH = "high"
|
|
49
|
+
CRITICAL = "critical"
|
|
50
|
+
|
|
51
|
+
class ComplaintRecord(BaseModel):
|
|
52
|
+
complaint_id: str = Field(..., min_length=1, max_length=50)
|
|
53
|
+
customer_id: str = Field(..., pattern=r"^CUST-\d{6}$")
|
|
54
|
+
category: str = Field(..., min_length=1)
|
|
55
|
+
priority: Priority
|
|
56
|
+
description: str = Field(..., min_length=10, max_length=5000)
|
|
57
|
+
created_date: date
|
|
58
|
+
resolved_date: date | None = None
|
|
59
|
+
amount: float = Field(default=0, ge=0, le=1_000_000)
|
|
60
|
+
|
|
61
|
+
@field_validator("resolved_date")
|
|
62
|
+
@classmethod
|
|
63
|
+
def resolved_after_created(cls, v, info):
|
|
64
|
+
if v and info.data.get("created_date") and v < info.data["created_date"]:
|
|
65
|
+
raise ValueError("Resolved date cannot be before created date")
|
|
66
|
+
return v
|
|
67
|
+
|
|
68
|
+
@model_validator(mode="after")
|
|
69
|
+
def critical_must_have_description(self):
|
|
70
|
+
if self.priority == Priority.CRITICAL and len(self.description) < 50:
|
|
71
|
+
raise ValueError("Critical complaints require detailed description (50+ chars)")
|
|
72
|
+
return self
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Batch Validation with Error Collection
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from pydantic import ValidationError
|
|
79
|
+
from loguru import logger
|
|
80
|
+
|
|
81
|
+
def validate_batch(records: list[dict]) -> tuple[list[ComplaintRecord], list[dict]]:
|
|
82
|
+
"""Validate records, separating valid from invalid."""
|
|
83
|
+
valid = []
|
|
84
|
+
errors = []
|
|
85
|
+
|
|
86
|
+
for i, record in enumerate(records):
|
|
87
|
+
try:
|
|
88
|
+
valid.append(ComplaintRecord.model_validate(record))
|
|
89
|
+
except ValidationError as e:
|
|
90
|
+
errors.append({
|
|
91
|
+
"row": i,
|
|
92
|
+
"data": record,
|
|
93
|
+
"errors": e.errors(),
|
|
94
|
+
})
|
|
95
|
+
logger.warning(f"Row {i} validation failed: {e.error_count()} errors")
|
|
96
|
+
|
|
97
|
+
logger.info(f"Validation: {len(valid)} valid, {len(errors)} invalid out of {len(records)}")
|
|
98
|
+
return valid, errors
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 4. SQL-Level Constraints
|
|
102
|
+
|
|
103
|
+
Always enforce at the database level too — application validation alone is insufficient.
|
|
104
|
+
|
|
105
|
+
```sql
|
|
106
|
+
-- Column-level constraints
|
|
107
|
+
CREATE TABLE complaints (
|
|
108
|
+
complaint_id UNIQUEIDENTIFIER NOT NULL DEFAULT NEWID(),
|
|
109
|
+
customer_id NVARCHAR(50) NOT NULL,
|
|
110
|
+
category NVARCHAR(100) NOT NULL,
|
|
111
|
+
priority TINYINT NOT NULL CHECK (priority BETWEEN 1 AND 5),
|
|
112
|
+
description NVARCHAR(MAX) NOT NULL,
|
|
113
|
+
amount DECIMAL(12,2) NOT NULL DEFAULT 0 CHECK (amount >= 0),
|
|
114
|
+
created_date DATE NOT NULL DEFAULT GETDATE(),
|
|
115
|
+
resolved_date DATE NULL,
|
|
116
|
+
|
|
117
|
+
CONSTRAINT PK_complaints PRIMARY KEY (complaint_id),
|
|
118
|
+
CONSTRAINT CK_resolved_after_created
|
|
119
|
+
CHECK (resolved_date IS NULL OR resolved_date >= created_date)
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
-- Referential integrity
|
|
123
|
+
ALTER TABLE complaints
|
|
124
|
+
ADD CONSTRAINT FK_complaints_customer
|
|
125
|
+
FOREIGN KEY (customer_id) REFERENCES customers(customer_id);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 5. Data Quality Checks (Great Expectations Pattern)
|
|
129
|
+
|
|
130
|
+
Define expectations as declarative rules, then run them against datasets.
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
def run_quality_checks(df: pd.DataFrame) -> list[dict]:
|
|
134
|
+
"""Run data quality checks and return failures."""
|
|
135
|
+
checks = [
|
|
136
|
+
{
|
|
137
|
+
"name": "no_null_customer_ids",
|
|
138
|
+
"check": lambda: df["customer_id"].notna().all(),
|
|
139
|
+
"severity": "critical",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "valid_priority_range",
|
|
143
|
+
"check": lambda: df["priority"].between(1, 5).all(),
|
|
144
|
+
"severity": "critical",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"name": "amount_non_negative",
|
|
148
|
+
"check": lambda: (df["amount"] >= 0).all(),
|
|
149
|
+
"severity": "error",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "description_not_empty",
|
|
153
|
+
"check": lambda: (df["description"].str.len() > 0).all(),
|
|
154
|
+
"severity": "warning",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "no_future_created_dates",
|
|
158
|
+
"check": lambda: (df["created_date"] <= pd.Timestamp.now()).all(),
|
|
159
|
+
"severity": "error",
|
|
160
|
+
},
|
|
161
|
+
]
|
|
162
|
+
|
|
163
|
+
failures = []
|
|
164
|
+
for check in checks:
|
|
165
|
+
try:
|
|
166
|
+
passed = check["check"]()
|
|
167
|
+
if not passed:
|
|
168
|
+
failures.append({"name": check["name"], "severity": check["severity"]})
|
|
169
|
+
except Exception as e:
|
|
170
|
+
failures.append({"name": check["name"], "severity": "error", "exception": str(e)})
|
|
171
|
+
|
|
172
|
+
return failures
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 6. Data Contract Template
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
# Data Contract: {Source} → {Consumer}
|
|
179
|
+
|
|
180
|
+
## Schema
|
|
181
|
+
| Field | Type | Required | Constraints | Example |
|
|
182
|
+
|-------|------|----------|-------------|---------|
|
|
183
|
+
| customer_id | string | Yes | Pattern: CUST-\d{6} | CUST-001234 |
|
|
184
|
+
| amount | decimal(12,2) | Yes | >= 0 | 150.00 |
|
|
185
|
+
| created_date | date | Yes | <= today | 2025-01-15 |
|
|
186
|
+
|
|
187
|
+
## Quality SLAs
|
|
188
|
+
| Metric | Target |
|
|
189
|
+
|--------|--------|
|
|
190
|
+
| Null rate (required fields) | 0% |
|
|
191
|
+
| Schema conformance | 100% |
|
|
192
|
+
| Freshness | Updated within 1 hour |
|
|
193
|
+
| Completeness | ≥ 99.5% of source records |
|
|
194
|
+
|
|
195
|
+
## Change Management
|
|
196
|
+
- Schema changes require 2-week notice
|
|
197
|
+
- Breaking changes require new version
|
|
198
|
+
- Consumer must validate on read (trust but verify)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## 7. Validation Strategy by Data Source
|
|
202
|
+
|
|
203
|
+
| Source | Trust Level | Validation Depth |
|
|
204
|
+
|--------|------------|------------------|
|
|
205
|
+
| User input (forms, API) | None | Full: type, range, format, business rules |
|
|
206
|
+
| Internal service | Medium | Schema + nullability + range |
|
|
207
|
+
| Database query result | High | Spot-check: row count, nulls, date ranges |
|
|
208
|
+
| Third-party API | Low | Full: schema + retry + fallback |
|
|
209
|
+
| File upload (CSV, Excel) | None | Full: encoding, headers, types, row-level |
|
|
210
|
+
|
|
211
|
+
## 8. Anti-Patterns
|
|
212
|
+
|
|
213
|
+
| Anti-Pattern | Problem | Fix |
|
|
214
|
+
|---|---|---|
|
|
215
|
+
| Validate only in application | DB has no constraints = data corruption | Validate at both layers |
|
|
216
|
+
| Silently dropping invalid rows | Data loss without trace | Log to dead-letter table with error detail |
|
|
217
|
+
| Trusting internal data | One service bug corrupts downstream | Schema-validate at every boundary |
|
|
218
|
+
| String-typing everything | No type safety, "1" vs 1 bugs | Use typed models (Pydantic, TypeScript interfaces) |
|
|
219
|
+
| Validating after transform | Garbage in, garbage amplified | Validate at ingestion before any transform |
|
|
220
|
+
| No freshness check | Stale data looks valid | Check max(created_date) and row counts |
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: db-testing
|
|
3
|
+
context: fork
|
|
4
|
+
description: Test, debug, and validate database connectivity and queries. Use when diagnosing connection errors, testing configurations, or validating queries before deployment.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Database Testing Skill
|
|
8
|
+
|
|
9
|
+
Specialized skill for testing, debugging, and validating database connectivity and queries.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- User reports database connection errors
|
|
14
|
+
- Testing a new database configuration
|
|
15
|
+
- Validating queries before deployment
|
|
16
|
+
- Debugging data retrieval issues
|
|
17
|
+
- Verifying authentication configuration
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Steps
|
|
22
|
+
|
|
23
|
+
### Step 1: Network Connectivity Check
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Test if server is reachable
|
|
27
|
+
ping <DB_HOST>
|
|
28
|
+
|
|
29
|
+
# Test database port
|
|
30
|
+
# SQL Server: 1433, PostgreSQL: 5432, MySQL: 3306
|
|
31
|
+
telnet <DB_HOST> <DB_PORT>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Step 2: Connection String Validation
|
|
35
|
+
|
|
36
|
+
Check environment configuration:
|
|
37
|
+
|
|
38
|
+
```env
|
|
39
|
+
DB_HOST=<server_name>
|
|
40
|
+
DB_NAME=<database_name>
|
|
41
|
+
DB_USER=<username>
|
|
42
|
+
DB_PASSWORD=<password>
|
|
43
|
+
DB_DRIVER=<driver_name>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Step 3: Connection Test
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
# Generic connection test pattern
|
|
50
|
+
import os
|
|
51
|
+
|
|
52
|
+
try:
|
|
53
|
+
conn = create_connection(
|
|
54
|
+
host=os.getenv("DB_HOST"),
|
|
55
|
+
database=os.getenv("DB_NAME"),
|
|
56
|
+
user=os.getenv("DB_USER"),
|
|
57
|
+
password=os.getenv("DB_PASSWORD"),
|
|
58
|
+
)
|
|
59
|
+
print("Connection successful!")
|
|
60
|
+
cursor = conn.cursor()
|
|
61
|
+
cursor.execute("SELECT 1")
|
|
62
|
+
print(f"Query test: {cursor.fetchone()}")
|
|
63
|
+
conn.close()
|
|
64
|
+
except Exception as e:
|
|
65
|
+
print(f"Connection failed: {e}")
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Step 4: Query Validation
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
query = "SELECT TOP 5 * FROM <table_name>" # Adjust syntax for your DB
|
|
72
|
+
df = pd.read_sql(query, conn)
|
|
73
|
+
print(f"Returned {len(df)} rows")
|
|
74
|
+
print(df.columns.tolist())
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Common Issues & Solutions
|
|
80
|
+
|
|
81
|
+
| Error | Cause | Solution |
|
|
82
|
+
|-------|-------|---------|
|
|
83
|
+
| Connection refused | Server unreachable | Check network/VPN, firewall rules |
|
|
84
|
+
| Login failed | Auth issue | Verify credentials, check auth mode |
|
|
85
|
+
| Invalid connection string | Malformed config | Review driver docs for correct format |
|
|
86
|
+
| Certificate error | SSL validation | Configure trust settings for your DB |
|
|
87
|
+
| Driver not found | Missing driver | Install appropriate database driver |
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Output Format
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
## Database Connection Test Results
|
|
95
|
+
|
|
96
|
+
**Server**: `<server>`
|
|
97
|
+
**Database**: `<database>`
|
|
98
|
+
**Auth Mode**: <auth_type>
|
|
99
|
+
|
|
100
|
+
| Test | Status | Details |
|
|
101
|
+
|------|--------|---------|
|
|
102
|
+
| Network ping | Pass/Fail | Response time |
|
|
103
|
+
| Port check | Pass/Fail | TCP connection |
|
|
104
|
+
| DB connection | Pass/Fail | Driver info |
|
|
105
|
+
| Sample query | Pass/Fail | Row count |
|
|
106
|
+
|
|
107
|
+
**Conclusion**: [Summary]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Checklist
|
|
111
|
+
|
|
112
|
+
- [ ] Network connectivity verified
|
|
113
|
+
- [ ] Connection string validated
|
|
114
|
+
- [ ] Authentication working
|
|
115
|
+
- [ ] Sample query returns expected results
|
|
116
|
+
- [ ] Error handling tested
|
|
117
|
+
- [ ] Connection cleanup (close/dispose) confirmed
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy-local
|
|
3
|
+
description: End-to-end local deployment loop for Gitea-hosted projects. Use when the user wants to commit on dev, push to remote, monitor the golden CI/build/deploy workflow, validate prod on the configured prod host, and fix lint/test/pipeline failures until deployment is healthy.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Deploy Local Skill
|
|
7
|
+
|
|
8
|
+
Run reliable local-to-prod delivery for repositories hosted on a self-hosted Gitea.
|
|
9
|
+
|
|
10
|
+
## When To Use
|
|
11
|
+
|
|
12
|
+
Use this skill when requests include any of:
|
|
13
|
+
- "commit and deploy"
|
|
14
|
+
- "commit and push"
|
|
15
|
+
- "push and monitor pipeline"
|
|
16
|
+
- "watch prod deploy"
|
|
17
|
+
- "monitor deployment in prod"
|
|
18
|
+
- "fix CI failures"
|
|
19
|
+
- "lint/test failing in pipeline"
|
|
20
|
+
- "stuck in queue"
|
|
21
|
+
|
|
22
|
+
## Required Companion Skills
|
|
23
|
+
|
|
24
|
+
Load these first when they exist (your org may ship private deploy skills):
|
|
25
|
+
- your org's `golden-workflow` skill (CI/CD workflow contract)
|
|
26
|
+
- your org's `windows-deployment` skill (NSSM + reverse proxy)
|
|
27
|
+
- `.github/skills/devops/ci-cd-pipeline/SKILL.md`
|
|
28
|
+
- `.github/skills/devops/git-commit/SKILL.md`
|
|
29
|
+
|
|
30
|
+
Optional:
|
|
31
|
+
- `.github/skills/devops/gh-cli/SKILL.md` for issue/PR linking
|
|
32
|
+
- `.github/skills/workflow/verification-loop/SKILL.md` for stricter local validation loops
|
|
33
|
+
|
|
34
|
+
## Local Platform Defaults (configure per project)
|
|
35
|
+
|
|
36
|
+
Resolve these from your project config (e.g. a repo-local `config/.env.gitea`) — do not hardcode:
|
|
37
|
+
- Gitea UI / API base: `$env:GITEA_BASE_URL` (e.g. `http://gitea.example:8090`, API at `.../api/v1`)
|
|
38
|
+
- Repo org/owner: `<org>`
|
|
39
|
+
- Expected non-prod runner label: `dev`
|
|
40
|
+
- Expected prod runner label: `prod`
|
|
41
|
+
- Prod host: `$env:PROD_HOST`
|
|
42
|
+
- Prod checkout root: `<prod-checkout-root>\<repo>`
|
|
43
|
+
|
|
44
|
+
## Golden Deploy Model
|
|
45
|
+
|
|
46
|
+
The deploy-critical path is SHA-driven:
|
|
47
|
+
1. A push to `main` triggers the canonical `.gitea/workflows/ci.yml`.
|
|
48
|
+
2. `lint_and_test` and any repo-relevant frontend checks run on `dev`.
|
|
49
|
+
3. `deploy_prod` runs on `prod` only after gates pass.
|
|
50
|
+
4. Prod fetches, resets, and verifies the expected commit SHA.
|
|
51
|
+
5. Prod installs/builds/restarts app-owned NSSM services.
|
|
52
|
+
6. Prod health and version endpoints are verified.
|
|
53
|
+
7. `release_metadata` creates/pushes the CalVer Git tag only after deploy success.
|
|
54
|
+
8. A tag-triggered workflow run may occur, but deploy/release jobs must be skipped for tag refs.
|
|
55
|
+
|
|
56
|
+
CalVer is release metadata, not the deploy identity. Do not reintroduce tag-first deploy logic.
|
|
57
|
+
|
|
58
|
+
## Phase 1: Preflight
|
|
59
|
+
|
|
60
|
+
1. Confirm repo root and current branch.
|
|
61
|
+
2. Run `git status --short`.
|
|
62
|
+
3. Identify the repo's actual gates from `.gitea/workflows/ci.yml`; do not invent database or frontend gates.
|
|
63
|
+
4. Run local quality gates that mirror CI where feasible **before any commit**:
|
|
64
|
+
- Backend repos: `ruff check .` (required), then format/tests as configured.
|
|
65
|
+
- Frontend repos: lint/typecheck/build as configured.
|
|
66
|
+
- Full-stack repos: run both backend and frontend gates.
|
|
67
|
+
- Repo-specific data/database checks only when the repo declares that capability.
|
|
68
|
+
5. If a gate fails, fix source code first before changing workflow logic.
|
|
69
|
+
|
|
70
|
+
## Phase 2: Commit + Push
|
|
71
|
+
|
|
72
|
+
1. Confirm preflight quality gates are green (no failing `ruff`/lint checks).
|
|
73
|
+
2. Stage only intended files.
|
|
74
|
+
3. Commit with a conventional message.
|
|
75
|
+
4. Push to the target branch, normally `main` for prod deploy.
|
|
76
|
+
5. Capture commit SHA and remote ack.
|
|
77
|
+
|
|
78
|
+
Example:
|
|
79
|
+
|
|
80
|
+
```powershell
|
|
81
|
+
git status --short
|
|
82
|
+
git add <files>
|
|
83
|
+
git commit -m "fix(ci): resolve deploy health check"
|
|
84
|
+
git push origin main
|
|
85
|
+
git rev-parse HEAD
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Phase 3: CI and Deploy Monitoring
|
|
89
|
+
|
|
90
|
+
Before calling the Gitea API, normalize token variables from the repo-local
|
|
91
|
+
`config/.env.gitea` file when it exists. The shell environment can be stale even
|
|
92
|
+
when the repo has a valid token file.
|
|
93
|
+
|
|
94
|
+
```powershell
|
|
95
|
+
$envFile = Join-Path (Get-Location) "config/.env.gitea"
|
|
96
|
+
if (Test-Path $envFile) {
|
|
97
|
+
Get-Content $envFile | ForEach-Object {
|
|
98
|
+
$line = $_.Trim()
|
|
99
|
+
if (-not $line -or $line.StartsWith("#") -or $line -notmatch "=") { return }
|
|
100
|
+
$key, $value = $line -split "=", 2
|
|
101
|
+
if ($key -in @("GITEA_TOKEN", "REPO_API", "GITEA_BASE_URL")) {
|
|
102
|
+
Set-Item -Path "Env:$($key.Trim())" -Value $value.Trim().Trim('"').Trim("'")
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Monitor the run lifecycle in Gitea:
|
|
109
|
+
1. Find the latest `ci.yml@refs/heads/main` run for the pushed SHA.
|
|
110
|
+
2. Track jobs in order:
|
|
111
|
+
- `lint_and_test`
|
|
112
|
+
- `frontend_checks` when present
|
|
113
|
+
- `deploy_prod`
|
|
114
|
+
- `release_metadata`
|
|
115
|
+
- `notify`
|
|
116
|
+
3. If a tag-triggered run appears after release metadata, verify `deploy_prod` and `release_metadata` are skipped.
|
|
117
|
+
4. If a gate fails:
|
|
118
|
+
- classify as lint, format, test, build, workflow-runtime, deploy-script, prod-env, release-metadata, or infra-runner.
|
|
119
|
+
- patch the smallest safe fix.
|
|
120
|
+
- rerun from commit/push.
|
|
121
|
+
|
|
122
|
+
Gitea API shape:
|
|
123
|
+
|
|
124
|
+
```powershell
|
|
125
|
+
$headers = @{ Authorization = "token $env:GITEA_TOKEN" }
|
|
126
|
+
$runs = Invoke-RestMethod -Uri "$env:GITEA_BASE_URL/api/v1/repos/<org>/<repo>/actions/runs?limit=10" -Headers $headers
|
|
127
|
+
$run = $runs.workflow_runs |
|
|
128
|
+
Where-Object { $_.head_sha -eq "<expected-sha>" -and $_.path -like "ci.yml@refs/heads/main" } |
|
|
129
|
+
Select-Object -First 1
|
|
130
|
+
$jobs = Invoke-RestMethod -Uri "$env:GITEA_BASE_URL/api/v1/repos/<org>/<repo>/actions/runs/$($run.id)/jobs" -Headers $headers
|
|
131
|
+
$jobs.jobs | Select-Object name,status,conclusion,started_at,completed_at
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Phase 4: Prod Validation
|
|
135
|
+
|
|
136
|
+
For Windows prod flow, validate:
|
|
137
|
+
1. Prod checkout reached the expected SHA.
|
|
138
|
+
2. App-owned NSSM services are running.
|
|
139
|
+
3. App ports are listening and owned by the app, not another project.
|
|
140
|
+
4. Health endpoint returns success.
|
|
141
|
+
5. Version endpoint returns the expected SHA/CalVer metadata when the repo exposes it.
|
|
142
|
+
6. Post-deploy git dirtiness contains only allowed generated files.
|
|
143
|
+
|
|
144
|
+
Example:
|
|
145
|
+
|
|
146
|
+
```powershell
|
|
147
|
+
Invoke-Command -ComputerName $env:PROD_HOST -ScriptBlock {
|
|
148
|
+
$root = "<prod-checkout-root>\<repo>"
|
|
149
|
+
Set-Location $root
|
|
150
|
+
[pscustomobject]@{
|
|
151
|
+
Head = (git rev-parse HEAD)
|
|
152
|
+
Branch = (git branch --show-current)
|
|
153
|
+
Status = ((git status --short) -join '; ')
|
|
154
|
+
Services = Get-Service -Name "app-<short>-*" -ErrorAction SilentlyContinue |
|
|
155
|
+
Select-Object Name,Status,DisplayName
|
|
156
|
+
ApiPort = Get-NetTCPConnection -LocalPort <api-port> -State Listen -ErrorAction SilentlyContinue |
|
|
157
|
+
Select-Object LocalAddress,LocalPort,OwningProcess
|
|
158
|
+
Health = Invoke-RestMethod -Uri "http://127.0.0.1:<api-port>/health" -TimeoutSec 5
|
|
159
|
+
Version = Invoke-RestMethod -Uri "http://127.0.0.1:<api-port>/api/version" -TimeoutSec 5
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Use windows-deployment skill patterns for NSSM and reverse proxy checks.
|
|
165
|
+
|
|
166
|
+
## Phase 4.5: Release Metadata Validation
|
|
167
|
+
|
|
168
|
+
Validate release metadata after prod health is confirmed:
|
|
169
|
+
1. The main push run's `release_metadata` job succeeded or was intentionally skipped by policy.
|
|
170
|
+
2. A CalVer tag points at the deployed SHA.
|
|
171
|
+
3. A tag-triggered run, if created, did not redeploy.
|
|
172
|
+
|
|
173
|
+
Do not mark production unhealthy solely because a release tag failed after a successful deploy. Report it as a release metadata failure and fix it separately unless it affects service health.
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
git fetch --tags --force
|
|
177
|
+
git tag --points-at <deployed-sha> | Where-Object { $_ -match '^v\d{4}\.\d{2}\.\d{2}\.\d+$' }
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Phase 5: Queue / Runner Triage
|
|
181
|
+
|
|
182
|
+
If a run is stuck waiting:
|
|
183
|
+
1. Verify workflow `runs-on` labels match available runners.
|
|
184
|
+
2. Check runner service health on the correct host.
|
|
185
|
+
3. Check workflow `concurrency` groups for blocking in-progress jobs.
|
|
186
|
+
4. Cancel stale runs only if policy allows.
|
|
187
|
+
|
|
188
|
+
Do not change runner labels or re-register runners from an app repo.
|
|
189
|
+
|
|
190
|
+
## Phase 6: Failure Auto-Remediation Rules
|
|
191
|
+
|
|
192
|
+
### Lint/Format Failures
|
|
193
|
+
- Fix code directly and keep style-consistent.
|
|
194
|
+
- Rerun local lint before push.
|
|
195
|
+
|
|
196
|
+
### Test Failures
|
|
197
|
+
- Fix failing code/tests according to project policy.
|
|
198
|
+
- Keep behavior-preserving unless feature changes are requested.
|
|
199
|
+
|
|
200
|
+
### Workflow Runtime Failures
|
|
201
|
+
- Fix parser/shell/exit-code handling in workflow YAML.
|
|
202
|
+
- Ensure native command failures are fatal in PowerShell steps.
|
|
203
|
+
- Preserve the golden job graph unless the repo has a justified exception.
|
|
204
|
+
|
|
205
|
+
### Build/Deploy Failures
|
|
206
|
+
- Fix config or script with minimal blast radius.
|
|
207
|
+
- Verify prod expected SHA, NSSM service state, port ownership, health, and version endpoint.
|
|
208
|
+
- Do not restart or relabel the shared prod runner to fix an app deploy.
|
|
209
|
+
|
|
210
|
+
### Release Metadata Failures
|
|
211
|
+
- Fix `release_metadata` separately after confirming prod is healthy.
|
|
212
|
+
- Do not make deploy depend on pre-deploy tags or workflow output plumbing.
|
|
213
|
+
|
|
214
|
+
## Exit Criteria
|
|
215
|
+
|
|
216
|
+
All must be true:
|
|
217
|
+
1. Local applicable lint/test/build checks pass.
|
|
218
|
+
2. Push succeeded and commit SHA is recorded.
|
|
219
|
+
3. The relevant `ci.yml@refs/heads/main` run completed.
|
|
220
|
+
4. Required jobs completed with expected conclusions.
|
|
221
|
+
5. Prod checkout matches the pushed SHA when deploy was expected.
|
|
222
|
+
6. Prod health endpoint is green when deploy was expected.
|
|
223
|
+
7. Release metadata is created or accurately reported as a separate non-health failure.
|
|
224
|
+
8. Notify emitted the real success/failure signal.
|
|
225
|
+
|
|
226
|
+
## Report Template
|
|
227
|
+
|
|
228
|
+
```markdown
|
|
229
|
+
## Deploy Local Report
|
|
230
|
+
- Repo:
|
|
231
|
+
- Branch:
|
|
232
|
+
- Commit:
|
|
233
|
+
- CI Run:
|
|
234
|
+
- Gate Results:
|
|
235
|
+
- lint/test:
|
|
236
|
+
- frontend:
|
|
237
|
+
- deploy:
|
|
238
|
+
- release_metadata:
|
|
239
|
+
- notify:
|
|
240
|
+
- Prod Validation:
|
|
241
|
+
- host:
|
|
242
|
+
- SHA:
|
|
243
|
+
- services:
|
|
244
|
+
- health:
|
|
245
|
+
- version:
|
|
246
|
+
- Fixes Applied:
|
|
247
|
+
- Final Status:
|
|
248
|
+
- Follow-ups:
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Anti-Patterns
|
|
252
|
+
|
|
253
|
+
- Treating stale terminal output as current truth.
|
|
254
|
+
- Changing workflow orchestration before fixing clear source-code lint/test failures.
|
|
255
|
+
- Making quality gates non-blocking to force deployment.
|
|
256
|
+
- Declaring queue issues fixed without verifying runner availability and label alignment.
|
|
257
|
+
- Reintroducing tag-first deploy logic.
|
|
258
|
+
- Treating tag-triggered skipped deploy jobs as failures.
|
|
259
|
+
- Changing shared runner services from an app repo.
|