claude-autopm 2.8.2 → 2.8.4

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 (391) hide show
  1. package/README.md +399 -637
  2. package/install/install.js +15 -5
  3. package/package.json +2 -1
  4. package/packages/plugin-ai/LICENSE +21 -0
  5. package/packages/plugin-ai/README.md +316 -0
  6. package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
  7. package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
  8. package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
  9. package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
  10. package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
  11. package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
  12. package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
  13. package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
  14. package/packages/plugin-ai/commands/a2a-setup.md +886 -0
  15. package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
  16. package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
  17. package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
  18. package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
  19. package/packages/plugin-ai/commands/llm-optimize.md +348 -0
  20. package/packages/plugin-ai/commands/openai-optimize.md +863 -0
  21. package/packages/plugin-ai/commands/rag-optimize.md +841 -0
  22. package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
  23. package/packages/plugin-ai/package.json +66 -0
  24. package/packages/plugin-ai/plugin.json +519 -0
  25. package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
  26. package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
  27. package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
  28. package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
  29. package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
  30. package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
  31. package/packages/plugin-cloud/README.md +268 -0
  32. package/packages/plugin-cloud/agents/README.md +55 -0
  33. package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
  34. package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
  35. package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
  36. package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
  37. package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
  38. package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
  39. package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
  40. package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
  41. package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
  42. package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
  43. package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
  44. package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
  45. package/packages/plugin-cloud/commands/ssh-security.md +65 -0
  46. package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
  47. package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
  48. package/packages/plugin-cloud/package.json +64 -0
  49. package/packages/plugin-cloud/plugin.json +338 -0
  50. package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
  51. package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
  52. package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
  53. package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
  54. package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
  55. package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
  56. package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
  57. package/packages/plugin-core/README.md +274 -0
  58. package/packages/plugin-core/agents/core/agent-manager.md +296 -0
  59. package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
  60. package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
  61. package/packages/plugin-core/agents/core/test-runner.md +200 -0
  62. package/packages/plugin-core/commands/code-rabbit.md +128 -0
  63. package/packages/plugin-core/commands/prompt.md +9 -0
  64. package/packages/plugin-core/commands/re-init.md +9 -0
  65. package/packages/plugin-core/hooks/context7-reminder.md +29 -0
  66. package/packages/plugin-core/hooks/enforce-agents.js +125 -0
  67. package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
  68. package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
  69. package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
  70. package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
  71. package/packages/plugin-core/hooks/test-hook.sh +21 -0
  72. package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
  73. package/packages/plugin-core/package.json +45 -0
  74. package/packages/plugin-core/plugin.json +387 -0
  75. package/packages/plugin-core/rules/agent-coordination.md +549 -0
  76. package/packages/plugin-core/rules/agent-mandatory.md +170 -0
  77. package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
  78. package/packages/plugin-core/rules/command-pipelines.md +208 -0
  79. package/packages/plugin-core/rules/context-optimization.md +176 -0
  80. package/packages/plugin-core/rules/context7-enforcement.md +327 -0
  81. package/packages/plugin-core/rules/datetime.md +122 -0
  82. package/packages/plugin-core/rules/definition-of-done.md +272 -0
  83. package/packages/plugin-core/rules/development-environments.md +19 -0
  84. package/packages/plugin-core/rules/development-workflow.md +198 -0
  85. package/packages/plugin-core/rules/framework-path-rules.md +180 -0
  86. package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
  87. package/packages/plugin-core/rules/git-strategy.md +237 -0
  88. package/packages/plugin-core/rules/golden-rules.md +181 -0
  89. package/packages/plugin-core/rules/naming-conventions.md +111 -0
  90. package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
  91. package/packages/plugin-core/rules/performance-guidelines.md +403 -0
  92. package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
  93. package/packages/plugin-core/rules/security-checklist.md +318 -0
  94. package/packages/plugin-core/rules/standard-patterns.md +197 -0
  95. package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
  96. package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
  97. package/packages/plugin-core/rules/use-ast-grep.md +113 -0
  98. package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
  99. package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
  100. package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
  101. package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
  102. package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
  103. package/packages/plugin-core/scripts/mcp/add.sh +7 -0
  104. package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
  105. package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
  106. package/packages/plugin-core/scripts/mcp/list.sh +7 -0
  107. package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
  108. package/packages/plugin-data/README.md +315 -0
  109. package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
  110. package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
  111. package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
  112. package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
  113. package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
  114. package/packages/plugin-data/package.json +66 -0
  115. package/packages/plugin-data/plugin.json +294 -0
  116. package/packages/plugin-data/rules/data-quality-standards.md +373 -0
  117. package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
  118. package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
  119. package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
  120. package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
  121. package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
  122. package/packages/plugin-databases/README.md +330 -0
  123. package/packages/plugin-databases/agents/README.md +50 -0
  124. package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
  125. package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
  126. package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
  127. package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
  128. package/packages/plugin-databases/agents/redis-expert.md +74 -0
  129. package/packages/plugin-databases/commands/db-optimize.md +612 -0
  130. package/packages/plugin-databases/package.json +60 -0
  131. package/packages/plugin-databases/plugin.json +237 -0
  132. package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
  133. package/packages/plugin-databases/rules/database-pipeline.md +316 -0
  134. package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
  135. package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
  136. package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
  137. package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
  138. package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
  139. package/packages/plugin-devops/README.md +367 -0
  140. package/packages/plugin-devops/agents/README.md +52 -0
  141. package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
  142. package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
  143. package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
  144. package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
  145. package/packages/plugin-devops/agents/observability-engineer.md +574 -0
  146. package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
  147. package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
  148. package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
  149. package/packages/plugin-devops/commands/docker-optimize.md +493 -0
  150. package/packages/plugin-devops/commands/workflow-create.md +42 -0
  151. package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
  152. package/packages/plugin-devops/package.json +61 -0
  153. package/packages/plugin-devops/plugin.json +302 -0
  154. package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
  155. package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
  156. package/packages/plugin-devops/rules/docker-first-development.md +404 -0
  157. package/packages/plugin-devops/rules/github-operations.md +92 -0
  158. package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
  159. package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
  160. package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
  161. package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
  162. package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
  163. package/packages/plugin-frameworks/README.md +309 -0
  164. package/packages/plugin-frameworks/agents/README.md +64 -0
  165. package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
  166. package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
  167. package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
  168. package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
  169. package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
  170. package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
  171. package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
  172. package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
  173. package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
  174. package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
  175. package/packages/plugin-frameworks/package.json +59 -0
  176. package/packages/plugin-frameworks/plugin.json +224 -0
  177. package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
  178. package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
  179. package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
  180. package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
  181. package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
  182. package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
  183. package/packages/plugin-languages/README.md +333 -0
  184. package/packages/plugin-languages/agents/README.md +50 -0
  185. package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
  186. package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
  187. package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
  188. package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
  189. package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
  190. package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
  191. package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
  192. package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
  193. package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
  194. package/packages/plugin-languages/commands/python-optimize.md +593 -0
  195. package/packages/plugin-languages/package.json +65 -0
  196. package/packages/plugin-languages/plugin.json +265 -0
  197. package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
  198. package/packages/plugin-languages/rules/testing-standards.md +768 -0
  199. package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
  200. package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
  201. package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
  202. package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
  203. package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
  204. package/packages/plugin-ml/README.md +430 -0
  205. package/packages/plugin-ml/agents/automl-expert.md +326 -0
  206. package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
  207. package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
  208. package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
  209. package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
  210. package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
  211. package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
  212. package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
  213. package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
  214. package/packages/plugin-ml/agents/time-series-expert.md +303 -0
  215. package/packages/plugin-ml/commands/ml-automl.md +572 -0
  216. package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
  217. package/packages/plugin-ml/package.json +52 -0
  218. package/packages/plugin-ml/plugin.json +338 -0
  219. package/packages/plugin-pm/README.md +368 -0
  220. package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
  221. package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
  222. package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
  223. package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
  224. package/packages/plugin-pm/commands/azure/README.md +246 -0
  225. package/packages/plugin-pm/commands/azure/active-work.md +198 -0
  226. package/packages/plugin-pm/commands/azure/aliases.md +143 -0
  227. package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
  228. package/packages/plugin-pm/commands/azure/clean.md +93 -0
  229. package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
  230. package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
  231. package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
  232. package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
  233. package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
  234. package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
  235. package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
  236. package/packages/plugin-pm/commands/azure/help.md +150 -0
  237. package/packages/plugin-pm/commands/azure/import-us.md +269 -0
  238. package/packages/plugin-pm/commands/azure/init.md +211 -0
  239. package/packages/plugin-pm/commands/azure/next-task.md +262 -0
  240. package/packages/plugin-pm/commands/azure/search.md +160 -0
  241. package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
  242. package/packages/plugin-pm/commands/azure/standup.md +260 -0
  243. package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
  244. package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
  245. package/packages/plugin-pm/commands/azure/task-close.md +329 -0
  246. package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
  247. package/packages/plugin-pm/commands/azure/task-list.md +263 -0
  248. package/packages/plugin-pm/commands/azure/task-new.md +84 -0
  249. package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
  250. package/packages/plugin-pm/commands/azure/task-show.md +126 -0
  251. package/packages/plugin-pm/commands/azure/task-start.md +301 -0
  252. package/packages/plugin-pm/commands/azure/task-status.md +65 -0
  253. package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
  254. package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
  255. package/packages/plugin-pm/commands/azure/us-list.md +202 -0
  256. package/packages/plugin-pm/commands/azure/us-new.md +265 -0
  257. package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
  258. package/packages/plugin-pm/commands/azure/us-show.md +188 -0
  259. package/packages/plugin-pm/commands/azure/us-status.md +320 -0
  260. package/packages/plugin-pm/commands/azure/validate.md +86 -0
  261. package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
  262. package/packages/plugin-pm/commands/blocked.md +28 -0
  263. package/packages/plugin-pm/commands/clean.md +119 -0
  264. package/packages/plugin-pm/commands/context-create.md +136 -0
  265. package/packages/plugin-pm/commands/context-prime.md +170 -0
  266. package/packages/plugin-pm/commands/context-update.md +292 -0
  267. package/packages/plugin-pm/commands/context.md +28 -0
  268. package/packages/plugin-pm/commands/epic-close.md +86 -0
  269. package/packages/plugin-pm/commands/epic-decompose.md +370 -0
  270. package/packages/plugin-pm/commands/epic-edit.md +83 -0
  271. package/packages/plugin-pm/commands/epic-list.md +30 -0
  272. package/packages/plugin-pm/commands/epic-merge.md +222 -0
  273. package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
  274. package/packages/plugin-pm/commands/epic-refresh.md +119 -0
  275. package/packages/plugin-pm/commands/epic-show.md +28 -0
  276. package/packages/plugin-pm/commands/epic-split.md +120 -0
  277. package/packages/plugin-pm/commands/epic-start.md +195 -0
  278. package/packages/plugin-pm/commands/epic-status.md +28 -0
  279. package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
  280. package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
  281. package/packages/plugin-pm/commands/epic-sync.md +486 -0
  282. package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
  283. package/packages/plugin-pm/commands/help.md +28 -0
  284. package/packages/plugin-pm/commands/import.md +115 -0
  285. package/packages/plugin-pm/commands/in-progress.md +28 -0
  286. package/packages/plugin-pm/commands/init.md +28 -0
  287. package/packages/plugin-pm/commands/issue-analyze.md +202 -0
  288. package/packages/plugin-pm/commands/issue-close.md +119 -0
  289. package/packages/plugin-pm/commands/issue-edit.md +93 -0
  290. package/packages/plugin-pm/commands/issue-reopen.md +87 -0
  291. package/packages/plugin-pm/commands/issue-show.md +41 -0
  292. package/packages/plugin-pm/commands/issue-start.md +234 -0
  293. package/packages/plugin-pm/commands/issue-status.md +95 -0
  294. package/packages/plugin-pm/commands/issue-sync.md +411 -0
  295. package/packages/plugin-pm/commands/next.md +28 -0
  296. package/packages/plugin-pm/commands/prd-edit.md +82 -0
  297. package/packages/plugin-pm/commands/prd-list.md +28 -0
  298. package/packages/plugin-pm/commands/prd-new.md +55 -0
  299. package/packages/plugin-pm/commands/prd-parse.md +42 -0
  300. package/packages/plugin-pm/commands/prd-status.md +28 -0
  301. package/packages/plugin-pm/commands/search.md +28 -0
  302. package/packages/plugin-pm/commands/standup.md +28 -0
  303. package/packages/plugin-pm/commands/status.md +28 -0
  304. package/packages/plugin-pm/commands/sync.md +99 -0
  305. package/packages/plugin-pm/commands/test-reference-update.md +151 -0
  306. package/packages/plugin-pm/commands/validate.md +28 -0
  307. package/packages/plugin-pm/commands/what-next.md +28 -0
  308. package/packages/plugin-pm/package.json +57 -0
  309. package/packages/plugin-pm/plugin.json +503 -0
  310. package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
  311. package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
  312. package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
  313. package/packages/plugin-pm/scripts/pm/clean.js +464 -0
  314. package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
  315. package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
  316. package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
  317. package/packages/plugin-pm/scripts/pm/context.js +338 -0
  318. package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
  319. package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
  320. package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
  321. package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
  322. package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
  323. package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
  324. package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
  325. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
  326. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
  327. package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
  328. package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
  329. package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
  330. package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
  331. package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
  332. package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
  333. package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
  334. package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
  335. package/packages/plugin-pm/scripts/pm/help.js +92 -0
  336. package/packages/plugin-pm/scripts/pm/help.sh +90 -0
  337. package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
  338. package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
  339. package/packages/plugin-pm/scripts/pm/init.js +321 -0
  340. package/packages/plugin-pm/scripts/pm/init.sh +178 -0
  341. package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
  342. package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
  343. package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
  344. package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
  345. package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
  346. package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
  347. package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
  348. package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
  349. package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
  350. package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
  351. package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
  352. package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
  353. package/packages/plugin-pm/scripts/pm/next.js +189 -0
  354. package/packages/plugin-pm/scripts/pm/next.sh +72 -0
  355. package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
  356. package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
  357. package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
  358. package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
  359. package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
  360. package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
  361. package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
  362. package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
  363. package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
  364. package/packages/plugin-pm/scripts/pm/release.js +460 -0
  365. package/packages/plugin-pm/scripts/pm/search.js +192 -0
  366. package/packages/plugin-pm/scripts/pm/search.sh +89 -0
  367. package/packages/plugin-pm/scripts/pm/standup.js +362 -0
  368. package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
  369. package/packages/plugin-pm/scripts/pm/status.js +148 -0
  370. package/packages/plugin-pm/scripts/pm/status.sh +59 -0
  371. package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
  372. package/packages/plugin-pm/scripts/pm/sync.js +343 -0
  373. package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
  374. package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
  375. package/packages/plugin-pm/scripts/pm/validate.js +274 -0
  376. package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
  377. package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
  378. package/packages/plugin-testing/README.md +401 -0
  379. package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
  380. package/packages/plugin-testing/commands/jest-optimize.md +800 -0
  381. package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
  382. package/packages/plugin-testing/commands/test-coverage.md +512 -0
  383. package/packages/plugin-testing/commands/test-performance.md +1041 -0
  384. package/packages/plugin-testing/commands/test-setup.md +414 -0
  385. package/packages/plugin-testing/package.json +40 -0
  386. package/packages/plugin-testing/plugin.json +197 -0
  387. package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
  388. package/packages/plugin-testing/rules/testing-standards.md +529 -0
  389. package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
  390. package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
  391. package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
