iiuniversitet.ruЦентр обучения нейросетямОткрыть каталог

Регулярный отчёт по показателям

Превращает описание нужного отчёта в готовые цифры, сводку и таблицу XLSX и сохраняет его, чтобы запускать заново каждую неделю или месяц.

СкиллAnthropicClaudeApache-2.0Загрузить архив в ClaudeПроверка не требуется
Что делает
Превращает описание нужного отчёта в готовые цифры, сводку и таблицу XLSX и сохраняет его, чтобы запускать заново каждую неделю или месяц.
Когда брать
Когда нужны одни и те же цифры регулярно: продажи по точкам, старение задолженности, доля затрат на труд, набор KPI.
Пример запроса
Хочу каждый понедельник видеть продажи по точкам в сравнении с прошлым годом и долю затрат на персонал. Собери отчёт и запомни его.
Работает лучше с
учётная система (QuickBooks, Xero, NetSuite, MYOB, Zoho Books), HubSpot, PayPal, Square или Stripe, Shopify, Ramp или Expensify, Notion, Canva

Входит в плагин small-business. В Cowork и Claude Code можно поставить плагин целиком.

Как включить

  1. Нажмите «Скачать на русском» и сохраните архив.
  2. В Claude откройте Настройки → Capabilities → Skills → Upload skill и выберите архив.
  3. Включите скилл переключателем.
Для терминала

Распакуйте архив и положите папку report-builder в ~/.claude/skills/. Файл SKILL.md должен лежать внутри этой папки.

Текст

---
name: report-builder
description: >
  Превращает описание регулярного отчёта обычными словами в настоящий,
  повторяемый отчёт: определяет показатели, забирает их из всех подключённых
  источников данных, выдаёт сводку в чате и книгу XLSX и сохраняет описание,
  чтобы тот же отчёт можно было запускать заново по требованию или по
  расписанию. Справляется с чем угодно — от «продажи по точкам в сравнении с
  прошлым годом» до старения дебиторской задолженности и доли затрат на труд в
  выручке. Если коннекторов нет, полностью работает по загруженному CSV или
  XLSX. Используй всякий раз, когда владелец просит отчёт, дашборд, набор
  KPI, сводку показателей или регулярные цифры, в том числе по фразам «можешь
  отслеживать это каждую неделю», «мне нужно видеть эти цифры каждый месяц»,
  «построй мне отчёт по», «тот же отчёт, что в прошлый раз» или «собери
  дашборд с KPI». Обращайся к нему, даже когда владелец называет показатели,
  не произнося слова «отчёт».
allowed-tools: Read, WebFetch
---

Конструктор отчётов

Владелец описывает отчёт один раз. Ты его строишь, запускаешь и сохраняешь описание, чтобы его больше не приходилось описывать заново.

Владельцы достают цифры из трёх дашбордов вручную и сами пытаются найти в них историю. Задача — покончить с этим.

Шаг 1 — Проверь, есть ли уже описание

Прежде всего прочитай reference/saved_reports.md и проверь, существует ли этот отчёт. Проверь также наличие report-definitions.md в рабочей папке: туда попадают описания, когда папка скилла недоступна для записи (см. шаг 7).

Если владелец говорит «тот же отчёт, что в прошлый раз», «запусти недельный» или называет отчёт, для которого у тебя есть описание, переходи сразу к шагу 4 и запускай его. Повторно расспрашивать человека об отчёте, который он уже определил, — самый быстрый способ создать ощущение, что скилл сломан.

Если ничего не подходит, продолжай.

Шаг 2 — Преврати описание в спецификацию

Владельцы описывают отчёты расплывчато: «каждый понедельник продажи по точкам в сравнении с прошлым годом, старение дебиторской задолженности и доля затрат на труд». В этой фразе четыре отдельных решения. Разложи их в спецификацию по формату из reference/report_spec.md:

  • Показатели — каждый назван, с формулой и источником
  • Группировка — по точке, продукту, клиенту, каналу, менеджеру
  • Сравнение — с предыдущим периодом, с прошлым годом, с целью
  • Период — окно, которое охватывает каждый запуск
  • Периодичность — разово, еженедельно, ежемесячно, ежеквартально

