claude-code-templates 1.21.13 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (801) hide show
  1. package/README.md +79 -77
  2. package/{cli-tool/bin → bin}/create-claude-config.js +1 -0
  3. package/package.json +74 -21
  4. package/{cli-tool/src → src}/index.js +9 -1
  5. package/src/plugin-dashboard-web/app.js +806 -0
  6. package/src/plugin-dashboard-web/index.html +292 -0
  7. package/src/plugin-dashboard-web/styles.css +1781 -0
  8. package/src/plugin-dashboard.js +689 -0
  9. package/.claude/agents/agent-expert.md +0 -477
  10. package/.claude/agents/cli-ui-designer.md +0 -405
  11. package/.claude/agents/command-expert.md +0 -421
  12. package/.claude/agents/docusaurus-expert.md +0 -173
  13. package/.claude/agents/frontend-developer.md +0 -32
  14. package/.claude/agents/mcp-expert.md +0 -258
  15. package/.claude/commands/lint.md +0 -111
  16. package/.claude/commands/test.md +0 -73
  17. package/.claude/settings.local.json +0 -56
  18. package/.env.example +0 -26
  19. package/.github/WORKFLOWS_REFERENCE.md +0 -88
  20. package/.github/workflows/deploy-docusaurus.yml +0 -31
  21. package/.github/workflows/deploy.yml +0 -33
  22. package/.github/workflows/publish-package.yml +0 -125
  23. package/.mcp.json +0 -4
  24. package/AGENTS.md +0 -4
  25. package/CLAUDE.md +0 -482
  26. package/CLAUDE_JOBS_README.md +0 -148
  27. package/CODE_OF_CONDUCT.md +0 -82
  28. package/CONTRIBUTING.md +0 -505
  29. package/DEPLOYMENT.md +0 -60
  30. package/LICENSE +0 -21
  31. package/ROADMAP.md +0 -278
  32. package/SECURITY.md +0 -65
  33. package/api/index.html +0 -1
  34. package/api/package.json +0 -7
  35. package/api/track-download-supabase.js +0 -150
  36. package/cli-tool/Makefile +0 -102
  37. package/cli-tool/README.md +0 -126
  38. package/cli-tool/TESTING.md +0 -262
  39. package/cli-tool/components/agents/ai-specialists/ai-ethics-advisor.md +0 -195
  40. package/cli-tool/components/agents/ai-specialists/hackathon-ai-strategist.md +0 -46
  41. package/cli-tool/components/agents/ai-specialists/llms-maintainer.md +0 -94
  42. package/cli-tool/components/agents/ai-specialists/model-evaluator.md +0 -150
  43. package/cli-tool/components/agents/ai-specialists/prompt-engineer.md +0 -112
  44. package/cli-tool/components/agents/ai-specialists/search-specialist.md +0 -59
  45. package/cli-tool/components/agents/ai-specialists/task-decomposition-expert.md +0 -97
  46. package/cli-tool/components/agents/api-graphql/graphql-architect.md +0 -208
  47. package/cli-tool/components/agents/api-graphql/graphql-performance-optimizer.md +0 -357
  48. package/cli-tool/components/agents/api-graphql/graphql-security-specialist.md +0 -519
  49. package/cli-tool/components/agents/blockchain-web3/smart-contract-auditor.md +0 -32
  50. package/cli-tool/components/agents/blockchain-web3/smart-contract-specialist.md +0 -32
  51. package/cli-tool/components/agents/blockchain-web3/web3-integration-specialist.md +0 -32
  52. package/cli-tool/components/agents/business-marketing/business-analyst.md +0 -194
  53. package/cli-tool/components/agents/business-marketing/content-marketer.md +0 -36
  54. package/cli-tool/components/agents/business-marketing/customer-support.md +0 -36
  55. package/cli-tool/components/agents/business-marketing/legal-advisor.md +0 -50
  56. package/cli-tool/components/agents/business-marketing/marketing-attribution-analyst.md +0 -352
  57. package/cli-tool/components/agents/business-marketing/payment-integration.md +0 -33
  58. package/cli-tool/components/agents/business-marketing/product-strategist.md +0 -212
  59. package/cli-tool/components/agents/business-marketing/risk-manager.md +0 -42
  60. package/cli-tool/components/agents/business-marketing/sales-automator.md +0 -36
  61. package/cli-tool/components/agents/data-ai/ai-engineer.md +0 -33
  62. package/cli-tool/components/agents/data-ai/computer-vision-engineer.md +0 -562
  63. package/cli-tool/components/agents/data-ai/data-engineer.md +0 -33
  64. package/cli-tool/components/agents/data-ai/data-scientist.md +0 -337
  65. package/cli-tool/components/agents/data-ai/ml-engineer.md +0 -33
  66. package/cli-tool/components/agents/data-ai/mlops-engineer.md +0 -58
  67. package/cli-tool/components/agents/data-ai/nlp-engineer.md +0 -680
  68. package/cli-tool/components/agents/data-ai/quant-analyst.md +0 -33
  69. package/cli-tool/components/agents/database/database-admin.md +0 -33
  70. package/cli-tool/components/agents/database/database-architect.md +0 -590
  71. package/cli-tool/components/agents/database/database-optimization.md +0 -33
  72. package/cli-tool/components/agents/database/database-optimizer.md +0 -33
  73. package/cli-tool/components/agents/database/neon-auth-specialist.md +0 -175
  74. package/cli-tool/components/agents/database/neon-database-architect.md +0 -141
  75. package/cli-tool/components/agents/database/neon-expert.md +0 -846
  76. package/cli-tool/components/agents/database/nosql-specialist.md +0 -708
  77. package/cli-tool/components/agents/database/supabase-schema-architect.md +0 -138
  78. package/cli-tool/components/agents/deep-research-team/academic-researcher.md +0 -33
  79. package/cli-tool/components/agents/deep-research-team/agent-overview.md +0 -235
  80. package/cli-tool/components/agents/deep-research-team/competitive-intelligence-analyst.md +0 -530
  81. package/cli-tool/components/agents/deep-research-team/data-analyst.md +0 -112
  82. package/cli-tool/components/agents/deep-research-team/fact-checker.md +0 -553
  83. package/cli-tool/components/agents/deep-research-team/query-clarifier.md +0 -73
  84. package/cli-tool/components/agents/deep-research-team/report-generator.md +0 -108
  85. package/cli-tool/components/agents/deep-research-team/research-brief-generator.md +0 -108
  86. package/cli-tool/components/agents/deep-research-team/research-coordinator.md +0 -94
  87. package/cli-tool/components/agents/deep-research-team/research-orchestrator.md +0 -119
  88. package/cli-tool/components/agents/deep-research-team/research-synthesizer.md +0 -109
  89. package/cli-tool/components/agents/deep-research-team/technical-researcher.md +0 -95
  90. package/cli-tool/components/agents/development-team/backend-architect.md +0 -31
  91. package/cli-tool/components/agents/development-team/cli-ui-designer.md +0 -405
  92. package/cli-tool/components/agents/development-team/devops-engineer.md +0 -886
  93. package/cli-tool/components/agents/development-team/frontend-developer.md +0 -32
  94. package/cli-tool/components/agents/development-team/fullstack-developer.md +0 -1205
  95. package/cli-tool/components/agents/development-team/ios-developer.md +0 -36
  96. package/cli-tool/components/agents/development-team/mobile-developer.md +0 -33
  97. package/cli-tool/components/agents/development-team/ui-ux-designer.md +0 -36
  98. package/cli-tool/components/agents/development-tools/code-reviewer.md +0 -30
  99. package/cli-tool/components/agents/development-tools/command-expert.md +0 -422
  100. package/cli-tool/components/agents/development-tools/context-manager.md +0 -65
  101. package/cli-tool/components/agents/development-tools/debugger.md +0 -31
  102. package/cli-tool/components/agents/development-tools/dx-optimizer.md +0 -64
  103. package/cli-tool/components/agents/development-tools/error-detective.md +0 -33
  104. package/cli-tool/components/agents/development-tools/mcp-expert.md +0 -259
  105. package/cli-tool/components/agents/development-tools/performance-profiler.md +0 -799
  106. package/cli-tool/components/agents/development-tools/test-engineer.md +0 -936
  107. package/cli-tool/components/agents/devops-infrastructure/cloud-architect.md +0 -33
  108. package/cli-tool/components/agents/devops-infrastructure/deployment-engineer.md +0 -33
  109. package/cli-tool/components/agents/devops-infrastructure/devops-troubleshooter.md +0 -33
  110. package/cli-tool/components/agents/devops-infrastructure/monitoring-specialist.md +0 -36
  111. package/cli-tool/components/agents/devops-infrastructure/network-engineer.md +0 -33
  112. package/cli-tool/components/agents/devops-infrastructure/security-engineer.md +0 -971
  113. package/cli-tool/components/agents/devops-infrastructure/terraform-specialist.md +0 -36
  114. package/cli-tool/components/agents/devops-infrastructure/vercel-deployment-specialist.md +0 -357
  115. package/cli-tool/components/agents/documentation/api-documenter.md +0 -33
  116. package/cli-tool/components/agents/documentation/changelog-generator.md +0 -37
  117. package/cli-tool/components/agents/documentation/docusaurus-expert.md +0 -175
  118. package/cli-tool/components/agents/documentation/technical-writer.md +0 -37
  119. package/cli-tool/components/agents/expert-advisors/agent-expert.md +0 -491
  120. package/cli-tool/components/agents/expert-advisors/architect-review.md +0 -50
  121. package/cli-tool/components/agents/expert-advisors/dependency-manager.md +0 -45
  122. package/cli-tool/components/agents/expert-advisors/documentation-expert.md +0 -47
  123. package/cli-tool/components/agents/ffmpeg-clip-team/audio-mixer.md +0 -37
  124. package/cli-tool/components/agents/ffmpeg-clip-team/audio-quality-controller.md +0 -100
  125. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-content-analyzer.md +0 -60
  126. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-metadata-specialist.md +0 -46
  127. package/cli-tool/components/agents/ffmpeg-clip-team/podcast-transcriber.md +0 -68
  128. package/cli-tool/components/agents/ffmpeg-clip-team/social-media-clip-creator.md +0 -69
  129. package/cli-tool/components/agents/ffmpeg-clip-team/timestamp-precision-specialist.md +0 -98
  130. package/cli-tool/components/agents/ffmpeg-clip-team/video-editor.md +0 -37
  131. package/cli-tool/components/agents/game-development/3d-artist.md +0 -37
  132. package/cli-tool/components/agents/game-development/game-designer.md +0 -37
  133. package/cli-tool/components/agents/game-development/unity-game-developer.md +0 -110
  134. package/cli-tool/components/agents/game-development/unreal-engine-developer.md +0 -128
  135. package/cli-tool/components/agents/git/git-flow-manager.md +0 -329
  136. package/cli-tool/components/agents/mcp-dev-team/mcp-deployment-orchestrator.md +0 -101
  137. package/cli-tool/components/agents/mcp-dev-team/mcp-integration-engineer.md +0 -37
  138. package/cli-tool/components/agents/mcp-dev-team/mcp-protocol-specialist.md +0 -37
  139. package/cli-tool/components/agents/mcp-dev-team/mcp-registry-navigator.md +0 -112
  140. package/cli-tool/components/agents/mcp-dev-team/mcp-security-auditor.md +0 -70
  141. package/cli-tool/components/agents/mcp-dev-team/mcp-server-architect.md +0 -74
  142. package/cli-tool/components/agents/mcp-dev-team/mcp-testing-engineer.md +0 -106
  143. package/cli-tool/components/agents/modernization/architecture-modernizer.md +0 -37
  144. package/cli-tool/components/agents/modernization/cloud-migration-specialist.md +0 -37
  145. package/cli-tool/components/agents/modernization/legacy-modernizer.md +0 -33
  146. package/cli-tool/components/agents/obsidian-ops-team/Scripts/daily_notes_connector.py +0 -306
  147. package/cli-tool/components/agents/obsidian-ops-team/Scripts/enhance_tag_standardizer.py +0 -343
  148. package/cli-tool/components/agents/obsidian-ops-team/Scripts/find_keyword_connections.py +0 -216
  149. package/cli-tool/components/agents/obsidian-ops-team/Scripts/fix_quoted_tags.py +0 -82
  150. package/cli-tool/components/agents/obsidian-ops-team/Scripts/implement_entity_connections.py +0 -195
  151. package/cli-tool/components/agents/obsidian-ops-team/Scripts/link_suggester.py +0 -301
  152. package/cli-tool/components/agents/obsidian-ops-team/Scripts/metadata_adder.py +0 -197
  153. package/cli-tool/components/agents/obsidian-ops-team/Scripts/moc_generator.py +0 -296
  154. package/cli-tool/components/agents/obsidian-ops-team/Scripts/parse_keyword_connections.py +0 -122
  155. package/cli-tool/components/agents/obsidian-ops-team/Scripts/tag_standardizer.py +0 -387
  156. package/cli-tool/components/agents/obsidian-ops-team/connection-agent.md +0 -67
  157. package/cli-tool/components/agents/obsidian-ops-team/content-curator.md +0 -81
  158. package/cli-tool/components/agents/obsidian-ops-team/metadata-agent.md +0 -51
  159. package/cli-tool/components/agents/obsidian-ops-team/moc-agent.md +0 -112
  160. package/cli-tool/components/agents/obsidian-ops-team/review-agent.md +0 -94
  161. package/cli-tool/components/agents/obsidian-ops-team/tag-agent.md +0 -92
  162. package/cli-tool/components/agents/obsidian-ops-team/vault-optimizer.md +0 -76
  163. package/cli-tool/components/agents/ocr-extraction-team/document-structure-analyzer.md +0 -37
  164. package/cli-tool/components/agents/ocr-extraction-team/markdown-syntax-formatter.md +0 -58
  165. package/cli-tool/components/agents/ocr-extraction-team/ocr-grammar-fixer.md +0 -36
  166. package/cli-tool/components/agents/ocr-extraction-team/ocr-preprocessing-optimizer.md +0 -37
  167. package/cli-tool/components/agents/ocr-extraction-team/ocr-quality-assurance.md +0 -62
  168. package/cli-tool/components/agents/ocr-extraction-team/text-comparison-validator.md +0 -60
  169. package/cli-tool/components/agents/ocr-extraction-team/visual-analysis-ocr.md +0 -52
  170. package/cli-tool/components/agents/performance-testing/load-testing-specialist.md +0 -37
  171. package/cli-tool/components/agents/performance-testing/performance-engineer.md +0 -33
  172. package/cli-tool/components/agents/performance-testing/react-performance-optimization.md +0 -65
  173. package/cli-tool/components/agents/performance-testing/test-automator.md +0 -33
  174. package/cli-tool/components/agents/performance-testing/web-vitals-optimizer.md +0 -37
  175. package/cli-tool/components/agents/podcast-creator-team/academic-research-synthesizer.md +0 -61
  176. package/cli-tool/components/agents/podcast-creator-team/comprehensive-researcher.md +0 -49
  177. package/cli-tool/components/agents/podcast-creator-team/episode-orchestrator.md +0 -52
  178. package/cli-tool/components/agents/podcast-creator-team/guest-outreach-coordinator.md +0 -37
  179. package/cli-tool/components/agents/podcast-creator-team/market-research-analyst.md +0 -54
  180. package/cli-tool/components/agents/podcast-creator-team/podcast-editor.md +0 -37
  181. package/cli-tool/components/agents/podcast-creator-team/podcast-trend-scout.md +0 -60
  182. package/cli-tool/components/agents/podcast-creator-team/project-supervisor-orchestrator.md +0 -48
  183. package/cli-tool/components/agents/podcast-creator-team/seo-podcast-optimizer.md +0 -58
  184. package/cli-tool/components/agents/podcast-creator-team/social-media-copywriter.md +0 -57
  185. package/cli-tool/components/agents/podcast-creator-team/twitter-ai-influencer-manager.md +0 -62
  186. package/cli-tool/components/agents/programming-languages/c-pro.md +0 -36
  187. package/cli-tool/components/agents/programming-languages/c-sharp-pro.md +0 -40
  188. package/cli-tool/components/agents/programming-languages/cpp-pro.md +0 -39
  189. package/cli-tool/components/agents/programming-languages/golang-pro.md +0 -33
  190. package/cli-tool/components/agents/programming-languages/javascript-pro.md +0 -36
  191. package/cli-tool/components/agents/programming-languages/php-pro.md +0 -44
  192. package/cli-tool/components/agents/programming-languages/python-pro.md +0 -33
  193. package/cli-tool/components/agents/programming-languages/rust-pro.md +0 -36
  194. package/cli-tool/components/agents/programming-languages/shell-scripting-pro.md +0 -38
  195. package/cli-tool/components/agents/programming-languages/sql-pro.md +0 -36
  196. package/cli-tool/components/agents/programming-languages/typescript-pro.md +0 -38
  197. package/cli-tool/components/agents/realtime/supabase-realtime-optimizer.md +0 -193
  198. package/cli-tool/components/agents/security/api-security-audit.md +0 -93
  199. package/cli-tool/components/agents/security/compliance-specialist.md +0 -37
  200. package/cli-tool/components/agents/security/incident-responder.md +0 -75
  201. package/cli-tool/components/agents/security/penetration-tester.md +0 -37
  202. package/cli-tool/components/agents/security/security-auditor.md +0 -33
  203. package/cli-tool/components/agents/web-tools/nextjs-architecture-expert.md +0 -194
  204. package/cli-tool/components/agents/web-tools/react-performance-optimizer.md +0 -425
  205. package/cli-tool/components/agents/web-tools/seo-analyzer.md +0 -37
  206. package/cli-tool/components/agents/web-tools/url-context-validator.md +0 -61
  207. package/cli-tool/components/agents/web-tools/url-link-extractor.md +0 -59
  208. package/cli-tool/components/agents/web-tools/web-accessibility-checker.md +0 -37
  209. package/cli-tool/components/commands/automation/act.md +0 -57
  210. package/cli-tool/components/commands/automation/ci-pipeline.md +0 -378
  211. package/cli-tool/components/commands/automation/husky.md +0 -130
  212. package/cli-tool/components/commands/automation/workflow-orchestrator.md +0 -576
  213. package/cli-tool/components/commands/database/supabase-backup-manager.md +0 -37
  214. package/cli-tool/components/commands/database/supabase-data-explorer.md +0 -37
  215. package/cli-tool/components/commands/database/supabase-migration-assistant.md +0 -37
  216. package/cli-tool/components/commands/database/supabase-performance-optimizer.md +0 -37
  217. package/cli-tool/components/commands/database/supabase-realtime-monitor.md +0 -37
  218. package/cli-tool/components/commands/database/supabase-schema-sync.md +0 -37
  219. package/cli-tool/components/commands/database/supabase-security-audit.md +0 -37
  220. package/cli-tool/components/commands/database/supabase-type-generator.md +0 -37
  221. package/cli-tool/components/commands/deployment/add-changelog.md +0 -92
  222. package/cli-tool/components/commands/deployment/blue-green-deployment.md +0 -824
  223. package/cli-tool/components/commands/deployment/changelog-demo-command.md +0 -43
  224. package/cli-tool/components/commands/deployment/ci-setup.md +0 -323
  225. package/cli-tool/components/commands/deployment/containerize-application.md +0 -93
  226. package/cli-tool/components/commands/deployment/deployment-monitoring.md +0 -1228
  227. package/cli-tool/components/commands/deployment/hotfix-deploy.md +0 -283
  228. package/cli-tool/components/commands/deployment/prepare-release.md +0 -357
  229. package/cli-tool/components/commands/deployment/rollback-deploy.md +0 -145
  230. package/cli-tool/components/commands/deployment/setup-automated-releases.md +0 -143
  231. package/cli-tool/components/commands/deployment/setup-kubernetes-deployment.md +0 -93
  232. package/cli-tool/components/commands/documentation/create-architecture-documentation.md +0 -95
  233. package/cli-tool/components/commands/documentation/create-onboarding-guide.md +0 -93
  234. package/cli-tool/components/commands/documentation/doc-api.md +0 -242
  235. package/cli-tool/components/commands/documentation/docs-maintenance.md +0 -119
  236. package/cli-tool/components/commands/documentation/generate-api-documentation.md +0 -97
  237. package/cli-tool/components/commands/documentation/interactive-documentation.md +0 -133
  238. package/cli-tool/components/commands/documentation/load-llms-txt.md +0 -39
  239. package/cli-tool/components/commands/documentation/migration-guide.md +0 -250
  240. package/cli-tool/components/commands/documentation/troubleshooting-guide.md +0 -370
  241. package/cli-tool/components/commands/documentation/update-docs.md +0 -107
  242. package/cli-tool/components/commands/game-development/game-analytics-integration.md +0 -128
  243. package/cli-tool/components/commands/game-development/game-asset-pipeline.md +0 -108
  244. package/cli-tool/components/commands/game-development/game-performance-profiler.md +0 -78
  245. package/cli-tool/components/commands/game-development/game-testing-framework.md +0 -112
  246. package/cli-tool/components/commands/game-development/unity-project-setup.md +0 -190
  247. package/cli-tool/components/commands/git/feature.md +0 -196
  248. package/cli-tool/components/commands/git/finish.md +0 -528
  249. package/cli-tool/components/commands/git/flow-status.md +0 -438
  250. package/cli-tool/components/commands/git/hotfix.md +0 -456
  251. package/cli-tool/components/commands/git/release.md +0 -381
  252. package/cli-tool/components/commands/git-workflow/branch-cleanup.md +0 -181
  253. package/cli-tool/components/commands/git-workflow/commit.md +0 -167
  254. package/cli-tool/components/commands/git-workflow/create-pr.md +0 -19
  255. package/cli-tool/components/commands/git-workflow/create-pull-request.md +0 -126
  256. package/cli-tool/components/commands/git-workflow/create-worktrees.md +0 -174
  257. package/cli-tool/components/commands/git-workflow/fix-github-issue.md +0 -13
  258. package/cli-tool/components/commands/git-workflow/git-bisect-helper.md +0 -261
  259. package/cli-tool/components/commands/git-workflow/pr-review.md +0 -76
  260. package/cli-tool/components/commands/git-workflow/update-branch-name.md +0 -9
  261. package/cli-tool/components/commands/nextjs-vercel/nextjs-api-tester.md +0 -480
  262. package/cli-tool/components/commands/nextjs-vercel/nextjs-bundle-analyzer.md +0 -406
  263. package/cli-tool/components/commands/nextjs-vercel/nextjs-component-generator.md +0 -489
  264. package/cli-tool/components/commands/nextjs-vercel/nextjs-middleware-creator.md +0 -712
  265. package/cli-tool/components/commands/nextjs-vercel/nextjs-migration-helper.md +0 -778
  266. package/cli-tool/components/commands/nextjs-vercel/nextjs-performance-audit.md +0 -653
  267. package/cli-tool/components/commands/nextjs-vercel/nextjs-scaffold.md +0 -237
  268. package/cli-tool/components/commands/nextjs-vercel/vercel-deploy-optimize.md +0 -341
  269. package/cli-tool/components/commands/nextjs-vercel/vercel-edge-function.md +0 -810
  270. package/cli-tool/components/commands/nextjs-vercel/vercel-env-sync.md +0 -666
  271. package/cli-tool/components/commands/orchestration/archive.md +0 -414
  272. package/cli-tool/components/commands/orchestration/commit.md +0 -305
  273. package/cli-tool/components/commands/orchestration/find.md +0 -272
  274. package/cli-tool/components/commands/orchestration/log.md +0 -355
  275. package/cli-tool/components/commands/orchestration/move.md +0 -220
  276. package/cli-tool/components/commands/orchestration/optimize.md +0 -375
  277. package/cli-tool/components/commands/orchestration/remove.md +0 -301
  278. package/cli-tool/components/commands/orchestration/report.md +0 -292
  279. package/cli-tool/components/commands/orchestration/resume.md +0 -256
  280. package/cli-tool/components/commands/orchestration/start.md +0 -169
  281. package/cli-tool/components/commands/orchestration/status.md +0 -219
  282. package/cli-tool/components/commands/orchestration/sync.md +0 -294
  283. package/cli-tool/components/commands/performance/add-performance-monitoring.md +0 -84
  284. package/cli-tool/components/commands/performance/implement-caching-strategy.md +0 -84
  285. package/cli-tool/components/commands/performance/optimize-api-performance.md +0 -119
  286. package/cli-tool/components/commands/performance/optimize-build.md +0 -139
  287. package/cli-tool/components/commands/performance/optimize-bundle-size.md +0 -84
  288. package/cli-tool/components/commands/performance/optimize-database-performance.md +0 -84
  289. package/cli-tool/components/commands/performance/optimize-memory-usage.md +0 -91
  290. package/cli-tool/components/commands/performance/performance-audit.md +0 -89
  291. package/cli-tool/components/commands/performance/setup-cdn-optimization.md +0 -84
  292. package/cli-tool/components/commands/performance/system-behavior-simulator.md +0 -415
  293. package/cli-tool/components/commands/project-management/add-package.md +0 -90
  294. package/cli-tool/components/commands/project-management/add-to-changelog.md +0 -37
  295. package/cli-tool/components/commands/project-management/create-feature.md +0 -130
  296. package/cli-tool/components/commands/project-management/create-jtbd.md +0 -37
  297. package/cli-tool/components/commands/project-management/create-prd.md +0 -36
  298. package/cli-tool/components/commands/project-management/create-prp.md +0 -37
  299. package/cli-tool/components/commands/project-management/init-project.md +0 -80
  300. package/cli-tool/components/commands/project-management/milestone-tracker.md +0 -44
  301. package/cli-tool/components/commands/project-management/pac-configure.md +0 -32
  302. package/cli-tool/components/commands/project-management/pac-create-epic.md +0 -41
  303. package/cli-tool/components/commands/project-management/pac-create-ticket.md +0 -42
  304. package/cli-tool/components/commands/project-management/pac-update-status.md +0 -39
  305. package/cli-tool/components/commands/project-management/pac-validate.md +0 -35
  306. package/cli-tool/components/commands/project-management/project-health-check.md +0 -58
  307. package/cli-tool/components/commands/project-management/project-timeline-simulator.md +0 -37
  308. package/cli-tool/components/commands/project-management/project-to-linear.md +0 -38
  309. package/cli-tool/components/commands/project-management/release.md +0 -31
  310. package/cli-tool/components/commands/project-management/todo.md +0 -62
  311. package/cli-tool/components/commands/security/add-authentication-system.md +0 -34
  312. package/cli-tool/components/commands/security/dependency-audit.md +0 -32
  313. package/cli-tool/components/commands/security/penetration-test.md +0 -40
  314. package/cli-tool/components/commands/security/secrets-scanner.md +0 -39
  315. package/cli-tool/components/commands/security/security-audit.md +0 -82
  316. package/cli-tool/components/commands/security/security-hardening.md +0 -33
  317. package/cli-tool/components/commands/setup/create-database-migrations.md +0 -35
  318. package/cli-tool/components/commands/setup/design-database-schema.md +0 -37
  319. package/cli-tool/components/commands/setup/design-rest-api.md +0 -37
  320. package/cli-tool/components/commands/setup/implement-graphql-api.md +0 -37
  321. package/cli-tool/components/commands/setup/migrate-to-typescript.md +0 -37
  322. package/cli-tool/components/commands/setup/setup-ci-cd-pipeline.md +0 -37
  323. package/cli-tool/components/commands/setup/setup-development-environment.md +0 -37
  324. package/cli-tool/components/commands/setup/setup-docker-containers.md +0 -37
  325. package/cli-tool/components/commands/setup/setup-formatting.md +0 -37
  326. package/cli-tool/components/commands/setup/setup-linting.md +0 -37
  327. package/cli-tool/components/commands/setup/setup-monitoring-observability.md +0 -37
  328. package/cli-tool/components/commands/setup/setup-monorepo.md +0 -37
  329. package/cli-tool/components/commands/setup/setup-rate-limiting.md +0 -37
  330. package/cli-tool/components/commands/setup/update-dependencies.md +0 -35
  331. package/cli-tool/components/commands/simulation/business-scenario-explorer.md +0 -37
  332. package/cli-tool/components/commands/simulation/constraint-modeler.md +0 -37
  333. package/cli-tool/components/commands/simulation/decision-tree-explorer.md +0 -37
  334. package/cli-tool/components/commands/simulation/digital-twin-creator.md +0 -37
  335. package/cli-tool/components/commands/simulation/future-scenario-generator.md +0 -37
  336. package/cli-tool/components/commands/simulation/market-response-modeler.md +0 -37
  337. package/cli-tool/components/commands/simulation/monte-carlo-simulator.md +0 -37
  338. package/cli-tool/components/commands/simulation/simulation-calibrator.md +0 -37
  339. package/cli-tool/components/commands/simulation/system-dynamics-modeler.md +0 -37
  340. package/cli-tool/components/commands/simulation/timeline-compressor.md +0 -37
  341. package/cli-tool/components/commands/svelte/svelte:a11y.md +0 -105
  342. package/cli-tool/components/commands/svelte/svelte:component.md +0 -81
  343. package/cli-tool/components/commands/svelte/svelte:debug.md +0 -48
  344. package/cli-tool/components/commands/svelte/svelte:migrate.md +0 -79
  345. package/cli-tool/components/commands/svelte/svelte:optimize.md +0 -99
  346. package/cli-tool/components/commands/svelte/svelte:scaffold.md +0 -89
  347. package/cli-tool/components/commands/svelte/svelte:storybook-migrate.md +0 -204
  348. package/cli-tool/components/commands/svelte/svelte:storybook-mock.md +0 -213
  349. package/cli-tool/components/commands/svelte/svelte:storybook-setup.md +0 -113
  350. package/cli-tool/components/commands/svelte/svelte:storybook-story.md +0 -145
  351. package/cli-tool/components/commands/svelte/svelte:storybook-troubleshoot.md +0 -191
  352. package/cli-tool/components/commands/svelte/svelte:storybook.md +0 -48
  353. package/cli-tool/components/commands/svelte/svelte:test-coverage.md +0 -77
  354. package/cli-tool/components/commands/svelte/svelte:test-fix.md +0 -74
  355. package/cli-tool/components/commands/svelte/svelte:test-setup.md +0 -85
  356. package/cli-tool/components/commands/svelte/svelte:test.md +0 -60
  357. package/cli-tool/components/commands/sync/bidirectional-sync.md +0 -37
  358. package/cli-tool/components/commands/sync/bulk-import-issues.md +0 -37
  359. package/cli-tool/components/commands/sync/cross-reference-manager.md +0 -37
  360. package/cli-tool/components/commands/sync/issue-to-linear-task.md +0 -37
  361. package/cli-tool/components/commands/sync/linear-task-to-issue.md +0 -37
  362. package/cli-tool/components/commands/sync/sync-automation-setup.md +0 -37
  363. package/cli-tool/components/commands/sync/sync-conflict-resolver.md +0 -37
  364. package/cli-tool/components/commands/sync/sync-health-monitor.md +0 -37
  365. package/cli-tool/components/commands/sync/sync-issues-to-linear.md +0 -37
  366. package/cli-tool/components/commands/sync/sync-linear-to-issues.md +0 -37
  367. package/cli-tool/components/commands/sync/sync-migration-assistant.md +0 -37
  368. package/cli-tool/components/commands/sync/sync-pr-to-task.md +0 -37
  369. package/cli-tool/components/commands/sync/sync-status.md +0 -391
  370. package/cli-tool/components/commands/sync/task-from-pr.md +0 -37
  371. package/cli-tool/components/commands/team/architecture-review.md +0 -37
  372. package/cli-tool/components/commands/team/decision-quality-analyzer.md +0 -37
  373. package/cli-tool/components/commands/team/dependency-mapper.md +0 -37
  374. package/cli-tool/components/commands/team/estimate-assistant.md +0 -37
  375. package/cli-tool/components/commands/team/issue-triage.md +0 -37
  376. package/cli-tool/components/commands/team/memory-spring-cleaning.md +0 -37
  377. package/cli-tool/components/commands/team/migration-assistant.md +0 -37
  378. package/cli-tool/components/commands/team/retrospective-analyzer.md +0 -37
  379. package/cli-tool/components/commands/team/session-learning-capture.md +0 -37
  380. package/cli-tool/components/commands/team/sprint-planning.md +0 -189
  381. package/cli-tool/components/commands/team/standup-report.md +0 -37
  382. package/cli-tool/components/commands/team/team-knowledge-mapper.md +0 -37
  383. package/cli-tool/components/commands/team/team-velocity-tracker.md +0 -37
  384. package/cli-tool/components/commands/team/team-workload-balancer.md +0 -37
  385. package/cli-tool/components/commands/testing/add-mutation-testing.md +0 -37
  386. package/cli-tool/components/commands/testing/add-property-based-testing.md +0 -37
  387. package/cli-tool/components/commands/testing/e2e-setup.md +0 -37
  388. package/cli-tool/components/commands/testing/generate-test-cases.md +0 -37
  389. package/cli-tool/components/commands/testing/generate-tests.md +0 -82
  390. package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +0 -37
  391. package/cli-tool/components/commands/testing/setup-load-testing.md +0 -37
  392. package/cli-tool/components/commands/testing/setup-visual-testing.md +0 -37
  393. package/cli-tool/components/commands/testing/test-automation-orchestrator.md +0 -37
  394. package/cli-tool/components/commands/testing/test-changelog-automation.md +0 -37
  395. package/cli-tool/components/commands/testing/test-coverage.md +0 -37
  396. package/cli-tool/components/commands/testing/test-quality-analyzer.md +0 -37
  397. package/cli-tool/components/commands/testing/testing_plan_integration.md +0 -37
  398. package/cli-tool/components/commands/testing/write-tests.md +0 -37
  399. package/cli-tool/components/commands/utilities/all-tools.md +0 -31
  400. package/cli-tool/components/commands/utilities/architecture-scenario-explorer.md +0 -375
  401. package/cli-tool/components/commands/utilities/check-file.md +0 -53
  402. package/cli-tool/components/commands/utilities/clean-branches.md +0 -243
  403. package/cli-tool/components/commands/utilities/clean.md +0 -1
  404. package/cli-tool/components/commands/utilities/code-permutation-tester.md +0 -341
  405. package/cli-tool/components/commands/utilities/code-review.md +0 -70
  406. package/cli-tool/components/commands/utilities/code-to-task.md +0 -583
  407. package/cli-tool/components/commands/utilities/context-prime.md +0 -1
  408. package/cli-tool/components/commands/utilities/debug-error.md +0 -121
  409. package/cli-tool/components/commands/utilities/directory-deep-dive.md +0 -34
  410. package/cli-tool/components/commands/utilities/explain-code.md +0 -194
  411. package/cli-tool/components/commands/utilities/fix-issue.md +0 -85
  412. package/cli-tool/components/commands/utilities/generate-linear-worklog.md +0 -113
  413. package/cli-tool/components/commands/utilities/git-status.md +0 -39
  414. package/cli-tool/components/commands/utilities/initref.md +0 -3
  415. package/cli-tool/components/commands/utilities/prime.md +0 -41
  416. package/cli-tool/components/commands/utilities/refactor-code.md +0 -116
  417. package/cli-tool/components/commands/utilities/ultra-think.md +0 -153
  418. package/cli-tool/components/hooks/HOOK_PATTERNS_COMPRESSED.json +0 -1
  419. package/cli-tool/components/hooks/automation/agents-md-loader.json +0 -17
  420. package/cli-tool/components/hooks/automation/build-on-change.json +0 -16
  421. package/cli-tool/components/hooks/automation/dependency-checker.json +0 -16
  422. package/cli-tool/components/hooks/automation/deployment-health-monitor.json +0 -29
  423. package/cli-tool/components/hooks/automation/discord-detailed-notifications.json +0 -26
  424. package/cli-tool/components/hooks/automation/discord-error-notifications.json +0 -37
  425. package/cli-tool/components/hooks/automation/discord-notifications.json +0 -25
  426. package/cli-tool/components/hooks/automation/simple-notifications.json +0 -16
  427. package/cli-tool/components/hooks/automation/slack-detailed-notifications.json +0 -26
  428. package/cli-tool/components/hooks/automation/slack-error-notifications.json +0 -37
  429. package/cli-tool/components/hooks/automation/slack-notifications.json +0 -25
  430. package/cli-tool/components/hooks/automation/telegram-detailed-notifications.json +0 -26
  431. package/cli-tool/components/hooks/automation/telegram-error-notifications.json +0 -37
  432. package/cli-tool/components/hooks/automation/telegram-notifications.json +0 -25
  433. package/cli-tool/components/hooks/automation/vercel-auto-deploy.json +0 -17
  434. package/cli-tool/components/hooks/automation/vercel-environment-sync.json +0 -29
  435. package/cli-tool/components/hooks/development-tools/change-tracker.json +0 -25
  436. package/cli-tool/components/hooks/development-tools/command-logger.json +0 -16
  437. package/cli-tool/components/hooks/development-tools/file-backup.json +0 -16
  438. package/cli-tool/components/hooks/development-tools/lint-on-save.json +0 -16
  439. package/cli-tool/components/hooks/development-tools/nextjs-code-quality-enforcer.json +0 -17
  440. package/cli-tool/components/hooks/development-tools/smart-formatting.json +0 -16
  441. package/cli-tool/components/hooks/git/conventional-commits.json +0 -16
  442. package/cli-tool/components/hooks/git/conventional-commits.py +0 -84
  443. package/cli-tool/components/hooks/git/prevent-direct-push.json +0 -16
  444. package/cli-tool/components/hooks/git/prevent-direct-push.py +0 -86
  445. package/cli-tool/components/hooks/git/validate-branch-name.json +0 -16
  446. package/cli-tool/components/hooks/git/validate-branch-name.py +0 -96
  447. package/cli-tool/components/hooks/git-workflow/auto-git-add.json +0 -16
  448. package/cli-tool/components/hooks/git-workflow/smart-commit.json +0 -25
  449. package/cli-tool/components/hooks/performance/performance-budget-guard.json +0 -27
  450. package/cli-tool/components/hooks/performance/performance-monitor.json +0 -27
  451. package/cli-tool/components/hooks/post-tool/format-javascript-files.json +0 -16
  452. package/cli-tool/components/hooks/post-tool/format-python-files.json +0 -16
  453. package/cli-tool/components/hooks/post-tool/git-add-changes.json +0 -25
  454. package/cli-tool/components/hooks/post-tool/run-tests-after-changes.json +0 -16
  455. package/cli-tool/components/hooks/pre-tool/backup-before-edit.json +0 -16
  456. package/cli-tool/components/hooks/pre-tool/notify-before-bash.json +0 -16
  457. package/cli-tool/components/hooks/pre-tool/update-search-year.json +0 -17
  458. package/cli-tool/components/hooks/security/file-protection.json +0 -16
  459. package/cli-tool/components/hooks/security/security-scanner.json +0 -16
  460. package/cli-tool/components/hooks/testing/test-runner.json +0 -16
  461. package/cli-tool/components/mcps/browser_automation/browser-use-mcp-server.json +0 -20
  462. package/cli-tool/components/mcps/browser_automation/browsermcp.json +0 -9
  463. package/cli-tool/components/mcps/browser_automation/mcp-server-browserbase.json +0 -14
  464. package/cli-tool/components/mcps/browser_automation/mcp-server-playwright.json +0 -9
  465. package/cli-tool/components/mcps/browser_automation/playwright-mcp-server.json +0 -9
  466. package/cli-tool/components/mcps/browser_automation/playwright-mcp.json +0 -11
  467. package/cli-tool/components/mcps/database/mysql-integration.json +0 -12
  468. package/cli-tool/components/mcps/database/neon.json +0 -9
  469. package/cli-tool/components/mcps/database/postgresql-integration.json +0 -12
  470. package/cli-tool/components/mcps/database/supabase.json +0 -17
  471. package/cli-tool/components/mcps/deepgraph/deepgraph-nextjs.json +0 -13
  472. package/cli-tool/components/mcps/deepgraph/deepgraph-react.json +0 -13
  473. package/cli-tool/components/mcps/deepgraph/deepgraph-typescript.json +0 -13
  474. package/cli-tool/components/mcps/deepgraph/deepgraph-vue.json +0 -13
  475. package/cli-tool/components/mcps/devtools/azure-kubernetes-service.json +0 -11
  476. package/cli-tool/components/mcps/devtools/box.json +0 -14
  477. package/cli-tool/components/mcps/devtools/circleci.json +0 -13
  478. package/cli-tool/components/mcps/devtools/codacy.json +0 -12
  479. package/cli-tool/components/mcps/devtools/context7.json +0 -9
  480. package/cli-tool/components/mcps/devtools/dynatrace.json +0 -13
  481. package/cli-tool/components/mcps/devtools/elasticsearch.json +0 -18
  482. package/cli-tool/components/mcps/devtools/figma-dev-mode.json +0 -8
  483. package/cli-tool/components/mcps/devtools/firecrawl.json +0 -12
  484. package/cli-tool/components/mcps/devtools/firefly-mcp.json +0 -13
  485. package/cli-tool/components/mcps/devtools/huggingface.json +0 -11
  486. package/cli-tool/components/mcps/devtools/imagesorcery.json +0 -11
  487. package/cli-tool/components/mcps/devtools/ios-simulator-mcp.json +0 -9
  488. package/cli-tool/components/mcps/devtools/jfrog.json +0 -8
  489. package/cli-tool/components/mcps/devtools/just-mcp.json +0 -9
  490. package/cli-tool/components/mcps/devtools/launchdarkly.json +0 -12
  491. package/cli-tool/components/mcps/devtools/leetcode.json +0 -8
  492. package/cli-tool/components/mcps/devtools/logfire.json +0 -9
  493. package/cli-tool/components/mcps/devtools/markitdown.json +0 -14
  494. package/cli-tool/components/mcps/devtools/mcp-server-atlassian-bitbucket.json +0 -9
  495. package/cli-tool/components/mcps/devtools/mcp-server-trello.json +0 -12
  496. package/cli-tool/components/mcps/devtools/microsoft-clarity.json +0 -11
  497. package/cli-tool/components/mcps/devtools/microsoft-dev-box.json +0 -9
  498. package/cli-tool/components/mcps/devtools/mongodb.json +0 -12
  499. package/cli-tool/components/mcps/devtools/postman.json +0 -12
  500. package/cli-tool/components/mcps/devtools/sentry.json +0 -8
  501. package/cli-tool/components/mcps/devtools/serena.json +0 -9
  502. package/cli-tool/components/mcps/devtools/stripe.json +0 -12
  503. package/cli-tool/components/mcps/devtools/terraform.json +0 -14
  504. package/cli-tool/components/mcps/devtools/webflow.json +0 -8
  505. package/cli-tool/components/mcps/filesystem/filesystem-access.json +0 -13
  506. package/cli-tool/components/mcps/integration/github-integration.json +0 -12
  507. package/cli-tool/components/mcps/integration/memory-integration.json +0 -9
  508. package/cli-tool/components/mcps/marketing/facebook-ads-mcp-server.json +0 -13
  509. package/cli-tool/components/mcps/marketing/google-ads-mcp-server.json +0 -11
  510. package/cli-tool/components/mcps/productivity/monday.json +0 -14
  511. package/cli-tool/components/mcps/productivity/notion.json +0 -12
  512. package/cli-tool/components/mcps/web/web-fetch.json +0 -9
  513. package/cli-tool/components/settings/api/bedrock-configuration.json +0 -7
  514. package/cli-tool/components/settings/api/corporate-proxy.json +0 -7
  515. package/cli-tool/components/settings/api/custom-headers.json +0 -6
  516. package/cli-tool/components/settings/api/vertex-configuration.json +0 -17
  517. package/cli-tool/components/settings/authentication/api-key-helper.json +0 -7
  518. package/cli-tool/components/settings/authentication/force-claudeai-login.json +0 -4
  519. package/cli-tool/components/settings/authentication/force-console-login.json +0 -4
  520. package/cli-tool/components/settings/cleanup/retention-7-days.json +0 -4
  521. package/cli-tool/components/settings/cleanup/retention-90-days.json +0 -4
  522. package/cli-tool/components/settings/environment/bash-timeouts.json +0 -8
  523. package/cli-tool/components/settings/environment/development-utils.json +0 -8
  524. package/cli-tool/components/settings/environment/performance-optimization.json +0 -8
  525. package/cli-tool/components/settings/environment/privacy-focused.json +0 -10
  526. package/cli-tool/components/settings/git/git-flow-settings.json +0 -79
  527. package/cli-tool/components/settings/global/aws-credentials.json +0 -5
  528. package/cli-tool/components/settings/global/custom-model.json +0 -7
  529. package/cli-tool/components/settings/global/git-commit-settings.json +0 -4
  530. package/cli-tool/components/settings/mcp/disable-risky-servers.json +0 -8
  531. package/cli-tool/components/settings/mcp/enable-all-project-servers.json +0 -4
  532. package/cli-tool/components/settings/mcp/enable-specific-servers.json +0 -8
  533. package/cli-tool/components/settings/mcp/mcp-timeouts.json +0 -8
  534. package/cli-tool/components/settings/model/use-haiku.json +0 -4
  535. package/cli-tool/components/settings/model/use-sonnet.json +0 -4
  536. package/cli-tool/components/settings/permissions/additional-directories.json +0 -11
  537. package/cli-tool/components/settings/permissions/allow-git-operations.json +0 -14
  538. package/cli-tool/components/settings/permissions/allow-npm-commands.json +0 -11
  539. package/cli-tool/components/settings/permissions/deny-sensitive-files.json +0 -11
  540. package/cli-tool/components/settings/permissions/development-mode.json +0 -31
  541. package/cli-tool/components/settings/permissions/read-only-mode.json +0 -18
  542. package/cli-tool/components/settings/statusline/asset-pipeline-controller-statusline.json +0 -7
  543. package/cli-tool/components/settings/statusline/bug-circus-statusline.json +0 -7
  544. package/cli-tool/components/settings/statusline/code-casino-statusline.json +0 -7
  545. package/cli-tool/components/settings/statusline/code-spaceship-statusline.json +0 -7
  546. package/cli-tool/components/settings/statusline/colorful-statusline.json +0 -7
  547. package/cli-tool/components/settings/statusline/command-statusline.json +0 -8
  548. package/cli-tool/components/settings/statusline/context-monitor.json +0 -7
  549. package/cli-tool/components/settings/statusline/context-monitor.py +0 -236
  550. package/cli-tool/components/settings/statusline/data-ocean-statusline.json +0 -7
  551. package/cli-tool/components/settings/statusline/emotion-theater-statusline.json +0 -7
  552. package/cli-tool/components/settings/statusline/game-performance-monitor-statusline.json +0 -7
  553. package/cli-tool/components/settings/statusline/git-branch-statusline.json +0 -7
  554. package/cli-tool/components/settings/statusline/git-flow-status.json +0 -7
  555. package/cli-tool/components/settings/statusline/minimal-statusline.json +0 -7
  556. package/cli-tool/components/settings/statusline/multiplatform-build-status-statusline.json +0 -7
  557. package/cli-tool/components/settings/statusline/neon-database-dev.json +0 -7
  558. package/cli-tool/components/settings/statusline/neon-database-resources.json +0 -7
  559. package/cli-tool/components/settings/statusline/productivity-rainbow-statusline.json +0 -7
  560. package/cli-tool/components/settings/statusline/programmer-tamagotchi-statusline.json +0 -7
  561. package/cli-tool/components/settings/statusline/programming-fitness-tracker-statusline.json +0 -7
  562. package/cli-tool/components/settings/statusline/project-info-statusline.json +0 -7
  563. package/cli-tool/components/settings/statusline/rpg-status-bar-statusline.json +0 -7
  564. package/cli-tool/components/settings/statusline/time-statusline.json +0 -7
  565. package/cli-tool/components/settings/statusline/unity-project-dashboard-statusline.json +0 -7
  566. package/cli-tool/components/settings/statusline/vercel-deployment-monitor.json +0 -7
  567. package/cli-tool/components/settings/statusline/vercel-error-alert-system.json +0 -7
  568. package/cli-tool/components/settings/statusline/vercel-multi-env-status.json +0 -7
  569. package/cli-tool/components/settings/statusline/virtual-code-garden-statusline.json +0 -7
  570. package/cli-tool/components/settings/statusline/zero-config-deployment-monitor.json +0 -7
  571. package/cli-tool/components/settings/telemetry/custom-telemetry.json +0 -7
  572. package/cli-tool/components/settings/telemetry/disable-telemetry.json +0 -6
  573. package/cli-tool/components/settings/telemetry/enable-telemetry.json +0 -6
  574. package/cli-tool/docs_to_claude/ANALYTICS_STATE_DETECTION.md +0 -183
  575. package/cli-tool/docs_to_claude/ARCHITECTURE.md +0 -472
  576. package/cli-tool/docs_to_claude/BLOG_WRITING_GUIDE.md +0 -438
  577. package/cli-tool/docs_to_claude/CLAUDE_DATA_STRUCTURE.md +0 -400
  578. package/cli-tool/docs_to_claude/COMMANDS_GUIDE.md +0 -1035
  579. package/cli-tool/docs_to_claude/CONVERSATION_STATE_IMPROVEMENTS.md +0 -154
  580. package/cli-tool/docs_to_claude/DEBUG_TYPING_DETECTION.md +0 -95
  581. package/cli-tool/docs_to_claude/DOWNLOAD_TRACKING.md +0 -291
  582. package/cli-tool/docs_to_claude/ENHANCED_STATE_DETECTION.md +0 -122
  583. package/cli-tool/docs_to_claude/HEALTH_CHECK_IMPLEMENTATION.md +0 -135
  584. package/cli-tool/docs_to_claude/HOOKS_GUIDE.md +0 -1249
  585. package/cli-tool/docs_to_claude/STATUSLINE_GUIDE.md +0 -1123
  586. package/cli-tool/docs_to_claude/SUBAGENTS_GUIDE.md +0 -566
  587. package/cli-tool/docs_to_claude/SUB_AGENTS.md +0 -329
  588. package/cli-tool/jest.config.js +0 -84
  589. package/cli-tool/package-lock.json +0 -5471
  590. package/cli-tool/package.json +0 -96
  591. package/cli-tool/templates/common/.claude/commands/git-workflow.md +0 -239
  592. package/cli-tool/templates/common/.claude/commands/project-setup.md +0 -316
  593. package/cli-tool/templates/common/.mcp.json +0 -41
  594. package/cli-tool/templates/common/CLAUDE.md +0 -109
  595. package/cli-tool/templates/common/README.md +0 -96
  596. package/cli-tool/templates/go/.mcp.json +0 -78
  597. package/cli-tool/templates/go/README.md +0 -25
  598. package/cli-tool/templates/javascript-typescript/.claude/commands/api-endpoint.md +0 -51
  599. package/cli-tool/templates/javascript-typescript/.claude/commands/debug.md +0 -52
  600. package/cli-tool/templates/javascript-typescript/.claude/commands/lint.md +0 -48
  601. package/cli-tool/templates/javascript-typescript/.claude/commands/npm-scripts.md +0 -48
  602. package/cli-tool/templates/javascript-typescript/.claude/commands/refactor.md +0 -55
  603. package/cli-tool/templates/javascript-typescript/.claude/commands/test.md +0 -61
  604. package/cli-tool/templates/javascript-typescript/.claude/commands/typescript-migrate.md +0 -51
  605. package/cli-tool/templates/javascript-typescript/.claude/settings.json +0 -142
  606. package/cli-tool/templates/javascript-typescript/.mcp.json +0 -80
  607. package/cli-tool/templates/javascript-typescript/CLAUDE.md +0 -185
  608. package/cli-tool/templates/javascript-typescript/README.md +0 -259
  609. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/components.md +0 -63
  610. package/cli-tool/templates/javascript-typescript/examples/angular-app/.claude/commands/services.md +0 -62
  611. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/api-endpoint.md +0 -46
  612. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/database.md +0 -56
  613. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/middleware.md +0 -61
  614. package/cli-tool/templates/javascript-typescript/examples/node-api/.claude/commands/route.md +0 -57
  615. package/cli-tool/templates/javascript-typescript/examples/node-api/CLAUDE.md +0 -102
  616. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/component.md +0 -29
  617. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/hooks.md +0 -44
  618. package/cli-tool/templates/javascript-typescript/examples/react-app/.claude/commands/state-management.md +0 -45
  619. package/cli-tool/templates/javascript-typescript/examples/react-app/CLAUDE.md +0 -81
  620. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-performance-optimization.md +0 -530
  621. package/cli-tool/templates/javascript-typescript/examples/react-app/agents/react-state-management.md +0 -295
  622. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/components.md +0 -46
  623. package/cli-tool/templates/javascript-typescript/examples/vue-app/.claude/commands/composables.md +0 -51
  624. package/cli-tool/templates/python/.claude/commands/lint.md +0 -111
  625. package/cli-tool/templates/python/.claude/commands/test.md +0 -73
  626. package/cli-tool/templates/python/.claude/settings.json +0 -153
  627. package/cli-tool/templates/python/.mcp.json +0 -78
  628. package/cli-tool/templates/python/CLAUDE.md +0 -276
  629. package/cli-tool/templates/python/examples/django-app/.claude/commands/admin.md +0 -264
  630. package/cli-tool/templates/python/examples/django-app/.claude/commands/django-model.md +0 -124
  631. package/cli-tool/templates/python/examples/django-app/.claude/commands/views.md +0 -222
  632. package/cli-tool/templates/python/examples/django-app/CLAUDE.md +0 -313
  633. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/api-endpoints.md +0 -513
  634. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/auth.md +0 -775
  635. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/database.md +0 -657
  636. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/deployment.md +0 -160
  637. package/cli-tool/templates/python/examples/fastapi-app/.claude/commands/testing.md +0 -927
  638. package/cli-tool/templates/python/examples/fastapi-app/CLAUDE.md +0 -229
  639. package/cli-tool/templates/python/examples/flask-app/.claude/commands/app-factory.md +0 -384
  640. package/cli-tool/templates/python/examples/flask-app/.claude/commands/blueprint.md +0 -243
  641. package/cli-tool/templates/python/examples/flask-app/.claude/commands/database.md +0 -410
  642. package/cli-tool/templates/python/examples/flask-app/.claude/commands/deployment.md +0 -620
  643. package/cli-tool/templates/python/examples/flask-app/.claude/commands/flask-route.md +0 -217
  644. package/cli-tool/templates/python/examples/flask-app/.claude/commands/testing.md +0 -559
  645. package/cli-tool/templates/python/examples/flask-app/CLAUDE.md +0 -391
  646. package/cli-tool/templates/ruby/.claude/commands/model.md +0 -360
  647. package/cli-tool/templates/ruby/.claude/commands/test.md +0 -480
  648. package/cli-tool/templates/ruby/.claude/settings.json +0 -146
  649. package/cli-tool/templates/ruby/.mcp.json +0 -83
  650. package/cli-tool/templates/ruby/CLAUDE.md +0 -284
  651. package/cli-tool/templates/ruby/examples/rails-app/.claude/commands/authentication.md +0 -490
  652. package/cli-tool/templates/ruby/examples/rails-app/CLAUDE.md +0 -376
  653. package/cli-tool/templates/rust/.mcp.json +0 -78
  654. package/cli-tool/templates/rust/README.md +0 -26
  655. package/cli-tool/test-commands.sh +0 -85
  656. package/cli-tool/test-detailed.sh +0 -267
  657. package/dev-server.js +0 -46
  658. package/docs/CNAME +0 -1
  659. package/docs/README.md +0 -49
  660. package/docs/_config.yml +0 -43
  661. package/docs/api/agents.json +0 -942
  662. package/docs/blog/assets/aitmpl-nextjs-search.png +0 -0
  663. package/docs/blog/assets/aitmpl-supabase-search.png +0 -0
  664. package/docs/blog/assets/e2b-claude-code-sandbox-cover.png +0 -0
  665. package/docs/blog/assets/nextjs-vercel-claude-code-templates-cover.png +0 -0
  666. package/docs/blog/assets/supabase-claude-code-templates-cover.png +0 -0
  667. package/docs/blog/e2b-claude-code-sandbox/index.html +0 -908
  668. package/docs/blog/index.html +0 -274
  669. package/docs/blog/nextjs-vercel-claude-code-integration/index.html +0 -1032
  670. package/docs/blog/supabase-claude-code-integration/index.html +0 -848
  671. package/docs/claude-jobs.json +0 -163
  672. package/docs/component.html +0 -506
  673. package/docs/components-metadata.json +0 -303
  674. package/docs/components.json +0 -4952
  675. package/docs/css/blog.css +0 -821
  676. package/docs/css/component-page.css +0 -1063
  677. package/docs/css/stack-page.css +0 -776
  678. package/docs/css/styles.css +0 -4540
  679. package/docs/css/trending.css +0 -1441
  680. package/docs/css/workflows-modal.css +0 -739
  681. package/docs/css/workflows.css +0 -1234
  682. package/docs/download-stats.html +0 -527
  683. package/docs/index.html +0 -627
  684. package/docs/jobs.html +0 -1059
  685. package/docs/js/carousel.js +0 -177
  686. package/docs/js/cart-manager.js +0 -658
  687. package/docs/js/component-page.js +0 -808
  688. package/docs/js/data-loader.js +0 -633
  689. package/docs/js/generate-search-data.js +0 -82
  690. package/docs/js/index-events.js +0 -1812
  691. package/docs/js/modal-helpers.js +0 -345
  692. package/docs/js/script.js +0 -2167
  693. package/docs/js/search-functionality.js +0 -1165
  694. package/docs/js/stack-router.js +0 -561
  695. package/docs/js/trending.js +0 -752
  696. package/docs/js/utils.js +0 -43
  697. package/docs/js/workflows-events.js +0 -1146
  698. package/docs/js/workflows.js +0 -627
  699. package/docs/robots.txt +0 -28
  700. package/docs/sandbox-interface.html +0 -1418
  701. package/docs/sitemap.xml +0 -193
  702. package/docs/static/img/logo.png +0 -0
  703. package/docs/static/img/logo.svg +0 -23
  704. package/docs/trending-data.json +0 -885
  705. package/docs/trending.html +0 -238
  706. package/docs/vercel.json +0 -36
  707. package/docs/workflows.html +0 -391
  708. package/docu/README.md +0 -41
  709. package/docu/docs/cli-options.md +0 -90
  710. package/docu/docs/components/agents.md +0 -113
  711. package/docu/docs/components/commands.md +0 -90
  712. package/docu/docs/components/hooks.md +0 -114
  713. package/docu/docs/components/mcps.md +0 -109
  714. package/docu/docs/components/overview.md +0 -73
  715. package/docu/docs/components/settings.md +0 -105
  716. package/docu/docs/components/templates.md +0 -119
  717. package/docu/docs/intro.md +0 -40
  718. package/docu/docs/safety-features.md +0 -13
  719. package/docu/docs/support.md +0 -13
  720. package/docu/docs/tools/analytics.md +0 -23
  721. package/docu/docs/tools/chats.md +0 -33
  722. package/docu/docs/tools/health-check.md +0 -60
  723. package/docu/docs/tools/overview.md +0 -39
  724. package/docu/docs/tools/sandbox.md +0 -61
  725. package/docu/docs/tools/tunnel.md +0 -38
  726. package/docu/docusaurus.config.ts +0 -169
  727. package/docu/package-lock.json +0 -16185
  728. package/docu/package.json +0 -47
  729. package/docu/sidebars.ts +0 -49
  730. package/docu/src/components/HomepageFeatures/index.tsx +0 -82
  731. package/docu/src/components/HomepageFeatures/styles.module.css +0 -131
  732. package/docu/src/css/custom.css +0 -849
  733. package/docu/src/pages/index.module.css +0 -111
  734. package/docu/src/pages/index.tsx +0 -65
  735. package/docu/src/pages/markdown-page.md +0 -7
  736. package/docu/static/img/favicon.ico +0 -0
  737. package/docu/static/img/logo.svg +0 -23
  738. package/docu/tsconfig.json +0 -8
  739. package/docu/vercel.json +0 -11
  740. package/generate_agents_api.py +0 -65
  741. package/generate_claude_jobs.py +0 -985
  742. package/generate_components_json.py +0 -391
  743. package/social-preview.png +0 -0
  744. package/test_serpapi.py +0 -36
  745. package/vercel.json +0 -111
  746. /package/{cli-tool/components → components}/sandbox/README.md +0 -0
  747. /package/{cli-tool/components → components}/sandbox/e2b/.env.example +0 -0
  748. /package/{cli-tool/components → components}/sandbox/e2b/SANDBOX_DEBUGGING.md +0 -0
  749. /package/{cli-tool/components → components}/sandbox/e2b/claude-code-sandbox.md +0 -0
  750. /package/{cli-tool/components → components}/sandbox/e2b/e2b-launcher.py +0 -0
  751. /package/{cli-tool/components → components}/sandbox/e2b/e2b-monitor.py +0 -0
  752. /package/{cli-tool/components → components}/sandbox/e2b/requirements.txt +0 -0
  753. /package/{cli-tool/src → src}/agents.js +0 -0
  754. /package/{cli-tool/src → src}/analytics/core/AgentAnalyzer.js +0 -0
  755. /package/{cli-tool/src → src}/analytics/core/ConversationAnalyzer.js +0 -0
  756. /package/{cli-tool/src → src}/analytics/core/FileWatcher.js +0 -0
  757. /package/{cli-tool/src → src}/analytics/core/ProcessDetector.js +0 -0
  758. /package/{cli-tool/src → src}/analytics/core/SessionAnalyzer.js +0 -0
  759. /package/{cli-tool/src → src}/analytics/core/StateCalculator.js +0 -0
  760. /package/{cli-tool/src → src}/analytics/data/DataCache.js +0 -0
  761. /package/{cli-tool/src → src}/analytics/notifications/NotificationManager.js +0 -0
  762. /package/{cli-tool/src → src}/analytics/notifications/WebSocketServer.js +0 -0
  763. /package/{cli-tool/src → src}/analytics/utils/PerformanceMonitor.js +0 -0
  764. /package/{cli-tool/src → src}/analytics-web/FRONT_ARCHITECTURE.md +0 -0
  765. /package/{cli-tool/src → src}/analytics-web/assets/js/main.js.deprecated +0 -0
  766. /package/{cli-tool/src → src}/analytics-web/chats_mobile.html +0 -0
  767. /package/{cli-tool/src → src}/analytics-web/components/ActivityHeatmap.js +0 -0
  768. /package/{cli-tool/src → src}/analytics-web/components/AgentAnalytics.js +0 -0
  769. /package/{cli-tool/src → src}/analytics-web/components/App.js +0 -0
  770. /package/{cli-tool/src → src}/analytics-web/components/Charts.js +0 -0
  771. /package/{cli-tool/src → src}/analytics-web/components/ConversationTable.js +0 -0
  772. /package/{cli-tool/src → src}/analytics-web/components/DashboardPage.js +0 -0
  773. /package/{cli-tool/src → src}/analytics-web/components/HeaderComponent.js +0 -0
  774. /package/{cli-tool/src → src}/analytics-web/components/SessionTimer.js +0 -0
  775. /package/{cli-tool/src → src}/analytics-web/components/Sidebar.js +0 -0
  776. /package/{cli-tool/src → src}/analytics-web/components/ToolDisplay.js +0 -0
  777. /package/{cli-tool/src → src}/analytics-web/index.html +0 -0
  778. /package/{cli-tool/src → src}/analytics-web/index.html.original +0 -0
  779. /package/{cli-tool/src → src}/analytics-web/services/DataService.js +0 -0
  780. /package/{cli-tool/src → src}/analytics-web/services/StateService.js +0 -0
  781. /package/{cli-tool/src → src}/analytics-web/services/WebSocketService.js +0 -0
  782. /package/{cli-tool/src → src}/analytics.js +0 -0
  783. /package/{docu/static/.nojekyll → src/analytics.log} +0 -0
  784. /package/{cli-tool/src → src}/chats-mobile.js +0 -0
  785. /package/{cli-tool/src → src}/claude-api-proxy.js +0 -0
  786. /package/{cli-tool/src → src}/command-scanner.js +0 -0
  787. /package/{cli-tool/src → src}/command-stats.js +0 -0
  788. /package/{cli-tool/src → src}/console-bridge.js +0 -0
  789. /package/{cli-tool/src → src}/file-operations.js +0 -0
  790. /package/{cli-tool/src → src}/health-check.js +0 -0
  791. /package/{cli-tool/src → src}/hook-scanner.js +0 -0
  792. /package/{cli-tool/src → src}/hook-stats.js +0 -0
  793. /package/{cli-tool/src → src}/mcp-stats.js +0 -0
  794. /package/{cli-tool/src → src}/prompts.js +0 -0
  795. /package/{cli-tool/src → src}/sandbox-interface.html +0 -0
  796. /package/{cli-tool/src → src}/sandbox-server.js +0 -0
  797. /package/{cli-tool/src → src}/sdk/global-agent-manager.js +0 -0
  798. /package/{cli-tool/src → src}/templates.js +0 -0
  799. /package/{cli-tool/src → src}/test-console-bridge.js +0 -0
  800. /package/{cli-tool/src → src}/tracking-service.js +0 -0
  801. /package/{cli-tool/src → src}/utils.js +0 -0
