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

platform-report-generate — скилл для Claude Code: метаданные отчётов

Скилл собирает и проверяет метаданные Lightning-отчётов Salesforce: колонки, группировки, фильтры, графики. Пригодится, когда .report-meta.xml не разворачивается.

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

Что делает platform-report-generate

Скилл работает с файлами .report-meta.xml — табличными, сводными, матричными и составными отчётами. Он помогает описать колонки, группировки по строкам и столбцам, фильтры, графики, перекрёстные фильтры, бакеты, формулы и фильтры по периоду. Формат задаёт обязательные элементы: у табличного отчёта группировок быть не должно, сводному нужна хотя бы одна группировка по строкам, матричному — по строкам и столбцам, составному — от двух до пяти блоков.

Перед генерацией скилл прогоняет список частых причин падения деплоя. Поля из <groupingsDown> и <groupingsAcross> не должны повторяться в <columns>. Имена колонок зависят от типа отчёта, поэтому их велено сверять через MCP-инструменты get_metadata_type_sections или get_metadata_type_context — для этого нужен MCP-сервер salesforce-api-context версии 1.0.0 и выше. В фильтрах <column> пишется плоским именем (INDUSTRY), точка недопустима. Мультизначения пиклиста идут одним <criteriaItems> с перечислением через запятую.

Отчёт лежит в папке с парным файлом метаданных <FolderName>-meta.xml, где обязателен блок <folderShares>. Корень источника берётся из sfdx-project.json → packageDirectories[].path. Минимальная версия API — 60.0. Отдельно оговорено, что скилл не берётся за метаданные Custom Report Type, дашборды, списки и SOQL — для типов отчётов есть соседний platform-custom-report-type-generate.

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

  • собрать .report-meta.xml для сводного или матричного отчёта
  • починить ошибку деплоя из-за поля в колонках и группировках одновременно
  • подобрать платформенные имена колонок под конкретный тип отчёта
  • описать фильтр по нескольким значениям пиклиста одним блоком
  • задать фильтр по периоду с корректным интервалом дат

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

  • Создай сводный отчёт по Opportunity с группировкой по стадии и суммой по сумме сделки
  • Собери матричный .report-meta.xml с группировкой по строкам и столбцам и графиком
  • Проверь мой отчёт: деплой падает с ошибкой на .report-meta.xml

Как установить platform-report-generate

1Через Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill platform-report-generate -a claude-code

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

~/.claude/skills/platform-report-generate/SKILL.md

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

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

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

platform-deploy-validate Прогоняет серверную валидацию метаданных Salesforce до деплоя: ошибки видны, орг не тронут. Для продакшена возвращает job ID для быстрого деплоя. CX Codex +1 3 000установок dx-devops-work-item-manage Ведёт рабочие элементы DevOps Center из терминала: список, создание, коммиты в ветку, смена статуса и pull request. CX Codex +1 3 000установок platform-architecture-analyze Оценивает проект Salesforce DX по стандартам Well-Architected. Проверяет код и метаданные, находит уязвимости и готовит отчёт без изменения файлов. CX Codex +1 2 900установок sales-agentforce-pipeline-management-configure Настраивает и восстанавливает Agentforce Pipeline Management и Sales Management agent в Salesforce org. Нужен для настройки предложений по полям Opportunity и источников данных. CX Codex +1 2 900установок platform-capability-search Скилл подсказывает, где вы в цикле Connect → Project → Build → Test → Deploy → Observe, и ищет плагин под задачу, которую не закрывает ни один установленный скилл. CX Codex +1 2 800установок experience-lwr-site-generate Собирает и правит сайты Salesforce Experience Cloud на LWR через метаданные DigitalExperience: страницы, маршруты, темы, гостевой доступ. CX Codex +1 2 700установок dx-apexguru-scan Скилл запускает проверку Apex-кода через ApexGuru SFAP Scan API для поиска антипаттернов производительности и проблем с governor limits в проектах Salesforce. CX Codex +1 2 700установок platform-environment-validate Скилл сканирует локальное окружение Salesforce, показывает статус каждого инструмента и предлагает доустановить или обновить недостающее. CX Codex +1 2 700установок

Похожие

crm-automation claude-office-skills Скилл для автоматизации продаж: захват и скоринг лидов, движение сделок по стадиям, синхронизация HubSpot, Salesforce и Pipedrive. CX Codex +1 5 500установок recipe-generate-report-from-sheet официальный googleworkspace Читает данные из Google Sheets и оформляет их как отчёт в Google Docs. Подойдёт, когда нужно собрать документ по таблице и поделиться им с коллегами. CX Codex +1 30 600установок generate-status-report atlassian Собирает статус-отчёт по проекту из задач Jira и публикует его в Confluence. Пригодится, когда нужно регулярно отчитываться о прогрессе. CX Codex +1 315установок integration-listing-optimization Samuel Berthe Оптимизирует карточки B2B SaaS в каталогах AppExchange, Shopify, Atlassian, HubSpot и Slack. Помогает поднять конверсию просмотров в установки и легально собирать отзывы. CX Codex +1 7 700установок writing-mappings celigo Помогает писать маппинги полей и трансформации в интеграциях Celigo: Mapper 2.0, Transformation 2.0, лукапы и response mapping. CX Codex +1 3 000установок salesforce-apex-quality официальный github Проверяет Apex-код на риски governor limits, проблемы безопасности и пробелы в тестах. Подходит для ревью классов, триггеров и тестовых классов. 884установок

