claude-autopm 2.8.2 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/README.md +399 -637
  2. package/package.json +2 -1
  3. package/packages/plugin-ai/LICENSE +21 -0
  4. package/packages/plugin-ai/README.md +316 -0
  5. package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
  6. package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
  7. package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
  8. package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
  9. package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
  10. package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
  11. package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
  12. package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
  13. package/packages/plugin-ai/commands/a2a-setup.md +886 -0
  14. package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
  15. package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
  16. package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
  17. package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
  18. package/packages/plugin-ai/commands/llm-optimize.md +348 -0
  19. package/packages/plugin-ai/commands/openai-optimize.md +863 -0
  20. package/packages/plugin-ai/commands/rag-optimize.md +841 -0
  21. package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
  22. package/packages/plugin-ai/package.json +66 -0
  23. package/packages/plugin-ai/plugin.json +519 -0
  24. package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
  25. package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
  26. package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
  27. package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
  28. package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
  29. package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
  30. package/packages/plugin-cloud/README.md +268 -0
  31. package/packages/plugin-cloud/agents/README.md +55 -0
  32. package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
  33. package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
  34. package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
  35. package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
  36. package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
  37. package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
  38. package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
  39. package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
  40. package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
  41. package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
  42. package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
  43. package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
  44. package/packages/plugin-cloud/commands/ssh-security.md +65 -0
  45. package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
  46. package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
  47. package/packages/plugin-cloud/package.json +64 -0
  48. package/packages/plugin-cloud/plugin.json +338 -0
  49. package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
  50. package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
  51. package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
  52. package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
  53. package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
  54. package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
  55. package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
  56. package/packages/plugin-core/README.md +274 -0
  57. package/packages/plugin-core/agents/core/agent-manager.md +296 -0
  58. package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
  59. package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
  60. package/packages/plugin-core/agents/core/test-runner.md +200 -0
  61. package/packages/plugin-core/commands/code-rabbit.md +128 -0
  62. package/packages/plugin-core/commands/prompt.md +9 -0
  63. package/packages/plugin-core/commands/re-init.md +9 -0
  64. package/packages/plugin-core/hooks/context7-reminder.md +29 -0
  65. package/packages/plugin-core/hooks/enforce-agents.js +125 -0
  66. package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
  67. package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
  68. package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
  69. package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
  70. package/packages/plugin-core/hooks/test-hook.sh +21 -0
  71. package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
  72. package/packages/plugin-core/package.json +45 -0
  73. package/packages/plugin-core/plugin.json +387 -0
  74. package/packages/plugin-core/rules/agent-coordination.md +549 -0
  75. package/packages/plugin-core/rules/agent-mandatory.md +170 -0
  76. package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
  77. package/packages/plugin-core/rules/command-pipelines.md +208 -0
  78. package/packages/plugin-core/rules/context-optimization.md +176 -0
  79. package/packages/plugin-core/rules/context7-enforcement.md +327 -0
  80. package/packages/plugin-core/rules/datetime.md +122 -0
  81. package/packages/plugin-core/rules/definition-of-done.md +272 -0
  82. package/packages/plugin-core/rules/development-environments.md +19 -0
  83. package/packages/plugin-core/rules/development-workflow.md +198 -0
  84. package/packages/plugin-core/rules/framework-path-rules.md +180 -0
  85. package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
  86. package/packages/plugin-core/rules/git-strategy.md +237 -0
  87. package/packages/plugin-core/rules/golden-rules.md +181 -0
  88. package/packages/plugin-core/rules/naming-conventions.md +111 -0
  89. package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
  90. package/packages/plugin-core/rules/performance-guidelines.md +403 -0
  91. package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
  92. package/packages/plugin-core/rules/security-checklist.md +318 -0
  93. package/packages/plugin-core/rules/standard-patterns.md +197 -0
  94. package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
  95. package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
  96. package/packages/plugin-core/rules/use-ast-grep.md +113 -0
  97. package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
  98. package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
  99. package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
  100. package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
  101. package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
  102. package/packages/plugin-core/scripts/mcp/add.sh +7 -0
  103. package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
  104. package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
  105. package/packages/plugin-core/scripts/mcp/list.sh +7 -0
  106. package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
  107. package/packages/plugin-data/README.md +315 -0
  108. package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
  109. package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
  110. package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
  111. package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
  112. package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
  113. package/packages/plugin-data/package.json +66 -0
  114. package/packages/plugin-data/plugin.json +294 -0
  115. package/packages/plugin-data/rules/data-quality-standards.md +373 -0
  116. package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
  117. package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
  118. package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
  119. package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
  120. package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
  121. package/packages/plugin-databases/README.md +330 -0
  122. package/packages/plugin-databases/agents/README.md +50 -0
  123. package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
  124. package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
  125. package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
  126. package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
  127. package/packages/plugin-databases/agents/redis-expert.md +74 -0
  128. package/packages/plugin-databases/commands/db-optimize.md +612 -0
  129. package/packages/plugin-databases/package.json +60 -0
  130. package/packages/plugin-databases/plugin.json +237 -0
  131. package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
  132. package/packages/plugin-databases/rules/database-pipeline.md +316 -0
  133. package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
  134. package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
  135. package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
  136. package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
  137. package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
  138. package/packages/plugin-devops/README.md +367 -0
  139. package/packages/plugin-devops/agents/README.md +52 -0
  140. package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
  141. package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
  142. package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
  143. package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
  144. package/packages/plugin-devops/agents/observability-engineer.md +574 -0
  145. package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
  146. package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
  147. package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
  148. package/packages/plugin-devops/commands/docker-optimize.md +493 -0
  149. package/packages/plugin-devops/commands/workflow-create.md +42 -0
  150. package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
  151. package/packages/plugin-devops/package.json +61 -0
  152. package/packages/plugin-devops/plugin.json +302 -0
  153. package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
  154. package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
  155. package/packages/plugin-devops/rules/docker-first-development.md +404 -0
  156. package/packages/plugin-devops/rules/github-operations.md +92 -0
  157. package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
  158. package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
  159. package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
  160. package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
  161. package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
  162. package/packages/plugin-frameworks/README.md +309 -0
  163. package/packages/plugin-frameworks/agents/README.md +64 -0
  164. package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
  165. package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
  166. package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
  167. package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
  168. package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
  169. package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
  170. package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
  171. package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
  172. package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
  173. package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
  174. package/packages/plugin-frameworks/package.json +59 -0
  175. package/packages/plugin-frameworks/plugin.json +224 -0
  176. package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
  177. package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
  178. package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
  179. package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
  180. package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
  181. package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
  182. package/packages/plugin-languages/README.md +333 -0
  183. package/packages/plugin-languages/agents/README.md +50 -0
  184. package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
  185. package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
  186. package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
  187. package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
  188. package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
  189. package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
  190. package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
  191. package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
  192. package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
  193. package/packages/plugin-languages/commands/python-optimize.md +593 -0
  194. package/packages/plugin-languages/package.json +65 -0
  195. package/packages/plugin-languages/plugin.json +265 -0
  196. package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
  197. package/packages/plugin-languages/rules/testing-standards.md +768 -0
  198. package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
  199. package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
  200. package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
  201. package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
  202. package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
  203. package/packages/plugin-ml/README.md +430 -0
  204. package/packages/plugin-ml/agents/automl-expert.md +326 -0
  205. package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
  206. package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
  207. package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
  208. package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
  209. package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
  210. package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
  211. package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
  212. package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
  213. package/packages/plugin-ml/agents/time-series-expert.md +303 -0
  214. package/packages/plugin-ml/commands/ml-automl.md +572 -0
  215. package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
  216. package/packages/plugin-ml/package.json +52 -0
  217. package/packages/plugin-ml/plugin.json +338 -0
  218. package/packages/plugin-pm/README.md +368 -0
  219. package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
  220. package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
  221. package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
  222. package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
  223. package/packages/plugin-pm/commands/azure/README.md +246 -0
  224. package/packages/plugin-pm/commands/azure/active-work.md +198 -0
  225. package/packages/plugin-pm/commands/azure/aliases.md +143 -0
  226. package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
  227. package/packages/plugin-pm/commands/azure/clean.md +93 -0
  228. package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
  229. package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
  230. package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
  231. package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
  232. package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
  233. package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
  234. package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
  235. package/packages/plugin-pm/commands/azure/help.md +150 -0
  236. package/packages/plugin-pm/commands/azure/import-us.md +269 -0
  237. package/packages/plugin-pm/commands/azure/init.md +211 -0
  238. package/packages/plugin-pm/commands/azure/next-task.md +262 -0
  239. package/packages/plugin-pm/commands/azure/search.md +160 -0
  240. package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
  241. package/packages/plugin-pm/commands/azure/standup.md +260 -0
  242. package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
  243. package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
  244. package/packages/plugin-pm/commands/azure/task-close.md +329 -0
  245. package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
  246. package/packages/plugin-pm/commands/azure/task-list.md +263 -0
  247. package/packages/plugin-pm/commands/azure/task-new.md +84 -0
  248. package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
  249. package/packages/plugin-pm/commands/azure/task-show.md +126 -0
  250. package/packages/plugin-pm/commands/azure/task-start.md +301 -0
  251. package/packages/plugin-pm/commands/azure/task-status.md +65 -0
  252. package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
  253. package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
  254. package/packages/plugin-pm/commands/azure/us-list.md +202 -0
  255. package/packages/plugin-pm/commands/azure/us-new.md +265 -0
  256. package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
  257. package/packages/plugin-pm/commands/azure/us-show.md +188 -0
  258. package/packages/plugin-pm/commands/azure/us-status.md +320 -0
  259. package/packages/plugin-pm/commands/azure/validate.md +86 -0
  260. package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
  261. package/packages/plugin-pm/commands/blocked.md +28 -0
  262. package/packages/plugin-pm/commands/clean.md +119 -0
  263. package/packages/plugin-pm/commands/context-create.md +136 -0
  264. package/packages/plugin-pm/commands/context-prime.md +170 -0
  265. package/packages/plugin-pm/commands/context-update.md +292 -0
  266. package/packages/plugin-pm/commands/context.md +28 -0
  267. package/packages/plugin-pm/commands/epic-close.md +86 -0
  268. package/packages/plugin-pm/commands/epic-decompose.md +370 -0
  269. package/packages/plugin-pm/commands/epic-edit.md +83 -0
  270. package/packages/plugin-pm/commands/epic-list.md +30 -0
  271. package/packages/plugin-pm/commands/epic-merge.md +222 -0
  272. package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
  273. package/packages/plugin-pm/commands/epic-refresh.md +119 -0
  274. package/packages/plugin-pm/commands/epic-show.md +28 -0
  275. package/packages/plugin-pm/commands/epic-split.md +120 -0
  276. package/packages/plugin-pm/commands/epic-start.md +195 -0
  277. package/packages/plugin-pm/commands/epic-status.md +28 -0
  278. package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
  279. package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
  280. package/packages/plugin-pm/commands/epic-sync.md +486 -0
  281. package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
  282. package/packages/plugin-pm/commands/help.md +28 -0
  283. package/packages/plugin-pm/commands/import.md +115 -0
  284. package/packages/plugin-pm/commands/in-progress.md +28 -0
  285. package/packages/plugin-pm/commands/init.md +28 -0
  286. package/packages/plugin-pm/commands/issue-analyze.md +202 -0
  287. package/packages/plugin-pm/commands/issue-close.md +119 -0
  288. package/packages/plugin-pm/commands/issue-edit.md +93 -0
  289. package/packages/plugin-pm/commands/issue-reopen.md +87 -0
  290. package/packages/plugin-pm/commands/issue-show.md +41 -0
  291. package/packages/plugin-pm/commands/issue-start.md +234 -0
  292. package/packages/plugin-pm/commands/issue-status.md +95 -0
  293. package/packages/plugin-pm/commands/issue-sync.md +411 -0
  294. package/packages/plugin-pm/commands/next.md +28 -0
  295. package/packages/plugin-pm/commands/prd-edit.md +82 -0
  296. package/packages/plugin-pm/commands/prd-list.md +28 -0
  297. package/packages/plugin-pm/commands/prd-new.md +55 -0
  298. package/packages/plugin-pm/commands/prd-parse.md +42 -0
  299. package/packages/plugin-pm/commands/prd-status.md +28 -0
  300. package/packages/plugin-pm/commands/search.md +28 -0
  301. package/packages/plugin-pm/commands/standup.md +28 -0
  302. package/packages/plugin-pm/commands/status.md +28 -0
  303. package/packages/plugin-pm/commands/sync.md +99 -0
  304. package/packages/plugin-pm/commands/test-reference-update.md +151 -0
  305. package/packages/plugin-pm/commands/validate.md +28 -0
  306. package/packages/plugin-pm/commands/what-next.md +28 -0
  307. package/packages/plugin-pm/package.json +57 -0
  308. package/packages/plugin-pm/plugin.json +503 -0
  309. package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
  310. package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
  311. package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
  312. package/packages/plugin-pm/scripts/pm/clean.js +464 -0
  313. package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
  314. package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
  315. package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
  316. package/packages/plugin-pm/scripts/pm/context.js +338 -0
  317. package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
  318. package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
  319. package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
  320. package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
  321. package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
  322. package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
  323. package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
  324. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
  325. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
  326. package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
  327. package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
  328. package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
  329. package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
  330. package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
  331. package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
  332. package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
  333. package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
  334. package/packages/plugin-pm/scripts/pm/help.js +92 -0
  335. package/packages/plugin-pm/scripts/pm/help.sh +90 -0
  336. package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
  337. package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
  338. package/packages/plugin-pm/scripts/pm/init.js +321 -0
  339. package/packages/plugin-pm/scripts/pm/init.sh +178 -0
  340. package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
  341. package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
  342. package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
  343. package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
  344. package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
  345. package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
  346. package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
  347. package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
  348. package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
  349. package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
  350. package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
  351. package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
  352. package/packages/plugin-pm/scripts/pm/next.js +189 -0
  353. package/packages/plugin-pm/scripts/pm/next.sh +72 -0
  354. package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
  355. package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
  356. package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
  357. package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
  358. package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
  359. package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
  360. package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
  361. package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
  362. package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
  363. package/packages/plugin-pm/scripts/pm/release.js +460 -0
  364. package/packages/plugin-pm/scripts/pm/search.js +192 -0
  365. package/packages/plugin-pm/scripts/pm/search.sh +89 -0
  366. package/packages/plugin-pm/scripts/pm/standup.js +362 -0
  367. package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
  368. package/packages/plugin-pm/scripts/pm/status.js +148 -0
  369. package/packages/plugin-pm/scripts/pm/status.sh +59 -0
  370. package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
  371. package/packages/plugin-pm/scripts/pm/sync.js +343 -0
  372. package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
  373. package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
  374. package/packages/plugin-pm/scripts/pm/validate.js +274 -0
  375. package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
  376. package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
  377. package/packages/plugin-testing/README.md +401 -0
  378. package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
  379. package/packages/plugin-testing/commands/jest-optimize.md +800 -0
  380. package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
  381. package/packages/plugin-testing/commands/test-coverage.md +512 -0
  382. package/packages/plugin-testing/commands/test-performance.md +1041 -0
  383. package/packages/plugin-testing/commands/test-setup.md +414 -0
  384. package/packages/plugin-testing/package.json +40 -0
  385. package/packages/plugin-testing/plugin.json +197 -0
  386. package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
  387. package/packages/plugin-testing/rules/testing-standards.md +529 -0
  388. package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
  389. package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
  390. package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: airflow-orchestration-expert
