Один SKILL.md для четырёх ИИ-инструментов: Skill для анализа отзывов о конкурентах
Один SKILL.md для анализа отзывов о конкурентах в Claude Code, Codex, Antigravity CLI и Gemini, проверенный по официальной документации каждого продукта. За девять реальных вызовов API мы получили 967 отзывов, заплатив $0,0125.

Мы написали один SKILL.md для «анализа отзывов о конкурентах» и оформили его frontmatter в соответствии со спецификацией Agent Skills. Согласно официальной документации каждого продукта, этот файл без изменений загружается в Claude Code, Codex и Antigravity CLI. На своей машине мы запускали скрипты Skill, валидатор спецификации и API данных; Codex и Antigravity мы не устанавливали. Приложение Gemini может импортировать этот Skill, но его скрипты не имеют доступа к интернету, поэтому Skill не может получать там данные.
26 октября 2026 г. с 17:25 до 17:55 SGT Skill подготовил один отчёт по трём инструментам для управления проектами. Он сделал 9 вызовов API для G2, Capterra и Trustpilot, прочитал 967 отзывов, а плата за API составила $0,012501. Главный риск оказался в данных, а не в инструментах. На Trustpilot у пяти компаний средняя оценка отзывов без приглашения составила от 1,29 до 2,77 звезды, а отзывов по приглашению — от 4,07 до 4,89 звезды.
Коротко: один SKILL.md, четыре папки, один счёт за 9 вызовов API
Эта статья отвечает на один практический вопрос. Вы уже используете файлы Skill в Claude Code. Ваши коллеги работают в Codex или Antigravity CLI. Может ли вся команда пользоваться одним SKILL.md для анализа отзывов о конкурентах? До первого вызова API мы записали три критерия успеха.
Во-первых, frontmatter должен соответствовать спецификации Agent Skills по каждому полю. Во-вторых, путь к папке и способ вызова Skill должны браться из документации самого продукта. В-третьих, плата за API должна равняться цене из каталога, умноженной на число вызовов, без каких-либо расхождений. Все три критерия выполнены. Один продукт прошёл проверку лишь наполовину.
В таблице четыре продукта сравниваются бок о бок. Каждая ячейка заполнена по документации поставщиков, которую мы изучили 26 октября 2026 г. Ссылки приведены в разделах ниже. Последний столбец отвечает на один вопрос: может ли собственный скрипт Skill обратиться к api.everyinfra.com? Без этого Skill не сможет выполнить свою задачу.
| Продукт | Папка проекта | Личная папка | Как вызвать | Может ли скрипт получать данные? |
|---|---|---|---|---|
| Claude Code | .claude/skills/<name>/SKILL.md | ~/.claude/skills/<name>/SKILL.md | /name, или Claude выбирает его по описанию | В локальных сессиях да; в Cowork и облачных сессиях нет. |
| Codex (CLI, IDE, десктопное приложение) | .agents/skills, от рабочей папки вверх до корня репозитория | $HOME/.agents/skills | $name, /skills или Codex выбирает его сам | Да. |
| Antigravity CLI | .agents/skills/ | ~/.gemini/antigravity-cli/skills/ | /skills для вывода списка, либо агент выбирает Skill сам | Да. |
| Приложение Gemini | Не используется (загрузка выполняется на странице Skills) | Не используется | / или @ и имя Skill | Нет: скрипты, которым нужен интернет, не поддерживаются. |
Первая и третья строки отличаются в одном важном отношении. Claude Code использует для проектов .claude/skills. Codex, Antigravity CLI и уже закрытый Gemini CLI читают .agents/skills. Поэтому в репозитории, рассчитанном на все эти инструменты, можно хранить Skill в .agents/skills/competitor-review-analysis/ и добавить символьную ссылку на него в .claude/skills/. В документации Claude Code сказано, что папка Skill может быть символьной ссылкой. В документации Codex сказано, что Codex переходит по символьным ссылкам на папки Skill (документация Claude Code по Skill; Codex Build skills).
Что такое Agent Skills: SKILL.md с шестью полями
Agent Skills — открытый формат. Skill — это папка, в которой есть как минимум один файл SKILL.md. Файл начинается с блока frontmatter в формате YAML, после которого идут инструкции в Markdown (спецификация Agent Skills). Спецификация определяет шесть полей. Два из них обязательны: name и description.
Четыре поля необязательны: license, compatibility, metadata и allowed-tools. Поле name должно содержать от 1 до 64 символов: строчные латинские буквы, цифры и дефисы. Оно не может начинаться или заканчиваться дефисом, не может содержать два дефиса подряд и должно совпадать с именем папки. Поле description должно содержать от 1 до 1 024 символов и описывать, что делает Skill и когда его использовать. В спецификации allowed-tools помечено как экспериментальное, поэтому поддержка в разных агентах отличается.
Формат экономит контекст за счёт «постепенного раскрытия» (progressive disclosure), у которого три уровня. В начале сессии агент загружает только name и description каждого Skill, по оценке спецификации это около 100 токенов. Когда задача соответствует описанию, агент читает весь SKILL.md. Спецификация рекомендует укладываться в 5 000 токенов и 500 строк. Файлы из scripts/ и references/ загружаются, только когда они нужны для выполнения шагов (Agent Skills specification). Anthropic описала ту же идею 16 октября 2025 года: сначала дать агенту оглавление (Anthropic on Agent Skills).
Поля name и description нашего Skill вместе занимают 363 символа. При среднем значении около 4 символов на токен это примерно 91 токен, что близко к оценке спецификации. Полный SKILL.md содержит 51 строку и 3 426 символов, что намного меньше лимита в 500 строк. Эти два числа понадобятся ниже, в разделе о контексте.
SKILL.md для анализа отзывов о конкурентах целиком
Вот файл полностью. Кроме него, в папке Skill лежат два скрипта и один список ключевых слов. scripts/fetch_reviews.py обращается к API данных EveryInfra. scripts/classify.py по правилам ключевых слов размечает каждый отзыв темами. references/themes.md содержит ключевые слова.
---
name: competitor-review-analysis
description: Pull public reviews for 2-5 competing products from G2, Capterra, Trustpilot or Amazon through the EveryInfra data API, tag each review with a theme, and write a comparison report with counts, shares and quotes. Use when the user asks to compare competitor reviews, find what customers complain about, or build a review-based battlecard.
license: MIT
compatibility: Needs network access to api.everyinfra.com, Python 3.9+, and an EVERYINFRA_API_KEY environment variable. Does not run inside the Gemini app, where skill scripts cannot reach the internet.
metadata:
version: "1.1"
author: everyinfra-blog-example
---
# Competitor review analysis
## Inputs to confirm first
1. The products to compare (2-5). For each one, get the exact review page:
G2 `https://www.g2.com/products/<slug>`, Capterra `https://www.capterra.com/p/<id>/<name>/`,
Trustpilot domain such as `clickup.com`, Amazon `https://www.amazon.com/dp/<ASIN>`.
Use the URL, not the product name. Product names change (Capterra lists monday.com as "monday AI Work Platform").
2. The theme set: `saas` or `hardware` (see references/themes.md). Ask if unclear.
## Steps
1. Fetch: run `python3 scripts/fetch_reviews.py --plan plan.json --out raw/`.
One request per product per source. The script waits 7 s between requests,
retries 429 with the `retry_after` value, and sends slow requests with `"mode":"async"`.
2. Check counts: read `raw/summary.json`. A source with 0 rows was not charged.
Do not treat a short page as "no more reviews". Write the counts into the report.
3. Tag: run `python3 scripts/classify.py raw/ --themes saas > tagged.json`.
The script tags by keyword rules, so the same input gives the same output.
4. Read 5 tagged reviews per theme and check that the tag fits. If a keyword
matches the wrong words (v1 had `plan`, which matched "planning"), fix
references/themes.md and run step 3 again. Note each change in the report.
5. Write `report.md` with these sections, in this order:
- Table: product x source -> reviews read, average rating, charged USD.
- Table: theme x product -> count and share of reviews that mention it.
- Top 3 complaints per product, each with one short quote and its review URL.
- Limits: what the sample cannot show (see below).
## Rules
- Report rating scales as they are: G2 and Capterra 1-5, Trustpilot 1-5 stars, Amazon 1-5 stars.
Do not average across sources.
- Split Trustpilot by the `source` field: `Organic` (the reviewer came on their own) versus
invitation sources (`BasicLink`, `InvitationApi`, `FileUploadInvitation`, `Shopify` and others).
Report the average for each group. Never report one Trustpilot average for a company.
- Theme keywords are per language. For reviews that are not in English, use the matching set
(for example `saas_es`), or report them as untagged.
- Do not print reviewer names. Quote at most 25 words per review.
- Amazon returns only the reviews shown on the product page (usually 10-15). Say so.
- Cost: every request costs the `price_usd` from `GET /api/v1/social/catalog`. Add up `billing.charged_usd` from the responses; do not estimate.
## Limits to state in every report
- The sample is the newest page of each source, not all reviews.
- Trustpilot reviews of a software company are often about billing and support, not the product. Read them as a separate signal.Несколько строк нужны только ради переносимости файла. Во frontmatter используются пять из шести полей спецификации. Расширения Claude Code, такие как model, context: fork или argument-hint, не используются. Строка compatibility указывает требования к доступу к сети и API-ключу.
Тот, кто импортирует файл в приложение Gemini, сразу увидит, что запустить его там нельзя. Пути к скриптам указаны относительно корня Skill, а ссылки на файлы остаются на первом уровне вложенности, как требует спецификация (спецификация Agent Skills). Два правила мы добавили только после анализа данных: «разделять Trustpilot по источнику» и «ключевые слова для каждого языка». Почему — объясняют следующие разделы.
Мы не проверяли файл на глаз. В 17:56 SGT мы запустили эталонный валидатор skills-ref 0.1.1 из репозитория спецификации (agentskills/skills-ref) и проверили три варианта файла. Исходный файл прошёл проверку с результатом Valid skill. Для копии с context: fork и model: haiku валидатор выдал «Unexpected fields in frontmatter: context, model».
Для копии с name: Review_Skill валидатор выдал две ошибки: имя должно быть в нижнем регистре и содержит недопустимые символы. Это соответствует документации Claude Code. В локальной версии Claude Code поддерживаются все поля из таблицы в документации. При загрузке в claude.ai, через Skills API и с помощью package_skill.py допускаются только шесть полей спецификации. Любое дополнительное поле приводит к ошибке (документация Claude Code по Skill).
| Выборка | Изменение | Результат skills-ref 0.1.1 | Переносимость |
|---|---|---|---|
| Исходный | Нет | Valid skill | Да. |
| Негативный тест 1 | Добавлены context: fork и model: haiku | Ошибка: неожиданные поля context, model | Работает в локальном Claude Code; загрузка в claude.ai не проходит. |
| Негативный тест 2 | name: Review_Skill | Ошибка: нужен нижний регистр; недопустимые символы | Нет. |
Пять точек входа — пять наборов правил для frontmatter
Прежде чем класть один файл в несколько мест, проверьте, что принимает каждая точка входа. В таблице указаны только правила, которые прямо названы в документации самих продуктов. Если документация об этом молчит, в ячейке написано «нет в документации».
| Точка входа | `name` | `description` | Поля вне спецификации | Другие ограничения |
|---|---|---|---|---|
| Спецификация Agent Skills | Обязательное; 1–64 символа; строчные буквы, цифры, дефисы; совпадает с именем папки | Обязательное; 1–1 024 симв. | Не входят в спецификацию | Рекомендуется, чтобы тело было короче 500 строк. |
| Claude Code, локально | Необязательное; по умолчанию имя папки | Рекомендуемое; отображается 1 536 симв. | model, context, hooks | Неизвестные поля игнорируются. |
| Загрузка в claude.ai и Skills API | Обязательное; ≤64 символов; без «claude» и XML | Обязательное; ≤1 024 симв. | Лишнее поле — ошибка | Менее 30 МБ; без доступа к сети. |
| Codex | Обязательное | Обязательное | Интерфейс и зависимости задаются в agents/openai.yaml | Первый список занимает 2% контекста или 8 000 символов. |
| Точка входа | `name` | `description` | Поля вне спецификации | Другие ограничения |
|---|---|---|---|---|
| Antigravity | Необязательное; по умолчанию имя папки | Обязательное | Нет в документации | Нет в документации. |
| Приложение Gemini | Только строчные буквы, слова через дефис | Длина в документации не указана | Нет в документации | Всего 100 МБ; у скриптов нет доступа в интернет. |
Таблица показывает, почему мы используем только поля спецификации. Спецификация описывает общее подмножество. Локальный Claude Code предъявляет меньше всего требований, а загрузка на claude.ai строже всех. Ориентируйтесь на самую строгую точку входа — тогда файл примут все остальные.
Документация сходится и в том, как писать description. Когда установлено много Skills, Codex в первую очередь сокращает описания, поэтому ключевой сценарий и слова-триггеры ставьте в начало (Codex Build skills). Claude Code обрезает описание на 1 536 символах, поэтому основной сценарий использования указывайте первым (Claude Code skills docs). Первый совет Google: определить, когда использовать Skill (About the transition from Gems to skills).
Первое предложение нашего описания говорит, что делает Skill, с каких сайтов и через какой API. Второе перечисляет запросы пользователя, по которым его нужно запускать. Всего в описании 337 символов, так что ни одна точка входа его не обрежет.
Skills в Claude Code: ~/.claude/skills или .claude/skills
Claude Code читает Skills из пяти мест: из корпоративной папки (.claude/skills/ в папке управляемых настроек), личной (~/.claude/skills/<name>/SKILL.md), проектной (.claude/skills/<name>/SKILL.md), вложенных папок и папок, добавленных через --add-dir. При совпадении имён корпоративный Skill имеет приоритет над личным, а личный — над проектным (Claude Code skills docs). Проектный Skill можно закоммитить, и каждый участник команды получит его вместе с кодом. Личный Skill работает во всех репозиториях на вашей машине. Claude Code ищет проектные Skills от папки запуска до корня репозитория, поэтому сессия в packages/frontend/ всё равно видит Skill из корня.
Для еженедельного отчёта о конкурентах важны три ограничения. Во-первых, сессии Cowork и облачные сессии, включая облачные задачи по расписанию, не читают ~/.claude/skills/ на вашей машине. Они загружают только Skills, которые вы включили в аккаунте claude.ai. Если Skill лежит только в локальной папке, облачная задача по расписанию сообщит, что не может его найти.
Задачи по расписанию в десктопном приложении выполняются на вашем компьютере, поэтому они читают ~/.claude/skills/ (та же документация, раздел «Use skills in Cowork and cloud sessions»). Во-вторых, при загрузке в claude.ai принимаются только шесть полей спецификации. В-третьих, у списка Skills есть бюджет: для каждого description вместе с when_to_use отображается не более 1 536 символов.
Весь список получает 1% контекстного окна модели, и первыми лишаются описаний наименее используемые Skills. После автоматического сжатия контекста Claude Code заново подключает недавние Skills, по первым 5 000 токенов каждого, но не более 25 000 токенов в сумме (та же документация). Поэтому наше описание укладывается в 337 символов, а ключевой сценарий использования стоит в первом предложении.
У Claude Code есть и расширения, которые работают только в нём. model переключает модель на текущий ход. context: fork запускает Skill в отдельном контексте субагента, и в основную сессию возвращается только результат (skills docs; subagents docs). allowed-tools заранее разрешает инструменты, а строки с командами ! подставляют актуальные данные в тело Skill. Эти функции полезны, но файл, который их использует, перестаёт быть переносимым.
Наш общий файл соответствует спецификации. Если нужно поведение только для Claude Code, положите в личную папку второй Skill с тем же именем. По правилу «личный имеет приоритет над проектным» Claude Code выберет его, а другие инструменты продолжат читать версию, соответствующую спецификации. С context: fork 967 исходных отзывов не попадают в основную сессию.
Можно также дать модели вызывать инструменты вместо запуска скрипта. Добавьте удалённый MCP-сервер EveryInfra в Claude Code. Мы проверили эту команду в одной из прошлых статей, поэтому здесь она приведена как пример конфигурации:
export EVERYINFRA_API_KEY="<your API key>"
claude mcp add --transport http everyinfra https://api.everyinfra.com/mcp \
--scope user --header 'Authorization: Bearer ${EVERYINFRA_API_KEY}'
claude mcp get everyinfraВ Claude Code поиск MCP-инструментов включён по умолчанию. При старте сессии загружаются только названия инструментов и инструкции сервера, а определения инструментов подгружаются по мере необходимости (Claude Code MCP docs). Это меняет расчёт контекста в одном из следующих разделов.
Skills в Codex: .agents/skills и config.toml
Skills в Codex тоже построены на открытом стандарте Agent Skills, и в SKILL.md обязательны name и description (Codex Build skills). Codex ищет Skills в расположениях четырёх типов. На уровне репозитория это .agents/skills в каждой папке от рабочей папки до корня репозитория. На уровне пользователя — $HOME/.agents/skills. На уровне администратора — /etc/codex/skills.
Системные Skills поставляются вместе с Codex. Если у двух Skills одинаковое имя, Codex их не объединяет, и в списке выбора могут появиться оба. В CLI или расширении для IDE введите /skills либо упомяните Skill, поставив перед его именем $. Codex также может выбрать Skill по описанию. В ChatGPT перед именем Skill ставят @.
На то, как писать описание, влияют два числа из документации Codex. По умолчанию первый список Skills занимает не более 2% контекстного окна модели или 8 000 символов, если размер окна неизвестен. Настройка skills.max_context_tokens меняет этот бюджет, максимум до 10 000 токенов. Если установлено много Skills, Codex сначала сокращает описания, затем исключает часть Skills и выводит предупреждение (Codex Build skills). Необязательный файл agents/openai.yaml задаёт отображаемое имя, политику allow_implicit_invocation и зависимости от инструментов MCP. Он лежит в папке Skill, а другие инструменты его игнорируют, поэтому Skill остаётся переносимым.
Чтобы подключить удалённый MCP-сервер EveryInfra в Codex, добавьте таблицу [mcp_servers.<name>] в ~/.codex/config.toml (Codex MCP docs). В доверенном проекте можно использовать .codex/config.toml. Это пример конфигурации, в локальной установке Codex мы его не запускали:
[mcp_servers.everyinfra]
url = "https://api.everyinfra.com/mcp"
bearer_token_env_var = "EVERYINFRA_API_KEY"
enabled_tools = ["everyinfra_list_capabilities", "everyinfra_call_api", "everyinfra_get_job"]
default_tools_approval_mode = "writes"
tool_timeout_sec = 120По результатам тестов мы задали две из этих строк. enabled_tools оставляет только 3 инструмента. В 17:25 SGT вызов tools/list к MCP-серверу EveryInfra вернул 25 инструментов, и некоторые из них создают или удаляют ключи, меняют настройки либо открывают тикеты. Отчёту по отзывам ничего из этого не нужно. tool_timeout_sec равен 120 секундам, потому что по умолчанию Codex ждёт ответа на каждый вызов инструмента только 60 секунд (Codex MCP docs).
Наши синхронные вызовы в 17:28 и 17:30 SGT заняли 87,8 и 88,3 секунды. Со значением по умолчанию Codex перестаёт ждать раньше, чем API успевает ответить. default_tools_approval_mode = "writes" запрашивает подтверждение перед любым инструментом, не помеченным как «только для чтения». За каждый вызов everyinfra_call_api взимается плата, поэтому сервер не помечает этот инструмент как «только для чтения», и Codex каждый раз запрашивает подтверждение. Если вы готовы к этим расходам, задайте tools.everyinfra_call_api.approval_mode только для этого инструмента.
Antigravity CLI и Gemini CLI: папки переехали
18 июня 2026 года Google заменил Gemini CLI на Antigravity CLI. Об этом написано в начале страницы о Skills на сайте документации Gemini CLI (Gemini CLI Agent Skills docs). Формат Skill остался прежним, а папки изменились. Gemini CLI использовал ~/.gemini/skills/ для пользователей и .gemini/skills/ для рабочих пространств, а .agents/skills/ служил псевдонимом для обоих.
Antigravity CLI использует .agents/skills/ для рабочих пространств и ~/.gemini/antigravity-cli/skills/ для глобальных Skills (Antigravity CLI migration docs). Десктопное приложение Antigravity использует ещё одну глобальную папку: ~/.gemini/config/skills/ (Antigravity skills docs). Это единственный случай, когда мы советуем держать две копии, по одной в каждой папке.
Antigravity требует только description. Если name нет, используется имя папки (та же документация). В нашем Skill заданы оба поля, так что это его не касается. Минимальные шаги показаны в Google Codelab от 25 сентября 2026 года.
Создайте .agents/skills/<name>/SKILL.md, запустите agy, выведите список Skills командой /skills и задайте вопрос (Google Codelabs). На Reddit один пользователь спрашивал, как настроить Skills в Antigravity, и просил показать структуру папок, а не дать ссылку на документацию (обсуждение в r/google_antigravity). Эта структура приведена в таблицах выше.
Antigravity перенёс MCP-серверы из settings.json в отдельный файл mcp_config.json. Глобальный файл: ~/.gemini/config/mcp_config.json, проектный: .agents/mcp_config.json. Для удалённых серверов ключ адреса сменился с url или httpUrl на serverUrl (Antigravity CLI migration docs). Есть и список разрешённых инструментов, enabledTools.
По умолчанию он ждёт 3 минуты на вызов инструмента и 5 минут на подключение (Antigravity MCP docs). Это дольше, чем в Codex, поэтому для наших 88-секундных вызовов тайм-аут менять не нужно. Пример конфигурации, локально не запускался:
{
"mcpServers": {
"everyinfra": {
"serverUrl": "https://api.everyinfra.com/mcp",
"headers": { "Authorization": "Bearer <your API key>" },
"enabledTools": ["everyinfra_list_capabilities", "everyinfra_call_api", "everyinfra_get_job"]
}
}
}Skills в Gemini: 17 ноября Gems станут доступны только для чтения, а скрипты останутся без доступа к сети
30 сентября 2026 года Google объявил, что Skills заменят Gems. Skills «полностью построены на открытом стандарте SKILL.md на основе Markdown», поэтому Skills с других платформ можно копировать в приложение Gemini (Google Workspace Updates, 2026-09-30). В обновлении от 13 октября говорилось, что в тот же день Skills начали появляться в приложении Gemini, а завершить развёртывание планируется к середине ноября. Запуск в приложениях Workspace отложен до дальнейших объявлений (Google Workspace Updates, 2026-10-13).
Два источника Google называют для Gems разные даты, поэтому проверьте тип своего аккаунта. В посте Workspace от 30 сентября сказано, что 17 ноября Gems переедут в панель настроек, а пользователи «смогут по-прежнему создавать, редактировать и использовать их». Бизнес-аккаунты лишатся Gems не раньше 1 марта 2027 года. Страница справочного центра для личных аккаунтов описывает более строгие условия. В личных аккаунтах Google пользователей от 18 лет Gems 17 ноября 2026 года превратятся в Skills только для чтения. Их можно будет просматривать, но нельзя будет использовать или редактировать.
17 декабря 2026 года Gems будут удалены из приложения Gemini (Gemini Help: About the transition from Gems to skills). Значит, «только для чтения с 17 ноября» верно лишь для личных аккаунтов. Бизнес-аккаунты Workspace перейдут в марте 2027 года, а образовательные — в июне 2027 года. Блог Google согласуется со справочным центром (Google blog: Let skills in Gemini tackle your most repetitive tasks).

