PA

pranavnagrecha/awesomesalesforceskills

Developer tools
23 stars Quality 54 Trend 31

Salesforce AI skill library: 1,040 skill packages, 70 run-time agents and an MCP server that give Claude Code and other AI assistants senior-practitioner Apex, LWC, Flow, Agentforce and admin...

Overview

Grounded Salesforce skill packages, run-time agents, a requirement-to-build loop and an MCP server for Claude Code, Cursor, Codex and any MCP client. SfSkills makes an AI coding assistant work on Salesforce the way a senior practitioner does. It is a library of 1,040 skill packages covering Apex, LWC, Flow, Agentforce, OmniStudio, integration, data, security, DevOps and declarative admin work; 70 run-time agents you call as slash commands in Claude Code; a beta loop that turns one business requirement into a verified, deploy-ready build; and an MCP server that gives any MCP client the same library plus read-only probes of your org. Nothing in this repository deploys to an org. Each package under skills/ / / is a SKILL.md (when to use it, a recommended workflow, and in packages written or revised since 2026-09-04 the questions to ask before configuring) plus four reference files and a checker script: - references/examples.

README

SfSkills: Salesforce skills for AI coding assistants

Grounded Salesforce skill packages, run-time agents, a requirement-to-build loop and an MCP server for Claude Code, Cursor, Codex and any MCP client.

SfSkills makes an AI coding assistant work on Salesforce the way a senior practitioner does. It is a library of 1,040 skill packages covering Apex, LWC, Flow, Agentforce, OmniStudio, integration, data, security, DevOps and declarative admin work; 70 run-time agents you call as slash commands in Claude Code; a beta loop that turns one business requirement into a verified, deploy-ready build; and an MCP server that gives any MCP client the same library plus read-only probes of your org. Nothing in this repository deploys to an org.

Contents

What this is

1. A skill library. Each package under skills/// is a SKILL.md (when to use it, a recommended workflow, and in packages written or revised since 2026-09-04 the questions to ask before configuring) plus four reference files and a checker script:

  • references/examples.md: worked examples, with metadata XML where the topic has it
  • references/gotchas.md: the platform’s non-obvious failure modes
  • references/llm-anti-patterns.md: the wrong code an LLM reliably writes in this area, why it writes it, and the correct pattern (example)
  • references/well-architected.md: the Well-Architected mapping and the official Salesforce sources the package rests on
  • scripts/: a standard-library Python checker for the package’s known failure modes

An assistant that has read the package refuses the specific wrong pattern and can say which document each claim comes from. In Claude Code only the 12 router skills, the slash commands and the agent loaders load at session start, about 7,000 tokens, and the model opens the one package it needs; a flat list of every skill description would cost about 149,000 (both estimated by python3 scripts/build_plugin.py --measure).

2. Run-time agents. 70 playbooks under agents//AGENT.md, each behind a slash command: /refactor-apex, /build-lwc, /build-flow, /score-deployment, /why-cant-user and 65 more. An agent reads every skill on its Mandatory Reads list before writing anything, cites each skill, template and decision-tree branch it used, returns a HIGH/MEDIUM/LOW confidence score and a Process Observations block about your org, and never deploys or edits files outside the paths you give it (agents/_shared/AGENT_CONTRACT.md).

3. The requirement-to-build loop (beta). One business ask goes through eight Tier-4 agents with a human gate between stages. The clarifier asks every question the cited skills say must be asked, each with a proposed default. The planner writes milestones and steps, and the verifier tries to refute the plan. Then, step by step, a builder writes the metadata or code, a tester runs every cited skill’s checker, and a doc keeper updates the plan views and the decision log; a milestone verifier writes the acceptance report the human signs against. Ceremony scales with the ask (ask, feature or project; standards/build-orchestration.md § 3.1). A build lives in .sfskills/builds// with plan.json as its only state and scripts/build_plan.py as its only writer. The loop never deploys and never approves a gate.

Five end-to-end scenarios are committed under examples/builds/. The builds were exported from real runs, false starts and rebuilds included:

Scenario Tier Questions Steps Gate records Org dry runs
case-onboarding project 97 22 13 32
tier2-webhook feature 45 5 4 13
northwind-sales project 65 16 9 16
opp-amount-lock ask 13 1 3 0
cold-start-case-escalation-email feature 19 1 3 0

Scenario 5 ran twice: in cold-start-lead-source a fresh session given one client sentence used the library correctly but never found the loop; after a one-paragraph fix to CLAUDE.md, the second cold start found it and drove the build to done. All builds are design-only, and every gate was signed by someone standing in for the requester.

