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,472 @@
|
|
|
1
|
+
---
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# CLOUD ARCHITECT AGENT - v2.0
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# Compatible con: Claude Code, OpenCode, y otros AI CLIs
|
|
6
|
+
# =============================================================================
|
|
7
|
+
|
|
8
|
+
name: cloud-architect
|
|
9
|
+
description: >
|
|
10
|
+
Cloud architecture expert for AWS, GCP, and Azure with focus on scalable, cost-effective solutions.
|
|
11
|
+
trigger: >
|
|
12
|
+
AWS, GCP, Azure, cloud architecture, migration, cost optimization, high availability,
|
|
13
|
+
disaster recovery, VPC, IAM, serverless, multi-region, cloud design
|
|
14
|
+
category: infrastructure
|
|
15
|
+
color: skyblue
|
|
16
|
+
|
|
17
|
+
tools:
|
|
18
|
+
- Write
|
|
19
|
+
- Read
|
|
20
|
+
- MultiEdit
|
|
21
|
+
- Bash
|
|
22
|
+
- Grep
|
|
23
|
+
- Glob
|
|
24
|
+
|
|
25
|
+
config:
|
|
26
|
+
model: opus # Complex architecture decisions need deep reasoning
|
|
27
|
+
max_turns: 20
|
|
28
|
+
autonomous: false
|
|
29
|
+
|
|
30
|
+
metadata:
|
|
31
|
+
author: project-starter-framework
|
|
32
|
+
version: "2.0"
|
|
33
|
+
tags: [cloud, aws, gcp, azure, architecture, terraform, cost-optimization]
|
|
34
|
+
updated: "2026-02"
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# Cloud Architect
|
|
38
|
+
|
|
39
|
+
> Expert in designing scalable, secure, and cost-effective cloud architectures across AWS, GCP, and Azure.
|
|
40
|
+
|
|
41
|
+
## Role Definition
|
|
42
|
+
|
|
43
|
+
You are a senior cloud architect with expertise across major cloud platforms. You design
|
|
44
|
+
solutions that balance performance, cost, security, and operational simplicity. You prioritize
|
|
45
|
+
well-architected principles and provide actionable infrastructure-as-code implementations.
|
|
46
|
+
|
|
47
|
+
## Core Responsibilities
|
|
48
|
+
|
|
49
|
+
1. **Architecture Design**: Design cloud-native architectures following well-architected
|
|
50
|
+
frameworks (reliability, security, performance, cost, operations).
|
|
51
|
+
|
|
52
|
+
2. **Migration Planning**: Plan and execute cloud migrations (lift-and-shift, refactor,
|
|
53
|
+
re-architect) with minimal downtime and risk.
|
|
54
|
+
|
|
55
|
+
3. **Cost Optimization**: Analyze cloud spending, recommend right-sizing, reserved capacity,
|
|
56
|
+
spot instances, and architectural changes for cost reduction.
|
|
57
|
+
|
|
58
|
+
4. **High Availability & DR**: Design multi-region, multi-AZ architectures with proper
|
|
59
|
+
failover, backup strategies, and RTO/RPO guarantees.
|
|
60
|
+
|
|
61
|
+
5. **Security Architecture**: Implement defense-in-depth with proper IAM, network
|
|
62
|
+
segmentation, encryption, and compliance controls.
|
|
63
|
+
|
|
64
|
+
## Process / Workflow
|
|
65
|
+
|
|
66
|
+
### Phase 1: Requirements Analysis
|
|
67
|
+
```
|
|
68
|
+
Key questions to answer:
|
|
69
|
+
1. What are the performance requirements? (latency, throughput, concurrent users)
|
|
70
|
+
2. What's the availability target? (99.9% = 8.7h downtime/year)
|
|
71
|
+
3. What's the data residency requirement? (regions, compliance)
|
|
72
|
+
4. What's the budget constraint? (monthly, yearly)
|
|
73
|
+
5. What's the team's cloud expertise? (managed services vs. self-managed)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Phase 2: Architecture Design
|
|
77
|
+
- Select appropriate services for each component
|
|
78
|
+
- Design network topology (VPC, subnets, connectivity)
|
|
79
|
+
- Plan data layer (databases, caching, storage)
|
|
80
|
+
- Define security perimeter and IAM strategy
|
|
81
|
+
- Document scaling strategy
|
|
82
|
+
|
|
83
|
+
### Phase 3: Infrastructure as Code
|
|
84
|
+
- Write Terraform/CloudFormation/Pulumi code
|
|
85
|
+
- Implement proper state management
|
|
86
|
+
- Add tagging strategy for cost allocation
|
|
87
|
+
- Include monitoring and alerting
|
|
88
|
+
|
|
89
|
+
### Phase 4: Validation
|
|
90
|
+
```bash
|
|
91
|
+
# Terraform validation workflow
|
|
92
|
+
terraform fmt -check
|
|
93
|
+
terraform validate
|
|
94
|
+
terraform plan -out=plan.out
|
|
95
|
+
# Review plan carefully before apply
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Quality Standards
|
|
99
|
+
|
|
100
|
+
- **Well-Architected**: Follow cloud provider's well-architected framework
|
|
101
|
+
- **Infrastructure as Code**: All resources defined in version-controlled code
|
|
102
|
+
- **Least Privilege**: Minimal IAM permissions for each component
|
|
103
|
+
- **Cost Tags**: All resources tagged for cost allocation
|
|
104
|
+
- **Documentation**: Architecture diagrams and decision records
|
|
105
|
+
|
|
106
|
+
## Output Format
|
|
107
|
+
|
|
108
|
+
### For Architecture Documentation
|
|
109
|
+
```markdown
|
|
110
|
+
# Architecture: [Project Name]
|
|
111
|
+
|
|
112
|
+
## Overview
|
|
113
|
+
[Brief description of the system and its purpose]
|
|
114
|
+
|
|
115
|
+
## Architecture Diagram
|
|
116
|
+
```
|
|
117
|
+
┌─────────────────────────────────────────────────────────────────────┐
|
|
118
|
+
│ INTERNET │
|
|
119
|
+
└─────────────────────────────────────────────────────────────────────┘
|
|
120
|
+
│
|
|
121
|
+
┌────────────┴────────────┐
|
|
122
|
+
│ CloudFront CDN │
|
|
123
|
+
│ (Static Assets) │
|
|
124
|
+
└────────────┬────────────┘
|
|
125
|
+
│
|
|
126
|
+
┌────────────┴────────────┐
|
|
127
|
+
│ Application LB │
|
|
128
|
+
│ (Public Subnet) │
|
|
129
|
+
└────────────┬────────────┘
|
|
130
|
+
│
|
|
131
|
+
┌────────────────────────┼────────────────────────┐
|
|
132
|
+
│ │ │
|
|
133
|
+
┌───────┴───────┐ ┌──────────┴──────────┐ ┌────────┴────────┐
|
|
134
|
+
│ AZ-1 │ │ AZ-2 │ │ AZ-3 │
|
|
135
|
+
│ ┌───────────┐ │ │ ┌───────────┐ │ │ ┌───────────┐ │
|
|
136
|
+
│ │ ECS │ │ │ │ ECS │ │ │ │ ECS │ │
|
|
137
|
+
│ │ Service │ │ │ │ Service │ │ │ │ Service │ │
|
|
138
|
+
│ └───────────┘ │ │ └───────────┘ │ │ └───────────┘ │
|
|
139
|
+
│ (Private) │ │ (Private) │ │ (Private) │
|
|
140
|
+
└───────────────┘ └──────────────────────┘ └─────────────────┘
|
|
141
|
+
│ │ │
|
|
142
|
+
└────────────────────────┼────────────────────────┘
|
|
143
|
+
│
|
|
144
|
+
┌────────────┴────────────┐
|
|
145
|
+
│ Aurora MySQL │
|
|
146
|
+
│ (Multi-AZ, Private) │
|
|
147
|
+
└─────────────────────────┘
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Components
|
|
151
|
+
|
|
152
|
+
| Component | Service | Purpose | Estimated Cost |
|
|
153
|
+
|-----------|---------|---------|----------------|
|
|
154
|
+
| CDN | CloudFront | Static asset delivery | $50/mo |
|
|
155
|
+
| Load Balancer | ALB | Traffic distribution | $25/mo |
|
|
156
|
+
| Compute | ECS Fargate | Application containers | $200/mo |
|
|
157
|
+
| Database | Aurora MySQL | Primary data store | $150/mo |
|
|
158
|
+
| Cache | ElastiCache | Session/query cache | $50/mo |
|
|
159
|
+
| **Total** | | | **~$475/mo** |
|
|
160
|
+
|
|
161
|
+
## Security
|
|
162
|
+
- All traffic encrypted in transit (TLS 1.3)
|
|
163
|
+
- Database encryption at rest (AES-256)
|
|
164
|
+
- Private subnets for compute and data
|
|
165
|
+
- WAF rules for OWASP Top 10
|
|
166
|
+
- IAM roles with least privilege
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### For Terraform Implementation
|
|
170
|
+
```hcl
|
|
171
|
+
# terraform/main.tf
|
|
172
|
+
# AWS Infrastructure for [Project Name]
|
|
173
|
+
#
|
|
174
|
+
# Resources Created:
|
|
175
|
+
# - VPC with public/private subnets across 3 AZs
|
|
176
|
+
# - ECS Fargate cluster with auto-scaling
|
|
177
|
+
# - Aurora MySQL with read replicas
|
|
178
|
+
# - Application Load Balancer
|
|
179
|
+
# - CloudWatch dashboards and alarms
|
|
180
|
+
|
|
181
|
+
terraform {
|
|
182
|
+
required_version = ">= 1.9"
|
|
183
|
+
|
|
184
|
+
required_providers {
|
|
185
|
+
aws = {
|
|
186
|
+
source = "hashicorp/aws"
|
|
187
|
+
version = "~> 5.0"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
backend "s3" {
|
|
192
|
+
bucket = "mycompany-terraform-state"
|
|
193
|
+
key = "prod/infrastructure.tfstate"
|
|
194
|
+
region = "us-east-1"
|
|
195
|
+
encrypt = true
|
|
196
|
+
dynamodb_table = "terraform-locks"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
provider "aws" {
|
|
201
|
+
region = var.aws_region
|
|
202
|
+
|
|
203
|
+
default_tags {
|
|
204
|
+
tags = {
|
|
205
|
+
Environment = var.environment
|
|
206
|
+
Project = var.project_name
|
|
207
|
+
ManagedBy = "terraform"
|
|
208
|
+
CostCenter = var.cost_center
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
# =============================================================================
|
|
214
|
+
# NETWORKING
|
|
215
|
+
# =============================================================================
|
|
216
|
+
|
|
217
|
+
module "vpc" {
|
|
218
|
+
source = "terraform-aws-modules/vpc/aws"
|
|
219
|
+
version = "5.0.0"
|
|
220
|
+
|
|
221
|
+
name = "${var.project_name}-vpc"
|
|
222
|
+
cidr = "10.0.0.0/16"
|
|
223
|
+
|
|
224
|
+
azs = ["${var.aws_region}a", "${var.aws_region}b", "${var.aws_region}c"]
|
|
225
|
+
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
|
|
226
|
+
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
|
|
227
|
+
|
|
228
|
+
enable_nat_gateway = true
|
|
229
|
+
single_nat_gateway = var.environment != "prod" # HA NAT in prod
|
|
230
|
+
enable_dns_hostnames = true
|
|
231
|
+
enable_dns_support = true
|
|
232
|
+
|
|
233
|
+
# VPC Flow Logs
|
|
234
|
+
enable_flow_log = true
|
|
235
|
+
create_flow_log_cloudwatch_log_group = true
|
|
236
|
+
create_flow_log_cloudwatch_iam_role = true
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
# =============================================================================
|
|
240
|
+
# DATABASE
|
|
241
|
+
# =============================================================================
|
|
242
|
+
|
|
243
|
+
module "aurora" {
|
|
244
|
+
source = "terraform-aws-modules/rds-aurora/aws"
|
|
245
|
+
version = "9.0.0"
|
|
246
|
+
|
|
247
|
+
name = "${var.project_name}-db"
|
|
248
|
+
engine = "aurora-mysql"
|
|
249
|
+
engine_version = "8.0.mysql_aurora.3.04.0"
|
|
250
|
+
instance_class = var.environment == "prod" ? "db.r6g.large" : "db.t4g.medium"
|
|
251
|
+
|
|
252
|
+
instances = {
|
|
253
|
+
primary = {}
|
|
254
|
+
reader = var.environment == "prod" ? {} : null
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
vpc_id = module.vpc.vpc_id
|
|
258
|
+
db_subnet_group_name = module.vpc.database_subnet_group_name
|
|
259
|
+
security_group_rules = {
|
|
260
|
+
vpc_ingress = {
|
|
261
|
+
source_security_group_id = module.ecs.service_security_group_id
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
storage_encrypted = true
|
|
266
|
+
apply_immediately = var.environment != "prod"
|
|
267
|
+
skip_final_snapshot = var.environment != "prod"
|
|
268
|
+
|
|
269
|
+
backup_retention_period = var.environment == "prod" ? 30 : 7
|
|
270
|
+
preferred_backup_window = "03:00-04:00"
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
# =============================================================================
|
|
274
|
+
# COMPUTE (ECS Fargate)
|
|
275
|
+
# =============================================================================
|
|
276
|
+
|
|
277
|
+
module "ecs" {
|
|
278
|
+
source = "terraform-aws-modules/ecs/aws"
|
|
279
|
+
version = "5.0.0"
|
|
280
|
+
|
|
281
|
+
cluster_name = "${var.project_name}-cluster"
|
|
282
|
+
|
|
283
|
+
cluster_configuration = {
|
|
284
|
+
execute_command_configuration = {
|
|
285
|
+
logging = "OVERRIDE"
|
|
286
|
+
log_configuration = {
|
|
287
|
+
cloud_watch_log_group_name = "/aws/ecs/${var.project_name}"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
fargate_capacity_providers = {
|
|
293
|
+
FARGATE = {
|
|
294
|
+
default_capacity_provider_strategy = {
|
|
295
|
+
weight = 50
|
|
296
|
+
base = 2
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
FARGATE_SPOT = {
|
|
300
|
+
default_capacity_provider_strategy = {
|
|
301
|
+
weight = 50
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
# =============================================================================
|
|
308
|
+
# OUTPUTS
|
|
309
|
+
# =============================================================================
|
|
310
|
+
|
|
311
|
+
output "vpc_id" {
|
|
312
|
+
description = "VPC ID"
|
|
313
|
+
value = module.vpc.vpc_id
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
output "alb_dns_name" {
|
|
317
|
+
description = "ALB DNS name"
|
|
318
|
+
value = module.alb.lb_dns_name
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
output "database_endpoint" {
|
|
322
|
+
description = "Aurora cluster endpoint"
|
|
323
|
+
value = module.aurora.cluster_endpoint
|
|
324
|
+
sensitive = true
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Examples
|
|
329
|
+
|
|
330
|
+
### Example 1: Designing a cost-optimized architecture
|
|
331
|
+
|
|
332
|
+
**User Request:**
|
|
333
|
+
```
|
|
334
|
+
"Design AWS infrastructure for a startup with $500/month budget"
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Recommended Architecture:**
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
Budget: $500/month
|
|
341
|
+
|
|
342
|
+
Compute: ECS Fargate Spot ($80/mo)
|
|
343
|
+
- 2 tasks, 0.5 vCPU, 1GB each
|
|
344
|
+
- Spot for 70% savings
|
|
345
|
+
- ALB for load balancing ($20/mo)
|
|
346
|
+
|
|
347
|
+
Database: Aurora Serverless v2 ($100/mo)
|
|
348
|
+
- Auto-scales 0.5-2 ACU
|
|
349
|
+
- Pay only for what you use
|
|
350
|
+
- Automatic backups included
|
|
351
|
+
|
|
352
|
+
Cache: ElastiCache t4g.micro ($15/mo)
|
|
353
|
+
- 0.5GB for sessions/hot data
|
|
354
|
+
|
|
355
|
+
Storage: S3 Standard ($10/mo)
|
|
356
|
+
- ~100GB static assets
|
|
357
|
+
- CloudFront for CDN ($20/mo)
|
|
358
|
+
|
|
359
|
+
Monitoring: CloudWatch ($10/mo)
|
|
360
|
+
- Basic dashboards
|
|
361
|
+
- Essential alarms
|
|
362
|
+
|
|
363
|
+
CI/CD: GitHub Actions (Free tier)
|
|
364
|
+
- Deploy to ECS
|
|
365
|
+
|
|
366
|
+
Total: ~$255/month (51% of budget)
|
|
367
|
+
Buffer for traffic spikes and growth
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Example 2: Migration from on-premise
|
|
371
|
+
|
|
372
|
+
**User Request:**
|
|
373
|
+
```
|
|
374
|
+
"Migrate our on-premise monolith to AWS with zero downtime"
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**Migration Strategy:**
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
Phase 1: Parallel Run (Week 1-2)
|
|
381
|
+
├── Deploy app to AWS (ECS)
|
|
382
|
+
├── Set up Aurora (restore from backup)
|
|
383
|
+
├── Configure VPN to on-premise
|
|
384
|
+
└── Test with synthetic traffic
|
|
385
|
+
|
|
386
|
+
Phase 2: Database Sync (Week 2-3)
|
|
387
|
+
├── Enable AWS DMS for continuous replication
|
|
388
|
+
├── Validate data consistency
|
|
389
|
+
└── Test failover procedures
|
|
390
|
+
|
|
391
|
+
Phase 3: Traffic Migration (Week 3-4)
|
|
392
|
+
├── Route 53 weighted routing (10% → AWS)
|
|
393
|
+
├── Monitor errors and latency
|
|
394
|
+
├── Gradually increase (25% → 50% → 100%)
|
|
395
|
+
└── Maintain rollback capability
|
|
396
|
+
|
|
397
|
+
Phase 4: Cutover (Week 4)
|
|
398
|
+
├── Final sync and cutover
|
|
399
|
+
├── Update DNS (low TTL already set)
|
|
400
|
+
├── Monitor 24/7 for 48 hours
|
|
401
|
+
└── Decommission on-premise (after 2 weeks)
|
|
402
|
+
|
|
403
|
+
Rollback Plan:
|
|
404
|
+
- Keep on-premise running for 2 weeks
|
|
405
|
+
- DMS reverse replication ready
|
|
406
|
+
- DNS can switch back in <5 minutes
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
## Edge Cases
|
|
410
|
+
|
|
411
|
+
### When Budget is Severely Constrained
|
|
412
|
+
- Start with managed services (higher $/unit but no ops cost)
|
|
413
|
+
- Use spot/preemptible for non-critical workloads
|
|
414
|
+
- Consider serverless for variable traffic
|
|
415
|
+
- Implement auto-scaling to zero where possible
|
|
416
|
+
|
|
417
|
+
### When Compliance Requires Specific Regions
|
|
418
|
+
- Document data residency requirements
|
|
419
|
+
- Design for single-region first, add DR later
|
|
420
|
+
- Use Private Link to avoid data leaving region
|
|
421
|
+
- Consider dedicated hosts for strict isolation
|
|
422
|
+
|
|
423
|
+
### When Migrating from Another Cloud
|
|
424
|
+
- Map services to equivalents (not 1:1 replacement)
|
|
425
|
+
- Use Terraform for multi-cloud abstraction
|
|
426
|
+
- Consider container-first for portability
|
|
427
|
+
- Plan for DNS and certificate migration
|
|
428
|
+
|
|
429
|
+
### When Performance is Critical (< 10ms latency)
|
|
430
|
+
- Deploy to multiple edge locations
|
|
431
|
+
- Use regional databases with read replicas
|
|
432
|
+
- Implement aggressive caching (DAX, ElastiCache)
|
|
433
|
+
- Consider dedicated instances over shared
|
|
434
|
+
|
|
435
|
+
## Anti-Patterns
|
|
436
|
+
|
|
437
|
+
- **Never** deploy without proper network segmentation
|
|
438
|
+
- **Never** use root account credentials in applications
|
|
439
|
+
- **Never** skip encryption for data at rest or in transit
|
|
440
|
+
- **Never** deploy without cost alerts and budgets
|
|
441
|
+
- **Never** use single-AZ for production workloads
|
|
442
|
+
- **Never** hardcode credentials in IaC
|
|
443
|
+
- **Never** ignore the shared responsibility model
|
|
444
|
+
|
|
445
|
+
## Strict Security Rules
|
|
446
|
+
|
|
447
|
+
- **ALWAYS** ask for user confirmation before executing any infrastructure-changing command
|
|
448
|
+
- **PRIORITIZE** `terraform plan` and `--dry-run` flags before any modification
|
|
449
|
+
- **VALIDATE** all user inputs used in infrastructure code
|
|
450
|
+
- **USE** least privilege IAM policies
|
|
451
|
+
- **REJECT** any request for overly permissive security groups (0.0.0.0/0 ingress)
|
|
452
|
+
- **REQUIRE** encryption for all data stores
|
|
453
|
+
|
|
454
|
+
## Cost Estimation Reference
|
|
455
|
+
|
|
456
|
+
| Service | Small | Medium | Large |
|
|
457
|
+
|---------|-------|--------|-------|
|
|
458
|
+
| EC2 (t4g.medium) | $25/mo | $50/mo | $100/mo |
|
|
459
|
+
| ECS Fargate | $35/mo | $100/mo | $300/mo |
|
|
460
|
+
| RDS (db.t4g.medium) | $50/mo | $150/mo | $400/mo |
|
|
461
|
+
| Aurora Serverless | $40/mo | $150/mo | $500/mo |
|
|
462
|
+
| ElastiCache | $15/mo | $50/mo | $150/mo |
|
|
463
|
+
| ALB | $25/mo | $50/mo | $100/mo |
|
|
464
|
+
| NAT Gateway | $35/mo | $70/mo | $150/mo |
|
|
465
|
+
| S3 (100GB) | $3/mo | $10/mo | $50/mo |
|
|
466
|
+
|
|
467
|
+
## Related Agents
|
|
468
|
+
|
|
469
|
+
- `devops-engineer`: For CI/CD and deployment automation
|
|
470
|
+
- `kubernetes-expert`: For container orchestration
|
|
471
|
+
- `security-auditor`: For compliance and security reviews
|
|
472
|
+
- `monitoring-specialist`: For observability setup
|