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,451 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gdpr-compliance
|
|
3
|
+
description: Implement GDPR data protection requirements. Configure consent management,
|
|
4
|
+
data subject rights, and privacy by design. Use when processing EU personal data.
|
|
5
|
+
category: security
|
|
6
|
+
risk: safe
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Checklist and framework guidance; no privileged tooling required. Apply
|
|
14
|
+
controls through your own change process.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# GDPR Compliance
|
|
21
|
+
|
|
22
|
+
Implement General Data Protection Regulation requirements for organizations that process personal data of EU/EEA residents, covering lawful processing, data subject rights, and technical safeguards.
|
|
23
|
+
|
|
24
|
+
## Key Principles and Legal Bases
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
gdpr_principles:
|
|
28
|
+
article_5:
|
|
29
|
+
lawfulness_fairness_transparency:
|
|
30
|
+
description: "Process data lawfully, fairly, and transparently"
|
|
31
|
+
implementation:
|
|
32
|
+
- Document legal basis for every processing activity
|
|
33
|
+
- Provide clear privacy notices
|
|
34
|
+
- No hidden or deceptive data collection
|
|
35
|
+
|
|
36
|
+
purpose_limitation:
|
|
37
|
+
description: "Collect for specified, explicit, and legitimate purposes"
|
|
38
|
+
implementation:
|
|
39
|
+
- Define purpose before collection
|
|
40
|
+
- Do not repurpose data without new legal basis
|
|
41
|
+
- Document all processing purposes in ROPA
|
|
42
|
+
|
|
43
|
+
data_minimization:
|
|
44
|
+
description: "Adequate, relevant, and limited to what is necessary"
|
|
45
|
+
implementation:
|
|
46
|
+
- Collect only required fields
|
|
47
|
+
- Review data models for unnecessary fields
|
|
48
|
+
- Remove optional fields that are not used
|
|
49
|
+
|
|
50
|
+
accuracy:
|
|
51
|
+
description: "Accurate and kept up to date"
|
|
52
|
+
implementation:
|
|
53
|
+
- Provide self-service profile editing
|
|
54
|
+
- Implement data validation at point of entry
|
|
55
|
+
- Schedule regular data quality reviews
|
|
56
|
+
|
|
57
|
+
storage_limitation:
|
|
58
|
+
description: "Kept no longer than necessary"
|
|
59
|
+
implementation:
|
|
60
|
+
- Define retention periods per data category
|
|
61
|
+
- Automate deletion when retention expires
|
|
62
|
+
- Document retention schedule
|
|
63
|
+
|
|
64
|
+
integrity_and_confidentiality:
|
|
65
|
+
description: "Appropriate security measures"
|
|
66
|
+
implementation:
|
|
67
|
+
- Encryption at rest and in transit
|
|
68
|
+
- Access controls and audit logging
|
|
69
|
+
- Pseudonymization where appropriate
|
|
70
|
+
|
|
71
|
+
accountability:
|
|
72
|
+
description: "Demonstrate compliance"
|
|
73
|
+
implementation:
|
|
74
|
+
- Maintain Records of Processing Activities
|
|
75
|
+
- Conduct DPIAs for high-risk processing
|
|
76
|
+
- Appoint DPO if required
|
|
77
|
+
|
|
78
|
+
legal_bases:
|
|
79
|
+
article_6:
|
|
80
|
+
consent: "Freely given, specific, informed, unambiguous"
|
|
81
|
+
contract: "Necessary for performance of a contract"
|
|
82
|
+
legal_obligation: "Required by EU or member state law"
|
|
83
|
+
vital_interests: "Protect life of data subject or another person"
|
|
84
|
+
public_interest: "Task carried out in public interest"
|
|
85
|
+
legitimate_interest: "Legitimate interest not overridden by data subject rights"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Data Mapping Template (Records of Processing Activities)
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
# Record of Processing Activities (ROPA) - Article 30
|
|
92
|
+
processing_activity:
|
|
93
|
+
name: "Customer Account Management"
|
|
94
|
+
controller: "Example Corp, 123 Main St, Dublin, Ireland"
|
|
95
|
+
dpo_contact: "dpo@example.com"
|
|
96
|
+
purpose: "Manage customer accounts, provide services, handle billing"
|
|
97
|
+
legal_basis: "Contract (Art. 6(1)(b))"
|
|
98
|
+
categories_of_data_subjects:
|
|
99
|
+
- Customers
|
|
100
|
+
- Prospective customers
|
|
101
|
+
categories_of_personal_data:
|
|
102
|
+
- Name, email, phone number
|
|
103
|
+
- Billing address
|
|
104
|
+
- Payment information (tokenized)
|
|
105
|
+
- Service usage data
|
|
106
|
+
- Support ticket history
|
|
107
|
+
special_categories: "None"
|
|
108
|
+
recipients:
|
|
109
|
+
- Payment processor (Stripe) - processor
|
|
110
|
+
- Email service (SendGrid) - processor
|
|
111
|
+
- Cloud hosting (AWS) - processor
|
|
112
|
+
international_transfers:
|
|
113
|
+
- Destination: United States
|
|
114
|
+
Safeguard: "Standard Contractual Clauses (SCCs)"
|
|
115
|
+
TIA_completed: true
|
|
116
|
+
retention_period: "Account data retained for duration of contract + 7 years for legal obligations"
|
|
117
|
+
security_measures:
|
|
118
|
+
- AES-256 encryption at rest
|
|
119
|
+
- TLS 1.3 in transit
|
|
120
|
+
- Role-based access control
|
|
121
|
+
- Audit logging of all access
|
|
122
|
+
dpia_required: false
|
|
123
|
+
last_reviewed: "2024-06-01"
|
|
124
|
+
|
|
125
|
+
# Template for each processing activity
|
|
126
|
+
processing_activity_template:
|
|
127
|
+
name: ""
|
|
128
|
+
controller: ""
|
|
129
|
+
joint_controller: "" # if applicable
|
|
130
|
+
processor: "" # if acting as processor
|
|
131
|
+
dpo_contact: ""
|
|
132
|
+
purpose: ""
|
|
133
|
+
legal_basis: "" # consent | contract | legal_obligation | vital_interests | public_interest | legitimate_interest
|
|
134
|
+
legitimate_interest_assessment: "" # if legitimate interest
|
|
135
|
+
categories_of_data_subjects: []
|
|
136
|
+
categories_of_personal_data: []
|
|
137
|
+
special_categories: "" # Art. 9 data
|
|
138
|
+
recipients: []
|
|
139
|
+
international_transfers: []
|
|
140
|
+
retention_period: ""
|
|
141
|
+
security_measures: []
|
|
142
|
+
dpia_required: false
|
|
143
|
+
date_added: ""
|
|
144
|
+
last_reviewed: ""
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Consent Management Implementation
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
"""
|
|
151
|
+
Consent management system implementing GDPR Article 7 requirements.
|
|
152
|
+
Consent must be freely given, specific, informed, and unambiguous.
|
|
153
|
+
"""
|
|
154
|
+
from datetime import datetime, timezone
|
|
155
|
+
from enum import Enum
|
|
156
|
+
import json
|
|
157
|
+
import hashlib
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class ConsentPurpose(Enum):
|
|
161
|
+
MARKETING_EMAIL = "marketing_email"
|
|
162
|
+
MARKETING_SMS = "marketing_sms"
|
|
163
|
+
ANALYTICS = "analytics"
|
|
164
|
+
PERSONALIZATION = "personalization"
|
|
165
|
+
THIRD_PARTY_SHARING = "third_party_sharing"
|
|
166
|
+
PROFILING = "profiling"
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
class ConsentManager:
|
|
170
|
+
def __init__(self, db):
|
|
171
|
+
self.db = db
|
|
172
|
+
|
|
173
|
+
def record_consent(self, user_id, purpose, granted, source,
|
|
174
|
+
privacy_policy_version, ip_address=None):
|
|
175
|
+
"""Record a consent decision with full audit trail."""
|
|
176
|
+
consent_record = {
|
|
177
|
+
"user_id": user_id,
|
|
178
|
+
"purpose": purpose.value,
|
|
179
|
+
"granted": granted,
|
|
180
|
+
"timestamp": datetime.now(timezone.utc).isoformat(),
|
|
181
|
+
"source": source, # e.g., "web_signup", "preference_center", "cookie_banner"
|
|
182
|
+
"privacy_policy_version": privacy_policy_version,
|
|
183
|
+
"ip_address": ip_address,
|
|
184
|
+
"withdrawal_timestamp": None,
|
|
185
|
+
}
|
|
186
|
+
# Store with immutable audit trail
|
|
187
|
+
consent_record["record_hash"] = hashlib.sha256(
|
|
188
|
+
json.dumps(consent_record, sort_keys=True).encode()
|
|
189
|
+
).hexdigest()
|
|
190
|
+
self.db.consent_records.insert(consent_record)
|
|
191
|
+
return consent_record
|
|
192
|
+
|
|
193
|
+
def withdraw_consent(self, user_id, purpose):
|
|
194
|
+
"""Process consent withdrawal - must be as easy as giving consent."""
|
|
195
|
+
record = self.record_consent(
|
|
196
|
+
user_id=user_id,
|
|
197
|
+
purpose=purpose,
|
|
198
|
+
granted=False,
|
|
199
|
+
source="withdrawal",
|
|
200
|
+
privacy_policy_version="N/A",
|
|
201
|
+
)
|
|
202
|
+
# Trigger downstream actions
|
|
203
|
+
self._notify_processors(user_id, purpose, "withdrawn")
|
|
204
|
+
self._stop_processing(user_id, purpose)
|
|
205
|
+
return record
|
|
206
|
+
|
|
207
|
+
def get_consent_status(self, user_id, purpose):
|
|
208
|
+
"""Get current consent status for a specific purpose."""
|
|
209
|
+
latest = self.db.consent_records.find_one(
|
|
210
|
+
{"user_id": user_id, "purpose": purpose.value},
|
|
211
|
+
sort=[("timestamp", -1)]
|
|
212
|
+
)
|
|
213
|
+
return latest["granted"] if latest else False
|
|
214
|
+
|
|
215
|
+
def get_all_consents(self, user_id):
|
|
216
|
+
"""Get all consent records for a user (for DSAR response)."""
|
|
217
|
+
return list(self.db.consent_records.find(
|
|
218
|
+
{"user_id": user_id},
|
|
219
|
+
sort=[("timestamp", -1)]
|
|
220
|
+
))
|
|
221
|
+
|
|
222
|
+
def export_consent_proof(self, user_id, purpose):
|
|
223
|
+
"""Export verifiable consent proof for accountability."""
|
|
224
|
+
records = list(self.db.consent_records.find(
|
|
225
|
+
{"user_id": user_id, "purpose": purpose.value},
|
|
226
|
+
sort=[("timestamp", 1)]
|
|
227
|
+
))
|
|
228
|
+
return {
|
|
229
|
+
"user_id": user_id,
|
|
230
|
+
"purpose": purpose.value,
|
|
231
|
+
"consent_history": records,
|
|
232
|
+
"current_status": self.get_consent_status(user_id, purpose),
|
|
233
|
+
"exported_at": datetime.now(timezone.utc).isoformat(),
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
def _notify_processors(self, user_id, purpose, action):
|
|
237
|
+
"""Notify downstream processors of consent change."""
|
|
238
|
+
pass # Implement webhook/API calls to processors
|
|
239
|
+
|
|
240
|
+
def _stop_processing(self, user_id, purpose):
|
|
241
|
+
"""Immediately stop processing for withdrawn consent."""
|
|
242
|
+
pass # Implement processing halt logic
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Data Subject Access Request (DSAR) Procedures
|
|
246
|
+
|
|
247
|
+
```yaml
|
|
248
|
+
dsar_workflow:
|
|
249
|
+
step_1_receive:
|
|
250
|
+
actions:
|
|
251
|
+
- Log the request with timestamp and channel received
|
|
252
|
+
- Assign unique tracking ID
|
|
253
|
+
- Acknowledge receipt within 3 business days
|
|
254
|
+
identity_verification:
|
|
255
|
+
- Verify identity before providing any data
|
|
256
|
+
- Use existing authentication where possible
|
|
257
|
+
- Request additional proof if necessary (but not excessive)
|
|
258
|
+
sla: "Must respond within 30 days (extendable to 90 days for complex requests)"
|
|
259
|
+
|
|
260
|
+
step_2_assess:
|
|
261
|
+
actions:
|
|
262
|
+
- Determine request type (access, rectification, erasure, portability, etc.)
|
|
263
|
+
- Identify all systems containing the individual's data
|
|
264
|
+
- Check for lawful grounds to refuse (legal obligations, etc.)
|
|
265
|
+
- Assess if extension is needed (complex or numerous requests)
|
|
266
|
+
|
|
267
|
+
step_3_collect:
|
|
268
|
+
systems_to_search:
|
|
269
|
+
- Primary application database
|
|
270
|
+
- CRM system
|
|
271
|
+
- Email marketing platform
|
|
272
|
+
- Analytics systems
|
|
273
|
+
- Customer support tickets
|
|
274
|
+
- Backup systems (if practically retrievable)
|
|
275
|
+
- Log files containing PII
|
|
276
|
+
- Third-party processors (request from each)
|
|
277
|
+
|
|
278
|
+
step_4_respond:
|
|
279
|
+
access_request:
|
|
280
|
+
- Provide copy of all personal data in commonly used electronic format
|
|
281
|
+
- Include processing purposes, categories, recipients, retention periods
|
|
282
|
+
- Include source of data if not collected from the individual
|
|
283
|
+
- Include information about automated decision-making
|
|
284
|
+
rectification_request:
|
|
285
|
+
- Update data in all systems
|
|
286
|
+
- Notify all recipients of the correction
|
|
287
|
+
erasure_request:
|
|
288
|
+
- Delete data from all active systems
|
|
289
|
+
- Remove from backups where technically feasible
|
|
290
|
+
- Notify all processors and recipients
|
|
291
|
+
- Document what was deleted and any retained data with legal basis
|
|
292
|
+
portability_request:
|
|
293
|
+
- Provide data in structured, machine-readable format (JSON/CSV)
|
|
294
|
+
- Include only data provided by the data subject
|
|
295
|
+
- Transfer directly to another controller if requested and feasible
|
|
296
|
+
|
|
297
|
+
step_5_close:
|
|
298
|
+
actions:
|
|
299
|
+
- Send response to data subject
|
|
300
|
+
- Document the entire handling process
|
|
301
|
+
- Archive DSAR record for accountability
|
|
302
|
+
- Update data mapping if new data stores discovered
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
```python
|
|
306
|
+
"""DSAR automation - data collection across systems."""
|
|
307
|
+
import json
|
|
308
|
+
from datetime import datetime, timezone
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class DSARProcessor:
|
|
312
|
+
def __init__(self, data_sources):
|
|
313
|
+
self.data_sources = data_sources # Dict of system_name: DataSource
|
|
314
|
+
|
|
315
|
+
def process_access_request(self, user_identifier):
|
|
316
|
+
"""Collect all personal data across registered systems."""
|
|
317
|
+
collected_data = {
|
|
318
|
+
"request_id": f"DSAR-{datetime.now(timezone.utc).strftime('%Y%m%d%H%M%S')}",
|
|
319
|
+
"generated_at": datetime.now(timezone.utc).isoformat(),
|
|
320
|
+
"data_subject": user_identifier,
|
|
321
|
+
"systems": {},
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
for system_name, source in self.data_sources.items():
|
|
325
|
+
try:
|
|
326
|
+
data = source.extract_user_data(user_identifier)
|
|
327
|
+
collected_data["systems"][system_name] = {
|
|
328
|
+
"status": "collected",
|
|
329
|
+
"record_count": len(data) if isinstance(data, list) else 1,
|
|
330
|
+
"data": data,
|
|
331
|
+
}
|
|
332
|
+
except Exception as e:
|
|
333
|
+
collected_data["systems"][system_name] = {
|
|
334
|
+
"status": "error",
|
|
335
|
+
"error": str(e),
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
return collected_data
|
|
339
|
+
|
|
340
|
+
def process_erasure_request(self, user_identifier):
|
|
341
|
+
"""Delete personal data across all systems (right to erasure)."""
|
|
342
|
+
results = {
|
|
343
|
+
"request_id": f"ERASE-{datetime.now(timezone.utc).strftime('%Y%m%d%H%M%S')}",
|
|
344
|
+
"data_subject": user_identifier,
|
|
345
|
+
"systems": {},
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
for system_name, source in self.data_sources.items():
|
|
349
|
+
try:
|
|
350
|
+
deleted = source.delete_user_data(user_identifier)
|
|
351
|
+
retained = source.get_retained_data(user_identifier)
|
|
352
|
+
results["systems"][system_name] = {
|
|
353
|
+
"status": "deleted",
|
|
354
|
+
"records_deleted": deleted,
|
|
355
|
+
"retained_data": retained, # Data kept for legal obligations
|
|
356
|
+
"retention_basis": source.retention_legal_basis,
|
|
357
|
+
}
|
|
358
|
+
except Exception as e:
|
|
359
|
+
results["systems"][system_name] = {
|
|
360
|
+
"status": "error",
|
|
361
|
+
"error": str(e),
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
return results
|
|
365
|
+
|
|
366
|
+
def export_portable_data(self, user_identifier, format="json"):
|
|
367
|
+
"""Export data in machine-readable format for portability."""
|
|
368
|
+
data = self.process_access_request(user_identifier)
|
|
369
|
+
if format == "json":
|
|
370
|
+
return json.dumps(data, indent=2, default=str)
|
|
371
|
+
elif format == "csv":
|
|
372
|
+
return self._convert_to_csv(data)
|
|
373
|
+
raise ValueError(f"Unsupported format: {format}")
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
## Data Processing Agreement (DPA) Requirements
|
|
377
|
+
|
|
378
|
+
```yaml
|
|
379
|
+
dpa_requirements:
|
|
380
|
+
mandatory_clauses:
|
|
381
|
+
article_28:
|
|
382
|
+
- Subject matter, duration, nature, and purpose of processing
|
|
383
|
+
- Type of personal data and categories of data subjects
|
|
384
|
+
- Obligations and rights of the controller
|
|
385
|
+
- Processing only on documented instructions from controller
|
|
386
|
+
- Confidentiality obligations on processor personnel
|
|
387
|
+
- Appropriate technical and organizational security measures
|
|
388
|
+
- Conditions for engaging sub-processors (prior authorization)
|
|
389
|
+
- Assistance with data subject rights requests
|
|
390
|
+
- Assistance with security obligations (Art. 32-36)
|
|
391
|
+
- Deletion or return of data after service ends
|
|
392
|
+
- Audit and inspection rights for the controller
|
|
393
|
+
|
|
394
|
+
sub_processor_management:
|
|
395
|
+
- [ ] List of current sub-processors provided by processor
|
|
396
|
+
- [ ] Notification mechanism for new sub-processors (30-day notice)
|
|
397
|
+
- [ ] Right to object to new sub-processors
|
|
398
|
+
- [ ] Sub-processors bound by same data protection obligations
|
|
399
|
+
- [ ] Processor remains liable for sub-processor compliance
|
|
400
|
+
|
|
401
|
+
international_transfers:
|
|
402
|
+
mechanisms:
|
|
403
|
+
- Standard Contractual Clauses (SCCs) - most common
|
|
404
|
+
- Binding Corporate Rules (BCRs) - intra-group transfers
|
|
405
|
+
- Adequacy decision (countries deemed adequate by EC)
|
|
406
|
+
- Derogations for specific situations (explicit consent, contract necessity)
|
|
407
|
+
transfer_impact_assessment:
|
|
408
|
+
- [ ] Assess laws of the destination country
|
|
409
|
+
- [ ] Evaluate effectiveness of safeguards
|
|
410
|
+
- [ ] Document supplementary measures if needed
|
|
411
|
+
- [ ] Review periodically for legal changes
|
|
412
|
+
|
|
413
|
+
dpa_registry:
|
|
414
|
+
track_per_processor:
|
|
415
|
+
- Processor name and contact details
|
|
416
|
+
- DPA execution date
|
|
417
|
+
- Data types processed
|
|
418
|
+
- Sub-processors and their locations
|
|
419
|
+
- SCC version used for international transfers
|
|
420
|
+
- TIA completion date
|
|
421
|
+
- Next review date
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
## Contents
|
|
426
|
+
|
|
427
|
+
- [Data Protection Impact Assessment (DPIA) Template](references/details.md)
|
|
428
|
+
- [GDPR Compliance Checklist](references/details.md)
|
|
429
|
+
- [Best Practices](references/details.md)
|
|
430
|
+
|
|
431
|
+
## When to Use
|
|
432
|
+
|
|
433
|
+
- Processing personal data of EU/EEA residents in any capacity
|
|
434
|
+
- Building consent management and preference centers
|
|
435
|
+
- Implementing Data Subject Access Request (DSAR) workflows
|
|
436
|
+
- Conducting Data Protection Impact Assessments (DPIAs)
|
|
437
|
+
- Setting up data processing agreements with third-party processors
|
|
438
|
+
- Designing systems with privacy by design and by default principles
|
|
439
|
+
|
|
440
|
+
## Limitations
|
|
441
|
+
|
|
442
|
+
- Guidance and checklists only; not legal advice and not a substitute for a qualified auditor.
|
|
443
|
+
- Docs-only import: upstream templates and scripts not bundled.
|
|
444
|
+
|
|
445
|
+
### Example
|
|
446
|
+
|
|
447
|
+
```markdown
|
|
448
|
+
Map this skill's control checklist to our current evidence and list gaps.
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
> 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,145 @@
|
|
|
1
|
+
# Details (moved from SKILL.md)
|
|
2
|
+
|
|
3
|
+
> Extended reference content for `gdpr-compliance`, kept under `references/` so the entrypoint stays within the audit budget.
|
|
4
|
+
|
|
5
|
+
## Data Protection Impact Assessment (DPIA) Template
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
dpia_template:
|
|
9
|
+
when_required:
|
|
10
|
+
- Systematic and extensive profiling with significant effects
|
|
11
|
+
- Large-scale processing of special category data
|
|
12
|
+
- Systematic monitoring of publicly accessible areas
|
|
13
|
+
- Any processing on national supervisory authority's list
|
|
14
|
+
- New technologies with likely high risk to rights and freedoms
|
|
15
|
+
|
|
16
|
+
assessment:
|
|
17
|
+
section_1_description:
|
|
18
|
+
processing_activity: ""
|
|
19
|
+
purpose: ""
|
|
20
|
+
legal_basis: ""
|
|
21
|
+
data_categories: []
|
|
22
|
+
data_subjects: []
|
|
23
|
+
recipients: []
|
|
24
|
+
retention: ""
|
|
25
|
+
data_flows: "Describe how data moves through systems"
|
|
26
|
+
|
|
27
|
+
section_2_necessity:
|
|
28
|
+
is_processing_necessary: ""
|
|
29
|
+
is_processing_proportionate: ""
|
|
30
|
+
alternatives_considered: ""
|
|
31
|
+
data_minimization_applied: ""
|
|
32
|
+
|
|
33
|
+
section_3_risks:
|
|
34
|
+
risk_assessment:
|
|
35
|
+
- risk: "Unauthorized access to personal data"
|
|
36
|
+
likelihood: "medium"
|
|
37
|
+
severity: "high"
|
|
38
|
+
risk_level: "high"
|
|
39
|
+
existing_controls: "Encryption, access controls, audit logs"
|
|
40
|
+
residual_risk: "medium"
|
|
41
|
+
|
|
42
|
+
- risk: "Accidental data loss or destruction"
|
|
43
|
+
likelihood: "low"
|
|
44
|
+
severity: "high"
|
|
45
|
+
risk_level: "medium"
|
|
46
|
+
existing_controls: "Backups, replication, DR procedures"
|
|
47
|
+
residual_risk: "low"
|
|
48
|
+
|
|
49
|
+
- risk: "Excessive data collection beyond purpose"
|
|
50
|
+
likelihood: "medium"
|
|
51
|
+
severity: "medium"
|
|
52
|
+
risk_level: "medium"
|
|
53
|
+
existing_controls: "Data minimization review, schema validation"
|
|
54
|
+
residual_risk: "low"
|
|
55
|
+
|
|
56
|
+
section_4_measures:
|
|
57
|
+
technical_measures:
|
|
58
|
+
- Pseudonymization of personal data
|
|
59
|
+
- Encryption at rest (AES-256) and in transit (TLS 1.3)
|
|
60
|
+
- Access controls with least privilege
|
|
61
|
+
- Automated data retention enforcement
|
|
62
|
+
organizational_measures:
|
|
63
|
+
- Staff training on data protection
|
|
64
|
+
- Data protection policies and procedures
|
|
65
|
+
- Incident response procedures
|
|
66
|
+
- Regular access reviews
|
|
67
|
+
monitoring:
|
|
68
|
+
- Audit logging of all data access
|
|
69
|
+
- Anomaly detection for unusual access patterns
|
|
70
|
+
- Regular compliance testing
|
|
71
|
+
|
|
72
|
+
section_5_sign_off:
|
|
73
|
+
dpo_consultation: "Required if high residual risk"
|
|
74
|
+
dpo_opinion: ""
|
|
75
|
+
supervisory_authority_consultation: "Required if risk cannot be mitigated"
|
|
76
|
+
approval_date: ""
|
|
77
|
+
next_review_date: ""
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
## GDPR Compliance Checklist
|
|
82
|
+
|
|
83
|
+
```yaml
|
|
84
|
+
gdpr_compliance_checklist:
|
|
85
|
+
governance:
|
|
86
|
+
- [ ] Data Protection Officer appointed (if required under Art. 37)
|
|
87
|
+
- [ ] Records of Processing Activities (ROPA) maintained
|
|
88
|
+
- [ ] Privacy policies published and up to date
|
|
89
|
+
- [ ] Data protection training conducted for all staff
|
|
90
|
+
- [ ] Data breach response plan documented and tested
|
|
91
|
+
|
|
92
|
+
lawful_processing:
|
|
93
|
+
- [ ] Legal basis identified and documented for each processing activity
|
|
94
|
+
- [ ] Consent mechanisms comply with Art. 7 (freely given, specific, informed)
|
|
95
|
+
- [ ] Consent withdrawal is as easy as giving consent
|
|
96
|
+
- [ ] Legitimate interest assessments completed where applicable
|
|
97
|
+
- [ ] Special category data has Art. 9 legal basis documented
|
|
98
|
+
|
|
99
|
+
data_subject_rights:
|
|
100
|
+
- [ ] DSAR intake process established (multiple channels)
|
|
101
|
+
- [ ] Identity verification procedure defined
|
|
102
|
+
- [ ] Response within 30 days (or extension communicated)
|
|
103
|
+
- [ ] Right to access implemented and tested
|
|
104
|
+
- [ ] Right to rectification implemented
|
|
105
|
+
- [ ] Right to erasure implemented with legal retention exceptions
|
|
106
|
+
- [ ] Right to portability implemented (structured, machine-readable export)
|
|
107
|
+
- [ ] Right to object implemented (especially for direct marketing)
|
|
108
|
+
|
|
109
|
+
technical_measures:
|
|
110
|
+
- [ ] Encryption at rest and in transit for all personal data
|
|
111
|
+
- [ ] Pseudonymization applied where feasible
|
|
112
|
+
- [ ] Access controls enforce least privilege
|
|
113
|
+
- [ ] Audit logging of personal data access
|
|
114
|
+
- [ ] Data retention automated with defined schedules
|
|
115
|
+
- [ ] Secure deletion procedures verified
|
|
116
|
+
|
|
117
|
+
third_parties:
|
|
118
|
+
- [ ] Data Processing Agreements signed with all processors
|
|
119
|
+
- [ ] Sub-processor notification mechanism in place
|
|
120
|
+
- [ ] International transfer safeguards implemented (SCCs, etc.)
|
|
121
|
+
- [ ] Transfer Impact Assessments completed
|
|
122
|
+
- [ ] Processor compliance verified periodically
|
|
123
|
+
|
|
124
|
+
breach_management:
|
|
125
|
+
- [ ] Breach detection and assessment procedures documented
|
|
126
|
+
- [ ] 72-hour supervisory authority notification process ready
|
|
127
|
+
- [ ] Individual notification procedures for high-risk breaches
|
|
128
|
+
- [ ] Breach register maintained
|
|
129
|
+
- [ ] Post-breach review and improvement process
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
## Best Practices
|
|
134
|
+
|
|
135
|
+
- Maintain a comprehensive Records of Processing Activities as the foundation of GDPR compliance
|
|
136
|
+
- Implement privacy by design: build data protection into systems from the start, not retrofitted
|
|
137
|
+
- Apply data minimization rigorously: do not collect personal data "just in case"
|
|
138
|
+
- Automate DSAR processing to meet the 30-day response deadline consistently
|
|
139
|
+
- Keep consent granular and purpose-specific; avoid bundled consent for multiple purposes
|
|
140
|
+
- Conduct DPIAs before launching high-risk processing activities
|
|
141
|
+
- Ensure data processing agreements are signed with every processor before sharing personal data
|
|
142
|
+
- Implement automated retention enforcement to prevent storage beyond defined periods
|
|
143
|
+
- Train all staff who handle personal data, not just the IT and legal teams
|
|
144
|
+
- Regularly audit data flows to discover shadow processing or undocumented data stores
|
|
145
|
+
|