4. An MCP server. sfskills-mcp serves the library, the agents’ playbooks, the templates and the decision trees to any MCP client, plus read-only org probes through your existing sf CLI login: describe an org or an object, list fields, flows, validation rules, permission sets, Apex classes, triggers and LWC bundles, and run read-only Tooling API SOQL. The validate-only deploy the loop uses is a repository script, scripts/mock_deploy.py, which always runs sf project deploy start --dry-run.

Sixty-second start

Pick one path. docs/getting-started.md gives each a verification step; docs/installing.md has every flag, the bootstrap internals and the embeddings option.

Claude Code plugin (plugin 1.4.0). Installs the 12 router skills and 94 slash commands. It does not install the agent loaders or wire the MCP server (docs/installing-the-plugin.md).

/plugin marketplace add PranavNagrecha/AwesomeSalesforceSkills
/plugin install sfskills@sfskills

Clone. Open the folder in Claude Code and ask a Salesforce question. The routers, their rosters and the 70 agent loaders are committed, so that works with no build step. Bootstrap adds local keyword search and installs the slash commands; restart Claude Code afterwards.

git clone https://github.com/PranavNagrecha/AwesomeSalesforceSkills.git
cd AwesomeSalesforceSkills
python3 -m pip install -r requirements.txt    # inside a venv if your Python is externally managed
python3 scripts/bootstrap.py
python3 scripts/search_knowledge.py "trigger recursion"   # top skill: apex/recursive-trigger-prevention

For Cursor, python3 scripts/export_skills.py --target cursor writes exports/cursor/.cursor/ to copy into your project; --help lists the Windsurf, Aider, Augment, Codex and cross-tool agents targets.

MCP server (any MCP client). The org tools borrow the sf CLI’s session; the server stores no credentials.

pip install sfskills-mcp
sfskills-mcp-init                          # one-time download of the skill data to ~/.cache/sfskills-mcp/
claude mcp add sfskills -- sfskills-mcp    # other clients: mcp/sfskills-mcp/docs/CONNECT.md
sf org login web --alias my-dev            # optional; only the org tools need it

This repository is at sfskills-mcp 0.5.1 (mcp/sfskills-mcp/pyproject.toml); python3 -m pip show sfskills-mcp tells you which release PyPI installed. Client recipes for Claude Desktop, Cursor, Windsurf, Zed, VS Code, Cline, Continue, Codex CLI, Gemini CLI and Goose are in mcp/sfskills-mcp/docs/CONNECT.md.

What a session looks like

The smallest worked example, examples/builds/opp-amount-lock, abbreviated and reconstructed from the build’s own records (reports/drivers-log.md, RUN.md, plan.json). The ask is one line from Sales Ops.

you        /clarify-requirements "Add a validation rule so an Opportunity's Amount can't go
           down after the Opportunity is Closed Won."

clarifier  scale: ask (D=1 metadata type, S=1 skill with question table, O=1 object,
           integration=no; no override)
           13 questions from admin/validation-rules and admin/requirements-gathering-for-sf:
           7 blocking, written to CLARIFICATIONS.md; 6 pre-filled from their defaults

you        Q3 (who may still lower a Closed Won Amount?): Only the Sales Ops team (two people),
           via a custom permission checked by the rule, not a profile exemption.
           ...six more answers...
           python3 scripts/build_plan.py ingest-answers plan.json

planner    1 milestone, 1 step (M1-S01, metadata-builder), 4 acceptance tests
verifier   one round, three lenses pass, 10 warnings, 0 blockers -> verified

you        python3 scripts/build_plan.py gate plan.json go approve --by "Sales Ops" \
             --notes "Accepted knowingly: the step grants a bypass permission set to
                      Sales Ops only (W1); historical violations stay in place (W6)"

builder    objects/Opportunity/validationRules/Amount_Locked_After_Closed_Won.validationRule-meta.xml
             AND(
               NOT($Permission.Bypass_Opp_Amount_Lock),
               NOT(ISNEW()),
               NOT(ISBLANK(TEXT(StageName))),
               ISPICKVAL(StageName, "Closed Won"),
               Amount < PRIORVALUE(Amount)
             )
           + Bypass_Opp_Amount_Lock custom permission, Opp_Amount_Lock_Bypass permission set,
             package.xml (API 67.0), deploy-order.md

tester     check_validation_rules.py exit 0 · check_custom_permissions.py exit 0 · xml pass ·
           manifest pass
milestone  ready-with-findings, F-01..F-11

you        python3 scripts/build_plan.py gate plan.json accept approve --by "Sales Ops" \
             --notes "F-02: assigning the permission set is a post-deploy Setup action"