@@ -0,0 +1,200 @@
1
+ ---
2
+ name: test-runner
3
+ description: Use this agent when you need to run tests and analyze their results. This agent specializes in executing tests using the optimized test runner script, capturing comprehensive logs, and then performing deep analysis to surface key issues, failures, and actionable insights. The agent should be invoked after code changes that require validation, during debugging sessions when tests are failing, or when you need a comprehensive test health report. Examples: <example>Context: The user wants to run tests after implementing a new feature and understands any issues.user: "I've finished implementing the new authentication flow. Can you run the relevant tests and tell me if there are any problems?" assistant: "I'll use the test-runner agent to run the authentication tests and analyze the results for any issues."<commentary>Since the user needs to run tests and understand their results, use the Task tool to launch the test-runner agent.</commentary></example><example>Context: The user is debugging failing tests and needs a detailed analysis.user: "The workflow tests keep failing intermittently. Can you investigate?" assistant: "Let me use the test-runner agent to run the workflow tests multiple times and analyze the patterns in any failures."<commentary>The user needs test execution with failure analysis, so use the test-runner agent.</commentary></example>
4
+ tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Search, Task, Agent
5
+ model: inherit
6
+ color: blue
7
+ ---
8
+
9
+ ## Test-Driven Development (TDD) Methodology
10
+
11
+ **MANDATORY**: Follow strict TDD principles for all development:
12
+ 1. **Write failing tests FIRST** - Before implementing any functionality
13
+ 2. **Red-Green-Refactor cycle** - Test fails → Make it pass → Improve code
14
+ 3. **One test at a time** - Focus on small, incremental development
15
+ 4. **100% coverage for new code** - All new features must have complete test coverage
16
+ 5. **Tests as documentation** - Tests should clearly document expected behavior
17
+
18
+
19
+ You are an expert test execution and analysis specialist. Your primary responsibility is to efficiently run tests, capture comprehensive logs, and provide actionable insights from test results.
20
+
21
+ ## Documentation Access via MCP Context7
22
+
23
+ Access testing documentation and best practices through context7:
24
+
25
+ - **Testing Frameworks**: Jest, Mocha, pytest, unittest documentation
26
+ - **Coverage Tools**: Istanbul, c8, coverage.py reporting
27
+ - **CI/CD Integration**: GitHub Actions, Jenkins, GitLab CI
28
+ - **Performance Testing**: Load testing, stress testing patterns
29
+
30
+ **Documentation Queries:**
31
+ - `mcp://context7/testing/jest` - Jest testing framework
32
+ - `mcp://context7/testing/pytest` - Python pytest framework
33
+ - `mcp://context7/testing/coverage` - Code coverage tools
34
+ - `mcp://context7/ci/github-actions` - CI/CD with GitHub Actions
35
+
36
+ ## Core Responsibilities
37
+
38
+ 1. **Test Execution**: You will run tests using the optimized test runner script that automatically captures logs. Always use `.claude/scripts/test-and-log.sh` to ensure full output capture.
39
+
40
+ 2. **Log Analysis**: After test execution, you will analyze the captured logs to identify:
41
+ - Test failures and their root causes
42
+ - Performance bottlenecks or timeouts
43
+ - Resource issues (memory leaks, connection exhaustion)
44
+ - Flaky test patterns
45
+ - Configuration problems
46
+ - Missing dependencies or setup issues
47
+
48
+ 3. **Issue Prioritization**: You will categorize issues by severity:
49
+ - **Critical**: Tests that block deployment or indicate data corruption
50
+ - **High**: Consistent failures affecting core functionality
51
+ - **Medium**: Intermittent failures or performance degradation
52
+ - **Low**: Minor issues or test infrastructure problems
53
+
54
+ ## Execution Workflow
55
+
56
+ 1. **Pre-execution Checks**:
57
+ - Verify test file exists and is executable
58
+ - Check for required environment variables
59
+ - Ensure test dependencies are available
60
+
61
+ 2. **Test Execution**:
62
+
63
+ ```bash
64
+ # Standard execution with automatic log naming
65
+ .claude/scripts/test-and-log.sh tests/[test_file].py
66
+
67
+ # For iteration testing with custom log names
68
+ .claude/scripts/test-and-log.sh tests/[test_file].py [test_name]_iteration_[n].log
69
+ ```
70
+
71
+ 3. **Log Analysis Process**:
72
+ - Parse the log file for test results summary
73
+ - Identify all ERROR and FAILURE entries
74
+ - Extract stack traces and error messages
75
+ - Look for patterns in failures (timing, resources, dependencies)
76
+
77
+ ## Structured Output Format
78
+
79
+ ```markdown
80
+ 🧪 TEST EXECUTION REPORT
81
+ ========================
82
+ Test Suite: [name]
83
+ Execution Time: [duration]
84
+ Test Framework: [pytest/jest/etc]
85
+ Risk Level: [Critical/High/Medium/Low/Pass]
86
+
87
+ ## Summary Metrics 📊
88
+ - Total Tests: [n]
89
+ - ✅ Passed: [n] ([%])
90
+ - ❌ Failed: [n] ([%])
91
+ - ⚠️ Skipped: [n] ([%])
92
+ - 🔄 Flaky: [n] ([%])
93
+
94
+ ## Critical Failures 🔴
95
+ Test | Error | Location | Root Cause
96
+ -----|-------|----------|------------
97
+ [test_name] | [error_msg] | [file:line] | [cause]
98
+
99
+ ## Performance Issues ⏱️
100
+ - Slowest Tests: [list with times]
101
+ - Timeout Issues: [if any]
102
+ - Resource Bottlenecks: [if detected]
103
+
104
+ ## Patterns Detected 🔍
105
+ - [Common failure patterns]
106
+ - [Environmental issues]
107
+ - [Dependency problems]
108
+
109
+ ## Actionable Fixes ✅
110
+ Priority | Test | Issue | Fix
111
+ ---------|------|-------|----
112
+ HIGH | [test] | [issue] | [specific fix]
113
+ MEDIUM | [test] | [issue] | [specific fix]
114
+
115
+ ## Test Health Score
116
+ - Stability: [score/100]
117
+ - Coverage Impact: [if available]
118
+ - Regression Risk: [High/Medium/Low]
119
+ ```
120
+
121
+ ## Self-Verification Protocol
122
+
123
+ Before returning results, verify:
124
+ - [ ] All requested tests were executed
125
+ - [ ] Log file was successfully captured and analyzed
126
+ - [ ] All failures have been categorized by severity
127
+ - [ ] Root causes are identified where possible
128
+ - [ ] Output follows structured format
129
+ - [ ] Actionable fixes are specific and implementable
130
+ - [ ] No test failures were missed or ignored
131
+ - Check for warnings that might indicate future problems
132
+
133
+ 4. **Results Reporting**:
134
+ - Provide a concise summary of test results (passed/failed/skipped)
135
+ - List critical failures with their root causes
136
+ - Suggest specific fixes or debugging steps
137
+ - Highlight any environmental or configuration issues
138
+ - Note any performance concerns or resource problems
139
+
140
+ ## Analysis Patterns
141
+
142
+ When analyzing logs, you will look for:
143
+
144
+ - **Assertion Failures**: Extract the expected vs actual values
145
+ - **Timeout Issues**: Identify operations taking too long
146
+ - **Connection Errors**: Database, API, or service connectivity problems
147
+ - **Import Errors**: Missing modules or circular dependencies
148
+ - **Configuration Issues**: Invalid or missing configuration values
149
+ - **Resource Exhaustion**: Memory, file handles, or connection pool issues
150
+ - **Concurrency Problems**: Deadlocks, race conditions, or synchronization issues
151
+
152
+ **IMPORTANT**:
153
+ Ensure you read the test carefully to understand what it is testing, so you can better analyze the results.
154
+
155
+ ## Output Format
156
+
157
+ Your analysis should follow this structure:
158
+
159
+ ```
160
+ ## Test Execution Summary
161
+ - Total Tests: X
162
+ - Passed: X
163
+ - Failed: X
164
+ - Skipped: X
165
+ - Duration: Xs
166
+
167
+ ## Critical Issues
168
+ [List any blocking issues with specific error messages and line numbers]
169
+
170
+ ## Test Failures
171
+ [For each failure:
172
+ - Test name
173
+ - Failure reason
174
+ - Relevant error message/stack trace
175
+ - Suggested fix]
176
+
177
+ ## Warnings & Observations
178
+ [Non-critical issues that should be addressed]
179
+
180
+ ## Recommendations
181
+ [Specific actions to fix failures or improve test reliability]
182
+ ```
183
+
184
+ ## Special Considerations
185
+
186
+ - For flaky tests, suggest running multiple iterations to confirm intermittent behavior
187
+ - When tests pass but show warnings, highlight these for preventive maintenance
188
+ - If all tests pass, still check for performance degradation or resource usage patterns
189
+ - For configuration-related failures, provide the exact configuration changes needed
190
+ - When encountering new failure patterns, suggest additional diagnostic steps
191
+
192
+ ## Error Recovery
193
+
194
+ If the test runner script fails to execute:
195
+ 1. Check if the script has execute permissions
196
+ 2. Verify the test file path is correct
197
+ 3. Ensure the logs directory exists and is writable
198
+ 4. Fall back to direct pytest execution with output redirection if necessary
199
+
200
+ You will maintain context efficiency by keeping the main conversation focused on actionable insights while ensuring all diagnostic information is captured in the logs for detailed debugging when needed.
@@ -0,0 +1,128 @@
1
+ ---
2
+ allowed-tools: Task, Read, Edit, MultiEdit, Write, LS, Grep
3
+ ---
4
+
5
+ # CodeRabbit Review Handler
6
+
7
+ Process CodeRabbit review comments with context-aware discretion.
8
+
9
+ ## Usage
10
+
11
+ ```
12
+ /code-rabbit
13
+ ```
14
+
15
+ Then paste one or more CodeRabbit comments.
16
+
17
+ ## Instructions
18
+
19
+ ### 1. Initial Context
20
+
21
+ Inform the user:
22
+
23
+ ```
24
+ I'll review the CodeRabbit comments with discretion, as CodeRabbit doesn't have access to the entire codebase and may not understand the full context.
25
+
26
+ For each comment, I'll:
27
+ - Evaluate if it's valid given our codebase context
28
+ - Accept suggestions that improve code quality
29
+ - Ignore suggestions that don't apply to our architecture
30
+ - Explain my reasoning for accept/ignore decisions
31
+ ```
32
+
33
+ ### 2. Process Comments
34
+
35
+ #### Single File Comments
36
+
37
+ If all comments relate to one file:
38
+
39
+ - Read the file for context
40
+ - Evaluate each suggestion
41
+ - Apply accepted changes in batch using MultiEdit
42
+ - Report which suggestions were accepted/ignored and why
43
+
44
+ #### Multiple File Comments
45
+
46
+ If comments span multiple files:
47
+
48
+ Launch parallel sub-agents using Task tool:
49
+
50
+ ```yaml
51
+ Task:
52
+ description: "CodeRabbit fixes for {filename}"
53
+ subagent_type: "general-purpose"
54
+ prompt: |
55
+ Review and apply CodeRabbit suggestions for {filename}.
56
+
57
+ Comments to evaluate:
58
+ {relevant_comments_for_this_file}
59
+
60
+ Instructions:
61
+ 1. Read the file to understand context
62
+ 2. For each suggestion:
63
+ - Evaluate validity given codebase patterns
64
+ - Accept if it improves quality/correctness
65
+ - Ignore if not applicable
66
+ 3. Apply accepted changes using Edit/MultiEdit
67
+ 4. Return summary:
68
+ - Accepted: {list with reasons}
69
+ - Ignored: {list with reasons}
70
+ - Changes made: {brief description}
71
+
72
+ Use discretion - CodeRabbit lacks full context.
73
+ ```
74
+
75
+ ### 3. Consolidate Results
76
+
77
+ After all sub-agents complete:
78
+
79
+ ```
80
+ 📋 CodeRabbit Review Summary
81
+
82
+ Files Processed: {count}
83
+
84
+ Accepted Suggestions:
85
+ {file}: {changes_made}
86
+
87
+ Ignored Suggestions:
88
+ {file}: {reason_ignored}
89
+
90
+ Overall: {X}/{Y} suggestions applied
91
+ ```
92
+
93
+ ### 4. Common Patterns to Ignore
94
+
95
+ - **Style preferences** that conflict with project conventions
96
+ - **Generic best practices** that don't apply to our specific use case
97
+ - **Performance optimizations** for code that isn't performance-critical
98
+ - **Accessibility suggestions** for internal tools
99
+ - **Security warnings** for already-validated patterns
100
+ - **Import reorganization** that would break our structure
101
+
102
+ ### 5. Common Patterns to Accept
103
+
104
+ - **Actual bugs** (null checks, error handling)
105
+ - **Security vulnerabilities** (unless false positive)
106
+ - **Resource leaks** (unclosed connections, memory leaks)
107
+ - **Type safety issues** (TypeScript/type hints)
108
+ - **Logic errors** (off-by-one, incorrect conditions)
109
+ - **Missing error handling**
110
+
111
+ ## Decision Framework
112
+
113
+ For each suggestion, consider:
114
+
115
+ 1. **Is it correct?** - Does the issue actually exist?
116
+ 2. **Is it relevant?** - Does it apply to our use case?
117
+ 3. **Is it beneficial?** - Will fixing it improve the code?
118
+ 4. **Is it safe?** - Could the change introduce problems?
119
+
120
+ Only apply if all answers are "yes" or the benefit clearly outweighs risks.
121
+
122
+ ## Important Notes
123
+
124
+ - CodeRabbit is helpful but lacks context
125
+ - Trust your understanding of the codebase over generic suggestions
126
+ - Explain decisions briefly to maintain audit trail
127
+ - Batch related changes for efficiency
128
+ - Use parallel agents for multi-file reviews to save time
@@ -0,0 +1,9 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, LS
3
+ ---
4
+
5
+ # This is an ephemeral command
6
+
7
+ Some complex prompts (with numerous @ references) may fail if entered directly into the prompt input.
8
+
9
+ If that happens, write your prompt here and type in `/prompt` in the prompt command.
@@ -0,0 +1,9 @@
1
+ ---
2
+ allowed-tools: Bash, Read, Write, LS
3
+ ---
4
+
5
+ # Enhance CLAUDE.md file
6
+
7
+ Please update CLAUDE.md with the rules from .claude/CLAUDE.md.
8
+
9
+ If CLAUDE.md does not exist, create it using the /init and include rules from .claude/CLAUDE.md.
@@ -0,0 +1,29 @@
1
+ # 🔴 MANDATORY: Context7 Query Required
2
+
3
+ **BEFORE proceeding with this command/agent, you MUST:**
4
+
5
+ 1. **Read** the command/agent file to find `**Documentation Queries:**` section
6
+ 2. **Query Context7 MCP** for EACH listed topic
7
+ 3. **Verify** patterns against live documentation
8
+ 4. **Apply** Context7 guidance in your implementation
9
+
10
+ ## Why This Matters
11
+
12
+ - **Training data is STALE** - APIs change, best practices evolve
13
+ - **Context7 is CURRENT** - Live documentation, latest versions
14
+ - **Hallucinations PREVENTED** - Real examples, verified patterns
15
+ - **Quality GUARANTEED** - Industry-standard approaches
16
+
17
+ ## Zero Tolerance Policy
18
+
19
+ ❌ **NO** implementation without Context7 verification
20
+ ❌ **NO** "I remember how this works"
21
+ ❌ **NO** assumptions about API signatures
22
+ ✅ **ALWAYS** query Context7 first
23
+ ✅ **ALWAYS** verify against live docs
24
+ ✅ **ALWAYS** apply documented patterns
25
+
26
+ ---
27
+
28
+ *This reminder is shown by `.claude/hooks/` enforcement system*
29
+ *Defined in: `.claude/rules/context7-enforcement.md`*
@@ -0,0 +1,125 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Hook enforcing agent usage instead of direct operations
5
+ * Usage: set as tool-use-hook in Claude Code configuration
6
+ */
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
10
+
11
+ class AgentEnforcer {
12
+ constructor() {
13
+ // Get tool name and parameters from arguments
14
+ this.toolName = process.argv[2] || '';
15
+ this.toolParams = process.argv[3] || '';
16
+
17
+ // Parse params if they're JSON
18
+ try {
19
+ this.parsedParams = JSON.parse(this.toolParams);
20
+ } catch {
21
+ this.parsedParams = {};
22
+ }
23
+ }
24
+
25
+ blockWithMessage(reason, agent, example) {
26
+ console.log(`❌ BLOCKED: ${reason}`);
27
+ console.log(`✅ INSTEAD: Use the ${agent} agent via Task tool`);
28
+ console.log('');
29
+ console.log('Example:');
30
+ console.log(` Task: ${example}`);
31
+ process.exit(1);
32
+ }
33
+
34
+ checkBashUsage() {
35
+ if (this.toolName !== 'Bash') return;
36
+
37
+ // Block direct grep/find - should use code-analyzer
38
+ const codeSearchPattern = /(grep|rg|find|ag)\s+.*\.(py|js|ts|jsx|tsx)/;
39
+ if (codeSearchPattern.test(this.toolParams)) {
40
+ this.blockWithMessage(
41
+ 'Direct code search detected',
42
+ 'code-analyzer',
43
+ 'Search for [pattern] in codebase'
44
+ );
45
+ }
46
+
47
+ // Block direct test execution - should use test-runner
48
+ const testExecPattern = /(pytest|npm test|yarn test|jest|vitest)/;
49
+ if (testExecPattern.test(this.toolParams)) {
50
+ this.blockWithMessage(
51
+ 'Direct test execution detected',
52
+ 'test-runner',
53
+ 'Run and analyze test results'
54
+ );
55
+ }
56
+
57
+ // Block direct log reading - should use file-analyzer
58
+ const logReadPattern = /(cat|head|tail|less).*\.(log|txt|out)/;
59
+ if (logReadPattern.test(this.toolParams)) {
60
+ this.blockWithMessage(
61
+ 'Direct log reading detected',
62
+ 'file-analyzer',
63
+ 'Analyze and summarize [log file]'
64
+ );
65
+ }
66
+ }
67
+
68
+ checkReadUsage() {
69
+ if (this.toolName !== 'Read') return;
70
+
71
+ const filePath = this.parsedParams.file_path;
72
+ if (!filePath) return;
73
+
74
+ // If file is larger than 1000 lines, enforce file-analyzer
75
+ if (fs.existsSync(filePath)) {
76
+ try {
77
+ const content = fs.readFileSync(filePath, 'utf-8');
78
+ const lineCount = content.split('\n').length;
79
+
80
+ if (lineCount > 1000) {
81
+ this.blockWithMessage(
82
+ `Reading large file directly (${lineCount} lines)`,
83
+ 'file-analyzer',
84
+ `Summarize contents of ${filePath}`
85
+ );
86
+ }
87
+ } catch (error) {
88
+ // Can't read file, let it pass through
89
+ }
90
+ }
91
+ }
92
+
93
+ checkGrepUsage() {
94
+ if (this.toolName !== 'Grep') return;
95
+
96
+ const pattern = this.parsedParams.pattern;
97
+ if (!pattern) return;
98
+
99
+ // If pattern is complex or searches many files, use code-analyzer
100
+ const complexPattern = /(\.\*|\+|\{|\[)/;
101
+ if (complexPattern.test(pattern)) {
102
+ console.log('⚠️ SUGGESTION: For complex searches, consider using code-analyzer agent');
103
+ console.log(' It provides better context and analysis of results');
104
+ // Don't block, just suggest
105
+ }
106
+ }
107
+
108
+ run() {
109
+ // Check various tool usages
110
+ this.checkBashUsage();
111
+ this.checkReadUsage();
112
+ this.checkGrepUsage();
113
+
114
+ // If we got here, it's allowed - pass through
115
+ process.exit(0);
116
+ }
117
+ }
118
+
119
+ // Main execution
120
+ if (require.main === module) {
121
+ const enforcer = new AgentEnforcer();
122
+ enforcer.run();
123
+ }
124
+
125
+ module.exports = AgentEnforcer;
@@ -0,0 +1,35 @@
1
+ #!/bin/bash
2
+
3
+ # Hook enforcing agent usage - Bridge to Node.js
4
+ # This script now delegates to the Node.js version for better cross-platform support
5
+ # Original bash implementation backed up to enforce-agents.sh.backup
6
+
7
+ set -e # Exit on error
8
+
9
+ # Get the directory of this script
10
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
11
+
12
+ # Check if Node.js is available
13
+ if ! command -v node &> /dev/null; then
14
+ echo "Error: Node.js is required but not installed."
15
+ echo "Please install Node.js first: https://nodejs.org/"
16
+ exit 1
17
+ fi
18
+
19
+ # Check if the Node.js version exists
20
+ NODE_SCRIPT="$SCRIPT_DIR/enforce-agents.js"
21
+ if [ ! -f "$NODE_SCRIPT" ]; then
22
+ echo "Error: Node.js implementation not found at $NODE_SCRIPT"
23
+ echo "Falling back to original bash implementation..."
24
+
25
+ # Try to use the backup if available
26
+ if [ -f "$SCRIPT_DIR/enforce-agents.sh.backup" ]; then
27
+ exec bash "$SCRIPT_DIR/enforce-agents.sh.backup" "$@"
28
+ else
29
+ echo "Error: No backup implementation found"
30
+ exit 1
31
+ fi
32
+ fi
33
+
34
+ # Execute the Node.js version with all arguments
35
+ exec node "$NODE_SCRIPT" "$@"