# omnistudio-callable-apex-generate

Скилл для генерации и разбора callable Apex в Salesforce Industries: собирает классы System.Callable, проверяет их по шкале на 120 баллов и переносит старые VlocityOpenInterface.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 4800 установок · ★ 1112
- Автор: forcedotcom
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/omnistudio-callable-apex-generate/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/omnistudio-callable-apex-generate

## Что делает

Скилл закрывает один узкий участок: callable Apex для Salesforce Industries Common Core. Он пишет классы `System.Callable` для точек расширения OmniStudio, разбирает уже существующие реализации и переносит `VlocityOpenInterface` и `VlocityOpenInterface2` на `System.Callable`. Заодно прогоняет код по рубрике на 120 баллов.

Работа идёт в четыре фазы. Сначала скилл спрашивает про точку входа (OmniScript, Integration Procedure, DataRaptor), имена действий, контракт входа и выхода, доступ к данным и побочные эффекты, потом ищет существующие callable-классы по маске `**/*Callable*.cls`. Дальше проектируется контракт: список действий, схема входа, единый конверт ответа с полями `success`, `data` и `errors`. В реализации `call()` остаётся тонким, валидация типов идёт рано, права проверяются через `with sharing` и `Security.stripInaccessible()`, а для SOQL используется `WITH USER_MODE`.

Есть нюанс с пространствами имён. `System.Callable` — стандартный интерфейс, префикс ему не нужен, а `omnistudio.VlocityOpenInterface2` живёт в управляемом пакете `omnistudio`, и его надо квалифицировать всегда. Если класс поедет в namespaced managed package, скилл спросит префикс и подставит его в имена своих классов. Минимальная версия API — 60.0. Для общих Apex-классов и триггеров это не тот инструмент, там нужен `platform-apex-generate`.

## Требования
- Работает с: Salesforce

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill omnistudio-callable-apex-generate -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/omnistudio-callable-apex-generate/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/omnistudio-callable-apex-generate/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill omnistudio-callable-apex-generate -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/omnistudio-callable-apex-generate/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill omnistudio-callable-apex-generate -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/omnistudio-callable-apex-generate/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install forcedotcom/sf-skills omnistudio-callable-apex-generate
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/omnistudio-callable-apex-generate/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill omnistudio-callable-apex-generate -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/forcedotcom/sf-skills --path skills/omnistudio-callable-apex-generate
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/omnistudio-callable-apex-generate/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill omnistudio-callable-apex-generate -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/omnistudio-callable-apex-generate/SKILL.md

## Когда брать
- сгенерировать класс `System.Callable` под точку расширения OmniStudio
- проверить существующую callable-реализацию на риски и ошибки
- перенести `VlocityOpenInterface` на `System.Callable`
- собрать контракт входа и выхода с единым конвертом ответа
- оценить callable-код по рубрике на 120 баллов

## Примеры запросов агенту
- Создай callable Apex класс для вызова из Integration Procedure, действие `getPolicyDetails`
- Проверь мой класс `PolicyCallable.cls` и покажи, что не проходит по рубрике
- Перенеси этот `VlocityOpenInterface2` на `System.Callable`, сохрани имена методов

## Похожие
- [salesforce-apex-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/salesforce-apex-cursorrules-prompt-file.md) — правило · ★ 41011
- [salesforce-apex-quality](https://affpapa.org/nevibecode/skills/salesforce-apex-quality.md) — скилл · 884 установки
- [apex](https://affpapa.org/nevibecode/rules/apex.md) — правило · ★ 40418
- [salesforce-development](https://affpapa.org/nevibecode/skills/mindrally-salesforce-development.md) — скилл · 659 установок
- [writing-mappings](https://affpapa.org/nevibecode/skills/writing-mappings.md) — скилл · 3000 установок
- [integration-listing-optimization](https://affpapa.org/nevibecode/skills/integration-listing-optimization.md) — скилл · 7700 установок

Из того же набора: [forcedotcom/sf-skills](https://affpapa.org/nevibecode/by/forcedotcom/sf-skills.md) — 167 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
