Skip to content
Back to skills

Salesforce Apex

ASecurity

Router for the 159 SfSkills `apex` skill packages. Apex and SOQL: triggers, Apex governor limits, async processing, OUTBOUND HTTP callouts, security enforcement, and test patterns. Owns calling an external API FROM Salesforce; salesforce-integration owns inbound. Generic nightly scheduling without naming code belongs to salesforce-flow. Codebase security review belongs to salesforce-security. NOT for SOSL — use salesforce-data. Use when the request mentions Apex, trigger, SOQL, Apex governor ...

  • 15 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
ai-agentspythongobashgitapisecurityperformance

Works with

  • cli
  • api
  • mcp

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add PranavNagrecha/AwesomeSalesforceSkills --skill salesforce-apex --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Salesforce Apex?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Salesforce Apex
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pranavnagrecha-salesforce-apex/badge)](https://www.skillsdirectory.com/skills/pranavnagrecha-salesforce-apex)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: salesforce-apex
description: "Router for the 159 SfSkills `apex` skill packages. Apex and SOQL: triggers, Apex governor limits, async processing, OUTBOUND HTTP callouts, security enforcement, and test patterns. Owns calling an external API FROM Salesforce; salesforce-integration owns inbound. Generic nightly scheduling without naming code belongs to salesforce-flow. Codebase security review belongs to salesforce-security. NOT for SOSL — use salesforce-data. Use when the request mentions Apex, trigger, SOQL, Apex governor limit, batch, queueable, @future, schedulable, test class, CPU time, heap, with sharing, StripInaccessible, callout, HTTP callout, HttpRequest, call an external API, consume a REST API from Apex, Named Credential in Apex, HttpCalloutMock, Apex REST service. Finds and opens the exact skill package to read; it does not contain the guidance itself."
---

# Salesforce apex — SfSkills domain router

Apex and SOQL: triggers, Apex governor limits, async processing, OUTBOUND HTTP callouts, security enforcement, and test patterns. Owns calling an external API FROM Salesforce; salesforce-integration owns inbound. Generic nightly scheduling without naming code belongs to salesforce-flow. Codebase security review belongs to salesforce-security. NOT for SOSL — use salesforce-data.

**159 skill packages** live under
`${CLAUDE_PLUGIN_ROOT}/skills/apex/<slug>/SKILL.md`. They are not
loaded — reach them by path, on demand.

**Generated by `scripts/build_plugin.py`. Do not hand-edit.**

## How to find the right skill

Three mechanisms, listed in order of reliability on a fresh install.
Use the first one that is available; do not stop at a guess.

**1. The shipped roster (always works, no setup).**
Read `references/skill-index.md` next to this file. It lists every
`apex` skill package with a one-line gloss, generated from
`registry/skills.json`. Scan it and pick by name.

**2. The MCP server (fast, needs the `sfskills-mcp` server connected).**
Call the `search_skill` tool with the user's phrasing and `domain: "apex"`. It returns
ranked skill ids. `get_skill` then returns the package contents.

**3. The search CLI (fast, needs a locally built index).**

```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/search_knowledge.py" "<the user's question>" --domain apex --json
```

This needs `vector_index/`, which is **not shipped** — it is gitignored
and must be built once per clone:

```bash
cd "${CLAUDE_PLUGIN_ROOT}" && python3 -m pip install -r requirements.txt && python3 scripts/build_index.py
```

If the command errors or reports `Coverage: NONE`, fall back to
mechanism 1 rather than telling the user the topic is uncovered.

**Then read the package.** Open the exact
`${CLAUDE_PLUGIN_ROOT}/skills/<domain>/<slug>/SKILL.md` the lookup
returned, plus its `references/gotchas.md` and
`references/llm-anti-patterns.md`. Do not answer from this router:
it is a map, not the territory.

## Featured entry points

Curated starting points when the request is broad or the lookup is
ambiguous. This is a shortlist, not the catalogue — the roster at
`references/skill-index.md` has all 159.

- `${CLAUDE_PLUGIN_ROOT}/skills/apex/trigger-framework/SKILL.md` — one trigger per object, handler dispatch, and recursion control
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/governor-limits/SKILL.md` — the limit table and which ones actually bite in practice
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/soql-fundamentals/SKILL.md` — selectivity, relationship queries, and queries inside loops
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/apex-security-patterns/SKILL.md` — CRUD/FLS enforcement, sharing keywords, and injection-safe dynamic SOQL
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/batch-apex-patterns/SKILL.md` — Batchable structure, chaining, scope sizing and failure recovery
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/apex-queueable-patterns/SKILL.md` — the default async choice, with chaining depth and callout rules
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/test-data-factory-patterns/SKILL.md` — a reusable factory so bulk tests are not copy-pasted record builders
- `${CLAUDE_PLUGIN_ROOT}/skills/apex/test-class-standards/SKILL.md` — assertions, bulk cases, negative paths, and what coverage does not prove

## Decision trees

Read the tree *before* activating a skill when the request could be
solved more than one way, and cite the branch that decided it.

- `${CLAUDE_PLUGIN_ROOT}/standards/decision-trees/automation-selection.md` — read before writing Apex that a Flow could do
- `${CLAUDE_PLUGIN_ROOT}/standards/decision-trees/async-selection.md` — @future vs Queueable vs Batch vs Schedulable vs Platform Events
- `${CLAUDE_PLUGIN_ROOT}/standards/decision-trees/performance-tuning.md` — read on any CPU, heap, SOQL or limit symptom

## Canonical templates

Do not hand-roll an idiom that already exists. Copy from
`${CLAUDE_PLUGIN_ROOT}/templates/apex/` and rename in the consuming
project; never edit the template in place.

- `${CLAUDE_PLUGIN_ROOT}/templates/apex/TriggerHandler.cls`
- `${CLAUDE_PLUGIN_ROOT}/templates/apex/SecurityUtils.cls`
- `${CLAUDE_PLUGIN_ROOT}/templates/apex/tests/TestDataFactory.cls`
- `${CLAUDE_PLUGIN_ROOT}/templates/apex/README.md` — the full list

## Run-time agents for this domain

Invoke one of these subagents when the ask is a whole workflow
rather than a single question:

- `apex-builder` — Generate an Apex scaffold for any canonical surface
- `apex-refactorer` — Refactor an Apex class to canonical patterns
- `apex-test-failure-triager` — Diagnose an existing Apex test run failure
- `automation-transaction-profiler` — Automation Transaction Profiler
- `security-scanner` — Security audit for Apex, callouts, and sharing
- `soql-optimizer` — Find and fix SOQL anti-patterns
- `test-class-generator` — Generate a bulk-safe Apex test class
- `trigger-consolidator` — Consolidate N triggers on an sObject into one handler

## Rules

1. Answer from the opened `apex` package, never from this router.
2. Cite the skill id and, where one applied, the decision-tree branch.
3. Never claim a topic is uncovered without pasting lookup output.
4. Never deploy to an org.

Files in this skill

  • SKILL.md5.9 KB
  • references/skill-index.md43 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.