К основному содержанию
скилл CX Codex

platform-metadata-retrieve — скилл для Claude Code: выгрузка

Скилл тянет метаданные из org в локальный проект через sf project retrieve start: все изменения, каталог, тип, манифест или пакет.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add forcedotcom/sf-skills --skill platform-metadata-retrieve -a claude-code
Открыть на GitHub

Что делает platform-metadata-retrieve

Скилл закрывает одну операцию — выгрузку метаданных из Salesforce org в локальный проект. Он вызывает sf project retrieve start и умеет работать в нескольких режимах: забрать все удалённые изменения, выгрузить по исходному каталогу, по типу метаданных (в том числе с маской), по манифесту package.xml или по имени пакета. Формат вывода — исходники или ZIP-архив метаданных.

Внутри — таблица шаблонов команд и правила. Все вызовы идут с флагом --json, потому что так ответ разбирается надёжнее. Маски вроде ApexClass:My* нужно брать в кавычки: без них шелл раскроет звёздочку сам, и вы не получите ничего. --manifest нельзя смешивать с --metadata или --source-dir, команда на этом упадёт.

Запускать скилл нужно из корня проекта Salesforce — рядом должен лежать sfdx-project.json. Режим «все изменения» опирается на source tracking, а production org его не поддерживает, поэтому для прода придётся брать каталог, тип или манифест. --ignore-conflicts действует только на trackable org, то есть на scratch и sandbox. По умолчанию команда ждёт 33 минуты, для больших выгрузок таймаут поднимают через --wait. Метаданные, выгруженные по имени пакета, годятся только для справки — в исходники проекта их не добавляют.

Какие задачи решает

  • выгрузить все изменения из org в локальный проект
  • забрать конкретный тип метаданных по маске
  • выгрузить метаданные по манифесту package.xml
  • получить метаданные пакета в формате ZIP
  • перезаписать локальные конфликты при выгрузке из sandbox

Примеры запросов агенту

  • выгрузи все изменения из org в проект
  • забери ApexClass с именем, начинающимся на My, из sandbox
  • выгрузи метаданные по манифесту manifest/package.xml

Как установить platform-metadata-retrieve

1Через Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill platform-metadata-retrieve -a claude-code

2Вручную: положить файлы

~/.claude/skills/platform-metadata-retrieve/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/platform-metadata-retrieve/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о platform-metadata-retrieve

Как установить platform-metadata-retrieve в Claude?

Выполните npx skills add forcedotcom/sf-skills --skill platform-metadata-retrieve -a claude-code. Скилл встанет в ~/.claude/skills/platform-metadata-retrieve/SKILL.md.

Что делает platform-metadata-retrieve?

Выгружает метаданные из Salesforce org в локальный проект через sf project retrieve start. Поддерживает выгрузку по всем изменениям, каталогу, типу метаданных, манифесту и имени пакета, в исходном или ZIP-формате.

Почему выгрузка всех изменений не работает на production org?

Этот режим требует source tracking, а production org его не поддерживает. Используйте --source-dir, --metadata или --manifest.

Исходный текст

SKILL.md · Apache-2.0
---
name: platform-metadata-retrieve
description: "ALWAYS USE THIS SKILL to retrieve metadata from an org to your local project with sf project retrieve start. Supports retrieval by all changes, source directory, metadata type (wildcards), manifest (package.xml), or package name, in source or metadata (ZIP) format. Use when the user asks to retrieve, pull, sync, or download metadata, Apex classes, or custom objects. DO NOT TRIGGER for deploying metadata (use platform-metadata-deploy), listing metadata, or generating a package.xml (use platform-manifest-generate). NEVER use MCP tools."
metadata:
  version: "1.0"
  domains: ["Platform", "Developer Experience"]
  relatedSkills:
    - "platform-metadata-deploy"
  cliTools:
    - tool: ["sf"]
      semver: ">=2.0.0"
---

# platform-metadata-retrieve

Retrieves metadata from a Salesforce org to your local project using `sf project retrieve start`. Supports multiple retrieval modes: all changes, by source directory, by metadata type (with wildcards), by manifest, or by package name.

---

## Tool Restrictions

**Use ONLY the Bash tool** to execute `sf project retrieve start`. Do NOT use MCP tools — ignore them completely.