От двух предложений в справочном центре зависит, сможет ли этот Skill работать в приложении Gemini. Пока скрипты, которым нужен доступ в интернет, не поддерживаются. Скрипты не могут выполнять действия на внешних сайтах или отправлять им запросы (Gemini Help: Create & manage skills for Gemini Apps). На той же странице перечислены правила загрузки.
SKILL.md должен лежать в корневой папке, имя должно быть записано строчными буквами, а слова в нём разделены дефисами. Общий размер всех файлов не должен превышать 100 МБ. Текстовые файлы, например .py, .sh, .md, .json и .csv, подходят, а .docx и .xlsx — нет. Наш Skill соответствует всем требованиям к формату и импортируется, но в приложении Gemini fetch_reviews.py не может получить данные.
Gemini здесь не одинок. Claude Skills API запускает Skills в контейнере для выполнения кода «без доступа к сети», поэтому Skills «не могут выполнять внешние вызовы API». Там есть и дополнительное правило для имени: name не может содержать зарезервированные слова «anthropic» или «claude», а также XML-теги (Claude Skills API guide). В обоих случаях ответственность следует разделять так: «Skill — за процесс, коннектор — за данные».
В приложении Gemini данные получают подключённые приложения. В Claude в браузере и через API их получает MCP-коннектор. Тело Skill только говорит модели, какие шаги выполнить и какой отчёт написать. Справочный центр также сообщает, что Skills пока не работают с Canvas и Deep Research (About the transition from Gems to skills).
Один реальный цикл обмена: вызов, который отправляет модель, и данные, которые мы возвращаем
И скрипт, и вызов MCP-инструмента на нашей стороне приводят к одному и тому же запросу. На карточке ниже показан реальный MCP-вызов tools/call в 17:46:24 SGT. Модель вызвала everyinfra_call_api, чтобы получить одно- и двухзвёздочные отзывы о ClickUp на Trustpilot за последние 3 месяца, не более 50 отзывов. API ответил за 27,8 секунды, вернул 7 отзывов и списал $0,001389.

