opencode-skills-collection 4.0.67 → 4.0.69

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 (329) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +281 -1
  2. package/bundled-skills/access-review/SKILL.md +394 -0
  3. package/bundled-skills/access-review/references/details.md +121 -0
  4. package/bundled-skills/agent-evals/SKILL.md +420 -0
  5. package/bundled-skills/agent-observability/SKILL.md +346 -0
  6. package/bundled-skills/agent-observability/references/details.md +786 -0
  7. package/bundled-skills/ai-agent-security/SKILL.md +393 -0
  8. package/bundled-skills/ai-agent-security/references/details.md +912 -0
  9. package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
  10. package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
  11. package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
  12. package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
  13. package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
  14. package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
  15. package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
  16. package/bundled-skills/alerting-oncall/SKILL.md +458 -0
  17. package/bundled-skills/alerting-oncall/references/details.md +84 -0
  18. package/bundled-skills/anti-slop-design/SKILL.md +393 -0
  19. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
  20. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  21. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  22. package/bundled-skills/arm-templates/SKILL.md +438 -0
  23. package/bundled-skills/arm-templates/references/details.md +64 -0
  24. package/bundled-skills/artifact-yylo/SKILL.md +122 -0
  25. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  26. package/bundled-skills/asset-inventory/references/details.md +127 -0
  27. package/bundled-skills/audit-logging/SKILL.md +476 -0
  28. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  29. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  30. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  31. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  32. package/bundled-skills/aws-iam/SKILL.md +463 -0
  33. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  34. package/bundled-skills/aws-rds/SKILL.md +380 -0
  35. package/bundled-skills/aws-s3/SKILL.md +434 -0
  36. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  37. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  38. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  39. package/bundled-skills/azure-aks/SKILL.md +423 -0
  40. package/bundled-skills/azure-devops/SKILL.md +457 -0
  41. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  42. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  43. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  44. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  45. package/bundled-skills/azure-networking/SKILL.md +448 -0
  46. package/bundled-skills/azure-networking/references/details.md +135 -0
  47. package/bundled-skills/azure-sql/SKILL.md +413 -0
  48. package/bundled-skills/azure-sql/references/details.md +113 -0
  49. package/bundled-skills/azure-vms/SKILL.md +402 -0
  50. package/bundled-skills/azure-vms/references/details.md +134 -0
  51. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  52. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  53. package/bundled-skills/bb-methodology/references/details.md +120 -0
  54. package/bundled-skills/block-storage/SKILL.md +371 -0
  55. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  56. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  57. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  58. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  59. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  60. package/bundled-skills/business-continuity/SKILL.md +463 -0
  61. package/bundled-skills/career-ops/SKILL.md +186 -0
  62. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  63. package/bundled-skills/change-management/SKILL.md +438 -0
  64. package/bundled-skills/change-management/references/details.md +105 -0
  65. package/bundled-skills/circleci/SKILL.md +475 -0
  66. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  67. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  68. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  69. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  70. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  71. package/bundled-skills/cloudformation/SKILL.md +461 -0
  72. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  73. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  74. package/bundled-skills/container-hardening/SKILL.md +126 -0
  75. package/bundled-skills/container-registries/SKILL.md +435 -0
  76. package/bundled-skills/container-scanning/SKILL.md +416 -0
  77. package/bundled-skills/convex-backend/SKILL.md +338 -0
  78. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  79. package/bundled-skills/database-backups/SKILL.md +425 -0
  80. package/bundled-skills/datadog/SKILL.md +487 -0
  81. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  82. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  83. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  84. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  85. package/bundled-skills/dns-management/SKILL.md +375 -0
  86. package/bundled-skills/docker-compose/SKILL.md +482 -0
  87. package/bundled-skills/docker-management/SKILL.md +426 -0
  88. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  89. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  90. package/bundled-skills/elk-stack/SKILL.md +487 -0
  91. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  92. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  93. package/bundled-skills/feature-flags/SKILL.md +426 -0
  94. package/bundled-skills/feature-flags/references/details.md +86 -0
  95. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  96. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  97. package/bundled-skills/firewall-config/SKILL.md +479 -0
  98. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  99. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  100. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  101. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  102. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  103. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  104. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  105. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  106. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  107. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  108. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  109. package/bundled-skills/geo-audit/SKILL.md +368 -0
  110. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  111. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  112. package/bundled-skills/geo-citability/SKILL.md +350 -0
  113. package/bundled-skills/geo-compare/SKILL.md +340 -0
  114. package/bundled-skills/geo-content/SKILL.md +383 -0
  115. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  116. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  117. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  118. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  119. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  120. package/bundled-skills/geo-report/SKILL.md +436 -0
  121. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  122. package/bundled-skills/geo-schema/SKILL.md +408 -0
  123. package/bundled-skills/geo-technical/SKILL.md +78 -0
  124. package/bundled-skills/geo-technical/references/details.md +543 -0
  125. package/bundled-skills/git-workflow/SKILL.md +460 -0
  126. package/bundled-skills/github-actions/SKILL.md +368 -0
  127. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  128. package/bundled-skills/google-no-code/SKILL.md +136 -0
  129. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  130. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  131. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  132. package/bundled-skills/helm-charts/SKILL.md +469 -0
  133. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  134. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  135. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  136. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  137. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  138. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  139. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  140. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  141. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  142. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  143. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  144. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  145. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  146. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  147. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  148. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  149. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  150. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  151. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  152. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  153. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  154. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  155. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  156. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  157. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  158. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  159. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  160. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  161. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  162. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  163. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  164. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  165. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  166. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  167. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  168. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  169. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  170. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  171. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  172. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  173. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  174. package/bundled-skills/hunt-rce/references/details.md +110 -0
  175. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  176. package/bundled-skills/hunt-session/SKILL.md +342 -0
  177. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  178. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  179. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  180. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  181. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  182. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  183. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  184. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  185. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  186. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  187. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  188. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  189. package/bundled-skills/idea-evaluator/SKILL.md +75 -0
  190. package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
  191. package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
  192. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  193. package/bundled-skills/identity-access-management/references/details.md +524 -0
  194. package/bundled-skills/incident-management/SKILL.md +484 -0
  195. package/bundled-skills/incident-response/SKILL.md +448 -0
  196. package/bundled-skills/incident-response/references/details.md +113 -0
  197. package/bundled-skills/interview-me/SKILL.md +248 -0
  198. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  199. package/bundled-skills/jenkins/SKILL.md +462 -0
  200. package/bundled-skills/jev-use/SKILL.md +158 -0
  201. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  202. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  203. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  204. package/bundled-skills/kustomize/SKILL.md +478 -0
  205. package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
  206. package/bundled-skills/linux-administration/SKILL.md +367 -0
  207. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  208. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  209. package/bundled-skills/llm-app-security/references/details.md +674 -0
  210. package/bundled-skills/llm-caching/SKILL.md +334 -0
  211. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  212. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  213. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  214. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  215. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  216. package/bundled-skills/load-balancing/SKILL.md +403 -0
  217. package/bundled-skills/loki-logging/SKILL.md +479 -0
  218. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
  219. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
  220. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  221. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  222. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  223. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  224. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  225. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  226. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  227. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  228. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  229. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  230. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  231. package/bundled-skills/mongodb/SKILL.md +436 -0
  232. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  233. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  234. package/bundled-skills/mysql/SKILL.md +390 -0
  235. package/bundled-skills/new-relic/SKILL.md +472 -0
  236. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  237. package/bundled-skills/object-storage/SKILL.md +378 -0
  238. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  239. package/bundled-skills/okta-attack/SKILL.md +436 -0
  240. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  241. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  242. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  243. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  244. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  245. package/bundled-skills/openshift/SKILL.md +485 -0
  246. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  247. package/bundled-skills/opentelemetry/references/details.md +78 -0
  248. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  249. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  250. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  251. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  252. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  253. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  254. package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
  255. package/bundled-skills/planetscale/SKILL.md +297 -0
  256. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  257. package/bundled-skills/platform-engineering/references/details.md +944 -0
  258. package/bundled-skills/podman/SKILL.md +405 -0
  259. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  260. package/bundled-skills/policy-as-code/references/details.md +204 -0
  261. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  262. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  263. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  264. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  265. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  266. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  267. package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
  268. package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
  269. package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
  270. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  271. package/bundled-skills/redis/SKILL.md +421 -0
  272. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  273. package/bundled-skills/report-writing/SKILL.md +426 -0
  274. package/bundled-skills/report-writing/references/details.md +187 -0
  275. package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
  276. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  277. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  278. package/bundled-skills/runbook-creation/references/details.md +71 -0
  279. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  280. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  281. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  282. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  283. package/bundled-skills/security-arsenal/references/details.md +540 -0
  284. package/bundled-skills/security-automation/SKILL.md +146 -0
  285. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  286. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  287. package/bundled-skills/service-mesh/SKILL.md +422 -0
  288. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  289. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  290. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  291. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  292. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  293. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  294. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  295. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  296. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  297. package/bundled-skills/systemd-services/SKILL.md +379 -0
  298. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  299. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  300. package/bundled-skills/terraform-azure/references/details.md +231 -0
  301. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  302. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  303. package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
  304. package/bundled-skills/user-management/SKILL.md +383 -0
  305. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  306. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  307. package/bundled-skills/vendor-management/SKILL.md +439 -0
  308. package/bundled-skills/vendor-management/references/details.md +109 -0
  309. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  310. package/bundled-skills/vllm-server/SKILL.md +236 -0
  311. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  312. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  313. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  314. package/bundled-skills/waf-setup/SKILL.md +354 -0
  315. package/bundled-skills/waf-setup/references/details.md +211 -0
  316. package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
  317. package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
  318. package/bundled-skills/web2-recon/SKILL.md +440 -0
  319. package/bundled-skills/web2-recon/references/details.md +319 -0
  320. package/bundled-skills/web3-audit/SKILL.md +445 -0
  321. package/bundled-skills/web3-audit/references/details.md +224 -0
  322. package/bundled-skills/wiki-yylo/SKILL.md +114 -0
  323. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  324. package/bundled-skills/windows-hardening/references/details.md +204 -0
  325. package/bundled-skills/windows-server/SKILL.md +318 -0
  326. package/bundled-skills/workflow-yylo/SKILL.md +107 -0
  327. package/bundled-skills/zero-trust/SKILL.md +461 -0
  328. package/package.json +1 -1
  329. package/skills_index.json +6924 -0
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: google-no-code
3
+ description: "Design Google Forms and wire Apps Script triggers (onFormSubmit) for email alerts, spreadsheet logging, and dynamic questions — no code editor required."
4
+ category: automation
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-19"
9
+ author: WHOISABHISHEKADHIKARI
10
+ tags: [google, forms, apps-script]
11
+ tools: [claude, cursor, gemini]
12
+ ---
13
+
14
+ # Google No-Code Forms Automation
15
+
16
+ ## Overview
17
+
18
+ Guides the user through building a Google Form in the Forms UI and connecting it to Google Apps Script triggers, without writing a custom integration or leaving the browser. Covers form design, the Apps Script editor, the `onFormSubmit` trigger, and small response-handling scripts that run automatically when a form is submitted.
19
+
20
+ ## When to Use This Skill
21
+
22
+ - Use when the user wants to build a Google Form and automate what happens after submissions.
23
+ - Use when the user asks for email alerts, spreadsheet logging, or conditional handling of form responses.
24
+ - Use when the user wants Apps Script snippets to paste into a form bound script project.
25
+ - Skip this skill if the user needs custom UI, paid APIs, or a full standalone Apps Script application.
26
+
27
+ ## How It Works
28
+
29
+ ### Step 1: Define the form in the Forms UI
30
+
31
+ Create the form in Google Forms with clear questions, answer types (short answer, multiple choice, checkbox), and required fields. Match question IDs to what the script will need later. Add a description to the form so respondents know what to expect.
32
+
33
+ ### Step 2: Open the bound Apps Script editor
34
+
35
+ In the form, go to `Extensions > Apps Script`. This opens a project bound to the form. The script can read each submission through the `e.response` event object.
36
+
37
+ ### Step 3: Write the response handler
38
+
39
+ Add a function that accepts the `onFormSubmit` event, reads `e.response` with `getItemResponses()`, and then performs the desired action: send an email, write to a spreadsheet, or branch on answers.
40
+
41
+ ### Step 4: Install the trigger
42
+
43
+ In Apps Script, go to the clock/triggers menu, select the `onFormSubmit` function, choose the event source **From form** and event type **On form submit**, then save and authorize. The function runs automatically on each new submission.
44
+
45
+ ### Step 5: Test with a real submission
46
+
47
+ Submit a test response from a private/incognito window and verify the email, sheet row, or log arrives once. Check the Apps Script executions page (`Executions` in the editor) for errors and read the stack trace if something fails.
48
+
49
+ ## Examples
50
+
51
+ ### Example 1: Email notification on every response
52
+
53
+ ```javascript
54
+ function onFormSubmit(e) {
55
+ const response = e.response;
56
+ const email = getEmail(response);
57
+ MailApp.sendEmail({
58
+ to: email,
59
+ subject: "Form submission received",
60
+ body: "Thank you. We have recorded your response."
61
+ });
62
+ }
63
+
64
+ function getEmail(response) {
65
+ const items = response.getItemResponses();
66
+ for (const item of items) {
67
+ if (item.getItem().getTitle().toLowerCase().includes("email")) {
68
+ return item.getResponse();
69
+ }
70
+ }
71
+ return Session.getActiveUser().getEmail();
72
+ }
73
+ ```
74
+
75
+ ### Example 2: Log each response to a Google Sheet
76
+
77
+ ```javascript
78
+ function onFormSubmit(e) {
79
+ const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("Responses");
80
+ const itemResponses = e.response.getItemResponses();
81
+ const row = [new Date()].concat(itemResponses.map(r => r.getResponse()));
82
+ sheet.appendRow(row);
83
+ }
84
+ ```
85
+
86
+ ### Example 3: Branch on a multiple-choice answer
87
+
88
+ ```javascript
89
+ function onFormSubmit(e) {
90
+ const items = e.response.getItemResponses();
91
+ for (const item of items) {
92
+ if (item.getItem().getTitle().toLowerCase() === "priority") {
93
+ const priority = item.getResponse();
94
+ const subject = priority === "High" ? "[URGENT] " : "";
95
+ MailApp.sendEmail({ to: MANAGER_EMAIL, subject: subject + "New submission", body: itemResponsesText(e) });
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ ## Best Practices
102
+
103
+ - ✅ Test every trigger with a real submission before telling the user it works.
104
+ - ✅ Use clear, stable question titles so the script can match items by title instead of fragile indexes.
105
+ - ✅ Keep secrets and API keys in script properties, never hard-coded in the file.
106
+ - ✅ Add try/catch around handler logic and log errors with `Logger.log` so failures surface in the Executions page.
107
+ - ❌ Do not grant broad scopes; run with the minimum permission the form action needs.
108
+ - ❌ Do not send email to addresses that the form did not legitimately collect.
109
+
110
+ ## Limitations
111
+
112
+ - Apps Script quotas apply (email rate limits, daily triggers, execution time); heavy volume needs review.
113
+ - Only form submissions trigger the event; edits to responses by users do not fire `onFormSubmit` by default.
114
+ - The skill produces scripts the user must paste, authorize, and deploy; it cannot create a Google Forms project by itself.
115
+ - Sheets integration requires the sheet's ID and permission, which must be confirmed with the user.
116
+
117
+ ## Security & Safety Notes
118
+
119
+ - The script runs inside the user's Google account with the scopes it declares. Review the authorization prompt and grant only the minimum requested scope.
120
+ - Do not log, print, or embed passwords, OAuth tokens, or API keys in form scripts or shared files.
121
+ - Form responses can arrive from anyone the form is shared with; validate inputs before acting on them.
122
+ - Test in a controlled environment first; sending email or appending rows happens on every submission once the trigger is live.
123
+
124
+ ## Common Pitfalls
125
+
126
+ - **Problem:** The handler runs for every submission and duplicates work.
127
+ **Solution:** Prefer the single event object `e.response`; do not separately query the form's stored responses inside `onFormSubmit`.
128
+ - **Problem:** `item.getResponse()` returns `undefined` for optional questions.
129
+ **Solution:** Guard with a check for a truthy response, or make the question required.
130
+ - **Problem:** The email goes to the wrong address.
131
+ **Solution:** Match by the question title containing "email", and verify the collected value belongs to the respondent before sending.
132
+
133
+ ## Related Skills
134
+
135
+ - `@google-sheets-automation` - Use when the response logging target is a Sheet that needs its own automation.
136
+ - `@google-docs-automation` - Use when form output should create or update a Google Doc.
@@ -0,0 +1,468 @@
1
+ ---
2
+ name: gpu-kubernetes-operations
3
+ description: Operate GPU-backed Kubernetes clusters for AI inference and training
4
+ with scheduling, autoscaling, node health, MIG partitioning, and cost controls.
5
+ category: devops
6
+ risk: critical
7
+ source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
8
+ source_repo: BagelHole/DevOps-Security-Agent-Skills
9
+ source_type: community
10
+ date_added: '2026-09-20'
11
+ license: MIT
12
+ license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
13
+ compatibility: Requires the relevant OS/platform tooling and privileged access where
14
+ noted. Docs-only; helper scripts and templates not bundled.
15
+ metadata:
16
+ author: devops-skills
17
+ version: '1.0'
18
+ ---
19
+
20
+ # GPU Kubernetes Operations
21
+
22
+ Run resilient and cost-efficient GPU clusters for production AI workloads.
23
+
24
+ ## When to Use This Skill
25
+
26
+ - Setting up GPU node pools in Kubernetes for AI inference or training
27
+ - Configuring NVIDIA device plugin and GPU operator
28
+ - Implementing MIG partitioning to share GPUs across workloads
29
+ - Building GPU-aware autoscaling policies
30
+ - Monitoring GPU health with DCGM and Prometheus
31
+ - Troubleshooting GPU scheduling, driver, or OOM issues
32
+
33
+ ## Prerequisites
34
+
35
+ - Kubernetes 1.28+ cluster with GPU-capable nodes
36
+ - NVIDIA GPUs (A10, L4, A100, H100, or similar)
37
+ - NVIDIA drivers installed on nodes (535+ recommended)
38
+ - Helm 3 for operator and plugin installation
39
+ - Prometheus stack for metrics collection
40
+
41
+ ## NVIDIA GPU Operator Installation
42
+
43
+ The GPU Operator automates driver, toolkit, device plugin, and DCGM deployment.
44
+
45
+ ```bash
46
+ # Add NVIDIA Helm repo
47
+ helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
48
+ helm repo update
49
+
50
+ # Install GPU Operator
51
+ helm install gpu-operator nvidia/gpu-operator \
52
+ --namespace gpu-operator \
53
+ --create-namespace \
54
+ --set driver.enabled=true \
55
+ --set toolkit.enabled=true \
56
+ --set devicePlugin.enabled=true \
57
+ --set dcgmExporter.enabled=true \
58
+ --set migManager.enabled=true \
59
+ --set nodeStatusExporter.enabled=true \
60
+ --version v24.3.0
61
+
62
+ # Verify installation
63
+ kubectl get pods -n gpu-operator
64
+ kubectl get nodes -o json | jq '.items[].status.allocatable["nvidia.com/gpu"]'
65
+ ```
66
+
67
+ ## NVIDIA Device Plugin (Standalone)
68
+
69
+ If not using the GPU Operator, deploy the device plugin directly.
70
+
71
+ ```yaml
72
+ # nvidia-device-plugin.yaml
73
+ apiVersion: apps/v1
74
+ kind: DaemonSet
75
+ metadata:
76
+ name: nvidia-device-plugin
77
+ namespace: kube-system
78
+ spec:
79
+ selector:
80
+ matchLabels:
81
+ name: nvidia-device-plugin
82
+ template:
83
+ metadata:
84
+ labels:
85
+ name: nvidia-device-plugin
86
+ spec:
87
+ tolerations:
88
+ - key: nvidia.com/gpu
89
+ operator: Exists
90
+ effect: NoSchedule
91
+ priorityClassName: system-node-critical
92
+ containers:
93
+ - name: nvidia-device-plugin
94
+ image: nvcr.io/nvidia/k8s-device-plugin:v0.15.0
95
+ securityContext:
96
+ privileged: true
97
+ env:
98
+ - name: FAIL_ON_INIT_ERROR
99
+ value: "false"
100
+ - name: DEVICE_SPLIT_COUNT
101
+ value: "1"
102
+ - name: DEVICE_LIST_STRATEGY
103
+ value: "envvar"
104
+ volumeMounts:
105
+ - name: device-plugin
106
+ mountPath: /var/lib/kubelet/device-plugins
107
+ volumes:
108
+ - name: device-plugin
109
+ hostPath:
110
+ path: /var/lib/kubelet/device-plugins
111
+ ```
112
+
113
+ ## MIG (Multi-Instance GPU) Partitioning
114
+
115
+ MIG allows a single A100 or H100 to be split into isolated GPU instances.
116
+
117
+ ```yaml
118
+ # mig-config.yaml - ConfigMap for MIG Manager
119
+ apiVersion: v1
120
+ kind: ConfigMap
121
+ metadata:
122
+ name: mig-parted-config
123
+ namespace: gpu-operator
124
+ data:
125
+ config.yaml: |
126
+ version: v1
127
+ mig-configs:
128
+ # 7 small instances for inference microservices
129
+ all-1g.10gb:
130
+ - devices: all
131
+ mig-enabled: true
132
+ mig-devices:
133
+ "1g.10gb": 7
134
+
135
+ # 3 medium instances for mid-size models
136
+ all-2g.20gb:
137
+ - devices: all
138
+ mig-enabled: true
139
+ mig-devices:
140
+ "2g.20gb": 3
141
+
142
+ # Mixed: 1 large + 2 small
143
+ mixed-inference:
144
+ - devices: all
145
+ mig-enabled: true
146
+ mig-devices:
147
+ "3g.40gb": 1
148
+ "1g.10gb": 4
149
+
150
+ # Full GPU for training (no partitioning)
151
+ all-disabled:
152
+ - devices: all
153
+ mig-enabled: false
154
+ ```
155
+
156
+ ```bash
157
+ # Apply MIG profile to a node
158
+ kubectl label nodes gpu-node-01 nvidia.com/mig.config=all-1g.10gb --overwrite
159
+
160
+ # Verify MIG instances
161
+ kubectl exec -it nvidia-device-plugin-xxxxx -n kube-system -- nvidia-smi mig -lgi
162
+
163
+ # Check available MIG resources
164
+ kubectl get nodes gpu-node-01 -o json | jq '.status.allocatable | with_entries(select(.key | startswith("nvidia.com")))'
165
+ ```
166
+
167
+ ### Requesting MIG Slices in Pods
168
+
169
+ ```yaml
170
+ # pod-with-mig.yaml
171
+ apiVersion: v1
172
+ kind: Pod
173
+ metadata:
174
+ name: inference-small
175
+ spec:
176
+ containers:
177
+ - name: model
178
+ image: registry.internal/vllm-server:latest
179
+ resources:
180
+ limits:
181
+ nvidia.com/mig-1g.10gb: 1
182
+ # For medium slice:
183
+ # nvidia.com/mig-2g.20gb: 1
184
+ # For large slice:
185
+ # nvidia.com/mig-3g.40gb: 1
186
+ ```
187
+
188
+ ## GPU Time-Slicing
189
+
190
+ For GPUs that do not support MIG (A10, L4), use time-slicing to share a GPU.
191
+
192
+ ```yaml
193
+ # time-slicing-config.yaml
194
+ apiVersion: v1
195
+ kind: ConfigMap
196
+ metadata:
197
+ name: time-slicing-config
198
+ namespace: gpu-operator
199
+ data:
200
+ any: |-
201
+ version: v1
202
+ flags:
203
+ migStrategy: none
204
+ sharing:
205
+ timeSlicing:
206
+ renameByDefault: false
207
+ failRequestsGreaterThanOne: false
208
+ resources:
209
+ - name: nvidia.com/gpu
210
+ replicas: 4
211
+ ```
212
+
213
+ ```bash
214
+ # Apply time-slicing config
215
+ kubectl patch clusterpolicy/cluster-policy \
216
+ --type merge \
217
+ -p '{"spec":{"devicePlugin":{"config":{"name":"time-slicing-config","default":"any"}}}}'
218
+
219
+ # After applying, each physical GPU appears as 4 virtual GPUs
220
+ kubectl get nodes -o json | jq '.items[].status.allocatable["nvidia.com/gpu"]'
221
+ # Output: "4" per physical GPU
222
+ ```
223
+
224
+ ## DCGM Monitoring
225
+
226
+ ```yaml
227
+ # dcgm-servicemonitor.yaml
228
+ apiVersion: monitoring.coreos.com/v1
229
+ kind: ServiceMonitor
230
+ metadata:
231
+ name: dcgm-exporter
232
+ namespace: gpu-operator
233
+ labels:
234
+ release: prometheus
235
+ spec:
236
+ selector:
237
+ matchLabels:
238
+ app: nvidia-dcgm-exporter
239
+ endpoints:
240
+ - port: gpu-metrics
241
+ interval: 15s
242
+ path: /metrics
243
+ ```
244
+
245
+ ### Key DCGM Metrics and Alert Rules
246
+
247
+ ```yaml
248
+ # gpu-alerts.yaml
249
+ groups:
250
+ - name: gpu-health
251
+ rules:
252
+ - alert: GPUHighTemperature
253
+ expr: DCGM_FI_DEV_GPU_TEMP > 85
254
+ for: 5m
255
+ labels:
256
+ severity: warning
257
+ annotations:
258
+ summary: "GPU {{ $labels.gpu }} temperature above 85C on {{ $labels.node }}"
259
+
260
+ - alert: GPUMemoryPressure
261
+ expr: (DCGM_FI_DEV_FB_USED / DCGM_FI_DEV_FB_FREE) > 0.90
262
+ for: 5m
263
+ labels:
264
+ severity: warning
265
+ annotations:
266
+ summary: "GPU memory above 90% on {{ $labels.node }} GPU {{ $labels.gpu }}"
267
+
268
+ - alert: GPUECCErrors
269
+ expr: increase(DCGM_FI_DEV_ECC_DBE_VOL_TOTAL[1h]) > 0
270
+ labels:
271
+ severity: critical
272
+ annotations:
273
+ summary: "Double-bit ECC errors detected on {{ $labels.node }} GPU {{ $labels.gpu }}"
274
+
275
+ - alert: GPUXidErrors
276
+ expr: increase(DCGM_FI_DEV_XID_ERRORS[5m]) > 0
277
+ labels:
278
+ severity: warning
279
+ annotations:
280
+ summary: "Xid error on {{ $labels.node }} GPU {{ $labels.gpu }}: {{ $labels.xid }}"
281
+
282
+ - alert: GPULowUtilization
283
+ expr: DCGM_FI_DEV_GPU_UTIL < 10 and on(pod) kube_pod_status_phase{phase="Running"} == 1
284
+ for: 30m
285
+ labels:
286
+ severity: info
287
+ annotations:
288
+ summary: "GPU underutilized on {{ $labels.node }} - consider rightsizing"
289
+
290
+ - alert: GPUDriverMismatch
291
+ expr: count(count by (driver_version)(DCGM_FI_DRIVER_VERSION)) > 1
292
+ labels:
293
+ severity: warning
294
+ annotations:
295
+ summary: "Multiple GPU driver versions detected across cluster"
296
+ ```
297
+
298
+ ## GPU Node Pool Configuration
299
+
300
+ ```yaml
301
+ # gpu-nodepool.yaml
302
+ apiVersion: v1
303
+ kind: Node
304
+ metadata:
305
+ labels:
306
+ gpu-type: a100
307
+ gpu-memory: "80gb"
308
+ gpu-mig-capable: "true"
309
+ node-role: gpu-inference
310
+ spec:
311
+ taints:
312
+ - key: nvidia.com/gpu
313
+ value: "true"
314
+ effect: NoSchedule
315
+ ---
316
+ # Inference deployment with GPU scheduling
317
+ apiVersion: apps/v1
318
+ kind: Deployment
319
+ metadata:
320
+ name: llm-inference
321
+ namespace: ai-serving
322
+ spec:
323
+ replicas: 3
324
+ selector:
325
+ matchLabels:
326
+ app: llm-inference
327
+ template:
328
+ metadata:
329
+ labels:
330
+ app: llm-inference
331
+ spec:
332
+ tolerations:
333
+ - key: nvidia.com/gpu
334
+ operator: Exists
335
+ effect: NoSchedule
336
+ nodeSelector:
337
+ gpu-type: a100
338
+ affinity:
339
+ podAntiAffinity:
340
+ preferredDuringSchedulingIgnoredDuringExecution:
341
+ - weight: 100
342
+ podAffinityTerm:
343
+ labelSelector:
344
+ matchLabels:
345
+ app: llm-inference
346
+ topologyKey: kubernetes.io/hostname
347
+ containers:
348
+ - name: vllm
349
+ image: registry.internal/vllm-server:0.4.1
350
+ resources:
351
+ requests:
352
+ nvidia.com/gpu: 1
353
+ cpu: "4"
354
+ memory: "32Gi"
355
+ limits:
356
+ nvidia.com/gpu: 1
357
+ cpu: "8"
358
+ memory: "64Gi"
359
+ env:
360
+ - name: CUDA_VISIBLE_DEVICES
361
+ value: "all"
362
+ ```
363
+
364
+ ## GPU Autoscaling
365
+
366
+ ```yaml
367
+ # gpu-hpa.yaml
368
+ apiVersion: autoscaling/v2
369
+ kind: HorizontalPodAutoscaler
370
+ metadata:
371
+ name: llm-inference-hpa
372
+ namespace: ai-serving
373
+ spec:
374
+ scaleTargetRef:
375
+ apiVersion: apps/v1
376
+ kind: Deployment
377
+ name: llm-inference
378
+ minReplicas: 2
379
+ maxReplicas: 8
380
+ metrics:
381
+ - type: Pods
382
+ pods:
383
+ metric:
384
+ name: DCGM_FI_DEV_GPU_UTIL
385
+ target:
386
+ type: AverageValue
387
+ averageValue: "75"
388
+ - type: Pods
389
+ pods:
390
+ metric:
391
+ name: inference_queue_depth
392
+ target:
393
+ type: AverageValue
394
+ averageValue: "10"
395
+ behavior:
396
+ scaleUp:
397
+ stabilizationWindowSeconds: 60
398
+ policies:
399
+ - type: Pods
400
+ value: 2
401
+ periodSeconds: 120
402
+ scaleDown:
403
+ stabilizationWindowSeconds: 300
404
+ policies:
405
+ - type: Pods
406
+ value: 1
407
+ periodSeconds: 300
408
+ ---
409
+ # Cluster Autoscaler config for GPU node pools
410
+ apiVersion: v1
411
+ kind: ConfigMap
412
+ metadata:
413
+ name: cluster-autoscaler-config
414
+ namespace: kube-system
415
+ data:
416
+ config: |
417
+ expander: priority
418
+ scale-down-delay-after-add: 10m
419
+ scale-down-unneeded-time: 10m
420
+ skip-nodes-with-local-storage: false
421
+ balance-similar-node-groups: true
422
+ expendable-pods-priority-cutoff: -10
423
+ gpu-total:
424
+ - min: 2
425
+ max: 16
426
+ gpu: nvidia.com/gpu
427
+ ```
428
+
429
+ ## Scheduling Patterns
430
+
431
+ - Use node affinity by GPU type (A10/L4/A100/H100).
432
+ - Separate latency-critical inference from batch training.
433
+ - Pin model replicas with anti-affinity for availability.
434
+ - Reserve headroom for failover and rolling updates.
435
+
436
+ ## Cost Optimization
437
+
438
+ - Prefer MIG slices for smaller inference services.
439
+ - Schedule batch jobs in off-peak windows.
440
+ - Route low-priority traffic to cheaper model tiers.
441
+ - Use spot/preemptible instances for training workloads.
442
+ - Monitor GPU utilization and rightsize deployments.
443
+
444
+ ## Troubleshooting
445
+
446
+ | Symptom | Check | Fix |
447
+ |---------|-------|-----|
448
+ | Pod stuck in Pending | `kubectl describe pod` for GPU resource events | Verify node has allocatable GPUs, check taints/tolerations |
449
+ | CUDA OOM during inference | Model too large for GPU memory | Reduce batch size, use quantization, or use MIG slice |
450
+ | DCGM metrics missing | ServiceMonitor labels matching | Verify DCGM exporter pod is running and scrape config |
451
+ | Driver mismatch after upgrade | `nvidia-smi` on each node | Cordon node, drain, upgrade driver, uncordon |
452
+ | GPU not detected | Device plugin pod logs | Restart device plugin, check NVIDIA container toolkit |
453
+ | Time-slicing not working | ConfigMap applied but no extra GPUs | Restart device plugin pods after config change |
454
+ | ECC errors increasing | `nvidia-smi -q -d ECC` | Schedule node drain and hardware replacement |
455
+
456
+ ## Related Skills
457
+
458
+ - llm-inference-scaling (`llm-inference-scaling`) - Autoscale inference workloads
459
+ - model-serving-kubernetes (`model-serving-kubernetes`) - Production model serving patterns
460
+ - gpu-server-management (`gpu-server-management`) - Host-level GPU management fundamentals
461
+ - multi-tenant-llm-hosting (`multi-tenant-llm-hosting`) - Multi-tenant GPU sharing
462
+ - llm-cost-optimization (`llm-cost-optimization`) - Cost optimization strategies
463
+
464
+ ## Limitations
465
+
466
+ - Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
467
+ - Docs-only import: upstream scripts and templates not bundled.
468
+