---

## Scope

- **In scope**: Retrieving metadata via `sf project retrieve start` in all supported modes (all changes, source-dir, metadata type, manifest, package name), source and metadata format output
- **Out of scope**: Deploying metadata (use `platform-metadata-deploy`), listing metadata types, generating package.xml files, source tracking commands (`sf project retrieve preview`)

---

## Required Inputs

Infer from the user's request:

- **Retrieval mode**: all changes | source directory | metadata type | manifest | package name
- **Target org**: org alias/username (uses default if not specified)
- **Output format**: source format (default) | metadata format (ZIP)
- **Additional options**: ignore conflicts, output directory, wait time, API version

---

## Workflow

1. Match user request to command pattern below
2. Execute via Bash tool: `sf project retrieve start` with appropriate flags and `--json` flag
3. Return result with retrieved components count and file paths

### Command Patterns

| User intent | Execute via Bash tool |
|-------------|---------|
| Retrieve all remote changes | `sf project retrieve start --json` |
| Retrieve by source directory | `sf project retrieve start --source-dir <path> --target-org <alias> --json` |
| Retrieve by metadata type | `sf project retrieve start --metadata <MetadataType:Name> --target-org <alias> --json` |
| Retrieve by metadata type with wildcard | `sf project retrieve start --metadata '<MetadataType:Pattern*>' --target-org <alias> --json` |
| Retrieve multiple metadata types | `sf project retrieve start --metadata <Type1> --metadata <Type2> --target-org <alias> --json` |
| Retrieve by manifest | `sf project retrieve start --manifest <path/to/package.xml> --target-org <alias> --json` |
| Retrieve by package name | `sf project retrieve start --package-name <PackageName> --target-org <alias> --json` |
| Retrieve to metadata format (ZIP) | `sf project retrieve start --source-dir <path> --target-metadata-dir <output> --unzip --target-org <alias> --json` |
| Ignore conflicts | `sf project retrieve start --source-dir <path> --ignore-conflicts --target-org <alias> --json` |

---

## Rules / Constraints

| Constraint | Rationale |
|-----------|-----------|
| Always use `--json` flag | Provides structured output for reliable parsing and error handling |
| Must run from within Salesforce project | Command requires `sfdx-project.json` at repo root |
| Wildcard patterns must be quoted | Shell expansion breaks unquoted wildcards like `ApexClass:My*` |
| Cannot mix --manifest with --metadata or --source-dir | Mutually exclusive flags — command will error |
| Retrieve all changes requires source tracking | Production orgs don't support source tracking — must use other retrieval modes |
| --ignore-conflicts only works on trackable orgs | No effect on production orgs; applies to scratch/sandbox only |
| --output-dir must be inside project directory | Command validates output path is within project boundary |
| --output-dir cannot match package directory | Command fails if target matches `sfdx-project.json` packageDirectories |
| Default wait time is 33 minutes | Use --wait flag to override for large retrievals |
| Package retrieval is for reference only | Retrieved package metadata should not be added to source control for development |
| CustomField retrieval auto-includes CustomObject | When retrieving CustomField, CLI automatically adds CustomObject to get full context |

---

## Troubleshooting

| Issue | Resolution |
|-------|------------|
| "This command is required to run from within an SFDX project" | Not in Salesforce project directory — cd to project root with `sfdx-project.json` |
| "No org found for <alias>" error | Org alias doesn't exist or isn't authenticated — verify with `sf org list` |
| "This org does not support source tracking" | Production org doesn't allow "retrieve all changes" mode — use --source-dir, --metadata, or --manifest instead |
| "ERROR running project retrieve start: Cannot mix --manifest with --metadata or --source-dir" | Remove conflicting flags — use one retrieval mode only |
| Wildcard pattern retrieves nothing | Pattern not quoted — wrap in single quotes: `'ApexClass:My*'` |
| "The package directory path in sfdx-project.json does not exist" | Output directory conflicts with package directory — use different path |
| "Output directory must be inside the project" | --output-dir path is outside project boundary — use relative path inside project |
| Retrieve times out | Increase wait time with `--wait 60` for large metadata volumes |
| Retrieved files overwrite local changes | Use `--output-dir` to retrieve to separate location, or commit local changes first |
| SourceConflictError with conflict table | Conflicts detected between local and remote on trackable org (scratch/sandbox) — resolve conflicts manually or use --ignore-conflicts to force overwrite |

