@raishin/vanguard-frontier-agentic 2.3.0 → 2.6.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/.agents/tasks/task-dynamic-kiro-powers/2025-01-24-120000-review.md +92 -0
- package/.agents/tasks/task-dynamic-kiro-powers/context.json +22 -0
- package/.agents/tasks/task-dynamic-kiro-powers/features/FEAT-001.json +34 -0
- package/.agents/tasks/task-dynamic-kiro-powers/task.json +14 -0
- 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 +17 -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 +2257 -332
- package/catalog/install-roles.json +68 -0
- package/catalog/skill-manifest.json +1040 -155
- package/catalog/skills.json +1242 -262
- package/package.json +5 -2
- package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +3 -2
- package/plugins/vanguard-frontier-agentic/skills/vanguard-frontier-agentic-install/SKILL.md +37 -0
- package/powers/README.md +28 -10
- package/powers/vanguard-argocd/POWER.md +40 -0
- package/powers/vanguard-backstage/POWER.md +40 -0
- package/powers/vanguard-cert-manager/POWER.md +40 -0
- package/powers/vanguard-cilium/POWER.md +40 -0
- package/powers/vanguard-dotnet/POWER.md +41 -0
- package/powers/vanguard-falco/POWER.md +40 -0
- package/powers/vanguard-fluxcd/POWER.md +40 -0
- package/powers/vanguard-generic/POWER.md +40 -0
- package/powers/vanguard-hr/POWER.md +41 -0
- package/powers/vanguard-istio/POWER.md +40 -0
- package/powers/vanguard-kyverno/POWER.md +40 -0
- package/powers/vanguard-legal/POWER.md +41 -0
- package/powers/vanguard-marketing/POWER.md +41 -0
- package/powers/vanguard-multi-cloud/POWER.md +41 -0
- package/powers/vanguard-opentelemetry/POWER.md +40 -0
- package/powers/vanguard-prometheus/POWER.md +40 -0
- package/powers/vanguard-salesforce/POWER.md +42 -0
- package/powers/vanguard-sigstore/POWER.md +40 -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 +43 -1
- package/scripts/generate-kiro-powers.mjs +372 -5
- package/scripts/install-codex-home.mjs +95 -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-codex-plugin-marketplace-install.test.mjs +132 -0
- package/tests/test-vfa-export-coverage.test.mjs +116 -4
- package/tests/validate-catalog.py +12 -1
- package/tests/validate-codex-marketplace.py +23 -1
- package/tests/validate-plugin-manifest.py +11 -1
package/skills/salesforce/salesforce-release-readiness-skill/references/test-coverage-strategy.md
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
# Test Coverage Strategy Reference
|
|
2
|
+
|
|
3
|
+
Patterns for achieving and maintaining meaningful Apex test coverage beyond
|
|
4
|
+
the Salesforce-mandated 75% threshold.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Coverage Thresholds
|
|
9
|
+
|
|
10
|
+
| Threshold | Significance |
|
|
11
|
+
|-----------|-------------|
|
|
12
|
+
| 75% | Salesforce deployment minimum — cannot deploy to production below this |
|
|
13
|
+
| 80% | Internal quality gate (common industry standard) |
|
|
14
|
+
| 85% | Recommended target for business-critical code |
|
|
15
|
+
| 90%+ | Target for payment processing, HIPAA, or PCI-regulated code paths |
|
|
16
|
+
|
|
17
|
+
Note: Coverage percentage measures executed lines — not assertion quality.
|
|
18
|
+
High coverage with zero assertions is worse than 75% coverage with meaningful assertions.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Test Class Organization
|
|
23
|
+
|
|
24
|
+
### Naming Convention
|
|
25
|
+
|
|
26
|
+
| Component Type | Test Class Name Pattern |
|
|
27
|
+
|----------------|------------------------|
|
|
28
|
+
| Apex Class: `AccountService.cls` | `AccountServiceTest.cls` |
|
|
29
|
+
| Apex Trigger: `AccountTrigger.trigger` | `AccountTriggerTest.cls` |
|
|
30
|
+
| Batch class: `AccountCleanupBatch.cls` | `AccountCleanupBatchTest.cls` |
|
|
31
|
+
| Queueable: `AccountSyncQueueable.cls` | `AccountSyncQueueableTest.cls` |
|
|
32
|
+
|
|
33
|
+
### File Structure
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
force-app/
|
|
37
|
+
main/
|
|
38
|
+
default/
|
|
39
|
+
classes/
|
|
40
|
+
AccountService.cls
|
|
41
|
+
AccountService.cls-meta.xml
|
|
42
|
+
AccountServiceTest.cls
|
|
43
|
+
AccountServiceTest.cls-meta.xml
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Tests must be in the same package/directory as the class they test for
|
|
47
|
+
proper coverage association.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Test Data Strategy
|
|
52
|
+
|
|
53
|
+
### Anti-Pattern: SeeAllData=true
|
|
54
|
+
|
|
55
|
+
```apex
|
|
56
|
+
// WRONG: SeeAllData makes tests dependent on org data
|
|
57
|
+
@isTest(SeeAllData=true)
|
|
58
|
+
public class AccountServiceTest {
|
|
59
|
+
@isTest
|
|
60
|
+
static void testGetAccount {
|
|
61
|
+
// Relies on prod data existing in org — fails in clean sandboxes
|
|
62
|
+
Account a = [SELECT Id FROM Account LIMIT 1];
|
|
63
|
+
// ...
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Acceptable uses of SeeAllData=true:**
|
|
69
|
+
- Reading Pricebook2 standard price book ID (legacy workaround).
|
|
70
|
+
- Accessing some Financial Services Cloud records in early development.
|
|
71
|
+
|
|
72
|
+
### Correct Pattern: @testSetup and Test Factory
|
|
73
|
+
|
|
74
|
+
```apex
|
|
75
|
+
@isTest
|
|
76
|
+
public class AccountServiceTest {
|
|
77
|
+
|
|
78
|
+
@testSetup
|
|
79
|
+
static void setup {
|
|
80
|
+
// Create all test data once for the entire test class
|
|
81
|
+
Account testAccount = new Account(
|
|
82
|
+
Name = 'Test Corp',
|
|
83
|
+
BillingCity = 'San Francisco',
|
|
84
|
+
BillingState = 'CA',
|
|
85
|
+
Industry = 'Technology'
|
|
86
|
+
);
|
|
87
|
+
insert testAccount;
|
|
88
|
+
|
|
89
|
+
Contact testContact = new Contact(
|
|
90
|
+
AccountId = testAccount.Id,
|
|
91
|
+
FirstName = 'Test',
|
|
92
|
+
LastName = 'User',
|
|
93
|
+
Email = 'test@example.test'
|
|
94
|
+
);
|
|
95
|
+
insert testContact;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@isTest
|
|
99
|
+
static void testGetAccount_returnsAccount {
|
|
100
|
+
// Arrange
|
|
101
|
+
Account testAccount = [SELECT Id FROM Account WHERE Name = 'Test Corp' LIMIT 1];
|
|
102
|
+
|
|
103
|
+
// Act
|
|
104
|
+
Test.startTest;
|
|
105
|
+
Account result = AccountService.getAccount(testAccount.Id);
|
|
106
|
+
Test.stopTest;
|
|
107
|
+
|
|
108
|
+
// Assert
|
|
109
|
+
System.assertNotEquals(null, result, 'Result should not be null');
|
|
110
|
+
System.assertEquals('Test Corp', result.Name, 'Account name should match');
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Test Factory Pattern
|
|
116
|
+
|
|
117
|
+
For orgs with complex objects and many test classes, a shared test factory
|
|
118
|
+
prevents code duplication and ensures consistent test data:
|
|
119
|
+
|
|
120
|
+
```apex
|
|
121
|
+
@isTest
|
|
122
|
+
public class TestDataFactory {
|
|
123
|
+
|
|
124
|
+
public static Account createAccount(String name) {
|
|
125
|
+
return createAccount(name, true);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
public static Account createAccount(String name, Boolean doInsert) {
|
|
129
|
+
Account a = new Account(
|
|
130
|
+
Name = name,
|
|
131
|
+
BillingStreet = '123 Test Street',
|
|
132
|
+
BillingCity = 'San Francisco',
|
|
133
|
+
BillingState = 'CA',
|
|
134
|
+
BillingPostalCode = '94105',
|
|
135
|
+
BillingCountry = 'US',
|
|
136
|
+
Phone = '+1-555-0100'
|
|
137
|
+
);
|
|
138
|
+
if (doInsert) insert a;
|
|
139
|
+
return a;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public static Contact createContact(Id accountId, String lastName) {
|
|
143
|
+
Contact c = new Contact(
|
|
144
|
+
AccountId = accountId,
|
|
145
|
+
FirstName = 'Test',
|
|
146
|
+
LastName = lastName,
|
|
147
|
+
Email = lastName.toLowerCase + '@example.test'
|
|
148
|
+
);
|
|
149
|
+
insert c;
|
|
150
|
+
return c;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Coverage by Code Path Type
|
|
158
|
+
|
|
159
|
+
### Testing the Happy Path
|
|
160
|
+
|
|
161
|
+
```apex
|
|
162
|
+
@isTest
|
|
163
|
+
static void testCreateCase_success {
|
|
164
|
+
Account a = TestDataFactory.createAccount('ACME Corp');
|
|
165
|
+
Contact c = TestDataFactory.createContact(a.Id, 'Jones');
|
|
166
|
+
|
|
167
|
+
Test.startTest;
|
|
168
|
+
Case result = CaseService.createCase(c.Id, 'Billing Issue', 'High');
|
|
169
|
+
Test.stopTest;
|
|
170
|
+
|
|
171
|
+
System.assertNotEquals(null, result.Id, 'Case should be created');
|
|
172
|
+
System.assertEquals('Billing Issue', result.Subject, 'Subject should match');
|
|
173
|
+
System.assertEquals('High', result.Priority, 'Priority should match');
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Testing Error Paths (Validation, Exception)
|
|
178
|
+
|
|
179
|
+
```apex
|
|
180
|
+
@isTest
|
|
181
|
+
static void testCreateCase_throwsException_whenContactNotFound {
|
|
182
|
+
Boolean exceptionThrown = false;
|
|
183
|
+
try {
|
|
184
|
+
Test.startTest;
|
|
185
|
+
CaseService.createCase('003000000000000', 'Test', 'Low'); // bogus ID
|
|
186
|
+
Test.stopTest;
|
|
187
|
+
} catch (AuraHandledException ex) {
|
|
188
|
+
exceptionThrown = true;
|
|
189
|
+
System.assert(ex.getMessage.contains('Contact not found'),
|
|
190
|
+
'Exception message should indicate contact not found');
|
|
191
|
+
}
|
|
192
|
+
System.assert(exceptionThrown, 'Exception should have been thrown');
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Testing Bulk Scenarios
|
|
197
|
+
|
|
198
|
+
```apex
|
|
199
|
+
@isTest
|
|
200
|
+
static void testProcessAccounts_bulk_200Records {
|
|
201
|
+
List<Account> accounts = new List<Account>;
|
|
202
|
+
for (Integer i = 0; i < 200; i++) {
|
|
203
|
+
accounts.add(new Account(Name = 'Bulk Test ' + i));
|
|
204
|
+
}
|
|
205
|
+
insert accounts;
|
|
206
|
+
|
|
207
|
+
Test.startTest;
|
|
208
|
+
AccountProcessor.processAll(accounts);
|
|
209
|
+
Test.stopTest;
|
|
210
|
+
|
|
211
|
+
// Verify all 200 processed without governor limit errors
|
|
212
|
+
List<Account> processed = [SELECT Id, ProcessedDate__c FROM Account WHERE Name LIKE 'Bulk Test%'];
|
|
213
|
+
System.assertEquals(200, processed.size, 'All 200 accounts should be processed');
|
|
214
|
+
for (Account a : processed) {
|
|
215
|
+
System.assertNotEquals(null, a.ProcessedDate__c, 'All accounts should have ProcessedDate set');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Testing Async Apex
|
|
221
|
+
|
|
222
|
+
```apex
|
|
223
|
+
@isTest
|
|
224
|
+
static void testBatchApex {
|
|
225
|
+
List<Account> accounts = TestDataFactory.createAccountBatch(100);
|
|
226
|
+
|
|
227
|
+
Test.startTest;
|
|
228
|
+
AccountCleanupBatch batch = new AccountCleanupBatch;
|
|
229
|
+
Id jobId = Database.executeBatch(batch, 200);
|
|
230
|
+
Test.stopTest; // Forces async execution to complete synchronously in test
|
|
231
|
+
|
|
232
|
+
// Assert post-batch state
|
|
233
|
+
List<Account> updated = [SELECT Id, Status__c FROM Account WHERE Id IN :accounts];
|
|
234
|
+
for (Account a : updated) {
|
|
235
|
+
System.assertEquals('Processed', a.Status__c, 'All accounts should be processed by batch');
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## CI Integration
|
|
243
|
+
|
|
244
|
+
### GitHub Actions: Apex Test on Pull Request
|
|
245
|
+
|
|
246
|
+
```yaml
|
|
247
|
+
name: Apex Test Coverage
|
|
248
|
+
on: [pull_request]
|
|
249
|
+
jobs:
|
|
250
|
+
test:
|
|
251
|
+
runs-on: ubuntu-latest
|
|
252
|
+
steps:
|
|
253
|
+
- uses: actions/checkout@v4
|
|
254
|
+
- name: Install Salesforce CLI
|
|
255
|
+
run: npm install -g @salesforce/cli
|
|
256
|
+
- name: Authenticate to sandbox
|
|
257
|
+
run: |
|
|
258
|
+
echo "${{ secrets.SF_AUTH_URL }}" | sf org login sfdx-url \
|
|
259
|
+
--sfdx-url-stdin \
|
|
260
|
+
--alias ci-org \
|
|
261
|
+
--set-default
|
|
262
|
+
- name: Run tests and check coverage
|
|
263
|
+
run: |
|
|
264
|
+
sf apex run test \
|
|
265
|
+
--target-org ci-org \
|
|
266
|
+
--test-level RunLocalTests \
|
|
267
|
+
--result-format tap \
|
|
268
|
+
--code-coverage \
|
|
269
|
+
--wait 30 | tee test-results.txt
|
|
270
|
+
|
|
271
|
+
# Extract coverage percentage from results and fail if below threshold
|
|
272
|
+
COVERAGE=$(grep "Org Wide Coverage" test-results.txt | grep -o '[0-9]*%' | tr -d '%')
|
|
273
|
+
if [ "$COVERAGE" -lt 85 ]; then
|
|
274
|
+
echo "Coverage $COVERAGE% is below 85% threshold"
|
|
275
|
+
exit 1
|
|
276
|
+
fi
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Coverage Reporting
|
|
282
|
+
|
|
283
|
+
### Querying Coverage Data via Tooling API
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
# Per-class coverage
|
|
287
|
+
sf data query \
|
|
288
|
+
--query "SELECT ApexClassOrTrigger.Name, NumLinesCovered, NumLinesUncovered \
|
|
289
|
+
FROM ApexCodeCoverageAggregate \
|
|
290
|
+
ORDER BY NumLinesUncovered DESC \
|
|
291
|
+
LIMIT 50" \
|
|
292
|
+
--use-tooling-api \
|
|
293
|
+
-o my-org
|
|
294
|
+
|
|
295
|
+
# Org-wide aggregate
|
|
296
|
+
sf data query \
|
|
297
|
+
--query "SELECT PercentCovered FROM ApexOrgWideCoverage" \
|
|
298
|
+
--use-tooling-api \
|
|
299
|
+
-o my-org
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Test Coverage Anti-Patterns
|
|
305
|
+
|
|
306
|
+
| Anti-Pattern | Issue |
|
|
307
|
+
|-------------|-------|
|
|
308
|
+
| Test methods with no assertions | Coverage without validation |
|
|
309
|
+
| One giant test method testing everything | Hard to diagnose failures |
|
|
310
|
+
| `SeeAllData=true` | Tests break in clean sandboxes |
|
|
311
|
+
| Tests that only test governor limit compliance | No business logic verified |
|
|
312
|
+
| Copy-pasted tests for trivial variations | Maintenance burden |
|
|
313
|
+
| Testing framework/platform behavior (e.g., that DML works) | Waste of coverage budget |
|
|
314
|
+
| Tests that mutate shared state without @testSetup isolation | Flaky test ordering dependencies |
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: salesforce-soql-explorer-skill
|
|
3
|
+
description: "Executes read-only SOQL queries against a connected Salesforce org via the sf data query CLI under T1 least-privilege scope (api + refresh_token only, Run As service account with no ModifyAllData/ViewAllData/ViewEncryptedData). Returns sanitized JSON with a structured audit envelope. Live operational counterpart to the static-review skills. TRIGGER when: user asks to query records, run SOQL, fetch live data, inspect records by ID, count records, run aggregate queries, or check field values in a live org. Trigger phrases: query my org, run SOQL, show me records where, how many opportunities, what is the value of field X on record Y. DO NOT TRIGGER when: user pastes a metadata XML export for static review (use salesforce-metadata-review-skill); request requires DML — write, update, delete — those are T3 prohibited; bulk data operations needed (use salesforce-bulk-data-ops-skill); only schema metadata needed without data (use salesforce-metadata-fetcher-skill)."
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash(sf data query:*) Bash(sf org list:*) Bash(sf org display:*) 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"]
|
|
17
|
+
denied: ["ModifyAllData", "ViewAllData", "ViewEncryptedData", "ModifyMetadata", "AuthorApex", "ManageConnectedApps"]
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# salesforce-soql-explorer-skill
|
|
21
|
+
|
|
22
|
+
Read-only live SOQL execution against a connected Salesforce org under T1
|
|
23
|
+
least-privilege scope. This skill is a **flashlight**, not a filing cabinet.
|
|
24
|
+
It queries evidence; it does not write, deploy, or mutate anything.
|
|
25
|
+
|
|
26
|
+
## When This Skill Owns the Task
|
|
27
|
+
|
|
28
|
+
Use `salesforce-soql-explorer-skill` when the work requires **live record evidence**
|
|
29
|
+
from a connected org:
|
|
30
|
+
|
|
31
|
+
- "Show me the Opportunity pipeline for Q3 in sandbox"
|
|
32
|
+
- "How many Contacts have no email address?"
|
|
33
|
+
- "What is the value of Account.BillingCountry for record 001Xx000001ABC?"
|
|
34
|
+
- "Count open Cases by priority for the service team"
|
|
35
|
+
- "Verify the field value changed after yesterday's data load"
|
|
36
|
+
|
|
37
|
+
**Delegate elsewhere when:**
|
|
38
|
+
|
|
39
|
+
| Situation | Skill to use |
|
|
40
|
+
|---|---|
|
|
41
|
+
| User pastes metadata XML or deployment export for review | `salesforce-metadata-review-skill` |
|
|
42
|
+
| Schema or field definitions needed without record values | `salesforce-metadata-fetcher-skill` |
|
|
43
|
+
| Request requires INSERT, UPDATE, DELETE, MERGE, or UPSERT | T3 — requires human approval via `salesforce-live-guard-agent` |
|
|
44
|
+
| Large-volume export (> 2,000 records) or scheduled batch | `salesforce-bulk-data-ops-skill` |
|
|
45
|
+
| Static code review of a `.soql` file or Apex selector | `querying-soql` (sf-skills) |
|
|
46
|
+
| A change proposal emerges from findings | Escalate to `salesforce-live-guard-agent` |
|
|
47
|
+
| Permission topology findings surface | Hand off to `salesforce-permission-model-review-skill` |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Required Context to Gather First
|
|
52
|
+
|
|
53
|
+
Before executing any query, confirm:
|
|
54
|
+
|
|
55
|
+
1. **Target org alias** — the `--target-org` value recognized by `sf org list`.
|
|
56
|
+
Never accept a raw instance URL or session token.
|
|
57
|
+
2. **Org type** — production or sandbox. Flag if production; apply stricter
|
|
58
|
+
scrutiny on field selection and result volume.
|
|
59
|
+
3. **Target sObject** — the API name (e.g., `Account`, `Opportunity`,
|
|
60
|
+
`My_Custom_Object__c`).
|
|
61
|
+
4. **Fields needed** — enumerate explicitly; do not use SELECT *.
|
|
62
|
+
5. **Filter criteria** — WHERE clause conditions, date ranges, owner scope.
|
|
63
|
+
6. **Expected result volume** — inform LIMIT choice.
|
|
64
|
+
7. **Sensitivity classification** — does the query touch PII fields (email,
|
|
65
|
+
phone, address, SSN, health, financial)? Regulated-vertical indicator
|
|
66
|
+
(Health Cloud, Financial Services Cloud
|
|
67
|
+
)?
|
|
68
|
+
Encrypted fields (Shield PE / PMLE)?
|
|
69
|
+
|
|
70
|
+
If any of these are missing, ask before proceeding.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Recommended Workflow
|
|
75
|
+
|
|
76
|
+
### Step 1 — Confirm org alias and reachability
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
sf org display --target-org <alias>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Verify: org type (production vs. sandbox), username, instance URL, OAuth
|
|
83
|
+
Connected App. If the org type is production and the Connected App allowlist
|
|
84
|
+
does not explicitly authorize this alias, **stop** (see Stop Conditions).
|
|
85
|
+
|
|
86
|
+
### Step 2 — Confirm sObject exists and check FLS
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
sf sobject describe --sobject <SObjectName> --target-org <alias>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Confirm: the sObject exists, the Run As account has Read access, and the
|
|
93
|
+
requested fields are accessible (not restricted by FLS). If any field is
|
|
94
|
+
encrypted (Shield PE / PMLE), remove it from the query and note the redaction.
|
|
95
|
+
|
|
96
|
+
### Step 3 — Generate the simplest correct query
|
|
97
|
+
|
|
98
|
+
Apply these constraints:
|
|
99
|
+
- Enumerate only required fields — no `SELECT *`
|
|
100
|
+
- Apply a selective WHERE clause using indexed fields (Id, Name, ExternalId,
|
|
101
|
+
lookup fields, standard indexed fields)
|
|
102
|
+
- Include LIMIT (default 200; reduce for PII-adjacent queries)
|
|
103
|
+
- Avoid formula fields or non-indexed fields in WHERE without a companion
|
|
104
|
+
indexed filter
|
|
105
|
+
|
|
106
|
+
### Step 4 — Preview with LIMIT 5 first
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
sf data query \
|
|
110
|
+
--query "SELECT <fields> FROM <SObject> WHERE <filter> LIMIT 5" \
|
|
111
|
+
--target-org <alias> \
|
|
112
|
+
--result-format json
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Inspect output for: unexpected fields, encrypted placeholders, PII exposure,
|
|
116
|
+
schema surprises. Confirm the shape matches the intent before expanding volume.
|
|
117
|
+
|
|
118
|
+
### Step 5 — Execute with appropriate LIMIT
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
sf data query \
|
|
122
|
+
--query "SELECT <fields> FROM <SObject> WHERE <filter> LIMIT <n>" \
|
|
123
|
+
--target-org <alias> \
|
|
124
|
+
--result-format json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Maximum interactive LIMIT: 2,000. For larger volumes, decline and route to
|
|
128
|
+
`salesforce-bulk-data-ops-skill`.
|
|
129
|
+
|
|
130
|
+
### Step 6 — Sanitize output
|
|
131
|
+
|
|
132
|
+
Apply redaction rules before emitting any output:
|
|
133
|
+
|
|
134
|
+
- Replace all 15/18-character Salesforce Ids with `<org_id_placeholder>` or
|
|
135
|
+
`<record_id_placeholder>` as appropriate.
|
|
136
|
+
- Replace user IDs (User.Id references, OwnerId, CreatedById, LastModifiedById)
|
|
137
|
+
with `<user_id_placeholder>`.
|
|
138
|
+
- Remove or mask any field that contains plaintext email, phone, SSN, or
|
|
139
|
+
financial account numbers unless the user has explicitly acknowledged the
|
|
140
|
+
PII scope and the org is not regulated.
|
|
141
|
+
- Skip any encrypted field (Shield PE / PMLE) entirely — do not include
|
|
142
|
+
placeholder text that implies a value was present.
|
|
143
|
+
- Never emit OAuth tokens, refresh tokens, or session IDs.
|
|
144
|
+
|
|
145
|
+
Use `jq` for structured redaction:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
sf data query \
|
|
149
|
+
--query "SELECT Id, Name FROM Account LIMIT 5" \
|
|
150
|
+
--target-org <alias> \
|
|
151
|
+
--result-format json \
|
|
152
|
+
| jq '.result.records[] | {Id: "<record_id_placeholder>", Name: .Name}'
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Step 7 — Emit audit envelope
|
|
156
|
+
|
|
157
|
+
Every execution must produce a structured audit envelope (see Audit Envelope
|
|
158
|
+
Schema below). Do not omit the envelope even if results are empty.
|
|
159
|
+
|
|
160
|
+
### Step 8 — Hand off to review skill if findings warrant
|
|
161
|
+
|
|
162
|
+
If query results surface access anomalies, unexpected field values, or policy
|
|
163
|
+
violations, hand off to the appropriate review skill with the sanitized results
|
|
164
|
+
and the audit envelope as the input payload. Do not escalate raw unsanitized
|
|
165
|
+
output.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Quality Scoring Rubric (100-point)
|
|
170
|
+
|
|
171
|
+
Score the query design and execution quality before emitting results. Threshold:
|
|
172
|
+
80+ acceptable, 60–79 emit with caveat, below 60 reject and request revision.
|
|
173
|
+
|
|
174
|
+
| Dimension | Points | What earns full marks |
|
|
175
|
+
|---|---|---|
|
|
176
|
+
| **Selectivity** | 30 | WHERE clause uses at least one indexed field; no full table scans on objects > 10k records |
|
|
177
|
+
| **Field minimality** | 20 | Only required fields enumerated; no SELECT *; no encrypted fields included |
|
|
178
|
+
| **Governor limit awareness** | 20 | LIMIT applied and appropriate to volume; no queries likely to exceed 50k row limit; aggregate used when count is the goal |
|
|
179
|
+
| **Redaction quality** | 15 | All Salesforce IDs, user IDs, PII fields redacted per rules; audit envelope populated |
|
|
180
|
+
| **Audit envelope completeness** | 15 | All required audit fields present; query text hash computed; timestamp accurate |
|
|
181
|
+
|
|
182
|
+
**Scoring penalties:**
|
|
183
|
+
- No WHERE clause on object with > 50k records: -20
|
|
184
|
+
- SELECT *: -15
|
|
185
|
+
- Missing LIMIT: -15
|
|
186
|
+
- Missing audit envelope: -20 (automatic caveat regardless of total score)
|
|
187
|
+
- Encrypted field included in output: immediate reject (score voided)
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## T1 Least-Privilege Contract
|
|
192
|
+
|
|
193
|
+
This skill operates exclusively at T1 — read-only runtime. The contract is:
|
|
194
|
+
|
|
195
|
+
- **OAuth scopes used:** `api` and `refresh_token` only. No `full`, `web`,
|
|
196
|
+
`sfap_api`, `cdp_query_api`, or any other scope.
|
|
197
|
+
- **Run As account profile:** System permissions: View Setup and Configuration
|
|
198
|
+
only. Object permissions: Read only on objects in scope. FLS restricted to
|
|
199
|
+
non-PII, non-encrypted fields by default.
|
|
200
|
+
- **Denied permissions (enforced at Connected App and profile level):**
|
|
201
|
+
- Modify All Data
|
|
202
|
+
- View All Data (system-level bypass)
|
|
203
|
+
- View Encrypted Data
|
|
204
|
+
- Modify Metadata Through Metadata API Functions
|
|
205
|
+
- Author Apex
|
|
206
|
+
- Customize Application
|
|
207
|
+
- Manage Connected Apps
|
|
208
|
+
- **Org allowlist:** Enforced by Connected App IP restrictions and explicit
|
|
209
|
+
org alias allowlist. Skill verifies via `sf org list` that the target alias
|
|
210
|
+
is in the authorized set before executing any query.
|
|
211
|
+
- **No DML under any circumstances:** This skill will not construct or execute
|
|
212
|
+
any statement containing INSERT, UPDATE, DELETE, MERGE, or UPSERT. Requests
|
|
213
|
+
for DML must be refused and routed to the human approval path.
|
|
214
|
+
- **Revocation:** The least-privilege Run As account's refresh token can be
|
|
215
|
+
rotated to instantly revoke all access without affecting other integrations.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Refusal Triggers
|
|
220
|
+
|
|
221
|
+
Stop immediately and do not execute if:
|
|
222
|
+
|
|
223
|
+
- The target org appears to be production but the Connected App allowlist does
|
|
224
|
+
not include it.
|
|
225
|
+
- The requested SOQL contains DML keywords: `INSERT`, `UPDATE`, `DELETE`,
|
|
226
|
+
`MERGE`, `UPSERT` (case-insensitive).
|
|
227
|
+
- The query targets fields marked as encrypted (Shield PE / PMLE indicators
|
|
228
|
+
in the `describe` output: `encrypted: true`).
|
|
229
|
+
- The audit envelope cannot be populated (matter_id missing, org alias
|
|
230
|
+
unresolvable, run_as_user_id unavailable).
|
|
231
|
+
- The user requests that redaction be skipped or disabled.
|
|
232
|
+
- The org is identified as a regulated-vertical production org (Health Cloud,
|
|
233
|
+
Financial Services Cloud
|
|
234
|
+
) and
|
|
235
|
+
jurisdiction is unknown.
|
|
236
|
+
- The query result volume exceeds 2,000 records in interactive mode — route to
|
|
237
|
+
bulk ops instead.
|
|
238
|
+
- The Run As account is missing the required `View Setup and Configuration`
|
|
239
|
+
permission (verify via `sf org display` output).
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Audit Envelope Schema
|
|
244
|
+
|
|
245
|
+
Every execution emits an audit envelope. The envelope travels with the
|
|
246
|
+
sanitized output to any downstream review skill.
|
|
247
|
+
|
|
248
|
+
```yaml
|
|
249
|
+
audit_envelope:
|
|
250
|
+
matter_id: "<caller-provided-or-generated-uuid>"
|
|
251
|
+
skill_id: "salesforce-soql-explorer-skill"
|
|
252
|
+
skill_version: "0.1.0"
|
|
253
|
+
target_org_alias: "<alias>" # never the raw org ID
|
|
254
|
+
run_as_user_id: "<user_id_placeholder>" # placeholder; never real ID in output
|
|
255
|
+
query_text_hash: "<sha256-of-query>" # hash only if PII risk; else include query
|
|
256
|
+
query_text: "<soql-string-or-redacted>" # omit if PII risk; include hash instead
|
|
257
|
+
record_count: <integer>
|
|
258
|
+
redactions_applied:
|
|
259
|
+
- field: "<FieldApiName>"
|
|
260
|
+
reason: "<pii|encrypted|org_id|user_id>"
|
|
261
|
+
timestamp: "<ISO-8601-UTC>"
|
|
262
|
+
org_type_verified: "sandbox | production"
|
|
263
|
+
governor_limit_headroom: "<estimated-rows-vs-limit>"
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Output Format
|
|
269
|
+
|
|
270
|
+
```yaml
|
|
271
|
+
verdict: "acceptable | caveat | reject"
|
|
272
|
+
quality_score: <0-100>
|
|
273
|
+
quality_notes: "<what drove the score>"
|
|
274
|
+
|
|
275
|
+
records:
|
|
276
|
+
- <sanitized record objects>
|
|
277
|
+
|
|
278
|
+
metadata:
|
|
279
|
+
record_count: <integer>
|
|
280
|
+
sObject: "<SObjectApiName>"
|
|
281
|
+
fields_queried: ["<field1>", "<field2>"]
|
|
282
|
+
fls_notes: "<any FLS restrictions observed>"
|
|
283
|
+
fields_skipped_encrypted: ["<field>"] # if any
|
|
284
|
+
|
|
285
|
+
audit_envelope:
|
|
286
|
+
<see Audit Envelope Schema>
|
|
287
|
+
|
|
288
|
+
escalation_triggers_fired:
|
|
289
|
+
- "<trigger name or 'none'>"
|
|
290
|
+
|
|
291
|
+
missing_evidence:
|
|
292
|
+
- "<what would strengthen the query or findings>"
|
|
293
|
+
|
|
294
|
+
assumptions:
|
|
295
|
+
- "<explicit list of assumptions made>"
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Redaction Rules
|
|
301
|
+
|
|
302
|
+
Apply in order. Do not bypass for any reason.
|
|
303
|
+
|
|
304
|
+
1. **OAuth tokens, refresh tokens, session IDs:** Never include in any output,
|
|
305
|
+
log, or audit envelope field. If they appear in CLI output, strip before
|
|
306
|
+
emitting.
|
|
307
|
+
2. **Salesforce Org IDs (18-char starting with `00D`):** Replace with
|
|
308
|
+
`<org_id_placeholder>`.
|
|
309
|
+
3. **Salesforce Record IDs (15/18-char):** Replace with
|
|
310
|
+
`<record_id_placeholder>` in output records.
|
|
311
|
+
4. **User IDs (OwnerId, CreatedById, LastModifiedById, User.Id):** Replace
|
|
312
|
+
with `<user_id_placeholder>`.
|
|
313
|
+
5. **Encrypted fields (Shield PE / PMLE):** Skip entirely — do not emit
|
|
314
|
+
the field name or any placeholder that implies a value was retrieved.
|
|
315
|
+
List skipped fields in `fields_skipped_encrypted`.
|
|
316
|
+
6. **PII fields (email, phone, SSN, health data, financial account numbers):**
|
|
317
|
+
Mask or omit unless the user has explicitly acknowledged the PII scope,
|
|
318
|
+
the org is non-production, and the matter classification permits. Document
|
|
319
|
+
the acknowledgment in `assumptions`.
|
|
320
|
+
7. **Instance URLs and API endpoints:** Omit from output; reference only the
|
|
321
|
+
org alias in the audit envelope.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Handoff Rules
|
|
326
|
+
|
|
327
|
+
When findings from query results warrant further review, hand off to the
|
|
328
|
+
appropriate skill with the sanitized output and audit envelope as the payload:
|
|
329
|
+
|
|
330
|
+
| Finding type | Hand off to |
|
|
331
|
+
|---|---|
|
|
332
|
+
| Metadata anomalies (field config, object structure) | `salesforce-metadata-review-skill` |
|
|
333
|
+
| Access or permission findings (unexpected record visibility) | `salesforce-permission-model-review-skill` |
|
|
334
|
+
| A change proposal emerges from query evidence | `salesforce-live-guard-agent` |
|
|
335
|
+
| Org posture concern from query results | `salesforce-org-assessment-skill` |
|
|
336
|
+
|
|
337
|
+
Required handoff fields: `matter_id`, `audit_envelope`, `sanitized_records`
|
|
338
|
+
(summary — not full dump), `escalation_triggers_fired`, `missing_evidence`,
|
|
339
|
+
`assumptions`.
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Stop Conditions
|
|
344
|
+
|
|
345
|
+
Stop and do not continue if:
|
|
346
|
+
|
|
347
|
+
- Target org appears to be production but Connected App allowlist excludes it
|
|
348
|
+
— stop, emit a refusal with reason, do not execute query.
|
|
349
|
+
- Query contains DML keywords (`INSERT`, `UPDATE`, `DELETE`, `MERGE`,
|
|
350
|
+
`UPSERT`) — stop, emit a refusal, route to human approval path.
|
|
351
|
+
- Query targets encrypted fields (`encrypted: true` in describe output) —
|
|
352
|
+
remove fields and warn, or stop if the user insists on including them.
|
|
353
|
+
- Audit envelope cannot be completed (missing matter_id or unresolvable org
|
|
354
|
+
alias) — stop until resolved.
|
|
355
|
+
- Run As account is missing `View Setup and Configuration` — stop and escalate
|
|
356
|
+
to org administrator.
|
|
357
|
+
- Result volume would exceed 2,000 records in interactive mode — stop and
|
|
358
|
+
route to `salesforce-bulk-data-ops-skill`.
|
|
359
|
+
- The user requests redaction be disabled — stop and explain the policy.
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## Security Notes
|
|
364
|
+
|
|
365
|
+
- **T1 read-only operational:** No DML, no metadata mutation, no Apex
|
|
366
|
+
execution, no deployment.
|
|
367
|
+
- **Sanitized output only:** All Salesforce IDs, user IDs, and PII fields
|
|
368
|
+
redacted before emission.
|
|
369
|
+
- **Org allowlist enforced:** Connected App restricts which orgs can be
|
|
370
|
+
targeted; skill verifies before executing.
|
|
371
|
+
- **Structured audit emitted:** Every execution produces a complete audit
|
|
372
|
+
envelope regardless of result count.
|
|
373
|
+
- **Revocable:** Rotating the Run As account's refresh token immediately
|
|
374
|
+
revokes all access without affecting other integrations.
|
|
375
|
+
- **Least-privilege Run As account:** No Modify All Data, View All Data,
|
|
376
|
+
View Encrypted Data, or any mutation permission.
|
|
377
|
+
- **No credential echo:** OAuth tokens, refresh tokens, and session IDs are
|
|
378
|
+
never included in output or audit envelopes.
|
|
379
|
+
- **Regulated-vertical escalation:** Health Cloud and Financial Services Cloud
|
|
380
|
+
orgs trigger mandatory escalation
|
|
381
|
+
to a qualified compliance specialist before results are shared externally.
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## Reference File Index
|
|
386
|
+
|
|
387
|
+
| File | When to read |
|
|
388
|
+
|---|---|
|
|
389
|
+
| `references/cli-commands.md` | sf CLI query commands, output formats, jq patterns, org introspection |
|
|
390
|
+
| `references/least-privilege-scope.md` | Connected App config, Run As profile design, denied permissions, token rotation |
|
|
391
|
+
| `references/safe-query-patterns.md` | Safe SOQL patterns, indexing rules, anti-patterns, annotated examples |
|