@@ -1,985 +0,0 @@
1
- import os
2
- import json
3
- import requests
4
- from datetime import datetime
5
- from dotenv import load_dotenv
6
- import time
7
- import re
8
-
9
- # Load environment variables
10
- load_dotenv()
11
-
12
- def scrape_with_rapidapi_jobs():
13
- """
14
- Use RapidAPI Jobs Search to find Claude-related positions
15
- """
16
- jobs = []
17
- try:
18
- print("🔍 Searching with RapidAPI Jobs API for Claude positions...")
19
-
20
- rapidapi_key = os.getenv("RAPIDAPI_KEY")
21
- if not rapidapi_key:
22
- print("⚠️ Warning: No RapidAPI key found, skipping")
23
- return jobs
24
-
25
- url = "https://jobs-search-realtime-data-api.p.rapidapi.com/jobs/search"
26
-
27
- # Search for Claude-specific terms
28
- search_queries = [
29
- "Claude Code",
30
- "Anthropic Claude",
31
- "Claude AI developer",
32
- "Claude assistant engineer"
33
- ]
34
-
35
- headers = {
36
- "x-rapidapi-key": rapidapi_key,
37
- "x-rapidapi-host": "jobs-search-realtime-data-api.p.rapidapi.com"
38
- }
39
-
40
- for query in search_queries:
41
- querystring = {
42
- "query": query,
43
- "location": "Remote",
44
- "num_results": "20"
45
- }
46
-
47
- response = requests.get(url, headers=headers, params=querystring)
48
-
49
- if response.status_code == 200:
50
- data = response.json()
51
- job_results = data.get('jobs', [])
52
-
53
- for job_data in job_results:
54
- # Extract job information
55
- job = {
56
- 'company': job_data.get('company_name', 'Unknown'),
57
- 'company_icon': job_data.get('company_logo', get_company_icon(job_data.get('company_name', ''))),
58
- 'location': job_data.get('location', 'Remote'),
59
- 'description': truncate_description(job_data.get('description', job_data.get('title', ''))),
60
- 'job_link': job_data.get('url', ''),
61
- 'source': 'RapidAPI Jobs',
62
- 'date_posted': job_data.get('date_posted', ''),
63
- 'salary': extract_salary_from_text(job_data.get('description', ''))
64
- }
65
-
66
- # Validate it actually mentions Claude
67
- full_text = f"{job_data.get('title', '')} {job_data.get('description', '')}"
68
- if is_claude_code_related(full_text):
69
- jobs.append(job)
70
-
71
- time.sleep(1) # Rate limiting
72
-
73
- print(f"✅ Found {len(jobs)} jobs from RapidAPI")
74
-
75
- except Exception as e:
76
- print(f"⚠️ Error with RapidAPI: {e}")
77
-
78
- return jobs
79
-
80
- def scrape_with_serper_jobs():
81
- """
82
- Use Google Serper API to find Claude positions
83
- """
84
- jobs = []
85
- try:
86
- print("🔍 Searching with Google Serper API for Claude positions...")
87
-
88
- serper_key = os.getenv("SERPER_API_KEY")
89
- if not serper_key:
90
- print("⚠️ Warning: No Serper API key found, skipping")
91
- return jobs
92
-
93
- print(f" 🔑 Using Serper key: {serper_key[:8]}...{serper_key[-4:]}")
94
-
95
- import http.client
96
-
97
- search_queries = [
98
- "Claude Code developer jobs",
99
- "Anthropic Claude engineer hiring",
100
- "Claude AI programming job",
101
- "Claude assistant developer position",
102
- "Anthropic engineer jobs",
103
- "Claude developer careers"
104
- ]
105
-
106
- conn = http.client.HTTPSConnection("google.serper.dev")
107
-
108
- for query in search_queries:
109
- print(f" 🔍 Searching: '{query}'")
110
-
111
- payload = json.dumps({
112
- "q": f"{query} site:linkedin.com OR site:indeed.com OR site:glassdoor.com OR site:jobs.anthropic.com",
113
- "type": "search",
114
- "num": 20
115
- })
116
-
117
- headers = {
118
- 'X-API-KEY': serper_key,
119
- 'Content-Type': 'application/json'
120
- }
121
-
122
- conn.request("POST", "/search", payload, headers)
123
- res = conn.getresponse()
124
- data_raw = res.read()
125
-
126
- if res.status == 200:
127
- try:
128
- data = json.loads(data_raw.decode("utf-8"))
129
- search_results = data.get('organic', [])
130
- print(f" Found {len(search_results)} search results")
131
-
132
- for result in search_results:
133
- title = result.get('title', '')
134
- snippet = result.get('snippet', '')
135
- link = result.get('link', '')
136
-
137
- # Check if this looks like a job posting
138
- full_text = f"{title} {snippet}"
139
- if is_claude_code_related(full_text) and is_job_posting(full_text):
140
-
141
- # Extract better job information
142
- job_info = extract_job_info_from_serper(title, snippet, link)
143
-
144
- if job_info: # Only add if we could extract meaningful info
145
- jobs.append(job_info)
146
-
147
- except json.JSONDecodeError as e:
148
- print(f" ❌ JSON decode error: {e}")
149
- else:
150
- print(f" ❌ Error {res.status}: {data_raw.decode('utf-8')[:200]}...")
151
-
152
- time.sleep(1) # Rate limiting
153
-
154
- conn.close()
155
- print(f"✅ Found {len(jobs)} jobs from Google Serper")
156
-
157
- except Exception as e:
158
- print(f"⚠️ Error with Google Serper API: {e}")
159
-
160
- return jobs
161
-
162
- def is_job_posting(text):
163
- """Check if text looks like a job posting"""
164
- job_indicators = [
165
- 'hiring', 'job', 'position', 'career', 'apply', 'join',
166
- 'engineer', 'developer', 'programmer', 'architect',
167
- 'we are looking', 'seeking', 'opportunity', 'role'
168
- ]
169
- text_lower = text.lower()
170
- return any(indicator in text_lower for indicator in job_indicators)
171
-
172
- def extract_job_info_from_serper(title, snippet, link):
173
- """Extract clean job information from Serper search result"""
174
-
175
- # Skip generic search results
176
- if any(skip in title.lower() for skip in ['jobs, employment', 'jobs available', 'browse', 'discover']):
177
- return None
178
-
179
- # Extract company name
180
- company = extract_company_name_improved(title, snippet, link)
181
-
182
- # Extract job title
183
- job_title = extract_job_title(title, snippet)
184
-
185
- # Extract location
186
- location = extract_location_improved(title, snippet)
187
-
188
- # Only return if we have meaningful data
189
- if not job_title or len(job_title) < 5:
190
- return None
191
-
192
- return {
193
- 'company': company,
194
- 'company_icon': get_company_icon(company),
195
- 'job_title': job_title,
196
- 'location': location,
197
- 'description': truncate_description(snippet),
198
- 'job_link': link,
199
- 'source': 'Google Serper',
200
- 'date_posted': '',
201
- 'salary': extract_salary_from_text(snippet)
202
- }
203
-
204
- def extract_company_name_improved(title, snippet, link):
205
- """Improved company name extraction"""
206
-
207
- # Priority: Check for Anthropic first (most common)
208
- if 'anthropic' in (title + snippet + link).lower():
209
- return 'Anthropic'
210
-
211
- # LinkedIn specific extraction
212
- if 'linkedin.com/jobs/view/' in link:
213
- # Extract from URL - LinkedIn URLs often contain company info
214
- # Format: linkedin.com/jobs/view/job-title-at-company-name-jobid
215
- url_parts = link.split('-at-')
216
- if len(url_parts) > 1:
217
- company_part = url_parts[1].split('-')[0] # Get first part after -at-
218
- if company_part and len(company_part) > 2:
219
- return company_part.replace('-', ' ').title()
220
-
221
- # Extract from title patterns like "Job Title at Company Name"
222
- at_match = re.search(r'\s+at\s+([^-\d]+)', title)
223
- if at_match:
224
- company = at_match.group(1).strip()
225
- # Clean up common LinkedIn patterns
226
- company = re.sub(r'\s*\d+$', '', company) # Remove trailing numbers
227
- company = re.sub(r'\s+\d+$', '', company) # Remove numbers at end
228
- if len(company) > 2 and company.lower() not in ['view', 'join', 'apply']:
229
- return company
230
-
231
- # Extract from title patterns
232
- hiring_patterns = [
233
- r'([A-Z][a-zA-Z\s&.]+)\s+hiring\s+',
234
- r'^([A-Z][a-zA-Z\s&.]+):\s+',
235
- r'Join\s+([A-Z][a-zA-Z\s&.]+)',
236
- r'([A-Z][a-zA-Z\s&.]+)\s+is\s+looking',
237
- r'([A-Z][a-zA-Z\s&.]+)\s+seeks?',
238
- ]
239
-
240
- for pattern in hiring_patterns:
241
- match = re.search(pattern, title)
242
- if match:
243
- company = match.group(1).strip()
244
- if len(company) > 2 and company not in ['View', 'Join', 'Apply', 'Software', 'Senior']:
245
- return company
246
-
247
- # Extract from snippet
248
- snippet_patterns = [
249
- r'Jobs at ([A-Z][a-zA-Z\s&.]+)',
250
- r'([A-Z][a-zA-Z\s&.]+) is hiring',
251
- r'Work at ([A-Z][a-zA-Z\s&.]+)',
252
- r'Join ([A-Z][a-zA-Z\s&.]+)',
253
- ]
254
-
255
- for pattern in snippet_patterns:
256
- match = re.search(pattern, snippet)
257
- if match:
258
- company = match.group(1).strip()
259
- if len(company) > 2:
260
- return company
261
-
262
- # Check if it's a well-known company based on domain or context
263
- known_companies = {
264
- 'google': 'Google',
265
- 'microsoft': 'Microsoft',
266
- 'meta': 'Meta',
267
- 'apple': 'Apple',
268
- 'amazon': 'Amazon',
269
- 'openai': 'OpenAI',
270
- 'github': 'GitHub',
271
- 'stripe': 'Stripe',
272
- 'shopify': 'Shopify'
273
- }
274
-
275
- text_lower = (title + snippet + link).lower()
276
- for keyword, company_name in known_companies.items():
277
- if keyword in text_lower:
278
- return company_name
279
-
280
- return 'Unknown Company'
281
-
282
- def extract_job_title(title, snippet):
283
- """Extract job title from search result"""
284
-
285
- # LinkedIn format: "Job Title at Company"
286
- at_match = re.search(r'^(.+?)\s+at\s+', title)
287
- if at_match:
288
- return at_match.group(1).strip()
289
-
290
- # Anthropic hiring format: "Anthropic hiring Job Title in Location"
291
- hiring_match = re.search(r'hiring\s+(.+?)\s+in\s+', title)
292
- if hiring_match:
293
- return hiring_match.group(1).strip()
294
-
295
- # Company: Job Title format
296
- colon_match = re.search(r':\s+(.+?)\s+-', title)
297
- if colon_match:
298
- return colon_match.group(1).strip()
299
-
300
- # Extract from title before dash
301
- dash_match = re.search(r'^(.+?)\s+-\s+', title)
302
- if dash_match:
303
- job_title = dash_match.group(1).strip()
304
- # Clean up common patterns
305
- job_title = re.sub(r'^(View|Apply to|Join)\s+', '', job_title)
306
- if len(job_title) > 5:
307
- return job_title
308
-
309
- # Fallback: use full title if it looks like a job title
310
- if any(keyword in title.lower() for keyword in ['engineer', 'developer', 'manager', 'analyst', 'scientist', 'architect']):
311
- return title.strip()
312
-
313
- return None
314
-
315
- def extract_location_improved(title, snippet):
316
- """Improved location extraction"""
317
- text = f"{title} {snippet}"
318
-
319
- # Remote indicators
320
- if any(keyword in text.lower() for keyword in ['remote', 'anywhere', 'distributed', 'work from home']):
321
- return 'Remote'
322
-
323
- # City, State patterns
324
- city_state_patterns = [
325
- r'in\s+([A-Z][a-z]+,\s*[A-Z]{2})', # "in Seattle, WA"
326
- r'([A-Z][a-z]+,\s*[A-Z]{2})\s+', # "Seattle, WA "
327
- r'([San Francisco|New York|Los Angeles|Chicago|Boston|Austin|Denver],\s*[A-Z]{2})',
328
- ]
329
-
330
- for pattern in city_state_patterns:
331
- match = re.search(pattern, text)
332
- if match:
333
- return match.group(1)
334
-
335
- # Major cities without state
336
- major_cities = ['Seattle', 'Francisco', 'Chicago', 'Boston', 'Austin', 'Denver', 'Portland', 'Miami']
337
- for city in major_cities:
338
- if city in text:
339
- return f"{city}"
340
-
341
- return 'On-site'
342
-
343
- def extract_salary_from_text(text):
344
- """Extract salary information from job description text"""
345
- if not text:
346
- return 0
347
-
348
- # Look for common salary patterns
349
- salary_patterns = [
350
- r'\$(\d{1,3}(?:,\d{3})*(?:\.\d{2})?)\s*(?:k|thousand)',
351
- r'\$(\d{1,3}(?:,\d{3})*)',
352
- r'(\d{1,3})k',
353
- ]
354
-
355
- for pattern in salary_patterns:
356
- matches = re.findall(pattern, text.lower())
357
- if matches:
358
- try:
359
- salary = int(matches[0].replace(',', '').replace('.', ''))
360
- if 'k' in text.lower() or 'thousand' in text.lower():
361
- salary *= 1000
362
- return salary
363
- except:
364
- continue
365
-
366
- return 0
367
-
368
- def extract_salary_from_google_job(job_data):
369
- """Extract salary from Google Jobs specific structure"""
370
- salary_info = job_data.get('detected_extensions', {})
371
-
372
- # Look for salary in extensions
373
- if 'salary' in salary_info:
374
- salary_text = salary_info['salary']
375
- return extract_salary_from_text(salary_text)
376
-
377
- return 0
378
-
379
- def scrape_github_jobs():
380
- """
381
- Scrape GitHub Jobs for Claude Code positions
382
- """
383
- jobs = []
384
- try:
385
- # GitHub Jobs API is deprecated, but we can search GitHub Issues/Discussions
386
- # or use GitHub's search API for job repositories
387
- print("🔍 Searching GitHub for Claude Code job postings...")
388
-
389
- # Search in common job posting repositories
390
- job_repos = [
391
- "remoteintech/remote-jobs",
392
- "lukasz-madon/awesome-remote-job",
393
- "yanirs/established-remote"
394
- ]
395
-
396
- headers = {
397
- 'Accept': 'application/vnd.github.v3+json',
398
- 'User-Agent': 'claude-code-templates-job-scraper'
399
- }
400
-
401
- github_token = os.getenv("GITHUB_TOKEN")
402
- if github_token:
403
- headers['Authorization'] = f'token {github_token}'
404
-
405
- # Search ONLY for Claude-specific job postings
406
- search_url = "https://api.github.com/search/issues"
407
- search_params = {
408
- 'q': '("claude code" OR "anthropic claude" OR "claude ai" OR "claude") AND (hiring OR job OR position OR engineer OR developer) NOT pull NOT merge NOT bug NOT feature',
409
- 'sort': 'updated',
410
- 'order': 'desc',
411
- 'per_page': 50
412
- }
413
-
414
- response = requests.get(search_url, headers=headers, params=search_params)
415
- if response.status_code == 200:
416
- results = response.json()
417
- for item in results.get('items', []):
418
- job = extract_job_from_github_issue(item)
419
- if job:
420
- jobs.append(job)
421
-
422
- print(f"✅ Found {len(jobs)} potential jobs from GitHub")
423
-
424
- except Exception as e:
425
- print(f"⚠️ Error scraping GitHub jobs: {e}")
426
-
427
- return jobs
428
-
429
- def scrape_ycombinator_jobs():
430
- """
431
- Scrape YCombinator Who's Hiring threads for Claude Code mentions
432
- """
433
- jobs = []
434
- try:
435
- print("🔍 Searching YC Who's Hiring for Claude Code positions...")
436
-
437
- # Search HackerNews API for recent "Who is hiring" threads
438
- hn_search_url = "https://hn.algolia.com/api/v1/search"
439
- search_params = {
440
- 'query': 'who is hiring',
441
- 'tags': 'story',
442
- 'hitsPerPage': 5,
443
- 'numericFilters': f'created_at_i>{int(time.time()) - 86400*60}' # Last 60 days
444
- }
445
-
446
- response = requests.get(hn_search_url, params=search_params)
447
- if response.status_code == 200:
448
- threads = response.json().get('hits', [])
449
-
450
- for thread in threads:
451
- story_id = thread.get('objectID')
452
- if story_id:
453
- # Get comments from this hiring thread
454
- comments_url = f"https://hn.algolia.com/api/v1/search"
455
- comment_params = {
456
- 'query': 'claude code OR anthropic claude OR claude ai OR claude',
457
- 'tags': f'comment,story_{story_id}',
458
- 'hitsPerPage': 50
459
- }
460
-
461
- comment_response = requests.get(comments_url, params=comment_params)
462
- if comment_response.status_code == 200:
463
- comments = comment_response.json().get('hits', [])
464
-
465
- for comment in comments:
466
- job = extract_job_from_hn_comment(comment, thread.get('title', ''))
467
- if job:
468
- jobs.append(job)
469
-
470
- time.sleep(0.5) # Rate limiting
471
-
472
- print(f"✅ Found {len(jobs)} jobs from YC Who's Hiring")
473
-
474
- except Exception as e:
475
- print(f"⚠️ Error scraping YC jobs: {e}")
476
-
477
- return jobs
478
-
479
- def extract_job_from_hn_comment(comment, thread_title):
480
- """
481
- Extract job information from HackerNews comment
482
- """
483
- text = comment.get('comment_text', '') or ''
484
-
485
- if not is_claude_code_related(text):
486
- return None
487
-
488
- # Extract basic info from comment
489
- company = extract_company_from_hn_comment(text)
490
- location = extract_location_from_hn_comment(text)
491
-
492
- return {
493
- 'company': company,
494
- 'company_icon': get_company_icon(company),
495
- 'location': location,
496
- 'description': truncate_description(text.replace('<p>', ' ').replace('</p>', ' ')),
497
- 'job_link': f"https://news.ycombinator.com/item?id={comment.get('objectID', '')}",
498
- 'source': 'YCombinator',
499
- 'date_posted': comment.get('created_at', ''),
500
- 'salary': 0
501
- }
502
-
503
- def extract_company_from_hn_comment(text):
504
- """Extract company name from HN comment"""
505
- patterns = [
506
- r'([A-Z][a-zA-Z]+)\s+is\s+hiring',
507
- r'We\s+are\s+([A-Z][a-zA-Z]+)',
508
- r'Join\s+([A-Z][a-zA-Z]+)',
509
- r'([A-Z][a-zA-Z]+)\s+\-\s+',
510
- r'Company:\s+([A-Z][a-zA-Z]+)',
511
- ]
512
-
513
- for pattern in patterns:
514
- match = re.search(pattern, text)
515
- if match:
516
- return match.group(1)
517
-
518
- return 'Startup'
519
-
520
- def extract_location_from_hn_comment(text):
521
- """Extract location from HN comment"""
522
- if any(keyword in text.lower() for keyword in ['remote', 'anywhere', 'distributed']):
523
- return 'Remote'
524
-
525
- # Look for city patterns
526
- location_patterns = [
527
- r'Location:\s*([^.\n]+)',
528
- r'Based in ([^,\n]+)',
529
- r'([A-Z][a-z]+,\s*[A-Z]{2,3})', # City, State/Country
530
- ]
531
-
532
- for pattern in location_patterns:
533
- match = re.search(pattern, text)
534
- if match:
535
- return match.group(1).strip()
536
-
537
- return 'On-site'
538
-
539
- def scrape_remote_ok():
540
- """
541
- Scrape Remote OK for Claude Code positions
542
- """
543
- jobs = []
544
- try:
545
- print("🔍 Searching Remote OK for Claude Code positions...")
546
-
547
- # Remote OK has an API but might be rate limited
548
- url = "https://remoteok.io/api"
549
- headers = {
550
- 'User-Agent': 'claude-code-templates-job-scraper'
551
- }
552
-
553
- response = requests.get(url, headers=headers)
554
- if response.status_code == 200:
555
- data = response.json()
556
- for job_data in data[1:]: # First item is metadata
557
- description = job_data.get('description', '')
558
- tags = job_data.get('tags', [])
559
- tags_str = ' '.join(tags) if isinstance(tags, list) else str(tags)
560
-
561
- if is_claude_code_related(description + ' ' + tags_str):
562
- job = {
563
- 'company': job_data.get('company', 'Unknown'),
564
- 'company_icon': job_data.get('company_logo', ''),
565
- 'location': 'Remote' if job_data.get('location') == 'Worldwide' else job_data.get('location', 'Remote'),
566
- 'description': truncate_description(job_data.get('description', '')),
567
- 'job_link': f"https://remoteok.io/remote-jobs/{job_data.get('id', '')}",
568
- 'source': 'RemoteOK',
569
- 'date_posted': job_data.get('date', ''),
570
- 'salary': job_data.get('salary_min', 0)
571
- }
572
- jobs.append(job)
573
-
574
- print(f"✅ Found {len(jobs)} jobs from Remote OK")
575
-
576
- except Exception as e:
577
- print(f"⚠️ Error scraping Remote OK: {e}")
578
-
579
- return jobs
580
-
581
- def scrape_weworkremotely():
582
- """
583
- Scrape We Work Remotely for Claude Code positions
584
- """
585
- jobs = []
586
- try:
587
- print("🔍 Searching We Work Remotely for Claude Code positions...")
588
-
589
- # We Work Remotely RSS feed approach
590
- import xml.etree.ElementTree as ET
591
-
592
- rss_url = "https://weworkremotely.com/categories/remote-programming-jobs.rss"
593
- headers = {
594
- 'User-Agent': 'claude-code-templates-job-scraper'
595
- }
596
-
597
- response = requests.get(rss_url, headers=headers)
598
- if response.status_code == 200:
599
- root = ET.fromstring(response.content)
600
-
601
- for item in root.findall('.//item'):
602
- title = item.find('title').text if item.find('title') is not None else ''
603
- description = item.find('description').text if item.find('description') is not None else ''
604
- link = item.find('link').text if item.find('link') is not None else ''
605
- pub_date = item.find('pubDate').text if item.find('pubDate') is not None else ''
606
-
607
- full_text = title + ' ' + description
608
-
609
- if is_claude_code_related(full_text):
610
- # Extract company from title (usually format: "Company: Job Title")
611
- company_match = re.match(r'^([^:]+):', title)
612
- company = company_match.group(1).strip() if company_match else 'Remote Company'
613
-
614
- job = {
615
- 'company': company,
616
- 'company_icon': get_company_icon(company),
617
- 'location': 'Remote', # WWR is all remote
618
- 'description': truncate_description(title),
619
- 'job_link': link,
620
- 'source': 'WeWorkRemotely',
621
- 'date_posted': pub_date,
622
- 'salary': 0
623
- }
624
- jobs.append(job)
625
-
626
- print(f"✅ Found {len(jobs)} jobs from We Work Remotely")
627
-
628
- except Exception as e:
629
- print(f"⚠️ Error scraping WWR: {e}")
630
-
631
- return jobs
632
-
633
- def scrape_indie_hackers():
634
- """
635
- Scrape Indie Hackers for Claude Code positions
636
- """
637
- jobs = []
638
- try:
639
- print("🔍 Searching Indie Hackers for Claude Code positions...")
640
-
641
- # Use general web search for Indie Hackers job posts mentioning Claude Code
642
- search_terms = [
643
- 'site:indiehackers.com "claude code" hiring',
644
- 'site:indiehackers.com "anthropic claude" job',
645
- 'site:indiehackers.com "claude ai" developer'
646
- ]
647
-
648
- # This would require a web search API like Google Custom Search
649
- # For now, placeholder but structure is ready
650
-
651
- print(f"✅ Indie Hackers scraping structure ready")
652
-
653
- except Exception as e:
654
- print(f"⚠️ Error scraping Indie Hackers: {e}")
655
-
656
- return jobs
657
-
658
- def extract_job_from_github_issue(item):
659
- """
660
- Extract job information from a GitHub issue/discussion
661
- """
662
- title = item.get('title', '') or ''
663
- body = item.get('body', '') or ''
664
-
665
- # Check if it's actually a job posting mentioning Claude Code
666
- if not is_claude_code_related(title + ' ' + body):
667
- return None
668
-
669
- # Extract company name from repository or issue title
670
- repo_name = item.get('repository_url', '').split('/')[-1] if item.get('repository_url') else 'Unknown'
671
-
672
- return {
673
- 'company': extract_company_name(title, body, repo_name),
674
- 'company_icon': get_company_icon(extract_company_name(title, body, repo_name)),
675
- 'location': extract_location(title, body),
676
- 'description': truncate_description(title),
677
- 'job_link': item.get('html_url', ''),
678
- 'source': 'GitHub',
679
- 'date_posted': item.get('updated_at', ''),
680
- 'salary': 0
681
- }
682
-
683
- def is_claude_code_related(text):
684
- """
685
- Check if text specifically mentions Claude (very strict filtering)
686
- """
687
- if not text:
688
- return False
689
-
690
- text_lower = str(text).lower()
691
-
692
- # ONLY Claude-specific keywords - must contain "claude"
693
- claude_keywords = [
694
- 'claude code', 'claude-code', 'anthropic claude', 'claude ai',
695
- 'claude coder', 'claude assistant', 'claude developer', 'claude engineer',
696
- 'work with claude', 'using claude', 'claude experience', 'claude integration'
697
- ]
698
-
699
- # Must explicitly mention Claude in some form
700
- has_claude_mention = any(keyword in text_lower for keyword in claude_keywords)
701
-
702
- # Additional check: just "claude" + job context
703
- has_claude_word = 'claude' in text_lower
704
- job_words = ['hiring', 'position', 'engineer', 'developer', 'role', 'job', 'career', 'experience', 'skills']
705
- has_job_context = any(word in text_lower for word in job_words)
706
-
707
- # Return True only if Claude is mentioned AND it's in a job context
708
- return has_claude_mention or (has_claude_word and has_job_context)
709
-
710
- def extract_company_name(title, body, fallback):
711
- """
712
- Extract company name from job posting
713
- """
714
- # Common patterns in job titles
715
- patterns = [
716
- r'(\w+)\s+is\s+hiring',
717
- r'(\w+)\s+hiring',
718
- r'join\s+(\w+)',
719
- r'(\w+)\s+looking\s+for',
720
- r'(\w+)\s+seeks?',
721
- ]
722
-
723
- for pattern in patterns:
724
- match = re.search(pattern, title + ' ' + body, re.IGNORECASE)
725
- if match:
726
- return match.group(1).title()
727
-
728
- return fallback.title()
729
-
730
- def extract_location(title, body):
731
- """
732
- Extract location from job posting
733
- """
734
- remote_keywords = ['remote', 'anywhere', 'distributed', 'work from home']
735
- location_patterns = [
736
- r'location[:\s]+([^,\n]+)',
737
- r'based in ([^,\n]+)',
738
- r'(\w+,\s*\w+)', # City, State/Country
739
- ]
740
-
741
- text = (title + ' ' + body).lower()
742
-
743
- # Check for remote first
744
- if any(keyword in text for keyword in remote_keywords):
745
- return 'Remote'
746
-
747
- # Look for specific locations
748
- for pattern in location_patterns:
749
- match = re.search(pattern, text, re.IGNORECASE)
750
- if match:
751
- return match.group(1).strip().title()
752
-
753
- return 'On-site'
754
-
755
- def get_company_icon(company_name):
756
- """
757
- Get company icon URL with comprehensive company icon dictionary
758
- """
759
- # Comprehensive company icons dictionary
760
- company_icons = {
761
- # AI/Tech Companies
762
- 'anthropic': 'https://www.anthropic.com/favicon.ico',
763
- 'openai': 'https://openai.com/favicon.ico',
764
- 'claude code': 'https://www.anthropic.com/favicon.ico',
765
-
766
- # Major Tech Companies
767
- 'google': 'https://www.google.com/favicon.ico',
768
- 'microsoft': 'https://www.microsoft.com/favicon.ico',
769
- 'meta': 'https://www.facebook.com/favicon.ico',
770
- 'apple': 'https://www.apple.com/favicon.ico',
771
- 'amazon': 'https://www.amazon.com/favicon.ico',
772
- 'netflix': 'https://www.netflix.com/favicon.ico',
773
- 'tesla': 'https://www.tesla.com/favicon.ico',
774
- 'nvidia': 'https://www.nvidia.com/favicon.ico',
775
-
776
- # Startups/Scale-ups
777
- 'stripe': 'https://stripe.com/favicon.ico',
778
- 'airbnb': 'https://airbnb.com/favicon.ico',
779
- 'uber': 'https://uber.com/favicon.ico',
780
- 'shopify': 'https://shopify.com/favicon.ico',
781
- 'twilio': 'https://twilio.com/favicon.ico',
782
- 'github': 'https://github.com/favicon.ico',
783
- 'gitlab': 'https://gitlab.com/favicon.ico',
784
- 'atlassian': 'https://atlassian.com/favicon.ico',
785
- 'slack': 'https://slack.com/favicon.ico',
786
- 'discord': 'https://discord.com/favicon.ico',
787
- 'notion': 'https://notion.so/favicon.ico',
788
- 'figma': 'https://figma.com/favicon.ico',
789
- 'vercel': 'https://vercel.com/favicon.ico',
790
- 'supabase': 'https://supabase.com/favicon.ico',
791
-
792
- # Consulting/Services
793
- 'accenture': 'https://accenture.com/favicon.ico',
794
- 'deloitte': 'https://deloitte.com/favicon.ico',
795
- 'mckinsey': 'https://mckinsey.com/favicon.ico',
796
-
797
- # Finance/Fintech
798
- 'goldman sachs': 'https://goldmansachs.com/favicon.ico',
799
- 'jpmorgan': 'https://jpmorgan.com/favicon.ico',
800
- 'coinbase': 'https://coinbase.com/favicon.ico',
801
- 'robinhood': 'https://robinhood.com/favicon.ico',
802
-
803
- # Generic/Fallback companies
804
- 'unknown company': 'https://www.aitmpl.com/static/img/logo.png',
805
- 'company': 'https://www.aitmpl.com/static/img/logo.png',
806
- }
807
-
808
- company_lower = company_name.lower().strip()
809
-
810
- # Direct match first
811
- if company_lower in company_icons:
812
- return company_icons[company_lower]
813
-
814
- # Partial match for company names containing key terms
815
- for key, icon in company_icons.items():
816
- if key in company_lower or company_lower in key:
817
- return icon
818
-
819
- # Default fallback to our custom icon
820
- return 'https://www.aitmpl.com/static/img/logo.png'
821
-
822
- def truncate_description(description, max_length=100):
823
- """
824
- Truncate description to specified length
825
- """
826
- if not description:
827
- return ''
828
-
829
- # Clean HTML tags and extra whitespace
830
- clean_desc = re.sub(r'<[^>]+>', '', description)
831
- clean_desc = re.sub(r'\s+', ' ', clean_desc).strip()
832
-
833
- if len(clean_desc) <= max_length:
834
- return clean_desc
835
-
836
- # Truncate at word boundary
837
- truncated = clean_desc[:max_length].rsplit(' ', 1)[0]
838
- return truncated + '...'
839
-
840
- def generate_sample_jobs():
841
- """
842
- Generate sample jobs for demonstration purposes
843
- """
844
- sample_jobs = [
845
- {
846
- 'company': 'Anthropic',
847
- 'company_icon': 'https://anthropic.com/favicon.ico',
848
- 'location': 'Remote',
849
- 'description': 'Senior AI Developer to enhance Claude Code capabilities and integrations...',
850
- 'job_link': 'https://anthropic.com/careers/claude-code-developer',
851
- 'source': 'Company Website',
852
- 'date_posted': '2025-09-10T10:00:00Z',
853
- 'salary': 150000
854
- },
855
- {
856
- 'company': 'OpenAI',
857
- 'company_icon': 'https://openai.com/favicon.ico',
858
- 'location': 'San Francisco, CA',
859
- 'description': 'Looking for engineers experienced with Claude Code and AI development tools...',
860
- 'job_link': 'https://openai.com/careers/claude-integration-engineer',
861
- 'source': 'LinkedIn',
862
- 'date_posted': '2025-09-09T14:30:00Z',
863
- 'salary': 140000
864
- },
865
- {
866
- 'company': 'StartupTech',
867
- 'company_icon': 'https://logo.clearbit.com/startuptech.com',
868
- 'location': 'Remote',
869
- 'description': 'Full-stack developer with Claude Code experience for AI-powered development team...',
870
- 'job_link': 'https://jobs.startuptech.com/claude-developer-2025',
871
- 'source': 'AngelList',
872
- 'date_posted': '2025-09-08T09:15:00Z',
873
- 'salary': 90000
874
- },
875
- {
876
- 'company': 'TechCorp',
877
- 'company_icon': 'https://logo.clearbit.com/techcorp.com',
878
- 'location': 'New York, NY',
879
- 'description': 'Senior Software Engineer - AI Tools (Claude Code, GitHub Copilot, etc.)...',
880
- 'job_link': 'https://careers.techcorp.com/positions/senior-ai-tools-engineer',
881
- 'source': 'Indeed',
882
- 'date_posted': '2025-09-07T16:45:00Z',
883
- 'salary': 120000
884
- }
885
- ]
886
-
887
- return sample_jobs
888
-
889
- def generate_claude_jobs_json():
890
- """
891
- Main function to scrape and generate Claude Code jobs JSON
892
- """
893
- print("🚀 Starting Claude Code jobs scraping...")
894
-
895
- all_jobs = []
896
-
897
- # Skip sample jobs - looking for real results only
898
-
899
- # Use professional job APIs (more reliable than scraping)
900
- api_scrapers = [
901
- scrape_with_rapidapi_jobs,
902
- scrape_with_serper_jobs,
903
- ]
904
-
905
- # Fallback to traditional scraping if APIs are not available
906
- scraping_sources = [
907
- scrape_github_jobs,
908
- scrape_ycombinator_jobs,
909
- scrape_weworkremotely,
910
- ]
911
-
912
- # Try API sources first
913
- for scraper in api_scrapers:
914
- try:
915
- jobs = scraper()
916
- all_jobs.extend(jobs)
917
- time.sleep(1)
918
- except Exception as e:
919
- print(f"⚠️ Error with API scraper {scraper.__name__}: {e}")
920
-
921
- # If no jobs from APIs, try traditional scraping
922
- if len(all_jobs) == 0:
923
- print("📡 No results from APIs, trying traditional scraping...")
924
- print("💡 Tip: Add valid API keys to .env for better results")
925
- scrapers = scraping_sources
926
- else:
927
- print(f"🎯 Got {len(all_jobs)} jobs from APIs, skipping traditional scraping")
928
- scrapers = []
929
-
930
- for scraper in scrapers:
931
- try:
932
- jobs = scraper()
933
- all_jobs.extend(jobs)
934
- time.sleep(1) # Rate limiting
935
- except Exception as e:
936
- print(f"⚠️ Error with scraper {scraper.__name__}: {e}")
937
-
938
- # Remove duplicates based on job_link
939
- seen_links = set()
940
- unique_jobs = []
941
- for job in all_jobs:
942
- if job['job_link'] not in seen_links:
943
- seen_links.add(job['job_link'])
944
- unique_jobs.append(job)
945
-
946
- # Sort by date_posted (most recent first)
947
- unique_jobs.sort(key=lambda x: x.get('date_posted', ''), reverse=True)
948
-
949
- # Structure the final data
950
- jobs_data = {
951
- 'jobs': unique_jobs,
952
- 'generated_at': datetime.now().isoformat(),
953
- 'total_count': len(unique_jobs),
954
- 'sources': list(set([job['source'] for job in unique_jobs]))
955
- }
956
-
957
- # Save to docs directory
958
- output_path = 'docs/claude-jobs.json'
959
- try:
960
- with open(output_path, 'w', encoding='utf-8') as f:
961
- json.dump(jobs_data, f, indent=2, ensure_ascii=False)
962
- print(f"✅ Successfully generated {output_path}")
963
-
964
- # Log summary
965
- print("\n--- Scraping Summary ---")
966
- print(f"Total unique jobs found: {len(unique_jobs)}")
967
-
968
- sources_count = {}
969
- for job in unique_jobs:
970
- source = job['source']
971
- sources_count[source] = sources_count.get(source, 0) + 1
972
-
973
- for source, count in sources_count.items():
974
- print(f" - {source}: {count} jobs")
975
-
976
- remote_jobs = len([job for job in unique_jobs if 'remote' in job['location'].lower()])
977
- onsite_jobs = len(unique_jobs) - remote_jobs
978
- print(f" - Remote: {remote_jobs}, On-site: {onsite_jobs}")
979
- print("-----------------------")
980
-
981
- except IOError as e:
982
- print(f"❌ Error writing to {output_path}: {e}")
983
-
984
- if __name__ == '__main__':
985
- generate_claude_jobs_json()