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,509 @@
1
+ ---
2
+ name: sentry
3
+ description: |
4
+ Integrate Sentry for error monitoring, performance tracing, session replay, and cron monitoring. Use when: setting up error tracking in Next.js/React/Node.js/Astro, configuring performance monitoring (tracing, spans), uploading source maps, adding error boundaries, implementing user feedback, scrubbing PII, setting up alerts, or debugging production issues.
5
+ version: 1.0.0
6
+ ---
7
+
8
+ # Sentry Error Monitoring
9
+
10
+ **Status**: Production Ready
11
+ **Last Updated**: 2026-02-16
12
+ **Package**: `@sentry/nextjs@8.x`, `@sentry/react@8.x`, `@sentry/node@8.x`, `@sentry/astro@8.x`
13
+
14
+ ---
15
+
16
+ ## Setup by Platform
17
+
18
+ ### Next.js (Recommended Wizard)
19
+
20
+ ```bash
21
+ npx @sentry/wizard@latest -i nextjs
22
+ ```
23
+
24
+ This generates `sentry.client.config.ts`, `sentry.server.config.ts`, `sentry.edge.config.ts`, and updates `next.config.js`.
25
+
26
+ ### Manual Next.js Setup
27
+
28
+ ```typescript
29
+ // sentry.client.config.ts
30
+ import * as Sentry from "@sentry/nextjs";
31
+
32
+ Sentry.init({
33
+ dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
34
+ environment: process.env.NODE_ENV,
35
+ release: process.env.SENTRY_RELEASE,
36
+ tracesSampleRate: process.env.NODE_ENV === "production" ? 0.1 : 1.0,
37
+ replaysSessionSampleRate: 0.1,
38
+ replaysOnErrorSampleRate: 1.0,
39
+ integrations: [
40
+ Sentry.replayIntegration(),
41
+ Sentry.browserTracingIntegration(),
42
+ ],
43
+ });
44
+ ```
45
+
46
+ ```typescript
47
+ // sentry.server.config.ts
48
+ import * as Sentry from "@sentry/nextjs";
49
+
50
+ Sentry.init({
51
+ dsn: process.env.SENTRY_DSN,
52
+ environment: process.env.NODE_ENV,
53
+ release: process.env.SENTRY_RELEASE,
54
+ tracesSampleRate: process.env.NODE_ENV === "production" ? 0.1 : 1.0,
55
+ });
56
+ ```
57
+
58
+ ```typescript
59
+ // next.config.js
60
+ import { withSentryConfig } from "@sentry/nextjs";
61
+
62
+ const nextConfig = { /* ... */ };
63
+
64
+ export default withSentryConfig(nextConfig, {
65
+ org: "your-org",
66
+ project: "your-project",
67
+ silent: !process.env.CI, // Suppress logs outside CI
68
+ widenClientFileUpload: true,
69
+ tunnelRoute: "/monitoring", // Proxy to avoid ad-blockers
70
+ hideSourceMaps: true,
71
+ disableLogger: true,
72
+ });
73
+ ```
74
+
75
+ ### React (Standalone)
76
+
77
+ ```typescript
78
+ // src/instrument.ts — import BEFORE React
79
+ import * as Sentry from "@sentry/react";
80
+
81
+ Sentry.init({
82
+ dsn: "__DSN__",
83
+ integrations: [
84
+ Sentry.browserTracingIntegration(),
85
+ Sentry.replayIntegration(),
86
+ ],
87
+ tracesSampleRate: 0.1,
88
+ });
89
+ ```
90
+
91
+ ### Node.js
92
+
93
+ ```typescript
94
+ // instrument.ts — import at very top of entry point
95
+ import * as Sentry from "@sentry/node";
96
+
97
+ Sentry.init({
98
+ dsn: "__DSN__",
99
+ tracesSampleRate: 0.1,
100
+ profilesSampleRate: 0.1, // Profiling (if enabled)
101
+ });
102
+ ```
103
+
104
+ ### Astro
105
+
106
+ ```bash
107
+ npx astro add @sentry/astro
108
+ ```
109
+
110
+ ```typescript
111
+ // astro.config.mjs
112
+ import sentry from "@sentry/astro";
113
+
114
+ export default defineConfig({
115
+ integrations: [
116
+ sentry({
117
+ dsn: "__DSN__",
118
+ sourceMapsUploadOptions: {
119
+ project: "your-project",
120
+ authToken: process.env.SENTRY_AUTH_TOKEN,
121
+ },
122
+ }),
123
+ ],
124
+ });
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Configuration Options
130
+
131
+ ```typescript
132
+ Sentry.init({
133
+ dsn: "__DSN__", // Required
134
+ environment: "production", // Filters in dashboard
135
+ release: "my-app@1.2.3", // Links errors to releases
136
+ tracesSampleRate: 0.1, // 10% of transactions traced
137
+ sampleRate: 1.0, // 100% of errors captured
138
+ maxBreadcrumbs: 50, // Breadcrumb history depth
139
+ attachStacktrace: true, // Stack traces on messages too
140
+ normalizeDepth: 5, // Context object serialization depth
141
+ beforeSend(event) { // Filter/modify events before sending
142
+ if (event.exception?.values?.[0]?.type === "ChunkLoadError") {
143
+ return null; // Drop noisy errors
144
+ }
145
+ return event;
146
+ },
147
+ ignoreErrors: [
148
+ "ResizeObserver loop",
149
+ /^NetworkError/,
150
+ "Non-Error exception captured",
151
+ ],
152
+ denyUrls: [/extensions\//i, /^chrome:\/\//i], // Ignore browser extension errors
153
+ });
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Error Boundaries (React)
159
+
160
+ ```typescript
161
+ import * as Sentry from "@sentry/react";
162
+
163
+ // Wrap your app or specific sections
164
+ function App() {
165
+ return (
166
+ <Sentry.ErrorBoundary
167
+ fallback={({ error, resetError }) => (
168
+ <div role="alert">
169
+ <h2>Something went wrong</h2>
170
+ <p>{error.message}</p>
171
+ <button onClick={resetError}>Try Again</button>
172
+ </div>
173
+ )}
174
+ onError={(error, componentStack) => {
175
+ // Additional error handling
176
+ }}
177
+ showDialog // Show Sentry user feedback dialog
178
+ >
179
+ <MainContent />
180
+ </Sentry.ErrorBoundary>
181
+ );
182
+ }
183
+
184
+ // Next.js — global-error.tsx
185
+ // src/app/global-error.tsx
186
+ "use client";
187
+ import * as Sentry from "@sentry/nextjs";
188
+ import { useEffect } from "react";
189
+
190
+ export default function GlobalError({ error, reset }: { error: Error; reset: () => void }) {
191
+ useEffect(() => {
192
+ Sentry.captureException(error);
193
+ }, [error]);
194
+
195
+ return (
196
+ <html>
197
+ <body>
198
+ <h2>Something went wrong</h2>
199
+ <button onClick={reset}>Try again</button>
200
+ </body>
201
+ </html>
202
+ );
203
+ }
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Performance Monitoring
209
+
210
+ ### Automatic Instrumentation
211
+
212
+ Browser tracing and server tracing integrations capture:
213
+ - Page loads, navigations, API calls (browser)
214
+ - HTTP requests, database queries (server)
215
+
216
+ ### Custom Spans
217
+
218
+ ```typescript
219
+ import * as Sentry from "@sentry/node"; // or @sentry/nextjs
220
+
221
+ async function processOrder(orderId: string) {
222
+ return Sentry.startSpan(
223
+ { name: "process-order", op: "order.process", attributes: { orderId } },
224
+ async (span) => {
225
+ // Nested span
226
+ const items = await Sentry.startSpan(
227
+ { name: "fetch-items", op: "db.query" },
228
+ async () => {
229
+ return await db.query("SELECT * FROM order_items WHERE order_id = $1", [orderId]);
230
+ }
231
+ );
232
+
233
+ await Sentry.startSpan(
234
+ { name: "charge-payment", op: "payment.charge" },
235
+ async () => {
236
+ await chargePayment(orderId, items);
237
+ }
238
+ );
239
+
240
+ span.setStatus({ code: 1, message: "ok" }); // SpanStatusCode.OK
241
+ return { success: true };
242
+ }
243
+ );
244
+ }
245
+ ```
246
+
247
+ ---
248
+
249
+ ## Source Maps
250
+
251
+ ### Automatic Upload (Next.js)
252
+
253
+ Handled by `withSentryConfig` — just set `SENTRY_AUTH_TOKEN` in env.
254
+
255
+ ### Manual Upload (Vite/Webpack)
256
+
257
+ ```bash
258
+ pnpm add -D @sentry/vite-plugin
259
+ ```
260
+
261
+ ```typescript
262
+ // vite.config.ts
263
+ import { sentryVitePlugin } from "@sentry/vite-plugin";
264
+
265
+ export default defineConfig({
266
+ build: { sourcemap: true },
267
+ plugins: [
268
+ sentryVitePlugin({
269
+ org: "your-org",
270
+ project: "your-project",
271
+ authToken: process.env.SENTRY_AUTH_TOKEN,
272
+ }),
273
+ ],
274
+ });
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Breadcrumbs
280
+
281
+ ```typescript
282
+ // Automatic breadcrumbs include: console, DOM clicks, XHR/fetch, navigation
283
+
284
+ // Custom breadcrumbs
285
+ Sentry.addBreadcrumb({
286
+ category: "auth",
287
+ message: `User logged in: ${userId}`,
288
+ level: "info",
289
+ data: { method: "oauth", provider: "google" },
290
+ });
291
+
292
+ Sentry.addBreadcrumb({
293
+ category: "cart",
294
+ message: "Item added to cart",
295
+ level: "info",
296
+ data: { productId, quantity },
297
+ });
298
+ ```
299
+
300
+ ---
301
+
302
+ ## Context, Tags, and User
303
+
304
+ ```typescript
305
+ // Set user context — appears on all subsequent events
306
+ Sentry.setUser({
307
+ id: user.id,
308
+ email: user.email, // Only if PII policy allows
309
+ username: user.username,
310
+ ip_address: "{{auto}}", // Sentry infers from request
311
+ });
312
+
313
+ // Clear on logout
314
+ Sentry.setUser(null);
315
+
316
+ // Tags — indexed, searchable in dashboard
317
+ Sentry.setTag("feature", "checkout");
318
+ Sentry.setTag("plan", "premium");
319
+
320
+ // Extra context — not indexed, for debugging
321
+ Sentry.setExtra("orderDetails", { items: 3, total: 49.99 });
322
+
323
+ // Structured context — grouped in event detail view
324
+ Sentry.setContext("order", {
325
+ id: orderId,
326
+ total: 49.99,
327
+ currency: "USD",
328
+ });
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Issue Grouping and Fingerprinting
334
+
335
+ ```typescript
336
+ // Custom fingerprint — group related errors together
337
+ Sentry.captureException(error, {
338
+ fingerprint: ["payment-processing", merchantId],
339
+ });
340
+
341
+ // Group by error message pattern
342
+ Sentry.init({
343
+ beforeSend(event) {
344
+ if (event.message?.includes("rate limit")) {
345
+ event.fingerprint = ["rate-limit-error"];
346
+ }
347
+ return event;
348
+ },
349
+ });
350
+ ```
351
+
352
+ ---
353
+
354
+ ## Session Replay
355
+
356
+ ```typescript
357
+ import * as Sentry from "@sentry/react"; // or @sentry/nextjs
358
+
359
+ Sentry.init({
360
+ integrations: [
361
+ Sentry.replayIntegration({
362
+ maskAllText: true, // Mask all text for privacy
363
+ blockAllMedia: true, // Block images/video
364
+ maskAllInputs: true, // Mask form inputs
365
+ // Selective unmasking
366
+ unmask: [".sentry-unmask"],
367
+ }),
368
+ ],
369
+ replaysSessionSampleRate: 0.1, // 10% of all sessions
370
+ replaysOnErrorSampleRate: 1.0, // 100% of sessions with errors
371
+ });
372
+ ```
373
+
374
+ ---
375
+
376
+ ## Cron Monitoring
377
+
378
+ ```typescript
379
+ import * as Sentry from "@sentry/node";
380
+
381
+ // Wrap cron job
382
+ const checkInId = Sentry.captureCheckIn({
383
+ monitorSlug: "daily-cleanup",
384
+ status: "in_progress",
385
+ }, {
386
+ schedule: { type: "crontab", value: "0 3 * * *" }, // 3 AM daily
387
+ checkinMargin: 5, // Minutes before considered missed
388
+ maxRuntime: 30, // Minutes before considered failed
389
+ });
390
+
391
+ try {
392
+ await runDailyCleanup();
393
+
394
+ Sentry.captureCheckIn({
395
+ checkInId,
396
+ monitorSlug: "daily-cleanup",
397
+ status: "ok",
398
+ });
399
+ } catch (error) {
400
+ Sentry.captureCheckIn({
401
+ checkInId,
402
+ monitorSlug: "daily-cleanup",
403
+ status: "error",
404
+ });
405
+ throw error;
406
+ }
407
+ ```
408
+
409
+ ---
410
+
411
+ ## User Feedback
412
+
413
+ ```typescript
414
+ import * as Sentry from "@sentry/react";
415
+
416
+ // Crash report dialog — shows after error boundary triggers
417
+ Sentry.init({
418
+ beforeSend(event) {
419
+ if (event.exception) {
420
+ Sentry.showReportDialog({ eventId: event.event_id });
421
+ }
422
+ return event;
423
+ },
424
+ });
425
+
426
+ // Programmatic feedback widget
427
+ const eventId = Sentry.lastEventId();
428
+ if (eventId) {
429
+ Sentry.showReportDialog({
430
+ eventId,
431
+ title: "Something went wrong",
432
+ subtitle: "Our team has been notified.",
433
+ subtitle2: "If you'd like to help, tell us what happened below.",
434
+ });
435
+ }
436
+ ```
437
+
438
+ ---
439
+
440
+ ## PII Scrubbing and Data Privacy
441
+
442
+ ```typescript
443
+ Sentry.init({
444
+ beforeSend(event) {
445
+ // Strip PII from user context
446
+ if (event.user) {
447
+ delete event.user.email;
448
+ delete event.user.ip_address;
449
+ }
450
+
451
+ // Scrub sensitive headers
452
+ if (event.request?.headers) {
453
+ delete event.request.headers["Authorization"];
454
+ delete event.request.headers["Cookie"];
455
+ }
456
+
457
+ return event;
458
+ },
459
+
460
+ beforeBreadcrumb(breadcrumb) {
461
+ // Strip URLs with tokens
462
+ if (breadcrumb.data?.url) {
463
+ const url = new URL(breadcrumb.data.url);
464
+ url.searchParams.delete("token");
465
+ url.searchParams.delete("key");
466
+ breadcrumb.data.url = url.toString();
467
+ }
468
+ return breadcrumb;
469
+ },
470
+
471
+ // Server-side: do not send PII
472
+ sendDefaultPii: false,
473
+ });
474
+ ```
475
+
476
+ ---
477
+
478
+ ## Release Tracking
479
+
480
+ ```bash
481
+ # Create release and associate commits
482
+ sentry-cli releases new "my-app@1.2.3"
483
+ sentry-cli releases set-commits "my-app@1.2.3" --auto
484
+ sentry-cli releases finalize "my-app@1.2.3"
485
+
486
+ # Mark deploy
487
+ sentry-cli releases deploys "my-app@1.2.3" new -e production
488
+ ```
489
+
490
+ ---
491
+
492
+ ## Anti-Patterns
493
+
494
+ | Anti-Pattern | Why It Hurts | Correct Approach |
495
+ |---|---|---|
496
+ | `tracesSampleRate: 1.0` in production | Enormous volume, high cost | Use 0.05-0.2 in prod, 1.0 in dev |
497
+ | Capturing handled/expected errors | Noisy alerts, alert fatigue | Only capture unexpected errors |
498
+ | No `beforeSend` filtering | Browser extension junk pollutes data | Filter known noisy errors |
499
+ | Logging PII in context/breadcrumbs | Privacy violations, GDPR risk | Scrub PII in `beforeSend` |
500
+ | Same DSN for all environments | Cannot filter prod vs dev | Separate DSNs or use `environment` tag |
501
+ | Not setting `release` | Cannot track regressions across deploys | Always set release to deploy version |
502
+ | Alerting on every error | Alert fatigue, team ignores alerts | Alert on new issues, spikes, P99 degradation |
503
+ | Missing source maps | Minified stack traces are useless | Upload source maps in CI, hide from public |
504
+ | `sampleRate: 0.01` on errors | Missing real errors | Keep error sampleRate at 1.0, lower traces |
505
+ | Not cleaning up user context on logout | PII attributed to wrong user | Call `Sentry.setUser(null)` on sign-out |
506
+
507
+ ---
508
+
509
+ **Last verified**: 2026-02-16 | **Skill version**: 1.0.0
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: datadog
3
+ description: |
4
+ Set up Datadog for APM, log management, metrics, dashboards, and alerting. Use when: configuring Datadog APM and trace collection, setting up log parsing and management, creating custom metrics, building dashboards and monitors, configuring alerting and SLOs, or integrating dd-trace libraries.
5
+ version: 1.0.0
6
+ ---
7
+
8
+ # Datadog
9
+
10
+ **Status**: Production Ready
11
+ **Last Updated**: 2026-02-24
12
+
13
+ ---
14
+
15
+ ## Description
16
+
17
+ Datadog is a full-stack observability platform providing APM (distributed tracing), log management, infrastructure monitoring, metrics, dashboards, and alerting. This skill covers agent configuration, dd-trace library integration, log correlation with traces, and best practices for dashboards and SLOs.
18
+
19
+ ## When to Use
20
+
21
+ - Setting up Datadog APM and trace collection
22
+ - Configuring log management and log parsing
23
+ - Creating custom metrics and dashboards
24
+ - Building monitors and configuring alerting
25
+ - Defining SLOs (Service Level Objectives)
26
+ - Setting up infrastructure monitoring
27
+ - Configuring the Datadog Agent
28
+ - Integrating dd-trace libraries (Node.js, Python, Go, Ruby, Java)
29
+ - Correlating logs with traces
30
+
31
+ ---
32
+
33
+ ## Key Concepts
34
+
35
+ ### Datadog Agent
36
+
37
+ The Datadog Agent runs on your hosts or as a sidecar container. It collects metrics, traces, and logs and forwards them to the Datadog backend.
38
+
39
+ ### APM (Application Performance Monitoring)
40
+
41
+ dd-trace libraries auto-instrument your application to capture distributed traces, including HTTP requests, database queries, cache operations, and message queue interactions.
42
+
43
+ ### Log Management
44
+
45
+ Datadog ingests, indexes, and archives logs. Logs can be enriched with trace IDs for cross-signal correlation. Pipelines parse unstructured logs into structured fields.
46
+
47
+ ### Metrics
48
+
49
+ Datadog supports custom metrics (counters, gauges, histograms, distributions) alongside infrastructure metrics. Metrics power dashboards, monitors, and SLOs.
50
+
51
+ ### Monitors and SLOs
52
+
53
+ Monitors alert on threshold breaches, anomalies, or missing data. SLOs track service reliability over time windows (e.g., 99.9% availability over 30 days).
54
+
55
+ ---
56
+
57
+ ## Best Practices
58
+
59
+ 1. **Use unified tagging** — apply consistent tags (`service`, `env`, `version`) across traces, logs, and metrics
60
+ 2. **Enable log-trace correlation** — inject `dd.trace_id` and `dd.span_id` into log records
61
+ 3. **Set appropriate sampling rates** — use Datadog's Ingestion Controls to manage trace volume and costs
62
+ 4. **Build SLOs from meaningful SLIs** — measure what users experience (latency, error rate), not internal metrics
63
+ 5. **Use dashboards for context, monitors for alerts** — dashboards for exploration, monitors for automated detection
64
+ 6. **Tag custom metrics meaningfully** — avoid high-cardinality tags that explode metric volume
65
+ 7. **Archive logs for compliance** — use Datadog Log Archives to S3/GCS for long-term retention at lower cost
66
+ 8. **Configure the Agent via environment variables** — `DD_ENV`, `DD_SERVICE`, `DD_VERSION`, `DD_AGENT_HOST`
67
+
68
+ ---
69
+
70
+ ## Common Patterns
71
+
72
+ ### Node.js dd-trace Setup
73
+
74
+ ```typescript
75
+ // instrument.ts — import at very top of entry point
76
+ import tracer from "dd-trace";
77
+
78
+ tracer.init({
79
+ service: "my-service",
80
+ env: process.env.DD_ENV || "development",
81
+ version: process.env.DD_VERSION || "1.0.0",
82
+ logInjection: true, // Inject trace IDs into logs
83
+ runtimeMetrics: true,
84
+ profiling: true,
85
+ });
86
+
87
+ export default tracer;
88
+ ```
89
+
90
+ ### Python dd-trace Setup
91
+
92
+ ```python
93
+ from ddtrace import tracer, patch_all
94
+
95
+ patch_all() # Auto-instrument all supported libraries
96
+ tracer.configure(
97
+ hostname=os.environ.get("DD_AGENT_HOST", "localhost"),
98
+ port=8126,
99
+ )
100
+ ```
101
+
102
+ ### Log-Trace Correlation (Node.js + Pino)
103
+
104
+ ```typescript
105
+ import pino from "pino";
106
+ import tracer from "dd-trace";
107
+
108
+ const logger = pino({
109
+ mixin() {
110
+ const span = tracer.scope().active();
111
+ if (!span) return {};
112
+ return {
113
+ dd: {
114
+ trace_id: span.context().toTraceId(),
115
+ span_id: span.context().toSpanId(),
116
+ service: "my-service",
117
+ env: process.env.DD_ENV,
118
+ version: process.env.DD_VERSION,
119
+ },
120
+ };
121
+ },
122
+ });
123
+ ```
124
+
125
+ ### Custom Metrics
126
+
127
+ ```typescript
128
+ import { StatsD } from "hot-shots";
129
+
130
+ const dogstatsd = new StatsD({
131
+ host: process.env.DD_AGENT_HOST || "localhost",
132
+ port: 8125,
133
+ prefix: "myapp.",
134
+ globalTags: { env: process.env.DD_ENV, service: "my-service" },
135
+ });
136
+
137
+ // Usage
138
+ dogstatsd.increment("orders.placed", 1, { payment_method: "card" });
139
+ dogstatsd.histogram("order.processing_time_ms", 142, { status: "success" });
140
+ dogstatsd.gauge("queue.depth", 47);
141
+ ```
142
+
143
+ ### Datadog Agent (Docker Compose)
144
+
145
+ ```yaml
146
+ services:
147
+ datadog-agent:
148
+ image: gcr.io/datadoghq/agent:latest
149
+ environment:
150
+ DD_API_KEY: ${DD_API_KEY}
151
+ DD_SITE: "datadoghq.com"
152
+ DD_APM_ENABLED: "true"
153
+ DD_LOGS_ENABLED: "true"
154
+ DD_APM_NON_LOCAL_TRAFFIC: "true"
155
+ volumes:
156
+ - /var/run/docker.sock:/var/run/docker.sock:ro
157
+ - /proc/:/host/proc/:ro
158
+ - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro
159
+ ports:
160
+ - "8126:8126" # APM traces
161
+ - "8125:8125/udp" # DogStatsD
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Anti-Patterns
167
+
168
+ | Anti-Pattern | Why It Hurts | Correct Approach |
169
+ |---|---|---|
170
+ | No unified tagging | Cannot correlate traces, logs, and metrics | Use `service`, `env`, `version` everywhere |
171
+ | High-cardinality custom metric tags | Metric volume explodes, costs skyrocket | Use bounded tag values (status codes, not user IDs) |
172
+ | Alerting on every error | Alert fatigue, team ignores alerts | Alert on error rate spikes, anomalies, SLO burns |
173
+ | No log-trace correlation | Cannot navigate from logs to traces | Enable `logInjection` and standardize log format |
174
+ | Ingesting all traces at 100% | Expensive, unnecessary for most services | Use Ingestion Controls and sampling rules |
175
+ | Missing `DD_VERSION` tag | Cannot track regressions across deploys | Set version from CI/CD build number |
176
+
177
+ ---
178
+
179
+ **Last verified**: 2026-02-24 | **Skill version**: 1.0.0