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.
- package/bundled-skills/.antigravity-install-manifest.json +304 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Floor guard: reference implementation
|
|
2
|
+
|
|
3
|
+
Every numbered dimension in `CONSTRAINTS.md` maps to a de facto tool (Step 4). The **floor** does not: it is a diff-scoped check for the five moves in Step 6, and without a shipped reference every agent invents its own, so two runs (or a Python repo and a Go one) produce two different guards. That is the exact non-determinism this skill exists to remove.
|
|
4
|
+
|
|
5
|
+
This is the reference. Adapt the patterns to your stack; keep the contract identical.
|
|
6
|
+
|
|
7
|
+
## Contract
|
|
8
|
+
|
|
9
|
+
- **Input:** the diff between the merge base and the working tree (added *and* removed lines, plus untracked files). A guard that reads only `git diff` misses new files and staged-but-uncommitted work.
|
|
10
|
+
- **Detects the five Step 6 moves:** a weakened threshold in `CONSTRAINTS.md`, a test made easier (`.skip`, a deleted test file, an assertion removed from a test that stayed), a silenced checker (a new suppression comment), unfinished work (a stub or empty `catch`), a new Exceptions row.
|
|
11
|
+
- **Exit codes:** `0` clean, `1` at least one floor violation (block the change), `2` the guard could not run (no merge base, not a git repo). Never let a `2` read as a `0`.
|
|
12
|
+
- **Reports the rule and the location, never the matched secret value.** Redaction is not optional (Step 4).
|
|
13
|
+
- **Tightening is silent, loosening is loud:** only surfaces moves that lower the bar.
|
|
14
|
+
|
|
15
|
+
## Reference (Node, ~stack-agnostic patterns)
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
#!/usr/bin/env node
|
|
19
|
+
// floor-guard.mjs — diff-scoped enforcement of the CONSTRAINTS.md floor.
|
|
20
|
+
// Usage: node floor-guard.mjs [--base <ref>] (default base: origin/main)
|
|
21
|
+
import { execFileSync } from 'node:child_process';
|
|
22
|
+
|
|
23
|
+
const base = (() => {
|
|
24
|
+
const i = process.argv.indexOf('--base');
|
|
25
|
+
return i > -1 ? process.argv[i + 1] : 'origin/main';
|
|
26
|
+
})();
|
|
27
|
+
|
|
28
|
+
const git = (args) => {
|
|
29
|
+
try { return execFileSync('git', args, { encoding: 'utf8' }); }
|
|
30
|
+
catch { return null; }
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// Merge base; bail to exit 2 rather than pretending a shallow/rootless clone is clean.
|
|
34
|
+
const mergeBase = git(['merge-base', base, 'HEAD'])?.trim();
|
|
35
|
+
if (!mergeBase) { console.error('floor-guard: no merge base against ' + base); process.exit(2); }
|
|
36
|
+
|
|
37
|
+
// Unified diff plus untracked files (git diff alone cannot see new files).
|
|
38
|
+
const tracked = git(['diff', '--unified=0', mergeBase, '--']) ?? '';
|
|
39
|
+
const untracked = (git(['ls-files', '--others', '--exclude-standard']) ?? '')
|
|
40
|
+
.split('\n').filter(Boolean)
|
|
41
|
+
.map((f) => git(['diff', '--no-index', '--unified=0', '/dev/null', f]) ?? '')
|
|
42
|
+
.join('\n');
|
|
43
|
+
const diff = tracked + '\n' + untracked;
|
|
44
|
+
|
|
45
|
+
const added = [], removed = [];
|
|
46
|
+
let file = '';
|
|
47
|
+
for (const line of diff.split('\n')) {
|
|
48
|
+
if (line.startsWith('+++ ')) file = line.slice(6);
|
|
49
|
+
else if (line.startsWith('+') && !line.startsWith('+++')) added.push({ file, text: line.slice(1) });
|
|
50
|
+
else if (line.startsWith('-') && !line.startsWith('---')) removed.push({ file, text: line.slice(1) });
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const findings = [];
|
|
54
|
+
const flag = (rule, f, text) => findings.push({ rule, file: f, text: text.trim().slice(0, 120) });
|
|
55
|
+
|
|
56
|
+
// 1. Silenced checker — extend this list for your ecosystem.
|
|
57
|
+
const SUPPRESSIONS = /@ts-ignore|@ts-nocheck|eslint-disable|biome-ignore|# *noqa|# *type: *ignore|istanbul ignore|nosemgrep|gitleaks:allow|Stryker disable/;
|
|
58
|
+
// 4. Unfinished work.
|
|
59
|
+
const STUBS = /throw new (Error|NotImplemented).*[Nn]ot implemented|catch\s*\(\w*\)\s*\{\s*\}|catch\s*\{\s*\}|\bTODO\b|\bpass\s*# *stub/;
|
|
60
|
+
// 2. A test made easier (added skips).
|
|
61
|
+
const SKIPS = /\.(skip|todo)\b|\bxit\(|\bxdescribe\(|@pytest\.mark\.skip|t\.Skip\(/;
|
|
62
|
+
|
|
63
|
+
for (const { file, text } of added) {
|
|
64
|
+
if (SUPPRESSIONS.test(text)) flag('silenced-checker', file, text);
|
|
65
|
+
if (STUBS.test(text)) flag('unfinished-work', file, text);
|
|
66
|
+
if (SKIPS.test(text)) flag('test-made-easier', file, text);
|
|
67
|
+
if (/CONSTRAINTS\.md$/.test(file) && /^\| *(W|E)\d+ *\|/.test(text)) flag('new-exception', file, text);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// 2b. Assertion removed from a test file that still exists.
|
|
71
|
+
for (const { file, text } of removed) {
|
|
72
|
+
if (/\.(test|spec)\.|_test\.|test_/.test(file) && /\b(expect|assert|should)\b/.test(text)) {
|
|
73
|
+
flag('assertion-removed', file, text);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// 1b/2c. Weakened threshold: a number in CONSTRAINTS.md that went down, or a floor bullet deleted.
|
|
78
|
+
const nums = (s) => (s.match(/\d+(\.\d+)?/g) || []).map(Number);
|
|
79
|
+
const removedConstraints = removed.filter((l) => /CONSTRAINTS\.md$/.test(l.file));
|
|
80
|
+
const addedConstraints = added.filter((l) => /CONSTRAINTS\.md$/.test(l.file));
|
|
81
|
+
for (const r of removedConstraints) {
|
|
82
|
+
const a = addedConstraints.find((x) => x.text.split(/[|:]/)[0] === r.text.split(/[|:]/)[0]);
|
|
83
|
+
if (a && nums(a.text).some((n, i) => nums(r.text)[i] !== undefined && n < nums(r.text)[i])) {
|
|
84
|
+
flag('threshold-lowered', r.file, r.text + ' -> ' + a.text);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (findings.length === 0) { console.log('floor-guard: clean'); process.exit(0); }
|
|
89
|
+
console.error('floor-guard: ' + findings.length + ' floor violation(s):');
|
|
90
|
+
for (const f of findings) console.error(` [${f.rule}] ${f.file}: ${f.text}`);
|
|
91
|
+
console.error('\nEach is a move that lowers the bar. Fix the code, or route it through a tracked exception.');
|
|
92
|
+
process.exit(1);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Adapting it
|
|
96
|
+
|
|
97
|
+
- **Patterns are the only stack-specific part.** Add your language's suppression and stub forms to the three regexes; the diff plumbing, the CONSTRAINTS.md checks, and the exit codes stay as-is.
|
|
98
|
+
- **A `.constraintsignore`** (one glob per line) lets you exempt a path the guard would otherwise flag; check each added line's file against it before flagging, so a genuine exception is a tracked file rather than a loosened rule.
|
|
99
|
+
- **This is a starting point, not a finished tool.** It is deliberately regex-shallow: it catches the cheap-road-to-green moves agents actually make, not a determined human hiding a change. That is the right trade for a check that runs on every diff. Once you outgrow it, move to a real runner (Escalation Path level 3).
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: container-hardening
|
|
3
|
+
description: Secure Docker images and container runtime configurations.
|
|
4
|
+
category: security
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
7
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires the relevant security tooling (scanners, vault CLIs) and an
|
|
13
|
+
authorized scope for any active assessment. Docs-only; helper scripts and templates
|
|
14
|
+
not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Container Hardening
|
|
21
|
+
|
|
22
|
+
Secure container images and runtime configurations.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
- Building secure container images
|
|
28
|
+
- Hardening container deployments
|
|
29
|
+
- Meeting container security requirements
|
|
30
|
+
- Implementing defense in depth
|
|
31
|
+
|
|
32
|
+
## Dockerfile Security
|
|
33
|
+
|
|
34
|
+
```dockerfile
|
|
35
|
+
# Use minimal base image
|
|
36
|
+
FROM alpine:3.18
|
|
37
|
+
|
|
38
|
+
# Don't run as root
|
|
39
|
+
RUN addgroup -g 1001 -S appgroup && \
|
|
40
|
+
adduser -u 1001 -S appuser -G appgroup
|
|
41
|
+
|
|
42
|
+
# Copy with specific ownership
|
|
43
|
+
COPY --chown=appuser:appgroup . /app
|
|
44
|
+
|
|
45
|
+
# Remove unnecessary packages
|
|
46
|
+
RUN apk del --purge build-dependencies && \
|
|
47
|
+
rm -rf /var/cache/apk/*
|
|
48
|
+
|
|
49
|
+
# Use non-root user
|
|
50
|
+
USER appuser
|
|
51
|
+
|
|
52
|
+
# Read-only filesystem support
|
|
53
|
+
WORKDIR /app
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Runtime Security
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Run with security options
|
|
60
|
+
docker run -d \
|
|
61
|
+
--read-only \
|
|
62
|
+
--tmpfs /tmp \
|
|
63
|
+
--security-opt=no-new-privileges:true \
|
|
64
|
+
--cap-drop=ALL \
|
|
65
|
+
--cap-add=NET_BIND_SERVICE \
|
|
66
|
+
--user 1001:1001 \
|
|
67
|
+
myapp:latest
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Kubernetes Security Context
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
apiVersion: v1
|
|
74
|
+
kind: Pod
|
|
75
|
+
spec:
|
|
76
|
+
securityContext:
|
|
77
|
+
runAsNonRoot: true
|
|
78
|
+
runAsUser: 1001
|
|
79
|
+
fsGroup: 1001
|
|
80
|
+
containers:
|
|
81
|
+
- name: app
|
|
82
|
+
securityContext:
|
|
83
|
+
allowPrivilegeEscalation: false
|
|
84
|
+
readOnlyRootFilesystem: true
|
|
85
|
+
capabilities:
|
|
86
|
+
drop: ["ALL"]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Image Scanning
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Scan with Trivy
|
|
93
|
+
trivy image --severity HIGH,CRITICAL myapp:latest
|
|
94
|
+
|
|
95
|
+
# Use distroless images
|
|
96
|
+
FROM gcr.io/distroless/static-debian11
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Best Practices
|
|
100
|
+
|
|
101
|
+
- Use minimal base images
|
|
102
|
+
- Run as non-root user
|
|
103
|
+
- Enable read-only filesystem
|
|
104
|
+
- Drop all capabilities
|
|
105
|
+
- Scan images regularly
|
|
106
|
+
- Sign and verify images
|
|
107
|
+
- Use secrets management
|
|
108
|
+
|
|
109
|
+
## Related Skills
|
|
110
|
+
|
|
111
|
+
- container-scanning (`container-scanning`) - Vulnerability scanning
|
|
112
|
+
- kubernetes-hardening (`kubernetes-hardening`) - K8s security
|
|
113
|
+
|
|
114
|
+
## Limitations
|
|
115
|
+
|
|
116
|
+
- Apply guidance only within authorized scope; test destructive steps in non-production first.
|
|
117
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
118
|
+
|
|
119
|
+
### Example
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Read-only first: inventory before any active step.
|
|
123
|
+
which <tool> && <tool> --help | head -n 20
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
> 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,435 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: container-registries
|
|
3
|
+
description: Manage container registries including ECR, ACR, GCR, and Docker Hub.
|
|
4
|
+
category: devops
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
7
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,
|
|
13
|
+
CI runners) and authorized access to the target environment. Docs-only; helper scripts
|
|
14
|
+
and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Container Registries
|
|
21
|
+
|
|
22
|
+
Store, manage, and distribute container images across cloud and self-hosted registries.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
- Pushing and pulling container images
|
|
28
|
+
- Configuring registry authentication
|
|
29
|
+
- Setting up image retention policies
|
|
30
|
+
- Managing private container registries
|
|
31
|
+
- Implementing image scanning and security
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- Docker or Podman installed
|
|
36
|
+
- Cloud CLI tools (AWS CLI, az, gcloud) for respective registries
|
|
37
|
+
- Appropriate IAM permissions
|
|
38
|
+
|
|
39
|
+
## Docker Hub
|
|
40
|
+
|
|
41
|
+
### Authentication
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Login
|
|
45
|
+
docker login
|
|
46
|
+
|
|
47
|
+
# Login with token
|
|
48
|
+
echo "$DOCKER_TOKEN" | docker login -u username --password-stdin
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Push/Pull Images
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Tag image
|
|
55
|
+
docker tag myapp:latest username/myapp:latest
|
|
56
|
+
|
|
57
|
+
# Push
|
|
58
|
+
docker push username/myapp:latest
|
|
59
|
+
|
|
60
|
+
# Pull
|
|
61
|
+
docker pull username/myapp:latest
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Automated Builds
|
|
65
|
+
|
|
66
|
+
Configure in Docker Hub UI:
|
|
67
|
+
1. Connect GitHub/Bitbucket repository
|
|
68
|
+
2. Set build rules (branch → tag mapping)
|
|
69
|
+
3. Configure build context and Dockerfile path
|
|
70
|
+
|
|
71
|
+
## Amazon ECR
|
|
72
|
+
|
|
73
|
+
### Setup
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Create repository
|
|
77
|
+
aws ecr create-repository \
|
|
78
|
+
--repository-name myapp \
|
|
79
|
+
--image-scanning-configuration scanOnPush=true \
|
|
80
|
+
--encryption-configuration encryptionType=AES256
|
|
81
|
+
|
|
82
|
+
# Get registry URI
|
|
83
|
+
REGISTRY=$(aws ecr describe-repositories \
|
|
84
|
+
--repository-names myapp \
|
|
85
|
+
--query 'repositories[0].repositoryUri' \
|
|
86
|
+
--output text | cut -d'/' -f1)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Authentication
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Login (Docker)
|
|
93
|
+
aws ecr get-login-password --region us-east-1 | \
|
|
94
|
+
docker login --username AWS --password-stdin $REGISTRY
|
|
95
|
+
|
|
96
|
+
# Login with credential helper
|
|
97
|
+
# Add to ~/.docker/config.json:
|
|
98
|
+
{
|
|
99
|
+
"credHelpers": {
|
|
100
|
+
"123456789.dkr.ecr.us-east-1.amazonaws.com": "ecr-login"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Push/Pull
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Tag and push
|
|
109
|
+
docker tag myapp:latest $REGISTRY/myapp:latest
|
|
110
|
+
docker push $REGISTRY/myapp:latest
|
|
111
|
+
|
|
112
|
+
# Pull
|
|
113
|
+
docker pull $REGISTRY/myapp:latest
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Lifecycle Policy
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Create lifecycle policy
|
|
120
|
+
aws ecr put-lifecycle-policy \
|
|
121
|
+
--repository-name myapp \
|
|
122
|
+
--lifecycle-policy-text '{
|
|
123
|
+
"rules": [
|
|
124
|
+
{
|
|
125
|
+
"rulePriority": 1,
|
|
126
|
+
"description": "Keep last 10 images",
|
|
127
|
+
"selection": {
|
|
128
|
+
"tagStatus": "any",
|
|
129
|
+
"countType": "imageCountMoreThan",
|
|
130
|
+
"countNumber": 10
|
|
131
|
+
},
|
|
132
|
+
"action": {
|
|
133
|
+
"type": "expire"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
}'
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Repository Policy
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Allow cross-account access
|
|
144
|
+
aws ecr set-repository-policy \
|
|
145
|
+
--repository-name myapp \
|
|
146
|
+
--policy-text '{
|
|
147
|
+
"Version": "2012-10-17",
|
|
148
|
+
"Statement": [
|
|
149
|
+
{
|
|
150
|
+
"Sid": "CrossAccountPull",
|
|
151
|
+
"Effect": "Allow",
|
|
152
|
+
"Principal": {
|
|
153
|
+
"AWS": "arn:aws:iam::OTHER_ACCOUNT:root"
|
|
154
|
+
},
|
|
155
|
+
"Action": [
|
|
156
|
+
"ecr:GetDownloadUrlForLayer",
|
|
157
|
+
"ecr:BatchGetImage"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Azure Container Registry (ACR)
|
|
165
|
+
|
|
166
|
+
### Setup
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Create registry
|
|
170
|
+
az acr create \
|
|
171
|
+
--resource-group mygroup \
|
|
172
|
+
--name myregistry \
|
|
173
|
+
--sku Standard \
|
|
174
|
+
--admin-enabled false
|
|
175
|
+
|
|
176
|
+
# Get login server
|
|
177
|
+
az acr show --name myregistry --query loginServer -o tsv
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Authentication
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Login with Azure CLI
|
|
184
|
+
az acr login --name myregistry
|
|
185
|
+
|
|
186
|
+
# Login with service principal
|
|
187
|
+
docker login myregistry.azurecr.io \
|
|
188
|
+
-u $SP_APP_ID \
|
|
189
|
+
-p $SP_PASSWORD
|
|
190
|
+
|
|
191
|
+
# Get access token
|
|
192
|
+
az acr login --name myregistry --expose-token
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Push/Pull
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Tag and push
|
|
199
|
+
docker tag myapp:latest myregistry.azurecr.io/myapp:latest
|
|
200
|
+
docker push myregistry.azurecr.io/myapp:latest
|
|
201
|
+
|
|
202
|
+
# ACR Build (build in cloud)
|
|
203
|
+
az acr build \
|
|
204
|
+
--registry myregistry \
|
|
205
|
+
--image myapp:latest \
|
|
206
|
+
--file Dockerfile .
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Retention Policy
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Enable retention policy
|
|
213
|
+
az acr config retention update \
|
|
214
|
+
--registry myregistry \
|
|
215
|
+
--status enabled \
|
|
216
|
+
--days 30 \
|
|
217
|
+
--type UntaggedManifests
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Geo-Replication
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# Enable replication
|
|
224
|
+
az acr replication create \
|
|
225
|
+
--registry myregistry \
|
|
226
|
+
--location westeurope
|
|
227
|
+
|
|
228
|
+
# List replications
|
|
229
|
+
az acr replication list --registry myregistry
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Google Container Registry (GCR) / Artifact Registry
|
|
233
|
+
|
|
234
|
+
### Setup (Artifact Registry)
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# Create repository
|
|
238
|
+
gcloud artifacts repositories create myrepo \
|
|
239
|
+
--repository-format=docker \
|
|
240
|
+
--location=us-central1 \
|
|
241
|
+
--description="Docker repository"
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Authentication
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Configure Docker auth
|
|
248
|
+
gcloud auth configure-docker us-central1-docker.pkg.dev
|
|
249
|
+
|
|
250
|
+
# Or use credential helper
|
|
251
|
+
gcloud auth print-access-token | \
|
|
252
|
+
docker login -u oauth2accesstoken --password-stdin \
|
|
253
|
+
https://us-central1-docker.pkg.dev
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Push/Pull
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Tag for Artifact Registry
|
|
260
|
+
docker tag myapp:latest \
|
|
261
|
+
us-central1-docker.pkg.dev/PROJECT_ID/myrepo/myapp:latest
|
|
262
|
+
|
|
263
|
+
# Push
|
|
264
|
+
docker push us-central1-docker.pkg.dev/PROJECT_ID/myrepo/myapp:latest
|
|
265
|
+
|
|
266
|
+
# Pull
|
|
267
|
+
docker pull us-central1-docker.pkg.dev/PROJECT_ID/myrepo/myapp:latest
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Cleanup Policy
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# Create cleanup policy
|
|
274
|
+
gcloud artifacts repositories set-cleanup-policies myrepo \
|
|
275
|
+
--location=us-central1 \
|
|
276
|
+
--policy=policy.json
|
|
277
|
+
|
|
278
|
+
# policy.json
|
|
279
|
+
{
|
|
280
|
+
"name": "delete-old",
|
|
281
|
+
"action": {"type": "Delete"},
|
|
282
|
+
"condition": {
|
|
283
|
+
"olderThan": "30d",
|
|
284
|
+
"tagState": "untagged"
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## GitHub Container Registry (GHCR)
|
|
290
|
+
|
|
291
|
+
### Authentication
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# Login with PAT
|
|
295
|
+
echo "$GITHUB_TOKEN" | docker login ghcr.io -u USERNAME --password-stdin
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Push/Pull
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
# Tag
|
|
302
|
+
docker tag myapp:latest ghcr.io/OWNER/myapp:latest
|
|
303
|
+
|
|
304
|
+
# Push
|
|
305
|
+
docker push ghcr.io/OWNER/myapp:latest
|
|
306
|
+
|
|
307
|
+
# Pull
|
|
308
|
+
docker pull ghcr.io/OWNER/myapp:latest
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Visibility Settings
|
|
312
|
+
|
|
313
|
+
Configure in GitHub:
|
|
314
|
+
1. Go to package settings
|
|
315
|
+
2. Change visibility (public/private)
|
|
316
|
+
3. Manage access for teams/users
|
|
317
|
+
|
|
318
|
+
## Self-Hosted Registry
|
|
319
|
+
|
|
320
|
+
### Deploy with Docker
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# Run registry
|
|
324
|
+
docker run -d -p 5000:5000 \
|
|
325
|
+
--name registry \
|
|
326
|
+
-v registry-data:/var/lib/registry \
|
|
327
|
+
registry:2
|
|
328
|
+
|
|
329
|
+
# Configure TLS
|
|
330
|
+
docker run -d -p 443:5000 \
|
|
331
|
+
--name registry \
|
|
332
|
+
-v /certs:/certs \
|
|
333
|
+
-v registry-data:/var/lib/registry \
|
|
334
|
+
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
|
|
335
|
+
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
|
|
336
|
+
registry:2
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Harbor Registry
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
# Download Harbor
|
|
343
|
+
wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-online-installer-v2.9.0.tgz
|
|
344
|
+
tar xzvf harbor-online-installer-v2.9.0.tgz
|
|
345
|
+
|
|
346
|
+
# Configure harbor.yml
|
|
347
|
+
# Set hostname, https certificate, admin password
|
|
348
|
+
|
|
349
|
+
# Install
|
|
350
|
+
./install.sh --with-trivy --with-chartmuseum
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
## Image Security
|
|
354
|
+
|
|
355
|
+
### Vulnerability Scanning
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# ECR - Enable scan on push
|
|
359
|
+
aws ecr put-image-scanning-configuration \
|
|
360
|
+
--repository-name myapp \
|
|
361
|
+
--image-scanning-configuration scanOnPush=true
|
|
362
|
+
|
|
363
|
+
# Get scan results
|
|
364
|
+
aws ecr describe-image-scan-findings \
|
|
365
|
+
--repository-name myapp \
|
|
366
|
+
--image-id imageTag=latest
|
|
367
|
+
|
|
368
|
+
# ACR - Scan with Defender
|
|
369
|
+
az acr task create \
|
|
370
|
+
--registry myregistry \
|
|
371
|
+
--name scan-images \
|
|
372
|
+
--cmd "mcr.microsoft.com/azure-cli az acr run-scan"
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Image Signing
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Enable content trust
|
|
379
|
+
export DOCKER_CONTENT_TRUST=1
|
|
380
|
+
|
|
381
|
+
# Sign image on push
|
|
382
|
+
docker push myregistry/myapp:latest
|
|
383
|
+
|
|
384
|
+
# Verify signature
|
|
385
|
+
docker trust inspect myregistry/myapp:latest
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Common Issues
|
|
389
|
+
|
|
390
|
+
### Issue: Authentication Expired
|
|
391
|
+
**Problem**: Push/pull fails with auth error
|
|
392
|
+
**Solution**: Re-run login command, check credential helper
|
|
393
|
+
|
|
394
|
+
### Issue: Image Not Found
|
|
395
|
+
**Problem**: Pull fails with manifest unknown
|
|
396
|
+
**Solution**: Verify tag exists, check registry URL
|
|
397
|
+
|
|
398
|
+
### Issue: Push Permission Denied
|
|
399
|
+
**Problem**: Cannot push to repository
|
|
400
|
+
**Solution**: Check IAM permissions, verify repository exists
|
|
401
|
+
|
|
402
|
+
### Issue: Rate Limiting (Docker Hub)
|
|
403
|
+
**Problem**: Too many requests error
|
|
404
|
+
**Solution**: Authenticate for higher limits, use pull-through cache
|
|
405
|
+
|
|
406
|
+
## Best Practices
|
|
407
|
+
|
|
408
|
+
- Enable vulnerability scanning on all repositories
|
|
409
|
+
- Implement lifecycle policies to manage storage costs
|
|
410
|
+
- Use immutable tags for production images
|
|
411
|
+
- Configure cross-region replication for availability
|
|
412
|
+
- Use service accounts/principals for CI/CD authentication
|
|
413
|
+
- Enable audit logging for compliance
|
|
414
|
+
- Implement image signing for supply chain security
|
|
415
|
+
- Use pull-through cache to avoid rate limits
|
|
416
|
+
|
|
417
|
+
## Related Skills
|
|
418
|
+
|
|
419
|
+
- docker-management (`docker-management`) - Building images
|
|
420
|
+
- container-scanning (`container-scanning`) - Security scanning
|
|
421
|
+
- aws-iam (`aws-iam`) - AWS permissions
|
|
422
|
+
|
|
423
|
+
## Limitations
|
|
424
|
+
|
|
425
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
426
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
427
|
+
|
|
428
|
+
### Example
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
git status && git diff --stat
|
|
432
|
+
kubectl diff -f manifest.yaml
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
> 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.
|