Рядом в теме «Настройка агента: память, контекст, субагенты»

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →

Вопросы о platform-report-generate

Как установить platform-report-generate в Claude?

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

Что делает platform-report-generate?

Помогает создавать и валидировать метаданные Lightning-отчётов Salesforce: колонки, группировки, фильтры, графики, перекрёстные фильтры и бакеты. Отдельно проверяет типовые причины ошибок деплоя.

Чем он отличается от platform-custom-report-type-generate?

Первый работает с .report-meta.xml, второй — с метаданными Custom Report Type. Для дашбордов, списков и SOQL этот скилл не предназначен.

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

SKILL.md · Apache-2.0
---
name: platform-report-generate
description: "Use when users create, generate, or validate Salesforce Lightning Report metadata (.report-meta.xml) — tabular, summary, matrix, or joined reports with columns, groupings, filters, charts, cross-filters, buckets, formulas, or time-frame filters. Triggers on \"create a report\", \"build a report\", \"add a chart\", or .report-meta.xml deploy errors. Do NOT trigger for Custom Report Type metadata (use platform-custom-report-type-generate), dashboards, list views, running reports in the UI, or SOQL."
metadata:
  version: "1.0"
  domains: ["Platform"]
  minApiVersion: "60.0"
  relatedSkills:
    - "platform-custom-report-type-generate"
  mcpTools:
    salesforce-api-context:
      tools: ["get_metadata_type_context", "get_metadata_type_sections", "get_metadata_type_shape"]
      semver: ">=1.0.0"
---

## Overview

Lightning Reports define how Salesforce data is queried, grouped, filtered, and displayed. Each report is a single `.report-meta.xml` file placed under `reports/<FolderName>/` within the project's source directory (check `sfdx-project.json` → `packageDirectories[].path` for the source root).

## Critical Rules (Read First)

**TOP DEPLOYMENT KILLERS — check these BEFORE generating any report:**
1. **Grouping fields in columns** — Fields in `<groupingsDown>` or `<groupingsAcross>` must NEVER also appear in `<columns>`
2. **Wrong column names** — Column names are report-type-specific. ALWAYS call MCP tools to verify (see `references/column-names.md`)
3. **Wrong scope** — LeadList uses `org`, not `organization`
4. **Filter column dot notation** — Filter `<column>` values use FLAT names (`INDUSTRY`, `TYPE`) NOT dot notation (`ACCOUNT.INDUSTRY` is INVALID)
5. **Multi-value picklist filters** — Use ONE `<criteriaItems>` with comma-separated `<value>` (e.g., `Technology,Financial Services`). Do NOT split into multiple criteriaItems with booleanFilter

### Rule 1: Format Determines Required Elements

| Format | `<groupingsDown>` | `<groupingsAcross>` | `<block>` |
|--------|-------------------|---------------------|-----------|
| `Tabular` | Not allowed | Not allowed | No |
| `Summary` | At least 1 (max 3) | Not allowed | No |
| `Matrix` | At least 1 (max 3) | At least 1 (max 3) | No |
| `Joined` | Not at top level | Not at top level | At least 2 (max 5) |

### Rule 2: Use Platform Column Names

Report metadata uses **platform report column names**, NOT raw API field names. **ALWAYS call `get_metadata_type_sections` or `get_metadata_type_context` to confirm valid column names.** See `references/column-names.md` for common mappings per report type.

### Rule 3: Valid Report Type Required

`<reportType>` must be a standard API name (e.g., `Opportunity`, `AccountList`, `CaseList`, `LeadList`, `AccountContactRole`) or a deployed custom report type developer name.

### Rule 4–5: Chart & Aggregates Require Summary/Matrix

Charts and `<aggregateTypes>` (Sum, Average, etc.) only work in Summary and Matrix reports.

### Rule 6–8: Limits

- Max **3 cross-filters** per report, each with up to **5 criteria items**
- `<filterLogic>` must reference all filters sequentially (e.g., `1 AND (2 OR 3)`)
- Joined reports: 2–5 blocks, each block format must be Summary or Matrix (not Tabular)

### Rule 9: Folder Structure

Reports must live inside a folder with a corresponding folder metadata file:
```xml
<sourceDir>/reports/<FolderName>/<ReportName>.report-meta.xml
<sourceDir>/reports/<FolderName>-meta.xml
```
Determine `<sourceDir>` from `sfdx-project.json` (commonly `force-app/main/default`, but this is configurable).

