dataproc-skills: скилл для работы с кластерами и заданиями Dataproc
Скилл dataproc-skills даёт агенту доступ к кластерам и заданиям Dataproc через готовые скрипты на Node.js.
npx skills add cline/skills --skill dataproc-skills -a claude-codeЧто делает dataproc-skills
## Что делает
Скилл dataproc-skills добавляет агенту набор скриптов для работы с Dataproc. Скрипты запускаются через Node.js и получают параметры в виде JSON.
Внутри — четыре скрипта:
- get_cluster — получить кластер по короткому имени;
- get_job — получить задание по его ID;
- list_clusters — список кластеров с фильтром;
- list_jobs — список заданий с фильтром.
Для get_cluster и get_job достаточно короткого имени: проект и регион наследуются от источника. Для list_clusters есть фильтр по status.state, clusterName и меткам, плюс постраничный вывод с pageSize (по умолчанию 20) и pageToken.
## Как запускать
Скрипты вызываются так:
node <skill_dir>/scripts/<script_name>.js '{"<param_name>": "<param_value>"}'
В PowerShell экранирование другое:
node <skill_dir>/scripts/<script_name>.js '{\"<param_name>\": \"<param_value>\"}'
Переменные окружения скрипты подгружают сами из .env-файлов. Просить пользователя выставить их вручную стоит только если запуск упал из-за отсутствия переменной.
## Кому подойдёт
Если вы гоняете задания в Dataproc и хотите, чтобы агент сам смотрел статусы кластеров и заданий, этот скилл закрывает такую задачу. Он не заменяет gcloud, а даёт агенту понятный интерфейс к тем же данным.
Какие задачи решает
- Посмотреть состояние кластера Dataproc, не переключаясь в консоль
- Найти задание по ID и проверить, что с ним
- Отфильтровать кластеры по статусу или метке
- Пролистать список заданий постранично
Примеры запросов агенту
- Покажи статус кластера my-cluster
- Найди задание my-job и скажи, завершилось ли оно
- Выведи все активные кластеры с меткой team=analytics
Как установить dataproc-skills
1Через Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a claude-code2Вручную: положить файлы
~/.claude/skills/dataproc-skills/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dataproc-skills/
1Через Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a codex2Вручную: положить файлы
.agents/skills/dataproc-skills/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a cursor2Вручную: положить файлы
.cursor/skills/dataproc-skills/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install cline/skills dataproc-skills2Вручную: положить файлы
.github/skills/dataproc-skills/SKILL.md1Через Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a gemini-cli2Командой платформы
gemini skills install https://github.com/cline/skills --path skills/dataproc-skillsВручную: положить файлы
.devin/skills/dataproc-skills/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add cline/skills --skill dataproc-skills -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о dataproc-skills
Как установить dataproc-skills в Claude Code?
Выполните npx skills add cline/skills --skill dataproc-skills -a claude-code. Файл скилла окажется по пути ~/.claude/skills/dataproc-skills/SKILL.md.
Что делает dataproc-skills?
Даёт агенту скрипты для работы с кластерами и заданиями Dataproc: получить кластер или задание, вывести списки с фильтром.
Нужно ли вручную задавать переменные окружения?
Нет. Скрипты сами подгружают переменные из .env-файлов. Просить пользователя выставить их стоит только если запуск упал из-за отсутствия переменной.
Исходный текст
SKILL.md · Apache-2.0
---
name: dataproc-skills
description: Skills to interact with your Dataproc clusters and jobs.
---
## Usage
All scripts can be executed using Node.js. Replace `<param_name>` and `<param_value>` with actual values.
**Bash:**
`node <skill_dir>/scripts/<script_name>.js '{"<param_name>": "<param_value>"}'`
**PowerShell:**
`node <skill_dir>/scripts/<script_name>.js '{\"<param_name>\": \"<param_value>\"}'`
Note: The scripts automatically load the environment variables from various .env files. Do not ask the user to set vars unless skill executions fails due to env var absence.
## Scripts
### get_cluster
Gets a Dataproc cluster
#### Parameters
| Name | Type | Description | Required | Default |
| :---------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------- | :------ |
| clusterName | string | The short name of the cluster, e.g. for "projects/my-project/regions/us-central1/clusters/my-cluster", pass "my-cluster" (the project and region are inherited from the source) | No | |
---
### get_job
Gets a Dataproc job
#### Parameters
| Name | Type | Description | Required | Default |
| :---- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| jobId | string | The job ID, e.g. for "projects/my-project/regions/us-central1/jobs/my-job", pass "my-job" (the project and region are inherited from the source) | No | |
---
### list_clusters
Lists and filters Dataproc clusters
#### Parameters
| Name | Type | Description | Required | Default |
| :-------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| filter | string | A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax: field = value [AND [field = value]] ... where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be \* to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, UPDATING, STOPPING, or STOPPED. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING, ERROR, STOPPING, and STOPPED states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator. | No | |
| pageSize | integer | The maximum number of clusters to return in a single page (default 20) | No | `20` |
| pageToken | string | A page token, received from a previous `ListClusters` call | No | |
---
### list_jobs
Lists and filters Dataproc jobs
#### Parameters
| Name | Type | Description | Required | Default |
| :-------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| filter | string | A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax: field = value [AND [field = value]] ... where field is clusterName, status.state, or labels.[KEY], and [KEY] is a label key. value can be \* to match all values. status.state can be one of the following: PENDING, RUNNING, CANCEL_PENDING, JOB_STATE_CANCELLED, DONE, ERROR, or ATTEMPT_FAILURE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator. Filtering by clusterName is recommended to improve query performance. | No | |
| jobStateMatcher | string | Specifies if the job state matcher should match ALL jobs, only ACTIVE jobs, or only NON_ACTIVE jobs. Defaults to ALL. Supported values: ALL, ACTIVE, NON_ACTIVE. | No | |
| pageSize | integer | The maximum number of jobs to return in a single page (default 20) | No | `20` |
| pageToken | string | A page token, received from a previous `ListJobs` call | No | |
---
© cline · Apache-2.0 · cline/skills