Раздел 05 из 08

Три готовых skill под твои задачи

Три рабочие заготовки под твои боли: PayEm → ERP, проверка зарплаты и универсальный каркас «импорт → проверка → экспорт». Это стартовые шаблоны — каркас правильный, но твои реальные правила, форматы и пороги мы вставляем на hands-on и обкатываем на твоих файлах.

Как это устроено физически

Каждый skill — папка внутри проекта: .claude/skills/имя-skill/SKILL.md. Кладёшь туда SKILL.md с текстом ниже — Claude Code сам подхватывает его под подходящую задачу. Никаких кнопок: пишешь «разнеси выгрузку PayEm», agent видит skill и идёт по твоей инструкции, а не импровизирует.

Три guardrails зашиты в каждый skill

📦 Работа только на копии, оригинал не трогаем. ⚠️ Спорное не угадываем — показываем тебе. ✅ Финальный файл и проводки — только после твоего явного «да».

Анатомия SKILL.md (одинаковая у всех трёх)

.claude/skills/
└── payem-to-erp/
    ├── SKILL.md        ← инструкция + guardrails (то, что ниже)
    ├── rules.csv       ← ТВОЯ таблица правил keyword→категория→FR
    └── logs/           ← сюда агент пишет лог решений (история)

Блок между --- — frontmatter: name и description. description — не текст для людей, а условие срабатывания: по нему agent решает, его это задача или нет. Поэтому формулируй конкретно.

1 · payem-to-erp

PayEm → SAP по таблице правил

2 · payroll-anomalies

Зарплата: поиск аномалий

3 · import-export-verify

Универсальный каркас


📦 Skill 1 — payem-to-erp

Что делает

Берёт экспорт PayEm (CSV/Excel по картам), по твоей таблице keyword → категория → FR присваивает каждой строке категорию и FR, проверяет условия, помечает неуверенные строки и спрашивает тебя. На выходе — файл импорта в формате SAP Business One плюс лог решений.

Как пользоваться

  1. Положи выгрузку PayEm в проект (например in/payem-june.xlsx).
  2. Заполни таблицу правил в .claude/skills/payem-to-erp/rules.csv.
  3. Напиши: «разнеси payem-june.xlsx по правилам».
  4. Agent найдёт skill, прогонит строки, остановится на спорных и спросит. Ты отвечаешь — он дописывает решение в лог.

Полный SKILL.md

---
name: payem-to-erp
description: Разнести экспорт транзакций PayEm в формат импорта SAP
  Business One. Применять, когда речь о выгрузке PayEm по кредитным
  картам, присвоении категории и FR, или подготовке файла импорта в ERP.
---

# PayEm → SAP Business One

Ты — внимательный помощник бухгалтера. Твоя задача: превратить экспорт
PayEm в файл импорта для SAP Business One, присвоив каждой транзакции
категорию и корректный FR по таблице правил. Ты НЕ финансовый
руководитель — спорное ты показываешь Рене, а не решаешь сам.

## Входные данные
- Файл экспорта PayEm (CSV или Excel) в папке `in/`.
- Таблица правил: `.claude/skills/payem-to-erp/rules.csv`
  с колонками: keyword, category, FR, condition (опционально).

## Шаги
1. Сделай рабочую КОПИЮ входного файла. Оригинал не изменяй.
2. Прочитай таблицу правил. Если её нет или она пустая — остановись
   и попроси Рену её заполнить. Не выдумывай категории.
3. Для каждой строки транзакции:
   a. Найди keyword из правил в описании/мерчанте (без учёта регистра).
   b. Если совпадение одно и однозначное — присвой category и FR.
   c. Проверь condition, если он задан (например сумма > 0,
      валюта, дата в периоде). Нарушение условия = строка спорная.
4. Спорные строки (нет совпадения, несколько совпадений, нарушено
   условие, сумма выглядит нетипично) НЕ угадывай.
   Собери их в список и покажи Рене с вопросом: какой FR/категория?
   Дождись ответа, затем примени и запиши решение в правила-лог.
5. Сформируй файл импорта SAP в `out/` в нужном формате
   (структуру колонок уточни у Рены на первом запуске и сохрани
   как пример в `assets/sap-format-example.csv`).
6. Запиши лог решений в `logs/run-YYYY-MM-DD.md`: сколько строк,
   сколько авто, сколько спрашивал, какие правила сработали.

## Guardrails (не нарушать)
- Работай только на копии. Оригинал PayEm не трогай.
- Спорное не угадывай — показывай Рене и жди ответа.
- Итоговый файл импорта считается готовым ТОЛЬКО после явного
  подтверждения Рены ("да, выгружай" / "ок"). До этого — черновик.
