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,187 @@
|
|
|
1
|
+
# Details (moved from SKILL.md)
|
|
2
|
+
|
|
3
|
+
> Extended reference content for `report-writing`, kept under `references/` so the entrypoint stays within the audit budget.
|
|
4
|
+
|
|
5
|
+
## CVSS 4.0 QUICK REFERENCE (newer programs)
|
|
6
|
+
|
|
7
|
+
CVSS 4.0 replaced CVSS 3.1 in November 2023. Some newer programs require it.
|
|
8
|
+
|
|
9
|
+
### Key Differences from CVSS 3.1
|
|
10
|
+
|
|
11
|
+
| Metric | CVSS 3.1 | CVSS 4.0 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| Attack Vector | Network/Adjacent/Local/Physical | Same |
|
|
14
|
+
| Attack Complexity | Low/High | Low/High |
|
|
15
|
+
| **NEW**: Attack Requirements | (didn't exist) | None/Present (replaces some PR/UI) |
|
|
16
|
+
| Privileges Required | None/Low/High | Same |
|
|
17
|
+
| User Interaction | None/Required | None/Passive/Active |
|
|
18
|
+
| Scope | Unchanged/Changed | REMOVED |
|
|
19
|
+
| **NEW**: Sub-Impact metrics | (didn't exist) | Vulnerable/Subsequent system impact |
|
|
20
|
+
|
|
21
|
+
### CVSS 4.0 Score Examples
|
|
22
|
+
|
|
23
|
+
| Finding | CVSS 4.0 Score | Vector |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| Unauthenticated RCE | 10.0 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
|
|
26
|
+
| IDOR read PII, auth required | 6.9 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N |
|
|
27
|
+
| Stored XSS, admin views it | 8.2 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N |
|
|
28
|
+
| SSRF → cloud metadata | 8.7 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:N |
|
|
29
|
+
|
|
30
|
+
### Quick CVSS 4.0 Calculator
|
|
31
|
+
```
|
|
32
|
+
Use: https://www.first.org/cvss/calculator/4.0
|
|
33
|
+
Key fields:
|
|
34
|
+
VC/VI/VA = Vulnerable System Confidentiality/Integrity/Availability
|
|
35
|
+
SC/SI/SA = Subsequent System (downstream impact)
|
|
36
|
+
AT = None (no special condition) | Present (race/specific config needed)
|
|
37
|
+
UI = None | Passive (victim visits URL) | Active (victim takes explicit action)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Practical rule**: If program uses CVSS 4.0 and you don't know the vector, use the calculator and include the full string starting with `CVSS:4.0/AV:...`. Programs cannot dispute a valid vector string.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## HUMAN TONE GUIDELINES
|
|
46
|
+
|
|
47
|
+
**Write to a person, not a system:**
|
|
48
|
+
- Triagers are tired. Get to the impact in sentence 1.
|
|
49
|
+
- Use "I" not "the researcher" — you found it, own it
|
|
50
|
+
- Short paragraphs, bullet points for steps
|
|
51
|
+
- Hyperlink relevant docs if needed
|
|
52
|
+
|
|
53
|
+
**Escalation language (when payout is being downgraded):**
|
|
54
|
+
```
|
|
55
|
+
"This vulnerability does not require any special privileges — only a free account."
|
|
56
|
+
"The exposed data includes [PII type], which is subject to GDPR requirements."
|
|
57
|
+
"An attacker can automate this with a simple loop — all [N] records in minutes."
|
|
58
|
+
"This is exploitable externally without network access to any internal system."
|
|
59
|
+
"The impact is equivalent to a full data breach of [feature/data type]."
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Avoid:**
|
|
63
|
+
- Jargon the triager might not know
|
|
64
|
+
- 5-paragraph explanations of what IDOR is (they know)
|
|
65
|
+
- Theoretical chains ("could be combined with X to...")
|
|
66
|
+
- Passive voice ("it was observed that...")
|
|
67
|
+
- Qualifying language ("seems to," "appears to")
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## STEPS TO REPRODUCE FORMAT (triager-optimized)
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
**Setup:**
|
|
76
|
+
- Account A (attacker): email=attacker@test.com, ID=111
|
|
77
|
+
- Account B (victim): email=victim@test.com, ID=222
|
|
78
|
+
- Both created via normal registration — no special access
|
|
79
|
+
|
|
80
|
+
**Steps:**
|
|
81
|
+
|
|
82
|
+
1. Log in as Account A
|
|
83
|
+
2. Send this request (replace `111` with victim ID `222`):
|
|
84
|
+
|
|
85
|
+
\```
|
|
86
|
+
GET /api/v2/resource/222 HTTP/1.1
|
|
87
|
+
Host: target.com
|
|
88
|
+
Authorization: Bearer ACCOUNT_A_TOKEN
|
|
89
|
+
\```
|
|
90
|
+
|
|
91
|
+
3. Response contains Account B's private data:
|
|
92
|
+
|
|
93
|
+
\```json
|
|
94
|
+
{"id": 222, "email": "victim@test.com", "name": "Victim User", "address": "..."}
|
|
95
|
+
\```
|
|
96
|
+
|
|
97
|
+
**Expected:** 403 Forbidden
|
|
98
|
+
**Actual:** 200 OK with victim's private data
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
## Related Skills & Chains
|
|
105
|
+
|
|
106
|
+
- **`triage-validation`** — When deciding whether to write a report at all. Workflow primitive: NEVER open this skill before `triage-validation`'s 7-Question Gate passes; a finding that fails the gate should be killed, not written up.
|
|
107
|
+
- **`bugcrowd-reporting`** — When the target is a Bugcrowd program. Workflow primitive: this skill's body template is the foundation; `bugcrowd-reporting` overlays VRT selection, severity-request paragraph, OOS-clause rebuttals on top.
|
|
108
|
+
- **`evidence-hygiene`** — When PoC screenshots / HARs are being attached to the report. Workflow primitive: every artifact referenced in the "Supporting Materials" / "Proof of Concept" section gets routed through `evidence-hygiene` for cookie + PII redaction before attachment.
|
|
109
|
+
- **`redteam-report-template`** — When the engagement is an external red team (NOT bug bounty). Workflow primitive: confirm engagement mode via `bb-methodology` PART 0; if red-team, swap this skill out for `redteam-report-template` (different audience, different structure: Subject / Observations / Description / Impact / Recommendation / PoC).
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## Operator Notes (Claude-BugHunter)
|
|
115
|
+
|
|
116
|
+
> Engagement-derived additions to the vendored foundation. Wisdom from real
|
|
117
|
+
> authorized engagements + Phase 2 verification across this repo's 31+
|
|
118
|
+
> skill-area live tests. The upstream methodology covers the WHAT; this
|
|
119
|
+
> layer covers the WHEN-IT-ACTUALLY-WORKS and the FAILURE-MODES.
|
|
120
|
+
|
|
121
|
+
### Title formula in practice
|
|
122
|
+
|
|
123
|
+
`<asset> | <bug class> | <impact>` — three components, no fluff. Triagers read titles in roughly three seconds and use them to order the queue.
|
|
124
|
+
|
|
125
|
+
- BAD: "Interesting finding on /api/users"
|
|
126
|
+
- BAD: "IDOR vulnerability in API"
|
|
127
|
+
- GOOD: "Authenticated IDOR on /api/users/{uid} -> admin email + role disclosure"
|
|
128
|
+
- GOOD: "Unauthenticated SSRF on /preview?url= -> AWS metadata 169.254.169.254 reachable"
|
|
129
|
+
|
|
130
|
+
The bad titles get opened last. The good titles get opened first. Same finding, different queue position, different triage day, different payout speed.
|
|
131
|
+
|
|
132
|
+
### What triagers actually read
|
|
133
|
+
|
|
134
|
+
Their reading sequence on a fresh report:
|
|
135
|
+
|
|
136
|
+
1. **Title** (3 seconds)
|
|
137
|
+
2. **First paragraph of impact / summary** (15 seconds)
|
|
138
|
+
3. **The curl command or HTTP request block** (30 seconds)
|
|
139
|
+
4. **Reproduction steps** (only if the first three were convincing)
|
|
140
|
+
5. **Everything else** (only on follow-up review)
|
|
141
|
+
|
|
142
|
+
Optimize the top of the report ruthlessly. Save narrative for the middle. Triagers who are convinced by step 3 will rubber-stamp the rest; triagers who aren't convinced by step 3 won't read step 5.
|
|
143
|
+
|
|
144
|
+
### CVSS 3.1 vs Bugcrowd VRT vs H1 default severity
|
|
145
|
+
|
|
146
|
+
These three systems disagree about 30% of the time. The most common gap: a finding that scores CVSS 7.x (High) maps to Bugcrowd P4 (Low) or H1 Medium-default. When the platform default rates lower than CVSS:
|
|
147
|
+
|
|
148
|
+
1. **File the severity-request paragraph as the first body section.** Bugcrowd respects this. (See `bugcrowd-reporting` for the canonical template.)
|
|
149
|
+
2. **Anchor the request in CVSS vector string + business impact, not feelings.** "CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N = 7.5 High because Confidentiality:High applies to cross-tenant data exposure."
|
|
150
|
+
3. **Cite the platform's own VRT entry** that matches your finding. Don't argue against the platform; route within it.
|
|
151
|
+
|
|
152
|
+
An authorized bug-bounty engagement saw P4-default findings escalated to P3 via the severity-request paragraph. The escalation isn't automatic — you have to ask, with grounded reasoning, in the first body section.
|
|
153
|
+
|
|
154
|
+
### Evidence rotation
|
|
155
|
+
|
|
156
|
+
Everything in the submission body is logged forever by the platform. Operate accordingly:
|
|
157
|
+
|
|
158
|
+
- Use throwaway test accounts created specifically for the engagement.
|
|
159
|
+
- Rotate cookies / tokens after each submission (don't reuse the cookie that's pasted in the report).
|
|
160
|
+
- Never paste production cookies, real user emails, or real PII into the report body — redact in the PoC step.
|
|
161
|
+
- Screenshots of admin panels: blur the user list, blur the URL bar if it contains tokens.
|
|
162
|
+
|
|
163
|
+
Cross-link `evidence-hygiene` for the full capture-and-redact protocol.
|
|
164
|
+
|
|
165
|
+
### Templates by platform — when they differ
|
|
166
|
+
|
|
167
|
+
| Platform | Tone | Required Structure | Severity Mechanism |
|
|
168
|
+
|---|---|---|---|
|
|
169
|
+
| HackerOne | Narrative | Summary -> Steps -> Impact -> Suggested fix | Triager-set, contestable |
|
|
170
|
+
| Bugcrowd | Structured | Severity request -> VRT category -> Title -> Body -> Remediation | VRT-default + manual override paragraph |
|
|
171
|
+
| Intigriti | Between | Summary -> PoC -> Impact -> Recommendation | Researcher-proposed, triager-confirmed |
|
|
172
|
+
| Immunefi | PoC-first | Working PoC code -> Walkthrough -> Impact -> Severity | Foundry/Hardhat code is the primary deliverable |
|
|
173
|
+
|
|
174
|
+
Picking the wrong template style costs validity. A narrative-heavy Bugcrowd report misses the VRT mapping the triager needs; a structured H1 report reads as terse and gets follow-up questions that delay payout.
|
|
175
|
+
|
|
176
|
+
### The single biggest report-writing mistake
|
|
177
|
+
|
|
178
|
+
Claiming an attack works "in theory" or "could be chained to [bigger impact]" without demonstrating it. Triage-validation Q6 (impact beyond technically possible) kills these on the validation side; report-writing has to mirror it on the writing side.
|
|
179
|
+
|
|
180
|
+
Two valid paths:
|
|
181
|
+
|
|
182
|
+
1. **Show concrete impact end-to-end.** Capture the chain on a test account. Paste the full request/response sequence. Done.
|
|
183
|
+
2. **Downgrade the severity claim to match what you actually demonstrated.** "IDOR on /api/users/{uid} reading email + role" is real and reportable; "IDOR chained to potential admin takeover" is not until you demonstrate the takeover.
|
|
184
|
+
|
|
185
|
+
Pick one. Never split the difference with "could potentially" or "may allow" — those phrases are the triager's signal that the report is theoretical, and theoretical reports get N/A.
|
|
186
|
+
- **`bb-methodology`** — When Phase 5's report-writing step starts. Workflow primitive: Phase 5 calls `/report` which loads this skill for the platform-specific template (H1 / Bugcrowd / Intigriti / Immunefi).
|
|
187
|
+
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reverse-proxy
|
|
3
|
+
description: Configure nginx and Traefik as reverse proxies. Implement SSL termination
|
|
4
|
+
and routing. Use when setting up application gateways.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Reverse Proxy
|
|
21
|
+
|
|
22
|
+
Configure reverse proxies to route traffic, terminate TLS, enforce rate limits, and serve as the gateway between clients and backend services.
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
- Routing traffic from a public domain to one or more backend services.
|
|
27
|
+
- Terminating TLS at the edge and forwarding plain HTTP to backends.
|
|
28
|
+
- Adding rate limiting, CORS, security headers, and access control.
|
|
29
|
+
- Consolidating multiple services under a single domain with path-based routing.
|
|
30
|
+
- Handling WebSocket upgrades, gRPC proxying, or HTTP/2 passthrough.
|
|
31
|
+
|
|
32
|
+
## Prerequisites
|
|
33
|
+
|
|
34
|
+
- Backend service(s) running on known host:port.
|
|
35
|
+
- TLS certificate (Let's Encrypt, ACM, or self-signed for development).
|
|
36
|
+
- nginx 1.25+ or Traefik 3.x installed.
|
|
37
|
+
- DNS record pointing the domain to the proxy server.
|
|
38
|
+
|
|
39
|
+
## nginx Reverse Proxy
|
|
40
|
+
|
|
41
|
+
### Basic HTTPS Proxy with Redirect
|
|
42
|
+
|
|
43
|
+
```nginx
|
|
44
|
+
# /etc/nginx/sites-available/app.example.com
|
|
45
|
+
server {
|
|
46
|
+
listen 80;
|
|
47
|
+
server_name app.example.com;
|
|
48
|
+
return 301 https://$host$request_uri;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
server {
|
|
52
|
+
listen 443 ssl http2;
|
|
53
|
+
server_name app.example.com;
|
|
54
|
+
|
|
55
|
+
# TLS configuration
|
|
56
|
+
ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
|
|
57
|
+
ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
|
|
58
|
+
ssl_protocols TLSv1.2 TLSv1.3;
|
|
59
|
+
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384;
|
|
60
|
+
ssl_prefer_server_ciphers on;
|
|
61
|
+
ssl_session_cache shared:SSL:10m;
|
|
62
|
+
ssl_session_timeout 10m;
|
|
63
|
+
|
|
64
|
+
# Security headers
|
|
65
|
+
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
|
|
66
|
+
add_header X-Frame-Options DENY always;
|
|
67
|
+
add_header X-Content-Type-Options nosniff always;
|
|
68
|
+
add_header Referrer-Policy strict-origin-when-cross-origin always;
|
|
69
|
+
|
|
70
|
+
# Proxy to backend
|
|
71
|
+
location / {
|
|
72
|
+
proxy_pass http://127.0.0.1:3000;
|
|
73
|
+
proxy_http_version 1.1;
|
|
74
|
+
proxy_set_header Host $host;
|
|
75
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
76
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
77
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
78
|
+
|
|
79
|
+
# Timeouts
|
|
80
|
+
proxy_connect_timeout 5s;
|
|
81
|
+
proxy_read_timeout 60s;
|
|
82
|
+
proxy_send_timeout 60s;
|
|
83
|
+
|
|
84
|
+
# Buffering
|
|
85
|
+
proxy_buffering on;
|
|
86
|
+
proxy_buffer_size 4k;
|
|
87
|
+
proxy_buffers 8 4k;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Path-Based Routing to Multiple Services
|
|
93
|
+
|
|
94
|
+
```nginx
|
|
95
|
+
server {
|
|
96
|
+
listen 443 ssl http2;
|
|
97
|
+
server_name app.example.com;
|
|
98
|
+
|
|
99
|
+
ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
|
|
100
|
+
ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
|
|
101
|
+
|
|
102
|
+
# Frontend SPA
|
|
103
|
+
location / {
|
|
104
|
+
proxy_pass http://127.0.0.1:3000;
|
|
105
|
+
proxy_set_header Host $host;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
# API backend
|
|
109
|
+
location /api/ {
|
|
110
|
+
proxy_pass http://127.0.0.1:8080/;
|
|
111
|
+
proxy_set_header Host $host;
|
|
112
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
113
|
+
proxy_read_timeout 120s;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
# WebSocket endpoint
|
|
117
|
+
location /ws/ {
|
|
118
|
+
proxy_pass http://127.0.0.1:8080;
|
|
119
|
+
proxy_http_version 1.1;
|
|
120
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
121
|
+
proxy_set_header Connection "upgrade";
|
|
122
|
+
proxy_set_header Host $host;
|
|
123
|
+
proxy_read_timeout 86400s; # 24h for long-lived connections
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# Static assets with caching
|
|
127
|
+
location /static/ {
|
|
128
|
+
alias /var/www/static/;
|
|
129
|
+
expires 30d;
|
|
130
|
+
add_header Cache-Control "public, immutable";
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Rate Limiting
|
|
136
|
+
|
|
137
|
+
```nginx
|
|
138
|
+
# Define rate limit zones in http block
|
|
139
|
+
http {
|
|
140
|
+
# 10 requests/second per IP
|
|
141
|
+
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
|
|
142
|
+
|
|
143
|
+
# 1 request/second for login
|
|
144
|
+
limit_req_zone $binary_remote_addr zone=login_limit:10m rate=1r/s;
|
|
145
|
+
|
|
146
|
+
# Connection limit per IP
|
|
147
|
+
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
server {
|
|
151
|
+
listen 443 ssl http2;
|
|
152
|
+
server_name app.example.com;
|
|
153
|
+
|
|
154
|
+
# Apply rate limit to API
|
|
155
|
+
location /api/ {
|
|
156
|
+
limit_req zone=api_limit burst=20 nodelay;
|
|
157
|
+
limit_req_status 429;
|
|
158
|
+
proxy_pass http://127.0.0.1:8080;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
# Strict rate limit on auth endpoints
|
|
162
|
+
location /api/auth/ {
|
|
163
|
+
limit_req zone=login_limit burst=5;
|
|
164
|
+
limit_req_status 429;
|
|
165
|
+
proxy_pass http://127.0.0.1:8080;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
# Connection limit
|
|
169
|
+
location / {
|
|
170
|
+
limit_conn conn_limit 100;
|
|
171
|
+
proxy_pass http://127.0.0.1:3000;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Gzip and Brotli Compression
|
|
177
|
+
|
|
178
|
+
```nginx
|
|
179
|
+
http {
|
|
180
|
+
gzip on;
|
|
181
|
+
gzip_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;
|
|
182
|
+
gzip_min_length 256;
|
|
183
|
+
gzip_vary on;
|
|
184
|
+
gzip_proxied any;
|
|
185
|
+
gzip_comp_level 5;
|
|
186
|
+
|
|
187
|
+
# Brotli (requires ngx_brotli module)
|
|
188
|
+
# brotli on;
|
|
189
|
+
# brotli_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;
|
|
190
|
+
# brotli_comp_level 6;
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Let's Encrypt with Certbot
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Install certbot with nginx plugin
|
|
198
|
+
sudo apt install certbot python3-certbot-nginx
|
|
199
|
+
|
|
200
|
+
# Obtain and install certificate
|
|
201
|
+
sudo certbot --nginx -d app.example.com -d www.example.com
|
|
202
|
+
|
|
203
|
+
# Auto-renewal is configured via systemd timer
|
|
204
|
+
sudo systemctl status certbot.timer
|
|
205
|
+
|
|
206
|
+
# Manual renewal test
|
|
207
|
+
sudo certbot renew --dry-run
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Traefik Reverse Proxy
|
|
211
|
+
|
|
212
|
+
### Static Configuration
|
|
213
|
+
|
|
214
|
+
```yaml
|
|
215
|
+
# traefik.yml
|
|
216
|
+
entryPoints:
|
|
217
|
+
web:
|
|
218
|
+
address: ":80"
|
|
219
|
+
http:
|
|
220
|
+
redirections:
|
|
221
|
+
entryPoint:
|
|
222
|
+
to: websecure
|
|
223
|
+
scheme: https
|
|
224
|
+
websecure:
|
|
225
|
+
address: ":443"
|
|
226
|
+
|
|
227
|
+
certificatesResolvers:
|
|
228
|
+
letsencrypt:
|
|
229
|
+
acme:
|
|
230
|
+
email: admin@example.com
|
|
231
|
+
storage: /letsencrypt/acme.json
|
|
232
|
+
httpChallenge:
|
|
233
|
+
entryPoint: web
|
|
234
|
+
|
|
235
|
+
providers:
|
|
236
|
+
docker:
|
|
237
|
+
exposedByDefault: false
|
|
238
|
+
file:
|
|
239
|
+
directory: /etc/traefik/dynamic/
|
|
240
|
+
|
|
241
|
+
api:
|
|
242
|
+
dashboard: true
|
|
243
|
+
insecure: false
|
|
244
|
+
|
|
245
|
+
log:
|
|
246
|
+
level: INFO
|
|
247
|
+
|
|
248
|
+
accessLog:
|
|
249
|
+
filePath: /var/log/traefik/access.log
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Dynamic Configuration (File Provider)
|
|
253
|
+
|
|
254
|
+
```yaml
|
|
255
|
+
# /etc/traefik/dynamic/services.yml
|
|
256
|
+
http:
|
|
257
|
+
routers:
|
|
258
|
+
app:
|
|
259
|
+
rule: "Host(`app.example.com`)"
|
|
260
|
+
entryPoints:
|
|
261
|
+
- websecure
|
|
262
|
+
service: app
|
|
263
|
+
tls:
|
|
264
|
+
certResolver: letsencrypt
|
|
265
|
+
middlewares:
|
|
266
|
+
- security-headers
|
|
267
|
+
- rate-limit
|
|
268
|
+
|
|
269
|
+
api:
|
|
270
|
+
rule: "Host(`app.example.com`) && PathPrefix(`/api`)"
|
|
271
|
+
entryPoints:
|
|
272
|
+
- websecure
|
|
273
|
+
service: api
|
|
274
|
+
tls:
|
|
275
|
+
certResolver: letsencrypt
|
|
276
|
+
|
|
277
|
+
services:
|
|
278
|
+
app:
|
|
279
|
+
loadBalancer:
|
|
280
|
+
servers:
|
|
281
|
+
- url: "http://127.0.0.1:3000"
|
|
282
|
+
healthCheck:
|
|
283
|
+
path: /health
|
|
284
|
+
interval: 10s
|
|
285
|
+
timeout: 3s
|
|
286
|
+
|
|
287
|
+
api:
|
|
288
|
+
loadBalancer:
|
|
289
|
+
servers:
|
|
290
|
+
- url: "http://127.0.0.1:8080"
|
|
291
|
+
healthCheck:
|
|
292
|
+
path: /api/health
|
|
293
|
+
interval: 10s
|
|
294
|
+
timeout: 3s
|
|
295
|
+
|
|
296
|
+
middlewares:
|
|
297
|
+
security-headers:
|
|
298
|
+
headers:
|
|
299
|
+
stsSeconds: 63072000
|
|
300
|
+
stsIncludeSubdomains: true
|
|
301
|
+
frameDeny: true
|
|
302
|
+
contentTypeNosniff: true
|
|
303
|
+
browserXssFilter: true
|
|
304
|
+
referrerPolicy: strict-origin-when-cross-origin
|
|
305
|
+
|
|
306
|
+
rate-limit:
|
|
307
|
+
rateLimit:
|
|
308
|
+
average: 100
|
|
309
|
+
burst: 50
|
|
310
|
+
period: 1m
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Traefik with Docker Labels
|
|
314
|
+
|
|
315
|
+
```yaml
|
|
316
|
+
# docker-compose.yml
|
|
317
|
+
version: "3.8"
|
|
318
|
+
|
|
319
|
+
services:
|
|
320
|
+
traefik:
|
|
321
|
+
image: traefik:v3.0
|
|
322
|
+
ports:
|
|
323
|
+
- "80:80"
|
|
324
|
+
- "443:443"
|
|
325
|
+
volumes:
|
|
326
|
+
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
327
|
+
- ./traefik.yml:/etc/traefik/traefik.yml:ro
|
|
328
|
+
- letsencrypt:/letsencrypt
|
|
329
|
+
|
|
330
|
+
frontend:
|
|
331
|
+
image: my-frontend:latest
|
|
332
|
+
labels:
|
|
333
|
+
- "traefik.enable=true"
|
|
334
|
+
- "traefik.http.routers.frontend.rule=Host(`app.example.com`)"
|
|
335
|
+
- "traefik.http.routers.frontend.tls.certresolver=letsencrypt"
|
|
336
|
+
- "traefik.http.services.frontend.loadbalancer.server.port=3000"
|
|
337
|
+
|
|
338
|
+
api:
|
|
339
|
+
image: my-api:latest
|
|
340
|
+
labels:
|
|
341
|
+
- "traefik.enable=true"
|
|
342
|
+
- "traefik.http.routers.api.rule=Host(`app.example.com`) && PathPrefix(`/api`)"
|
|
343
|
+
- "traefik.http.routers.api.tls.certresolver=letsencrypt"
|
|
344
|
+
- "traefik.http.services.api.loadbalancer.server.port=8080"
|
|
345
|
+
- "traefik.http.routers.api.middlewares=api-ratelimit"
|
|
346
|
+
- "traefik.http.middlewares.api-ratelimit.ratelimit.average=50"
|
|
347
|
+
- "traefik.http.middlewares.api-ratelimit.ratelimit.burst=25"
|
|
348
|
+
|
|
349
|
+
volumes:
|
|
350
|
+
letsencrypt:
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
## nginx Testing and Management
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
# Test configuration syntax
|
|
357
|
+
sudo nginx -t
|
|
358
|
+
|
|
359
|
+
# Reload without downtime
|
|
360
|
+
sudo nginx -s reload
|
|
361
|
+
|
|
362
|
+
# View active connections
|
|
363
|
+
sudo nginx -s status
|
|
364
|
+
|
|
365
|
+
# Check which config file is active
|
|
366
|
+
nginx -V 2>&1 | grep -o '\-\-conf-path=[^ ]*'
|
|
367
|
+
|
|
368
|
+
# Monitor access logs
|
|
369
|
+
tail -f /var/log/nginx/access.log
|
|
370
|
+
|
|
371
|
+
# Monitor error logs
|
|
372
|
+
tail -f /var/log/nginx/error.log
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## IP Allowlisting and Geoblocking
|
|
376
|
+
|
|
377
|
+
```nginx
|
|
378
|
+
# Allow only specific IPs (admin panel)
|
|
379
|
+
location /admin/ {
|
|
380
|
+
allow 203.0.113.0/24;
|
|
381
|
+
allow 198.51.100.5;
|
|
382
|
+
deny all;
|
|
383
|
+
proxy_pass http://127.0.0.1:3000;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
# Block by country (requires GeoIP2 module)
|
|
387
|
+
# geoip2 /usr/share/GeoIP/GeoLite2-Country.mmdb {
|
|
388
|
+
# auto_reload 60m;
|
|
389
|
+
# $geoip2_data_country_iso_code country iso_code;
|
|
390
|
+
# }
|
|
391
|
+
# if ($geoip2_data_country_iso_code = "XX") {
|
|
392
|
+
# return 403;
|
|
393
|
+
# }
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
## Troubleshooting
|
|
397
|
+
|
|
398
|
+
| Symptom | Cause | Fix |
|
|
399
|
+
|---------|-------|-----|
|
|
400
|
+
| 502 Bad Gateway | Backend not running or unreachable | Verify backend is listening; check `proxy_pass` URL |
|
|
401
|
+
| 504 Gateway Timeout | Backend too slow | Increase `proxy_read_timeout`; check backend performance |
|
|
402
|
+
| Mixed content warnings | `X-Forwarded-Proto` not set | Add `proxy_set_header X-Forwarded-Proto $scheme` |
|
|
403
|
+
| WebSocket disconnects after 60s | Default proxy timeout expires | Set `proxy_read_timeout 86400s` for WebSocket locations |
|
|
404
|
+
| Rate limit hits legitimate users | Zone rate too aggressive | Increase `rate` or `burst` values; use different zones per endpoint |
|
|
405
|
+
| Let's Encrypt renewal fails | Port 80 blocked or wrong server block | Ensure `.well-known/acme-challenge/` is accessible |
|
|
406
|
+
| Traefik shows 404 for all routes | Docker labels not detected | Verify Docker socket is mounted; check `exposedByDefault` setting |
|
|
407
|
+
| TLS handshake failure | Certificate chain incomplete | Include intermediate certificates in `ssl_certificate` |
|
|
408
|
+
|
|
409
|
+
## Related Skills
|
|
410
|
+
|
|
411
|
+
- load-balancing (`load-balancing`) - Multi-backend traffic distribution
|
|
412
|
+
- cdn-setup (`cdn-setup`) - CDN in front of reverse proxy
|
|
413
|
+
- dns-management (`dns-management`) - DNS records for proxy domains
|
|
414
|
+
- service-mesh (`service-mesh`) - Service-level routing in Kubernetes
|
|
415
|
+
|
|
416
|
+
## Limitations
|
|
417
|
+
|
|
418
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
419
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
420
|
+
|