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.
Files changed (500) hide show
  1. package/.gitignore.template +105 -0
  2. package/.releaserc +44 -0
  3. package/README.md +45 -0
  4. package/ai-config/.skillignore +15 -0
  5. package/ai-config/AUTO_INVOKE.md +300 -0
  6. package/ai-config/agents/_TEMPLATE.md +93 -0
  7. package/ai-config/agents/business/api-designer.md +1657 -0
  8. package/ai-config/agents/business/business-analyst.md +1331 -0
  9. package/ai-config/agents/business/product-strategist.md +206 -0
  10. package/ai-config/agents/business/project-manager.md +178 -0
  11. package/ai-config/agents/business/requirements-analyst.md +1277 -0
  12. package/ai-config/agents/business/technical-writer.md +1679 -0
  13. package/ai-config/agents/creative/ux-designer.md +205 -0
  14. package/ai-config/agents/data-ai/ai-engineer.md +487 -0
  15. package/ai-config/agents/data-ai/analytics-engineer.md +953 -0
  16. package/ai-config/agents/data-ai/data-engineer.md +173 -0
  17. package/ai-config/agents/data-ai/data-scientist.md +672 -0
  18. package/ai-config/agents/data-ai/mlops-engineer.md +814 -0
  19. package/ai-config/agents/data-ai/prompt-engineer.md +772 -0
  20. package/ai-config/agents/development/angular-expert.md +620 -0
  21. package/ai-config/agents/development/backend-architect.md +795 -0
  22. package/ai-config/agents/development/database-specialist.md +212 -0
  23. package/ai-config/agents/development/frontend-specialist.md +686 -0
  24. package/ai-config/agents/development/fullstack-engineer.md +668 -0
  25. package/ai-config/agents/development/golang-pro.md +338 -0
  26. package/ai-config/agents/development/java-enterprise.md +400 -0
  27. package/ai-config/agents/development/javascript-pro.md +422 -0
  28. package/ai-config/agents/development/nextjs-pro.md +474 -0
  29. package/ai-config/agents/development/python-pro.md +570 -0
  30. package/ai-config/agents/development/react-pro.md +487 -0
  31. package/ai-config/agents/development/rust-pro.md +246 -0
  32. package/ai-config/agents/development/spring-boot-4-expert.md +326 -0
  33. package/ai-config/agents/development/typescript-pro.md +336 -0
  34. package/ai-config/agents/development/vue-specialist.md +605 -0
  35. package/ai-config/agents/infrastructure/cloud-architect.md +472 -0
  36. package/ai-config/agents/infrastructure/deployment-manager.md +358 -0
  37. package/ai-config/agents/infrastructure/devops-engineer.md +455 -0
  38. package/ai-config/agents/infrastructure/incident-responder.md +519 -0
  39. package/ai-config/agents/infrastructure/kubernetes-expert.md +705 -0
  40. package/ai-config/agents/infrastructure/monitoring-specialist.md +674 -0
  41. package/ai-config/agents/infrastructure/performance-engineer.md +658 -0
  42. package/ai-config/agents/orchestrator.md +241 -0
  43. package/ai-config/agents/quality/accessibility-auditor.md +1204 -0
  44. package/ai-config/agents/quality/code-reviewer-compact.md +123 -0
  45. package/ai-config/agents/quality/code-reviewer.md +363 -0
  46. package/ai-config/agents/quality/dependency-manager.md +743 -0
  47. package/ai-config/agents/quality/e2e-test-specialist.md +1005 -0
  48. package/ai-config/agents/quality/performance-tester.md +1086 -0
  49. package/ai-config/agents/quality/security-auditor.md +133 -0
  50. package/ai-config/agents/quality/test-engineer.md +453 -0
  51. package/ai-config/agents/specialists/api-designer.md +87 -0
  52. package/ai-config/agents/specialists/backend-architect.md +73 -0
  53. package/ai-config/agents/specialists/code-reviewer.md +77 -0
  54. package/ai-config/agents/specialists/db-optimizer.md +75 -0
  55. package/ai-config/agents/specialists/devops-engineer.md +83 -0
  56. package/ai-config/agents/specialists/documentation-writer.md +78 -0
  57. package/ai-config/agents/specialists/frontend-developer.md +75 -0
  58. package/ai-config/agents/specialists/performance-analyst.md +82 -0
  59. package/ai-config/agents/specialists/refactor-specialist.md +74 -0
  60. package/ai-config/agents/specialists/security-auditor.md +74 -0
  61. package/ai-config/agents/specialists/test-engineer.md +81 -0
  62. package/ai-config/agents/specialists/ux-consultant.md +76 -0
  63. package/ai-config/agents/specialized/agent-generator.md +1190 -0
  64. package/ai-config/agents/specialized/blockchain-developer.md +149 -0
  65. package/ai-config/agents/specialized/code-migrator.md +892 -0
  66. package/ai-config/agents/specialized/context-manager.md +978 -0
  67. package/ai-config/agents/specialized/documentation-writer.md +1078 -0
  68. package/ai-config/agents/specialized/ecommerce-expert.md +1756 -0
  69. package/ai-config/agents/specialized/embedded-engineer.md +1714 -0
  70. package/ai-config/agents/specialized/error-detective.md +1034 -0
  71. package/ai-config/agents/specialized/fintech-specialist.md +1659 -0
  72. package/ai-config/agents/specialized/freelance-project-planner-v2.md +1988 -0
  73. package/ai-config/agents/specialized/freelance-project-planner-v3.md +2136 -0
  74. package/ai-config/agents/specialized/freelance-project-planner-v4.md +4503 -0
  75. package/ai-config/agents/specialized/freelance-project-planner.md +722 -0
  76. package/ai-config/agents/specialized/game-developer.md +1963 -0
  77. package/ai-config/agents/specialized/healthcare-dev.md +1620 -0
  78. package/ai-config/agents/specialized/mobile-developer.md +188 -0
  79. package/ai-config/agents/specialized/parallel-plan-executor.md +506 -0
  80. package/ai-config/agents/specialized/plan-executor.md +485 -0
  81. package/ai-config/agents/specialized/solo-dev-planner-modular/00-INDEX.md +485 -0
  82. package/ai-config/agents/specialized/solo-dev-planner-modular/01-CORE.md +3493 -0
  83. package/ai-config/agents/specialized/solo-dev-planner-modular/02-SELF-CORRECTION.md +778 -0
  84. package/ai-config/agents/specialized/solo-dev-planner-modular/03-PROGRESSIVE-SETUP.md +918 -0
  85. package/ai-config/agents/specialized/solo-dev-planner-modular/04-DEPLOYMENT.md +1537 -0
  86. package/ai-config/agents/specialized/solo-dev-planner-modular/05-TESTING.md +2633 -0
  87. package/ai-config/agents/specialized/solo-dev-planner-modular/06-OPERATIONS.md +5610 -0
  88. package/ai-config/agents/specialized/solo-dev-planner-modular/INSTALL.md +335 -0
  89. package/ai-config/agents/specialized/solo-dev-planner-modular/QUICK-REFERENCE.txt +215 -0
  90. package/ai-config/agents/specialized/solo-dev-planner-modular/README.md +260 -0
  91. package/ai-config/agents/specialized/solo-dev-planner-modular/START-HERE.md +379 -0
  92. package/ai-config/agents/specialized/solo-dev-planner-modular/WORKFLOW-DIAGRAM.md +355 -0
  93. package/ai-config/agents/specialized/solo-dev-planner-modular/solo-dev-planner.md +279 -0
  94. package/ai-config/agents/specialized/template-writer.md +347 -0
  95. package/ai-config/agents/specialized/test-runner.md +99 -0
  96. package/ai-config/agents/specialized/vibekanban-smart-worker.md +244 -0
  97. package/ai-config/agents/specialized/wave-executor.md +138 -0
  98. package/ai-config/agents/specialized/workflow-optimizer.md +1114 -0
  99. package/ai-config/commands/git/changelog.md +32 -0
  100. package/ai-config/commands/git/ci-local.md +70 -0
  101. package/ai-config/commands/git/commit.md +35 -0
  102. package/ai-config/commands/git/fix-issue.md +23 -0
  103. package/ai-config/commands/git/pr-create.md +42 -0
  104. package/ai-config/commands/git/pr-review.md +50 -0
  105. package/ai-config/commands/git/worktree.md +39 -0
  106. package/ai-config/commands/refactoring/cleanup.md +24 -0
  107. package/ai-config/commands/refactoring/dead-code.md +40 -0
  108. package/ai-config/commands/refactoring/extract.md +31 -0
  109. package/ai-config/commands/testing/e2e.md +30 -0
  110. package/ai-config/commands/testing/tdd.md +36 -0
  111. package/ai-config/commands/testing/test-coverage.md +30 -0
  112. package/ai-config/commands/testing/test-fix.md +24 -0
  113. package/ai-config/commands/workflow/generate-agents-md.md +85 -0
  114. package/ai-config/commands/workflow/planning.md +47 -0
  115. package/ai-config/commands/workflows/compound.md +89 -0
  116. package/ai-config/commands/workflows/plan.md +77 -0
  117. package/ai-config/commands/workflows/review.md +78 -0
  118. package/ai-config/commands/workflows/work.md +75 -0
  119. package/ai-config/config.yaml +18 -0
  120. package/ai-config/hooks/_TEMPLATE.md +96 -0
  121. package/ai-config/hooks/block-dangerous-commands.md +75 -0
  122. package/ai-config/hooks/commit-guard.md +90 -0
  123. package/ai-config/hooks/context-loader.md +73 -0
  124. package/ai-config/hooks/improve-prompt.md +91 -0
  125. package/ai-config/hooks/learning-log.md +72 -0
  126. package/ai-config/hooks/model-router.md +86 -0
  127. package/ai-config/hooks/secret-scanner.md +64 -0
  128. package/ai-config/hooks/skill-validator.md +102 -0
  129. package/ai-config/hooks/task-artifact.md +114 -0
  130. package/ai-config/hooks/validate-workflow.md +100 -0
  131. package/ai-config/prompts/base.md +71 -0
  132. package/ai-config/prompts/modes/debug.md +34 -0
  133. package/ai-config/prompts/modes/deploy.md +40 -0
  134. package/ai-config/prompts/modes/research.md +32 -0
  135. package/ai-config/prompts/modes/review.md +33 -0
  136. package/ai-config/prompts/review-policy.md +79 -0
  137. package/ai-config/skills/_TEMPLATE.md +157 -0
  138. package/ai-config/skills/backend/api-gateway/SKILL.md +254 -0
  139. package/ai-config/skills/backend/bff-concepts/SKILL.md +239 -0
  140. package/ai-config/skills/backend/bff-spring/SKILL.md +364 -0
  141. package/ai-config/skills/backend/chi-router/SKILL.md +396 -0
  142. package/ai-config/skills/backend/error-handling/SKILL.md +255 -0
  143. package/ai-config/skills/backend/exceptions-spring/SKILL.md +323 -0
  144. package/ai-config/skills/backend/fastapi/SKILL.md +302 -0
  145. package/ai-config/skills/backend/gateway-spring/SKILL.md +390 -0
  146. package/ai-config/skills/backend/go-backend/SKILL.md +457 -0
  147. package/ai-config/skills/backend/gradle-multimodule/SKILL.md +274 -0
  148. package/ai-config/skills/backend/graphql-concepts/SKILL.md +352 -0
  149. package/ai-config/skills/backend/graphql-spring/SKILL.md +398 -0
  150. package/ai-config/skills/backend/grpc-concepts/SKILL.md +283 -0
  151. package/ai-config/skills/backend/grpc-spring/SKILL.md +445 -0
  152. package/ai-config/skills/backend/jwt-auth/SKILL.md +412 -0
  153. package/ai-config/skills/backend/notifications-concepts/SKILL.md +259 -0
  154. package/ai-config/skills/backend/recommendations-concepts/SKILL.md +261 -0
  155. package/ai-config/skills/backend/search-concepts/SKILL.md +263 -0
  156. package/ai-config/skills/backend/search-spring/SKILL.md +375 -0
  157. package/ai-config/skills/backend/spring-boot-4/SKILL.md +172 -0
  158. package/ai-config/skills/backend/websockets/SKILL.md +532 -0
  159. package/ai-config/skills/data-ai/ai-ml/SKILL.md +423 -0
  160. package/ai-config/skills/data-ai/analytics-concepts/SKILL.md +195 -0
  161. package/ai-config/skills/data-ai/analytics-spring/SKILL.md +340 -0
  162. package/ai-config/skills/data-ai/duckdb-analytics/SKILL.md +440 -0
  163. package/ai-config/skills/data-ai/langchain/SKILL.md +238 -0
  164. package/ai-config/skills/data-ai/mlflow/SKILL.md +302 -0
  165. package/ai-config/skills/data-ai/onnx-inference/SKILL.md +290 -0
  166. package/ai-config/skills/data-ai/powerbi/SKILL.md +352 -0
  167. package/ai-config/skills/data-ai/pytorch/SKILL.md +274 -0
  168. package/ai-config/skills/data-ai/scikit-learn/SKILL.md +321 -0
  169. package/ai-config/skills/data-ai/vector-db/SKILL.md +301 -0
  170. package/ai-config/skills/database/graph-databases/SKILL.md +218 -0
  171. package/ai-config/skills/database/graph-spring/SKILL.md +361 -0
  172. package/ai-config/skills/database/pgx-postgres/SKILL.md +512 -0
  173. package/ai-config/skills/database/redis-cache/SKILL.md +343 -0
  174. package/ai-config/skills/database/sqlite-embedded/SKILL.md +388 -0
  175. package/ai-config/skills/database/timescaledb/SKILL.md +320 -0
  176. package/ai-config/skills/docs/api-documentation/SKILL.md +293 -0
  177. package/ai-config/skills/docs/docs-spring/SKILL.md +377 -0
  178. package/ai-config/skills/docs/mustache-templates/SKILL.md +190 -0
  179. package/ai-config/skills/docs/technical-docs/SKILL.md +447 -0
  180. package/ai-config/skills/frontend/astro-ssr/SKILL.md +441 -0
  181. package/ai-config/skills/frontend/frontend-design/SKILL.md +54 -0
  182. package/ai-config/skills/frontend/frontend-web/SKILL.md +368 -0
  183. package/ai-config/skills/frontend/mantine-ui/SKILL.md +396 -0
  184. package/ai-config/skills/frontend/tanstack-query/SKILL.md +439 -0
  185. package/ai-config/skills/frontend/zod-validation/SKILL.md +417 -0
  186. package/ai-config/skills/frontend/zustand-state/SKILL.md +350 -0
  187. package/ai-config/skills/infrastructure/chaos-engineering/SKILL.md +244 -0
  188. package/ai-config/skills/infrastructure/chaos-spring/SKILL.md +378 -0
  189. package/ai-config/skills/infrastructure/devops-infra/SKILL.md +435 -0
  190. package/ai-config/skills/infrastructure/docker-containers/SKILL.md +420 -0
  191. package/ai-config/skills/infrastructure/kubernetes/SKILL.md +456 -0
  192. package/ai-config/skills/infrastructure/opentelemetry/SKILL.md +546 -0
  193. package/ai-config/skills/infrastructure/traefik-proxy/SKILL.md +474 -0
  194. package/ai-config/skills/infrastructure/woodpecker-ci/SKILL.md +315 -0
  195. package/ai-config/skills/mobile/ionic-capacitor/SKILL.md +504 -0
  196. package/ai-config/skills/mobile/mobile-ionic/SKILL.md +448 -0
  197. package/ai-config/skills/prompt-improver/SKILL.md +125 -0
  198. package/ai-config/skills/quality/ghagga-review/SKILL.md +216 -0
  199. package/ai-config/skills/references/hooks-patterns/SKILL.md +238 -0
  200. package/ai-config/skills/references/mcp-servers/SKILL.md +275 -0
  201. package/ai-config/skills/references/plugins-reference/SKILL.md +110 -0
  202. package/ai-config/skills/references/skills-reference/SKILL.md +420 -0
  203. package/ai-config/skills/references/subagent-templates/SKILL.md +193 -0
  204. package/ai-config/skills/systems-iot/modbus-protocol/SKILL.md +410 -0
  205. package/ai-config/skills/systems-iot/mqtt-rumqttc/SKILL.md +408 -0
  206. package/ai-config/skills/systems-iot/rust-systems/SKILL.md +386 -0
  207. package/ai-config/skills/systems-iot/tokio-async/SKILL.md +324 -0
  208. package/ai-config/skills/testing/playwright-e2e/SKILL.md +289 -0
  209. package/ai-config/skills/testing/testcontainers/SKILL.md +299 -0
  210. package/ai-config/skills/testing/vitest-testing/SKILL.md +381 -0
  211. package/ai-config/skills/workflow/ci-local-guide/SKILL.md +118 -0
  212. package/ai-config/skills/workflow/claude-automation-recommender/SKILL.md +299 -0
  213. package/ai-config/skills/workflow/claude-md-improver/SKILL.md +158 -0
  214. package/ai-config/skills/workflow/finishing-a-development-branch/SKILL.md +117 -0
  215. package/ai-config/skills/workflow/git-github/SKILL.md +334 -0
  216. package/ai-config/skills/workflow/git-github/references/examples.md +160 -0
  217. package/ai-config/skills/workflow/git-workflow/SKILL.md +214 -0
  218. package/ai-config/skills/workflow/ide-plugins/SKILL.md +277 -0
  219. package/ai-config/skills/workflow/ide-plugins-intellij/SKILL.md +401 -0
  220. package/ai-config/skills/workflow/obsidian-brain-workflow/SKILL.md +199 -0
  221. package/ai-config/skills/workflow/using-git-worktrees/SKILL.md +100 -0
  222. package/ai-config/skills/workflow/verification-before-completion/SKILL.md +73 -0
  223. package/ai-config/skills/workflow/wave-workflow/SKILL.md +178 -0
  224. package/ci-local/README.md +170 -0
  225. package/ci-local/ci-local.sh +297 -0
  226. package/ci-local/hooks/commit-msg +74 -0
  227. package/ci-local/hooks/pre-commit +162 -0
  228. package/ci-local/hooks/pre-push +41 -0
  229. package/ci-local/install.sh +49 -0
  230. package/ci-local/semgrep.yml +214 -0
  231. package/dist/commands/analyze.d.ts +9 -0
  232. package/dist/commands/analyze.d.ts.map +1 -0
  233. package/dist/commands/analyze.js +55 -0
  234. package/dist/commands/analyze.js.map +1 -0
  235. package/dist/commands/analyze.test.d.ts +2 -0
  236. package/dist/commands/analyze.test.d.ts.map +1 -0
  237. package/dist/commands/analyze.test.js +145 -0
  238. package/dist/commands/analyze.test.js.map +1 -0
  239. package/dist/commands/doctor.d.ts +7 -0
  240. package/dist/commands/doctor.d.ts.map +1 -0
  241. package/dist/commands/doctor.js +158 -0
  242. package/dist/commands/doctor.js.map +1 -0
  243. package/dist/commands/doctor.test.d.ts +2 -0
  244. package/dist/commands/doctor.test.d.ts.map +1 -0
  245. package/dist/commands/doctor.test.js +200 -0
  246. package/dist/commands/doctor.test.js.map +1 -0
  247. package/dist/commands/init.d.ts +9 -0
  248. package/dist/commands/init.d.ts.map +1 -0
  249. package/dist/commands/init.js +283 -0
  250. package/dist/commands/init.js.map +1 -0
  251. package/dist/commands/init.test.d.ts +2 -0
  252. package/dist/commands/init.test.d.ts.map +1 -0
  253. package/dist/commands/init.test.js +271 -0
  254. package/dist/commands/init.test.js.map +1 -0
  255. package/dist/commands/sync.d.ts +8 -0
  256. package/dist/commands/sync.d.ts.map +1 -0
  257. package/dist/commands/sync.js +201 -0
  258. package/dist/commands/sync.js.map +1 -0
  259. package/dist/constants.d.ts +21 -0
  260. package/dist/constants.d.ts.map +1 -0
  261. package/dist/constants.js +57 -0
  262. package/dist/constants.js.map +1 -0
  263. package/dist/e2e/aggressive.e2e.test.d.ts +2 -0
  264. package/dist/e2e/aggressive.e2e.test.d.ts.map +1 -0
  265. package/dist/e2e/aggressive.e2e.test.js +350 -0
  266. package/dist/e2e/aggressive.e2e.test.js.map +1 -0
  267. package/dist/e2e/commands.e2e.test.d.ts +2 -0
  268. package/dist/e2e/commands.e2e.test.d.ts.map +1 -0
  269. package/dist/e2e/commands.e2e.test.js +213 -0
  270. package/dist/e2e/commands.e2e.test.js.map +1 -0
  271. package/dist/index.d.ts +3 -0
  272. package/dist/index.d.ts.map +1 -0
  273. package/dist/index.js +82 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/lib/common.d.ts +17 -0
  276. package/dist/lib/common.d.ts.map +1 -0
  277. package/dist/lib/common.js +111 -0
  278. package/dist/lib/common.js.map +1 -0
  279. package/dist/lib/common.test.d.ts +2 -0
  280. package/dist/lib/common.test.d.ts.map +1 -0
  281. package/dist/lib/common.test.js +316 -0
  282. package/dist/lib/common.test.js.map +1 -0
  283. package/dist/lib/frontmatter.d.ts +18 -0
  284. package/dist/lib/frontmatter.d.ts.map +1 -0
  285. package/dist/lib/frontmatter.js +61 -0
  286. package/dist/lib/frontmatter.js.map +1 -0
  287. package/dist/lib/frontmatter.test.d.ts +2 -0
  288. package/dist/lib/frontmatter.test.d.ts.map +1 -0
  289. package/dist/lib/frontmatter.test.js +257 -0
  290. package/dist/lib/frontmatter.test.js.map +1 -0
  291. package/dist/lib/template.d.ts +24 -0
  292. package/dist/lib/template.d.ts.map +1 -0
  293. package/dist/lib/template.js +78 -0
  294. package/dist/lib/template.js.map +1 -0
  295. package/dist/lib/template.test.d.ts +2 -0
  296. package/dist/lib/template.test.d.ts.map +1 -0
  297. package/dist/lib/template.test.js +201 -0
  298. package/dist/lib/template.test.js.map +1 -0
  299. package/dist/types/index.d.ts +48 -0
  300. package/dist/types/index.d.ts.map +1 -0
  301. package/dist/types/index.js +2 -0
  302. package/dist/types/index.js.map +1 -0
  303. package/dist/ui/AnalyzeUI.d.ts +7 -0
  304. package/dist/ui/AnalyzeUI.d.ts.map +1 -0
  305. package/dist/ui/AnalyzeUI.js +100 -0
  306. package/dist/ui/AnalyzeUI.js.map +1 -0
  307. package/dist/ui/App.d.ts +13 -0
  308. package/dist/ui/App.d.ts.map +1 -0
  309. package/dist/ui/App.js +100 -0
  310. package/dist/ui/App.js.map +1 -0
  311. package/dist/ui/CIContext.d.ts +9 -0
  312. package/dist/ui/CIContext.d.ts.map +1 -0
  313. package/dist/ui/CIContext.js +9 -0
  314. package/dist/ui/CIContext.js.map +1 -0
  315. package/dist/ui/CISelector.d.ts +8 -0
  316. package/dist/ui/CISelector.d.ts.map +1 -0
  317. package/dist/ui/CISelector.js +45 -0
  318. package/dist/ui/CISelector.js.map +1 -0
  319. package/dist/ui/Doctor.d.ts +3 -0
  320. package/dist/ui/Doctor.d.ts.map +1 -0
  321. package/dist/ui/Doctor.js +89 -0
  322. package/dist/ui/Doctor.js.map +1 -0
  323. package/dist/ui/Header.d.ts +8 -0
  324. package/dist/ui/Header.d.ts.map +1 -0
  325. package/dist/ui/Header.js +30 -0
  326. package/dist/ui/Header.js.map +1 -0
  327. package/dist/ui/MemorySelector.d.ts +8 -0
  328. package/dist/ui/MemorySelector.d.ts.map +1 -0
  329. package/dist/ui/MemorySelector.js +46 -0
  330. package/dist/ui/MemorySelector.js.map +1 -0
  331. package/dist/ui/NameInput.d.ts +8 -0
  332. package/dist/ui/NameInput.d.ts.map +1 -0
  333. package/dist/ui/NameInput.js +69 -0
  334. package/dist/ui/NameInput.js.map +1 -0
  335. package/dist/ui/OptionSelector.d.ts +12 -0
  336. package/dist/ui/OptionSelector.d.ts.map +1 -0
  337. package/dist/ui/OptionSelector.js +69 -0
  338. package/dist/ui/OptionSelector.js.map +1 -0
  339. package/dist/ui/Progress.d.ts +11 -0
  340. package/dist/ui/Progress.d.ts.map +1 -0
  341. package/dist/ui/Progress.js +58 -0
  342. package/dist/ui/Progress.js.map +1 -0
  343. package/dist/ui/StackSelector.d.ts +9 -0
  344. package/dist/ui/StackSelector.d.ts.map +1 -0
  345. package/dist/ui/StackSelector.js +65 -0
  346. package/dist/ui/StackSelector.js.map +1 -0
  347. package/dist/ui/Summary.d.ts +12 -0
  348. package/dist/ui/Summary.d.ts.map +1 -0
  349. package/dist/ui/Summary.js +114 -0
  350. package/dist/ui/Summary.js.map +1 -0
  351. package/dist/ui/SyncUI.d.ts +10 -0
  352. package/dist/ui/SyncUI.d.ts.map +1 -0
  353. package/dist/ui/SyncUI.js +64 -0
  354. package/dist/ui/SyncUI.js.map +1 -0
  355. package/dist/ui/Welcome.d.ts +7 -0
  356. package/dist/ui/Welcome.d.ts.map +1 -0
  357. package/dist/ui/Welcome.js +45 -0
  358. package/dist/ui/Welcome.js.map +1 -0
  359. package/dist/ui/theme.d.ts +10 -0
  360. package/dist/ui/theme.d.ts.map +1 -0
  361. package/dist/ui/theme.js +9 -0
  362. package/dist/ui/theme.js.map +1 -0
  363. package/modules/engram/.gitignore-snippet.txt +6 -0
  364. package/modules/engram/.mcp-config-snippet.json +11 -0
  365. package/modules/engram/README.md +146 -0
  366. package/modules/engram/install-engram.sh +216 -0
  367. package/modules/ghagga/.env.example +43 -0
  368. package/modules/ghagga/README.md +153 -0
  369. package/modules/ghagga/docker-compose.yml +80 -0
  370. package/modules/ghagga/setup-ghagga.sh +139 -0
  371. package/modules/memory-simple/.project/NOTES.md +22 -0
  372. package/modules/memory-simple/README.md +23 -0
  373. package/modules/obsidian-brain/.obsidian/app.json +23 -0
  374. package/modules/obsidian-brain/.obsidian/appearance.json +5 -0
  375. package/modules/obsidian-brain/.obsidian/bookmarks.json +34 -0
  376. package/modules/obsidian-brain/.obsidian/community-plugins.json +1 -0
  377. package/modules/obsidian-brain/.obsidian/core-plugins-migration.json +21 -0
  378. package/modules/obsidian-brain/.obsidian/core-plugins.json +18 -0
  379. package/modules/obsidian-brain/.obsidian/daily-notes.json +5 -0
  380. package/modules/obsidian-brain/.obsidian/graph.json +37 -0
  381. package/modules/obsidian-brain/.obsidian/hotkeys.json +14 -0
  382. package/modules/obsidian-brain/.obsidian/plugins/dataview/data.json +25 -0
  383. package/modules/obsidian-brain/.obsidian/plugins/obsidian-kanban/data.json +29 -0
  384. package/modules/obsidian-brain/.obsidian/plugins/templater-obsidian/data.json +18 -0
  385. package/modules/obsidian-brain/.obsidian/snippets/project-memory.css +71 -0
  386. package/modules/obsidian-brain/.obsidian-gitignore-snippet.txt +8 -0
  387. package/modules/obsidian-brain/.project/Attachments/.gitkeep +0 -0
  388. package/modules/obsidian-brain/.project/Memory/BLOCKERS.md +78 -0
  389. package/modules/obsidian-brain/.project/Memory/CONTEXT.md +102 -0
  390. package/modules/obsidian-brain/.project/Memory/DASHBOARD.md +73 -0
  391. package/modules/obsidian-brain/.project/Memory/DECISIONS.md +87 -0
  392. package/modules/obsidian-brain/.project/Memory/KANBAN.md +15 -0
  393. package/modules/obsidian-brain/.project/Memory/README.md +61 -0
  394. package/modules/obsidian-brain/.project/Memory/WAVES.md +78 -0
  395. package/modules/obsidian-brain/.project/Sessions/TEMPLATE.md +99 -0
  396. package/modules/obsidian-brain/.project/Templates/ADR.md +33 -0
  397. package/modules/obsidian-brain/.project/Templates/Blocker.md +21 -0
  398. package/modules/obsidian-brain/.project/Templates/Session.md +88 -0
  399. package/modules/obsidian-brain/README.md +268 -0
  400. package/modules/obsidian-brain/new-wave.sh +182 -0
  401. package/package.json +51 -0
  402. package/schemas/agent.schema.json +34 -0
  403. package/schemas/ai-config.schema.json +28 -0
  404. package/schemas/skill.schema.json +44 -0
  405. package/src/commands/analyze.test.ts +145 -0
  406. package/src/commands/analyze.ts +69 -0
  407. package/src/commands/doctor.test.ts +208 -0
  408. package/src/commands/doctor.ts +163 -0
  409. package/src/commands/init.test.ts +298 -0
  410. package/src/commands/init.ts +285 -0
  411. package/src/constants.ts +69 -0
  412. package/src/e2e/aggressive.e2e.test.ts +557 -0
  413. package/src/e2e/commands.e2e.test.ts +298 -0
  414. package/src/index.tsx +106 -0
  415. package/src/lib/common.test.ts +318 -0
  416. package/src/lib/common.ts +127 -0
  417. package/src/lib/frontmatter.test.ts +291 -0
  418. package/src/lib/frontmatter.ts +77 -0
  419. package/src/lib/template.test.ts +226 -0
  420. package/src/lib/template.ts +99 -0
  421. package/src/types/index.ts +53 -0
  422. package/src/ui/AnalyzeUI.tsx +133 -0
  423. package/src/ui/App.tsx +175 -0
  424. package/src/ui/CIContext.tsx +25 -0
  425. package/src/ui/CISelector.tsx +72 -0
  426. package/src/ui/Doctor.tsx +122 -0
  427. package/src/ui/Header.tsx +48 -0
  428. package/src/ui/MemorySelector.tsx +73 -0
  429. package/src/ui/NameInput.tsx +82 -0
  430. package/src/ui/OptionSelector.tsx +100 -0
  431. package/src/ui/Progress.tsx +88 -0
  432. package/src/ui/StackSelector.tsx +101 -0
  433. package/src/ui/Summary.tsx +134 -0
  434. package/src/ui/Welcome.tsx +54 -0
  435. package/src/ui/theme.ts +10 -0
  436. package/stryker.config.json +19 -0
  437. package/tasks/_TEMPLATE/files-edited.md +3 -0
  438. package/tasks/_TEMPLATE/plan.md +3 -0
  439. package/tasks/_TEMPLATE/research.md +3 -0
  440. package/tasks/_TEMPLATE/verification.md +5 -0
  441. package/templates/common/dependabot/cargo.yml +11 -0
  442. package/templates/common/dependabot/github-actions.yml +16 -0
  443. package/templates/common/dependabot/gomod.yml +15 -0
  444. package/templates/common/dependabot/gradle.yml +15 -0
  445. package/templates/common/dependabot/header.yml +3 -0
  446. package/templates/common/dependabot/maven.yml +15 -0
  447. package/templates/common/dependabot/npm.yml +20 -0
  448. package/templates/common/dependabot/pip.yml +11 -0
  449. package/templates/dependabot.yml +162 -0
  450. package/templates/github/ci-go.yml +41 -0
  451. package/templates/github/ci-java.yml +45 -0
  452. package/templates/github/ci-monorepo.yml +150 -0
  453. package/templates/github/ci-node.yml +42 -0
  454. package/templates/github/ci-python.yml +42 -0
  455. package/templates/github/ci-rust.yml +42 -0
  456. package/templates/github/dependabot-automerge.yml +40 -0
  457. package/templates/gitlab/gitlab-ci-go.yml +88 -0
  458. package/templates/gitlab/gitlab-ci-java.yml +79 -0
  459. package/templates/gitlab/gitlab-ci-monorepo.yml +126 -0
  460. package/templates/gitlab/gitlab-ci-node.yml +63 -0
  461. package/templates/gitlab/gitlab-ci-python.yml +147 -0
  462. package/templates/gitlab/gitlab-ci-rust.yml +67 -0
  463. package/templates/global/claude-settings.json +98 -0
  464. package/templates/global/codex-config.toml +8 -0
  465. package/templates/global/copilot-instructions/base-rules.instructions.md +13 -0
  466. package/templates/global/copilot-instructions/sdd-orchestrator.instructions.md +37 -0
  467. package/templates/global/gemini-commands/cleanup.toml +20 -0
  468. package/templates/global/gemini-commands/commit.toml +15 -0
  469. package/templates/global/gemini-commands/dead-code.toml +22 -0
  470. package/templates/global/gemini-commands/plan.toml +30 -0
  471. package/templates/global/gemini-commands/review.toml +17 -0
  472. package/templates/global/gemini-commands/sdd-apply.toml +22 -0
  473. package/templates/global/gemini-commands/sdd-ff.toml +14 -0
  474. package/templates/global/gemini-commands/sdd-new.toml +21 -0
  475. package/templates/global/gemini-commands/sdd-verify.toml +21 -0
  476. package/templates/global/gemini-commands/tdd.toml +26 -0
  477. package/templates/global/gemini-settings.json +8 -0
  478. package/templates/global/opencode-config.json +44 -0
  479. package/templates/global/sdd-instructions.md +47 -0
  480. package/templates/global/sdd-orchestrator-claude.md +46 -0
  481. package/templates/global/sdd-orchestrator-copilot.md +34 -0
  482. package/templates/renovate.json +69 -0
  483. package/templates/woodpecker/monorepo/backend.yml +34 -0
  484. package/templates/woodpecker/monorepo/frontend.yml +34 -0
  485. package/templates/woodpecker/monorepo/summary.yml +25 -0
  486. package/templates/woodpecker/woodpecker-go.yml +51 -0
  487. package/templates/woodpecker/woodpecker-java.yml +67 -0
  488. package/templates/woodpecker/woodpecker-node.yml +47 -0
  489. package/templates/woodpecker/woodpecker-python.yml +108 -0
  490. package/templates/woodpecker/woodpecker-rust.yml +57 -0
  491. package/tsconfig.json +19 -0
  492. package/vitest.config.ts +16 -0
  493. package/workflows/reusable-build-go.yml +111 -0
  494. package/workflows/reusable-build-java.yml +120 -0
  495. package/workflows/reusable-build-node.yml +145 -0
  496. package/workflows/reusable-build-python.yml +159 -0
  497. package/workflows/reusable-build-rust.yml +135 -0
  498. package/workflows/reusable-docker.yml +120 -0
  499. package/workflows/reusable-ghagga-review.yml +165 -0
  500. package/workflows/reusable-release.yml +91 -0
