@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
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: salesforce-apex-test-runner-skill
|
|
3
|
+
description: "Executes Apex tests against a connected SANDBOX org via sf apex run test, parses results and coverage delta, identifies failures with stack traces, and suggests fixes. T1 read-only runtime (sandbox-only). Production org targets are HARD REFUSED before any API call. TRIGGER when: user wants to run Apex tests, execute a test class, check test coverage, diagnose test failures, or validate coverage before deployment. Trigger phrases: run apex tests, execute test class, test my changes, check test coverage, why is my test failing. DO NOT TRIGGER when: user needs to generate test classes (use salesforce-apex-test-generator-skill), debug without running tests (use salesforce-apex-log-analyzer-skill), static code review of test code (use salesforce-apex-lwc-code-review-skill), or user needs a deployment (use salesforce-deployment-validator-skill)."
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash(sf apex run test:*) Bash(sf org display:*) Bash(sf apex get test:*) Read Grep Glob
|
|
6
|
+
metadata:
|
|
7
|
+
author: "github: Raishin"
|
|
8
|
+
version: "0.1.0"
|
|
9
|
+
updated: "2026-05-21"
|
|
10
|
+
category: operational
|
|
11
|
+
lifecycle: experimental
|
|
12
|
+
execution_tier: read-only-runtime
|
|
13
|
+
mcp_servers: []
|
|
14
|
+
oauth_scopes: ["api", "refresh_token"]
|
|
15
|
+
run_as_permissions:
|
|
16
|
+
required: ["View Setup and Configuration", "View All Data (sandbox-only)"]
|
|
17
|
+
denied: ["ModifyAllData", "ViewEncryptedData", "ModifyMetadata", "AuthorApex", "ManageConnectedApps"]
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# salesforce-apex-test-runner-skill
|
|
21
|
+
|
|
22
|
+
T1 read-only runtime skill for Apex test execution against a connected **sandbox** org.
|
|
23
|
+
This skill runs tests, reads coverage, and diagnoses failures — it does not write code,
|
|
24
|
+
deploy metadata, or touch production orgs. The **View All Data** permission is required
|
|
25
|
+
by `sf apex run test` per Salesforce platform behavior; this permission must be granted
|
|
26
|
+
only on the sandbox-only service account and NEVER on a production-eligible account.
|
|
27
|
+
|
|
28
|
+
## When This Skill Owns the Task
|
|
29
|
+
|
|
30
|
+
Use `salesforce-apex-test-runner-skill` when the work requires **live test execution**:
|
|
31
|
+
|
|
32
|
+
- "Run the AccountServiceTest class in my sandbox"
|
|
33
|
+
- "Execute all local tests before deployment"
|
|
34
|
+
- "My test is failing with a governor limit error — run it and show me the stack trace"
|
|
35
|
+
- "Check code coverage for the Order trigger after my last change"
|
|
36
|
+
- "Run specific test methods: AccountServiceTest.testBulkSuccess"
|
|
37
|
+
|
|
38
|
+
**Delegate elsewhere when:**
|
|
39
|
+
|
|
40
|
+
| Situation | Skill to use |
|
|
41
|
+
|---|---|
|
|
42
|
+
| User needs test classes authored | `salesforce-apex-test-generator-skill` |
|
|
43
|
+
| User needs production Apex authored | `salesforce-apex-generator-skill` |
|
|
44
|
+
| Debug log analysis without running | `salesforce-apex-log-analyzer-skill` |
|
|
45
|
+
| Static code review of test code | `salesforce-apex-lwc-code-review-skill` |
|
|
46
|
+
| Sandbox deploy and validate | `salesforce-deployment-validator-skill` |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Required Context to Gather First
|
|
51
|
+
|
|
52
|
+
Before running any tests, confirm:
|
|
53
|
+
|
|
54
|
+
1. **Target org alias** — the `--target-org` value from `sf org list`. Never accept a raw
|
|
55
|
+
instance URL or session token.
|
|
56
|
+
2. **Org type** — must be sandbox. If production, **stop immediately** (see HARD REFUSAL).
|
|
57
|
+
3. **Test scope** — specific class names, specific method names, or test level
|
|
58
|
+
(`RunLocalTests`, `RunAllTestsInOrg`, `RunSpecifiedTests`).
|
|
59
|
+
4. **Coverage threshold** — default 75% per Salesforce deployment requirement; note if higher.
|
|
60
|
+
5. **Goal** — diagnosis only, or diagnosis + fix loop?
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Recommended Workflow
|
|
65
|
+
|
|
66
|
+
### Step 1 — Verify org alias and type
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
sf org display --target-org <alias>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Parse output for `instanceUrl` and check for sandbox indicators in the domain
|
|
73
|
+
(`.sandbox.`, `.cs`, `.scratch.`, `.scratch.salesforce.com`). If `instanceUrl` contains
|
|
74
|
+
`login.salesforce.com` or `<companyname>.my.salesforce.com` without sandbox indicators,
|
|
75
|
+
**treat as production and stop**.
|
|
76
|
+
|
|
77
|
+
### Step 2 — Confirm Connected App allowlist
|
|
78
|
+
|
|
79
|
+
The Connected App used by the Run As service account must have the target org alias
|
|
80
|
+
explicitly in its allowlist. If the allowlist cannot be confirmed, stop and request
|
|
81
|
+
the Connected App administrator verify the configuration.
|
|
82
|
+
|
|
83
|
+
### Step 3 — Run the targeted test set
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
sf apex run test \
|
|
87
|
+
--test-level RunSpecifiedTests \
|
|
88
|
+
--tests <TestClassName1> <TestClassName2> \
|
|
89
|
+
--target-org <alias> \
|
|
90
|
+
--result-format json \
|
|
91
|
+
--wait 10
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
For broader coverage checks:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
sf apex run test \
|
|
98
|
+
--test-level RunLocalTests \
|
|
99
|
+
--target-org <alias> \
|
|
100
|
+
--result-format json \
|
|
101
|
+
--wait 30
|
|
102
|
+
--code-coverage
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Step 4 — Retrieve results if async
|
|
106
|
+
|
|
107
|
+
If the run was async (no `--wait` or timeout exceeded):
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
sf apex get test \
|
|
111
|
+
--test-run-id <id> \
|
|
112
|
+
--target-org <alias> \
|
|
113
|
+
--result-format json \
|
|
114
|
+
--code-coverage
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Step 5 — Parse results
|
|
118
|
+
|
|
119
|
+
From the JSON output, extract:
|
|
120
|
+
- **Pass count / fail count / skip count**
|
|
121
|
+
- **Overall code coverage percentage** (target: >= 75%)
|
|
122
|
+
- **Per-class coverage** — identify classes below threshold
|
|
123
|
+
- **Failing test methods** — extract `methodName`, `message`, `stackTrace`
|
|
124
|
+
- **Governor limit hits** — scan message for "Limit" patterns
|
|
125
|
+
|
|
126
|
+
### Step 6 — Diagnose failures
|
|
127
|
+
|
|
128
|
+
Consult `references/failure-diagnosis.md` for common patterns:
|
|
129
|
+
- `DML in @TestSetup` restrictions
|
|
130
|
+
- Governor limit errors in test context
|
|
131
|
+
- `CalloutException` — missing mock
|
|
132
|
+
- `QueryException` — data isolation issue (SeeAllData mis-use)
|
|
133
|
+
- Async result not visible — missing `Test.startTest` / `Test.stopTest`
|
|
134
|
+
|
|
135
|
+
### Step 7 — Emit sanitized results with audit envelope
|
|
136
|
+
|
|
137
|
+
Apply redaction rules (see Redaction Rules section) before emitting any output.
|
|
138
|
+
Emit the full audit envelope regardless of pass/fail outcome.
|
|
139
|
+
|
|
140
|
+
### Step 8 — Recommend next steps
|
|
141
|
+
|
|
142
|
+
If failures found: recommend `salesforce-apex-test-generator-skill` for test corrections
|
|
143
|
+
or `salesforce-apex-log-analyzer-skill` for deeper log analysis.
|
|
144
|
+
If coverage below threshold: identify which classes are uncovered and recommend targeted
|
|
145
|
+
test generation.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Quality Scoring Rubric (100-point)
|
|
150
|
+
|
|
151
|
+
Score the test run and analysis before presenting. Threshold: 80+ acceptable.
|
|
152
|
+
|
|
153
|
+
| Dimension | Points | What earns full marks |
|
|
154
|
+
|---|---|---|
|
|
155
|
+
| **Test selection appropriateness** | 25 | Scope matches the user's goal; RunSpecifiedTests used for targeted runs; RunLocalTests for pre-deploy coverage |
|
|
156
|
+
| **Sandbox-only enforcement** | 25 | **CRITICAL gate** — org type verified as sandbox before any API call; HARD REFUSAL triggered for production targets |
|
|
157
|
+
| **Coverage analysis** | 20 | Coverage percentage computed and compared to 75% threshold; per-class breakdown provided; uncovered classes named |
|
|
158
|
+
| **Failure diagnosis quality** | 20 | Failures categorized by type; stack trace excerpted; remediation suggested from failure-diagnosis reference |
|
|
159
|
+
| **Audit envelope** | 10 | All required audit fields present; timestamp accurate; org type verified field populated |
|
|
160
|
+
|
|
161
|
+
**Scoring penalties:**
|
|
162
|
+
- Sandbox check skipped: score voided (immediate HARD REFUSAL required)
|
|
163
|
+
- No coverage analysis when `--code-coverage` was available: -20
|
|
164
|
+
- Failures reported without diagnosis: -15
|
|
165
|
+
- Missing audit envelope: -15 (automatic caveat regardless of total)
|
|
166
|
+
- Org type not verified before execution: -25
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## T1 Least-Privilege Contract
|
|
171
|
+
|
|
172
|
+
This skill operates at T1 — read-only runtime (sandbox only).
|
|
173
|
+
|
|
174
|
+
- **OAuth scopes:** `api` and `refresh_token` only. No `full`, `web`, `sfap_api`, or other scopes.
|
|
175
|
+
- **Run As account permissions:**
|
|
176
|
+
- REQUIRED: `View Setup and Configuration`, `View All Data` (**sandbox service account only**)
|
|
177
|
+
- DENIED: `ModifyAllData`, `ViewEncryptedData`, `ModifyMetadata`, `AuthorApex`, `ManageConnectedApps`
|
|
178
|
+
- **View All Data — important note:** The `sf apex run test` command requires the `View All Data`
|
|
179
|
+
system permission for the running user per Salesforce platform behavior. This is why the Run As
|
|
180
|
+
service account for this skill must be a **sandbox-only** account. This permission must NEVER
|
|
181
|
+
be granted on an account used for production org access.
|
|
182
|
+
- **No code mutation:** This skill reads test results and coverage data. It does not write,
|
|
183
|
+
deploy, modify metadata, or create records outside of test context.
|
|
184
|
+
- **Org allowlist:** Connected App enforces which aliases are reachable. Skill verifies org
|
|
185
|
+
type before executing any `sf apex` command.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## HARD REFUSAL — Production Org Targets
|
|
190
|
+
|
|
191
|
+
**If the target org is identified as production, stop immediately and do not execute any
|
|
192
|
+
`sf apex` command.**
|
|
193
|
+
|
|
194
|
+
Production refusal response:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
HARD REFUSAL: Apex test execution is not permitted on production orgs via this skill.
|
|
198
|
+
|
|
199
|
+
Reason: salesforce-apex-test-runner-skill operates at T1 sandbox-only scope. The
|
|
200
|
+
View All Data system permission required by sf apex run test must never be granted
|
|
201
|
+
on a production-eligible service account. Production Apex test runs also carry risk
|
|
202
|
+
of long-running test locks affecting live users.
|
|
203
|
+
|
|
204
|
+
Action required:
|
|
205
|
+
1. Identify a sandbox org alias for this test run.
|
|
206
|
+
2. Verify the Connected App allowlist includes the sandbox alias.
|
|
207
|
+
3. Re-invoke this skill with the sandbox alias.
|
|
208
|
+
|
|
209
|
+
If a production test run is genuinely required (e.g., for a post-deployment verification),
|
|
210
|
+
route through the human approval path via salesforce-live-guard-agent.
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Audit Envelope Schema
|
|
216
|
+
|
|
217
|
+
Every execution emits an audit envelope. Emit even on HARD REFUSAL.
|
|
218
|
+
|
|
219
|
+
```yaml
|
|
220
|
+
audit_envelope:
|
|
221
|
+
matter_id: "<caller-provided-or-generated-uuid>"
|
|
222
|
+
skill_id: "salesforce-apex-test-runner-skill"
|
|
223
|
+
skill_version: "0.1.0"
|
|
224
|
+
target_org_alias: "<alias>"
|
|
225
|
+
run_as_user_id: "<user_id_placeholder>"
|
|
226
|
+
org_type_verified: "sandbox | production | unknown"
|
|
227
|
+
test_run_id: "<sf-apex-run-test-id or 'refused'>"
|
|
228
|
+
test_level: "<RunSpecifiedTests | RunLocalTests | RunAllTestsInOrg | refused>"
|
|
229
|
+
tests_requested: ["<ClassName.methodName or ClassName>"]
|
|
230
|
+
pass_count: <integer>
|
|
231
|
+
fail_count: <integer>
|
|
232
|
+
skip_count: <integer>
|
|
233
|
+
overall_coverage_pct: <float or null>
|
|
234
|
+
timestamp: "<ISO-8601-UTC>"
|
|
235
|
+
refusal_reason: "<reason if refused | null>"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Output Format
|
|
241
|
+
|
|
242
|
+
```yaml
|
|
243
|
+
verdict: "pass | fail | refused"
|
|
244
|
+
quality_score: <0-100>
|
|
245
|
+
quality_notes: "<scoring rationale>"
|
|
246
|
+
|
|
247
|
+
test_summary:
|
|
248
|
+
org_alias: "<alias>"
|
|
249
|
+
org_type: "sandbox | production | unknown"
|
|
250
|
+
test_level: "<level used>"
|
|
251
|
+
pass_count: <integer>
|
|
252
|
+
fail_count: <integer>
|
|
253
|
+
skip_count: <integer>
|
|
254
|
+
overall_coverage_pct: <float>
|
|
255
|
+
coverage_threshold_met: true | false
|
|
256
|
+
|
|
257
|
+
failing_tests:
|
|
258
|
+
- test: "<ClassName.methodName>"
|
|
259
|
+
message: "<error message>"
|
|
260
|
+
stack_trace_excerpt: "<first 3-5 lines>"
|
|
261
|
+
diagnosis: "<category from failure-diagnosis.md>"
|
|
262
|
+
suggested_fix: "<specific remediation>"
|
|
263
|
+
|
|
264
|
+
coverage_gaps:
|
|
265
|
+
- class: "<ClassName>"
|
|
266
|
+
coverage_pct: <float>
|
|
267
|
+
suggested_action: "<add tests for X method>"
|
|
268
|
+
|
|
269
|
+
audit_envelope:
|
|
270
|
+
<see Audit Envelope Schema>
|
|
271
|
+
|
|
272
|
+
next_steps:
|
|
273
|
+
- "<if failures: salesforce-apex-test-generator-skill for test fixes>"
|
|
274
|
+
- "<if coverage gaps: salesforce-apex-test-generator-skill for additional tests>"
|
|
275
|
+
- "<if ready: salesforce-deployment-validator-skill for sandbox deploy>"
|
|
276
|
+
|
|
277
|
+
assumptions:
|
|
278
|
+
- "<explicit list>"
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Redaction Rules
|
|
284
|
+
|
|
285
|
+
Apply in order before emitting any output:
|
|
286
|
+
|
|
287
|
+
1. **OAuth tokens, refresh tokens, session IDs:** Never include in any output. Strip from CLI output.
|
|
288
|
+
2. **Salesforce Org IDs (18-char starting with `00D`):** Replace with `<org_id_placeholder>`.
|
|
289
|
+
3. **Salesforce Record IDs (15/18-char):** Replace with `<record_id_placeholder>` in output.
|
|
290
|
+
4. **User IDs (OwnerId, CreatedById, RunningUserId, User.Id):** Replace with `<user_id_placeholder>`.
|
|
291
|
+
5. **Test run IDs:** Retain in audit envelope (non-sensitive); redact from narrative output.
|
|
292
|
+
6. **Stack trace class names and line numbers:** Retain — needed for diagnosis. Do not redact.
|
|
293
|
+
7. **Exception messages:** Retain — needed for diagnosis. If message contains a Salesforce ID,
|
|
294
|
+
replace the ID but retain the rest of the message.
|
|
295
|
+
8. **Instance URLs and API endpoints:** Omit from output; reference only the org alias.
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Handoff Rules
|
|
300
|
+
|
|
301
|
+
| Finding | Hand off to |
|
|
302
|
+
|---|---|
|
|
303
|
+
| Test failures needing code fixes | `salesforce-apex-test-generator-skill` |
|
|
304
|
+
| Coverage gaps needing new test methods | `salesforce-apex-test-generator-skill` |
|
|
305
|
+
| Log-level failure requiring debug analysis | `salesforce-apex-log-analyzer-skill` |
|
|
306
|
+
| All tests pass with coverage met | `salesforce-deployment-validator-skill` |
|
|
307
|
+
| Production target attempted | `salesforce-live-guard-agent` (human approval path) |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Stop Conditions
|
|
312
|
+
|
|
313
|
+
Stop and do not continue if:
|
|
314
|
+
|
|
315
|
+
- Org type cannot be determined from `sf org display` output — stop, request clarification.
|
|
316
|
+
- Org type is production — HARD REFUSAL (see above), stop.
|
|
317
|
+
- The Run As account is missing `View Setup and Configuration` — stop and escalate to org administrator.
|
|
318
|
+
- The audit envelope cannot be populated (missing matter_id, org alias unresolvable) — stop.
|
|
319
|
+
- The user requests redaction to be skipped — stop and explain the policy.
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Security Notes
|
|
324
|
+
|
|
325
|
+
- **Sandbox-only:** Production org targets are hard-refused before any API call. The Connected App
|
|
326
|
+
allowlist enforces this at the platform level as a second control.
|
|
327
|
+
- **View All Data — sandbox-only account:** The `View All Data` system permission required by
|
|
328
|
+
`sf apex run test` must exist only on the sandbox-only Run As service account. Separation from
|
|
329
|
+
any production-eligible account is mandatory.
|
|
330
|
+
- **Read-only runtime:** No DML, no metadata mutation, no code deployment, no record creation
|
|
331
|
+
outside Apex test context (which is isolated and rolled back by the platform).
|
|
332
|
+
- **Sanitized output:** All Salesforce IDs, user IDs, and OAuth tokens redacted before emission.
|
|
333
|
+
- **Structured audit:** Every execution produces a complete audit envelope, including refusals.
|
|
334
|
+
- **Revocable:** Rotating the Run As sandbox account's refresh token immediately revokes all access.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Reference File Index
|
|
339
|
+
|
|
340
|
+
| File | When to read |
|
|
341
|
+
|---|---|
|
|
342
|
+
| `references/cli-commands.md` | sf apex run test variants, --test-level options, --result-format, --wait, async retrieval |
|
|
343
|
+
| `references/coverage-analysis.md` | Coverage percentage interpretation, 75% requirement, line vs branch coverage, per-class gap analysis |
|
|
344
|
+
| `references/failure-diagnosis.md` | Common Apex test failure patterns: DML on setup, governor limits, callouts in tests, async test gotchas |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "salesforce-apex-test-runner-skill",
|
|
3
|
+
"name": "Salesforce Apex Test Runner Skill",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "salesforce",
|
|
6
|
+
"harnesses": ["claude-code", "codex", "cursor", "gemini", "kiro", "other"],
|
|
7
|
+
"summary": "Executes Apex tests against a connected sandbox org via sf apex run test, parses results and coverage delta, identifies failures with stack traces, and suggests fixes. T1 read-only runtime (sandbox-only). Production org targets are hard-refused before any API call. View All Data permission is required by sf apex run test and must exist only on the sandbox-only Run As service account.",
|
|
8
|
+
"source_type": "adapted",
|
|
9
|
+
"source_attribution": "Adapted from forcedotcom/sf-skills running-apex-tests (Apache-2.0). Vanguard-specific additions: T1 tier declaration, sandbox-only hard refusal, View All Data sandbox-account isolation note, structured audit envelope, redaction rules, and handoff routing model.",
|
|
10
|
+
"category": "operational",
|
|
11
|
+
"execution_tier": "read-only-runtime",
|
|
12
|
+
"oauth_scopes": ["api", "refresh_token"],
|
|
13
|
+
"mcp_servers": [],
|
|
14
|
+
"run_as_permissions": {
|
|
15
|
+
"required": ["View Setup and Configuration", "View All Data (sandbox-only)"],
|
|
16
|
+
"denied": [
|
|
17
|
+
"ModifyAllData",
|
|
18
|
+
"ViewEncryptedData",
|
|
19
|
+
"ModifyMetadata",
|
|
20
|
+
"AuthorApex",
|
|
21
|
+
"ManageConnectedApps"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"sandbox_only": true,
|
|
25
|
+
"production_allowed": false,
|
|
26
|
+
"official_docs": [
|
|
27
|
+
"https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_apex_commands_unified.htm#cli_reference_apex_run_test_unified",
|
|
28
|
+
"https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing_code_coverage.htm",
|
|
29
|
+
"https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_testing.htm",
|
|
30
|
+
"https://help.salesforce.com/s/articleView?id=sf.connected_app_overview.htm"
|
|
31
|
+
],
|
|
32
|
+
"security_notes": "T1 read-only runtime. Sandbox-only — production org targets are hard-refused before any API call. The View All Data system permission required by sf apex run test must exist exclusively on the sandbox-only Run As service account and never on a production-eligible account. OAuth scopes restricted to api + refresh_token. No DML, no metadata mutation, no code deployment. All Salesforce IDs, user IDs, and OAuth tokens are redacted before output. Structured audit envelope emitted on every execution including refusals. Rotating the Run As sandbox account's refresh token immediately revokes all access.",
|
|
33
|
+
"last_verified": "2026-05-21",
|
|
34
|
+
"path": "skills/salesforce/salesforce-apex-test-runner-skill",
|
|
35
|
+
"author": "github: Raishin",
|
|
36
|
+
"version": "0.1.0"
|
|
37
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# sf apex run test — CLI Commands Reference
|
|
2
|
+
|
|
3
|
+
Adapted from forcedotcom/sf-skills running-apex-tests references (Apache-2.0).
|
|
4
|
+
|
|
5
|
+
## Core Command: sf apex run test
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Run specific test classes
|
|
9
|
+
sf apex run test \
|
|
10
|
+
--test-level RunSpecifiedTests \
|
|
11
|
+
--tests AccountServiceTest ContactServiceTest \
|
|
12
|
+
--target-org <alias> \
|
|
13
|
+
--result-format json \
|
|
14
|
+
--wait 10
|
|
15
|
+
|
|
16
|
+
# Run specific test methods
|
|
17
|
+
sf apex run test \
|
|
18
|
+
--test-level RunSpecifiedTests \
|
|
19
|
+
--tests AccountServiceTest.testBulkUpdate AccountServiceTest.testNullIdThrows \
|
|
20
|
+
--target-org <alias> \
|
|
21
|
+
--result-format json \
|
|
22
|
+
--wait 10
|
|
23
|
+
|
|
24
|
+
# Run all local tests (pre-deploy coverage check)
|
|
25
|
+
sf apex run test \
|
|
26
|
+
--test-level RunLocalTests \
|
|
27
|
+
--target-org <alias> \
|
|
28
|
+
--result-format json \
|
|
29
|
+
--code-coverage \
|
|
30
|
+
--wait 30
|
|
31
|
+
|
|
32
|
+
# Run all tests including managed package tests (rarely needed)
|
|
33
|
+
sf apex run test \
|
|
34
|
+
--test-level RunAllTestsInOrg \
|
|
35
|
+
--target-org <alias> \
|
|
36
|
+
--result-format json \
|
|
37
|
+
--code-coverage \
|
|
38
|
+
--wait 60
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## --test-level Options
|
|
42
|
+
|
|
43
|
+
| Level | What runs | When to use |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `RunSpecifiedTests` | Only the named test classes/methods | Targeted debugging, single-class coverage |
|
|
46
|
+
| `RunLocalTests` | All tests in the org (not managed package tests) | Pre-deploy coverage check, full regression |
|
|
47
|
+
| `RunAllTestsInOrg` | All tests including managed packages | Rarely needed; very slow |
|
|
48
|
+
|
|
49
|
+
## Result Format Options
|
|
50
|
+
|
|
51
|
+
| Format | Use case |
|
|
52
|
+
|---|---|
|
|
53
|
+
| `json` | Machine-parseable; use for scripted analysis |
|
|
54
|
+
| `tap` | TAP protocol; use for CI integration |
|
|
55
|
+
| `junit` | JUnit XML; use for CI reporting systems |
|
|
56
|
+
| `human` | Readable; use for interactive sessions |
|
|
57
|
+
|
|
58
|
+
## Async Run (no --wait)
|
|
59
|
+
|
|
60
|
+
For long test suites, omit `--wait` to run asynchronously and retrieve results later:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Start async run
|
|
64
|
+
sf apex run test \
|
|
65
|
+
--test-level RunLocalTests \
|
|
66
|
+
--target-org <alias> \
|
|
67
|
+
--result-format json
|
|
68
|
+
# Output includes: "testRunId": "707Xx000001ABCDEF"
|
|
69
|
+
|
|
70
|
+
# Retrieve results when ready
|
|
71
|
+
sf apex get test \
|
|
72
|
+
--test-run-id 707Xx000001ABCDEF \
|
|
73
|
+
--target-org <alias> \
|
|
74
|
+
--result-format json \
|
|
75
|
+
--code-coverage
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Org Verification Commands
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Verify org alias and type
|
|
82
|
+
sf org display --target-org <alias>
|
|
83
|
+
# Check: instanceUrl (sandbox vs prod), connectedStatus, username
|
|
84
|
+
|
|
85
|
+
# List all available orgs
|
|
86
|
+
sf org list
|
|
87
|
+
# Shows all authenticated orgs with type and alias
|
|
88
|
+
|
|
89
|
+
# Check org limits
|
|
90
|
+
sf org display --target-org <alias> --json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Parsing JSON Results
|
|
94
|
+
|
|
95
|
+
Key fields in the JSON output:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"result": {
|
|
100
|
+
"summary": {
|
|
101
|
+
"outcome": "Passed | Failed",
|
|
102
|
+
"testsRan": 42,
|
|
103
|
+
"passing": 40,
|
|
104
|
+
"failing": 2,
|
|
105
|
+
"skipped": 0,
|
|
106
|
+
"passRate": "95%",
|
|
107
|
+
"failRate": "5%",
|
|
108
|
+
"testStartTime": "2026-05-21T12:00:00.000Z",
|
|
109
|
+
"testExecutionTime": "12345 ms",
|
|
110
|
+
"testTotalTime": "12500 ms",
|
|
111
|
+
"orgId": "00DXx000001ABCDEF",
|
|
112
|
+
"username": "deploy@myorg.sandbox"
|
|
113
|
+
},
|
|
114
|
+
"tests": [
|
|
115
|
+
{
|
|
116
|
+
"id": "07MXx000001ABCDEF",
|
|
117
|
+
"queueItemId": "7091X000002ABCDEF",
|
|
118
|
+
"stackTrace": "Class.AccountService.updateIndustry: line 45, column 1\nClass.AccountServiceTest.testBulkUpdate: line 22, column 1",
|
|
119
|
+
"message": "System.LimitException: Too many SOQL queries: 101",
|
|
120
|
+
"asyncApexJobId": "707Xx000001ABCDEF",
|
|
121
|
+
"methodName": "testBulkUpdate",
|
|
122
|
+
"outcome": "Fail",
|
|
123
|
+
"apexClass": {
|
|
124
|
+
"id": "01pXx000001ABCDEF",
|
|
125
|
+
"name": "AccountServiceTest",
|
|
126
|
+
"namespacePrefix": null
|
|
127
|
+
},
|
|
128
|
+
"runTime": 1234,
|
|
129
|
+
"testTimestamp": "2026-05-21T12:00:05.000Z",
|
|
130
|
+
"fullName": "AccountServiceTest.testBulkUpdate"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"codecoverage": [
|
|
134
|
+
{
|
|
135
|
+
"id": "01pXx000001ABCDEF",
|
|
136
|
+
"name": "AccountService",
|
|
137
|
+
"type": "Class",
|
|
138
|
+
"numLinesCovered": 45,
|
|
139
|
+
"numLinesUncovered": 5,
|
|
140
|
+
"coveredPercent": 90
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Coverage Analysis via jq
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Extract overall pass/fail summary
|
|
151
|
+
sf apex run test --test-level RunLocalTests --target-org <alias> --result-format json \
|
|
152
|
+
| jq '.result.summary | {outcome, passing, failing, passRate}'
|
|
153
|
+
|
|
154
|
+
# Find classes below 75% coverage
|
|
155
|
+
sf apex run test --test-level RunLocalTests --target-org <alias> --result-format json --code-coverage \
|
|
156
|
+
| jq '[.result.codecoverage[] | select(.coveredPercent < 75) | {name, coveredPercent}]'
|
|
157
|
+
|
|
158
|
+
# Extract failing test details
|
|
159
|
+
sf apex run test --test-level RunSpecifiedTests --tests MyClass --target-org <alias> \
|
|
160
|
+
--result-format json \
|
|
161
|
+
| jq '[.result.tests[] | select(.outcome == "Fail") | {fullName, message, stackTrace}]'
|
|
162
|
+
```
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Apex Code Coverage Analysis Reference
|
|
2
|
+
|
|
3
|
+
Adapted from forcedotcom/sf-skills running-apex-tests references (Apache-2.0).
|
|
4
|
+
|
|
5
|
+
## The 75% Rule
|
|
6
|
+
|
|
7
|
+
Salesforce requires 75% aggregate code coverage across all Apex classes and triggers
|
|
8
|
+
(excluding test classes) for deployment to production. This is a deployment gate —
|
|
9
|
+
failing this threshold blocks all production deployments.
|
|
10
|
+
|
|
11
|
+
**Key facts:**
|
|
12
|
+
- 75% applies to the **aggregate** across all classes, not each class individually
|
|
13
|
+
- However, any single class below 75% may still block if that class is in the deployment
|
|
14
|
+
- Triggers must have at least 1% coverage (at least one line covered) to deploy
|
|
15
|
+
- Classes with 0% coverage block deployment if they are included in the deployment package
|
|
16
|
+
|
|
17
|
+
## Coverage Report Interpretation
|
|
18
|
+
|
|
19
|
+
From `sf apex run test --code-coverage --result-format json`:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"codecoverage": [
|
|
24
|
+
{
|
|
25
|
+
"name": "AccountService",
|
|
26
|
+
"numLinesCovered": 45,
|
|
27
|
+
"numLinesUncovered": 5,
|
|
28
|
+
"coveredPercent": 90,
|
|
29
|
+
"uncoveredLines": [23, 45, 67, 89, 102]
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- `coveredPercent` = `numLinesCovered / (numLinesCovered + numLinesUncovered) * 100`
|
|
36
|
+
- `uncoveredLines` — line numbers not executed by any test; these are the gaps to fill
|
|
37
|
+
|
|
38
|
+
## Coverage Gap Triage
|
|
39
|
+
|
|
40
|
+
When a class is below threshold, identify the gap type:
|
|
41
|
+
|
|
42
|
+
| Gap type | Description | Fix strategy |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| **Exception path uncovered** | Try/catch blocks with no test for the catch | Add negative test that triggers the exception |
|
|
45
|
+
| **Bulk path uncovered** | Code only reached with > 200 records | Add bulk test method |
|
|
46
|
+
| **Conditional branch uncovered** | else/if branch never executed | Add test for each conditional branch |
|
|
47
|
+
| **Async path uncovered** | Queueable/Batch execute never called | Add async test with Test.startTest/stopTest |
|
|
48
|
+
| **Early return uncovered** | Guard clause never triggered | Add test with invalid/null input |
|
|
49
|
+
|
|
50
|
+
## Line vs Branch Coverage
|
|
51
|
+
|
|
52
|
+
Salesforce reports **line coverage** (not branch coverage). A line is "covered" if it
|
|
53
|
+
was executed at least once by any test. This means:
|
|
54
|
+
|
|
55
|
+
- An if/else on one line may show as covered even if only one branch was taken
|
|
56
|
+
- 100% line coverage does not guarantee all code paths are tested
|
|
57
|
+
- Aim for explicit positive + negative + bulk tests to cover both branches even if
|
|
58
|
+
line coverage shows 100%
|
|
59
|
+
|
|
60
|
+
## Per-Class Coverage Thresholds
|
|
61
|
+
|
|
62
|
+
| Coverage | Status |
|
|
63
|
+
|---|---|
|
|
64
|
+
| >= 90% | Excellent — deploy with confidence |
|
|
65
|
+
| 75–89% | Acceptable — at or above deployment threshold |
|
|
66
|
+
| 50–74% | Warning — below deployment threshold; gaps likely in exception/bulk paths |
|
|
67
|
+
| < 50% | Critical — significant coverage gaps; deployment will likely fail |
|
|
68
|
+
| 0% | Blocker — class will prevent deployment if included in the package |
|
|
69
|
+
|
|
70
|
+
## Identifying Uncovered Lines
|
|
71
|
+
|
|
72
|
+
After a test run, retrieve specific uncovered lines:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
sf apex get test \
|
|
76
|
+
--test-run-id <id> \
|
|
77
|
+
--target-org <alias> \
|
|
78
|
+
--result-format json \
|
|
79
|
+
--code-coverage \
|
|
80
|
+
| jq '[.result.codecoverage[] | {name, coveredPercent, uncoveredLines}]'
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Then read the class file to identify which code paths the uncovered lines correspond to:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Find the class file and check uncovered lines
|
|
87
|
+
grep -n "." force-app/main/default/classes/AccountService.cls | sed -n '23p;45p;67p'
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Coverage Strategy Recommendations
|
|
91
|
+
|
|
92
|
+
For each class below 75%:
|
|
93
|
+
|
|
94
|
+
1. **Check test class exists** — if no test class exists, generate one with
|
|
95
|
+
`salesforce-apex-test-generator-skill`
|
|
96
|
+
2. **Check for async paths** — if Queueable/Batch methods are present, verify
|
|
97
|
+
`Test.startTest` / `Test.stopTest` wraps the enqueue call in tests
|
|
98
|
+
3. **Check exception paths** — add tests that trigger catch blocks
|
|
99
|
+
4. **Check bulk path** — add a test with 201+ records if trigger-context logic exists
|
|
100
|
+
5. **Check conditional branches** — identify if/else and add tests for each branch
|
|
101
|
+
|
|
102
|
+
## Coverage in CI/CD Context
|
|
103
|
+
|
|
104
|
+
For pre-deployment validation with `salesforce-deployment-validator-skill`:
|
|
105
|
+
- Use `--test-level RunLocalTests --code-coverage` to measure full org coverage
|
|
106
|
+
- Set a stricter internal threshold (80-85%) to provide buffer above the 75% hard limit
|
|
107
|
+
- Track per-class coverage trends across deployments to catch regressions early
|