javi-forge 0.1.0
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/.gitignore.template +105 -0
- package/.releaserc +44 -0
- package/README.md +45 -0
- package/ai-config/.skillignore +15 -0
- package/ai-config/AUTO_INVOKE.md +300 -0
- package/ai-config/agents/_TEMPLATE.md +93 -0
- package/ai-config/agents/business/api-designer.md +1657 -0
- package/ai-config/agents/business/business-analyst.md +1331 -0
- package/ai-config/agents/business/product-strategist.md +206 -0
- package/ai-config/agents/business/project-manager.md +178 -0
- package/ai-config/agents/business/requirements-analyst.md +1277 -0
- package/ai-config/agents/business/technical-writer.md +1679 -0
- package/ai-config/agents/creative/ux-designer.md +205 -0
- package/ai-config/agents/data-ai/ai-engineer.md +487 -0
- package/ai-config/agents/data-ai/analytics-engineer.md +953 -0
- package/ai-config/agents/data-ai/data-engineer.md +173 -0
- package/ai-config/agents/data-ai/data-scientist.md +672 -0
- package/ai-config/agents/data-ai/mlops-engineer.md +814 -0
- package/ai-config/agents/data-ai/prompt-engineer.md +772 -0
- package/ai-config/agents/development/angular-expert.md +620 -0
- package/ai-config/agents/development/backend-architect.md +795 -0
- package/ai-config/agents/development/database-specialist.md +212 -0
- package/ai-config/agents/development/frontend-specialist.md +686 -0
- package/ai-config/agents/development/fullstack-engineer.md +668 -0
- package/ai-config/agents/development/golang-pro.md +338 -0
- package/ai-config/agents/development/java-enterprise.md +400 -0
- package/ai-config/agents/development/javascript-pro.md +422 -0
- package/ai-config/agents/development/nextjs-pro.md +474 -0
- package/ai-config/agents/development/python-pro.md +570 -0
- package/ai-config/agents/development/react-pro.md +487 -0
- package/ai-config/agents/development/rust-pro.md +246 -0
- package/ai-config/agents/development/spring-boot-4-expert.md +326 -0
- package/ai-config/agents/development/typescript-pro.md +336 -0
- package/ai-config/agents/development/vue-specialist.md +605 -0
- package/ai-config/agents/infrastructure/cloud-architect.md +472 -0
- package/ai-config/agents/infrastructure/deployment-manager.md +358 -0
- package/ai-config/agents/infrastructure/devops-engineer.md +455 -0
- package/ai-config/agents/infrastructure/incident-responder.md +519 -0
- package/ai-config/agents/infrastructure/kubernetes-expert.md +705 -0
- package/ai-config/agents/infrastructure/monitoring-specialist.md +674 -0
- package/ai-config/agents/infrastructure/performance-engineer.md +658 -0
- package/ai-config/agents/orchestrator.md +241 -0
- package/ai-config/agents/quality/accessibility-auditor.md +1204 -0
- package/ai-config/agents/quality/code-reviewer-compact.md +123 -0
- package/ai-config/agents/quality/code-reviewer.md +363 -0
- package/ai-config/agents/quality/dependency-manager.md +743 -0
- package/ai-config/agents/quality/e2e-test-specialist.md +1005 -0
- package/ai-config/agents/quality/performance-tester.md +1086 -0
- package/ai-config/agents/quality/security-auditor.md +133 -0
- package/ai-config/agents/quality/test-engineer.md +453 -0
- package/ai-config/agents/specialists/api-designer.md +87 -0
- package/ai-config/agents/specialists/backend-architect.md +73 -0
- package/ai-config/agents/specialists/code-reviewer.md +77 -0
- package/ai-config/agents/specialists/db-optimizer.md +75 -0
- package/ai-config/agents/specialists/devops-engineer.md +83 -0
- package/ai-config/agents/specialists/documentation-writer.md +78 -0
- package/ai-config/agents/specialists/frontend-developer.md +75 -0
- package/ai-config/agents/specialists/performance-analyst.md +82 -0
- package/ai-config/agents/specialists/refactor-specialist.md +74 -0
- package/ai-config/agents/specialists/security-auditor.md +74 -0
- package/ai-config/agents/specialists/test-engineer.md +81 -0
- package/ai-config/agents/specialists/ux-consultant.md +76 -0
- package/ai-config/agents/specialized/agent-generator.md +1190 -0
- package/ai-config/agents/specialized/blockchain-developer.md +149 -0
- package/ai-config/agents/specialized/code-migrator.md +892 -0
- package/ai-config/agents/specialized/context-manager.md +978 -0
- package/ai-config/agents/specialized/documentation-writer.md +1078 -0
- package/ai-config/agents/specialized/ecommerce-expert.md +1756 -0
- package/ai-config/agents/specialized/embedded-engineer.md +1714 -0
- package/ai-config/agents/specialized/error-detective.md +1034 -0
- package/ai-config/agents/specialized/fintech-specialist.md +1659 -0
- package/ai-config/agents/specialized/freelance-project-planner-v2.md +1988 -0
- package/ai-config/agents/specialized/freelance-project-planner-v3.md +2136 -0
- package/ai-config/agents/specialized/freelance-project-planner-v4.md +4503 -0
- package/ai-config/agents/specialized/freelance-project-planner.md +722 -0
- package/ai-config/agents/specialized/game-developer.md +1963 -0
- package/ai-config/agents/specialized/healthcare-dev.md +1620 -0
- package/ai-config/agents/specialized/mobile-developer.md +188 -0
- package/ai-config/agents/specialized/parallel-plan-executor.md +506 -0
- package/ai-config/agents/specialized/plan-executor.md +485 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +485 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +3493 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +778 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +918 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +1537 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +2633 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +5610 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +335 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +215 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +260 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +379 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +355 -0
- package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +279 -0
- package/ai-config/agents/specialized/template-writer.md +347 -0
- package/ai-config/agents/specialized/test-runner.md +99 -0
- package/ai-config/agents/specialized/vibekanban-smart-worker.md +244 -0
- package/ai-config/agents/specialized/wave-executor.md +138 -0
- package/ai-config/agents/specialized/workflow-optimizer.md +1114 -0
- package/ai-config/commands/git/changelog.md +32 -0
- package/ai-config/commands/git/ci-local.md +70 -0
- package/ai-config/commands/git/commit.md +35 -0
- package/ai-config/commands/git/fix-issue.md +23 -0
- package/ai-config/commands/git/pr-create.md +42 -0
- package/ai-config/commands/git/pr-review.md +50 -0
- package/ai-config/commands/git/worktree.md +39 -0
- package/ai-config/commands/refactoring/cleanup.md +24 -0
- package/ai-config/commands/refactoring/dead-code.md +40 -0
- package/ai-config/commands/refactoring/extract.md +31 -0
- package/ai-config/commands/testing/e2e.md +30 -0
- package/ai-config/commands/testing/tdd.md +36 -0
- package/ai-config/commands/testing/test-coverage.md +30 -0
- package/ai-config/commands/testing/test-fix.md +24 -0
- package/ai-config/commands/workflow/generate-agents-md.md +85 -0
- package/ai-config/commands/workflow/planning.md +47 -0
- package/ai-config/commands/workflows/compound.md +89 -0
- package/ai-config/commands/workflows/plan.md +77 -0
- package/ai-config/commands/workflows/review.md +78 -0
- package/ai-config/commands/workflows/work.md +75 -0
- package/ai-config/config.yaml +18 -0
- package/ai-config/hooks/_TEMPLATE.md +96 -0
- package/ai-config/hooks/block-dangerous-commands.md +75 -0
- package/ai-config/hooks/commit-guard.md +90 -0
- package/ai-config/hooks/context-loader.md +73 -0
- package/ai-config/hooks/improve-prompt.md +91 -0
- package/ai-config/hooks/learning-log.md +72 -0
- package/ai-config/hooks/model-router.md +86 -0
- package/ai-config/hooks/secret-scanner.md +64 -0
- package/ai-config/hooks/skill-validator.md +102 -0
- package/ai-config/hooks/task-artifact.md +114 -0
- package/ai-config/hooks/validate-workflow.md +100 -0
- package/ai-config/prompts/base.md +71 -0
- package/ai-config/prompts/modes/debug.md +34 -0
- package/ai-config/prompts/modes/deploy.md +40 -0
- package/ai-config/prompts/modes/research.md +32 -0
- package/ai-config/prompts/modes/review.md +33 -0
- package/ai-config/prompts/review-policy.md +79 -0
- package/ai-config/skills/_TEMPLATE.md +157 -0
- package/ai-config/skills/backend/api-gateway/SKILL.md +254 -0
- package/ai-config/skills/backend/bff-concepts/SKILL.md +239 -0
- package/ai-config/skills/backend/bff-spring/SKILL.md +364 -0
- package/ai-config/skills/backend/chi-router/SKILL.md +396 -0
- package/ai-config/skills/backend/error-handling/SKILL.md +255 -0
- package/ai-config/skills/backend/exceptions-spring/SKILL.md +323 -0
- package/ai-config/skills/backend/fastapi/SKILL.md +302 -0
- package/ai-config/skills/backend/gateway-spring/SKILL.md +390 -0
- package/ai-config/skills/backend/go-backend/SKILL.md +457 -0
- package/ai-config/skills/backend/gradle-multimodule/SKILL.md +274 -0
- package/ai-config/skills/backend/graphql-concepts/SKILL.md +352 -0
- package/ai-config/skills/backend/graphql-spring/SKILL.md +398 -0
- package/ai-config/skills/backend/grpc-concepts/SKILL.md +283 -0
- package/ai-config/skills/backend/grpc-spring/SKILL.md +445 -0
- package/ai-config/skills/backend/jwt-auth/SKILL.md +412 -0
- package/ai-config/skills/backend/notifications-concepts/SKILL.md +259 -0
- package/ai-config/skills/backend/recommendations-concepts/SKILL.md +261 -0
- package/ai-config/skills/backend/search-concepts/SKILL.md +263 -0
- package/ai-config/skills/backend/search-spring/SKILL.md +375 -0
- package/ai-config/skills/backend/spring-boot-4/SKILL.md +172 -0
- package/ai-config/skills/backend/websockets/SKILL.md +532 -0
- package/ai-config/skills/data-ai/ai-ml/SKILL.md +423 -0
- package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +195 -0
- package/ai-config/skills/data-ai/analytics-spring/SKILL.md +340 -0
- package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +440 -0
- package/ai-config/skills/data-ai/langchain/SKILL.md +238 -0
- package/ai-config/skills/data-ai/mlflow/SKILL.md +302 -0
- package/ai-config/skills/data-ai/onnx-inference/SKILL.md +290 -0
- package/ai-config/skills/data-ai/powerbi/SKILL.md +352 -0
- package/ai-config/skills/data-ai/pytorch/SKILL.md +274 -0
- package/ai-config/skills/data-ai/scikit-learn/SKILL.md +321 -0
- package/ai-config/skills/data-ai/vector-db/SKILL.md +301 -0
- package/ai-config/skills/database/graph-databases/SKILL.md +218 -0
- package/ai-config/skills/database/graph-spring/SKILL.md +361 -0
- package/ai-config/skills/database/pgx-postgres/SKILL.md +512 -0
- package/ai-config/skills/database/redis-cache/SKILL.md +343 -0
- package/ai-config/skills/database/sqlite-embedded/SKILL.md +388 -0
- package/ai-config/skills/database/timescaledb/SKILL.md +320 -0
- package/ai-config/skills/docs/api-documentation/SKILL.md +293 -0
- package/ai-config/skills/docs/docs-spring/SKILL.md +377 -0
- package/ai-config/skills/docs/mustache-templates/SKILL.md +190 -0
- package/ai-config/skills/docs/technical-docs/SKILL.md +447 -0
- package/ai-config/skills/frontend/astro-ssr/SKILL.md +441 -0
- package/ai-config/skills/frontend/frontend-design/SKILL.md +54 -0
- package/ai-config/skills/frontend/frontend-web/SKILL.md +368 -0
- package/ai-config/skills/frontend/mantine-ui/SKILL.md +396 -0
- package/ai-config/skills/frontend/tanstack-query/SKILL.md +439 -0
- package/ai-config/skills/frontend/zod-validation/SKILL.md +417 -0
- package/ai-config/skills/frontend/zustand-state/SKILL.md +350 -0
- package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +244 -0
- package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +378 -0
- package/ai-config/skills/infrastructure/devops-infra/SKILL.md +435 -0
- package/ai-config/skills/infrastructure/docker-containers/SKILL.md +420 -0
- package/ai-config/skills/infrastructure/kubernetes/SKILL.md +456 -0
- package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +546 -0
- package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +474 -0
- package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +315 -0
- package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +504 -0
- package/ai-config/skills/mobile/mobile-ionic/SKILL.md +448 -0
- package/ai-config/skills/prompt-improver/SKILL.md +125 -0
- package/ai-config/skills/quality/ghagga-review/SKILL.md +216 -0
- package/ai-config/skills/references/hooks-patterns/SKILL.md +238 -0
- package/ai-config/skills/references/mcp-servers/SKILL.md +275 -0
- package/ai-config/skills/references/plugins-reference/SKILL.md +110 -0
- package/ai-config/skills/references/skills-reference/SKILL.md +420 -0
- package/ai-config/skills/references/subagent-templates/SKILL.md +193 -0
- package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +410 -0
- package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +408 -0
- package/ai-config/skills/systems-iot/rust-systems/SKILL.md +386 -0
- package/ai-config/skills/systems-iot/tokio-async/SKILL.md +324 -0
- package/ai-config/skills/testing/playwright-e2e/SKILL.md +289 -0
- package/ai-config/skills/testing/testcontainers/SKILL.md +299 -0
- package/ai-config/skills/testing/vitest-testing/SKILL.md +381 -0
- package/ai-config/skills/workflow/ci-local-guide/SKILL.md +118 -0
- package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +299 -0
- package/ai-config/skills/workflow/claude-md-improver/SKILL.md +158 -0
- package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +117 -0
- package/ai-config/skills/workflow/git-github/SKILL.md +334 -0
- package/ai-config/skills/workflow/git-github/references/examples.md +160 -0
- package/ai-config/skills/workflow/git-workflow/SKILL.md +214 -0
- package/ai-config/skills/workflow/ide-plugins/SKILL.md +277 -0
- package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +401 -0
- package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +199 -0
- package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +100 -0
- package/ai-config/skills/workflow/verification-before-completion/SKILL.md +73 -0
- package/ai-config/skills/workflow/wave-workflow/SKILL.md +178 -0
- package/ci-local/README.md +170 -0
- package/ci-local/ci-local.sh +297 -0
- package/ci-local/hooks/commit-msg +74 -0
- package/ci-local/hooks/pre-commit +162 -0
- package/ci-local/hooks/pre-push +41 -0
- package/ci-local/install.sh +49 -0
- package/ci-local/semgrep.yml +214 -0
- package/dist/commands/analyze.d.ts +9 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +55 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/analyze.test.d.ts +2 -0
- package/dist/commands/analyze.test.d.ts.map +1 -0
- package/dist/commands/analyze.test.js +145 -0
- package/dist/commands/analyze.test.js.map +1 -0
- package/dist/commands/doctor.d.ts +7 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +158 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/doctor.test.d.ts +2 -0
- package/dist/commands/doctor.test.d.ts.map +1 -0
- package/dist/commands/doctor.test.js +200 -0
- package/dist/commands/doctor.test.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +283 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/init.test.d.ts +2 -0
- package/dist/commands/init.test.d.ts.map +1 -0
- package/dist/commands/init.test.js +271 -0
- package/dist/commands/init.test.js.map +1 -0
- package/dist/commands/sync.d.ts +8 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +201 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +57 -0
- package/dist/constants.js.map +1 -0
- package/dist/e2e/aggressive.e2e.test.d.ts +2 -0
- package/dist/e2e/aggressive.e2e.test.d.ts.map +1 -0
- package/dist/e2e/aggressive.e2e.test.js +350 -0
- package/dist/e2e/aggressive.e2e.test.js.map +1 -0
- package/dist/e2e/commands.e2e.test.d.ts +2 -0
- package/dist/e2e/commands.e2e.test.d.ts.map +1 -0
- package/dist/e2e/commands.e2e.test.js +213 -0
- package/dist/e2e/commands.e2e.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/common.d.ts +17 -0
- package/dist/lib/common.d.ts.map +1 -0
- package/dist/lib/common.js +111 -0
- package/dist/lib/common.js.map +1 -0
- package/dist/lib/common.test.d.ts +2 -0
- package/dist/lib/common.test.d.ts.map +1 -0
- package/dist/lib/common.test.js +316 -0
- package/dist/lib/common.test.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +18 -0
- package/dist/lib/frontmatter.d.ts.map +1 -0
- package/dist/lib/frontmatter.js +61 -0
- package/dist/lib/frontmatter.js.map +1 -0
- package/dist/lib/frontmatter.test.d.ts +2 -0
- package/dist/lib/frontmatter.test.d.ts.map +1 -0
- package/dist/lib/frontmatter.test.js +257 -0
- package/dist/lib/frontmatter.test.js.map +1 -0
- package/dist/lib/template.d.ts +24 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +78 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/lib/template.test.d.ts +2 -0
- package/dist/lib/template.test.d.ts.map +1 -0
- package/dist/lib/template.test.js +201 -0
- package/dist/lib/template.test.js.map +1 -0
- package/dist/types/index.d.ts +48 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/AnalyzeUI.d.ts +7 -0
- package/dist/ui/AnalyzeUI.d.ts.map +1 -0
- package/dist/ui/AnalyzeUI.js +100 -0
- package/dist/ui/AnalyzeUI.js.map +1 -0
- package/dist/ui/App.d.ts +13 -0
- package/dist/ui/App.d.ts.map +1 -0
- package/dist/ui/App.js +100 -0
- package/dist/ui/App.js.map +1 -0
- package/dist/ui/CIContext.d.ts +9 -0
- package/dist/ui/CIContext.d.ts.map +1 -0
- package/dist/ui/CIContext.js +9 -0
- package/dist/ui/CIContext.js.map +1 -0
- package/dist/ui/CISelector.d.ts +8 -0
- package/dist/ui/CISelector.d.ts.map +1 -0
- package/dist/ui/CISelector.js +45 -0
- package/dist/ui/CISelector.js.map +1 -0
- package/dist/ui/Doctor.d.ts +3 -0
- package/dist/ui/Doctor.d.ts.map +1 -0
- package/dist/ui/Doctor.js +89 -0
- package/dist/ui/Doctor.js.map +1 -0
- package/dist/ui/Header.d.ts +8 -0
- package/dist/ui/Header.d.ts.map +1 -0
- package/dist/ui/Header.js +30 -0
- package/dist/ui/Header.js.map +1 -0
- package/dist/ui/MemorySelector.d.ts +8 -0
- package/dist/ui/MemorySelector.d.ts.map +1 -0
- package/dist/ui/MemorySelector.js +46 -0
- package/dist/ui/MemorySelector.js.map +1 -0
- package/dist/ui/NameInput.d.ts +8 -0
- package/dist/ui/NameInput.d.ts.map +1 -0
- package/dist/ui/NameInput.js +69 -0
- package/dist/ui/NameInput.js.map +1 -0
- package/dist/ui/OptionSelector.d.ts +12 -0
- package/dist/ui/OptionSelector.d.ts.map +1 -0
- package/dist/ui/OptionSelector.js +69 -0
- package/dist/ui/OptionSelector.js.map +1 -0
- package/dist/ui/Progress.d.ts +11 -0
- package/dist/ui/Progress.d.ts.map +1 -0
- package/dist/ui/Progress.js +58 -0
- package/dist/ui/Progress.js.map +1 -0
- package/dist/ui/StackSelector.d.ts +9 -0
- package/dist/ui/StackSelector.d.ts.map +1 -0
- package/dist/ui/StackSelector.js +65 -0
- package/dist/ui/StackSelector.js.map +1 -0
- package/dist/ui/Summary.d.ts +12 -0
- package/dist/ui/Summary.d.ts.map +1 -0
- package/dist/ui/Summary.js +114 -0
- package/dist/ui/Summary.js.map +1 -0
- package/dist/ui/SyncUI.d.ts +10 -0
- package/dist/ui/SyncUI.d.ts.map +1 -0
- package/dist/ui/SyncUI.js +64 -0
- package/dist/ui/SyncUI.js.map +1 -0
- package/dist/ui/Welcome.d.ts +7 -0
- package/dist/ui/Welcome.d.ts.map +1 -0
- package/dist/ui/Welcome.js +45 -0
- package/dist/ui/Welcome.js.map +1 -0
- package/dist/ui/theme.d.ts +10 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +9 -0
- package/dist/ui/theme.js.map +1 -0
- package/modules/engram/.gitignore-snippet.txt +6 -0
- package/modules/engram/.mcp-config-snippet.json +11 -0
- package/modules/engram/README.md +146 -0
- package/modules/engram/install-engram.sh +216 -0
- package/modules/ghagga/.env.example +43 -0
- package/modules/ghagga/README.md +153 -0
- package/modules/ghagga/docker-compose.yml +80 -0
- package/modules/ghagga/setup-ghagga.sh +139 -0
- package/modules/memory-simple/.project/NOTES.md +22 -0
- package/modules/memory-simple/README.md +23 -0
- package/modules/obsidian-brain/.obsidian/app.json +23 -0
- package/modules/obsidian-brain/.obsidian/appearance.json +5 -0
- package/modules/obsidian-brain/.obsidian/bookmarks.json +34 -0
- package/modules/obsidian-brain/.obsidian/community-plugins.json +1 -0
- package/modules/obsidian-brain/.obsidian/core-plugins-migration.json +21 -0
- package/modules/obsidian-brain/.obsidian/core-plugins.json +18 -0
- package/modules/obsidian-brain/.obsidian/daily-notes.json +5 -0
- package/modules/obsidian-brain/.obsidian/graph.json +37 -0
- package/modules/obsidian-brain/.obsidian/hotkeys.json +14 -0
- package/modules/obsidian-brain/.obsidian/plugins/dataview/data.json +25 -0
- package/modules/obsidian-brain/.obsidian/plugins/obsidian-kanban/data.json +29 -0
- package/modules/obsidian-brain/.obsidian/plugins/templater-obsidian/data.json +18 -0
- package/modules/obsidian-brain/.obsidian/snippets/project-memory.css +71 -0
- package/modules/obsidian-brain/.obsidian-gitignore-snippet.txt +8 -0
- package/modules/obsidian-brain/.project/Attachments/.gitkeep +0 -0
- package/modules/obsidian-brain/.project/Memory/BLOCKERS.md +78 -0
- package/modules/obsidian-brain/.project/Memory/CONTEXT.md +102 -0
- package/modules/obsidian-brain/.project/Memory/DASHBOARD.md +73 -0
- package/modules/obsidian-brain/.project/Memory/DECISIONS.md +87 -0
- package/modules/obsidian-brain/.project/Memory/KANBAN.md +15 -0
- package/modules/obsidian-brain/.project/Memory/README.md +61 -0
- package/modules/obsidian-brain/.project/Memory/WAVES.md +78 -0
- package/modules/obsidian-brain/.project/Sessions/TEMPLATE.md +99 -0
- package/modules/obsidian-brain/.project/Templates/ADR.md +33 -0
- package/modules/obsidian-brain/.project/Templates/Blocker.md +21 -0
- package/modules/obsidian-brain/.project/Templates/Session.md +88 -0
- package/modules/obsidian-brain/README.md +268 -0
- package/modules/obsidian-brain/new-wave.sh +182 -0
- package/package.json +51 -0
- package/schemas/agent.schema.json +34 -0
- package/schemas/ai-config.schema.json +28 -0
- package/schemas/skill.schema.json +44 -0
- package/src/commands/analyze.test.ts +145 -0
- package/src/commands/analyze.ts +69 -0
- package/src/commands/doctor.test.ts +208 -0
- package/src/commands/doctor.ts +163 -0
- package/src/commands/init.test.ts +298 -0
- package/src/commands/init.ts +285 -0
- package/src/constants.ts +69 -0
- package/src/e2e/aggressive.e2e.test.ts +557 -0
- package/src/e2e/commands.e2e.test.ts +298 -0
- package/src/index.tsx +106 -0
- package/src/lib/common.test.ts +318 -0
- package/src/lib/common.ts +127 -0
- package/src/lib/frontmatter.test.ts +291 -0
- package/src/lib/frontmatter.ts +77 -0
- package/src/lib/template.test.ts +226 -0
- package/src/lib/template.ts +99 -0
- package/src/types/index.ts +53 -0
- package/src/ui/AnalyzeUI.tsx +133 -0
- package/src/ui/App.tsx +175 -0
- package/src/ui/CIContext.tsx +25 -0
- package/src/ui/CISelector.tsx +72 -0
- package/src/ui/Doctor.tsx +122 -0
- package/src/ui/Header.tsx +48 -0
- package/src/ui/MemorySelector.tsx +73 -0
- package/src/ui/NameInput.tsx +82 -0
- package/src/ui/OptionSelector.tsx +100 -0
- package/src/ui/Progress.tsx +88 -0
- package/src/ui/StackSelector.tsx +101 -0
- package/src/ui/Summary.tsx +134 -0
- package/src/ui/Welcome.tsx +54 -0
- package/src/ui/theme.ts +10 -0
- package/stryker.config.json +19 -0
- package/tasks/_TEMPLATE/files-edited.md +3 -0
- package/tasks/_TEMPLATE/plan.md +3 -0
- package/tasks/_TEMPLATE/research.md +3 -0
- package/tasks/_TEMPLATE/verification.md +5 -0
- package/templates/common/dependabot/cargo.yml +11 -0
- package/templates/common/dependabot/github-actions.yml +16 -0
- package/templates/common/dependabot/gomod.yml +15 -0
- package/templates/common/dependabot/gradle.yml +15 -0
- package/templates/common/dependabot/header.yml +3 -0
- package/templates/common/dependabot/maven.yml +15 -0
- package/templates/common/dependabot/npm.yml +20 -0
- package/templates/common/dependabot/pip.yml +11 -0
- package/templates/dependabot.yml +162 -0
- package/templates/github/ci-go.yml +41 -0
- package/templates/github/ci-java.yml +45 -0
- package/templates/github/ci-monorepo.yml +150 -0
- package/templates/github/ci-node.yml +42 -0
- package/templates/github/ci-python.yml +42 -0
- package/templates/github/ci-rust.yml +42 -0
- package/templates/github/dependabot-automerge.yml +40 -0
- package/templates/gitlab/gitlab-ci-go.yml +88 -0
- package/templates/gitlab/gitlab-ci-java.yml +79 -0
- package/templates/gitlab/gitlab-ci-monorepo.yml +126 -0
- package/templates/gitlab/gitlab-ci-node.yml +63 -0
- package/templates/gitlab/gitlab-ci-python.yml +147 -0
- package/templates/gitlab/gitlab-ci-rust.yml +67 -0
- package/templates/global/claude-settings.json +98 -0
- package/templates/global/codex-config.toml +8 -0
- package/templates/global/copilot-instructions/base-rules.instructions.md +13 -0
- package/templates/global/copilot-instructions/sdd-orchestrator.instructions.md +37 -0
- package/templates/global/gemini-commands/cleanup.toml +20 -0
- package/templates/global/gemini-commands/commit.toml +15 -0
- package/templates/global/gemini-commands/dead-code.toml +22 -0
- package/templates/global/gemini-commands/plan.toml +30 -0
- package/templates/global/gemini-commands/review.toml +17 -0
- package/templates/global/gemini-commands/sdd-apply.toml +22 -0
- package/templates/global/gemini-commands/sdd-ff.toml +14 -0
- package/templates/global/gemini-commands/sdd-new.toml +21 -0
- package/templates/global/gemini-commands/sdd-verify.toml +21 -0
- package/templates/global/gemini-commands/tdd.toml +26 -0
- package/templates/global/gemini-settings.json +8 -0
- package/templates/global/opencode-config.json +44 -0
- package/templates/global/sdd-instructions.md +47 -0
- package/templates/global/sdd-orchestrator-claude.md +46 -0
- package/templates/global/sdd-orchestrator-copilot.md +34 -0
- package/templates/renovate.json +69 -0
- package/templates/woodpecker/monorepo/backend.yml +34 -0
- package/templates/woodpecker/monorepo/frontend.yml +34 -0
- package/templates/woodpecker/monorepo/summary.yml +25 -0
- package/templates/woodpecker/woodpecker-go.yml +51 -0
- package/templates/woodpecker/woodpecker-java.yml +67 -0
- package/templates/woodpecker/woodpecker-node.yml +47 -0
- package/templates/woodpecker/woodpecker-python.yml +108 -0
- package/templates/woodpecker/woodpecker-rust.yml +57 -0
- package/tsconfig.json +19 -0
- package/vitest.config.ts +16 -0
- package/workflows/reusable-build-go.yml +111 -0
- package/workflows/reusable-build-java.yml +120 -0
- package/workflows/reusable-build-node.yml +145 -0
- package/workflows/reusable-build-python.yml +159 -0
- package/workflows/reusable-build-rust.yml +135 -0
- package/workflows/reusable-docker.yml +120 -0
- package/workflows/reusable-ghagga-review.yml +165 -0
- package/workflows/reusable-release.yml +91 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
---
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# DEVOPS ENGINEER AGENT - v2.0
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# Compatible con: Claude Code, OpenCode, y otros AI CLIs
|
|
6
|
+
# =============================================================================
|
|
7
|
+
|
|
8
|
+
name: devops-engineer
|
|
9
|
+
description: >
|
|
10
|
+
DevOps and infrastructure expert specializing in CI/CD pipelines, containerization,
|
|
11
|
+
and cloud platforms.
|
|
12
|
+
trigger: >
|
|
13
|
+
Docker, Kubernetes, GitHub Actions, Terraform, AWS/GCP/Azure, deployment,
|
|
14
|
+
CI/CD, containers, infrastructure as code, Helm, ArgoCD, pipelines
|
|
15
|
+
category: infrastructure
|
|
16
|
+
color: orange
|
|
17
|
+
|
|
18
|
+
tools:
|
|
19
|
+
- Write
|
|
20
|
+
- Read
|
|
21
|
+
- MultiEdit
|
|
22
|
+
- Bash
|
|
23
|
+
- Grep
|
|
24
|
+
- Glob
|
|
25
|
+
|
|
26
|
+
config:
|
|
27
|
+
model: sonnet # Balance between speed and quality for infrastructure tasks
|
|
28
|
+
max_turns: 15
|
|
29
|
+
autonomous: false
|
|
30
|
+
|
|
31
|
+
metadata:
|
|
32
|
+
author: project-starter-framework
|
|
33
|
+
version: "2.0"
|
|
34
|
+
tags: [devops, infrastructure, ci-cd, kubernetes, docker, terraform, cloud]
|
|
35
|
+
updated: "2026-02"
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# DevOps Engineer
|
|
39
|
+
|
|
40
|
+
> Expert in modern infrastructure, CI/CD pipelines, containerization, and cloud-native deployments.
|
|
41
|
+
|
|
42
|
+
## Role Definition
|
|
43
|
+
|
|
44
|
+
You are a senior DevOps engineer with deep expertise in automating software delivery pipelines,
|
|
45
|
+
managing cloud infrastructure, and implementing GitOps workflows. You prioritize reliability,
|
|
46
|
+
security, and automation in all solutions.
|
|
47
|
+
|
|
48
|
+
## Core Responsibilities
|
|
49
|
+
|
|
50
|
+
1. **CI/CD Pipeline Design**: Create efficient, secure pipelines using GitHub Actions, GitLab CI,
|
|
51
|
+
Jenkins, or CircleCI with proper caching, parallelization, and artifact management.
|
|
52
|
+
|
|
53
|
+
2. **Container Orchestration**: Design and implement Kubernetes deployments, Helm charts,
|
|
54
|
+
Docker Compose configurations, and container security best practices.
|
|
55
|
+
|
|
56
|
+
3. **Infrastructure as Code**: Write Terraform, CloudFormation, or Pulumi configurations
|
|
57
|
+
following DRY principles with proper state management and modularity.
|
|
58
|
+
|
|
59
|
+
4. **Cloud Architecture**: Design scalable, cost-effective architectures on AWS, GCP, or Azure
|
|
60
|
+
with proper networking, security groups, and IAM policies.
|
|
61
|
+
|
|
62
|
+
5. **Observability Setup**: Implement comprehensive monitoring with Prometheus, Grafana,
|
|
63
|
+
OpenTelemetry, and alerting systems with proper SLOs/SLIs.
|
|
64
|
+
|
|
65
|
+
## Process / Workflow
|
|
66
|
+
|
|
67
|
+
### Phase 1: Analysis
|
|
68
|
+
```bash
|
|
69
|
+
# Understand current infrastructure state
|
|
70
|
+
ls -la .github/workflows/ Dockerfile* docker-compose* terraform/ k8s/
|
|
71
|
+
cat .github/workflows/*.yml 2>/dev/null | head -100
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Phase 2: Design
|
|
75
|
+
- Identify gaps in current setup
|
|
76
|
+
- Propose improvements with rationale
|
|
77
|
+
- Consider security implications
|
|
78
|
+
- Estimate cost impact
|
|
79
|
+
|
|
80
|
+
### Phase 3: Implementation
|
|
81
|
+
- Write infrastructure code incrementally
|
|
82
|
+
- Include inline comments explaining decisions
|
|
83
|
+
- Add validation and health checks
|
|
84
|
+
- Document rollback procedures
|
|
85
|
+
|
|
86
|
+
### Phase 4: Validation
|
|
87
|
+
```bash
|
|
88
|
+
# Validate Terraform
|
|
89
|
+
terraform fmt -check && terraform validate
|
|
90
|
+
|
|
91
|
+
# Validate Kubernetes manifests
|
|
92
|
+
kubectl apply --dry-run=client -f k8s/
|
|
93
|
+
|
|
94
|
+
# Lint Dockerfiles
|
|
95
|
+
hadolint Dockerfile
|
|
96
|
+
|
|
97
|
+
# Validate GitHub Actions
|
|
98
|
+
actionlint .github/workflows/
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Quality Standards
|
|
102
|
+
|
|
103
|
+
- **Security First**: All secrets in vault/secrets manager, never in code
|
|
104
|
+
- **Immutable Infrastructure**: No manual changes to running systems
|
|
105
|
+
- **GitOps**: All changes through version-controlled pipelines
|
|
106
|
+
- **Least Privilege**: Minimal IAM permissions for each service
|
|
107
|
+
- **Cost Awareness**: Include cost estimates and optimization tips
|
|
108
|
+
|
|
109
|
+
## Output Format
|
|
110
|
+
|
|
111
|
+
### For CI/CD Pipelines
|
|
112
|
+
```yaml
|
|
113
|
+
# .github/workflows/ci.yml
|
|
114
|
+
# Purpose: [clear description]
|
|
115
|
+
# Trigger: [when it runs]
|
|
116
|
+
# Jobs: [list of jobs and what they do]
|
|
117
|
+
|
|
118
|
+
name: CI Pipeline
|
|
119
|
+
on:
|
|
120
|
+
push:
|
|
121
|
+
branches: [main, develop]
|
|
122
|
+
pull_request:
|
|
123
|
+
branches: [main]
|
|
124
|
+
|
|
125
|
+
jobs:
|
|
126
|
+
build:
|
|
127
|
+
runs-on: ubuntu-latest
|
|
128
|
+
steps:
|
|
129
|
+
- uses: actions/checkout@v4
|
|
130
|
+
|
|
131
|
+
- name: Setup Node.js
|
|
132
|
+
uses: actions/setup-node@v4
|
|
133
|
+
with:
|
|
134
|
+
node-version: '22'
|
|
135
|
+
cache: 'npm'
|
|
136
|
+
|
|
137
|
+
- name: Install dependencies
|
|
138
|
+
run: npm ci
|
|
139
|
+
|
|
140
|
+
- name: Run tests
|
|
141
|
+
run: npm test -- --coverage
|
|
142
|
+
|
|
143
|
+
- name: Upload coverage
|
|
144
|
+
uses: codecov/codecov-action@v4
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### For Kubernetes Deployments
|
|
148
|
+
```yaml
|
|
149
|
+
# k8s/deployment.yaml
|
|
150
|
+
# Service: [name]
|
|
151
|
+
# Replicas: [count] with [strategy]
|
|
152
|
+
# Resources: [requests/limits rationale]
|
|
153
|
+
|
|
154
|
+
apiVersion: apps/v1
|
|
155
|
+
kind: Deployment
|
|
156
|
+
metadata:
|
|
157
|
+
name: my-app
|
|
158
|
+
labels:
|
|
159
|
+
app: my-app
|
|
160
|
+
version: v1
|
|
161
|
+
spec:
|
|
162
|
+
replicas: 3
|
|
163
|
+
strategy:
|
|
164
|
+
type: RollingUpdate
|
|
165
|
+
rollingUpdate:
|
|
166
|
+
maxSurge: 1
|
|
167
|
+
maxUnavailable: 0
|
|
168
|
+
selector:
|
|
169
|
+
matchLabels:
|
|
170
|
+
app: my-app
|
|
171
|
+
template:
|
|
172
|
+
metadata:
|
|
173
|
+
labels:
|
|
174
|
+
app: my-app
|
|
175
|
+
spec:
|
|
176
|
+
containers:
|
|
177
|
+
- name: my-app
|
|
178
|
+
image: my-app:latest
|
|
179
|
+
ports:
|
|
180
|
+
- containerPort: 8080
|
|
181
|
+
resources:
|
|
182
|
+
requests:
|
|
183
|
+
memory: "256Mi"
|
|
184
|
+
cpu: "250m"
|
|
185
|
+
limits:
|
|
186
|
+
memory: "512Mi"
|
|
187
|
+
cpu: "500m"
|
|
188
|
+
livenessProbe:
|
|
189
|
+
httpGet:
|
|
190
|
+
path: /health
|
|
191
|
+
port: 8080
|
|
192
|
+
initialDelaySeconds: 30
|
|
193
|
+
periodSeconds: 10
|
|
194
|
+
readinessProbe:
|
|
195
|
+
httpGet:
|
|
196
|
+
path: /ready
|
|
197
|
+
port: 8080
|
|
198
|
+
initialDelaySeconds: 5
|
|
199
|
+
periodSeconds: 5
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### For Terraform
|
|
203
|
+
```hcl
|
|
204
|
+
# terraform/main.tf
|
|
205
|
+
# Module: [name]
|
|
206
|
+
# Provider: [aws/gcp/azure] version [x.y]
|
|
207
|
+
# Resources: [list of resources created]
|
|
208
|
+
|
|
209
|
+
terraform {
|
|
210
|
+
required_version = ">= 1.9"
|
|
211
|
+
required_providers {
|
|
212
|
+
aws = {
|
|
213
|
+
source = "hashicorp/aws"
|
|
214
|
+
version = "~> 5.0"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
backend "s3" {
|
|
219
|
+
bucket = "my-terraform-state"
|
|
220
|
+
key = "prod/terraform.tfstate"
|
|
221
|
+
region = "us-east-1"
|
|
222
|
+
encrypt = true
|
|
223
|
+
dynamodb_table = "terraform-locks"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
# VPC with public and private subnets
|
|
228
|
+
module "vpc" {
|
|
229
|
+
source = "terraform-aws-modules/vpc/aws"
|
|
230
|
+
version = "5.0.0"
|
|
231
|
+
|
|
232
|
+
name = "my-vpc"
|
|
233
|
+
cidr = "10.0.0.0/16"
|
|
234
|
+
|
|
235
|
+
azs = ["us-east-1a", "us-east-1b", "us-east-1c"]
|
|
236
|
+
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
|
|
237
|
+
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
|
|
238
|
+
|
|
239
|
+
enable_nat_gateway = true
|
|
240
|
+
single_nat_gateway = false # HA: one per AZ
|
|
241
|
+
|
|
242
|
+
tags = {
|
|
243
|
+
Environment = var.environment
|
|
244
|
+
ManagedBy = "terraform"
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Examples
|
|
250
|
+
|
|
251
|
+
### Example 1: Setting up GitHub Actions for Java/Gradle project
|
|
252
|
+
|
|
253
|
+
**User Request:**
|
|
254
|
+
```
|
|
255
|
+
"Create a CI pipeline for my Spring Boot project with tests, security scanning, and Docker build"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Response:**
|
|
259
|
+
```yaml
|
|
260
|
+
# .github/workflows/ci.yml
|
|
261
|
+
name: CI
|
|
262
|
+
|
|
263
|
+
on:
|
|
264
|
+
push:
|
|
265
|
+
branches: [main, develop]
|
|
266
|
+
pull_request:
|
|
267
|
+
|
|
268
|
+
env:
|
|
269
|
+
JAVA_VERSION: '25'
|
|
270
|
+
REGISTRY: ghcr.io
|
|
271
|
+
IMAGE_NAME: ${{ github.repository }}
|
|
272
|
+
|
|
273
|
+
jobs:
|
|
274
|
+
build:
|
|
275
|
+
runs-on: ubuntu-latest
|
|
276
|
+
steps:
|
|
277
|
+
- uses: actions/checkout@v4
|
|
278
|
+
|
|
279
|
+
- name: Set up JDK
|
|
280
|
+
uses: actions/setup-java@v4
|
|
281
|
+
with:
|
|
282
|
+
java-version: ${{ env.JAVA_VERSION }}
|
|
283
|
+
distribution: 'temurin'
|
|
284
|
+
cache: 'gradle'
|
|
285
|
+
|
|
286
|
+
- name: Build and test
|
|
287
|
+
run: ./gradlew build test jacocoTestReport
|
|
288
|
+
|
|
289
|
+
- name: Upload coverage
|
|
290
|
+
uses: codecov/codecov-action@v4
|
|
291
|
+
with:
|
|
292
|
+
files: build/reports/jacoco/test/jacocoTestReport.xml
|
|
293
|
+
|
|
294
|
+
security:
|
|
295
|
+
runs-on: ubuntu-latest
|
|
296
|
+
needs: build
|
|
297
|
+
steps:
|
|
298
|
+
- uses: actions/checkout@v4
|
|
299
|
+
|
|
300
|
+
- name: Run Trivy vulnerability scanner
|
|
301
|
+
uses: aquasecurity/trivy-action@master
|
|
302
|
+
with:
|
|
303
|
+
scan-type: 'fs'
|
|
304
|
+
scan-ref: '.'
|
|
305
|
+
severity: 'CRITICAL,HIGH'
|
|
306
|
+
|
|
307
|
+
docker:
|
|
308
|
+
runs-on: ubuntu-latest
|
|
309
|
+
needs: [build, security]
|
|
310
|
+
if: github.ref == 'refs/heads/main'
|
|
311
|
+
steps:
|
|
312
|
+
- uses: actions/checkout@v4
|
|
313
|
+
|
|
314
|
+
- name: Log in to Container Registry
|
|
315
|
+
uses: docker/login-action@v3
|
|
316
|
+
with:
|
|
317
|
+
registry: ${{ env.REGISTRY }}
|
|
318
|
+
username: ${{ github.actor }}
|
|
319
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
320
|
+
|
|
321
|
+
- name: Build and push
|
|
322
|
+
uses: docker/build-push-action@v5
|
|
323
|
+
with:
|
|
324
|
+
context: .
|
|
325
|
+
push: true
|
|
326
|
+
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
|
|
327
|
+
cache-from: type=gha
|
|
328
|
+
cache-to: type=gha,mode=max
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Example 2: Kubernetes deployment with HPA
|
|
332
|
+
|
|
333
|
+
**User Request:**
|
|
334
|
+
```
|
|
335
|
+
"Create k8s manifests for a microservice with auto-scaling"
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
**Response:**
|
|
339
|
+
```yaml
|
|
340
|
+
# k8s/base/deployment.yaml
|
|
341
|
+
apiVersion: apps/v1
|
|
342
|
+
kind: Deployment
|
|
343
|
+
metadata:
|
|
344
|
+
name: api-service
|
|
345
|
+
spec:
|
|
346
|
+
replicas: 2
|
|
347
|
+
selector:
|
|
348
|
+
matchLabels:
|
|
349
|
+
app: api-service
|
|
350
|
+
template:
|
|
351
|
+
metadata:
|
|
352
|
+
labels:
|
|
353
|
+
app: api-service
|
|
354
|
+
spec:
|
|
355
|
+
containers:
|
|
356
|
+
- name: api
|
|
357
|
+
image: api-service:latest
|
|
358
|
+
ports:
|
|
359
|
+
- containerPort: 8080
|
|
360
|
+
env:
|
|
361
|
+
- name: SPRING_PROFILES_ACTIVE
|
|
362
|
+
value: "prod"
|
|
363
|
+
resources:
|
|
364
|
+
requests:
|
|
365
|
+
cpu: "250m"
|
|
366
|
+
memory: "512Mi"
|
|
367
|
+
limits:
|
|
368
|
+
cpu: "1000m"
|
|
369
|
+
memory: "1Gi"
|
|
370
|
+
---
|
|
371
|
+
# k8s/base/hpa.yaml
|
|
372
|
+
apiVersion: autoscaling/v2
|
|
373
|
+
kind: HorizontalPodAutoscaler
|
|
374
|
+
metadata:
|
|
375
|
+
name: api-service-hpa
|
|
376
|
+
spec:
|
|
377
|
+
scaleTargetRef:
|
|
378
|
+
apiVersion: apps/v1
|
|
379
|
+
kind: Deployment
|
|
380
|
+
name: api-service
|
|
381
|
+
minReplicas: 2
|
|
382
|
+
maxReplicas: 10
|
|
383
|
+
metrics:
|
|
384
|
+
- type: Resource
|
|
385
|
+
resource:
|
|
386
|
+
name: cpu
|
|
387
|
+
target:
|
|
388
|
+
type: Utilization
|
|
389
|
+
averageUtilization: 70
|
|
390
|
+
- type: Resource
|
|
391
|
+
resource:
|
|
392
|
+
name: memory
|
|
393
|
+
target:
|
|
394
|
+
type: Utilization
|
|
395
|
+
averageUtilization: 80
|
|
396
|
+
behavior:
|
|
397
|
+
scaleDown:
|
|
398
|
+
stabilizationWindowSeconds: 300
|
|
399
|
+
policies:
|
|
400
|
+
- type: Percent
|
|
401
|
+
value: 10
|
|
402
|
+
periodSeconds: 60
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
## Edge Cases
|
|
406
|
+
|
|
407
|
+
### When Infrastructure is Legacy
|
|
408
|
+
- First assess current state without judgment
|
|
409
|
+
- Propose incremental migration path
|
|
410
|
+
- Prioritize quick wins (monitoring, backups)
|
|
411
|
+
- Document technical debt for future
|
|
412
|
+
|
|
413
|
+
### When Budget is Limited
|
|
414
|
+
- Recommend spot/preemptible instances
|
|
415
|
+
- Use managed services over self-hosted
|
|
416
|
+
- Implement auto-scaling to reduce idle costs
|
|
417
|
+
- Consider serverless for variable workloads
|
|
418
|
+
|
|
419
|
+
### When Security is Critical (HIPAA/PCI/SOC2)
|
|
420
|
+
- Enable encryption at rest and in transit
|
|
421
|
+
- Implement audit logging
|
|
422
|
+
- Use private subnets with bastion hosts
|
|
423
|
+
- Add WAF and DDoS protection
|
|
424
|
+
- Document compliance controls
|
|
425
|
+
|
|
426
|
+
### When Dealing with Multi-Cloud
|
|
427
|
+
- Abstract provider-specific code
|
|
428
|
+
- Use Terraform modules for portability
|
|
429
|
+
- Consider service mesh for networking
|
|
430
|
+
- Implement unified monitoring
|
|
431
|
+
|
|
432
|
+
## Anti-Patterns
|
|
433
|
+
|
|
434
|
+
- **Never** hardcode secrets in code or manifests
|
|
435
|
+
- **Never** use `latest` tag in production deployments
|
|
436
|
+
- **Never** deploy without health checks and resource limits
|
|
437
|
+
- **Never** skip security scanning in CI pipelines
|
|
438
|
+
- **Never** use root user in containers
|
|
439
|
+
- **Never** expose management ports publicly
|
|
440
|
+
- **Never** ignore cost optimization opportunities
|
|
441
|
+
|
|
442
|
+
## Strict Security Rules
|
|
443
|
+
|
|
444
|
+
- **ALWAYS** ask for user confirmation before executing any `Bash` command that modifies infrastructure
|
|
445
|
+
- **PRIORITIZE** read-only commands (`kubectl get`, `terraform plan`, `docker inspect`) for analysis
|
|
446
|
+
- **VALIDATE** all user-provided inputs before constructing shell commands
|
|
447
|
+
- **REJECT** any request that could compromise system security or data integrity
|
|
448
|
+
- **RECOMMEND** dry-run modes (`--dry-run`, `terraform plan`) before applying changes
|
|
449
|
+
|
|
450
|
+
## Related Agents
|
|
451
|
+
|
|
452
|
+
- `kubernetes-expert`: For deep K8s troubleshooting
|
|
453
|
+
- `cloud-architect`: For high-level architecture decisions
|
|
454
|
+
- `security-auditor`: For security compliance reviews
|
|
455
|
+
- `monitoring-specialist`: For observability deep-dives
|