@raishin/vanguard-frontier-agentic 2.2.0 → 2.5.0
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +41 -1
- package/.cursor-plugin/plugin.json +41 -1
- package/.github/plugin/marketplace.json +1 -1
- package/README.md +48 -28
- package/agents/dotnet/README.md +57 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/AGENT.md +57 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/claude-code.agent.md +41 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/codex.toml +40 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/copilot.agent.md +41 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/cursor.agent.md +41 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/gemini.agent.md +41 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/kiro-ide.agent.md +41 -0
- package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/metadata.json +41 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/AGENT.md +56 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/codex.toml +38 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/copilot.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/cursor.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/gemini.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/metadata.json +42 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/AGENT.md +56 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/codex.toml +38 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/copilot.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/cursor.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/gemini.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/metadata.json +42 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/AGENT.md +56 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/claude-code.agent.md +39 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/codex.toml +39 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/copilot.agent.md +39 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/cursor.agent.md +39 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/gemini.agent.md +39 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/kiro-ide.agent.md +39 -0
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/metadata.json +42 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/AGENT.md +58 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/codex.toml +41 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/copilot.agent.md +42 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/cursor.agent.md +42 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/gemini.agent.md +42 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/metadata.json +42 -0
- package/agents/dotnet/dotnet-maestro-agent/AGENT.md +53 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/claude-code.agent.md +36 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/codex.toml +40 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/copilot.agent.md +36 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/cursor.agent.md +36 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/gemini.agent.md +36 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-maestro-agent/harnesses/kiro-ide.agent.md +36 -0
- package/agents/dotnet/dotnet-maestro-agent/metadata.json +40 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/AGENT.md +57 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/claude-code.agent.md +41 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/codex.toml +40 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/copilot.agent.md +41 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/cursor.agent.md +41 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/gemini.agent.md +41 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/kiro-ide.agent.md +41 -0
- package/agents/dotnet/dotnet-observability-otel-review-agent/metadata.json +41 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/AGENT.md +56 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/codex.toml +39 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/copilot.agent.md +40 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/cursor.agent.md +40 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/gemini.agent.md +40 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/dotnet/dotnet-performance-aot-review-agent/metadata.json +41 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/AGENT.md +57 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/claude-code.agent.md +41 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/codex.toml +40 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/copilot.agent.md +41 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/cursor.agent.md +41 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/gemini.agent.md +41 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/kiro-ide.agent.md +41 -0
- package/agents/dotnet/dotnet-supply-chain-review-agent/metadata.json +42 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/AGENT.md +56 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/codex.toml +39 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/copilot.agent.md +40 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/cursor.agent.md +40 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/gemini.agent.md +40 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/dotnet/dotnet-testing-quality-review-agent/metadata.json +41 -0
- package/agents/hetzner/README.md +1 -1
- package/agents/hr/hr-analytics-people-data-agent/metadata.json +3 -7
- package/agents/hr/hr-benefits-payroll-agent/metadata.json +3 -7
- package/agents/hr/hr-compensation-equity-agent/metadata.json +3 -7
- package/agents/hr/hr-culture-dei-agent/metadata.json +3 -7
- package/agents/hr/hr-employee-relations-agent/metadata.json +3 -7
- package/agents/hr/hr-hris-process-controls-agent/metadata.json +3 -7
- package/agents/hr/hr-learning-policy-agent/metadata.json +3 -7
- package/agents/hr/hr-leave-accommodation-agent/metadata.json +3 -7
- package/agents/hr/hr-maestro-agent/metadata.json +4 -8
- package/agents/hr/hr-performance-management-agent/metadata.json +3 -7
- package/agents/hr/hr-recruiting-selection-agent/metadata.json +3 -7
- package/agents/hr/hr-risk-triage-review-agent/metadata.json +3 -3
- package/agents/hr/hr-termination-readiness-agent/metadata.json +3 -7
- package/agents/hr/hr-workforce-planning-rif-agent/metadata.json +3 -7
- package/agents/hr/hr-workplace-investigations-agent/metadata.json +3 -7
- package/agents/legal/legal-contract-review-agent/metadata.json +3 -7
- package/agents/legal/legal-counsel-review-agent/metadata.json +3 -3
- package/agents/legal/legal-employment-law-risk-agent/metadata.json +4 -8
- package/agents/legal/legal-ethics-investigations-agent/metadata.json +3 -7
- package/agents/legal/legal-ip-open-source-agent/metadata.json +3 -7
- package/agents/legal/legal-knowledge-management-agent/metadata.json +3 -7
- package/agents/legal/legal-litigation-discovery-hold-agent/metadata.json +3 -7
- package/agents/legal/legal-maestro-agent/metadata.json +4 -8
- package/agents/legal/legal-policy-governance-agent/metadata.json +3 -7
- package/agents/legal/legal-privacy-data-protection-agent/metadata.json +3 -7
- package/agents/legal/legal-public-disclosure-agent/metadata.json +3 -7
- package/agents/legal/legal-regulatory-compliance-agent/metadata.json +3 -7
- package/agents/legal/legal-vendor-procurement-risk-agent/metadata.json +3 -7
- package/agents/oci/oci-devops-container-platform-engineer-agent/AGENT.md +1 -1
- package/agents/oci/oci-exadata-platform-architect-agent/AGENT.md +1 -1
- package/agents/oci/oci-multi-cloud-architect-agent/AGENT.md +1 -1
- package/agents/prometheus/README.md +1 -1
- package/agents/qa/playwright-e2e-suite-review-agent/AGENT.md +3 -3
- package/agents/qa/playwright-e2e-suite-review-agent/harnesses/claude-code.agent.md +3 -3
- package/agents/qa/playwright-e2e-suite-review-agent/harnesses/copilot.agent.md +3 -3
- package/agents/qa/playwright-e2e-suite-review-agent/harnesses/cursor.agent.md +3 -3
- package/agents/qa/playwright-e2e-suite-review-agent/harnesses/gemini.agent.md +3 -3
- package/agents/qa/playwright-e2e-suite-review-agent/harnesses/kiro-ide.agent.md +3 -3
- package/agents/salesforce/AGENTS.md +31 -0
- package/agents/salesforce/README.md +135 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/AGENT.md +117 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/LEAST-PRIVILEGES.md +91 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/claude-code.agent.md +69 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/codex.toml +30 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/copilot.agent.md +69 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/cursor.agent.md +69 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/gemini.agent.md +69 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/harnesses/kiro-ide.agent.md +69 -0
- package/agents/salesforce/salesforce-adaptive-access-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/AGENT.md +126 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/LEAST-PRIVILEGES.md +92 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/claude-code.agent.md +81 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/codex.toml +36 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/copilot.agent.md +81 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/cursor.agent.md +81 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/gemini.agent.md +81 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/harnesses/kiro-ide.agent.md +49 -0
- package/agents/salesforce/salesforce-agentforce-ai-agent/metadata.json +41 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/AGENT.md +119 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/LEAST-PRIVILEGES.md +81 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/claude-code.agent.md +75 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/copilot.agent.md +75 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/cursor.agent.md +75 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/gemini.agent.md +75 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/harnesses/kiro-ide.agent.md +45 -0
- package/agents/salesforce/salesforce-analytics-tableau-agent/metadata.json +41 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/AGENT.md +112 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/LEAST-PRIVILEGES.md +86 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/claude-code.agent.md +50 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/copilot.agent.md +50 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/cursor.agent.md +50 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/gemini.agent.md +50 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/harnesses/kiro-ide.agent.md +50 -0
- package/agents/salesforce/salesforce-app-builder-automation-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-business-analyst-agent/AGENT.md +110 -0
- package/agents/salesforce/salesforce-business-analyst-agent/LEAST-PRIVILEGES.md +89 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/claude-code.agent.md +48 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/copilot.agent.md +48 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/cursor.agent.md +48 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/gemini.agent.md +48 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-business-analyst-agent/harnesses/kiro-ide.agent.md +48 -0
- package/agents/salesforce/salesforce-business-analyst-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/AGENT.md +112 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/LEAST-PRIVILEGES.md +81 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/claude-code.agent.md +66 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/codex.toml +30 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/copilot.agent.md +66 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/cursor.agent.md +66 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/gemini.agent.md +66 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/harnesses/kiro-ide.agent.md +66 -0
- package/agents/salesforce/salesforce-certificate-lifecycle-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/AGENT.md +121 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/LEAST-PRIVILEGES.md +87 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/claude-code.agent.md +74 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/codex.toml +30 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/copilot.agent.md +74 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/cursor.agent.md +74 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/gemini.agent.md +74 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/harnesses/kiro-ide.agent.md +74 -0
- package/agents/salesforce/salesforce-change-impact-analyst-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/AGENT.md +119 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/LEAST-PRIVILEGES.md +88 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/claude-code.agent.md +67 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/codex.toml +30 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/copilot.agent.md +67 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/cursor.agent.md +67 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/gemini.agent.md +67 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/harnesses/kiro-ide.agent.md +67 -0
- package/agents/salesforce/salesforce-code-analyzer-orchestrator-agent/metadata.json +31 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/AGENT.md +130 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/LEAST-PRIVILEGES.md +85 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/claude-code.agent.md +84 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/codex.toml +36 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/copilot.agent.md +84 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/cursor.agent.md +84 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/gemini.agent.md +84 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/harnesses/kiro-ide.agent.md +49 -0
- package/agents/salesforce/salesforce-compliance-privacy-agent/metadata.json +41 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/AGENT.md +113 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/LEAST-PRIVILEGES.md +90 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/claude-code.agent.md +64 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/codex.toml +30 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/copilot.agent.md +64 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/cursor.agent.md +64 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/gemini.agent.md +64 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/harnesses/kiro-ide.agent.md +64 -0
- package/agents/salesforce/salesforce-continuous-verification-agent/metadata.json +31 -0
- package/agents/salesforce/salesforce-data-architecture-agent/AGENT.md +113 -0
- package/agents/salesforce/salesforce-data-architecture-agent/LEAST-PRIVILEGES.md +92 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/claude-code.agent.md +49 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/copilot.agent.md +49 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/cursor.agent.md +49 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/gemini.agent.md +49 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-data-architecture-agent/harnesses/kiro-ide.agent.md +49 -0
- package/agents/salesforce/salesforce-data-architecture-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-development-agent/AGENT.md +114 -0
- package/agents/salesforce/salesforce-development-agent/LEAST-PRIVILEGES.md +89 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/claude-code.agent.md +50 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/codex.toml +36 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/copilot.agent.md +50 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/cursor.agent.md +50 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/gemini.agent.md +50 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-development-agent/harnesses/kiro-ide.agent.md +50 -0
- package/agents/salesforce/salesforce-development-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-devops-release-agent/AGENT.md +115 -0
- package/agents/salesforce/salesforce-devops-release-agent/LEAST-PRIVILEGES.md +90 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/claude-code.agent.md +51 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/copilot.agent.md +51 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/cursor.agent.md +51 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/gemini.agent.md +51 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-devops-release-agent/harnesses/kiro-ide.agent.md +51 -0
- package/agents/salesforce/salesforce-devops-release-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/AGENT.md +128 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/LEAST-PRIVILEGES.md +92 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/claude-code.agent.md +81 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/codex.toml +36 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/copilot.agent.md +81 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/cursor.agent.md +81 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/gemini.agent.md +81 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/harnesses/kiro-ide.agent.md +49 -0
- package/agents/salesforce/salesforce-enterprise-architect-agent/metadata.json +41 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/AGENT.md +124 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/LEAST-PRIVILEGES.md +80 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/claude-code.agent.md +79 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/copilot.agent.md +79 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/cursor.agent.md +79 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/gemini.agent.md +79 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/harnesses/kiro-ide.agent.md +59 -0
- package/agents/salesforce/salesforce-experience-cloud-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/AGENT.md +113 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/LEAST-PRIVILEGES.md +80 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/claude-code.agent.md +72 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/codex.toml +28 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/copilot.agent.md +72 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/cursor.agent.md +72 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/gemini.agent.md +72 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/harnesses/kiro-ide.agent.md +72 -0
- package/agents/salesforce/salesforce-hyperforce-security-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/AGENT.md +125 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/LEAST-PRIVILEGES.md +88 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/claude-code.agent.md +80 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/codex.toml +41 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/copilot.agent.md +80 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/cursor.agent.md +80 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/gemini.agent.md +80 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/harnesses/kiro-ide.agent.md +48 -0
- package/agents/salesforce/salesforce-industry-cloud-agent/metadata.json +42 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/AGENT.md +115 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/LEAST-PRIVILEGES.md +91 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/claude-code.agent.md +50 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/copilot.agent.md +50 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/cursor.agent.md +50 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/gemini.agent.md +50 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/harnesses/kiro-ide.agent.md +50 -0
- package/agents/salesforce/salesforce-integration-mulesoft-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-live-guard-agent/AGENT.md +126 -0
- package/agents/salesforce/salesforce-live-guard-agent/LEAST-PRIVILEGES.md +100 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/claude-code.agent.md +85 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/codex.toml +50 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/copilot.agent.md +85 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/cursor.agent.md +85 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/gemini.agent.md +85 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-live-guard-agent/harnesses/kiro-ide.agent.md +58 -0
- package/agents/salesforce/salesforce-live-guard-agent/metadata.json +39 -0
- package/agents/salesforce/salesforce-maestro-agent/AGENT.md +77 -0
- package/agents/salesforce/salesforce-maestro-agent/LEAST-PRIVILEGES.md +93 -0
- package/agents/salesforce/salesforce-maestro-agent/README.md +593 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/claude-code.agent.md +65 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/codex.toml +66 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/copilot.agent.md +65 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/cursor.agent.md +65 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/gemini.agent.md +65 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-maestro-agent/harnesses/kiro-ide.agent.md +65 -0
- package/agents/salesforce/salesforce-maestro-agent/metadata.json +38 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/AGENT.md +124 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/LEAST-PRIVILEGES.md +86 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/claude-code.agent.md +78 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/codex.toml +34 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/copilot.agent.md +78 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/cursor.agent.md +78 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/gemini.agent.md +78 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/harnesses/kiro-ide.agent.md +48 -0
- package/agents/salesforce/salesforce-marketing-cloud-agent/metadata.json +41 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/AGENT.md +113 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/LEAST-PRIVILEGES.md +87 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/claude-code.agent.md +72 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/codex.toml +28 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/copilot.agent.md +72 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/cursor.agent.md +72 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/gemini.agent.md +72 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/harnesses/kiro-ide.agent.md +72 -0
- package/agents/salesforce/salesforce-network-policy-architect-agent/metadata.json +31 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/AGENT.md +113 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/LEAST-PRIVILEGES.md +88 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/claude-code.agent.md +49 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/codex.toml +36 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/copilot.agent.md +49 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/cursor.agent.md +49 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/gemini.agent.md +49 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/harnesses/kiro-ide.agent.md +49 -0
- package/agents/salesforce/salesforce-platform-admin-review-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/AGENT.md +115 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/LEAST-PRIVILEGES.md +83 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/claude-code.agent.md +50 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/copilot.agent.md +50 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/cursor.agent.md +50 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/gemini.agent.md +50 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/harnesses/kiro-ide.agent.md +50 -0
- package/agents/salesforce/salesforce-sales-cloud-revenue-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/AGENT.md +120 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/LEAST-PRIVILEGES.md +80 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/claude-code.agent.md +72 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/codex.toml +30 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/copilot.agent.md +72 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/cursor.agent.md +72 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/gemini.agent.md +72 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/harnesses/kiro-ide.agent.md +72 -0
- package/agents/salesforce/salesforce-sandbox-governance-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/AGENT.md +113 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/LEAST-PRIVILEGES.md +90 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/claude-code.agent.md +71 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/codex.toml +28 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/copilot.agent.md +71 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/cursor.agent.md +71 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/gemini.agent.md +71 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/harnesses/kiro-ide.agent.md +71 -0
- package/agents/salesforce/salesforce-sandbox-isolation-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/AGENT.md +118 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/LEAST-PRIVILEGES.md +85 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/claude-code.agent.md +52 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/codex.toml +36 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/copilot.agent.md +52 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/cursor.agent.md +52 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/gemini.agent.md +52 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/harnesses/kiro-ide.agent.md +52 -0
- package/agents/salesforce/salesforce-security-identity-access-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-service-field-service-agent/AGENT.md +115 -0
- package/agents/salesforce/salesforce-service-field-service-agent/LEAST-PRIVILEGES.md +82 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/claude-code.agent.md +50 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/copilot.agent.md +50 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/cursor.agent.md +50 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/gemini.agent.md +50 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-service-field-service-agent/harnesses/kiro-ide.agent.md +50 -0
- package/agents/salesforce/salesforce-service-field-service-agent/metadata.json +40 -0
- package/agents/salesforce/salesforce-session-governance-agent/AGENT.md +116 -0
- package/agents/salesforce/salesforce-session-governance-agent/LEAST-PRIVILEGES.md +91 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/claude-code.agent.md +74 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/codex.toml +28 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/copilot.agent.md +74 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/cursor.agent.md +74 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/gemini.agent.md +74 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-session-governance-agent/harnesses/kiro-ide.agent.md +74 -0
- package/agents/salesforce/salesforce-session-governance-agent/metadata.json +30 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/AGENT.md +123 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/LEAST-PRIVILEGES.md +86 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/claude-code.agent.md +79 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/codex.toml +35 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/copilot.agent.md +79 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/cursor.agent.md +79 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/gemini.agent.md +79 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/harnesses/kiro-ide.agent.md +48 -0
- package/agents/salesforce/salesforce-slack-collaboration-agent/metadata.json +41 -0
- package/assets/logos/cloud/salesforce/salesforce.svg +34 -0
- package/catalog/agents.json +1785 -353
- package/catalog/asset-integrity.json +2866 -411
- package/catalog/install-roles.json +96 -0
- package/catalog/skill-manifest.json +1238 -138
- package/catalog/skills.json +1587 -333
- package/package.json +3 -2
- package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
- package/powers/vanguard-salesforce/POWER.md +42 -0
- package/schemas/agent.schema.json +5 -1
- package/schemas/skill.frontmatter.schema.json +33 -3
- package/schemas/skill.schema.json +5 -1
- package/scripts/export-marketplace-agents.mjs +30 -2
- package/scripts/generate-kiro-powers.mjs +12 -0
- package/scripts/release-prepare.mjs +35 -0
- package/skills/aws/aws-agentcore/references/official-sources.md +19 -19
- package/skills/aws/aws-generative-ai-developer/references/official-sources.md +10 -10
- package/skills/azure/azure-ai-foundry-ops-governor/references/workflow-and-output.md +2 -2
- package/skills/azure/azure-aks-platform-operator/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-app-service-production-readiness/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-cosmosdb-application-developer/references/official-sources.md +11 -11
- package/skills/azure/azure-cosmosdb-performance-investigator/references/official-sources.md +11 -11
- package/skills/azure/azure-cosmosdb-platform-operator/references/official-sources.md +10 -10
- package/skills/azure/azure-cost-estimation-review/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-cost-optimization-governor/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-entra-id-specialist/references/official-sources.md +28 -28
- package/skills/azure/azure-identity-governance-review/references/official-sources.md +11 -11
- package/skills/azure/azure-identity-governance-review/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-key-vault-secret-lifecycle-auditor/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-migrate-landing-zone-cutover/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-platform-automation-devops/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-private-endpoint-adoption-planner/references/workflow-and-output.md +1 -1
- package/skills/azure/azure-resource-health-incident-triage/references/workflow-and-output.md +6 -6
- package/skills/azure/azure-subscription-resource-organization/references/workflow-and-output.md +1 -1
- package/skills/cross-functional/salesforce-case-capsule/SKILL.md +164 -0
- package/skills/cross-functional/salesforce-case-capsule/metadata.json +19 -0
- package/skills/cross-functional/salesforce-data-exposure-escalation-protocol/SKILL.md +165 -0
- package/skills/cross-functional/salesforce-data-exposure-escalation-protocol/metadata.json +19 -0
- package/skills/cross-functional/salesforce-live-change-approval-protocol/SKILL.md +118 -0
- package/skills/cross-functional/salesforce-live-change-approval-protocol/metadata.json +19 -0
- package/skills/cross-functional/salesforce-risk-taxonomy/SKILL.md +162 -0
- package/skills/cross-functional/salesforce-risk-taxonomy/metadata.json +19 -0
- package/skills/cross-functional/salesforce-routing-protocol/SKILL.md +159 -0
- package/skills/cross-functional/salesforce-routing-protocol/metadata.json +19 -0
- package/skills/dotnet/dotnet-aspire-cloud-native-review/SKILL.md +53 -0
- package/skills/dotnet/dotnet-aspire-cloud-native-review/metadata.json +27 -0
- package/skills/dotnet/dotnet-aspire-cloud-native-review/references/workflow-and-output.md +115 -0
- package/skills/dotnet/dotnet-aspnetcore-api-review/SKILL.md +53 -0
- package/skills/dotnet/dotnet-aspnetcore-api-review/metadata.json +28 -0
- package/skills/dotnet/dotnet-aspnetcore-api-review/references/workflow-and-output.md +115 -0
- package/skills/dotnet/dotnet-aspnetcore-identity-authz-review/SKILL.md +48 -0
- package/skills/dotnet/dotnet-aspnetcore-identity-authz-review/metadata.json +28 -0
- package/skills/dotnet/dotnet-aspnetcore-identity-authz-review/references/workflow-and-output.md +125 -0
- package/skills/dotnet/dotnet-csharp-runtime-review/SKILL.md +56 -0
- package/skills/dotnet/dotnet-csharp-runtime-review/metadata.json +28 -0
- package/skills/dotnet/dotnet-csharp-runtime-review/references/workflow-and-output.md +141 -0
- package/skills/dotnet/dotnet-efcore-data-access-review/SKILL.md +57 -0
- package/skills/dotnet/dotnet-efcore-data-access-review/metadata.json +28 -0
- package/skills/dotnet/dotnet-efcore-data-access-review/references/workflow-and-output.md +140 -0
- package/skills/dotnet/dotnet-maestro/SKILL.md +106 -0
- package/skills/dotnet/dotnet-maestro/metadata.json +26 -0
- package/skills/dotnet/dotnet-observability-otel-review/SKILL.md +53 -0
- package/skills/dotnet/dotnet-observability-otel-review/metadata.json +27 -0
- package/skills/dotnet/dotnet-observability-otel-review/references/workflow-and-output.md +119 -0
- package/skills/dotnet/dotnet-performance-aot-review/SKILL.md +53 -0
- package/skills/dotnet/dotnet-performance-aot-review/metadata.json +27 -0
- package/skills/dotnet/dotnet-performance-aot-review/references/workflow-and-output.md +123 -0
- package/skills/dotnet/dotnet-supply-chain-review/SKILL.md +55 -0
- package/skills/dotnet/dotnet-supply-chain-review/metadata.json +28 -0
- package/skills/dotnet/dotnet-supply-chain-review/references/workflow-and-output.md +132 -0
- package/skills/dotnet/dotnet-testing-quality-review/SKILL.md +54 -0
- package/skills/dotnet/dotnet-testing-quality-review/metadata.json +27 -0
- package/skills/dotnet/dotnet-testing-quality-review/references/workflow-and-output.md +142 -0
- package/skills/finops/focus-spec-normalizer/references/focus-columns.md +2 -2
- package/skills/gcp/gcp-alloydb-ai-developer/SKILL.md +1 -1
- package/skills/gcp/gcp-gemini-api-developer/SKILL.md +2 -2
- package/skills/hr/hr-risk-triage-review/metadata.json +9 -2
- package/skills/legal/legal-counsel-review/metadata.json +9 -2
- package/skills/nvidia/nvidia-model-promotion-gatekeeper/SKILL.md +1 -1
- package/skills/nvidia/nvidia-model-promotion-gatekeeper/references/allowlist-commands.md +1 -1
- package/skills/oci/oci-compute-platform-operator/SKILL.md +0 -2
- package/skills/oci/oci-cost-finops-analyst/SKILL.md +0 -2
- package/skills/oci/oci-database-platform-dba/SKILL.md +0 -2
- package/skills/oci/oci-devops-container-platform-engineer/SKILL.md +0 -2
- package/skills/oci/oci-identity-access-governor/SKILL.md +0 -2
- package/skills/oci/oci-multi-cloud-architect/SKILL.md +0 -2
- package/skills/oci/oci-network-architect/SKILL.md +0 -2
- package/skills/oci/oci-observability-incident-responder/SKILL.md +0 -2
- package/skills/oci/oci-security-compliance-reviewer/SKILL.md +0 -2
- package/skills/oci/oci-solution-architect/SKILL.md +1 -3
- package/skills/oci/oci-storage-backup-steward/SKILL.md +0 -2
- package/skills/prometheus/prometheus-alerting-cardinality-review/SKILL.md +1 -1
- package/skills/prometheus/prometheus-alerting-cardinality-review/references/workflow-and-output.md +4 -4
- package/skills/qa/ci-test-pipeline-review/references/workflow-and-output.md +1 -1
- package/skills/qa/llm-ai-pipeline-test-review/references/workflow-and-output.md +1 -1
- package/skills/qa/playwright-e2e-suite-review/SKILL.md +4 -4
- package/skills/qa/playwright-e2e-suite-review/references/workflow-and-output.md +12 -12
- package/skills/qa/plc-control-logic-safety-review/references/workflow-and-output.md +2 -2
- package/skills/qa/test-coverage-quality-review/SKILL.md +1 -1
- package/skills/qa/test-coverage-quality-review/references/workflow-and-output.md +8 -8
- package/skills/qa/test-flakiness-triage/SKILL.md +1 -1
- package/skills/qa/test-flakiness-triage/references/workflow-and-output.md +1 -1
- package/skills/salesforce/README.md +117 -0
- package/skills/salesforce/salesforce-agentforce-risk-review-skill/SKILL.md +206 -0
- package/skills/salesforce/salesforce-agentforce-risk-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-agentforce-risk-review-skill/references/action-safety-matrix.md +160 -0
- package/skills/salesforce/salesforce-agentforce-risk-review-skill/references/agentforce-anti-patterns.md +193 -0
- package/skills/salesforce/salesforce-agentforce-risk-review-skill/references/grounding-source-evaluation.md +162 -0
- package/skills/salesforce/salesforce-agentforce-stdm-observer-skill/SKILL.md +557 -0
- package/skills/salesforce/salesforce-agentforce-stdm-observer-skill/metadata.json +41 -0
- package/skills/salesforce/salesforce-agentforce-stdm-observer-skill/references/observability-rubric.md +219 -0
- package/skills/salesforce/salesforce-agentforce-stdm-observer-skill/references/privacy-redaction.md +240 -0
- package/skills/salesforce/salesforce-agentforce-stdm-observer-skill/references/stdm-queries.md +436 -0
- package/skills/salesforce/salesforce-apex-generator-skill/SKILL.md +307 -0
- package/skills/salesforce/salesforce-apex-generator-skill/metadata.json +30 -0
- package/skills/salesforce/salesforce-apex-generator-skill/references/apex-patterns.md +224 -0
- package/skills/salesforce/salesforce-apex-generator-skill/references/governor-limits.md +175 -0
- package/skills/salesforce/salesforce-apex-generator-skill/references/security-defaults.md +155 -0
- package/skills/salesforce/salesforce-apex-log-analyzer-skill/SKILL.md +360 -0
- package/skills/salesforce/salesforce-apex-log-analyzer-skill/metadata.json +38 -0
- package/skills/salesforce/salesforce-apex-log-analyzer-skill/references/governor-limit-signatures.md +174 -0
- package/skills/salesforce/salesforce-apex-log-analyzer-skill/references/log-format-reference.md +154 -0
- package/skills/salesforce/salesforce-apex-log-analyzer-skill/references/redaction-rules.md +178 -0
- package/skills/salesforce/salesforce-apex-lwc-code-review-skill/SKILL.md +195 -0
- package/skills/salesforce/salesforce-apex-lwc-code-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-apex-lwc-code-review-skill/references/apex-anti-patterns.md +270 -0
- package/skills/salesforce/salesforce-apex-lwc-code-review-skill/references/governor-limits-reference.md +198 -0
- package/skills/salesforce/salesforce-apex-lwc-code-review-skill/references/lwc-security.md +206 -0
- package/skills/salesforce/salesforce-apex-test-generator-skill/SKILL.md +274 -0
- package/skills/salesforce/salesforce-apex-test-generator-skill/metadata.json +29 -0
- package/skills/salesforce/salesforce-apex-test-generator-skill/references/assertion-patterns.md +174 -0
- package/skills/salesforce/salesforce-apex-test-generator-skill/references/async-testing.md +217 -0
- package/skills/salesforce/salesforce-apex-test-generator-skill/references/test-data-factory.md +174 -0
- package/skills/salesforce/salesforce-apex-test-runner-skill/SKILL.md +344 -0
- package/skills/salesforce/salesforce-apex-test-runner-skill/metadata.json +37 -0
- package/skills/salesforce/salesforce-apex-test-runner-skill/references/cli-commands.md +162 -0
- package/skills/salesforce/salesforce-apex-test-runner-skill/references/coverage-analysis.md +107 -0
- package/skills/salesforce/salesforce-apex-test-runner-skill/references/failure-diagnosis.md +187 -0
- package/skills/salesforce/salesforce-bulk-data-ops-skill/SKILL.md +356 -0
- package/skills/salesforce/salesforce-bulk-data-ops-skill/metadata.json +29 -0
- package/skills/salesforce/salesforce-bulk-data-ops-skill/references/anonymous-apex-patterns.md +380 -0
- package/skills/salesforce/salesforce-bulk-data-ops-skill/references/data-loader-templates.md +209 -0
- package/skills/salesforce/salesforce-bulk-data-ops-skill/references/rollback-strategy.md +209 -0
- package/skills/salesforce/salesforce-deployment-validator-skill/SKILL.md +380 -0
- package/skills/salesforce/salesforce-deployment-validator-skill/metadata.json +37 -0
- package/skills/salesforce/salesforce-deployment-validator-skill/references/cli-commands.md +264 -0
- package/skills/salesforce/salesforce-deployment-validator-skill/references/production-refusal-rules.md +243 -0
- package/skills/salesforce/salesforce-deployment-validator-skill/references/test-selection-strategy.md +250 -0
- package/skills/salesforce/salesforce-devsecops-pipeline-skill/SKILL.md +195 -0
- package/skills/salesforce/salesforce-devsecops-pipeline-skill/metadata.json +19 -0
- package/skills/salesforce/salesforce-devsecops-pipeline-skill/references/change-impact-categories.md +216 -0
- package/skills/salesforce/salesforce-devsecops-pipeline-skill/references/sandbox-masking-strategy.md +193 -0
- package/skills/salesforce/salesforce-devsecops-pipeline-skill/references/sca-rule-catalog.md +226 -0
- package/skills/salesforce/salesforce-field-mapping-skill/SKILL.md +348 -0
- package/skills/salesforce/salesforce-field-mapping-skill/metadata.json +29 -0
- package/skills/salesforce/salesforce-field-mapping-skill/references/api-name-normalization.md +141 -0
- package/skills/salesforce/salesforce-field-mapping-skill/references/picklist-value-mapping.md +245 -0
- package/skills/salesforce/salesforce-field-mapping-skill/references/type-mismatch-detection.md +187 -0
- package/skills/salesforce/salesforce-flow-automation-review-skill/SKILL.md +163 -0
- package/skills/salesforce/salesforce-flow-automation-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-flow-automation-review-skill/references/automation-conflict-matrix.md +193 -0
- package/skills/salesforce/salesforce-flow-automation-review-skill/references/fault-path-design.md +189 -0
- package/skills/salesforce/salesforce-flow-automation-review-skill/references/flow-anti-patterns.md +211 -0
- package/skills/salesforce/salesforce-flow-debugger-skill/SKILL.md +355 -0
- package/skills/salesforce/salesforce-flow-debugger-skill/metadata.json +35 -0
- package/skills/salesforce/salesforce-flow-debugger-skill/references/fault-path-design.md +175 -0
- package/skills/salesforce/salesforce-flow-debugger-skill/references/flow-error-patterns.md +247 -0
- package/skills/salesforce/salesforce-flow-debugger-skill/references/interview-log-redaction.md +171 -0
- package/skills/salesforce/salesforce-infrastructure-audit-skill/SKILL.md +137 -0
- package/skills/salesforce/salesforce-infrastructure-audit-skill/metadata.json +19 -0
- package/skills/salesforce/salesforce-infrastructure-audit-skill/references/hyperforce-deployment-controls.md +181 -0
- package/skills/salesforce/salesforce-infrastructure-audit-skill/references/network-policy-reference.md +200 -0
- package/skills/salesforce/salesforce-infrastructure-audit-skill/references/session-policy-reference.md +219 -0
- package/skills/salesforce/salesforce-integration-review-skill/SKILL.md +186 -0
- package/skills/salesforce/salesforce-integration-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-integration-review-skill/references/integration-anti-patterns.md +280 -0
- package/skills/salesforce/salesforce-integration-review-skill/references/integration-pattern-reference.md +239 -0
- package/skills/salesforce/salesforce-integration-review-skill/references/named-credential-design.md +211 -0
- package/skills/salesforce/salesforce-marketing-consent-review-skill/SKILL.md +204 -0
- package/skills/salesforce/salesforce-marketing-consent-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-marketing-consent-review-skill/references/consent-anti-patterns.md +247 -0
- package/skills/salesforce/salesforce-marketing-consent-review-skill/references/consent-model-reference.md +205 -0
- package/skills/salesforce/salesforce-marketing-consent-review-skill/references/regulatory-mapping.md +192 -0
- package/skills/salesforce/salesforce-metadata-fetcher-skill/SKILL.md +418 -0
- package/skills/salesforce/salesforce-metadata-fetcher-skill/metadata.json +50 -0
- package/skills/salesforce/salesforce-metadata-fetcher-skill/references/cli-commands.md +347 -0
- package/skills/salesforce/salesforce-metadata-fetcher-skill/references/delegation-routing.md +416 -0
- package/skills/salesforce/salesforce-metadata-fetcher-skill/references/sanitization-rules.md +392 -0
- package/skills/salesforce/salesforce-metadata-review-skill/SKILL.md +148 -0
- package/skills/salesforce/salesforce-metadata-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-metadata-review-skill/references/deprecated-metadata.md +217 -0
- package/skills/salesforce/salesforce-metadata-review-skill/references/field-hygiene-rules.md +182 -0
- package/skills/salesforce/salesforce-metadata-review-skill/references/object-design-patterns.md +187 -0
- package/skills/salesforce/salesforce-org-assessment-skill/SKILL.md +137 -0
- package/skills/salesforce/salesforce-org-assessment-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-org-assessment-skill/references/assessment-rubric.md +228 -0
- package/skills/salesforce/salesforce-org-assessment-skill/references/risk-register-template.md +211 -0
- package/skills/salesforce/salesforce-org-assessment-skill/references/tech-debt-indicators.md +252 -0
- package/skills/salesforce/salesforce-permission-model-review-skill/SKILL.md +165 -0
- package/skills/salesforce/salesforce-permission-model-review-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-permission-model-review-skill/references/fls-review-patterns.md +235 -0
- package/skills/salesforce/salesforce-permission-model-review-skill/references/permission-set-strategy.md +203 -0
- package/skills/salesforce/salesforce-permission-model-review-skill/references/toxic-combinations.md +228 -0
- package/skills/salesforce/salesforce-release-readiness-skill/SKILL.md +185 -0
- package/skills/salesforce/salesforce-release-readiness-skill/metadata.json +18 -0
- package/skills/salesforce/salesforce-release-readiness-skill/references/release-checklist.md +191 -0
- package/skills/salesforce/salesforce-release-readiness-skill/references/rollback-strategy.md +234 -0
- package/skills/salesforce/salesforce-release-readiness-skill/references/test-coverage-strategy.md +314 -0
- package/skills/salesforce/salesforce-soql-explorer-skill/SKILL.md +391 -0
- package/skills/salesforce/salesforce-soql-explorer-skill/metadata.json +35 -0
- package/skills/salesforce/salesforce-soql-explorer-skill/references/cli-commands.md +266 -0
- package/skills/salesforce/salesforce-soql-explorer-skill/references/least-privilege-scope.md +224 -0
- package/skills/salesforce/salesforce-soql-explorer-skill/references/safe-query-patterns.md +317 -0
- package/skills/salesforce/salesforce-soql-generator-skill/SKILL.md +305 -0
- package/skills/salesforce/salesforce-soql-generator-skill/metadata.json +25 -0
- package/skills/salesforce/salesforce-soql-generator-skill/references/common-patterns.md +293 -0
- package/skills/salesforce/salesforce-soql-generator-skill/references/governor-limits.md +171 -0
- package/skills/salesforce/salesforce-soql-generator-skill/references/soql-syntax-quickref.md +255 -0
- package/skills/salesforce/salesforce-validation-rule-writer-skill/SKILL.md +329 -0
- package/skills/salesforce/salesforce-validation-rule-writer-skill/metadata.json +28 -0
- package/skills/salesforce/salesforce-validation-rule-writer-skill/references/error-message-style.md +132 -0
- package/skills/salesforce/salesforce-validation-rule-writer-skill/references/formula-syntax-quickref.md +182 -0
- package/skills/salesforce/salesforce-validation-rule-writer-skill/references/validation-patterns.md +214 -0
- package/skills/salesforce/salesforce-zero-trust-maturity-skill/SKILL.md +164 -0
- package/skills/salesforce/salesforce-zero-trust-maturity-skill/metadata.json +19 -0
- package/skills/salesforce/salesforce-zero-trust-maturity-skill/references/continuous-verification-patterns.md +209 -0
- package/skills/salesforce/salesforce-zero-trust-maturity-skill/references/maturity-scoring-rubric.md +179 -0
- package/skills/salesforce/salesforce-zero-trust-maturity-skill/references/nist-zta-pillars.md +194 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/01-csharp-runtime.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/02-aspnetcore-api.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/03-identity-authz.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/04-efcore-data.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/05-testing-quality.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/06-supply-chain.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/07-performance-aot.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/08-observability-otel.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/09-aspire-cloud-native.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/10-multi-domain.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/11-ambiguous.json +4 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/adv-ambiguous-near-miss.json +4 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/adv-live-guard-bypass.json +4 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/adv-parallel-saturation.json +9 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/01-csharp-runtime.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/02-aspnetcore-api.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/03-identity-authz.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/04-efcore-data.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/05-testing-quality.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/06-supply-chain.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/07-performance-aot.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/08-observability-otel.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/09-aspire-cloud-native.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/10-multi-domain.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/11-ambiguous.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/adv-ambiguous-near-miss.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/adv-live-guard-bypass.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/adv-parallel-saturation.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/dotnet-maestro-routing/taxonomy.json +99 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/001-happy-platform-admin-review.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/002-happy-business-analyst.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/003-happy-app-builder-automation.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/004-happy-development.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/005-happy-devops-release.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/006-happy-security-identity-access.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/007-happy-data-architecture.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/008-happy-integration-mulesoft.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/009-happy-sales-cloud-revenue.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/010-happy-marketing-cloud.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/011-happy-agentforce-ai.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/012-happy-analytics-tableau.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/013-happy-compliance-privacy.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/014-happy-network-policy-architect.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/015-happy-hyperforce-security.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/016-happy-sandbox-isolation.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/017-happy-session-governance.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/018-happy-continuous-verification.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/019-happy-certificate-lifecycle.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/020-happy-adaptive-access.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/021-happy-code-analyzer-orchestrator.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/022-happy-sandbox-governance.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/023-happy-change-impact-analyst.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-liveguard-01-live-org-deploy-guard.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-liveguard-02-live-mass-delete-guard.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-liveguard-03-live-release-to-prod-guard.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/001-happy-platform-admin-review.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/002-happy-business-analyst.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/003-happy-app-builder-automation.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/004-happy-development.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/005-happy-devops-release.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/006-happy-security-identity-access.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/007-happy-data-architecture.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/008-happy-integration-mulesoft.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/009-happy-sales-cloud-revenue.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/010-happy-marketing-cloud.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/011-happy-agentforce-ai.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/012-happy-analytics-tableau.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/013-happy-compliance-privacy.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/014-happy-network-policy-architect.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/015-happy-hyperforce-security.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/016-happy-sandbox-isolation.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/017-happy-session-governance.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/018-happy-continuous-verification.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/019-happy-certificate-lifecycle.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/020-happy-adaptive-access.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/021-happy-code-analyzer-orchestrator.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/022-happy-sandbox-governance.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/023-happy-change-impact-analyst.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-liveguard-01-live-org-deploy-guard.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-liveguard-02-live-mass-delete-guard.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-liveguard-03-live-release-to-prod-guard.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/salesforce-maestro-routing/taxonomy.json +371 -0
- package/tests/test-vfa-export-coverage.test.mjs +29 -8
- package/tests/validate-catalog.py +15 -1
- package/tests/validate-plugin-manifest.py +11 -1
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# Consent Anti-Patterns Reference
|
|
2
|
+
|
|
3
|
+
Common consent management mistakes that create regulatory violations,
|
|
4
|
+
trust failures, or data integrity problems.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Soft Opt-In Misuse
|
|
9
|
+
|
|
10
|
+
### Description
|
|
11
|
+
"Soft opt-in" is a specific exception under the UK's Privacy and Electronic
|
|
12
|
+
Communications Regulations (PECR) and similar rules. It permits sending
|
|
13
|
+
commercial messages to existing customers about similar products WITHOUT
|
|
14
|
+
explicit prior consent, provided an opt-out was offered at the time of data
|
|
15
|
+
collection.
|
|
16
|
+
|
|
17
|
+
### What Constitutes Valid Soft Opt-In
|
|
18
|
+
|
|
19
|
+
All conditions must be satisfied:
|
|
20
|
+
1. Contact details obtained during a **sale or negotiation of a sale**.
|
|
21
|
+
2. Marketing is **only for similar products or services** to what was purchased.
|
|
22
|
+
3. The individual was **given a clear opportunity to opt out** at collection.
|
|
23
|
+
4. An **opt-out mechanism exists in every message**.
|
|
24
|
+
|
|
25
|
+
### Common Misuses
|
|
26
|
+
|
|
27
|
+
| Misuse | Why It Fails |
|
|
28
|
+
|--------|-------------|
|
|
29
|
+
| Applying soft opt-in to contacts obtained from bought lists | Not obtained during a sale |
|
|
30
|
+
| Marketing unrelated products using soft opt-in basis | Must be "similar products" only |
|
|
31
|
+
| Using soft opt-in for B2C contacts under GDPR | GDPR requires explicit consent; soft opt-in is a PECR concept |
|
|
32
|
+
| Failing to provide opt-out at collection point | Invalidates the soft opt-in basis |
|
|
33
|
+
| Treating "gave us their card at a conference" as soft opt-in | No sale/negotiation occurred |
|
|
34
|
+
|
|
35
|
+
### Salesforce Data Model Check
|
|
36
|
+
|
|
37
|
+
```sql
|
|
38
|
+
-- Find contacts with soft-opt-in consent basis where lawful basis is unverified
|
|
39
|
+
SELECT Id, Name, Email, ConsentBasis__c, ConsentCaptureSource__c,
|
|
40
|
+
ConsentCaptureDate__c
|
|
41
|
+
FROM Contact
|
|
42
|
+
WHERE ConsentBasis__c = 'SoftOptIn'
|
|
43
|
+
AND (ConsentCaptureSource__c = null OR ConsentCaptureDate__c = null)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 2. Pre-Checked Consent Boxes
|
|
49
|
+
|
|
50
|
+
### Description
|
|
51
|
+
Consent forms that preselect the marketing consent checkbox, requiring
|
|
52
|
+
users to actively uncheck to opt out rather than actively check to opt in.
|
|
53
|
+
|
|
54
|
+
### Why It Is Invalid
|
|
55
|
+
|
|
56
|
+
Under GDPR Article 7 and Recital 32, consent must be given by a "clear
|
|
57
|
+
affirmative act". Pre-ticked boxes do not constitute affirmative action and
|
|
58
|
+
are explicitly prohibited.
|
|
59
|
+
|
|
60
|
+
Under CASL, consent obtained via a pre-checked box is **not valid express consent**.
|
|
61
|
+
|
|
62
|
+
### Detection
|
|
63
|
+
|
|
64
|
+
Review all forms, landing pages, and registration flows:
|
|
65
|
+
- Web-to-Lead forms (Setup > Web-to-Lead)
|
|
66
|
+
- Marketing Cloud CloudPages and Smart Capture forms
|
|
67
|
+
- Custom LWC or VisualForce forms
|
|
68
|
+
|
|
69
|
+
Checklist item: every marketing consent checkbox must have `checked="false"`
|
|
70
|
+
(or no `checked` attribute) by default.
|
|
71
|
+
|
|
72
|
+
### Correct HTML Pattern
|
|
73
|
+
```html
|
|
74
|
+
<!-- WRONG: pre-checked -->
|
|
75
|
+
<input type="checkbox" name="marketingConsent" checked="checked">
|
|
76
|
+
<label>Send me marketing communications</label>
|
|
77
|
+
|
|
78
|
+
<!-- CORRECT: unchecked by default -->
|
|
79
|
+
<input type="checkbox" name="marketingConsent">
|
|
80
|
+
<label>Yes, I would like to receive marketing communications about [specific products].</label>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 3. Missing Consent Withdrawal Mechanism
|
|
86
|
+
|
|
87
|
+
### Description
|
|
88
|
+
Users cannot easily opt out of marketing communications, or the opt-out
|
|
89
|
+
mechanism is obscured, dysfunctional, or not honored consistently across
|
|
90
|
+
all channels.
|
|
91
|
+
|
|
92
|
+
### Regulatory Requirements
|
|
93
|
+
|
|
94
|
+
| Regulation | Opt-Out Deadline | Mechanism Requirement |
|
|
95
|
+
|-----------|-----------------|----------------------|
|
|
96
|
+
| GDPR | Without undue delay | Must be as easy as giving consent |
|
|
97
|
+
| CAN-SPAM | 10 business days | Clear opt-out in every email |
|
|
98
|
+
| CASL | 10 business days | Unsubscribe link in every CEM |
|
|
99
|
+
| CCPA | 15 business days | Conspicuous "Do Not Sell/Share" link |
|
|
100
|
+
|
|
101
|
+
### Anti-Patterns
|
|
102
|
+
|
|
103
|
+
1. **Opt-out link buried in 6pt font at bottom of email:** Fails "as easy to withdraw as to give" requirement.
|
|
104
|
+
2. **Opt-out requires creating an account:** Illegal friction under GDPR.
|
|
105
|
+
3. **Opt-out confirmation page has re-subscribe push:** Acceptable if not coercive; review wording.
|
|
106
|
+
4. **Opt-out updates only Marketing Cloud but not Salesforce CRM:** Cross-system sync gap means the contact may be re-added to future lists.
|
|
107
|
+
5. **Opt-out requires customer service call or email:** Must be automated; human-in-the-loop opt-out processes are too slow.
|
|
108
|
+
|
|
109
|
+
### Cross-System Sync Verification
|
|
110
|
+
|
|
111
|
+
```sql
|
|
112
|
+
-- Find contacts opted out in MC but still active in CRM (sync gap)
|
|
113
|
+
-- This query assumes a custom field tracking MC opt-out sync
|
|
114
|
+
SELECT Id, Email, HasOptedOutOfEmail, MCOptOutSyncStatus__c, LastMCOptOutDate__c
|
|
115
|
+
FROM Contact
|
|
116
|
+
WHERE HasOptedOutOfEmail = false
|
|
117
|
+
AND MCOptOutSyncStatus__c = 'OptedOut'
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 4. Stale Consent
|
|
123
|
+
|
|
124
|
+
### Description
|
|
125
|
+
Consent captured years ago is treated as perpetually valid without considering
|
|
126
|
+
whether the individual's circumstances or the processing purpose has changed.
|
|
127
|
+
|
|
128
|
+
### Why Stale Consent Is a Risk
|
|
129
|
+
|
|
130
|
+
Under GDPR Recital 171, when the original basis for consent changes, new consent
|
|
131
|
+
is required. Additionally, inactive contacts who consented years ago and have
|
|
132
|
+
not engaged may no longer reasonably expect to receive marketing.
|
|
133
|
+
|
|
134
|
+
### CASL-Specific Rule
|
|
135
|
+
|
|
136
|
+
Implied consent under CASL expires after 2 years from the last transaction.
|
|
137
|
+
Express consent does not expire unless withdrawn.
|
|
138
|
+
|
|
139
|
+
### Identifying Stale Consent
|
|
140
|
+
|
|
141
|
+
```sql
|
|
142
|
+
-- GDPR context: consent older than 2 years with no engagement
|
|
143
|
+
SELECT cp.Id, cp.EmailAddress, cpc.CaptureDate, cpc.PrivacyConsentStatus,
|
|
144
|
+
c.LastActivityDate
|
|
145
|
+
FROM ContactPointConsent cpc
|
|
146
|
+
JOIN ContactPointEmail cp ON cpc.ContactPointId = cp.Id
|
|
147
|
+
JOIN Contact c ON cp.IndividualId = c.IndividualId
|
|
148
|
+
WHERE cpc.PrivacyConsentStatus = 'OptIn'
|
|
149
|
+
AND cpc.CaptureDate < LAST_N_YEARS:2
|
|
150
|
+
AND c.LastActivityDate < LAST_N_YEARS:2
|
|
151
|
+
ORDER BY cpc.CaptureDate ASC
|
|
152
|
+
LIMIT 500
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Remediation: Consent Re-Engagement Campaign
|
|
156
|
+
|
|
157
|
+
Before bulk opt-out of stale contacts:
|
|
158
|
+
1. Send a single re-confirmation email ("Are you still interested in hearing from us?").
|
|
159
|
+
2. Only contacts who click re-confirm are retained as opt-in.
|
|
160
|
+
3. Contacts who do not respond within 30 days are moved to `NotSeen` status.
|
|
161
|
+
4. Document the re-engagement process for compliance record.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 5. Bundle Consent (All or Nothing)
|
|
166
|
+
|
|
167
|
+
### Description
|
|
168
|
+
Consent for marketing is bundled with consent for terms of service, product
|
|
169
|
+
use, or other processing. Users cannot selectively consent to marketing while
|
|
170
|
+
accepting the terms.
|
|
171
|
+
|
|
172
|
+
### Why It Is Invalid
|
|
173
|
+
|
|
174
|
+
GDPR Article 7(2): "If the data subject's consent is given in the context of a
|
|
175
|
+
written declaration which also concerns other matters, the request for consent
|
|
176
|
+
shall be presented in a manner which is clearly distinguishable from the other
|
|
177
|
+
matters."
|
|
178
|
+
|
|
179
|
+
Bundled consent is not "freely given" because refusal of marketing consent would
|
|
180
|
+
prevent acceptance of the service.
|
|
181
|
+
|
|
182
|
+
### Correct Form Design
|
|
183
|
+
```
|
|
184
|
+
[ ] I accept the Terms of Service and Privacy Policy (required)
|
|
185
|
+
|
|
186
|
+
--- Marketing Communications ---
|
|
187
|
+
[ ] I would like to receive product updates by email (optional)
|
|
188
|
+
[ ] I would like to receive SMS offers (optional)
|
|
189
|
+
[ ] I would like to receive personalized recommendations (optional)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Each marketing option must be independently selectable and optional.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 6. Consent Without Purpose Specification
|
|
197
|
+
|
|
198
|
+
### Description
|
|
199
|
+
Consent is recorded as "marketing consent" without specifying which types
|
|
200
|
+
of marketing, which channels, and which sender entity.
|
|
201
|
+
|
|
202
|
+
### Why It Is a Problem
|
|
203
|
+
|
|
204
|
+
Under GDPR, consent must be **specific** to a purpose. Blanket "marketing consent"
|
|
205
|
+
is too vague if the same consent is used for:
|
|
206
|
+
- Product newsletters (via email).
|
|
207
|
+
- SMS promotions (different channel).
|
|
208
|
+
- Profiling for personalization (different processing activity).
|
|
209
|
+
- Third-party data sharing for joint campaigns (different legal entity).
|
|
210
|
+
|
|
211
|
+
### Correct Approach
|
|
212
|
+
|
|
213
|
+
Separate `ContactPointConsent` records for each purpose + channel combination:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
ContactPointConsent record 1:
|
|
217
|
+
ContactPointId = [email address]
|
|
218
|
+
DataUsePurpose = "Monthly Newsletter"
|
|
219
|
+
PrivacyConsentStatus = OptIn
|
|
220
|
+
|
|
221
|
+
ContactPointConsent record 2:
|
|
222
|
+
ContactPointId = [email address]
|
|
223
|
+
DataUsePurpose = "Product Promotional Offers"
|
|
224
|
+
PrivacyConsentStatus = OptOut
|
|
225
|
+
|
|
226
|
+
ContactPointConsent record 3:
|
|
227
|
+
ContactPointId = [phone number]
|
|
228
|
+
DataUsePurpose = "SMS Marketing"
|
|
229
|
+
PrivacyConsentStatus = OptIn
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Consent Anti-Pattern Summary
|
|
235
|
+
|
|
236
|
+
| Anti-Pattern | Regulation Violated | Severity |
|
|
237
|
+
|-------------|--------------------|---------|
|
|
238
|
+
| Pre-checked boxes | GDPR, CASL | CRITICAL |
|
|
239
|
+
| Bundle consent with T&C | GDPR | HIGH |
|
|
240
|
+
| Soft opt-in misapplied | PECR/UK GDPR, CASL | HIGH |
|
|
241
|
+
| Stale consent treated as valid | GDPR, CASL implied expiry | HIGH |
|
|
242
|
+
| Missing opt-out mechanism | CAN-SPAM, CASL, GDPR | CRITICAL |
|
|
243
|
+
| Opt-out not honored in all systems | All regulations | CRITICAL |
|
|
244
|
+
| No consent purpose specification | GDPR | HIGH |
|
|
245
|
+
| Consent obtained via coercion | GDPR | CRITICAL |
|
|
246
|
+
| No consent withdrawal record | GDPR Art 7(1), CASL | HIGH |
|
|
247
|
+
| Withdrawal mechanism requires account creation | GDPR | HIGH |
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Consent Model Reference
|
|
2
|
+
|
|
3
|
+
Reference for Salesforce's consent data model covering the Individual object,
|
|
4
|
+
Contact Point Consent, Communication Subscription objects, and their
|
|
5
|
+
relationships to Contact/Lead records.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Core Consent Objects
|
|
10
|
+
|
|
11
|
+
Salesforce provides a built-in consent data model in the core platform.
|
|
12
|
+
This model is extended by Marketing Cloud
|
|
13
|
+
and the Health/Financial cloud products.
|
|
14
|
+
|
|
15
|
+
### Object Map
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Contact / Lead / Person Account
|
|
19
|
+
|
|
|
20
|
+
v
|
|
21
|
+
Individual (1:1 linked via IndividualId field)
|
|
22
|
+
|
|
|
23
|
+
+-- ContactPointConsent (per contact point + purpose)
|
|
24
|
+
| |-- ContactPointEmail
|
|
25
|
+
| |-- ContactPointPhone
|
|
26
|
+
| |-- ContactPointAddress
|
|
27
|
+
|
|
|
28
|
+
+-- IndividualHistory (audit changes to Individual record)
|
|
29
|
+
|
|
30
|
+
Communication Subscription Type (catalog of subscription types)
|
|
31
|
+
|
|
|
32
|
+
v
|
|
33
|
+
Communication Subscription (per Individual + Type)
|
|
34
|
+
|
|
|
35
|
+
v
|
|
36
|
+
Communication Subscription Channel Type (per channel: email, SMS, push)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Individual Object
|
|
42
|
+
|
|
43
|
+
The `Individual` sObject is the hub of the consent data model.
|
|
44
|
+
Every Contact or Lead that requires consent management should be linked to an
|
|
45
|
+
Individual record via the `IndividualId` lookup field.
|
|
46
|
+
|
|
47
|
+
### Key Fields
|
|
48
|
+
|
|
49
|
+
| Field | API Name | Purpose |
|
|
50
|
+
|-------|----------|---------|
|
|
51
|
+
| Name | `Name` | Individual identifier (typically mirrors Contact name) |
|
|
52
|
+
| Don't Process | `HasOptedOutOfProcessing` | Global processing opt-out |
|
|
53
|
+
| Don't Market | `HasOptedOutOfSolicitationn` | Global marketing opt-out |
|
|
54
|
+
| Don't Profile | `HasOptedOutOfProfiling` | Profiling/segmentation opt-out |
|
|
55
|
+
| Don't Track | `HasOptedOutOfTracking` | Web tracking opt-out |
|
|
56
|
+
| Forget | `ShouldForget` | Erasure request flag |
|
|
57
|
+
| Birth Date | `BirthDate` | Age verification for minor consent |
|
|
58
|
+
| Death Date | `DeathDate` | Deceased flag |
|
|
59
|
+
|
|
60
|
+
### Querying Individual-Contact Relationship
|
|
61
|
+
```sql
|
|
62
|
+
SELECT Id, IndividualId, Individual.HasOptedOutOfProcessing,
|
|
63
|
+
Individual.HasOptedOutOfSolicitationn
|
|
64
|
+
FROM Contact
|
|
65
|
+
WHERE Id IN :contactIds
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## ContactPointConsent Object
|
|
71
|
+
|
|
72
|
+
`ContactPointConsent` records store granular consent for a specific contact
|
|
73
|
+
point (email address, phone number) and a specific data use purpose.
|
|
74
|
+
|
|
75
|
+
### Key Fields
|
|
76
|
+
|
|
77
|
+
| Field | API Name | Type | Purpose |
|
|
78
|
+
|-------|----------|------|---------|
|
|
79
|
+
| Contact Point | `ContactPointId` | Polymorphic lookup | Which email/phone/address |
|
|
80
|
+
| Data Use Purpose | `DataUsePurposeId` | Lookup | Consent purpose |
|
|
81
|
+
| Capture Date | `CaptureDate` | DateTime | When consent was captured |
|
|
82
|
+
| Capture Source | `CaptureSource` | Text | Where consent was captured (form URL, event, etc.) |
|
|
83
|
+
| Privacy Consent Status | `PrivacyConsentStatus` | Picklist | OptIn / OptOut / NotSeen / Seen |
|
|
84
|
+
| Effective From | `EffectiveFrom` | DateTime | When consent takes effect |
|
|
85
|
+
| Effective To | `EffectiveTo` | DateTime | When consent expires |
|
|
86
|
+
|
|
87
|
+
### Consent Status Values
|
|
88
|
+
|
|
89
|
+
| Status | Meaning |
|
|
90
|
+
|--------|---------|
|
|
91
|
+
| `OptIn` | Explicit opt-in; can send |
|
|
92
|
+
| `OptOut` | Explicit opt-out; must not send |
|
|
93
|
+
| `NotSeen` | Individual has not been presented with consent request |
|
|
94
|
+
| `Seen` | Individual saw the consent request but did not act |
|
|
95
|
+
|
|
96
|
+
**Best practice:** Only send to contacts with `PrivacyConsentStatus = 'OptIn'`
|
|
97
|
+
for regulated channels. `NotSeen` and `Seen` are ambiguous and should be
|
|
98
|
+
treated as opt-out in GDPR/CASL contexts.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## ContactPointEmail and ContactPointPhone
|
|
103
|
+
|
|
104
|
+
These objects store individual contact points (distinct from the Email field on Contact).
|
|
105
|
+
|
|
106
|
+
```sql
|
|
107
|
+
-- Find all email contact points for a contact
|
|
108
|
+
SELECT Id, EmailAddress, Individual.Name, Individual.HasOptedOutOfSolicitationn
|
|
109
|
+
FROM ContactPointEmail
|
|
110
|
+
WHERE IndividualId IN (
|
|
111
|
+
SELECT IndividualId FROM Contact WHERE Id IN :contactIds
|
|
112
|
+
)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
A Contact may have multiple ContactPointEmail records (work, personal, newsletter
|
|
116
|
+
address). Consent should be tracked at this granularity.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Communication Subscription Model
|
|
121
|
+
|
|
122
|
+
The Communication Subscription model provides a catalog-based approach to
|
|
123
|
+
managing preferences for named subscription types.
|
|
124
|
+
|
|
125
|
+
### Objects
|
|
126
|
+
|
|
127
|
+
| Object | Purpose |
|
|
128
|
+
|--------|---------|
|
|
129
|
+
| `CommSubscription` | Defines a named subscription type (e.g., "Monthly Newsletter") |
|
|
130
|
+
| `CommSubscriptionConsent` | Records an Individual's consent for a subscription |
|
|
131
|
+
| `CommSubscriptionChannelType` | Maps a subscription type to a channel (Email, SMS, Push) |
|
|
132
|
+
| `CommSubscriptionTiming` | Frequency preferences (daily, weekly, monthly) |
|
|
133
|
+
|
|
134
|
+
```sql
|
|
135
|
+
-- Get all active subscriptions with their channel types
|
|
136
|
+
SELECT Id, Name,
|
|
137
|
+
(SELECT Id, ChannelType, CommChannelTypeName
|
|
138
|
+
FROM CommSubscriptionChannelTypes)
|
|
139
|
+
FROM CommSubscription
|
|
140
|
+
WHERE Status = 'Active'
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Salesforce Marketing Cloud Consent Integration
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
In orgs using Marketing Cloud with a Salesforce connector (Marketing Cloud
|
|
149
|
+
Connect or the newer Marketing Cloud Account Engagement / MCAE):
|
|
150
|
+
|
|
151
|
+
| MC Object | Core Object Counterpart | Sync Direction |
|
|
152
|
+
|-----------|------------------------|----------------|
|
|
153
|
+
| EmailOptIn/OptOut | Individual.HasOptedOutOfSolicitationn | Bidirectional |
|
|
154
|
+
| Subscription status | CommSubscriptionConsent | Configurable |
|
|
155
|
+
| SMS opt-in | ContactPointPhone + ContactPointConsent | Core to MC |
|
|
156
|
+
|
|
157
|
+
**Key review point:** Verify that opt-out signals from Marketing Cloud propagate
|
|
158
|
+
to the Salesforce core Individual object and vice versa. Unidirectional sync
|
|
159
|
+
can result in opt-out honors on one platform but sends on another.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Consent Data Queries for Review
|
|
164
|
+
|
|
165
|
+
### Find contacts without Individual records
|
|
166
|
+
```sql
|
|
167
|
+
SELECT Id, Name, Email
|
|
168
|
+
FROM Contact
|
|
169
|
+
WHERE IndividualId = null
|
|
170
|
+
AND Email != null
|
|
171
|
+
LIMIT 500
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Find opt-outs that may still be receiving communication
|
|
175
|
+
```sql
|
|
176
|
+
SELECT c.Id, c.Email, c.Name, i.HasOptedOutOfSolicitationn
|
|
177
|
+
FROM Contact c
|
|
178
|
+
JOIN Individual i ON c.IndividualId = i.Id
|
|
179
|
+
WHERE i.HasOptedOutOfSolicitationn = true
|
|
180
|
+
AND c.HasOptedOutOfEmail = false
|
|
181
|
+
```
|
|
182
|
+
Mismatch between `Individual.HasOptedOutOfSolicitationn` and `Contact.HasOptedOutOfEmail`
|
|
183
|
+
is a data integrity finding.
|
|
184
|
+
|
|
185
|
+
### Find expired consent
|
|
186
|
+
```sql
|
|
187
|
+
SELECT Id, ContactPointId, PrivacyConsentStatus, EffectiveTo
|
|
188
|
+
FROM ContactPointConsent
|
|
189
|
+
WHERE EffectiveTo < TODAY
|
|
190
|
+
AND PrivacyConsentStatus = 'OptIn'
|
|
191
|
+
```
|
|
192
|
+
Expired opt-in consent should be treated as `NotSeen` until re-confirmed.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Consent Model Review Checklist
|
|
197
|
+
|
|
198
|
+
- [ ] All Contacts with email addresses have an `IndividualId` set.
|
|
199
|
+
- [ ] `ContactPointConsent` records exist for each ContactPointEmail.
|
|
200
|
+
- [ ] Consent capture date and source are recorded on every `ContactPointConsent`.
|
|
201
|
+
- [ ] Opt-out values are synchronized between `Individual` and `Contact` objects.
|
|
202
|
+
- [ ] Expired consent is not treated as active opt-in.
|
|
203
|
+
- [ ] Communication Subscription model in use (not just field-level opt-out).
|
|
204
|
+
- [ ] Consent records are immutable / append-only (history preserved, not overwritten).
|
|
205
|
+
- [ ] Consent withdrawal mechanism captures the withdrawal date and source.
|
package/skills/salesforce/salesforce-marketing-consent-review-skill/references/regulatory-mapping.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Regulatory Mapping Reference
|
|
2
|
+
|
|
3
|
+
Mapping of major privacy and marketing regulations to Salesforce consent model
|
|
4
|
+
fields and compliance requirements.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Regulation Overview Matrix
|
|
9
|
+
|
|
10
|
+
| Regulation | Jurisdiction | Opt-In Required | Opt-Out Required | Right to Erasure | Consent Record Required |
|
|
11
|
+
|-----------|-------------|----------------|-----------------|-----------------|------------------------|
|
|
12
|
+
| GDPR | EU/EEA | Art 6(1)(a): explicit for marketing | Art 21: right to object | Art 17: yes | Yes |
|
|
13
|
+
| UK GDPR | United Kingdom | Same as EU GDPR | Same as EU GDPR | Same as EU GDPR | Yes |
|
|
14
|
+
| CCPA/CPRA | California, USA | No (opt-out model) | Yes (right to opt out of sale/sharing) | Yes (deletion right) | Yes |
|
|
15
|
+
| CASL | Canada | Express consent required | Unsubscribe required | No erasure right | Yes (3 years) |
|
|
16
|
+
| CAN-SPAM | United States | No (opt-out model) | Yes (unsubscribe mechanism) | No | Recommended |
|
|
17
|
+
| ePrivacy Directive | EU/EEA | Yes (cookies and tracking) | Yes | No | Yes |
|
|
18
|
+
| LGPD | Brazil | Yes (similar to GDPR) | Yes | Yes | Yes |
|
|
19
|
+
| PDPA | Thailand | Yes | Yes | Yes | Yes |
|
|
20
|
+
| POPIA | South Africa | Yes | Yes | Yes | Yes |
|
|
21
|
+
|
|
22
|
+
Regulations are frequently amended. Verify
|
|
23
|
+
current requirements with qualified legal counsel for the specific jurisdictions
|
|
24
|
+
in scope.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## GDPR Article 6 Lawful Basis
|
|
29
|
+
|
|
30
|
+
GDPR requires a lawful basis for every processing activity. Marketing
|
|
31
|
+
communications typically rely on one of:
|
|
32
|
+
|
|
33
|
+
| Lawful Basis | Art 6 Reference | When Applicable | Consent Record Needed |
|
|
34
|
+
|-------------|----------------|----------------|----------------------|
|
|
35
|
+
| Consent | Art 6(1)(a) | Marketing emails, profiling, tracking | Yes — must be specific, informed, freely given |
|
|
36
|
+
| Legitimate Interest | Art 6(1)(f) | B2B marketing to existing contacts (with opt-out) | LIA documentation; opt-out mechanism |
|
|
37
|
+
| Contract | Art 6(1)(b) | Service communications (order confirmations) | No specific consent form; document lawful basis |
|
|
38
|
+
| Legal Obligation | Art 6(1)(c) | Compliance notifications | No |
|
|
39
|
+
| Vital Interest | Art 6(1)(d) | Emergency safety information | No |
|
|
40
|
+
| Public Task | Art 6(1)(e) | Public authority processing | No |
|
|
41
|
+
|
|
42
|
+
**Important:** Consent under GDPR must be:
|
|
43
|
+
- Freely given (not bundled with terms of service acceptance).
|
|
44
|
+
- Specific (separate consent for each purpose).
|
|
45
|
+
- Informed (clear description of what is being consented to).
|
|
46
|
+
- Unambiguous (affirmative action; pre-ticked boxes are not valid).
|
|
47
|
+
|
|
48
|
+
### Salesforce Mapping
|
|
49
|
+
|
|
50
|
+
| GDPR Requirement | Salesforce Field |
|
|
51
|
+
|-----------------|-----------------|
|
|
52
|
+
| Consent captured | `ContactPointConsent.CaptureDate` |
|
|
53
|
+
| Consent source | `ContactPointConsent.CaptureSource` |
|
|
54
|
+
| Consent status | `ContactPointConsent.PrivacyConsentStatus` |
|
|
55
|
+
| Lawful basis | Custom field on `ContactPointConsent` or `Individual` |
|
|
56
|
+
| Processing opt-out | `Individual.HasOptedOutOfProcessing` |
|
|
57
|
+
| Right to erasure flag | `Individual.ShouldForget` |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## CCPA / CPRA (California)
|
|
62
|
+
|
|
63
|
+
The California Consumer Privacy Act and its amendment (CPRA) apply to
|
|
64
|
+
businesses meeting volume/revenue thresholds doing business in California.
|
|
65
|
+
|
|
66
|
+
### Key Rights and Obligations
|
|
67
|
+
|
|
68
|
+
| Right | Obligation | Salesforce Mechanism |
|
|
69
|
+
|-------|-----------|---------------------|
|
|
70
|
+
| Right to Know | Disclose categories and specific data | Data export / DSAR workflow |
|
|
71
|
+
| Right to Delete | Delete PI within 45 days of verified request | Individual.ShouldForget + deletion batch |
|
|
72
|
+
| Right to Opt Out of Sale/Sharing | Provide "Do Not Sell or Share My PI" mechanism | Custom consent field or ContactPointConsent |
|
|
73
|
+
| Right to Correct | Correct inaccurate PI | Standard Salesforce update flow |
|
|
74
|
+
| Right to Limit Sensitive PI Use | Restrict sensitive PI to primary purposes | Field-level consent + sensitive data classification |
|
|
75
|
+
|
|
76
|
+
**CPRA additions** (effective 2023):
|
|
77
|
+
- Sensitive personal information (SPI) category requires additional disclosure
|
|
78
|
+
and opt-out mechanism.
|
|
79
|
+
- Data minimization and purpose limitation principles.
|
|
80
|
+
- Retention period requirements (no longer than reasonably necessary).
|
|
81
|
+
|
|
82
|
+
### CCPA vs GDPR Key Difference
|
|
83
|
+
|
|
84
|
+
CCPA is primarily an **opt-out model**: businesses can market to California
|
|
85
|
+
residents without prior consent, but must provide a clear opt-out mechanism
|
|
86
|
+
and honor opt-out requests within 15 business days.
|
|
87
|
+
|
|
88
|
+
GDPR is primarily an **opt-in model** for marketing: affirmative consent is
|
|
89
|
+
required before most marketing communications.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## CASL (Canada's Anti-Spam Legislation)
|
|
94
|
+
|
|
95
|
+
CASL applies to all commercial electronic messages (CEMs) sent to or from
|
|
96
|
+
Canada.
|
|
97
|
+
|
|
98
|
+
### Consent Types
|
|
99
|
+
|
|
100
|
+
| Type | Description | Expiry |
|
|
101
|
+
|------|-------------|--------|
|
|
102
|
+
| Express Consent | Explicit opt-in (form checkbox, signature) | No expiry unless withdrawn |
|
|
103
|
+
| Implied Consent — existing business relationship | Purchase or inquiry in past 2 years | 2 years from last transaction |
|
|
104
|
+
| Implied Consent — conspicuously published address | B2B to published work addresses, relevant to role | Must offer opt-out |
|
|
105
|
+
|
|
106
|
+
**Implied consent expires.** Track the transaction date that creates the implied
|
|
107
|
+
consent relationship.
|
|
108
|
+
|
|
109
|
+
```sql
|
|
110
|
+
-- Find contacts with implied CASL consent nearing expiry (< 3 months)
|
|
111
|
+
SELECT Id, Name, Email, LastPurchaseDate__c
|
|
112
|
+
FROM Contact
|
|
113
|
+
WHERE ConsentType__c = 'CASL_Implied'
|
|
114
|
+
AND LastPurchaseDate__c < LAST_N_DAYS:639 -- (730 - 91 days warning)
|
|
115
|
+
AND LastPurchaseDate__c != null
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### CASL Consent Record Requirements
|
|
119
|
+
|
|
120
|
+
Per CASL, consent records must be retained for the duration of the relationship
|
|
121
|
+
plus 3 years after opt-out or expiry. Records must contain:
|
|
122
|
+
- Who gave consent (name and contact details).
|
|
123
|
+
- When consent was given.
|
|
124
|
+
- How consent was given (form URL, script, checkbox label).
|
|
125
|
+
- What they consented to (description of CEM types).
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## CAN-SPAM (United States)
|
|
130
|
+
|
|
131
|
+
CAN-SPAM applies to commercial emails in the United States. It is an opt-out
|
|
132
|
+
model with no pre-consent requirement for initial contact.
|
|
133
|
+
|
|
134
|
+
### Requirements
|
|
135
|
+
|
|
136
|
+
| Requirement | Detail |
|
|
137
|
+
|-------------|--------|
|
|
138
|
+
| Accurate header information | From, To, Reply-To must be accurate |
|
|
139
|
+
| Non-deceptive subject lines | Subject must not mislead about content |
|
|
140
|
+
| Physical postal address | Must include sender's valid physical address |
|
|
141
|
+
| Clear opt-out mechanism | Must provide clear and conspicuous opt-out |
|
|
142
|
+
| Honor opt-out within 10 business days | Process opt-out within 10 business days |
|
|
143
|
+
| No sharing of opted-out addresses | Cannot sell/transfer opted-out addresses |
|
|
144
|
+
|
|
145
|
+
### Salesforce Mapping for CAN-SPAM
|
|
146
|
+
|
|
147
|
+
- `Contact.HasOptedOutOfEmail = true` honors CAN-SPAM opt-out.
|
|
148
|
+
- Marketing Cloud Unsubscribe events should sync to `Contact.HasOptedOutOfEmail`.
|
|
149
|
+
- Physical address stored in sender's org settings and included in email templates.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## ePrivacy Directive (EU) / Cookie Consent
|
|
154
|
+
|
|
155
|
+
The ePrivacy Directive (and forthcoming ePrivacy Regulation) governs electronic
|
|
156
|
+
marketing and cookies. In the Salesforce context:
|
|
157
|
+
|
|
158
|
+
- **Tracking pixels and web analytics:** Require consent before firing in EU.
|
|
159
|
+
- **Marketing Cloud email tracking:** Open and click tracking requires consent
|
|
160
|
+
under ePrivacy if IP-linked.
|
|
161
|
+
- **ExactTarget/SFMC web tracking (Collect.js):** Requires cookie consent banner
|
|
162
|
+
before activation.
|
|
163
|
+
|
|
164
|
+
### Salesforce Tracking Consent Implementation
|
|
165
|
+
|
|
166
|
+
```javascript
|
|
167
|
+
// Example: Only load SFMC tracking after consent given
|
|
168
|
+
if (userConsentStatus === 'OptIn') {
|
|
169
|
+
// Load Collect.js for web tracking
|
|
170
|
+
var _etmc = _etmc || [];
|
|
171
|
+
_etmc.push(['setOrgId', 'YOUR_ORG_ID']);
|
|
172
|
+
// ... load script
|
|
173
|
+
} else {
|
|
174
|
+
// Do not load tracking script
|
|
175
|
+
console.log('Tracking disabled: user has not opted in.');
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Multi-Regulation Compliance Checklist
|
|
182
|
+
|
|
183
|
+
- [ ] Regulatory map documented for each jurisdiction where customers reside.
|
|
184
|
+
- [ ] Lawful basis documented for each processing purpose (not just "consent").
|
|
185
|
+
- [ ] Express consent captured with date, source, and purpose for GDPR/CASL.
|
|
186
|
+
- [ ] Opt-out honored within: GDPR (promptly), CCPA (15 business days), CAN-SPAM (10 business days), CASL (10 business days).
|
|
187
|
+
- [ ] Implied CASL consent relationships tracked with expiry dates.
|
|
188
|
+
- [ ] Consent records retained for minimum periods (CASL: relationship + 3 years).
|
|
189
|
+
- [ ] Erasure requests trigger data deletion across all connected systems
|
|
190
|
+
(Marketing Cloud, Data Cloud, CRM, backups).
|
|
191
|
+
- [ ] Minor consent handled separately (parental consent where applicable).
|
|
192
|
+
- [ ] Privacy notice linked at point of consent capture.
|