---

## Output Expectations

The command returns JSON output with retrieved components details.

See `examples/success_output.json` and `examples/error_output.json` for response structures.

---

## Cross-Skill Integration

| Need | Delegate to |
|------|-------------|
| Deploy metadata to org | `platform-metadata-deploy` skill |
| Preview retrieve without executing | Execute `sf project retrieve preview --target-org <alias> --json` |
| List available metadata types | Execute `sf org list metadata-types --target-org <alias> --json` |

---

## Reference File Index

| File | When to read |
|------|-------------|
| `examples/success_output.json` | To understand successful retrieve response structure |
| `examples/error_output.json` | To handle common error scenarios |
| `references/retrieval_modes.md` | For detailed explanation of all retrieval modes and when to use each |
| `references/cli_flags.md` | For complete flag reference with usage patterns |

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
salesforce-dx Mindrally Скилл задаёт агенту правила разработки на Salesforce DX: Apex, триггеры, LWC, scratch orgs и выкладка через SFDX CLI. CX Codex +1 688установок asc-metadata-sync rorkai Скилл для CLI asc: тянет метаданные App Store Connect в локальные JSON, проверяет их и заливает назад. Пригодится при правке локализаций, ключевых слов и ассетов. CX Codex +1 7 800установок fixing-metadata ibelick Проверяет и приводит в порядок метаданные страниц: заголовки, описания, canonical, Open Graph, карточки Twitter, иконки и JSON-LD. CX Codex +1 18 200установок secrets-in-file-metadata UseOSINT Достаёт EXIF, XMP, IPTC и свойства Office и PDF через exiftool: GPS, серийник камеры, авторы, даты. Пригодится, когда надо понять, откуда файл и кто его правил. CX Codex +1 1 800установок metadata machina-sports Тянет логотипы клубов, фото игроков и данные о стадионах через бесплатный API TheSportsDB. Пригодится, когда ответ нужно дополнить картинкой или визуальным идентификатором. CX Codex +1 490установок dicom-metadata-extract NVIDIA MedTech Team Скилл запускает скрипт на pydicom для чтения одного DICOM-файла и проверки стандартных тегов PHI. Пригодится при первичной проверке медицинских метаданных в агенте. CX Codex +1 1 900установок

Из того же набора167

platform-apex-test-run Запускает тесты Apex через Salesforce CLI, анализирует покрытие кода и ведёт цикл исправления упавших тестов. Помогает разобрать ошибки перед деплоем. CX Codex +1 6 900установок platform-soql-query Пишет и оптимизирует запросы SOQL/SOSL в Salesforce: от формулировки на естественном языке до анализа селективности и плана запроса. CX Codex +1 6 800установок platform-apex-logs-debug Скилл разбирает debug-логи Salesforce: находит причину падения, ловит превышение governor limits и объясняет стек вызовов. CX Codex +1 6 800установок platform-metadata-deploy Оркестрирует деплой метаданных Salesforce через sf CLI v2, проверяет изменения перед релизом и ведёт развёртывание в прод без прямых запусков deploy start. CX Codex +1 6 700установок platform-permission-set-generate Создаёт метаданные Salesforce PermissionSet XML для прав объектов, полей, пользователей и приложений. Нужен при настройке FLS, вкладок и развёртывании наборов разрешений. CX Codex +1 6 500установок platform-docs-get Тянет официальную документацию Salesforce и заставляет агента отвечать по ней, а не по чужим блогам. Полезен, когда страницы рендерятся через JS и обычный fetch возвращает пустую оболочку. CX Codex +1 6 500установок platform-custom-field-generate Генерирует и проверяет XML-метаданные кастомных полей Salesforce в формате SFDX. Скилл помогает избежать ошибок деплоя в Metadata API при создании связей, формул и списков выбора. CX Codex +1 6 500установок platform-custom-object-generate Генерирует и проверяет XML кастомных объектов Salesforce, следит, чтобы описание объекта не устаревало после правок полей и правил валидации. CX Codex +1 6 400установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой