@caddis/cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/README.md +29 -16
  2. package/bundles/antigravity-plugin-extras/plugin.json +5 -0
  3. package/bundles/antigravity-plugin-extras/skills/_registry.md +154 -0
  4. package/bundles/antigravity-plugin-extras/skills/agent-md-refactor/SKILL.md +356 -0
  5. package/bundles/antigravity-plugin-extras/skills/agent-orchestration/SKILL.md +517 -0
  6. package/bundles/antigravity-plugin-extras/skills/algorithmic-art/SKILL.md +293 -0
  7. package/bundles/antigravity-plugin-extras/skills/anchor-review/SKILL.md +135 -0
  8. package/bundles/antigravity-plugin-extras/skills/api-client-patterns/SKILL.md +367 -0
  9. package/bundles/antigravity-plugin-extras/skills/architecture-design/SKILL.md +244 -0
  10. package/bundles/antigravity-plugin-extras/skills/architecture-diagram/SKILL.md +156 -0
  11. package/bundles/antigravity-plugin-extras/skills/architecture-document/SKILL.md +321 -0
  12. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/LICENSE.txt +202 -0
  13. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/SKILL.md +74 -0
  14. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  15. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  16. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  17. package/bundles/antigravity-plugin-extras/skills/ascii-art/SKILL.md +144 -0
  18. package/bundles/antigravity-plugin-extras/skills/asking-questions/SKILL.md +81 -0
  19. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/SKILL.md +118 -0
  20. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/cross-service/credential-management.md +450 -0
  21. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/browser/README.md +363 -0
  22. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/code-interpreter/README.md +232 -0
  23. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/README.md +100 -0
  24. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deploy-template.sh +117 -0
  25. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deployment-strategies.md +416 -0
  26. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/troubleshooting-guide.md +384 -0
  27. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/validate-deployment.sh +186 -0
  28. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/identity/README.md +186 -0
  29. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/memory/README.md +253 -0
  30. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/observability/README.md +517 -0
  31. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/runtime/README.md +215 -0
  32. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/SKILL.md +279 -0
  33. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/references/cdk-patterns.md +431 -0
  34. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/scripts/validate-stack.sh +240 -0
  35. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/SKILL.md +318 -0
  36. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/cloudwatch-alarms.md +567 -0
  37. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/operations-patterns.md +394 -0
  38. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/SKILL.md +758 -0
  39. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/deployment-best-practices.md +830 -0
  40. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/eda-patterns.md +1002 -0
  41. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/observability-best-practices.md +770 -0
  42. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/performance-optimization.md +671 -0
  43. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/security-best-practices.md +625 -0
  44. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/serverless-patterns.md +838 -0
  45. package/bundles/antigravity-plugin-extras/skills/backend-to-frontend-handoff/SKILL.md +139 -0
  46. package/bundles/antigravity-plugin-extras/skills/banner-design/SKILL.md +188 -0
  47. package/bundles/antigravity-plugin-extras/skills/brand-design/SKILL.md +298 -0
  48. package/bundles/antigravity-plugin-extras/skills/brand-guidelines/LICENSE.txt +202 -0
  49. package/bundles/antigravity-plugin-extras/skills/brand-guidelines/SKILL.md +118 -0
  50. package/bundles/antigravity-plugin-extras/skills/brand-voice/SKILL.md +93 -0
  51. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/SKILL.md +392 -0
  52. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/agent-patterns.md +461 -0
  53. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/examples.md +188 -0
  54. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/state-patterns.md +360 -0
  55. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/troubleshooting.md +362 -0
  56. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/SKILL.md +266 -0
  57. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/examples.md +115 -0
  58. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +338 -0
  59. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +317 -0
  60. package/bundles/antigravity-plugin-extras/skills/caching-patterns/SKILL.md +385 -0
  61. package/bundles/antigravity-plugin-extras/skills/canvas-design/LICENSE.txt +202 -0
  62. package/bundles/antigravity-plugin-extras/skills/canvas-design/SKILL.md +91 -0
  63. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  64. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  65. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  66. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  67. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  68. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  69. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  70. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  71. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  72. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  73. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  74. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  75. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  76. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  77. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  78. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  79. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  80. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  81. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  82. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  83. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  84. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  85. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  86. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  87. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  88. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  89. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  90. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  91. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  92. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  93. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  94. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  95. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  96. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  97. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  98. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  99. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  100. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  101. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  102. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  103. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  104. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  105. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  106. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  107. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  108. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  109. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  110. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  111. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  112. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  113. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  114. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  115. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  116. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  117. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  118. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  119. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  120. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  121. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  122. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  123. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  124. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  125. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  126. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  127. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  128. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  129. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  130. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  131. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  132. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  133. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  134. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  135. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  136. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  137. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  138. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  139. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  140. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  141. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  142. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  143. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  144. package/bundles/antigravity-plugin-extras/skills/changelog-generator/SKILL.md +105 -0
  145. package/bundles/antigravity-plugin-extras/skills/code-explainer/SKILL.md +91 -0
  146. package/bundles/antigravity-plugin-extras/skills/competitive-ads-extractor/SKILL.md +294 -0
  147. package/bundles/antigravity-plugin-extras/skills/component-testing/SKILL.md +310 -0
  148. package/bundles/antigravity-plugin-extras/skills/content-research-writer/SKILL.md +539 -0
  149. package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +51 -0
  150. package/bundles/antigravity-plugin-extras/skills/data-analysis/SKILL.md +111 -0
  151. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/README.md +248 -0
  152. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/SKILL.md +203 -0
  153. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/adapter.py.template +44 -0
  154. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/api-router.py.template +43 -0
  155. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/contract-test.py.template +384 -0
  156. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/display-dto.py.template +39 -0
  157. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-service.ts.template +46 -0
  158. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-types.ts.template +38 -0
  159. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/ingestion-model.py.template +42 -0
  160. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/mapping-doc.md.template +46 -0
  161. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/normalizer.py.template +48 -0
  162. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_requirements.md +36 -0
  163. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_ui_demand.md +35 -0
  164. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/reconcile_mapping.md +66 -0
  165. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/query-catalog.md.template +62 -0
  166. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/consumer-driven-contracts.md +131 -0
  167. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/drift-check-catalog.md +305 -0
  168. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/layer-responsibilities.md +333 -0
  169. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_connections.py +170 -0
  170. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_sources.py +161 -0
  171. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/drift_check.py +171 -0
  172. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py +1363 -0
  173. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_gap_report.py +81 -0
  174. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_mapping_doc.py +294 -0
  175. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/ts_dto_compare.py +214 -0
  176. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/validate_lineage.py +51 -0
  177. package/bundles/antigravity-plugin-extras/skills/data-loader/SKILL.md +753 -0
  178. package/bundles/antigravity-plugin-extras/skills/data-validation/SKILL.md +220 -0
  179. package/bundles/antigravity-plugin-extras/skills/db-testing/SKILL.md +117 -0
  180. package/bundles/antigravity-plugin-extras/skills/deploy-local/SKILL.md +259 -0
  181. package/bundles/antigravity-plugin-extras/skills/design-md/SKILL.md +167 -0
  182. package/bundles/antigravity-plugin-extras/skills/design-system-tokens/SKILL.md +240 -0
  183. package/bundles/antigravity-plugin-extras/skills/design-system-tokens/references/DESIGN-SYSTEM-TEMPLATE.md +577 -0
  184. package/bundles/antigravity-plugin-extras/skills/developer-growth-analysis/SKILL.md +323 -0
  185. package/bundles/antigravity-plugin-extras/skills/doc-coauthoring/SKILL.md +378 -0
  186. package/bundles/antigravity-plugin-extras/skills/documentation-analyzer/SKILL.md +78 -0
  187. package/bundles/antigravity-plugin-extras/skills/domain-name-brainstormer/SKILL.md +213 -0
  188. package/bundles/antigravity-plugin-extras/skills/enterprise-dashboard-aesthetic-system/SKILL.md +120 -0
  189. package/bundles/antigravity-plugin-extras/skills/excalidraw/SKILL.md +193 -0
  190. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/element-types.md +497 -0
  191. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/excalidraw-schema.md +356 -0
  192. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/reliable-diagrams.md +115 -0
  193. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/README.md +60 -0
  194. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-arrow.py +354 -0
  195. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-icon-to-diagram.py +412 -0
  196. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/split-excalidraw-library.py +183 -0
  197. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/business-flow-swimlane-template.excalidraw +334 -0
  198. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/class-diagram-template.excalidraw +558 -0
  199. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/data-flow-diagram-template.excalidraw +279 -0
  200. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/er-diagram-template.excalidraw +662 -0
  201. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/flowchart-template.excalidraw +179 -0
  202. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/mindmap-template.excalidraw +244 -0
  203. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/relationship-template.excalidraw +145 -0
  204. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/reliable-flowchart.excalidraw +1 -0
  205. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/sequence-diagram-template.excalidraw +509 -0
  206. package/bundles/antigravity-plugin-extras/skills/file-organizer/SKILL.md +434 -0
  207. package/bundles/antigravity-plugin-extras/skills/game-changing-features/README.md +221 -0
  208. package/bundles/antigravity-plugin-extras/skills/game-changing-features/SKILL.md +265 -0
  209. package/bundles/antigravity-plugin-extras/skills/github-issues/SKILL.md +359 -0
  210. package/bundles/antigravity-plugin-extras/skills/github-issues/references/templates.md +90 -0
  211. package/bundles/antigravity-plugin-extras/skills/golden-nuggets/SKILL.md +192 -0
  212. package/bundles/antigravity-plugin-extras/skills/humanizer/SKILL.md +194 -0
  213. package/bundles/antigravity-plugin-extras/skills/image-enhancer/SKILL.md +100 -0
  214. package/bundles/antigravity-plugin-extras/skills/intent-writer/SKILL.md +201 -0
  215. package/bundles/antigravity-plugin-extras/skills/internal-comms/LICENSE.txt +202 -0
  216. package/bundles/antigravity-plugin-extras/skills/internal-comms/SKILL.md +124 -0
  217. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/3p-updates.md +47 -0
  218. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/company-newsletter.md +65 -0
  219. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/faq-answers.md +30 -0
  220. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/general-comms.md +16 -0
  221. package/bundles/antigravity-plugin-extras/skills/invoice-organizer/SKILL.md +447 -0
  222. package/bundles/antigravity-plugin-extras/skills/jira-issues/SKILL.md +182 -0
  223. package/bundles/antigravity-plugin-extras/skills/job-application/SKILL.md +188 -0
  224. package/bundles/antigravity-plugin-extras/skills/lead-research-assistant/SKILL.md +200 -0
  225. package/bundles/antigravity-plugin-extras/skills/llm-application-dev/SKILL.md +217 -0
  226. package/bundles/antigravity-plugin-extras/skills/mcp-builder/LICENSE.txt +202 -0
  227. package/bundles/antigravity-plugin-extras/skills/mcp-builder/SKILL.md +100 -0
  228. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/evaluation.md +602 -0
  229. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/mcp_best_practices.md +915 -0
  230. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/node_mcp_server.md +916 -0
  231. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/python_mcp_server.md +752 -0
  232. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/connections.py +151 -0
  233. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/evaluation.py +373 -0
  234. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  235. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/requirements.txt +2 -0
  236. package/bundles/antigravity-plugin-extras/skills/meeting-insights-analyzer/SKILL.md +328 -0
  237. package/bundles/antigravity-plugin-extras/skills/monorepo/SKILL.md +267 -0
  238. package/bundles/antigravity-plugin-extras/skills/naming-analyzer/SKILL.md +376 -0
  239. package/bundles/antigravity-plugin-extras/skills/nextjs-app-router/SKILL.md +271 -0
  240. package/bundles/antigravity-plugin-extras/skills/notebooklm/AUTHENTICATION.md +154 -0
  241. package/bundles/antigravity-plugin-extras/skills/notebooklm/SKILL.md +270 -0
  242. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/api_reference.md +309 -0
  243. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/troubleshooting.md +376 -0
  244. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/usage_patterns.md +338 -0
  245. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/__init__.py +81 -0
  246. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/ask_question.py +256 -0
  247. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/auth_manager.py +358 -0
  248. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_session.py +255 -0
  249. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_utils.py +107 -0
  250. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/cleanup_manager.py +302 -0
  251. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/config.py +44 -0
  252. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/notebook_manager.py +410 -0
  253. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/run.py +102 -0
  254. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/setup_environment.py +204 -0
  255. package/bundles/antigravity-plugin-extras/skills/observability/SKILL.md +371 -0
  256. package/bundles/antigravity-plugin-extras/skills/onboard-project/SKILL.md +192 -0
  257. package/bundles/antigravity-plugin-extras/skills/performance-testing/SKILL.md +226 -0
  258. package/bundles/antigravity-plugin-extras/skills/pipeline-state/SKILL.md +208 -0
  259. package/bundles/antigravity-plugin-extras/skills/plantuml/SKILL.md +228 -0
  260. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/SKILL.md +142 -0
  261. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/linear.app.md +196 -0
  262. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/stripe.md +214 -0
  263. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/vercel.md +218 -0
  264. package/bundles/antigravity-plugin-extras/skills/prd-to-code/SKILL.md +127 -0
  265. package/bundles/antigravity-plugin-extras/skills/raffle-winner-picker/SKILL.md +159 -0
  266. package/bundles/antigravity-plugin-extras/skills/react-useeffect/README.md +320 -0
  267. package/bundles/antigravity-plugin-extras/skills/react-useeffect/SKILL.md +53 -0
  268. package/bundles/antigravity-plugin-extras/skills/react-useeffect/alternatives.md +258 -0
  269. package/bundles/antigravity-plugin-extras/skills/react-useeffect/anti-patterns.md +290 -0
  270. package/bundles/antigravity-plugin-extras/skills/receiving-code-review/SKILL.md +213 -0
  271. package/bundles/antigravity-plugin-extras/skills/relay/SKILL.md +246 -0
  272. package/bundles/antigravity-plugin-extras/skills/requesting-code-review/SKILL.md +105 -0
  273. package/bundles/antigravity-plugin-extras/skills/requesting-code-review/code-reviewer.md +146 -0
  274. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/SKILL.md +350 -0
  275. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/pwa-checklist.md +226 -0
  276. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/touch-and-interaction.md +265 -0
  277. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/transformation-catalogue.md +326 -0
  278. package/bundles/antigravity-plugin-extras/skills/schema-migration/SKILL.md +275 -0
  279. package/bundles/antigravity-plugin-extras/skills/setup-project-ai/SKILL.md +120 -0
  280. package/bundles/antigravity-plugin-extras/skills/shadcn-radix/SKILL.md +330 -0
  281. package/bundles/antigravity-plugin-extras/skills/sketch/SKILL.md +104 -0
  282. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/LICENSE.txt +202 -0
  283. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/SKILL.md +646 -0
  284. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/color_palettes.py +302 -0
  285. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/easing.py +230 -0
  286. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/frame_composer.py +469 -0
  287. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/gif_builder.py +246 -0
  288. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/typography.py +357 -0
  289. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/validators.py +264 -0
  290. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/visual_effects.py +494 -0
  291. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/requirements.txt +4 -0
  292. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/bounce.py +106 -0
  293. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/explode.py +331 -0
  294. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/fade.py +329 -0
  295. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/flip.py +291 -0
  296. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
  297. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/morph.py +329 -0
  298. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/move.py +293 -0
  299. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/pulse.py +268 -0
  300. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/shake.py +127 -0
  301. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/slide.py +291 -0
  302. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/spin.py +269 -0
  303. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/wiggle.py +300 -0
  304. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/zoom.py +312 -0
  305. package/bundles/antigravity-plugin-extras/skills/slides/SKILL.md +38 -0
  306. package/bundles/antigravity-plugin-extras/skills/state-tracking/SKILL.md +131 -0
  307. package/bundles/antigravity-plugin-extras/skills/streamlit-dev/SKILL.md +268 -0
  308. package/bundles/antigravity-plugin-extras/skills/svg-create/SKILL.md +251 -0
  309. package/bundles/antigravity-plugin-extras/skills/theme-factory/LICENSE.txt +202 -0
  310. package/bundles/antigravity-plugin-extras/skills/theme-factory/SKILL.md +59 -0
  311. package/bundles/antigravity-plugin-extras/skills/theme-factory/theme-showcase.pdf +0 -0
  312. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/arctic-frost.md +19 -0
  313. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/botanical-garden.md +19 -0
  314. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/desert-rose.md +19 -0
  315. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/forest-canopy.md +19 -0
  316. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/golden-hour.md +19 -0
  317. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  318. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/modern-minimalist.md +19 -0
  319. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/ocean-depths.md +19 -0
  320. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  321. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/tech-innovation.md +19 -0
  322. package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/LICENSE.txt +202 -0
  323. package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/SKILL.md +320 -0
  324. package/bundles/antigravity-plugin-extras/skills/ui-testing/SKILL.md +660 -0
  325. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/SKILL.md +660 -0
  326. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/_sync_all.py +414 -0
  327. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/app-interface.csv +31 -0
  328. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/charts.csv +26 -0
  329. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/colors.csv +162 -0
  330. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/design.csv +1776 -0
  331. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/draft.csv +1779 -0
  332. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/google-fonts.csv +1924 -0
  333. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/icons.csv +106 -0
  334. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/landing.csv +35 -0
  335. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/products.csv +162 -0
  336. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/react-performance.csv +45 -0
  337. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/styles.csv +85 -0
  338. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/typography.csv +74 -0
  339. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ui-reasoning.csv +162 -0
  340. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ux-guidelines.csv +100 -0
  341. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/core.py +247 -0
  342. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/design_system.py +1067 -0
  343. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/search.py +114 -0
  344. package/bundles/antigravity-plugin-extras/skills/understand-anything/SKILL.md +140 -0
  345. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/commands.md +252 -0
  346. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/graph-schema.md +116 -0
  347. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/pipeline.md +331 -0
  348. package/bundles/antigravity-plugin-extras/skills/update-readme/SKILL.md +74 -0
  349. package/bundles/antigravity-plugin-extras/skills/verification-loop/SKILL.md +209 -0
  350. package/bundles/antigravity-plugin-extras/skills/video-downloader/SKILL.md +107 -0
  351. package/bundles/antigravity-plugin-extras/skills/webapp-development/SKILL.md +288 -0
  352. package/bundles/antigravity-plugin-extras/skills/word-cloud/SKILL.md +339 -0
  353. package/bundles/antigravity-plugin-extras/skills/word-cloud/agents/agent-interface.md +175 -0
  354. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/html.md +384 -0
  355. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/nlp-keywords.md +127 -0
  356. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/palettes.md +149 -0
  357. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/python.md +249 -0
  358. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/react.md +427 -0
  359. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/shapes.md +135 -0
  360. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/stopwords.md +115 -0
  361. package/bundles/antigravity-plugin-extras/skills/youtube-transcript/SKILL.md +416 -0
  362. package/bundles/manifest.json +2 -1
  363. package/dist/cli.js +166 -37
  364. package/package.json +1 -1
@@ -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.