Выводи то, что можно разумно вывести. «Продажи по точкам в сравнении с прошлым годом» дают показатель, группировку и сравнение — об этом не спрашивай. Спрашивай только о том, что действительно неоднозначно, и спрашивай всё одной пачкой, а не по одному вопросу.

Два вопроса, которые стоит задавать почти всегда:

  • Какой период охватывает каждый запуск — календарный месяц, последние 30 дней, месяц с начала?
  • Показатель вроде «доли затрат на труд» измеряется относительно выручки или относительно общих затрат?

Ошибка в них даёт отчёт, который выглядит верным и тихо неверен, а это хуже, чем спросить.

Шаг 3 — Подтверди спецификацию, один раз

Покажи получившуюся спецификацию обратно компактным блоком. Попроси одно подтверждение, затем стройте. Не веди владельца по спецификации поле за полем: он описал это одной фразой и ждёт одного ответа.

Если он что-то поправил, примени и иди дальше. Второй раз не подтверждай.

Шаг 4 — Забери данные

Отправь все обращения к источникам одной параллельной пачкой. Соответствие показателей и инструментов см. в reference/data_sources.md.

Источники, опрашиваемые одновременно:

  • Учётная книга — MYOB, NetSuite, QuickBooks, Xero или Zoho Books, какая подключена; равноправны по ../../shared/connector-neutrality.md. Строки отчёта о прибылях и убытках, выручка, расходы, старение дебиторской задолженности, кредиторская задолженность, разбивка по классам и точкам. MYOB даёт только отчёт о прибылях и убытках, дебиторскую и кредиторскую задолженность, и только на три финансовых года назад. Если подключены две учётные книги, спроси, какая из них основной источник, и бери итоги из неё
  • HubSpot — сделки, этапы, ответственные, даты закрытия, объём воронки
  • PayPal, Square, Stripe — расчёты, комиссии, возвраты, детали транзакций
  • Shopify — заказы, выручка на уровне артикулов, статус выполнения
  • Ramp, Expensify — расходы по картам и детали расходов. Оба здесь источники для чтения; Expensify — поиск только на чтение

Если источник выдал ошибку или ничего не вернул, запиши это и иди дальше. Никогда не блокируй весь отчёт из-за одного неисправного коннектора.

Полное отсутствие коннекторов — это поддерживаемый путь, а не сбой. Попроси выгрузку в CSV или XLSX, прочитай её и построй точно такой же отчёт по файлу. Скажи об этом прямо: «Я не вижу подключённого источника данных. Выгрузите отчёт по продажам из вашей системы и положите его сюда — я построю тот же отчёт по нему». Владельцы с россыпью инструментов живут в этом режиме, и отчёт получается не хуже.

Шаг 5 — Посчитай и проверь на здравый смысл

Посчитай каждый показатель, названный в спецификации. Затем проверь результаты, прежде чем показывать их. Прочитай reference/gotchas.md: там сбои, которые действительно случаются.

Проверки, которые ловят настоящие ошибки:

  • Границы периодов. Неполный текущий месяц, сравнённый с полным прошлым, всегда выглядит как обвал. Либо сравнивай сопоставимое с сопоставимым, либо явно помечай неполный период.
  • Двойной счёт. Заказ Shopify и его расчёт в Stripe — это одна продажа. Если подключены оба источника, выбери один как источник выручки и отметь, какой.
  • Пустые группы. Точка без продаж в этом периоде должна появиться с нулём, а не исчезнуть. Пропавшая строка читается как проблема с данными.
  • Итоги, которые не сходятся. Если сгруппированные строки не дают в сумме итог, скажи об этом, а не публикуй цифру, которую не можешь защитить.

Шаг 6 — Выдай результат

Два материала, всегда, в таком порядке.

Сначала сводка в чате. Следуй reference/output_template.md. Начни с того, что изменилось и что это значит, а не с выгрузки таблицы. Владелец попросил отчёт, потому что хочет принять решение, а не получить таблицу.

Правила письма, те же, что у каждого скилла отчётности в этом плагине:

  • Сначала цифры, потом слова. Не «продажи были сильными», а «USD 43 200, плюс 8% к прошлому году».
  • У каждой цифры своё сравнение. Цифра без базы сравнения — упущенный вывод.
  • Назови выброс. «Портленд упал на 22%, единственная точка ниже прошлого года» лучше, чем «результаты смешанные».
  • В сводке максимум три вывода. Всё остальное хранит книга.