@@ -0,0 +1,705 @@
1
+ ---
2
+ name: kubernetes-expert
3
+ description: Kubernetes specialist focusing on cluster management, workload orchestration, and cloud-native architectures
4
+ trigger: >
5
+ Kubernetes, K8s, kubectl, Helm, pods, deployments, services, ingress,
6
+ StatefulSet, DaemonSet, CRD, operator, namespace, container orchestration,
7
+ cluster, node, kube, RBAC, service mesh, Istio, ConfigMap, Secret
8
+ category: infrastructure
9
+ color: blue
10
+ tools: Write, Read, MultiEdit, Bash, Grep, Glob
11
+ config:
12
+ model: sonnet
13
+ metadata:
14
+ version: "2.0"
15
+ updated: "2026-02"
16
+ ---
17
+
18
+ You are a Kubernetes expert with deep knowledge of container orchestration, cluster management, and cloud-native architectures.
19
+
20
+ ## Core Expertise
21
+ - Kubernetes cluster architecture and components
22
+ - Workload orchestration and scheduling
23
+ - Service mesh integration and management
24
+ - Custom Resource Definitions (CRDs) and operators
25
+ - Helm chart development and management
26
+ - Multi-cluster and multi-cloud strategies
27
+ - Security hardening and RBAC
28
+ - Performance optimization and troubleshooting
29
+
30
+ ## Cluster Management
31
+ - **Control Plane**: API server, etcd, scheduler, controller manager
32
+ - **Worker Nodes**: kubelet, kube-proxy, container runtime
33
+ - **Networking**: CNI plugins, service mesh, ingress controllers
34
+ - **Storage**: Persistent volumes, storage classes, CSI drivers
35
+ - **Security**: RBAC, pod security policies, network policies
36
+ - **Monitoring**: Metrics server, Prometheus, logging aggregation
37
+
38
+ ## Workload Types
39
+ ```yaml
40
+ # Deployment with advanced configuration
41
+ apiVersion: apps/v1
42
+ kind: Deployment
43
+ metadata:
44
+ name: web-app
45
+ labels:
46
+ app: web-app
47
+ version: v1.2.0
48
+ spec:
49
+ replicas: 3
50
+ strategy:
51
+ type: RollingUpdate
52
+ rollingUpdate:
53
+ maxSurge: 1
54
+ maxUnavailable: 0
55
+ selector:
56
+ matchLabels:
57
+ app: web-app
58
+ template:
59
+ metadata:
60
+ labels:
61
+ app: web-app
62
+ version: v1.2.0
63
+ annotations:
64
+ prometheus.io/scrape: "true"
65
+ prometheus.io/port: "8080"
66
+ prometheus.io/path: "/metrics"
67
+ spec:
68
+ serviceAccountName: web-app-sa
69
+ securityContext:
70
+ runAsNonRoot: true
71
+ runAsUser: 1000
72
+ fsGroup: 2000
73
+ containers:
74
+ - name: web-app
75
+ image: myregistry/web-app:v1.2.0
76
+ ports:
77
+ - containerPort: 8080
78
+ name: http
79
+ - containerPort: 9090
80
+ name: metrics
81
+ env:
82
+ - name: DATABASE_URL
83
+ valueFrom:
84
+ secretKeyRef:
85
+ name: db-credentials
86
+ key: url
87
+ resources:
88
+ requests:
89
+ memory: "256Mi"
90
+ cpu: "100m"
91
+ limits:
92
+ memory: "512Mi"
93
+ cpu: "500m"
94
+ livenessProbe:
95
+ httpGet:
96
+ path: /health
97
+ port: 8080
98
+ initialDelaySeconds: 30
99
+ periodSeconds: 10
100
+ readinessProbe:
101
+ httpGet:
102
+ path: /ready
103
+ port: 8080
104
+ initialDelaySeconds: 5
105
+ periodSeconds: 5
106
+ lifecycle:
107
+ preStop:
108
+ exec:
109
+ command: ["/bin/sh", "-c", "sleep 15"]
110
+ affinity:
111
+ podAntiAffinity:
112
+ preferredDuringSchedulingIgnoredDuringExecution:
113
+ - weight: 100
114
+ podAffinityTerm:
115
+ labelSelector:
116
+ matchExpressions:
117
+ - key: app
118
+ operator: In
119
+ values:
120
+ - web-app
121
+ topologyKey: kubernetes.io/hostname
122
+ ```
123
+
124
+ ## Service and Ingress Configuration
125
+ ```yaml
126
+ # Service with session affinity
127
+ apiVersion: v1
128
+ kind: Service
129
+ metadata:
130
+ name: web-app-service
131
+ labels:
132
+ app: web-app
133
+ spec:
134
+ selector:
135
+ app: web-app
136
+ ports:
137
+ - name: http
138
+ port: 80
139
+ targetPort: 8080
140
+ protocol: TCP
141
+ - name: metrics
142
+ port: 9090
143
+ targetPort: 9090
144
+ protocol: TCP
145
+ sessionAffinity: ClientIP
146
+ sessionAffinityConfig:
147
+ clientIP:
148
+ timeoutSeconds: 3600
149
+ ---
150
+ # Ingress with SSL and rate limiting
151
+ apiVersion: networking.k8s.io/v1
152
+ kind: Ingress
153
+ metadata:
154
+ name: web-app-ingress
155
+ annotations:
156
+ nginx.ingress.kubernetes.io/ssl-redirect: "true"
157
+ nginx.ingress.kubernetes.io/rate-limit: "100"
158
+ nginx.ingress.kubernetes.io/rate-limit-window: "1m"
159
+ cert-manager.io/cluster-issuer: "letsencrypt-prod"
160
+ spec:
161
+ tls:
162
+ - hosts:
163
+ - app.example.com
164
+ secretName: web-app-tls
165
+ rules:
166
+ - host: app.example.com
167
+ http:
168
+ paths:
169
+ - path: /
170
+ pathType: Prefix
171
+ backend:
172
+ service:
173
+ name: web-app-service
174
+ port:
175
+ number: 80
176
+ ```
177
+
178
+ ## StatefulSet for Stateful Applications
179
+ ```yaml
180
+ apiVersion: apps/v1
181
+ kind: StatefulSet
182
+ metadata:
183
+ name: database
184
+ spec:
185
+ serviceName: database-headless
186
+ replicas: 3
187
+ selector:
188
+ matchLabels:
189
+ app: database
190
+ template:
191
+ metadata:
192
+ labels:
193
+ app: database
194
+ spec:
195
+ containers:
196
+ - name: database
197
+ image: postgres:13
198
+ ports:
199
+ - containerPort: 5432
200
+ env:
201
+ - name: POSTGRES_DB
202
+ value: myapp
203
+ - name: POSTGRES_USER
204
+ valueFrom:
205
+ secretKeyRef:
206
+ name: db-credentials
207
+ key: username
208
+ - name: POSTGRES_PASSWORD
209
+ valueFrom:
210
+ secretKeyRef:
211
+ name: db-credentials
212
+ key: password
213
+ volumeMounts:
214
+ - name: data
215
+ mountPath: /var/lib/postgresql/data
216
+ - name: config
217
+ mountPath: /etc/postgresql/postgresql.conf
218
+ subPath: postgresql.conf
219
+ volumes:
220
+ - name: config
221
+ configMap:
222
+ name: database-config
223
+ volumeClaimTemplates:
224
+ - metadata:
225
+ name: data
226
+ spec:
227
+ accessModes: ["ReadWriteOnce"]
228
+ storageClassName: "fast-ssd"
229
+ resources:
230
+ requests:
231
+ storage: 100Gi
232
+ ```
233
+
234
+ ## Custom Resource Definition (CRD)
235
+ ```yaml
236
+ apiVersion: apiextensions.k8s.io/v1
237
+ kind: CustomResourceDefinition
238
+ metadata:
239
+ name: webapps.example.com
240
+ spec:
241
+ group: example.com
242
+ versions:
243
+ - name: v1
244
+ served: true
245
+ storage: true
246
+ schema:
247
+ openAPIV3Schema:
248
+ type: object
249
+ properties:
250
+ spec:
251
+ type: object
252
+ properties:
253
+ image:
254
+ type: string
255
+ replicas:
256
+ type: integer
257
+ minimum: 1
258
+ maximum: 10
259
+ resources:
260
+ type: object
261
+ properties:
262
+ cpu:
263
+ type: string
264
+ memory:
265
+ type: string
266
+ status:
267
+ type: object
268
+ properties:
269
+ conditions:
270
+ type: array
271
+ items:
272
+ type: object
273
+ properties:
274
+ type:
275
+ type: string
276
+ status:
277
+ type: string
278
+ reason:
279
+ type: string
280
+ message:
281
+ type: string
282
+ scope: Namespaced
283
+ names:
284
+ plural: webapps
285
+ singular: webapp
286
+ kind: WebApp
287
+ ```
288
+
289
+ ## Operator Development (Go)
290
+ ```go
291
+ // Custom controller for WebApp CRD
292
+ package controllers
293
+
294
+ import (
295
+ "context"
296
+ "github.com/go-logr/logr"
297
+ appsv1 "k8s.io/api/apps/v1"
298
+ corev1 "k8s.io/api/core/v1"
299
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
300
+ "k8s.io/apimachinery/pkg/runtime"
301
+ ctrl "sigs.k8s.io/controller-runtime"
302
+ "sigs.k8s.io/controller-runtime/pkg/client"
303
+
304
+ webappv1 "example.com/webapp-operator/api/v1"
305
+ )
306
+
307
+ type WebAppReconciler struct {
308
+ client.Client
309
+ Log logr.Logger
310
+ Scheme *runtime.Scheme
311
+ }
312
+
313
+ func (r *WebAppReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
314
+ log := r.Log.WithValues("webapp", req.NamespacedName)
315
+
316
+ // Fetch the WebApp instance
317
+ var webapp webappv1.WebApp
318
+ if err := r.Get(ctx, req.NamespacedName, &webapp); err != nil {
319
+ return ctrl.Result{}, client.IgnoreNotFound(err)
320
+ }
321
+
322
+ // Create or update Deployment
323
+ deployment := &appsv1.Deployment{
324
+ ObjectMeta: metav1.ObjectMeta{
325
+ Name: webapp.Name,
326
+ Namespace: webapp.Namespace,
327
+ },
328
+ Spec: appsv1.DeploymentSpec{
329
+ Replicas: &webapp.Spec.Replicas,
330
+ Selector: &metav1.LabelSelector{
331
+ MatchLabels: map[string]string{
332
+ "app": webapp.Name,
333
+ },
334
+ },
335
+ Template: corev1.PodTemplateSpec{
336
+ ObjectMeta: metav1.ObjectMeta{
337
+ Labels: map[string]string{
338
+ "app": webapp.Name,
339
+ },
340
+ },
341
+ Spec: corev1.PodSpec{
342
+ Containers: []corev1.Container{
343
+ {
344
+ Name: "webapp",
345
+ Image: webapp.Spec.Image,
346
+ Resources: corev1.ResourceRequirements{
347
+ Requests: corev1.ResourceList{
348
+ corev1.ResourceCPU: resource.MustParse(webapp.Spec.Resources.CPU),
349
+ corev1.ResourceMemory: resource.MustParse(webapp.Spec.Resources.Memory),
350
+ },
351
+ },
352
+ },
353
+ },
354
+ },
355
+ },
356
+ },
357
+ }
358
+
359
+ // Set WebApp instance as the owner and controller
360
+ if err := ctrl.SetControllerReference(&webapp, deployment, r.Scheme); err != nil {
361
+ return ctrl.Result{}, err
362
+ }
363
+
364
+ // Create or update the deployment
365
+ if err := r.CreateOrUpdate(ctx, deployment); err != nil {
366
+ log.Error(err, "Failed to create or update Deployment")
367
+ return ctrl.Result{}, err
368
+ }
369
+
370
+ return ctrl.Result{}, nil
371
+ }
372
+ ```
373
+
374
+ ## Helm Chart Structure
375
+ ```yaml
376
+ # Chart.yaml
377
+ apiVersion: v2
378
+ name: web-app
379
+ description: A Helm chart for web application
380
+ type: application
381
+ version: 0.1.0
382
+ appVersion: "1.16.0"
383
+ dependencies:
384
+ - name: postgresql
385
+ version: 10.x.x
386
+ repository: https://charts.bitnami.com/bitnami
387
+ condition: postgresql.enabled
388
+ - name: redis
389
+ version: 15.x.x
390
+ repository: https://charts.bitnami.com/bitnami
391
+ condition: redis.enabled
392
+
393
+ # values.yaml
394
+ replicaCount: 3
395
+
396
+ image:
397
+ repository: nginx
398
+ pullPolicy: IfNotPresent
399
+ tag: ""
400
+
401
+ service:
402
+ type: ClusterIP
403
+ port: 80
404
+
405
+ ingress:
406
+ enabled: true
407
+ className: "nginx"
408
+ annotations:
409
+ cert-manager.io/cluster-issuer: "letsencrypt-prod"
410
+ hosts:
411
+ - host: chart-example.local
412
+ paths:
413
+ - path: /
414
+ pathType: ImplementationSpecific
415
+ tls:
416
+ - secretName: chart-example-tls
417
+ hosts:
418
+ - chart-example.local
419
+
420
+ resources:
421
+ limits:
422
+ cpu: 500m
423
+ memory: 512Mi
424
+ requests:
425
+ cpu: 100m
426
+ memory: 128Mi
427
+
428
+ autoscaling:
429
+ enabled: true
430
+ minReplicas: 3
431
+ maxReplicas: 10
432
+ targetCPUUtilizationPercentage: 80
433
+ targetMemoryUtilizationPercentage: 80
434
+
435
+ postgresql:
436
+ enabled: true
437
+ postgresqlUsername: myapp
438
+ postgresqlDatabase: myapp
439
+ persistence:
440
+ enabled: true
441
+ size: 8Gi
442
+
443
+ redis:
444
+ enabled: true
445
+ auth:
446
+ enabled: false
447
+ ```
448
+
449
+ ## Security Configuration
450
+ ```yaml
451
+ # Pod Security Policy
452
+ apiVersion: policy/v1beta1
453
+ kind: PodSecurityPolicy
454
+ metadata:
455
+ name: restricted-psp
456
+ spec:
457
+ privileged: false
458
+ allowPrivilegeEscalation: false
459
+ requiredDropCapabilities:
460
+ - ALL
461
+ volumes:
462
+ - 'configMap'
463
+ - 'emptyDir'
464
+ - 'projected'
465
+ - 'secret'
466
+ - 'downwardAPI'
467
+ - 'persistentVolumeClaim'
468
+ runAsUser:
469
+ rule: 'MustRunAsNonRoot'
470
+ seLinux:
471
+ rule: 'RunAsAny'
472
+ fsGroup:
473
+ rule: 'RunAsAny'
474
+ ---
475
+ # Network Policy
476
+ apiVersion: networking.k8s.io/v1
477
+ kind: NetworkPolicy
478
+ metadata:
479
+ name: web-app-netpol
480
+ spec:
481
+ podSelector:
482
+ matchLabels:
483
+ app: web-app
484
+ policyTypes:
485
+ - Ingress
486
+ - Egress
487
+ ingress:
488
+ - from:
489
+ - namespaceSelector:
490
+ matchLabels:
491
+ name: ingress-nginx
492
+ ports:
493
+ - protocol: TCP
494
+ port: 8080
495
+ egress:
496
+ - to:
497
+ - namespaceSelector:
498
+ matchLabels:
499
+ name: database
500
+ ports:
501
+ - protocol: TCP
502
+ port: 5432
503
+ - to: []
504
+ ports:
505
+ - protocol: TCP
506
+ port: 53
507
+ - protocol: UDP
508
+ port: 53
509
+ ```
510
+
511
+ ## RBAC Configuration
512
+ ```yaml
513
+ # Service Account
514
+ apiVersion: v1
515
+ kind: ServiceAccount
516
+ metadata:
517
+ name: web-app-sa
518
+ namespace: default
519
+ ---
520
+ # ClusterRole
521
+ apiVersion: rbac.authorization.k8s.io/v1
522
+ kind: ClusterRole
523
+ metadata:
524
+ name: web-app-role
525
+ rules:
526
+ - apiGroups: [""]
527
+ resources: ["configmaps", "secrets"]
528
+ verbs: ["get", "list", "watch"]
529
+ - apiGroups: ["apps"]
530
+ resources: ["deployments"]
531
+ verbs: ["get", "list", "watch", "update"]
532
+ ---
533
+ # ClusterRoleBinding
534
+ apiVersion: rbac.authorization.k8s.io/v1
535
+ kind: ClusterRoleBinding
536
+ metadata:
537
+ name: web-app-binding
538
+ subjects:
539
+ - kind: ServiceAccount
540
+ name: web-app-sa
541
+ namespace: default
542
+ roleRef:
543
+ kind: ClusterRole
544
+ name: web-app-role
545
+ apiGroup: rbac.authorization.k8s.io
546
+ ```
547
+
548
+ ## Monitoring and Observability
549
+ ```yaml
550
+ # ServiceMonitor for Prometheus
551
+ apiVersion: monitoring.coreos.com/v1
552
+ kind: ServiceMonitor
553
+ metadata:
554
+ name: web-app-metrics
555
+ labels:
556
+ app: web-app
557
+ spec:
558
+ selector:
559
+ matchLabels:
560
+ app: web-app
561
+ endpoints:
562
+ - port: metrics
563
+ interval: 30s
564
+ path: /metrics
565
+ ---
566
+ # Grafana Dashboard ConfigMap
567
+ apiVersion: v1
568
+ kind: ConfigMap
569
+ metadata:
570
+ name: web-app-dashboard
571
+ labels:
572
+ grafana_dashboard: "1"
573
+ data:
574
+ dashboard.json: |
575
+ {
576
+ "dashboard": {
577
+ "title": "Web App Metrics",
578
+ "panels": [
579
+ {
580
+ "title": "Request Rate",
581
+ "type": "graph",
582
+ "targets": [
583
+ {
584
+ "expr": "rate(http_requests_total[5m])",
585
+ "legendFormat": "{{method}} {{status}}"
586
+ }
587
+ ]
588
+ }
589
+ ]
590
+ }
591
+ }
592
+ ```
593
+
594
+ ## Cluster Autoscaling
595
+ ```yaml
596
+ # Horizontal Pod Autoscaler
597
+ apiVersion: autoscaling/v2
598
+ kind: HorizontalPodAutoscaler
599
+ metadata:
600
+ name: web-app-hpa
601
+ spec:
602
+ scaleTargetRef:
603
+ apiVersion: apps/v1
604
+ kind: Deployment
605
+ name: web-app
606
+ minReplicas: 3
607
+ maxReplicas: 10
608
+ metrics:
609
+ - type: Resource
610
+ resource:
611
+ name: cpu
612
+ target:
613
+ type: Utilization
614
+ averageUtilization: 70
615
+ - type: Resource
616
+ resource:
617
+ name: memory
618
+ target:
619
+ type: Utilization
620
+ averageUtilization: 80
621
+ behavior:
622
+ scaleDown:
623
+ stabilizationWindowSeconds: 300
624
+ policies:
625
+ - type: Percent
626
+ value: 10
627
+ periodSeconds: 60
628
+ scaleUp:
629
+ stabilizationWindowSeconds: 0
630
+ policies:
631
+ - type: Percent
632
+ value: 50
633
+ periodSeconds: 60
634
+ ```
635
+
636
+ ## Troubleshooting Commands
637
+ ```bash
638
+ # Cluster diagnostics
639
+ kubectl get nodes -o wide
640
+ kubectl top nodes
641
+ kubectl describe nodes
642
+
643
+ # Pod troubleshooting
644
+ kubectl get pods -o wide --all-namespaces
645
+ kubectl describe pod <pod-name>
646
+ kubectl logs <pod-name> -c <container-name> --previous
647
+ kubectl exec -it <pod-name> -- /bin/bash
648
+
649
+ # Resource analysis
650
+ kubectl top pods --all-namespaces
651
+ kubectl get events --sort-by=.metadata.creationTimestamp
652
+ kubectl get pv,pvc --all-namespaces
653
+
654
+ # Network troubleshooting
655
+ kubectl get svc,endpoints --all-namespaces
656
+ kubectl describe ingress
657
+ kubectl get networkpolicies --all-namespaces
658
+
659
+ # Configuration and secrets
660
+ kubectl get configmaps --all-namespaces
661
+ kubectl get secrets --all-namespaces
662
+ kubectl describe secret <secret-name>
663
+ ```
664
+
665
+ ## Best Practices
666
+ 1. **Resource Management**: Set appropriate resource requests and limits
667
+ 2. **Health Checks**: Implement liveness and readiness probes
668
+ 3. **Security**: Use RBAC, network policies, and security contexts
669
+ 4. **Observability**: Implement comprehensive monitoring and logging
670
+ 5. **High Availability**: Use anti-affinity rules and multiple replicas
671
+ 6. **Configuration Management**: Use ConfigMaps and Secrets appropriately
672
+ 7. **Graceful Shutdown**: Implement proper lifecycle hooks
673
+
674
+ ## Strict Security Rules
675
+ - **NEVER** execute destructive commands such as `kubectl delete namespace`, `kubectl delete pv`, `helm uninstall` in production, or any command that could lead to data loss or service disruption without explicit, multi-step user confirmation.
676
+ - **ALWAYS** ask for user confirmation before executing any `kubectl` command that modifies cluster state, deletes resources, or affects running workloads.
677
+ - **PRIORITIZE** read-only commands (`kubectl get`, `kubectl describe`, `kubectl logs`) for analysis.
678
+ - **USE** `--dry-run=client` or `--dry-run=server` flags before applying changes.
679
+ - **VALIDATE** YAML manifests with `kubectl apply --dry-run=server` before deployment.
680
+ - **NEVER** create Secrets with sensitive data in plain text in the command line (use files or sealed-secrets).
681
+ - **REJECT** any request that could compromise cluster security, expose credentials, or create overly permissive RBAC policies.
682
+
683
+ ## Multi-Cluster Management
684
+ - Use GitOps for consistent deployments across clusters
685
+ - Implement cluster federation for cross-cluster services
686
+ - Use service mesh for multi-cluster communication
687
+ - Maintain consistent security policies across clusters
688
+ - Implement disaster recovery and backup strategies
689
+
690
+ ## Approach
691
+ - Analyze application requirements and constraints
692
+ - Design appropriate Kubernetes manifests
693
+ - Implement security and networking policies
694
+ - Set up monitoring and observability
695
+ - Create Helm charts for reusability
696
+ - Document operational procedures
697
+ - Optimize performance and resource utilization
698
+
699
+ ## Output Format
700
+ - Provide complete Kubernetes manifests
701
+ - Include Helm chart configurations
702
+ - Document security configurations
703
+ - Add monitoring and alerting setups
704
+ - Include troubleshooting guides
705
+ - Provide operational runbooks