@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,248 @@
|
|
|
1
|
+
# Data Contract Pipeline
|
|
2
|
+
|
|
3
|
+
Use this skill to map DB tables, files, APIs, requirements, and UI mockups into a verified frontend data contract.
|
|
4
|
+
|
|
5
|
+
It helps you:
|
|
6
|
+
|
|
7
|
+
- Map DB tables/files/docs into UI safely.
|
|
8
|
+
- Generate read models, normalizers, DisplayDTOs, OpenAPI-first REST contracts, MCP-first contracts, frontend types, and services.
|
|
9
|
+
- Detect gaps between mockups, requirements, backend data, and final UI.
|
|
10
|
+
- Generate UI lineage so every production field can be traced back to source data.
|
|
11
|
+
- Catch drift when sources, DTOs, API responses, or frontend types change.
|
|
12
|
+
|
|
13
|
+
The skill is generic. Any app-specific DB, such as a CDR database, should be treated as an evaluation case or implementation input, not as hardcoded skill behavior.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Key Principle
|
|
18
|
+
|
|
19
|
+
DB tables do not map directly to UI.
|
|
20
|
+
|
|
21
|
+
Requirements and UI demand decide what should be displayed. DBs, files, and APIs decide what can be displayed. The DisplayDTO is the contract between backend reality and frontend rendering.
|
|
22
|
+
|
|
23
|
+
The safe path is:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Source -> Read Model -> Normalizer -> DisplayDTO -> OpenAPI REST + MCP Contracts -> Frontend Types -> UI -> Lineage
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## How It Works
|
|
32
|
+
|
|
33
|
+
```mermaid
|
|
34
|
+
flowchart LR
|
|
35
|
+
A[User provides app repo, docs, DB/files, mockup] --> B[Discover app config and connections]
|
|
36
|
+
B --> C[Inspect sources: DB schemas, files, APIs]
|
|
37
|
+
A --> D[Extract requirements and UI demand]
|
|
38
|
+
C --> E[Analysis summary + Q&A checkpoint]
|
|
39
|
+
D --> E
|
|
40
|
+
E --> F[Reconcile source capability vs UI demand]
|
|
41
|
+
F --> G[Read Model]
|
|
42
|
+
G --> H[Normalizer]
|
|
43
|
+
H --> I[DisplayDTO]
|
|
44
|
+
I --> J[OpenAPI REST + MCP Contracts]
|
|
45
|
+
J --> K[Frontend Types + Services + MCP Clients]
|
|
46
|
+
K --> L[UI Components]
|
|
47
|
+
F --> M[Gap Register]
|
|
48
|
+
L --> N[UI Lineage Manifest]
|
|
49
|
+
N --> O[Contract + Drift Tests]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The skill asks questions after it has inspected the repo, docs, sources, and UI. This keeps the questions narrow and prevents guessing.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## How The User Uses It
|
|
57
|
+
|
|
58
|
+
Use natural language. These are good prompts:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
Use data-contract-pipeline for this app repo and this DB. Map the required UI fields and generate lineage.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
Use this skill to map this JSON/Markdown file into the UI and create DisplayDTOs and frontend types.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
Audit whether my mockup is backed by real data. Show mockup-only, required-unplaced, and blocked elements.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Generate lineage for every UI field in this app.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
The app repo has the DB config. Discover it first, then ask me only for missing details.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The user should provide as many of these as they have:
|
|
81
|
+
|
|
82
|
+
- App repo path.
|
|
83
|
+
- DB/table/view names or file paths.
|
|
84
|
+
- Requirements docs, PRDs, tickets, or runbooks.
|
|
85
|
+
- UI mockup folder, HTML, JSX/TSX, or final frontend route files.
|
|
86
|
+
- Existing DTO/API/frontend type files if they exist.
|
|
87
|
+
|
|
88
|
+
If credentials are missing, the skill first searches app config and then asks for only the missing values.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Stages
|
|
93
|
+
|
|
94
|
+
1. **Intake**: collect app repo, source inputs, requirements, and UI inputs.
|
|
95
|
+
2. **Connection Discovery**: find DB/file/API config in the app repo and mask secrets.
|
|
96
|
+
3. **Source Discovery**: inspect DB schemas, files, APIs, samples, and existing DTOs.
|
|
97
|
+
4. **Requirements and UI Demand Extraction**: extract what the product and UI need.
|
|
98
|
+
5. **Analysis Summary + Q&A**: ask up to 3 high-impact questions after discovery.
|
|
99
|
+
6. **Reconciliation**: compare source capability against requirements and UI demand.
|
|
100
|
+
7. **Read Model + DTO Design**: define adapter/read model, normalizer, DisplayDTO, API, and frontend types.
|
|
101
|
+
8. **Lineage Generation**: trace each UI field back to source object/field and transform.
|
|
102
|
+
9. **Validation**: run drift checks, type alignment, query smoke tests, and lineage coverage.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Status Classes
|
|
107
|
+
|
|
108
|
+
Every UI/data item should receive one status:
|
|
109
|
+
|
|
110
|
+
| Status | Meaning |
|
|
111
|
+
|--------|---------|
|
|
112
|
+
| `contract-backed` | Verified source, transform, DTO/API, and UI placement exist. |
|
|
113
|
+
| `required-unplaced` | Required by docs/backend but missing from mockup/final UI placement. |
|
|
114
|
+
| `source-capability-only` | Source has the data, but no requirement/UI demand uses it. |
|
|
115
|
+
| `mockup-only` | Present in mockup/demo data, but not part of the backed production UI unless promoted by the user. |
|
|
116
|
+
| `partially-backed` | Some fields map, but source, formula, state, or freshness is incomplete. |
|
|
117
|
+
| `blocked` | Cannot map safely because of missing credentials, source, formula, or safe query. |
|
|
118
|
+
| `deferred` | Explicitly out of current release scope. |
|
|
119
|
+
|
|
120
|
+
These statuses prevent demo mockups and raw backend fields from becoming production contracts by accident.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Missing UI Handling
|
|
125
|
+
|
|
126
|
+
When requirements or backend data demand a UI element that is absent from the mockup:
|
|
127
|
+
|
|
128
|
+
1. Mark it `required-unplaced`.
|
|
129
|
+
2. Create `ui_gap_brief.md`.
|
|
130
|
+
3. Include requirement/source evidence, proposed page, component type, DisplayDTO fields, and acceptance criteria.
|
|
131
|
+
4. Ask the user/product owner to accept placement or defer it.
|
|
132
|
+
|
|
133
|
+
Do not silently place the element in a random screen.
|
|
134
|
+
|
|
135
|
+
When the mockup has a UI element with no requirement or source:
|
|
136
|
+
|
|
137
|
+
1. Mark it `mockup-only`.
|
|
138
|
+
2. Do not create production REST or MCP endpoints for it.
|
|
139
|
+
3. Consult the user and either remove it from the production UI, replace it with a data-backed element, or promote it by adding a requirement and source contract.
|
|
140
|
+
|
|
141
|
+
Most creative mockup-only elements should be removed or replaced, not marked deferred. Use `deferred` only when the user explicitly says the feature is intended for a later release.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Standard Outputs
|
|
146
|
+
|
|
147
|
+
The workflow can emit:
|
|
148
|
+
|
|
149
|
+
- `connection_manifest.json`
|
|
150
|
+
- `source_manifest.json`
|
|
151
|
+
- `requirements_manifest.json`
|
|
152
|
+
- `ui_demand_manifest.json`
|
|
153
|
+
- `contract_decisions.json`
|
|
154
|
+
- `read_catalog.json`
|
|
155
|
+
- `openapi_contract.yaml`
|
|
156
|
+
- `mcp_contract.json`
|
|
157
|
+
- `mapping_manifest.json`
|
|
158
|
+
- `lineage_manifest.json`
|
|
159
|
+
- `gap_register.json`
|
|
160
|
+
- `ui_gap_brief.md`
|
|
161
|
+
|
|
162
|
+
Not every run needs every artifact. Audit runs usually produce manifests and reports. Build runs also produce DTOs, API routes, frontend types, services, and tests.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Script Reference
|
|
167
|
+
|
|
168
|
+
Existing low-level helpers:
|
|
169
|
+
|
|
170
|
+
- `extract_schema.py`: extract schema from JSON, Markdown, CSV, XLSX, YAML, text, or DB metadata.
|
|
171
|
+
- `drift_check.py`: compare payload, ingestion model, and DisplayDTO.
|
|
172
|
+
- `ts_dto_compare.py`: compare frontend TypeScript types to Python DTOs.
|
|
173
|
+
- `generate_mapping_doc.py`: generate or check field mapping documentation.
|
|
174
|
+
|
|
175
|
+
Workflow helpers:
|
|
176
|
+
|
|
177
|
+
- `discover_connections.py`: find DB/file/API connection config in app repos.
|
|
178
|
+
- `discover_sources.py`: inspect source files or DB metadata and emit `source_manifest.json`.
|
|
179
|
+
- `extract_requirements.py`: parse docs and markdown into requirement demand.
|
|
180
|
+
- `extract_ui_demand.py`: parse HTML/JSX/TSX/routes/mockup files into UI demand.
|
|
181
|
+
- `reconcile_contract.py`: compare requirements, UI demand, and source capability.
|
|
182
|
+
- `compile_read_catalog.py`: scaffold safe read model/query catalog.
|
|
183
|
+
- `generate_api_contracts.py`: scaffold OpenAPI-first REST and MCP-first service contracts from the read catalog.
|
|
184
|
+
- `validate_lineage.py`: verify production UI fields have lineage.
|
|
185
|
+
- `generate_gap_report.py`: produce `gap_register.json` and `ui_gap_brief.md`.
|
|
186
|
+
|
|
187
|
+
Example:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
python .github/skills/workflow/data-contract-pipeline/scripts/discover_connections.py \
|
|
191
|
+
--app E:/Projects/my-app \
|
|
192
|
+
--output artifacts/data-contract/connection_manifest.json
|
|
193
|
+
|
|
194
|
+
python .github/skills/workflow/data-contract-pipeline/scripts/extract_ui_demand.py \
|
|
195
|
+
--ui E:/Projects/my-app/frontend/src \
|
|
196
|
+
--output artifacts/data-contract/ui_demand_manifest.json
|
|
197
|
+
|
|
198
|
+
python .github/skills/workflow/data-contract-pipeline/scripts/reconcile_contract.py \
|
|
199
|
+
--sources artifacts/data-contract/source_manifest.json \
|
|
200
|
+
--requirements artifacts/data-contract/requirements_manifest.json \
|
|
201
|
+
--ui-demand artifacts/data-contract/ui_demand_manifest.json \
|
|
202
|
+
--output artifacts/data-contract/mapping_manifest.json \
|
|
203
|
+
--gaps artifacts/data-contract/gap_register.json
|
|
204
|
+
|
|
205
|
+
python .github/skills/workflow/data-contract-pipeline/scripts/compile_read_catalog.py \
|
|
206
|
+
--mapping artifacts/data-contract/mapping_manifest.json \
|
|
207
|
+
--output artifacts/data-contract/read_catalog.json
|
|
208
|
+
|
|
209
|
+
python .github/skills/workflow/data-contract-pipeline/scripts/generate_api_contracts.py \
|
|
210
|
+
--read-catalog artifacts/data-contract/read_catalog.json \
|
|
211
|
+
--openapi artifacts/data-contract/openapi_contract.yaml \
|
|
212
|
+
--mcp artifacts/data-contract/mcp_contract.json
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Enterprise Pattern Check
|
|
218
|
+
|
|
219
|
+
This workflow is directionally aligned with how mature product/data/platform teams handle data-to-UI work:
|
|
220
|
+
|
|
221
|
+
- Consumer-driven contracts: UI/API needs are explicit.
|
|
222
|
+
- DTO/read-model boundaries: raw DB and vendor schemas do not leak into UI.
|
|
223
|
+
- Typed APIs and frontend types: generated or checked.
|
|
224
|
+
- OpenAPI-first REST and MCP-first endpoints: app data can be consumed by other apps and MCP clients.
|
|
225
|
+
- Data lineage: every displayed field has a traceable source.
|
|
226
|
+
- Contract tests: drift is caught before release.
|
|
227
|
+
- Gap register: product/design/backend mismatches are visible.
|
|
228
|
+
|
|
229
|
+
Large organizations may also use GraphQL schemas, OpenAPI codegen, dbt semantic layers, data catalogs, schema registries, and internal developer portals. This skill plus deterministic scripts is the practical, app-by-app version.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Landmines
|
|
234
|
+
|
|
235
|
+
- Secret leakage: never print passwords, tokens, or full connection strings.
|
|
236
|
+
- SQL performance: avoid unbounded aggregation on large LIVE tables.
|
|
237
|
+
- PII exposure: classify MSISDN, IMSI, email, customer IDs, names, and account IDs.
|
|
238
|
+
- Mockup hallucination: demo data is not a production contract.
|
|
239
|
+
- Backend overexposure: do not expose DB-only fields just because they exist.
|
|
240
|
+
- Metric ambiguity: define formula, grain, timezone, unit, null semantics, and freshness.
|
|
241
|
+
- Date/time drift: decide timezone and reporting grain.
|
|
242
|
+
- Currency/units drift: define cents vs euros, bytes vs MB/GB, percentages vs fractions.
|
|
243
|
+
- Null semantics: distinguish zero, null, missing, unavailable, and not applicable.
|
|
244
|
+
- Auth drift: app config may be stale; test and report actual connection mode.
|
|
245
|
+
- Schema doc drift: live schema can differ from docs.
|
|
246
|
+
- Service contract sprawl: do not expose every read model as public REST/MCP; expose only approved, backed, permissioned capabilities.
|
|
247
|
+
- MCP security: tools/resources must define auth, PII classification, rate limits, and read/write behavior.
|
|
248
|
+
- Small-model fragility: keep stage artifacts and statuses explicit.
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-contract-pipeline
|
|
3
|
+
context: fork
|
|
4
|
+
description: "**WORKFLOW SKILL** - Build, audit, and validate data-to-UI contracts for apps. Use whenever the user mentions data mapping, UI lineage, DB-to-UI, DisplayDTOs, source-to-screen mapping, data contracts, schema drift, typed API responses, frontend type alignment, mockup grounding, requirements-to-UI mapping, or asks whether a UI is backed by real DB/file data. Works for DBs, JSON, Markdown, CSV, XLSX, YAML, APIs, and UI mockups."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Contract Pipeline
|
|
8
|
+
|
|
9
|
+
Build a verified path from data sources to UI fields without leaking raw database or file structure into frontend components.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Requirements + UI demand decide what should be displayed.
|
|
13
|
+
DBs / files / APIs decide what can be displayed.
|
|
14
|
+
Ingestion model → normalizer → DisplayDTO defines the safe contract between them.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
If your organization has a reference scaffold for this pattern, run its tests first to understand it
|
|
18
|
+
before applying the pipeline below.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Decision tree — choose your flow before Stage 1
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Do you have DB schema docs, ERDs, or an existing API spec?
|
|
26
|
+
│
|
|
27
|
+
├─ YES → documented_workflow.md (Intake → Audit → Reconcile → Generate → Validate)
|
|
28
|
+
│
|
|
29
|
+
└─ NO → discovery_workflow.md (cold start — introspect DB first, then same 5 stages)
|
|
30
|
+
|
|
31
|
+
Are you only checking whether an existing UI is backed by data?
|
|
32
|
+
└─ YES → Run Stage 2 (Audit) only; produce gap_register in .contracts/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Operating model
|
|
38
|
+
|
|
39
|
+
1. **Inspect first, ask second.** Read the repo, DB schema, mockups, and existing DTOs before asking the user anything.
|
|
40
|
+
2. **Max 3 questions at once.** Prefer concrete defaults: "I will use `config/.env.api.dev` unless you say otherwise."
|
|
41
|
+
3. **Never print secrets.** Log variable names, not values.
|
|
42
|
+
4. **Bounded queries only.** `TOP N` / `OFFSET+FETCH` on LIVE tables. Never unbounded `SELECT *`.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Stage 1 — Intake
|
|
47
|
+
|
|
48
|
+
Collect or infer:
|
|
49
|
+
- App repo path.
|
|
50
|
+
- Source inputs: DB/table/view names, connection config, JSON/Markdown/CSV files, or schema docs.
|
|
51
|
+
- Consumer inputs: requirements docs, UI mockups, existing routes or component files.
|
|
52
|
+
- Mode: `build` | `audit` | `drift-check` | `lineage-only`.
|
|
53
|
+
|
|
54
|
+
Search `.env*`, settings modules, Docker Compose, and deployment manifests for DB config before asking.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Stage 2 — Audit
|
|
59
|
+
|
|
60
|
+
Classify every source column against the D1–D12 drift catalogue.
|
|
61
|
+
|
|
62
|
+
**D1** No fields dropped from embedded JSON/markdown blobs.
|
|
63
|
+
**D2** Ingestion model has `extra="allow"` (future columns are captured, not rejected).
|
|
64
|
+
**D3** DisplayDTO has `extra="forbid"` (normalizer bugs surface immediately).
|
|
65
|
+
**D4** DisplayDTO uses camelCase field aliases (serialised output matches frontend expectations).
|
|
66
|
+
**D5** NULL semantics are preserved, not defaulted (NULL revenue ≠ $0).
|
|
67
|
+
**D6** Type coercion validated: string → Decimal, string → datetime, string → bool.
|
|
68
|
+
**D7** Normalizer produces correct status for each null/malformed/full payload variant.
|
|
69
|
+
**D8** Golden sample round-trip: raw_row → normalizer → model_dump(by_alias=True) matches expected.
|
|
70
|
+
**D9** Schema drift: live DB columns match ingestion model field list.
|
|
71
|
+
**D10** API → TypeScript: DisplayDTO aliases match generated TS interface keys.
|
|
72
|
+
**D11** PII columns classified and not exposed unintentionally via DisplayDTO.
|
|
73
|
+
**D12** Bounded query: repository enforces page_size ≤ MAX_PAGE, no unbounded SELECT.
|
|
74
|
+
|
|
75
|
+
For embedded payload columns (NVARCHAR(MAX) / TEXT):
|
|
76
|
+
- JSON blobs → `embedded_json_adapter` → embedded payload model (extra="allow" at every depth)
|
|
77
|
+
- Markdown blobs → `embedded_markdown_adapter` → sections + bold_kv dict
|
|
78
|
+
- CSV columns → `csv_column_adapter` (RFC 4180 quoted-comma aware)
|
|
79
|
+
- Free text with IDs → `embedded_text_adapter` → paren_ids + lines
|
|
80
|
+
|
|
81
|
+
Produce: annotated column list; flag null semantics, embedded type, and known sub-schema.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Stage 3 — Reconcile
|
|
86
|
+
|
|
87
|
+
Map each source column to a DisplayDTO field. Assign one status per field:
|
|
88
|
+
|
|
89
|
+
| Status | Meaning |
|
|
90
|
+
|---|---|
|
|
91
|
+
| `contract-backed` | Source → normalizer → DisplayDTO → FE type tested end-to-end |
|
|
92
|
+
| `partially-backed` | Derives from nullable payload; may degrade to `blocked` at runtime |
|
|
93
|
+
| `blocked` | Mandatory source column always NULL in prod — cannot populate |
|
|
94
|
+
| `required-unplaced` | Frontend/requirements demand it; source not yet identified |
|
|
95
|
+
| `source-capability-only` | Source has it; no requirement or UI demand exists yet |
|
|
96
|
+
| `mockup-only` | In UI mockup only — no backend data path |
|
|
97
|
+
| `deferred` | Explicitly out of scope for current sprint |
|
|
98
|
+
|
|
99
|
+
Use the reconcile sub-prompt: `assets/prompts/reconcile_mapping.md`.
|
|
100
|
+
|
|
101
|
+
Output: `.contracts/feature.contract.json`.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Stage 4 — Generate
|
|
106
|
+
|
|
107
|
+
Produce layers in this order:
|
|
108
|
+
1. Ingestion model (`extra="allow"`, raw payload columns as `str | None`)
|
|
109
|
+
2. Embedded payload model (each sub-model also `extra="allow"`)
|
|
110
|
+
3. Adapters (scalar, csv, json, markdown, text)
|
|
111
|
+
4. Normalizer (row → DisplayDTO, status classification logic)
|
|
112
|
+
5. DisplayDTO (`frozen=True`, `extra="forbid"`, camelCase aliases)
|
|
113
|
+
6. Repository (SQLAlchemy `text()` with named params, schema-qualified, bounded)
|
|
114
|
+
7. Service (orchestrate repo → ingestion model → normalizer)
|
|
115
|
+
8. FastAPI router (`response_model=` on every route, Query bounds with ge/le)
|
|
116
|
+
9. **Query catalog** — `.contracts/query_catalog.md` (see below)
|
|
117
|
+
10. Frontend types — regenerate from `/openapi.json` via `npx openapi-typescript`
|
|
118
|
+
11. Golden fixtures + D1–D12 contract tests
|
|
119
|
+
|
|
120
|
+
`_FLEX = ConfigDict(populate_by_name=True, extra="allow")` on ingestion models.
|
|
121
|
+
`_FROZEN = ConfigDict(frozen=True, extra="forbid", populate_by_name=True)` on DisplayDTOs.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Stage 5 — Validate
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
pytest tests/unit/ -v # all D1-D12 checks must pass
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
For `mockup-only` or `required-unplaced` fields: generate `ui_gap_brief.md` and ask the
|
|
132
|
+
user to place, promote, or defer — do not silently add to a random screen.
|
|
133
|
+
|
|
134
|
+
CI rule: frozen contracts fail on unmapped DisplayDTO fields, DTO/type drift, and missing PII classification.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Query Catalog
|
|
139
|
+
|
|
140
|
+
For every DB-backed UI field, produce `.contracts/query_catalog.md`.
|
|
141
|
+
|
|
142
|
+
This document must be **executable** — every SQL block should run as-is against the target DB (substitute
|
|
143
|
+
`{schema}` with the real schema name, e.g. `dbo`). Its purpose is to make explicit, during data analysis
|
|
144
|
+
or debugging, exactly which SQL query populates which UI element.
|
|
145
|
+
|
|
146
|
+
### Format
|
|
147
|
+
|
|
148
|
+
````markdown
|
|
149
|
+
# Query Catalog — {Feature Name}
|
|
150
|
+
# Generated: {date}
|
|
151
|
+
# Target: {DB server / environment}
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## {EntityName} — {repository function name}
|
|
156
|
+
|
|
157
|
+
**UI fields populated:** `fieldA`, `fieldB`, `fieldC`
|
|
158
|
+
**Called by:** `{ServiceClass}.{method}` → `{NormalizerFunction}` → `{DisplayDTO}`
|
|
159
|
+
**Paging:** TOP {MAX_PAGE} / OFFSET+FETCH
|
|
160
|
+
|
|
161
|
+
```sql
|
|
162
|
+
-- Fetch {EntityName} rows, paged
|
|
163
|
+
-- Parameters: :customer_id (optional filter), :offset (int), :page_size (int)
|
|
164
|
+
SELECT
|
|
165
|
+
t.column_a AS field_a,
|
|
166
|
+
t.column_b AS field_b,
|
|
167
|
+
t.payload_column AS payload_column -- NVARCHAR(MAX): parsed by embedded_json_adapter
|
|
168
|
+
FROM {schema}.TableName AS t
|
|
169
|
+
WHERE (:customer_id IS NULL OR t.customer_id = :customer_id)
|
|
170
|
+
ORDER BY t.created_at DESC
|
|
171
|
+
OFFSET :offset ROWS FETCH NEXT :page_size ROWS ONLY;
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Derived fields from payload_column (not in SQL — extracted by normalizer):**
|
|
175
|
+
| UI field | Source path | Adapter |
|
|
176
|
+
|---|---|---|
|
|
177
|
+
| `summaryStatus` | Derived from NULL check on `payload_column` | n/a |
|
|
178
|
+
| `keyIssueCount` | `payload_column → key_issues[].length` | `embedded_json_adapter` |
|
|
179
|
+
| `dashboardMetrics` | `payload_column → dashboard_metrics{}` | `embedded_json_adapter` |
|
|
180
|
+
````
|
|
181
|
+
|
|
182
|
+
### Rules
|
|
183
|
+
|
|
184
|
+
- One `##` section per repository function (one query per section).
|
|
185
|
+
- List every UI field the query feeds — both scalar columns AND fields derived from embedded payloads.
|
|
186
|
+
- For embedded payload columns, add the **Derived fields** table beneath the SQL block showing the JSON path, markdown section, or CSV token that maps to each UI field.
|
|
187
|
+
- Queries must use **named bind parameters** (`:param`), not f-string interpolation.
|
|
188
|
+
- Include the `OFFSET+FETCH` or `TOP N` bound in every query — never unbounded.
|
|
189
|
+
- If a query is schema-qualified, use `{schema}.TableName` with a comment showing the default (e.g. `-- default: dbo`).
|
|
190
|
+
- After generating, verify each query runs without error against the SQLite fixture: `python fixture/seed_sqlite_fixture.py && sqlite3 fixture/sample_source.db < .contracts/query_catalog_sqlite.sql`.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Landmines
|
|
195
|
+
|
|
196
|
+
- **Secret leakage** — mask passwords and full connection strings
|
|
197
|
+
- **Unbounded queries** — no `SELECT *` on large LIVE tables; always bound
|
|
198
|
+
- **PII exposure** — classify MSISDN, email, customer IDs, names, account IDs before exposing
|
|
199
|
+
- **Mockup hallucination** — demo data constants are not a production contract
|
|
200
|
+
- **Null semantics** — distinguish zero / null / missing / unavailable / not-applicable
|
|
201
|
+
- **Metric ambiguity** — block until formula, grain, timezone, unit, and freshness are confirmed
|
|
202
|
+
- **Schema doc drift** — live schema wins over stale docs
|
|
203
|
+
- **MCP security** — every tool/resource needs auth, PII flag, rate limit, read/write scope
|
package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/adapter.py.template
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""
|
|
2
|
+
{{SOURCE_NAME}} Source Adapter
|
|
3
|
+
|
|
4
|
+
Fetches raw {{source_name}} data from {{source_type}}.
|
|
5
|
+
Part of the data contract pipeline — this adapter returns raw dict/list,
|
|
6
|
+
validated downstream by the ingestion model.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
from loguru import logger
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class {{ClassName}}Adapter:
|
|
15
|
+
"""Fetches raw {{source_name}} data from {{source_type}}."""
|
|
16
|
+
|
|
17
|
+
def __init__(self, source_path: Path) -> None:
|
|
18
|
+
self._source_path = source_path
|
|
19
|
+
|
|
20
|
+
def fetch(self) -> dict:
|
|
21
|
+
"""
|
|
22
|
+
Load raw payload from source.
|
|
23
|
+
|
|
24
|
+
Returns unvalidated dict — the ingestion model validates the shape.
|
|
25
|
+
|
|
26
|
+
Raises:
|
|
27
|
+
FileNotFoundError: If the source file does not exist.
|
|
28
|
+
json.JSONDecodeError: If the source file is not valid JSON.
|
|
29
|
+
"""
|
|
30
|
+
import json
|
|
31
|
+
|
|
32
|
+
logger.debug(f"Fetching {{source_name}} from {self._source_path}")
|
|
33
|
+
|
|
34
|
+
if not self._source_path.exists():
|
|
35
|
+
raise FileNotFoundError(
|
|
36
|
+
f"{{source_name}} source not found: {self._source_path}"
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
raw = json.loads(self._source_path.read_text(encoding="utf-8"))
|
|
40
|
+
logger.info(
|
|
41
|
+
f"Loaded {{source_name}} payload "
|
|
42
|
+
f"({len(raw) if isinstance(raw, list) else 'object'})"
|
|
43
|
+
)
|
|
44
|
+
return raw
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""
|
|
2
|
+
{{SOURCE_NAME}} API Router
|
|
3
|
+
|
|
4
|
+
FastAPI endpoint returning typed response_model for {{source_name}} data.
|
|
5
|
+
|
|
6
|
+
Part of the data contract pipeline:
|
|
7
|
+
Source → Adapter → Ingestion Model → Normalizer → Display DTO → **API Router**
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from fastapi import APIRouter, Depends, HTTPException, Query
|
|
11
|
+
from loguru import logger
|
|
12
|
+
|
|
13
|
+
from src.models.responses.{{source_slug}} import {{ClassName}}Response
|
|
14
|
+
from src.services.{{source_slug}}_service import get_{{source_slug}}_data
|
|
15
|
+
|
|
16
|
+
router = APIRouter(
|
|
17
|
+
prefix="/api/{{url-slug}}",
|
|
18
|
+
tags=["{{source_name}}"],
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@router.get(
|
|
23
|
+
"/",
|
|
24
|
+
response_model={{ClassName}}Response,
|
|
25
|
+
summary="Get {{source_name}} data",
|
|
26
|
+
)
|
|
27
|
+
async def get_data(
|
|
28
|
+
# --- Add query parameters as needed ---
|
|
29
|
+
# period: str = Query(..., description="Period identifier (e.g., '2026-03')"),
|
|
30
|
+
):
|
|
31
|
+
"""
|
|
32
|
+
Retrieve {{source_name}} data.
|
|
33
|
+
|
|
34
|
+
Returns a typed {{ClassName}}Response validated by Pydantic.
|
|
35
|
+
"""
|
|
36
|
+
try:
|
|
37
|
+
result = await get_{{source_slug}}_data()
|
|
38
|
+
return result
|
|
39
|
+
except FileNotFoundError:
|
|
40
|
+
raise HTTPException(status_code=404, detail="Data not found for requested period")
|
|
41
|
+
except Exception as e:
|
|
42
|
+
logger.error(f"Error fetching {{source_name}} data: {e}")
|
|
43
|
+
raise HTTPException(status_code=500, detail="Internal server error")
|