cfsa-antigravity 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/bin/cli.mjs +324 -0
  2. package/package.json +34 -0
  3. package/template/.agent/instructions/commands.md +48 -0
  4. package/template/.agent/instructions/patterns.md +61 -0
  5. package/template/.agent/instructions/structure.md +29 -0
  6. package/template/.agent/instructions/tech-stack.md +43 -0
  7. package/template/.agent/instructions/workflow.md +41 -0
  8. package/template/.agent/kit-sync.md +15 -0
  9. package/template/.agent/rules/boundary-not-placeholder.md +146 -0
  10. package/template/.agent/rules/completion-checklist.md +48 -0
  11. package/template/.agent/rules/decision-classification.md +103 -0
  12. package/template/.agent/rules/extensibility.md +47 -0
  13. package/template/.agent/rules/question-vs-command.md +81 -0
  14. package/template/.agent/rules/security-first.md +43 -0
  15. package/template/.agent/rules/specificity-standards.md +54 -0
  16. package/template/.agent/rules/tdd-contract-first.md +57 -0
  17. package/template/.agent/rules/vertical-slices.md +42 -0
  18. package/template/.agent/skill-library/MANIFEST.md +480 -0
  19. package/template/.agent/skill-library/README.md +38 -0
  20. package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
  21. package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
  22. package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  23. package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  24. package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  25. package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
  26. package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
  27. package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  28. package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
  29. package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
  30. package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  31. package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  32. package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  33. package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
  34. package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
  35. package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  36. package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  37. package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
  38. package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
  39. package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
  40. package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
  41. package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  42. package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  43. package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  44. package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  45. package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  46. package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  47. package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  48. package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  49. package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  50. package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  51. package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  52. package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  53. package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  54. package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  55. package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  56. package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  57. package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  58. package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
  59. package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  60. package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  61. package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
  62. package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  63. package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  64. package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  65. package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  66. package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  67. package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
  68. package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
  69. package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
  70. package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
  71. package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  72. package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  73. package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  74. package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  75. package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  76. package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  77. package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  78. package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  79. package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  80. package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  81. package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  82. package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  83. package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  84. package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
  85. package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  86. package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  87. package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  88. package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  89. package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  90. package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  91. package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
  92. package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
  93. package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  94. package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
  95. package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
  96. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  97. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  98. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  99. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  100. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  101. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  102. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  103. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  104. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  105. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  106. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  107. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  108. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  109. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  110. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  111. package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  112. package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  113. package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  114. package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  115. package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  116. package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  117. package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  118. package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
  119. package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  120. package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
  121. package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  122. package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  123. package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  124. package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  125. package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
  126. package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  127. package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  128. package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  129. package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
  130. package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  131. package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  132. package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  133. package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  134. package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  135. package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  136. package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  137. package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  138. package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  139. package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
  140. package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  141. package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
  142. package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
  143. package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  144. package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
  145. package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  146. package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  147. package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  148. package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  149. package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
  150. package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  151. package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  152. package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  153. package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
  154. package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  155. package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  156. package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
  157. package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  158. package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  159. package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  160. package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  161. package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  162. package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  163. package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  164. package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  165. package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  166. package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  167. package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  168. package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  169. package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  170. package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  171. package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  172. package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  173. package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  174. package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  175. package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  176. package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  177. package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  178. package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  179. package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  180. package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  181. package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  182. package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  183. package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  184. package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  185. package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  186. package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  187. package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  188. package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  189. package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  190. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  191. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  192. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  193. package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  194. package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  195. package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  196. package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  197. package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  198. package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  199. package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
  200. package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  201. package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
  202. package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  203. package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  204. package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  205. package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  206. package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  207. package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  208. package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  209. package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  210. package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  211. package/template/.agent/skills/accessibility/SKILL.md +522 -0
  212. package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
  213. package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
  214. package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
  215. package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  216. package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
  217. package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  218. package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
  219. package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  220. package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
  221. package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  222. package/template/.agent/skills/api-versioning/SKILL.md +420 -0
  223. package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
  224. package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
  225. package/template/.agent/skills/brainstorming/SKILL.md +236 -0
  226. package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
  227. package/template/.agent/skills/clean-code/SKILL.md +94 -0
  228. package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
  229. package/template/.agent/skills/concise-planning/SKILL.md +68 -0
  230. package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
  231. package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
  232. package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
  233. package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
  234. package/template/.agent/skills/design-direction/SKILL.md +45 -0
  235. package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
  236. package/template/.agent/skills/find-skills/SKILL.md +145 -0
  237. package/template/.agent/skills/git-advanced/SKILL.md +972 -0
  238. package/template/.agent/skills/git-workflow/SKILL.md +420 -0
  239. package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
  240. package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
  241. package/template/.agent/skills/migration-management/SKILL.md +384 -0
  242. package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
  243. package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
  244. package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
  245. package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
  246. package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
  247. package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
  248. package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  249. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  250. package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  251. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  252. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
  253. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
  254. package/template/.agent/skills/prd-templates/SKILL.md +88 -0
  255. package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
  256. package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
  257. package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
  258. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
  259. package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
  260. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
  261. package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  262. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
  263. package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  264. package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
  265. package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  266. package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
  267. package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
  268. package/template/.agent/skills/prompt-engineer/README.md +659 -0
  269. package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
  270. package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
  271. package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
  272. package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
  273. package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
  274. package/template/.agent/skills/session-continuity/SKILL.md +730 -0
  275. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  276. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  277. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
  278. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  279. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
  280. package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  281. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  282. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
  283. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  284. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
  285. package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  286. package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
  287. package/template/.agent/skills/skill-creator/README.md +270 -0
  288. package/template/.agent/skills/skill-creator/SKILL.md +590 -0
  289. package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  290. package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
  291. package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  292. package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  293. package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  294. package/template/.agent/skills/spec-writing/SKILL.md +110 -0
  295. package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
  296. package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
  297. package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  298. package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
  299. package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
  300. package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
  301. package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
  302. package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
  303. package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
  304. package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
  305. package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
  306. package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
  307. package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
  308. package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
  309. package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  310. package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  311. package/template/.agent/skills/technical-writer/SKILL.md +242 -0
  312. package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
  313. package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
  314. package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
  315. package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
  316. package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
  317. package/template/.agent/workflows/audit-ambiguity.md +64 -0
  318. package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
  319. package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
  320. package/template/.agent/workflows/bootstrap-agents.md +66 -0
  321. package/template/.agent/workflows/create-prd-architecture.md +119 -0
  322. package/template/.agent/workflows/create-prd-compile.md +138 -0
  323. package/template/.agent/workflows/create-prd-design-system.md +135 -0
  324. package/template/.agent/workflows/create-prd-security.md +113 -0
  325. package/template/.agent/workflows/create-prd-stack.md +91 -0
  326. package/template/.agent/workflows/create-prd.md +168 -0
  327. package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
  328. package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
  329. package/template/.agent/workflows/decompose-architecture.md +111 -0
  330. package/template/.agent/workflows/evolve-contract.md +98 -0
  331. package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
  332. package/template/.agent/workflows/evolve-feature-classify.md +116 -0
  333. package/template/.agent/workflows/evolve-feature.md +56 -0
  334. package/template/.agent/workflows/ideate-discover.md +144 -0
  335. package/template/.agent/workflows/ideate-extract.md +129 -0
  336. package/template/.agent/workflows/ideate-validate.md +117 -0
  337. package/template/.agent/workflows/ideate.md +113 -0
  338. package/template/.agent/workflows/implement-slice-setup.md +113 -0
  339. package/template/.agent/workflows/implement-slice-tdd.md +198 -0
  340. package/template/.agent/workflows/implement-slice.md +50 -0
  341. package/template/.agent/workflows/plan-phase.md +202 -0
  342. package/template/.agent/workflows/propagate-decision-apply.md +135 -0
  343. package/template/.agent/workflows/propagate-decision-scan.md +147 -0
  344. package/template/.agent/workflows/propagate-decision.md +56 -0
  345. package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
  346. package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
  347. package/template/.agent/workflows/remediate-pipeline.md +55 -0
  348. package/template/.agent/workflows/resolve-ambiguity.md +82 -0
  349. package/template/.agent/workflows/sync-kit.md +209 -0
  350. package/template/.agent/workflows/update-architecture-map.md +74 -0
  351. package/template/.agent/workflows/validate-phase.md +219 -0
  352. package/template/.agent/workflows/verify-infrastructure.md +207 -0
  353. package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
  354. package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
  355. package/template/.agent/workflows/write-architecture-spec.md +63 -0
  356. package/template/.agent/workflows/write-be-spec-classify.md +165 -0
  357. package/template/.agent/workflows/write-be-spec-write.md +98 -0
  358. package/template/.agent/workflows/write-be-spec.md +76 -0
  359. package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
  360. package/template/.agent/workflows/write-fe-spec-write.md +94 -0
  361. package/template/.agent/workflows/write-fe-spec.md +71 -0
  362. package/template/AGENTS.md +176 -0
  363. package/template/GEMINI.md +177 -0
  364. package/template/docs/README.md +187 -0
  365. package/template/docs/audits/.gitkeep +0 -0
  366. package/template/docs/audits/README.md +10 -0
  367. package/template/docs/plans/.gitkeep +0 -0
  368. package/template/docs/plans/README.md +21 -0
  369. package/template/docs/plans/be/.gitkeep +0 -0
  370. package/template/docs/plans/be/README.md +11 -0
  371. package/template/docs/plans/fe/.gitkeep +0 -0
  372. package/template/docs/plans/fe/README.md +11 -0
  373. package/template/docs/plans/ia/.gitkeep +0 -0
  374. package/template/docs/plans/ia/README.md +17 -0
  375. package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
  376. package/template/docs/plans/ia/deep-dives/README.md +5 -0
  377. package/template/docs/plans/phases/.gitkeep +0 -0
  378. package/template/docs/plans/phases/README.md +11 -0
