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

pipefy-introspection — скилл для Claude Code: обзор и установка

Скилл исследует GraphQL-схему Pipefy и выполняет прямые запросы через execute_graphql. Он выручает, когда стандартные операции API падают с ошибкой или для задачи нет готового инструмента.

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

Что делает pipefy-introspection

Скилл служит вторым уровнем (Tier 2) в стратегии вызовов Pipefy API. Если готовый инструмент завершился ошибкой или его нет, агент исследует схему через интроспекцию и шлёт прямой GraphQL-запрос. В состав входят операции introspect_type, introspect_query, introspect_mutation, search_schema, execute_graphql, а также получение данных организаций через get_organization и list_organizations.

Параметр max_depth при интроспекции по умолчанию равен 1. Значение 2 и выше раскрывает связанные типы прямо внутри ответа, избавляя от повторных вызовов. Если операция записи сообщила об ошибке, перед повторной попыткой через сырой GraphQL нужно обязательно перечитать целевой объект. Повторный вызов вслепую легко создаст дубликат данных в пайплайне.

Имена типов чувствительны к регистру. Запрос вернёт null, если передать имя типа не в PascalCase.

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

  • изучить структуру аргументов мутации Pipefy GraphQL
  • выполнить произвольный GraphQL-запрос к API Pipefy
  • узнать доступные значения перечисления FieldTypeId
  • найти карточку по названию через запрос карточек пайпа

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

  • Проверь через интроспекцию, какие поля принимает мутация createCard
  • Выполни сырой GraphQL-запрос, чтобы узнать организацию для пайпа с id <pipe-id>
  • Найди в схеме Pipefy типы с ключевым словом automation

Как установить pipefy-introspection

1Через Skills CLI (Vercel)

npx skills add pipefy/ai-toolkit --skill pipefy-introspection -a claude-code

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

~/.claude/skills/pipefy-introspection/SKILL.md

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

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

Вопросы о pipefy-introspection

Как установить pipefy-introspection в Claude Code?

Выполните команду npx skills add pipefy/ai-toolkit --skill pipefy-introspection -a claude-code.

Зачем нужен этот скилл, если есть готовые методы Pipefy?

Скилл работает как запасной вариант (Tier 2), когда штатного метода нет или он падает с ошибкой. Через интроспекцию агент проверяет точные типы полей, а затем выполняет сырой запрос через execute_graphql.

Что делать, если мутация записи вернула ошибку?

Сначала перечитайте объект. Запись могла пройти, а повторный запуск мутации через execute_graphql создаст дубликаты записей в пайпе.

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

SKILL.md · Apache-2.0
---
name: pipefy-introspection
description: >
  Use this skill when you need to discover GraphQL type shapes, mutation
  signatures, enum values, or execute arbitrary GraphQL as a fallback.
  This is the first fallback tier (Tier 2) when dedicated operations fail
  or don't exist for an operation.
tags: [pipefy, introspection, graphql, schema, fallback]
---

# Introspection & Raw GraphQL

Read only the reference for your active surface: [MCP](references/mcp.md) or [CLI](references/cli.md). The workflows below use shared operation names and arguments.

Schema discovery, organization info, and a fallback executor.

This is **Tier 2** in the resolution strategy: when a dedicated operation fails or doesn't exist, use introspection to understand the API, then `execute_graphql` to run the operation directly.

If a dedicated **write** reports failure, re-read the target before trying a mutation through `execute_graphql`. Continue only when the read shows the write did not land. If the result is inconclusive, report it and stop; a second create can duplicate data.

**Tier 1:** dedicated operation exists — use it.
**Tier 2:** use introspection + `execute_graphql` (this skill).
**Tier 3:** direct curl/httpx fallback — see `pipefy-api-fallback`.

---

## Tools

