mcpField
S
sf-apex

sf-apex

github.com/jaganproDevelopment4241.6k installsUpdated 26w ago
Repository

About sf-apex

A Salesforce skill for generating and reviewing production Apex classes, triggers, async jobs, and tests. It emphasizes bulk safety, sharing and security, test coverage, and alignment with the repository's existing architecture.

Key features

  1. 01Generates and refactors Apex
  2. 02Designs triggers and async jobs
  3. 03Reviews bulk safety and security
  4. 04Guides test classes and assertions
  5. 05Uses existing project patterns

Use cases

  1. 01Creating a Queueable or Batch job
  2. 02Reviewing trigger bulkification
  3. 03Adding security-aware Apex logic
  4. 04Building positive, negative, and bulk tests

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jaganpro/sf-skills --skill sf-apex

After installing, type/sf-apexin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

CREDITS.md
README.md
assets/
apex-class.cls
batch.cls
invocable-method.cls
queueable.cls
selector.cls
service.cls
test-class.cls
test-data-factory.cls
trigger-action.cls
trigger.trigger
hooks/scripts/
apex-lsp-validate.py
llm_pattern_validator.py
post-tool-validate.py
prettier-format.py
validate_apex.py
references/
anti-patterns.md
automation-density-guide.md
best-practices.md
bulkification-guide.md
code-review-checklist.md
code-smells-guide.md
design-patterns.md
flow-integration.md
llm-anti-patterns.md
naming-conventions.md
patterns-deep-dive.md
security-guide.md
security-quick-reference.md

Details

From the project README

sf-apex: Salesforce Apex Code Generation and Review

Use this skill when the user needs production Apex: new classes, triggers, selectors, services, async jobs, invocable methods, test classes, or evidence-based review of existing .cls / .trigger code.

When This Skill Owns the Task

Use sf-apex when the work involves:

  • Apex class generation or refactoring
  • trigger design and trigger-framework decisions
  • @InvocableMethod, Queueable, Batch, Schedulable, or test-class work
  • review of bulkification, sharing, security, testing, or maintainability

Delegate elsewhere when the user is:

  • editing LWC JavaScript / HTML / CSS → sf-lwc
  • building Flow XML or Flow orchestration → sf-flow
  • writing SOQL only → sf-soql
  • deploying or validating metadata to orgs → sf-deploy

Required Context to Gather First

Ask for or infer:

  • class type: trigger, service, selector, batch, queueable, schedulable, invocable, test
  • target object(s) and business goal
  • whether code is net-new, refactor, or fix
  • org / API constraints if known
  • expected test coverage or deployment target

Before authoring, inspect the project shape:

  • existing classes / triggers
  • current trigger framework or handler pattern
  • related tests, flows, and selectors
  • whether TAF is already in use

Recommended Workflow

1. Discover local architecture

Check for:

  • existing trigger handlers / frameworks
  • service-selector-domain conventions
  • related tests and data factories
  • invocable or async patterns already used in the repo
2. Choose the smallest correct pattern
NeedPreferred pattern
simple reusable logicservice class
query-heavy data accessselector
single object trigger behaviorone trigger + handler / TAF action
Flow needs complex logic@InvocableMethod
background processingQueueable by default
very large datasetsBatch Apex or Database.Cursor patterns
repeatable verificationdedicated test class + test data factory
3. Author with guardrails

Generate code that is:

  • bulk-safe
  • sharing-aware
  • CRUD/FLS-safe where applicable
  • testable in isolation
  • consistent with project naming and layering
4. Validate and score

Evaluate against the 150-point rubric before handoff.

5. Hand off deploy/test next steps

When org validation is needed, hand off to:


Generation Guardrails

Never generate these without explicitly stopping and explaining the problem:

Anti-patternWhy it blocks
SOQL in loopsgovernor-limit failure
DML in loopsgovernor-limit failure
missing sharing modelsecurity / data exposure risk
hardcoded IDsdeployment and portability failure
empty catch blockssilent failure / poor observability
string-built SOQL with user inputinjection risk
tests without assertionsfalse-positive test suite

Default fix direction:

  • query once, operate on collections
  • use with sharing unless justified otherwise
  • use bind variables and WITH USER_MODE where appropriate
  • create assertions for positive, negative, and bulk cases

See references/anti-patterns.md and references/security-guide.md.


High-Signal Build Rules

Trigger architecture
  • Prefer one trigger per object.
  • If TAF is already installed and used, extend it instead of inventing a second trigger pattern.
  • Triggers should delegate logic; avoid heavy business logic directly in trigger bodies.
Async choice
ScenarioDefault
standard async workQueueable
very large record processingBatch Apex
recurring scheduleScheduled Flow or Schedulable
post-job cleanupFinalizer
long-running Lightning calloutsContinuation
Testing minimums

Use the PNB pattern for every feature:

  • Positive path
  • Negative / error path
  • Bulk path (251+ records where relevant)
Modern Apex expectations

Prefer current idioms when available:

  • safe navigation: obj?.Field__c
  • null coalescing: value ?? fallback
  • Assert.* over legacy assertion style
  • WITH USER_MODE and explicit security handling where relevant

Output Format

When finishing, report in this order:

  1. What was created or reviewed
  2. Files changed
  3. Key design decisions
  4. Risk / guardrail notes
  5. Test guidance
  6. Deployment guidance

Suggested shape:

Apex work: <summary>
Files: <paths>
Design: <pattern / framework choices>
Risks: <security, bulkification, async, dependency notes>
Tests: <what to run / add>
Deploy: <dry-run or next step>

LSP Validation Note

This skill supports an LSP-assisted authoring loop for .cls and .trigger files:

  • syntax issues can be detected immediately after write/edit
  • the skill can auto-fix common syntax errors in a short loop
  • semantic quality still depends on the 150-point review rubric

Full guide: references/troubleshooting.md


Cross-Skill Integration

NeedDelegate toReason
describe objects / fields firstsf-metadataavoid coding against wrong schema
seed bulk or edge-case datasf-datacreate realistic test datasets
run Apex tests / fix failing testssf-testingexecute and iterate on failures
deploy to orgsf-deployvalidation and deployment orchestration
build Flow that calls Apexsf-flowdeclarative orchestration
build LWC that calls Apexsf-lwcUI/controller integration

Reference Map

Start here
High-signal checklists
Specialized patterns
Troubleshooting / validation

Score Guide

ScoreMeaning
120+strong production-ready Apex
90–119good implementation, review before deploy
67–89acceptable but needs improvement
< 67block deployment

Comments

Markdown supported