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,697 @@
1
+ ---
2
+ name: api-documentation-openapi
3
+ description: "Create and maintain API documentation with OpenAPI 3.1, interactive docs (Swagger UI, Redoc, Scalar), SDK generation, schema-first workflows, and strategies for keeping docs synchronized with implementation. Use when documenting APIs, generating SDKs, or setting up interactive API explorers."
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # API Documentation with OpenAPI
8
+
9
+ API documentation is the primary interface for developer consumers. If the docs are wrong, incomplete, or out of date, the API is broken --- regardless of what the code does.
10
+
11
+ ## OpenAPI 3.1 Spec Structure
12
+
13
+ ```yaml
14
+ # openapi.yaml
15
+ openapi: 3.1.0
16
+ info:
17
+ title: My API
18
+ version: 2.0.0
19
+ description: |
20
+ A brief description of the API purpose and key concepts.
21
+
22
+ ## Authentication
23
+ All endpoints require a Bearer token in the Authorization header.
24
+
25
+ ## Rate Limits
26
+ - Standard: 100 requests/minute
27
+ - Premium: 1000 requests/minute
28
+ contact:
29
+ name: API Support
30
+ email: api-support@example.com
31
+ url: https://docs.example.com/support
32
+ license:
33
+ name: MIT
34
+
35
+ servers:
36
+ - url: https://api.example.com/v2
37
+ description: Production
38
+ - url: https://staging-api.example.com/v2
39
+ description: Staging
40
+ - url: http://localhost:3000/api/v2
41
+ description: Local development
42
+
43
+ tags:
44
+ - name: Models
45
+ description: AI model management
46
+ - name: Completions
47
+ description: Generate text completions
48
+
49
+ paths:
50
+ /models:
51
+ get:
52
+ operationId: listModels
53
+ tags: [Models]
54
+ summary: List available models
55
+ description: Returns a paginated list of AI models available to the authenticated user.
56
+ parameters:
57
+ - $ref: '#/components/parameters/PageParam'
58
+ - $ref: '#/components/parameters/LimitParam'
59
+ - name: provider
60
+ in: query
61
+ schema:
62
+ type: string
63
+ enum: [openai, anthropic, google, meta]
64
+ description: Filter by provider
65
+ responses:
66
+ '200':
67
+ description: List of models
68
+ content:
69
+ application/json:
70
+ schema:
71
+ $ref: '#/components/schemas/ModelListResponse'
72
+ examples:
73
+ default:
74
+ $ref: '#/components/examples/ModelListExample'
75
+ '401':
76
+ $ref: '#/components/responses/Unauthorized'
77
+ '429':
78
+ $ref: '#/components/responses/RateLimited'
79
+
80
+ /models/{modelId}:
81
+ get:
82
+ operationId: getModel
83
+ tags: [Models]
84
+ summary: Get model details
85
+ parameters:
86
+ - name: modelId
87
+ in: path
88
+ required: true
89
+ schema:
90
+ type: string
91
+ description: The model identifier (e.g., `gpt-4o`, `claude-sonnet-4-20250514`)
92
+ responses:
93
+ '200':
94
+ description: Model details
95
+ content:
96
+ application/json:
97
+ schema:
98
+ $ref: '#/components/schemas/Model'
99
+ '404':
100
+ $ref: '#/components/responses/NotFound'
101
+
102
+ components:
103
+ securitySchemes:
104
+ bearerAuth:
105
+ type: http
106
+ scheme: bearer
107
+ bearerFormat: JWT
108
+
109
+ parameters:
110
+ PageParam:
111
+ name: page
112
+ in: query
113
+ schema:
114
+ type: integer
115
+ minimum: 1
116
+ default: 1
117
+ LimitParam:
118
+ name: limit
119
+ in: query
120
+ schema:
121
+ type: integer
122
+ minimum: 1
123
+ maximum: 100
124
+ default: 20
125
+
126
+ schemas:
127
+ Model:
128
+ type: object
129
+ required: [id, name, provider, status]
130
+ properties:
131
+ id:
132
+ type: string
133
+ example: gpt-4o
134
+ name:
135
+ type: string
136
+ example: GPT-4o
137
+ provider:
138
+ type: string
139
+ enum: [openai, anthropic, google, meta]
140
+ status:
141
+ type: string
142
+ enum: [active, deprecated, preview]
143
+ pricing:
144
+ $ref: '#/components/schemas/Pricing'
145
+ capabilities:
146
+ type: array
147
+ items:
148
+ type: string
149
+ example: [chat, vision, function_calling]
150
+
151
+ Pricing:
152
+ type: object
153
+ properties:
154
+ input:
155
+ type: number
156
+ description: Price per million input tokens (USD)
157
+ example: 2.50
158
+ output:
159
+ type: number
160
+ description: Price per million output tokens (USD)
161
+ example: 10.00
162
+ currency:
163
+ type: string
164
+ default: USD
165
+
166
+ ModelListResponse:
167
+ type: object
168
+ properties:
169
+ data:
170
+ type: array
171
+ items:
172
+ $ref: '#/components/schemas/Model'
173
+ pagination:
174
+ $ref: '#/components/schemas/Pagination'
175
+
176
+ Pagination:
177
+ type: object
178
+ properties:
179
+ page:
180
+ type: integer
181
+ limit:
182
+ type: integer
183
+ total:
184
+ type: integer
185
+ totalPages:
186
+ type: integer
187
+
188
+ ProblemDetails:
189
+ type: object
190
+ required: [type, title, status]
191
+ properties:
192
+ type:
193
+ type: string
194
+ format: uri
195
+ title:
196
+ type: string
197
+ status:
198
+ type: integer
199
+ detail:
200
+ type: string
201
+ correlationId:
202
+ type: string
203
+ format: uuid
204
+
205
+ responses:
206
+ Unauthorized:
207
+ description: Authentication required
208
+ content:
209
+ application/problem+json:
210
+ schema:
211
+ $ref: '#/components/schemas/ProblemDetails'
212
+ example:
213
+ type: https://api.example.com/problems/unauthorized
214
+ title: Unauthorized
215
+ status: 401
216
+ detail: Bearer token is missing or invalid.
217
+
218
+ NotFound:
219
+ description: Resource not found
220
+ content:
221
+ application/problem+json:
222
+ schema:
223
+ $ref: '#/components/schemas/ProblemDetails'
224
+
225
+ RateLimited:
226
+ description: Rate limit exceeded
227
+ headers:
228
+ Retry-After:
229
+ schema:
230
+ type: integer
231
+ description: Seconds until the rate limit resets
232
+ content:
233
+ application/problem+json:
234
+ schema:
235
+ $ref: '#/components/schemas/ProblemDetails'
236
+
237
+ examples:
238
+ ModelListExample:
239
+ summary: A typical model list response
240
+ value:
241
+ data:
242
+ - id: gpt-4o
243
+ name: GPT-4o
244
+ provider: openai
245
+ status: active
246
+ pricing: { input: 2.50, output: 10.00, currency: USD }
247
+ capabilities: [chat, vision, function_calling]
248
+ - id: claude-sonnet-4-20250514
249
+ name: Claude Sonnet 4
250
+ provider: anthropic
251
+ status: active
252
+ pricing: { input: 3.00, output: 15.00, currency: USD }
253
+ capabilities: [chat, vision, tool_use]
254
+ pagination: { page: 1, limit: 20, total: 42, totalPages: 3 }
255
+
256
+ security:
257
+ - bearerAuth: []
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Schema-First vs Code-First
263
+
264
+ ### Schema-First (Recommended)
265
+
266
+ Write the OpenAPI spec first, then generate types and validate implementation against it.
267
+
268
+ ```
269
+ openapi.yaml → TypeScript types → Implementation → Validate against spec
270
+ ```
271
+
272
+ **Advantages:**
273
+ - Spec is the single source of truth
274
+ - Frontend and backend teams can work in parallel
275
+ - SDK generation is trivial
276
+ - API review happens before implementation
277
+
278
+ ### Code-First
279
+
280
+ Annotate code with decorators/comments, generate the spec from code.
281
+
282
+ ```
283
+ Implementation → Decorators/Comments → Generated openapi.yaml
284
+ ```
285
+
286
+ **Advantages:**
287
+ - Spec is always in sync with code
288
+ - No separate file to maintain
289
+ - Good for rapid prototyping
290
+
291
+ **Disadvantages:**
292
+ - Spec quality depends on annotation discipline
293
+ - Harder to review API design before implementation
294
+
295
+ ### Hybrid (Practical)
296
+
297
+ Define Zod schemas (source of truth), generate OpenAPI from Zod, validate at runtime.
298
+
299
+ ```typescript
300
+ // Define in Zod (your contract)
301
+ import { z } from 'zod';
302
+ import { extendZodWithOpenApi, generateOpenApi } from 'zod-openapi';
303
+
304
+ extendZodWithOpenApi(z);
305
+
306
+ export const ModelSchema = z.object({
307
+ id: z.string().openapi({ example: 'gpt-4o' }),
308
+ name: z.string().openapi({ example: 'GPT-4o' }),
309
+ provider: z.enum(['openai', 'anthropic', 'google', 'meta']),
310
+ status: z.enum(['active', 'deprecated', 'preview']),
311
+ }).openapi('Model');
312
+
313
+ // Generate OpenAPI spec from Zod schemas
314
+ const spec = generateOpenApi({
315
+ info: { title: 'My API', version: '2.0.0' },
316
+ paths: {
317
+ '/models': {
318
+ get: {
319
+ responses: {
320
+ 200: { content: { 'application/json': { schema: ModelListResponseSchema } } },
321
+ },
322
+ },
323
+ },
324
+ },
325
+ });
326
+ ```
327
+
328
+ ---
329
+
330
+ ## Interactive Documentation
331
+
332
+ ### Swagger UI
333
+
334
+ The classic interactive API explorer. Lets users try endpoints directly.
335
+
336
+ ```html
337
+ <!-- Host Swagger UI -->
338
+ <!DOCTYPE html>
339
+ <html>
340
+ <head>
341
+ <title>API Documentation</title>
342
+ <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist/swagger-ui.css" />
343
+ </head>
344
+ <body>
345
+ <div id="swagger-ui"></div>
346
+ <script src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"></script>
347
+ <script>
348
+ SwaggerUIBundle({
349
+ url: '/openapi.yaml',
350
+ dom_id: '#swagger-ui',
351
+ deepLinking: true,
352
+ presets: [SwaggerUIBundle.presets.apis],
353
+ });
354
+ </script>
355
+ </body>
356
+ </html>
357
+ ```
358
+
359
+ ### Scalar (Modern Alternative)
360
+
361
+ ```html
362
+ <!DOCTYPE html>
363
+ <html>
364
+ <head>
365
+ <title>API Reference</title>
366
+ <meta charset="utf-8" />
367
+ </head>
368
+ <body>
369
+ <script id="api-reference" data-url="/openapi.yaml"></script>
370
+ <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
371
+ </body>
372
+ </html>
373
+ ```
374
+
375
+ ### Redoc (Documentation-Focused)
376
+
377
+ ```html
378
+ <!DOCTYPE html>
379
+ <html>
380
+ <head>
381
+ <title>API Documentation</title>
382
+ </head>
383
+ <body>
384
+ <redoc spec-url="/openapi.yaml"></redoc>
385
+ <script src="https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js"></script>
386
+ </body>
387
+ </html>
388
+ ```
389
+
390
+ ### Tool Comparison
391
+
392
+ | Feature | Swagger UI | Scalar | Redoc |
393
+ |---------|-----------|--------|-------|
394
+ | Try it out (send requests) | Yes | Yes | No (paid only) |
395
+ | Dark mode | Plugin | Built-in | Theme config |
396
+ | Search | Basic | Built-in | Built-in |
397
+ | Customization | Limited | High | High |
398
+ | Modern look | Dated | Modern | Clean |
399
+ | Self-hosted | Yes | Yes | Yes |
400
+
401
+ ---
402
+
403
+ ## Example Responses and Request Bodies
404
+
405
+ Always provide examples. They are more useful than schema descriptions alone.
406
+
407
+ ```yaml
408
+ # In-schema examples
409
+ components:
410
+ schemas:
411
+ CreateModelRequest:
412
+ type: object
413
+ required: [name, provider]
414
+ properties:
415
+ name:
416
+ type: string
417
+ example: "My Custom Model"
418
+ provider:
419
+ type: string
420
+ example: "openai"
421
+ config:
422
+ type: object
423
+ example:
424
+ temperature: 0.7
425
+ maxTokens: 2048
426
+
427
+ # Multiple named examples on an operation
428
+ paths:
429
+ /completions:
430
+ post:
431
+ requestBody:
432
+ content:
433
+ application/json:
434
+ schema:
435
+ $ref: '#/components/schemas/CompletionRequest'
436
+ examples:
437
+ simple:
438
+ summary: Simple text completion
439
+ value:
440
+ model: gpt-4o
441
+ messages:
442
+ - role: user
443
+ content: "Hello, world!"
444
+ with_system:
445
+ summary: With system prompt
446
+ value:
447
+ model: gpt-4o
448
+ messages:
449
+ - role: system
450
+ content: "You are a helpful assistant."
451
+ - role: user
452
+ content: "Explain quantum computing."
453
+ temperature: 0.3
454
+ ```
455
+
456
+ ---
457
+
458
+ ## Authentication Documentation
459
+
460
+ ```yaml
461
+ components:
462
+ securitySchemes:
463
+ bearerAuth:
464
+ type: http
465
+ scheme: bearer
466
+ bearerFormat: JWT
467
+ description: |
468
+ Obtain a token by calling `POST /auth/token` with your API key.
469
+
470
+ Include in all requests:
471
+ ```
472
+ Authorization: Bearer <your-token>
473
+ ```
474
+
475
+ apiKeyAuth:
476
+ type: apiKey
477
+ in: header
478
+ name: X-API-Key
479
+ description: |
480
+ Your API key from the dashboard.
481
+ **Never expose this key in client-side code.**
482
+
483
+ # Apply globally
484
+ security:
485
+ - bearerAuth: []
486
+
487
+ # Override per endpoint (public endpoint)
488
+ paths:
489
+ /health:
490
+ get:
491
+ security: [] # No auth required
492
+ summary: Health check
493
+ ```
494
+
495
+ ---
496
+
497
+ ## Webhook Documentation
498
+
499
+ ```yaml
500
+ webhooks:
501
+ modelStatusChanged:
502
+ post:
503
+ summary: Model status changed
504
+ description: Fired when a model's status changes (active, deprecated, preview).
505
+ requestBody:
506
+ required: true
507
+ content:
508
+ application/json:
509
+ schema:
510
+ type: object
511
+ required: [event, data, timestamp]
512
+ properties:
513
+ event:
514
+ type: string
515
+ enum: [model.status_changed]
516
+ data:
517
+ type: object
518
+ properties:
519
+ modelId:
520
+ type: string
521
+ previousStatus:
522
+ type: string
523
+ newStatus:
524
+ type: string
525
+ timestamp:
526
+ type: string
527
+ format: date-time
528
+ example:
529
+ event: model.status_changed
530
+ data:
531
+ modelId: gpt-4
532
+ previousStatus: active
533
+ newStatus: deprecated
534
+ timestamp: "2026-02-15T10:30:00Z"
535
+ responses:
536
+ '200':
537
+ description: Webhook received successfully
538
+ ```
539
+
540
+ ---
541
+
542
+ ## SDK Generation
543
+
544
+ ### openapi-typescript (TypeScript Types)
545
+
546
+ ```bash
547
+ npx openapi-typescript ./openapi.yaml -o ./src/types/api.ts
548
+ ```
549
+
550
+ ```typescript
551
+ // Generated types are used directly
552
+ import type { paths, components } from './types/api';
553
+
554
+ type Model = components['schemas']['Model'];
555
+ type ListModelsResponse = paths['/models']['get']['responses']['200']['content']['application/json'];
556
+ ```
557
+
558
+ ### openapi-fetch (Type-Safe Client)
559
+
560
+ ```typescript
561
+ import createClient from 'openapi-fetch';
562
+ import type { paths } from './types/api';
563
+
564
+ const client = createClient<paths>({ baseUrl: 'https://api.example.com/v2' });
565
+
566
+ // Fully typed: params, body, and response are inferred
567
+ const { data, error } = await client.GET('/models/{modelId}', {
568
+ params: { path: { modelId: 'gpt-4o' } },
569
+ });
570
+
571
+ if (data) {
572
+ console.log(data.name); // TypeScript knows this is a string
573
+ }
574
+ ```
575
+
576
+ ### Orval (React Query + Axios)
577
+
578
+ ```bash
579
+ npx orval --input ./openapi.yaml --output ./src/api
580
+ ```
581
+
582
+ ```typescript
583
+ // Generated React Query hooks
584
+ import { useListModels, useGetModel } from './api';
585
+
586
+ function ModelList() {
587
+ const { data, isLoading } = useListModels({ provider: 'openai' });
588
+ // Fully typed, with loading/error states
589
+ }
590
+ ```
591
+
592
+ ---
593
+
594
+ ## Keeping Docs in Sync
595
+
596
+ ### Strategy 1: Spec Validation in CI
597
+
598
+ ```bash
599
+ # Validate spec syntax
600
+ npx @redocly/cli lint openapi.yaml
601
+
602
+ # Validate implementation matches spec
603
+ npx openapi-diff openapi.yaml --actual http://localhost:3000/openapi.json
604
+ ```
605
+
606
+ ### Strategy 2: Contract Tests from Spec
607
+
608
+ ```typescript
609
+ // Generate tests from OpenAPI spec
610
+ import { describe, it, expect } from 'vitest';
611
+ import spec from './openapi.yaml';
612
+
613
+ for (const [path, methods] of Object.entries(spec.paths)) {
614
+ for (const [method, operation] of Object.entries(methods)) {
615
+ describe(`${method.toUpperCase()} ${path}`, () => {
616
+ it('returns documented status codes', async () => {
617
+ const response = await fetch(`${BASE_URL}${path}`, { method });
618
+ const expectedStatuses = Object.keys(operation.responses).map(Number);
619
+ expect(expectedStatuses).toContain(response.status);
620
+ });
621
+ });
622
+ }
623
+ }
624
+ ```
625
+
626
+ ### Strategy 3: Runtime Response Validation
627
+
628
+ ```typescript
629
+ // Validate every response matches the spec in development
630
+ import { ResponseValidator } from 'openapi-response-validator';
631
+
632
+ const validator = new ResponseValidator({ spec });
633
+
634
+ function validateResponse(path: string, method: string, statusCode: number, body: unknown): void {
635
+ if (process.env.NODE_ENV !== 'development') return;
636
+
637
+ const errors = validator.validate(path, method, statusCode, body);
638
+ if (errors.length > 0) {
639
+ console.error(`Response does not match OpenAPI spec for ${method} ${path}:`, errors);
640
+ }
641
+ }
642
+ ```
643
+
644
+ ---
645
+
646
+ ## API Reference vs Guides
647
+
648
+ | Document Type | Purpose | Format |
649
+ |--------------|---------|--------|
650
+ | **API Reference** | Every endpoint, parameter, and schema | OpenAPI + interactive docs |
651
+ | **Getting Started Guide** | First API call in < 5 minutes | Markdown tutorial |
652
+ | **Authentication Guide** | How to obtain and use tokens | Markdown with code samples |
653
+ | **Webhooks Guide** | How to receive and verify webhooks | Markdown with examples |
654
+ | **Error Handling Guide** | How to interpret and handle errors | Markdown with error catalog |
655
+ | **Migration Guide** | How to upgrade between versions | Markdown with before/after |
656
+ | **SDKs & Libraries** | Official and community clients | README with install instructions |
657
+
658
+ ---
659
+
660
+ ## Versioned Documentation
661
+
662
+ ```
663
+ /docs/v1/ ← Previous version (deprecated)
664
+ /docs/v2/ ← Current version (default)
665
+ /docs/next/ ← Preview of upcoming changes
666
+ ```
667
+
668
+ ```yaml
669
+ # v1 spec includes sunset notice
670
+ info:
671
+ title: My API (v1 - Deprecated)
672
+ description: |
673
+ **This version is deprecated.** Please migrate to [v2](/docs/v2/).
674
+ Sunset date: July 1, 2026.
675
+ ```
676
+
677
+ ---
678
+
679
+ ## Anti-Patterns
680
+
681
+ | Anti-Pattern | Correct Approach |
682
+ |-------------|------------------|
683
+ | No examples in spec | Include at least one example per endpoint |
684
+ | Spec exists but is not published | Host interactive docs at a public URL |
685
+ | Spec is manually maintained | Generate from Zod schemas or validate in CI |
686
+ | No error response documentation | Document every possible error status and shape |
687
+ | Documentation has no search | Use Scalar or Redoc (built-in search) |
688
+ | Authentication documented only in spec | Write a separate authentication guide |
689
+ | SDK types manually maintained | Generate from OpenAPI spec |
690
+
691
+ ## References
692
+
693
+ - [OpenAPI 3.1 Specification](https://spec.openapis.org/oas/v3.1.0)
694
+ - [Redocly CLI](https://redocly.com/docs/cli/)
695
+ - [openapi-typescript](https://openapi-ts.dev/)
696
+ - [Scalar API Reference](https://github.com/scalar/scalar)
697
+ - [Swagger UI](https://swagger.io/tools/swagger-ui/)