opencode-skills-collection 4.0.68 → 4.0.70

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 (491) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +304 -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/api-integration-architect/SKILL.md +241 -0
  19. package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
  20. package/bundled-skills/apify-integration-development/SKILL.md +168 -0
  21. package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
  22. package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
  23. package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
  24. package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
  25. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  26. package/bundled-skills/architecture-review/README.md +42 -0
  27. package/bundled-skills/architecture-review/SKILL.md +77 -0
  28. package/bundled-skills/architecture-review/examples.md +11 -0
  29. package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
  30. package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
  31. package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
  32. package/bundled-skills/architecture-review/reference/graph.md +15 -0
  33. package/bundled-skills/architecture-review/reference/mcp.md +14 -0
  34. package/bundled-skills/architecture-review/reference/workflow.md +15 -0
  35. package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
  36. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  37. package/bundled-skills/arm-templates/SKILL.md +438 -0
  38. package/bundled-skills/arm-templates/references/details.md +64 -0
  39. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  40. package/bundled-skills/asset-inventory/references/details.md +127 -0
  41. package/bundled-skills/audit-logging/SKILL.md +476 -0
  42. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  43. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  44. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  45. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  46. package/bundled-skills/aws-iam/SKILL.md +463 -0
  47. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  48. package/bundled-skills/aws-rds/SKILL.md +380 -0
  49. package/bundled-skills/aws-s3/SKILL.md +434 -0
  50. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  51. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  52. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  53. package/bundled-skills/azure-aks/SKILL.md +423 -0
  54. package/bundled-skills/azure-devops/SKILL.md +457 -0
  55. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  56. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  57. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  58. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  59. package/bundled-skills/azure-networking/SKILL.md +448 -0
  60. package/bundled-skills/azure-networking/references/details.md +135 -0
  61. package/bundled-skills/azure-sql/SKILL.md +413 -0
  62. package/bundled-skills/azure-sql/references/details.md +113 -0
  63. package/bundled-skills/azure-vms/SKILL.md +402 -0
  64. package/bundled-skills/azure-vms/references/details.md +134 -0
  65. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  66. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  67. package/bundled-skills/bb-methodology/references/details.md +120 -0
  68. package/bundled-skills/block-storage/SKILL.md +371 -0
  69. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  70. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  71. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  72. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  73. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  74. package/bundled-skills/business-continuity/SKILL.md +463 -0
  75. package/bundled-skills/career-ops/SKILL.md +186 -0
  76. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  77. package/bundled-skills/change-management/SKILL.md +438 -0
  78. package/bundled-skills/change-management/references/details.md +105 -0
  79. package/bundled-skills/circleci/SKILL.md +475 -0
  80. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  81. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  82. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  83. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  84. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  85. package/bundled-skills/cloudformation/SKILL.md +461 -0
  86. package/bundled-skills/code-review-sensei/SKILL.md +177 -0
  87. package/bundled-skills/codebase-onboarding/README.md +42 -0
  88. package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
  89. package/bundled-skills/codebase-onboarding/examples.md +11 -0
  90. package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
  91. package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
  92. package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
  93. package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
  94. package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
  95. package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
  96. package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
  97. package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
  98. package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
  99. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  100. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  101. package/bundled-skills/container-hardening/SKILL.md +126 -0
  102. package/bundled-skills/container-registries/SKILL.md +435 -0
  103. package/bundled-skills/container-scanning/SKILL.md +416 -0
  104. package/bundled-skills/convex-backend/SKILL.md +338 -0
  105. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  106. package/bundled-skills/database-backups/SKILL.md +425 -0
  107. package/bundled-skills/datadog/SKILL.md +487 -0
  108. package/bundled-skills/dependency-analysis/README.md +42 -0
  109. package/bundled-skills/dependency-analysis/SKILL.md +76 -0
  110. package/bundled-skills/dependency-analysis/examples.md +11 -0
  111. package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
  112. package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
  113. package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
  114. package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
  115. package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
  116. package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
  117. package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
  118. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  119. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  120. package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
  121. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  122. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  123. package/bundled-skills/dns-management/SKILL.md +375 -0
  124. package/bundled-skills/docker-compose/SKILL.md +482 -0
  125. package/bundled-skills/docker-management/SKILL.md +426 -0
  126. package/bundled-skills/eas-app-stores/SKILL.md +197 -0
  127. package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
  128. package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
  129. package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
  130. package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
  131. package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
  132. package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
  133. package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
  134. package/bundled-skills/eas-hosting/SKILL.md +448 -0
  135. package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
  136. package/bundled-skills/eas-observe/SKILL.md +75 -0
  137. package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
  138. package/bundled-skills/eas-observe/references/metrics.md +98 -0
  139. package/bundled-skills/eas-observe/references/queries.md +403 -0
  140. package/bundled-skills/eas-observe/references/setup.md +476 -0
  141. package/bundled-skills/eas-observe/references/third-party.md +136 -0
  142. package/bundled-skills/eas-simulator/SKILL.md +251 -0
  143. package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
  144. package/bundled-skills/eas-simulator/references/controllers.md +135 -0
  145. package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
  146. package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
  147. package/bundled-skills/eas-workflows/SKILL.md +119 -0
  148. package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
  149. package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
  150. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  151. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  152. package/bundled-skills/elk-stack/SKILL.md +487 -0
  153. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  154. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  155. package/bundled-skills/expo-animation/LICENSE +21 -0
  156. package/bundled-skills/expo-animation/RECIPES.md +385 -0
  157. package/bundled-skills/expo-animation/SKILL.md +295 -0
  158. package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
  159. package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
  160. package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
  161. package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
  162. package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
  163. package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
  164. package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
  165. package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
  166. package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
  167. package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
  168. package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
  169. package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
  170. package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
  171. package/bundled-skills/feature-flags/SKILL.md +426 -0
  172. package/bundled-skills/feature-flags/references/details.md +86 -0
  173. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  174. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  175. package/bundled-skills/firewall-config/SKILL.md +479 -0
  176. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  177. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  178. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  179. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  180. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  181. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  182. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  183. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  184. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  185. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  186. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  187. package/bundled-skills/geo-audit/SKILL.md +368 -0
  188. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  189. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  190. package/bundled-skills/geo-citability/SKILL.md +350 -0
  191. package/bundled-skills/geo-compare/SKILL.md +340 -0
  192. package/bundled-skills/geo-content/SKILL.md +383 -0
  193. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  194. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  195. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  196. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  197. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  198. package/bundled-skills/geo-report/SKILL.md +436 -0
  199. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  200. package/bundled-skills/geo-schema/SKILL.md +408 -0
  201. package/bundled-skills/geo-technical/SKILL.md +78 -0
  202. package/bundled-skills/geo-technical/references/details.md +543 -0
  203. package/bundled-skills/git-workflow/SKILL.md +460 -0
  204. package/bundled-skills/github-actions/SKILL.md +368 -0
  205. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  206. package/bundled-skills/gpt-taste/SKILL.md +8 -1
  207. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  208. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  209. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  210. package/bundled-skills/helm-charts/SKILL.md +469 -0
  211. package/bundled-skills/hf-cli/SKILL.md +263 -0
  212. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  213. package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
  214. package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
  215. package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  216. package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  217. package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  218. package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  219. package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
  220. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  221. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  222. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  223. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  224. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  225. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  226. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  227. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  228. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  229. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  230. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  231. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  232. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  233. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  234. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  235. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  236. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  237. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  238. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  239. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  240. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  241. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  242. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  243. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  244. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  245. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  246. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  247. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  248. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  249. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  250. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  251. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  252. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  253. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  254. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  255. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  256. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  257. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  258. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  259. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  260. package/bundled-skills/hunt-rce/references/details.md +110 -0
  261. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  262. package/bundled-skills/hunt-session/SKILL.md +342 -0
  263. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  264. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  265. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  266. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  267. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  268. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  269. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  270. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  271. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  272. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  273. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  274. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  275. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  276. package/bundled-skills/identity-access-management/references/details.md +524 -0
  277. package/bundled-skills/incident-management/SKILL.md +484 -0
  278. package/bundled-skills/incident-response/SKILL.md +448 -0
  279. package/bundled-skills/incident-response/references/details.md +113 -0
  280. package/bundled-skills/interview-me/SKILL.md +248 -0
  281. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  282. package/bundled-skills/jenkins/SKILL.md +462 -0
  283. package/bundled-skills/jev-social/SKILL.md +182 -0
  284. package/bundled-skills/jev-use/SKILL.md +158 -0
  285. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  286. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  287. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  288. package/bundled-skills/kustomize/SKILL.md +478 -0
  289. package/bundled-skills/linux-administration/SKILL.md +367 -0
  290. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  291. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  292. package/bundled-skills/llm-app-security/references/details.md +674 -0
  293. package/bundled-skills/llm-caching/SKILL.md +334 -0
  294. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  295. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  296. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  297. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  298. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  299. package/bundled-skills/load-balancing/SKILL.md +403 -0
  300. package/bundled-skills/loki-logging/SKILL.md +479 -0
  301. package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
  302. package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
  303. package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
  304. package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
  305. package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
  306. package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
  307. package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
  308. package/bundled-skills/longbridge-quant/SKILL.md +151 -0
  309. package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
  310. package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
  311. package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
  312. package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
  313. package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
  314. package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
  315. package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
  316. package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
  317. package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
  318. package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
  319. package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
  320. package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
  321. package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
  322. package/bundled-skills/longbridge-research/SKILL.md +187 -0
  323. package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
  324. package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
  325. package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
  326. package/bundled-skills/longbridge-research/references/consensus.md +92 -0
  327. package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
  328. package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
  329. package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
  330. package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
  331. package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
  332. package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
  333. package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
  334. package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
  335. package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
  336. package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
  337. package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
  338. package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
  339. package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
  340. package/bundled-skills/longbridge-research/references/investors.md +87 -0
  341. package/bundled-skills/longbridge-research/references/onchain.md +70 -0
  342. package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
  343. package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
  344. package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
  345. package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
  346. package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
  347. package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
  348. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  349. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  350. package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
  351. package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
  352. package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
  353. package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
  354. package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
  355. package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
  356. package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
  357. package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
  358. package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
  359. package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
  360. package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
  361. package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
  362. package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
  363. package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
  364. package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
  365. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  366. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  367. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  368. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  369. package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
  370. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  371. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  372. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  373. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  374. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  375. package/bundled-skills/mongodb/SKILL.md +436 -0
  376. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
  377. package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
  378. package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
  379. package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
  380. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  381. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  382. package/bundled-skills/mysql/SKILL.md +390 -0
  383. package/bundled-skills/new-relic/SKILL.md +472 -0
  384. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  385. package/bundled-skills/object-storage/SKILL.md +378 -0
  386. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  387. package/bundled-skills/okta-attack/SKILL.md +436 -0
  388. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  389. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  390. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  391. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  392. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  393. package/bundled-skills/openshift/SKILL.md +485 -0
  394. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  395. package/bundled-skills/opentelemetry/references/details.md +78 -0
  396. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  397. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  398. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  399. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  400. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  401. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  402. package/bundled-skills/planetscale/SKILL.md +297 -0
  403. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  404. package/bundled-skills/platform-engineering/references/details.md +944 -0
  405. package/bundled-skills/podman/SKILL.md +405 -0
  406. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  407. package/bundled-skills/policy-as-code/references/details.md +204 -0
  408. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  409. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  410. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  411. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  412. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  413. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  414. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  415. package/bundled-skills/redis/SKILL.md +421 -0
  416. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  417. package/bundled-skills/remotion-captions/SKILL.md +57 -0
  418. package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
  419. package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
  420. package/bundled-skills/remotion-captions/display-captions.md +190 -0
  421. package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
  422. package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
  423. package/bundled-skills/remotion-create/SKILL.md +106 -0
  424. package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
  425. package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
  426. package/bundled-skills/remotion-create/tailwind.md +11 -0
  427. package/bundled-skills/remotion-create/video-layout.md +9 -0
  428. package/bundled-skills/remotion-docs/SKILL.md +67 -0
  429. package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
  430. package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
  431. package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
  432. package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
  433. package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
  434. package/bundled-skills/remotion-render/SKILL.md +48 -0
  435. package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
  436. package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
  437. package/bundled-skills/remotion-render/transparent-videos.md +106 -0
  438. package/bundled-skills/report-writing/SKILL.md +426 -0
  439. package/bundled-skills/report-writing/references/details.md +187 -0
  440. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  441. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  442. package/bundled-skills/runbook-creation/references/details.md +71 -0
  443. package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
  444. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  445. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  446. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  447. package/bundled-skills/score-eval/SKILL.md +35 -0
  448. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  449. package/bundled-skills/security-arsenal/references/details.md +540 -0
  450. package/bundled-skills/security-automation/SKILL.md +146 -0
  451. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  452. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  453. package/bundled-skills/service-mesh/SKILL.md +422 -0
  454. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  455. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  456. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  457. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  458. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  459. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  460. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  461. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  462. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  463. package/bundled-skills/systemd-services/SKILL.md +379 -0
  464. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  465. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  466. package/bundled-skills/terraform-azure/references/details.md +231 -0
  467. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  468. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  469. package/bundled-skills/user-management/SKILL.md +383 -0
  470. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  471. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  472. package/bundled-skills/vendor-management/SKILL.md +439 -0
  473. package/bundled-skills/vendor-management/references/details.md +109 -0
  474. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  475. package/bundled-skills/vllm-server/SKILL.md +236 -0
  476. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  477. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  478. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  479. package/bundled-skills/waf-setup/SKILL.md +354 -0
  480. package/bundled-skills/waf-setup/references/details.md +211 -0
  481. package/bundled-skills/web2-recon/SKILL.md +440 -0
  482. package/bundled-skills/web2-recon/references/details.md +319 -0
  483. package/bundled-skills/web3-audit/SKILL.md +445 -0
  484. package/bundled-skills/web3-audit/references/details.md +224 -0
  485. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  486. package/bundled-skills/windows-hardening/references/details.md +204 -0
  487. package/bundled-skills/windows-server/SKILL.md +318 -0
  488. package/bundled-skills/writing-guidelines/SKILL.md +60 -0
  489. package/bundled-skills/zero-trust/SKILL.md +461 -0
  490. package/package.json +1 -1
  491. package/skills_index.json +7874 -277