Затем XLSX. Одна вкладка на группу показателей, сначала вкладка со сводкой, а на последней вкладке — сырые подтянутые данные, чтобы владелец мог проверить твой расчёт. Строй её скриптом, а не вручную.

Затем страница отчёта в том виде, который владелец сохранил как предпочтительный, — никогда не делай markdown-файл по умолчанию. Посмотри пункт Output preference в блоке ## Business context (правило общего руководства по оформлению, ../../shared/artifact-style.md):

  • Визуальный артефакт (по умолчанию): оформи отчёт в виде HTML-страницы в фирменном стиле — каждый ключевой показатель — плитка с показателем, сравнение выведено строкой контекста; сгруппированные строки (по точкам, продуктам, менеджерам) — таблица с выравниванием вправо и табличными цифрами (tabular-nums); любой показатель в сравнении с целью получает значок статуса (хорошо — цель достигнута, предупреждение — отстаёт, критично — не выполнена); три вывода открывают страницу в отдельной панели; источники с пометкой «н/д» уходят в одну неприметную строку в подвале. Это дополнение к сводке в чате и книге, а не замена.
  • Предпочтение docx / md / notion / canva: выдай то же содержание в этой форме — файл DOCX или markdown, страница Notion, созданная через коннектор (в названном месте, ничего не перезаписывая), или документ Canva, созданный через коннектор Canva (каждый раз новый дизайн с датой в названии; таблицы превращаются в списки). Если Notion или Canva не подключены, вернись к визуальному артефакту и скажи, что причина в этом. XLSX всё равно прилагается.
  • «Лучше всего для» скилла: используй визуальный артефакт — отчёт читают на экране и сравнивают неделю с неделей.

Шаг 7 — Сохрани описание

Допиши спецификацию в reference/saved_reports.md с датой создания и периодичностью. Именно это делает отчёт регулярным, а не разовым.

Если этот файл нельзя записать — в большинстве установленных сред папка скилла доступна только на чтение, — запиши описание вместо этого в report-definitions.md в рабочей папке владельца и скажи, куда оно попало. Описание, которое тихо не сохранилось, — та же ошибка, что и отсутствие сохранения.

Если владелец просил периодичность, подтверди её одной строкой: «Сохранено. Я буду запускать это в первый понедельник каждого месяца». Расписание — свойство этого скилла, отдельная команда не нужна.

После запуска

Одна строка: отчёт выполнен, описание сохранено. Затем единственный самый уместный следующий шаг и не больше двух других рядом:

  • «Недельный пакет по расписанию» запускает /report-pack, чтобы обернуть этот отчёт контекстом с заданной периодичностью.
  • «Как дела в бизнесе?» запускает business-pulse — картину вокруг этих цифр.
  • «Прогноз денег» запускает cash-flow-snapshot, когда отчёт поднял вопрос о деньгах.

Максимум три предложения. Не повторяй предложение, от которого владелец отказался в этой сессии.

Чего не делать

  • Не расспрашивай владельца об отчёте, который он уже определил. Каждый раз сначала проверяй saved_reports.md.
  • Не спрашивай разрешения забрать данные. Скилл вызван. Запускай.
  • Не выдумывай цифры. Если источник ничего не вернул, напиши «н/д» и назови источник. Правдоподобная догадка в отчёте, который владелец пересылает в банк, — серьёзный сбой.
  • Не начинай с таблицы. Продукт — сводка; книга — приложение.
  • Не считай «нет коннекторов» препятствием. Путь через CSV — полноценный режим.

Справочные файлы

  • reference/report_spec.md — формат спецификации с разобранными примерами
  • reference/data_sources.md — соответствие показателей и коннекторов с запасными вариантами
  • reference/output_template.md — точная структура сводки в чате и книги
  • reference/saved_reports.md — сохранённые описания отчётов, пополняемые со временем
  • reference/gotchas.md — сбои, из-за которых получаются уверенно неверные отчёты

Если нужного инструмента нет в списке

Коннекторы, названные в этом скилле, — проверенные пути, а не стена. Если владелец хочет, чтобы этот процесс использовал инструмент, который не подключён или не указан, предложи build-connector: он сначала проверяет каталог коннекторов, а если там нет — подключает через Zapier и никогда не собирает вручную обращение к чистому API. Когда подключение появится, инструмент присоединится к этому скиллу, как любой другой необязательный коннектор, и на тех же этапах согласования.

