Agent skill
sf-eval
Evaluate and benchmark Salesforce skill quality. Compares AI-generated code with vs without skill context, scores against a Salesforce-specific rubric (security, governor limits, bulkification, patterns, completeness), and produces a comparison report. Use to run benchmarks, verify skill value, or check Apex code quality. Activate on mentions of "evaluate skills", "benchmark", "skill quality", "run eval", or "compare with/without skills".
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/sf-eval
Metadata
Additional technical details for this skill
- tags
- salesforce, evaluation, benchmark, quality, testing
- author
- clientell
- version
- 1.0.0
SKILL.md
Salesforce Skills Evaluator
You evaluate whether Salesforce skills improve AI-generated code quality. You do this by comparing code generated with vs without skill context and scoring both.
Eval Modes
Mode 1: Run Benchmark Task(s)
When user says /sf-eval or /sf-eval <task-id>:
-
Read available tasks from
evals/benchmarks/tasks.json -
For each task (or the specified one):
Step A — Generate Baseline (no skill context): Generate Salesforce code for the task prompt AS IF you had no Salesforce skill knowledge. Produce typical LLM output — functional but likely missing Salesforce-specific best practices. Do NOT use
WITH USER_MODE, do NOT use trigger handler patterns, do NOT usestripInaccessibleunless the prompt explicitly asks for it. Write code the way a generic AI would.Step B — Generate With Skills: Read the relevant skill file at
skills/<skill>/SKILL.mdand its references. Then generate code following ALL the skill's rules, patterns, and gotchas strictly.Step C — Score Both: Read the rubric at
evals/benchmarks/rubric.mdand the judge prompt atevals/benchmarks/judge-prompt.md. Score each output on 5 categories (0-5 each):Category What to check Security WITH USER_MODE, stripInaccessible, with sharing, no injection, no hardcoded creds Governor Limits No SOQL/DML in loops, uses Map/Set collections, efficient queries Bulkification Handles 200+ records, uses collections, no Trigger.new[0] Patterns Trigger handler, service/selector layers, naming conventions Completeness Requirements met, edge cases, error handling, production-ready Step D — Output Report: Format as a comparison table:
## Task: <task-id> **Prompt**: <prompt text> ### Baseline (No Skills) — X/25 | Category | Score | Reason | |----------|-------|--------| | Security | X/5 | ... | | Governor Limits | X/5 | ... | | Bulkification | X/5 | ... | | Patterns | X/5 | ... | | Completeness | X/5 | ... | ### With Skills — X/25 | Category | Score | Reason | |----------|-------|--------| | Security | X/5 | ... | | Governor Limits | X/5 | ... | | Bulkification | X/5 | ... | | Patterns | X/5 | ... | | Completeness | X/5 | ... | ### Improvement: +X points (+XX%) -
If running all tasks, produce a summary table at the end:
## Summary | Task | Baseline | With Skills | Delta | |------|----------|-------------|-------| | ... | X/25 | X/25 | +X | | **Average** | **X/25** | **X/25** | **+X (+XX%)** | -
Save the full report to
evals/benchmarks/results/BENCHMARK.md
Mode 2: Static Check
When user says /sf-eval --check <file> or /sf-eval check <file>:
Run bash evals/checks/static-checks.sh <file> and show the results.
Mode 3: Score Custom Code
When user provides their own code and asks to evaluate it:
Score the code against the rubric (same 5 categories, 25 points) and provide improvement suggestions referencing the relevant skill.
Available Benchmark Tasks
Read evals/benchmarks/tasks.json for the full list. Tasks cover:
apex-trigger-bulk— Trigger with handler pattern and bulkificationapex-batch-cleanup— Batch Apex with error handlingapex-rest-api— REST endpoint with securityapex-callout-service— Named Credentials + Queueabletest-trigger-handler— Comprehensive test classtest-callout-mock— HttpCalloutMock patternssoql-complex-query— Aggregate + optimizationsoql-dynamic-search— Dynamic SOQL without injectionlwc-record-list— LWC with LDS + error statesflow-opportunity-automation— Flow XML with bypasssecurity-audit-apex— Fix security violationsschema-custom-object— Metadata XML generationdeploy-cicd-pipeline— GitHub Actions for SFdata-migration-plan— Bulk API + relationshipsapex-platform-events— Event-driven architecture
Critical Rules for Baseline Generation
When generating the "baseline" (no skills) code, you MUST intentionally produce typical generic LLM output:
- Use
public class(nowith sharing) - Skip
WITH USER_MODEin SOQL - Skip
stripInaccessibleon DML - Put logic directly in the trigger body (no handler)
- May have SOQL inside simple loops
- Skip null checks and error handling
- Use basic patterns without Salesforce-specific optimizations
This is NOT about writing bad code on purpose — it's about writing code the way a generic AI would without Salesforce domain expertise. The baseline should be functional but miss platform-specific best practices.
References
- Benchmark Tasks — 15 evaluation tasks
- Scoring Rubric — 25-point quality rubric
- Judge Prompt — LLM scoring instructions
- Static Checks — automated code pattern checks
Workflow
- Identify eval mode (benchmark, static check, or custom code)
- Read tasks.json and rubric.md
- Generate baseline and with-skills code
- Score both against rubric
- Output formatted comparison report
- Save to evals/benchmarks/results/BENCHMARK.md if running full benchmark
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?