Тот же запрос в виде прямого вызова API данных через curl выглядит так. $EVERYINFRA_API_KEY берётся из переменной окружения и никогда не записывается в файл:
curl -s -X POST https://api.everyinfra.com/api/v1/social \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"trustpilot","action":"reviews","params":{"company":"clickup.com","stars":["1","2"],"date":"last3months","limit":50}}'В каталоге для trustpilot/reviews указано 24 поля ответа (каталог EveryInfra). Skill использует перечисленные ниже поля. Мы сверили название и назначение каждого поля с response_fields и platform_field_meanings из каталога.
| Поле | Значение (по каталогу) | Как его использует Skill. |
|---|---|---|
id, url | ID отзыва и ссылка | Удаление дублей; добавление ссылки к каждой цитате. |
title, text | Заголовок и текст | Разметка по ключевым словам. |
rating, rating_scale | Звёзды и шкала | Среднее по группе источников. |
source | Источник отзыва | Разделение органических отзывов и отзывов по приглашению. |
| Поле | Значение (по каталогу) | Как его использует Skill. |
|---|---|---|
verification_level | Уровень проверки (отзыв по приглашению или органический отзыв) | Сверка с source. |
language, country | Язык и страна | Выбор набора ключевых слов. |
experience_at, posted_at | Дата использования; дата публикации | Отбор отзывов за нужный период. |
| Поле | Значение (по каталогу) | Как его использует Skill. |
|---|---|---|
reply_text | Ответ компании | Доля ответов. |
author_name | Отображаемое имя автора отзыва | Никогда не выводится в отчёт. |
Поля G2 и Capterra подходят для анализа B2B-закупок. Первая запись g2/reviews имеет record_type summary и содержит общий рейтинг, число отзывов и наиболее часто упоминаемые плюсы и минусы. За ней идут отдельные отзывы. В каждой записи capterra/reviews есть pros, cons, отдельные оценки удобства использования и поддержки, а также switching_reasons. В каталоге отмечено, что switching_reasons — самое полезное поле для анализа конкурентов (каталог EveryInfra).
Девять вызовов: сколько отзывов возвращают G2, Capterra, Trustpilot и Amazon
С 17:25 до 18:31 SGT мы отправили всего 31 запрос. За 23 из них списали средства, за 8 — нет: четыре запроса получили ответ 429, один завершился тайм-аутом, а три вернули пустой результат. Общая сумма составила $0,032794. В таблице приведены 11 запросов, на которых построен отчёт по ПО, включая два, за которые средства не списывались.
| SGT | Возможность | Объект | limit | Получено отзывов | Время | Списано. |
|---|---|---|---|---|---|---|
| 17:25 | g2/reviews, синхронно | Asana | 100 | 20 и 1 сводная запись | — | $0.001389. |
| 17:27 | g2/reviews, синхронно | monday.com | 100 | Тайм-аут, 503 | 90.4 s | $0. |
| 17:28 | g2/reviews, синхронно | ClickUp | 100 | 20 и 1 сводная запись | 87.8 s | $0.001389. |
| 17:30 | capterra/reviews | Asana, по названию | 100 | 50 | 88.3 s | $0.001389. |
| SGT | Возможность | Объект | limit | Получено отзывов | Время | Списано. |
|---|---|---|---|---|---|---|
| 17:32 | capterra/reviews | «monday.com», по названию | 100 | 0, средства возвращены | 67.5 s | $0. |
| 17:33 | capterra/reviews | ClickUp, по названию | 100 | 100 | 22.3 s | $0.001389. |
| 17:33 | capterra/reviews | monday.com, по URL продукта | 100 | 97 | 47.3 s | $0.001389. |
| 17:34 | g2/reviews, асинхронно | monday.com | 100 | 50 и 1 сводная запись | 2,1 с до получения ID задачи | $0.001389. |
| SGT | Возможность | Объект | limit | Получено отзывов | Время | Списано. |
|---|---|---|---|---|---|---|
| 17:34 | trustpilot/reviews | asana.com | 200 | 200 | 44.5 s | $0.001389. |
| 17:35 | trustpilot/reviews | monday.com | 200 | 200 | 37.3 s | $0.001389. |
| 17:36 | trustpilot/reviews | clickup.com | 200 | 200 | 42.4 s | $0.001389. |
Три вывода из этой таблицы вошли в SKILL.md. Первый: Capterra ничего не нашла по названию «monday.com». Сейчас Capterra называет продукт «monday AI Work Platform» (страница продукта на Capterra). Наш API вернул 0 записей, а плата за вызов была возвращена.
По URL продукта API вернул 97 отзывов. Поэтому на первом шаге Skill запрашивает URL, а не названия. Второй вывод: синхронные вызовы G2 подходят вплотную к 85-секундному лимиту синхронного режима. Вызов для monday.com прервался по тайм-ауту через 90,4 секунды, а в ответе было сказано «Not charged» и предложено "mode":"async".
В асинхронном режиме мы получили ID задачи за 2,1 секунды, и задача вернула 50 отзывов. Третий: тот же запрос к G2 по Asana в синхронном режиме вернул 20 отзывов. В 17:48 SGT скрипт Skill отправил его ещё раз в асинхронном режиме и получил 50, причём все 20 прежних отзывов оказались среди них. Цена та же, а отзывов в асинхронном режиме в 2,5 раза больше.
Стоимость за 1 000 отзывов зависит от того, сколько отзывов возвращает один вызов: эти возможности тарифицируются за вызов, а не за отзыв. Trustpilot возвращает 200 отзывов за вызов, это около $0.0069 за 1 000. Capterra возвращает 100, около $0.0139. G2 async возвращает 50, около $0.0278. G2 sync возвращает 20, около $0.0695.
Amazon возвращает 13 отзывов на товар, около $0,1068, так что разница примерно 15-кратная. Небольшое число отзывов с Amazon — не ошибка. В примечаниях каталога к amazon/reviews сказано, что сайт каждой страны отдаёт только избранные отзывы со страницы товара (каталог EveryInfra). Обычно это 10–15 отзывов на товар, а не вся история. Мы прочитали отзывы об одном и том же пауэрбанке UGREEN в 17:38 и 17:54 SGT. Оба раза вернулись 13 отзывов с одинаковыми ID, так что эти 13 представляют собой стабильный «избранный» набор, а не случайную выборку.
Было и четыре ответа с кодом 429. С 17:37:59 до 17:38:50 SGT мы отправляли вызовы с интервалом 7 секунд, и четыре из них были отклонены. В каждом ответе были указаны лимит ключа в 10 запросов в минуту, retry_after, равный 1 секунде, и сообщение «Nothing was charged». Часть лимита за эту минуту уже израсходовали другие запросы.
Скрипт ждал retry_after плюс обычный интервал, и все повторные попытки прошли успешно. Для тестового ключа мы установили лимит 10 запросов в минуту. По умолчанию у аккаунта 60 запросов в минуту на все ключи вместе, и лимит растёт с общей суммой пополнений баланса (страница тарифов). Лимит своего ключа проверьте в консоли.
Главная ловушка: разделяйте средние оценки Trustpilot по источнику
В большинстве сравнительных таблиц у каждой компании одна средняя оценка на Trustpilot. Наши данные показывают, что это число мало что значит. С 17:34 до 17:44 SGT мы прочитали 200 самых новых отзывов на Trustpilot о шести компаниях (у Holded их всего 48) и сгруппировали их по полю source. Organic означает, что автор нашёл страницу сам. BasicLink, InvitationApi, FileUploadInvitation и Shopify означают, что компания отправила приглашение.
| Компания | Органические отзывы | Средняя оценка органических отзывов | Отзывы по приглашению | Средняя оценка отзывов по приглашению | Разница | Общая средняя оценка. |
|---|---|---|---|---|---|---|
| Asana | 199 | 1.90 | 1 | — | — | 1.90. |
| monday.com | 145 | 1.53 | 55 | 4.51 | 2.98 | 2.35. |
| ClickUp | 37 | 2.51 | 163 | 4.89 | 2.38 | 4.45. |
| Holded | 35 | 2.77 | 13 | 4.69 | 1.92 | 3.29. |
| Компания | Органические отзывы | Средняя оценка органических отзывов | Отзывы по приглашению | Средняя оценка отзывов по приглашению | Разница | Общая средняя оценка. |
|---|---|---|---|---|---|---|
| Anker | 132 | 2.14 | 68 | 4.62 | 2.48 | 2.98. |
| UGREEN | 21 | 1.29 | 179 | 4.07 | 2.78 | 3.77. |
По общей средней оценке у ClickUp 4,45 звезды, а у Asana 1,90, так что ClickUp выглядит намного лучше. Если разделить группы, средние оценки органических отзывов у обеих компаний низкие: 2,51 и 1,90. Большая часть разницы связана с приглашениями. 163 из 200 самых новых отзывов о ClickUp пришли по ссылке-приглашению. У monday.com та же картина: средняя оценка 145 органических отзывов составляет 1,53 звезды, а 55 отзывов по приглашению — 4,51.
С брендами электроники то же самое. 178 отзывов о UGREEN пришли из автоматических приглашений магазина на Shopify, а 21 органический отзыв в среднем даёт 1,29 звезды. Наше объяснение простое. Люди, которые приходят сами, часто пишут, потому что что-то пошло не так. Люди, получившие приглашение, часто пишут сразу после покупки.
Если смешать эти группы, среднее будет измерять, сколько приглашений рассылает компания, а не что думают клиенты. У анализа есть ограничения. Каждая выборка состоит из 200 самых новых отзывов, и охваченные периоды сильно различаются. Мы не оценивали подлинность отзывов и не даём оценок практике приглашений ни одной компании.
Кроме того, «последние 200» охватывают очень разные периоды. 200 отзывов Asana приходятся на период с 31 января 2022 года по 3 октября 2026 года, почти пять лет. Отзывы monday.com охватывают период с 15 декабря 2024 года по 24 октября 2026 года. Отзывы ClickUp охватывают период с 1 апреля 2026 года по 22 октября 2026 года, меньше семи месяцев. Самый короткий период у UGREEN: с 30 августа 2026 года по день, когда мы их прочитали, 26 октября 2026 года.
Меньше чем за два месяца UGREEN собрал 200 отзывов, и 178 из них пришли из приглашений магазина. Получается, что одна выборка охватывает отзывы новых покупателей за два месяца, а другая — отзывы давних пользователей за пять лет. В отчёте также следует привести все источники к одному периоду, например с помощью параметра Trustpilot date: "last6months". На этот раз мы не ограничивали период, потому что хотели увидеть полную картину.
По одному только сайту это разделение не увидеть. В справочном центре Trustpilot сказано, что любая компания может бесплатно приглашать клиентов, рассылая ссылки. Автоматические приглашения (BCC в email, интеграции с магазинами, API) дают отзывы с пометкой «Verified». Приглашения «Basic Link» дают отзывы с пометкой «Unprompted review» (Trustpilot Help: Trustpilot invitation methods).
Мы проверили страницу ClickUp. Пятизвёздочный отзыв с пометкой «Unprompted review» на сайте в API имеет source: BasicLink и verification_level: invited. Однозвёздочный отзыв на той же странице с той же пометкой имеет source: Organic и verification_level: not-verified (Trustpilot: ClickUp reviews). Сайт называет оба отзыва «Unprompted», а API их различает.
Поэтому в разделе Rules нашего Skill сказано: «разделять по источнику, никогда не сводить к одному среднему». Собственные правила Trustpilot для бизнеса требуют рассылать приглашения без предвзятости (Trustpilot Guidelines for Businesses). Эти правила регулируют то, как компании приглашают клиентов. Они не меняют того, что авторы, пришедшие по приглашению, отличаются от тех, кто пишет сам.

