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,509 @@
1
+ # Prompt Engineering Standards
2
+
3
+ ## Priority: High
4
+
5
+ ## Description
6
+
7
+ Comprehensive prompt engineering standards with Context7-verified best practices for effective prompt design, few-shot learning, chain-of-thought reasoning, and structured outputs across OpenAI, Gemini, and LangChain frameworks.
8
+
9
+ ## Applies To
10
+ - commands
11
+ - agents
12
+
13
+ ## Enforces On
14
+ - openai-python-expert
15
+ - gemini-api-expert
16
+ - langgraph-workflow-expert
17
+
18
+ ## Context7 Documentation Sources
19
+
20
+ **MANDATORY:** All prompt implementations MUST consult:
21
+ - `/openai/openai-python` (277 snippets, trust 9.1) - OpenAI prompt patterns
22
+ - `/langchain-ai/langchain` (150 snippets, trust 9.2) - LangChain prompt templates
23
+ - Context7-verified prompt engineering techniques
24
+
25
+ ## Standards
26
+
27
+ ### 1. System Prompts and Role Definition
28
+
29
+ #### ✅ CORRECT: Clear, specific system prompts
30
+ ```python
31
+ from langchain_core.prompts import ChatPromptTemplate
32
+
33
+ # Context7 pattern: Specific role with constraints
34
+ SYSTEM_PROMPT = """You are an expert Python developer assistant.
35
+
36
+ Your responsibilities:
37
+ - Provide accurate, working Python code
38
+ - Follow PEP 8 style guidelines
39
+ - Include comprehensive error handling
40
+ - Add clear docstrings and comments
41
+ - Suggest tests for the code
42
+
43
+ Constraints:
44
+ - Only provide Python code (no other languages unless explicitly asked)
45
+ - Always explain your reasoning
46
+ - If unsure, say "I don't have enough information" rather than guessing
47
+ """
48
+
49
+ prompt_template = ChatPromptTemplate.from_messages([
50
+ ("system", SYSTEM_PROMPT),
51
+ ("human", "{user_input}")
52
+ ])
53
+ ```
54
+
55
+ #### ❌ INCORRECT: Vague, generic system prompts
56
+ ```python
57
+ # DON'T: Vague system prompt
58
+ SYSTEM_PROMPT = "You are a helpful assistant."
59
+ # Too generic - model has no specific guidance
60
+ ```
61
+
62
+ ### 2. Few-Shot Learning Patterns
63
+
64
+ #### ✅ CORRECT: Context7-verified few-shot examples
65
+ ```python
66
+ # Context7 pattern: 3-5 examples covering edge cases
67
+ FEW_SHOT_PROMPT = """You are a text classifier for customer support tickets.
68
+
69
+ Examples:
70
+
71
+ Input: "My order hasn't arrived yet and it's been 2 weeks"
72
+ Output: {"category": "delivery_issue", "priority": "high", "sentiment": "frustrated"}
73
+
74
+ Input: "How do I reset my password?"
75
+ Output: {"category": "account_help", "priority": "low", "sentiment": "neutral"}
76
+
77
+ Input: "The product is broken, I want a refund immediately!"
78
+ Output: {"category": "refund_request", "priority": "high", "sentiment": "angry"}
79
+
80
+ Input: "Great service, very happy with my purchase"
81
+ Output: {"category": "feedback", "priority": "low", "sentiment": "positive"}
82
+
83
+ Input: "Can you help me choose between product A and B?"
84
+ Output: {"category": "pre_sales", "priority": "medium", "sentiment": "neutral"}
85
+
86
+ Now classify this ticket:
87
+ {ticket_text}
88
+
89
+ Respond with JSON only."""
90
+ ```
91
+
92
+ #### ❌ INCORRECT: Single example or no examples
93
+ ```python
94
+ # DON'T: Only one example
95
+ FEW_SHOT_PROMPT = """Classify tickets.
96
+ Example: "Order issue" -> delivery_issue
97
+
98
+ {ticket_text}"""
99
+ # Not enough examples to establish pattern
100
+ ```
101
+
102
+ ### 3. Chain-of-Thought (CoT) Reasoning
103
+
104
+ #### ✅ CORRECT: Explicit reasoning steps (Context7 pattern)
105
+ ```python
106
+ # Context7 pattern: Step-by-step reasoning
107
+ COT_PROMPT = """Answer the following question using step-by-step reasoning.
108
+
109
+ Question: {question}
110
+
111
+ Please follow this process:
112
+ 1. Identify what the question is asking
113
+ 2. List the key information provided
114
+ 3. Determine what additional information or assumptions are needed
115
+ 4. Work through the solution step by step
116
+ 5. State your final answer
117
+
118
+ Let's think through this systematically:"""
119
+
120
+ # Usage
121
+ messages = [
122
+ {"role": "system", "content": "You are a logical reasoning assistant."},
123
+ {"role": "user", "content": COT_PROMPT.format(
124
+ question="If a train travels 120 miles in 2 hours, then 180 miles in the next 3 hours, what is its average speed?"
125
+ )}
126
+ ]
127
+ ```
128
+
129
+ #### ❌ INCORRECT: Direct answer request without reasoning
130
+ ```python
131
+ # DON'T: Skip reasoning process
132
+ PROMPT = "What is the average speed? Answer directly."
133
+ # Missing chain-of-thought guidance
134
+ ```
135
+
136
+ ### 4. Structured Output Generation
137
+
138
+ #### ✅ CORRECT: JSON schema with validation (Context7 pattern)
139
+ ```python
140
+ from pydantic import BaseModel, Field
141
+ from typing import List, Literal
142
+ import json
143
+
144
+ class AnalysisResult(BaseModel):
145
+ """Structured output schema"""
146
+ summary: str = Field(description="Brief summary in 1-2 sentences")
147
+ key_points: List[str] = Field(description="3-5 key points")
148
+ sentiment: Literal["positive", "negative", "neutral"] = Field(description="Overall sentiment")
149
+ confidence: float = Field(ge=0.0, le=1.0, description="Confidence score")
150
+ action_items: List[str] = Field(description="Recommended actions")
151
+
152
+ # Context7 pattern: JSON schema in prompt
153
+ STRUCTURED_PROMPT = f"""Analyze the following text and provide your response in this EXACT JSON format:
154
+
155
+ {json.dumps(AnalysisResult.model_json_schema(), indent=2)}
156
+
157
+ Text to analyze:
158
+ {{text}}
159
+
160
+ Respond with ONLY valid JSON matching the schema above. No additional text."""
161
+
162
+ # Validation after response
163
+ async def get_structured_analysis(text: str) -> AnalysisResult:
164
+ response = await client.chat.completions.create(
165
+ model="gpt-4",
166
+ messages=[{"role": "user", "content": STRUCTURED_PROMPT.format(text=text)}],
167
+ response_format={"type": "json_object"} # Context7: Force JSON output
168
+ )
169
+
170
+ # Parse and validate
171
+ result_data = json.loads(response.choices[0].message.content)
172
+ return AnalysisResult(**result_data)
173
+ ```
174
+
175
+ #### ❌ INCORRECT: Unstructured output request
176
+ ```python
177
+ # DON'T: Unstructured output
178
+ PROMPT = "Analyze this text and tell me what you think."
179
+ # No structure - hard to parse programmatically
180
+ ```
181
+
182
+ ### 5. Context Window Management
183
+
184
+ #### ✅ CORRECT: Token counting and truncation (Context7 pattern)
185
+ ```python
186
+ import tiktoken
187
+
188
+ class PromptManager:
189
+ """Context7 pattern: Manage context window with token counting"""
190
+ def __init__(self, model: str = "gpt-4", max_tokens: int = 8000):
191
+ self.model = model
192
+ self.max_tokens = max_tokens
193
+ self.encoding = tiktoken.encoding_for_model(model)
194
+
195
+ def count_tokens(self, text: str) -> int:
196
+ """Count tokens in text"""
197
+ return len(self.encoding.encode(text))
198
+
199
+ def truncate_to_fit(
200
+ self,
201
+ system_prompt: str,
202
+ user_message: str,
203
+ reserve_for_response: int = 1000
204
+ ) -> tuple[str, str]:
205
+ """Truncate messages to fit in context window"""
206
+ system_tokens = self.count_tokens(system_prompt)
207
+ user_tokens = self.count_tokens(user_message)
208
+
209
+ available_tokens = self.max_tokens - reserve_for_response
210
+ total_tokens = system_tokens + user_tokens
211
+
212
+ if total_tokens > available_tokens:
213
+ # Truncate user message
214
+ tokens_to_remove = total_tokens - available_tokens
215
+ user_encoded = self.encoding.encode(user_message)
216
+ truncated = user_encoded[:len(user_encoded) - tokens_to_remove]
217
+ user_message = self.encoding.decode(truncated) + "\n[...truncated]"
218
+
219
+ return system_prompt, user_message
220
+
221
+ # Usage
222
+ prompt_mgr = PromptManager(model="gpt-4", max_tokens=8000)
223
+ system, user = prompt_mgr.truncate_to_fit(system_prompt, long_user_message)
224
+ ```
225
+
226
+ #### ❌ INCORRECT: No token management
227
+ ```python
228
+ # DON'T: No token counting
229
+ messages = [
230
+ {"role": "system", "content": very_long_system_prompt},
231
+ {"role": "user", "content": extremely_long_user_message}
232
+ ]
233
+ # Will fail if exceeds context window
234
+ ```
235
+
236
+ ### 6. Prompt Templates with Variables
237
+
238
+ #### ✅ CORRECT: Parameterized templates (Context7 LangChain pattern)
239
+ ```python
240
+ from langchain_core.prompts import PromptTemplate, ChatPromptTemplate
241
+ from langchain_core.output_parsers import StrOutputParser
242
+ from langchain_openai import ChatOpenAI
243
+
244
+ # Context7 pattern: PromptTemplate with clear variables
245
+ code_review_template = PromptTemplate(
246
+ input_variables=["code", "language", "focus_areas"],
247
+ template="""Review the following {language} code and focus on: {focus_areas}
248
+
249
+ Code:
250
+ ```{language}
251
+ {code}
252
+ ```
253
+
254
+ Provide:
255
+ 1. Overall code quality assessment
256
+ 2. Specific issues found
257
+ 3. Suggestions for improvement
258
+ 4. Security considerations
259
+
260
+ Review:"""
261
+ )
262
+
263
+ # Context7 pattern: Chain with prompt template
264
+ review_chain = (
265
+ code_review_template
266
+ | ChatOpenAI(model="gpt-4", temperature=0)
267
+ | StrOutputParser()
268
+ )
269
+
270
+ # Usage
271
+ result = review_chain.invoke({
272
+ "code": source_code,
273
+ "language": "Python",
274
+ "focus_areas": "security, performance, maintainability"
275
+ })
276
+ ```
277
+
278
+ #### ❌ INCORRECT: String concatenation
279
+ ```python
280
+ # DON'T: String concatenation without templates
281
+ prompt = f"Review this code: {code}"
282
+ # No structure, hard to modify, prone to injection
283
+ ```
284
+
285
+ ### 7. Handling Ambiguous Inputs
286
+
287
+ #### ✅ CORRECT: Clarification prompts (Context7 pattern)
288
+ ```python
289
+ # Context7 pattern: Handle ambiguity explicitly
290
+ CLARIFICATION_PROMPT = """I need to complete this task, but some information is missing or ambiguous.
291
+
292
+ Task: {task}
293
+
294
+ Ambiguities I've identified:
295
+ {ambiguities}
296
+
297
+ Please provide clarification for:
298
+ 1. {question_1}
299
+ 2. {question_2}
300
+ 3. {question_3}
301
+
302
+ Or, if you'd prefer, I can make reasonable assumptions:
303
+ {assumptions}
304
+
305
+ How would you like me to proceed?"""
306
+
307
+ # Usage for handling unclear requests
308
+ async def handle_ambiguous_request(task: str):
309
+ # Detect ambiguity
310
+ if is_ambiguous(task):
311
+ clarification = await ask_for_clarification(task)
312
+ return clarification
313
+ else:
314
+ return await process_task(task)
315
+ ```
316
+
317
+ #### ❌ INCORRECT: Assume without asking
318
+ ```python
319
+ # DON'T: Make assumptions without clarifying
320
+ async def process_request(task):
321
+ # Assumes what user meant without asking
322
+ result = await client.chat.completions.create(...)
323
+ return result
324
+ ```
325
+
326
+ ### 8. Temperature and Parameter Tuning
327
+
328
+ #### ✅ CORRECT: Task-specific temperature (Context7 pattern)
329
+ ```python
330
+ from enum import Enum
331
+
332
+ class TaskType(Enum):
333
+ FACTUAL = "factual" # Low temperature
334
+ CREATIVE = "creative" # High temperature
335
+ CODE_GEN = "code_generation" # Low temperature
336
+ BRAINSTORM = "brainstorming" # High temperature
337
+
338
+ # Context7 pattern: Temperature based on task
339
+ TEMPERATURE_MAP = {
340
+ TaskType.FACTUAL: 0.1,
341
+ TaskType.CREATIVE: 0.9,
342
+ TaskType.CODE_GEN: 0.1,
343
+ TaskType.BRAINSTORM: 0.8
344
+ }
345
+
346
+ async def generate_with_appropriate_temp(
347
+ prompt: str,
348
+ task_type: TaskType
349
+ ) -> str:
350
+ """Use Context7-recommended temperature for task"""
351
+ temperature = TEMPERATURE_MAP[task_type]
352
+
353
+ response = await client.chat.completions.create(
354
+ model="gpt-4",
355
+ messages=[{"role": "user", "content": prompt}],
356
+ temperature=temperature,
357
+ top_p=0.95 # Context7: Slight nucleus sampling
358
+ )
359
+
360
+ return response.choices[0].message.content
361
+ ```
362
+
363
+ #### ❌ INCORRECT: Fixed temperature for all tasks
364
+ ```python
365
+ # DON'T: Same temperature for everything
366
+ response = await client.chat.completions.create(
367
+ model="gpt-4",
368
+ messages=[{"role": "user", "content": prompt}],
369
+ temperature=0.7 # Same for factual and creative tasks
370
+ )
371
+ ```
372
+
373
+ ### 9. Prompt Injection Prevention
374
+
375
+ #### ✅ CORRECT: Input sanitization (Context7 pattern)
376
+ ```python
377
+ import re
378
+
379
+ class PromptSanitizer:
380
+ """Context7 pattern: Prevent prompt injection"""
381
+ DANGEROUS_PATTERNS = [
382
+ r"ignore previous instructions",
383
+ r"disregard all",
384
+ r"new instructions:",
385
+ r"system:",
386
+ r"<\|im_start\|>",
387
+ r"### Instruction",
388
+ ]
389
+
390
+ @classmethod
391
+ def sanitize_input(cls, user_input: str) -> str:
392
+ """Remove potentially dangerous patterns"""
393
+ # Check for injection attempts
394
+ for pattern in cls.DANGEROUS_PATTERNS:
395
+ if re.search(pattern, user_input, re.IGNORECASE):
396
+ raise ValueError(f"Potential prompt injection detected: {pattern}")
397
+
398
+ # Escape special characters
399
+ sanitized = user_input.replace("```", "'''")
400
+
401
+ return sanitized
402
+
403
+ @classmethod
404
+ def create_safe_prompt(cls, user_input: str, template: str) -> str:
405
+ """Create prompt with sanitized input"""
406
+ sanitized = cls.sanitize_input(user_input)
407
+ return template.format(user_input=sanitized)
408
+
409
+ # Usage
410
+ try:
411
+ safe_prompt = PromptSanitizer.create_safe_prompt(
412
+ user_input,
413
+ "Analyze this: {user_input}"
414
+ )
415
+ except ValueError as e:
416
+ logger.error(f"Injection attempt blocked: {e}")
417
+ return "Invalid input detected"
418
+ ```
419
+
420
+ #### ❌ INCORRECT: No input validation
421
+ ```python
422
+ # DON'T: Direct user input without sanitization
423
+ prompt = f"Analyze this: {user_input}"
424
+ # Vulnerable to prompt injection
425
+ ```
426
+
427
+ ### 10. Retrieval-Augmented Generation (RAG) Prompts
428
+
429
+ #### ✅ CORRECT: RAG with context citation (Context7 LangChain pattern)
430
+ ```python
431
+ from langchain_core.runnables import RunnablePassthrough
432
+ from operator import itemgetter
433
+
434
+ # Context7 pattern: RAG with source citation
435
+ RAG_PROMPT = """Answer the question based ONLY on the following context.
436
+ If the context doesn't contain enough information, say "I don't have enough information to answer that question."
437
+
438
+ Context:
439
+ {context}
440
+
441
+ Question: {question}
442
+
443
+ Answer (cite specific parts of the context used):"""
444
+
445
+ # Context7 pattern: RunnablePassthrough.assign()
446
+ rag_chain = (
447
+ RunnablePassthrough.assign(
448
+ context=itemgetter("question")
449
+ | retriever
450
+ | (lambda docs: "\n\n".join(
451
+ f"[Source {i+1}]: {doc.page_content}"
452
+ for i, doc in enumerate(docs)
453
+ ))
454
+ )
455
+ | ChatPromptTemplate.from_template(RAG_PROMPT)
456
+ | ChatOpenAI(model="gpt-4", temperature=0)
457
+ | StrOutputParser()
458
+ )
459
+ ```
460
+
461
+ #### ❌ INCORRECT: RAG without context boundaries
462
+ ```python
463
+ # DON'T: No instruction to stay within context
464
+ RAG_PROMPT = """Context: {context}
465
+ Question: {question}
466
+ Answer:"""
467
+ # Model may hallucinate beyond provided context
468
+ ```
469
+
470
+ ## Enforcement Rules
471
+
472
+ 1. **All prompts MUST**:
473
+ - Include clear role definition in system prompts
474
+ - Specify output format explicitly
475
+ - Handle ambiguous inputs gracefully
476
+ - Use appropriate temperature for task type
477
+ - Sanitize user inputs to prevent injection
478
+
479
+ 2. **All structured outputs MUST**:
480
+ - Use Pydantic schemas for validation
481
+ - Include JSON schema in prompt
482
+ - Use `response_format={"type": "json_object"}` when available
483
+ - Validate responses after parsing
484
+
485
+ 3. **All RAG prompts MUST**:
486
+ - Explicitly instruct to use only provided context
487
+ - Request source citations
488
+ - Include fallback for insufficient information
489
+ - Use RunnablePassthrough.assign() for context injection
490
+
491
+ ## Testing Requirements
492
+
493
+ 1. **Prompt Testing**: Test with edge cases and adversarial inputs
494
+ 2. **Injection Testing**: Verify sanitization blocks injection attempts
495
+ 3. **Output Validation**: Ensure structured outputs match schema
496
+ 4. **Context Testing**: Test with context window limits
497
+
498
+ ## Security Requirements
499
+
500
+ 1. **Input Sanitization**: Always sanitize user inputs
501
+ 2. **Output Validation**: Validate structured outputs
502
+ 3. **Injection Prevention**: Block prompt injection patterns
503
+ 4. **PII Protection**: Remove sensitive information from prompts
504
+
505
+ ## References
506
+
507
+ - Context7: `/openai/openai-python` - Prompt engineering best practices
508
+ - Context7: `/langchain-ai/langchain` - Prompt templates and chains
509
+ - OWASP LLM Top 10 - Prompt injection prevention
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ HuggingFace Inference Example - Context7 Best Practices
4
+
5
+ Demonstrates HuggingFace patterns from Context7:
6
+ - Pipeline API for simple inference
7
+ - AutoTokenizer and AutoModel patterns
8
+ - Efficient batch processing
9
+ - Device management (CPU/GPU)
10
+ - Model caching and optimization
11
+
12
+ Source: /huggingface/transformers (2,790 snippets, trust 9.6)
13
+ """
14
+
15
+ import logging
16
+ from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
17
+ import torch
18
+
19
+ logging.basicConfig(level=logging.INFO)
20
+ logger = logging.getLogger(__name__)
21
+
22
+
23
+ # ===================================================================
24
+ # CONTEXT7 PATTERN: Pipeline API (Simplest Approach)
25
+ # ===================================================================
26
+
27
+ def pipeline_inference_example():
28
+ """
29
+ Context7 Pattern: Use pipeline API for simplicity
30
+ """
31
+ logger.info("Running pipeline inference example...")
32
+
33
+ # Context7 recommended: pipeline() for quick inference
34
+ generator = pipeline(
35
+ "text-generation",
36
+ model="distilgpt2", # Lightweight model for demo
37
+ device=0 if torch.cuda.is_available() else -1 # Auto device selection
38
+ )
39
+
40
+ prompt = "Artificial intelligence is"
41
+ results = generator(prompt, max_length=50, num_return_sequences=1)
42
+
43
+ logger.info("✓ Pipeline inference complete")
44
+ return results[0]["generated_text"]
45
+
46
+
47
+ def sentiment_analysis_example():
48
+ """Context7 Pattern: Pre-configured sentiment pipeline"""
49
+ logger.info("Running sentiment analysis...")
50
+
51
+ # Context7 pattern: Pre-configured pipeline
52
+ classifier = pipeline(
53
+ "sentiment-analysis",
54
+ device=-1 # CPU for demo
55
+ )
56
+
57
+ texts = [
58
+ "I love this product! It's amazing!",
59
+ "This is terrible, waste of money.",
60
+ "It's okay, nothing special."
61
+ ]
62
+
63
+ results = classifier(texts)
64
+
65
+ logger.info("✓ Sentiment analysis complete")
66
+ return results
67
+
68
+
69
+ # ===================================================================
70
+ # CONTEXT7 PATTERN: AutoTokenizer and AutoModel
71
+ # ===================================================================
72
+
73
+ def manual_inference_example():
74
+ """
75
+ Context7 Pattern: AutoTokenizer + AutoModel for flexibility
76
+ """
77
+ logger.info("Running manual inference with AutoModel...")
78
+
79
+ model_name = "distilbert-base-uncased-finetuned-sst-2-english"
80
+
81
+ # Context7 pattern: Auto classes for model loading
82
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
83
+ model = AutoModelForSequenceClassification.from_pretrained(model_name)
84
+
85
+ text = "This movie is fantastic!"
86
+
87
+ # Tokenize
88
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
89
+
90
+ # Inference
91
+ with torch.no_grad():
92
+ outputs = model(**inputs)
93
+
94
+ # Get predictions
95
+ predictions = torch.nn.functional.softmax(outputs.logits, dim=-1)
96
+ sentiment = "POSITIVE" if predictions[0][1] > predictions[0][0] else "NEGATIVE"
97
+ confidence = predictions.max().item()
98
+
99
+ logger.info(f"✓ Manual inference: {sentiment} (confidence: {confidence:.2f})")
100
+ return {"sentiment": sentiment, "confidence": confidence}
101
+
102
+
103
+ # ===================================================================
104
+ # MAIN DEMONSTRATION
105
+ # ===================================================================
106
+
107
+ def main():
108
+ """Run all HuggingFace pattern demonstrations"""
109
+ print("\n" + "=" * 60)
110
+ print("HuggingFace Inference Example - Context7 Best Practices")
111
+ print("=" * 60 + "\n")
112
+
113
+ # 1. Pipeline inference
114
+ print("1. Pipeline API (Text Generation)")
115
+ print("-" * 60)
116
+ result = pipeline_inference_example()
117
+ print(f"Generated: {result}\n")
118
+
119
+ # 2. Sentiment analysis
120
+ print("\n2. Pipeline API (Sentiment Analysis)")
121
+ print("-" * 60)
122
+ results = sentiment_analysis_example()
123
+ for i, res in enumerate(results, 1):
124
+ print(f"{i}. {res['label']} (score: {res['score']:.3f})")
125
+
126
+ # 3. Manual inference
127
+ print("\n\n3. AutoTokenizer + AutoModel (Manual)")
128
+ print("-" * 60)
129
+ result = manual_inference_example()
130
+ print(f"Result: {result}")
131
+
132
+ # Summary
133
+ print("\n" + "=" * 60)
134
+ print("EXAMPLES COMPLETED SUCCESSFULLY")
135
+ print("=" * 60)
136
+ print("\nContext7 Patterns Demonstrated:")
137
+ print("1. ✅ pipeline() API for quick inference")
138
+ print("2. ✅ AutoTokenizer + AutoModel for flexibility")
139
+ print("3. ✅ torch.no_grad() for inference efficiency")
140
+ print("4. ✅ Device management (CPU/GPU)")
141
+ print("\nSource: /huggingface/transformers (2,790 snippets, trust 9.6)")
142
+
143
+
144
+ if __name__ == "__main__":
145
+ main()