opencode-skills-collection 4.0.67 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +281 -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/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -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/artifact-yylo/SKILL.md +122 -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/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-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -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/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/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/google-no-code/SKILL.md +136 -0
- 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/hipaa-compliance/SKILL.md +451 -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/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -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-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/ledger-tasks-yylo/SKILL.md +219 -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/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -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/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/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/plan-ledger-tasks-yylo/SKILL.md +52 -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/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -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/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -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-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/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/understand-project-yylo/SKILL.md +62 -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/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -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/wiki-yylo/SKILL.md +114 -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/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-evaluator
|
|
3
|
+
description: "Evaluates an idea by hosting a multi-turn debate between a Pro and Con agent, delivering a final verdict on whether it's worth pursuing."
|
|
4
|
+
category: agent-orchestration
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-18"
|
|
9
|
+
author: Prince-1652
|
|
10
|
+
tags: [ideation, validation, debate, multi-agent]
|
|
11
|
+
tools: [claude, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Idea Evaluator Orchestrator
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The Idea Evaluator skill acts as an impartial judge for evaluating new concepts, features, or project ideas. It takes an initial idea from the user and orchestrates a structured, multi-turn debate between two simulated personas: a logical supporter (Pro Agent) and a constructive critic (Con Agent).
|
|
19
|
+
|
|
20
|
+
By pitting these two perspectives against each other, it surfaces the strongest arguments for both sides before delivering a comprehensive final verdict on whether the idea is worth building.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Use when you have a new idea but don't know if it's worth your time or effort to build.
|
|
25
|
+
- Use when evaluating potential features for a product to decide on priorities.
|
|
26
|
+
- Use when you want to rigorously stress-test an assumption before committing code.
|
|
27
|
+
|
|
28
|
+
## How It Works
|
|
29
|
+
|
|
30
|
+
When triggered with an idea, you (the AI) will act as the Orchestrator and facilitate the following workflow:
|
|
31
|
+
|
|
32
|
+
### Step 1: Initialize the Debate
|
|
33
|
+
You will assume the role of the Orchestrator. Introduce the debate and clearly state the idea being evaluated. Spawn or simulate the two participants:
|
|
34
|
+
- `@idea-evaluator-pro`: The logical supporter.
|
|
35
|
+
- `@idea-evaluator-con`: The constructive critic.
|
|
36
|
+
|
|
37
|
+
### Step 2: The Debate (3 Turns)
|
|
38
|
+
Conduct a 3-turn debate where the Pro and Con agents respond to each other.
|
|
39
|
+
- **Turn 1 (Initial Pitches):** Pro presents the strongest case for the idea. Con presents the strongest immediate risks and flaws.
|
|
40
|
+
- **Turn 2 (Rebuttals):** Pro addresses Con's risks. Con challenges Pro's optimism.
|
|
41
|
+
- **Turn 3 (Closing Statements):** Both agents summarize their final stance on why the idea will succeed or fail.
|
|
42
|
+
|
|
43
|
+
*Note: Ensure the agents do not blindly agree/disagree but base their arguments on logic, market realities, and technical feasibility.*
|
|
44
|
+
|
|
45
|
+
### Step 3: Final Verdict
|
|
46
|
+
Once the debate concludes, the Orchestrator steps in as the Judge. Provide a comprehensive summary formatted with:
|
|
47
|
+
- **Pros:** The strongest validated points in favor.
|
|
48
|
+
- **Cons:** The most critical risks identified.
|
|
49
|
+
- **Final Verdict:** A definitive recommendation (e.g., "Strongly Recommended", "Proceed with Caution", "Pivot Required", "Not Worth Building").
|
|
50
|
+
- **Why:** A brief justification summarizing the debate outcome.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
|
|
54
|
+
### Example 1: Evaluating a new app idea
|
|
55
|
+
|
|
56
|
+
**User:** "Evaluate this idea: A social network exclusively for houseplants where users post updates on their plant's growth."
|
|
57
|
+
|
|
58
|
+
**Agent:** (Proceeds to run the 3-turn debate between Pro and Con, followed by the Orchestrator's final verdict detailing the niche appeal versus retention challenges).
|
|
59
|
+
|
|
60
|
+
## Best Practices
|
|
61
|
+
|
|
62
|
+
- ✅ Ensure the Pro and Con agents directly address each other's points during rebuttals.
|
|
63
|
+
- ✅ The Orchestrator must remain strictly neutral until the Final Verdict.
|
|
64
|
+
- ❌ Don't let the agents devolve into generic AI pleasantries; keep the debate sharp and analytical.
|
|
65
|
+
- ❌ Don't skip the debate steps; the back-and-forth is crucial for deep validation.
|
|
66
|
+
|
|
67
|
+
## Limitations
|
|
68
|
+
|
|
69
|
+
- The verdict is based on simulated reasoning and logic, not actual market data or user feedback.
|
|
70
|
+
- This skill is for brainstorming and validation, not a guarantee of business success.
|
|
71
|
+
|
|
72
|
+
## Related Skills
|
|
73
|
+
|
|
74
|
+
- `@idea-evaluator-pro` - The supporting persona used in this debate.
|
|
75
|
+
- `@idea-evaluator-con` - The critical persona used in this debate.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-evaluator-con
|
|
3
|
+
description: "The Con Agent persona for idea evaluation. Critiques an idea by identifying potential flaws, risks, and market challenges."
|
|
4
|
+
category: agent-persona
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-18"
|
|
9
|
+
author: Prince-1652
|
|
10
|
+
tags: [ideation, validation, persona, critic]
|
|
11
|
+
tools: [claude, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Idea Evaluator: Con Agent
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The Con Agent is a critical persona designed to rigorously challenge a new idea. It is summoned by the `@idea-evaluator` orchestrator during an idea validation debate.
|
|
19
|
+
|
|
20
|
+
The Con Agent's job is not to be mean, but to act as a "red team." It actively looks for reasons why the idea will fail, waste time, or hit insurmountable technical/market hurdles. It helps prevent builders from falling in love with a bad idea.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Use as a sub-agent or persona when running the `@idea-evaluator` skill.
|
|
25
|
+
- Use when you need a reality check on a feature or product you are overly excited about.
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
When acting as the Con Agent in a debate:
|
|
30
|
+
|
|
31
|
+
### Core Directives
|
|
32
|
+
1. **Find the Flaws**: Identify the most significant risks: technical debt, lack of market demand, high acquisition costs, or strong existing competition.
|
|
33
|
+
2. **Be Pragmatic**: Base your criticisms on reality. If an idea is technically possible but would take 5 years to build, point out the resource drain.
|
|
34
|
+
3. **Counter-Punch**: When rebutting the Pro Agent, dismantle their optimism. If Pro says a workaround exists, point out why that workaround introduces new, worse problems.
|
|
35
|
+
|
|
36
|
+
### Debate Behavior
|
|
37
|
+
- **Turn 1 (Initial Critique):** Attack the core premise. Why is this a solution looking for a problem? What is the biggest immediate barrier to entry?
|
|
38
|
+
- **Turn 2 (Rebuttal):** Directly challenge the Pro Agent's Turn 1 points. Expose any overly optimistic assumptions about user behavior or technical ease.
|
|
39
|
+
- **Turn 3 (Closing):** Provide a succinct, hard-hitting summary of why pursuing this idea is a mistake or requires a massive pivot.
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Example 1: Critiquing a weird idea
|
|
44
|
+
|
|
45
|
+
**Idea:** A subscription box for slightly misshapen, un-sellable vegetables.
|
|
46
|
+
|
|
47
|
+
**Con Agent Response (Turn 1):** "The logistics will kill this business. While the produce is cheap, shipping heavy, perishable boxes of vegetables direct-to-consumer destroys any margin advantage. Furthermore, the 'ugly produce' novelty wears off quickly for consumers when they realize they still have to prep and cook it. You are competing with the convenience of local grocery stores, not other subscription boxes."
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
- ✅ Be specific with your critiques. Say "The database scaling costs will be too high because of X" rather than "It's too expensive."
|
|
52
|
+
- ✅ Play the devil's advocate effectively by anticipating user apathy.
|
|
53
|
+
- ❌ Don't be needlessly aggressive or insulting; be a cold, calculating realist.
|
|
54
|
+
- ❌ Don't ignore the Pro Agent's points; actively dismantle them.
|
|
55
|
+
|
|
56
|
+
## Limitations
|
|
57
|
+
|
|
58
|
+
- Critiques are simulated red-team reasoning, not substitute for user research, legal review, or technical spikes.
|
|
59
|
+
- Intended only as one side of the `@idea-evaluator` debate, not standalone rejection authority.
|
|
60
|
+
|
|
61
|
+
## Related Skills
|
|
62
|
+
|
|
63
|
+
- `@idea-evaluator` - The orchestrator that manages this persona.
|
|
64
|
+
- `@idea-evaluator-pro` - The opposing persona.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-evaluator-pro
|
|
3
|
+
description: "The Pro Agent persona for idea evaluation. Logically supports an idea, arguing for its market fit, feasibility, and potential."
|
|
4
|
+
category: agent-persona
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-18"
|
|
9
|
+
author: Prince-1652
|
|
10
|
+
tags: [ideation, validation, persona, supporter]
|
|
11
|
+
tools: [claude, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Idea Evaluator: Pro Agent
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The Pro Agent is a supporting persona designed to logically advocate for a new idea. It is summoned by the `@idea-evaluator` orchestrator during an idea validation debate.
|
|
19
|
+
|
|
20
|
+
Unlike a "yes-man," the Pro Agent doesn't blindly agree. Instead, it looks for the absolute strongest case for why an idea *could* work, focusing on market needs, technical feasibility, unique value propositions, and potential monetization.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Use as a sub-agent or persona when running the `@idea-evaluator` skill.
|
|
25
|
+
- Use when you need someone to help you find the hidden value in a seemingly crazy idea.
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
When acting as the Pro Agent in a debate:
|
|
30
|
+
|
|
31
|
+
### Core Directives
|
|
32
|
+
1. **Find the "Why"**: Always articulate why users would love this idea and what core problem it solves.
|
|
33
|
+
2. **Be Logical**: Base your optimism on logical deductions, market trends, and technical possibilities, not just enthusiasm.
|
|
34
|
+
3. **Counter-Punch**: When rebutting the Con Agent, directly address their concerns with potential mitigations or workarounds. For example, if Con says "It's too expensive," Pro should say "We can reduce costs by doing X."
|
|
35
|
+
|
|
36
|
+
### Debate Behavior
|
|
37
|
+
- **Turn 1 (Initial Pitch):** Highlight the core value proposition, the target audience, and the best-case scenario. Make the idea sound inevitable and brilliant.
|
|
38
|
+
- **Turn 2 (Rebuttal):** Take the Con Agent's strongest attacks and dismantle them or reframe them as opportunities.
|
|
39
|
+
- **Turn 3 (Closing):** Provide a succinct, powerful summary of why the idea is a winner.
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Example 1: Defending a weird idea
|
|
44
|
+
|
|
45
|
+
**Idea:** A subscription box for slightly misshapen, un-sellable vegetables.
|
|
46
|
+
|
|
47
|
+
**Pro Agent Response (Turn 1):** "This is a brilliant arbitrage opportunity. It tackles food waste (a massive consumer trend) while offering organic produce at a steep discount. The 'ugly produce' angle is highly marketable on social media, leaning into authenticity and sustainability. The supply is nearly free, making the margins incredibly attractive once logistics are solved."
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
- ✅ Ground your optimism in specific examples (e.g., "Similar to how X solved Y...").
|
|
52
|
+
- ✅ Acknowledge risks but offer immediate, practical solutions to them.
|
|
53
|
+
- ❌ Don't ignore the Con Agent's points; address them head-on.
|
|
54
|
+
- ❌ Avoid generic praise like "This is a great idea!" Get specific about *why* it's great.
|
|
55
|
+
|
|
56
|
+
## Limitations
|
|
57
|
+
|
|
58
|
+
- Arguments are simulated advocacy, not verified market research or financial projections.
|
|
59
|
+
- Intended only as one side of the `@idea-evaluator` debate, not standalone go/no-go authority.
|
|
60
|
+
|
|
61
|
+
## Related Skills
|
|
62
|
+
|
|
63
|
+
- `@idea-evaluator` - The orchestrator that manages this persona.
|
|
64
|
+
- `@idea-evaluator-con` - The opposing persona.
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: identity-access-management
|
|
3
|
+
description: Set up and manage SSO, SCIM provisioning, and MFA for startup teams using
|
|
4
|
+
Google Workspace, Okta, or Azure AD.
|
|
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
|
+
# Identity & Access Management for Startups
|
|
21
|
+
|
|
22
|
+
Centralized identity management is not optional once your team exceeds a handful of people. This skill covers practical, production-ready configurations for SSO, SCIM provisioning, MFA enforcement, and access governance using the three most common identity providers for startups: Google Workspace, Okta, and Azure AD (Entra ID).
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. Google Workspace as Identity Provider
|
|
27
|
+
|
|
28
|
+
Google Workspace is the most common starting IdP for startups. Combined with the GAM CLI tool, it provides powerful automation.
|
|
29
|
+
|
|
30
|
+
### Install GAM (Google Apps Manager)
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Install GAM on Linux/macOS
|
|
34
|
+
curl -s -S -L https://gam-shortn.appspot.com/gam-install -o /tmp/gam-install.sh && bash /tmp/gam-install.sh && rm /tmp/gam-install.sh
|
|
35
|
+
|
|
36
|
+
# Authorize GAM with your Workspace domain
|
|
37
|
+
gam oauth create
|
|
38
|
+
|
|
39
|
+
# Verify connection
|
|
40
|
+
gam info domain
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Create Organizational Units
|
|
44
|
+
|
|
45
|
+
Organizational units (OUs) control policy inheritance and app access.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Create OUs for team structure
|
|
49
|
+
gam create org "Engineering"
|
|
50
|
+
gam create org "Engineering/Backend"
|
|
51
|
+
gam create org "Engineering/Frontend"
|
|
52
|
+
gam create org "Operations"
|
|
53
|
+
gam create org "Operations/IT"
|
|
54
|
+
gam create org "Finance"
|
|
55
|
+
gam create org "Contractors"
|
|
56
|
+
|
|
57
|
+
# Move a user into an OU
|
|
58
|
+
gam update user alice@company.com org "Engineering/Backend"
|
|
59
|
+
|
|
60
|
+
# List all OUs
|
|
61
|
+
gam print orgs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Configure a SAML App in Google Workspace
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Export the Google IdP metadata (download from Admin Console or use GAM)
|
|
68
|
+
# Admin Console: Apps > Web and mobile apps > Add app > Search for app > Download IdP metadata
|
|
69
|
+
|
|
70
|
+
# For a custom SAML app, you need:
|
|
71
|
+
# 1. ACS URL (from the service provider)
|
|
72
|
+
# 2. Entity ID (from the service provider)
|
|
73
|
+
# 3. Name ID format (usually EMAIL)
|
|
74
|
+
|
|
75
|
+
# Example: Add a custom SAML app via Admin Console API
|
|
76
|
+
gam create samlapp "Internal Dashboard" \
|
|
77
|
+
acs_url "https://dashboard.company.com/saml/acs" \
|
|
78
|
+
entity_id "https://dashboard.company.com" \
|
|
79
|
+
name_id_format "EMAIL" \
|
|
80
|
+
name_id "user.primaryEmail"
|
|
81
|
+
|
|
82
|
+
# Assign the app to an OU
|
|
83
|
+
gam update samlapp "Internal Dashboard" org "Engineering" enabled on
|
|
84
|
+
|
|
85
|
+
# Verify SAML app status
|
|
86
|
+
gam print samlappinfo "Internal Dashboard"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### SCIM Provisioning with Google Workspace
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Enable auto-provisioning for supported apps
|
|
93
|
+
# Google Workspace supports automatic user provisioning for apps like:
|
|
94
|
+
# Slack, Zoom, Box, Dropbox, Asana, GitHub Enterprise
|
|
95
|
+
|
|
96
|
+
# List provisioned apps
|
|
97
|
+
gam print tokens
|
|
98
|
+
|
|
99
|
+
# Force sync provisioning for an app
|
|
100
|
+
gam sync samlapp "Slack" users
|
|
101
|
+
|
|
102
|
+
# Bulk create users from CSV
|
|
103
|
+
# users.csv format: firstname,lastname,email,org,password
|
|
104
|
+
gam csv users.csv gam create user ~email \
|
|
105
|
+
firstname ~firstname lastname ~lastname \
|
|
106
|
+
password ~password org ~org \
|
|
107
|
+
changepassword on
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Enforce MFA at the Workspace Level
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
# Enforce 2-step verification for the entire domain
|
|
114
|
+
gam update org "/" 2sv enforced
|
|
115
|
+
|
|
116
|
+
# Enforce 2SV for a specific OU
|
|
117
|
+
gam update org "Engineering" 2sv enforced
|
|
118
|
+
|
|
119
|
+
# Set enforcement date (give users time to enroll)
|
|
120
|
+
gam update org "/" 2sv enforced enforceddate 2026-04-15
|
|
121
|
+
|
|
122
|
+
# Check 2SV enrollment status for all users
|
|
123
|
+
gam print users fields isEnforcedIn2Sv,isEnrolledIn2Sv
|
|
124
|
+
|
|
125
|
+
# Find users who have NOT enrolled in 2SV
|
|
126
|
+
gam print users query "isEnrolledIn2Sv=false" fields primaryEmail,name
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 3. Okta Setup
|
|
132
|
+
|
|
133
|
+
Okta offers a free tier for startups (Okta for Startups program -- up to 100 users) making it an excellent choice for teams that need a dedicated IdP.
|
|
134
|
+
|
|
135
|
+
### Initial Okta Configuration via API
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Set your Okta domain and API token
|
|
139
|
+
export OKTA_ORG_URL="https://company.okta.com"
|
|
140
|
+
export OKTA_API_TOKEN="your-api-token"
|
|
141
|
+
|
|
142
|
+
# Verify connectivity
|
|
143
|
+
curl -s -H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
144
|
+
"${OKTA_ORG_URL}/api/v1/org" | jq '.companyName'
|
|
145
|
+
|
|
146
|
+
# Create a user
|
|
147
|
+
curl -s -X POST \
|
|
148
|
+
-H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
149
|
+
-H "Content-Type: application/json" \
|
|
150
|
+
"${OKTA_ORG_URL}/api/v1/users?activate=true" \
|
|
151
|
+
-d '{
|
|
152
|
+
"profile": {
|
|
153
|
+
"firstName": "Alice",
|
|
154
|
+
"lastName": "Engineer",
|
|
155
|
+
"email": "alice@company.com",
|
|
156
|
+
"login": "alice@company.com"
|
|
157
|
+
},
|
|
158
|
+
"credentials": {
|
|
159
|
+
"password": { "value": "TempP@ss123!" }
|
|
160
|
+
}
|
|
161
|
+
}' | jq '.id'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Create Groups for RBAC
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Create groups
|
|
168
|
+
for group in "Engineering" "Operations" "Finance" "Contractors" "AdminAccess"; do
|
|
169
|
+
curl -s -X POST \
|
|
170
|
+
-H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
171
|
+
-H "Content-Type: application/json" \
|
|
172
|
+
"${OKTA_ORG_URL}/api/v1/groups" \
|
|
173
|
+
-d "{\"profile\": {\"name\": \"${group}\", \"description\": \"${group} team group\"}}" \
|
|
174
|
+
| jq '{id: .id, name: .profile.name}'
|
|
175
|
+
done
|
|
176
|
+
|
|
177
|
+
# Add user to group
|
|
178
|
+
USER_ID="00u1abc123"
|
|
179
|
+
GROUP_ID="00g1def456"
|
|
180
|
+
curl -s -X PUT \
|
|
181
|
+
-H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
182
|
+
"${OKTA_ORG_URL}/api/v1/groups/${GROUP_ID}/users/${USER_ID}"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Add a SAML Application in Okta
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Create a SAML 2.0 application
|
|
189
|
+
curl -s -X POST \
|
|
190
|
+
-H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
191
|
+
-H "Content-Type: application/json" \
|
|
192
|
+
"${OKTA_ORG_URL}/api/v1/apps" \
|
|
193
|
+
-d '{
|
|
194
|
+
"name": "custom_saml_app",
|
|
195
|
+
"label": "Internal Dashboard",
|
|
196
|
+
"signOnMode": "SAML_2_0",
|
|
197
|
+
"settings": {
|
|
198
|
+
"signOn": {
|
|
199
|
+
"defaultRelayState": "",
|
|
200
|
+
"ssoAcsUrl": "https://dashboard.company.com/saml/acs",
|
|
201
|
+
"audience": "https://dashboard.company.com",
|
|
202
|
+
"recipient": "https://dashboard.company.com/saml/acs",
|
|
203
|
+
"destination": "https://dashboard.company.com/saml/acs",
|
|
204
|
+
"subjectNameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
|
|
205
|
+
"attributeStatements": [
|
|
206
|
+
{
|
|
207
|
+
"type": "EXPRESSION",
|
|
208
|
+
"name": "email",
|
|
209
|
+
"namespace": "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
|
|
210
|
+
"values": ["user.email"]
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"type": "EXPRESSION",
|
|
214
|
+
"name": "groups",
|
|
215
|
+
"namespace": "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
|
|
216
|
+
"values": ["getFilteredGroups({\"00g1def456\"}, \"group.name\", 50)"]
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}' | jq '{id: .id, label: .label, status: .status}'
|
|
222
|
+
|
|
223
|
+
# Assign group to application
|
|
224
|
+
APP_ID="0oa1xyz789"
|
|
225
|
+
curl -s -X PUT \
|
|
226
|
+
-H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
227
|
+
-H "Content-Type: application/json" \
|
|
228
|
+
"${OKTA_ORG_URL}/api/v1/apps/${APP_ID}/groups/${GROUP_ID}"
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Okta MFA Policy
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Create an MFA enrollment policy requiring WebAuthn + TOTP
|
|
235
|
+
curl -s -X POST \
|
|
236
|
+
-H "Authorization: SSWS ${OKTA_API_TOKEN}" \
|
|
237
|
+
-H "Content-Type: application/json" \
|
|
238
|
+
"${OKTA_ORG_URL}/api/v1/policies" \
|
|
239
|
+
-d '{
|
|
240
|
+
"type": "MFA_ENROLL",
|
|
241
|
+
"name": "Require Strong MFA",
|
|
242
|
+
"status": "ACTIVE",
|
|
243
|
+
"settings": {
|
|
244
|
+
"factors": {
|
|
245
|
+
"webauthn": { "enroll": { "self": "REQUIRED" } },
|
|
246
|
+
"google_otp": { "enroll": { "self": "OPTIONAL" } },
|
|
247
|
+
"okta_email": { "enroll": { "self": "NOT_ALLOWED" } },
|
|
248
|
+
"okta_sms": { "enroll": { "self": "NOT_ALLOWED" } }
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}' | jq '{id: .id, name: .name, status: .status}'
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## 4. Azure AD / Entra ID
|
|
257
|
+
|
|
258
|
+
Azure AD (now Microsoft Entra ID) is common at startups using Microsoft 365 or Azure cloud.
|
|
259
|
+
|
|
260
|
+
### Azure CLI Setup
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Install Azure CLI and sign in
|
|
264
|
+
az login
|
|
265
|
+
|
|
266
|
+
# Set the default tenant
|
|
267
|
+
az account set --subscription "your-subscription-id"
|
|
268
|
+
|
|
269
|
+
# Verify tenant
|
|
270
|
+
az ad signed-in-user show --query '{name:displayName, email:userPrincipalName}'
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Create Users and Groups
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Create a user
|
|
277
|
+
az ad user create \
|
|
278
|
+
--display-name "Alice Engineer" \
|
|
279
|
+
--user-principal-name "alice@company.onmicrosoft.com" \
|
|
280
|
+
--password "TempP@ss123!" \
|
|
281
|
+
--force-change-password-next-sign-in true
|
|
282
|
+
|
|
283
|
+
# Create security groups
|
|
284
|
+
for group in "SG-Engineering" "SG-Operations" "SG-Finance" "SG-Admins"; do
|
|
285
|
+
az ad group create --display-name "$group" --mail-nickname "$group"
|
|
286
|
+
done
|
|
287
|
+
|
|
288
|
+
# Add user to group
|
|
289
|
+
USER_OID=$(az ad user show --id "alice@company.onmicrosoft.com" --query id -o tsv)
|
|
290
|
+
GROUP_OID=$(az ad group show --group "SG-Engineering" --query id -o tsv)
|
|
291
|
+
az ad group member add --group "$GROUP_OID" --member-id "$USER_OID"
|
|
292
|
+
|
|
293
|
+
# List group members
|
|
294
|
+
az ad group member list --group "SG-Engineering" --query '[].{name:displayName, email:userPrincipalName}' -o table
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Conditional Access Policies via Graph API
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
# Require MFA for all users accessing cloud apps
|
|
301
|
+
# Uses Microsoft Graph API
|
|
302
|
+
ACCESS_TOKEN=$(az account get-access-token --resource https://graph.microsoft.com --query accessToken -o tsv)
|
|
303
|
+
|
|
304
|
+
curl -s -X POST \
|
|
305
|
+
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
|
|
306
|
+
-H "Content-Type: application/json" \
|
|
307
|
+
"https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies" \
|
|
308
|
+
-d '{
|
|
309
|
+
"displayName": "Require MFA for all users",
|
|
310
|
+
"state": "enabledForReportingButNotEnforced",
|
|
311
|
+
"conditions": {
|
|
312
|
+
"users": {
|
|
313
|
+
"includeUsers": ["All"],
|
|
314
|
+
"excludeGroups": ["'${BREAKGLASS_GROUP_OID}'"]
|
|
315
|
+
},
|
|
316
|
+
"applications": {
|
|
317
|
+
"includeApplications": ["All"]
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"grantControls": {
|
|
321
|
+
"operator": "OR",
|
|
322
|
+
"builtInControls": ["mfa"]
|
|
323
|
+
}
|
|
324
|
+
}'
|
|
325
|
+
|
|
326
|
+
# Block legacy authentication (critical for security)
|
|
327
|
+
curl -s -X POST \
|
|
328
|
+
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
|
|
329
|
+
-H "Content-Type: application/json" \
|
|
330
|
+
"https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies" \
|
|
331
|
+
-d '{
|
|
332
|
+
"displayName": "Block legacy authentication",
|
|
333
|
+
"state": "enabled",
|
|
334
|
+
"conditions": {
|
|
335
|
+
"users": { "includeUsers": ["All"] },
|
|
336
|
+
"applications": { "includeApplications": ["All"] },
|
|
337
|
+
"clientAppTypes": ["exchangeActiveSync", "other"]
|
|
338
|
+
},
|
|
339
|
+
"grantControls": {
|
|
340
|
+
"operator": "OR",
|
|
341
|
+
"builtInControls": ["block"]
|
|
342
|
+
}
|
|
343
|
+
}'
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
## Contents
|
|
350
|
+
|
|
351
|
+
- [5. SSO Integration Patterns](references/details.md)
|
|
352
|
+
- [6. SCIM Provisioning](references/details.md)
|
|
353
|
+
- [7. MFA Enforcement](references/details.md)
|
|
354
|
+
- [8. Role-Based Access Control](references/details.md)
|
|
355
|
+
- [9. Audit & Compliance](references/details.md)
|
|
356
|
+
- [10. Offboarding](references/details.md)
|
|
357
|
+
- [Quick Reference](references/details.md)
|
|
358
|
+
|
|
359
|
+
## When to Use This Skill
|
|
360
|
+
|
|
361
|
+
Reach for this skill when:
|
|
362
|
+
|
|
363
|
+
- **First SSO setup** -- You are moving from individual app logins to centralized authentication.
|
|
364
|
+
- **Compliance audit preparation** -- SOC 2, ISO 27001, or HIPAA requires documented access controls, MFA enforcement, and audit logs.
|
|
365
|
+
- **Team growth inflection** -- You are crossing 15-20 employees and manual onboarding/offboarding is becoming error-prone.
|
|
366
|
+
- **Vendor security questionnaires** -- Customers are asking about your identity posture and you need to demonstrate controls.
|
|
367
|
+
- **Incident response** -- You need to revoke access quickly across all systems for a departing or compromised user.
|
|
368
|
+
|
|
369
|
+
Signs you are overdue:
|
|
370
|
+
|
|
371
|
+
- Shared passwords in a spreadsheet or chat channel.
|
|
372
|
+
- No central audit log of who accessed what and when.
|
|
373
|
+
- Offboarding takes more than one business day.
|
|
374
|
+
- Developers have standing admin access to production.
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## Limitations
|
|
379
|
+
|
|
380
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
381
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
382
|
+
|