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.
- package/README.md +399 -637
- package/package.json +2 -1
- package/packages/plugin-ai/LICENSE +21 -0
- package/packages/plugin-ai/README.md +316 -0
- package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
- package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
- package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
- package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
- package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
- package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
- package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
- package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
- package/packages/plugin-ai/commands/a2a-setup.md +886 -0
- package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
- package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
- package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
- package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
- package/packages/plugin-ai/commands/llm-optimize.md +348 -0
- package/packages/plugin-ai/commands/openai-optimize.md +863 -0
- package/packages/plugin-ai/commands/rag-optimize.md +841 -0
- package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
- package/packages/plugin-ai/package.json +66 -0
- package/packages/plugin-ai/plugin.json +519 -0
- package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
- package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
- package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
- package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
- package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
- package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
- package/packages/plugin-cloud/README.md +268 -0
- package/packages/plugin-cloud/agents/README.md +55 -0
- package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
- package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
- package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
- package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
- package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
- package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
- package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
- package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
- package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
- package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
- package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
- package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
- package/packages/plugin-cloud/commands/ssh-security.md +65 -0
- package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
- package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
- package/packages/plugin-cloud/package.json +64 -0
- package/packages/plugin-cloud/plugin.json +338 -0
- package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
- package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
- package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
- package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
- package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
- package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
- package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
- package/packages/plugin-core/README.md +274 -0
- package/packages/plugin-core/agents/core/agent-manager.md +296 -0
- package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
- package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
- package/packages/plugin-core/agents/core/test-runner.md +200 -0
- package/packages/plugin-core/commands/code-rabbit.md +128 -0
- package/packages/plugin-core/commands/prompt.md +9 -0
- package/packages/plugin-core/commands/re-init.md +9 -0
- package/packages/plugin-core/hooks/context7-reminder.md +29 -0
- package/packages/plugin-core/hooks/enforce-agents.js +125 -0
- package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
- package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
- package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
- package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
- package/packages/plugin-core/hooks/test-hook.sh +21 -0
- package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
- package/packages/plugin-core/package.json +45 -0
- package/packages/plugin-core/plugin.json +387 -0
- package/packages/plugin-core/rules/agent-coordination.md +549 -0
- package/packages/plugin-core/rules/agent-mandatory.md +170 -0
- package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
- package/packages/plugin-core/rules/command-pipelines.md +208 -0
- package/packages/plugin-core/rules/context-optimization.md +176 -0
- package/packages/plugin-core/rules/context7-enforcement.md +327 -0
- package/packages/plugin-core/rules/datetime.md +122 -0
- package/packages/plugin-core/rules/definition-of-done.md +272 -0
- package/packages/plugin-core/rules/development-environments.md +19 -0
- package/packages/plugin-core/rules/development-workflow.md +198 -0
- package/packages/plugin-core/rules/framework-path-rules.md +180 -0
- package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
- package/packages/plugin-core/rules/git-strategy.md +237 -0
- package/packages/plugin-core/rules/golden-rules.md +181 -0
- package/packages/plugin-core/rules/naming-conventions.md +111 -0
- package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
- package/packages/plugin-core/rules/performance-guidelines.md +403 -0
- package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
- package/packages/plugin-core/rules/security-checklist.md +318 -0
- package/packages/plugin-core/rules/standard-patterns.md +197 -0
- package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
- package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
- package/packages/plugin-core/rules/use-ast-grep.md +113 -0
- package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
- package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
- package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
- package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
- package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
- package/packages/plugin-core/scripts/mcp/add.sh +7 -0
- package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
- package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
- package/packages/plugin-core/scripts/mcp/list.sh +7 -0
- package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
- package/packages/plugin-data/README.md +315 -0
- package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
- package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
- package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
- package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
- package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
- package/packages/plugin-data/package.json +66 -0
- package/packages/plugin-data/plugin.json +294 -0
- package/packages/plugin-data/rules/data-quality-standards.md +373 -0
- package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
- package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
- package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
- package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
- package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
- package/packages/plugin-databases/README.md +330 -0
- package/packages/plugin-databases/agents/README.md +50 -0
- package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
- package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
- package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
- package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
- package/packages/plugin-databases/agents/redis-expert.md +74 -0
- package/packages/plugin-databases/commands/db-optimize.md +612 -0
- package/packages/plugin-databases/package.json +60 -0
- package/packages/plugin-databases/plugin.json +237 -0
- package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
- package/packages/plugin-databases/rules/database-pipeline.md +316 -0
- package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
- package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
- package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
- package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
- package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
- package/packages/plugin-devops/README.md +367 -0
- package/packages/plugin-devops/agents/README.md +52 -0
- package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
- package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
- package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
- package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
- package/packages/plugin-devops/agents/observability-engineer.md +574 -0
- package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
- package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
- package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
- package/packages/plugin-devops/commands/docker-optimize.md +493 -0
- package/packages/plugin-devops/commands/workflow-create.md +42 -0
- package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
- package/packages/plugin-devops/package.json +61 -0
- package/packages/plugin-devops/plugin.json +302 -0
- package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
- package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
- package/packages/plugin-devops/rules/docker-first-development.md +404 -0
- package/packages/plugin-devops/rules/github-operations.md +92 -0
- package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
- package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
- package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
- package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
- package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
- package/packages/plugin-frameworks/README.md +309 -0
- package/packages/plugin-frameworks/agents/README.md +64 -0
- package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
- package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
- package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
- package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
- package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
- package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
- package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
- package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
- package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
- package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
- package/packages/plugin-frameworks/package.json +59 -0
- package/packages/plugin-frameworks/plugin.json +224 -0
- package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
- package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
- package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
- package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
- package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
- package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
- package/packages/plugin-languages/README.md +333 -0
- package/packages/plugin-languages/agents/README.md +50 -0
- package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
- package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
- package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
- package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
- package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
- package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
- package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
- package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
- package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
- package/packages/plugin-languages/commands/python-optimize.md +593 -0
- package/packages/plugin-languages/package.json +65 -0
- package/packages/plugin-languages/plugin.json +265 -0
- package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
- package/packages/plugin-languages/rules/testing-standards.md +768 -0
- package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
- package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
- package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
- package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
- package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
- package/packages/plugin-ml/README.md +430 -0
- package/packages/plugin-ml/agents/automl-expert.md +326 -0
- package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
- package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
- package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
- package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
- package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
- package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
- package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
- package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
- package/packages/plugin-ml/agents/time-series-expert.md +303 -0
- package/packages/plugin-ml/commands/ml-automl.md +572 -0
- package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
- package/packages/plugin-ml/package.json +52 -0
- package/packages/plugin-ml/plugin.json +338 -0
- package/packages/plugin-pm/README.md +368 -0
- package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
- package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
- package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
- package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
- package/packages/plugin-pm/commands/azure/README.md +246 -0
- package/packages/plugin-pm/commands/azure/active-work.md +198 -0
- package/packages/plugin-pm/commands/azure/aliases.md +143 -0
- package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
- package/packages/plugin-pm/commands/azure/clean.md +93 -0
- package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
- package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
- package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
- package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
- package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
- package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
- package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
- package/packages/plugin-pm/commands/azure/help.md +150 -0
- package/packages/plugin-pm/commands/azure/import-us.md +269 -0
- package/packages/plugin-pm/commands/azure/init.md +211 -0
- package/packages/plugin-pm/commands/azure/next-task.md +262 -0
- package/packages/plugin-pm/commands/azure/search.md +160 -0
- package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
- package/packages/plugin-pm/commands/azure/standup.md +260 -0
- package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
- package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
- package/packages/plugin-pm/commands/azure/task-close.md +329 -0
- package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
- package/packages/plugin-pm/commands/azure/task-list.md +263 -0
- package/packages/plugin-pm/commands/azure/task-new.md +84 -0
- package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
- package/packages/plugin-pm/commands/azure/task-show.md +126 -0
- package/packages/plugin-pm/commands/azure/task-start.md +301 -0
- package/packages/plugin-pm/commands/azure/task-status.md +65 -0
- package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
- package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
- package/packages/plugin-pm/commands/azure/us-list.md +202 -0
- package/packages/plugin-pm/commands/azure/us-new.md +265 -0
- package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
- package/packages/plugin-pm/commands/azure/us-show.md +188 -0
- package/packages/plugin-pm/commands/azure/us-status.md +320 -0
- package/packages/plugin-pm/commands/azure/validate.md +86 -0
- package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
- package/packages/plugin-pm/commands/blocked.md +28 -0
- package/packages/plugin-pm/commands/clean.md +119 -0
- package/packages/plugin-pm/commands/context-create.md +136 -0
- package/packages/plugin-pm/commands/context-prime.md +170 -0
- package/packages/plugin-pm/commands/context-update.md +292 -0
- package/packages/plugin-pm/commands/context.md +28 -0
- package/packages/plugin-pm/commands/epic-close.md +86 -0
- package/packages/plugin-pm/commands/epic-decompose.md +370 -0
- package/packages/plugin-pm/commands/epic-edit.md +83 -0
- package/packages/plugin-pm/commands/epic-list.md +30 -0
- package/packages/plugin-pm/commands/epic-merge.md +222 -0
- package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
- package/packages/plugin-pm/commands/epic-refresh.md +119 -0
- package/packages/plugin-pm/commands/epic-show.md +28 -0
- package/packages/plugin-pm/commands/epic-split.md +120 -0
- package/packages/plugin-pm/commands/epic-start.md +195 -0
- package/packages/plugin-pm/commands/epic-status.md +28 -0
- package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
- package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
- package/packages/plugin-pm/commands/epic-sync.md +486 -0
- package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
- package/packages/plugin-pm/commands/help.md +28 -0
- package/packages/plugin-pm/commands/import.md +115 -0
- package/packages/plugin-pm/commands/in-progress.md +28 -0
- package/packages/plugin-pm/commands/init.md +28 -0
- package/packages/plugin-pm/commands/issue-analyze.md +202 -0
- package/packages/plugin-pm/commands/issue-close.md +119 -0
- package/packages/plugin-pm/commands/issue-edit.md +93 -0
- package/packages/plugin-pm/commands/issue-reopen.md +87 -0
- package/packages/plugin-pm/commands/issue-show.md +41 -0
- package/packages/plugin-pm/commands/issue-start.md +234 -0
- package/packages/plugin-pm/commands/issue-status.md +95 -0
- package/packages/plugin-pm/commands/issue-sync.md +411 -0
- package/packages/plugin-pm/commands/next.md +28 -0
- package/packages/plugin-pm/commands/prd-edit.md +82 -0
- package/packages/plugin-pm/commands/prd-list.md +28 -0
- package/packages/plugin-pm/commands/prd-new.md +55 -0
- package/packages/plugin-pm/commands/prd-parse.md +42 -0
- package/packages/plugin-pm/commands/prd-status.md +28 -0
- package/packages/plugin-pm/commands/search.md +28 -0
- package/packages/plugin-pm/commands/standup.md +28 -0
- package/packages/plugin-pm/commands/status.md +28 -0
- package/packages/plugin-pm/commands/sync.md +99 -0
- package/packages/plugin-pm/commands/test-reference-update.md +151 -0
- package/packages/plugin-pm/commands/validate.md +28 -0
- package/packages/plugin-pm/commands/what-next.md +28 -0
- package/packages/plugin-pm/package.json +57 -0
- package/packages/plugin-pm/plugin.json +503 -0
- package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
- package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
- package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
- package/packages/plugin-pm/scripts/pm/clean.js +464 -0
- package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
- package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
- package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
- package/packages/plugin-pm/scripts/pm/context.js +338 -0
- package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
- package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
- package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
- package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
- package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
- package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
- package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
- package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
- package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
- package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
- package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
- package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
- package/packages/plugin-pm/scripts/pm/help.js +92 -0
- package/packages/plugin-pm/scripts/pm/help.sh +90 -0
- package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
- package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
- package/packages/plugin-pm/scripts/pm/init.js +321 -0
- package/packages/plugin-pm/scripts/pm/init.sh +178 -0
- package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
- package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
- package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
- package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
- package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
- package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
- package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
- package/packages/plugin-pm/scripts/pm/next.js +189 -0
- package/packages/plugin-pm/scripts/pm/next.sh +72 -0
- package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
- package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
- package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
- package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
- package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
- package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
- package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
- package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
- package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
- package/packages/plugin-pm/scripts/pm/release.js +460 -0
- package/packages/plugin-pm/scripts/pm/search.js +192 -0
- package/packages/plugin-pm/scripts/pm/search.sh +89 -0
- package/packages/plugin-pm/scripts/pm/standup.js +362 -0
- package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
- package/packages/plugin-pm/scripts/pm/status.js +148 -0
- package/packages/plugin-pm/scripts/pm/status.sh +59 -0
- package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
- package/packages/plugin-pm/scripts/pm/sync.js +343 -0
- package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
- package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
- package/packages/plugin-pm/scripts/pm/validate.js +274 -0
- package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
- package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
- package/packages/plugin-testing/README.md +401 -0
- package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
- package/packages/plugin-testing/commands/jest-optimize.md +800 -0
- package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
- package/packages/plugin-testing/commands/test-coverage.md +512 -0
- package/packages/plugin-testing/commands/test-performance.md +1041 -0
- package/packages/plugin-testing/commands/test-setup.md +414 -0
- package/packages/plugin-testing/package.json +40 -0
- package/packages/plugin-testing/plugin.json +197 -0
- package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
- package/packages/plugin-testing/rules/testing-standards.md +529 -0
- package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
- package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
- package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
|
@@ -0,0 +1,793 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Bash, Read, Write, LS
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# anthropic:optimize
|
|
6
|
+
|
|
7
|
+
Optimize Anthropic Claude API usage with Context7-verified prompt caching, model selection, streaming, and cost reduction strategies.
|
|
8
|
+
|
|
9
|
+
## Description
|
|
10
|
+
|
|
11
|
+
Comprehensive Claude API optimization following official Anthropic best practices:
|
|
12
|
+
- Prompt caching for 70-90% cost reduction
|
|
13
|
+
- Optimal model selection (Opus, Sonnet, Haiku)
|
|
14
|
+
- Streaming responses for better UX
|
|
15
|
+
- Extended thinking for complex reasoning
|
|
16
|
+
- Batch processing strategies
|
|
17
|
+
- Token usage optimization
|
|
18
|
+
- Rate limiting and retry logic
|
|
19
|
+
|
|
20
|
+
## Required Documentation Access
|
|
21
|
+
|
|
22
|
+
**MANDATORY:** Before optimization, query Context7 for Anthropic best practices:
|
|
23
|
+
|
|
24
|
+
**Documentation Queries:**
|
|
25
|
+
- `mcp://context7/anthropic/anthropic-sdk-python` - Python SDK patterns and best practices
|
|
26
|
+
- `mcp://context7/anthropic/prompt-caching` - Prompt caching for 70-90% cost reduction
|
|
27
|
+
- `mcp://context7/anthropic/streaming` - Streaming response optimization
|
|
28
|
+
- `mcp://context7/anthropic/extended-thinking` - Extended thinking mode for reasoning
|
|
29
|
+
- `mcp://context7/anthropic/model-selection` - Choosing Opus, Sonnet, or Haiku
|
|
30
|
+
- `mcp://context7/anthropic/batching` - Batch processing strategies
|
|
31
|
+
|
|
32
|
+
**Why This is Required:**
|
|
33
|
+
- Ensures optimization follows official Anthropic documentation
|
|
34
|
+
- Applies proven prompt caching patterns for massive cost reduction
|
|
35
|
+
- Validates model selection strategies
|
|
36
|
+
- Prevents API quota exhaustion
|
|
37
|
+
- Optimizes token usage and costs
|
|
38
|
+
- Implements proper streaming for better UX
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
/anthropic:optimize [options]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Options
|
|
47
|
+
|
|
48
|
+
- `--scope <caching|model|streaming|thinking|all>` - Optimization scope (default: all)
|
|
49
|
+
- `--analyze-only` - Analyze without applying changes
|
|
50
|
+
- `--output <file>` - Write optimization report
|
|
51
|
+
- `--model <opus|sonnet|haiku>` - Target model for optimization
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
### Full Anthropic Optimization
|
|
56
|
+
```bash
|
|
57
|
+
/anthropic:optimize
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Prompt Caching Only
|
|
61
|
+
```bash
|
|
62
|
+
/anthropic:optimize --scope caching
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Model Selection Optimization
|
|
66
|
+
```bash
|
|
67
|
+
/anthropic:optimize --scope model
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Analyze Current Usage
|
|
71
|
+
```bash
|
|
72
|
+
/anthropic:optimize --analyze-only --output anthropic-report.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Optimization Categories
|
|
76
|
+
|
|
77
|
+
### 1. Prompt Caching (Context7-Verified)
|
|
78
|
+
|
|
79
|
+
**Pattern from Context7 (/anthropic/anthropic-sdk-python):**
|
|
80
|
+
|
|
81
|
+
#### Basic Prompt Caching
|
|
82
|
+
```python
|
|
83
|
+
import anthropic
|
|
84
|
+
|
|
85
|
+
client = anthropic.Anthropic()
|
|
86
|
+
|
|
87
|
+
# Cache static context for reuse
|
|
88
|
+
response = client.messages.create(
|
|
89
|
+
model="claude-3-5-sonnet-20241022",
|
|
90
|
+
max_tokens=1024,
|
|
91
|
+
system=[
|
|
92
|
+
{
|
|
93
|
+
"type": "text",
|
|
94
|
+
"text": "You are an AI assistant tasked with analyzing literary works."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "text",
|
|
98
|
+
"text": "Here is the full text of Pride and Prejudice:\n<book>" + book_text + "</book>",
|
|
99
|
+
"cache_control": {"type": "ephemeral"}
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
messages=[{
|
|
103
|
+
"role": "user",
|
|
104
|
+
"content": "Analyze the relationship between Mr. Darcy and Elizabeth"
|
|
105
|
+
}]
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
print(response.usage)
|
|
109
|
+
# Usage(input_tokens=150, cache_creation_tokens=50000, cache_read_tokens=0, output_tokens=300)
|
|
110
|
+
|
|
111
|
+
# Second request reuses cache
|
|
112
|
+
response2 = client.messages.create(
|
|
113
|
+
model="claude-3-5-sonnet-20241022",
|
|
114
|
+
max_tokens=1024,
|
|
115
|
+
system=[
|
|
116
|
+
{
|
|
117
|
+
"type": "text",
|
|
118
|
+
"text": "You are an AI assistant tasked with analyzing literary works."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"type": "text",
|
|
122
|
+
"text": "Here is the full text of Pride and Prejudice:\n<book>" + book_text + "</book>",
|
|
123
|
+
"cache_control": {"type": "ephemeral"}
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
messages=[{
|
|
127
|
+
"role": "user",
|
|
128
|
+
"content": "What are the major themes in this book?"
|
|
129
|
+
}]
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
print(response2.usage)
|
|
133
|
+
# Usage(input_tokens=150, cache_creation_tokens=0, cache_read_tokens=50000, output_tokens=250)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Cost Impact:**
|
|
137
|
+
- Input tokens: $3 per MTok (Sonnet 3.5)
|
|
138
|
+
- Cache writes: $3.75 per MTok (25% markup)
|
|
139
|
+
- Cache reads: $0.30 per MTok (90% discount)
|
|
140
|
+
|
|
141
|
+
**Example Calculation:**
|
|
142
|
+
- First request: 150 input + 50,000 cache write = $0.00045 + $0.1875 = $0.18795
|
|
143
|
+
- Second request: 150 input + 50,000 cache read = $0.00045 + $0.015 = $0.01545
|
|
144
|
+
- Savings per cached request: 92% reduction
|
|
145
|
+
|
|
146
|
+
**Performance Impact:**
|
|
147
|
+
- Cache lifetime: 5 minutes of inactivity
|
|
148
|
+
- Minimum cacheable tokens: 1024 tokens
|
|
149
|
+
- Maximum cache size: 4 cache breakpoints per request
|
|
150
|
+
- 90% cost reduction for cache reads
|
|
151
|
+
|
|
152
|
+
#### Multi-Turn Conversation Caching
|
|
153
|
+
```python
|
|
154
|
+
# Agentic tool use with caching
|
|
155
|
+
tools = [
|
|
156
|
+
{
|
|
157
|
+
"name": "get_weather",
|
|
158
|
+
"description": "Get current weather in a location",
|
|
159
|
+
"input_schema": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"properties": {
|
|
162
|
+
"location": {"type": "string"}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
# ... 20+ more tools
|
|
167
|
+
]
|
|
168
|
+
|
|
169
|
+
message_list = [
|
|
170
|
+
{"role": "user", "content": "What's the weather in San Francisco?"}
|
|
171
|
+
]
|
|
172
|
+
|
|
173
|
+
response = client.messages.create(
|
|
174
|
+
model="claude-3-5-sonnet-20241022",
|
|
175
|
+
max_tokens=1024,
|
|
176
|
+
tools=tools,
|
|
177
|
+
messages=message_list,
|
|
178
|
+
system=[
|
|
179
|
+
{
|
|
180
|
+
"type": "text",
|
|
181
|
+
"text": "You are a helpful assistant with access to weather and other tools.",
|
|
182
|
+
"cache_control": {"type": "ephemeral"}
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
# Tools and system prompt are cached
|
|
188
|
+
# Subsequent tool calls reuse cache → 90% cheaper
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Benefits:**
|
|
192
|
+
- Agentic workflows: Cache tool definitions across turns
|
|
193
|
+
- Long documents: Cache book/docs once, query many times
|
|
194
|
+
- Detailed instructions: Cache complex system prompts
|
|
195
|
+
- Code repositories: Cache codebase context
|
|
196
|
+
|
|
197
|
+
**Best Practices:**
|
|
198
|
+
- Place cache_control at END of content to cache
|
|
199
|
+
- Cache blocks ≥1024 tokens for cost effectiveness
|
|
200
|
+
- Structure prompts with static content first
|
|
201
|
+
- Use for repetitive queries against same context
|
|
202
|
+
|
|
203
|
+
### 2. Model Selection (Context7-Verified)
|
|
204
|
+
|
|
205
|
+
**Pattern from Context7 (/anthropic/anthropic-sdk-python):**
|
|
206
|
+
|
|
207
|
+
#### Intelligent Model Routing
|
|
208
|
+
```python
|
|
209
|
+
# Model characteristics (as of 2025)
|
|
210
|
+
MODELS = {
|
|
211
|
+
"claude-opus-4-20250514": {
|
|
212
|
+
"cost_input": 15.00, # per MTok
|
|
213
|
+
"cost_output": 75.00, # per MTok
|
|
214
|
+
"intelligence": "highest",
|
|
215
|
+
"speed": "slowest",
|
|
216
|
+
"use_cases": ["complex reasoning", "advanced coding", "nuanced analysis"]
|
|
217
|
+
},
|
|
218
|
+
"claude-3-5-sonnet-20241022": {
|
|
219
|
+
"cost_input": 3.00,
|
|
220
|
+
"cost_output": 15.00,
|
|
221
|
+
"intelligence": "high",
|
|
222
|
+
"speed": "fast",
|
|
223
|
+
"use_cases": ["general tasks", "code generation", "balanced performance"]
|
|
224
|
+
},
|
|
225
|
+
"claude-3-5-haiku-20241022": {
|
|
226
|
+
"cost_input": 0.80,
|
|
227
|
+
"cost_output": 4.00,
|
|
228
|
+
"intelligence": "good",
|
|
229
|
+
"speed": "fastest",
|
|
230
|
+
"use_cases": ["simple tasks", "classification", "high-volume processing"]
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
def select_model(task_complexity: str, volume: str) -> str:
|
|
235
|
+
"""Route to optimal model based on task requirements."""
|
|
236
|
+
|
|
237
|
+
if task_complexity == "high" and volume == "low":
|
|
238
|
+
return "claude-opus-4-20250514" # Best quality
|
|
239
|
+
|
|
240
|
+
elif task_complexity == "medium" or volume == "medium":
|
|
241
|
+
return "claude-3-5-sonnet-20241022" # Balanced
|
|
242
|
+
|
|
243
|
+
elif task_complexity == "low" or volume == "high":
|
|
244
|
+
return "claude-3-5-haiku-20241022" # Fast and cheap
|
|
245
|
+
|
|
246
|
+
# Default to Sonnet for unknown cases
|
|
247
|
+
return "claude-3-5-sonnet-20241022"
|
|
248
|
+
|
|
249
|
+
# Example usage
|
|
250
|
+
task = {
|
|
251
|
+
"complexity": "low", # Simple classification
|
|
252
|
+
"volume": "high", # 10,000 requests/day
|
|
253
|
+
"type": "sentiment_analysis"
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
model = select_model(task["complexity"], task["volume"])
|
|
257
|
+
# Returns: claude-3-5-haiku-20241022
|
|
258
|
+
|
|
259
|
+
response = client.messages.create(
|
|
260
|
+
model=model,
|
|
261
|
+
max_tokens=50,
|
|
262
|
+
messages=[{
|
|
263
|
+
"role": "user",
|
|
264
|
+
"content": "Classify sentiment: 'I love this product!'"
|
|
265
|
+
}]
|
|
266
|
+
)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
**Cost Comparison:**
|
|
270
|
+
- Opus: 10,000 requests × 100 input × 50 output = $1.50 + $3.75 = $52.50/day
|
|
271
|
+
- Sonnet: Same = $0.30 + $0.75 = $10.50/day
|
|
272
|
+
- Haiku: Same = $0.08 + $0.20 = $2.80/day
|
|
273
|
+
|
|
274
|
+
**Recommendation:** Use Haiku for 80% of simple tasks → 94% cost reduction vs Opus
|
|
275
|
+
|
|
276
|
+
### 3. Streaming Optimization (Context7-Verified)
|
|
277
|
+
|
|
278
|
+
**Pattern from Context7 (/anthropic/anthropic-sdk-python):**
|
|
279
|
+
|
|
280
|
+
#### Text Streaming
|
|
281
|
+
```python
|
|
282
|
+
from anthropic import Anthropic
|
|
283
|
+
|
|
284
|
+
client = Anthropic()
|
|
285
|
+
|
|
286
|
+
# Stream response for better UX
|
|
287
|
+
with client.messages.stream(
|
|
288
|
+
model="claude-3-5-sonnet-20241022",
|
|
289
|
+
max_tokens=1024,
|
|
290
|
+
messages=[{
|
|
291
|
+
"role": "user",
|
|
292
|
+
"content": "Write a long essay about artificial intelligence"
|
|
293
|
+
}]
|
|
294
|
+
) as stream:
|
|
295
|
+
for text in stream.text_stream:
|
|
296
|
+
print(text, end="", flush=True)
|
|
297
|
+
|
|
298
|
+
# Access final message and usage
|
|
299
|
+
message = stream.get_final_message()
|
|
300
|
+
print(f"\n\nTokens used: {message.usage.input_tokens} in, {message.usage.output_tokens} out")
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Benefits:**
|
|
304
|
+
- Time to first token: ~500ms vs 5s for full response
|
|
305
|
+
- Progressive rendering for better UX
|
|
306
|
+
- Lower perceived latency
|
|
307
|
+
- Real-time feedback to users
|
|
308
|
+
|
|
309
|
+
#### Streaming with Event Handlers
|
|
310
|
+
```python
|
|
311
|
+
from anthropic import Anthropic
|
|
312
|
+
from anthropic.types import MessageStreamEvent
|
|
313
|
+
|
|
314
|
+
client = Anthropic()
|
|
315
|
+
|
|
316
|
+
# Custom event handlers
|
|
317
|
+
with client.messages.stream(
|
|
318
|
+
model="claude-3-5-sonnet-20241022",
|
|
319
|
+
max_tokens=1024,
|
|
320
|
+
messages=[{
|
|
321
|
+
"role": "user",
|
|
322
|
+
"content": "Explain quantum computing"
|
|
323
|
+
}]
|
|
324
|
+
) as stream:
|
|
325
|
+
for event in stream:
|
|
326
|
+
if event.type == "content_block_start":
|
|
327
|
+
print(f"\n[Block {event.index} started]")
|
|
328
|
+
|
|
329
|
+
elif event.type == "content_block_delta":
|
|
330
|
+
print(event.delta.text, end="", flush=True)
|
|
331
|
+
|
|
332
|
+
elif event.type == "message_stop":
|
|
333
|
+
print("\n[Message complete]")
|
|
334
|
+
|
|
335
|
+
# Async streaming
|
|
336
|
+
import asyncio
|
|
337
|
+
|
|
338
|
+
async def async_stream():
|
|
339
|
+
async with client.messages.stream(
|
|
340
|
+
model="claude-3-5-sonnet-20241022",
|
|
341
|
+
max_tokens=1024,
|
|
342
|
+
messages=[{
|
|
343
|
+
"role": "user",
|
|
344
|
+
"content": "Write a story"
|
|
345
|
+
}]
|
|
346
|
+
) as stream:
|
|
347
|
+
async for text in stream.text_stream:
|
|
348
|
+
print(text, end="", flush=True)
|
|
349
|
+
|
|
350
|
+
asyncio.run(async_stream())
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Performance Impact:**
|
|
354
|
+
- Non-streaming: Full response in 5s, nothing shown until complete
|
|
355
|
+
- Streaming: First token in 500ms, progressive display (10x better perceived latency)
|
|
356
|
+
|
|
357
|
+
### 4. Extended Thinking (Context7-Verified)
|
|
358
|
+
|
|
359
|
+
**Pattern from Context7 (/anthropic/anthropic-sdk-python):**
|
|
360
|
+
|
|
361
|
+
#### Extended Thinking Mode
|
|
362
|
+
```python
|
|
363
|
+
# Enable extended thinking for complex reasoning
|
|
364
|
+
response = client.messages.create(
|
|
365
|
+
model="claude-3-7-sonnet-20250219", # Models with extended thinking
|
|
366
|
+
max_tokens=16000,
|
|
367
|
+
thinking={
|
|
368
|
+
"type": "enabled",
|
|
369
|
+
"budget_tokens": 10000 # Allocate tokens for internal reasoning
|
|
370
|
+
},
|
|
371
|
+
messages=[{
|
|
372
|
+
"role": "user",
|
|
373
|
+
"content": """Solve this complex problem:
|
|
374
|
+
A train leaves Station A at 10am going 60mph.
|
|
375
|
+
Another train leaves Station B (300 miles away) at 11am going 80mph toward Station A.
|
|
376
|
+
A bird flies at 100mph between the trains until they meet.
|
|
377
|
+
How far does the bird travel total?"""
|
|
378
|
+
}]
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
# Access thinking content
|
|
382
|
+
for content_block in response.content:
|
|
383
|
+
if content_block.type == "thinking":
|
|
384
|
+
print(f"Internal reasoning:\n{content_block.thinking}")
|
|
385
|
+
elif content_block.type == "text":
|
|
386
|
+
print(f"Final answer:\n{content_block.text}")
|
|
387
|
+
|
|
388
|
+
# Example output:
|
|
389
|
+
# Internal reasoning:
|
|
390
|
+
# Let me work through this step by step...
|
|
391
|
+
# [detailed reasoning process]
|
|
392
|
+
#
|
|
393
|
+
# Final answer:
|
|
394
|
+
# The bird travels 150 miles total.
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
**When to Use Extended Thinking:**
|
|
398
|
+
- Complex mathematical problems
|
|
399
|
+
- Multi-step reasoning tasks
|
|
400
|
+
- Code debugging and analysis
|
|
401
|
+
- Strategic planning
|
|
402
|
+
- Advanced problem-solving
|
|
403
|
+
|
|
404
|
+
**Benefits:**
|
|
405
|
+
- Significantly improved accuracy on hard problems
|
|
406
|
+
- Transparent reasoning process
|
|
407
|
+
- Better handling of edge cases
|
|
408
|
+
- Reduced hallucinations
|
|
409
|
+
|
|
410
|
+
**Cost Considerations:**
|
|
411
|
+
- Thinking tokens cost same as input tokens
|
|
412
|
+
- Budget 5000-10000 tokens for thinking
|
|
413
|
+
- Only use for tasks requiring deep reasoning
|
|
414
|
+
- Not needed for simple tasks
|
|
415
|
+
|
|
416
|
+
### 5. Batch Processing (Context7-Verified)
|
|
417
|
+
|
|
418
|
+
**Pattern from Context7:**
|
|
419
|
+
|
|
420
|
+
#### Async Concurrent Requests
|
|
421
|
+
```python
|
|
422
|
+
import asyncio
|
|
423
|
+
from anthropic import AsyncAnthropic
|
|
424
|
+
|
|
425
|
+
client = AsyncAnthropic()
|
|
426
|
+
|
|
427
|
+
async def process_item(text: str) -> str:
|
|
428
|
+
"""Process single item with Claude."""
|
|
429
|
+
response = await client.messages.create(
|
|
430
|
+
model="claude-3-5-haiku-20241022", # Fast model for batch
|
|
431
|
+
max_tokens=100,
|
|
432
|
+
messages=[{
|
|
433
|
+
"role": "user",
|
|
434
|
+
"content": f"Summarize in one sentence: {text}"
|
|
435
|
+
}]
|
|
436
|
+
)
|
|
437
|
+
return response.content[0].text
|
|
438
|
+
|
|
439
|
+
async def process_batch(items: list[str]) -> list[str]:
|
|
440
|
+
"""Process batch concurrently."""
|
|
441
|
+
tasks = [process_item(item) for item in items]
|
|
442
|
+
return await asyncio.gather(*tasks)
|
|
443
|
+
|
|
444
|
+
# Process 100 items concurrently
|
|
445
|
+
items = ["Article 1...", "Article 2...", ...] * 100
|
|
446
|
+
results = asyncio.run(process_batch(items))
|
|
447
|
+
|
|
448
|
+
# Performance:
|
|
449
|
+
# Sequential: 100 items × 1s = 100s
|
|
450
|
+
# Concurrent (20 at a time): max(100 × 1s / 20) = 5s (20x faster)
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
**Rate Limiting for Large Batches:**
|
|
454
|
+
```python
|
|
455
|
+
import asyncio
|
|
456
|
+
from asyncio import Semaphore
|
|
457
|
+
|
|
458
|
+
async def rate_limited_batch(items: list[str], max_concurrent: int = 50):
|
|
459
|
+
"""Process batch with rate limiting."""
|
|
460
|
+
semaphore = Semaphore(max_concurrent)
|
|
461
|
+
|
|
462
|
+
async def process_with_limit(item: str) -> str:
|
|
463
|
+
async with semaphore:
|
|
464
|
+
return await process_item(item)
|
|
465
|
+
|
|
466
|
+
tasks = [process_with_limit(item) for item in items]
|
|
467
|
+
return await asyncio.gather(*tasks)
|
|
468
|
+
|
|
469
|
+
# Process 1000 items with 50 concurrent requests
|
|
470
|
+
results = asyncio.run(rate_limited_batch(items, max_concurrent=50))
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Benefits:**
|
|
474
|
+
- 10-20x faster than sequential
|
|
475
|
+
- Automatic retry on transient errors
|
|
476
|
+
- Efficient use of rate limits
|
|
477
|
+
- Scales to thousands of requests
|
|
478
|
+
|
|
479
|
+
### 6. Token Optimization (Context7-Verified)
|
|
480
|
+
|
|
481
|
+
**Pattern from Context7:**
|
|
482
|
+
|
|
483
|
+
#### Token Counting
|
|
484
|
+
```python
|
|
485
|
+
# Anthropic uses tiktoken for token counting
|
|
486
|
+
import tiktoken
|
|
487
|
+
|
|
488
|
+
def count_tokens(text: str, model: str = "claude-3-5-sonnet-20241022") -> int:
|
|
489
|
+
"""Count tokens for Anthropic models (uses cl100k_base encoding)."""
|
|
490
|
+
encoding = tiktoken.get_encoding("cl100k_base")
|
|
491
|
+
return len(encoding.encode(text))
|
|
492
|
+
|
|
493
|
+
# Optimize message length
|
|
494
|
+
def optimize_message(text: str, max_tokens: int = 4000) -> str:
|
|
495
|
+
"""Truncate message to fit token limit."""
|
|
496
|
+
tokens = count_tokens(text)
|
|
497
|
+
|
|
498
|
+
if tokens <= max_tokens:
|
|
499
|
+
return text
|
|
500
|
+
|
|
501
|
+
# Truncate to fit
|
|
502
|
+
encoding = tiktoken.get_encoding("cl100k_base")
|
|
503
|
+
encoded = encoding.encode(text)
|
|
504
|
+
truncated = encoding.decode(encoded[:max_tokens])
|
|
505
|
+
|
|
506
|
+
return truncated
|
|
507
|
+
|
|
508
|
+
# Usage
|
|
509
|
+
long_text = "..." * 10000
|
|
510
|
+
optimized = optimize_message(long_text, max_tokens=4000)
|
|
511
|
+
print(f"Original: {count_tokens(long_text)} tokens")
|
|
512
|
+
print(f"Optimized: {count_tokens(optimized)} tokens")
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
**Cost Impact:**
|
|
516
|
+
- Sonnet 3.5: $3 per 1M input tokens
|
|
517
|
+
- Optimizing 10,000 requests from 8K → 4K tokens
|
|
518
|
+
- Savings: $120 per day
|
|
519
|
+
|
|
520
|
+
#### max_tokens Optimization
|
|
521
|
+
```python
|
|
522
|
+
# Set appropriate output limits
|
|
523
|
+
response = client.messages.create(
|
|
524
|
+
model="claude-3-5-sonnet-20241022",
|
|
525
|
+
max_tokens=150, # Limit response length
|
|
526
|
+
messages=[{
|
|
527
|
+
"role": "user",
|
|
528
|
+
"content": "Summarize in 2-3 sentences: " + article
|
|
529
|
+
}]
|
|
530
|
+
)
|
|
531
|
+
|
|
532
|
+
# Benefits:
|
|
533
|
+
# - Prevents verbose responses
|
|
534
|
+
# - Reduces output costs (5x more expensive than input)
|
|
535
|
+
# - Faster generation
|
|
536
|
+
# - More predictable costs
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
**Cost Savings:** 60% for responses naturally <150 tokens
|
|
540
|
+
|
|
541
|
+
### 7. Rate Limiting and Retry Logic (Context7-Verified)
|
|
542
|
+
|
|
543
|
+
**Pattern from Context7:**
|
|
544
|
+
|
|
545
|
+
#### Exponential Backoff
|
|
546
|
+
```python
|
|
547
|
+
from tenacity import (
|
|
548
|
+
retry,
|
|
549
|
+
stop_after_attempt,
|
|
550
|
+
wait_exponential,
|
|
551
|
+
retry_if_exception_type
|
|
552
|
+
)
|
|
553
|
+
from anthropic import Anthropic, RateLimitError, APIError
|
|
554
|
+
|
|
555
|
+
client = Anthropic()
|
|
556
|
+
|
|
557
|
+
@retry(
|
|
558
|
+
retry=retry_if_exception_type((RateLimitError, APIError)),
|
|
559
|
+
wait=wait_exponential(multiplier=1, min=4, max=60),
|
|
560
|
+
stop=stop_after_attempt(5)
|
|
561
|
+
)
|
|
562
|
+
def get_completion_with_retry(prompt: str) -> str:
|
|
563
|
+
"""
|
|
564
|
+
Automatically retry on rate limit errors with exponential backoff.
|
|
565
|
+
|
|
566
|
+
Backoff schedule:
|
|
567
|
+
- Attempt 1: Immediate
|
|
568
|
+
- Attempt 2: 4s wait
|
|
569
|
+
- Attempt 3: 8s wait
|
|
570
|
+
- Attempt 4: 16s wait
|
|
571
|
+
- Attempt 5: 32s wait
|
|
572
|
+
"""
|
|
573
|
+
response = client.messages.create(
|
|
574
|
+
model="claude-3-5-sonnet-20241022",
|
|
575
|
+
max_tokens=1024,
|
|
576
|
+
messages=[{
|
|
577
|
+
"role": "user",
|
|
578
|
+
"content": prompt
|
|
579
|
+
}]
|
|
580
|
+
)
|
|
581
|
+
return response.content[0].text
|
|
582
|
+
|
|
583
|
+
# Usage
|
|
584
|
+
try:
|
|
585
|
+
result = get_completion_with_retry("Explain machine learning")
|
|
586
|
+
print(result)
|
|
587
|
+
except Exception as e:
|
|
588
|
+
print(f"Failed after 5 attempts: {e}")
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
**Benefits:**
|
|
592
|
+
- Automatic retry on transient errors
|
|
593
|
+
- Exponential backoff prevents API hammering
|
|
594
|
+
- 95% success rate even under rate limits
|
|
595
|
+
- No manual error handling needed
|
|
596
|
+
|
|
597
|
+
## Optimization Output
|
|
598
|
+
|
|
599
|
+
```
|
|
600
|
+
🤖 Anthropic Claude API Optimization Analysis
|
|
601
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
602
|
+
|
|
603
|
+
Project: AI Application
|
|
604
|
+
Current Usage: 2M tokens/day input, 500K tokens/day output
|
|
605
|
+
Monthly Cost: $600 (input) + $1500 (output) = $2,100
|
|
606
|
+
|
|
607
|
+
📊 Current Performance Baseline
|
|
608
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
609
|
+
|
|
610
|
+
Model Usage:
|
|
611
|
+
- Model: claude-opus-4-20250514 (all tasks)
|
|
612
|
+
- Simple tasks: 80% (could use Haiku)
|
|
613
|
+
- Complex tasks: 20%
|
|
614
|
+
|
|
615
|
+
Caching:
|
|
616
|
+
- Cache usage: 0% (no caching)
|
|
617
|
+
- Repetitive context: 60% of requests
|
|
618
|
+
|
|
619
|
+
Request Pattern:
|
|
620
|
+
- Sequential requests: 1,000/day
|
|
621
|
+
- Average latency: 2s per request
|
|
622
|
+
- No streaming
|
|
623
|
+
|
|
624
|
+
⚡ Prompt Caching Optimization
|
|
625
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
626
|
+
|
|
627
|
+
Current: No caching, full price for every request
|
|
628
|
+
Recommended: Cache static context with cache_control
|
|
629
|
+
|
|
630
|
+
💡 Impact:
|
|
631
|
+
- First request: Cache write at $3.75/MTok (25% markup)
|
|
632
|
+
- Subsequent requests: Cache read at $0.30/MTok (90% discount)
|
|
633
|
+
- With 60% cache hit rate:
|
|
634
|
+
* Before: $2,100/month
|
|
635
|
+
* After: $450/month (cache writes) + $180/month (cache reads) = $630/month
|
|
636
|
+
* Savings: $1,470/month (70% reduction)
|
|
637
|
+
|
|
638
|
+
Prompt caching configured ✓
|
|
639
|
+
|
|
640
|
+
🎯 Model Selection Optimization
|
|
641
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
642
|
+
|
|
643
|
+
⚠️ Using Opus for all tasks (most expensive)
|
|
644
|
+
Current: 1,000 requests/day, all Opus
|
|
645
|
+
|
|
646
|
+
💡 Recommendations:
|
|
647
|
+
1. Route 80% simple tasks → Haiku (94% cost reduction)
|
|
648
|
+
2. Route 15% medium tasks → Sonnet (80% cost reduction)
|
|
649
|
+
3. Keep 5% complex tasks → Opus
|
|
650
|
+
|
|
651
|
+
Multi-model routing configured ✓
|
|
652
|
+
|
|
653
|
+
⚡ Impact:
|
|
654
|
+
- 800 Haiku: $0.80 input + $4.00 output = $38.40/day
|
|
655
|
+
- 150 Sonnet: $3.00 input + $15.00 output = $54/day
|
|
656
|
+
- 50 Opus: $15.00 input + $75.00 output = $90/day
|
|
657
|
+
- Total: $182.40/day = $5,472/month
|
|
658
|
+
- Before optimization: $31,500/month
|
|
659
|
+
- Savings: $26,028/month (83% reduction)
|
|
660
|
+
|
|
661
|
+
🌊 Streaming Optimization
|
|
662
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
663
|
+
|
|
664
|
+
⚠️ Using non-streaming responses
|
|
665
|
+
Time to first token: 2s (full response wait)
|
|
666
|
+
|
|
667
|
+
💡 Recommendation: Enable streaming for long responses
|
|
668
|
+
|
|
669
|
+
⚡ Impact:
|
|
670
|
+
- Time to first token: 2s → 500ms (4x faster perceived)
|
|
671
|
+
- Better UX: Progressive rendering
|
|
672
|
+
- Reduced user wait time: 75%
|
|
673
|
+
|
|
674
|
+
Streaming configured ✓
|
|
675
|
+
|
|
676
|
+
🧠 Extended Thinking Optimization
|
|
677
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
678
|
+
|
|
679
|
+
Recommendation: Use extended thinking for 5% complex tasks
|
|
680
|
+
|
|
681
|
+
⚡ Impact:
|
|
682
|
+
- Accuracy improvement: 30-50% on hard problems
|
|
683
|
+
- Reduced hallucinations: 40%
|
|
684
|
+
- Cost: Additional 5000-10000 thinking tokens per request
|
|
685
|
+
- Only for tasks requiring deep reasoning
|
|
686
|
+
|
|
687
|
+
🎯 Summary
|
|
688
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
689
|
+
|
|
690
|
+
Total Optimizations: 15
|
|
691
|
+
|
|
692
|
+
🔴 Critical: 4 (caching, model selection, streaming, batching)
|
|
693
|
+
🟡 High Impact: 7 (token optimization, retry logic, thinking)
|
|
694
|
+
🟢 Low Impact: 4 (monitoring, logging)
|
|
695
|
+
|
|
696
|
+
Performance Improvements:
|
|
697
|
+
|
|
698
|
+
Latency:
|
|
699
|
+
- Time to first token: 2s → 500ms (4x faster)
|
|
700
|
+
- Sequential processing: 33 min/day → 1.7 min/day (20x faster)
|
|
701
|
+
- Cache reads: Instant (90% discount)
|
|
702
|
+
|
|
703
|
+
Cost Savings:
|
|
704
|
+
- Prompt caching: $1,470/month (70% reduction)
|
|
705
|
+
- Model selection: $26,028/month (83% reduction)
|
|
706
|
+
- Token optimization: $360/month (30% reduction)
|
|
707
|
+
- Total monthly savings: $27,858 (93% reduction)
|
|
708
|
+
- New monthly cost: $2,100 → $242
|
|
709
|
+
|
|
710
|
+
Quality:
|
|
711
|
+
- Extended thinking: 30-50% accuracy improvement on complex tasks
|
|
712
|
+
- Hallucinations: 40% reduction
|
|
713
|
+
- Success rate: 95%+ with retry logic
|
|
714
|
+
|
|
715
|
+
Run with --apply to implement optimizations
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
## Implementation
|
|
719
|
+
|
|
720
|
+
This command uses the **@anthropic-claude-expert** agent with optimization expertise:
|
|
721
|
+
|
|
722
|
+
1. Query Context7 for Anthropic optimization patterns
|
|
723
|
+
2. Analyze current API usage patterns
|
|
724
|
+
3. Identify caching opportunities
|
|
725
|
+
4. Configure model routing
|
|
726
|
+
5. Implement streaming
|
|
727
|
+
6. Setup rate limiting
|
|
728
|
+
7. Generate optimized code
|
|
729
|
+
|
|
730
|
+
## Best Practices Applied
|
|
731
|
+
|
|
732
|
+
Based on Context7 documentation from `/anthropic/anthropic-sdk-python`:
|
|
733
|
+
|
|
734
|
+
1. **Prompt Caching** - 70-90% cost reduction for repetitive context
|
|
735
|
+
2. **Model Selection** - Use Haiku for 80% of tasks (94% cheaper than Opus)
|
|
736
|
+
3. **Streaming** - 4x faster perceived latency
|
|
737
|
+
4. **Extended Thinking** - 30-50% accuracy improvement on complex tasks
|
|
738
|
+
5. **Batch Processing** - 20x faster with async concurrency
|
|
739
|
+
6. **Token Optimization** - 30% cost reduction
|
|
740
|
+
7. **Exponential Backoff** - 95% success rate under rate limits
|
|
741
|
+
|
|
742
|
+
## Related Commands
|
|
743
|
+
|
|
744
|
+
- `/openai:optimize` - OpenAI API optimization
|
|
745
|
+
- `/rag:optimize` - RAG system optimization
|
|
746
|
+
- `/llm:optimize` - General LLM optimization
|
|
747
|
+
|
|
748
|
+
## Troubleshooting
|
|
749
|
+
|
|
750
|
+
### High Costs
|
|
751
|
+
- Enable prompt caching (70-90% reduction)
|
|
752
|
+
- Route simple tasks to Haiku (94% cheaper)
|
|
753
|
+
- Use Sonnet instead of Opus (80% cheaper)
|
|
754
|
+
- Optimize max_tokens limits
|
|
755
|
+
|
|
756
|
+
### Slow Responses
|
|
757
|
+
- Enable streaming (4x faster perceived latency)
|
|
758
|
+
- Use Haiku for fast responses
|
|
759
|
+
- Implement async batch processing
|
|
760
|
+
|
|
761
|
+
### Low Accuracy
|
|
762
|
+
- Use Opus for complex tasks
|
|
763
|
+
- Enable extended thinking mode
|
|
764
|
+
- Increase max_tokens for reasoning
|
|
765
|
+
- Use prompt caching to maintain context
|
|
766
|
+
|
|
767
|
+
### Rate Limit Errors
|
|
768
|
+
- Implement exponential backoff with tenacity
|
|
769
|
+
- Use rate limiting for batch processing
|
|
770
|
+
- Reduce concurrent requests
|
|
771
|
+
|
|
772
|
+
## Installation
|
|
773
|
+
|
|
774
|
+
```bash
|
|
775
|
+
# Install Anthropic Python SDK
|
|
776
|
+
pip install anthropic
|
|
777
|
+
|
|
778
|
+
# Install optimization dependencies
|
|
779
|
+
pip install tenacity tiktoken
|
|
780
|
+
|
|
781
|
+
# Install async support
|
|
782
|
+
pip install aiohttp asyncio
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
## Version History
|
|
786
|
+
|
|
787
|
+
- v2.0.0 - Initial Schema v2.0 release with Context7 integration
|
|
788
|
+
- Prompt caching patterns for 70-90% cost reduction
|
|
789
|
+
- Multi-model routing (Opus, Sonnet, Haiku)
|
|
790
|
+
- Streaming response optimization
|
|
791
|
+
- Extended thinking mode support
|
|
792
|
+
- Async batch processing patterns
|
|
793
|
+
- Token optimization utilities
|