Перевод: iiuniversitet. Оригинал: https://github.com/anthropics/knowledge-work-plugins/tree/main/small-business/skills/report-builder, лицензия Apache-2.0. Изменения: перевод на русский язык.

Оригинал на английском
---
name: report-builder
description: >
  Turns a plain-English description of a recurring report into a real, repeatable
  report — defines the metrics, pulls them from whatever data sources are
  connected, delivers a chat summary plus an XLSX workbook, and saves the
  definition so the same report reruns on demand or on a schedule. Handles
  anything from "sales by location versus last year" to AR aging to labor as a
  percentage of revenue. Works fully from an uploaded CSV or XLSX when no
  connector is available. Use this whenever the owner asks for a report,
  dashboard, KPI pack, metrics summary, or recurring numbers — including
  phrasings like "can you track this every week," "I need to see these numbers
  monthly," "build me a report on," "same report as last time," or "put together
  a KPI dashboard." Reach for it even when the owner names the metrics without
  using the word report.
allowed-tools: Read, WebFetch
---

# Report Builder

The owner describes a report once. You build it, run it, and save the definition so it never has to be described again.

Owners are pulling numbers out of three dashboards by hand and trying to find the story themselves. The job is to end that.

## Step 1 — Check for an existing definition

Before anything else, read `reference/saved_reports.md` and check whether this report already exists. Also check for a `report-definitions.md` in the working directory — that's where definitions land when the skill folder isn't writable (see Step 7).

If the owner says "same report as last time," "run the weekly one," or names a report you have a definition for, skip straight to Step 4 and run it. Re-interviewing someone about a report they already defined is the fastest way to make this skill feel broken.

If nothing matches, continue.

## Step 2 — Turn the description into a spec

Owners describe reports loosely: "every Monday, sales by location versus last year, AR aging, and labor percent." That sentence contains four separate decisions. Resolve them into a spec using the format in `reference/report_spec.md`:

- **Metrics** — each one named, with its formula and source
- **Grouping** — by location, product, customer, channel, rep
- **Comparison** — versus prior period, versus last year, versus target
- **Period** — the window each run covers
- **Cadence** — one-off, weekly, monthly, quarterly

Infer what you reasonably can. "Sales by location vs last year" gives you the metric, the grouping, and the comparison — don't ask about those. Ask only about what's genuinely ambiguous, and ask it in one batch rather than one question at a time.

The two questions worth asking almost every time:

- Which period does each run cover — calendar month, trailing 30 days, month-to-date?
- Is a number like "labor percent" measured against revenue or against total costs?

Getting these wrong produces a report that looks right and is quietly wrong, which is worse than asking.

## Step 3 — Confirm the spec, once

Show the resolved spec back in a compact block. Ask for one confirmation, then build. Do not walk the owner through the spec field by field — they described this in one sentence and expect one answer.

If they correct something, apply it and go. Do not re-confirm a second time.

## Step 4 — Pull the data

Dispatch every source call in a single parallel batch. See `reference/data_sources.md` for the metric-to-tool mapping.

Sources, tried simultaneously:

- **The ledger** — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected; peers per `../../shared/connector-neutrality.md`. P&L lines, revenue, expenses, AR aging, AP, class and location splits. MYOB is P&L, AR, and payables only, three financial years back. If two ledgers are connected, ask which is the source of record and take totals from that one
- **HubSpot** — deals, stages, owners, close dates, pipeline value
- **PayPal, Square, Stripe** — settlements, fees, refunds, transaction detail
- **Shopify** — orders, SKU-level revenue, fulfillment status
- **Ramp, Expensify** — card spend and expense detail. Both are read sources here; Expensify is read-only search

If a source errors or returns nothing, record it and move on. Never block the whole report on one bad connector.

**No connectors at all is a supported path, not a failure.** Ask for a CSV or XLSX export, read it, and build the identical report from the file. Say so plainly: "I don't see a connected data source. Export the sales report from your system and drop it here — I'll build the same report from that." Owners with tool sprawl live in this mode, and the report is just as good.

## Step 5 — Compute and sanity-check

