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,573 @@
1
+ ---
2
+ name: payload-cms
3
+ description: Build content management systems with Payload CMS including collections, globals, fields, hooks, access control, and admin customization. Use when implementing headless CMS functionality, content APIs, or admin dashboards backed by Payload.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Payload CMS
8
+
9
+ Build headless content management systems with Payload CMS. Payload is a TypeScript-first, code-configured CMS that gives you a full admin panel, REST and GraphQL APIs, authentication, access control, and file uploads out of the box.
10
+
11
+ ## When to Use This Skill
12
+
13
+ - Building content-managed websites or applications
14
+ - Creating admin panels for structured data management
15
+ - Implementing complex content models with relationships, blocks, and arrays
16
+ - Managing file uploads and media libraries
17
+ - Generating type-safe APIs from content schemas
18
+ - Adding versioning and draft/publish workflows to content
19
+
20
+ ## Setup
21
+
22
+ ```bash
23
+ # Create new Payload project
24
+ pnpm create payload-app@latest
25
+
26
+ # Or add to existing project
27
+ pnpm add payload @payloadcms/next @payloadcms/db-mongodb @payloadcms/richtext-lexical
28
+ ```
29
+
30
+ ### Configuration
31
+
32
+ ```typescript
33
+ // payload.config.ts
34
+ import { buildConfig } from 'payload';
35
+ import { mongooseAdapter } from '@payloadcms/db-mongodb';
36
+ import { lexicalEditor } from '@payloadcms/richtext-lexical';
37
+ import { uploadthingStorage } from '@payloadcms/storage-uploadthing';
38
+ import { Pages } from './collections/Pages';
39
+ import { Posts } from './collections/Posts';
40
+ import { Media } from './collections/Media';
41
+ import { Users } from './collections/Users';
42
+ import { SiteSettings } from './globals/SiteSettings';
43
+
44
+ export default buildConfig({
45
+ collections: [Users, Posts, Pages, Media],
46
+ globals: [SiteSettings],
47
+ editor: lexicalEditor(),
48
+ db: mongooseAdapter({
49
+ url: process.env.DATABASE_URI!,
50
+ }),
51
+ secret: process.env.PAYLOAD_SECRET!,
52
+ typescript: {
53
+ outputFile: 'src/payload-types.ts', // Auto-generated types
54
+ },
55
+ plugins: [
56
+ uploadthingStorage({
57
+ collections: { media: true },
58
+ }),
59
+ ],
60
+ });
61
+ ```
62
+
63
+ ## Collections
64
+
65
+ Collections are the primary data model. Each collection gets a database table, REST/GraphQL endpoints, and an admin UI.
66
+
67
+ ### Basic Collection
68
+
69
+ ```typescript
70
+ // collections/Posts.ts
71
+ import type { CollectionConfig } from 'payload';
72
+
73
+ export const Posts: CollectionConfig = {
74
+ slug: 'posts',
75
+ labels: { singular: 'Post', plural: 'Posts' },
76
+ admin: {
77
+ useAsTitle: 'title',
78
+ defaultColumns: ['title', 'status', 'author', 'updatedAt'],
79
+ listSearchableFields: ['title', 'slug'],
80
+ group: 'Content',
81
+ },
82
+ versions: {
83
+ drafts: {
84
+ autosave: { interval: 1500 },
85
+ },
86
+ maxPerDoc: 25,
87
+ },
88
+ fields: [
89
+ {
90
+ name: 'title',
91
+ type: 'text',
92
+ required: true,
93
+ minLength: 3,
94
+ maxLength: 200,
95
+ },
96
+ {
97
+ name: 'slug',
98
+ type: 'text',
99
+ required: true,
100
+ unique: true,
101
+ admin: { position: 'sidebar' },
102
+ },
103
+ {
104
+ name: 'status',
105
+ type: 'select',
106
+ required: true,
107
+ defaultValue: 'draft',
108
+ options: [
109
+ { label: 'Draft', value: 'draft' },
110
+ { label: 'Published', value: 'published' },
111
+ { label: 'Archived', value: 'archived' },
112
+ ],
113
+ admin: { position: 'sidebar' },
114
+ },
115
+ {
116
+ name: 'author',
117
+ type: 'relationship',
118
+ relationTo: 'users',
119
+ required: true,
120
+ admin: { position: 'sidebar' },
121
+ },
122
+ {
123
+ name: 'publishedAt',
124
+ type: 'date',
125
+ admin: {
126
+ date: { pickerAppearance: 'dayAndTime' },
127
+ position: 'sidebar',
128
+ },
129
+ },
130
+ {
131
+ name: 'featuredImage',
132
+ type: 'upload',
133
+ relationTo: 'media',
134
+ },
135
+ {
136
+ name: 'excerpt',
137
+ type: 'textarea',
138
+ maxLength: 300,
139
+ },
140
+ {
141
+ name: 'content',
142
+ type: 'richText', // Uses configured editor (Lexical)
143
+ },
144
+ {
145
+ name: 'tags',
146
+ type: 'relationship',
147
+ relationTo: 'tags',
148
+ hasMany: true,
149
+ },
150
+ {
151
+ name: 'seo',
152
+ type: 'group',
153
+ fields: [
154
+ { name: 'metaTitle', type: 'text', maxLength: 60 },
155
+ { name: 'metaDescription', type: 'textarea', maxLength: 160 },
156
+ { name: 'ogImage', type: 'upload', relationTo: 'media' },
157
+ ],
158
+ },
159
+ ],
160
+ };
161
+ ```
162
+
163
+ ### Upload Collection (Media)
164
+
165
+ ```typescript
166
+ // collections/Media.ts
167
+ import type { CollectionConfig } from 'payload';
168
+
169
+ export const Media: CollectionConfig = {
170
+ slug: 'media',
171
+ upload: {
172
+ mimeTypes: ['image/png', 'image/jpeg', 'image/webp', 'image/svg+xml', 'application/pdf'],
173
+ imageSizes: [
174
+ { name: 'thumbnail', width: 300, height: 300, position: 'centre' },
175
+ { name: 'card', width: 768, height: 432, position: 'centre' },
176
+ { name: 'hero', width: 1920, height: undefined }, // Maintain aspect ratio
177
+ ],
178
+ adminThumbnail: 'thumbnail',
179
+ focalPoint: true,
180
+ },
181
+ fields: [
182
+ { name: 'alt', type: 'text', required: true },
183
+ { name: 'caption', type: 'text' },
184
+ ],
185
+ access: {
186
+ read: () => true, // Public access to media
187
+ },
188
+ };
189
+ ```
190
+
191
+ ### Users Collection with Auth
192
+
193
+ ```typescript
194
+ // collections/Users.ts
195
+ import type { CollectionConfig } from 'payload';
196
+
197
+ export const Users: CollectionConfig = {
198
+ slug: 'users',
199
+ auth: {
200
+ tokenExpiration: 7200, // 2 hours
201
+ maxLoginAttempts: 5,
202
+ lockTime: 600000, // 10 minutes
203
+ useAPIKey: true, // Enable API key auth
204
+ },
205
+ admin: {
206
+ useAsTitle: 'email',
207
+ group: 'Admin',
208
+ },
209
+ fields: [
210
+ { name: 'name', type: 'text', required: true },
211
+ {
212
+ name: 'role',
213
+ type: 'select',
214
+ required: true,
215
+ defaultValue: 'editor',
216
+ options: [
217
+ { label: 'Admin', value: 'admin' },
218
+ { label: 'Editor', value: 'editor' },
219
+ { label: 'Viewer', value: 'viewer' },
220
+ ],
221
+ },
222
+ { name: 'avatar', type: 'upload', relationTo: 'media' },
223
+ ],
224
+ };
225
+ ```
226
+
227
+ ## Field Types Reference
228
+
229
+ | Type | Usage |
230
+ |------|-------|
231
+ | `text` | Short strings (titles, names) |
232
+ | `textarea` | Multi-line text |
233
+ | `number` | Numeric values |
234
+ | `email` | Email addresses (validated) |
235
+ | `select` | Dropdown / enum |
236
+ | `radio` | Radio button selection |
237
+ | `checkbox` | Boolean toggle |
238
+ | `date` | Date/datetime picker |
239
+ | `richText` | Rich text editor (Lexical) |
240
+ | `upload` | File upload reference |
241
+ | `relationship` | Reference to another collection |
242
+ | `array` | Repeatable groups of fields |
243
+ | `blocks` | Flexible content with named block types |
244
+ | `group` | Nested field group (no repetition) |
245
+ | `tabs` | Organize fields into tabs |
246
+ | `row` | Horizontal field layout |
247
+ | `collapsible` | Collapsible field group |
248
+ | `json` | Raw JSON data |
249
+ | `point` | GeoJSON point coordinates |
250
+
251
+ ### Blocks Field (Flexible Content)
252
+
253
+ ```typescript
254
+ {
255
+ name: 'layout',
256
+ type: 'blocks',
257
+ blocks: [
258
+ {
259
+ slug: 'hero',
260
+ fields: [
261
+ { name: 'heading', type: 'text', required: true },
262
+ { name: 'subheading', type: 'text' },
263
+ { name: 'backgroundImage', type: 'upload', relationTo: 'media' },
264
+ { name: 'cta', type: 'group', fields: [
265
+ { name: 'label', type: 'text' },
266
+ { name: 'url', type: 'text' },
267
+ ]},
268
+ ],
269
+ },
270
+ {
271
+ slug: 'contentSection',
272
+ fields: [
273
+ { name: 'content', type: 'richText' },
274
+ { name: 'alignment', type: 'select', options: ['left', 'center', 'right'] },
275
+ ],
276
+ },
277
+ {
278
+ slug: 'gallery',
279
+ fields: [
280
+ { name: 'images', type: 'array', fields: [
281
+ { name: 'image', type: 'upload', relationTo: 'media', required: true },
282
+ { name: 'caption', type: 'text' },
283
+ ]},
284
+ { name: 'columns', type: 'number', min: 1, max: 4, defaultValue: 3 },
285
+ ],
286
+ },
287
+ ],
288
+ }
289
+ ```
290
+
291
+ ## Globals
292
+
293
+ Globals are single-instance configurations (site settings, navigation, etc.).
294
+
295
+ ```typescript
296
+ // globals/SiteSettings.ts
297
+ import type { GlobalConfig } from 'payload';
298
+
299
+ export const SiteSettings: GlobalConfig = {
300
+ slug: 'site-settings',
301
+ access: {
302
+ read: () => true,
303
+ update: ({ req: { user } }) => user?.role === 'admin',
304
+ },
305
+ fields: [
306
+ { name: 'siteName', type: 'text', required: true },
307
+ { name: 'siteDescription', type: 'textarea' },
308
+ { name: 'logo', type: 'upload', relationTo: 'media' },
309
+ {
310
+ name: 'navigation',
311
+ type: 'array',
312
+ fields: [
313
+ { name: 'label', type: 'text', required: true },
314
+ { name: 'url', type: 'text', required: true },
315
+ { name: 'newTab', type: 'checkbox', defaultValue: false },
316
+ ],
317
+ },
318
+ {
319
+ name: 'socialLinks',
320
+ type: 'group',
321
+ fields: [
322
+ { name: 'twitter', type: 'text' },
323
+ { name: 'github', type: 'text' },
324
+ { name: 'linkedin', type: 'text' },
325
+ ],
326
+ },
327
+ ],
328
+ };
329
+ ```
330
+
331
+ ## Access Control
332
+
333
+ Every collection and field can have fine-grained access control.
334
+
335
+ ```typescript
336
+ // collections/Posts.ts (access property)
337
+ access: {
338
+ // Who can read posts
339
+ read: ({ req: { user } }) => {
340
+ if (!user) {
341
+ // Unauthenticated users can only see published posts
342
+ return { status: { equals: 'published' } };
343
+ }
344
+ if (user.role === 'admin') return true;
345
+ // Editors can see their own posts regardless of status
346
+ return {
347
+ or: [
348
+ { status: { equals: 'published' } },
349
+ { author: { equals: user.id } },
350
+ ],
351
+ };
352
+ },
353
+
354
+ // Who can create posts
355
+ create: ({ req: { user } }) => {
356
+ return user?.role === 'admin' || user?.role === 'editor';
357
+ },
358
+
359
+ // Who can update posts
360
+ update: ({ req: { user } }) => {
361
+ if (user?.role === 'admin') return true;
362
+ // Editors can only update their own posts
363
+ return { author: { equals: user?.id } };
364
+ },
365
+
366
+ // Who can delete posts
367
+ delete: ({ req: { user } }) => user?.role === 'admin',
368
+ },
369
+
370
+ // Field-level access
371
+ {
372
+ name: 'internalNotes',
373
+ type: 'textarea',
374
+ access: {
375
+ read: ({ req: { user } }) => user?.role === 'admin',
376
+ update: ({ req: { user } }) => user?.role === 'admin',
377
+ },
378
+ }
379
+ ```
380
+
381
+ ## Hooks
382
+
383
+ Hooks execute custom logic at various points in the document lifecycle.
384
+
385
+ ```typescript
386
+ // collections/Posts.ts (hooks property)
387
+ hooks: {
388
+ beforeChange: [
389
+ // Auto-generate slug from title
390
+ ({ data, operation }) => {
391
+ if (operation === 'create' || data?.title) {
392
+ data.slug = data.title
393
+ .toLowerCase()
394
+ .replace(/[^a-z0-9]+/g, '-')
395
+ .replace(/(^-|-$)/g, '');
396
+ }
397
+ return data;
398
+ },
399
+ ],
400
+
401
+ beforeValidate: [
402
+ // Set publishedAt when status changes to published
403
+ ({ data, originalDoc }) => {
404
+ if (data?.status === 'published' && originalDoc?.status !== 'published') {
405
+ data.publishedAt = new Date().toISOString();
406
+ }
407
+ return data;
408
+ },
409
+ ],
410
+
411
+ afterChange: [
412
+ // Revalidate cache when post is updated
413
+ async ({ doc, operation }) => {
414
+ if (operation === 'update' && doc.status === 'published') {
415
+ await fetch(`${process.env.APP_URL}/api/revalidate?path=/blog/${doc.slug}`);
416
+ }
417
+ },
418
+ // Send notification on new post
419
+ async ({ doc, operation, req }) => {
420
+ if (operation === 'create' && doc.status === 'published') {
421
+ await notifySubscribers(doc, req);
422
+ }
423
+ },
424
+ ],
425
+
426
+ afterDelete: [
427
+ // Clean up related resources
428
+ async ({ doc, req }) => {
429
+ await cleanupOrphanedMedia(doc, req);
430
+ },
431
+ ],
432
+ },
433
+ ```
434
+
435
+ ## Custom Endpoints
436
+
437
+ ```typescript
438
+ // collections/Posts.ts (endpoints property)
439
+ endpoints: [
440
+ {
441
+ path: '/popular',
442
+ method: 'get',
443
+ handler: async (req) => {
444
+ const posts = await req.payload.find({
445
+ collection: 'posts',
446
+ where: { status: { equals: 'published' } },
447
+ sort: '-viewCount',
448
+ limit: 10,
449
+ });
450
+
451
+ return Response.json(posts);
452
+ },
453
+ },
454
+ ],
455
+ ```
456
+
457
+ ## Querying Data
458
+
459
+ ### Local API (Server-Side)
460
+
461
+ ```typescript
462
+ import { getPayload } from 'payload';
463
+ import config from '@payload-config';
464
+
465
+ const payload = await getPayload({ config });
466
+
467
+ // Find documents
468
+ const posts = await payload.find({
469
+ collection: 'posts',
470
+ where: {
471
+ status: { equals: 'published' },
472
+ tags: { contains: tagId },
473
+ },
474
+ sort: '-publishedAt',
475
+ limit: 10,
476
+ page: 1,
477
+ depth: 2, // Resolve relationships 2 levels deep
478
+ });
479
+
480
+ // Find by ID
481
+ const post = await payload.findByID({
482
+ collection: 'posts',
483
+ id: postId,
484
+ depth: 1,
485
+ });
486
+
487
+ // Create
488
+ const newPost = await payload.create({
489
+ collection: 'posts',
490
+ data: { title: 'New Post', status: 'draft', author: userId },
491
+ });
492
+
493
+ // Update
494
+ const updated = await payload.update({
495
+ collection: 'posts',
496
+ id: postId,
497
+ data: { status: 'published' },
498
+ });
499
+
500
+ // Delete
501
+ await payload.delete({ collection: 'posts', id: postId });
502
+
503
+ // Get global
504
+ const settings = await payload.findGlobal({ slug: 'site-settings' });
505
+ ```
506
+
507
+ ### REST API (Auto-Generated)
508
+
509
+ ```
510
+ GET /api/posts # List posts
511
+ GET /api/posts/:id # Get single post
512
+ POST /api/posts # Create post
513
+ PATCH /api/posts/:id # Update post
514
+ DELETE /api/posts/:id # Delete post
515
+ GET /api/globals/site-settings # Get global
516
+ ```
517
+
518
+ ## TypeScript Type Generation
519
+
520
+ ```bash
521
+ # Generate types from your config
522
+ pnpm payload generate:types
523
+ ```
524
+
525
+ ```typescript
526
+ // Auto-generated: src/payload-types.ts
527
+ import type { Post, Media, User } from '@/payload-types';
528
+
529
+ // Use in your application code
530
+ function renderPost(post: Post) {
531
+ // Full type safety on all fields
532
+ console.log(post.title, post.author, post.tags);
533
+ }
534
+ ```
535
+
536
+ ## Anti-Patterns
537
+
538
+ | Anti-Pattern | Correct Approach |
539
+ |-------------|-----------------|
540
+ | Defining collections in a single file | One file per collection in a `collections/` directory |
541
+ | Skipping access control | Define access for every collection, even if it returns `true` |
542
+ | Using `depth: 0` globally to avoid N+1 | Set `depth` per query based on what you need |
543
+ | Putting business logic in afterChange hooks with no error handling | Wrap hook logic in try/catch; a failed hook can block the entire operation |
544
+ | Using raw database queries instead of Local API | The Local API respects hooks, access control, and validation |
545
+ | Hardcoding admin credentials | Use environment variables and the built-in auth system |
546
+ | Not generating TypeScript types after schema changes | Run `pnpm payload generate:types` after every collection/field change |
547
+
548
+ ## Plugins
549
+
550
+ ```typescript
551
+ // payload.config.ts
552
+ import { seoPlugin } from '@payloadcms/plugin-seo';
553
+ import { formBuilderPlugin } from '@payloadcms/plugin-form-builder';
554
+ import { searchPlugin } from '@payloadcms/plugin-search';
555
+
556
+ export default buildConfig({
557
+ plugins: [
558
+ seoPlugin({
559
+ collections: ['posts', 'pages'],
560
+ uploadsCollection: 'media',
561
+ generateTitle: ({ doc }) => `${doc.title} | My Site`,
562
+ generateDescription: ({ doc }) => doc.excerpt ?? '',
563
+ }),
564
+ formBuilderPlugin({
565
+ fields: { text: true, email: true, textarea: true, select: true },
566
+ }),
567
+ searchPlugin({
568
+ collections: ['posts', 'pages'],
569
+ searchOverrides: { fields: [{ name: 'slug', type: 'text' }] },
570
+ }),
571
+ ],
572
+ });
573
+ ```