Soql Lib Query Builder
beyond-the-cloud-dev/soql-lib
Builds Salesforce SOQL queries using the SOQL Lib fluent builder API (SOQL.cls).
REQUIRED companion for Salesforce metadata generation — load this schema/API-context skill in the SAME turn as ANY metadata generator (if you load a generator, you ALSO load this).
$ npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills platform-metadata-api-context-get --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/platform-metadata-api-context-get .claude/skills/platform-metadata-api-context-get && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "platform-metadata-api-context-get" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-get into .claude/skills/platform-metadata-api-context-get/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "platform-metadata-api-context-get", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-getType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills platform-metadata-api-context-get --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/platform-metadata-api-context-get .agents/skills/platform-metadata-api-context-get && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "platform-metadata-api-context-get" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-get into .agents/skills/platform-metadata-api-context-get/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "platform-metadata-api-context-get", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills platform-metadata-api-context-get --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/platform-metadata-api-context-get .cursor/skills/platform-metadata-api-context-get && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "platform-metadata-api-context-get" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-get into .cursor/skills/platform-metadata-api-context-get/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "platform-metadata-api-context-get", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/forcedotcom/sf-skills.git --path skills/platform-metadata-api-context-get--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills platform-metadata-api-context-get --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/platform-metadata-api-context-get .gemini/skills/platform-metadata-api-context-get && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "platform-metadata-api-context-get" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-get into .gemini/skills/platform-metadata-api-context-get/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "platform-metadata-api-context-get", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install forcedotcom/sf-skills platform-metadata-api-context-getInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/platform-metadata-api-context-get .github/skills/platform-metadata-api-context-get && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "platform-metadata-api-context-get" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-get into .github/skills/platform-metadata-api-context-get/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "platform-metadata-api-context-get", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills platform-metadata-api-context-get --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/platform-metadata-api-context-get .opencode/skills/platform-metadata-api-context-get && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "platform-metadata-api-context-get" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/platform-metadata-api-context-get into .opencode/skills/platform-metadata-api-context-get/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "platform-metadata-api-context-get", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
platform-metadata-api-context-getREQUIRED companion for Salesforce metadata generation — load this schema/API-context skill in the SAME turn as ANY metadata generator (if you load a generator, you ALSO load this).
Platform Metadata API Context Get is an agent skill from forcedotcom/sf-skills. REQUIRED companion for Salesforce metadata generation — load this schema/API-context skill in the SAME turn as ANY metadata generator (if you load a generator, you ALSO load this). Use whenever you create, generate, edit, or author metadata or a -meta.xml file (custom object, field, flow, and 604 Metadata API types): it gives authoritative schema, required flags, and XML structure so files deploy cleanly. Trigger on -meta.xml, metadata schema, api context. DO NOT use for SOQL, DML, runtime sObject access, or…
Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 615 other files, including reference files and assets (for example `README.md`, `assets/metadata_api/AIApplication.json` and `assets/metadata_api/AIApplicationConfig.json`).
It sits in Sales & Support, covering CRM management. It works with Salesforce. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3c15867. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqsfFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
soap.sforce.comsalesforce.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Platform Metadata API Context Get loads about 5.7k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 2,329 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from forcedotcom/sf-skills at commit 3c15867, republished under its Apache-2.0 licence (© forcedotcom). 2,329 words, ~5,705 tokens.
.claude/skills/platform-metadata-api-context-get/SKILL.md (or your agent's skills folder). This skill also uses 613 other files; get the full folder from GitHub.This skill provides comprehensive documentation for all 604 Salesforce Metadata API types. Use this skill to create, understand, and modify Salesforce metadata XML files in your Salesforce DX projects.
The Salesforce Metadata API allows you to retrieve, deploy, create, update, or delete customizations for your org. This skill gives you access to detailed documentation for each metadata type, including:
ALWAYS consume only the specific sections you need from JSON files, NOT entire files.
CRITICAL: For assets/metadata_api/*.json files, always use jq or programmatic JSON parsing to extract only the specific sections you need. Do not load these files whole via Read, cat, read_file, or any other tool that injects the complete file — they contain verbose WSDL segments and other sections that waste 60-80% of tokens. (Loading small files like this SKILL.md or the index table with Read is fine; the rule applies specifically to the large metadata-type JSON files.)
Each JSON file contains multiple sections (fields, description, wsdl_segment, etc.). Most use cases only require 1-2 sections:
fields sectiondescription sectiondeclarative_metadata_sample_definition sectionwsdl_segment (verbose schema), file_information, directory_locationThis reduces token consumption by 60-80% per file.
To get information about a specific metadata type:
Recommended:
Avoid:
Each metadata type is stored as a JSON file in assets/metadata_api/ with the following structure:
{
"sections": ["title", "description", "fields", "wsdl_segment", ...],
"title": "MetadataTypeName - Metadata API",
"description": "Plain-text description of the metadata type.",
"fields": {
"fieldName": {
"type": "string",
"description": "Field description",
"required": true
}
},
"file_information": ".object",
"directory_location": "objects",
"wsdl_segment": "<xsd:complexType>...</xsd:complexType>",
"declarative_metadata_sample_definition": [
{
"description": "Example description",
"code": "<?xml version=\"1.0\"?>\n<MetadataType>...\n</MetadataType>"
}
]
}Note: string values (
title,description,file_information,directory_location,wsdl_segment) are stored as plain text — no markdown headers (#/##) or code fences.file_informationholds just the file suffix (e.g..object,.ai) anddirectory_locationjust the SFDX folder name (e.g.objects,aiApplications).
The sections array indicates which top-level keys are present in each file. Common sections include:
title: The metadata type name and headerdescription: What the metadata type representsfields: The type's own fields, with types and descriptionssub_types: (composite types only) a map of referenced sub-type name → that sub-type's fields, e.g. Flow → sub_types.FlowActionCallfile_information: File naming conventions and extensionsdirectory_location: Where files are stored in SFDX projectswsdl_segment: XML schema definition from the WSDLdeclarative_metadata_sample_definition: Example XML codeSome metadata types have additional sections specific to their functionality. See the Index Table for a complete breakdown.
More detail: background on why token optimization matters, worked usage examples, common workflows, a full section glossary, and versioning/support notes live in
references/usage_guide.md. Load it with theReadtool only when needed.
CRITICAL: To minimize token usage and costs:
CRITICAL WARNING: DO NOT use the read_file tool (or any whole-file reading tool) on these JSON files!
read_file loads the entire file content into your context, defeating the purpose of section-specific consumption. You will waste 60-80% of your token budget loading unnecessary WSDL segments and verbose sections. (Using Read on small files such as this SKILL.md or the index table is fine — this rule is only about the large metadata-type JSON files.)
Approach: Programmatically parse the JSON file and extract ONLY the sections you need using code, not whole-file reading tools.
Working Examples Available:
We provide complete, working code examples in multiple languages:
examples/python_section_loading.py - Shows json.load() with section extractionexamples/javascript_section_loading.js - Shows JSON.parse() with section extractionexamples/bash_section_loading.sh - Shows jq command-line JSON processingSee examples/README.md for complete documentation and usage instructions.
Quick Pattern (adapt to your language):
fields, description)wsdl_segment, declarative_metadata_sample_definition)NEVER use the read_file tool on these JSON files:
read_file assets/metadata_api/CustomObject.json # Loads entire file into context!
read_file assets/metadata_api/Flow.json # Wastes 60-80% tokens!NEVER load all files:
read_file assets/metadata_api/*.json # This loads ~15MB of data!Token Impact:
Many metadata types have large WSDL segments or extensive field lists. Always load only the specific sections you need from each JSON file rather than consuming the entire file:
sections array from the JSONfields for field definitions, description for overview)This approach can reduce token consumption by 60-80% per file by excluding verbose WSDL definitions and lengthy examples.
Ask yourself:
fields sectiondescription sectiondeclarative_metadata_sample_definition sectionwsdl_segment section (rarely needed)Use one of these methods:
references/metadata_index_table.md for related typesDecision Tree for Section Loading:
Need field definitions?
→ Load ONLY 'fields' section (~50-200 tokens)
Need to understand what the type does?
→ Load ONLY 'description' section (~20-100 tokens)
Need XML structure example?
→ Load ONLY 'declarative_metadata_sample_definition' (~100-300 tokens)
Need all three?
→ Load 'fields' + 'description' + 'declarative_metadata_sample_definition'
→ Still skip 'wsdl_segment', 'file_information', 'directory_location'
→ Savings: ~60-70% vs loading entire file
Need schema validation?
→ Only then load 'wsdl_segment' (this is verbose)Request format:
wsdl_segment unless explicitly neededUse the loaded information to:
All metadata type JSON files are located in:
assets/metadata_api/
├── CustomObject.json
├── Flow.json
├── ApexClass.json
├── Profile.json
└── ... (600 more files)When using this skill, files are referenced as:
assets/metadata_api/CustomObject.json./assets/metadata_api/CustomObject.jsonThe skill will automatically resolve paths based on the working directory.
When generating Salesforce metadata XML files, follow these requirements to ensure valid, deployable files.
All metadata files must:
Include XML declaration:
<?xml version="1.0" encoding="UTF-8"?>Use correct namespace:
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">Match root element to metadata type:
<CustomObject><Flow><Profile>The namespace is required and must be exactly:
http://soap.sforce.com/2006/04/metadataCorrect:
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">Incorrect:
<CustomObject> <!-- Missing namespace -->
<CustomObject xmlns="http://salesforce.com/metadata"> <!-- Wrong namespace -->Each metadata type has different field requirements:
required: true in the JSON): the WSDL marks the field as required.externalDataSource, externalName, nameField as required: true (the first two are external-object-only quirks), but a normal __c CustomObject also needs label, pluralLabel, deploymentStatus, and sharingModel to deploy. Always cross-check with the declarative_metadata_sample_definition examples.Example from CustomObject (note: practical authoring needs more than what required: true marks):
{
"fields": {
"nameField": {
"type": "CustomField",
"description": "The name field for the custom object",
"required": true
},
"label": {
"type": "string",
"description": "The label for the custom object (effectively required for normal __c objects)",
"required": false
},
"sharingModel": {
"type": "SharingModel (enumeration)",
"description": "The sharing model for the object (effectively required for normal __c objects)",
"required": false
},
"enableHistory": {
"type": "boolean",
"description": "Enable field history tracking",
"required": false
}
}
}Before deploying:
sf project deploy validate to catch errorsMore detail: field-type→XML mapping tables, file-naming/two-file/child-type conventions, and full well-formed-file examples are in
references/usage_guide.md.
Some Metadata API type names also exist as Enterprise/Data API or Tooling API object names. Examples include ApexClass, ApexTrigger, CustomField, CustomObject, EmailTemplate, Layout, Profile, PermissionSet, RecordType, StaticResource, WebLink, ValidationRule, and Flow.
When the prompt is ambiguous (e.g., "tell me about Profile" or "what fields are on ApexClass"), ask whether the user wants:
.profile-meta.xml, .cls-meta.xml).Heuristics that resolve most ambiguity without asking:
package.xml, force-app/, sfdx, .meta.xml, "deploy", "retrieve", "authoring", "blueprint", "template", "class definition", or "permissions" in a deployment sense → Metadata API (this skill).ApexCodeCoverage, EntityDefinition, TraceFlag, "code coverage", "compile errors", SymbolTable, debug logging → Tooling API.Default-when-no-signals rule: if the prompt has none of the signals above AND this skill (platform-metadata-api-context-get) was invoked directly by name, default to the Metadata API interpretation and explicitly disclose the assumption to the user (e.g., "Interpreting this as the Metadata API type for .cls-meta.xml authoring; let me know if you meant the Tooling API record or Enterprise/Data sObject"). The skill-invocation context itself is a signal of authoring/deployment intent.
Problem: Cannot find metadata type file
Solutions:
CustomObject.json, NOT customobject.json, Custom_Object.json, or Custom-Object.json).references/metadata_index_table.md. Use this two-pass recovery algorithm against the index:customobject, Custom_Object, Custom-Object → CustomObject.difflib.get_close_matches(query_normalized, index_normalized, n=3, cutoff=0.7) or Levenshtein distance ≤ 2. Resolves: customfeld → CustomField, apxclass → ApexClass. Pure substring matching cannot recover character deletions.customobject matches both CustomObject and CustomObjectTranslation), prefer the entry whose normalized length equals the normalized query length; otherwise prefer the shortest match.Two related patterns to recognize:
AsyncResult, SaveResult, DeleteResult, UpsertResult, Error, DescribeMetadataResult, etc.) — fields is empty AND wsdl_segment is populated. These are SOAP response wrappers; their schema lives entirely in wsdl_segment. Consume that section if you need their structure. They are not deployable source files.AllOrNoneHeader, SessionHeader, CallOptions, DebuggingHeader, OwnerChangeOptions, etc.) — fields has 1–2 minimal entries, no wsdl_segment. These configure SOAP request behavior; they are call-time options, not metadata you author or deploy.In both cases, the thin JSON output is correct. Don't try to author a .AsyncResult-meta.xml — these types have no source-file form.
Problem: Expected section not in JSON file
Solutions:
sections array to see what's availableProblem: Field definition lacks details
Solutions:
wsdl_segment for complete schema definitionProfileObjectPermissions[])When the fields section gives a complex type name like ProfileObjectPermissions[] or LayoutItem[] or ApprovalStep[], the sub-fields of that nested type are NOT in the fields section — they live in wsdl_segment for that complex type. The skill's "skip wsdl_segment by default" rule is for token economy on the simple-field path; for nested types you need to drill in.
Worked example — find the sub-fields of objectPermissions on Profile:
# 1. Get the field type name from the fields section
jq '.fields.objectPermissions' assets/metadata_api/Profile.json
# → {"type": "ProfileObjectPermissions[]", ...}
# 2. Pull just the matching complexType from wsdl_segment using grep -A
jq -r '.wsdl_segment' assets/metadata_api/Profile.json | grep -A 30 'complexType name="ProfileObjectPermissions"'The grep -A N window keeps token cost ~150 tokens instead of loading the whole wsdl_segment (which can be 5K+ tokens on large types). Use this pattern any time fields returns a Foo[] type and you need Foo's sub-fields.
Problem: Generated XML fails validation
Solutions:
http://soap.sforce.com/2006/04/metadataProblem: Metadata file won't deploy
Solutions:
sf project deploy validate firstHere are the most frequently used metadata types:
For a complete list of all metadata types, see Index Table.
© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 613 other files (references, assets) in skills/platform-metadata-api-context-get of forcedotcom/sf-skills.
Open the folder on GitHubat commit 3c15867
Platform Metadata API Context Get next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Platform Metadata API Context Get this skillforcedotcom/sf-skills | 1.1k | — | ~5.7k | Automated safety check: Pass | Apache-2.0 | |
| Soql Lib Query Builderbeyond-the-cloud-dev/soql-lib | 154 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Sf DatacloudJaganpro/sf-skills | 424 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Soql Lib Selectorbeyond-the-cloud-dev/soql-lib | 154 | — | ~2k | Automated safety check: Pass | MIT | |
| Dev SetupPortwood-Global-Solutions/Portwood | 125 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Sf FlowJaganpro/sf-skills | 424 | — | ~1.8k | Automated safety check: Pass | MIT |
beyond-the-cloud-dev/soql-lib
Builds Salesforce SOQL queries using the SOQL Lib fluent builder API (SOQL.cls).
Jaganpro/sf-skills
Salesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows.
beyond-the-cloud-dev/soql-lib
Creates Salesforce Apex selector classes using the SOQL Lib selector pattern.
Portwood-Global-Solutions/Portwood
Get from a fresh clone of Portwood to a working, fully-tested Salesforce org.
Jaganpro/sf-skills
Creates and validates Salesforce Flows with 110-point scoring.
gmapsscraper/google-maps-agent-skills
Export Google Maps business data to CSV, JSON, or CRM format (HubSpot, Pipedrive, Salesforce).
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Works with
Categories
REQUIRED companion for Salesforce metadata generation — load this schema/API-context skill in the SAME turn as ANY metadata generator (if you load a generator, you ALSO load this). Platform Metadata API Context Get is an agent skill from forcedotcom/sf-skills. REQUIRED companion for Salesforce metadata generation — load this schema/API-context skill in the SAME turn as ANY metadata generator (if you load a generator, you ALSO load this).
Platform Metadata API Context Get fits situations like: author metadata; A -meta.xml file (custom object; 604 Metadata API types): it gives authoritative schema; XML structure so files deploy cleanly.
Run `npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a claude-code`. Or copy the skill folder (skills/platform-metadata-api-context-get in forcedotcom/sf-skills) into .claude/skills/platform-metadata-api-context-get in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a codex`. Or copy the skill folder (skills/platform-metadata-api-context-get in forcedotcom/sf-skills) into .agents/skills/platform-metadata-api-context-get in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill platform-metadata-api-context-get -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/platform-metadata-api-context-get, .gemini/skills/platform-metadata-api-context-get, .github/skills/platform-metadata-api-context-get and .opencode/skills/platform-metadata-api-context-get in your project.
Going by SKILL.md and its folder, Platform Metadata API Context Get needs the command-line tools its instructions call (jq and sf). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: soap.sforce.com and salesforce.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Platform Metadata API Context Get is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Platform Metadata API Context Get: Soql Lib Query Builder (beyond-the-cloud-dev/soql-lib, 154 stars), Sf Datacloud (Jaganpro/sf-skills, 424 stars), Soql Lib Selector (beyond-the-cloud-dev/soql-lib, 154 stars) and Dev Setup (Portwood-Global-Solutions/Portwood, 125 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,058 GitHub stars. The repository holds 248 skills in this directory. The repository was last updated on October 3, 2026.
Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.