@synapta/skills 0.1.0 → 0.1.2

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 (353) hide show
  1. package/dist/index.js +11 -4
  2. package/package.json +3 -4
  3. package/skills/ATTRIBUTION.md +80 -0
  4. package/skills/accessibility-audit/SKILL.md +325 -0
  5. package/skills/accessibility-audit/reference/wcag-checklist.md +103 -0
  6. package/skills/apns-notifier/SKILL.md +86 -0
  7. package/skills/approval-policy-enforcer/SKILL.md +66 -0
  8. package/skills/apps-sdk-builder/LICENSE.txt +201 -0
  9. package/skills/apps-sdk-builder/SKILL.md +328 -0
  10. package/skills/apps-sdk-builder/agents/openai.yaml +13 -0
  11. package/skills/apps-sdk-builder/references/app-archetypes.md +132 -0
  12. package/skills/apps-sdk-builder/references/apps-sdk-docs-workflow.md +135 -0
  13. package/skills/apps-sdk-builder/references/interactive-state-sync-patterns.md +113 -0
  14. package/skills/apps-sdk-builder/references/repo-contract-and-validation.md +93 -0
  15. package/skills/apps-sdk-builder/references/search-fetch-standard.md +67 -0
  16. package/skills/apps-sdk-builder/references/upstream-example-workflow.md +79 -0
  17. package/skills/apps-sdk-builder/references/window-openai-patterns.md +79 -0
  18. package/skills/apps-sdk-builder/scripts/scaffold_node_ext_apps.mjs +606 -0
  19. package/skills/architecture-selector/SKILL.md +64 -0
  20. package/skills/backlog-planner/SKILL.md +68 -0
  21. package/skills/carplay-entitlement-checker/SKILL.md +82 -0
  22. package/skills/concept-discovery/SKILL.md +517 -0
  23. package/skills/concept-discovery/assets/sample-analysis.json +81 -0
  24. package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
  25. package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
  26. package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
  27. package/skills/concept-discovery/references/framework-patterns.md +228 -0
  28. package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
  29. package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
  30. package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
  31. package/skills/dast-zap/SKILL.md +453 -0
  32. package/skills/dast-zap/assets/.gitkeep +9 -0
  33. package/skills/dast-zap/assets/github_action.yml +207 -0
  34. package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
  35. package/skills/dast-zap/assets/zap_automation.yaml +196 -0
  36. package/skills/dast-zap/assets/zap_context.xml +192 -0
  37. package/skills/dast-zap/references/EXAMPLE.md +40 -0
  38. package/skills/dast-zap/references/api_testing_guide.md +475 -0
  39. package/skills/dast-zap/references/authentication_guide.md +431 -0
  40. package/skills/dast-zap/references/false_positive_handling.md +427 -0
  41. package/skills/dast-zap/references/owasp_mapping.md +255 -0
  42. package/skills/dep-sbom-scan/SKILL.md +466 -0
  43. package/skills/deploy-cloudflare/SKILL.md +930 -0
  44. package/skills/deploy-docker/SKILL.md +55 -0
  45. package/skills/deploy-fly/SKILL.md +228 -0
  46. package/skills/deploy-k8s/SKILL.md +108 -0
  47. package/skills/deploy-k8s/assets/logo.png +0 -0
  48. package/skills/deploy-k8s/docs/README.md +29 -0
  49. package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
  50. package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
  51. package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
  52. package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
  53. package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
  54. package/skills/deploy-k8s/docs/book.json +16 -0
  55. package/skills/deploy-k8s/docs/community/changelog.md +34 -0
  56. package/skills/deploy-k8s/docs/community/contributing.md +67 -0
  57. package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
  58. package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
  59. package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
  60. package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
  61. package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
  62. package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
  63. package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
  64. package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
  65. package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
  66. package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
  67. package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
  68. package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
  69. package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
  70. package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
  71. package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
  72. package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
  73. package/skills/deploy-k8s/docs/guides/observability.md +67 -0
  74. package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
  75. package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
  76. package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
  77. package/skills/deploy-k8s/docs/package-lock.json +2892 -0
  78. package/skills/deploy-k8s/docs/package.json +13 -0
  79. package/skills/deploy-k8s/references/api-drift.md +298 -0
  80. package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
  81. package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
  82. package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
  83. package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
  84. package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
  85. package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
  86. package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
  87. package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
  88. package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
  89. package/skills/deploy-k8s/references/examples-bad.md +282 -0
  90. package/skills/deploy-k8s/references/examples-good.md +440 -0
  91. package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
  92. package/skills/deploy-k8s/references/helm-patterns.md +203 -0
  93. package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
  94. package/skills/deploy-k8s/references/job-patterns.md +120 -0
  95. package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
  96. package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
  97. package/skills/deploy-k8s/references/network-exposure.md +481 -0
  98. package/skills/deploy-k8s/references/observability.md +302 -0
  99. package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
  100. package/skills/deploy-k8s/references/resource-starvation.md +374 -0
  101. package/skills/deploy-k8s/references/security-hardening.md +209 -0
  102. package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
  103. package/skills/deploy-k8s/references/storage-and-state.md +330 -0
  104. package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
  105. package/skills/deploy-railway/SKILL.md +235 -0
  106. package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
  107. package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
  108. package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
  109. package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
  110. package/skills/deploy-railway/references/analyze-db.md +344 -0
  111. package/skills/deploy-railway/references/configure.md +309 -0
  112. package/skills/deploy-railway/references/deploy.md +195 -0
  113. package/skills/deploy-railway/references/operate.md +214 -0
  114. package/skills/deploy-railway/references/request.md +248 -0
  115. package/skills/deploy-railway/references/setup.md +312 -0
  116. package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
  117. package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
  118. package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
  119. package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
  120. package/skills/deploy-railway/scripts/dal.py +671 -0
  121. package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
  122. package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
  123. package/skills/deploy-railway/scripts/railway-api.sh +52 -0
  124. package/skills/deploy-ssh/SKILL.md +91 -0
  125. package/skills/deploy-vercel/SKILL.md +304 -0
  126. package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
  127. package/skills/deploy-vercel/resources/deploy.sh +301 -0
  128. package/skills/docs-runbooks/SKILL.md +399 -0
  129. package/skills/drive-status-renderer/SKILL.md +62 -0
  130. package/skills/iac-scan/SKILL.md +680 -0
  131. package/skills/iac-scan/assets/.gitkeep +9 -0
  132. package/skills/iac-scan/assets/checkov_config.yaml +94 -0
  133. package/skills/iac-scan/assets/github_actions.yml +199 -0
  134. package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
  135. package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
  136. package/skills/iac-scan/references/EXAMPLE.md +40 -0
  137. package/skills/iac-scan/references/compliance_mapping.md +237 -0
  138. package/skills/iac-scan/references/custom_policies.md +460 -0
  139. package/skills/iac-scan/references/suppression_guide.md +431 -0
  140. package/skills/incident-briefing/SKILL.md +66 -0
  141. package/skills/incident-triage/SKILL.md +481 -0
  142. package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
  143. package/skills/mcp-builder/SKILL.md +244 -0
  144. package/skills/mcp-builder/reference/evaluation.md +602 -0
  145. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  146. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  147. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  148. package/skills/mcp-builder/scripts/connections.py +151 -0
  149. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  150. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  151. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  152. package/skills/mobile-pairing/SKILL.md +52 -0
  153. package/skills/ops-sre/SKILL.md +297 -0
  154. package/skills/playwright-qa/LICENSE.txt +201 -0
  155. package/skills/playwright-qa/NOTICE.txt +14 -0
  156. package/skills/playwright-qa/SKILL.md +156 -0
  157. package/skills/playwright-qa/agents/openai.yaml +6 -0
  158. package/skills/playwright-qa/assets/playwright-small.svg +3 -0
  159. package/skills/playwright-qa/assets/playwright.png +0 -0
  160. package/skills/playwright-qa/references/cli.md +116 -0
  161. package/skills/playwright-qa/references/workflows.md +95 -0
  162. package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
  163. package/skills/release-publish/SKILL.md +85 -0
  164. package/skills/repo-bootstrap/SKILL.md +92 -0
  165. package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
  166. package/skills/repo-bootstrap/assets/root-thin.md +141 -0
  167. package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
  168. package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
  169. package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
  170. package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
  171. package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
  172. package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
  173. package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
  174. package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
  175. package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
  176. package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
  177. package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
  178. package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
  179. package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
  180. package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
  181. package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
  182. package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
  183. package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
  184. package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
  185. package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
  186. package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
  187. package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
  188. package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
  189. package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
  190. package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
  191. package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
  192. package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
  193. package/skills/repo-bootstrap/checkpoints.yaml +279 -0
  194. package/skills/repo-bootstrap/evals/evals.json +385 -0
  195. package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
  196. package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
  197. package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
  198. package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
  199. package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
  200. package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
  201. package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
  202. package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
  203. package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
  204. package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
  205. package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
  206. package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
  207. package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
  208. package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
  209. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
  210. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
  211. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
  212. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
  213. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
  214. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
  215. package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
  216. package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
  217. package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
  218. package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
  219. package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
  220. package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
  221. package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
  222. package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
  223. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
  224. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
  225. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
  226. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
  227. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
  228. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
  229. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
  230. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
  231. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
  232. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
  233. package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
  234. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
  235. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
  236. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
  237. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
  238. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
  239. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
  240. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
  241. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
  242. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
  243. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
  244. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
  245. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
  246. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
  247. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
  248. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
  249. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
  250. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
  251. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
  252. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
  253. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
  254. package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
  255. package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
  256. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
  257. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
  258. package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
  259. package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
  260. package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
  261. package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
  262. package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
  263. package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
  264. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
  265. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
  266. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
  267. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
  268. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
  269. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
  270. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
  271. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
  272. package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
  273. package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
  274. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
  275. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
  276. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
  277. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
  278. package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
  279. package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
  280. package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
  281. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
  282. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
  283. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
  284. package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
  285. package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
  286. package/skills/repo-bootstrap/references/output-structure.md +124 -0
  287. package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
  288. package/skills/repo-bootstrap/references/verification-guide.md +137 -0
  289. package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
  290. package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
  291. package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
  292. package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
  293. package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
  294. package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
  295. package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
  296. package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
  297. package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
  298. package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
  299. package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
  300. package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
  301. package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
  302. package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
  303. package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
  304. package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
  305. package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
  306. package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
  307. package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
  308. package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
  309. package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
  310. package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
  311. package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
  312. package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
  313. package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
  314. package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
  315. package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
  316. package/skills/schema-api-contracts/SKILL.md +56 -0
  317. package/skills/secret-hygiene/SKILL.md +511 -0
  318. package/skills/secret-hygiene/assets/.gitkeep +9 -0
  319. package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
  320. package/skills/secret-hygiene/assets/config-custom.toml +178 -0
  321. package/skills/secret-hygiene/assets/config-strict.toml +48 -0
  322. package/skills/secret-hygiene/assets/github-action.yml +181 -0
  323. package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
  324. package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
  325. package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
  326. package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
  327. package/skills/secret-hygiene/references/detection_rules.md +276 -0
  328. package/skills/secret-hygiene/references/false_positives.md +598 -0
  329. package/skills/secret-hygiene/references/remediation_guide.md +530 -0
  330. package/skills/stack-selector/SKILL.md +56 -0
  331. package/skills/telegram-control/SKILL.md +110 -0
  332. package/skills/telegram-control/references/architecture.md +184 -0
  333. package/skills/telegram-control/references/convex.md +173 -0
  334. package/skills/telegram-control/references/error_handling.md +212 -0
  335. package/skills/telegram-control/references/initial_setup.md +165 -0
  336. package/skills/telegram-control/references/telegram_api.md +156 -0
  337. package/skills/telegram-control/scripts/cancel_message.ts +53 -0
  338. package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
  339. package/skills/telegram-control/scripts/logger.ts +121 -0
  340. package/skills/telegram-control/scripts/proxy-util.ts +11 -0
  341. package/skills/telegram-control/scripts/schedule_message.ts +216 -0
  342. package/skills/telegram-control/scripts/send_message.ts +115 -0
  343. package/skills/telegram-control/scripts/setup.ts +185 -0
  344. package/skills/telegram-control/scripts/types.ts +75 -0
  345. package/skills/telegram-control/scripts/view_history.ts +74 -0
  346. package/skills/test-strategy/SKILL.md +352 -0
  347. package/skills/threat-model/SKILL.md +303 -0
  348. package/skills/threat-model/examples/example-output.md +196 -0
  349. package/skills/threat-model/template.md +96 -0
  350. package/skills/ts-lint/SKILL.md +80 -0
  351. package/skills/ui-flow/SKILL.md +668 -0
  352. package/skills/voice-command-router/SKILL.md +51 -0
  353. package/skills/widget-live-activity-sync/SKILL.md +66 -0
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "kubernetes-skill-docs",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "build": "honkit build",
7
+ "serve": "honkit serve"
8
+ },
9
+ "devDependencies": {
10
+ "honkit": "^6.1.6",
11
+ "gitbook-plugin-search-pro": "^2.0.2"
12
+ }
13
+ }
@@ -0,0 +1,298 @@
1
+ # API Drift
2
+
3
+ **Directive:** When generating any Kubernetes manifest, Helm chart, or Kustomize overlay, ALWAYS use the current stable API version for the target cluster version. Never assume an API version is correct from training data -- verify it. LLMs hallucinate deprecated and removed API versions frequently.
4
+
5
+ ## When to use
6
+
7
+ Consult this reference whenever the task involves:
8
+ - Generating any Kubernetes manifest from scratch
9
+ - Upgrading manifests for a newer cluster version
10
+ - Writing or reviewing Helm templates
11
+ - Writing or reviewing Kustomize overlays and patches
12
+ - Validating manifests before applying to a cluster
13
+
14
+ ## Symptoms of API drift
15
+
16
+ | Symptom | Cause |
17
+ |---|---|
18
+ | `error: unable to recognize: no matches for kind "Ingress" in version "extensions/v1beta1"` | Using a removed apiVersion |
19
+ | `Warning: policy/v1beta1 PodDisruptionBudget is deprecated` | Using deprecated but not yet removed apiVersion |
20
+ | Fields silently ignored after upgrade | Field existed in beta, removed or renamed in stable |
21
+ | `unknown field "spec.hard"` in `kubectl apply` | Structural schema validation rejects unknown fields in stable APIs |
22
+ | Helm template renders but `kubectl apply` fails | Template produces syntactically valid YAML with wrong apiVersion |
23
+
24
+ ## Root causes
25
+
26
+ 1. LLM training data contains outdated manifests from blog posts, Stack Overflow, and old documentation.
27
+ 2. Copy-paste from tutorials written for Kubernetes 1.18-1.21 era.
28
+ 3. Helm charts pinned to old API versions without `Capabilities` checks.
29
+ 4. Not running schema validation against the target cluster version.
30
+ 5. Confusing "deprecated" (still works, prints warning) with "removed" (hard failure).
31
+
32
+ ## The API deprecation lifecycle
33
+
34
+ Kubernetes follows a predictable pattern:
35
+
36
+ 1. **Beta API introduced** (e.g., `extensions/v1beta1 Ingress` in 1.1)
37
+ 2. **Stable API introduced** (e.g., `networking.k8s.io/v1 Ingress` in 1.19)
38
+ 3. **Beta API deprecated** (same release as stable introduction, or one release later)
39
+ 4. **Beta API removed** (usually 2-3 minor versions after deprecation, per policy)
40
+
41
+ Once removed, the API server rejects manifests using that version. There is no graceful fallback.
42
+
43
+ ## Major API migrations LLMs frequently get wrong
44
+
45
+ ### Ingress: extensions/v1beta1 and networking.k8s.io/v1beta1 -> networking.k8s.io/v1
46
+
47
+ - Removed in: **Kubernetes 1.22**
48
+ - Key structural changes in v1:
49
+ - `spec.backend` renamed to `spec.defaultBackend`
50
+ - `serviceName` and `servicePort` replaced with `service.name` and `service.port.number` (or `service.port.name`)
51
+ - `pathType` is now **required** on every path (was optional in beta)
52
+ - `ingressClassName` replaces the `kubernetes.io/ingress.class` annotation
53
+
54
+ ### PodDisruptionBudget: policy/v1beta1 -> policy/v1
55
+
56
+ - Removed in: **Kubernetes 1.25**
57
+ - Key changes in v1:
58
+ - `spec.selector` is now immutable after creation
59
+ - Unhealthy pod eviction policy field added (`spec.unhealthyPodEvictionPolicy`)
60
+
61
+ ### HorizontalPodAutoscaler: autoscaling/v2beta1 and v2beta2 -> autoscaling/v2
62
+
63
+ - v2beta1 removed in: **Kubernetes 1.25**
64
+ - v2beta2 removed in: **Kubernetes 1.26**
65
+ - Key changes in v2:
66
+ - `targetAverageUtilization` moved under `target.averageUtilization`
67
+ - `metrics[].type` uses `ContainerResource` for per-container scaling
68
+ - `behavior` field for scale-up/scale-down policies is stable
69
+
70
+ ### FlowSchema/PriorityLevelConfiguration: flowcontrol.apiserver.k8s.io/v1beta1 -> v1beta3 -> v1
71
+
72
+ - v1beta1 removed in: **Kubernetes 1.26**
73
+ - v1beta2 removed in: **Kubernetes 1.29**
74
+ - v1beta3 removed in: **Kubernetes 1.32**
75
+
76
+ ### Other common migrations
77
+
78
+ | Resource | Old API | Current Stable API | Removed in |
79
+ |---|---|---|---|
80
+ | CronJob | batch/v1beta1 | batch/v1 | 1.25 |
81
+ | EndpointSlice | discovery.k8s.io/v1beta1 | discovery.k8s.io/v1 | 1.25 |
82
+ | CSIDriver, CSINode | storage.k8s.io/v1beta1 | storage.k8s.io/v1 | 1.22 |
83
+ | CertificateSigningRequest | certificates.k8s.io/v1beta1 | certificates.k8s.io/v1 | 1.22 |
84
+ | TokenReview | authentication.k8s.io/v1beta1 | authentication.k8s.io/v1 | 1.22 |
85
+
86
+ ## API version quick reference (current stable)
87
+
88
+ | Resource | apiVersion |
89
+ |---|---|
90
+ | Deployment, ReplicaSet, StatefulSet, DaemonSet | apps/v1 |
91
+ | Service, ConfigMap, Secret, Pod, Namespace | v1 |
92
+ | Ingress | networking.k8s.io/v1 |
93
+ | NetworkPolicy | networking.k8s.io/v1 |
94
+ | HorizontalPodAutoscaler | autoscaling/v2 |
95
+ | PodDisruptionBudget | policy/v1 |
96
+ | CronJob, Job | batch/v1 |
97
+ | ServiceAccount | v1 |
98
+ | Role, ClusterRole, RoleBinding, ClusterRoleBinding | rbac.authorization.k8s.io/v1 |
99
+ | PersistentVolumeClaim, PersistentVolume | v1 |
100
+ | StorageClass | storage.k8s.io/v1 |
101
+ | IngressClass | networking.k8s.io/v1 |
102
+ | EndpointSlice | discovery.k8s.io/v1 |
103
+ | ValidatingWebhookConfiguration | admissionregistration.k8s.io/v1 |
104
+
105
+ ## Schema validation
106
+
107
+ ### Structural vs semantic validity
108
+
109
+ A manifest can be valid YAML and even match the general shape of a Kubernetes resource while still being wrong:
110
+ - **Structural validity**: "Does this YAML parse? Do the fields exist in the schema?" -- caught by `kubeconform` or `--dry-run=server`.
111
+ - **Semantic validity**: "Does this make sense? Does the referenced Service exist? Is the port correct?" -- only caught at apply time or with policy tools.
112
+
113
+ ### kubeconform usage
114
+
115
+ ```bash
116
+ # Validate against a specific Kubernetes version
117
+ kubeconform -kubernetes-version 1.29.0 -strict manifests/
118
+
119
+ # Validate with CRD schemas (e.g., from datreeio/CRDs-catalog)
120
+ kubeconform -kubernetes-version 1.29.0 \
121
+ -schema-location default \
122
+ -schema-location 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json' \
123
+ manifests/
124
+
125
+ # Validate Helm output
126
+ helm template my-release ./chart | kubeconform -kubernetes-version 1.29.0 -strict
127
+ ```
128
+
129
+ ### kubectl dry-run
130
+
131
+ - `--dry-run=client`: validates locally against the client's built-in schema. Fast but may be outdated.
132
+ - `--dry-run=server`: sends the request to the API server for validation without persisting. More accurate -- catches unknown fields, CRD validation, admission webhooks.
133
+
134
+ ```bash
135
+ # Server-side dry-run (preferred)
136
+ kubectl apply -f manifest.yaml --dry-run=server
137
+
138
+ # Client-side dry-run (no cluster needed)
139
+ kubectl apply -f manifest.yaml --dry-run=client
140
+ ```
141
+
142
+ ## Helm-specific drift errors
143
+
144
+ - **Broken Go templates**: `{{ .Values.replicas }}` fails if `replicas` is not defined in `values.yaml`. Always use `{{ .Values.replicas | default 3 }}` or check with `{{ if .Values.replicas }}`.
145
+ - **API version in templates**: Use `Capabilities.APIVersions` to branch on cluster version:
146
+
147
+ ```yaml
148
+ {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
149
+ apiVersion: networking.k8s.io/v1
150
+ {{- else }}
151
+ apiVersion: networking.k8s.io/v1beta1
152
+ {{- end }}
153
+ ```
154
+
155
+ - **Missing Chart.yaml fields**: `apiVersion: v2` is required for Helm 3. `type: application` (default) or `type: library` must be valid.
156
+
157
+ ## Kustomize-specific drift errors
158
+
159
+ - **Invalid patch target**: the `target` in a strategic merge patch must specify the correct `group`, `version`, `kind`. A wrong API group silently fails to match.
160
+ - **Wrong resource in kustomization.yaml**: listing a file with a removed apiVersion causes `kustomize build` to fail.
161
+
162
+ ## Patterns and examples
163
+
164
+ ### GOOD: Manifest with correct current apiVersions
165
+
166
+ ```yaml
167
+ apiVersion: networking.k8s.io/v1
168
+ kind: Ingress
169
+ metadata:
170
+ name: web-ingress
171
+ namespace: frontend
172
+ spec:
173
+ ingressClassName: nginx # not annotation
174
+ rules:
175
+ - host: app.example.com
176
+ http:
177
+ paths:
178
+ - path: /
179
+ pathType: Prefix # required in v1
180
+ backend:
181
+ service:
182
+ name: web-frontend
183
+ port:
184
+ number: 8080 # nested under service.port
185
+ ---
186
+ apiVersion: autoscaling/v2
187
+ kind: HorizontalPodAutoscaler
188
+ metadata:
189
+ name: web-frontend-hpa
190
+ namespace: frontend
191
+ spec:
192
+ scaleTargetRef:
193
+ apiVersion: apps/v1
194
+ kind: Deployment
195
+ name: web-frontend
196
+ minReplicas: 3
197
+ maxReplicas: 20
198
+ metrics:
199
+ - type: Resource
200
+ resource:
201
+ name: cpu
202
+ target:
203
+ type: Utilization
204
+ averageUtilization: 70
205
+ behavior:
206
+ scaleDown:
207
+ stabilizationWindowSeconds: 300
208
+ ```
209
+
210
+ ### BAD: Manifest mixing deprecated and removed apiVersions
211
+
212
+ ```yaml
213
+ # DO NOT DO THIS
214
+ apiVersion: extensions/v1beta1 # REMOVED in 1.22
215
+ kind: Ingress
216
+ metadata:
217
+ name: web-ingress
218
+ annotations:
219
+ kubernetes.io/ingress.class: nginx # replaced by spec.ingressClassName
220
+ spec:
221
+ backend: # renamed to defaultBackend in v1
222
+ serviceName: web-frontend # flat fields replaced by nested service block
223
+ servicePort: 8080
224
+ rules:
225
+ - host: app.example.com
226
+ http:
227
+ paths:
228
+ - path: /
229
+ # missing pathType (required in v1)
230
+ backend:
231
+ serviceName: web-frontend
232
+ servicePort: 8080
233
+ ---
234
+ apiVersion: autoscaling/v2beta1 # REMOVED in 1.25
235
+ kind: HorizontalPodAutoscaler
236
+ metadata:
237
+ name: web-frontend-hpa
238
+ spec:
239
+ scaleTargetRef:
240
+ apiVersion: apps/v1
241
+ kind: Deployment
242
+ name: web-frontend
243
+ minReplicas: 3
244
+ maxReplicas: 20
245
+ metrics:
246
+ - type: Resource
247
+ resource:
248
+ name: cpu
249
+ targetAverageUtilization: 70 # moved to target.averageUtilization in v2
250
+ ```
251
+
252
+ ## LLM mistake checklist
253
+
254
+ Before finalizing any Kubernetes manifest, verify each item:
255
+
256
+ - [ ] Every `apiVersion` is checked against the quick reference table above, not generated from memory
257
+ - [ ] Ingress uses `networking.k8s.io/v1`, NOT `extensions/v1beta1` or `networking.k8s.io/v1beta1`
258
+ - [ ] Ingress paths include `pathType` (required in v1)
259
+ - [ ] Ingress backend uses nested `service.name` / `service.port.number`, not flat `serviceName` / `servicePort`
260
+ - [ ] HPA uses `autoscaling/v2`, NOT `v2beta1` or `v2beta2`
261
+ - [ ] PodDisruptionBudget uses `policy/v1`, NOT `policy/v1beta1`
262
+ - [ ] CronJob uses `batch/v1`, NOT `batch/v1beta1`
263
+ - [ ] No `extensions/v1beta1` appears anywhere in the output
264
+ - [ ] If targeting a specific cluster version, all apiVersions are validated against that version
265
+ - [ ] Helm templates use `Capabilities.APIVersions` checks when supporting multiple cluster versions
266
+ - [ ] `kubeconform` or `--dry-run=server` validation is included in the workflow
267
+
268
+ ## Verification commands
269
+
270
+ ```bash
271
+ # Scan for deprecated APIs in manifests using pluto
272
+ pluto detect-files -d manifests/
273
+ pluto detect-helm -owide
274
+
275
+ # Scan for deprecated APIs in a running cluster
276
+ pluto detect-api-resources --cluster
277
+
278
+ # Validate manifests against a specific Kubernetes version
279
+ kubeconform -kubernetes-version 1.29.0 -strict -summary manifests/
280
+
281
+ # Validate Helm-rendered output
282
+ helm template my-release ./chart -f values.yaml | kubeconform -kubernetes-version 1.29.0 -strict
283
+
284
+ # Check which API versions the current cluster supports
285
+ kubectl api-versions | sort
286
+
287
+ # Check if a specific API version exists
288
+ kubectl api-versions | grep networking.k8s.io
289
+
290
+ # Server-side dry-run to validate against live cluster schema
291
+ kubectl apply -f manifest.yaml --dry-run=server --validate=true
292
+
293
+ # List resources with deprecated API annotations (if using migration tools)
294
+ kubectl get all -A -o json | jq -r '.items[] | select(.apiVersion | test("beta")) | .apiVersion + " " + .kind + " " + .metadata.namespace + "/" + .metadata.name'
295
+
296
+ # Validate Kustomize output
297
+ kustomize build overlays/production | kubeconform -kubernetes-version 1.29.0 -strict
298
+ ```
@@ -0,0 +1,70 @@
1
+ # AKS Patterns
2
+
3
+ **Load this reference when detected:** AKS, Azure Kubernetes Service, Microsoft Entra Workload ID, Azure CNI, Azure CNI Overlay, kubenet, Application Gateway Ingress Controller, AGIC, Azure Disk CSI, Azure Files CSI, Azure Blob CSI, or Azure Policy for AKS.
4
+
5
+ ## Why this matters
6
+
7
+ AKS has Azure-specific identity, networking, ingress, and storage behavior. Generic Kubernetes YAML often deploys but fails to authenticate, route, or mount volumes correctly. Do not load this file for non-Azure clusters.
8
+
9
+ ## Identity
10
+
11
+ Prefer Microsoft Entra Workload ID for pod access to Azure resources.
12
+
13
+ - Enable OIDC issuer and workload identity at the cluster level before relying on pod identity.
14
+ - Add `azure.workload.identity/use: "true"` to pods that require workload identity.
15
+ - Annotate the Kubernetes ServiceAccount with `azure.workload.identity/client-id`.
16
+ - Restart pods after ServiceAccount identity annotation changes.
17
+ - Do not recommend the deprecated Microsoft Entra pod-managed identity path for new work.
18
+ - Never place Azure client secrets in Kubernetes Secrets unless the user explicitly accepts that risk and there is no workload-identity option.
19
+
20
+ ## Networking
21
+
22
+ Capture AKS network plugin and outbound path before generating network-sensitive manifests.
23
+
24
+ - Azure CNI Overlay is the strategic path for many new clusters and for kubenet migration.
25
+ - kubenet is scheduled for AKS retirement on March 31, 2028; do not recommend it for new long-lived clusters.
26
+ - NetworkPolicy behavior depends on the selected policy engine and network plugin.
27
+ - For private clusters, verify DNS, egress, and private endpoint assumptions before recommending public endpoints.
28
+
29
+ ## Ingress and Load Balancing
30
+
31
+ Choose the controller deliberately.
32
+
33
+ - AGIC and Application Gateway for Containers are Azure-specific; do not use nginx annotations with them.
34
+ - If using AGIC, verify Application Gateway SKU, managed identity permissions, subnet placement, and controller add-on status.
35
+ - Use Service type `LoadBalancer` for L4 exposure, but include internal/public load balancer annotations only when the requirement is explicit.
36
+ - Prefer Ingress or Gateway patterns for HTTP routing rather than exposing every workload through a public LoadBalancer.
37
+
38
+ ## Storage
39
+
40
+ Choose Azure storage by access pattern.
41
+
42
+ - Azure Disk CSI: block storage for RWO-style workloads.
43
+ - Azure Files CSI: shared SMB/NFS file storage for RWX workloads.
44
+ - Azure Blob CSI: object-backed mount use cases; do not treat it as a generic database volume.
45
+ - Validate StorageClass names from the cluster instead of inventing them.
46
+
47
+ ## Validation
48
+
49
+ - `kubectl apply --dry-run=server -f <manifest>`
50
+ - `kubectl describe pod <name>` for workload identity webhook injection and projected token issues
51
+ - `kubectl get ingress,svc -A` and controller logs for AGIC/Application Gateway issues
52
+ - `kubectl get storageclass` before selecting Azure Disk/File/Blob classes
53
+ - `az aks show --name <cluster> --resource-group <rg>` when identity, OIDC issuer, or network plugin is unknown
54
+
55
+ ## LLM Mistake Checklist
56
+
57
+ - Using deprecated pod-managed identity for new AKS work.
58
+ - Missing the required workload identity pod label.
59
+ - Forgetting that ServiceAccount annotation changes require pod restart.
60
+ - Recommending kubenet for new long-lived clusters.
61
+ - Mixing nginx annotations into AGIC-managed Ingress resources.
62
+ - Treating Azure Disk as RWX storage.
63
+ - Assuming StorageClass names without checking the cluster.
64
+
65
+ ## Grounding Sources
66
+
67
+ - Microsoft Entra Workload ID for AKS: https://learn.microsoft.com/en-us/azure/aks/workload-identity-overview
68
+ - Deploy Workload ID on AKS: https://learn.microsoft.com/en-us/azure/aks/workload-identity-deploy-cluster
69
+ - AKS kubenet retirement notice: https://learn.microsoft.com/en-us/azure/aks/configure-kubenet
70
+ - AKS CSI storage drivers: https://learn.microsoft.com/en-us/azure/aks/azure-blob-csi
@@ -0,0 +1,79 @@
1
+ # EKS Patterns
2
+
3
+ **Load this reference when detected:** EKS, AWS, IRSA, EKS Pod Identity, AWS Load Balancer Controller, AWS VPC CNI, EBS CSI, EFS CSI, Karpenter, or EKS add-ons.
4
+
5
+ ## Why this matters
6
+
7
+ EKS looks like upstream Kubernetes until identity, load balancing, pod networking, storage, and node provisioning enter the design. Those surfaces are AWS-integrated and high-risk for LLM drift. Do not load this file for non-AWS clusters.
8
+
9
+ ## Identity
10
+
11
+ Prefer short-lived pod identity over static AWS keys.
12
+
13
+ - Use one IAM role per workload or controller responsibility.
14
+ - Prefer EKS Pod Identity where the cluster and organization support it; otherwise use IRSA.
15
+ - For IRSA, annotate the Kubernetes ServiceAccount with `eks.amazonaws.com/role-arn`.
16
+ - For EKS Pod Identity, keep the ServiceAccount name and namespace stable because the pod identity association is bound to them.
17
+ - Set `automountServiceAccountToken: false` for workloads that do not call AWS or Kubernetes APIs.
18
+ - Never put AWS access keys in Secrets, ConfigMaps, Helm values, or CI artifacts.
19
+
20
+ ## Load Balancing
21
+
22
+ Choose the controller by traffic type.
23
+
24
+ - HTTP/HTTPS: use Ingress or Gateway resources managed by the AWS Load Balancer Controller.
25
+ - L4 TCP/UDP: use `Service` type `LoadBalancer` with NLB-specific annotations only when required.
26
+ - Do not copy nginx, GCE, or AGIC annotations into AWS resources.
27
+ - Verify subnet tags and security group rules when a load balancer is requested but not provisioned.
28
+ - Treat controller annotations as version-sensitive; check the installed controller version before generating advanced annotations.
29
+
30
+ ## Storage
31
+
32
+ Use the CSI driver that matches access semantics.
33
+
34
+ - EBS CSI: block storage, normally ReadWriteOnce, tied to zone scheduling.
35
+ - EFS CSI: shared file storage for ReadWriteMany workloads.
36
+ - For StatefulSets using EBS, include topology-aware scheduling expectations and do not assume a pod can move across zones without volume implications.
37
+ - Use `VolumeSnapshot` only when the snapshot CRDs and driver support are installed.
38
+
39
+ ## Networking
40
+
41
+ AWS VPC CNI assigns pod IPs from the VPC address space.
42
+
43
+ - Watch subnet/IP exhaustion before increasing replicas or max pods.
44
+ - NetworkPolicy requires a compatible implementation; do not assume policy enforcement solely because the cluster is EKS.
45
+ - Security Groups for Pods change the boundary from node-level to pod-level security; use only when enabled and needed.
46
+ - Private clusters need VPC endpoints for controllers that call AWS APIs.
47
+
48
+ ## Karpenter and Node Provisioning
49
+
50
+ When Karpenter is detected:
51
+
52
+ - Use current Karpenter APIs for `NodePool` and provider-specific node classes.
53
+ - Keep workload scheduling constraints explicit: requests, tolerations, node selectors, topology spread, and disruption sensitivity.
54
+ - Set consolidation/disruption behavior deliberately for stateful or latency-sensitive workloads.
55
+ - Do not let Karpenter compensate for missing resource requests; bad requests produce bad capacity decisions.
56
+
57
+ ## Validation
58
+
59
+ - `kubectl apply --dry-run=server -f <manifest>`
60
+ - `kubectl describe service <name>` or `kubectl describe ingress <name>` for load balancer events
61
+ - `kubectl describe sa <name> -n <namespace>` for IRSA annotation checks
62
+ - `kubectl get pods -o wide` to verify zone/node placement for EBS-backed StatefulSets
63
+ - Check AWS controller logs for IAM denial, subnet discovery, or security group errors
64
+
65
+ ## LLM Mistake Checklist
66
+
67
+ - Recommending static AWS keys in Kubernetes Secrets.
68
+ - Mixing IRSA annotations with EKS Pod Identity assumptions without naming which mechanism is used.
69
+ - Generating nginx or GCE Ingress annotations for AWS Load Balancer Controller.
70
+ - Treating EBS as ReadWriteMany storage.
71
+ - Omitting resource requests while also recommending Karpenter.
72
+ - Assuming NetworkPolicy is enforced without confirming the CNI/policy engine.
73
+ - Forgetting that ServiceAccount namespace/name changes can break identity bindings.
74
+
75
+ ## Grounding Sources
76
+
77
+ - AWS EKS identity best practices: https://docs.aws.amazon.com/eks/latest/best-practices/identity-and-access-management.html
78
+ - EKS Pod Identity: https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html
79
+ - EKS Karpenter best practices: https://docs.aws.amazon.com/eks/latest/best-practices/karpenter.html
@@ -0,0 +1,71 @@
1
+ # GitOps Controllers
2
+
3
+ **Load this reference when detected:** Argo CD, Application, ApplicationSet, sync waves, Flux, GitRepository, Kustomization, HelmRepository, HelmRelease, OCIRepository, GitOps, Config Sync, OpenShift GitOps, or pull-based deployment.
4
+
5
+ ## Why this matters
6
+
7
+ GitOps controllers continuously reconcile desired state. A manifest that is safe with manual `kubectl apply` can become unsafe when pruning, self-healing, sync ordering, generated Applications, or Helm remediation are enabled. Do not load this file for ordinary one-off YAML unless a GitOps controller is involved.
8
+
9
+ ## Shared GitOps Rules
10
+
11
+ - Treat Git as the source of truth; avoid manual `kubectl edit` remediation except as an emergency action followed by a Git fix.
12
+ - Separate application source code from environment configuration when auditability matters.
13
+ - Pin chart versions, OCI artifact digests, or Git revisions for production.
14
+ - Keep cluster-scoped resources, CRDs, namespaces, and policy baselines in clearly owned bootstrap layers.
15
+ - Use narrow controller credentials; the controller should not have cluster-admin by default.
16
+ - Pruning and self-healing are powerful; enable them only with rollback and ownership boundaries.
17
+
18
+ ## Argo CD
19
+
20
+ When generating Argo CD resources:
21
+
22
+ - Use `argoproj.io` API versions that match the installed Argo CD version.
23
+ - Use sync waves for resource ordering within a sync operation; do not assume they order unrelated independent Applications.
24
+ - Use hooks only for idempotent Jobs or lifecycle actions with deletion policies.
25
+ - Keep `ignoreDifferences` narrow and documented; never hide broad drift to make sync look green.
26
+ - For ApplicationSet, verify generator inputs and destination namespaces before enabling automated sync.
27
+ - Avoid auto-prune for production bootstrap unless ownership is explicit and reviewed.
28
+
29
+ ## Flux
30
+
31
+ When generating Flux resources:
32
+
33
+ - Distinguish Flux `Kustomization` CRs from `kustomization.yaml` files.
34
+ - Use `dependsOn` for explicit ordering between Flux Kustomizations or HelmReleases.
35
+ - Configure remediation for Helm install/upgrade failures instead of leaving infinite broken retries.
36
+ - Keep `interval`, `timeout`, `retryInterval`, and `prune` deliberate per environment.
37
+ - Use SOPS or an approved external secret flow for encrypted secrets in Git.
38
+ - Validate source references: `GitRepository`, `OCIRepository`, `HelmRepository`, and chart names.
39
+
40
+ ## Rollout and Drift Controls
41
+
42
+ - For CRD upgrades, apply CRDs before custom resources and avoid deleting CRDs while CRs exist.
43
+ - For generated namespaces, verify ownership before pruning.
44
+ - For multi-cluster GitOps, make cluster selection explicit and review generator filters.
45
+ - For Helm under GitOps, render locally and validate the rendered manifests before relying on controller reconciliation.
46
+
47
+ ## Validation
48
+
49
+ - Argo CD: `argocd app diff <app>` and `argocd app get <app>`
50
+ - Argo CD in-cluster: `kubectl get applications,applicationsets -A`
51
+ - Flux: `flux diff kustomization <name> --path <path>` where available
52
+ - Flux: `flux reconcile kustomization <name> --with-source` for controlled reconciliation
53
+ - Generic: render Helm/Kustomize output and run `kubectl apply --dry-run=server`
54
+
55
+ ## LLM Mistake Checklist
56
+
57
+ - Enabling automated prune/self-heal without ownership boundaries.
58
+ - Assuming sync waves order separate Applications or separate controllers.
59
+ - Creating hooks that are not idempotent.
60
+ - Using broad `ignoreDifferences` to mask real drift.
61
+ - Confusing Flux `Kustomization` CRs with Kustomize files.
62
+ - Omitting `dependsOn` for Flux resources that require ordering.
63
+ - Putting plaintext secrets in Git because GitOps needs declarative state.
64
+
65
+ ## Grounding Sources
66
+
67
+ - Argo CD best practices: https://argo-cd.readthedocs.io/en/stable/user-guide/best_practices/
68
+ - Argo CD sync phases and waves: https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/
69
+ - Argo CD ApplicationSet progressive syncs: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/
70
+ - Flux concepts: https://fluxcd.io/flux/concepts/
71
+ - Flux Helm controller: https://fluxcd.io/docs/components/helm/
@@ -0,0 +1,74 @@
1
+ # GKE Patterns
2
+
3
+ **Load this reference when detected:** GKE, Google Kubernetes Engine, Autopilot, Standard, Workload Identity Federation for GKE, GKE Dataplane V2, GCE Ingress, Cloud Load Balancing, Filestore CSI, Persistent Disk CSI, or Config Sync.
4
+
5
+ ## Why this matters
6
+
7
+ GKE guidance changes depending on Standard versus Autopilot, identity mode, dataplane, and Google Cloud load-balancing integration. Do not load this file for non-Google clusters.
8
+
9
+ ## Cluster Mode
10
+
11
+ Capture whether the cluster is Standard or Autopilot.
12
+
13
+ - Autopilot enforces stronger platform constraints and may reject or mutate unsupported pod settings.
14
+ - Avoid host access, privileged workloads, and node-level assumptions for Autopilot unless the user explicitly confirms support.
15
+ - In Standard clusters, node pools, taints, and workload placement are user-managed; include scheduling and upgrade safety controls.
16
+ - Do not generate DaemonSet or privileged-agent patterns for Autopilot without checking compatibility.
17
+
18
+ ## Workload Identity
19
+
20
+ Prefer Workload Identity Federation for GKE over service account JSON keys.
21
+
22
+ - Bind Kubernetes service accounts to Google Cloud IAM identities using the project and namespace/service account boundary.
23
+ - Never mount service account key files into pods for normal cloud API access.
24
+ - When NetworkPolicy is used with GKE Dataplane V2 and the workload needs Google Cloud auth, ensure egress to the metadata server is allowed.
25
+ - Keep ServiceAccount names stable because IAM bindings and manifests depend on them.
26
+
27
+ ## Networking and Ingress
28
+
29
+ Controller-specific behavior matters.
30
+
31
+ - Do not copy nginx, AWS ALB, or AGIC annotations into GCE Ingress resources.
32
+ - For Google Cloud Load Balancing, verify Service, backend, health check, and NEG expectations.
33
+ - Prefer Gateway API only when the target cluster has the required GKE Gateway controller and CRDs.
34
+ - For Dataplane V2, validate NetworkPolicy behavior against GKE documentation rather than assuming another CNI's semantics.
35
+
36
+ ## Storage
37
+
38
+ Choose storage by access pattern.
39
+
40
+ - Persistent Disk CSI: block storage for RWO-style workloads; account for zone or regional topology.
41
+ - Filestore CSI: shared file storage for RWX workloads.
42
+ - Do not assume volume snapshots are available until snapshot CRDs and the relevant CSI driver support are present.
43
+ - For StatefulSets, combine storage with topology spread and disruption controls.
44
+
45
+ ## Config Sync and Fleet Policy
46
+
47
+ When Config Sync or Anthos/Fleet policy is detected:
48
+
49
+ - Treat Git as the source of truth for managed resources.
50
+ - Avoid imperative `kubectl edit` or manual drift fixes in generated runbooks.
51
+ - Keep namespace and cluster-scoped resources in the repository structure expected by the platform team.
52
+
53
+ ## Validation
54
+
55
+ - `kubectl apply --dry-run=server -f <manifest>`
56
+ - `kubectl describe ingress <name>` for Google load balancer events
57
+ - `kubectl describe networkpolicy <name>` plus connectivity tests for Dataplane V2 behavior
58
+ - `kubectl get storageclass` before choosing PD or Filestore classes
59
+ - `gcloud container clusters describe <cluster> --region <region>` when cluster mode or Workload Identity status is unknown
60
+
61
+ ## LLM Mistake Checklist
62
+
63
+ - Recommending service account JSON keys instead of Workload Identity Federation.
64
+ - Generating privileged/host-level workloads for Autopilot without compatibility checks.
65
+ - Mixing nginx or AWS ALB annotations into GCE Ingress.
66
+ - Forgetting metadata-server egress when restrictive NetworkPolicies and GCP auth are both present.
67
+ - Treating zonal Persistent Disks as freely movable across zones.
68
+ - Assuming Gateway API support without confirming installed controller/CRDs.
69
+
70
+ ## Grounding Sources
71
+
72
+ - Workload Identity Federation for GKE: https://cloud.google.com/kubernetes-engine/docs/concepts/workload-identity
73
+ - GKE Dataplane V2: https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2
74
+ - Config Sync GitOps best practices: https://docs.cloud.google.com/kubernetes-engine/config-sync/docs/concepts/gitops-best-practices