Один и тот же продукт, три сайта, разные жалобы
Темы тоже меняются от сайта к сайту. Ниже приведены данные по Asana: 50 отзывов с G2 (асинхронно), 50 с Capterra и 200 с Trustpilot. Мы разметили их по правилам ключевых слов Skill версии v1.1, и один отзыв может попасть в несколько тем.
| Тема | G2 (50) | Capterra (50) | Trustpilot (200). |
|---|---|---|---|
| Цены и оплата | 14% | 18% | 43%. |
| Поддержка | 12% | 14% | 46%. |
| Сложность освоения | 26% | 22% | 5%. |
| Удобство использования | 30% | 22% | 7%. |
| Тема | G2 (50) | Capterra (50) | Trustpilot (200). |
|---|---|---|---|
| Автоматизация | 22% | 38% | 7%. |
| Мобильные | 6% | 2% | 5.5%. |
Большинство авторов отзывов на G2 и Capterra работают в командах, которые пользуются продуктом. Они пишут о функциях, например о сложности освоения и автоматизации. На Trustpilot 46 % отзывов об Asana упоминают поддержку, а 43 % — цены или оплату. Большинство из них касаются продления подписки, возвратов средств и заблокированных аккаунтов. У monday.com похожая картина: на Trustpilot 35 % отзывов посвящены ценам и 29 % — поддержке.
ClickUp выбивается из общей картины: на первом месте у него автоматизация — 39,5 %, что соответствует странице, полной активных пользователей, пришедших по приглашению. Сводные записи G2 содержат собственные цифры G2. У Asana 4,4 звезды на основе 14 051 отзыва, и среди минусов чаще всего упоминается «Learning Curve» (605 упоминаний). У monday.com 4,7 звезды на основе 17 294 отзывов, у ClickUp — 4,6 на основе 15 159 (G2: Asana reviews).
Поэтому в разделе Limits нашего Skill об этом сказано прямо. Отзывы о софтверной компании на Trustpilot в основном касаются оплаты и поддержки. Воспринимайте их как отдельный сигнал и не объединяйте с G2 и Capterra.
Это цифры второй версии. В первом списке ключевых слов в теме цен было слово plan с сопоставлением по префиксу. Шаг 4 Skill предписывает прочитать по 5 размеченных отзывов на каждую тему. Когда мы это сделали, Capterra показала для Asana 58 % по теме цен, и многие из этих отзывов были о «project planning».
Подсчёт слов в этих 50 отзывах с Capterra нашёл planning 13 раз. Префикс app в теме мобильной версии также совпал с appreciate 6 раз и с approval или approvals 4 раза. Мы перешли на сопоставление по целым словам и удалили plan, app, agent и simple. После этого доля темы цен у Asana на Capterra упала с 58 % до 18 %, на G2 — с 30 % до 14 %, а на Trustpilot — с 48,5 % до 43 %.
Отсюда два вывода. Правила по ключевым словам дёшевы и дают воспроизводимый результат, но человек должен выборочно их проверять. Шаг 4 нельзя считать формальностью: при первом же запуске он исправил неверный результат до того, как тот попал в отчёт.
Как выглядит готовый отчёт
Шаг 5 Skill задаёт структуру отчёта. Вот первая таблица, заполненная данными этого запуска: число прочитанных отзывов, средняя оценка и стоимость для каждого продукта на каждом сайте. Три сайта остаются в отдельных столбцах, общего среднего нет. В ячейке Trustpilot указаны общее среднее и отдельно средние органической группы и группы по приглашению, как требует раздел Rules.
| Продукт | G2: отзывы / средняя оценка | Capterra: отзывы / средняя оценка | Trustpilot: отзывы / общая средняя оценка (органические / по приглашению) | Плата за API. |
|---|---|---|---|---|
| Asana | 50 / 4.38 | 50 / 4.76 | 200 / 1,90 (1,90 / всего 1 отзыв) | $0.004167. |
| monday.com | 50 / 4.64 | 97 / 4.57 | 200 / 2.35 (1.53 / 4.51) | $0.004167. |
| ClickUp | 20 / 4.22 | 100 / 4.60 | 200 / 4.45 (2.51 / 4.89) | $0.004167. |
В третьей части отчёта перечислены три главные жалобы по каждому продукту, у каждой — короткая цитата и ссылка. Мы взяли заголовки недавних органических одно- и двухзвёздочных отзывов на Trustpilot. Каждый заголовок — одна строка, написанная автором. Имена авторов не приводятся. Для Asana: «Ruthless company» от 3 октября 2026 года, «Forever free doesn't mean forever free» от 1 октября и отзыв от 28 сентября, где политику отмены называют «sneaky».
Для monday.com: три отзыва от 24, 22 и 21 октября 2026 года, причём в двух заголовках упоминается «customer service». Для ClickUp: отзыв от 20 октября 2026 года «Inflexible, manual „subscription“ model» о требовании уведомить о сокращении числа мест за 30 дней. Отзыв от 5 октября описывает блокировку аккаунта после оплаты. Эти заголовки соответствуют данным таблицы тем. На Trustpilot все три компании чаще всего критикуют за оплату и поддержку, а не за функции.
В последней части отчёта перечислены ограничения. Выборка включает последнюю порцию отзывов с каждого сайта. У Asana на Trustpilot нет группы отзывов по приглашению для сравнения. Список ключевых слов v1.1 выборочно проверен всего по 5 отзывам для каждой темы.
Мы не позволили модели писать цифры. Все числа в таблице вычислили скрипты по ответам API. У модели было две задачи. На шаге 4 она читала выборки, чтобы найти ошибки в ключевых словах, а на шаге 5 оформляла таблицы и цитаты. С первой задачей модель хорошо справляется, только если попросить её фиксировать в отчёте каждое изменение. Со второй проблем почти не бывает.
Как сделать отчёт еженедельным: где можно запускать Skill по расписанию
Естественный ритм для отзывов о конкурентах: раз в неделю, по понедельникам. Ниже описано, где каждый продукт может запускать этот Skill по расписанию с доступом к сети. Запланированные задачи в десктопном Claude Code выполняются на вашей машине и читают ~/.claude/skills/. Облачные запланированные задачи каждый раз запускают новую облачную сессию. Локальную папку они не читают. Они используют только Skills, включённые в вашем аккаунте claude.ai, или Skills из .claude/skills/ в репозитории (Claude Code skills docs).
На DevDay 29 сентября 2026 года OpenAI представила Codex Cloud, который выполняет задачи, пока ваш ноутбук закрыт (DevDay 2026 community recap). В документации Codex нет чёткого указания на то, что облачные задачи читают .agents/skills из репозитория. Мы это не проверяли, поэтому выводов не делаем. В приложении Gemini есть расписания, позволяющие запускать задачу с выбранным Skill (Create & manage skills for Gemini Apps). Но, как сказано выше, скрипты в таких Skills не имеют доступа к интернету.
Теперь посчитаем на год. Один отчёт по ПО из 9 вызовов в неделю даёт 468 вызовов в год, или $0,650052 платы за API. Еженедельный отчёт по устройствам из 5 вызовов добавляет 260 вызовов и $0,36114. В нашем тесте самый медленный синхронный вызов занял 88 секунд. С 7-секундными интервалами и примерно 5 минутами на асинхронную задачу G2 один отчёт из 9 вызовов занимает меньше 10 минут.
Ключа с лимитом 10 запросов в минуту достаточно. Если тот же ключ обслуживает и другие задачи, считайте ответ 429 нормальной ситуацией и повторяйте запрос. Claude Code 2.1.310, вышедший 23 октября 2026 года, сделал инструмент Monitor доступным в большем числе типов развёртывания. С его помощью можно отслеживать длительную асинхронную задачу вместо того, чтобы оставлять скрипт в цикле ожидания (Claude Code changelog).
Где разметка по ключевым словам не срабатывает: отзывы не на английском и отзывы об устройствах
Ключевые слова зависят от языка. Мы запросили испанские отзывы о monday.com на Trustpilot с lang: "es". Запрос с лимитом 200 вернул 81 отзыв; самый новый был датирован 28 декабря 2023 года. При использовании английских ключевых слов 80 из 81 отзыва остались без темы. С испанским списком saas_es из Skill число неразмеченных отзывов снизилось до 45.
У ClickUp всего 10 испанских отзывов. У Holded, испанского сервиса для бухгалтерии, на Capterra 100 отзывов, и около 76 из них, судя по тексту, написаны на испанском. После применения английских правил без разметки осталось 74 отзыва, после испанских — 21. Trustpilot также не полностью охватывает отзывы о Holded.
В 17:44 SGT вызов без lang вернул 48 отзывов, все с пометкой en. В 18:29 и 18:30 SGT вызовы с lang: "es" и language: "es" вернули 0 записей, и по ним был выполнен возврат средств. На испанском сайте Trustpilot у Holded 2 444 отзыва (Trustpilot Spain: Holded). Значит, в этом запуске испанские отзывы Holded получить не удалось, и в отчёте нужно указать «Выборка Trustpilot: только 48 англоязычных отзывов».
С отзывами об устройствах проблема другая. Для трёх пауэрбанков на 20 000 мА·ч (Anker, UGREEN, INIU) Amazon US вернул по 13 рекомендуемых отзывов; средние оценки составили 4,92, 4,92 и 4,62 звезды. Это значительно выше средних оценок органических отзывов двух брендов на Trustpilot — 2,14 и 1,29, поскольку среди рекомендуемых отзывов Amazon преобладают полезные и положительные. На Trustpilot в 26% отзывов об Anker упоминаются проблемы с долговечностью, например устройство сломалось или перестало работать. Ни в одном из 13 отзывов Amazon об этом не говорится.
Кроме того, список ключевых слов для устройств плохо охватывает темы в отзывах на Trustpilot: 101 из 200 отзывов об Anker и 127 из 200 отзывов о UGREEN остались без темы. В основном это отзывы о доставке, возвратах и поддержке, а этих тем в списке для устройств нет. Мы не меняли список, чтобы цифры выглядели лучше. В отчёте указано число неразмеченных отзывов.
Расчёт контекста: 31 581 символ на MCP-инструменты против 363 символов на Skill
Skills и MCP часто сравнивают, но контекст они расходуют по-разному. В 17:25 SGT мы получили tools/list MCP-сервера EveryInfra. 25 определений инструментов занимают в сумме 31 581 символ, то есть около 7 895 токенов из расчёта 4 символа на токен. 11 инструментов помечены как только для чтения, а 5 как деструктивные.
Три инструмента, которые нужны этому Skill, everyinfra_list_capabilities, everyinfra_call_api и everyinfra_get_job, занимают в сумме 3 314 символов. При старте сессии Skill добавляет в контекст только свои name и description: 363 символа, около 91 токена. Полный SKILL.md содержит 3 426 символов и загружается только при использовании.
У этих цифр есть ограничения. В Claude Code поиск инструментов MCP включён по умолчанию, и при старте сессии загружаются только названия инструментов и инструкции сервера. Поэтому в Claude Code 25 инструментов не расходуют 7 895 токенов сразу (документация Claude Code по MCP). Для других хостов сверьтесь с их документацией. В Codex и Antigravity есть списки разрешённых инструментов (enabled_tools, enabledTools).
Сократите 25 инструментов до 3, и объём определений упадёт с 31 581 до 3 314 символов. Спецификация MCP рассматривает readOnlyHint и destructiveHint как подсказки для клиента, а не как гарантии безопасности («MCP specification: Tools»). Список разрешённых инструментов надёжнее подсказок. Наш совет: пусть Skill отвечает за процесс и формат отчёта, а в MCP откройте только 3 инструмента для данных. Если используете и то и другое, в Skill должно быть указано: «используй everyinfra_call_api, а не другие инструменты».
Сколько стоит один отчёт
Стоимость на стороне API мы рассчитали по price_usd из каталога. В каталоге на 26 октября 2026 года g2/reviews, capterra/reviews, trustpilot/reviews и amazon/reviews стоят по $0,001389 за вызов. Ни у одной из этих возможностей нет пометки о тарификации за запись. Один вызов возвращает до max_limit отзывов: 100 для G2, Capterra и Amazon и 200 для Trustpilot (каталог EveryInfra). Отчёт по ПО о 3 конкурентах на 3 сайтах требует 9 вызовов: 9 × $0,001389 = $0,012501.
Списания составили ровно $0.012501, расхождение нулевое. В отчёт вошли 967 отзывов, около $0.0129 за 1 000 отзывов. Отчёт по железу для 3 пауэрбанков требует 3 вызовов Amazon и 2 вызовов Trustpilot: 5 × $0.001389 = $0.006945 за 439 отзывов. Тайм-ауты, пустые результаты и ответы 429 ничего не стоят, поэтому повторные попытки не увеличивают счёт.
| Пункт | Цена за единицу | Вызовы | Сумма | Примечания. |
|---|---|---|---|---|
| Отчёт по ПО (G2 + Capterra + Trustpilot) | $0,001389 за вызов | 9 | $0.012501 | 967 отзывов. |
| Отчёт по устройствам (Amazon + Trustpilot) | $0,001389 за вызов | 5 | $0.006945 | 439 отзывов. |
| Отчёт по ПО каждую неделю в течение года | $0,001389 за вызов | 468 | $0.650052 | Каждую неделю одни и те же 9 вызовов. |
| Все фактически выполненные вызовы для этой статьи | — | 31 запрос, оплачены 23 | $0.032794 | Включая 1 вызов amazon/search ($0,002236). |
ИИ-продукты оплачиваются по подписке, а не за каждый вызов. Эти публичные цены мы проверили 26 октября 2026 года. Claude Pro стоит $20 в месяц или $17 в месяц при оплате за год и включает Claude Code (Claude pricing). ChatGPT Plus стоит $20 в месяц (OpenAI Help). На тарифе Plus Codex работает в CLI, расширении для IDE и веб-версии (Codex pricing). Google AI Pro стоит $19,99 в месяц и включает базовый объём использования Antigravity (Google AI plans).
По сравнению с этими подписками плата за API невелика. Главная статья расходов — ресурс тарифного плана, который модель использует для чтения 967 отзывов. Ни один поставщик не публикует расход этого ресурса в пересчёте на один отзыв, а мы его не измеряли, поэтому конкретных цифр не приводим.
Ошибка в скрипте: «finalizing» ещё не означает завершения
При первом реальном запуске в скрипте Skill обнаружилась ошибка, и этот урок заслуживает отдельного раздела. В 17:48 SGT fetch_reviews.py отправил запрос по Asana на G2 в асинхронном режиме и начал опрашивать задачу. Первый же статус, отличный от running или queued, он принял за завершение. На 306-й секунде он получил finalizing, сохранил 0 записей и остановился. В 17:55 SGT мы вручную проверили ту же задачу.
Её статус был succeeded, и все 51 запись (50 отзывов и 1 итоговая запись) были на месте. Исправление: считать финальными только succeeded, failed, canceled и expired, а при любом другом статусе продолжать ждать. Такие ошибки хорошо прячутся внутри Skill. Увидев «0 записей», модель не задумываясь напишет «новых отзывов на G2 нет». Поэтому шаг 2 Skill требует проверять счётчики, вписывать 0 в отчёт и никогда не трактовать 0 как «отзывов нет».
Ответы чётко описывают ошибки и правила списания, и скрипту остаётся только их прочитать:
- 429:
error.codeравенrate_limited,retry_afterуказан в секундах, а в ответе сказано «Nothing was charged». Подождите и повторите попытку. - Тайм-аут 503:
error.codeравенtimeout, аbilling.chargedравно false. Переключитесь на"mode":"async"или уменьшитеlimit. - Пустой результат:
countравен 0, аrefund.statusравенsucceeded. Списанные средства возвращаются автоматически. - Асинхронный режим: ответ 202 возвращает
job_idиpoll_url. Списание происходит при отправке. ОпрашивайтеGET /api/v1/jobs/{job_id}, пока не получите финальный статус.
Чего этот Skill не умеет и на что обратить внимание
Вот чего Skill не умеет и что он должен делать с осторожностью. В приложении Gemini и Claude Skills API скрипты Skills не имеют доступа к сети, поэтому данные должен получать коннектор или MCP. Облачные сессии Claude Code и запланированные облачные задачи не читают локальную папку ~/.claude/skills/. Включите Skill в аккаунте claude.ai или закоммитьте его в репозиторий. В Claude Skills API поле name не может содержать «claude» или «anthropic».
Наше имя подходит, а вот Skill с именем claude-review-helper не загрузится. Amazon отдаёт на странице товара только рекомендуемые отзывы, поэтому не вычисляйте по ним «долю негативных отзывов». Не сравнивайте компании на Trustpilot без разбивки отзывов по источникам. Составляйте отдельный список ключевых слов для каждого языка и каждой категории и указывайте охват в отчёте.
Что касается законов и правил платформ, мы описываем только методы работы с данными и не даём юридических советов. 14 августа 2024 года Федеральная торговая комиссия США объявила об окончательном правиле. Оно запрещает фейковые и купленные отзывы, а также вознаграждения, зависящие от положительного отзыва (FTC press release; 16 CFR Part 465). Правило касается того, как компании получают отзывы.
Чтение публичных отзывов для анализа конкурентов — другое дело. Тем не менее не включайте имена авторов отзывов в отчёты и ограничивайте цитаты одной-двумя строками. В разделе Rules этого Skill это уже прописано.
Новости отрасли
- 29 сентября 2026 года, OpenAI DevDay: плагины стали общим способом поставки решений в ChatGPT и Codex. Один плагин может содержать Skills и MCP-серверы, а при отправке на публикацию теперь можно отслеживать ход проверки (DevDay 2026 community recap; OpenAI DevDay recap). Что это значит для вас: этот Skill и MCP-сервер EveryInfra можно распространять в составе одного плагина. Такой плагин можно установить и в веб-версии ChatGPT (ChatGPT Skills & Plugins).
- 30 сентября 2026 года, Google: Skills заменяют Gems. Развёртывание в приложении Gemini началось 13 октября. Gems в личных аккаунтах станут доступны только для чтения 17 ноября и исчезнут 17 декабря (Workspace Updates; Gemini Help). Что это значит для вас: если вы используете Gems для сводок по конкурентам, экспортируйте инструкции и файлы до 17 декабря. Получать данные внутри Skills в приложении Gemini по-прежнему нельзя.
- 19–23 октября 2026 года — три релиза Claude Code. Версия 2.1.304 (19 октября 2026 года) повторно отправляет список Skills после сжатия контекста, а
/reload-skillsтеперь отправляет только новые или изменённые Skills. В версии 2.1.309 (22 октября 2026 года) исправлена работа одноимённых Skills в папках--add-dir: теперь они запускаются как<folder>:<name>. Версия 2.1.310 (23 октября 2026 года) сделала инструмент Monitor доступным на большем числе платформ (Claude Code changelog). Что это значит для вас: в длинной сессии с множеством отчётов Skills больше не выпадают после сжатия контекста. - 14 октября 2026 года GPT-5.5 убрали из Codex при входе через ChatGPT, её место заняли GPT-6.1 Sol и другие модели (Codex pricing). Что это значит для вас: шаги Skill остаются прежними, но повторите выборочную проверку на шаге 4. При тех же правилах ключевых слов новая модель может выбрать другие цитаты.
- 25 сентября 2026 года Google опубликовала Codelab о Skills для Antigravity CLI. В нём используется
.agents/skills, а сторонние Skills устанавливаются командойnpx skills add(Google Codelabs; vercel-labs/skills). Что это значит для вас:.agents/skillsстановится общей папкой проекта для разных инструментов, поэтому новые Skills кладите в первую очередь туда.
Когда эти выводы неприменимы
Выборки небольшие, поэтому начнём с ограничений. Доли тем рассчитаны по 20–200 последним отзывам на каждом сайте, а не по всем отзывам, и на следующей неделе цифры изменятся. Вывод «органические отзывы на 1,9–3,0 звезды ниже» получен по одному замеру пяти компаний. У Asana нет сопоставимой группы приглашённых отзывов, поэтому она не входит в этот диапазон. Правила ключевых слов v1.1 выборочно проверены на 5 отзывах по каждой теме.
Слово «support» также совпадает с описаниями функций вроде «supports multiple views», и эту погрешность мы не измеряли. Пути к папкам и поведение четырёх продуктов взяты из документации самих поставщиков, прочитанной 26 октября 2026 года. Конфигурации MCP для Codex и Antigravity — это примеры настройки, которые мы не запускали. На своей машине мы проверили скрипты Skill, валидатор спецификации и API EveryInfra. Если ваших конкурентов нет на G2, Capterra, Trustpilot или Amazon, выберите в каталоге подходящую возможность, например google_play/reviews, app_store/reviews или yelp/reviews.
FAQ
Что означает «skill.md must start with yaml frontmatter (---)»? Источник: автодополнение Google «skill.md must start with yaml frontmatter (---)», проверено 26 октября 2026 года. Первая строка SKILL.md должна быть ---. В документации Claude Code сказано, что frontmatter читается, только если открывающий --- стоит на первой строке. Иначе весь файл считается телом. Если YAML не разбирается, Skill всё равно загрузится, но без полей (Claude Code skills docs). Запустите agentskills validate из skills-ref, чтобы поймать это заранее.
Где хранятся Skills в Codex? Источник: автодополнение Google «codex skills location» и «codex skills folder». В репозитории используйте .agents/skills на любом уровне от рабочей папки до корня репозитория. Для одного пользователя — $HOME/.agents/skills. Для всей машины — /etc/codex/skills. Codex переходит по символическим ссылкам (Codex Build skills).
Как Skills в Claude Code помогают экономить токены? Источник: автодополнение Google «claude code skills to reduce token usage». В начале сессии Skill добавляет только своё имя и описание, у этого Skill это 363 символа. Тело загружается только при использовании. Делайте описание коротким и ставьте основной сценарий в начало. Для редко используемых Skills укажите "name-only" в skillOverrides (Claude Code skills docs). Длинные справочные тексты кладите в references/, а не в тело.
Как исправить «skill.md description cannot contain xml tags»? Источник: автодополнение Google «skill.md description cannot contain xml tags». Это проверяют Claude Skills API и механизм загрузки в claude.ai. Ни name, ни description не могут содержать XML-теги, а name не может содержать «claude» или «anthropic» (Claude Skills API guide). Замените любой текст вида <...> в описании обычными словами.
Могут ли Agent Skills вызывать внешние API в приложении Gemini? Источник: автодополнение Google «agent skills claude» и «gemini skills», а также текст справки Gemini. Пока нет. В справочном центре сказано, что скрипты, которым нужен интернет, не поддерживаются. Скрипты не могут отправлять запросы на внешние сайты (Gemini Help). Получайте данные через подключённые приложения Gemini, а в Skill оставьте только шаги и форматы.
Безопасно ли устанавливать Skills для Claude Code с GitHub? Источник: автодополнение Google «claude code skills github» и «claude code skills marketplace». Skills могут содержать скрипты, поэтому перед установкой прочитайте SKILL.md и файлы в каталоге scripts/. Gemini CLI показывает предупреждение о безопасности при установке Skill (Gemini CLI Agent Skills docs). Примеры Skills от Anthropic и OpenAI лежат в anthropics/skills и openai/skills. OpenAI также рассказывает, как тестировать Skills с помощью evals (Testing Agent Skills Systematically with Evals).
Что почитать дальше
- Попробуйте API отзывов: Trustpilot API, отзывы Trustpilot, G2 API, отзывы G2, отзывы Capterra, отзывы Amazon.
- Подключение через MCP: MCP-сервер EveryInfra. Первый вызов описан в разделе Быстрый старт, цены — в разделе Тарифы.
- Статья по теме: Отзывы о конкурентах: 30 компаний на G2 и Trustpilot.
- Статья по теме: Как превратить данные отзывов в платный продукт.
- Статья по теме: Как продавать мониторинг изменений на сайтах.
Источники
- «Extend Claude with skills», Anthropic (документация Claude Code), дата обращения 2026-10-26, https://code.claude.com/docs/en/skills
- «Agent Skills Specification», agentskills.io, дата обращения 2026-10-26, https://agentskills.io/specification
- «skills-ref reference validator», agentskills (GitHub), 0.1.1, запуск 2026-10-26, https://github.com/agentskills/agentskills/tree/main/skills-ref
- «Build skills», OpenAI (документация Codex), дата обращения 2026-10-26, https://developers.openai.com/codex/build-skills
- «Model Context Protocol», OpenAI (документация Codex), дата обращения 2026-10-26, https://developers.openai.com/codex/mcp
- «Agent skills», Google Antigravity Docs, дата обращения 2026-10-26, https://antigravity.google/docs/skills/
- «Migration - Antigravity CLI», Google Antigravity Docs, дата обращения 2026-10-26, https://antigravity.google/docs/cli/gcli-migration
- «MCP», Google Antigravity Docs, дата обращения 2026-10-26, https://antigravity.google/docs/mcp
- «Agent Skills», документация Gemini CLI, дата обращения 2026-10-26, https://geminicli.com/docs/cli/skills/
- «Introducing skills in the Gemini app and Workspace, plus what's next for Gems», Google Workspace Updates, 2026-09-30, https://workspaceupdates.googleblog.com/2026/09/skills-gemini-app-workspace.html
- «An update on the launch of skills in the Gemini app and Workspace», Google Workspace Updates, 2026-10-13, https://workspaceupdates.googleblog.com/2026/10/an-update-on-launch-of-skills-in-gemini-app-and-workspace.html
- «Let skills in Gemini tackle your most repetitive tasks», блог Google, 2026-09-30, https://blog.google/products-and-platforms/products/gemini/automate-tasks-with-skills/
- «Create & manage skills for Gemini Apps», справка Gemini, дата обращения 2026-10-27, https://support.google.com/gemini/answer/17094296
- «About the transition from Gems to skills», справка Gemini, дата обращения 2026-10-27, https://support.google.com/gemini?p=gems_to_skills
- «Using Agent Skills with the API», Anthropic (документация Claude), дата обращения 2026-10-26, https://docs.claude.com/en/api/skills-guide
- «Connect Claude Code to tools via MCP», Anthropic (документация Claude Code), дата обращения 2026-10-26, https://code.claude.com/docs/en/mcp
- «Claude Code changelog», Anthropic, версии с 2.1.304 по 2.1.310 (с 2026-10-19 по 2026-10-23), https://code.claude.com/docs/en/changelog
- «Equipping agents for the real world with Agent Skills», Anthropic, 2025-10-16, https://www.anthropic.com/research/equipping-agents-for-the-real-world-with-agent-skills
- Каталог данных EveryInfra GET /api/v1/social/catalog, EveryInfra, дата обращения 2026-10-26 17:25 SGT, https://api.everyinfra.com/api/v1/social/catalog
- EveryInfra MCP (tools/list, tools/call), EveryInfra, вызовы 2026-10-26 в 17:25 и 17:46 SGT, https://api.everyinfra.com/mcp
- Страница продукта «monday AI Work Platform», Capterra, дата обращения 2026-10-26 (при доступе из скрипта возвращается 403; страница прочитана через браузерный движок), https://www.capterra.com/p/147657/monday-com/
- «Trustpilot invitation methods», справочный центр Trustpilot, дата обращения 2026-10-26, https://help.trustpilot.com/s/article/Trustpilot-invitation-methods?language=en_US
- «ClickUp Reviews», Trustpilot, дата обращения 2026-10-26 (при доступе из скрипта возвращается 403; страница прочитана через браузерный движок), https://www.trustpilot.com/review/clickup.com
- «Guidelines for Businesses», Trustpilot, дата обращения 2026-10-26, https://corporate.trustpilot.com/legal/for-businesses/guidelines-for-businesses
- «Asana Reviews», G2, дата обращения 2026-10-26 (при доступе из скрипта возвращается 403; страница прочитана через браузерный движок), https://www.g2.com/products/asana/reviews
- «Tools», спецификация Model Context Protocol 2025-06-18, дата обращения 2026-10-26, https://modelcontextprotocol.io/specification/2025-06-18/server/tools
- «Plans & pricing», Claude, дата обращения 2026-10-26, https://claude.com/pricing
- «What is ChatGPT Plus?», справочный центр OpenAI, дата обращения 2026-10-26, https://help.openai.com/en/articles/6950777-what-is-chatgpt-plus
- «Pricing», OpenAI (документация Codex), дата обращения 2026-10-26, https://developers.openai.com/codex/pricing
- «Google AI Pro & Ultra», Google, дата обращения 2026-10-26, https://gemini.google/subscriptions/
- «How to use AI Agent Skills (with Antigravity CLI)», Google Codelabs, 2026-09-25, https://codelabs.developers.google.com/antigravity/how-to-create-agent-skills-for-antigravity-cli
- «How do you actually set up Antigravity agent skills?», Reddit r/google_antigravity, дата обращения 2026-10-26, https://www.reddit.com/r/google_antigravity/comments/1qvrxxx/how_do_you_actually_set_up_antigravity_agent/
- «Federal Trade Commission Announces Final Rule Banning Fake Reviews and Testimonials», FTC, 2024-08-14, https://www.ftc.gov/news-events/news/press-releases/2024/08/federal-trade-commission-announces-final-rule-banning-fake-reviews-testimonials
- «16 CFR Part 465, Rule on the Use of Consumer Reviews and Testimonials», eCFR, дата обращения 2026-10-26, https://www.ecfr.gov/current/title-16/chapter-I/subchapter-D/part-465
- «Create custom subagents», Anthropic (документация Claude Code), дата обращения 2026-10-26, https://code.claude.com/docs/en/sub-agents
- «DevDay 2026 announcements and developer resources», OpenAI Developer Community, 2026-09-29, https://community.openai.com/t/devday-2026-announcements-and-developer-resources/1402006
- «DevDay 2026 Recap», OpenAI, 2026-09-29, https://openai.com/index/devday-2026-recap/
- «Skills & Plugins», ChatGPT Learn, дата обращения 2026-10-26, https://learn.chatgpt.com/docs/skills-and-plugins
- «vercel-labs/skills», GitHub, дата обращения 2026-10-26, https://github.com/vercel-labs/skills
- «anthropics/skills», GitHub, дата обращения 2026-10-26, https://github.com/anthropics/skills
- «openai/skills», GitHub, дата обращения 2026-10-26, https://github.com/openai/skills
- «Testing Agent Skills Systematically with Evals», блог OpenAI Developers, 2026-01-22, https://developers.openai.com/blog/eval-skills
- Отзывы о Holded (испанская версия сайта), Trustpilot, дата обращения 2026-10-26, https://es.trustpilot.com/review/holded.com
Справка BL-54