@@ -0,0 +1,467 @@
1
+ ---
2
+ name: aws
3
+ description: AWS hosting and deployment patterns covering compute (EC2, ECS, Lambda), networking (ALB, CloudFront, Route 53, API Gateway), databases (RDS, ElastiCache), infrastructure-as-code (CDK), IAM, monitoring (CloudWatch), and cost optimization. Use when deploying applications to AWS or designing cloud architecture. Triggers on AWS, EC2, ECS, Fargate, Lambda, CloudFront, CDK, API Gateway, Route 53, RDS, IAM.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # AWS Hosting
8
+
9
+ AWS provides the broadest set of cloud services. This skill covers the most common hosting patterns for web applications, APIs, and background services, with infrastructure-as-code via AWS CDK.
10
+
11
+ ## Architecture Decision Tree
12
+
13
+ ```
14
+ What are you deploying?
15
+ ├─ Static site (HTML/CSS/JS) ──────────> S3 + CloudFront
16
+ ├─ Server-rendered app (Next.js, etc.) ─> ECS Fargate or Lambda
17
+ ├─ REST/GraphQL API ───────────────────> Lambda + API Gateway OR ECS Fargate + ALB
18
+ ├─ Long-running background workers ────> ECS Fargate (always-on) or EC2
19
+ ├─ Event-driven functions ─────────────> Lambda (triggered by SQS, S3, EventBridge)
20
+ ├─ Containerized microservices ────────> ECS Fargate + ALB + Service Connect
21
+ └─ Full control over the VM ───────────> EC2 (last resort)
22
+ ```
23
+
24
+ ## EC2 — Virtual Machines
25
+
26
+ Use EC2 only when you need full OS-level control, GPU instances, or specific hardware. For most web apps, prefer ECS Fargate or Lambda.
27
+
28
+ ```typescript
29
+ // CDK: EC2 instance
30
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
31
+
32
+ const vpc = new ec2.Vpc(this, 'Vpc', { maxAzs: 2 });
33
+
34
+ const instance = new ec2.Instance(this, 'WebServer', {
35
+ vpc,
36
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
37
+ machineImage: ec2.MachineImage.latestAmazonLinux2023(),
38
+ keyPair: ec2.KeyPair.fromKeyPairName(this, 'KeyPair', 'my-key'),
39
+ });
40
+
41
+ instance.connections.allowFromAnyIpv4(ec2.Port.tcp(80));
42
+ instance.connections.allowFromAnyIpv4(ec2.Port.tcp(443));
43
+ ```
44
+
45
+ ## ECS Fargate — Serverless Containers
46
+
47
+ The standard choice for containerized web applications. No servers to manage, auto-scaling built in.
48
+
49
+ ```typescript
50
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
51
+ import * as ecsPatterns from 'aws-cdk-lib/aws-ecs-patterns';
52
+
53
+ const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
54
+
55
+ // Web service with ALB (most common pattern)
56
+ const service = new ecsPatterns.ApplicationLoadBalancedFargateService(this, 'WebApp', {
57
+ cluster,
58
+ cpu: 512,
59
+ memoryLimitMiB: 1024,
60
+ desiredCount: 2,
61
+ taskImageOptions: {
62
+ image: ecs.ContainerImage.fromAsset('./'), // Build from Dockerfile in root
63
+ containerPort: 3000,
64
+ environment: {
65
+ NODE_ENV: 'production',
66
+ DATABASE_URL: databaseUrl,
67
+ },
68
+ },
69
+ publicLoadBalancer: true,
70
+ });
71
+
72
+ // Auto-scaling
73
+ const scaling = service.service.autoScaleTaskCount({ maxCapacity: 10 });
74
+ scaling.scaleOnCpuUtilization('CpuScaling', {
75
+ targetUtilizationPercent: 70,
76
+ });
77
+ scaling.scaleOnMemoryUtilization('MemoryScaling', {
78
+ targetUtilizationPercent: 80,
79
+ });
80
+ ```
81
+
82
+ ### ECS with custom task definition
83
+
84
+ ```typescript
85
+ const taskDef = new ecs.FargateTaskDefinition(this, 'TaskDef', {
86
+ cpu: 1024,
87
+ memoryLimitMiB: 2048,
88
+ });
89
+
90
+ taskDef.addContainer('app', {
91
+ image: ecs.ContainerImage.fromEcrRepository(repo, 'latest'),
92
+ portMappings: [{ containerPort: 3000 }],
93
+ logging: ecs.LogDrivers.awsLogs({ streamPrefix: 'app' }),
94
+ healthCheck: {
95
+ command: ['CMD-SHELL', 'curl -f http://localhost:3000/health || exit 1'],
96
+ interval: cdk.Duration.seconds(30),
97
+ timeout: cdk.Duration.seconds(5),
98
+ retries: 3,
99
+ },
100
+ });
101
+ ```
102
+
103
+ ## Lambda — Serverless Functions
104
+
105
+ Best for event-driven workloads, APIs with variable traffic, and cost-sensitive projects.
106
+
107
+ ```typescript
108
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
109
+ import * as lambdaNode from 'aws-cdk-lib/aws-lambda-nodejs';
110
+
111
+ const handler = new lambdaNode.NodejsFunction(this, 'ApiHandler', {
112
+ runtime: lambda.Runtime.NODEJS_20_X,
113
+ entry: 'src/lambda/handler.ts',
114
+ handler: 'handler',
115
+ memorySize: 512,
116
+ timeout: cdk.Duration.seconds(30),
117
+ environment: {
118
+ DATABASE_URL: databaseUrl,
119
+ },
120
+ bundling: {
121
+ minify: true,
122
+ sourceMap: true,
123
+ },
124
+ });
125
+ ```
126
+
127
+ ### Lambda handler pattern
128
+
129
+ ```typescript
130
+ // src/lambda/handler.ts
131
+ import type { APIGatewayProxyHandlerV2 } from 'aws-lambda';
132
+
133
+ export const handler: APIGatewayProxyHandlerV2 = async (event) => {
134
+ const body = JSON.parse(event.body ?? '{}');
135
+
136
+ return {
137
+ statusCode: 200,
138
+ headers: { 'Content-Type': 'application/json' },
139
+ body: JSON.stringify({ message: 'OK', data: body }),
140
+ };
141
+ };
142
+ ```
143
+
144
+ ### Lambda limitations
145
+
146
+ | Constraint | Limit |
147
+ |-----------|-------|
148
+ | Max execution time | 15 minutes |
149
+ | Max memory | 10,240 MB |
150
+ | Max payload (sync) | 6 MB |
151
+ | Max payload (async) | 256 KB |
152
+ | Cold start | 100ms-2s (depends on runtime/size) |
153
+ | Concurrent executions | 1,000 (default, can increase) |
154
+
155
+ ## API Gateway
156
+
157
+ ### HTTP API (v2) — Recommended
158
+
159
+ ```typescript
160
+ import * as apigwv2 from 'aws-cdk-lib/aws-apigatewayv2';
161
+ import * as integrations from 'aws-cdk-lib/aws-apigatewayv2-integrations';
162
+
163
+ const httpApi = new apigwv2.HttpApi(this, 'Api', {
164
+ corsPreflight: {
165
+ allowOrigins: ['https://myapp.com'],
166
+ allowMethods: [apigwv2.CorsHttpMethod.GET, apigwv2.CorsHttpMethod.POST],
167
+ allowHeaders: ['Content-Type', 'Authorization'],
168
+ },
169
+ });
170
+
171
+ httpApi.addRoutes({
172
+ path: '/users/{id}',
173
+ methods: [apigwv2.HttpMethod.GET],
174
+ integration: new integrations.HttpLambdaIntegration('GetUser', handler),
175
+ });
176
+ ```
177
+
178
+ ### REST API (v1) — When you need request validation, API keys, or usage plans
179
+
180
+ ```typescript
181
+ import * as apigw from 'aws-cdk-lib/aws-apigateway';
182
+
183
+ const api = new apigw.RestApi(this, 'RestApi', {
184
+ restApiName: 'MyService',
185
+ deployOptions: { stageName: 'prod' },
186
+ });
187
+
188
+ const users = api.root.addResource('users');
189
+ users.addMethod('GET', new apigw.LambdaIntegration(handler));
190
+ ```
191
+
192
+ ## CloudFront CDN
193
+
194
+ ```typescript
195
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
196
+ import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
197
+ import * as s3 from 'aws-cdk-lib/aws-s3';
198
+
199
+ const siteBucket = new s3.Bucket(this, 'SiteBucket', {
200
+ blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
201
+ });
202
+
203
+ const distribution = new cloudfront.Distribution(this, 'CDN', {
204
+ defaultBehavior: {
205
+ origin: origins.S3BucketOrigin.withOriginAccessControl(siteBucket),
206
+ viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
207
+ cachePolicy: cloudfront.CachePolicy.CACHING_OPTIMIZED,
208
+ },
209
+ defaultRootObject: 'index.html',
210
+ errorResponses: [
211
+ {
212
+ httpStatus: 404,
213
+ responsePagePath: '/index.html', // SPA fallback
214
+ responseHttpStatus: 200,
215
+ },
216
+ ],
217
+ });
218
+ ```
219
+
220
+ ## Route 53 DNS
221
+
222
+ ```typescript
223
+ import * as route53 from 'aws-cdk-lib/aws-route53';
224
+ import * as targets from 'aws-cdk-lib/aws-route53-targets';
225
+
226
+ const zone = route53.HostedZone.fromLookup(this, 'Zone', {
227
+ domainName: 'example.com',
228
+ });
229
+
230
+ new route53.ARecord(this, 'SiteAlias', {
231
+ zone,
232
+ recordName: 'app', // app.example.com
233
+ target: route53.RecordTarget.fromAlias(
234
+ new targets.CloudFrontTarget(distribution)
235
+ ),
236
+ });
237
+ ```
238
+
239
+ ## RDS — Relational Database
240
+
241
+ ```typescript
242
+ import * as rds from 'aws-cdk-lib/aws-rds';
243
+
244
+ const database = new rds.DatabaseInstance(this, 'Database', {
245
+ engine: rds.DatabaseInstanceEngine.postgres({
246
+ version: rds.PostgresEngineVersion.VER_16_4,
247
+ }),
248
+ instanceType: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
249
+ vpc,
250
+ vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
251
+ databaseName: 'myapp',
252
+ credentials: rds.Credentials.fromGeneratedSecret('dbadmin'),
253
+ multiAz: false, // true for production
254
+ allocatedStorage: 20,
255
+ maxAllocatedStorage: 100, // Auto-scaling storage
256
+ backupRetention: cdk.Duration.days(7),
257
+ deletionProtection: true, // Prevent accidental deletion
258
+ });
259
+
260
+ // Allow ECS tasks to connect
261
+ database.connections.allowFrom(service.service, ec2.Port.tcp(5432));
262
+ ```
263
+
264
+ ## ElastiCache — Redis
265
+
266
+ ```typescript
267
+ import * as elasticache from 'aws-cdk-lib/aws-elasticache';
268
+
269
+ const subnetGroup = new elasticache.CfnSubnetGroup(this, 'RedisSubnets', {
270
+ description: 'Subnets for Redis',
271
+ subnetIds: vpc.privateSubnets.map(s => s.subnetId),
272
+ });
273
+
274
+ const redis = new elasticache.CfnCacheCluster(this, 'Redis', {
275
+ cacheNodeType: 'cache.t3.micro',
276
+ engine: 'redis',
277
+ numCacheNodes: 1,
278
+ cacheSubnetGroupName: subnetGroup.ref,
279
+ vpcSecurityGroupIds: [redisSecurityGroup.securityGroupId],
280
+ });
281
+ ```
282
+
283
+ ## IAM Best Practices
284
+
285
+ ```typescript
286
+ import * as iam from 'aws-cdk-lib/aws-iam';
287
+
288
+ // Principle of least privilege — grant only what is needed
289
+ handler.addToRolePolicy(new iam.PolicyStatement({
290
+ actions: ['s3:GetObject', 's3:PutObject'],
291
+ resources: [`${bucket.bucketArn}/uploads/*`], // Scoped to prefix
292
+ }));
293
+
294
+ // Never use wildcards for actions in production
295
+ // BAD: actions: ['s3:*']
296
+ // GOOD: actions: ['s3:GetObject', 's3:PutObject']
297
+
298
+ // Use managed policies for common patterns
299
+ taskDef.taskRole.addManagedPolicy(
300
+ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonS3ReadOnlyAccess')
301
+ );
302
+ ```
303
+
304
+ ### IAM Anti-Patterns
305
+
306
+ | Anti-Pattern | Risk | Correct Approach |
307
+ |-------------|------|-----------------|
308
+ | `Action: '*'` | Full account access | List specific actions |
309
+ | `Resource: '*'` | Applies to all resources | Scope to specific ARNs |
310
+ | Long-lived access keys | Key rotation burden, leak risk | Use IAM roles (EC2, ECS, Lambda get them automatically) |
311
+ | Root account for anything | Unrestricted, unauditable | Create IAM users/roles, enable MFA on root |
312
+ | Sharing credentials between services | Blast radius, no audit trail | One role per service |
313
+
314
+ ## AWS CDK — Infrastructure as Code
315
+
316
+ ```bash
317
+ pnpm add -D aws-cdk-lib constructs
318
+ npx cdk init app --language typescript
319
+ ```
320
+
321
+ ### CDK Project Structure
322
+
323
+ ```
324
+ infra/
325
+ bin/app.ts # Entry point — instantiates stacks
326
+ lib/
327
+ network-stack.ts # VPC, subnets, security groups
328
+ compute-stack.ts # ECS, Lambda
329
+ data-stack.ts # RDS, ElastiCache, S3
330
+ cdn-stack.ts # CloudFront, Route 53
331
+ ```
332
+
333
+ ### CDK Commands
334
+
335
+ ```bash
336
+ npx cdk synth # Generate CloudFormation template
337
+ npx cdk diff # Preview changes
338
+ npx cdk deploy # Deploy all stacks
339
+ npx cdk deploy ComputeStack # Deploy specific stack
340
+ npx cdk destroy # Tear down
341
+ ```
342
+
343
+ ### CDK Stack Pattern
344
+
345
+ ```typescript
346
+ import * as cdk from 'aws-cdk-lib';
347
+ import { Construct } from 'constructs';
348
+
349
+ export class ComputeStack extends cdk.Stack {
350
+ public readonly serviceUrl: string;
351
+
352
+ constructor(scope: Construct, id: string, props: cdk.StackProps & {
353
+ vpc: ec2.IVpc;
354
+ databaseUrl: string;
355
+ }) {
356
+ super(scope, id, props);
357
+
358
+ // Resources defined here
359
+ // Export values for cross-stack references
360
+ this.serviceUrl = service.loadBalancer.loadBalancerDnsName;
361
+ }
362
+ }
363
+ ```
364
+
365
+ ## CloudWatch Monitoring
366
+
367
+ ```typescript
368
+ import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
369
+ import * as actions from 'aws-cdk-lib/aws-cloudwatch-actions';
370
+ import * as sns from 'aws-cdk-lib/aws-sns';
371
+
372
+ const alarmTopic = new sns.Topic(this, 'AlarmTopic');
373
+
374
+ // ECS CPU alarm
375
+ new cloudwatch.Alarm(this, 'HighCpu', {
376
+ metric: service.service.metricCpuUtilization(),
377
+ threshold: 80,
378
+ evaluationPeriods: 3,
379
+ comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
380
+ }).addAlarmAction(new actions.SnsAction(alarmTopic));
381
+
382
+ // Lambda error rate alarm
383
+ new cloudwatch.Alarm(this, 'LambdaErrors', {
384
+ metric: handler.metricErrors({ period: cdk.Duration.minutes(5) }),
385
+ threshold: 5,
386
+ evaluationPeriods: 1,
387
+ }).addAlarmAction(new actions.SnsAction(alarmTopic));
388
+
389
+ // Custom dashboard
390
+ const dashboard = new cloudwatch.Dashboard(this, 'AppDashboard');
391
+ dashboard.addWidgets(
392
+ new cloudwatch.GraphWidget({
393
+ title: 'ECS CPU & Memory',
394
+ left: [service.service.metricCpuUtilization()],
395
+ right: [service.service.metricMemoryUtilization()],
396
+ }),
397
+ );
398
+ ```
399
+
400
+ ## Cost Optimization
401
+
402
+ | Strategy | Savings | How |
403
+ |---------|---------|-----|
404
+ | Right-size instances | 30-50% | Use CloudWatch metrics to identify over-provisioned resources |
405
+ | Spot instances (ECS) | Up to 90% on compute | Use Fargate Spot for fault-tolerant workloads |
406
+ | Reserved instances | 30-60% | Commit to 1-3 year terms for steady-state workloads |
407
+ | S3 lifecycle rules | Variable | Move infrequent data to IA/Glacier automatically |
408
+ | Lambda right-sizing | 10-40% | Use AWS Lambda Power Tuning to find optimal memory |
409
+ | NAT Gateway alternatives | $30+/mo | Use VPC endpoints for S3/DynamoDB, reduce NAT traffic |
410
+ | CloudFront caching | Variable | Reduce origin requests with proper cache policies |
411
+ | Scheduled scaling | Variable | Scale down non-prod environments nights/weekends |
412
+
413
+ ### Fargate Spot for cost savings
414
+
415
+ ```typescript
416
+ const service = new ecsPatterns.ApplicationLoadBalancedFargateService(this, 'App', {
417
+ cluster,
418
+ capacityProviderStrategies: [
419
+ { capacityProvider: 'FARGATE_SPOT', weight: 2 },
420
+ { capacityProvider: 'FARGATE', weight: 1 }, // Fallback to on-demand
421
+ ],
422
+ taskImageOptions: { image: ecs.ContainerImage.fromAsset('./') },
423
+ });
424
+ ```
425
+
426
+ ## Common Architecture Patterns
427
+
428
+ ### Static Site
429
+
430
+ ```
431
+ Route 53 -> CloudFront -> S3 (static files)
432
+ ```
433
+
434
+ ### API + Database
435
+
436
+ ```
437
+ Route 53 -> CloudFront -> API Gateway -> Lambda -> RDS
438
+ -> ElastiCache (caching)
439
+ ```
440
+
441
+ ### Containerized Web App
442
+
443
+ ```
444
+ Route 53 -> CloudFront -> ALB -> ECS Fargate (2+ tasks)
445
+ |
446
+ RDS (private subnet)
447
+ ```
448
+
449
+ ### Event-Driven Processing
450
+
451
+ ```
452
+ S3 upload -> EventBridge -> Lambda -> DynamoDB
453
+ SQS queue -> Lambda -> External API
454
+ Schedule -> EventBridge -> Lambda -> SNS notification
455
+ ```
456
+
457
+ ## Anti-Patterns
458
+
459
+ | Anti-Pattern | Why It Fails | Correct Approach |
460
+ |-------------|-------------|-----------------|
461
+ | Public subnets for databases | Direct internet exposure | Private subnets, access only via application layer |
462
+ | No health checks on ALB targets | Traffic routed to dead instances | Configure `/health` endpoint, set healthy thresholds |
463
+ | Lambda with VPC when not needed | Cold start penalty (seconds) | Only put Lambda in VPC if it needs private resources |
464
+ | Hardcoding region/account IDs | Breaks multi-env deploys | Use `cdk.Stack.of(this).region` and env variables |
465
+ | One giant CloudFormation stack | Slow deploys, blast radius | Split into network, compute, data, CDN stacks |
466
+ | Not enabling deletion protection | Accidental `cdk destroy` kills DB | Set `deletionProtection: true` on RDS, `removalPolicy: RETAIN` |
467
+ | Storing secrets in environment variables | Visible in console, logs | Use AWS Secrets Manager or SSM Parameter Store |
@@ -0,0 +1,201 @@
1
+ ---
2
+ name: cloudflare
3
+ description: Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task.
4
+ references:
5
+ - workers
6
+ - pages
7
+ - d1
8
+ - durable-objects
9
+ - workers-ai
10
+ ---
11
+
12
+ # Cloudflare Platform Skill
13
+
14
+ Consolidated skill for building on the Cloudflare platform. Use decision trees below to find the right product, then load detailed references.
15
+
16
+ ## Quick Decision Trees
17
+
18
+ ### "I need to run code"
19
+
20
+ ```
21
+ Need to run code?
22
+ ├─ Serverless functions at the edge → workers/
23
+ ├─ Full-stack web app with Git deploys → pages/
24
+ ├─ Stateful coordination/real-time → durable-objects/
25
+ ├─ Long-running multi-step jobs → workflows/
26
+ ├─ Run containers → containers/
27
+ ├─ Multi-tenant (customers deploy code) → workers-for-platforms/
28
+ ├─ Scheduled tasks (cron) → cron-triggers/
29
+ ├─ Lightweight edge logic (modify HTTP) → snippets/
30
+ ├─ Process Worker execution events (logs/observability) → tail-workers/
31
+ └─ Optimize latency to backend infrastructure → smart-placement/
32
+ ```
33
+
34
+ ### "I need to store data"
35
+
36
+ ```
37
+ Need storage?
38
+ ├─ Key-value (config, sessions, cache) → kv/
39
+ ├─ Relational SQL → d1/ (SQLite) or hyperdrive/ (existing Postgres/MySQL)
40
+ ├─ Object/file storage (S3-compatible) → r2/
41
+ ├─ Message queue (async processing) → queues/
42
+ ├─ Vector embeddings (AI/semantic search) → vectorize/
43
+ ├─ Strongly-consistent per-entity state → durable-objects/ (DO storage)
44
+ ├─ Secrets management → secrets-store/
45
+ ├─ Streaming ETL to R2 → pipelines/
46
+ └─ Persistent cache (long-term retention) → cache-reserve/
47
+ ```
48
+
49
+ ### "I need AI/ML"
50
+
51
+ ```
52
+ Need AI?
53
+ ├─ Run inference (LLMs, embeddings, images) → workers-ai/
54
+ ├─ Vector database for RAG/search → vectorize/
55
+ ├─ Build stateful AI agents → agents-sdk/
56
+ ├─ Gateway for any AI provider (caching, routing) → ai-gateway/
57
+ └─ AI-powered search widget → ai-search/
58
+ ```
59
+
60
+ ### "I need networking/connectivity"
61
+
62
+ ```
63
+ Need networking?
64
+ ├─ Expose local service to internet → tunnel/
65
+ ├─ TCP/UDP proxy (non-HTTP) → spectrum/
66
+ ├─ WebRTC TURN server → turn/
67
+ ├─ Private network connectivity → network-interconnect/
68
+ ├─ Optimize routing → argo-smart-routing/
69
+ ├─ Optimize latency to backend (not user) → smart-placement/
70
+ └─ Real-time video/audio → realtimekit/ or realtime-sfu/
71
+ ```
72
+
73
+ ### "I need security"
74
+
75
+ ```
76
+ Need security?
77
+ ├─ Web Application Firewall → waf/
78
+ ├─ DDoS protection → ddos/
79
+ ├─ Bot detection/management → bot-management/
80
+ ├─ API protection → api-shield/
81
+ ├─ CAPTCHA alternative → turnstile/
82
+ └─ Credential leak detection → waf/ (managed ruleset)
83
+ ```
84
+
85
+ ### "I need media/content"
86
+
87
+ ```
88
+ Need media?
89
+ ├─ Image optimization/transformation → images/
90
+ ├─ Video streaming/encoding → stream/
91
+ ├─ Browser automation/screenshots → browser-rendering/
92
+ └─ Third-party script management → zaraz/
93
+ ```
94
+
95
+ ### "I need infrastructure-as-code"
96
+
97
+ ```
98
+ Need IaC? → pulumi/ (Pulumi), terraform/ (Terraform), or api/ (REST API)
99
+ ```
100
+
101
+ ## Product Index
102
+
103
+ ### Compute & Runtime
104
+ | Product | Reference |
105
+ |---------|-----------|
106
+ | Workers | `references/workers/` |
107
+ | Pages | `references/pages/` |
108
+ | Pages Functions | `references/pages-functions/` |
109
+ | Durable Objects | `references/durable-objects/` |
110
+ | Workflows | `references/workflows/` |
111
+ | Containers | `references/containers/` |
112
+ | Workers for Platforms | `references/workers-for-platforms/` |
113
+ | Cron Triggers | `references/cron-triggers/` |
114
+ | Tail Workers | `references/tail-workers/` |
115
+ | Snippets | `references/snippets/` |
116
+ | Smart Placement | `references/smart-placement/` |
117
+
118
+ ### Storage & Data
119
+ | Product | Reference |
120
+ |---------|-----------|
121
+ | KV | `references/kv/` |
122
+ | D1 | `references/d1/` |
123
+ | R2 | `references/r2/` |
124
+ | Queues | `references/queues/` |
125
+ | Hyperdrive | `references/hyperdrive/` |
126
+ | DO Storage | `references/do-storage/` |
127
+ | Secrets Store | `references/secrets-store/` |
128
+ | Pipelines | `references/pipelines/` |
129
+ | R2 Data Catalog | `references/r2-data-catalog/` |
130
+ | R2 SQL | `references/r2-sql/` |
131
+
132
+ ### AI & Machine Learning
133
+ | Product | Reference |
134
+ |---------|-----------|
135
+ | Workers AI | `references/workers-ai/` |
136
+ | Vectorize | `references/vectorize/` |
137
+ | Agents SDK | `references/agents-sdk/` |
138
+ | AI Gateway | `references/ai-gateway/` |
139
+ | AI Search | `references/ai-search/` |
140
+
141
+ ### Networking & Connectivity
142
+ | Product | Reference |
143
+ |---------|-----------|
144
+ | Tunnel | `references/tunnel/` |
145
+ | Spectrum | `references/spectrum/` |
146
+ | TURN | `references/turn/` |
147
+ | Network Interconnect | `references/network-interconnect/` |
148
+ | Argo Smart Routing | `references/argo-smart-routing/` |
149
+ | Workers VPC | `references/workers-vpc/` |
150
+
151
+ ### Security
152
+ | Product | Reference |
153
+ |---------|-----------|
154
+ | WAF | `references/waf/` |
155
+ | DDoS Protection | `references/ddos/` |
156
+ | Bot Management | `references/bot-management/` |
157
+ | API Shield | `references/api-shield/` |
158
+ | Turnstile | `references/turnstile/` |
159
+
160
+ ### Media & Content
161
+ | Product | Reference |
162
+ |---------|-----------|
163
+ | Images | `references/images/` |
164
+ | Stream | `references/stream/` |
165
+ | Browser Rendering | `references/browser-rendering/` |
166
+ | Zaraz | `references/zaraz/` |
167
+
168
+ ### Real-Time Communication
169
+ | Product | Reference |
170
+ |---------|-----------|
171
+ | RealtimeKit | `references/realtimekit/` |
172
+ | Realtime SFU | `references/realtime-sfu/` |
173
+
174
+ ### Developer Tools
175
+ | Product | Reference |
176
+ |---------|-----------|
177
+ | Wrangler | `references/wrangler/` |
178
+ | Miniflare | `references/miniflare/` |
179
+ | C3 | `references/c3/` |
180
+ | Observability | `references/observability/` |
181
+ | Analytics Engine | `references/analytics-engine/` |
182
+ | Web Analytics | `references/web-analytics/` |
183
+ | Sandbox | `references/sandbox/` |
184
+ | Workerd | `references/workerd/` |
185
+ | Workers Playground | `references/workers-playground/` |
186
+
187
+ ### Infrastructure as Code
188
+ | Product | Reference |
189
+ |---------|-----------|
190
+ | Pulumi | `references/pulumi/` |
191
+ | Terraform | `references/terraform/` |
192
+ | API | `references/api/` |
193
+
194
+ ### Other Services
195
+ | Product | Reference |
196
+ |---------|-----------|
197
+ | Email Routing | `references/email-routing/` |
198
+ | Email Workers | `references/email-workers/` |
199
+ | Static Assets | `references/static-assets/` |
200
+ | Bindings | `references/bindings/` |
201
+ | Cache Reserve | `references/cache-reserve/` |