Markit
shift-labs-ai/markit
Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.
Generate the JSON config file that the Salesforce sandbox post-copy automation tool consumes, from a customer SOP in any format (PDF, xlsx, csv, JSON, docx, Markdown, plain text, or a screenshot of…
$ npx skills add forcedotcom/sf-skills --skill automation-sandbox-post-copy-config-generate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills automation-sandbox-post-copy-config-generate --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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate .claude/skills/automation-sandbox-post-copy-config-generate && 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 "automation-sandbox-post-copy-config-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate into .claude/skills/automation-sandbox-post-copy-config-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "automation-sandbox-post-copy-config-generate", 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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generateType 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 automation-sandbox-post-copy-config-generate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills automation-sandbox-post-copy-config-generate --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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate .agents/skills/automation-sandbox-post-copy-config-generate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "automation-sandbox-post-copy-config-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate into .agents/skills/automation-sandbox-post-copy-config-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "automation-sandbox-post-copy-config-generate", 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 automation-sandbox-post-copy-config-generate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills automation-sandbox-post-copy-config-generate --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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate .cursor/skills/automation-sandbox-post-copy-config-generate && 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 "automation-sandbox-post-copy-config-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate into .cursor/skills/automation-sandbox-post-copy-config-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "automation-sandbox-post-copy-config-generate", 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 plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate--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 automation-sandbox-post-copy-config-generate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills automation-sandbox-post-copy-config-generate --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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate .gemini/skills/automation-sandbox-post-copy-config-generate && 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 "automation-sandbox-post-copy-config-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate into .gemini/skills/automation-sandbox-post-copy-config-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "automation-sandbox-post-copy-config-generate", 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 automation-sandbox-post-copy-config-generateInstalls 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 automation-sandbox-post-copy-config-generate -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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate .github/skills/automation-sandbox-post-copy-config-generate && 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 "automation-sandbox-post-copy-config-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate into .github/skills/automation-sandbox-post-copy-config-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "automation-sandbox-post-copy-config-generate", 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 automation-sandbox-post-copy-config-generate -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 automation-sandbox-post-copy-config-generate --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/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate .opencode/skills/automation-sandbox-post-copy-config-generate && 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 "automation-sandbox-post-copy-config-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate into .opencode/skills/automation-sandbox-post-copy-config-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "automation-sandbox-post-copy-config-generate", 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.
automation-sandbox-post-copy-config-generateGenerate the JSON config file that the Salesforce sandbox post-copy automation tool consumes, from a customer SOP in any format (PDF, xlsx, csv, JSON, docx, Markdown, plain text, or a screenshot of…
Automation Sandbox Post Copy Config Generate is an agent skill from forcedotcom/sf-skills. Generate the JSON config file that the Salesforce sandbox post-copy automation tool consumes, from a customer SOP in any format (PDF, xlsx, csv, JSON, docx, Markdown, plain text, or a screenshot of an endpoint table). Use when the user asks to create, build, generate, produce, or convert a post-copy or post-refresh automation config — turning a sandbox-refresh SOP into a JSON array of OutboundMessages and RemoteSiteSettings entries with ConfigurationName, Label, Fields, IsActive, and ExecutionOrder. Also trigger…
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files and assets (for example `assets/config_template.json`, `assets/json_schema.json` and `examples/sample_sop_excerpt.md`).
It sits in Documents & Office, covering Operations and SOPs, CRM management and Word documents. It works with Salesforce, Microsoft Excel and Microsoft Word. 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.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4bbae5c. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Automation Sandbox Post Copy Config Generate loads about 4.1k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 259 tokens; SKILL.md has 2,052 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 4bbae5c, republished under its Apache-2.0 licence (© forcedotcom). 2,052 words, ~4,130 tokens.
.claude/skills/automation-sandbox-post-copy-config-generate/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Convert a customer's sandbox-refresh / post-copy SOP into a structured JSON array that the post-copy automation tool consumes. Each entry is a declarative instruction: which Salesforce configuration to update, which fields are involved, whether it is active, and what order it runs in.
Do not compose the output from memory. Before you write the file, you
MUST open and read assets/config_template.json and copy an entry from it
for each action. Every output entry is exactly one of these two shapes —
five top-level keys, no others, no wrapper object:
[
{
"ConfigurationName": "OutboundMessages",
"Label": "IR_Account_OBM_PROD",
"Fields": { "EndpointUrl": "https://uat.example.com/services/account", "Object": "Account" },
"IsActive": true,
"ExecutionOrder": 1
},
{
"ConfigurationName": "RemoteSiteSettings",
"Label": "R12_Remote_Site",
"Fields": { "RemoteSiteUrl": "https://uat.example.com" },
"IsActive": true,
"ExecutionOrder": 2
}
]ConfigurationName: exactly OutboundMessages or RemoteSiteSettings — never Type, Name, or Operation.Fields: EndpointUrl + Object (both required). RemoteSite Fields: RemoteSiteUrl only — never Url/RemoteSiteURL.steps/actions/records wrapper. No <…> or REPLACE_WITH_… placeholder ever survives into the output.If you announce "I will now write …" without having read the template and catalog, stop and read them first — a from-memory guess produces the wrong keys and fails at runtime.
ConfigurationName, emitting the canonical JSON array.generating-* skills), deploying anything to an org, running the
post-copy tool, inferring or fabricating values not present in the SOP —
if the SOP does not give a concrete URL/value for an action, skip the
action.Every emitted entry must have every Field populated with a real value
from the customer source. No empty strings, no null, no
<from-backup> / TBD / TODO placeholders. Customers should never
see an unpopulated field in the output — if a value cannot be located,
skip the entry and surface it. See the corresponding rule below.
Gather or infer before generating:
post-copy-config.json in the current directory unless specified.If the user provides a clear SOP and target, generate immediately without asking unnecessary questions.
All steps are sequential. Steps 1–5 (reading the SOP, the catalog, the
template, and the schema) are prerequisites to writing — you may not
skip to the write step. If you catch yourself about to emit JSON without
having read assets/config_template.json and
references/configuration_catalog.md, go back and read them first.
Locate and read every supplied SOP source — read
references/source_format_handling.md for the exact extraction
recipe per format (PDF, xlsx, csv, JSON, docx, image). At a glance:
pypdf (text layer) and OCR
image-based pages with pytesseract if the text layer is empty.openpyxl (data_only=True),
scan all columns including ones outside the visible default
range, check cell comments and embedded media.python-docx.Read tool to view, then
decide if the image carries data (a table of endpoint URLs, a
setup screenshot showing values to capture) or is purely
illustrative (architecture diagram, flow chart). Extract values
only from data-bearing images. See the image-handling rules in
references/source_format_handling.md.Identify post-copy actions — read
references/sop_parsing_patterns.md for the heuristics that turn prose
instructions ("Update Outbound Message endpoint X to URL Y") into
structured action records.
Map each action to a ConfigurationName — load
references/configuration_catalog.md. The catalog currently supports
only OutboundMessages and RemoteSiteSettings. Any action that
targets a different configuration type is out of scope: skip it and
list it in the response so the user can extend the catalog later.
Read the JSON template — load assets/config_template.json. It
shows the exact required shape of one OutboundMessages entry and one
RemoteSiteSettings entry, with <…> placeholder slots. Copy an
entry, replace every <…> slot with the concrete SOP value, and keep
the exact top-level keys (ConfigurationName, Label, Fields,
IsActive, ExecutionOrder) — never rename them to Type, Name,
Operation, etc. Never emit an entry that still contains a <…>
placeholder; if you cannot fill a slot, skip the entry (see Rules).
Validate against the schema — load assets/json_schema.json. Every
entry must conform: ConfigurationName is one of the catalog values,
Fields is an object, IsActive is boolean, ExecutionOrder is a
positive integer.
Group entries by phase, then assign ExecutionOrder —
ExecutionOrder is a phase number, not a per-row counter. Entries that
can run in parallel (no dependency between them) share the same value.
Different ConfigurationName types typically get different phases; all
entries within one phase share its number. See the ordering heuristic
in references/sop_parsing_patterns.md.
Compare against the example — verify the output shape against
examples/sample_sop_to_config.json before writing.
Write the JSON file — emit pretty-printed JSON (2-space indent).
| Constraint | Rationale |
|---|---|
| Output is a JSON array at the top level (not an object with a wrapper key) | The post-copy tool consumes an array directly |
Every entry has all five required keys: ConfigurationName, Label, Fields, IsActive, ExecutionOrder | The tool fails fast on missing keys; partial entries are not silently accepted |
ConfigurationName is one of the catalog values | Unknown values cause the runtime mapper to error out — never invent a new type without updating the catalog |
Fields keys are the actual API field names on the target metadata | Wrong key names mean the tool can't locate the field at runtime |
Fields values are the concrete values from the SOP (literal URLs, names, etc.) | The post-copy tool applies the value as-is; placeholders are not resolved at runtime |
| If the SOP names an action but no concrete value (URL, etc.) is provided, skip the entry entirely and list it in the response | Generating an entry without a real value would produce a silent no-op or a deployment error at runtime |
Every Field in every emitted entry must be a real value sourced from the customer's SOP or a supplemental sheet they provided. Never emit "", null, or placeholder markers like <from-backup> / TBD / TODO | Customers consume the JSON directly — empty / placeholder fields surface to them as broken output and would also fail at runtime |
| Before skipping an OBM / RemoteSite for missing values, search every tab / sheet of the supplied workbook (and every supplied file) for an endpoint table keyed by that name | Customer SOPs frequently split the action list and the URL table across different sheets (e.g., the Michelin UAT Refresh Planner lists OBMs in the Integration tab but the URL table lives in the Evolution SFA tab) |
Information already captured by another field is not repeated in Fields (e.g., RemoteSiteName lives in Label, IsActive lives at the top level — neither belongs in Fields) | Duplicate keys make the entry ambiguous and waste bytes the tool then has to reconcile |
For OutboundMessages, Fields MUST include both EndpointUrl and Object (the target SObject — Account, Contact, Asset, Lead, etc.) | Same Label can apply to multiple OBMs differing only by entity; Object disambiguates them at runtime |
For RemoteSiteSettings, the URL key MUST be spelled exactly RemoteSiteUrl — never Url, RemoteSiteURL, SiteUrl, or EndpointUrl | The post-copy tool matches the field by exact API name; any other spelling means it can't locate the field and the entry silently no-ops at runtime |
ExecutionOrder is a phase number — entries with no dependency on each other share the same value | The post-copy tool runs all entries with the same ExecutionOrder in parallel; sequencing is only needed where one action depends on another |
IsActive: false entries remain in the output (do not delete them) | The customer toggles them on per-environment; deleting loses traceability |
Default IsActive to true when the SOP marks an action as required | Most SOP steps are required; explicit opt-out is the exception |
See the entry shapes shown in the STOP section above, or copy directly from
assets/config_template.json. Do not rename the five top-level keys
(ConfigurationName, Label, Fields, IsActive, ExecutionOrder) to
Type, Name, Operation, apiName, etc., and do not wrap the array
in an object with a steps / actions / records key.
| Issue | Resolution |
|---|---|
| SOP step says "delete all endpoints" rather than "update X to Y" | Emit an entry with ConfigurationName: "OutboundMessages", Label describing the deletion target, and a note in Fields ({"Action": "Delete"}); the catalog documents the Delete pattern |
| Same Label appears for multiple environments (fcQA + fcUAT) | Emit one entry per environment; suffix the Label or use the environment-specific Label as it appears in the SOP |
For OutboundMessages, the same Label can legitimately apply to multiple entries when each targets a different Object (e.g., one OBM for Account, one for Contact). | Do not collapse them — emit one entry per Object. The Object value (inferred from the OBM name like IR_Account_OBM_PROD → Account) is what distinguishes them, not the Label. |
| SOP groups many Custom Labels together in a single table | One entry per row of the table — do not collapse into a single bulk entry |
| Action targets a setting outside the catalog (CustomLabels, ConnectedApps, NamedCredentials, SSO, CustomSettings, etc.) | Skip the action, do NOT invent a new ConfigurationName; list every skipped action in the response so the user knows what to add to the catalog later |
| SOP includes pre-refresh steps interleaved with post-refresh | Filter out pre-refresh — only post-refresh / post-copy actions belong in the output |
| SOP names an outbound message / remote site to update but does not include the new URL | Skip the entry. List the skipped item in the response so the user can supply the URL or amend the SOP |
SOP includes secrets in URLs (e.g., https://USER:TOKEN@host/...) | Embed them verbatim — the tool consumes the value as-is — but flag in the response so the user is aware the JSON now contains a secret and should be stored / shared accordingly |
| User's SOP is in a non-English language or has heavy formatting (tables, callouts) | Extract the prose first, normalize whitespace, then parse — formatting artifacts do not need to survive into the JSON |
| The SOP includes screenshots / images. Some are illustrative (architecture diagrams, flow charts, "this is what the setup screen looks like" examples); others are data-bearing (a screenshot of a real Outbound Messages list, a captured Remote Site table). | Treat illustrative images as out-of-scope — do NOT extract values from them. For data-bearing images (the surrounding text refers to "the values shown below" / "as captured in the screenshot above" / a real Endpoint URL is visible), OCR them and use the values. See references/source_format_handling.md for the heuristic. |
| The SOP is supplied as multiple files (e.g., a PDF + a companion xlsx + a screenshot folder), or values are split across tabs / pages | Read every supplied file end-to-end before skipping any entry. The action list and the URL table are frequently in different files — see the rule above about multi-sheet sources. |
Deliverables:
post-copy-config.json) containing a
top-level array of post-copy action entries.ConfigurationName, actions skipped because they did not map to the
catalog, and actions skipped because the SOP did not include a concrete
value.The output file structure conforms to assets/json_schema.json.
| Need | Delegate to |
|---|---|
| Generate the actual Salesforce metadata XML for a Custom Label / Named Credential / Remote Site / etc. | The matching generating-* skill |
| Deploy generated metadata or run the post-copy tool against an org | deploying-metadata skill |
| Compare an SOP against entities defined in UDD | udd:research-entities |
| File | When to read |
|---|---|
assets/config_template.json | Step 4 — starting structure for the JSON output |
assets/json_schema.json | Step 5 — validate every emitted entry |
references/configuration_catalog.md | Step 3 — to map an SOP action to a ConfigurationName and get the canonical Field keys |
references/sop_parsing_patterns.md | Step 2 and step 6 — heuristics for extracting actions from prose and ordering them |
references/source_format_handling.md | Step 1 — exact extraction recipe per input format (PDF / xlsx / csv / JSON / docx / image) and the data-bearing-vs-illustrative image heuristic |
examples/sample_sop_to_config.json | Step 7 — verify output shape matches expected format |
examples/sample_sop_excerpt.md | Step 7 — see a representative SOP excerpt that produced the sample JSON |
© 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 7 other files (references, assets) in plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate of forcedotcom/sf-skills.
Open the folder on GitHubat commit 4bbae5c
Automation Sandbox Post Copy Config Generate 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 |
|---|---|---|---|---|---|---|
| Automation Sandbox Post Copy Config Generate this skillforcedotcom/sf-skills | 1.1k | — | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Markitshift-labs-ai/markit | 1.3k | — | ~299 | Automated safety check: Pass | MIT | |
| File Intelearlyaidopters/second-brain | 194 | — | ~481 | Automated safety check: Pass | None | |
| File ReadingWide-Moat/open-computer-use | 126 | 1 repos | ~3.1k | Automated safety check: Pass | Proprietary | |
| Markdown Converterintellectronica/agent-skills | 295 | 4 repos | ~492 | Automated safety check: Pass | CC0-1.0 | |
| Light File ReadingLight0305/Light-skills | 640 | — | ~4.1k | Automated safety check: Pass | MIT |
shift-labs-ai/markit
Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.
earlyaidopters/second-brain
Run the Gemini file processor on any folder — extracts content from PDF, PPTX, XLSX, DOCX, CSV, JSON, and any text format, then generates Obsidian-ready summaries.
Wide-Moat/open-computer-use
A skill your agent uses when a file has been uploaded but its content is NOT in your context — only its path at /mnt/user-data/uploads/ is listed in an uploadedfiles block.
intellectronica/agent-skills
Convert documents and files to Markdown using markitdown. An agent skill from intellectronica/agent-skills.
Light0305/Light-skills
Light 多格式文件深度理解常驻技能:强大地读 Word / PDF / PPTX / Excel / CSV / 图片 / 视频 / 代码 / 压缩包,不只提取文字,而是理解结构 / 图表 / 数据 / 格式要求 / 隐含意图,产结构化"理解笔记"五面 (结构逻辑·关键内容·格式约束·视觉风格·可复用)并映射到下游技能动作(这个文件→接下来能做什么)。
NateBJones-Projects/OB1
Use in Claude Code when a user asks to read, analyze, summarize, or extract from a heavyweight file such as PDF, DOCX, PPTX, XLSX, CSV, or TSV.
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
Generate the JSON config file that the Salesforce sandbox post-copy automation tool consumes, from a customer SOP in any format (PDF, xlsx, csv, JSON, docx, Markdown, plain text, or a screenshot of…. Automation Sandbox Post Copy Config Generate is an agent skill from forcedotcom/sf-skills. Generate the JSON config file that the Salesforce sandbox post-copy automation tool consumes, from a customer SOP in any format (PDF, xlsx, csv, JSON, docx, Markdown, plain text, or a screenshot of an endpoint table).
Automation Sandbox Post Copy Config Generate fits situations like: the user asks to create; convert a post-copy; phrasings like post-copy config; post-refresh automation JSON.
Run `npx skills add forcedotcom/sf-skills --skill automation-sandbox-post-copy-config-generate -a claude-code`. Or copy the skill folder (plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate in forcedotcom/sf-skills) into .claude/skills/automation-sandbox-post-copy-config-generate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill automation-sandbox-post-copy-config-generate -a codex`. Or copy the skill folder (plugins/builder/dx-org-lifecycle/skills/automation-sandbox-post-copy-config-generate in forcedotcom/sf-skills) into .agents/skills/automation-sandbox-post-copy-config-generate 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 automation-sandbox-post-copy-config-generate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/automation-sandbox-post-copy-config-generate, .gemini/skills/automation-sandbox-post-copy-config-generate, .github/skills/automation-sandbox-post-copy-config-generate and .opencode/skills/automation-sandbox-post-copy-config-generate in your project.
SKILL.md names no scripts, command-line tools or credentials: Automation Sandbox Post Copy Config Generate is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Automation Sandbox Post Copy Config Generate 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 4.1k tokens (SKILL.md is roughly 17k 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 4.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Automation Sandbox Post Copy Config Generate: Markit (shift-labs-ai/markit, 1.3k stars), File Intel (earlyaidopters/second-brain, 194 stars), File Reading (Wide-Moat/open-computer-use, 126 stars) and Markdown Converter (intellectronica/agent-skills, 295 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,067 GitHub stars. The repository holds 252 skills in this directory. The repository was last updated on October 9, 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.