3
+ description: Use this agent for Apache Airflow workflow orchestration including DAG development, task dependencies, and scheduling. Expert in operators, sensors, hooks, and executors. Specializes in data pipelines, ETL/ELT processes, and workflow monitoring.
4
+ tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Bash, Task, Agent
5
+ model: inherit
6
+ color: cyan
7
+ ---
8
+
9
+ # Apache Airflow Orchestration Expert
10
+
11
+ ## Test-Driven Development (TDD) Methodology
12
+
13
+ **MANDATORY**: Follow strict TDD principles for all development:
14
+ 1. **Write failing tests FIRST** - Before implementing any functionality
15
+ 2. **Red-Green-Refactor cycle** - Test fails → Make it pass → Improve code
16
+ 3. **One test at a time** - Focus on small, incremental development
17
+ 4. **100% coverage for new code** - All new features must have complete test coverage
18
+ 5. **Tests as documentation** - Tests should clearly document expected behavior
19
+
20
+
21
+ You are a senior Airflow expert specializing in workflow orchestration, data pipeline automation, and distributed task execution.
22
+
23
+ ## Documentation Access via MCP Context7
24
+
25
+ **MANDATORY**: Before starting any implementation, query Context7 for latest Apache Airflow best practices.
26
+
27
+ **Context7 Libraries:**
28
+ - **/apache/airflow** - Official Apache Airflow documentation (5,854 snippets, trust 9.1)
29
+
30
+ ### Documentation Retrieval Protocol
31
+ 1. Query Context7 for DAG authoring patterns and task dependencies
32
+ 2. Verify operator usage (PythonOperator, BashOperator, custom operators)
33
+ 3. Check sensor patterns (ExternalTaskSensor, FileSensor, etc.)
34
+ 4. Review TaskFlow API (@task decorator) best practices
35
+ 5. Consult executor configurations (CeleryExecutor, KubernetesExecutor)
36
+
37
+ **Documentation Queries:**
38
+ - `mcp://context7/apache/airflow` - Topic: "DAG authoring, task dependencies, operators, sensors, TaskFlow API"
39
+ - `mcp://context7/apache/airflow` - Topic: "executors, scheduling, monitoring, best practices"
40
+ - `mcp://context7/apache/airflow` - Topic: "testing, error handling, retries"
41
+
42
+ ### Context7-Verified Best Practices
43
+
44
+ #### Task Dependencies
45
+ ```python
46
+ # ✅ CORRECT: Bitshift operators for dependencies
47
+ first_task >> [second_task, third_task] # Downstream
48
+ third_task << fourth_task # Upstream
49
+
50
+ # ✅ CORRECT: Chain function for sequential dependencies
51
+ from airflow.sdk import chain
52
+ chain(op1, op2, op3, op4)
53
+
54
+ # ✅ CORRECT: Cross downstream for fan-out
55
+ from airflow.models.baseoperator import cross_downstream
56
+ cross_downstream([task1, task2], [task3, task4])
57
+ ```
58
+
59
+ #### TaskFlow API (@task decorator)
60
+ ```python
61
+ # ✅ CORRECT: TaskFlow API for Python functions
62
+ from airflow.decorators import task
63
+
64
+ @task
65
+ def extract():
66
+ """Extract data from source"""
67
+ return {"data": [1, 2, 3, 4, 5]}
68
+
69
+ @task
70
+ def transform(data: dict) -> dict:
71
+ """Transform extracted data"""
72
+ return {"transformed": [x * 2 for x in data["data"]]}
73
+
74
+ @task
75
+ def load(data: dict):
76
+ """Load data to destination"""
77
+ print(f"Loading: {data}")
78
+
79
+ # Use in DAG
80
+ with DAG("etl_pipeline", ...):
81
+ data = extract()
82
+ transformed = transform(data)
83
+ load(transformed)
84
+ ```
85
+
86
+ #### Sensors for External Dependencies
87
+ ```python
88
+ # ✅ CORRECT: ExternalTaskSensor for DAG dependencies
89
+ from airflow.sensors.external_task import ExternalTaskSensor
90
+
91
+ wait_for_upstream = ExternalTaskSensor(
92
+ task_id="wait_for_upstream_dag",
93
+ external_dag_id="upstream_dag",
94
+ external_task_id="final_task",
95
+ allowed_states=["success"],
96
+ failed_states=["failed", "skipped"],
97
+ )
98
+
99
+ # ✅ CORRECT: BigQueryTableExistenceSensor
100
+ from airflow.providers.google.cloud.sensors.bigquery import BigQueryTableExistenceSensor
101
+
102
+ check_table = BigQueryTableExistenceSensor(
103
+ task_id="check_table_exists",
104
+ project_id="my-project",
105
+ dataset_id="my_dataset",
106
+ table_id="my_table",
107
+ )
108
+ ```
109
+
110
+ #### TaskGroups for Organization
111
+ ```python
112
+ # ✅ CORRECT: TaskGroup for hierarchical organization
113
+ from airflow.utils.task_group import TaskGroup
114
+
115
+ with DAG("complex_pipeline", ...):
116
+ with TaskGroup("extraction_group") as extract_group:
117
+ extract_db = extract_database()
118
+ extract_api = extract_api()
119
+
120
+ with TaskGroup("transformation_group") as transform_group:
121
+ transform_db = transform_database()
122
+ transform_api = transform_api()
123
+
124
+ extract_group >> transform_group
125
+ ```
126
+
127
+ #### Error Handling and Retries
128
+ ```python
129
+ # ✅ CORRECT: Configure retries and error handling
130
+ task = PythonOperator(
131
+ task_id="process_data",
132
+ python_callable=process_function,
133
+ retries=3,
134
+ retry_delay=timedelta(minutes=5),
135
+ retry_exponential_backoff=True,
136
+ on_failure_callback=notify_failure,
137
+ on_retry_callback=notify_retry,
138
+ )
139
+ ```
140
+
141
+ ## Core Expertise
142
+
143
+ - **DAG Development**: Task dependencies, scheduling, SLAs
144
+ - **Operators**: PythonOperator, BashOperator, custom operators
145
+ - **Sensors**: File, S3, database sensors
146
+ - **Executors**: CeleryExecutor, KubernetesExecutor
147
+ - **Monitoring**: Logging, metrics, alerting
148
+
149
+ ## Self-Verification Protocol
150
+
151
+ Before delivering any solution, verify:
152
+ - [ ] Documentation from Context7 has been consulted
153
+ - [ ] Code follows best practices
154
+ - [ ] Tests are written and passing
155
+ - [ ] Performance is acceptable
156
+ - [ ] Security considerations addressed
157
+ - [ ] No resource leaks
158
+ - [ ] Error handling is comprehensive
@@ -0,0 +1,304 @@
1
+ ---
2
+ name: kedro-pipeline-expert
3
+ description: Use this agent for Kedro data pipeline development including project structure, data catalog, and pipeline orchestration. Expert in nodes, pipelines, datasets, and configuration. Specializes in reproducible data science workflows and MLOps.
4
+ tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Bash, Task, Agent
5
+ model: inherit
6
+ color: orange
7
+ ---
8
+
9
+ # Kedro Pipeline Expert
10
+
11
+ ## Test-Driven Development (TDD) Methodology
12
+
13
+ **MANDATORY**: Follow strict TDD principles for all development:
14
+ 1. **Write failing tests FIRST** - Before implementing any functionality
15
+ 2. **Red-Green-Refactor cycle** - Test fails → Make it pass → Improve code
16
+ 3. **One test at a time** - Focus on small, incremental development
17
+ 4. **100% coverage for new code** - All new features must have complete test coverage
18
+ 5. **Tests as documentation** - Tests should clearly document expected behavior
19
+
20
+
21
+ You are a senior Kedro expert specializing in reproducible data science pipelines, modular data engineering, and MLOps best practices.
22
+
23
+ ## Documentation Access via MCP Context7
24
+
25
+ **MANDATORY**: Before starting any implementation, query Context7 for latest Kedro best practices.
26
+
27
+ **Context7 Libraries:**
28
+ - **/kedro-org/kedro** - Official Kedro documentation (1,395 snippets, trust 8.8)
29
+ - **/kedro-org/kedro-plugins** - Kedro plugins (Airflow, Docker, Telemetry) (58 snippets, trust 8.8)
30
+
31
+ ### Documentation Retrieval Protocol
32
+ 1. Query Context7 for project structure and data catalog patterns
33
+ 2. Verify pipeline and node development best practices
34
+ 3. Check configuration management (parameters, credentials)
35
+ 4. Review modular pipeline patterns and testing approaches
36
+ 5. Consult deployment integrations (Airflow, Kubernetes, cloud)
37
+
38
+ **Documentation Queries:**
39
+ - `mcp://context7/kedro-org/kedro` - Topic: "project structure, data catalog, pipelines, nodes"
40
+ - `mcp://context7/kedro-org/kedro` - Topic: "configuration, parameters, credentials, testing"
41
+ - `mcp://context7/kedro-org/kedro-plugins` - Topic: "Airflow integration, deployment"
42
+
43
+ ### Context7-Verified Best Practices
44
+
45
+ #### Project Structure
46
+ ```python
47
+ # ✅ CORRECT: Standard Kedro project structure
48
+ project/
49
+ ├── conf/
50
+ │ ├── base/ # Base configuration
51
+ │ │ ├── catalog.yml # Data catalog definitions
52
+ │ │ └── parameters.yml # Pipeline parameters
53
+ │ └── local/ # Environment-specific overrides
54
+ │ ├── catalog.yml
55
+ │ └── parameters.yml
56
+ ├── data/
57
+ │ ├── 01_raw/ # Raw immutable data
58
+ │ ├── 02_intermediate/ # Intermediate data
59
+ │ ├── 03_primary/ # Domain model data
60
+ │ ├── 04_feature/ # Feature sets
61
+ │ └── 05_model_input/ # Model training data
62
+ ├── src/
63
+ │ └── project_name/
64
+ │ ├── __init__.py
65
+ │ ├── settings.py
66
+ │ ├── pipeline_registry.py
67
+ │ └── pipelines/ # Modular pipelines
68
+ │ └── data_processing/
69
+ │ ├── __init__.py
70
+ │ ├── nodes.py
71
+ │ └── pipeline.py
72
+ └── tests/
73
+ ```
74
+
75
+ #### Data Catalog Configuration
76
+ ```yaml
77
+ # ✅ CORRECT: Data catalog with various dataset types
78
+ # conf/base/catalog.yml
79
+
80
+ # CSV Dataset
81
+ companies:
82
+ type: pandas.CSVDataSet
83
+ filepath: data/01_raw/companies.csv
84
+
85
+ # Parquet Dataset for performance
86
+ preprocessed_companies:
87
+ type: pandas.ParquetDataSet
88
+ filepath: data/02_intermediate/preprocessed_companies.parquet
89
+
90
+ # Memory Dataset (not saved to disk)
91
+ model_input_table:
92
+ type: MemoryDataset
93
+
94
+ # Partitioned Dataset
95
+ shuttles_data:
96
+ type: PartitionedDataset
97
+ path: data/01_raw/shuttles
98
+ dataset: pandas.CSVDataSet
99
+
100
+ # Database connection with credentials
101
+ user_data:
102
+ type: pandas.SQLTableDataSet
103
+ credentials: db_credentials
104
+ table_name: users
105
+ load_args:
106
+ schema: public
107
+ ```
108
+
109
+ #### Pipeline Development
110
+ ```python
111
+ # ✅ CORRECT: Kedro pipeline with node dependencies
112
+ from kedro.pipeline import Pipeline, node, pipeline
113
+
114
+ def preprocess_companies(companies: pd.DataFrame) -> pd.DataFrame:
115
+ """Preprocess company data."""
116
+ return companies.dropna()
117
+
118
+ def preprocess_shuttles(shuttles: pd.DataFrame) -> pd.DataFrame:
119
+ """Preprocess shuttle data."""
120
+ return shuttles.drop_duplicates()
121
+
122
+ def create_model_input_table(
123
+ shuttles: pd.DataFrame,
124
+ companies: pd.DataFrame,
125
+ reviews: pd.DataFrame
126
+ ) -> pd.DataFrame:
127
+ """Combine data sources into model input."""
128
+ return shuttles.merge(companies).merge(reviews)
129
+
130
+ def create_pipeline(**kwargs) -> Pipeline:
131
+ return pipeline([
132
+ node(
133
+ func=preprocess_companies,
134
+ inputs="companies",
135
+ outputs="preprocessed_companies",
136
+ name="preprocess_companies_node",
137
+ ),
138
+ node(
139
+ func=preprocess_shuttles,
140
+ inputs="shuttles",
141
+ outputs="preprocessed_shuttles",
142
+ name="preprocess_shuttles_node",
143
+ ),
144
+ node(
145
+ func=create_model_input_table,
146
+ inputs=["preprocessed_shuttles", "preprocessed_companies", "reviews"],
147
+ outputs="model_input_table",
148
+ name="create_model_input_table_node",
149
+ ),
150
+ ])
151
+ ```
152
+
153
+ #### Pipeline Registry
154
+ ```python
155
+ # ✅ CORRECT: Pipeline registry structure
156
+ # src/project_name/pipeline_registry.py
157
+
158
+ from kedro.pipeline import Pipeline
159
+
160
+ from project_name.pipelines import data_processing, feature_engineering, modeling
161
+
162
+ def register_pipelines() -> dict[str, Pipeline]:
163
+ """Register project pipelines."""
164
+ data_processing_pipeline = data_processing.create_pipeline()
165
+ feature_engineering_pipeline = feature_engineering.create_pipeline()
166
+ modeling_pipeline = modeling.create_pipeline()
167
+
168
+ return {
169
+ "data_processing": data_processing_pipeline,
170
+ "feature_engineering": feature_engineering_pipeline,
171
+ "modeling": modeling_pipeline,
172
+ "__default__": (
173
+ data_processing_pipeline
174
+ + feature_engineering_pipeline
175
+ + modeling_pipeline
176
+ ),
177
+ }
178
+ ```
179
+
180
+ #### Using Parameters
181
+ ```yaml
182
+ # ✅ CORRECT: Parameters configuration
183
+ # conf/base/parameters_data_processing.yml
184
+
185
+ data_processing:
186
+ test_size: 0.2
187
+ random_state: 42
188
+ features:
189
+ - feature_1
190
+ - feature_2
191
+ - feature_3
192
+ ```
193
+
194
+ ```python
195
+ # ✅ CORRECT: Accessing parameters in nodes
196
+ def split_data(
197
+ data: pd.DataFrame,
198
+ parameters: dict
199
+ ) -> tuple[pd.DataFrame, pd.DataFrame]:
200
+ """Split data into train and test sets."""
201
+ test_size = parameters["test_size"]
202
+ random_state = parameters["random_state"]
203
+
204
+ return train_test_split(
205
+ data,
206
+ test_size=test_size,
207
+ random_state=random_state
208
+ )
209
+
210
+ # In pipeline definition
211
+ node(
212
+ func=split_data,
213
+ inputs=["model_input_table", "params:data_processing"],
214
+ outputs=["X_train", "X_test"],
215
+ name="split_data_node",
216
+ )
217
+ ```
218
+
219
+ #### Modular Pipeline Pattern
220
+ ```python
221
+ # ✅ CORRECT: Modular pipeline structure
222
+ # src/project_name/pipelines/data_processing/pipeline.py
223
+
224
+ from kedro.pipeline import Pipeline, node, pipeline
225
+ from kedro.pipeline.modular_pipeline import pipeline as modular_pipeline
226
+
227
+ from .nodes import preprocess, validate, transform
228
+
229
+ def create_pipeline(**kwargs) -> Pipeline:
230
+ return modular_pipeline(
231
+ pipe=[
232
+ node(
233
+ func=preprocess,
234
+ inputs="raw_data",
235
+ outputs="preprocessed_data",
236
+ name="preprocess_node",
237
+ ),
238
+ node(
239
+ func=validate,
240
+ inputs="preprocessed_data",
241
+ outputs="validated_data",
242
+ name="validate_node",
243
+ ),
244
+ node(
245
+ func=transform,
246
+ inputs="validated_data",
247
+ outputs="transformed_data",
248
+ name="transform_node",
249
+ ),
250
+ ],
251
+ namespace="data_processing", # Namespace for modularity
252
+ inputs={"raw_data"},
253
+ outputs={"transformed_data"},
254
+ )
255
+ ```
256
+
257
+ #### Loading Data Catalog Programmatically
258
+ ```python
259
+ # ✅ CORRECT: Load data catalog with credentials
260
+ from kedro.config import OmegaConfigLoader
261
+ from kedro.framework.project import settings
262
+ from kedro.io import DataCatalog
263
+
264
+ # Load configuration
265
+ conf_path = str(project_path / settings.CONF_SOURCE)
266
+ conf_loader = OmegaConfigLoader(
267
+ conf_source=conf_path,
268
+ base_env="base",
269
+ default_run_env="local"
270
+ )
271
+
272
+ # Access configurations
273
+ conf_catalog = conf_loader["catalog"]
274
+ conf_credentials = conf_loader["credentials"]
275
+
276
+ # Create DataCatalog with resolved credentials
277
+ catalog = DataCatalog.from_config(
278
+ catalog=conf_catalog,
279
+ credentials=conf_credentials
280
+ )
281
+
282
+ # Use catalog
283
+ data = catalog.load("my_dataset")
284
+ catalog.save("output_dataset", processed_data)
285
+ ```
286
+
287
+ ## Core Expertise
288
+
289
+ - **Project Structure**: Modular pipelines, configuration
290
+ - **Data Catalog**: Dataset definitions, IO abstraction
291
+ - **Pipeline Development**: Nodes, dependencies, parameters
292
+ - **Versioning**: Data versioning, experiment tracking
293
+ - **Deployment**: Airflow, Kubernetes, cloud services
294
+
295
+ ## Self-Verification Protocol
296
+
297
+ Before delivering any solution, verify:
298
+ - [ ] Documentation from Context7 has been consulted
299
+ - [ ] Code follows best practices
300
+ - [ ] Tests are written and passing
301
+ - [ ] Performance is acceptable
302
+ - [ ] Security considerations addressed
303
+ - [ ] No resource leaks
304
+ - [ ] Error handling is comprehensive