- Никогда не пиши напрямую в SAP. Ты готовишь файл, импорт делает Рена.

## Gotchas (дополняй по мере находок)
- PayEm иногда отдаёт суммы с запятой как разделителем — нормализуй.
- Один мерчант может маппиться на разные FR в зависимости от условия —
  читай condition внимательно.
- Возвраты (отрицательные суммы) — это отдельная категория, не путай.
Про FR и категории

rules.csv — твой реестр правил «мерчант → счёт». Чем точнее заполнишь на hands-on, тем меньше agent переспрашивает. Каждый ответ на спорную строку дописываешь в правила — в следующий раз он уже знает.


⚙️ Skill 2 — payroll-anomalies

Что делает

Берёт выгрузки зарплаты из Michpal/Oketz за текущий и прошлые месяцы, сравнивает по сотрудникам и статьям, флагует аномалии: резкие отклонения сумм, новые и исчезнувшие сотрудники, нетипичные ניכויים, нарушения сроков проводок. На выходе — отчёт «что проверить» с приоритетами. В зарплате agent ничего не меняет — только сигналит.

Как пользоваться

  1. Положи выгрузки в in/payroll/: текущий месяц + 2–3 прошлых для базы сравнения.
  2. Напиши: «проверь зарплату за июнь на аномалии».
  3. Получи отчёт с приоритетами 🔴 / 🟡 / 🟢 — что смотреть в первую очередь.
  4. Решения за тобой. Agent показал, где пахнет ошибкой.

Полный SKILL.md

---
name: payroll-anomalies
description: Проверка выгрузок зарплаты (Michpal/Oketz) на аномалии —
  отклонения по сотрудникам и статьям, новые/исчезнувшие сотрудники,
  нетипичные удержания, нарушения сроков. Применять для контроля
  зарплаты перед проводками. Только сигнал, изменений не вносит.
---

# Проверка зарплаты на аномалии

Ты — второй глаз бухгалтера на зарплатной ведомости. Ты НИЧЕГО не
меняешь и НЕ считаешь зарплату заново. Твоя работа — найти и показать
то, что стоит перепроверить человеку, с приоритетами.

## Входные данные
- Выгрузка текущего месяца: `in/payroll/current.*`
- Выгрузки прошлых месяцев (база сравнения): `in/payroll/prev-*.*`
  Минимум 1, лучше 2-3 месяца.

## Шаги
1. Сделай рабочие КОПИИ всех файлов. Оригиналы не трогай.
2. Построй таблицу по сотрудникам: ID/имя × статья (брутто, нетто,
   ניכויים, налоги, бонусы) за каждый месяц.
3. Сравнение и флаги:
   a. Резкое отклонение суммы по сотруднику/статье месяц-к-месяцу
      (по умолчанию порог > 15%, уточни у Рены) → 🟡 или 🔴.
   b. Новый сотрудник (есть сейчас, не было раньше) → 🟡 проверить.
   c. Исчезнувший сотрудник (был, пропал) → 🟡 уволен или ошибка?
   d. Нетипичные ניכויים: появилось новое удержание, или сумма
      удержания не похожа на исторические → 🔴.
   e. Сроки: если в данных есть дата проводки/выплаты — проверь,
      что она в допустимом окне. Просрочка/будущая дата → 🔴.
4. Не делай выводов "это ошибка". Формулируй как ВОПРОС:
   "у Х нетто упало на 30% vs средн. за 3 мес — проверить почему".
5. Отчёт в `out/payroll-check-YYYY-MM.md`:
   - Сводка: сколько сотрудников, сколько флагов.
   - Секции по приоритету 🔴 высокий / 🟡 средний / 🟢 инфо.
   - Для каждого флага: сотрудник, статья, что насторожило, числа.

## Guardrails (не нарушать)
- Работай только на копиях. Ничего в выгрузках не меняй.
- НЕ вноси проводки, НЕ правь суммы, НЕ пиши в Michpal/Oketz.
- Не маскируй сомнение под факт: пиши "проверить", а не "ошибка".
- Спорные пороги (что считать "резким") согласуй с Реной, не
  придумывай свои нормы молча.

## Gotchas (дополняй)
- 13-я зарплата / премии дают законный всплеск — не путай с аномалией,
  спроси Рену про сезонные выплаты периода.
- Сотрудник в декрете/на части ставки: падение суммы нормально.
- Разные написания имени в Michpal и Oketz — матчи по ID, не по имени.
Жёсткая граница

