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.
- package/README.md +399 -637
- package/install/install.js +15 -5
- 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,404 @@
|
|
|
1
|
+
# Docker-First Development Rule
|
|
2
|
+
|
|
3
|
+
> **STATUS**: Can be enabled/disabled via `.claude/config.json` → `features.docker_first_development`
|
|
4
|
+
|
|
5
|
+
## WHEN ENABLED
|
|
6
|
+
|
|
7
|
+
### 1. MANDATORY DOCKER USAGE
|
|
8
|
+
|
|
9
|
+
**ALL development MUST happen inside Docker containers:**
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# ❌ FORBIDDEN - Local execution
|
|
13
|
+
npm install
|
|
14
|
+
npm test
|
|
15
|
+
python app.py
|
|
16
|
+
pytest
|
|
17
|
+
|
|
18
|
+
# ✅ REQUIRED - Docker execution
|
|
19
|
+
docker compose run app npm install
|
|
20
|
+
docker compose run app npm test
|
|
21
|
+
docker compose run app python app.py
|
|
22
|
+
docker compose run test pytest
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. PROJECT STRUCTURE REQUIREMENTS
|
|
26
|
+
|
|
27
|
+
Every project MUST have:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
project/
|
|
31
|
+
├── Dockerfile # Production image
|
|
32
|
+
├── Dockerfile.dev # Development image with dev tools
|
|
33
|
+
├── docker compose.yml # Production-like setup
|
|
34
|
+
├── docker compose.dev.yml # Development overrides
|
|
35
|
+
├── docker compose.test.yml # Test environment
|
|
36
|
+
└── .dockerignore # Exclude unnecessary files
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 3. DEVELOPMENT WORKFLOW
|
|
40
|
+
|
|
41
|
+
#### Initial Setup
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# 1. Check if Docker files exist
|
|
45
|
+
if [ ! -f "Dockerfile" ]; then
|
|
46
|
+
Use docker-containerization-expert agent to create Dockerfile
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# 2. Build development image
|
|
50
|
+
docker compose -f docker compose.yml -f docker compose.dev.yml build
|
|
51
|
+
|
|
52
|
+
# 3. Start development environment
|
|
53
|
+
docker compose -f docker compose.yml -f docker compose.dev.yml up
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### Code Changes
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
# docker compose.dev.yml
|
|
60
|
+
services:
|
|
61
|
+
app:
|
|
62
|
+
volumes:
|
|
63
|
+
- .:/app # Mount source code
|
|
64
|
+
- /app/node_modules # Preserve container node_modules
|
|
65
|
+
- /app/.venv # Preserve Python venv
|
|
66
|
+
command: npm run dev # Hot reload
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### Running Tests
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Always in container
|
|
73
|
+
docker compose run --rm test pytest
|
|
74
|
+
docker compose run --rm test npm test
|
|
75
|
+
|
|
76
|
+
# CI/CD uses same image
|
|
77
|
+
docker build -t app:test .
|
|
78
|
+
docker run app:test pytest
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 4. ENFORCEMENT PIPELINE
|
|
82
|
+
|
|
83
|
+
When docker_first_development is **enabled**:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
1. Hook intercepts local commands (npm, pip, python, etc.)
|
|
87
|
+
2. Checks if Docker alternative exists
|
|
88
|
+
3. Blocks execution with Docker alternative suggestion
|
|
89
|
+
4. Auto-creates Docker files if missing
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 5. DOCKERFILE STANDARDS
|
|
93
|
+
|
|
94
|
+
#### Python Projects
|
|
95
|
+
|
|
96
|
+
```dockerfile
|
|
97
|
+
# Dockerfile.dev
|
|
98
|
+
FROM python:3.11-slim AS development
|
|
99
|
+
WORKDIR /app
|
|
100
|
+
COPY requirements.txt .
|
|
101
|
+
RUN pip install -r requirements.txt
|
|
102
|
+
COPY . .
|
|
103
|
+
CMD ["python", "-m", "flask", "run", "--host=0.0.0.0", "--reload"]
|
|
104
|
+
|
|
105
|
+
# Dockerfile (production)
|
|
106
|
+
FROM python:3.11-slim AS production
|
|
107
|
+
WORKDIR /app
|
|
108
|
+
COPY requirements.txt .
|
|
109
|
+
RUN pip install --no-cache-dir -r requirements.txt
|
|
110
|
+
COPY . .
|
|
111
|
+
CMD ["gunicorn", "app:app"]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### Node.js Projects
|
|
115
|
+
|
|
116
|
+
```dockerfile
|
|
117
|
+
# Dockerfile.dev
|
|
118
|
+
FROM node:20-alpine AS development
|
|
119
|
+
WORKDIR /app
|
|
120
|
+
COPY package*.json ./
|
|
121
|
+
RUN npm ci
|
|
122
|
+
COPY . .
|
|
123
|
+
CMD ["npm", "run", "dev"]
|
|
124
|
+
|
|
125
|
+
# Dockerfile (production)
|
|
126
|
+
FROM node:20-alpine AS production
|
|
127
|
+
WORKDIR /app
|
|
128
|
+
COPY package*.json ./
|
|
129
|
+
RUN npm ci --only=production
|
|
130
|
+
COPY . .
|
|
131
|
+
CMD ["node", "server.js"]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 6. docker compose TEMPLATES
|
|
135
|
+
|
|
136
|
+
#### Base docker compose.yml
|
|
137
|
+
|
|
138
|
+
```yaml
|
|
139
|
+
version: '3.9'
|
|
140
|
+
services:
|
|
141
|
+
app:
|
|
142
|
+
build: .
|
|
143
|
+
ports:
|
|
144
|
+
- "3000:3000"
|
|
145
|
+
environment:
|
|
146
|
+
- NODE_ENV=production
|
|
147
|
+
networks:
|
|
148
|
+
- app-network
|
|
149
|
+
|
|
150
|
+
networks:
|
|
151
|
+
app-network:
|
|
152
|
+
driver: bridge
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### Development Override (docker compose.dev.yml)
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
version: '3.9'
|
|
159
|
+
services:
|
|
160
|
+
app:
|
|
161
|
+
build:
|
|
162
|
+
context: .
|
|
163
|
+
dockerfile: Dockerfile.dev
|
|
164
|
+
volumes:
|
|
165
|
+
- .:/app
|
|
166
|
+
- /app/node_modules # Preserve dependencies
|
|
167
|
+
environment:
|
|
168
|
+
- NODE_ENV=development
|
|
169
|
+
- DEBUG=true
|
|
170
|
+
ports:
|
|
171
|
+
- "3000:3000"
|
|
172
|
+
- "9229:9229" # Debug port
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
#### Test Override (docker compose.test.yml)
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
version: '3.9'
|
|
179
|
+
services:
|
|
180
|
+
test:
|
|
181
|
+
build:
|
|
182
|
+
context: .
|
|
183
|
+
dockerfile: Dockerfile.dev
|
|
184
|
+
command: npm test
|
|
185
|
+
environment:
|
|
186
|
+
- NODE_ENV=test
|
|
187
|
+
- CI=true
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 7. GITHUB ACTIONS INTEGRATION
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
# .github/workflows/test.yml
|
|
194
|
+
name: Test
|
|
195
|
+
on: [push, pull_request]
|
|
196
|
+
|
|
197
|
+
jobs:
|
|
198
|
+
test:
|
|
199
|
+
runs-on: ubuntu-latest
|
|
200
|
+
steps:
|
|
201
|
+
- uses: actions/checkout@v3
|
|
202
|
+
|
|
203
|
+
- name: Build Test Image
|
|
204
|
+
run: docker build -f Dockerfile.dev -t app:test .
|
|
205
|
+
|
|
206
|
+
- name: Run Tests in Container
|
|
207
|
+
run: docker run --rm app:test npm test
|
|
208
|
+
|
|
209
|
+
- name: Run Linting in Container
|
|
210
|
+
run: docker run --rm app:test npm run lint
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 8. VOLUME MOUNTING STRATEGY
|
|
214
|
+
|
|
215
|
+
```yaml
|
|
216
|
+
# Development volumes for hot reload
|
|
217
|
+
volumes:
|
|
218
|
+
# Source code - always mounted
|
|
219
|
+
- ./src:/app/src
|
|
220
|
+
- ./tests:/app/tests
|
|
221
|
+
|
|
222
|
+
# Config files - mounted read-only
|
|
223
|
+
- ./package.json:/app/package.json:ro
|
|
224
|
+
- ./tsconfig.json:/app/tsconfig.json:ro
|
|
225
|
+
|
|
226
|
+
# Dependencies - NOT mounted (use container's)
|
|
227
|
+
# - ./node_modules:/app/node_modules ❌
|
|
228
|
+
# - ./.venv:/app/.venv ❌
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 9. DATABASE IN DOCKER
|
|
232
|
+
|
|
233
|
+
```yaml
|
|
234
|
+
# docker compose.dev.yml
|
|
235
|
+
services:
|
|
236
|
+
app:
|
|
237
|
+
depends_on:
|
|
238
|
+
- db
|
|
239
|
+
- redis
|
|
240
|
+
|
|
241
|
+
db:
|
|
242
|
+
image: postgres:15-alpine
|
|
243
|
+
environment:
|
|
244
|
+
POSTGRES_DB: appdb
|
|
245
|
+
POSTGRES_USER: appuser
|
|
246
|
+
POSTGRES_PASSWORD: devpassword
|
|
247
|
+
volumes:
|
|
248
|
+
- postgres_data:/var/lib/postgresql/data
|
|
249
|
+
ports:
|
|
250
|
+
- "5432:5432"
|
|
251
|
+
|
|
252
|
+
redis:
|
|
253
|
+
image: redis:7-alpine
|
|
254
|
+
ports:
|
|
255
|
+
- "6379:6379"
|
|
256
|
+
|
|
257
|
+
volumes:
|
|
258
|
+
postgres_data:
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 10. HELPER COMMANDS
|
|
262
|
+
|
|
263
|
+
Create a Makefile for common operations:
|
|
264
|
+
|
|
265
|
+
```makefile
|
|
266
|
+
# Makefile
|
|
267
|
+
.PHONY: dev test build clean
|
|
268
|
+
|
|
269
|
+
# Development
|
|
270
|
+
dev:
|
|
271
|
+
docker compose -f docker compose.yml -f docker compose.dev.yml up
|
|
272
|
+
|
|
273
|
+
dev-build:
|
|
274
|
+
docker compose -f docker compose.yml -f docker compose.dev.yml build
|
|
275
|
+
|
|
276
|
+
# Testing
|
|
277
|
+
test:
|
|
278
|
+
docker compose -f docker compose.yml -f docker compose.test.yml run --rm test
|
|
279
|
+
|
|
280
|
+
test-watch:
|
|
281
|
+
docker compose -f docker compose.yml -f docker compose.test.yml run --rm test npm run test:watch
|
|
282
|
+
|
|
283
|
+
# Production
|
|
284
|
+
build:
|
|
285
|
+
docker build -t app:latest .
|
|
286
|
+
|
|
287
|
+
run:
|
|
288
|
+
docker run -p 3000:3000 app:latest
|
|
289
|
+
|
|
290
|
+
# Utilities
|
|
291
|
+
shell:
|
|
292
|
+
docker compose -f docker compose.yml -f docker compose.dev.yml exec app sh
|
|
293
|
+
|
|
294
|
+
logs:
|
|
295
|
+
docker compose logs -f app
|
|
296
|
+
|
|
297
|
+
clean:
|
|
298
|
+
docker compose down -v
|
|
299
|
+
docker system prune -f
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## WHEN DISABLED
|
|
303
|
+
|
|
304
|
+
When `docker_first_development: false` in config:
|
|
305
|
+
|
|
306
|
+
- Local development is allowed
|
|
307
|
+
- Docker files are optional
|
|
308
|
+
- No enforcement of container usage
|
|
309
|
+
- Traditional development workflow permitted
|
|
310
|
+
|
|
311
|
+
## PR VALIDATION REQUIREMENTS
|
|
312
|
+
|
|
313
|
+
When `docker_first_development` is enabled, ALL PRs MUST:
|
|
314
|
+
|
|
315
|
+
### 1. PASS DOCKER TESTS BEFORE PUSH
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# Manual validation before creating PR
|
|
319
|
+
./.claude/scripts/pr-validation.sh
|
|
320
|
+
|
|
321
|
+
# Install Git hooks for automatic validation
|
|
322
|
+
./.claude/scripts/install-hooks.sh
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### 2. GITHUB ACTIONS VALIDATION
|
|
326
|
+
|
|
327
|
+
PR will automatically run:
|
|
328
|
+
|
|
329
|
+
- Multi-platform Docker builds (linux/amd64, linux/arm64)
|
|
330
|
+
- Tests in Docker containers using same images as local dev
|
|
331
|
+
- Security scanning with Trivy
|
|
332
|
+
- Docker-first compliance validation
|
|
333
|
+
- Startup testing
|
|
334
|
+
|
|
335
|
+
### 3. REQUIRED FILES FOR PR
|
|
336
|
+
|
|
337
|
+
- `Dockerfile` - Production image
|
|
338
|
+
- `Dockerfile.dev` - Development image
|
|
339
|
+
- `docker compose.yml` - Base configuration
|
|
340
|
+
- `docker compose.test.yml` - Test configuration
|
|
341
|
+
- `.dockerignore` - Build optimization
|
|
342
|
+
|
|
343
|
+
### 4. AUTOMATED BLOCKING
|
|
344
|
+
|
|
345
|
+
**Pre-push hook blocks push if:**
|
|
346
|
+
|
|
347
|
+
- Docker tests fail
|
|
348
|
+
- Docker images don't build
|
|
349
|
+
- Required Docker files missing
|
|
350
|
+
- Docker daemon not running
|
|
351
|
+
|
|
352
|
+
**GitHub Actions blocks PR if:**
|
|
353
|
+
|
|
354
|
+
- Any Docker tests fail
|
|
355
|
+
- Security vulnerabilities found (HIGH/CRITICAL)
|
|
356
|
+
- Multi-platform builds fail
|
|
357
|
+
- Container startup fails
|
|
358
|
+
|
|
359
|
+
### 5. PR VALIDATION WORKFLOW
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
# Full validation (recommended)
|
|
363
|
+
./.claude/scripts/pr-validation.sh
|
|
364
|
+
|
|
365
|
+
# Quick validation (skip some tests)
|
|
366
|
+
./.claude/scripts/pr-validation.sh --force
|
|
367
|
+
|
|
368
|
+
# Skip tests entirely (not recommended)
|
|
369
|
+
./.claude/scripts/pr-validation.sh --skip-tests
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### 6. CI/CD REQUIREMENTS
|
|
373
|
+
|
|
374
|
+
GitHub Actions workflow (`.github/workflows/docker-tests.yml`) runs:
|
|
375
|
+
|
|
376
|
+
1. **Change Detection** - Only runs Docker tests when needed
|
|
377
|
+
2. **Multi-Environment Testing** - Tests dev and production configs
|
|
378
|
+
3. **Security Scanning** - Trivy vulnerability scan
|
|
379
|
+
4. **Multi-Platform Builds** - AMD64 and ARM64 architectures
|
|
380
|
+
5. **Compliance Validation** - Checks Docker-first requirements
|
|
381
|
+
|
|
382
|
+
## BYPASS PROCEDURES (EMERGENCY ONLY)
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# Bypass git hooks temporarily
|
|
386
|
+
git push --no-verify
|
|
387
|
+
|
|
388
|
+
# Disable Docker-first for urgent fixes
|
|
389
|
+
./.claude/scripts/docker-toggle.sh disable
|
|
390
|
+
# Don't forget to re-enable after fix!
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
## CHECKING STATUS
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Check Docker-first status with detailed info
|
|
397
|
+
./.claude/scripts/docker-toggle.sh status
|
|
398
|
+
|
|
399
|
+
# Quick check
|
|
400
|
+
cat .claude/config.json | jq '.features.docker_first_development'
|
|
401
|
+
|
|
402
|
+
# Manual toggle
|
|
403
|
+
./.claude/scripts/docker-toggle.sh enable # or disable
|
|
404
|
+
```
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# GitHub Operations Rule
|
|
2
|
+
|
|
3
|
+
Standard patterns for GitHub CLI operations across all commands.
|
|
4
|
+
|
|
5
|
+
## CRITICAL: Repository Protection
|
|
6
|
+
|
|
7
|
+
**Before ANY GitHub operation that creates/modifies issues or PRs:**
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Check if remote origin is the AutoPM template repository
|
|
11
|
+
remote_url=$(git remote get-url origin 2>/dev/null || echo "")
|
|
12
|
+
if [[ "$remote_url" == *"rlagowski/autopm"* ]] || [[ "$remote_url" == *"rlagowski/autopm.git"* ]]; then
|
|
13
|
+
echo "❌ ERROR: You're trying to sync with the AutoPM template repository!"
|
|
14
|
+
echo ""
|
|
15
|
+
echo "This repository (rlagowski/autopm) is a template for others to use."
|
|
16
|
+
echo "You should NOT create issues or PRs here."
|
|
17
|
+
echo ""
|
|
18
|
+
echo "To fix this:"
|
|
19
|
+
echo "1. Fork this repository to your own GitHub account"
|
|
20
|
+
echo "2. Update your remote origin:"
|
|
21
|
+
echo " git remote set-url origin https://github.com/YOUR_USERNAME/YOUR_REPO.git"
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Or if this is a new project:"
|
|
24
|
+
echo "1. Create a new repository on GitHub"
|
|
25
|
+
echo "2. Update your remote origin:"
|
|
26
|
+
echo " git remote set-url origin https://github.com/YOUR_USERNAME/YOUR_REPO.git"
|
|
27
|
+
echo ""
|
|
28
|
+
echo "Current remote: $remote_url"
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
This check MUST be performed in ALL commands that:
|
|
34
|
+
|
|
35
|
+
- Create issues (`gh issue create`)
|
|
36
|
+
- Edit issues (`gh issue edit`)
|
|
37
|
+
- Comment on issues (`gh issue comment`)
|
|
38
|
+
- Create PRs (`gh pr create`)
|
|
39
|
+
- Any other operation that modifies the GitHub repository
|
|
40
|
+
|
|
41
|
+
## Authentication
|
|
42
|
+
|
|
43
|
+
**Don't pre-check authentication.** Just run the command and handle failure:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
gh {command} || echo "❌ GitHub CLI failed. Run: gh auth login"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Common Operations
|
|
50
|
+
|
|
51
|
+
### Get Issue Details
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
gh issue view {number} --json state,title,labels,body
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Create Issue
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# ALWAYS check remote origin first!
|
|
61
|
+
gh issue create --title "{title}" --body-file {file} --label "{labels}"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Update Issue
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# ALWAYS check remote origin first!
|
|
68
|
+
gh issue edit {number} --add-label "{label}" --add-assignee @me
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Add Comment
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# ALWAYS check remote origin first!
|
|
75
|
+
gh issue comment {number} --body-file {file}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Error Handling
|
|
79
|
+
|
|
80
|
+
If any gh command fails:
|
|
81
|
+
|
|
82
|
+
1. Show clear error: "❌ GitHub operation failed: {command}"
|
|
83
|
+
2. Suggest fix: "Run: gh auth login" or check issue number
|
|
84
|
+
3. Don't retry automatically
|
|
85
|
+
|
|
86
|
+
## Important Notes
|
|
87
|
+
|
|
88
|
+
- **ALWAYS** check remote origin before ANY write operation to GitHub
|
|
89
|
+
- Trust that gh CLI is installed and authenticated
|
|
90
|
+
- Use --json for structured output when parsing
|
|
91
|
+
- Keep operations atomic - one gh command per action
|
|
92
|
+
- Don't check rate limits preemptively
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Docker multi-stage build example with optimization
|
|
3
|
+
# Usage: ./docker-build-multistage.sh [image-name] [tag]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
IMAGE_NAME="${1:-myapp}"
|
|
8
|
+
TAG="${2:-latest}"
|
|
9
|
+
DOCKERFILE="${DOCKERFILE:-Dockerfile}"
|
|
10
|
+
|
|
11
|
+
echo "🐳 Building multi-stage Docker image: ${IMAGE_NAME}:${TAG}..."
|
|
12
|
+
|
|
13
|
+
# Check Docker is installed
|
|
14
|
+
if ! command -v docker &> /dev/null; then
|
|
15
|
+
echo "❌ Docker not found. Please install it first."
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Build with BuildKit for better caching and performance
|
|
20
|
+
export DOCKER_BUILDKIT=1
|
|
21
|
+
|
|
22
|
+
echo "📦 Building image with BuildKit optimization..."
|
|
23
|
+
docker build \
|
|
24
|
+
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
25
|
+
--tag "${IMAGE_NAME}:${TAG}" \
|
|
26
|
+
--file "${DOCKERFILE}" \
|
|
27
|
+
.
|
|
28
|
+
|
|
29
|
+
# Get image size
|
|
30
|
+
IMAGE_SIZE=$(docker images "${IMAGE_NAME}:${TAG}" --format "{{.Size}}")
|
|
31
|
+
echo "✅ Image built successfully: ${IMAGE_NAME}:${TAG} (Size: ${IMAGE_SIZE})"
|
|
32
|
+
|
|
33
|
+
# Optional: Security scan with Trivy if available
|
|
34
|
+
if command -v trivy &> /dev/null; then
|
|
35
|
+
echo "🔒 Running security scan with Trivy..."
|
|
36
|
+
trivy image --severity HIGH,CRITICAL "${IMAGE_NAME}:${TAG}"
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Optional: Show image layers
|
|
40
|
+
echo "📊 Image layers:"
|
|
41
|
+
docker history "${IMAGE_NAME}:${TAG}" --no-trunc --human
|
|
42
|
+
|
|
43
|
+
echo "✅ Build complete: ${IMAGE_NAME}:${TAG}"
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Docker Compose validation and health check
|
|
3
|
+
# Usage: ./docker-compose-validate.sh [compose-file]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
COMPOSE_FILE="${1:-docker-compose.yml}"
|
|
8
|
+
|
|
9
|
+
echo "🐳 Validating Docker Compose configuration: ${COMPOSE_FILE}..."
|
|
10
|
+
|
|
11
|
+
# Check docker-compose is installed
|
|
12
|
+
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
|
13
|
+
echo "❌ docker-compose not found. Please install it first."
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
# Use 'docker compose' or 'docker-compose' based on availability
|
|
18
|
+
if docker compose version &> /dev/null 2>&1; then
|
|
19
|
+
COMPOSE_CMD="docker compose"
|
|
20
|
+
else
|
|
21
|
+
COMPOSE_CMD="docker-compose"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Validate compose file syntax
|
|
25
|
+
echo "📋 Validating Compose file syntax..."
|
|
26
|
+
if $COMPOSE_CMD -f "${COMPOSE_FILE}" config > /dev/null; then
|
|
27
|
+
echo " ✓ Compose file syntax is valid"
|
|
28
|
+
else
|
|
29
|
+
echo " ❌ Compose file has syntax errors"
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Show parsed configuration
|
|
34
|
+
echo ""
|
|
35
|
+
echo "📊 Parsed configuration:"
|
|
36
|
+
$COMPOSE_CMD -f "${COMPOSE_FILE}" config --services
|
|
37
|
+
|
|
38
|
+
# Check for common issues
|
|
39
|
+
echo ""
|
|
40
|
+
echo "🔍 Checking for common issues..."
|
|
41
|
+
|
|
42
|
+
# Check for missing environment variables
|
|
43
|
+
if grep -q '\${[A-Z_]*}' "${COMPOSE_FILE}"; then
|
|
44
|
+
echo " ⚠️ Warning: Compose file contains environment variable references"
|
|
45
|
+
echo " Make sure all required variables are set in .env file"
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
# Check for volume definitions
|
|
49
|
+
VOLUMES=$($COMPOSE_CMD -f "${COMPOSE_FILE}" config --volumes 2>/dev/null | wc -l)
|
|
50
|
+
if [ "$VOLUMES" -gt 0 ]; then
|
|
51
|
+
echo " ✓ Volumes defined: ${VOLUMES}"
|
|
52
|
+
$COMPOSE_CMD -f "${COMPOSE_FILE}" config --volumes
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
# Check for network definitions
|
|
56
|
+
NETWORKS=$($COMPOSE_CMD -f "${COMPOSE_FILE}" config --networks 2>/dev/null | wc -l)
|
|
57
|
+
if [ "$NETWORKS" -gt 0 ]; then
|
|
58
|
+
echo " ✓ Networks defined: ${NETWORKS}"
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
# If compose stack is running, check health
|
|
62
|
+
if $COMPOSE_CMD -f "${COMPOSE_FILE}" ps | grep -q "Up"; then
|
|
63
|
+
echo ""
|
|
64
|
+
echo "📊 Running services status:"
|
|
65
|
+
$COMPOSE_CMD -f "${COMPOSE_FILE}" ps
|
|
66
|
+
|
|
67
|
+
# Check logs for errors (last 50 lines)
|
|
68
|
+
echo ""
|
|
69
|
+
echo "📋 Recent logs (last 50 lines):"
|
|
70
|
+
$COMPOSE_CMD -f "${COMPOSE_FILE}" logs --tail=50
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
echo ""
|
|
74
|
+
echo "✅ Docker Compose validation complete"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# GitHub Actions workflow validation
|
|
3
|
+
# Usage: ./github-workflow-validate.sh [workflow-file]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
WORKFLOW_FILE="${1:-.github/workflows/*.yml}"
|
|
8
|
+
|
|
9
|
+
echo "🔍 Validating GitHub Actions workflows..."
|
|
10
|
+
|
|
11
|
+
# Check GitHub CLI is installed
|
|
12
|
+
if ! command -v gh &> /dev/null; then
|
|
13
|
+
echo "❌ GitHub CLI not found. Please install it first."
|
|
14
|
+
echo " Visit: https://cli.github.com/"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
# Check if logged in
|
|
19
|
+
if ! gh auth status &> /dev/null; then
|
|
20
|
+
echo "❌ Not logged into GitHub CLI. Please run: gh auth login"
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Validate workflow syntax
|
|
25
|
+
echo "📋 Checking workflow syntax..."
|
|
26
|
+
for workflow in .github/workflows/*.yml .github/workflows/*.yaml 2>/dev/null; do
|
|
27
|
+
if [ -f "$workflow" ]; then
|
|
28
|
+
echo " ✓ Validating: $workflow"
|
|
29
|
+
# Check YAML syntax
|
|
30
|
+
if command -v yamllint &> /dev/null; then
|
|
31
|
+
yamllint "$workflow" || echo " ⚠️ YAML lint warnings found"
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
# Validate with GitHub Actions
|
|
35
|
+
if gh workflow view "$(basename "$workflow")" &> /dev/null; then
|
|
36
|
+
echo " ✓ Workflow exists on GitHub"
|
|
37
|
+
else
|
|
38
|
+
echo " ⚠️ Workflow not found on GitHub (may not be pushed yet)"
|
|
39
|
+
fi
|
|
40
|
+
fi
|
|
41
|
+
done
|
|
42
|
+
|
|
43
|
+
# List all workflows
|
|
44
|
+
echo ""
|
|
45
|
+
echo "📊 Available workflows:"
|
|
46
|
+
gh workflow list
|
|
47
|
+
|
|
48
|
+
echo "✅ Workflow validation complete"
|