@raishin/vanguard-frontier-agentic 2.3.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 +31 -1
- package/.cursor-plugin/plugin.json +31 -1
- package/.github/plugin/marketplace.json +1 -1
- package/README.md +15 -12
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/AGENT.md +1 -1
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/claude-code.agent.md +1 -1
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/copilot.agent.md +1 -1
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/cursor.agent.md +1 -1
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/gemini.agent.md +1 -1
- package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/kiro-ide.agent.md +1 -1
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/AGENT.md +2 -2
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/claude-code.agent.md +2 -2
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/copilot.agent.md +2 -2
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/cursor.agent.md +2 -2
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/gemini.agent.md +2 -2
- package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/kiro-ide.agent.md +2 -2
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/AGENT.md +3 -3
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/claude-code.agent.md +3 -3
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/copilot.agent.md +3 -3
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/cursor.agent.md +3 -3
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/gemini.agent.md +3 -3
- package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/kiro-ide.agent.md +3 -3
- package/agents/hetzner/README.md +1 -1
- 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 +1451 -283
- package/catalog/asset-integrity.json +2152 -327
- package/catalog/install-roles.json +68 -0
- package/catalog/skill-manifest.json +1040 -155
- package/catalog/skills.json +1242 -262
- 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 +2 -1
- package/schemas/skill.frontmatter.schema.json +33 -3
- package/schemas/skill.schema.json +2 -1
- package/scripts/export-marketplace-agents.mjs +17 -1
- 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-aspnetcore-api-review/SKILL.md +1 -1
- package/skills/dotnet/dotnet-aspnetcore-api-review/references/workflow-and-output.md +2 -2
- package/skills/dotnet/dotnet-csharp-runtime-review/SKILL.md +2 -2
- package/skills/dotnet/dotnet-csharp-runtime-review/references/workflow-and-output.md +7 -7
- package/skills/dotnet/dotnet-efcore-data-access-review/SKILL.md +4 -4
- package/skills/dotnet/dotnet-efcore-data-access-review/references/workflow-and-output.md +3 -3
- package/skills/dotnet/dotnet-performance-aot-review/references/workflow-and-output.md +1 -1
- package/skills/dotnet/dotnet-testing-quality-review/SKILL.md +1 -1
- package/skills/dotnet/dotnet-testing-quality-review/references/workflow-and-output.md +2 -2
- 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/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/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 +8 -4
- package/tests/validate-catalog.py +12 -1
- package/tests/validate-plugin-manifest.py +11 -1
package/skills/salesforce/salesforce-bulk-data-ops-skill/references/anonymous-apex-patterns.md
ADDED
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# Anonymous Apex Patterns Reference
|
|
2
|
+
|
|
3
|
+
## Core Safety Rules
|
|
4
|
+
|
|
5
|
+
Every Anonymous Apex bulk script must follow these rules:
|
|
6
|
+
|
|
7
|
+
1. **Never DML inside a loop** — collect records, DML after loop
|
|
8
|
+
2. **allOrNone=false** — partial success; never block all on one failure
|
|
9
|
+
3. **Database.SaveResult[] iteration** — log every failure
|
|
10
|
+
4. **Chunk to 200** — Apex DML batch limit per transaction
|
|
11
|
+
5. **SOQL in query phase only** — no SOQL inside loops
|
|
12
|
+
6. **Governor limit estimation** — comment the expected row count
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Pattern 1: Mass Owner Reassignment
|
|
17
|
+
|
|
18
|
+
```apex
|
|
19
|
+
/**
|
|
20
|
+
* Mass Owner Reassignment
|
|
21
|
+
* Target: Opportunity records owned by the source user
|
|
22
|
+
* Volume: Estimate <n> records
|
|
23
|
+
* Run in: SANDBOX FIRST. Route to salesforce-live-guard-agent for production.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
// CONFIGURE THESE VALUES
|
|
27
|
+
String sourceUsername = 'outbound_rep@company.com';
|
|
28
|
+
String targetUsername = 'new_owner@company.com';
|
|
29
|
+
Integer BATCH_SIZE = 200;
|
|
30
|
+
|
|
31
|
+
// Resolve user IDs dynamically — do not hardcode
|
|
32
|
+
Id sourceOwnerId = [SELECT Id FROM User WHERE Username = :sourceUsername LIMIT 1].Id;
|
|
33
|
+
Id targetOwnerId = [SELECT Id FROM User WHERE Username = :targetUsername LIMIT 1].Id;
|
|
34
|
+
|
|
35
|
+
System.debug('Source Owner: ' + sourceOwnerId);
|
|
36
|
+
System.debug('Target Owner: ' + targetOwnerId);
|
|
37
|
+
|
|
38
|
+
// Query affected records
|
|
39
|
+
List<Opportunity> oppsToUpdate = [
|
|
40
|
+
SELECT Id, OwnerId, Name
|
|
41
|
+
FROM Opportunity
|
|
42
|
+
WHERE OwnerId = :sourceOwnerId
|
|
43
|
+
AND IsClosed = false
|
|
44
|
+
ORDER BY Id
|
|
45
|
+
LIMIT 10000
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
System.debug('Records to update: ' + oppsToUpdate.size);
|
|
49
|
+
|
|
50
|
+
// Update in chunks
|
|
51
|
+
Integer successCount = 0;
|
|
52
|
+
Integer failCount = 0;
|
|
53
|
+
|
|
54
|
+
for (Integer i = 0; i < oppsToUpdate.size; i += BATCH_SIZE) {
|
|
55
|
+
Integer endIdx = Math.min(i + BATCH_SIZE, oppsToUpdate.size);
|
|
56
|
+
List<Opportunity> batch = new List<Opportunity>;
|
|
57
|
+
for (Integer j = i; j < endIdx; j++) {
|
|
58
|
+
batch.add(new Opportunity(
|
|
59
|
+
Id = oppsToUpdate[j].Id,
|
|
60
|
+
OwnerId = targetOwnerId
|
|
61
|
+
));
|
|
62
|
+
}
|
|
63
|
+
Database.SaveResult[] results = Database.update(batch, false);
|
|
64
|
+
for (Database.SaveResult sr : results) {
|
|
65
|
+
if (sr.isSuccess) {
|
|
66
|
+
successCount++;
|
|
67
|
+
} else {
|
|
68
|
+
failCount++;
|
|
69
|
+
System.debug('ERROR on record ' + sr.getId +
|
|
70
|
+
': ' + sr.getErrors[0].getMessage);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
System.debug('Reassignment complete. Success: ' + successCount + ' | Failed: ' + failCount);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Pattern 2: Mass Field Update
|
|
81
|
+
|
|
82
|
+
```apex
|
|
83
|
+
/**
|
|
84
|
+
* Mass Field Update — set a field value on a filtered set of records
|
|
85
|
+
* Target: Account records missing Industry classification
|
|
86
|
+
* Volume: Estimate <n> records
|
|
87
|
+
* Run in: SANDBOX FIRST.
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
Integer BATCH_SIZE = 200;
|
|
91
|
+
|
|
92
|
+
// Query affected records
|
|
93
|
+
List<Account> accountsToUpdate = [
|
|
94
|
+
SELECT Id, Name, Industry
|
|
95
|
+
FROM Account
|
|
96
|
+
WHERE Industry = null
|
|
97
|
+
AND BillingCountry = 'United States'
|
|
98
|
+
AND Type = 'Customer - Direct'
|
|
99
|
+
ORDER BY Id
|
|
100
|
+
LIMIT 10000
|
|
101
|
+
];
|
|
102
|
+
|
|
103
|
+
System.debug('Records to update: ' + accountsToUpdate.size);
|
|
104
|
+
|
|
105
|
+
Integer successCount = 0;
|
|
106
|
+
Integer failCount = 0;
|
|
107
|
+
|
|
108
|
+
for (Integer i = 0; i < accountsToUpdate.size; i += BATCH_SIZE) {
|
|
109
|
+
Integer endIdx = Math.min(i + BATCH_SIZE, accountsToUpdate.size);
|
|
110
|
+
List<Account> batch = new List<Account>;
|
|
111
|
+
for (Integer j = i; j < endIdx; j++) {
|
|
112
|
+
batch.add(new Account(
|
|
113
|
+
Id = accountsToUpdate[j].Id,
|
|
114
|
+
Industry = 'Other' // CONFIGURE: set correct default value
|
|
115
|
+
));
|
|
116
|
+
}
|
|
117
|
+
Database.SaveResult[] results = Database.update(batch, false);
|
|
118
|
+
for (Database.SaveResult sr : results) {
|
|
119
|
+
if (sr.isSuccess) {
|
|
120
|
+
successCount++;
|
|
121
|
+
} else {
|
|
122
|
+
failCount++;
|
|
123
|
+
System.debug('ERROR: ' + sr.getId + ' | ' + sr.getErrors[0].getMessage);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
System.debug('Update complete. Success: ' + successCount + ' | Failed: ' + failCount);
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Pattern 3: Batch Close Stale Opportunities
|
|
134
|
+
|
|
135
|
+
```apex
|
|
136
|
+
/**
|
|
137
|
+
* Batch Close Stale Opportunities
|
|
138
|
+
* Target: Open Opportunities with CloseDate > 90 days ago
|
|
139
|
+
* Effect: Sets Stage to Closed Lost and adds a note
|
|
140
|
+
* Run in: SANDBOX FIRST.
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
Integer BATCH_SIZE = 200;
|
|
144
|
+
Integer STALE_DAYS = 90; // CONFIGURE: number of days past close date
|
|
145
|
+
|
|
146
|
+
Date staleDate = Date.today.addDays(-STALE_DAYS);
|
|
147
|
+
|
|
148
|
+
List<Opportunity> staleOpps = [
|
|
149
|
+
SELECT Id, Name, StageName, CloseDate, OwnerId
|
|
150
|
+
FROM Opportunity
|
|
151
|
+
WHERE IsClosed = false
|
|
152
|
+
AND CloseDate < :staleDate
|
|
153
|
+
ORDER BY CloseDate ASC
|
|
154
|
+
LIMIT 10000
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
System.debug('Stale opportunities to close: ' + staleOpps.size);
|
|
158
|
+
|
|
159
|
+
Integer successCount = 0;
|
|
160
|
+
Integer failCount = 0;
|
|
161
|
+
|
|
162
|
+
for (Integer i = 0; i < staleOpps.size; i += BATCH_SIZE) {
|
|
163
|
+
Integer endIdx = Math.min(i + BATCH_SIZE, staleOpps.size);
|
|
164
|
+
List<Opportunity> batch = new List<Opportunity>;
|
|
165
|
+
for (Integer j = i; j < endIdx; j++) {
|
|
166
|
+
batch.add(new Opportunity(
|
|
167
|
+
Id = staleOpps[j].Id,
|
|
168
|
+
StageName = 'Closed Lost', // CONFIGURE: target stage
|
|
169
|
+
Description = 'Auto-closed by bulk ops script on ' + Date.today.format +
|
|
170
|
+
'. Original close date: ' + staleOpps[j].CloseDate.format,
|
|
171
|
+
CloseDate = Date.today // Required if validation rule checks CloseDate
|
|
172
|
+
));
|
|
173
|
+
}
|
|
174
|
+
Database.SaveResult[] results = Database.update(batch, false);
|
|
175
|
+
for (Database.SaveResult sr : results) {
|
|
176
|
+
if (sr.isSuccess) {
|
|
177
|
+
successCount++;
|
|
178
|
+
} else {
|
|
179
|
+
failCount++;
|
|
180
|
+
System.debug('ERROR: ' + sr.getId + ' | ' + sr.getErrors[0].getMessage);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
System.debug('Close complete. Success: ' + successCount + ' | Failed: ' + failCount);
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Pattern 4: Contact Deactivation (Soft)
|
|
191
|
+
|
|
192
|
+
```apex
|
|
193
|
+
/**
|
|
194
|
+
* Contact Deactivation
|
|
195
|
+
* Target: Contacts with no activity in the past 365 days
|
|
196
|
+
* Effect: Sets HasOptedOutOfEmail=true and a custom Active__c flag to false
|
|
197
|
+
* NOTE: This does NOT delete contacts. Soft deactivation only.
|
|
198
|
+
* Run in: SANDBOX FIRST.
|
|
199
|
+
*/
|
|
200
|
+
|
|
201
|
+
Integer BATCH_SIZE = 200;
|
|
202
|
+
Date inactivityThreshold = Date.today.addDays(-365);
|
|
203
|
+
|
|
204
|
+
List<Contact> inactiveContacts = [
|
|
205
|
+
SELECT Id, Name, Email, LastActivityDate
|
|
206
|
+
FROM Contact
|
|
207
|
+
WHERE LastActivityDate < :inactivityThreshold
|
|
208
|
+
AND HasOptedOutOfEmail = false
|
|
209
|
+
// AND Active__c = true // CONFIGURE: uncomment if you have an Active field
|
|
210
|
+
LIMIT 10000
|
|
211
|
+
];
|
|
212
|
+
|
|
213
|
+
System.debug('Contacts to deactivate: ' + inactiveContacts.size);
|
|
214
|
+
|
|
215
|
+
Integer successCount = 0;
|
|
216
|
+
Integer failCount = 0;
|
|
217
|
+
|
|
218
|
+
for (Integer i = 0; i < inactiveContacts.size; i += BATCH_SIZE) {
|
|
219
|
+
Integer endIdx = Math.min(i + BATCH_SIZE, inactiveContacts.size);
|
|
220
|
+
List<Contact> batch = new List<Contact>;
|
|
221
|
+
for (Integer j = i; j < endIdx; j++) {
|
|
222
|
+
batch.add(new Contact(
|
|
223
|
+
Id = inactiveContacts[j].Id,
|
|
224
|
+
HasOptedOutOfEmail = true
|
|
225
|
+
// Active__c = false // CONFIGURE: uncomment if field exists
|
|
226
|
+
));
|
|
227
|
+
}
|
|
228
|
+
Database.SaveResult[] results = Database.update(batch, false);
|
|
229
|
+
for (Database.SaveResult sr : results) {
|
|
230
|
+
if (sr.isSuccess) {
|
|
231
|
+
successCount++;
|
|
232
|
+
} else {
|
|
233
|
+
failCount++;
|
|
234
|
+
System.debug('ERROR: ' + sr.getId + ' | ' + sr.getErrors[0].getMessage);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
System.debug('Deactivation complete. Success: ' + successCount + ' | Failed: ' + failCount);
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Pattern 5: Duplicate Lead Merge (MergeLeads Pattern)
|
|
245
|
+
|
|
246
|
+
```apex
|
|
247
|
+
/**
|
|
248
|
+
* Merge Duplicate Leads by Email
|
|
249
|
+
* Merges duplicate leads keeping the oldest record as master
|
|
250
|
+
* Limit: Database.merge supports max 2 duplicates per master call
|
|
251
|
+
* Run in: SANDBOX FIRST. Merged records are NOT recoverable from Recycle Bin.
|
|
252
|
+
*/
|
|
253
|
+
|
|
254
|
+
Integer MERGE_BATCH_LIMIT = 200; // Number of merges per run
|
|
255
|
+
|
|
256
|
+
// Find duplicate emails (requires pre-queried duplicate map — see notes)
|
|
257
|
+
// IMPORTANT: Build duplicate map outside script from a Data Loader export
|
|
258
|
+
// This example uses a hardcoded map for illustration
|
|
259
|
+
Map<String, List<Id>> duplicateMap = new Map<String, List<Id>>{
|
|
260
|
+
// 'email@example.com' => [masterLeadId, duplicateLeadId1, duplicateLeadId2]
|
|
261
|
+
// POPULATE from SOQL query or Data Loader export
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
// QUERY APPROACH (use when volume is manageable):
|
|
265
|
+
List<AggregateResult> dupeGroups = [
|
|
266
|
+
SELECT Email, COUNT(Id) cnt, MIN(Id) masterId
|
|
267
|
+
FROM Lead
|
|
268
|
+
WHERE IsConverted = false
|
|
269
|
+
AND Email != null
|
|
270
|
+
GROUP BY Email
|
|
271
|
+
HAVING COUNT(Id) > 1
|
|
272
|
+
LIMIT :MERGE_BATCH_LIMIT
|
|
273
|
+
];
|
|
274
|
+
|
|
275
|
+
Integer mergeCount = 0;
|
|
276
|
+
Integer errorCount = 0;
|
|
277
|
+
|
|
278
|
+
for (AggregateResult ar : dupeGroups) {
|
|
279
|
+
String email = (String) ar.get('Email');
|
|
280
|
+
Id masterId = (Id) ar.get('masterId');
|
|
281
|
+
|
|
282
|
+
List<Lead> dupes = [
|
|
283
|
+
SELECT Id FROM Lead
|
|
284
|
+
WHERE Email = :email
|
|
285
|
+
AND Id != :masterId
|
|
286
|
+
AND IsConverted = false
|
|
287
|
+
LIMIT 2 // Database.merge supports max 2 duplicates per call
|
|
288
|
+
];
|
|
289
|
+
|
|
290
|
+
if (!dupes.isEmpty) {
|
|
291
|
+
try {
|
|
292
|
+
Database.merge(new Lead(Id = masterId), dupes, false);
|
|
293
|
+
mergeCount++;
|
|
294
|
+
} catch (Exception e) {
|
|
295
|
+
errorCount++;
|
|
296
|
+
System.debug('Merge failed for master ' + masterId + ': ' + e.getMessage);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
System.debug('Merges complete. Success: ' + mergeCount + ' | Failed: ' + errorCount);
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Important notes on merge:**
|
|
305
|
+
- `Database.merge` is NOT reversible — merged records are permanently combined
|
|
306
|
+
- Maximum 2 duplicate records per merge call
|
|
307
|
+
- Always run in sandbox first and verify the master selection logic
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Pattern 6: Lead Conversion
|
|
312
|
+
|
|
313
|
+
```apex
|
|
314
|
+
/**
|
|
315
|
+
* Lead Conversion
|
|
316
|
+
* Converts qualified leads to Contact + Account + Opportunity
|
|
317
|
+
* Run in: SANDBOX FIRST.
|
|
318
|
+
*/
|
|
319
|
+
|
|
320
|
+
Integer BATCH_SIZE = 50; // Lead conversion is more expensive — use smaller batch
|
|
321
|
+
|
|
322
|
+
List<Lead> leadsToConvert = [
|
|
323
|
+
SELECT Id, FirstName, LastName, Company, Email, Status
|
|
324
|
+
FROM Lead
|
|
325
|
+
WHERE IsConverted = false
|
|
326
|
+
AND Status = 'Qualified' // CONFIGURE: your qualified status value
|
|
327
|
+
LIMIT 200
|
|
328
|
+
];
|
|
329
|
+
|
|
330
|
+
System.debug('Leads to convert: ' + leadsToConvert.size);
|
|
331
|
+
|
|
332
|
+
List<Database.LeadConvert> conversions = new List<Database.LeadConvert>;
|
|
333
|
+
LeadStatus convertedStatus = [
|
|
334
|
+
SELECT MasterLabel FROM LeadStatus WHERE IsConverted = true LIMIT 1
|
|
335
|
+
];
|
|
336
|
+
|
|
337
|
+
for (Lead l : leadsToConvert) {
|
|
338
|
+
Database.LeadConvert lc = new Database.LeadConvert;
|
|
339
|
+
lc.setLeadId(l.Id);
|
|
340
|
+
lc.setConvertedStatus(convertedStatus.MasterLabel);
|
|
341
|
+
lc.setDoNotCreateOpportunity(false); // CONFIGURE: set true to skip Opp creation
|
|
342
|
+
lc.setOverwriteLeadSource(false);
|
|
343
|
+
conversions.add(lc);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
Database.LeadConvertResult[] results = Database.convertLead(conversions, false);
|
|
347
|
+
Integer successCount = 0;
|
|
348
|
+
Integer failCount = 0;
|
|
349
|
+
|
|
350
|
+
for (Database.LeadConvertResult lcr : results) {
|
|
351
|
+
if (lcr.isSuccess) {
|
|
352
|
+
successCount++;
|
|
353
|
+
System.debug('Converted: Lead ' + lcr.getLeadId +
|
|
354
|
+
' → Account ' + lcr.getAccountId +
|
|
355
|
+
' Contact ' + lcr.getContactId +
|
|
356
|
+
' Opportunity ' + lcr.getOpportunityId);
|
|
357
|
+
} else {
|
|
358
|
+
failCount++;
|
|
359
|
+
System.debug('FAILED: ' + lcr.getLeadId + ' | ' + lcr.getErrors[0].getMessage);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
System.debug('Conversion complete. Success: ' + successCount + ' | Failed: ' + failCount);
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Governor Limit Reference
|
|
369
|
+
|
|
370
|
+
| Limit | Value | Notes |
|
|
371
|
+
|---|---|---|
|
|
372
|
+
| DML statements per transaction | 150 | Each `Database.update(list)` = 1 statement regardless of list size |
|
|
373
|
+
| DML rows per transaction | 10,000 | Total records across all DML statements |
|
|
374
|
+
| SOQL queries per transaction | 100 | Each `[SELECT ...]` in code = 1 query |
|
|
375
|
+
| SOQL rows per transaction | 50,000 | Total rows returned across all queries |
|
|
376
|
+
| Heap size | 6 MB (sync), 12 MB (async) | Large collections of full records can exceed this |
|
|
377
|
+
| CPU time | 10,000 ms (sync), 60,000 ms (async) | Complex loops approach this limit |
|
|
378
|
+
|
|
379
|
+
**For volumes > 10,000 records:** Use Apex Batch classes (`Database.Batchable`)
|
|
380
|
+
which run asynchronously with 200-record batches and governor limits per batch.
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Data Loader Templates Reference
|
|
2
|
+
|
|
3
|
+
## Data Loader Operation Overview
|
|
4
|
+
|
|
5
|
+
| Operation | When to use | Requires Id field? |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| Insert | Create new records | No (Id auto-generated) |
|
|
8
|
+
| Update | Modify existing records by Salesforce Id | Yes (`Id` column required) |
|
|
9
|
+
| Upsert | Insert or update based on external ID | External ID field required |
|
|
10
|
+
| Delete | Soft-delete records (Recycle Bin) | Yes (`Id` column required) |
|
|
11
|
+
| Export | Query records to CSV | N/A |
|
|
12
|
+
| Export All | Query including soft-deleted records | N/A |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Template 1: Mass Owner Reassignment (Update)
|
|
17
|
+
|
|
18
|
+
**Operation:** Update
|
|
19
|
+
**Object:** Opportunity (or any object with OwnerId)
|
|
20
|
+
|
|
21
|
+
**CSV header row:**
|
|
22
|
+
```
|
|
23
|
+
Id,OwnerId
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Example data:**
|
|
27
|
+
```
|
|
28
|
+
Id,OwnerId
|
|
29
|
+
006Xx000001REPLACE1,005Xx000001NEWOWNER
|
|
30
|
+
006Xx000001REPLACE2,005Xx000001NEWOWNER
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Notes:**
|
|
34
|
+
- `OwnerId` must be the 18-character Salesforce User ID of the new owner
|
|
35
|
+
- Pre-query new owner ID: `SELECT Id FROM User WHERE Username = 'newowner@company.com'`
|
|
36
|
+
- Generate the Id column via export query:
|
|
37
|
+
```
|
|
38
|
+
SELECT Id FROM Opportunity WHERE OwnerId = '<old_owner_id>'
|
|
39
|
+
```
|
|
40
|
+
- Run in sandbox first to verify ownership transfer
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Template 2: Mass Field Update (Update)
|
|
45
|
+
|
|
46
|
+
**Operation:** Update
|
|
47
|
+
**Object:** Account
|
|
48
|
+
|
|
49
|
+
**CSV header row (example — update Rating and Industry):**
|
|
50
|
+
```
|
|
51
|
+
Id,Rating,Industry
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Example data:**
|
|
55
|
+
```
|
|
56
|
+
Id,Rating,Industry
|
|
57
|
+
001Xx000001REPLACE1,Hot,Technology
|
|
58
|
+
001Xx000001REPLACE2,Warm,Healthcare
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Notes:**
|
|
62
|
+
- Only include the fields being changed plus `Id`
|
|
63
|
+
- Do not include fields you want to preserve unchanged (they will remain unchanged)
|
|
64
|
+
- Picklist values must match exact API values (case-sensitive)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Template 3: Upsert with External ID (Upsert)
|
|
69
|
+
|
|
70
|
+
**Operation:** Upsert
|
|
71
|
+
**Object:** Contact
|
|
72
|
+
**External ID field:** `HubSpot_Contact_ID__c`
|
|
73
|
+
|
|
74
|
+
**CSV header row:**
|
|
75
|
+
```
|
|
76
|
+
HubSpot_Contact_ID__c,FirstName,LastName,Email,Phone
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Example data:**
|
|
80
|
+
```
|
|
81
|
+
HubSpot_Contact_ID__c,FirstName,LastName,Email,Phone
|
|
82
|
+
HS-001,Jane,Smith,jane.smith@example.com,415-555-0101
|
|
83
|
+
HS-002,John,Doe,john.doe@example.com,415-555-0102
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Notes:**
|
|
87
|
+
- The external ID field must have "External ID" checked in Salesforce Setup
|
|
88
|
+
- New records (no matching external ID) are inserted
|
|
89
|
+
- Existing records (matching external ID) are updated
|
|
90
|
+
- Do not include `Id` column — it is ignored in upsert mode
|
|
91
|
+
- For relationship lookups in upsert: use `AccountId:Account:External_ID__c`
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Template 4: Bulk Soft Delete (Delete)
|
|
96
|
+
|
|
97
|
+
**Operation:** Delete
|
|
98
|
+
**Object:** Lead
|
|
99
|
+
|
|
100
|
+
**CSV header row:**
|
|
101
|
+
```
|
|
102
|
+
Id
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Example data:**
|
|
106
|
+
```
|
|
107
|
+
Id
|
|
108
|
+
00QXx000001REPLACE1
|
|
109
|
+
00QXx000001REPLACE2
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Notes:**
|
|
113
|
+
- Deleted records go to the Recycle Bin (15-day retention by default)
|
|
114
|
+
- Hard delete (emptyRecycleBin) is T3 prohibited — do not run without explicit approval
|
|
115
|
+
- Pre-export the records to a backup CSV before deleting
|
|
116
|
+
- Max 10,000 records per Data Loader batch recommended
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Template 5: Lead Conversion (Insert + Update combination)
|
|
121
|
+
|
|
122
|
+
Lead conversion is not directly supported by Data Loader. Use the
|
|
123
|
+
Anonymous Apex template from `anonymous-apex-patterns.md`.
|
|
124
|
+
|
|
125
|
+
For Data Loader lead status update (marking leads as "Converted" is
|
|
126
|
+
read-only in Salesforce — proper conversion requires API call):
|
|
127
|
+
|
|
128
|
+
**Alternative:** Export unconverted leads, use the Anonymous Apex
|
|
129
|
+
lead conversion script, verify results.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Data Loader Configuration Notes
|
|
134
|
+
|
|
135
|
+
### Batch Size
|
|
136
|
+
|
|
137
|
+
| Volume | Recommended batch size |
|
|
138
|
+
|---|---|
|
|
139
|
+
| < 1,000 records | 200 |
|
|
140
|
+
| 1,000 – 50,000 records | 2,000 |
|
|
141
|
+
| > 50,000 records | 5,000 (Bulk API v2 mode) |
|
|
142
|
+
|
|
143
|
+
Configure in Data Loader: Settings → Batch Size
|
|
144
|
+
|
|
145
|
+
### Bulk API v2 (Recommended for Large Volumes)
|
|
146
|
+
|
|
147
|
+
Enable Bulk API v2 for operations over 10,000 records:
|
|
148
|
+
- Settings → Use Bulk API: Enable
|
|
149
|
+
- Settings → Bulk API v2 for query: Enable
|
|
150
|
+
- Advantages: Parallel processing, higher throughput, better error reporting
|
|
151
|
+
|
|
152
|
+
### Error Log
|
|
153
|
+
|
|
154
|
+
Data Loader generates an error log CSV after each operation:
|
|
155
|
+
- Success file: `<operation>_success_<timestamp>.csv`
|
|
156
|
+
- Error file: `<operation>_error_<timestamp>.csv`
|
|
157
|
+
|
|
158
|
+
Always review the error file after operations. Common errors:
|
|
159
|
+
- `REQUIRED_FIELD_MISSING` — required field not in CSV
|
|
160
|
+
- `INVALID_FIELD_FOR_INSERT_UPDATE` — read-only field included
|
|
161
|
+
- `STRING_TOO_LONG` — value exceeds field max length
|
|
162
|
+
- `INVALID_ID_FIELD` — malformed record ID
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Data Loader Export Query Templates
|
|
167
|
+
|
|
168
|
+
### Export before mass update (backup)
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
SELECT Id, OwnerId, Name, StageName, CloseDate, Amount, LastModifiedDate
|
|
172
|
+
FROM Opportunity
|
|
173
|
+
WHERE OwnerId = '<target_user_id>'
|
|
174
|
+
ORDER BY Id
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Export stale records before close
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
SELECT Id, Name, StageName, CloseDate, OwnerId, Amount, Account.Name
|
|
181
|
+
FROM Opportunity
|
|
182
|
+
WHERE IsClosed = false
|
|
183
|
+
AND CloseDate < LAST_N_DAYS:90
|
|
184
|
+
ORDER BY CloseDate ASC
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Export duplicate leads by email
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
SELECT Id, FirstName, LastName, Email, Company, Status, CreatedDate
|
|
191
|
+
FROM Lead
|
|
192
|
+
WHERE Email != null
|
|
193
|
+
AND IsConverted = false
|
|
194
|
+
ORDER BY Email, CreatedDate
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Relationship Field Mapping in Data Loader
|
|
200
|
+
|
|
201
|
+
To set a relationship field using an external ID (not Salesforce ID):
|
|
202
|
+
|
|
203
|
+
| Lookup field | External ID syntax | Example |
|
|
204
|
+
|---|---|---|
|
|
205
|
+
| AccountId | `AccountId:Account:External_ID__c` | `AccountId:Account:HubSpot_Acct_ID__c` |
|
|
206
|
+
| OwnerId | `OwnerId:User:Username` | `OwnerId:User:Username` (use username string) |
|
|
207
|
+
| RecordTypeId | `RecordTypeId:RecordType:DeveloperName` | `RecordTypeId:RecordType:DeveloperName` |
|
|
208
|
+
|
|
209
|
+
This syntax is supported in Data Loader upsert operations only.
|