next       printed, never run:
           python3 scripts/mock_deploy.py plan.json --org-alias  --milestone M1

One thing went wrong, and it shows what the loop is for. The plan’s first blank guard, NOT(ISBLANK(StageName)), was copied from the skill’s own GOOD example and did not compile in the operator’s validate-only probe (“Field StageName is a picklist field”). NOT(ISBLANK(TEXT(StageName))) did. The step was amended and rebuilt, and admin/validation-rules now carries checker rule VR-PICK-01. The human made two gate decisions, read four distinct files, and spent about 20 minutes of a run that took about 170 (reports/drivers-log.md).

What’s in it

1,040 skills · 99 agents (70 run-time, 14 build-time, 14 deprecated redirect stubs) · 92 slash commands · 50 MCP tools · 7 decision trees.

Skills by domain

Domain Packages and scope
Admin 261 — objects, fields, record types, page layouts, permission sets, reports, the record-access model (OWD, role hierarchy, sharing rules), and the requirements work before them
Apex 159 — triggers, governor limits, async processing, outbound HTTP callouts, security enforcement, test patterns
Architect 106 — multi-org strategy, scalability limits, licensing, Well-Architected reviews, architecture decision records
Data 101 — data model, migrations, bulk loads, query optimisation, deduplication at volume, archival, SOSL
LWC 83 — reactivity, wire adapters, component communication, accessibility, performance, security, Jest
DevOps 70 — source tracking, packaging, branching, CI/CD pipelines, environment strategy, deployment troubleshooting
Flow 63 — record-triggered, screen, scheduled and orchestration flows, bulkification, fault handling, testing
Integration 61 — REST and SOAP APIs, Bulk API 2.0, Platform Events, CDC, Pub/Sub, Named Credentials, middleware
Agentforce 53 — agents, topics, actions, prompt templates, grounding, guardrails, evaluation
Security 49 — org hardening, encryption, session policy, MFA, monitoring, incident response, record-access troubleshooting
OmniStudio 34 — OmniScripts, FlexCards, DataRaptors, Integration Procedures, DataPack deployment

Skills (skills/) — 1,040 structured guides; the full catalog is docs/SKILLS.md. templates/ holds the shared Apex, LWC, Flow and Agentforce building blocks the skills point at (TriggerHandler, TestDataFactory, HttpClient, the LWC skeleton, the Flow fault path), and standards/decision-trees/ holds the routing trees an agent reads before choosing a technology: automation, flow pattern, Agentforce capability, async, integration pattern, sharing, performance.

Agents by tier

Run-time (70) agents do Salesforce work in your codebase or org. Build-time (15) agents maintain the library. Fourteen more are deprecated stubs whose commands redirect to /audit-router.

Tier Example commands
Developer + architecture (28) /refactor-apex, /consolidate-triggers, /gen-tests, /optimize-soql, /scan-security, /build-lwc, /score-deployment, /why-cant-user
Admin accelerators — Tier 1 (14) /design-object, /architect-perms, /build-flow, /preflight-load, /design-duplicate-rule, /design-path
Strategic — Tier 2 (9) /review-data-model, /run-fit-gap, /draft-stories, /audit-router, /decide-salesforce, /learn-salesforce
Vertical + governance — Tier 3 (11) /design-omni-channel, /design-sales-stages, /design-lead-routing, /plan-release-train, /assess-waf, /design-omnistudio
Orchestration — Tier 4 (8, beta) /clarify-requirements, /plan-build, /verify-plan, /run-build-step, /test-build-step, /keep-build-docs, /verify-milestone, /build-metadata

/build-from-requirements walks the whole loop and /run-build walks one milestone. Every agent with its command and output: docs/agents.md.

MCP tools

sfskills-mcp (mcp/sfskills-mcp/) — 50 tools across skill, agent, template and decision-tree retrieval plus org probes. 23 run offline against the library and local files, 26 read from an org through the sf CLI, and one, emit_envelope, writes an agent’s report under docs/reports/. None of them writes to your org. The list is long — the fifteen named here cover the usual paths: search_skill (lexical search over the 1,040-skill SfSkills corpus), get_skill, suggest_agent, get_agent, describe_org, describe_object_full, list_custom_fields, list_flows_on_object, list_validation_rules, list_permission_sets, list_apex_classes, list_apex_triggers, tooling_query, validate_against_org and probe_automation_graph. Credential-shaped strings in CLI output are scrubbed to [REDACTED] (mcp/sfskills-mcp/tests/test_sf_cli_redaction.py).

