@synapta/skills 0.1.1 → 0.2.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 (354) 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-deepener/SKILL.md +86 -0
  23. package/skills/concept-discovery/SKILL.md +517 -0
  24. package/skills/concept-discovery/assets/sample-analysis.json +81 -0
  25. package/skills/concept-discovery/expected_outputs/sample-enum-dictionary.md +25 -0
  26. package/skills/concept-discovery/expected_outputs/sample-page-user-list.md +83 -0
  27. package/skills/concept-discovery/expected_outputs/sample-prd-readme.md +43 -0
  28. package/skills/concept-discovery/references/framework-patterns.md +228 -0
  29. package/skills/concept-discovery/references/prd-quality-checklist.md +65 -0
  30. package/skills/concept-discovery/scripts/codebase_analyzer.py +732 -0
  31. package/skills/concept-discovery/scripts/prd_scaffolder.py +435 -0
  32. package/skills/dast-zap/SKILL.md +453 -0
  33. package/skills/dast-zap/assets/.gitkeep +9 -0
  34. package/skills/dast-zap/assets/github_action.yml +207 -0
  35. package/skills/dast-zap/assets/gitlab_ci.yml +226 -0
  36. package/skills/dast-zap/assets/zap_automation.yaml +196 -0
  37. package/skills/dast-zap/assets/zap_context.xml +192 -0
  38. package/skills/dast-zap/references/EXAMPLE.md +40 -0
  39. package/skills/dast-zap/references/api_testing_guide.md +475 -0
  40. package/skills/dast-zap/references/authentication_guide.md +431 -0
  41. package/skills/dast-zap/references/false_positive_handling.md +427 -0
  42. package/skills/dast-zap/references/owasp_mapping.md +255 -0
  43. package/skills/dep-sbom-scan/SKILL.md +466 -0
  44. package/skills/deploy-cloudflare/SKILL.md +930 -0
  45. package/skills/deploy-docker/SKILL.md +55 -0
  46. package/skills/deploy-fly/SKILL.md +228 -0
  47. package/skills/deploy-k8s/SKILL.md +108 -0
  48. package/skills/deploy-k8s/assets/logo.png +0 -0
  49. package/skills/deploy-k8s/docs/README.md +29 -0
  50. package/skills/deploy-k8s/docs/SUMMARY.md +56 -0
  51. package/skills/deploy-k8s/docs/advanced/token-efficiency.md +61 -0
  52. package/skills/deploy-k8s/docs/architecture/multi-tenancy.md +96 -0
  53. package/skills/deploy-k8s/docs/architecture/storage-and-state.md +102 -0
  54. package/skills/deploy-k8s/docs/architecture/workload-patterns.md +87 -0
  55. package/skills/deploy-k8s/docs/book.json +16 -0
  56. package/skills/deploy-k8s/docs/community/changelog.md +34 -0
  57. package/skills/deploy-k8s/docs/community/contributing.md +67 -0
  58. package/skills/deploy-k8s/docs/core-concepts/failure-modes.md +153 -0
  59. package/skills/deploy-k8s/docs/core-concepts/philosophy.md +83 -0
  60. package/skills/deploy-k8s/docs/core-concepts/workflow.md +124 -0
  61. package/skills/deploy-k8s/docs/examples/bad-patterns.md +47 -0
  62. package/skills/deploy-k8s/docs/examples/do-dont-checklist.md +37 -0
  63. package/skills/deploy-k8s/docs/examples/good-patterns.md +49 -0
  64. package/skills/deploy-k8s/docs/failure-modes/api-drift.md +104 -0
  65. package/skills/deploy-k8s/docs/failure-modes/fragile-rollouts.md +99 -0
  66. package/skills/deploy-k8s/docs/failure-modes/insecure-workload-defaults.md +80 -0
  67. package/skills/deploy-k8s/docs/failure-modes/network-exposure.md +98 -0
  68. package/skills/deploy-k8s/docs/failure-modes/privilege-sprawl.md +91 -0
  69. package/skills/deploy-k8s/docs/failure-modes/resource-starvation.md +85 -0
  70. package/skills/deploy-k8s/docs/getting-started/installation.md +152 -0
  71. package/skills/deploy-k8s/docs/getting-started/quick-start.md +115 -0
  72. package/skills/deploy-k8s/docs/guides/helm-patterns.md +71 -0
  73. package/skills/deploy-k8s/docs/guides/kustomize-patterns.md +65 -0
  74. package/skills/deploy-k8s/docs/guides/observability.md +67 -0
  75. package/skills/deploy-k8s/docs/guides/security-hardening.md +59 -0
  76. package/skills/deploy-k8s/docs/guides/validation-and-policy.md +66 -0
  77. package/skills/deploy-k8s/docs/integrations/mcp-integration.md +52 -0
  78. package/skills/deploy-k8s/docs/package-lock.json +2892 -0
  79. package/skills/deploy-k8s/docs/package.json +13 -0
  80. package/skills/deploy-k8s/references/api-drift.md +298 -0
  81. package/skills/deploy-k8s/references/conditional/aks-patterns.md +70 -0
  82. package/skills/deploy-k8s/references/conditional/eks-patterns.md +79 -0
  83. package/skills/deploy-k8s/references/conditional/gitops-controllers.md +71 -0
  84. package/skills/deploy-k8s/references/conditional/gke-patterns.md +74 -0
  85. package/skills/deploy-k8s/references/conditional/observability-stacks.md +80 -0
  86. package/skills/deploy-k8s/references/conditional/openshift-patterns.md +67 -0
  87. package/skills/deploy-k8s/references/daemonset-operator-patterns.md +155 -0
  88. package/skills/deploy-k8s/references/deployment-patterns.md +146 -0
  89. package/skills/deploy-k8s/references/do-dont-patterns.md +87 -0
  90. package/skills/deploy-k8s/references/examples-bad.md +282 -0
  91. package/skills/deploy-k8s/references/examples-good.md +440 -0
  92. package/skills/deploy-k8s/references/fragile-rollouts.md +303 -0
  93. package/skills/deploy-k8s/references/helm-patterns.md +203 -0
  94. package/skills/deploy-k8s/references/insecure-workload-defaults.md +300 -0
  95. package/skills/deploy-k8s/references/job-patterns.md +120 -0
  96. package/skills/deploy-k8s/references/kustomize-patterns.md +239 -0
  97. package/skills/deploy-k8s/references/multi-tenancy.md +343 -0
  98. package/skills/deploy-k8s/references/network-exposure.md +481 -0
  99. package/skills/deploy-k8s/references/observability.md +302 -0
  100. package/skills/deploy-k8s/references/privilege-sprawl.md +273 -0
  101. package/skills/deploy-k8s/references/resource-starvation.md +374 -0
  102. package/skills/deploy-k8s/references/security-hardening.md +209 -0
  103. package/skills/deploy-k8s/references/stateful-patterns.md +130 -0
  104. package/skills/deploy-k8s/references/storage-and-state.md +330 -0
  105. package/skills/deploy-k8s/references/validation-and-policy.md +242 -0
  106. package/skills/deploy-railway/SKILL.md +235 -0
  107. package/skills/deploy-railway/references/analyze-db-mongo.md +84 -0
  108. package/skills/deploy-railway/references/analyze-db-mysql.md +254 -0
  109. package/skills/deploy-railway/references/analyze-db-postgres.md +479 -0
  110. package/skills/deploy-railway/references/analyze-db-redis.md +208 -0
  111. package/skills/deploy-railway/references/analyze-db.md +344 -0
  112. package/skills/deploy-railway/references/configure.md +309 -0
  113. package/skills/deploy-railway/references/deploy.md +195 -0
  114. package/skills/deploy-railway/references/operate.md +214 -0
  115. package/skills/deploy-railway/references/request.md +248 -0
  116. package/skills/deploy-railway/references/setup.md +312 -0
  117. package/skills/deploy-railway/scripts/analyze-mongo.py +1549 -0
  118. package/skills/deploy-railway/scripts/analyze-mysql.py +1195 -0
  119. package/skills/deploy-railway/scripts/analyze-postgres.py +3058 -0
  120. package/skills/deploy-railway/scripts/analyze-redis.py +1090 -0
  121. package/skills/deploy-railway/scripts/dal.py +671 -0
  122. package/skills/deploy-railway/scripts/enable-pg-stats.py +170 -0
  123. package/skills/deploy-railway/scripts/pg-extensions.py +370 -0
  124. package/skills/deploy-railway/scripts/railway-api.sh +52 -0
  125. package/skills/deploy-ssh/SKILL.md +91 -0
  126. package/skills/deploy-vercel/SKILL.md +304 -0
  127. package/skills/deploy-vercel/resources/deploy-codex.sh +301 -0
  128. package/skills/deploy-vercel/resources/deploy.sh +301 -0
  129. package/skills/docs-runbooks/SKILL.md +399 -0
  130. package/skills/drive-status-renderer/SKILL.md +62 -0
  131. package/skills/iac-scan/SKILL.md +680 -0
  132. package/skills/iac-scan/assets/.gitkeep +9 -0
  133. package/skills/iac-scan/assets/checkov_config.yaml +94 -0
  134. package/skills/iac-scan/assets/github_actions.yml +199 -0
  135. package/skills/iac-scan/assets/gitlab_ci.yml +218 -0
  136. package/skills/iac-scan/assets/pre_commit_config.yaml +92 -0
  137. package/skills/iac-scan/references/EXAMPLE.md +40 -0
  138. package/skills/iac-scan/references/compliance_mapping.md +237 -0
  139. package/skills/iac-scan/references/custom_policies.md +460 -0
  140. package/skills/iac-scan/references/suppression_guide.md +431 -0
  141. package/skills/incident-briefing/SKILL.md +66 -0
  142. package/skills/incident-triage/SKILL.md +481 -0
  143. package/{LICENSE → skills/mcp-builder/LICENSE.txt} +15 -14
  144. package/skills/mcp-builder/SKILL.md +244 -0
  145. package/skills/mcp-builder/reference/evaluation.md +602 -0
  146. package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
  147. package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
  148. package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
  149. package/skills/mcp-builder/scripts/connections.py +151 -0
  150. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  151. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  152. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  153. package/skills/mobile-pairing/SKILL.md +52 -0
  154. package/skills/ops-sre/SKILL.md +297 -0
  155. package/skills/playwright-qa/LICENSE.txt +201 -0
  156. package/skills/playwright-qa/NOTICE.txt +14 -0
  157. package/skills/playwright-qa/SKILL.md +156 -0
  158. package/skills/playwright-qa/agents/openai.yaml +6 -0
  159. package/skills/playwright-qa/assets/playwright-small.svg +3 -0
  160. package/skills/playwright-qa/assets/playwright.png +0 -0
  161. package/skills/playwright-qa/references/cli.md +116 -0
  162. package/skills/playwright-qa/references/workflows.md +95 -0
  163. package/skills/playwright-qa/scripts/playwright_cli.sh +25 -0
  164. package/skills/release-publish/SKILL.md +85 -0
  165. package/skills/repo-bootstrap/SKILL.md +92 -0
  166. package/skills/repo-bootstrap/assets/example-workflows/validate-agents.yml +89 -0
  167. package/skills/repo-bootstrap/assets/root-thin.md +141 -0
  168. package/skills/repo-bootstrap/assets/root-verbose.md +149 -0
  169. package/skills/repo-bootstrap/assets/scoped/backend-go.md +107 -0
  170. package/skills/repo-bootstrap/assets/scoped/backend-php.md +94 -0
  171. package/skills/repo-bootstrap/assets/scoped/backend-python.md +84 -0
  172. package/skills/repo-bootstrap/assets/scoped/backend-typescript.md +89 -0
  173. package/skills/repo-bootstrap/assets/scoped/claude-code-skill.md +101 -0
  174. package/skills/repo-bootstrap/assets/scoped/cli.md +83 -0
  175. package/skills/repo-bootstrap/assets/scoped/concourse.md +196 -0
  176. package/skills/repo-bootstrap/assets/scoped/ddev.md +68 -0
  177. package/skills/repo-bootstrap/assets/scoped/docker.md +160 -0
  178. package/skills/repo-bootstrap/assets/scoped/documentation.md +98 -0
  179. package/skills/repo-bootstrap/assets/scoped/examples.md +96 -0
  180. package/skills/repo-bootstrap/assets/scoped/frontend-typescript.md +88 -0
  181. package/skills/repo-bootstrap/assets/scoped/github-actions.md +174 -0
  182. package/skills/repo-bootstrap/assets/scoped/gitlab-ci.md +174 -0
  183. package/skills/repo-bootstrap/assets/scoped/oro-bundle.md +209 -0
  184. package/skills/repo-bootstrap/assets/scoped/oro-project.md +170 -0
  185. package/skills/repo-bootstrap/assets/scoped/python-modern.md +170 -0
  186. package/skills/repo-bootstrap/assets/scoped/resources.md +96 -0
  187. package/skills/repo-bootstrap/assets/scoped/skill-repo.md +139 -0
  188. package/skills/repo-bootstrap/assets/scoped/symfony.md +168 -0
  189. package/skills/repo-bootstrap/assets/scoped/testing.md +87 -0
  190. package/skills/repo-bootstrap/assets/scoped/typo3-docs.md +103 -0
  191. package/skills/repo-bootstrap/assets/scoped/typo3-extension.md +133 -0
  192. package/skills/repo-bootstrap/assets/scoped/typo3-project.md +137 -0
  193. package/skills/repo-bootstrap/assets/scoped/typo3-testing.md +80 -0
  194. package/skills/repo-bootstrap/checkpoints.yaml +279 -0
  195. package/skills/repo-bootstrap/evals/evals.json +385 -0
  196. package/skills/repo-bootstrap/references/ai-contribution-guidelines.md +63 -0
  197. package/skills/repo-bootstrap/references/ai-tool-compatibility.md +223 -0
  198. package/skills/repo-bootstrap/references/directory-coverage.md +82 -0
  199. package/skills/repo-bootstrap/references/examples/coding-agent-cli/AGENTS.md +70 -0
  200. package/skills/repo-bootstrap/references/examples/coding-agent-cli/go.mod +3 -0
  201. package/skills/repo-bootstrap/references/examples/coding-agent-cli/scripts-AGENTS.md +389 -0
  202. package/skills/repo-bootstrap/references/examples/express-api-ts/.env.example +13 -0
  203. package/skills/repo-bootstrap/references/examples/express-api-ts/AGENTS.md +91 -0
  204. package/skills/repo-bootstrap/references/examples/express-api-ts/package.json +33 -0
  205. package/skills/repo-bootstrap/references/examples/express-api-ts/pnpm-lock.yaml +3 -0
  206. package/skills/repo-bootstrap/references/examples/express-api-ts/src/AGENTS.md +91 -0
  207. package/skills/repo-bootstrap/references/examples/express-api-ts/src/config.ts +28 -0
  208. package/skills/repo-bootstrap/references/examples/express-api-ts/src/controllers/userController.ts +74 -0
  209. package/skills/repo-bootstrap/references/examples/express-api-ts/src/index.ts +26 -0
  210. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/errorHandler.ts +45 -0
  211. package/skills/repo-bootstrap/references/examples/express-api-ts/src/middleware/requestLogger.ts +18 -0
  212. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/health.ts +18 -0
  213. package/skills/repo-bootstrap/references/examples/express-api-ts/src/routes/users.ts +13 -0
  214. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/errors.ts +40 -0
  215. package/skills/repo-bootstrap/references/examples/express-api-ts/src/utils/logger.ts +14 -0
  216. package/skills/repo-bootstrap/references/examples/express-api-ts/tsconfig.json +24 -0
  217. package/skills/repo-bootstrap/references/examples/fastapi-app/.env.example +19 -0
  218. package/skills/repo-bootstrap/references/examples/fastapi-app/AGENTS.md +92 -0
  219. package/skills/repo-bootstrap/references/examples/fastapi-app/pyproject.toml +88 -0
  220. package/skills/repo-bootstrap/references/examples/fastapi-app/src/AGENTS.md +85 -0
  221. package/skills/repo-bootstrap/references/examples/fastapi-app/src/__init__.py +3 -0
  222. package/skills/repo-bootstrap/references/examples/fastapi-app/src/config.py +49 -0
  223. package/skills/repo-bootstrap/references/examples/fastapi-app/src/main.py +66 -0
  224. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/__init__.py +13 -0
  225. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/item.py +43 -0
  226. package/skills/repo-bootstrap/references/examples/fastapi-app/src/models/user.py +40 -0
  227. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/__init__.py +5 -0
  228. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/health.py +20 -0
  229. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/items.py +61 -0
  230. package/skills/repo-bootstrap/references/examples/fastapi-app/src/routes/users.py +55 -0
  231. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/__init__.py +6 -0
  232. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/item_service.py +77 -0
  233. package/skills/repo-bootstrap/references/examples/fastapi-app/src/services/user_service.py +69 -0
  234. package/skills/repo-bootstrap/references/examples/fastapi-app/uv.lock +4 -0
  235. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/.scopes +3 -0
  236. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/AGENTS.md +86 -0
  237. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/package.json +20 -0
  238. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/admin/src/App.tsx +5 -0
  239. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/cmd/api/main.go +7 -0
  240. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/go.mod +2 -0
  241. package/skills/repo-bootstrap/references/examples/go-api-with-react-admin/main.go +7 -0
  242. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/.scopes +3 -0
  243. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/AGENTS.md +89 -0
  244. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/go.mod +2 -0
  245. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/AGENTS.md +90 -0
  246. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/package.json +17 -0
  247. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/App.tsx +1 -0
  248. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Button.tsx +1 -0
  249. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Footer.tsx +1 -0
  250. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Header.tsx +1 -0
  251. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/internal/web/src/Sidebar.tsx +1 -0
  252. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/main.go +7 -0
  253. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package-lock.json +0 -0
  254. package/skills/repo-bootstrap/references/examples/go-with-internal-web-tsx/package.json +12 -0
  255. package/skills/repo-bootstrap/references/examples/ldap-selfservice/AGENTS.md +70 -0
  256. package/skills/repo-bootstrap/references/examples/ldap-selfservice/go.mod +3 -0
  257. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-AGENTS.md +371 -0
  258. package/skills/repo-bootstrap/references/examples/ldap-selfservice/internal-web-AGENTS.md +448 -0
  259. package/skills/repo-bootstrap/references/examples/php-with-frontend/.scopes +3 -0
  260. package/skills/repo-bootstrap/references/examples/php-with-frontend/AGENTS.md +91 -0
  261. package/skills/repo-bootstrap/references/examples/php-with-frontend/composer.json +8 -0
  262. package/skills/repo-bootstrap/references/examples/php-with-frontend/package.json +15 -0
  263. package/skills/repo-bootstrap/references/examples/php-with-frontend/pnpm-lock.yaml +0 -0
  264. package/skills/repo-bootstrap/references/examples/php-with-frontend/src/Controller.php +3 -0
  265. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/AGENTS.md +92 -0
  266. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/package.json +26 -0
  267. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/App.tsx +3 -0
  268. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Button.tsx +10 -0
  269. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Footer.tsx +9 -0
  270. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/Header.tsx +9 -0
  271. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/src/main.tsx +3 -0
  272. package/skills/repo-bootstrap/references/examples/php-with-frontend/web/tsconfig.json +13 -0
  273. package/skills/repo-bootstrap/references/examples/pnpm-workspace/AGENTS.md +75 -0
  274. package/skills/repo-bootstrap/references/examples/pnpm-workspace/package.json +7 -0
  275. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/package.json +11 -0
  276. package/skills/repo-bootstrap/references/examples/pnpm-workspace/packages/web/src/index.ts +11 -0
  277. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-lock.yaml +42 -0
  278. package/skills/repo-bootstrap/references/examples/pnpm-workspace/pnpm-workspace.yaml +2 -0
  279. package/skills/repo-bootstrap/references/examples/simple-ldap-go/AGENTS.md +70 -0
  280. package/skills/repo-bootstrap/references/examples/simple-ldap-go/examples-AGENTS.md +45 -0
  281. package/skills/repo-bootstrap/references/examples/simple-ldap-go/go.mod +3 -0
  282. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/AGENTS.md +70 -0
  283. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/Classes-AGENTS.md +392 -0
  284. package/skills/repo-bootstrap/references/examples/t3x-rte-ckeditor-image/composer.json +8 -0
  285. package/skills/repo-bootstrap/references/feedback-memory-schema.md +135 -0
  286. package/skills/repo-bootstrap/references/git-hooks-setup.md +79 -0
  287. package/skills/repo-bootstrap/references/output-structure.md +124 -0
  288. package/skills/repo-bootstrap/references/scripts-guide.md +175 -0
  289. package/skills/repo-bootstrap/references/verification-guide.md +137 -0
  290. package/skills/repo-bootstrap/scripts/analyze-git-history.sh +315 -0
  291. package/skills/repo-bootstrap/scripts/check-freshness.sh +230 -0
  292. package/skills/repo-bootstrap/scripts/detect-golden-samples.sh +161 -0
  293. package/skills/repo-bootstrap/scripts/detect-heuristics.sh +93 -0
  294. package/skills/repo-bootstrap/scripts/detect-project.sh +486 -0
  295. package/skills/repo-bootstrap/scripts/detect-scopes.sh +330 -0
  296. package/skills/repo-bootstrap/scripts/detect-utilities.sh +133 -0
  297. package/skills/repo-bootstrap/scripts/extract-adrs.sh +194 -0
  298. package/skills/repo-bootstrap/scripts/extract-agent-configs.sh +331 -0
  299. package/skills/repo-bootstrap/scripts/extract-architecture-rules.sh +522 -0
  300. package/skills/repo-bootstrap/scripts/extract-ci-commands.sh +385 -0
  301. package/skills/repo-bootstrap/scripts/extract-ci-rules.sh +384 -0
  302. package/skills/repo-bootstrap/scripts/extract-commands.sh +358 -0
  303. package/skills/repo-bootstrap/scripts/extract-documentation.sh +308 -0
  304. package/skills/repo-bootstrap/scripts/extract-github-rulesets.sh +96 -0
  305. package/skills/repo-bootstrap/scripts/extract-github-settings.sh +88 -0
  306. package/skills/repo-bootstrap/scripts/extract-ide-settings.sh +228 -0
  307. package/skills/repo-bootstrap/scripts/extract-platform-files.sh +290 -0
  308. package/skills/repo-bootstrap/scripts/extract-quality-configs.sh +442 -0
  309. package/skills/repo-bootstrap/scripts/generate-agents.sh +2424 -0
  310. package/skills/repo-bootstrap/scripts/generate-file-map.sh +153 -0
  311. package/skills/repo-bootstrap/scripts/lib/config-root.sh +211 -0
  312. package/skills/repo-bootstrap/scripts/lib/summary.sh +244 -0
  313. package/skills/repo-bootstrap/scripts/lib/template.sh +397 -0
  314. package/skills/repo-bootstrap/scripts/validate-structure.sh +324 -0
  315. package/skills/repo-bootstrap/scripts/verify-commands.sh +615 -0
  316. package/skills/repo-bootstrap/scripts/verify-content.sh +302 -0
  317. package/skills/schema-api-contracts/SKILL.md +56 -0
  318. package/skills/secret-hygiene/SKILL.md +511 -0
  319. package/skills/secret-hygiene/assets/.gitkeep +9 -0
  320. package/skills/secret-hygiene/assets/config-balanced.toml +81 -0
  321. package/skills/secret-hygiene/assets/config-custom.toml +178 -0
  322. package/skills/secret-hygiene/assets/config-strict.toml +48 -0
  323. package/skills/secret-hygiene/assets/github-action.yml +181 -0
  324. package/skills/secret-hygiene/assets/gitlab-ci.yml +257 -0
  325. package/skills/secret-hygiene/assets/precommit-config.yaml +70 -0
  326. package/skills/secret-hygiene/references/EXAMPLE.md +40 -0
  327. package/skills/secret-hygiene/references/compliance_mapping.md +538 -0
  328. package/skills/secret-hygiene/references/detection_rules.md +276 -0
  329. package/skills/secret-hygiene/references/false_positives.md +598 -0
  330. package/skills/secret-hygiene/references/remediation_guide.md +530 -0
  331. package/skills/stack-selector/SKILL.md +56 -0
  332. package/skills/telegram-control/SKILL.md +110 -0
  333. package/skills/telegram-control/references/architecture.md +184 -0
  334. package/skills/telegram-control/references/convex.md +173 -0
  335. package/skills/telegram-control/references/error_handling.md +212 -0
  336. package/skills/telegram-control/references/initial_setup.md +165 -0
  337. package/skills/telegram-control/references/telegram_api.md +156 -0
  338. package/skills/telegram-control/scripts/cancel_message.ts +53 -0
  339. package/skills/telegram-control/scripts/list_scheduled.ts +103 -0
  340. package/skills/telegram-control/scripts/logger.ts +121 -0
  341. package/skills/telegram-control/scripts/proxy-util.ts +11 -0
  342. package/skills/telegram-control/scripts/schedule_message.ts +216 -0
  343. package/skills/telegram-control/scripts/send_message.ts +115 -0
  344. package/skills/telegram-control/scripts/setup.ts +185 -0
  345. package/skills/telegram-control/scripts/types.ts +75 -0
  346. package/skills/telegram-control/scripts/view_history.ts +74 -0
  347. package/skills/test-strategy/SKILL.md +352 -0
  348. package/skills/threat-model/SKILL.md +303 -0
  349. package/skills/threat-model/examples/example-output.md +196 -0
  350. package/skills/threat-model/template.md +96 -0
  351. package/skills/ts-lint/SKILL.md +80 -0
  352. package/skills/ui-flow/SKILL.md +668 -0
  353. package/skills/voice-command-router/SKILL.md +51 -0
  354. package/skills/widget-live-activity-sync/SKILL.md +66 -0
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: deploy-docker
3
+ synapta_original_name: multi-stage-dockerfile
4
+ triggers: [synapta deploy docker, Dockerfile, multi-stage build, container, image push]
5
+ network: allowlist
6
+ source:
7
+ origin: https://github.com/github/awesome-copilot
8
+ path: skills/multi-stage-dockerfile
9
+ commit: 4e4b34c48d3f
10
+ license: MIT (GitHub, Inc.)
11
+ adapted: light-touch
12
+ description: 'Create optimized multi-stage Dockerfiles for any language or framework'
13
+ ---
14
+
15
+ Your goal is to help me create efficient multi-stage Dockerfiles that follow best practices, resulting in smaller, more secure container images.
16
+
17
+ ## Multi-Stage Structure
18
+
19
+ - Use a builder stage for compilation, dependency installation, and other build-time operations
20
+ - Use a separate runtime stage that only includes what's needed to run the application
21
+ - Copy only the necessary artifacts from the builder stage to the runtime stage
22
+ - Use meaningful stage names with the `AS` keyword (e.g., `FROM node:18 AS builder`)
23
+ - Place stages in logical order: dependencies → build → test → runtime
24
+
25
+ ## Base Images
26
+
27
+ - Start with official, minimal base images when possible
28
+ - Specify exact version tags to ensure reproducible builds (e.g., `python:3.11-slim` not just `python`)
29
+ - Consider distroless images for runtime stages where appropriate
30
+ - Use Alpine-based images for smaller footprints when compatible with your application
31
+ - Ensure the runtime image has the minimal necessary dependencies
32
+
33
+ ## Layer Optimization
34
+
35
+ - Organize commands to maximize layer caching
36
+ - Place commands that change frequently (like code changes) after commands that change less frequently (like dependency installation)
37
+ - Use `.dockerignore` to prevent unnecessary files from being included in the build context
38
+ - Combine related RUN commands with `&&` to reduce layer count
39
+ - Consider using COPY --chown to set permissions in one step
40
+
41
+ ## Security Practices
42
+
43
+ - Avoid running containers as root - use `USER` instruction to specify a non-root user
44
+ - Remove build tools and unnecessary packages from the final image
45
+ - Scan the final image for vulnerabilities
46
+ - Set restrictive file permissions
47
+ - Use multi-stage builds to avoid including build secrets in the final image
48
+
49
+ ## Performance Considerations
50
+
51
+ - Use build arguments for configuration that might change between environments
52
+ - Leverage build cache efficiently by ordering layers from least to most frequently changing
53
+ - Consider parallelization in build steps when possible
54
+ - Set appropriate environment variables like NODE_ENV=production to optimize runtime behavior
55
+ - Use appropriate healthchecks for the application type with the HEALTHCHECK instruction
@@ -0,0 +1,228 @@
1
+ ---
2
+ name: deploy-fly
3
+ synapta_original_name: flyctl
4
+ triggers: [synapta deploy fly, flyctl, Fly.io, fly secrets, fly volumes]
5
+ network: allowlist
6
+ source:
7
+ origin: https://github.com/yurikoval/dotfiles
8
+ path: claude/.claude/skills/flyctl
9
+ commit: 933ff7260f40
10
+ license: see source repo
11
+ adapted: light-touch
12
+ description: Use when deploying to Fly.io, managing Fly apps/machines/volumes/secrets, scaling VMs, viewing logs, or running fly CLI commands
13
+ ---
14
+
15
+ # flyctl - Fly.io CLI
16
+
17
+ ## Overview
18
+
19
+ flyctl is the CLI for Fly.io platform. Deploy apps, manage machines, secrets, volumes, databases, and networking.
20
+
21
+ ## Quick Reference
22
+
23
+ | Task | Command |
24
+ |------|---------|
25
+ | Create app | `fly launch` |
26
+ | Deploy | `fly deploy` |
27
+ | View status | `fly status` |
28
+ | View logs | `fly logs` |
29
+ | SSH into machine | `fly ssh console` |
30
+ | Set secrets | `fly secrets set NAME=value` |
31
+ | Scale VMs | `fly scale count N` |
32
+ | List machines | `fly machine list` |
33
+
34
+ ## Core Commands
35
+
36
+ ### fly launch
37
+ Create and configure new app from source or Docker image.
38
+
39
+ ```bash
40
+ fly launch # Interactive setup
41
+ fly launch --name myapp --region lax --no-deploy
42
+ fly launch --image nginx:latest --now
43
+ fly launch --db mpg # With managed Postgres
44
+ ```
45
+
46
+ Key flags: `--name`, `--org`, `--region`, `--image`, `--dockerfile`, `--no-deploy`, `--now`, `--vm-size`, `--vm-memory`, `--db`
47
+
48
+ ### fly deploy
49
+ Deploy app from source or image.
50
+
51
+ ```bash
52
+ fly deploy # Deploy current directory
53
+ fly deploy --image myimage:tag
54
+ fly deploy --strategy canary # canary|rolling|bluegreen|immediate
55
+ fly deploy --local-only # Build locally (not remote)
56
+ fly deploy -e ENV_VAR=value
57
+ ```
58
+
59
+ Key flags: `--app`, `--config`, `--image`, `--dockerfile`, `--strategy`, `--local-only`, `--remote-only`, `--vm-size`, `--regions`, `--env`, `--detach`
60
+
61
+ ### fly status
62
+ Show app status, instances, regions, deployment details.
63
+
64
+ ```bash
65
+ fly status
66
+ fly status --app myapp
67
+ fly status --watch # Continuous refresh
68
+ fly status --json
69
+ ```
70
+
71
+ ### fly logs
72
+ Stream application logs.
73
+
74
+ ```bash
75
+ fly logs
76
+ fly logs --app myapp
77
+ fly logs --region lax
78
+ fly logs --machine MACHINE_ID
79
+ fly logs --no-tail # Buffered only, no stream
80
+ fly logs --json
81
+ ```
82
+
83
+ ## Secrets
84
+
85
+ Secrets are injected as environment variables at runtime. Names are case-sensitive.
86
+
87
+ ```bash
88
+ fly secrets set DATABASE_URL="postgres://..." SECRET_KEY="abc123"
89
+ fly secrets list
90
+ fly secrets unset SECRET_NAME
91
+ fly secrets import < .env # Import from stdin
92
+ ```
93
+
94
+ ## Machines
95
+
96
+ Fly Machines are fast-launching VMs.
97
+
98
+ ```bash
99
+ fly machine list
100
+ fly machine create --app myapp
101
+ fly machine start MACHINE_ID
102
+ fly machine stop MACHINE_ID
103
+ fly machine destroy MACHINE_ID
104
+ fly machine status MACHINE_ID
105
+ fly machine clone MACHINE_ID
106
+ fly machine exec MACHINE_ID -- command
107
+ ```
108
+
109
+ ## Scaling
110
+
111
+ ```bash
112
+ fly scale show # Current resources
113
+ fly scale count 3 # Set VM count
114
+ fly scale count web=3 worker=1 # Per process group
115
+ fly scale vm shared-cpu-2x # Change VM size
116
+ fly scale memory 512 # Set memory (MB)
117
+ ```
118
+
119
+ VM sizes: `shared-cpu-1x`, `shared-cpu-2x`, `performance-1x`, `performance-2x`, etc.
120
+
121
+ ## Volumes
122
+
123
+ Persistent storage for machines.
124
+
125
+ ```bash
126
+ fly volumes create myvolume --region lax --size 10
127
+ fly volumes list
128
+ fly volumes show VOL_ID
129
+ fly volumes extend VOL_ID --size 20
130
+ fly volumes destroy VOL_ID
131
+ fly volumes snapshots list VOL_ID
132
+ ```
133
+
134
+ ## SSH & File Transfer
135
+
136
+ ```bash
137
+ fly ssh console # Interactive shell
138
+ fly ssh console -C "command" # Run command
139
+ fly sftp get /remote/path ./local/path
140
+ fly sftp put ./local/path /remote/path
141
+ ```
142
+
143
+ ## Postgres
144
+
145
+ ```bash
146
+ fly postgres create # New cluster
147
+ fly postgres list
148
+ fly postgres connect -a pg-app # psql console
149
+ fly postgres attach pg-app # Attach to app
150
+ fly postgres detach pg-app
151
+ fly postgres import pg-app < dump.sql
152
+ ```
153
+
154
+ Note: Unmanaged Postgres is user-operated. Use `fly mpg` for managed Postgres.
155
+
156
+ ## Apps Management
157
+
158
+ ```bash
159
+ fly apps list
160
+ fly apps create myapp
161
+ fly apps destroy myapp
162
+ fly apps restart myapp
163
+ fly apps open # Open in browser
164
+ fly apps releases # List releases
165
+ fly apps move myapp --org neworg
166
+ ```
167
+
168
+ ## Networking
169
+
170
+ ```bash
171
+ fly ips list
172
+ fly ips allocate-v4
173
+ fly ips allocate-v6
174
+ fly ips release IP_ADDRESS
175
+ fly certs list
176
+ fly certs add example.com
177
+ fly certs remove example.com
178
+ ```
179
+
180
+ ## Global Flags
181
+
182
+ All commands support:
183
+ - `-a, --app` - App name
184
+ - `-c, --config` - Config file path (default: fly.toml)
185
+ - `-t, --access-token` - API token
186
+ - `--debug` - Debug output
187
+ - `--verbose` - Verbose output
188
+ - `--json` / `-j` - JSON output (where supported)
189
+
190
+ ## Common Workflows
191
+
192
+ **Initial deployment:**
193
+ ```bash
194
+ fly auth login
195
+ fly launch
196
+ # Edit fly.toml as needed
197
+ fly deploy
198
+ ```
199
+
200
+ **Update with secrets:**
201
+ ```bash
202
+ fly secrets set NEW_SECRET=value
203
+ fly deploy
204
+ ```
205
+
206
+ **Scale for traffic:**
207
+ ```bash
208
+ fly scale count 3 --region lax,ord
209
+ fly scale vm performance-1x
210
+ ```
211
+
212
+ **Debug failing app:**
213
+ ```bash
214
+ fly status
215
+ fly logs --no-tail
216
+ fly ssh console
217
+ ```
218
+
219
+ ## Config File (fly.toml)
220
+
221
+ Generated by `fly launch`. Key sections:
222
+ - `app` - App name
223
+ - `primary_region` - Default region
224
+ - `[build]` - Build configuration
225
+ - `[env]` - Environment variables
226
+ - `[http_service]` - HTTP settings
227
+ - `[[services]]` - Service definitions
228
+ - `[[mounts]]` - Volume mounts
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: deploy-k8s
3
+ description: "Prevent Kubernetes hallucinations by diagnosing and fixing failure modes: insecure workload defaults, resource starvation, network exposure, privilege sprawl, fragile rollouts, and API drift. Use when generating, reviewing, refactoring, or migrating manifests, Helm charts, Kustomize overlays, cluster policies, and platform-specific Kubernetes work for EKS, GKE, AKS, OpenShift, GitOps controllers, or observability stacks."
4
+ triggers: [synapta deploy k8s, Kubernetes, kubectl, helm, kustomize, EKS, GKE]
5
+ network: allowlist
6
+ source:
7
+ origin: https://github.com/LukasNiessen/kubernetes-skill
8
+ path: /
9
+ commit: b7d32502e316
10
+ license: Lukas Niessen (see LICENSE in source repo)
11
+ adapted: light-touch
12
+ ---
13
+
14
+ # KubeShark: Failure-Mode Workflow for Kubernetes
15
+
16
+ Run this workflow top to bottom.
17
+
18
+ ## 1) Capture execution context
19
+
20
+ Record before writing manifests:
21
+ - cluster version (e.g. 1.30, 1.31) and distribution (EKS, GKE, AKS, k3s, vanilla)
22
+ - target namespace and environment criticality (dev/staging/prod)
23
+ - workload type (Deployment, StatefulSet, Job, CronJob, DaemonSet)
24
+ - deployment method (raw YAML, Helm, Kustomize, operator-managed)
25
+ - policy enforcement (Pod Security Admission level, Kyverno, OPA/Gatekeeper)
26
+ - cloud provider and CNI (affects networking, storage classes, load balancers)
27
+ - platform controllers/add-ons (GitOps, observability, ingress, service mesh, autoscaling)
28
+
29
+ If unknown, state assumptions explicitly.
30
+
31
+ ## 2) Diagnose likely failure mode(s)
32
+
33
+ Select one or more based on user intent and risk:
34
+ - insecure workload defaults: missing security contexts, PSS violations, host access
35
+ - resource starvation: missing requests/limits, no PDB, scheduling chaos
36
+ - network exposure: flat networking, missing policies, wrong Service types, DNS issues
37
+ - privilege sprawl: overly permissive RBAC, leaked secrets, excess ServiceAccount rights
38
+ - fragile rollouts: misconfigured probes, mutable tags, unsafe update strategies
39
+ - API drift: wrong apiVersion, deprecated APIs, schema violations, tool-specific errors
40
+
41
+ ## 3) Load only the relevant reference file(s)
42
+
43
+ Primary failure-mode references:
44
+ - `references/insecure-workload-defaults.md`
45
+ - `references/resource-starvation.md`
46
+ - `references/network-exposure.md`
47
+ - `references/privilege-sprawl.md`
48
+ - `references/fragile-rollouts.md`
49
+ - `references/api-drift.md`
50
+
51
+ Supplemental references (only when needed):
52
+ - `references/deployment-patterns.md`
53
+ - `references/stateful-patterns.md`
54
+ - `references/job-patterns.md`
55
+ - `references/daemonset-operator-patterns.md`
56
+ - `references/security-hardening.md`
57
+ - `references/observability.md`
58
+ - `references/multi-tenancy.md`
59
+ - `references/storage-and-state.md`
60
+ - `references/helm-patterns.md`
61
+ - `references/kustomize-patterns.md`
62
+ - `references/validation-and-policy.md`
63
+ - `references/examples-good.md`
64
+ - `references/examples-bad.md`
65
+ - `references/do-dont-patterns.md`
66
+
67
+ Conditional Reference Retrieval (CRR) references (load only when the signal is detected):
68
+ - `references/conditional/eks-patterns.md` for EKS, AWS, IRSA, EKS Pod Identity, AWS Load Balancer Controller, EBS/EFS CSI, Karpenter
69
+ - `references/conditional/gke-patterns.md` for GKE, Autopilot, Workload Identity Federation for GKE, Dataplane V2, GCE Ingress, Config Sync
70
+ - `references/conditional/aks-patterns.md` for AKS, Microsoft Entra Workload ID, Azure CNI, AGIC, Azure Disk/File/Blob CSI
71
+ - `references/conditional/openshift-patterns.md` for OpenShift, OKD, ROSA, ARO, Routes, SCCs, OLM, `oc`
72
+ - `references/conditional/gitops-controllers.md` for Argo CD, ApplicationSet, Flux, GitOps reconciliation, sync waves
73
+ - `references/conditional/observability-stacks.md` for Prometheus Operator, ServiceMonitor, PodMonitor, OpenTelemetry, Loki, Grafana
74
+
75
+ Do not load multiple CRR files unless the task spans multiple detected platforms/tools.
76
+
77
+ ## 4) Propose fix path with explicit risk controls
78
+
79
+ For each fix, include:
80
+ - why this addresses the failure mode
81
+ - what could still go wrong at deploy time or runtime
82
+ - guardrails (validation commands, policy checks, rollback path)
83
+
84
+ ## 5) Generate implementation artifacts
85
+
86
+ When applicable, output:
87
+ - Kubernetes manifests (YAML with security contexts, resource limits, labels)
88
+ - Helm values/templates or Kustomize overlays
89
+ - NetworkPolicies, RBAC resources, PodDisruptionBudgets
90
+ - Policy rules (Kyverno/OPA) and admission controls
91
+
92
+ ## 6) Validate before finalize
93
+
94
+ Always provide validation steps tailored to deployment method and risk tier:
95
+ - `kubectl apply --dry-run=server` or `kubectl diff`
96
+ - `kubeconform` for schema validation against target cluster version
97
+ - cross-resource consistency check (label/selector/port alignment)
98
+ - policy scan (PSS profile check, Kyverno/OPA audit)
99
+ Never recommend direct production apply without reviewed diff and approval.
100
+
101
+ ## 7) Output contract
102
+
103
+ Return:
104
+ - assumptions and cluster version floor
105
+ - selected failure mode(s)
106
+ - chosen remediation and tradeoffs
107
+ - validation/test plan
108
+ - rollback/recovery notes (rollout undo, revision history, data safety)
@@ -0,0 +1,29 @@
1
+ # Kubernetes Skill for Claude Code — KubeShark
2
+
3
+ KubeShark is a failure-mode-first Kubernetes skill for Claude Code and Codex. It prevents common LLM hallucinations in Kubernetes manifest generation by diagnosing risks before writing YAML.
4
+
5
+ ## Why use it
6
+
7
+ - **Prevents hallucinations** -- 6 named failure modes with targeted reference files
8
+ - **Token-efficient** -- ~650 token activation cost, granular references loaded on demand
9
+ - **Production-ready defaults** -- Pod Security Standards restricted profile, proper resource management, cross-resource validation
10
+ - **20 reference files** -- covering security, networking, RBAC, probes, storage, Helm, Kustomize, and more
11
+
12
+ ## Key features
13
+
14
+ - Failure-mode-first diagnostic workflow (diagnose before generate)
15
+ - Output contracts with assumptions, tradeoffs, and rollback notes
16
+ - LLM mistake checklists in every reference file
17
+ - Cross-resource consistency validation (label/selector/port alignment)
18
+ - Helm and Kustomize pattern guidance
19
+ - Policy engine integration (Kyverno, OPA/Gatekeeper)
20
+
21
+ ## Quick install
22
+
23
+ ```bash
24
+ git clone https://github.com/LukasNiessen/kubernetes-skill.git ~/.claude/skills/kubernetes-skill
25
+ ```
26
+
27
+ ## License
28
+
29
+ MIT -- see [LICENSE](https://github.com/LukasNiessen/kubernetes-skill/blob/main/LICENSE).
@@ -0,0 +1,56 @@
1
+ # Summary
2
+
3
+ - [Introduction](README.md)
4
+
5
+ ## Getting Started
6
+
7
+ - [Installation](getting-started/installation.md)
8
+ - [Quick Start](getting-started/quick-start.md)
9
+
10
+ ## Core Concepts
11
+
12
+ - [Workflow](core-concepts/workflow.md)
13
+ - [Failure Modes](core-concepts/failure-modes.md)
14
+ - [Philosophy](core-concepts/philosophy.md)
15
+
16
+ ## Failure Mode References
17
+
18
+ - [Insecure Workload Defaults](failure-modes/insecure-workload-defaults.md)
19
+ - [Resource Starvation](failure-modes/resource-starvation.md)
20
+ - [Network Exposure](failure-modes/network-exposure.md)
21
+ - [Privilege Sprawl](failure-modes/privilege-sprawl.md)
22
+ - [Fragile Rollouts](failure-modes/fragile-rollouts.md)
23
+ - [API Drift](failure-modes/api-drift.md)
24
+
25
+ ## Architecture Guidance
26
+
27
+ - [Workload Patterns](architecture/workload-patterns.md)
28
+ - [Multi-Tenancy](architecture/multi-tenancy.md)
29
+ - [Storage and State](architecture/storage-and-state.md)
30
+
31
+ ## Operational Guides
32
+
33
+ - [Helm Patterns](guides/helm-patterns.md)
34
+ - [Kustomize Patterns](guides/kustomize-patterns.md)
35
+ - [Security Hardening](guides/security-hardening.md)
36
+ - [Observability](guides/observability.md)
37
+ - [Validation and Policy](guides/validation-and-policy.md)
38
+
39
+ ## Code Examples
40
+
41
+ - [Good Patterns](examples/good-patterns.md)
42
+ - [Bad Patterns](examples/bad-patterns.md)
43
+ - [Do/Don't Checklist](examples/do-dont-checklist.md)
44
+
45
+ ## Integrations
46
+
47
+ - [MCP Integration](integrations/mcp-integration.md)
48
+
49
+ ## Advanced
50
+
51
+ - [Token Efficiency](advanced/token-efficiency.md)
52
+
53
+ ## Community
54
+
55
+ - [Contributing](community/contributing.md)
56
+ - [Changelog](community/changelog.md)
@@ -0,0 +1,61 @@
1
+ # Token Efficiency
2
+
3
+ How KubeShark minimizes context window consumption while maximizing manifest generation quality.
4
+
5
+ ## The Problem
6
+
7
+ Context window space is a finite resource. Every token spent on skill content is a token unavailable for the user's actual manifests, conversation history, and tool results. A monolithic skill file that dumps thousands of lines of Kubernetes guidance wastes context on information irrelevant to the current task. This is not just inefficient -- it degrades output quality by forcing the model to process noise alongside signal.
8
+
9
+ ## KubeShark's Approach
10
+
11
+ KubeShark is designed around three principles:
12
+
13
+ ### Lean Activation
14
+
15
+ The core SKILL.md is approximately 85 lines (~650 tokens). It contains no YAML examples, no inline manifests, no tutorial material. It is purely procedural: a 7-step workflow the model follows. This means the skill activates with minimal context cost regardless of the task.
16
+
17
+ ### Granular References
18
+
19
+ Depth lives in 20 separate reference files organized by concern:
20
+
21
+ - **6 failure mode files** -- insecure workload defaults, resource starvation, network exposure, privilege sprawl, fragile rollouts, API drift
22
+ - **4 workload pattern files** -- Deployments, StatefulSets, Jobs/CronJobs, DaemonSets and operators
23
+ - **4 cross-cutting concern files** -- security hardening, observability, multi-tenancy, storage and state
24
+ - **3 tooling files** -- Helm patterns, Kustomize patterns, validation and policy
25
+ - **3 pattern bank files** -- good examples, bad examples, do/don't checklist
26
+
27
+ The model loads only the 1-2 files relevant to the diagnosed failure mode. A query about probe configuration never loads the RBAC guidance. A query about Helm chart structure never loads the NetworkPolicy patterns.
28
+
29
+ ### Selective Loading
30
+
31
+ Step 3 of the workflow explicitly instructs the model to load only the relevant references. This is not a suggestion -- it is a structural constraint built into the diagnostic flow.
32
+
33
+ ## Content Inclusion Rules
34
+
35
+ Content enters KubeShark only when at least one condition is met:
36
+
37
+ - It materially lowers the probability of insecure, unreliable, or invalid manifest generation
38
+ - It prevents common deploy-time or runtime surprises (probe cascades, selector mismatches, OOMKills)
39
+ - It encodes operational guardrails that general model knowledge cannot reliably infer
40
+
41
+ Content is excluded when:
42
+
43
+ - It is generic Kubernetes knowledge with low failure impact
44
+ - It is cloud-provider-specific deep configuration that belongs in project docs
45
+ - It duplicates an existing rule without adding a new decision signal
46
+
47
+ ## What Models Need Help With
48
+
49
+ LLMs have strong general Kubernetes knowledge but consistently fail on specific operational details:
50
+
51
+ - **Security contexts** -- models frequently omit them entirely, producing root-running containers
52
+ - **Cross-resource consistency** -- label/selector/port alignment across Deployment, Service, Ingress, HPA, PDB
53
+ - **API version currency** -- models generate removed APIs from training data (e.g., `extensions/v1beta1`)
54
+ - **Provider-specific constraints** -- storage class capabilities, CNI behavior, load balancer semantics
55
+ - **Probe design** -- liveness probes that check external dependencies, causing cascading failures
56
+
57
+ Models generally do not need help with basic YAML syntax, resource kind selection, or standard field names. KubeShark avoids restating what models already know reliably.
58
+
59
+ ## Core Principle
60
+
61
+ High signal density. Every line in every reference file must earn its token cost by reducing the probability of a specific, named failure mode.
@@ -0,0 +1,96 @@
1
+ # Multi-Tenancy
2
+
3
+ Running multiple teams, environments, or customers in a single Kubernetes cluster requires defense-in-depth isolation. Namespaces are the primary boundary, but a namespace without quotas, network policies, RBAC scoping, and Pod Security Admission is an open door. This guide covers the five layers of namespace isolation and when to use separate clusters instead.
4
+
5
+ ## Namespace as the Isolation Unit
6
+
7
+ Every Kubernetes isolation mechanism is scoped to namespaces: RBAC, NetworkPolicy, ResourceQuota, LimitRange, and Pod Security Admission. A well-configured tenant namespace enforces all five simultaneously. An unconfigured namespace provides none of them.
8
+
9
+ ## Layer 1: ResourceQuota
10
+
11
+ Every tenant namespace must have a ResourceQuota. Without it, a single tenant can consume all cluster CPU, memory, and storage, starving other tenants.
12
+
13
+ ResourceQuota sets aggregate caps on the namespace: total CPU requests, memory limits, pod count, PVC count, and service types. When a ResourceQuota exists, every pod in the namespace must specify resource `requests` and `limits` or admission is rejected. This enforces resource discipline across all workloads.
14
+
15
+ Key settings for shared clusters:
16
+ - `services.nodeports: "0"` prevents tenants from claiming node ports that conflict across namespaces.
17
+ - `services.loadbalancers` limits the number of cloud load balancers a tenant can provision.
18
+ - `persistentvolumeclaims` caps storage consumption.
19
+
20
+ ## Layer 2: LimitRange
21
+
22
+ LimitRange complements ResourceQuota by setting per-container defaults and bounds. Without LimitRange, a pod that omits resource specifications is rejected by the quota (since the quota requires explicit resources). LimitRange provides sensible defaults so that "lazy" deployments still get resource boundaries.
23
+
24
+ LimitRange also sets min/max bounds per container, preventing a single container from requesting disproportionate resources (e.g., 32Gi memory in a namespace with a 40Gi quota).
25
+
26
+ ## Layer 3: NetworkPolicy
27
+
28
+ By default, pods in different namespaces can communicate freely. Default-deny NetworkPolicy is the minimum viable network isolation for multi-tenancy.
29
+
30
+ A complete namespace network baseline consists of three policies:
31
+ 1. **Default deny all** -- blocks all ingress and egress for every pod in the namespace.
32
+ 2. **Allow DNS** -- permits egress to kube-system on port 53 so service discovery works.
33
+ 3. **Allow intra-namespace** -- permits pods within the same namespace to communicate.
34
+
35
+ Additional policies are added as needed for cross-namespace communication (e.g., allowing the ingress controller namespace to reach application pods).
36
+
37
+ The AND/OR semantics of NetworkPolicy rules are critical for multi-tenancy: a `namespaceSelector` and `podSelector` in the same `from` entry are AND-ed (both must match). Separate `from` entries are OR-ed. Getting this wrong can either block legitimate traffic or open traffic to the entire cluster.
38
+
39
+ ## Layer 4: RBAC Scoping
40
+
41
+ Use namespace-scoped `Role` and `RoleBinding` for tenant access. `ClusterRole` and `ClusterRoleBinding` grant access across all namespaces and should be reserved for platform administrators.
42
+
43
+ Tenant RBAC should follow least privilege:
44
+ - Developers: `get`, `list`, `watch`, `create`, `update`, `patch`, `delete` on workload resources (Deployments, Services, ConfigMaps, Jobs). Read-only on Secrets.
45
+ - CI/CD pipelines: `create`, `update`, `patch` on Deployments and ConfigMaps. No access to Secrets (use external secret management).
46
+ - Monitoring: `get`, `list`, `watch` on pods, events, and metrics endpoints.
47
+
48
+ Never use wildcards (`verbs: ["*"]`, `resources: ["*"]`) in tenant roles. See the [Privilege Sprawl](../failure-modes/privilege-sprawl.md) deep dive for details.
49
+
50
+ ## Layer 5: Pod Security Admission
51
+
52
+ Every tenant namespace must have PSA labels enforcing at minimum the `baseline` profile, and preferably `restricted`:
53
+
54
+ ```yaml
55
+ labels:
56
+ pod-security.kubernetes.io/enforce: restricted
57
+ pod-security.kubernetes.io/audit: restricted
58
+ pod-security.kubernetes.io/warn: restricted
59
+ ```
60
+
61
+ Set all three modes (enforce, audit, warn). `enforce` blocks non-compliant pods. `audit` logs violations. `warn` shows warnings to users during `kubectl apply`. Using all three provides defense-in-depth and visibility into violations that audit mode catches but enforce mode has not yet been enabled for.
62
+
63
+ ## Naming Conventions
64
+
65
+ Consistent namespace naming enables policy automation and cost attribution:
66
+ - **Environment-based:** `prod-payments`, `staging-orders`.
67
+ - **Team-based:** `platform-monitoring`, `alpha-api`.
68
+ - **Tenant-based (SaaS):** `acme-prod`, `acme-staging`.
69
+
70
+ Pick one pattern and enforce it with admission webhooks. Inconsistent naming makes RBAC, cost allocation, and policy application error-prone.
71
+
72
+ ## What Namespaces Do Not Isolate
73
+
74
+ Namespaces are a soft boundary. They do not provide:
75
+ - **Node-level isolation.** Pods from different namespaces share the same node kernel. A container escape or noisy neighbor affects all tenants on that node. Use taints/tolerations and dedicated node pools for hard isolation.
76
+ - **Cluster-scoped resources.** ClusterRoles, CRDs, PersistentVolumes, and Nodes are visible cluster-wide.
77
+ - **Network without NetworkPolicy.** Namespaces without NetworkPolicy allow all traffic by default.
78
+ - **Container runtime isolation.** A kernel exploit reaches the host regardless of namespace. Use sandboxed runtimes (gVisor, Kata Containers) for untrusted workloads.
79
+
80
+ ## When to Use Separate Clusters
81
+
82
+ | Factor | Namespaces | Separate clusters |
83
+ |---|---|---|
84
+ | Blast radius tolerance | Shared risk acceptable | Zero cross-tenant impact required |
85
+ | Compliance | Same regulatory domain | Different requirements (PCI vs non-PCI) |
86
+ | Kubernetes version | Same version for all tenants | Tenants need different versions |
87
+ | Cost | Lower (shared control plane) | Higher but stronger isolation |
88
+ | Noisy neighbor risk | Acceptable with quotas | Unacceptable (latency-sensitive) |
89
+
90
+ Rule of thumb: use namespaces for internal teams in the same trust domain. Use separate clusters when tenants are external customers, have different compliance requirements, or when the blast radius of a cluster-level failure is unacceptable.
91
+
92
+ ## Further Reading
93
+
94
+ - [Namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
95
+ - [KubeShark Privilege Sprawl](../failure-modes/privilege-sprawl.md)
96
+ - [KubeShark Network Exposure](../failure-modes/network-exposure.md)