claude-code-templates 1.21.12 → 1.21.13

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 (797) hide show
  1. package/.claude/agents/agent-expert.md +477 -0
  2. package/.claude/agents/cli-ui-designer.md +405 -0
  3. package/.claude/agents/command-expert.md +421 -0
  4. package/.claude/agents/docusaurus-expert.md +173 -0
  5. package/.claude/agents/frontend-developer.md +32 -0
  6. package/.claude/agents/mcp-expert.md +258 -0
  7. package/.claude/commands/lint.md +111 -0
  8. package/.claude/commands/test.md +73 -0
  9. package/.claude/settings.local.json +56 -0
  10. package/.env.example +26 -0
  11. package/.github/WORKFLOWS_REFERENCE.md +88 -0
  12. package/.github/workflows/deploy-docusaurus.yml +31 -0
  13. package/.github/workflows/deploy.yml +33 -0
  14. package/.github/workflows/publish-package.yml +125 -0
  15. package/.mcp.json +4 -0
  16. package/AGENTS.md +4 -0
  17. package/CLAUDE.md +482 -0
  18. package/CLAUDE_JOBS_README.md +148 -0
  19. package/CODE_OF_CONDUCT.md +82 -0
  20. package/CONTRIBUTING.md +505 -0
  21. package/DEPLOYMENT.md +60 -0
  22. package/LICENSE +21 -0
  23. package/README.md +77 -79
  24. package/ROADMAP.md +278 -0
  25. package/SECURITY.md +65 -0
  26. package/api/index.html +1 -0
  27. package/api/package.json +7 -0
  28. package/api/track-download-supabase.js +150 -0
  29. package/cli-tool/Makefile +102 -0
  30. package/cli-tool/README.md +126 -0
  31. package/cli-tool/TESTING.md +262 -0
  32. package/cli-tool/components/agents/ai-specialists/ai-ethics-advisor.md +195 -0
  33. package/cli-tool/components/agents/ai-specialists/hackathon-ai-strategist.md +46 -0
  34. package/cli-tool/components/agents/ai-specialists/llms-maintainer.md +94 -0
  35. package/cli-tool/components/agents/ai-specialists/model-evaluator.md +150 -0
  36. package/cli-tool/components/agents/ai-specialists/prompt-engineer.md +112 -0
  37. package/cli-tool/components/agents/ai-specialists/search-specialist.md +59 -0
  38. package/cli-tool/components/agents/ai-specialists/task-decomposition-expert.md +97 -0
  39. package/cli-tool/components/agents/api-graphql/graphql-architect.md +208 -0
  40. package/cli-tool/components/agents/api-graphql/graphql-performance-optimizer.md +357 -0
  41. package/cli-tool/components/agents/api-graphql/graphql-security-specialist.md +519 -0
  42. package/cli-tool/components/agents/blockchain-web3/smart-contract-auditor.md +32 -0
  43. package/cli-tool/components/agents/blockchain-web3/smart-contract-specialist.md +32 -0
  44. package/cli-tool/components/agents/blockchain-web3/web3-integration-specialist.md +32 -0
  45. package/cli-tool/components/agents/business-marketing/business-analyst.md +194 -0
  46. package/cli-tool/components/agents/business-marketing/content-marketer.md +36 -0
  47. package/cli-tool/components/agents/business-marketing/customer-support.md +36 -0
  48. package/cli-tool/components/agents/business-marketing/legal-advisor.md +50 -0
  49. package/cli-tool/components/agents/business-marketing/marketing-attribution-analyst.md +352 -0
  50. package/cli-tool/components/agents/business-marketing/payment-integration.md +33 -0
  51. package/cli-tool/components/agents/business-marketing/product-strategist.md +212 -0
  52. package/cli-tool/components/agents/business-marketing/risk-manager.md +42 -0
  53. package/cli-tool/components/agents/business-marketing/sales-automator.md +36 -0
  54. package/cli-tool/components/agents/data-ai/ai-engineer.md +33 -0
  55. package/cli-tool/components/agents/data-ai/computer-vision-engineer.md +562 -0
  56. package/cli-tool/components/agents/data-ai/data-engineer.md +33 -0
  57. package/cli-tool/components/agents/data-ai/data-scientist.md +337 -0
  58. package/cli-tool/components/agents/data-ai/ml-engineer.md +33 -0
  59. package/cli-tool/components/agents/data-ai/mlops-engineer.md +58 -0
  60. package/cli-tool/components/agents/data-ai/nlp-engineer.md +680 -0
  61. package/cli-tool/components/agents/data-ai/quant-analyst.md +33 -0
  62. package/cli-tool/components/agents/database/database-admin.md +33 -0
  63. package/cli-tool/components/agents/database/database-architect.md +590 -0
  64. package/cli-tool/components/agents/database/database-optimization.md +33 -0
  65. package/cli-tool/components/agents/database/database-optimizer.md +33 -0
  66. package/cli-tool/components/agents/database/neon-auth-specialist.md +175 -0
  67. package/cli-tool/components/agents/database/neon-database-architect.md +141 -0
  68. package/cli-tool/components/agents/database/neon-expert.md +846 -0
  69. package/cli-tool/components/agents/database/nosql-specialist.md +708 -0
  70. package/cli-tool/components/agents/database/supabase-schema-architect.md +138 -0
  71. package/cli-tool/components/agents/deep-research-team/academic-researcher.md +33 -0
  72. package/cli-tool/components/agents/deep-research-team/agent-overview.md +235 -0
  73. package/cli-tool/components/agents/deep-research-team/competitive-intelligence-analyst.md +530 -0
  74. package/cli-tool/components/agents/deep-research-team/data-analyst.md +112 -0
  75. package/cli-tool/components/agents/deep-research-team/fact-checker.md +553 -0
  76. package/cli-tool/components/agents/deep-research-team/query-clarifier.md +73 -0
  77. package/cli-tool/components/agents/deep-research-team/report-generator.md +108 -0
  78. package/cli-tool/components/agents/deep-research-team/research-brief-generator.md +108 -0
  79. package/cli-tool/components/agents/deep-research-team/research-coordinator.md +94 -0
  80. package/cli-tool/components/agents/deep-research-team/research-orchestrator.md +119 -0
  81. package/cli-tool/components/agents/deep-research-team/research-synthesizer.md +109 -0
  82. package/cli-tool/components/agents/deep-research-team/technical-researcher.md +95 -0
  83. package/cli-tool/components/agents/development-team/backend-architect.md +31 -0
  84. package/cli-tool/components/agents/development-team/cli-ui-designer.md +405 -0
  85. package/cli-tool/components/agents/development-team/devops-engineer.md +886 -0
  86. package/cli-tool/components/agents/development-team/frontend-developer.md +32 -0
  87. package/cli-tool/components/agents/development-team/fullstack-developer.md +1205 -0
  88. package/cli-tool/components/agents/development-team/ios-developer.md +36 -0
  89. package/cli-tool/components/agents/development-team/mobile-developer.md +33 -0
  90. package/cli-tool/components/agents/development-team/ui-ux-designer.md +36 -0
  91. package/cli-tool/components/agents/development-tools/code-reviewer.md +30 -0
  92. package/cli-tool/components/agents/development-tools/command-expert.md +422 -0
  93. package/cli-tool/components/agents/development-tools/context-manager.md +65 -0
  94. package/cli-tool/components/agents/development-tools/debugger.md +31 -0
  95. package/cli-tool/components/agents/development-tools/dx-optimizer.md +64 -0
  96. package/cli-tool/components/agents/development-tools/error-detective.md +33 -0
  97. package/cli-tool/components/agents/development-tools/mcp-expert.md +259 -0
  98. package/cli-tool/components/agents/development-tools/performance-profiler.md +799 -0
  99. package/cli-tool/components/agents/development-tools/test-engineer.md +936 -0
  100. package/cli-tool/components/agents/devops-infrastructure/cloud-architect.md +33 -0
  101. package/cli-tool/components/agents/devops-infrastructure/deployment-engineer.md +33 -0
  102. package/cli-tool/components/agents/devops-infrastructure/devops-troubleshooter.md +33 -0
  103. package/cli-tool/components/agents/devops-infrastructure/monitoring-specialist.md +36 -0
  104. package/cli-tool/components/agents/devops-infrastructure/network-engineer.md +33 -0
  105. package/cli-tool/components/agents/devops-infrastructure/security-engineer.md +971 -0
  106. package/cli-tool/components/agents/devops-infrastructure/terraform-specialist.md +36 -0
  107. package/cli-tool/components/agents/devops-infrastructure/vercel-deployment-specialist.md +357 -0
  108. package/cli-tool/components/agents/documentation/api-documenter.md +33 -0
  109. package/cli-tool/components/agents/documentation/changelog-generator.md +37 -0
  110. package/cli-tool/components/agents/documentation/docusaurus-expert.md +175 -0
  111. package/cli-tool/components/agents/documentation/technical-writer.md +37 -0
  112. package/cli-tool/components/agents/expert-advisors/agent-expert.md +491 -0
  113. package/cli-tool/components/agents/expert-advisors/architect-review.md +50 -0
  114. package/cli-tool/components/agents/expert-advisors/dependency-manager.md +45 -0
  115. package/cli-tool/components/agents/expert-advisors/documentation-expert.md +47 -0
  116. package/cli-tool/components/agents/ffmpeg-clip-team/audio-mixer.md +37 -0
  117. package/cli-tool/components/agents/ffmpeg-clip-team/audio-quality-controller.md +100 -0
  118. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-content-analyzer.md +60 -0
  119. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-metadata-specialist.md +46 -0
  120. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-transcriber.md +68 -0
  121. package/cli-tool/components/agents/ffmpeg-clip-team/social-media-clip-creator.md +69 -0
  122. package/cli-tool/components/agents/ffmpeg-clip-team/timestamp-precision-specialist.md +98 -0
  123. package/cli-tool/components/agents/ffmpeg-clip-team/video-editor.md +37 -0
  124. package/cli-tool/components/agents/game-development/3d-artist.md +37 -0
  125. package/cli-tool/components/agents/game-development/game-designer.md +37 -0
  126. package/cli-tool/components/agents/game-development/unity-game-developer.md +110 -0
  127. package/cli-tool/components/agents/game-development/unreal-engine-developer.md +128 -0
  128. package/cli-tool/components/agents/git/git-flow-manager.md +329 -0
  129. package/cli-tool/components/agents/mcp-dev-team/mcp-deployment-orchestrator.md +101 -0
  130. package/cli-tool/components/agents/mcp-dev-team/mcp-integration-engineer.md +37 -0
  131. package/cli-tool/components/agents/mcp-dev-team/mcp-protocol-specialist.md +37 -0
  132. package/cli-tool/components/agents/mcp-dev-team/mcp-registry-navigator.md +112 -0
  133. package/cli-tool/components/agents/mcp-dev-team/mcp-security-auditor.md +70 -0
  134. package/cli-tool/components/agents/mcp-dev-team/mcp-server-architect.md +74 -0
  135. package/cli-tool/components/agents/mcp-dev-team/mcp-testing-engineer.md +106 -0
  136. package/cli-tool/components/agents/modernization/architecture-modernizer.md +37 -0
  137. package/cli-tool/components/agents/modernization/cloud-migration-specialist.md +37 -0
  138. package/cli-tool/components/agents/modernization/legacy-modernizer.md +33 -0
  139. package/cli-tool/components/agents/obsidian-ops-team/Scripts/daily_notes_connector.py +306 -0
  140. package/cli-tool/components/agents/obsidian-ops-team/Scripts/enhance_tag_standardizer.py +343 -0
  141. package/cli-tool/components/agents/obsidian-ops-team/Scripts/find_keyword_connections.py +216 -0
  142. package/cli-tool/components/agents/obsidian-ops-team/Scripts/fix_quoted_tags.py +82 -0
  143. package/cli-tool/components/agents/obsidian-ops-team/Scripts/implement_entity_connections.py +195 -0
  144. package/cli-tool/components/agents/obsidian-ops-team/Scripts/link_suggester.py +301 -0
  145. package/cli-tool/components/agents/obsidian-ops-team/Scripts/metadata_adder.py +197 -0
  146. package/cli-tool/components/agents/obsidian-ops-team/Scripts/moc_generator.py +296 -0
  147. package/cli-tool/components/agents/obsidian-ops-team/Scripts/parse_keyword_connections.py +122 -0
  148. package/cli-tool/components/agents/obsidian-ops-team/Scripts/tag_standardizer.py +387 -0
  149. package/cli-tool/components/agents/obsidian-ops-team/connection-agent.md +67 -0
  150. package/cli-tool/components/agents/obsidian-ops-team/content-curator.md +81 -0
  151. package/cli-tool/components/agents/obsidian-ops-team/metadata-agent.md +51 -0
  152. package/cli-tool/components/agents/obsidian-ops-team/moc-agent.md +112 -0
  153. package/cli-tool/components/agents/obsidian-ops-team/review-agent.md +94 -0
  154. package/cli-tool/components/agents/obsidian-ops-team/tag-agent.md +92 -0
  155. package/cli-tool/components/agents/obsidian-ops-team/vault-optimizer.md +76 -0
  156. package/cli-tool/components/agents/ocr-extraction-team/document-structure-analyzer.md +37 -0
  157. package/cli-tool/components/agents/ocr-extraction-team/markdown-syntax-formatter.md +58 -0
  158. package/cli-tool/components/agents/ocr-extraction-team/ocr-grammar-fixer.md +36 -0
  159. package/cli-tool/components/agents/ocr-extraction-team/ocr-preprocessing-optimizer.md +37 -0
  160. package/cli-tool/components/agents/ocr-extraction-team/ocr-quality-assurance.md +62 -0
  161. package/cli-tool/components/agents/ocr-extraction-team/text-comparison-validator.md +60 -0
  162. package/cli-tool/components/agents/ocr-extraction-team/visual-analysis-ocr.md +52 -0
  163. package/cli-tool/components/agents/performance-testing/load-testing-specialist.md +37 -0
  164. package/cli-tool/components/agents/performance-testing/performance-engineer.md +33 -0
  165. package/cli-tool/components/agents/performance-testing/react-performance-optimization.md +65 -0
  166. package/cli-tool/components/agents/performance-testing/test-automator.md +33 -0
  167. package/cli-tool/components/agents/performance-testing/web-vitals-optimizer.md +37 -0
  168. package/cli-tool/components/agents/podcast-creator-team/academic-research-synthesizer.md +61 -0
  169. package/cli-tool/components/agents/podcast-creator-team/comprehensive-researcher.md +49 -0
  170. package/cli-tool/components/agents/podcast-creator-team/episode-orchestrator.md +52 -0
  171. package/cli-tool/components/agents/podcast-creator-team/guest-outreach-coordinator.md +37 -0
  172. package/cli-tool/components/agents/podcast-creator-team/market-research-analyst.md +54 -0
  173. package/cli-tool/components/agents/podcast-creator-team/podcast-editor.md +37 -0
  174. package/cli-tool/components/agents/podcast-creator-team/podcast-trend-scout.md +60 -0
  175. package/cli-tool/components/agents/podcast-creator-team/project-supervisor-orchestrator.md +48 -0
  176. package/cli-tool/components/agents/podcast-creator-team/seo-podcast-optimizer.md +58 -0
  177. package/cli-tool/components/agents/podcast-creator-team/social-media-copywriter.md +57 -0
  178. package/cli-tool/components/agents/podcast-creator-team/twitter-ai-influencer-manager.md +62 -0
  179. package/cli-tool/components/agents/programming-languages/c-pro.md +36 -0
  180. package/cli-tool/components/agents/programming-languages/c-sharp-pro.md +40 -0
  181. package/cli-tool/components/agents/programming-languages/cpp-pro.md +39 -0
  182. package/cli-tool/components/agents/programming-languages/golang-pro.md +33 -0
  183. package/cli-tool/components/agents/programming-languages/javascript-pro.md +36 -0
  184. package/cli-tool/components/agents/programming-languages/php-pro.md +44 -0
  185. package/cli-tool/components/agents/programming-languages/python-pro.md +33 -0
  186. package/cli-tool/components/agents/programming-languages/rust-pro.md +36 -0
  187. package/cli-tool/components/agents/programming-languages/shell-scripting-pro.md +38 -0
  188. package/cli-tool/components/agents/programming-languages/sql-pro.md +36 -0
  189. package/cli-tool/components/agents/programming-languages/typescript-pro.md +38 -0
  190. package/cli-tool/components/agents/realtime/supabase-realtime-optimizer.md +193 -0
  191. package/cli-tool/components/agents/security/api-security-audit.md +93 -0
  192. package/cli-tool/components/agents/security/compliance-specialist.md +37 -0
  193. package/cli-tool/components/agents/security/incident-responder.md +75 -0
  194. package/cli-tool/components/agents/security/penetration-tester.md +37 -0
  195. package/cli-tool/components/agents/security/security-auditor.md +33 -0
  196. package/cli-tool/components/agents/web-tools/nextjs-architecture-expert.md +194 -0
  197. package/cli-tool/components/agents/web-tools/react-performance-optimizer.md +425 -0
  198. package/cli-tool/components/agents/web-tools/seo-analyzer.md +37 -0
  199. package/cli-tool/components/agents/web-tools/url-context-validator.md +61 -0
  200. package/cli-tool/components/agents/web-tools/url-link-extractor.md +59 -0
  201. package/cli-tool/components/agents/web-tools/web-accessibility-checker.md +37 -0
  202. package/cli-tool/components/commands/automation/act.md +57 -0
  203. package/cli-tool/components/commands/automation/ci-pipeline.md +378 -0
  204. package/cli-tool/components/commands/automation/husky.md +130 -0
  205. package/cli-tool/components/commands/automation/workflow-orchestrator.md +576 -0
  206. package/cli-tool/components/commands/database/supabase-backup-manager.md +37 -0
  207. package/cli-tool/components/commands/database/supabase-data-explorer.md +37 -0
  208. package/cli-tool/components/commands/database/supabase-migration-assistant.md +37 -0
  209. package/cli-tool/components/commands/database/supabase-performance-optimizer.md +37 -0
  210. package/cli-tool/components/commands/database/supabase-realtime-monitor.md +37 -0
  211. package/cli-tool/components/commands/database/supabase-schema-sync.md +37 -0
  212. package/cli-tool/components/commands/database/supabase-security-audit.md +37 -0
  213. package/cli-tool/components/commands/database/supabase-type-generator.md +37 -0
  214. package/cli-tool/components/commands/deployment/add-changelog.md +92 -0
  215. package/cli-tool/components/commands/deployment/blue-green-deployment.md +824 -0
  216. package/cli-tool/components/commands/deployment/changelog-demo-command.md +43 -0
  217. package/cli-tool/components/commands/deployment/ci-setup.md +323 -0
  218. package/cli-tool/components/commands/deployment/containerize-application.md +93 -0
  219. package/cli-tool/components/commands/deployment/deployment-monitoring.md +1228 -0
  220. package/cli-tool/components/commands/deployment/hotfix-deploy.md +283 -0
  221. package/cli-tool/components/commands/deployment/prepare-release.md +357 -0
  222. package/cli-tool/components/commands/deployment/rollback-deploy.md +145 -0
  223. package/cli-tool/components/commands/deployment/setup-automated-releases.md +143 -0
  224. package/cli-tool/components/commands/deployment/setup-kubernetes-deployment.md +93 -0
  225. package/cli-tool/components/commands/documentation/create-architecture-documentation.md +95 -0
  226. package/cli-tool/components/commands/documentation/create-onboarding-guide.md +93 -0
  227. package/cli-tool/components/commands/documentation/doc-api.md +242 -0
  228. package/cli-tool/components/commands/documentation/docs-maintenance.md +119 -0
  229. package/cli-tool/components/commands/documentation/generate-api-documentation.md +97 -0
  230. package/cli-tool/components/commands/documentation/interactive-documentation.md +133 -0
  231. package/cli-tool/components/commands/documentation/load-llms-txt.md +39 -0
  232. package/cli-tool/components/commands/documentation/migration-guide.md +250 -0
  233. package/cli-tool/components/commands/documentation/troubleshooting-guide.md +370 -0
  234. package/cli-tool/components/commands/documentation/update-docs.md +107 -0
  235. package/cli-tool/components/commands/game-development/game-analytics-integration.md +128 -0
  236. package/cli-tool/components/commands/game-development/game-asset-pipeline.md +108 -0
  237. package/cli-tool/components/commands/game-development/game-performance-profiler.md +78 -0
  238. package/cli-tool/components/commands/game-development/game-testing-framework.md +112 -0
  239. package/cli-tool/components/commands/game-development/unity-project-setup.md +190 -0
  240. package/cli-tool/components/commands/git/feature.md +196 -0
  241. package/cli-tool/components/commands/git/finish.md +528 -0
  242. package/cli-tool/components/commands/git/flow-status.md +438 -0
  243. package/cli-tool/components/commands/git/hotfix.md +456 -0
  244. package/cli-tool/components/commands/git/release.md +381 -0
  245. package/cli-tool/components/commands/git-workflow/branch-cleanup.md +181 -0
  246. package/cli-tool/components/commands/git-workflow/commit.md +167 -0
  247. package/cli-tool/components/commands/git-workflow/create-pr.md +19 -0
  248. package/cli-tool/components/commands/git-workflow/create-pull-request.md +126 -0
  249. package/cli-tool/components/commands/git-workflow/create-worktrees.md +174 -0
  250. package/cli-tool/components/commands/git-workflow/fix-github-issue.md +13 -0
  251. package/cli-tool/components/commands/git-workflow/git-bisect-helper.md +261 -0
  252. package/cli-tool/components/commands/git-workflow/pr-review.md +76 -0
  253. package/cli-tool/components/commands/git-workflow/update-branch-name.md +9 -0
  254. package/cli-tool/components/commands/nextjs-vercel/nextjs-api-tester.md +480 -0
  255. package/cli-tool/components/commands/nextjs-vercel/nextjs-bundle-analyzer.md +406 -0
  256. package/cli-tool/components/commands/nextjs-vercel/nextjs-component-generator.md +489 -0
  257. package/cli-tool/components/commands/nextjs-vercel/nextjs-middleware-creator.md +712 -0
  258. package/cli-tool/components/commands/nextjs-vercel/nextjs-migration-helper.md +778 -0
  259. package/cli-tool/components/commands/nextjs-vercel/nextjs-performance-audit.md +653 -0
  260. package/cli-tool/components/commands/nextjs-vercel/nextjs-scaffold.md +237 -0
  261. package/cli-tool/components/commands/nextjs-vercel/vercel-deploy-optimize.md +341 -0
  262. package/cli-tool/components/commands/nextjs-vercel/vercel-edge-function.md +810 -0
  263. package/cli-tool/components/commands/nextjs-vercel/vercel-env-sync.md +666 -0
  264. package/cli-tool/components/commands/orchestration/archive.md +414 -0
  265. package/cli-tool/components/commands/orchestration/commit.md +305 -0
  266. package/cli-tool/components/commands/orchestration/find.md +272 -0
  267. package/cli-tool/components/commands/orchestration/log.md +355 -0
  268. package/cli-tool/components/commands/orchestration/move.md +220 -0
  269. package/cli-tool/components/commands/orchestration/optimize.md +375 -0
  270. package/cli-tool/components/commands/orchestration/remove.md +301 -0
  271. package/cli-tool/components/commands/orchestration/report.md +292 -0
  272. package/cli-tool/components/commands/orchestration/resume.md +256 -0
  273. package/cli-tool/components/commands/orchestration/start.md +169 -0
  274. package/cli-tool/components/commands/orchestration/status.md +219 -0
  275. package/cli-tool/components/commands/orchestration/sync.md +294 -0
  276. package/cli-tool/components/commands/performance/add-performance-monitoring.md +84 -0
  277. package/cli-tool/components/commands/performance/implement-caching-strategy.md +84 -0
  278. package/cli-tool/components/commands/performance/optimize-api-performance.md +119 -0
  279. package/cli-tool/components/commands/performance/optimize-build.md +139 -0
  280. package/cli-tool/components/commands/performance/optimize-bundle-size.md +84 -0
  281. package/cli-tool/components/commands/performance/optimize-database-performance.md +84 -0
  282. package/cli-tool/components/commands/performance/optimize-memory-usage.md +91 -0
  283. package/cli-tool/components/commands/performance/performance-audit.md +89 -0
  284. package/cli-tool/components/commands/performance/setup-cdn-optimization.md +84 -0
  285. package/cli-tool/components/commands/performance/system-behavior-simulator.md +415 -0
  286. package/cli-tool/components/commands/project-management/add-package.md +90 -0
  287. package/cli-tool/components/commands/project-management/add-to-changelog.md +37 -0
  288. package/cli-tool/components/commands/project-management/create-feature.md +130 -0
  289. package/cli-tool/components/commands/project-management/create-jtbd.md +37 -0
  290. package/cli-tool/components/commands/project-management/create-prd.md +36 -0
  291. package/cli-tool/components/commands/project-management/create-prp.md +37 -0
  292. package/cli-tool/components/commands/project-management/init-project.md +80 -0
  293. package/cli-tool/components/commands/project-management/milestone-tracker.md +44 -0
  294. package/cli-tool/components/commands/project-management/pac-configure.md +32 -0
  295. package/cli-tool/components/commands/project-management/pac-create-epic.md +41 -0
  296. package/cli-tool/components/commands/project-management/pac-create-ticket.md +42 -0
  297. package/cli-tool/components/commands/project-management/pac-update-status.md +39 -0
  298. package/cli-tool/components/commands/project-management/pac-validate.md +35 -0
  299. package/cli-tool/components/commands/project-management/project-health-check.md +58 -0
  300. package/cli-tool/components/commands/project-management/project-timeline-simulator.md +37 -0
  301. package/cli-tool/components/commands/project-management/project-to-linear.md +38 -0
  302. package/cli-tool/components/commands/project-management/release.md +31 -0
  303. package/cli-tool/components/commands/project-management/todo.md +62 -0
  304. package/cli-tool/components/commands/security/add-authentication-system.md +34 -0
  305. package/cli-tool/components/commands/security/dependency-audit.md +32 -0
  306. package/cli-tool/components/commands/security/penetration-test.md +40 -0
  307. package/cli-tool/components/commands/security/secrets-scanner.md +39 -0
  308. package/cli-tool/components/commands/security/security-audit.md +82 -0
  309. package/cli-tool/components/commands/security/security-hardening.md +33 -0
  310. package/cli-tool/components/commands/setup/create-database-migrations.md +35 -0
  311. package/cli-tool/components/commands/setup/design-database-schema.md +37 -0
  312. package/cli-tool/components/commands/setup/design-rest-api.md +37 -0
  313. package/cli-tool/components/commands/setup/implement-graphql-api.md +37 -0
  314. package/cli-tool/components/commands/setup/migrate-to-typescript.md +37 -0
  315. package/cli-tool/components/commands/setup/setup-ci-cd-pipeline.md +37 -0
  316. package/cli-tool/components/commands/setup/setup-development-environment.md +37 -0
  317. package/cli-tool/components/commands/setup/setup-docker-containers.md +37 -0
  318. package/cli-tool/components/commands/setup/setup-formatting.md +37 -0
  319. package/cli-tool/components/commands/setup/setup-linting.md +37 -0
  320. package/cli-tool/components/commands/setup/setup-monitoring-observability.md +37 -0
  321. package/cli-tool/components/commands/setup/setup-monorepo.md +37 -0
  322. package/cli-tool/components/commands/setup/setup-rate-limiting.md +37 -0
  323. package/cli-tool/components/commands/setup/update-dependencies.md +35 -0
  324. package/cli-tool/components/commands/simulation/business-scenario-explorer.md +37 -0
  325. package/cli-tool/components/commands/simulation/constraint-modeler.md +37 -0
  326. package/cli-tool/components/commands/simulation/decision-tree-explorer.md +37 -0
  327. package/cli-tool/components/commands/simulation/digital-twin-creator.md +37 -0
  328. package/cli-tool/components/commands/simulation/future-scenario-generator.md +37 -0
  329. package/cli-tool/components/commands/simulation/market-response-modeler.md +37 -0
  330. package/cli-tool/components/commands/simulation/monte-carlo-simulator.md +37 -0
  331. package/cli-tool/components/commands/simulation/simulation-calibrator.md +37 -0
  332. package/cli-tool/components/commands/simulation/system-dynamics-modeler.md +37 -0
  333. package/cli-tool/components/commands/simulation/timeline-compressor.md +37 -0
  334. package/cli-tool/components/commands/svelte/svelte:a11y.md +105 -0
  335. package/cli-tool/components/commands/svelte/svelte:component.md +81 -0
  336. package/cli-tool/components/commands/svelte/svelte:debug.md +48 -0
  337. package/cli-tool/components/commands/svelte/svelte:migrate.md +79 -0
  338. package/cli-tool/components/commands/svelte/svelte:optimize.md +99 -0
  339. package/cli-tool/components/commands/svelte/svelte:scaffold.md +89 -0
  340. package/cli-tool/components/commands/svelte/svelte:storybook-migrate.md +204 -0
  341. package/cli-tool/components/commands/svelte/svelte:storybook-mock.md +213 -0
  342. package/cli-tool/components/commands/svelte/svelte:storybook-setup.md +113 -0
  343. package/cli-tool/components/commands/svelte/svelte:storybook-story.md +145 -0
  344. package/cli-tool/components/commands/svelte/svelte:storybook-troubleshoot.md +191 -0
  345. package/cli-tool/components/commands/svelte/svelte:storybook.md +48 -0
  346. package/cli-tool/components/commands/svelte/svelte:test-coverage.md +77 -0
  347. package/cli-tool/components/commands/svelte/svelte:test-fix.md +74 -0
  348. package/cli-tool/components/commands/svelte/svelte:test-setup.md +85 -0
  349. package/cli-tool/components/commands/svelte/svelte:test.md +60 -0
  350. package/cli-tool/components/commands/sync/bidirectional-sync.md +37 -0
  351. package/cli-tool/components/commands/sync/bulk-import-issues.md +37 -0
  352. package/cli-tool/components/commands/sync/cross-reference-manager.md +37 -0
  353. package/cli-tool/components/commands/sync/issue-to-linear-task.md +37 -0
  354. package/cli-tool/components/commands/sync/linear-task-to-issue.md +37 -0
  355. package/cli-tool/components/commands/sync/sync-automation-setup.md +37 -0
  356. package/cli-tool/components/commands/sync/sync-conflict-resolver.md +37 -0
  357. package/cli-tool/components/commands/sync/sync-health-monitor.md +37 -0
  358. package/cli-tool/components/commands/sync/sync-issues-to-linear.md +37 -0
  359. package/cli-tool/components/commands/sync/sync-linear-to-issues.md +37 -0
  360. package/cli-tool/components/commands/sync/sync-migration-assistant.md +37 -0
  361. package/cli-tool/components/commands/sync/sync-pr-to-task.md +37 -0
  362. package/cli-tool/components/commands/sync/sync-status.md +391 -0
  363. package/cli-tool/components/commands/sync/task-from-pr.md +37 -0
  364. package/cli-tool/components/commands/team/architecture-review.md +37 -0
  365. package/cli-tool/components/commands/team/decision-quality-analyzer.md +37 -0
  366. package/cli-tool/components/commands/team/dependency-mapper.md +37 -0
  367. package/cli-tool/components/commands/team/estimate-assistant.md +37 -0
  368. package/cli-tool/components/commands/team/issue-triage.md +37 -0
  369. package/cli-tool/components/commands/team/memory-spring-cleaning.md +37 -0
  370. package/cli-tool/components/commands/team/migration-assistant.md +37 -0
  371. package/cli-tool/components/commands/team/retrospective-analyzer.md +37 -0
  372. package/cli-tool/components/commands/team/session-learning-capture.md +37 -0
  373. package/cli-tool/components/commands/team/sprint-planning.md +189 -0
  374. package/cli-tool/components/commands/team/standup-report.md +37 -0
  375. package/cli-tool/components/commands/team/team-knowledge-mapper.md +37 -0
  376. package/cli-tool/components/commands/team/team-velocity-tracker.md +37 -0
  377. package/cli-tool/components/commands/team/team-workload-balancer.md +37 -0
  378. package/cli-tool/components/commands/testing/add-mutation-testing.md +37 -0
  379. package/cli-tool/components/commands/testing/add-property-based-testing.md +37 -0
  380. package/cli-tool/components/commands/testing/e2e-setup.md +37 -0
  381. package/cli-tool/components/commands/testing/generate-test-cases.md +37 -0
  382. package/cli-tool/components/commands/testing/generate-tests.md +82 -0
  383. package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +37 -0
  384. package/cli-tool/components/commands/testing/setup-load-testing.md +37 -0
  385. package/cli-tool/components/commands/testing/setup-visual-testing.md +37 -0
  386. package/cli-tool/components/commands/testing/test-automation-orchestrator.md +37 -0
  387. package/cli-tool/components/commands/testing/test-changelog-automation.md +37 -0
  388. package/cli-tool/components/commands/testing/test-coverage.md +37 -0
  389. package/cli-tool/components/commands/testing/test-quality-analyzer.md +37 -0
  390. package/cli-tool/components/commands/testing/testing_plan_integration.md +37 -0
  391. package/cli-tool/components/commands/testing/write-tests.md +37 -0
  392. package/cli-tool/components/commands/utilities/all-tools.md +31 -0
  393. package/cli-tool/components/commands/utilities/architecture-scenario-explorer.md +375 -0
  394. package/cli-tool/components/commands/utilities/check-file.md +53 -0
  395. package/cli-tool/components/commands/utilities/clean-branches.md +243 -0
  396. package/cli-tool/components/commands/utilities/clean.md +1 -0
  397. package/cli-tool/components/commands/utilities/code-permutation-tester.md +341 -0
  398. package/cli-tool/components/commands/utilities/code-review.md +70 -0
  399. package/cli-tool/components/commands/utilities/code-to-task.md +583 -0
  400. package/cli-tool/components/commands/utilities/context-prime.md +1 -0
  401. package/cli-tool/components/commands/utilities/debug-error.md +121 -0
  402. package/cli-tool/components/commands/utilities/directory-deep-dive.md +34 -0
  403. package/cli-tool/components/commands/utilities/explain-code.md +194 -0
  404. package/cli-tool/components/commands/utilities/fix-issue.md +85 -0
  405. package/cli-tool/components/commands/utilities/generate-linear-worklog.md +113 -0
  406. package/cli-tool/components/commands/utilities/git-status.md +39 -0
  407. package/cli-tool/components/commands/utilities/initref.md +3 -0
  408. package/cli-tool/components/commands/utilities/prime.md +41 -0
  409. package/cli-tool/components/commands/utilities/refactor-code.md +116 -0
  410. package/cli-tool/components/commands/utilities/ultra-think.md +153 -0
  411. package/cli-tool/components/hooks/HOOK_PATTERNS_COMPRESSED.json +1 -0
  412. package/cli-tool/components/hooks/automation/agents-md-loader.json +17 -0
  413. package/cli-tool/components/hooks/automation/build-on-change.json +16 -0
  414. package/cli-tool/components/hooks/automation/dependency-checker.json +16 -0
  415. package/cli-tool/components/hooks/automation/deployment-health-monitor.json +29 -0
  416. package/cli-tool/components/hooks/automation/discord-detailed-notifications.json +26 -0
  417. package/cli-tool/components/hooks/automation/discord-error-notifications.json +37 -0
  418. package/cli-tool/components/hooks/automation/discord-notifications.json +25 -0
  419. package/cli-tool/components/hooks/automation/simple-notifications.json +16 -0
  420. package/cli-tool/components/hooks/automation/slack-detailed-notifications.json +26 -0
  421. package/cli-tool/components/hooks/automation/slack-error-notifications.json +37 -0
  422. package/cli-tool/components/hooks/automation/slack-notifications.json +25 -0
  423. package/cli-tool/components/hooks/automation/telegram-detailed-notifications.json +26 -0
  424. package/cli-tool/components/hooks/automation/telegram-error-notifications.json +37 -0
  425. package/cli-tool/components/hooks/automation/telegram-notifications.json +25 -0
  426. package/cli-tool/components/hooks/automation/vercel-auto-deploy.json +17 -0
  427. package/cli-tool/components/hooks/automation/vercel-environment-sync.json +29 -0
  428. package/cli-tool/components/hooks/development-tools/change-tracker.json +25 -0
  429. package/cli-tool/components/hooks/development-tools/command-logger.json +16 -0
  430. package/cli-tool/components/hooks/development-tools/file-backup.json +16 -0
  431. package/cli-tool/components/hooks/development-tools/lint-on-save.json +16 -0
  432. package/cli-tool/components/hooks/development-tools/nextjs-code-quality-enforcer.json +17 -0
  433. package/cli-tool/components/hooks/development-tools/smart-formatting.json +16 -0
  434. package/cli-tool/components/hooks/git/conventional-commits.json +16 -0
  435. package/cli-tool/components/hooks/git/conventional-commits.py +84 -0
  436. package/cli-tool/components/hooks/git/prevent-direct-push.json +16 -0
  437. package/cli-tool/components/hooks/git/prevent-direct-push.py +86 -0
  438. package/cli-tool/components/hooks/git/validate-branch-name.json +16 -0
  439. package/cli-tool/components/hooks/git/validate-branch-name.py +96 -0
  440. package/cli-tool/components/hooks/git-workflow/auto-git-add.json +16 -0
  441. package/cli-tool/components/hooks/git-workflow/smart-commit.json +25 -0
  442. package/cli-tool/components/hooks/performance/performance-budget-guard.json +27 -0
  443. package/cli-tool/components/hooks/performance/performance-monitor.json +27 -0
  444. package/cli-tool/components/hooks/post-tool/format-javascript-files.json +16 -0
  445. package/cli-tool/components/hooks/post-tool/format-python-files.json +16 -0
  446. package/cli-tool/components/hooks/post-tool/git-add-changes.json +25 -0
  447. package/cli-tool/components/hooks/post-tool/run-tests-after-changes.json +16 -0
  448. package/cli-tool/components/hooks/pre-tool/backup-before-edit.json +16 -0
  449. package/cli-tool/components/hooks/pre-tool/notify-before-bash.json +16 -0
  450. package/cli-tool/components/hooks/pre-tool/update-search-year.json +17 -0
  451. package/cli-tool/components/hooks/security/file-protection.json +16 -0
  452. package/cli-tool/components/hooks/security/security-scanner.json +16 -0
  453. package/cli-tool/components/hooks/testing/test-runner.json +16 -0
  454. package/cli-tool/components/mcps/browser_automation/browser-use-mcp-server.json +20 -0
  455. package/cli-tool/components/mcps/browser_automation/browsermcp.json +9 -0
  456. package/cli-tool/components/mcps/browser_automation/mcp-server-browserbase.json +14 -0
  457. package/cli-tool/components/mcps/browser_automation/mcp-server-playwright.json +9 -0
  458. package/cli-tool/components/mcps/browser_automation/playwright-mcp-server.json +9 -0
  459. package/cli-tool/components/mcps/browser_automation/playwright-mcp.json +11 -0
  460. package/cli-tool/components/mcps/database/mysql-integration.json +12 -0
  461. package/cli-tool/components/mcps/database/neon.json +9 -0
  462. package/cli-tool/components/mcps/database/postgresql-integration.json +12 -0
  463. package/cli-tool/components/mcps/database/supabase.json +17 -0
  464. package/cli-tool/components/mcps/deepgraph/deepgraph-nextjs.json +13 -0
  465. package/cli-tool/components/mcps/deepgraph/deepgraph-react.json +13 -0
  466. package/cli-tool/components/mcps/deepgraph/deepgraph-typescript.json +13 -0
  467. package/cli-tool/components/mcps/deepgraph/deepgraph-vue.json +13 -0
  468. package/cli-tool/components/mcps/devtools/azure-kubernetes-service.json +11 -0
  469. package/cli-tool/components/mcps/devtools/box.json +14 -0
  470. package/cli-tool/components/mcps/devtools/circleci.json +13 -0
  471. package/cli-tool/components/mcps/devtools/codacy.json +12 -0
  472. package/cli-tool/components/mcps/devtools/context7.json +9 -0
  473. package/cli-tool/components/mcps/devtools/dynatrace.json +13 -0
  474. package/cli-tool/components/mcps/devtools/elasticsearch.json +18 -0
  475. package/cli-tool/components/mcps/devtools/figma-dev-mode.json +8 -0
  476. package/cli-tool/components/mcps/devtools/firecrawl.json +12 -0
  477. package/cli-tool/components/mcps/devtools/firefly-mcp.json +13 -0
  478. package/cli-tool/components/mcps/devtools/huggingface.json +11 -0
  479. package/cli-tool/components/mcps/devtools/imagesorcery.json +11 -0
  480. package/cli-tool/components/mcps/devtools/ios-simulator-mcp.json +9 -0
  481. package/cli-tool/components/mcps/devtools/jfrog.json +8 -0
  482. package/cli-tool/components/mcps/devtools/just-mcp.json +9 -0
  483. package/cli-tool/components/mcps/devtools/launchdarkly.json +12 -0
  484. package/cli-tool/components/mcps/devtools/leetcode.json +8 -0
  485. package/cli-tool/components/mcps/devtools/logfire.json +9 -0
  486. package/cli-tool/components/mcps/devtools/markitdown.json +14 -0
  487. package/cli-tool/components/mcps/devtools/mcp-server-atlassian-bitbucket.json +9 -0
  488. package/cli-tool/components/mcps/devtools/mcp-server-trello.json +12 -0
  489. package/cli-tool/components/mcps/devtools/microsoft-clarity.json +11 -0
  490. package/cli-tool/components/mcps/devtools/microsoft-dev-box.json +9 -0
  491. package/cli-tool/components/mcps/devtools/mongodb.json +12 -0
  492. package/cli-tool/components/mcps/devtools/postman.json +12 -0
  493. package/cli-tool/components/mcps/devtools/sentry.json +8 -0
  494. package/cli-tool/components/mcps/devtools/serena.json +9 -0
  495. package/cli-tool/components/mcps/devtools/stripe.json +12 -0
  496. package/cli-tool/components/mcps/devtools/terraform.json +14 -0
  497. package/cli-tool/components/mcps/devtools/webflow.json +8 -0
  498. package/cli-tool/components/mcps/filesystem/filesystem-access.json +13 -0
  499. package/cli-tool/components/mcps/integration/github-integration.json +12 -0
  500. package/cli-tool/components/mcps/integration/memory-integration.json +9 -0
  501. package/cli-tool/components/mcps/marketing/facebook-ads-mcp-server.json +13 -0
  502. package/cli-tool/components/mcps/marketing/google-ads-mcp-server.json +11 -0
  503. package/cli-tool/components/mcps/productivity/monday.json +14 -0
  504. package/cli-tool/components/mcps/productivity/notion.json +12 -0
  505. package/cli-tool/components/mcps/web/web-fetch.json +9 -0
  506. package/cli-tool/components/settings/api/bedrock-configuration.json +7 -0
  507. package/cli-tool/components/settings/api/corporate-proxy.json +7 -0
  508. package/cli-tool/components/settings/api/custom-headers.json +6 -0
  509. package/cli-tool/components/settings/api/vertex-configuration.json +17 -0
  510. package/cli-tool/components/settings/authentication/api-key-helper.json +7 -0
  511. package/cli-tool/components/settings/authentication/force-claudeai-login.json +4 -0
  512. package/cli-tool/components/settings/authentication/force-console-login.json +4 -0
  513. package/cli-tool/components/settings/cleanup/retention-7-days.json +4 -0
  514. package/cli-tool/components/settings/cleanup/retention-90-days.json +4 -0
  515. package/cli-tool/components/settings/environment/bash-timeouts.json +8 -0
  516. package/cli-tool/components/settings/environment/development-utils.json +8 -0
  517. package/cli-tool/components/settings/environment/performance-optimization.json +8 -0
  518. package/cli-tool/components/settings/environment/privacy-focused.json +10 -0
  519. package/cli-tool/components/settings/git/git-flow-settings.json +79 -0
  520. package/cli-tool/components/settings/global/aws-credentials.json +5 -0
  521. package/cli-tool/components/settings/global/custom-model.json +7 -0
  522. package/cli-tool/components/settings/global/git-commit-settings.json +4 -0
  523. package/cli-tool/components/settings/mcp/disable-risky-servers.json +8 -0
  524. package/cli-tool/components/settings/mcp/enable-all-project-servers.json +4 -0
  525. package/cli-tool/components/settings/mcp/enable-specific-servers.json +8 -0
  526. package/cli-tool/components/settings/mcp/mcp-timeouts.json +8 -0
  527. package/cli-tool/components/settings/model/use-haiku.json +4 -0
  528. package/cli-tool/components/settings/model/use-sonnet.json +4 -0
  529. package/cli-tool/components/settings/permissions/additional-directories.json +11 -0
  530. package/cli-tool/components/settings/permissions/allow-git-operations.json +14 -0
  531. package/cli-tool/components/settings/permissions/allow-npm-commands.json +11 -0
  532. package/cli-tool/components/settings/permissions/deny-sensitive-files.json +11 -0
  533. package/cli-tool/components/settings/permissions/development-mode.json +31 -0
  534. package/cli-tool/components/settings/permissions/read-only-mode.json +18 -0
  535. package/cli-tool/components/settings/statusline/asset-pipeline-controller-statusline.json +7 -0
  536. package/cli-tool/components/settings/statusline/bug-circus-statusline.json +7 -0
  537. package/cli-tool/components/settings/statusline/code-casino-statusline.json +7 -0
  538. package/cli-tool/components/settings/statusline/code-spaceship-statusline.json +7 -0
  539. package/cli-tool/components/settings/statusline/colorful-statusline.json +7 -0
  540. package/cli-tool/components/settings/statusline/command-statusline.json +8 -0
  541. package/cli-tool/components/settings/statusline/context-monitor.json +7 -0
  542. package/cli-tool/components/settings/statusline/context-monitor.py +236 -0
  543. package/cli-tool/components/settings/statusline/data-ocean-statusline.json +7 -0
  544. package/cli-tool/components/settings/statusline/emotion-theater-statusline.json +7 -0
  545. package/cli-tool/components/settings/statusline/game-performance-monitor-statusline.json +7 -0
  546. package/cli-tool/components/settings/statusline/git-branch-statusline.json +7 -0
  547. package/cli-tool/components/settings/statusline/git-flow-status.json +7 -0
  548. package/cli-tool/components/settings/statusline/minimal-statusline.json +7 -0
  549. package/cli-tool/components/settings/statusline/multiplatform-build-status-statusline.json +7 -0
  550. package/cli-tool/components/settings/statusline/neon-database-dev.json +7 -0
  551. package/cli-tool/components/settings/statusline/neon-database-resources.json +7 -0
  552. package/cli-tool/components/settings/statusline/productivity-rainbow-statusline.json +7 -0
  553. package/cli-tool/components/settings/statusline/programmer-tamagotchi-statusline.json +7 -0
  554. package/cli-tool/components/settings/statusline/programming-fitness-tracker-statusline.json +7 -0
  555. package/cli-tool/components/settings/statusline/project-info-statusline.json +7 -0
  556. package/cli-tool/components/settings/statusline/rpg-status-bar-statusline.json +7 -0
  557. package/cli-tool/components/settings/statusline/time-statusline.json +7 -0
  558. package/cli-tool/components/settings/statusline/unity-project-dashboard-statusline.json +7 -0
  559. package/cli-tool/components/settings/statusline/vercel-deployment-monitor.json +7 -0
  560. package/cli-tool/components/settings/statusline/vercel-error-alert-system.json +7 -0
  561. package/cli-tool/components/settings/statusline/vercel-multi-env-status.json +7 -0
  562. package/cli-tool/components/settings/statusline/virtual-code-garden-statusline.json +7 -0
  563. package/cli-tool/components/settings/statusline/zero-config-deployment-monitor.json +7 -0
  564. package/cli-tool/components/settings/telemetry/custom-telemetry.json +7 -0
  565. package/cli-tool/components/settings/telemetry/disable-telemetry.json +6 -0
  566. package/cli-tool/components/settings/telemetry/enable-telemetry.json +6 -0
  567. package/cli-tool/docs_to_claude/ANALYTICS_STATE_DETECTION.md +183 -0
  568. package/cli-tool/docs_to_claude/ARCHITECTURE.md +472 -0
  569. package/cli-tool/docs_to_claude/BLOG_WRITING_GUIDE.md +438 -0
  570. package/cli-tool/docs_to_claude/CLAUDE_DATA_STRUCTURE.md +400 -0
  571. package/cli-tool/docs_to_claude/COMMANDS_GUIDE.md +1035 -0
  572. package/cli-tool/docs_to_claude/CONVERSATION_STATE_IMPROVEMENTS.md +154 -0
  573. package/cli-tool/docs_to_claude/DEBUG_TYPING_DETECTION.md +95 -0
  574. package/cli-tool/docs_to_claude/DOWNLOAD_TRACKING.md +291 -0
  575. package/cli-tool/docs_to_claude/ENHANCED_STATE_DETECTION.md +122 -0
  576. package/cli-tool/docs_to_claude/HEALTH_CHECK_IMPLEMENTATION.md +135 -0
  577. package/cli-tool/docs_to_claude/HOOKS_GUIDE.md +1249 -0
  578. package/cli-tool/docs_to_claude/STATUSLINE_GUIDE.md +1123 -0
  579. package/cli-tool/docs_to_claude/SUBAGENTS_GUIDE.md +566 -0
  580. package/cli-tool/docs_to_claude/SUB_AGENTS.md +329 -0
  581. package/cli-tool/jest.config.js +84 -0
  582. package/cli-tool/package-lock.json +5471 -0
  583. package/cli-tool/package.json +96 -0
  584. package/cli-tool/templates/common/.claude/commands/git-workflow.md +239 -0
  585. package/cli-tool/templates/common/.claude/commands/project-setup.md +316 -0
  586. package/cli-tool/templates/common/.mcp.json +41 -0
  587. package/cli-tool/templates/common/CLAUDE.md +109 -0
  588. package/cli-tool/templates/common/README.md +96 -0
  589. package/cli-tool/templates/go/.mcp.json +78 -0
  590. package/cli-tool/templates/go/README.md +25 -0
  591. package/cli-tool/templates/javascript-typescript/.claude/commands/api-endpoint.md +51 -0
  592. package/cli-tool/templates/javascript-typescript/.claude/commands/debug.md +52 -0
  593. package/cli-tool/templates/javascript-typescript/.claude/commands/lint.md +48 -0
  594. package/cli-tool/templates/javascript-typescript/.claude/commands/npm-scripts.md +48 -0
  595. package/cli-tool/templates/javascript-typescript/.claude/commands/refactor.md +55 -0
  596. package/cli-tool/templates/javascript-typescript/.claude/commands/test.md +61 -0
  597. package/cli-tool/templates/javascript-typescript/.claude/commands/typescript-migrate.md +51 -0
  598. package/cli-tool/templates/javascript-typescript/.claude/settings.json +142 -0
  599. package/cli-tool/templates/javascript-typescript/.mcp.json +80 -0
  600. package/cli-tool/templates/javascript-typescript/CLAUDE.md +185 -0
  601. package/cli-tool/templates/javascript-typescript/README.md +259 -0
  602. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/components.md +63 -0
  603. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/services.md +62 -0
  604. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/api-endpoint.md +46 -0
  605. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/database.md +56 -0
  606. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/middleware.md +61 -0
  607. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/route.md +57 -0
  608. package/cli-tool/templates/javascript-typescript/examples/node-api/CLAUDE.md +102 -0
  609. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/component.md +29 -0
  610. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/hooks.md +44 -0
  611. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/state-management.md +45 -0
  612. package/cli-tool/templates/javascript-typescript/examples/react-app/CLAUDE.md +81 -0
  613. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-performance-optimization.md +530 -0
  614. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-state-management.md +295 -0
  615. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/components.md +46 -0
  616. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/composables.md +51 -0
  617. package/cli-tool/templates/python/.claude/commands/lint.md +111 -0
  618. package/cli-tool/templates/python/.claude/commands/test.md +73 -0
  619. package/cli-tool/templates/python/.claude/settings.json +153 -0
  620. package/cli-tool/templates/python/.mcp.json +78 -0
  621. package/cli-tool/templates/python/CLAUDE.md +276 -0
  622. package/cli-tool/templates/python/examples/django-app/.claude/commands/admin.md +264 -0
  623. package/cli-tool/templates/python/examples/django-app/.claude/commands/django-model.md +124 -0
  624. package/cli-tool/templates/python/examples/django-app/.claude/commands/views.md +222 -0
  625. package/cli-tool/templates/python/examples/django-app/CLAUDE.md +313 -0
  626. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/api-endpoints.md +513 -0
  627. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/auth.md +775 -0
  628. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/database.md +657 -0
  629. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/deployment.md +160 -0
  630. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/testing.md +927 -0
  631. package/cli-tool/templates/python/examples/fastapi-app/CLAUDE.md +229 -0
  632. package/cli-tool/templates/python/examples/flask-app/.claude/commands/app-factory.md +384 -0
  633. package/cli-tool/templates/python/examples/flask-app/.claude/commands/blueprint.md +243 -0
  634. package/cli-tool/templates/python/examples/flask-app/.claude/commands/database.md +410 -0
  635. package/cli-tool/templates/python/examples/flask-app/.claude/commands/deployment.md +620 -0
  636. package/cli-tool/templates/python/examples/flask-app/.claude/commands/flask-route.md +217 -0
  637. package/cli-tool/templates/python/examples/flask-app/.claude/commands/testing.md +559 -0
  638. package/cli-tool/templates/python/examples/flask-app/CLAUDE.md +391 -0
  639. package/cli-tool/templates/ruby/.claude/commands/model.md +360 -0
  640. package/cli-tool/templates/ruby/.claude/commands/test.md +480 -0
  641. package/cli-tool/templates/ruby/.claude/settings.json +146 -0
  642. package/cli-tool/templates/ruby/.mcp.json +83 -0
  643. package/cli-tool/templates/ruby/CLAUDE.md +284 -0
  644. package/cli-tool/templates/ruby/examples/rails-app/.claude/commands/authentication.md +490 -0
  645. package/cli-tool/templates/ruby/examples/rails-app/CLAUDE.md +376 -0
  646. package/cli-tool/templates/rust/.mcp.json +78 -0
  647. package/cli-tool/templates/rust/README.md +26 -0
  648. package/cli-tool/test-commands.sh +85 -0
  649. package/cli-tool/test-detailed.sh +267 -0
  650. package/dev-server.js +46 -0
  651. package/docs/CNAME +1 -0
  652. package/docs/README.md +49 -0
  653. package/docs/_config.yml +43 -0
  654. package/docs/api/agents.json +942 -0
  655. package/docs/blog/assets/aitmpl-nextjs-search.png +0 -0
  656. package/docs/blog/assets/aitmpl-supabase-search.png +0 -0
  657. package/docs/blog/assets/e2b-claude-code-sandbox-cover.png +0 -0
  658. package/docs/blog/assets/nextjs-vercel-claude-code-templates-cover.png +0 -0
  659. package/docs/blog/assets/supabase-claude-code-templates-cover.png +0 -0
  660. package/docs/blog/e2b-claude-code-sandbox/index.html +908 -0
  661. package/docs/blog/index.html +274 -0
  662. package/docs/blog/nextjs-vercel-claude-code-integration/index.html +1032 -0
  663. package/docs/blog/supabase-claude-code-integration/index.html +848 -0
  664. package/docs/claude-jobs.json +163 -0
  665. package/docs/component.html +506 -0
  666. package/docs/components-metadata.json +303 -0
  667. package/docs/components.json +4952 -0
  668. package/docs/css/blog.css +821 -0
  669. package/docs/css/component-page.css +1063 -0
  670. package/docs/css/stack-page.css +776 -0
  671. package/docs/css/styles.css +4540 -0
  672. package/docs/css/trending.css +1441 -0
  673. package/docs/css/workflows-modal.css +739 -0
  674. package/docs/css/workflows.css +1234 -0
  675. package/docs/download-stats.html +527 -0
  676. package/docs/index.html +627 -0
  677. package/docs/jobs.html +1059 -0
  678. package/docs/js/carousel.js +177 -0
  679. package/docs/js/cart-manager.js +658 -0
  680. package/docs/js/component-page.js +808 -0
  681. package/docs/js/data-loader.js +633 -0
  682. package/docs/js/generate-search-data.js +82 -0
  683. package/docs/js/index-events.js +1812 -0
  684. package/docs/js/modal-helpers.js +345 -0
  685. package/docs/js/script.js +2167 -0
  686. package/docs/js/search-functionality.js +1165 -0
  687. package/docs/js/stack-router.js +561 -0
  688. package/docs/js/trending.js +752 -0
  689. package/docs/js/utils.js +43 -0
  690. package/docs/js/workflows-events.js +1146 -0
  691. package/docs/js/workflows.js +627 -0
  692. package/docs/robots.txt +28 -0
  693. package/docs/sandbox-interface.html +1418 -0
  694. package/docs/sitemap.xml +193 -0
  695. package/docs/static/img/logo.png +0 -0
  696. package/docs/static/img/logo.svg +23 -0
  697. package/docs/trending-data.json +885 -0
  698. package/docs/trending.html +238 -0
  699. package/docs/vercel.json +36 -0
  700. package/docs/workflows.html +391 -0
  701. package/docu/README.md +41 -0
  702. package/docu/docs/cli-options.md +90 -0
  703. package/docu/docs/components/agents.md +113 -0
  704. package/docu/docs/components/commands.md +90 -0
  705. package/docu/docs/components/hooks.md +114 -0
  706. package/docu/docs/components/mcps.md +109 -0
  707. package/docu/docs/components/overview.md +73 -0
  708. package/docu/docs/components/settings.md +105 -0
  709. package/docu/docs/components/templates.md +119 -0
  710. package/docu/docs/intro.md +40 -0
  711. package/docu/docs/safety-features.md +13 -0
  712. package/docu/docs/support.md +13 -0
  713. package/docu/docs/tools/analytics.md +23 -0
  714. package/docu/docs/tools/chats.md +33 -0
  715. package/docu/docs/tools/health-check.md +60 -0
  716. package/docu/docs/tools/overview.md +39 -0
  717. package/docu/docs/tools/sandbox.md +61 -0
  718. package/docu/docs/tools/tunnel.md +38 -0
  719. package/docu/docusaurus.config.ts +169 -0
  720. package/docu/package-lock.json +16185 -0
  721. package/docu/package.json +47 -0
  722. package/docu/sidebars.ts +49 -0
  723. package/docu/src/components/HomepageFeatures/index.tsx +82 -0
  724. package/docu/src/components/HomepageFeatures/styles.module.css +131 -0
  725. package/docu/src/css/custom.css +849 -0
  726. package/docu/src/pages/index.module.css +111 -0
  727. package/docu/src/pages/index.tsx +65 -0
  728. package/docu/src/pages/markdown-page.md +7 -0
  729. package/docu/static/img/favicon.ico +0 -0
  730. package/docu/static/img/logo.svg +23 -0
  731. package/docu/tsconfig.json +8 -0
  732. package/docu/vercel.json +11 -0
  733. package/generate_agents_api.py +65 -0
  734. package/generate_claude_jobs.py +985 -0
  735. package/generate_components_json.py +391 -0
  736. package/package.json +21 -74
  737. package/social-preview.png +0 -0
  738. package/test_serpapi.py +36 -0
  739. package/vercel.json +111 -0
  740. /package/{bin → cli-tool/bin}/create-claude-config.js +0 -0
  741. /package/{components → cli-tool/components}/sandbox/README.md +0 -0
  742. /package/{components → cli-tool/components}/sandbox/e2b/.env.example +0 -0
  743. /package/{components → cli-tool/components}/sandbox/e2b/SANDBOX_DEBUGGING.md +0 -0
  744. /package/{components → cli-tool/components}/sandbox/e2b/claude-code-sandbox.md +0 -0
  745. /package/{components → cli-tool/components}/sandbox/e2b/e2b-launcher.py +0 -0
  746. /package/{components → cli-tool/components}/sandbox/e2b/e2b-monitor.py +0 -0
  747. /package/{components → cli-tool/components}/sandbox/e2b/requirements.txt +0 -0
  748. /package/{src → cli-tool/src}/agents.js +0 -0
  749. /package/{src → cli-tool/src}/analytics/core/AgentAnalyzer.js +0 -0
  750. /package/{src → cli-tool/src}/analytics/core/ConversationAnalyzer.js +0 -0
  751. /package/{src → cli-tool/src}/analytics/core/FileWatcher.js +0 -0
  752. /package/{src → cli-tool/src}/analytics/core/ProcessDetector.js +0 -0
  753. /package/{src → cli-tool/src}/analytics/core/SessionAnalyzer.js +0 -0
  754. /package/{src → cli-tool/src}/analytics/core/StateCalculator.js +0 -0
  755. /package/{src → cli-tool/src}/analytics/data/DataCache.js +0 -0
  756. /package/{src → cli-tool/src}/analytics/notifications/NotificationManager.js +0 -0
  757. /package/{src → cli-tool/src}/analytics/notifications/WebSocketServer.js +0 -0
  758. /package/{src → cli-tool/src}/analytics/utils/PerformanceMonitor.js +0 -0
  759. /package/{src → cli-tool/src}/analytics-web/FRONT_ARCHITECTURE.md +0 -0
  760. /package/{src → cli-tool/src}/analytics-web/assets/js/main.js.deprecated +0 -0
  761. /package/{src → cli-tool/src}/analytics-web/chats_mobile.html +0 -0
  762. /package/{src → cli-tool/src}/analytics-web/components/ActivityHeatmap.js +0 -0
  763. /package/{src → cli-tool/src}/analytics-web/components/AgentAnalytics.js +0 -0
  764. /package/{src → cli-tool/src}/analytics-web/components/App.js +0 -0
  765. /package/{src → cli-tool/src}/analytics-web/components/Charts.js +0 -0
  766. /package/{src → cli-tool/src}/analytics-web/components/ConversationTable.js +0 -0
  767. /package/{src → cli-tool/src}/analytics-web/components/DashboardPage.js +0 -0
  768. /package/{src → cli-tool/src}/analytics-web/components/HeaderComponent.js +0 -0
  769. /package/{src → cli-tool/src}/analytics-web/components/SessionTimer.js +0 -0
  770. /package/{src → cli-tool/src}/analytics-web/components/Sidebar.js +0 -0
  771. /package/{src → cli-tool/src}/analytics-web/components/ToolDisplay.js +0 -0
  772. /package/{src → cli-tool/src}/analytics-web/index.html +0 -0
  773. /package/{src → cli-tool/src}/analytics-web/index.html.original +0 -0
  774. /package/{src → cli-tool/src}/analytics-web/services/DataService.js +0 -0
  775. /package/{src → cli-tool/src}/analytics-web/services/StateService.js +0 -0
  776. /package/{src → cli-tool/src}/analytics-web/services/WebSocketService.js +0 -0
  777. /package/{src → cli-tool/src}/analytics.js +0 -0
  778. /package/{src → cli-tool/src}/chats-mobile.js +0 -0
  779. /package/{src → cli-tool/src}/claude-api-proxy.js +0 -0
  780. /package/{src → cli-tool/src}/command-scanner.js +0 -0
  781. /package/{src → cli-tool/src}/command-stats.js +0 -0
  782. /package/{src → cli-tool/src}/console-bridge.js +0 -0
  783. /package/{src → cli-tool/src}/file-operations.js +0 -0
  784. /package/{src → cli-tool/src}/health-check.js +0 -0
  785. /package/{src → cli-tool/src}/hook-scanner.js +0 -0
  786. /package/{src → cli-tool/src}/hook-stats.js +0 -0
  787. /package/{src → cli-tool/src}/index.js +0 -0
  788. /package/{src → cli-tool/src}/mcp-stats.js +0 -0
  789. /package/{src → cli-tool/src}/prompts.js +0 -0
  790. /package/{src → cli-tool/src}/sandbox-interface.html +0 -0
  791. /package/{src → cli-tool/src}/sandbox-server.js +0 -0
  792. /package/{src → cli-tool/src}/sdk/global-agent-manager.js +0 -0
  793. /package/{src → cli-tool/src}/templates.js +0 -0
  794. /package/{src → cli-tool/src}/test-console-bridge.js +0 -0
  795. /package/{src → cli-tool/src}/tracking-service.js +0 -0
  796. /package/{src → cli-tool/src}/utils.js +0 -0
  797. /package/{src/analytics.log → docu/static/.nojekyll} +0 -0