Этот skill никогда не трогает зарплату и не делает проводки — только читает и сигналит. Любое изменение в Michpal/Oketz и любую проводку делаешь ты, после того как сама посмотрела флаги.


🔌 Skill 3 — import-export-verify

Что делает

Универсальный каркас под твою боль №1: импорт из программы A → нормализация → проверка ошибок и аномалий → классификация операций → подготовка экспорта в ERP → лог расхождений. Параметризуемый: ты задаёшь, откуда и куда, а структура работы и guardrails одни и те же. Из этого шаблона на hands-on отпочковываешь новый skill под любую связку программ.

Как пользоваться

  1. Заполни config.json: источник, формат, целевой ERP, путь к правилам.
  2. Положи входной файл в in/.
  3. Напиши: «прогони импорт через verify» и укажи файл.
  4. Если чего-то не хватает (нет config, нет правил) — agent остановится и спросит, а не пойдёт наугад.

Полный SKILL.md

---
name: import-export-verify
description: Универсальный каркас "импорт A → нормализация → проверка
  ошибок и аномалий → классификация → экспорт в ERP → лог расхождений".
  Применять для любой связки программа-источник → ERP, когда нужен
  контролируемый перенос данных с проверкой.
---

# Импорт → Проверка → Экспорт (каркас)

Параметризуемый рабочий процесс переноса данных между системами с
обязательным контролем. Конкретные источник/приёмник/правила берутся
из config.json. Если config нет — спроси и помоги его собрать.

## Конфигурация
Читай `.claude/skills/import-export-verify/config.json`:
{
  "source":   "PayEm | SAP | Michpal | ...",
  "in_format": "csv | xlsx",
  "target_erp": "SAP Business One | חשבשבת | ...",
  "rules_file": "путь к таблице правил классификации",
  "out_format_example": "путь к примеру целевого формата"
}
Если файла нет или поля пустые — остановись и спроси Рену.

## Шаги
1. КОПИЯ входного файла. Оригинал неприкосновенен.
2. Нормализация: привести числа, даты, валюты, разделители к
   единому виду. Зафиксировать, что было приведено.
3. Проверка ошибок и аномалий:
   - пустые/битые обязательные поля,
   - дубли строк,
   - суммы вне ожидаемого диапазона,
   - даты вне периода,
   - חשבונית без номера / без суммы.
   Всё подозрительное → в список расхождений, НЕ чинить молча.
4. Классификация операций по rules_file (keyword → категория → счёт).
   Спорное (нет правила / несколько правил) → показать Рене, спросить.
5. Подготовка экспорта в target_erp по out_format_example в `out/`.
6. Лог расхождений в `logs/verify-YYYY-MM-DD.md`:
   что нормализовано, какие ошибки, какие строки спрашивал,
   итоговые решения.

## Guardrails (не нарушать)
- Только копия. Источник не изменяй.
- Спорное и подозрительное не угадывай — показывай Рене.
- Файл экспорта — черновик до явного подтверждения Рены.
- Не пиши напрямую в ERP. Готовишь файл, импорт — за человеком.
- Каждый запуск оставляет лог. Без лога задача не закрыта.

## Gotchas (дополняй под конкретную связку)
- У каждого ERP свой формат импорта — храни рабочий пример в assets/.
- Кодировка иврита (UTF-8 vs Windows-1255) — проверяй на выгрузке.
- Период закрыт? Не готовь проводки задним числом без отмашки.
Зачем отдельный каркас

Skill 1 — частный случай этого каркаса под PayEm. Каркас держим как материнский шаблон: появится новая связка (например חשבשבת вместо SAP) — копируешь папку, меняешь config.json, и новый skill готов за пять минут, а не с нуля.


Что общего у всех трёх
ПринципКак выглядит в SKILL.md
📦 Копия, не оригиналШаг 1 всегда «сделай рабочую копию»
⚠️ Спорное — тебеОтдельный шаг «не угадывай, спроси Рену»
✅ Итог по подтверждениюGuardrail «черновик до явного да»
🗂 Лог решенийФинальный шаг пишет logs/
🧱 Место под твои правилаrules.csv / config.json
Это стартовые шаблоны, не готовый продукт

Точные форматы импорта SAP и חשבשבת, твои пороги аномалий, структура выгрузок Michpal/Oketz — всё это вставляем и проверяем на hands-on на твоих настоящих файлах. Сейчас задача — увидеть логику: agent идёт по твоей инструкции, решения и подпись остаются за тобой. доработка на hands-on