| Operation | Read-only | Purpose |
| ------------ | ----------- | --------- |
| `introspect_type` | Yes | Type shape: `fields`, `inputFields`, `enumValues`. Optional `max_depth`. |
| `introspect_query` | Yes | Root query arguments and return type. Optional `max_depth`. |
| `introspect_mutation` | Yes | Root mutation arguments and return type. Optional `max_depth`. |
| `search_schema` | Yes | Keyword search on type names/descriptions. Optional `kind` filter. |
| `execute_graphql` | No | Execute arbitrary GraphQL. |
| `get_organization` | Yes | Load organization info (name, plan, UUID, member count, pipe count). |
| `list_organizations` | Yes | List organizations the caller can access — no id required. The zero-knowledge entry point for org discovery. |

---

## `max_depth` (introspect_type / query / mutation)

`max_depth` defaults to `1`.

- **`1`** — type/field info only (no inlined sub-types).
- **`2+`** — resolves referenced input/output types inline (`resolvedType`), so one call can replace introspecting the mutation then each input type separately.

Example:

```
introspect_mutation mutation_name="createCard" max_depth=2
```

Scalars (`ID`, `String`, `Int`, …) are never expanded.

## `kind` on `search_schema`

Optional filter: `OBJECT`, `INPUT_OBJECT`, `ENUM`, `SCALAR`, `INTERFACE`, `UNION`.

```
search_schema keyword="automation" kind="INPUT_OBJECT"
```

---

## When to use introspection

- A dedicated tool returned an error and you need to understand why — introspect the input type to check argument names/types.
- Field types for `create_phase_field`: the tool's input schema lists them. When the schema is not visible, or to check for drift, `introspect_type('FieldTypeId')` lists them.
- Before using `extra_input`: introspect the corresponding input type to find optional keys.
- Unknown mutation signature: `introspect_mutation('createSomething')` before `execute_graphql`.
- Schema exploration: `search_schema('automation')` to find related types and inputs.

## When to use `execute_graphql`

- No dedicated operation exists for the operation.
- A dedicated tool failed and you've used introspection to understand the correct payload.
- Ad-hoc queries like resolving an org UUID via `pipe(id: $id) { organization { uuid } }`.
- Complex nested queries that no single tool covers.

**Always prefer dedicated operations.** They validate inputs, handle pagination, and format errors consistently. `execute_graphql` is the fallback when dedicated tools can't solve the problem.

---

## Steps — discover a mutation signature

1. **Search for the mutation by keyword:**

   ```
   search_schema keyword="label"
   ```

2. **Get the full mutation signature:**

   ```
   introspect_mutation mutation_name="createLabel"
   ```

3. **Discover input type fields:**

   ```
   introspect_type type_name="CreateLabelInput"
   ```

4. **Execute** `execute_graphql` with the discovered mutation and its variables.

---

## Common fallback recipes

Ready-to-use patterns for situations where dedicated tools are insufficient.

### Recipe 1 — Discover valid field types for `create_phase_field`

```
introspect_type('FieldTypeId')
```

`CreatePhaseFieldInput.type` is an `ID` scalar, but the API publishes its valid values as the `FieldTypeId` enum. The `create_phase_field` input schema lists the same values.

### Recipe 2 — Find a card by title (not possible with `find_cards`)

`find_cards` only searches custom field values. To search by title:

```
execute_graphql query='query($pipeId: ID!, $first: Int) { cards(pipe_id: $pipeId, first: $first) { edges { node { id title current_phase { name } } } } }' variables='{"pipeId":"<pipe-id>","first":50}'
```

Filter by title client-side. For large pipes, paginate with `after`.

### Recipe 3 — Discover what `extra_input` accepts for any mutation

When a tool accepts `extra_input` (e.g. `create_automation`, `update_label`), discover all optional keys:

```
introspect_mutation('createAutomation')     # find the input type name
introspect_type('CreateAutomationInput')    # see all inputFields
```

Compare with the tool's primary arguments to know which keys are additive via `extra_input`.

### Recipe 4 — Discover organization IDs

To answer "which organizations do I have access to?" with nothing in hand, call `list_organizations` — it needs no id and returns each org's `id`, `uuid`, `name`, and your role. That is the entry point; reach for the GraphQL fallbacks below only when you already have a pipe.