Compute every metric named in the spec. Then check the results before showing them. Read `reference/gotchas.md` for the failure modes that actually happen.

The checks that catch real errors:

- **Period boundaries.** A partial current month compared against a full prior month always looks like a collapse. Either compare like-for-like or label the partial period explicitly.
- **Double-counting.** A Shopify order and its Stripe settlement are one sale. If both sources are connected, pick one as the revenue source and note which.
- **Empty groups.** A location with no sales this period should appear with a zero, not vanish. A disappearing row reads as a data problem.
- **Totals that don't tie.** If the grouped rows don't sum to the total, say so rather than publishing a number you can't defend.

## Step 6 — Deliver

Two artifacts, always, in this order.

**The chat summary comes first.** Follow `reference/output_template.md`. Lead with what changed and what it means, not with a table dump. The owner asked for a report because they want a decision, not a spreadsheet.

Writing rules, same as every reporting skill in this plugin:

- Numbers lead, words follow. Not "sales were strong" — "USD 43,200, up 8% versus last year."
- Every number carries its comparison. A figure with no baseline is a missed insight.
- Name the outlier. "Portland is down 22%, the only location below last year" beats "results were mixed."
- Three findings maximum in the summary. The workbook holds everything else.

**Then the XLSX.** One tab per metric group, a summary tab first, raw pulled data on a final tab so the owner can check your math. Build it with a script rather than by hand.

**Then the report page, per the owner's stored output preference — never default to a markdown file.** Check the `## Business context` block's `Output preference` (shared style guide rule, `../../shared/artifact-style.md`):

- **Visual artifact (the default):** render the report as an HTML page in the house style — each headline metric is a stat tile with its comparison as the context line; the grouped rows (by location, product, rep) are a table with right-aligned tabular-nums; any metric versus target carries a status pill (good on target, warn slipping, critical missed); the three findings open the page in their own panel; "n/a" sources go in one quiet footer line. Additive to the chat summary and the workbook, never a replacement.
- **docx / md / notion / canva preference:** deliver the same content in that form — a DOCX or markdown file, a Notion page created via the connector (named destination, never overwriting), or a Canva Doc created via the Canva connector (a new design each run, named with the date; tables become lists); fall back to the visual artifact if Notion or Canva is not connected — and say that is why. The XLSX still ships alongside.
- **Best for skill:** use the visual artifact — a report is read on screen and compared week to week.

## Step 7 — Save the definition

Append the spec to `reference/saved_reports.md` with the date it was created and the cadence. This is what makes the report recurring instead of one-off.

If that file can't be written — the skill folder is read-only in most installed runtimes — write the definition to `report-definitions.md` in the owner's working directory instead and say where it went. A definition that silently failed to save is the same bug as never saving it.

If the owner asked for a cadence, confirm it in one line: "Saved. I'll run this the first Monday of each month." Scheduling is a property of this skill — no separate command needed.

## After the run

One line: the report ran and the definition is saved. Then the single most relevant next step, with at most two others nearby:

- "The weekly pack, on schedule" runs `/report-pack` to wrap this in context on a cadence.
- "How's the business doing?" runs `business-pulse` for the picture around these numbers.
- "Cash forecast" runs `cash-flow-snapshot` when the report raised a cash question.

Max three offers. Never repeat an offer the owner declined this session.

## What not to do

- **Do not interview the owner about a report they already defined.** Check `saved_reports.md` first, every time.
- **Do not ask permission to pull data.** The skill was invoked. Run it.
- **Do not invent a number.** If a source returned nothing, write "n/a" and name the source. A plausible-looking guess in a report the owner forwards to their bank is a serious failure.
- **Do not lead with the table.** The summary is the product; the workbook is the appendix.
- **Do not treat "no connectors" as a blocker.** The CSV path is a first-class mode.

## Reference files

- `reference/report_spec.md` — the spec format, with worked examples
- `reference/data_sources.md` — metric to connector mapping, with fallbacks
- `reference/output_template.md` — exact structure for the chat summary and the workbook
- `reference/saved_reports.md` — stored report definitions, appended to over time
- `reference/gotchas.md` — the failure modes that produce confidently wrong reports

## Using a tool that isn't listed

The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer `build-connector` — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.

Источник: anthropics/knowledge-work-plugins / small-business / report-builder ↗. Ссылка проверена 2026-10-10.