claude-code-templates 1.21.1 → 1.21.3

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 (743) hide show
  1. package/README.md +79 -77
  2. package/package.json +86 -19
  3. package/{cli-tool/src → src}/index.js +19 -2
  4. package/.claude/agents/agent-expert.md +0 -477
  5. package/.claude/agents/cli-ui-designer.md +0 -405
  6. package/.claude/agents/command-expert.md +0 -421
  7. package/.claude/agents/docusaurus-expert.md +0 -51
  8. package/.claude/agents/mcp-expert.md +0 -258
  9. package/.claude/commands/lint.md +0 -111
  10. package/.claude/commands/test.md +0 -73
  11. package/.claude/settings.local.json +0 -34
  12. package/.github/WORKFLOWS_REFERENCE.md +0 -88
  13. package/.github/workflows/deploy-docusaurus.yml +0 -31
  14. package/.github/workflows/deploy.yml +0 -33
  15. package/.github/workflows/publish-package.yml +0 -125
  16. package/.mcp.json +0 -4
  17. package/CLAUDE.md +0 -482
  18. package/CODE_OF_CONDUCT.md +0 -82
  19. package/CONTRIBUTING.md +0 -505
  20. package/DEPLOYMENT.md +0 -60
  21. package/LICENSE +0 -21
  22. package/ROADMAP.md +0 -278
  23. package/SECURITY.md +0 -65
  24. package/api/index.html +0 -1
  25. package/api/package.json +0 -7
  26. package/api/track-download-supabase.js +0 -150
  27. package/cli-tool/Makefile +0 -102
  28. package/cli-tool/README.md +0 -126
  29. package/cli-tool/TESTING.md +0 -262
  30. package/cli-tool/components/agents/ai-specialists/ai-ethics-advisor.md +0 -195
  31. package/cli-tool/components/agents/ai-specialists/hackathon-ai-strategist.md +0 -46
  32. package/cli-tool/components/agents/ai-specialists/llms-maintainer.md +0 -94
  33. package/cli-tool/components/agents/ai-specialists/model-evaluator.md +0 -150
  34. package/cli-tool/components/agents/ai-specialists/prompt-engineer.md +0 -112
  35. package/cli-tool/components/agents/ai-specialists/search-specialist.md +0 -59
  36. package/cli-tool/components/agents/ai-specialists/task-decomposition-expert.md +0 -97
  37. package/cli-tool/components/agents/api-graphql/graphql-architect.md +0 -208
  38. package/cli-tool/components/agents/api-graphql/graphql-performance-optimizer.md +0 -357
  39. package/cli-tool/components/agents/api-graphql/graphql-security-specialist.md +0 -519
  40. package/cli-tool/components/agents/blockchain-web3/smart-contract-auditor.md +0 -32
  41. package/cli-tool/components/agents/blockchain-web3/smart-contract-specialist.md +0 -32
  42. package/cli-tool/components/agents/blockchain-web3/web3-integration-specialist.md +0 -32
  43. package/cli-tool/components/agents/business-marketing/business-analyst.md +0 -194
  44. package/cli-tool/components/agents/business-marketing/content-marketer.md +0 -36
  45. package/cli-tool/components/agents/business-marketing/customer-support.md +0 -36
  46. package/cli-tool/components/agents/business-marketing/legal-advisor.md +0 -50
  47. package/cli-tool/components/agents/business-marketing/marketing-attribution-analyst.md +0 -352
  48. package/cli-tool/components/agents/business-marketing/payment-integration.md +0 -33
  49. package/cli-tool/components/agents/business-marketing/product-strategist.md +0 -212
  50. package/cli-tool/components/agents/business-marketing/risk-manager.md +0 -42
  51. package/cli-tool/components/agents/business-marketing/sales-automator.md +0 -36
  52. package/cli-tool/components/agents/data-ai/ai-engineer.md +0 -33
  53. package/cli-tool/components/agents/data-ai/computer-vision-engineer.md +0 -562
  54. package/cli-tool/components/agents/data-ai/data-engineer.md +0 -33
  55. package/cli-tool/components/agents/data-ai/data-scientist.md +0 -337
  56. package/cli-tool/components/agents/data-ai/ml-engineer.md +0 -33
  57. package/cli-tool/components/agents/data-ai/mlops-engineer.md +0 -58
  58. package/cli-tool/components/agents/data-ai/nlp-engineer.md +0 -680
  59. package/cli-tool/components/agents/data-ai/quant-analyst.md +0 -33
  60. package/cli-tool/components/agents/database/database-admin.md +0 -33
  61. package/cli-tool/components/agents/database/database-architect.md +0 -590
  62. package/cli-tool/components/agents/database/database-optimization.md +0 -33
  63. package/cli-tool/components/agents/database/database-optimizer.md +0 -33
  64. package/cli-tool/components/agents/database/nosql-specialist.md +0 -708
  65. package/cli-tool/components/agents/database/supabase-schema-architect.md +0 -138
  66. package/cli-tool/components/agents/deep-research-team/academic-researcher.md +0 -33
  67. package/cli-tool/components/agents/deep-research-team/agent-overview.md +0 -235
  68. package/cli-tool/components/agents/deep-research-team/competitive-intelligence-analyst.md +0 -530
  69. package/cli-tool/components/agents/deep-research-team/data-analyst.md +0 -112
  70. package/cli-tool/components/agents/deep-research-team/fact-checker.md +0 -553
  71. package/cli-tool/components/agents/deep-research-team/query-clarifier.md +0 -73
  72. package/cli-tool/components/agents/deep-research-team/report-generator.md +0 -108
  73. package/cli-tool/components/agents/deep-research-team/research-brief-generator.md +0 -108
  74. package/cli-tool/components/agents/deep-research-team/research-coordinator.md +0 -94
  75. package/cli-tool/components/agents/deep-research-team/research-orchestrator.md +0 -119
  76. package/cli-tool/components/agents/deep-research-team/research-synthesizer.md +0 -109
  77. package/cli-tool/components/agents/deep-research-team/technical-researcher.md +0 -95
  78. package/cli-tool/components/agents/development-team/backend-architect.md +0 -31
  79. package/cli-tool/components/agents/development-team/cli-ui-designer.md +0 -405
  80. package/cli-tool/components/agents/development-team/devops-engineer.md +0 -886
  81. package/cli-tool/components/agents/development-team/frontend-developer.md +0 -32
  82. package/cli-tool/components/agents/development-team/fullstack-developer.md +0 -1205
  83. package/cli-tool/components/agents/development-team/ios-developer.md +0 -36
  84. package/cli-tool/components/agents/development-team/mobile-developer.md +0 -33
  85. package/cli-tool/components/agents/development-team/ui-ux-designer.md +0 -36
  86. package/cli-tool/components/agents/development-tools/code-reviewer.md +0 -30
  87. package/cli-tool/components/agents/development-tools/command-expert.md +0 -422
  88. package/cli-tool/components/agents/development-tools/context-manager.md +0 -65
  89. package/cli-tool/components/agents/development-tools/debugger.md +0 -31
  90. package/cli-tool/components/agents/development-tools/dx-optimizer.md +0 -64
  91. package/cli-tool/components/agents/development-tools/error-detective.md +0 -33
  92. package/cli-tool/components/agents/development-tools/mcp-expert.md +0 -259
  93. package/cli-tool/components/agents/development-tools/performance-profiler.md +0 -799
  94. package/cli-tool/components/agents/development-tools/test-engineer.md +0 -936
  95. package/cli-tool/components/agents/devops-infrastructure/cloud-architect.md +0 -33
  96. package/cli-tool/components/agents/devops-infrastructure/deployment-engineer.md +0 -33
  97. package/cli-tool/components/agents/devops-infrastructure/devops-troubleshooter.md +0 -33
  98. package/cli-tool/components/agents/devops-infrastructure/monitoring-specialist.md +0 -36
  99. package/cli-tool/components/agents/devops-infrastructure/network-engineer.md +0 -33
  100. package/cli-tool/components/agents/devops-infrastructure/security-engineer.md +0 -971
  101. package/cli-tool/components/agents/devops-infrastructure/terraform-specialist.md +0 -36
  102. package/cli-tool/components/agents/devops-infrastructure/vercel-deployment-specialist.md +0 -357
  103. package/cli-tool/components/agents/documentation/api-documenter.md +0 -33
  104. package/cli-tool/components/agents/documentation/changelog-generator.md +0 -37
  105. package/cli-tool/components/agents/documentation/docusaurus-expert.md +0 -52
  106. package/cli-tool/components/agents/documentation/technical-writer.md +0 -37
  107. package/cli-tool/components/agents/expert-advisors/agent-expert.md +0 -477
  108. package/cli-tool/components/agents/expert-advisors/architect-review.md +0 -50
  109. package/cli-tool/components/agents/expert-advisors/dependency-manager.md +0 -45
  110. package/cli-tool/components/agents/expert-advisors/documentation-expert.md +0 -47
  111. package/cli-tool/components/agents/ffmpeg-clip-team/audio-mixer.md +0 -37
  112. package/cli-tool/components/agents/ffmpeg-clip-team/audio-quality-controller.md +0 -100
  113. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-content-analyzer.md +0 -60
  114. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-metadata-specialist.md +0 -46
  115. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-transcriber.md +0 -68
  116. package/cli-tool/components/agents/ffmpeg-clip-team/social-media-clip-creator.md +0 -69
  117. package/cli-tool/components/agents/ffmpeg-clip-team/timestamp-precision-specialist.md +0 -98
  118. package/cli-tool/components/agents/ffmpeg-clip-team/video-editor.md +0 -37
  119. package/cli-tool/components/agents/game-development/3d-artist.md +0 -37
  120. package/cli-tool/components/agents/game-development/game-designer.md +0 -37
  121. package/cli-tool/components/agents/game-development/unity-game-developer.md +0 -110
  122. package/cli-tool/components/agents/game-development/unreal-engine-developer.md +0 -128
  123. package/cli-tool/components/agents/mcp-dev-team/mcp-deployment-orchestrator.md +0 -101
  124. package/cli-tool/components/agents/mcp-dev-team/mcp-integration-engineer.md +0 -37
  125. package/cli-tool/components/agents/mcp-dev-team/mcp-protocol-specialist.md +0 -37
  126. package/cli-tool/components/agents/mcp-dev-team/mcp-registry-navigator.md +0 -112
  127. package/cli-tool/components/agents/mcp-dev-team/mcp-security-auditor.md +0 -70
  128. package/cli-tool/components/agents/mcp-dev-team/mcp-server-architect.md +0 -74
  129. package/cli-tool/components/agents/mcp-dev-team/mcp-testing-engineer.md +0 -106
  130. package/cli-tool/components/agents/modernization/architecture-modernizer.md +0 -37
  131. package/cli-tool/components/agents/modernization/cloud-migration-specialist.md +0 -37
  132. package/cli-tool/components/agents/modernization/legacy-modernizer.md +0 -33
  133. package/cli-tool/components/agents/obsidian-ops-team/Scripts/daily_notes_connector.py +0 -306
  134. package/cli-tool/components/agents/obsidian-ops-team/Scripts/enhance_tag_standardizer.py +0 -343
  135. package/cli-tool/components/agents/obsidian-ops-team/Scripts/find_keyword_connections.py +0 -216
  136. package/cli-tool/components/agents/obsidian-ops-team/Scripts/fix_quoted_tags.py +0 -82
  137. package/cli-tool/components/agents/obsidian-ops-team/Scripts/implement_entity_connections.py +0 -195
  138. package/cli-tool/components/agents/obsidian-ops-team/Scripts/link_suggester.py +0 -301
  139. package/cli-tool/components/agents/obsidian-ops-team/Scripts/metadata_adder.py +0 -197
  140. package/cli-tool/components/agents/obsidian-ops-team/Scripts/moc_generator.py +0 -296
  141. package/cli-tool/components/agents/obsidian-ops-team/Scripts/parse_keyword_connections.py +0 -122
  142. package/cli-tool/components/agents/obsidian-ops-team/Scripts/tag_standardizer.py +0 -387
  143. package/cli-tool/components/agents/obsidian-ops-team/connection-agent.md +0 -67
  144. package/cli-tool/components/agents/obsidian-ops-team/content-curator.md +0 -81
  145. package/cli-tool/components/agents/obsidian-ops-team/metadata-agent.md +0 -51
  146. package/cli-tool/components/agents/obsidian-ops-team/moc-agent.md +0 -112
  147. package/cli-tool/components/agents/obsidian-ops-team/review-agent.md +0 -94
  148. package/cli-tool/components/agents/obsidian-ops-team/tag-agent.md +0 -92
  149. package/cli-tool/components/agents/obsidian-ops-team/vault-optimizer.md +0 -76
  150. package/cli-tool/components/agents/ocr-extraction-team/document-structure-analyzer.md +0 -37
  151. package/cli-tool/components/agents/ocr-extraction-team/markdown-syntax-formatter.md +0 -58
  152. package/cli-tool/components/agents/ocr-extraction-team/ocr-grammar-fixer.md +0 -36
  153. package/cli-tool/components/agents/ocr-extraction-team/ocr-preprocessing-optimizer.md +0 -37
  154. package/cli-tool/components/agents/ocr-extraction-team/ocr-quality-assurance.md +0 -62
  155. package/cli-tool/components/agents/ocr-extraction-team/text-comparison-validator.md +0 -60
  156. package/cli-tool/components/agents/ocr-extraction-team/visual-analysis-ocr.md +0 -52
  157. package/cli-tool/components/agents/performance-testing/load-testing-specialist.md +0 -37
  158. package/cli-tool/components/agents/performance-testing/performance-engineer.md +0 -33
  159. package/cli-tool/components/agents/performance-testing/react-performance-optimization.md +0 -65
  160. package/cli-tool/components/agents/performance-testing/test-automator.md +0 -33
  161. package/cli-tool/components/agents/performance-testing/web-vitals-optimizer.md +0 -37
  162. package/cli-tool/components/agents/podcast-creator-team/academic-research-synthesizer.md +0 -61
  163. package/cli-tool/components/agents/podcast-creator-team/comprehensive-researcher.md +0 -49
  164. package/cli-tool/components/agents/podcast-creator-team/episode-orchestrator.md +0 -52
  165. package/cli-tool/components/agents/podcast-creator-team/guest-outreach-coordinator.md +0 -37
  166. package/cli-tool/components/agents/podcast-creator-team/market-research-analyst.md +0 -54
  167. package/cli-tool/components/agents/podcast-creator-team/podcast-editor.md +0 -37
  168. package/cli-tool/components/agents/podcast-creator-team/podcast-trend-scout.md +0 -60
  169. package/cli-tool/components/agents/podcast-creator-team/project-supervisor-orchestrator.md +0 -48
  170. package/cli-tool/components/agents/podcast-creator-team/seo-podcast-optimizer.md +0 -58
  171. package/cli-tool/components/agents/podcast-creator-team/social-media-copywriter.md +0 -57
  172. package/cli-tool/components/agents/podcast-creator-team/twitter-ai-influencer-manager.md +0 -62
  173. package/cli-tool/components/agents/programming-languages/c-pro.md +0 -36
  174. package/cli-tool/components/agents/programming-languages/c-sharp-pro.md +0 -40
  175. package/cli-tool/components/agents/programming-languages/cpp-pro.md +0 -39
  176. package/cli-tool/components/agents/programming-languages/golang-pro.md +0 -33
  177. package/cli-tool/components/agents/programming-languages/javascript-pro.md +0 -36
  178. package/cli-tool/components/agents/programming-languages/php-pro.md +0 -44
  179. package/cli-tool/components/agents/programming-languages/python-pro.md +0 -33
  180. package/cli-tool/components/agents/programming-languages/rust-pro.md +0 -36
  181. package/cli-tool/components/agents/programming-languages/shell-scripting-pro.md +0 -38
  182. package/cli-tool/components/agents/programming-languages/sql-pro.md +0 -36
  183. package/cli-tool/components/agents/programming-languages/typescript-pro.md +0 -38
  184. package/cli-tool/components/agents/realtime/supabase-realtime-optimizer.md +0 -193
  185. package/cli-tool/components/agents/security/api-security-audit.md +0 -93
  186. package/cli-tool/components/agents/security/compliance-specialist.md +0 -37
  187. package/cli-tool/components/agents/security/incident-responder.md +0 -75
  188. package/cli-tool/components/agents/security/penetration-tester.md +0 -37
  189. package/cli-tool/components/agents/security/security-auditor.md +0 -33
  190. package/cli-tool/components/agents/web-tools/nextjs-architecture-expert.md +0 -194
  191. package/cli-tool/components/agents/web-tools/react-performance-optimizer.md +0 -425
  192. package/cli-tool/components/agents/web-tools/seo-analyzer.md +0 -37
  193. package/cli-tool/components/agents/web-tools/url-context-validator.md +0 -61
  194. package/cli-tool/components/agents/web-tools/url-link-extractor.md +0 -59
  195. package/cli-tool/components/agents/web-tools/web-accessibility-checker.md +0 -37
  196. package/cli-tool/components/commands/automation/act.md +0 -57
  197. package/cli-tool/components/commands/automation/ci-pipeline.md +0 -378
  198. package/cli-tool/components/commands/automation/husky.md +0 -130
  199. package/cli-tool/components/commands/automation/workflow-orchestrator.md +0 -576
  200. package/cli-tool/components/commands/database/supabase-backup-manager.md +0 -37
  201. package/cli-tool/components/commands/database/supabase-data-explorer.md +0 -37
  202. package/cli-tool/components/commands/database/supabase-migration-assistant.md +0 -37
  203. package/cli-tool/components/commands/database/supabase-performance-optimizer.md +0 -37
  204. package/cli-tool/components/commands/database/supabase-realtime-monitor.md +0 -37
  205. package/cli-tool/components/commands/database/supabase-schema-sync.md +0 -37
  206. package/cli-tool/components/commands/database/supabase-security-audit.md +0 -37
  207. package/cli-tool/components/commands/database/supabase-type-generator.md +0 -37
  208. package/cli-tool/components/commands/deployment/add-changelog.md +0 -92
  209. package/cli-tool/components/commands/deployment/blue-green-deployment.md +0 -824
  210. package/cli-tool/components/commands/deployment/changelog-demo-command.md +0 -43
  211. package/cli-tool/components/commands/deployment/ci-setup.md +0 -323
  212. package/cli-tool/components/commands/deployment/containerize-application.md +0 -93
  213. package/cli-tool/components/commands/deployment/deployment-monitoring.md +0 -1228
  214. package/cli-tool/components/commands/deployment/hotfix-deploy.md +0 -283
  215. package/cli-tool/components/commands/deployment/prepare-release.md +0 -357
  216. package/cli-tool/components/commands/deployment/rollback-deploy.md +0 -145
  217. package/cli-tool/components/commands/deployment/setup-automated-releases.md +0 -143
  218. package/cli-tool/components/commands/deployment/setup-kubernetes-deployment.md +0 -93
  219. package/cli-tool/components/commands/documentation/create-architecture-documentation.md +0 -95
  220. package/cli-tool/components/commands/documentation/create-onboarding-guide.md +0 -93
  221. package/cli-tool/components/commands/documentation/doc-api.md +0 -242
  222. package/cli-tool/components/commands/documentation/docs-maintenance.md +0 -119
  223. package/cli-tool/components/commands/documentation/generate-api-documentation.md +0 -97
  224. package/cli-tool/components/commands/documentation/interactive-documentation.md +0 -133
  225. package/cli-tool/components/commands/documentation/load-llms-txt.md +0 -39
  226. package/cli-tool/components/commands/documentation/migration-guide.md +0 -250
  227. package/cli-tool/components/commands/documentation/troubleshooting-guide.md +0 -370
  228. package/cli-tool/components/commands/documentation/update-docs.md +0 -107
  229. package/cli-tool/components/commands/game-development/game-analytics-integration.md +0 -128
  230. package/cli-tool/components/commands/game-development/game-asset-pipeline.md +0 -108
  231. package/cli-tool/components/commands/game-development/game-performance-profiler.md +0 -78
  232. package/cli-tool/components/commands/game-development/game-testing-framework.md +0 -112
  233. package/cli-tool/components/commands/game-development/unity-project-setup.md +0 -190
  234. package/cli-tool/components/commands/git-workflow/branch-cleanup.md +0 -181
  235. package/cli-tool/components/commands/git-workflow/commit.md +0 -167
  236. package/cli-tool/components/commands/git-workflow/create-pr.md +0 -19
  237. package/cli-tool/components/commands/git-workflow/create-pull-request.md +0 -126
  238. package/cli-tool/components/commands/git-workflow/create-worktrees.md +0 -174
  239. package/cli-tool/components/commands/git-workflow/fix-github-issue.md +0 -13
  240. package/cli-tool/components/commands/git-workflow/git-bisect-helper.md +0 -261
  241. package/cli-tool/components/commands/git-workflow/pr-review.md +0 -76
  242. package/cli-tool/components/commands/git-workflow/update-branch-name.md +0 -9
  243. package/cli-tool/components/commands/nextjs-vercel/nextjs-api-tester.md +0 -480
  244. package/cli-tool/components/commands/nextjs-vercel/nextjs-bundle-analyzer.md +0 -406
  245. package/cli-tool/components/commands/nextjs-vercel/nextjs-component-generator.md +0 -489
  246. package/cli-tool/components/commands/nextjs-vercel/nextjs-middleware-creator.md +0 -712
  247. package/cli-tool/components/commands/nextjs-vercel/nextjs-migration-helper.md +0 -778
  248. package/cli-tool/components/commands/nextjs-vercel/nextjs-performance-audit.md +0 -653
  249. package/cli-tool/components/commands/nextjs-vercel/nextjs-scaffold.md +0 -237
  250. package/cli-tool/components/commands/nextjs-vercel/vercel-deploy-optimize.md +0 -341
  251. package/cli-tool/components/commands/nextjs-vercel/vercel-edge-function.md +0 -810
  252. package/cli-tool/components/commands/nextjs-vercel/vercel-env-sync.md +0 -666
  253. package/cli-tool/components/commands/orchestration/archive.md +0 -414
  254. package/cli-tool/components/commands/orchestration/commit.md +0 -305
  255. package/cli-tool/components/commands/orchestration/find.md +0 -272
  256. package/cli-tool/components/commands/orchestration/log.md +0 -355
  257. package/cli-tool/components/commands/orchestration/move.md +0 -220
  258. package/cli-tool/components/commands/orchestration/optimize.md +0 -375
  259. package/cli-tool/components/commands/orchestration/remove.md +0 -301
  260. package/cli-tool/components/commands/orchestration/report.md +0 -292
  261. package/cli-tool/components/commands/orchestration/resume.md +0 -256
  262. package/cli-tool/components/commands/orchestration/start.md +0 -169
  263. package/cli-tool/components/commands/orchestration/status.md +0 -219
  264. package/cli-tool/components/commands/orchestration/sync.md +0 -294
  265. package/cli-tool/components/commands/performance/add-performance-monitoring.md +0 -84
  266. package/cli-tool/components/commands/performance/implement-caching-strategy.md +0 -84
  267. package/cli-tool/components/commands/performance/optimize-api-performance.md +0 -119
  268. package/cli-tool/components/commands/performance/optimize-build.md +0 -139
  269. package/cli-tool/components/commands/performance/optimize-bundle-size.md +0 -84
  270. package/cli-tool/components/commands/performance/optimize-database-performance.md +0 -84
  271. package/cli-tool/components/commands/performance/optimize-memory-usage.md +0 -91
  272. package/cli-tool/components/commands/performance/performance-audit.md +0 -89
  273. package/cli-tool/components/commands/performance/setup-cdn-optimization.md +0 -84
  274. package/cli-tool/components/commands/performance/system-behavior-simulator.md +0 -415
  275. package/cli-tool/components/commands/project-management/add-package.md +0 -90
  276. package/cli-tool/components/commands/project-management/add-to-changelog.md +0 -37
  277. package/cli-tool/components/commands/project-management/create-feature.md +0 -130
  278. package/cli-tool/components/commands/project-management/create-jtbd.md +0 -37
  279. package/cli-tool/components/commands/project-management/create-prd.md +0 -36
  280. package/cli-tool/components/commands/project-management/create-prp.md +0 -37
  281. package/cli-tool/components/commands/project-management/init-project.md +0 -80
  282. package/cli-tool/components/commands/project-management/milestone-tracker.md +0 -44
  283. package/cli-tool/components/commands/project-management/pac-configure.md +0 -32
  284. package/cli-tool/components/commands/project-management/pac-create-epic.md +0 -41
  285. package/cli-tool/components/commands/project-management/pac-create-ticket.md +0 -42
  286. package/cli-tool/components/commands/project-management/pac-update-status.md +0 -39
  287. package/cli-tool/components/commands/project-management/pac-validate.md +0 -35
  288. package/cli-tool/components/commands/project-management/project-health-check.md +0 -58
  289. package/cli-tool/components/commands/project-management/project-timeline-simulator.md +0 -37
  290. package/cli-tool/components/commands/project-management/project-to-linear.md +0 -38
  291. package/cli-tool/components/commands/project-management/release.md +0 -31
  292. package/cli-tool/components/commands/project-management/todo.md +0 -62
  293. package/cli-tool/components/commands/security/add-authentication-system.md +0 -34
  294. package/cli-tool/components/commands/security/dependency-audit.md +0 -32
  295. package/cli-tool/components/commands/security/penetration-test.md +0 -40
  296. package/cli-tool/components/commands/security/secrets-scanner.md +0 -39
  297. package/cli-tool/components/commands/security/security-audit.md +0 -82
  298. package/cli-tool/components/commands/security/security-hardening.md +0 -33
  299. package/cli-tool/components/commands/setup/create-database-migrations.md +0 -35
  300. package/cli-tool/components/commands/setup/design-database-schema.md +0 -37
  301. package/cli-tool/components/commands/setup/design-rest-api.md +0 -37
  302. package/cli-tool/components/commands/setup/implement-graphql-api.md +0 -37
  303. package/cli-tool/components/commands/setup/migrate-to-typescript.md +0 -37
  304. package/cli-tool/components/commands/setup/setup-ci-cd-pipeline.md +0 -37
  305. package/cli-tool/components/commands/setup/setup-development-environment.md +0 -37
  306. package/cli-tool/components/commands/setup/setup-docker-containers.md +0 -37
  307. package/cli-tool/components/commands/setup/setup-formatting.md +0 -37
  308. package/cli-tool/components/commands/setup/setup-linting.md +0 -37
  309. package/cli-tool/components/commands/setup/setup-monitoring-observability.md +0 -37
  310. package/cli-tool/components/commands/setup/setup-monorepo.md +0 -37
  311. package/cli-tool/components/commands/setup/setup-rate-limiting.md +0 -37
  312. package/cli-tool/components/commands/setup/update-dependencies.md +0 -35
  313. package/cli-tool/components/commands/simulation/business-scenario-explorer.md +0 -37
  314. package/cli-tool/components/commands/simulation/constraint-modeler.md +0 -37
  315. package/cli-tool/components/commands/simulation/decision-tree-explorer.md +0 -37
  316. package/cli-tool/components/commands/simulation/digital-twin-creator.md +0 -37
  317. package/cli-tool/components/commands/simulation/future-scenario-generator.md +0 -37
  318. package/cli-tool/components/commands/simulation/market-response-modeler.md +0 -37
  319. package/cli-tool/components/commands/simulation/monte-carlo-simulator.md +0 -37
  320. package/cli-tool/components/commands/simulation/simulation-calibrator.md +0 -37
  321. package/cli-tool/components/commands/simulation/system-dynamics-modeler.md +0 -37
  322. package/cli-tool/components/commands/simulation/timeline-compressor.md +0 -37
  323. package/cli-tool/components/commands/svelte/svelte:a11y.md +0 -105
  324. package/cli-tool/components/commands/svelte/svelte:component.md +0 -81
  325. package/cli-tool/components/commands/svelte/svelte:debug.md +0 -48
  326. package/cli-tool/components/commands/svelte/svelte:migrate.md +0 -79
  327. package/cli-tool/components/commands/svelte/svelte:optimize.md +0 -99
  328. package/cli-tool/components/commands/svelte/svelte:scaffold.md +0 -89
  329. package/cli-tool/components/commands/svelte/svelte:storybook-migrate.md +0 -204
  330. package/cli-tool/components/commands/svelte/svelte:storybook-mock.md +0 -213
  331. package/cli-tool/components/commands/svelte/svelte:storybook-setup.md +0 -113
  332. package/cli-tool/components/commands/svelte/svelte:storybook-story.md +0 -145
  333. package/cli-tool/components/commands/svelte/svelte:storybook-troubleshoot.md +0 -191
  334. package/cli-tool/components/commands/svelte/svelte:storybook.md +0 -48
  335. package/cli-tool/components/commands/svelte/svelte:test-coverage.md +0 -77
  336. package/cli-tool/components/commands/svelte/svelte:test-fix.md +0 -74
  337. package/cli-tool/components/commands/svelte/svelte:test-setup.md +0 -85
  338. package/cli-tool/components/commands/svelte/svelte:test.md +0 -60
  339. package/cli-tool/components/commands/sync/bidirectional-sync.md +0 -37
  340. package/cli-tool/components/commands/sync/bulk-import-issues.md +0 -37
  341. package/cli-tool/components/commands/sync/cross-reference-manager.md +0 -37
  342. package/cli-tool/components/commands/sync/issue-to-linear-task.md +0 -37
  343. package/cli-tool/components/commands/sync/linear-task-to-issue.md +0 -37
  344. package/cli-tool/components/commands/sync/sync-automation-setup.md +0 -37
  345. package/cli-tool/components/commands/sync/sync-conflict-resolver.md +0 -37
  346. package/cli-tool/components/commands/sync/sync-health-monitor.md +0 -37
  347. package/cli-tool/components/commands/sync/sync-issues-to-linear.md +0 -37
  348. package/cli-tool/components/commands/sync/sync-linear-to-issues.md +0 -37
  349. package/cli-tool/components/commands/sync/sync-migration-assistant.md +0 -37
  350. package/cli-tool/components/commands/sync/sync-pr-to-task.md +0 -37
  351. package/cli-tool/components/commands/sync/sync-status.md +0 -391
  352. package/cli-tool/components/commands/sync/task-from-pr.md +0 -37
  353. package/cli-tool/components/commands/team/architecture-review.md +0 -37
  354. package/cli-tool/components/commands/team/decision-quality-analyzer.md +0 -37
  355. package/cli-tool/components/commands/team/dependency-mapper.md +0 -37
  356. package/cli-tool/components/commands/team/estimate-assistant.md +0 -37
  357. package/cli-tool/components/commands/team/issue-triage.md +0 -37
  358. package/cli-tool/components/commands/team/memory-spring-cleaning.md +0 -37
  359. package/cli-tool/components/commands/team/migration-assistant.md +0 -37
  360. package/cli-tool/components/commands/team/retrospective-analyzer.md +0 -37
  361. package/cli-tool/components/commands/team/session-learning-capture.md +0 -37
  362. package/cli-tool/components/commands/team/sprint-planning.md +0 -189
  363. package/cli-tool/components/commands/team/standup-report.md +0 -37
  364. package/cli-tool/components/commands/team/team-knowledge-mapper.md +0 -37
  365. package/cli-tool/components/commands/team/team-velocity-tracker.md +0 -37
  366. package/cli-tool/components/commands/team/team-workload-balancer.md +0 -37
  367. package/cli-tool/components/commands/testing/add-mutation-testing.md +0 -37
  368. package/cli-tool/components/commands/testing/add-property-based-testing.md +0 -37
  369. package/cli-tool/components/commands/testing/e2e-setup.md +0 -37
  370. package/cli-tool/components/commands/testing/generate-test-cases.md +0 -37
  371. package/cli-tool/components/commands/testing/generate-tests.md +0 -82
  372. package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +0 -37
  373. package/cli-tool/components/commands/testing/setup-load-testing.md +0 -37
  374. package/cli-tool/components/commands/testing/setup-visual-testing.md +0 -37
  375. package/cli-tool/components/commands/testing/test-automation-orchestrator.md +0 -37
  376. package/cli-tool/components/commands/testing/test-changelog-automation.md +0 -37
  377. package/cli-tool/components/commands/testing/test-coverage.md +0 -37
  378. package/cli-tool/components/commands/testing/test-quality-analyzer.md +0 -37
  379. package/cli-tool/components/commands/testing/testing_plan_integration.md +0 -37
  380. package/cli-tool/components/commands/testing/write-tests.md +0 -37
  381. package/cli-tool/components/commands/utilities/all-tools.md +0 -31
  382. package/cli-tool/components/commands/utilities/architecture-scenario-explorer.md +0 -375
  383. package/cli-tool/components/commands/utilities/check-file.md +0 -53
  384. package/cli-tool/components/commands/utilities/clean-branches.md +0 -243
  385. package/cli-tool/components/commands/utilities/clean.md +0 -1
  386. package/cli-tool/components/commands/utilities/code-permutation-tester.md +0 -341
  387. package/cli-tool/components/commands/utilities/code-review.md +0 -70
  388. package/cli-tool/components/commands/utilities/code-to-task.md +0 -583
  389. package/cli-tool/components/commands/utilities/context-prime.md +0 -1
  390. package/cli-tool/components/commands/utilities/debug-error.md +0 -121
  391. package/cli-tool/components/commands/utilities/directory-deep-dive.md +0 -34
  392. package/cli-tool/components/commands/utilities/explain-code.md +0 -194
  393. package/cli-tool/components/commands/utilities/fix-issue.md +0 -85
  394. package/cli-tool/components/commands/utilities/generate-linear-worklog.md +0 -113
  395. package/cli-tool/components/commands/utilities/git-status.md +0 -39
  396. package/cli-tool/components/commands/utilities/initref.md +0 -3
  397. package/cli-tool/components/commands/utilities/prime.md +0 -41
  398. package/cli-tool/components/commands/utilities/refactor-code.md +0 -116
  399. package/cli-tool/components/commands/utilities/ultra-think.md +0 -153
  400. package/cli-tool/components/hooks/HOOK_PATTERNS_COMPRESSED.json +0 -1
  401. package/cli-tool/components/hooks/automation/build-on-change.json +0 -16
  402. package/cli-tool/components/hooks/automation/dependency-checker.json +0 -16
  403. package/cli-tool/components/hooks/automation/deployment-health-monitor.json +0 -29
  404. package/cli-tool/components/hooks/automation/discord-detailed-notifications.json +0 -26
  405. package/cli-tool/components/hooks/automation/discord-error-notifications.json +0 -37
  406. package/cli-tool/components/hooks/automation/discord-notifications.json +0 -25
  407. package/cli-tool/components/hooks/automation/simple-notifications.json +0 -16
  408. package/cli-tool/components/hooks/automation/slack-detailed-notifications.json +0 -26
  409. package/cli-tool/components/hooks/automation/slack-error-notifications.json +0 -37
  410. package/cli-tool/components/hooks/automation/slack-notifications.json +0 -25
  411. package/cli-tool/components/hooks/automation/telegram-detailed-notifications.json +0 -26
  412. package/cli-tool/components/hooks/automation/telegram-error-notifications.json +0 -37
  413. package/cli-tool/components/hooks/automation/telegram-notifications.json +0 -25
  414. package/cli-tool/components/hooks/automation/vercel-auto-deploy.json +0 -17
  415. package/cli-tool/components/hooks/automation/vercel-environment-sync.json +0 -29
  416. package/cli-tool/components/hooks/development-tools/change-tracker.json +0 -25
  417. package/cli-tool/components/hooks/development-tools/command-logger.json +0 -16
  418. package/cli-tool/components/hooks/development-tools/file-backup.json +0 -16
  419. package/cli-tool/components/hooks/development-tools/lint-on-save.json +0 -16
  420. package/cli-tool/components/hooks/development-tools/nextjs-code-quality-enforcer.json +0 -17
  421. package/cli-tool/components/hooks/development-tools/smart-formatting.json +0 -16
  422. package/cli-tool/components/hooks/git-workflow/auto-git-add.json +0 -16
  423. package/cli-tool/components/hooks/git-workflow/smart-commit.json +0 -25
  424. package/cli-tool/components/hooks/performance/performance-budget-guard.json +0 -27
  425. package/cli-tool/components/hooks/performance/performance-monitor.json +0 -27
  426. package/cli-tool/components/hooks/post-tool/format-javascript-files.json +0 -16
  427. package/cli-tool/components/hooks/post-tool/format-python-files.json +0 -16
  428. package/cli-tool/components/hooks/post-tool/git-add-changes.json +0 -25
  429. package/cli-tool/components/hooks/post-tool/run-tests-after-changes.json +0 -16
  430. package/cli-tool/components/hooks/pre-tool/backup-before-edit.json +0 -16
  431. package/cli-tool/components/hooks/pre-tool/notify-before-bash.json +0 -16
  432. package/cli-tool/components/hooks/security/file-protection.json +0 -16
  433. package/cli-tool/components/hooks/security/security-scanner.json +0 -16
  434. package/cli-tool/components/hooks/testing/test-runner.json +0 -16
  435. package/cli-tool/components/mcps/browser_automation/browser-use-mcp-server.json +0 -20
  436. package/cli-tool/components/mcps/browser_automation/browsermcp.json +0 -9
  437. package/cli-tool/components/mcps/browser_automation/mcp-server-browserbase.json +0 -14
  438. package/cli-tool/components/mcps/browser_automation/mcp-server-playwright.json +0 -9
  439. package/cli-tool/components/mcps/browser_automation/playwright-mcp-server.json +0 -9
  440. package/cli-tool/components/mcps/browser_automation/playwright-mcp.json +0 -11
  441. package/cli-tool/components/mcps/database/mysql-integration.json +0 -12
  442. package/cli-tool/components/mcps/database/postgresql-integration.json +0 -12
  443. package/cli-tool/components/mcps/database/supabase.json +0 -17
  444. package/cli-tool/components/mcps/deepgraph/deepgraph-nextjs.json +0 -13
  445. package/cli-tool/components/mcps/deepgraph/deepgraph-react.json +0 -13
  446. package/cli-tool/components/mcps/deepgraph/deepgraph-typescript.json +0 -13
  447. package/cli-tool/components/mcps/deepgraph/deepgraph-vue.json +0 -13
  448. package/cli-tool/components/mcps/devtools/circleci.json +0 -13
  449. package/cli-tool/components/mcps/devtools/context7.json +0 -9
  450. package/cli-tool/components/mcps/devtools/firefly-mcp.json +0 -13
  451. package/cli-tool/components/mcps/devtools/ios-simulator-mcp.json +0 -9
  452. package/cli-tool/components/mcps/devtools/just-mcp.json +0 -9
  453. package/cli-tool/components/mcps/devtools/leetcode.json +0 -8
  454. package/cli-tool/components/mcps/devtools/mcp-server-atlassian-bitbucket.json +0 -9
  455. package/cli-tool/components/mcps/devtools/mcp-server-trello.json +0 -12
  456. package/cli-tool/components/mcps/filesystem/filesystem-access.json +0 -13
  457. package/cli-tool/components/mcps/integration/github-integration.json +0 -12
  458. package/cli-tool/components/mcps/integration/memory-integration.json +0 -9
  459. package/cli-tool/components/mcps/marketing/facebook-ads-mcp-server.json +0 -13
  460. package/cli-tool/components/mcps/marketing/google-ads-mcp-server.json +0 -11
  461. package/cli-tool/components/mcps/web/web-fetch.json +0 -9
  462. package/cli-tool/components/sandbox/README.md +0 -169
  463. package/cli-tool/components/sandbox/e2b/.env.example +0 -10
  464. package/cli-tool/components/sandbox/e2b/SANDBOX_DEBUGGING.md +0 -203
  465. package/cli-tool/components/sandbox/e2b/claude-code-sandbox.md +0 -110
  466. package/cli-tool/components/sandbox/e2b/e2b-launcher.py +0 -355
  467. package/cli-tool/components/sandbox/e2b/e2b-monitor.py +0 -229
  468. package/cli-tool/components/sandbox/e2b/requirements.txt +0 -1
  469. package/cli-tool/components/settings/api/bedrock-configuration.json +0 -7
  470. package/cli-tool/components/settings/api/corporate-proxy.json +0 -7
  471. package/cli-tool/components/settings/api/custom-headers.json +0 -6
  472. package/cli-tool/components/settings/api/vertex-configuration.json +0 -8
  473. package/cli-tool/components/settings/authentication/api-key-helper.json +0 -7
  474. package/cli-tool/components/settings/authentication/force-claudeai-login.json +0 -4
  475. package/cli-tool/components/settings/authentication/force-console-login.json +0 -4
  476. package/cli-tool/components/settings/cleanup/retention-7-days.json +0 -4
  477. package/cli-tool/components/settings/cleanup/retention-90-days.json +0 -4
  478. package/cli-tool/components/settings/environment/bash-timeouts.json +0 -8
  479. package/cli-tool/components/settings/environment/development-utils.json +0 -8
  480. package/cli-tool/components/settings/environment/performance-optimization.json +0 -8
  481. package/cli-tool/components/settings/environment/privacy-focused.json +0 -10
  482. package/cli-tool/components/settings/global/aws-credentials.json +0 -5
  483. package/cli-tool/components/settings/global/custom-model.json +0 -7
  484. package/cli-tool/components/settings/global/git-commit-settings.json +0 -4
  485. package/cli-tool/components/settings/mcp/disable-risky-servers.json +0 -8
  486. package/cli-tool/components/settings/mcp/enable-all-project-servers.json +0 -4
  487. package/cli-tool/components/settings/mcp/enable-specific-servers.json +0 -8
  488. package/cli-tool/components/settings/mcp/mcp-timeouts.json +0 -8
  489. package/cli-tool/components/settings/model/use-haiku.json +0 -4
  490. package/cli-tool/components/settings/model/use-sonnet.json +0 -4
  491. package/cli-tool/components/settings/permissions/additional-directories.json +0 -11
  492. package/cli-tool/components/settings/permissions/allow-git-operations.json +0 -14
  493. package/cli-tool/components/settings/permissions/allow-npm-commands.json +0 -11
  494. package/cli-tool/components/settings/permissions/deny-sensitive-files.json +0 -11
  495. package/cli-tool/components/settings/permissions/development-mode.json +0 -31
  496. package/cli-tool/components/settings/permissions/read-only-mode.json +0 -18
  497. package/cli-tool/components/settings/statusline/asset-pipeline-controller-statusline.json +0 -7
  498. package/cli-tool/components/settings/statusline/bug-circus-statusline.json +0 -7
  499. package/cli-tool/components/settings/statusline/code-casino-statusline.json +0 -7
  500. package/cli-tool/components/settings/statusline/code-spaceship-statusline.json +0 -7
  501. package/cli-tool/components/settings/statusline/colorful-statusline.json +0 -7
  502. package/cli-tool/components/settings/statusline/command-statusline.json +0 -8
  503. package/cli-tool/components/settings/statusline/context-monitor.json +0 -7
  504. package/cli-tool/components/settings/statusline/context-monitor.py +0 -236
  505. package/cli-tool/components/settings/statusline/data-ocean-statusline.json +0 -7
  506. package/cli-tool/components/settings/statusline/emotion-theater-statusline.json +0 -7
  507. package/cli-tool/components/settings/statusline/game-performance-monitor-statusline.json +0 -7
  508. package/cli-tool/components/settings/statusline/git-branch-statusline.json +0 -7
  509. package/cli-tool/components/settings/statusline/minimal-statusline.json +0 -7
  510. package/cli-tool/components/settings/statusline/multiplatform-build-status-statusline.json +0 -7
  511. package/cli-tool/components/settings/statusline/productivity-rainbow-statusline.json +0 -7
  512. package/cli-tool/components/settings/statusline/programmer-tamagotchi-statusline.json +0 -7
  513. package/cli-tool/components/settings/statusline/programming-fitness-tracker-statusline.json +0 -7
  514. package/cli-tool/components/settings/statusline/project-info-statusline.json +0 -7
  515. package/cli-tool/components/settings/statusline/rpg-status-bar-statusline.json +0 -7
  516. package/cli-tool/components/settings/statusline/time-statusline.json +0 -7
  517. package/cli-tool/components/settings/statusline/unity-project-dashboard-statusline.json +0 -7
  518. package/cli-tool/components/settings/statusline/vercel-deployment-monitor.json +0 -7
  519. package/cli-tool/components/settings/statusline/vercel-error-alert-system.json +0 -7
  520. package/cli-tool/components/settings/statusline/vercel-multi-env-status.json +0 -7
  521. package/cli-tool/components/settings/statusline/virtual-code-garden-statusline.json +0 -7
  522. package/cli-tool/components/settings/statusline/zero-config-deployment-monitor.json +0 -7
  523. package/cli-tool/components/settings/telemetry/custom-telemetry.json +0 -7
  524. package/cli-tool/components/settings/telemetry/disable-telemetry.json +0 -6
  525. package/cli-tool/components/settings/telemetry/enable-telemetry.json +0 -6
  526. package/cli-tool/docs_to_claude/ANALYTICS_STATE_DETECTION.md +0 -183
  527. package/cli-tool/docs_to_claude/ARCHITECTURE.md +0 -472
  528. package/cli-tool/docs_to_claude/BLOG_WRITING_GUIDE.md +0 -438
  529. package/cli-tool/docs_to_claude/CLAUDE_DATA_STRUCTURE.md +0 -400
  530. package/cli-tool/docs_to_claude/COMMANDS_GUIDE.md +0 -909
  531. package/cli-tool/docs_to_claude/CONVERSATION_STATE_IMPROVEMENTS.md +0 -154
  532. package/cli-tool/docs_to_claude/DEBUG_TYPING_DETECTION.md +0 -95
  533. package/cli-tool/docs_to_claude/DOWNLOAD_TRACKING.md +0 -291
  534. package/cli-tool/docs_to_claude/ENHANCED_STATE_DETECTION.md +0 -122
  535. package/cli-tool/docs_to_claude/HEALTH_CHECK_IMPLEMENTATION.md +0 -135
  536. package/cli-tool/docs_to_claude/HOOKS_GUIDE.md +0 -1249
  537. package/cli-tool/docs_to_claude/STATUSLINE_GUIDE.md +0 -1123
  538. package/cli-tool/docs_to_claude/SUBAGENTS_GUIDE.md +0 -566
  539. package/cli-tool/docs_to_claude/SUB_AGENTS.md +0 -329
  540. package/cli-tool/jest.config.js +0 -84
  541. package/cli-tool/package-lock.json +0 -5471
  542. package/cli-tool/package.json +0 -95
  543. package/cli-tool/templates/common/.claude/commands/git-workflow.md +0 -239
  544. package/cli-tool/templates/common/.claude/commands/project-setup.md +0 -316
  545. package/cli-tool/templates/common/.mcp.json +0 -41
  546. package/cli-tool/templates/common/CLAUDE.md +0 -109
  547. package/cli-tool/templates/common/README.md +0 -96
  548. package/cli-tool/templates/go/.mcp.json +0 -78
  549. package/cli-tool/templates/go/README.md +0 -25
  550. package/cli-tool/templates/javascript-typescript/.claude/commands/api-endpoint.md +0 -51
  551. package/cli-tool/templates/javascript-typescript/.claude/commands/debug.md +0 -52
  552. package/cli-tool/templates/javascript-typescript/.claude/commands/lint.md +0 -48
  553. package/cli-tool/templates/javascript-typescript/.claude/commands/npm-scripts.md +0 -48
  554. package/cli-tool/templates/javascript-typescript/.claude/commands/refactor.md +0 -55
  555. package/cli-tool/templates/javascript-typescript/.claude/commands/test.md +0 -61
  556. package/cli-tool/templates/javascript-typescript/.claude/commands/typescript-migrate.md +0 -51
  557. package/cli-tool/templates/javascript-typescript/.claude/settings.json +0 -142
  558. package/cli-tool/templates/javascript-typescript/.mcp.json +0 -80
  559. package/cli-tool/templates/javascript-typescript/CLAUDE.md +0 -185
  560. package/cli-tool/templates/javascript-typescript/README.md +0 -259
  561. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/components.md +0 -63
  562. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/services.md +0 -62
  563. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/api-endpoint.md +0 -46
  564. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/database.md +0 -56
  565. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/middleware.md +0 -61
  566. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/route.md +0 -57
  567. package/cli-tool/templates/javascript-typescript/examples/node-api/CLAUDE.md +0 -102
  568. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/component.md +0 -29
  569. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/hooks.md +0 -44
  570. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/state-management.md +0 -45
  571. package/cli-tool/templates/javascript-typescript/examples/react-app/CLAUDE.md +0 -81
  572. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-performance-optimization.md +0 -530
  573. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-state-management.md +0 -295
  574. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/components.md +0 -46
  575. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/composables.md +0 -51
  576. package/cli-tool/templates/python/.claude/commands/lint.md +0 -111
  577. package/cli-tool/templates/python/.claude/commands/test.md +0 -73
  578. package/cli-tool/templates/python/.claude/settings.json +0 -153
  579. package/cli-tool/templates/python/.mcp.json +0 -78
  580. package/cli-tool/templates/python/CLAUDE.md +0 -276
  581. package/cli-tool/templates/python/examples/django-app/.claude/commands/admin.md +0 -264
  582. package/cli-tool/templates/python/examples/django-app/.claude/commands/django-model.md +0 -124
  583. package/cli-tool/templates/python/examples/django-app/.claude/commands/views.md +0 -222
  584. package/cli-tool/templates/python/examples/django-app/CLAUDE.md +0 -313
  585. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/api-endpoints.md +0 -513
  586. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/auth.md +0 -775
  587. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/database.md +0 -657
  588. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/deployment.md +0 -160
  589. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/testing.md +0 -927
  590. package/cli-tool/templates/python/examples/fastapi-app/CLAUDE.md +0 -229
  591. package/cli-tool/templates/python/examples/flask-app/.claude/commands/app-factory.md +0 -384
  592. package/cli-tool/templates/python/examples/flask-app/.claude/commands/blueprint.md +0 -243
  593. package/cli-tool/templates/python/examples/flask-app/.claude/commands/database.md +0 -410
  594. package/cli-tool/templates/python/examples/flask-app/.claude/commands/deployment.md +0 -620
  595. package/cli-tool/templates/python/examples/flask-app/.claude/commands/flask-route.md +0 -217
  596. package/cli-tool/templates/python/examples/flask-app/.claude/commands/testing.md +0 -559
  597. package/cli-tool/templates/python/examples/flask-app/CLAUDE.md +0 -391
  598. package/cli-tool/templates/ruby/.claude/commands/model.md +0 -360
  599. package/cli-tool/templates/ruby/.claude/commands/test.md +0 -480
  600. package/cli-tool/templates/ruby/.claude/settings.json +0 -146
  601. package/cli-tool/templates/ruby/.mcp.json +0 -83
  602. package/cli-tool/templates/ruby/CLAUDE.md +0 -284
  603. package/cli-tool/templates/ruby/examples/rails-app/.claude/commands/authentication.md +0 -490
  604. package/cli-tool/templates/ruby/examples/rails-app/CLAUDE.md +0 -376
  605. package/cli-tool/templates/rust/.mcp.json +0 -78
  606. package/cli-tool/templates/rust/README.md +0 -26
  607. package/cli-tool/test-commands.sh +0 -85
  608. package/cli-tool/test-detailed.sh +0 -267
  609. package/docs/CNAME +0 -1
  610. package/docs/README.md +0 -49
  611. package/docs/_config.yml +0 -43
  612. package/docs/blog/assets/aitmpl-nextjs-search.png +0 -0
  613. package/docs/blog/assets/aitmpl-supabase-search.png +0 -0
  614. package/docs/blog/assets/nextjs-vercel-claude-code-templates-cover.png +0 -0
  615. package/docs/blog/assets/supabase-claude-code-templates-cover.png +0 -0
  616. package/docs/blog/e2b-claude-code-sandbox/index.html +0 -1061
  617. package/docs/blog/index.html +0 -239
  618. package/docs/blog/nextjs-vercel-claude-code-integration/index.html +0 -1021
  619. package/docs/blog/supabase-claude-code-integration/index.html +0 -837
  620. package/docs/components-metadata.json +0 -303
  621. package/docs/components.json +0 -4072
  622. package/docs/css/blog.css +0 -821
  623. package/docs/css/stack-page.css +0 -776
  624. package/docs/css/styles.css +0 -4480
  625. package/docs/css/trending.css +0 -971
  626. package/docs/css/workflows-modal.css +0 -739
  627. package/docs/css/workflows.css +0 -1234
  628. package/docs/download-stats.html +0 -514
  629. package/docs/index.html +0 -634
  630. package/docs/js/carousel.js +0 -177
  631. package/docs/js/cart-manager.js +0 -529
  632. package/docs/js/data-loader.js +0 -626
  633. package/docs/js/generate-search-data.js +0 -82
  634. package/docs/js/index-events.js +0 -1707
  635. package/docs/js/modal-helpers.js +0 -334
  636. package/docs/js/script.js +0 -2167
  637. package/docs/js/search-functionality.js +0 -992
  638. package/docs/js/stack-router.js +0 -561
  639. package/docs/js/trending.js +0 -493
  640. package/docs/js/utils.js +0 -43
  641. package/docs/js/workflows-events.js +0 -1146
  642. package/docs/js/workflows.js +0 -627
  643. package/docs/sandbox-interface.html +0 -1406
  644. package/docs/static/img/logo.svg +0 -23
  645. package/docs/trending-data.json +0 -579
  646. package/docs/trending.html +0 -179
  647. package/docs/workflows.html +0 -379
  648. package/docu/README.md +0 -41
  649. package/docu/docs/analytics/agent-chats-manager.md +0 -33
  650. package/docu/docs/analytics/analysis-tools.md +0 -54
  651. package/docu/docs/analytics/overview.md +0 -48
  652. package/docu/docs/analytics/real-time-monitoring.md +0 -16
  653. package/docu/docs/cli-options.md +0 -90
  654. package/docu/docs/components/agents.md +0 -296
  655. package/docu/docs/components/commands.md +0 -426
  656. package/docu/docs/components/discord-notifications.md +0 -59
  657. package/docu/docs/components/hooks.md +0 -381
  658. package/docu/docs/components/mcps.md +0 -510
  659. package/docu/docs/components/overview.md +0 -287
  660. package/docu/docs/components/settings.md +0 -223
  661. package/docu/docs/components/slack-notifications.md +0 -67
  662. package/docu/docs/components/telegram-notifications.md +0 -73
  663. package/docu/docs/contributing.md +0 -11
  664. package/docu/docs/health-check/overview.md +0 -33
  665. package/docu/docs/intro.md +0 -109
  666. package/docu/docs/project-setup/automation-hooks.md +0 -14
  667. package/docu/docs/project-setup/framework-specific-setup.md +0 -86
  668. package/docu/docs/project-setup/interactive-setup.md +0 -59
  669. package/docu/docs/project-setup/mcp-integration.md +0 -17
  670. package/docu/docs/project-setup/supported-languages-frameworks.md +0 -15
  671. package/docu/docs/project-setup/what-gets-installed.md +0 -176
  672. package/docu/docs/safety-features.md +0 -13
  673. package/docu/docs/support.md +0 -13
  674. package/docu/docs/usage-examples/advanced-options.md +0 -87
  675. package/docu/docs/usage-examples/alternative-commands.md +0 -31
  676. package/docu/docs/usage-examples/framework-specific-quick-setup.md +0 -47
  677. package/docu/docs/usage-examples/interactive-setup.md +0 -16
  678. package/docu/docusaurus.config.ts +0 -163
  679. package/docu/package-lock.json +0 -16185
  680. package/docu/package.json +0 -47
  681. package/docu/sidebars.ts +0 -85
  682. package/docu/src/components/HomepageFeatures/index.tsx +0 -82
  683. package/docu/src/components/HomepageFeatures/styles.module.css +0 -131
  684. package/docu/src/css/custom.css +0 -475
  685. package/docu/src/pages/index.module.css +0 -109
  686. package/docu/src/pages/index.tsx +0 -65
  687. package/docu/src/pages/markdown-page.md +0 -7
  688. package/docu/static/img/favicon.ico +0 -0
  689. package/docu/static/img/logo.svg +0 -23
  690. package/docu/tsconfig.json +0 -8
  691. package/generate_components_json.py +0 -199
  692. package/social-preview.png +0 -0
  693. package/vercel.json +0 -75
  694. /package/{cli-tool/bin → bin}/create-claude-config.js +0 -0
  695. /package/{cli-tool/src → src}/agents.js +0 -0
  696. /package/{cli-tool/src → src}/analytics/core/AgentAnalyzer.js +0 -0
  697. /package/{cli-tool/src → src}/analytics/core/ConversationAnalyzer.js +0 -0
  698. /package/{cli-tool/src → src}/analytics/core/FileWatcher.js +0 -0
  699. /package/{cli-tool/src → src}/analytics/core/ProcessDetector.js +0 -0
  700. /package/{cli-tool/src → src}/analytics/core/SessionAnalyzer.js +0 -0
  701. /package/{cli-tool/src → src}/analytics/core/StateCalculator.js +0 -0
  702. /package/{cli-tool/src → src}/analytics/data/DataCache.js +0 -0
  703. /package/{cli-tool/src → src}/analytics/notifications/NotificationManager.js +0 -0
  704. /package/{cli-tool/src → src}/analytics/notifications/WebSocketServer.js +0 -0
  705. /package/{cli-tool/src → src}/analytics/utils/PerformanceMonitor.js +0 -0
  706. /package/{cli-tool/src → src}/analytics-web/FRONT_ARCHITECTURE.md +0 -0
  707. /package/{cli-tool/src → src}/analytics-web/assets/js/main.js.deprecated +0 -0
  708. /package/{cli-tool/src → src}/analytics-web/chats_mobile.html +0 -0
  709. /package/{cli-tool/src → src}/analytics-web/components/ActivityHeatmap.js +0 -0
  710. /package/{cli-tool/src → src}/analytics-web/components/AgentAnalytics.js +0 -0
  711. /package/{cli-tool/src → src}/analytics-web/components/App.js +0 -0
  712. /package/{cli-tool/src → src}/analytics-web/components/Charts.js +0 -0
  713. /package/{cli-tool/src → src}/analytics-web/components/ConversationTable.js +0 -0
  714. /package/{cli-tool/src → src}/analytics-web/components/DashboardPage.js +0 -0
  715. /package/{cli-tool/src → src}/analytics-web/components/HeaderComponent.js +0 -0
  716. /package/{cli-tool/src → src}/analytics-web/components/SessionTimer.js +0 -0
  717. /package/{cli-tool/src → src}/analytics-web/components/Sidebar.js +0 -0
  718. /package/{cli-tool/src → src}/analytics-web/components/ToolDisplay.js +0 -0
  719. /package/{cli-tool/src → src}/analytics-web/index.html +0 -0
  720. /package/{cli-tool/src → src}/analytics-web/index.html.original +0 -0
  721. /package/{cli-tool/src → src}/analytics-web/services/DataService.js +0 -0
  722. /package/{cli-tool/src → src}/analytics-web/services/StateService.js +0 -0
  723. /package/{cli-tool/src → src}/analytics-web/services/WebSocketService.js +0 -0
  724. /package/{cli-tool/src → src}/analytics.js +0 -0
  725. /package/{docu/static/.nojekyll → src/analytics.log} +0 -0
  726. /package/{cli-tool/src → src}/chats-mobile.js +0 -0
  727. /package/{cli-tool/src → src}/claude-api-proxy.js +0 -0
  728. /package/{cli-tool/src → src}/command-scanner.js +0 -0
  729. /package/{cli-tool/src → src}/command-stats.js +0 -0
  730. /package/{cli-tool/src → src}/console-bridge.js +0 -0
  731. /package/{cli-tool/src → src}/file-operations.js +0 -0
  732. /package/{cli-tool/src → src}/health-check.js +0 -0
  733. /package/{cli-tool/src → src}/hook-scanner.js +0 -0
  734. /package/{cli-tool/src → src}/hook-stats.js +0 -0
  735. /package/{cli-tool/src → src}/mcp-stats.js +0 -0
  736. /package/{cli-tool/src → src}/prompts.js +0 -0
  737. /package/{cli-tool/src → src}/sandbox-server.js +0 -0
  738. /package/{cli-tool/src → src}/sdk/global-agent-manager.js +0 -0
  739. /package/{cli-tool/src → src}/templates.js +0 -0
  740. /package/{cli-tool/src → src}/test-activity-data.json +0 -0
  741. /package/{cli-tool/src → src}/test-console-bridge.js +0 -0
  742. /package/{cli-tool/src → src}/tracking-service.js +0 -0
  743. /package/{cli-tool/src → src}/utils.js +0 -0
@@ -1,1205 +0,0 @@
1
- ---
2
- name: fullstack-developer
3
- description: Full-stack development specialist covering frontend, backend, and database technologies. Use PROACTIVELY for end-to-end application development, API integration, database design, and complete feature implementation.
4
- tools: Read, Write, Edit, Bash
5
- model: opus
6
- ---
7
-
8
- You are a full-stack developer with expertise across the entire application stack, from user interfaces to databases and deployment.
9
-
10
- ## Core Technology Stack
11
-
12
- ### Frontend Technologies
13
- - **React/Next.js**: Modern component-based UI development with SSR/SSG
14
- - **TypeScript**: Type-safe JavaScript development and API contracts
15
- - **State Management**: Redux Toolkit, Zustand, React Query for server state
16
- - **Styling**: Tailwind CSS, Styled Components, CSS Modules
17
- - **Testing**: Jest, React Testing Library, Playwright for E2E
18
-
19
- ### Backend Technologies
20
- - **Node.js/Express**: RESTful APIs and middleware architecture
21
- - **Python/FastAPI**: High-performance APIs with automatic documentation
22
- - **Database Integration**: PostgreSQL, MongoDB, Redis for caching
23
- - **Authentication**: JWT, OAuth 2.0, Auth0, NextAuth.js
24
- - **API Design**: OpenAPI/Swagger, GraphQL, tRPC for type safety
25
-
26
- ### Development Tools
27
- - **Version Control**: Git workflows, branching strategies, code review
28
- - **Build Tools**: Vite, Webpack, esbuild for optimization
29
- - **Package Management**: npm, yarn, pnpm dependency management
30
- - **Code Quality**: ESLint, Prettier, Husky pre-commit hooks
31
-
32
- ## Technical Implementation
33
-
34
- ### 1. Complete Full-Stack Application Architecture
35
- ```typescript
36
- // types/api.ts - Shared type definitions
37
- export interface User {
38
- id: string;
39
- email: string;
40
- name: string;
41
- role: 'admin' | 'user';
42
- createdAt: string;
43
- updatedAt: string;
44
- }
45
-
46
- export interface CreateUserRequest {
47
- email: string;
48
- name: string;
49
- password: string;
50
- }
51
-
52
- export interface LoginRequest {
53
- email: string;
54
- password: string;
55
- }
56
-
57
- export interface AuthResponse {
58
- user: User;
59
- token: string;
60
- refreshToken: string;
61
- }
62
-
63
- export interface ApiResponse<T> {
64
- success: boolean;
65
- data?: T;
66
- error?: string;
67
- message?: string;
68
- }
69
-
70
- export interface PaginatedResponse<T> {
71
- data: T[];
72
- pagination: {
73
- page: number;
74
- limit: number;
75
- total: number;
76
- totalPages: number;
77
- };
78
- }
79
-
80
- // Database Models
81
- export interface CreatePostRequest {
82
- title: string;
83
- content: string;
84
- tags: string[];
85
- published: boolean;
86
- }
87
-
88
- export interface Post {
89
- id: string;
90
- title: string;
91
- content: string;
92
- slug: string;
93
- tags: string[];
94
- published: boolean;
95
- authorId: string;
96
- author: User;
97
- createdAt: string;
98
- updatedAt: string;
99
- viewCount: number;
100
- likeCount: number;
101
- }
102
- ```
103
-
104
- ### 2. Backend API Implementation with Express.js
105
- ```typescript
106
- // server/app.ts - Express application setup
107
- import express from 'express';
108
- import cors from 'cors';
109
- import helmet from 'helmet';
110
- import rateLimit from 'express-rate-limit';
111
- import compression from 'compression';
112
- import { authRouter } from './routes/auth';
113
- import { userRouter } from './routes/users';
114
- import { postRouter } from './routes/posts';
115
- import { errorHandler } from './middleware/errorHandler';
116
- import { authMiddleware } from './middleware/auth';
117
- import { logger } from './utils/logger';
118
-
119
- const app = express();
120
-
121
- // Security middleware
122
- app.use(helmet());
123
- app.use(cors({
124
- origin: process.env.FRONTEND_URL,
125
- credentials: true
126
- }));
127
-
128
- // Rate limiting
129
- const limiter = rateLimit({
130
- windowMs: 15 * 60 * 1000, // 15 minutes
131
- max: 100, // limit each IP to 100 requests per windowMs
132
- message: 'Too many requests from this IP'
133
- });
134
- app.use('/api/', limiter);
135
-
136
- // Parsing middleware
137
- app.use(express.json({ limit: '10mb' }));
138
- app.use(express.urlencoded({ extended: true }));
139
- app.use(compression());
140
-
141
- // Logging middleware
142
- app.use((req, res, next) => {
143
- logger.info(`${req.method} ${req.path}`, {
144
- ip: req.ip,
145
- userAgent: req.get('User-Agent')
146
- });
147
- next();
148
- });
149
-
150
- // Health check endpoint
151
- app.get('/health', (req, res) => {
152
- res.json({
153
- status: 'healthy',
154
- timestamp: new Date().toISOString(),
155
- uptime: process.uptime()
156
- });
157
- });
158
-
159
- // API routes
160
- app.use('/api/auth', authRouter);
161
- app.use('/api/users', authMiddleware, userRouter);
162
- app.use('/api/posts', postRouter);
163
-
164
- // Error handling middleware
165
- app.use(errorHandler);
166
-
167
- // 404 handler
168
- app.use('*', (req, res) => {
169
- res.status(404).json({
170
- success: false,
171
- error: 'Route not found'
172
- });
173
- });
174
-
175
- export { app };
176
-
177
- // server/routes/auth.ts - Authentication routes
178
- import { Router } from 'express';
179
- import bcrypt from 'bcryptjs';
180
- import jwt from 'jsonwebtoken';
181
- import { z } from 'zod';
182
- import { User } from '../models/User';
183
- import { validateRequest } from '../middleware/validation';
184
- import { logger } from '../utils/logger';
185
- import type { LoginRequest, CreateUserRequest, AuthResponse } from '../../types/api';
186
-
187
- const router = Router();
188
-
189
- const loginSchema = z.object({
190
- email: z.string().email(),
191
- password: z.string().min(6)
192
- });
193
-
194
- const registerSchema = z.object({
195
- email: z.string().email(),
196
- name: z.string().min(2).max(50),
197
- password: z.string().min(8).regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/)
198
- });
199
-
200
- router.post('/register', validateRequest(registerSchema), async (req, res, next) => {
201
- try {
202
- const { email, name, password }: CreateUserRequest = req.body;
203
-
204
- // Check if user already exists
205
- const existingUser = await User.findOne({ email });
206
- if (existingUser) {
207
- return res.status(400).json({
208
- success: false,
209
- error: 'User already exists with this email'
210
- });
211
- }
212
-
213
- // Hash password
214
- const saltRounds = 12;
215
- const hashedPassword = await bcrypt.hash(password, saltRounds);
216
-
217
- // Create user
218
- const user = new User({
219
- email,
220
- name,
221
- password: hashedPassword,
222
- role: 'user'
223
- });
224
-
225
- await user.save();
226
-
227
- // Generate tokens
228
- const token = jwt.sign(
229
- { userId: user._id, email: user.email, role: user.role },
230
- process.env.JWT_SECRET!,
231
- { expiresIn: '1h' }
232
- );
233
-
234
- const refreshToken = jwt.sign(
235
- { userId: user._id },
236
- process.env.JWT_REFRESH_SECRET!,
237
- { expiresIn: '7d' }
238
- );
239
-
240
- logger.info('User registered successfully', { userId: user._id, email });
241
-
242
- const response: AuthResponse = {
243
- user: {
244
- id: user._id.toString(),
245
- email: user.email,
246
- name: user.name,
247
- role: user.role,
248
- createdAt: user.createdAt.toISOString(),
249
- updatedAt: user.updatedAt.toISOString()
250
- },
251
- token,
252
- refreshToken
253
- };
254
-
255
- res.status(201).json({
256
- success: true,
257
- data: response,
258
- message: 'User registered successfully'
259
- });
260
- } catch (error) {
261
- next(error);
262
- }
263
- });
264
-
265
- router.post('/login', validateRequest(loginSchema), async (req, res, next) => {
266
- try {
267
- const { email, password }: LoginRequest = req.body;
268
-
269
- // Find user
270
- const user = await User.findOne({ email });
271
- if (!user) {
272
- return res.status(401).json({
273
- success: false,
274
- error: 'Invalid credentials'
275
- });
276
- }
277
-
278
- // Verify password
279
- const isValidPassword = await bcrypt.compare(password, user.password);
280
- if (!isValidPassword) {
281
- return res.status(401).json({
282
- success: false,
283
- error: 'Invalid credentials'
284
- });
285
- }
286
-
287
- // Generate tokens
288
- const token = jwt.sign(
289
- { userId: user._id, email: user.email, role: user.role },
290
- process.env.JWT_SECRET!,
291
- { expiresIn: '1h' }
292
- );
293
-
294
- const refreshToken = jwt.sign(
295
- { userId: user._id },
296
- process.env.JWT_REFRESH_SECRET!,
297
- { expiresIn: '7d' }
298
- );
299
-
300
- logger.info('User logged in successfully', { userId: user._id, email });
301
-
302
- const response: AuthResponse = {
303
- user: {
304
- id: user._id.toString(),
305
- email: user.email,
306
- name: user.name,
307
- role: user.role,
308
- createdAt: user.createdAt.toISOString(),
309
- updatedAt: user.updatedAt.toISOString()
310
- },
311
- token,
312
- refreshToken
313
- };
314
-
315
- res.json({
316
- success: true,
317
- data: response,
318
- message: 'Login successful'
319
- });
320
- } catch (error) {
321
- next(error);
322
- }
323
- });
324
-
325
- router.post('/refresh', async (req, res, next) => {
326
- try {
327
- const { refreshToken } = req.body;
328
-
329
- if (!refreshToken) {
330
- return res.status(401).json({
331
- success: false,
332
- error: 'Refresh token required'
333
- });
334
- }
335
-
336
- const decoded = jwt.verify(refreshToken, process.env.JWT_REFRESH_SECRET!) as { userId: string };
337
- const user = await User.findById(decoded.userId);
338
-
339
- if (!user) {
340
- return res.status(401).json({
341
- success: false,
342
- error: 'Invalid refresh token'
343
- });
344
- }
345
-
346
- const newToken = jwt.sign(
347
- { userId: user._id, email: user.email, role: user.role },
348
- process.env.JWT_SECRET!,
349
- { expiresIn: '1h' }
350
- );
351
-
352
- res.json({
353
- success: true,
354
- data: { token: newToken },
355
- message: 'Token refreshed successfully'
356
- });
357
- } catch (error) {
358
- next(error);
359
- }
360
- });
361
-
362
- export { router as authRouter };
363
- ```
364
-
365
- ### 3. Database Models with Mongoose
366
- ```typescript
367
- // server/models/User.ts
368
- import mongoose, { Document, Schema } from 'mongoose';
369
-
370
- export interface IUser extends Document {
371
- email: string;
372
- name: string;
373
- password: string;
374
- role: 'admin' | 'user';
375
- emailVerified: boolean;
376
- lastLogin: Date;
377
- createdAt: Date;
378
- updatedAt: Date;
379
- }
380
-
381
- const userSchema = new Schema<IUser>({
382
- email: {
383
- type: String,
384
- required: true,
385
- unique: true,
386
- lowercase: true,
387
- trim: true,
388
- index: true
389
- },
390
- name: {
391
- type: String,
392
- required: true,
393
- trim: true,
394
- maxlength: 50
395
- },
396
- password: {
397
- type: String,
398
- required: true,
399
- minlength: 8
400
- },
401
- role: {
402
- type: String,
403
- enum: ['admin', 'user'],
404
- default: 'user'
405
- },
406
- emailVerified: {
407
- type: Boolean,
408
- default: false
409
- },
410
- lastLogin: {
411
- type: Date,
412
- default: Date.now
413
- }
414
- }, {
415
- timestamps: true,
416
- toJSON: {
417
- transform: function(doc, ret) {
418
- delete ret.password;
419
- return ret;
420
- }
421
- }
422
- });
423
-
424
- // Indexes for performance
425
- userSchema.index({ email: 1 });
426
- userSchema.index({ role: 1 });
427
- userSchema.index({ createdAt: -1 });
428
-
429
- export const User = mongoose.model<IUser>('User', userSchema);
430
-
431
- // server/models/Post.ts
432
- import mongoose, { Document, Schema } from 'mongoose';
433
-
434
- export interface IPost extends Document {
435
- title: string;
436
- content: string;
437
- slug: string;
438
- tags: string[];
439
- published: boolean;
440
- authorId: mongoose.Types.ObjectId;
441
- viewCount: number;
442
- likeCount: number;
443
- createdAt: Date;
444
- updatedAt: Date;
445
- }
446
-
447
- const postSchema = new Schema<IPost>({
448
- title: {
449
- type: String,
450
- required: true,
451
- trim: true,
452
- maxlength: 200
453
- },
454
- content: {
455
- type: String,
456
- required: true
457
- },
458
- slug: {
459
- type: String,
460
- required: true,
461
- unique: true,
462
- lowercase: true,
463
- index: true
464
- },
465
- tags: [{
466
- type: String,
467
- trim: true,
468
- lowercase: true
469
- }],
470
- published: {
471
- type: Boolean,
472
- default: false
473
- },
474
- authorId: {
475
- type: Schema.Types.ObjectId,
476
- ref: 'User',
477
- required: true,
478
- index: true
479
- },
480
- viewCount: {
481
- type: Number,
482
- default: 0
483
- },
484
- likeCount: {
485
- type: Number,
486
- default: 0
487
- }
488
- }, {
489
- timestamps: true
490
- });
491
-
492
- // Compound indexes for complex queries
493
- postSchema.index({ published: 1, createdAt: -1 });
494
- postSchema.index({ authorId: 1, published: 1 });
495
- postSchema.index({ tags: 1, published: 1 });
496
- postSchema.index({ title: 'text', content: 'text' });
497
-
498
- // Virtual populate for author
499
- postSchema.virtual('author', {
500
- ref: 'User',
501
- localField: 'authorId',
502
- foreignField: '_id',
503
- justOne: true
504
- });
505
-
506
- export const Post = mongoose.model<IPost>('Post', postSchema);
507
- ```
508
-
509
- ### 4. Frontend React Application
510
- ```tsx
511
- // frontend/src/App.tsx - Main application component
512
- import React from 'react';
513
- import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
514
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
515
- import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
516
- import { Toaster } from 'react-hot-toast';
517
- import { AuthProvider } from './contexts/AuthContext';
518
- import { ProtectedRoute } from './components/ProtectedRoute';
519
- import { Layout } from './components/Layout';
520
- import { HomePage } from './pages/HomePage';
521
- import { LoginPage } from './pages/LoginPage';
522
- import { RegisterPage } from './pages/RegisterPage';
523
- import { DashboardPage } from './pages/DashboardPage';
524
- import { PostsPage } from './pages/PostsPage';
525
- import { CreatePostPage } from './pages/CreatePostPage';
526
- import { ProfilePage } from './pages/ProfilePage';
527
- import { ErrorBoundary } from './components/ErrorBoundary';
528
-
529
- const queryClient = new QueryClient({
530
- defaultOptions: {
531
- queries: {
532
- retry: (failureCount, error: any) => {
533
- if (error?.status === 401) return false;
534
- return failureCount < 3;
535
- },
536
- staleTime: 5 * 60 * 1000, // 5 minutes
537
- cacheTime: 10 * 60 * 1000, // 10 minutes
538
- },
539
- mutations: {
540
- retry: false,
541
- },
542
- },
543
- });
544
-
545
- function App() {
546
- return (
547
- <ErrorBoundary>
548
- <QueryClientProvider client={queryClient}>
549
- <AuthProvider>
550
- <Router>
551
- <div className="min-h-screen bg-gray-50">
552
- <Layout>
553
- <Routes>
554
- <Route path="/" element={<HomePage />} />
555
- <Route path="/login" element={<LoginPage />} />
556
- <Route path="/register" element={<RegisterPage />} />
557
- <Route path="/posts" element={<PostsPage />} />
558
-
559
- {/* Protected routes */}
560
- <Route path="/dashboard" element={
561
- <ProtectedRoute>
562
- <DashboardPage />
563
- </ProtectedRoute>
564
- } />
565
- <Route path="/posts/create" element={
566
- <ProtectedRoute>
567
- <CreatePostPage />
568
- </ProtectedRoute>
569
- } />
570
- <Route path="/profile" element={
571
- <ProtectedRoute>
572
- <ProfilePage />
573
- </ProtectedRoute>
574
- } />
575
- </Routes>
576
- </Layout>
577
- </div>
578
- </Router>
579
- </AuthProvider>
580
- <Toaster position="top-right" />
581
- <ReactQueryDevtools initialIsOpen={false} />
582
- </QueryClientProvider>
583
- </ErrorBoundary>
584
- );
585
- }
586
-
587
- export default App;
588
-
589
- // frontend/src/contexts/AuthContext.tsx - Authentication context
590
- import React, { createContext, useContext, useReducer, useEffect } from 'react';
591
- import { User, AuthResponse } from '../types/api';
592
- import { authAPI } from '../services/api';
593
-
594
- interface AuthState {
595
- user: User | null;
596
- token: string | null;
597
- isLoading: boolean;
598
- isAuthenticated: boolean;
599
- }
600
-
601
- type AuthAction =
602
- | { type: 'LOGIN_START' }
603
- | { type: 'LOGIN_SUCCESS'; payload: AuthResponse }
604
- | { type: 'LOGIN_FAILURE' }
605
- | { type: 'LOGOUT' }
606
- | { type: 'SET_LOADING'; payload: boolean };
607
-
608
- const initialState: AuthState = {
609
- user: null,
610
- token: localStorage.getItem('auth_token'),
611
- isLoading: true,
612
- isAuthenticated: false,
613
- };
614
-
615
- function authReducer(state: AuthState, action: AuthAction): AuthState {
616
- switch (action.type) {
617
- case 'LOGIN_START':
618
- return { ...state, isLoading: true };
619
-
620
- case 'LOGIN_SUCCESS':
621
- localStorage.setItem('auth_token', action.payload.token);
622
- localStorage.setItem('refresh_token', action.payload.refreshToken);
623
- return {
624
- ...state,
625
- user: action.payload.user,
626
- token: action.payload.token,
627
- isLoading: false,
628
- isAuthenticated: true,
629
- };
630
-
631
- case 'LOGIN_FAILURE':
632
- localStorage.removeItem('auth_token');
633
- localStorage.removeItem('refresh_token');
634
- return {
635
- ...state,
636
- user: null,
637
- token: null,
638
- isLoading: false,
639
- isAuthenticated: false,
640
- };
641
-
642
- case 'LOGOUT':
643
- localStorage.removeItem('auth_token');
644
- localStorage.removeItem('refresh_token');
645
- return {
646
- ...state,
647
- user: null,
648
- token: null,
649
- isAuthenticated: false,
650
- };
651
-
652
- case 'SET_LOADING':
653
- return { ...state, isLoading: action.payload };
654
-
655
- default:
656
- return state;
657
- }
658
- }
659
-
660
- interface AuthContextType extends AuthState {
661
- login: (email: string, password: string) => Promise<void>;
662
- register: (email: string, name: string, password: string) => Promise<void>;
663
- logout: () => void;
664
- }
665
-
666
- const AuthContext = createContext<AuthContextType | undefined>(undefined);
667
-
668
- export function AuthProvider({ children }: { children: React.ReactNode }) {
669
- const [state, dispatch] = useReducer(authReducer, initialState);
670
-
671
- useEffect(() => {
672
- const token = localStorage.getItem('auth_token');
673
- if (token) {
674
- // Verify token with backend
675
- authAPI.verifyToken(token)
676
- .then((user) => {
677
- dispatch({
678
- type: 'LOGIN_SUCCESS',
679
- payload: {
680
- user,
681
- token,
682
- refreshToken: localStorage.getItem('refresh_token') || '',
683
- },
684
- });
685
- })
686
- .catch(() => {
687
- dispatch({ type: 'LOGIN_FAILURE' });
688
- });
689
- } else {
690
- dispatch({ type: 'SET_LOADING', payload: false });
691
- }
692
- }, []);
693
-
694
- const login = async (email: string, password: string) => {
695
- dispatch({ type: 'LOGIN_START' });
696
- try {
697
- const response = await authAPI.login({ email, password });
698
- dispatch({ type: 'LOGIN_SUCCESS', payload: response });
699
- } catch (error) {
700
- dispatch({ type: 'LOGIN_FAILURE' });
701
- throw error;
702
- }
703
- };
704
-
705
- const register = async (email: string, name: string, password: string) => {
706
- dispatch({ type: 'LOGIN_START' });
707
- try {
708
- const response = await authAPI.register({ email, name, password });
709
- dispatch({ type: 'LOGIN_SUCCESS', payload: response });
710
- } catch (error) {
711
- dispatch({ type: 'LOGIN_FAILURE' });
712
- throw error;
713
- }
714
- };
715
-
716
- const logout = () => {
717
- dispatch({ type: 'LOGOUT' });
718
- };
719
-
720
- return (
721
- <AuthContext.Provider
722
- value={{
723
- ...state,
724
- login,
725
- register,
726
- logout,
727
- }}
728
- >
729
- {children}
730
- </AuthContext.Provider>
731
- );
732
- }
733
-
734
- export function useAuth() {
735
- const context = useContext(AuthContext);
736
- if (context === undefined) {
737
- throw new Error('useAuth must be used within an AuthProvider');
738
- }
739
- return context;
740
- }
741
- ```
742
-
743
- ### 5. API Integration and State Management
744
- ```typescript
745
- // frontend/src/services/api.ts - API client
746
- import axios, { AxiosError } from 'axios';
747
- import toast from 'react-hot-toast';
748
- import {
749
- User,
750
- Post,
751
- AuthResponse,
752
- LoginRequest,
753
- CreateUserRequest,
754
- CreatePostRequest,
755
- PaginatedResponse,
756
- ApiResponse
757
- } from '../types/api';
758
-
759
- const API_BASE_URL = process.env.REACT_APP_API_URL || 'http://localhost:3001/api';
760
-
761
- // Create axios instance
762
- const api = axios.create({
763
- baseURL: API_BASE_URL,
764
- timeout: 10000,
765
- headers: {
766
- 'Content-Type': 'application/json',
767
- },
768
- });
769
-
770
- // Request interceptor to add auth token
771
- api.interceptors.request.use(
772
- (config) => {
773
- const token = localStorage.getItem('auth_token');
774
- if (token) {
775
- config.headers.Authorization = `Bearer ${token}`;
776
- }
777
- return config;
778
- },
779
- (error) => Promise.reject(error)
780
- );
781
-
782
- // Response interceptor for token refresh and error handling
783
- api.interceptors.response.use(
784
- (response) => response,
785
- async (error: AxiosError) => {
786
- const originalRequest = error.config as any;
787
-
788
- if (error.response?.status === 401 && !originalRequest._retry) {
789
- originalRequest._retry = true;
790
-
791
- try {
792
- const refreshToken = localStorage.getItem('refresh_token');
793
- if (refreshToken) {
794
- const response = await axios.post(`${API_BASE_URL}/auth/refresh`, {
795
- refreshToken,
796
- });
797
-
798
- const newToken = response.data.data.token;
799
- localStorage.setItem('auth_token', newToken);
800
-
801
- // Retry original request with new token
802
- originalRequest.headers.Authorization = `Bearer ${newToken}`;
803
- return api(originalRequest);
804
- }
805
- } catch (refreshError) {
806
- // Refresh failed, redirect to login
807
- localStorage.removeItem('auth_token');
808
- localStorage.removeItem('refresh_token');
809
- window.location.href = '/login';
810
- return Promise.reject(refreshError);
811
- }
812
- }
813
-
814
- // Handle other errors
815
- if (error.response?.data?.error) {
816
- toast.error(error.response.data.error);
817
- } else {
818
- toast.error('An unexpected error occurred');
819
- }
820
-
821
- return Promise.reject(error);
822
- }
823
- );
824
-
825
- // Authentication API
826
- export const authAPI = {
827
- login: async (credentials: LoginRequest): Promise<AuthResponse> => {
828
- const response = await api.post<ApiResponse<AuthResponse>>('/auth/login', credentials);
829
- return response.data.data!;
830
- },
831
-
832
- register: async (userData: CreateUserRequest): Promise<AuthResponse> => {
833
- const response = await api.post<ApiResponse<AuthResponse>>('/auth/register', userData);
834
- return response.data.data!;
835
- },
836
-
837
- verifyToken: async (token: string): Promise<User> => {
838
- const response = await api.get<ApiResponse<User>>('/auth/verify', {
839
- headers: { Authorization: `Bearer ${token}` },
840
- });
841
- return response.data.data!;
842
- },
843
- };
844
-
845
- // Posts API
846
- export const postsAPI = {
847
- getPosts: async (page = 1, limit = 10): Promise<PaginatedResponse<Post>> => {
848
- const response = await api.get<ApiResponse<PaginatedResponse<Post>>>(
849
- `/posts?page=${page}&limit=${limit}`
850
- );
851
- return response.data.data!;
852
- },
853
-
854
- getPost: async (id: string): Promise<Post> => {
855
- const response = await api.get<ApiResponse<Post>>(`/posts/${id}`);
856
- return response.data.data!;
857
- },
858
-
859
- createPost: async (postData: CreatePostRequest): Promise<Post> => {
860
- const response = await api.post<ApiResponse<Post>>('/posts', postData);
861
- return response.data.data!;
862
- },
863
-
864
- updatePost: async (id: string, postData: Partial<CreatePostRequest>): Promise<Post> => {
865
- const response = await api.put<ApiResponse<Post>>(`/posts/${id}`, postData);
866
- return response.data.data!;
867
- },
868
-
869
- deletePost: async (id: string): Promise<void> => {
870
- await api.delete(`/posts/${id}`);
871
- },
872
-
873
- likePost: async (id: string): Promise<Post> => {
874
- const response = await api.post<ApiResponse<Post>>(`/posts/${id}/like`);
875
- return response.data.data!;
876
- },
877
- };
878
-
879
- // Users API
880
- export const usersAPI = {
881
- getProfile: async (): Promise<User> => {
882
- const response = await api.get<ApiResponse<User>>('/users/profile');
883
- return response.data.data!;
884
- },
885
-
886
- updateProfile: async (userData: Partial<User>): Promise<User> => {
887
- const response = await api.put<ApiResponse<User>>('/users/profile', userData);
888
- return response.data.data!;
889
- },
890
- };
891
-
892
- export default api;
893
- ```
894
-
895
- ### 6. Reusable UI Components
896
- ```tsx
897
- // frontend/src/components/PostCard.tsx - Reusable post component
898
- import React from 'react';
899
- import { Link } from 'react-router-dom';
900
- import { useMutation, useQueryClient } from '@tanstack/react-query';
901
- import { Heart, Eye, Calendar, User } from 'lucide-react';
902
- import { Post } from '../types/api';
903
- import { postsAPI } from '../services/api';
904
- import { useAuth } from '../contexts/AuthContext';
905
- import { formatDate } from '../utils/dateUtils';
906
- import toast from 'react-hot-toast';
907
-
908
- interface PostCardProps {
909
- post: Post;
910
- showActions?: boolean;
911
- className?: string;
912
- }
913
-
914
- export function PostCard({ post, showActions = true, className = '' }: PostCardProps) {
915
- const { user } = useAuth();
916
- const queryClient = useQueryClient();
917
-
918
- const likeMutation = useMutation({
919
- mutationFn: postsAPI.likePost,
920
- onSuccess: (updatedPost) => {
921
- // Update the post in the cache
922
- queryClient.setQueryData(['posts'], (oldData: any) => {
923
- if (!oldData) return oldData;
924
- return {
925
- ...oldData,
926
- data: oldData.data.map((p: Post) =>
927
- p.id === updatedPost.id ? updatedPost : p
928
- ),
929
- };
930
- });
931
- toast.success('Post liked!');
932
- },
933
- onError: () => {
934
- toast.error('Failed to like post');
935
- },
936
- });
937
-
938
- const handleLike = () => {
939
- if (!user) {
940
- toast.error('Please login to like posts');
941
- return;
942
- }
943
- likeMutation.mutate(post.id);
944
- };
945
-
946
- return (
947
- <article className={`bg-white rounded-lg shadow-md overflow-hidden hover:shadow-lg transition-shadow ${className}`}>
948
- <div className="p-6">
949
- <div className="flex items-center justify-between mb-4">
950
- <div className="flex items-center space-x-2 text-sm text-gray-600">
951
- <User className="w-4 h-4" />
952
- <span>{post.author.name}</span>
953
- <Calendar className="w-4 h-4 ml-4" />
954
- <span>{formatDate(post.createdAt)}</span>
955
- </div>
956
- {!post.published && (
957
- <span className="px-2 py-1 text-xs bg-yellow-100 text-yellow-800 rounded-full">
958
- Draft
959
- </span>
960
- )}
961
- </div>
962
-
963
- <h3 className="text-xl font-semibold text-gray-900 mb-3">
964
- <Link
965
- to={`/posts/${post.id}`}
966
- className="hover:text-blue-600 transition-colors"
967
- >
968
- {post.title}
969
- </Link>
970
- </h3>
971
-
972
- <p className="text-gray-600 mb-4 line-clamp-3">
973
- {post.content.substring(0, 200)}...
974
- </p>
975
-
976
- <div className="flex flex-wrap gap-2 mb-4">
977
- {post.tags.map((tag) => (
978
- <span
979
- key={tag}
980
- className="px-2 py-1 text-xs bg-blue-100 text-blue-800 rounded-full"
981
- >
982
- #{tag}
983
- </span>
984
- ))}
985
- </div>
986
-
987
- {showActions && (
988
- <div className="flex items-center justify-between pt-4 border-t border-gray-200">
989
- <div className="flex items-center space-x-4 text-sm text-gray-600">
990
- <div className="flex items-center space-x-1">
991
- <Eye className="w-4 h-4" />
992
- <span>{post.viewCount}</span>
993
- </div>
994
- <div className="flex items-center space-x-1">
995
- <Heart className="w-4 h-4" />
996
- <span>{post.likeCount}</span>
997
- </div>
998
- </div>
999
-
1000
- <button
1001
- onClick={handleLike}
1002
- disabled={likeMutation.isLoading}
1003
- className="flex items-center space-x-2 px-3 py-1 text-sm text-blue-600 hover:bg-blue-50 rounded-md transition-colors disabled:opacity-50"
1004
- >
1005
- <Heart className={`w-4 h-4 ${likeMutation.isLoading ? 'animate-pulse' : ''}`} />
1006
- <span>Like</span>
1007
- </button>
1008
- </div>
1009
- )}
1010
- </div>
1011
- </article>
1012
- );
1013
- }
1014
-
1015
- // frontend/src/components/LoadingSpinner.tsx - Loading component
1016
- import React from 'react';
1017
-
1018
- interface LoadingSpinnerProps {
1019
- size?: 'sm' | 'md' | 'lg';
1020
- className?: string;
1021
- }
1022
-
1023
- export function LoadingSpinner({ size = 'md', className = '' }: LoadingSpinnerProps) {
1024
- const sizeClasses = {
1025
- sm: 'w-4 h-4',
1026
- md: 'w-8 h-8',
1027
- lg: 'w-12 h-12',
1028
- };
1029
-
1030
- return (
1031
- <div className={`flex justify-center items-center ${className}`}>
1032
- <div
1033
- className={`${sizeClasses[size]} border-2 border-gray-300 border-t-blue-600 rounded-full animate-spin`}
1034
- />
1035
- </div>
1036
- );
1037
- }
1038
-
1039
- // frontend/src/components/ErrorBoundary.tsx - Error boundary component
1040
- import React, { Component, ErrorInfo, ReactNode } from 'react';
1041
-
1042
- interface Props {
1043
- children: ReactNode;
1044
- }
1045
-
1046
- interface State {
1047
- hasError: boolean;
1048
- error?: Error;
1049
- }
1050
-
1051
- export class ErrorBoundary extends Component<Props, State> {
1052
- public state: State = {
1053
- hasError: false,
1054
- };
1055
-
1056
- public static getDerivedStateFromError(error: Error): State {
1057
- return { hasError: true, error };
1058
- }
1059
-
1060
- public componentDidCatch(error: Error, errorInfo: ErrorInfo) {
1061
- console.error('Uncaught error:', error, errorInfo);
1062
- }
1063
-
1064
- public render() {
1065
- if (this.state.hasError) {
1066
- return (
1067
- <div className="min-h-screen flex items-center justify-center bg-gray-50">
1068
- <div className="max-w-md w-full bg-white rounded-lg shadow-md p-6 text-center">
1069
- <h2 className="text-2xl font-bold text-gray-900 mb-4">
1070
- Something went wrong
1071
- </h2>
1072
- <p className="text-gray-600 mb-6">
1073
- We're sorry, but something unexpected happened. Please try refreshing the page.
1074
- </p>
1075
- <button
1076
- onClick={() => window.location.reload()}
1077
- className="px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors"
1078
- >
1079
- Refresh Page
1080
- </button>
1081
- </div>
1082
- </div>
1083
- );
1084
- }
1085
-
1086
- return this.props.children;
1087
- }
1088
- }
1089
- ```
1090
-
1091
- ## Development Best Practices
1092
-
1093
- ### Code Quality and Testing
1094
- ```typescript
1095
- // Testing example with Jest and React Testing Library
1096
- // frontend/src/components/__tests__/PostCard.test.tsx
1097
- import React from 'react';
1098
- import { render, screen, fireEvent, waitFor } from '@testing-library/react';
1099
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
1100
- import { BrowserRouter } from 'react-router-dom';
1101
- import { PostCard } from '../PostCard';
1102
- import { AuthProvider } from '../../contexts/AuthContext';
1103
- import { mockPost, mockUser } from '../../__mocks__/data';
1104
-
1105
- const createWrapper = () => {
1106
- const queryClient = new QueryClient({
1107
- defaultOptions: { queries: { retry: false } },
1108
- });
1109
-
1110
- return ({ children }: { children: React.ReactNode }) => (
1111
- <QueryClientProvider client={queryClient}>
1112
- <BrowserRouter>
1113
- <AuthProvider>
1114
- {children}
1115
- </AuthProvider>
1116
- </BrowserRouter>
1117
- </QueryClientProvider>
1118
- );
1119
- };
1120
-
1121
- describe('PostCard', () => {
1122
- it('renders post information correctly', () => {
1123
- render(<PostCard post={mockPost} />, { wrapper: createWrapper() });
1124
-
1125
- expect(screen.getByText(mockPost.title)).toBeInTheDocument();
1126
- expect(screen.getByText(mockPost.author.name)).toBeInTheDocument();
1127
- expect(screen.getByText(`${mockPost.viewCount}`)).toBeInTheDocument();
1128
- expect(screen.getByText(`${mockPost.likeCount}`)).toBeInTheDocument();
1129
- });
1130
-
1131
- it('handles like button click', async () => {
1132
- const user = userEvent.setup();
1133
- render(<PostCard post={mockPost} />, { wrapper: createWrapper() });
1134
-
1135
- const likeButton = screen.getByRole('button', { name: /like/i });
1136
- await user.click(likeButton);
1137
-
1138
- await waitFor(() => {
1139
- expect(screen.getByText('Post liked!')).toBeInTheDocument();
1140
- });
1141
- });
1142
- });
1143
- ```
1144
-
1145
- ### Performance Optimization
1146
- ```typescript
1147
- // frontend/src/hooks/useInfiniteScroll.ts - Custom hook for pagination
1148
- import { useInfiniteQuery } from '@tanstack/react-query';
1149
- import { useEffect } from 'react';
1150
- import { postsAPI } from '../services/api';
1151
-
1152
- export function useInfiniteScroll() {
1153
- const {
1154
- data,
1155
- fetchNextPage,
1156
- hasNextPage,
1157
- isFetchingNextPage,
1158
- isLoading,
1159
- error,
1160
- } = useInfiniteQuery({
1161
- queryKey: ['posts'],
1162
- queryFn: ({ pageParam = 1 }) => postsAPI.getPosts(pageParam),
1163
- getNextPageParam: (lastPage, allPages) => {
1164
- return lastPage.pagination.page < lastPage.pagination.totalPages
1165
- ? lastPage.pagination.page + 1
1166
- : undefined;
1167
- },
1168
- });
1169
-
1170
- useEffect(() => {
1171
- const handleScroll = () => {
1172
- if (
1173
- window.innerHeight + document.documentElement.scrollTop >=
1174
- document.documentElement.offsetHeight - 1000
1175
- ) {
1176
- if (hasNextPage && !isFetchingNextPage) {
1177
- fetchNextPage();
1178
- }
1179
- }
1180
- };
1181
-
1182
- window.addEventListener('scroll', handleScroll);
1183
- return () => window.removeEventListener('scroll', handleScroll);
1184
- }, [fetchNextPage, hasNextPage, isFetchingNextPage]);
1185
-
1186
- const posts = data?.pages.flatMap(page => page.data) ?? [];
1187
-
1188
- return {
1189
- posts,
1190
- isLoading,
1191
- isFetchingNextPage,
1192
- hasNextPage,
1193
- error,
1194
- };
1195
- }
1196
- ```
1197
-
1198
- Your full-stack implementations should prioritize:
1199
- 1. **Type Safety** - End-to-end TypeScript for robust development
1200
- 2. **Performance** - Optimization at every layer from database to UI
1201
- 3. **Security** - Authentication, authorization, and data validation
1202
- 4. **Testing** - Comprehensive test coverage across the stack
1203
- 5. **Developer Experience** - Clear code organization and modern tooling
1204
-
1205
- Always include error handling, loading states, accessibility features, and comprehensive documentation for maintainable applications.