When the user only has a pipe ID and needs its `organization_id`:

```
execute_graphql query='query($id: ID!) { pipe(id: $id) { organization { id uuid name } } }' variables='{"id":"<pipe-id>"}'
```

### Recipe 5 — Update a select field's options after creation

To set options at creation, pass `options` to `create_phase_field`. Use this recipe to change them later.

```
execute_graphql query='mutation($id: ID!, $options: [String!]) { updatePhaseField(input: { id: $id, options: $options }) { phase_field { id label options } } }' variables='{"id":"<field-id>","options":["High","Medium","Low"]}'
```

### Recipe 6 — Check phase transition rules

When `move_card_to_phase` fails with "not a valid target phase":

```
execute_graphql query='query($id: ID!) { phase(id: $id) { id name cards_can_be_moved_to_phases { id name } } }' variables='{"id":"<current-phase-id>"}'
```

Returns the valid destination phases from the current phase.

---

## Success criteria

- `introspect_type` returns the complete field list for the input type.
- `execute_graphql` returns the expected data without errors.

## Failure modes

- **`introspect_type` returns `null`**: type name is case-sensitive; try PascalCase (e.g., `CreateLabelInput`, not `create_label_input`).
- **`search_schema` returns many hits**: case-insensitive substring matching; broad keywords like `"card"` flood results. Prefer specific names like `"AiAgent"`, `"FieldCondition"`.
- **`introspect_mutation` is expensive**: fetches all root mutation fields and filters client-side (single large query). Prefer `introspect_type` on the specific input type when you already know the mutation name.
- **`execute_graphql` returns GraphQL errors**: check `path` and `message`.
- **Raw HTTP endpoint**: the toolkit sends public-schema introspection and operations to the same endpoint, `<PIPEFY_BASE_URL>/graphql` (default `https://app.pipefy.com/graphql`). For direct calls, see `pipefy-api-fallback`.

## See also

- [docs/mcp/tools/introspection.md](https://github.com/pipefy/ai-toolkit/blob/main/docs/mcp/tools/introspection.md) — MCP parameters, query/mutation mismatch hints on `execute_graphql`.
- `pipefy-api-fallback` — Tier 3: direct HTTP fallback when the toolkit is unavailable.
- `pipefy-pipes-and-cards` — most common dedicated tools (prefer over `execute_graphql`).

© pipefy · Apache-2.0 · pipefy/ai-toolkit

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

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

pipefy-observability Скилл для проверки логов ИИ-агентов и автоматизаций Pipefy, расхода кредитов и выгрузки истории задач в CSV. CX Codex +1 676установок pipefy-automations Скилл для управления традиционными и AI-автоматизациями Pipefy: создание правил if/then, промпт-драйвен-автоматизации и симуляция без выполнения. CX Codex +1 676установок pipefy-pipes-and-cards Скилл даёт агенту операции с пайпами, фазами, полями и карточками Pipefy: чтение, создание, обновление, удаление. Пригодится, когда нужно наполнить фазы для демо или QA. CX Codex +1 675установок pipefy-api-fallback Скилл обращается к Pipefy GraphQL API напрямую, когда операции toolkit и интроспекция не помогли. Нужен для разбора сбоев и запасных запросов. CX Codex +1 673установок pipefy-portal-setup Скилл собирает и настраивает порталы Pipefy: главный хаб, страницы, виджеты и сабпорталы. Пригодится, когда портал нужно поднять из кода, а не руками в интерфейсе. CX Codex +1 674установок pipefy-reports Скилл помогает управлять отчётами пайпов и организаций в Pipefy: создавать, фильтровать, удалять и асинхронно выгружать готовые данные по ссылкам. CX Codex +1 671установок pipefy-relations Скилл для работы со связями в Pipefy: создаёт и читает отношения между пайпами, таблицами и карточками через MCP или CLI. CX Codex +1 671установок pipefy-process-design Скилл помогает спроектировать фазы, поля и автоматизации пайплайна в Pipefy до начала сборки, когда нет готового ТЗ. CX Codex +1 670установок

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

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