In this release

  • [x] 1,040 skills across 11 domains, each with SKILL.md, four reference files and a checker script
  • [x] 70 run-time agents, eight of them the beta requirement-to-build loop
  • [x] Five end-to-end build scenarios under examples/builds/
  • [x] Golden evals for 10 flagship skills (3 P0 cases each)
  • [x] Claude Code plugin 1.4.0 and sfskills-mcp 0.5.1

Why you can trust the output

  • Grounding. Every package’s references/well-architected.md has an ## Official Sources Used section, and pipelines/validators.py fails the build when one is missing. Sources are ranked in four tiers by standards/source-hierarchy.md: official Salesforce documentation first, and a lower tier never overrides a higher one on platform behaviour. The official pages per domain are in standards/official-salesforce-sources.md. A claim that could not be checked against a fetched page carries an inline UNVERIFIED (YYYY-MM-DD) marker instead of passing as fact.
  • Checkers. Every package ships a standard-library Python script under scripts/, usually check_.py, that inspects a project’s metadata or source for that package’s failure modes. scripts/validate_repo.py compiles each one and runs its --help. The build loop runs the cited checkers verbatim against every step and records each exit code in tests//results.json.
  • Validators. python3 scripts/validate_repo.py checks frontmatter, package shape, citations, agent contracts and the counts in this README (scripts/check_doc_counts.py); every gate is listed in standards/validation-gates.md. On every push and pull request to main, validate.yml runs it in four shards together with build_plugin.py --check, export_skills.py --check and run_evals.py --structure, and tests.yml runs the unit suites plus a CLI/MCP retrieval parity check over 154 held-out queries.
  • Golden evals. evals/golden/ holds 3 P0 cases (assertions, rubric, reference answer) for each of 10 flagship skills: apex 4, integration 3, lwc 2, flow 1. Lint them with python3 evals/scripts/run_evals.py --structure.
  • Org dry runs. scripts/mock_deploy.py assembles a build’s artefacts and runs sf project deploy start --dry-run against an org you name; it has no deploy option. The three larger worked examples made 61 validate-only runs (32, 13 and 16). Most platform refusals they hit are now checker rules, gotchas or mock_deploy.py fixes; the org as teacher lists each one, including the two not fixed yet.

Limits

  • Lexical search has no stemming. The FTS5 index uses the default tokenizer and prefix-matches query terms (pipelines/lexical_index.py): “trigger” finds “triggers”, but “deleting” does not find “delete”, so natural-language phrasing can miss. In Claude Code, which package opens is a model decision over router descriptions and rosters, and it can pick a neighbour. Name the domain (“this is a sharing question”) or run scripts/search_knowledge.py.
  • Grounded, not fully verified. Where an official page could not be fetched while authoring, the claim carries an UNVERIFIED (YYYY-MM-DD) marker; grep -rl "UNVERIFIED" skills/ lists every file that has one. Check those claims before relying on them.
  • The build loop is beta. All eight Tier-4 agents are status: beta. Every worked example is design-only, and its gates were signed by someone standing in for the requester.
  • Org access is read-only; mock deploy is always --dry-run. Validate-only compiles and checks the build and runs the Apex tests you ask for. It cannot show runtime behaviour, run Jest or load data; what the loop could not see lists each blind spot.
  • Golden evals are thin. 10 of 1,040 packages have them, in 4 of 11 domains, and CI lints their structure without grading answers against the rubric.
  • PyPI can trail the repository. The badge above shows the published release.

Docs

A browsable catalog site is generated by scripts/build_site.py and published by the Pages workflow (.github/workflows/pages.yml) when GitHub Pages is enabled for the repository.

Contributing

CONTRIBUTING.md covers adding a skill, fixing one and reporting a gap. The short version:

python3 scripts/search_knowledge.py ""                          # search before you write
python3 scripts/new_skill.py   --strict --agent 
python3 scripts/skill_sync.py --skill skills//
python3 scripts/validate_repo.py

Please follow the CODE_OF_CONDUCT.md. To cite SfSkills, use CITATION.cff. Bugs and gaps go to Issues.

License

SfSkills is source-available under the PolyForm Small Business License 1.0.0 (PolyForm-Small-Business-1.0.0). It is not open source. Use is free when your organisation has fewer than 100 people and under USD 1M in prior-year revenue, which covers individual developers, freelancers and independent consultants, including on billable client work. Everyone else needs a commercial license; LICENSING.md explains the thresholds and how to buy one.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add pranavnagrecha/awesomesalesforceskills
New to MCP? Start with the mcpskill.org guide →