@ruaruababa/vibe-kit 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 (462) hide show
  1. package/CATALOG.md +317 -0
  2. package/README.md +121 -0
  3. package/aliases.json +65 -0
  4. package/bin/vibe.js +2 -0
  5. package/bundles.json +265 -0
  6. package/catalog.json +1560 -0
  7. package/dist/antigravity-skills/bin/cli.js +438 -0
  8. package/dist/antigravity-skills/lib/skill-utils.js +158 -0
  9. package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
  10. package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
  11. package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
  12. package/dist/bin/vibe.js +2 -0
  13. package/dist/dist/src/cli/index.js +26 -0
  14. package/dist/lib/skill-utils.js +158 -0
  15. package/dist/scripts/build-catalog.js +50 -0
  16. package/dist/scripts/normalize-frontmatter.js +144 -0
  17. package/dist/scripts/validate-skills.js +56 -0
  18. package/dist/src/cli/index.js +146 -0
  19. package/dist/src/types/index.js +13 -0
  20. package/dist/src/utils/fs.js +1 -0
  21. package/package.json +43 -0
  22. package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
  23. package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
  24. package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
  25. package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
  26. package/skills/agent-orchestrator/SKILL.md +24 -0
  27. package/skills/ai-engineer/SKILL.md +171 -0
  28. package/skills/airflow-dag-patterns/SKILL.md +41 -0
  29. package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
  30. package/skills/angular-migration/SKILL.md +428 -0
  31. package/skills/anti-reversing-techniques/SKILL.md +42 -0
  32. package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
  33. package/skills/api-design-principles/SKILL.md +37 -0
  34. package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  35. package/skills/api-design-principles/assets/rest-api-template.py +182 -0
  36. package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  37. package/skills/api-design-principles/references/rest-best-practices.md +408 -0
  38. package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  39. package/skills/api-documenter/SKILL.md +184 -0
  40. package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
  41. package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
  42. package/skills/application-performance-performance-optimization/SKILL.md +154 -0
  43. package/skills/architect-review/SKILL.md +174 -0
  44. package/skills/architecture-decision-records/SKILL.md +441 -0
  45. package/skills/architecture-patterns/SKILL.md +37 -0
  46. package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
  47. package/skills/arm-cortex-expert/SKILL.md +306 -0
  48. package/skills/async-python-patterns/SKILL.md +39 -0
  49. package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
  50. package/skills/attack-tree-construction/SKILL.md +38 -0
  51. package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
  52. package/skills/auth-implementation-patterns/SKILL.md +39 -0
  53. package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
  54. package/skills/backend-architect/SKILL.md +333 -0
  55. package/skills/backend-development-feature-development/SKILL.md +180 -0
  56. package/skills/backend-security-coder/SKILL.md +156 -0
  57. package/skills/backtesting-frameworks/SKILL.md +39 -0
  58. package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
  59. package/skills/bash-defensive-patterns/SKILL.md +43 -0
  60. package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
  61. package/skills/bash-pro/SKILL.md +310 -0
  62. package/skills/bats-testing-patterns/SKILL.md +34 -0
  63. package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
  64. package/skills/bazel-build-optimization/SKILL.md +397 -0
  65. package/skills/billing-automation/SKILL.md +42 -0
  66. package/skills/billing-automation/resources/implementation-playbook.md +544 -0
  67. package/skills/binary-analysis-patterns/SKILL.md +450 -0
  68. package/skills/blockchain-developer/SKILL.md +208 -0
  69. package/skills/business-analyst/SKILL.md +182 -0
  70. package/skills/c-pro/SKILL.md +56 -0
  71. package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
  72. package/skills/c4-code/SKILL.md +244 -0
  73. package/skills/c4-component/SKILL.md +153 -0
  74. package/skills/c4-container/SKILL.md +171 -0
  75. package/skills/c4-context/SKILL.md +150 -0
  76. package/skills/changelog-automation/SKILL.md +38 -0
  77. package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
  78. package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
  79. package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
  80. package/skills/clean-markdown/SKILL.md +23 -0
  81. package/skills/cloud-architect/SKILL.md +135 -0
  82. package/skills/code-documentation-code-explain/SKILL.md +46 -0
  83. package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
  84. package/skills/code-documentation-doc-generate/SKILL.md +48 -0
  85. package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
  86. package/skills/code-refactoring-context-restore/SKILL.md +179 -0
  87. package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
  88. package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
  89. package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
  90. package/skills/code-review-ai-ai-review/SKILL.md +450 -0
  91. package/skills/code-review-excellence/SKILL.md +40 -0
  92. package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
  93. package/skills/code-reviewer/SKILL.md +178 -0
  94. package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
  95. package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
  96. package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
  97. package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
  98. package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
  99. package/skills/competitive-landscape/SKILL.md +34 -0
  100. package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
  101. package/skills/comprehensive-review-full-review/SKILL.md +146 -0
  102. package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
  103. package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
  104. package/skills/conductor-implement/SKILL.md +388 -0
  105. package/skills/conductor-manage/SKILL.md +39 -0
  106. package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
  107. package/skills/conductor-new-track/SKILL.md +433 -0
  108. package/skills/conductor-revert/SKILL.md +372 -0
  109. package/skills/conductor-setup/SKILL.md +426 -0
  110. package/skills/conductor-status/SKILL.md +338 -0
  111. package/skills/conductor-validator/SKILL.md +62 -0
  112. package/skills/content-marketer/SKILL.md +170 -0
  113. package/skills/context-driven-development/SKILL.md +400 -0
  114. package/skills/context-management-context-restore/SKILL.md +179 -0
  115. package/skills/context-management-context-save/SKILL.md +177 -0
  116. package/skills/context-manager/SKILL.md +185 -0
  117. package/skills/cost-optimization/SKILL.md +286 -0
  118. package/skills/cpp-pro/SKILL.md +59 -0
  119. package/skills/cqrs-implementation/SKILL.md +35 -0
  120. package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
  121. package/skills/csharp-pro/SKILL.md +59 -0
  122. package/skills/customer-support/SKILL.md +170 -0
  123. package/skills/data-engineer/SKILL.md +224 -0
  124. package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
  125. package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
  126. package/skills/data-quality-frameworks/SKILL.md +40 -0
  127. package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
  128. package/skills/data-scientist/SKILL.md +199 -0
  129. package/skills/data-storytelling/SKILL.md +465 -0
  130. package/skills/database-admin/SKILL.md +165 -0
  131. package/skills/database-architect/SKILL.md +268 -0
  132. package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
  133. package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
  134. package/skills/database-migration/SKILL.md +436 -0
  135. package/skills/database-migrations-migration-observability/SKILL.md +420 -0
  136. package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
  137. package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
  138. package/skills/database-optimizer/SKILL.md +167 -0
  139. package/skills/dbt-transformation-patterns/SKILL.md +34 -0
  140. package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
  141. package/skills/debugger/SKILL.md +49 -0
  142. package/skills/debugging-strategies/SKILL.md +34 -0
  143. package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
  144. package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
  145. package/skills/defi-protocol-templates/SKILL.md +466 -0
  146. package/skills/dependency-management-deps-audit/SKILL.md +44 -0
  147. package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
  148. package/skills/dependency-upgrade/SKILL.md +421 -0
  149. package/skills/deployment-engineer/SKILL.md +170 -0
  150. package/skills/deployment-pipeline-design/SKILL.md +371 -0
  151. package/skills/deployment-validation-config-validate/SKILL.md +496 -0
  152. package/skills/devops-troubleshooter/SKILL.md +161 -0
  153. package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
  154. package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
  155. package/skills/distributed-tracing/SKILL.md +450 -0
  156. package/skills/django-pro/SKILL.md +180 -0
  157. package/skills/docs-architect/SKILL.md +98 -0
  158. package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
  159. package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
  160. package/skills/dotnet-architect/SKILL.md +197 -0
  161. package/skills/dotnet-backend-patterns/SKILL.md +37 -0
  162. package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
  163. package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
  164. package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
  165. package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
  166. package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
  167. package/skills/dummy-skill/SKILL.md +5 -0
  168. package/skills/dx-optimizer/SKILL.md +83 -0
  169. package/skills/e2e-testing-patterns/SKILL.md +41 -0
  170. package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
  171. package/skills/elixir-pro/SKILL.md +59 -0
  172. package/skills/embedding-strategies/SKILL.md +491 -0
  173. package/skills/employment-contract-templates/SKILL.md +39 -0
  174. package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
  175. package/skills/error-debugging-error-analysis/SKILL.md +47 -0
  176. package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
  177. package/skills/error-debugging-error-trace/SKILL.md +43 -0
  178. package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
  179. package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
  180. package/skills/error-detective/SKILL.md +53 -0
  181. package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
  182. package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
  183. package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
  184. package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
  185. package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
  186. package/skills/error-handling-patterns/SKILL.md +35 -0
  187. package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
  188. package/skills/event-sourcing-architect/SKILL.md +58 -0
  189. package/skills/event-store-design/SKILL.md +449 -0
  190. package/skills/fastapi-pro/SKILL.md +192 -0
  191. package/skills/fastapi-templates/SKILL.md +32 -0
  192. package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
  193. package/skills/final-test/SKILL.md +5 -0
  194. package/skills/firmware-analyst/SKILL.md +320 -0
  195. package/skills/flutter-expert/SKILL.md +200 -0
  196. package/skills/framework-migration-code-migrate/SKILL.md +48 -0
  197. package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
  198. package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
  199. package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
  200. package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
  201. package/skills/frontend-developer/SKILL.md +171 -0
  202. package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
  203. package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
  204. package/skills/frontend-security-coder/SKILL.md +170 -0
  205. package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
  206. package/skills/gdpr-data-handling/SKILL.md +33 -0
  207. package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
  208. package/skills/git-advanced-workflows/SKILL.md +412 -0
  209. package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
  210. package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
  211. package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
  212. package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
  213. package/skills/github-actions-templates/SKILL.md +345 -0
  214. package/skills/gitlab-ci-patterns/SKILL.md +283 -0
  215. package/skills/gitops-workflow/SKILL.md +303 -0
  216. package/skills/gitops-workflow/references/argocd-setup.md +134 -0
  217. package/skills/gitops-workflow/references/sync-policies.md +131 -0
  218. package/skills/go-concurrency-patterns/SKILL.md +33 -0
  219. package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
  220. package/skills/godot-gdscript-patterns/SKILL.md +33 -0
  221. package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
  222. package/skills/golang-pro/SKILL.md +179 -0
  223. package/skills/grafana-dashboards/SKILL.md +381 -0
  224. package/skills/graphql-architect/SKILL.md +182 -0
  225. package/skills/haskell-pro/SKILL.md +56 -0
  226. package/skills/helm-chart-scaffolding/SKILL.md +34 -0
  227. package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  228. package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  229. package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  230. package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
  231. package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  232. package/skills/hr-pro/SKILL.md +126 -0
  233. package/skills/hybrid-cloud-architect/SKILL.md +168 -0
  234. package/skills/hybrid-cloud-networking/SKILL.md +238 -0
  235. package/skills/hybrid-search-implementation/SKILL.md +32 -0
  236. package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
  237. package/skills/incident-responder/SKILL.md +213 -0
  238. package/skills/incident-response-incident-response/SKILL.md +168 -0
  239. package/skills/incident-response-smart-fix/SKILL.md +29 -0
  240. package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
  241. package/skills/incident-runbook-templates/SKILL.md +395 -0
  242. package/skills/ios-developer/SKILL.md +219 -0
  243. package/skills/istio-traffic-management/SKILL.md +337 -0
  244. package/skills/java-pro/SKILL.md +177 -0
  245. package/skills/javascript-pro/SKILL.md +57 -0
  246. package/skills/javascript-testing-patterns/SKILL.md +35 -0
  247. package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
  248. package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
  249. package/skills/julia-pro/SKILL.md +209 -0
  250. package/skills/k8s-manifest-generator/SKILL.md +35 -0
  251. package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  252. package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  253. package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  254. package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  255. package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  256. package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
  257. package/skills/k8s-security-policies/SKILL.md +346 -0
  258. package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  259. package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  260. package/skills/kpi-dashboard-design/SKILL.md +440 -0
  261. package/skills/kubernetes-architect/SKILL.md +170 -0
  262. package/skills/langchain-architecture/SKILL.md +350 -0
  263. package/skills/legacy-modernizer/SKILL.md +53 -0
  264. package/skills/legal-advisor/SKILL.md +70 -0
  265. package/skills/linkerd-patterns/SKILL.md +321 -0
  266. package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
  267. package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
  268. package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
  269. package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
  270. package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
  271. package/skills/llm-evaluation/SKILL.md +483 -0
  272. package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
  273. package/skills/malware-analyst/SKILL.md +247 -0
  274. package/skills/market-sizing-analysis/SKILL.md +425 -0
  275. package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
  276. package/skills/market-sizing-analysis/references/data-sources.md +360 -0
  277. package/skills/memory-forensics/SKILL.md +491 -0
  278. package/skills/memory-safety-patterns/SKILL.md +33 -0
  279. package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
  280. package/skills/mermaid-expert/SKILL.md +59 -0
  281. package/skills/microservices-patterns/SKILL.md +35 -0
  282. package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
  283. package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
  284. package/skills/ml-engineer/SKILL.md +168 -0
  285. package/skills/ml-pipeline-workflow/SKILL.md +257 -0
  286. package/skills/mlops-engineer/SKILL.md +219 -0
  287. package/skills/mobile-developer/SKILL.md +205 -0
  288. package/skills/mobile-security-coder/SKILL.md +184 -0
  289. package/skills/modern-javascript-patterns/SKILL.md +35 -0
  290. package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
  291. package/skills/monorepo-architect/SKILL.md +61 -0
  292. package/skills/monorepo-management/SKILL.md +35 -0
  293. package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
  294. package/skills/mtls-configuration/SKILL.md +359 -0
  295. package/skills/multi-cloud-architecture/SKILL.md +189 -0
  296. package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
  297. package/skills/network-engineer/SKILL.md +169 -0
  298. package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
  299. package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
  300. package/skills/nft-standards/SKILL.md +395 -0
  301. package/skills/node-expert/SKILL.md +23 -0
  302. package/skills/nodejs-backend-patterns/SKILL.md +35 -0
  303. package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
  304. package/skills/nx-workspace-patterns/SKILL.md +464 -0
  305. package/skills/observability-engineer/SKILL.md +237 -0
  306. package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
  307. package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
  308. package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
  309. package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
  310. package/skills/on-call-handoff-patterns/SKILL.md +453 -0
  311. package/skills/openapi-spec-generation/SKILL.md +33 -0
  312. package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
  313. package/skills/payment-integration/SKILL.md +77 -0
  314. package/skills/paypal-integration/SKILL.md +479 -0
  315. package/skills/pci-compliance/SKILL.md +478 -0
  316. package/skills/performance-engineer/SKILL.md +180 -0
  317. package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
  318. package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
  319. package/skills/php-pro/SKILL.md +63 -0
  320. package/skills/posix-shell-pro/SKILL.md +304 -0
  321. package/skills/postgresql/SKILL.md +230 -0
  322. package/skills/postmortem-writing/SKILL.md +386 -0
  323. package/skills/projection-patterns/SKILL.md +33 -0
  324. package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
  325. package/skills/prometheus-configuration/SKILL.md +404 -0
  326. package/skills/prompt-engineer/SKILL.md +272 -0
  327. package/skills/prompt-engineering-patterns/SKILL.md +213 -0
  328. package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
  329. package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
  330. package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
  331. package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
  332. package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
  333. package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
  334. package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
  335. package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
  336. package/skills/protocol-reverse-engineering/SKILL.md +29 -0
  337. package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
  338. package/skills/python-development-python-scaffold/SKILL.md +331 -0
  339. package/skills/python-packaging/SKILL.md +36 -0
  340. package/skills/python-packaging/resources/implementation-playbook.md +869 -0
  341. package/skills/python-performance-optimization/SKILL.md +36 -0
  342. package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
  343. package/skills/python-pro/SKILL.md +158 -0
  344. package/skills/python-testing-patterns/SKILL.md +37 -0
  345. package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
  346. package/skills/quant-analyst/SKILL.md +53 -0
  347. package/skills/rag-implementation/SKILL.md +421 -0
  348. package/skills/react-modernization/SKILL.md +34 -0
  349. package/skills/react-modernization/resources/implementation-playbook.md +512 -0
  350. package/skills/react-native-architecture/SKILL.md +33 -0
  351. package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
  352. package/skills/react-state-management/SKILL.md +441 -0
  353. package/skills/reference-builder/SKILL.md +188 -0
  354. package/skills/reverse-engineer/SKILL.md +173 -0
  355. package/skills/risk-manager/SKILL.md +61 -0
  356. package/skills/risk-metrics-calculation/SKILL.md +33 -0
  357. package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
  358. package/skills/ruby-pro/SKILL.md +56 -0
  359. package/skills/rust-async-patterns/SKILL.md +33 -0
  360. package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
  361. package/skills/rust-pro/SKILL.md +178 -0
  362. package/skills/saga-orchestration/SKILL.md +496 -0
  363. package/skills/sales-automator/SKILL.md +55 -0
  364. package/skills/sast-configuration/SKILL.md +212 -0
  365. package/skills/scala-pro/SKILL.md +82 -0
  366. package/skills/screen-reader-testing/SKILL.md +33 -0
  367. package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
  368. package/skills/search-specialist/SKILL.md +80 -0
  369. package/skills/secrets-management/SKILL.md +364 -0
  370. package/skills/security-auditor/SKILL.md +169 -0
  371. package/skills/security-compliance-compliance-check/SKILL.md +55 -0
  372. package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
  373. package/skills/security-requirement-extraction/SKILL.md +33 -0
  374. package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
  375. package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
  376. package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
  377. package/skills/security-scanning-security-hardening/SKILL.md +147 -0
  378. package/skills/security-scanning-security-sast/SKILL.md +495 -0
  379. package/skills/seo-authority-builder/SKILL.md +136 -0
  380. package/skills/seo-cannibalization-detector/SKILL.md +123 -0
  381. package/skills/seo-content-auditor/SKILL.md +83 -0
  382. package/skills/seo-content-planner/SKILL.md +108 -0
  383. package/skills/seo-content-refresher/SKILL.md +118 -0
  384. package/skills/seo-content-writer/SKILL.md +96 -0
  385. package/skills/seo-keyword-strategist/SKILL.md +95 -0
  386. package/skills/seo-meta-optimizer/SKILL.md +92 -0
  387. package/skills/seo-snippet-hunter/SKILL.md +114 -0
  388. package/skills/seo-structure-architect/SKILL.md +108 -0
  389. package/skills/service-mesh-expert/SKILL.md +58 -0
  390. package/skills/service-mesh-observability/SKILL.md +395 -0
  391. package/skills/shellcheck-configuration/SKILL.md +466 -0
  392. package/skills/similarity-search-patterns/SKILL.md +33 -0
  393. package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
  394. package/skills/slo-implementation/SKILL.md +341 -0
  395. package/skills/solidity-security/SKILL.md +34 -0
  396. package/skills/solidity-security/resources/implementation-playbook.md +524 -0
  397. package/skills/spark-optimization/SKILL.md +427 -0
  398. package/skills/sql-optimization-patterns/SKILL.md +35 -0
  399. package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
  400. package/skills/sql-pro/SKILL.md +173 -0
  401. package/skills/startup-analyst/SKILL.md +328 -0
  402. package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
  403. package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
  404. package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
  405. package/skills/startup-financial-modeling/SKILL.md +467 -0
  406. package/skills/startup-metrics-framework/SKILL.md +34 -0
  407. package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
  408. package/skills/stride-analysis-patterns/SKILL.md +33 -0
  409. package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
  410. package/skills/stripe-integration/SKILL.md +454 -0
  411. package/skills/systems-programming-rust-project/SKILL.md +440 -0
  412. package/skills/tailwind-design-system/SKILL.md +33 -0
  413. package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
  414. package/skills/tdd-orchestrator/SKILL.md +205 -0
  415. package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
  416. package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
  417. package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
  418. package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
  419. package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
  420. package/skills/team-collaboration-issue/SKILL.md +37 -0
  421. package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
  422. package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
  423. package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
  424. package/skills/team-composition-analysis/SKILL.md +413 -0
  425. package/skills/temporal-python-pro/SKILL.md +370 -0
  426. package/skills/temporal-python-testing/SKILL.md +170 -0
  427. package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
  428. package/skills/temporal-python-testing/resources/local-setup.md +553 -0
  429. package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
  430. package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
  431. package/skills/terraform-module-library/SKILL.md +261 -0
  432. package/skills/terraform-module-library/references/aws-modules.md +63 -0
  433. package/skills/terraform-specialist/SKILL.md +166 -0
  434. package/skills/test-automator/SKILL.md +224 -0
  435. package/skills/threat-mitigation-mapping/SKILL.md +33 -0
  436. package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
  437. package/skills/threat-modeling-expert/SKILL.md +60 -0
  438. package/skills/track-management/SKILL.md +38 -0
  439. package/skills/track-management/resources/implementation-playbook.md +591 -0
  440. package/skills/turborepo-caching/SKILL.md +419 -0
  441. package/skills/tutorial-engineer/SKILL.md +139 -0
  442. package/skills/typescript-advanced-types/SKILL.md +35 -0
  443. package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
  444. package/skills/typescript-pro/SKILL.md +55 -0
  445. package/skills/ui-minimal/SKILL.md +23 -0
  446. package/skills/ui-ux-designer/SKILL.md +209 -0
  447. package/skills/ui-visual-validator/SKILL.md +214 -0
  448. package/skills/unit-testing-test-generate/SKILL.md +319 -0
  449. package/skills/unity-developer/SKILL.md +230 -0
  450. package/skills/unity-ecs-patterns/SKILL.md +33 -0
  451. package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
  452. package/skills/uv-package-manager/SKILL.md +37 -0
  453. package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
  454. package/skills/vector-database-engineer/SKILL.md +60 -0
  455. package/skills/vector-index-tuning/SKILL.md +42 -0
  456. package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
  457. package/skills/wcag-audit-patterns/SKILL.md +41 -0
  458. package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
  459. package/skills/web3-testing/SKILL.md +427 -0
  460. package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
  461. package/skills/workflow-patterns/SKILL.md +38 -0
  462. package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
@@ -0,0 +1,543 @@
1
+ # Next.js App Router Patterns Implementation Playbook
2
+
3
+ This file contains detailed patterns, checklists, and code samples referenced by the skill.
4
+
5
+ # Next.js App Router Patterns
6
+
7
+ Comprehensive patterns for Next.js 14+ App Router architecture, Server Components, and modern full-stack React development.
8
+
9
+ ## When to Use This Skill
10
+
11
+ - Building new Next.js applications with App Router
12
+ - Migrating from Pages Router to App Router
13
+ - Implementing Server Components and streaming
14
+ - Setting up parallel and intercepting routes
15
+ - Optimizing data fetching and caching
16
+ - Building full-stack features with Server Actions
17
+
18
+ ## Core Concepts
19
+
20
+ ### 1. Rendering Modes
21
+
22
+ | Mode | Where | When to Use |
23
+ |------|-------|-------------|
24
+ | **Server Components** | Server only | Data fetching, heavy computation, secrets |
25
+ | **Client Components** | Browser | Interactivity, hooks, browser APIs |
26
+ | **Static** | Build time | Content that rarely changes |
27
+ | **Dynamic** | Request time | Personalized or real-time data |
28
+ | **Streaming** | Progressive | Large pages, slow data sources |
29
+
30
+ ### 2. File Conventions
31
+
32
+ ```
33
+ app/
34
+ ├── layout.tsx # Shared UI wrapper
35
+ ├── page.tsx # Route UI
36
+ ├── loading.tsx # Loading UI (Suspense)
37
+ ├── error.tsx # Error boundary
38
+ ├── not-found.tsx # 404 UI
39
+ ├── route.ts # API endpoint
40
+ ├── template.tsx # Re-mounted layout
41
+ ├── default.tsx # Parallel route fallback
42
+ └── opengraph-image.tsx # OG image generation
43
+ ```
44
+
45
+ ## Quick Start
46
+
47
+ ```typescript
48
+ // app/layout.tsx
49
+ import { Inter } from 'next/font/google'
50
+ import { Providers } from './providers'
51
+
52
+ const inter = Inter({ subsets: ['latin'] })
53
+
54
+ export const metadata = {
55
+ title: { default: 'My App', template: '%s | My App' },
56
+ description: 'Built with Next.js App Router',
57
+ }
58
+
59
+ export default function RootLayout({
60
+ children,
61
+ }: {
62
+ children: React.ReactNode
63
+ }) {
64
+ return (
65
+ <html lang="en" suppressHydrationWarning>
66
+ <body className={inter.className}>
67
+ <Providers>{children}</Providers>
68
+ </body>
69
+ </html>
70
+ )
71
+ }
72
+
73
+ // app/page.tsx - Server Component by default
74
+ async function getProducts() {
75
+ const res = await fetch('https://api.example.com/products', {
76
+ next: { revalidate: 3600 }, // ISR: revalidate every hour
77
+ })
78
+ return res.json()
79
+ }
80
+
81
+ export default async function HomePage() {
82
+ const products = await getProducts()
83
+
84
+ return (
85
+ <main>
86
+ <h1>Products</h1>
87
+ <ProductGrid products={products} />
88
+ </main>
89
+ )
90
+ }
91
+ ```
92
+
93
+ ## Patterns
94
+
95
+ ### Pattern 1: Server Components with Data Fetching
96
+
97
+ ```typescript
98
+ // app/products/page.tsx
99
+ import { Suspense } from 'react'
100
+ import { ProductList, ProductListSkeleton } from '@/components/products'
101
+ import { FilterSidebar } from '@/components/filters'
102
+
103
+ interface SearchParams {
104
+ category?: string
105
+ sort?: 'price' | 'name' | 'date'
106
+ page?: string
107
+ }
108
+
109
+ export default async function ProductsPage({
110
+ searchParams,
111
+ }: {
112
+ searchParams: Promise<SearchParams>
113
+ }) {
114
+ const params = await searchParams
115
+
116
+ return (
117
+ <div className="flex gap-8">
118
+ <FilterSidebar />
119
+ <Suspense
120
+ key={JSON.stringify(params)}
121
+ fallback={<ProductListSkeleton />}
122
+ >
123
+ <ProductList
124
+ category={params.category}
125
+ sort={params.sort}
126
+ page={Number(params.page) || 1}
127
+ />
128
+ </Suspense>
129
+ </div>
130
+ )
131
+ }
132
+
133
+ // components/products/ProductList.tsx - Server Component
134
+ async function getProducts(filters: ProductFilters) {
135
+ const res = await fetch(
136
+ `${process.env.API_URL}/products?${new URLSearchParams(filters)}`,
137
+ { next: { tags: ['products'] } }
138
+ )
139
+ if (!res.ok) throw new Error('Failed to fetch products')
140
+ return res.json()
141
+ }
142
+
143
+ export async function ProductList({ category, sort, page }: ProductFilters) {
144
+ const { products, totalPages } = await getProducts({ category, sort, page })
145
+
146
+ return (
147
+ <div>
148
+ <div className="grid grid-cols-3 gap-4">
149
+ {products.map((product) => (
150
+ <ProductCard key={product.id} product={product} />
151
+ ))}
152
+ </div>
153
+ <Pagination currentPage={page} totalPages={totalPages} />
154
+ </div>
155
+ )
156
+ }
157
+ ```
158
+
159
+ ### Pattern 2: Client Components with 'use client'
160
+
161
+ ```typescript
162
+ // components/products/AddToCartButton.tsx
163
+ 'use client'
164
+
165
+ import { useState, useTransition } from 'react'
166
+ import { addToCart } from '@/app/actions/cart'
167
+
168
+ export function AddToCartButton({ productId }: { productId: string }) {
169
+ const [isPending, startTransition] = useTransition()
170
+ const [error, setError] = useState<string | null>(null)
171
+
172
+ const handleClick = () => {
173
+ setError(null)
174
+ startTransition(async () => {
175
+ const result = await addToCart(productId)
176
+ if (result.error) {
177
+ setError(result.error)
178
+ }
179
+ })
180
+ }
181
+
182
+ return (
183
+ <div>
184
+ <button
185
+ onClick={handleClick}
186
+ disabled={isPending}
187
+ className="btn-primary"
188
+ >
189
+ {isPending ? 'Adding...' : 'Add to Cart'}
190
+ </button>
191
+ {error && <p className="text-red-500 text-sm">{error}</p>}
192
+ </div>
193
+ )
194
+ }
195
+ ```
196
+
197
+ ### Pattern 3: Server Actions
198
+
199
+ ```typescript
200
+ // app/actions/cart.ts
201
+ 'use server'
202
+
203
+ import { revalidateTag } from 'next/cache'
204
+ import { cookies } from 'next/headers'
205
+ import { redirect } from 'next/navigation'
206
+
207
+ export async function addToCart(productId: string) {
208
+ const cookieStore = await cookies()
209
+ const sessionId = cookieStore.get('session')?.value
210
+
211
+ if (!sessionId) {
212
+ redirect('/login')
213
+ }
214
+
215
+ try {
216
+ await db.cart.upsert({
217
+ where: { sessionId_productId: { sessionId, productId } },
218
+ update: { quantity: { increment: 1 } },
219
+ create: { sessionId, productId, quantity: 1 },
220
+ })
221
+
222
+ revalidateTag('cart')
223
+ return { success: true }
224
+ } catch (error) {
225
+ return { error: 'Failed to add item to cart' }
226
+ }
227
+ }
228
+
229
+ export async function checkout(formData: FormData) {
230
+ const address = formData.get('address') as string
231
+ const payment = formData.get('payment') as string
232
+
233
+ // Validate
234
+ if (!address || !payment) {
235
+ return { error: 'Missing required fields' }
236
+ }
237
+
238
+ // Process order
239
+ const order = await processOrder({ address, payment })
240
+
241
+ // Redirect to confirmation
242
+ redirect(`/orders/${order.id}/confirmation`)
243
+ }
244
+ ```
245
+
246
+ ### Pattern 4: Parallel Routes
247
+
248
+ ```typescript
249
+ // app/dashboard/layout.tsx
250
+ export default function DashboardLayout({
251
+ children,
252
+ analytics,
253
+ team,
254
+ }: {
255
+ children: React.ReactNode
256
+ analytics: React.ReactNode
257
+ team: React.ReactNode
258
+ }) {
259
+ return (
260
+ <div className="dashboard-grid">
261
+ <main>{children}</main>
262
+ <aside className="analytics-panel">{analytics}</aside>
263
+ <aside className="team-panel">{team}</aside>
264
+ </div>
265
+ )
266
+ }
267
+
268
+ // app/dashboard/@analytics/page.tsx
269
+ export default async function AnalyticsSlot() {
270
+ const stats = await getAnalytics()
271
+ return <AnalyticsChart data={stats} />
272
+ }
273
+
274
+ // app/dashboard/@analytics/loading.tsx
275
+ export default function AnalyticsLoading() {
276
+ return <ChartSkeleton />
277
+ }
278
+
279
+ // app/dashboard/@team/page.tsx
280
+ export default async function TeamSlot() {
281
+ const members = await getTeamMembers()
282
+ return <TeamList members={members} />
283
+ }
284
+ ```
285
+
286
+ ### Pattern 5: Intercepting Routes (Modal Pattern)
287
+
288
+ ```typescript
289
+ // File structure for photo modal
290
+ // app/
291
+ // ├── @modal/
292
+ // │ ├── (.)photos/[id]/page.tsx # Intercept
293
+ // │ └── default.tsx
294
+ // ├── photos/
295
+ // │ └── [id]/page.tsx # Full page
296
+ // └── layout.tsx
297
+
298
+ // app/@modal/(.)photos/[id]/page.tsx
299
+ import { Modal } from '@/components/Modal'
300
+ import { PhotoDetail } from '@/components/PhotoDetail'
301
+
302
+ export default async function PhotoModal({
303
+ params,
304
+ }: {
305
+ params: Promise<{ id: string }>
306
+ }) {
307
+ const { id } = await params
308
+ const photo = await getPhoto(id)
309
+
310
+ return (
311
+ <Modal>
312
+ <PhotoDetail photo={photo} />
313
+ </Modal>
314
+ )
315
+ }
316
+
317
+ // app/photos/[id]/page.tsx - Full page version
318
+ export default async function PhotoPage({
319
+ params,
320
+ }: {
321
+ params: Promise<{ id: string }>
322
+ }) {
323
+ const { id } = await params
324
+ const photo = await getPhoto(id)
325
+
326
+ return (
327
+ <div className="photo-page">
328
+ <PhotoDetail photo={photo} />
329
+ <RelatedPhotos photoId={id} />
330
+ </div>
331
+ )
332
+ }
333
+
334
+ // app/layout.tsx
335
+ export default function RootLayout({
336
+ children,
337
+ modal,
338
+ }: {
339
+ children: React.ReactNode
340
+ modal: React.ReactNode
341
+ }) {
342
+ return (
343
+ <html>
344
+ <body>
345
+ {children}
346
+ {modal}
347
+ </body>
348
+ </html>
349
+ )
350
+ }
351
+ ```
352
+
353
+ ### Pattern 6: Streaming with Suspense
354
+
355
+ ```typescript
356
+ // app/product/[id]/page.tsx
357
+ import { Suspense } from 'react'
358
+
359
+ export default async function ProductPage({
360
+ params,
361
+ }: {
362
+ params: Promise<{ id: string }>
363
+ }) {
364
+ const { id } = await params
365
+
366
+ // This data loads first (blocking)
367
+ const product = await getProduct(id)
368
+
369
+ return (
370
+ <div>
371
+ {/* Immediate render */}
372
+ <ProductHeader product={product} />
373
+
374
+ {/* Stream in reviews */}
375
+ <Suspense fallback={<ReviewsSkeleton />}>
376
+ <Reviews productId={id} />
377
+ </Suspense>
378
+
379
+ {/* Stream in recommendations */}
380
+ <Suspense fallback={<RecommendationsSkeleton />}>
381
+ <Recommendations productId={id} />
382
+ </Suspense>
383
+ </div>
384
+ )
385
+ }
386
+
387
+ // These components fetch their own data
388
+ async function Reviews({ productId }: { productId: string }) {
389
+ const reviews = await getReviews(productId) // Slow API
390
+ return <ReviewList reviews={reviews} />
391
+ }
392
+
393
+ async function Recommendations({ productId }: { productId: string }) {
394
+ const products = await getRecommendations(productId) // ML-based, slow
395
+ return <ProductCarousel products={products} />
396
+ }
397
+ ```
398
+
399
+ ### Pattern 7: Route Handlers (API Routes)
400
+
401
+ ```typescript
402
+ // app/api/products/route.ts
403
+ import { NextRequest, NextResponse } from 'next/server'
404
+
405
+ export async function GET(request: NextRequest) {
406
+ const searchParams = request.nextUrl.searchParams
407
+ const category = searchParams.get('category')
408
+
409
+ const products = await db.product.findMany({
410
+ where: category ? { category } : undefined,
411
+ take: 20,
412
+ })
413
+
414
+ return NextResponse.json(products)
415
+ }
416
+
417
+ export async function POST(request: NextRequest) {
418
+ const body = await request.json()
419
+
420
+ const product = await db.product.create({
421
+ data: body,
422
+ })
423
+
424
+ return NextResponse.json(product, { status: 201 })
425
+ }
426
+
427
+ // app/api/products/[id]/route.ts
428
+ export async function GET(
429
+ request: NextRequest,
430
+ { params }: { params: Promise<{ id: string }> }
431
+ ) {
432
+ const { id } = await params
433
+ const product = await db.product.findUnique({ where: { id } })
434
+
435
+ if (!product) {
436
+ return NextResponse.json(
437
+ { error: 'Product not found' },
438
+ { status: 404 }
439
+ )
440
+ }
441
+
442
+ return NextResponse.json(product)
443
+ }
444
+ ```
445
+
446
+ ### Pattern 8: Metadata and SEO
447
+
448
+ ```typescript
449
+ // app/products/[slug]/page.tsx
450
+ import { Metadata } from 'next'
451
+ import { notFound } from 'next/navigation'
452
+
453
+ type Props = {
454
+ params: Promise<{ slug: string }>
455
+ }
456
+
457
+ export async function generateMetadata({ params }: Props): Promise<Metadata> {
458
+ const { slug } = await params
459
+ const product = await getProduct(slug)
460
+
461
+ if (!product) return {}
462
+
463
+ return {
464
+ title: product.name,
465
+ description: product.description,
466
+ openGraph: {
467
+ title: product.name,
468
+ description: product.description,
469
+ images: [{ url: product.image, width: 1200, height: 630 }],
470
+ },
471
+ twitter: {
472
+ card: 'summary_large_image',
473
+ title: product.name,
474
+ description: product.description,
475
+ images: [product.image],
476
+ },
477
+ }
478
+ }
479
+
480
+ export async function generateStaticParams() {
481
+ const products = await db.product.findMany({ select: { slug: true } })
482
+ return products.map((p) => ({ slug: p.slug }))
483
+ }
484
+
485
+ export default async function ProductPage({ params }: Props) {
486
+ const { slug } = await params
487
+ const product = await getProduct(slug)
488
+
489
+ if (!product) notFound()
490
+
491
+ return <ProductDetail product={product} />
492
+ }
493
+ ```
494
+
495
+ ## Caching Strategies
496
+
497
+ ### Data Cache
498
+
499
+ ```typescript
500
+ // No cache (always fresh)
501
+ fetch(url, { cache: 'no-store' })
502
+
503
+ // Cache forever (static)
504
+ fetch(url, { cache: 'force-cache' })
505
+
506
+ // ISR - revalidate after 60 seconds
507
+ fetch(url, { next: { revalidate: 60 } })
508
+
509
+ // Tag-based invalidation
510
+ fetch(url, { next: { tags: ['products'] } })
511
+
512
+ // Invalidate via Server Action
513
+ 'use server'
514
+ import { revalidateTag, revalidatePath } from 'next/cache'
515
+
516
+ export async function updateProduct(id: string, data: ProductData) {
517
+ await db.product.update({ where: { id }, data })
518
+ revalidateTag('products')
519
+ revalidatePath('/products')
520
+ }
521
+ ```
522
+
523
+ ## Best Practices
524
+
525
+ ### Do's
526
+ - **Start with Server Components** - Add 'use client' only when needed
527
+ - **Colocate data fetching** - Fetch data where it's used
528
+ - **Use Suspense boundaries** - Enable streaming for slow data
529
+ - **Leverage parallel routes** - Independent loading states
530
+ - **Use Server Actions** - For mutations with progressive enhancement
531
+
532
+ ### Don'ts
533
+ - **Don't pass serializable data** - Server → Client boundary limitations
534
+ - **Don't use hooks in Server Components** - No useState, useEffect
535
+ - **Don't fetch in Client Components** - Use Server Components or React Query
536
+ - **Don't over-nest layouts** - Each layout adds to the component tree
537
+ - **Don't ignore loading states** - Always provide loading.tsx or Suspense
538
+
539
+ ## Resources
540
+
541
+ - [Next.js App Router Documentation](https://nextjs.org/docs/app)
542
+ - [Server Components RFC](https://github.com/reactjs/rfcs/blob/main/text/0188-server-components.md)
543
+ - [Vercel Templates](https://vercel.com/templates/next.js)