### Rule 10–11: Date Columns & Scope

- Date columns use platform names (`CLOSE_DATE`, not `CloseDate`)
- LeadList scope is `org`; Opportunity/AccountList/CaseList use `organization`

### Rule 12–13: Description & Groupings

- `<description>` max **255 characters**
- Grouping fields must NOT appear in `<columns>` — automatic deployment failure

### Rule 14: Folder Metadata Requires `<sharedTo>`

```xml
<?xml version="1.0" encoding="UTF-8"?>
<ReportFolder xmlns="http://soap.sforce.com/2006/04/metadata">
    <folderShares>
        <accessLevel>Manage</accessLevel>
        <sharedTo>AllInternalUsers</sharedTo>
        <sharedToType>Group</sharedToType>
    </folderShares>
    <name>My Report Folder</name>
</ReportFolder>
```

### Rule 15: Valid Date Intervals Only

Use `INTERVAL_CURRENT` for "this quarter", `INTERVAL_CURY` for "this year", `INTERVAL_LAST30` for last 30 days. Do NOT use `INTERVAL_CURQ` — it is not valid. See `references/date-intervals.md` for the full list.

## Top-Level Elements

| Element | Required | Notes |
|---------|----------|-------|
| `<name>` | Yes | Report name (max 40 chars) |
| `<reportType>` | Yes | Report type API name |
| `<format>` | Yes | `Tabular`, `Summary`, `Matrix`, or `Joined` |
| `<scope>` | Recommended | `organization` (or `org` for LeadList) |
| `<columns>` | Yes | Field columns — each has `<field>` and optional `<aggregateTypes>` |
| `<filter>` | No | Contains `<criteriaItems>` with `<column>`, `<operator>`, `<value>` |
| `<groupingsDown>` | Conditional | Row groupings: `<field>`, `<dateGranularity>`, `<sortOrder>` |
| `<groupingsAcross>` | Conditional | Column groupings (Matrix only) |
| `<timeFrameFilter>` | Recommended | `<dateColumn>`, `<interval>`, optional `<startDate>`/`<endDate>` |
| `<chart>` | No | See `references/chart-types.md` |
| `<buckets>` | No | Bucket field definitions |
| `<crossFilters>` | No | Cross-object filters (`with`/`without`) |
| `<showDetails>` | Recommended | `true`/`false` |
| `<showGrandTotal>` | Recommended | `true`/`false` |
| `<showSubTotals>` | Recommended | `true`/`false` |
| `<description>` | Recommended | Business purpose (max 255 chars) |
| `<block>` | Conditional | Joined format blocks |

## Filter Syntax

```xml
<filter>
    <criteriaItems>
        <column>STAGE_NAME</column>
        <operator>equals</operator>
        <value>Closed Won</value>
    </criteriaItems>
</filter>
```

**Multi-value picklist:** Use ONE criteriaItem with comma-separated values:
```xml
<criteriaItems>
    <column>INDUSTRY</column>
    <operator>equals</operator>
    <value>Technology,Financial Services</value>
</criteriaItems>
```

Common operators: `equals`, `notEqual`, `lessThan`, `greaterThan`, `contains`, `startsWith`, `includes`, `excludes`, `isBlank`, `notBlank`. Full list in `references/filter-operations.md`.

## Generation Workflow

1. **Gather Requirements** — object, fields, groupings, filters, chart needs
2. **Determine Format** — no groupings → Tabular; row groupings → Summary; row + column → Matrix; multiple objects → Joined
3. **Identify Column Names** — call `get_metadata_type_sections` MCP tool to get valid platform column names for the report type
4. **Author Metadata** — start from closest example in `examples/` and adapt
5. **Create Folder** — generate folder directory + `<FolderName>-meta.xml` with `<folderShares>`
6. **Validate** — run through `references/verification-checklist.md`

## Reference File Index

| File | When to read |
|------|--------------|
| `references/column-names.md` | Step 3 — column name mappings per report type |
| `references/date-intervals.md` | When setting timeFrameFilter intervals |
| `references/chart-types.md` | When adding a chart — all 17 types + legendPosition rules |
| `references/filter-operations.md` | When building filters — complete operator reference |
| `references/verification-checklist.md` | Step 6 — pre-deploy validation |
| `references/errors-and-troubleshooting.md` | When fields are missing or deployment fails |
| `examples/TabularOpportunitiesReport.report-meta.xml` | Tabular report template |
| `examples/OpportunitiesByStageReport.report-meta.xml` | Summary report with chart |
| `examples/OpportunitiesByStageAndQuarter.report-meta.xml` | Matrix report template |
| `examples/AccountsCreatedThisYear.report-meta.xml` | Filtered report with time frame |

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

Смотрите также

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

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