@@ -0,0 +1,775 @@
1
+ # FastAPI Authentication & Authorization
2
+
3
+ Complete authentication system with JWT tokens, OAuth2, and role-based access control.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ # Install auth dependencies
9
+ pip install python-jose[cryptography] passlib[bcrypt] python-multipart
10
+
11
+ # Generate secret key
12
+ openssl rand -hex 32
13
+ ```
14
+
15
+ ## JWT Configuration
16
+
17
+ ```python
18
+ # app/core/security.py
19
+ from datetime import datetime, timedelta
20
+ from typing import Optional, Union, Any
21
+ from jose import JWTError, jwt
22
+ from passlib.context import CryptContext
23
+ from app.core.config import settings
24
+
25
+ # Password hashing
26
+ pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
27
+
28
+ # JWT settings
29
+ SECRET_KEY = settings.SECRET_KEY
30
+ ALGORITHM = "HS256"
31
+ ACCESS_TOKEN_EXPIRE_MINUTES = 30
32
+ REFRESH_TOKEN_EXPIRE_DAYS = 7
33
+
34
+ def create_access_token(
35
+ subject: Union[str, Any],
36
+ expires_delta: Optional[timedelta] = None
37
+ ) -> str:
38
+ """Create JWT access token."""
39
+ if expires_delta:
40
+ expire = datetime.utcnow() + expires_delta
41
+ else:
42
+ expire = datetime.utcnow() + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
43
+
44
+ to_encode = {"exp": expire, "sub": str(subject), "type": "access"}
45
+ encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
46
+ return encoded_jwt
47
+
48
+ def create_refresh_token(subject: Union[str, Any]) -> str:
49
+ """Create JWT refresh token."""
50
+ expire = datetime.utcnow() + timedelta(days=REFRESH_TOKEN_EXPIRE_DAYS)
51
+ to_encode = {"exp": expire, "sub": str(subject), "type": "refresh"}
52
+ encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
53
+ return encoded_jwt
54
+
55
+ def verify_password(plain_password: str, hashed_password: str) -> bool:
56
+ """Verify password against hash."""
57
+ return pwd_context.verify(plain_password, hashed_password)
58
+
59
+ def get_password_hash(password: str) -> str:
60
+ """Generate password hash."""
61
+ return pwd_context.hash(password)
62
+
63
+ def decode_token(token: str) -> Optional[dict]:
64
+ """Decode and verify JWT token."""
65
+ try:
66
+ payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
67
+ return payload
68
+ except JWTError:
69
+ return None
70
+ ```
71
+
72
+ ## Authentication Dependencies
73
+
74
+ ```python
75
+ # app/api/dependencies/auth.py
76
+ from typing import Optional
77
+ from fastapi import Depends, HTTPException, status
78
+ from fastapi.security import OAuth2PasswordBearer, HTTPBearer, HTTPAuthorizationCredentials
79
+ from sqlalchemy.ext.asyncio import AsyncSession
80
+ from app.core.security import decode_token
81
+ from app.db.database import get_db
82
+ from app.models.user import User
83
+ from app.repositories.user import UserRepository
84
+
85
+ # OAuth2 scheme
86
+ oauth2_scheme = OAuth2PasswordBearer(
87
+ tokenUrl="/api/v1/auth/login",
88
+ scheme_name="JWT"
89
+ )
90
+
91
+ # Bearer token scheme
92
+ security = HTTPBearer()
93
+
94
+ async def get_current_user(
95
+ token: str = Depends(oauth2_scheme),
96
+ db: AsyncSession = Depends(get_db)
97
+ ) -> User:
98
+ """Get current authenticated user."""
99
+ credentials_exception = HTTPException(
100
+ status_code=status.HTTP_401_UNAUTHORIZED,
101
+ detail="Could not validate credentials",
102
+ headers={"WWW-Authenticate": "Bearer"},
103
+ )
104
+
105
+ payload = decode_token(token)
106
+ if payload is None:
107
+ raise credentials_exception
108
+
109
+ user_id: str = payload.get("sub")
110
+ token_type: str = payload.get("type")
111
+
112
+ if user_id is None or token_type != "access":
113
+ raise credentials_exception
114
+
115
+ user_repo = UserRepository(User, db)
116
+ user = await user_repo.get(int(user_id))
117
+
118
+ if user is None:
119
+ raise credentials_exception
120
+
121
+ if not user.is_active:
122
+ raise HTTPException(
123
+ status_code=status.HTTP_400_BAD_REQUEST,
124
+ detail="Inactive user"
125
+ )
126
+
127
+ return user
128
+
129
+ async def get_current_active_user(
130
+ current_user: User = Depends(get_current_user)
131
+ ) -> User:
132
+ """Get current active user."""
133
+ if not current_user.is_active:
134
+ raise HTTPException(
135
+ status_code=status.HTTP_400_BAD_REQUEST,
136
+ detail="Inactive user"
137
+ )
138
+ return current_user
139
+
140
+ async def get_current_superuser(
141
+ current_user: User = Depends(get_current_user)
142
+ ) -> User:
143
+ """Get current superuser."""
144
+ if not current_user.is_superuser:
145
+ raise HTTPException(
146
+ status_code=status.HTTP_403_FORBIDDEN,
147
+ detail="Not enough permissions"
148
+ )
149
+ return current_user
150
+
151
+ def require_permissions(*permissions: str):
152
+ """Decorator for permission-based access control."""
153
+ async def permission_checker(
154
+ current_user: User = Depends(get_current_active_user)
155
+ ) -> User:
156
+ # Check if user has required permissions
157
+ user_permissions = set(current_user.permissions or [])
158
+ required_permissions = set(permissions)
159
+
160
+ if not required_permissions.issubset(user_permissions) and not current_user.is_superuser:
161
+ raise HTTPException(
162
+ status_code=status.HTTP_403_FORBIDDEN,
163
+ detail="Insufficient permissions"
164
+ )
165
+
166
+ return current_user
167
+
168
+ return permission_checker
169
+
170
+ def require_roles(*roles: str):
171
+ """Decorator for role-based access control."""
172
+ async def role_checker(
173
+ current_user: User = Depends(get_current_active_user)
174
+ ) -> User:
175
+ user_roles = set(role.name for role in current_user.roles or [])
176
+ required_roles = set(roles)
177
+
178
+ if not required_roles.issubset(user_roles) and not current_user.is_superuser:
179
+ raise HTTPException(
180
+ status_code=status.HTTP_403_FORBIDDEN,
181
+ detail="Insufficient role permissions"
182
+ )
183
+
184
+ return current_user
185
+
186
+ return role_checker
187
+ ```
188
+
189
+ ## Authentication Schemas
190
+
191
+ ```python
192
+ # app/schemas/auth.py
193
+ from pydantic import BaseModel, EmailStr
194
+ from typing import Optional
195
+
196
+ class Token(BaseModel):
197
+ """Token response schema."""
198
+ access_token: str
199
+ refresh_token: str
200
+ token_type: str = "bearer"
201
+ expires_in: int
202
+
203
+ class TokenPayload(BaseModel):
204
+ """Token payload schema."""
205
+ sub: Optional[int] = None
206
+ exp: Optional[int] = None
207
+ type: Optional[str] = None
208
+
209
+ class UserLogin(BaseModel):
210
+ """User login schema."""
211
+ username: str
212
+ password: str
213
+
214
+ class UserRegister(BaseModel):
215
+ """User registration schema."""
216
+ username: str
217
+ email: EmailStr
218
+ password: str
219
+ first_name: str
220
+ last_name: str
221
+
222
+ class PasswordReset(BaseModel):
223
+ """Password reset schema."""
224
+ email: EmailStr
225
+
226
+ class PasswordResetConfirm(BaseModel):
227
+ """Password reset confirmation schema."""
228
+ token: str
229
+ new_password: str
230
+
231
+ class ChangePassword(BaseModel):
232
+ """Change password schema."""
233
+ current_password: str
234
+ new_password: str
235
+
236
+ class RefreshToken(BaseModel):
237
+ """Refresh token schema."""
238
+ refresh_token: str
239
+ ```
240
+
241
+ ## Authentication Endpoints
242
+
243
+ ```python
244
+ # app/api/v1/auth.py
245
+ from datetime import timedelta
246
+ from typing import Any
247
+ from fastapi import APIRouter, Depends, HTTPException, status, BackgroundTasks
248
+ from fastapi.security import OAuth2PasswordRequestForm
249
+ from sqlalchemy.ext.asyncio import AsyncSession
250
+ from app.db.database import get_db
251
+ from app.models.user import User
252
+ from app.repositories.user import UserRepository
253
+ from app.schemas.auth import (
254
+ Token, UserLogin, UserRegister, PasswordReset,
255
+ PasswordResetConfirm, ChangePassword, RefreshToken
256
+ )
257
+ from app.schemas.user import UserCreate, UserResponse
258
+ from app.core.security import (
259
+ create_access_token, create_refresh_token, verify_password,
260
+ decode_token, ACCESS_TOKEN_EXPIRE_MINUTES
261
+ )
262
+ from app.api.dependencies.auth import get_current_user, get_current_active_user
263
+ from app.services.email import send_password_reset_email
264
+ from app.services.auth import AuthService
265
+
266
+ router = APIRouter()
267
+
268
+ @router.post("/register", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
269
+ async def register(
270
+ user_data: UserRegister,
271
+ db: AsyncSession = Depends(get_db)
272
+ ) -> Any:
273
+ """Register new user."""
274
+ user_repo = UserRepository(User, db)
275
+ auth_service = AuthService(user_repo)
276
+
277
+ # Check if user already exists
278
+ if await user_repo.get_by_email(user_data.email):
279
+ raise HTTPException(
280
+ status_code=status.HTTP_400_BAD_REQUEST,
281
+ detail="Email already registered"
282
+ )
283
+
284
+ if await user_repo.get_by_username(user_data.username):
285
+ raise HTTPException(
286
+ status_code=status.HTTP_400_BAD_REQUEST,
287
+ detail="Username already taken"
288
+ )
289
+
290
+ # Create user
291
+ user = await auth_service.create_user(user_data.dict())
292
+ return user
293
+
294
+ @router.post("/login", response_model=Token)
295
+ async def login(
296
+ form_data: OAuth2PasswordRequestForm = Depends(),
297
+ db: AsyncSession = Depends(get_db)
298
+ ) -> Any:
299
+ """OAuth2 compatible token login."""
300
+ user_repo = UserRepository(User, db)
301
+ auth_service = AuthService(user_repo)
302
+
303
+ user = await auth_service.authenticate_user(
304
+ form_data.username,
305
+ form_data.password
306
+ )
307
+
308
+ if not user:
309
+ raise HTTPException(
310
+ status_code=status.HTTP_401_UNAUTHORIZED,
311
+ detail="Incorrect username or password",
312
+ headers={"WWW-Authenticate": "Bearer"},
313
+ )
314
+
315
+ if not user.is_active:
316
+ raise HTTPException(
317
+ status_code=status.HTTP_400_BAD_REQUEST,
318
+ detail="Inactive user"
319
+ )
320
+
321
+ # Create tokens
322
+ access_token = create_access_token(subject=user.id)
323
+ refresh_token = create_refresh_token(subject=user.id)
324
+
325
+ return {
326
+ "access_token": access_token,
327
+ "refresh_token": refresh_token,
328
+ "token_type": "bearer",
329
+ "expires_in": ACCESS_TOKEN_EXPIRE_MINUTES * 60
330
+ }
331
+
332
+ @router.post("/refresh", response_model=Token)
333
+ async def refresh_token(
334
+ refresh_data: RefreshToken,
335
+ db: AsyncSession = Depends(get_db)
336
+ ) -> Any:
337
+ """Refresh access token."""
338
+ payload = decode_token(refresh_data.refresh_token)
339
+
340
+ if payload is None or payload.get("type") != "refresh":
341
+ raise HTTPException(
342
+ status_code=status.HTTP_401_UNAUTHORIZED,
343
+ detail="Invalid refresh token"
344
+ )
345
+
346
+ user_id = payload.get("sub")
347
+ if user_id is None:
348
+ raise HTTPException(
349
+ status_code=status.HTTP_401_UNAUTHORIZED,
350
+ detail="Invalid refresh token"
351
+ )
352
+
353
+ user_repo = UserRepository(User, db)
354
+ user = await user_repo.get(int(user_id))
355
+
356
+ if user is None or not user.is_active:
357
+ raise HTTPException(
358
+ status_code=status.HTTP_401_UNAUTHORIZED,
359
+ detail="Invalid refresh token"
360
+ )
361
+
362
+ # Create new tokens
363
+ access_token = create_access_token(subject=user.id)
364
+ new_refresh_token = create_refresh_token(subject=user.id)
365
+
366
+ return {
367
+ "access_token": access_token,
368
+ "refresh_token": new_refresh_token,
369
+ "token_type": "bearer",
370
+ "expires_in": ACCESS_TOKEN_EXPIRE_MINUTES * 60
371
+ }
372
+
373
+ @router.get("/me", response_model=UserResponse)
374
+ async def read_users_me(
375
+ current_user: User = Depends(get_current_active_user)
376
+ ) -> Any:
377
+ """Get current user."""
378
+ return current_user
379
+
380
+ @router.post("/change-password", status_code=status.HTTP_200_OK)
381
+ async def change_password(
382
+ password_data: ChangePassword,
383
+ current_user: User = Depends(get_current_active_user),
384
+ db: AsyncSession = Depends(get_db)
385
+ ) -> Any:
386
+ """Change user password."""
387
+ if not verify_password(password_data.current_password, current_user.hashed_password):
388
+ raise HTTPException(
389
+ status_code=status.HTTP_400_BAD_REQUEST,
390
+ detail="Incorrect current password"
391
+ )
392
+
393
+ user_repo = UserRepository(User, db)
394
+ auth_service = AuthService(user_repo)
395
+
396
+ await auth_service.change_password(current_user.id, password_data.new_password)
397
+
398
+ return {"message": "Password changed successfully"}
399
+
400
+ @router.post("/password-reset", status_code=status.HTTP_200_OK)
401
+ async def password_reset(
402
+ reset_data: PasswordReset,
403
+ background_tasks: BackgroundTasks,
404
+ db: AsyncSession = Depends(get_db)
405
+ ) -> Any:
406
+ """Request password reset."""
407
+ user_repo = UserRepository(User, db)
408
+ user = await user_repo.get_by_email(reset_data.email)
409
+
410
+ if user:
411
+ # Generate reset token
412
+ reset_token = create_access_token(
413
+ subject=user.id,
414
+ expires_delta=timedelta(hours=1) # 1 hour expiry
415
+ )
416
+
417
+ # Send email with reset token
418
+ background_tasks.add_task(
419
+ send_password_reset_email,
420
+ email=user.email,
421
+ username=user.username,
422
+ token=reset_token
423
+ )
424
+
425
+ # Always return success to prevent email enumeration
426
+ return {"message": "Password reset email sent if account exists"}
427
+
428
+ @router.post("/password-reset-confirm", status_code=status.HTTP_200_OK)
429
+ async def password_reset_confirm(
430
+ reset_data: PasswordResetConfirm,
431
+ db: AsyncSession = Depends(get_db)
432
+ ) -> Any:
433
+ """Confirm password reset."""
434
+ payload = decode_token(reset_data.token)
435
+
436
+ if payload is None:
437
+ raise HTTPException(
438
+ status_code=status.HTTP_400_BAD_REQUEST,
439
+ detail="Invalid or expired reset token"
440
+ )
441
+
442
+ user_id = payload.get("sub")
443
+ if user_id is None:
444
+ raise HTTPException(
445
+ status_code=status.HTTP_400_BAD_REQUEST,
446
+ detail="Invalid reset token"
447
+ )
448
+
449
+ user_repo = UserRepository(User, db)
450
+ auth_service = AuthService(user_repo)
451
+
452
+ user = await user_repo.get(int(user_id))
453
+ if user is None:
454
+ raise HTTPException(
455
+ status_code=status.HTTP_400_BAD_REQUEST,
456
+ detail="Invalid reset token"
457
+ )
458
+
459
+ await auth_service.change_password(user.id, reset_data.new_password)
460
+
461
+ return {"message": "Password reset successful"}
462
+
463
+ @router.post("/logout", status_code=status.HTTP_200_OK)
464
+ async def logout(
465
+ current_user: User = Depends(get_current_user)
466
+ ) -> Any:
467
+ """Logout user (invalidate token on client side)."""
468
+ # In a more sophisticated setup, you might want to blacklist the token
469
+ return {"message": "Successfully logged out"}
470
+ ```
471
+
472
+ ## Authentication Service
473
+
474
+ ```python
475
+ # app/services/auth.py
476
+ from typing import Optional
477
+ from app.models.user import User
478
+ from app.repositories.user import UserRepository
479
+ from app.core.security import verify_password, get_password_hash
480
+
481
+ class AuthService:
482
+ """Authentication service."""
483
+
484
+ def __init__(self, user_repository: UserRepository):
485
+ self.user_repo = user_repository
486
+
487
+ async def authenticate_user(
488
+ self,
489
+ username_or_email: str,
490
+ password: str
491
+ ) -> Optional[User]:
492
+ """Authenticate user by username/email and password."""
493
+ # Try to get user by username first, then by email
494
+ user = await self.user_repo.get_by_username(username_or_email)
495
+ if not user:
496
+ user = await self.user_repo.get_by_email(username_or_email)
497
+
498
+ if not user:
499
+ return None
500
+
501
+ if not verify_password(password, user.hashed_password):
502
+ return None
503
+
504
+ return user
505
+
506
+ async def create_user(self, user_data: dict) -> User:
507
+ """Create new user."""
508
+ # Hash password
509
+ password = user_data.pop('password')
510
+ hashed_password = get_password_hash(password)
511
+
512
+ # Create user data
513
+ user_create_data = {
514
+ **user_data,
515
+ 'hashed_password': hashed_password,
516
+ 'is_active': True,
517
+ 'is_superuser': False
518
+ }
519
+
520
+ return await self.user_repo.create(user_create_data)
521
+
522
+ async def change_password(self, user_id: int, new_password: str) -> bool:
523
+ """Change user password."""
524
+ hashed_password = get_password_hash(new_password)
525
+
526
+ result = await self.user_repo.update(user_id, {
527
+ 'hashed_password': hashed_password
528
+ })
529
+
530
+ return result is not None
531
+
532
+ async def activate_user(self, user_id: int) -> bool:
533
+ """Activate user account."""
534
+ result = await self.user_repo.update(user_id, {'is_active': True})
535
+ return result is not None
536
+
537
+ async def deactivate_user(self, user_id: int) -> bool:
538
+ """Deactivate user account."""
539
+ result = await self.user_repo.update(user_id, {'is_active': False})
540
+ return result is not None
541
+ ```
542
+
543
+ ## Role-Based Access Control
544
+
545
+ ```python
546
+ # app/models/rbac.py
547
+ from sqlalchemy import Column, String, Text, ForeignKey, Table
548
+ from sqlalchemy.orm import relationship
549
+ from app.models.base import BaseModel
550
+
551
+ # Association tables for many-to-many relationships
552
+ user_roles = Table(
553
+ 'user_roles',
554
+ Base.metadata,
555
+ Column('user_id', Integer, ForeignKey('users.id')),
556
+ Column('role_id', Integer, ForeignKey('roles.id'))
557
+ )
558
+
559
+ role_permissions = Table(
560
+ 'role_permissions',
561
+ Base.metadata,
562
+ Column('role_id', Integer, ForeignKey('roles.id')),
563
+ Column('permission_id', Integer, ForeignKey('permissions.id'))
564
+ )
565
+
566
+ class Role(BaseModel):
567
+ """Role model for RBAC."""
568
+ __tablename__ = "roles"
569
+
570
+ name = Column(String(50), unique=True, nullable=False, index=True)
571
+ description = Column(Text)
572
+
573
+ # Relationships
574
+ users = relationship("User", secondary=user_roles, back_populates="roles")
575
+ permissions = relationship("Permission", secondary=role_permissions, back_populates="roles")
576
+
577
+ class Permission(BaseModel):
578
+ """Permission model for RBAC."""
579
+ __tablename__ = "permissions"
580
+
581
+ name = Column(String(100), unique=True, nullable=False, index=True)
582
+ description = Column(Text)
583
+ resource = Column(String(50), nullable=False) # e.g., 'users', 'posts'
584
+ action = Column(String(50), nullable=False) # e.g., 'create', 'read', 'update', 'delete'
585
+
586
+ # Relationships
587
+ roles = relationship("Role", secondary=role_permissions, back_populates="permissions")
588
+
589
+ # Update User model to include roles
590
+ class User(BaseModel):
591
+ # ... existing fields ...
592
+
593
+ # Relationships
594
+ roles = relationship("Role", secondary=user_roles, back_populates="users")
595
+
596
+ @property
597
+ def permissions(self) -> list[str]:
598
+ """Get all permissions for user."""
599
+ perms = set()
600
+ for role in self.roles:
601
+ for permission in role.permissions:
602
+ perms.add(f"{permission.resource}:{permission.action}")
603
+ return list(perms)
604
+ ```
605
+
606
+ ## OAuth2 Integration
607
+
608
+ ```python
609
+ # app/api/v1/oauth.py
610
+ from fastapi import APIRouter, Depends, HTTPException, status
611
+ from fastapi.security.utils import get_authorization_scheme_param
612
+ from starlette.requests import Request
613
+ from authlib.integrations.starlette_client import OAuth
614
+ from app.core.config import settings
615
+
616
+ router = APIRouter()
617
+
618
+ # OAuth configuration
619
+ oauth = OAuth()
620
+
621
+ # Google OAuth
622
+ google = oauth.register(
623
+ name='google',
624
+ client_id=settings.GOOGLE_CLIENT_ID,
625
+ client_secret=settings.GOOGLE_CLIENT_SECRET,
626
+ server_metadata_url='https://accounts.google.com/.well-known/openid_configuration',
627
+ client_kwargs={
628
+ 'scope': 'openid email profile'
629
+ }
630
+ )
631
+
632
+ # GitHub OAuth
633
+ github = oauth.register(
634
+ name='github',
635
+ client_id=settings.GITHUB_CLIENT_ID,
636
+ client_secret=settings.GITHUB_CLIENT_SECRET,
637
+ access_token_url='https://github.com/login/oauth/access_token',
638
+ access_token_params=None,
639
+ authorize_url='https://github.com/login/oauth/authorize',
640
+ authorize_params=None,
641
+ api_base_url='https://api.github.com/',
642
+ client_kwargs={'scope': 'user:email'},
643
+ )
644
+
645
+ @router.get('/google')
646
+ async def google_login(request: Request):
647
+ """Initiate Google OAuth login."""
648
+ redirect_uri = request.url_for('google_callback')
649
+ return await google.authorize_redirect(request, redirect_uri)
650
+
651
+ @router.get('/google/callback')
652
+ async def google_callback(request: Request):
653
+ """Handle Google OAuth callback."""
654
+ token = await google.authorize_access_token(request)
655
+ user_info = token.get('userinfo')
656
+
657
+ if user_info:
658
+ # Create or get user
659
+ # Generate JWT token
660
+ # Return token
661
+ pass
662
+
663
+ raise HTTPException(
664
+ status_code=status.HTTP_400_BAD_REQUEST,
665
+ detail="OAuth authentication failed"
666
+ )
667
+ ```
668
+
669
+ ## API Key Authentication
670
+
671
+ ```python
672
+ # app/models/api_key.py
673
+ from sqlalchemy import Column, String, Boolean, ForeignKey, DateTime
674
+ from sqlalchemy.orm import relationship
675
+ from app.models.base import BaseModel
676
+ import secrets
677
+
678
+ class APIKey(BaseModel):
679
+ """API Key model."""
680
+ __tablename__ = "api_keys"
681
+
682
+ name = Column(String(100), nullable=False)
683
+ key_hash = Column(String(255), unique=True, nullable=False, index=True)
684
+ prefix = Column(String(10), nullable=False, index=True)
685
+ is_active = Column(Boolean, default=True, nullable=False)
686
+ expires_at = Column(DateTime)
687
+ last_used_at = Column(DateTime)
688
+
689
+ # Foreign key
690
+ user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
691
+
692
+ # Relationships
693
+ user = relationship("User", back_populates="api_keys")
694
+
695
+ @classmethod
696
+ def generate_key(cls) -> tuple[str, str]:
697
+ """Generate API key and return (key, hash)."""
698
+ key = secrets.token_urlsafe(32)
699
+ prefix = key[:8]
700
+ key_hash = get_password_hash(key)
701
+ return key, prefix, key_hash
702
+
703
+ def verify_key(self, key: str) -> bool:
704
+ """Verify API key."""
705
+ return verify_password(key, self.key_hash)
706
+
707
+ # Add to User model
708
+ class User(BaseModel):
709
+ # ... existing fields ...
710
+
711
+ # Relationships
712
+ api_keys = relationship("APIKey", back_populates="user", cascade="all, delete-orphan")
713
+ ```
714
+
715
+ ## Testing Authentication
716
+
717
+ ```python
718
+ # tests/test_auth.py
719
+ import pytest
720
+ from httpx import AsyncClient
721
+ from app.core.security import create_access_token
722
+
723
+ @pytest.mark.asyncio
724
+ async def test_register_user(client: AsyncClient):
725
+ """Test user registration."""
726
+ user_data = {
727
+ "username": "testuser",
728
+ "email": "test@example.com",
729
+ "password": "testpass123",
730
+ "first_name": "Test",
731
+ "last_name": "User"
732
+ }
733
+
734
+ response = await client.post("/api/v1/auth/register", json=user_data)
735
+ assert response.status_code == 201
736
+
737
+ data = response.json()
738
+ assert data["username"] == user_data["username"]
739
+ assert data["email"] == user_data["email"]
740
+ assert "hashed_password" not in data
741
+
742
+ @pytest.mark.asyncio
743
+ async def test_login_user(client: AsyncClient, test_user):
744
+ """Test user login."""
745
+ login_data = {
746
+ "username": test_user.username,
747
+ "password": "testpass123"
748
+ }
749
+
750
+ response = await client.post(
751
+ "/api/v1/auth/login",
752
+ data=login_data,
753
+ headers={"Content-Type": "application/x-www-form-urlencoded"}
754
+ )
755
+
756
+ assert response.status_code == 200
757
+
758
+ data = response.json()
759
+ assert "access_token" in data
760
+ assert "refresh_token" in data
761
+ assert data["token_type"] == "bearer"
762
+
763
+ @pytest.mark.asyncio
764
+ async def test_get_current_user(client: AsyncClient, test_user):
765
+ """Test get current user endpoint."""
766
+ token = create_access_token(subject=test_user.id)
767
+ headers = {"Authorization": f"Bearer {token}"}
768
+
769
+ response = await client.get("/api/v1/auth/me", headers=headers)
770
+ assert response.status_code == 200
771
+
772
+ data = response.json()
773
+ assert data["username"] == test_user.username
774
+ assert data["email"] == test_user.email
775
+ ```