@@ -0,0 +1,394 @@
1
+ ---
2
+ name: access-review
3
+ description: Conduct periodic access reviews and certifications. Implement access
4
+ governance and recertification workflows. Use when managing access compliance.
5
+ category: security
6
+ risk: safe
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: Checklist and framework guidance; no privileged tooling required. Apply
14
+ controls through your own change process.
15
+ metadata:
16
+ author: devops-skills
17
+ version: '1.0'
18
+ ---
19
+
20
+ # Access Review
21
+
22
+ Implement periodic access review processes for AWS IAM, GitHub, Okta, and other identity providers, including automated reporting, certification workflows, and unused permission detection.
23
+
24
+ ## Access Review Process
25
+
26
+ ```yaml
27
+ access_review_workflow:
28
+ 1_scope:
29
+ actions:
30
+ - Define systems in scope for the review cycle
31
+ - Identify review owners (managers, system owners)
32
+ - Set review timeline and deadlines
33
+ - Generate access inventory from all identity sources
34
+ frequency:
35
+ privileged_access: Quarterly
36
+ standard_access: Semi-annually
37
+ service_accounts: Quarterly
38
+ api_keys: Monthly
39
+
40
+ 2_extract:
41
+ actions:
42
+ - Pull current access data from all systems
43
+ - Correlate identities across platforms (SSO mapping)
44
+ - Enrich with last login and activity data
45
+ - Flag accounts for review (inactive, over-privileged, orphaned)
46
+
47
+ 3_review:
48
+ actions:
49
+ - Assign review items to appropriate managers
50
+ - Manager certifies each user's access (approve/revoke/modify)
51
+ - Risk-based prioritization (privileged users reviewed first)
52
+ - Escalate non-responses after deadline
53
+ decisions:
54
+ approve: "Access is appropriate for current role"
55
+ modify: "Access needs adjustment (reduce/change scope)"
56
+ revoke: "Access is no longer needed"
57
+
58
+ 4_remediate:
59
+ actions:
60
+ - Revoke access flagged for removal
61
+ - Modify access as directed by reviewers
62
+ - Document exceptions with justification
63
+ - Confirm changes with system owners
64
+ sla:
65
+ revocations: "Complete within 5 business days of decision"
66
+ modifications: "Complete within 10 business days"
67
+ exceptions: "Approved by security team, documented, time-limited"
68
+
69
+ 5_report:
70
+ actions:
71
+ - Generate completion metrics (% reviewed, % on time)
72
+ - Document all decisions and actions taken
73
+ - Archive evidence for compliance audits
74
+ - Identify process improvements for next cycle
75
+ ```
76
+
77
+ ## AWS IAM Access Review Scripts
78
+
79
+ ```bash
80
+ #!/usr/bin/env bash
81
+ # aws-iam-review.sh - Comprehensive IAM access review report
82
+
83
+ OUTPUT_DIR="./access-review/$(date +%Y-%m)"
84
+ mkdir -p "$OUTPUT_DIR"
85
+
86
+ echo "=== AWS IAM Access Review ==="
87
+
88
+ # Generate credential report
89
+ aws iam generate-credential-report > /dev/null
90
+ sleep 10
91
+ aws iam get-credential-report --output text --query Content | \
92
+ base64 -d > "$OUTPUT_DIR/credential-report.csv"
93
+
94
+ echo "--- Users Without MFA ---"
95
+ aws iam get-credential-report --output text --query Content | base64 -d | \ <!-- security-allowlist: documented payload decoding technique reference, do not execute outside authorized scope -->
96
+ awk -F, 'NR>1 && $4=="true" && $8=="false" {print $1}' | \
97
+ tee "$OUTPUT_DIR/users-without-mfa.txt"
98
+
99
+ echo "--- Inactive Users (90+ days) ---"
100
+ THRESHOLD=$(date -d '90 days ago' +%Y-%m-%dT%H:%M:%S 2>/dev/null || date -v-90d +%Y-%m-%dT%H:%M:%S)
101
+ aws iam get-credential-report --output text --query Content | base64 -d | \ <!-- security-allowlist: documented payload decoding technique reference, do not execute outside authorized scope -->
102
+ awk -F, -v t="$THRESHOLD" 'NR>1 && $5!="N/A" && $5!="no_information" && $5<t {
103
+ print $1","$5
104
+ }' | tee "$OUTPUT_DIR/inactive-users.csv"
105
+
106
+ echo "--- Stale Access Keys (90+ days unused) ---"
107
+ for user in $(aws iam list-users --query 'Users[*].UserName' --output text); do
108
+ for key_id in $(aws iam list-access-keys --user-name "$user" \
109
+ --query 'AccessKeyMetadata[?Status==`Active`].AccessKeyId' --output text); do
110
+ last_used=$(aws iam get-access-key-last-used --access-key-id "$key_id" \
111
+ --query 'AccessKeyLastUsed.LastUsedDate' --output text)
112
+ if [ "$last_used" = "None" ] || [ "$last_used" \< "$THRESHOLD" ]; then
113
+ echo "$user,$key_id,$last_used"
114
+ fi
115
+ done
116
+ done | tee "$OUTPUT_DIR/stale-access-keys.csv"
117
+
118
+ echo "--- Users With Admin Policies ---"
119
+ for user in $(aws iam list-users --query 'Users[*].UserName' --output text); do
120
+ policies=$(aws iam list-attached-user-policies --user-name "$user" \
121
+ --query 'AttachedPolicies[*].PolicyName' --output text)
122
+ if echo "$policies" | grep -qi "admin\|fullaccess"; then
123
+ groups=$(aws iam list-groups-for-user --user-name "$user" \
124
+ --query 'Groups[*].GroupName' --output text)
125
+ echo "$user|policies:$policies|groups:$groups"
126
+ fi
127
+ done | tee "$OUTPUT_DIR/admin-users.txt"
128
+
129
+ echo "--- IAM Roles With Cross-Account Trust ---"
130
+ for role in $(aws iam list-roles --query 'Roles[*].RoleName' --output text); do
131
+ trust=$(aws iam get-role --role-name "$role" \
132
+ --query 'Role.AssumeRolePolicyDocument' --output json 2>/dev/null)
133
+ if echo "$trust" | grep -q '"AWS"' && echo "$trust" | grep -qv "$(aws sts get-caller-identity --query Account --output text)"; then
134
+ echo "$role: $trust" | jq -c '.Statement[].Principal'
135
+ fi
136
+ done | tee "$OUTPUT_DIR/cross-account-roles.txt"
137
+
138
+ echo "--- Service Accounts (Programmatic Only) ---"
139
+ aws iam get-credential-report --output text --query Content | base64 -d | \ <!-- security-allowlist: documented payload decoding technique reference, do not execute outside authorized scope -->
140
+ awk -F, 'NR>1 && $4=="false" && $9!="N/A" {print $1","$11","$16}' | \
141
+ tee "$OUTPUT_DIR/service-accounts.csv"
142
+
143
+ echo "Report generated in $OUTPUT_DIR"
144
+ ```
145
+
146
+ ## GitHub Access Review
147
+
148
+ ```bash
149
+ #!/usr/bin/env bash
150
+ # github-access-review.sh - GitHub organization access audit
151
+
152
+ ORG="your-org"
153
+ OUTPUT_DIR="./access-review/github/$(date +%Y-%m)"
154
+ mkdir -p "$OUTPUT_DIR"
155
+
156
+ echo "=== GitHub Organization Access Review ==="
157
+
158
+ echo "--- Organization Members ---"
159
+ gh api orgs/$ORG/members --paginate \
160
+ --jq '.[] | [.login, .site_admin] | @csv' \
161
+ > "$OUTPUT_DIR/org-members.csv"
162
+
163
+ echo "--- Organization Owners ---"
164
+ gh api "orgs/$ORG/members?role=admin" --paginate \
165
+ --jq '.[] | .login' \
166
+ > "$OUTPUT_DIR/org-owners.txt"
167
+
168
+ echo "--- Outside Collaborators ---"
169
+ gh api orgs/$ORG/outside_collaborators --paginate \
170
+ --jq '.[] | .login' \
171
+ > "$OUTPUT_DIR/outside-collaborators.txt"
172
+
173
+ echo "--- Repository Access Per Repo ---"
174
+ for repo in $(gh repo list $ORG --json name -q '.[].name' --limit 500); do
175
+ echo "Repo: $repo"
176
+ gh api "repos/$ORG/$repo/collaborators" --paginate \
177
+ --jq '.[] | [.login, .role_name] | @csv' \
178
+ > "$OUTPUT_DIR/repo-$repo-access.csv" 2>/dev/null
179
+ done
180
+
181
+ echo "--- Team Memberships ---"
182
+ for team in $(gh api orgs/$ORG/teams --paginate --jq '.[].slug'); do
183
+ echo "Team: $team"
184
+ gh api "orgs/$ORG/teams/$team/members" --paginate \
185
+ --jq '.[] | .login' \
186
+ > "$OUTPUT_DIR/team-$team-members.txt"
187
+ done
188
+
189
+ echo "--- Pending Invitations ---"
190
+ gh api orgs/$ORG/invitations --paginate \
191
+ --jq '.[] | [.login, .email, .role, .created_at] | @csv' \
192
+ > "$OUTPUT_DIR/pending-invitations.csv"
193
+
194
+ echo "--- Deploy Keys ---"
195
+ for repo in $(gh repo list $ORG --json name -q '.[].name' --limit 500); do
196
+ keys=$(gh api "repos/$ORG/$repo/keys" --jq '.[].title' 2>/dev/null)
197
+ if [ -n "$keys" ]; then
198
+ echo "$repo: $keys"
199
+ fi
200
+ done > "$OUTPUT_DIR/deploy-keys.txt"
201
+
202
+ echo "--- Branch Protection Rules ---"
203
+ for repo in $(gh repo list $ORG --json name -q '.[].name' --limit 500); do
204
+ protection=$(gh api "repos/$ORG/$repo/branches/main/protection" 2>/dev/null)
205
+ if [ $? -eq 0 ]; then
206
+ echo "$repo: protected"
207
+ echo "$protection" | jq '{required_reviews: .required_pull_request_reviews.required_approving_review_count, dismiss_stale: .required_pull_request_reviews.dismiss_stale_reviews}' \
208
+ > "$OUTPUT_DIR/branch-protection-$repo.json"
209
+ else
210
+ echo "$repo: NOT protected" >> "$OUTPUT_DIR/unprotected-repos.txt"
211
+ fi
212
+ done
213
+
214
+ echo "Report generated in $OUTPUT_DIR"
215
+ ```
216
+
217
+ ## Okta Access Review
218
+
219
+ ```bash
220
+ #!/usr/bin/env bash
221
+ # okta-access-review.sh - Okta user and application access audit
222
+ # Requires OKTA_DOMAIN and OKTA_API_TOKEN environment variables
223
+
224
+ OUTPUT_DIR="./access-review/okta/$(date +%Y-%m)"
225
+ mkdir -p "$OUTPUT_DIR"
226
+ BASE_URL="https://${OKTA_DOMAIN}/api/v1"
227
+
228
+ echo "=== Okta Access Review ==="
229
+
230
+ echo "--- Active Users ---"
231
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
232
+ "$BASE_URL/users?filter=status+eq+%22ACTIVE%22&limit=200" | \
233
+ jq -r '.[] | [.profile.email, .profile.firstName, .profile.lastName, .lastLogin, .created] | @csv' \
234
+ > "$OUTPUT_DIR/active-users.csv"
235
+
236
+ echo "--- Suspended/Deprovisioned Users ---"
237
+ for status in SUSPENDED DEPROVISIONED; do
238
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
239
+ "$BASE_URL/users?filter=status+eq+%22$status%22&limit=200" | \
240
+ jq -r '.[] | [.profile.email, .status, .statusChanged] | @csv'
241
+ done > "$OUTPUT_DIR/inactive-users.csv"
242
+
243
+ echo "--- Users Without MFA Enrolled ---"
244
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
245
+ "$BASE_URL/users?limit=200" | \
246
+ jq -r '.[] | .id' | while read -r uid; do
247
+ factors=$(curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
248
+ "$BASE_URL/users/$uid/factors" | jq 'length')
249
+ if [ "$factors" -eq 0 ]; then
250
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
251
+ "$BASE_URL/users/$uid" | jq -r '.profile.email'
252
+ fi
253
+ done > "$OUTPUT_DIR/users-without-mfa.txt"
254
+
255
+ echo "--- Application Assignments ---"
256
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
257
+ "$BASE_URL/apps?limit=200" | \
258
+ jq -r '.[] | [.id, .label, .status] | @csv' | while IFS=, read -r app_id app_name status; do
259
+ echo "App: $app_name"
260
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
261
+ "$BASE_URL/apps/$app_id/users?limit=200" | \
262
+ jq -r '.[] | [.credentials.userName // .profile.email, .status] | @csv'
263
+ done > "$OUTPUT_DIR/app-assignments.csv"
264
+
265
+ echo "--- Admin Role Assignments ---"
266
+ curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
267
+ "$BASE_URL/users?limit=200" | \
268
+ jq -r '.[] | .id' | while read -r uid; do
269
+ roles=$(curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
270
+ "$BASE_URL/users/$uid/roles" | jq -r '.[].type' 2>/dev/null)
271
+ if [ -n "$roles" ]; then
272
+ email=$(curl -s -H "Authorization: SSWS $OKTA_API_TOKEN" \
273
+ "$BASE_URL/users/$uid" | jq -r '.profile.email')
274
+ echo "$email: $roles"
275
+ fi
276
+ done > "$OUTPUT_DIR/admin-roles.txt"
277
+
278
+ echo "Report generated in $OUTPUT_DIR"
279
+ ```
280
+
281
+ ## Unused Permission Detection
282
+
283
+ ```python
284
+ """
285
+ Detect unused IAM permissions using CloudTrail and IAM Access Analyzer.
286
+ Generates recommendations for right-sizing access.
287
+ """
288
+ import boto3
289
+ import json
290
+ import time
291
+ from datetime import datetime, timedelta, timezone
292
+
293
+
294
+ def analyze_iam_usage(days_lookback=90):
295
+ """Analyze IAM user and role activity against granted permissions."""
296
+ iam = boto3.client("iam")
297
+
298
+ report = {
299
+ "generated_at": datetime.now(timezone.utc).isoformat(),
300
+ "lookback_days": days_lookback,
301
+ "findings": [],
302
+ }
303
+
304
+ users = iam.list_users()["Users"]
305
+ for user in users:
306
+ username = user["UserName"]
307
+
308
+ # Get service last accessed data
309
+ job_id = iam.generate_service_last_accessed_details(
310
+ Arn=user["Arn"]
311
+ )["JobId"]
312
+
313
+ while True:
314
+ result = iam.get_service_last_accessed_details(JobId=job_id)
315
+ if result["JobStatus"] == "COMPLETED":
316
+ break
317
+ time.sleep(2)
318
+
319
+ threshold = datetime.now(timezone.utc) - timedelta(days=days_lookback)
320
+ unused_services = []
321
+
322
+ for service in result["ServicesLastAccessed"]:
323
+ last_accessed = service.get("LastAuthenticated")
324
+ if last_accessed is None or last_accessed < threshold:
325
+ unused_services.append({
326
+ "service": service["ServiceNamespace"],
327
+ "last_accessed": str(last_accessed) if last_accessed else "Never",
328
+ })
329
+
330
+ if unused_services:
331
+ report["findings"].append({
332
+ "type": "unused_permissions",
333
+ "user": username,
334
+ "arn": user["Arn"],
335
+ "unused_service_count": len(unused_services),
336
+ "unused_services": unused_services[:10],
337
+ "recommendation": "Review and remove unused service permissions",
338
+ })
339
+
340
+ return report
341
+
342
+
343
+ def detect_overprivileged_roles():
344
+ """Use IAM Access Analyzer to find overprivileged roles."""
345
+ analyzer = boto3.client("accessanalyzer")
346
+
347
+ findings = analyzer.list_findings(
348
+ analyzerArn="arn:aws:access-analyzer:us-east-1:123456789012:analyzer/org-analyzer",
349
+ filter={
350
+ "status": {"eq": ["ACTIVE"]},
351
+ "resourceType": {"eq": ["AWS::IAM::Role"]},
352
+ },
353
+ )
354
+
355
+ return [
356
+ {
357
+ "resource": f["resource"],
358
+ "resource_type": f["resourceType"],
359
+ "condition": f.get("condition", {}),
360
+ "principal": f.get("principal", {}),
361
+ "action": f.get("action", []),
362
+ "created_at": str(f["createdAt"]),
363
+ }
364
+ for f in findings.get("findings", [])
365
+ ]
366
+ ```
367
+
368
+
369
+ ## Contents
370
+
371
+ - [Certification Workflow Automation](references/details.md)
372
+ - [Access Review Checklist](references/details.md)
373
+ - [Best Practices](references/details.md)
374
+
375
+ ## When to Use
376
+
377
+ - Conducting quarterly or annual access reviews for compliance (SOC 2, HIPAA, PCI DSS, ISO 27001)
378
+ - Identifying and removing stale accounts and unused credentials
379
+ - Certifying that current access levels match job responsibilities
380
+ - Detecting excessive privileges and dormant service accounts
381
+ - Generating evidence for auditor requests on access governance
382
+
383
+ ## Limitations
384
+
385
+ - Guidance and checklists only; not legal advice and not a substitute for a qualified auditor.
386
+ - Docs-only import: upstream templates and scripts not bundled.
387
+
388
+ ### Example
389
+
390
+ ```markdown
391
+ Map this skill's control checklist to our current evidence and list gaps.
392
+ ```
393
+
394
+ > Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
@@ -0,0 +1,121 @@
1
+ # Details (moved from SKILL.md)
2
+
3
+ > Extended reference content for `access-review`, kept under `references/` so the entrypoint stays within the audit budget.
4
+
5
+ ## Certification Workflow Automation
6
+
7
+ ```yaml
8
+ # GitHub Actions - Automated access review reminder and tracking
9
+ name: Quarterly Access Review
10
+ on:
11
+ schedule:
12
+ - cron: '0 9 1 1,4,7,10 *' # First day of each quarter
13
+ workflow_dispatch:
14
+
15
+ jobs:
16
+ generate-review:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Generate access reports
22
+ env:
23
+ AWS_ACCESS_KEY_ID: ${{ secrets.AUDIT_AWS_KEY }}
24
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AUDIT_AWS_SECRET }}
25
+ OKTA_DOMAIN: ${{ secrets.OKTA_DOMAIN }}
26
+ OKTA_API_TOKEN: ${{ secrets.OKTA_API_TOKEN }}
27
+ run: |
28
+ bash scripts/aws-iam-review.sh
29
+ bash scripts/github-access-review.sh
30
+ bash scripts/okta-access-review.sh
31
+
32
+ - name: Create review issue
33
+ env:
34
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35
+ run: |
36
+ QUARTER="Q$(( ($(date +%-m) - 1) / 3 + 1 )) $(date +%Y)"
37
+ MFA_MISSING=$(wc -l < access-review/$(date +%Y-%m)/users-without-mfa.txt)
38
+ INACTIVE=$(wc -l < access-review/$(date +%Y-%m)/inactive-users.csv)
39
+ STALE_KEYS=$(wc -l < access-review/$(date +%Y-%m)/stale-access-keys.csv)
40
+
41
+ gh issue create \
42
+ --title "Access Review - $QUARTER" \
43
+ --label "compliance,access-review" \
44
+ --body "## Quarterly Access Review - $QUARTER
45
+
46
+ ### Summary
47
+ - Users without MFA: **$MFA_MISSING**
48
+ - Inactive users (90+ days): **$INACTIVE**
49
+ - Stale access keys: **$STALE_KEYS**
50
+
51
+ ### Required Actions
52
+ - [ ] Review and disable inactive users
53
+ - [ ] Enforce MFA for non-compliant users
54
+ - [ ] Rotate or deactivate stale access keys
55
+ - [ ] Review admin/privileged access assignments
56
+ - [ ] Review outside collaborators on GitHub
57
+ - [ ] Certify remaining access is appropriate
58
+ - [ ] Document exceptions with justification
59
+
60
+ ### Deadline
61
+ Complete within 30 days."
62
+
63
+ - name: Upload reports as artifact
64
+ uses: actions/upload-artifact@v4
65
+ with:
66
+ name: access-review-reports
67
+ path: access-review/
68
+ retention-days: 365
69
+ ```
70
+
71
+
72
+ ## Access Review Checklist
73
+
74
+ ```yaml
75
+ access_review_checklist:
76
+ preparation:
77
+ - [ ] Define scope (systems, user populations, review period)
78
+ - [ ] Assign review owners for each system
79
+ - [ ] Extract current access data from all identity sources
80
+ - [ ] Correlate identities across platforms via SSO mapping
81
+ - [ ] Generate review packages for each manager
82
+
83
+ execution:
84
+ - [ ] Managers notified with review assignments and deadline
85
+ - [ ] Privileged access reviewed first (admin, root, service accounts)
86
+ - [ ] Each user's access certified (approve, modify, or revoke)
87
+ - [ ] Inactive accounts flagged for disable/removal
88
+ - [ ] Stale credentials (keys, tokens) flagged for rotation
89
+ - [ ] Outside collaborators and contractors verified
90
+ - [ ] Service account ownership confirmed
91
+
92
+ remediation:
93
+ - [ ] Revocations executed within SLA (5 business days)
94
+ - [ ] Access modifications completed within SLA (10 business days)
95
+ - [ ] Exceptions documented with business justification
96
+ - [ ] Exception approvals recorded from security team
97
+ - [ ] Changes verified in target systems
98
+
99
+ reporting:
100
+ - [ ] Review completion rate documented (target: 100%)
101
+ - [ ] Non-response escalations documented
102
+ - [ ] Remediation actions summarized
103
+ - [ ] Exception register updated
104
+ - [ ] Evidence archived for audit (retained 3+ years)
105
+ - [ ] Metrics compared to prior review cycle
106
+ ```
107
+
108
+
109
+ ## Best Practices
110
+
111
+ - Automate access data extraction to eliminate manual data gathering and reduce errors
112
+ - Integrate access review with HR systems to automatically flag accounts for departed employees
113
+ - Use risk-based review frequency: privileged access quarterly, standard access semi-annually
114
+ - Provide managers with clear context: show last login date, permissions, and role to inform decisions
115
+ - Set firm deadlines with escalation for non-response (no certification = automatic revocation)
116
+ - Detect and eliminate orphaned accounts from contractors, former employees, and decommissioned services
117
+ - Review service accounts and API keys alongside human accounts to prevent credential sprawl
118
+ - Document all exceptions with business justification, approver, and expiration date
119
+ - Track review metrics over time: completion rates, revocation rates, time to remediate
120
+ - Archive all access review evidence for a minimum of 3 years for audit purposes
121
+