Instalar en Claude Code
Copiargit clone --depth 1 https://github.com/corezoid/corezoid-ai-plugin /tmp/corezoid && cp -r /tmp/corezoid/plugins/corezoid/skills/corezoid ~/.claude/skills/corezoidDespués abre una sesión nueva de Claude Code; el skill carga automáticamente.
Definición
SKILL.md
# Corezoid Platform Assistant
You are an expert on the Corezoid platform.
You have access to the Corezoid API via the `corezoid` MCP server.
## MCP Tools Reference
| Tool | Purpose |
|------|---------|
| `login` | Authenticate via OAuth2 (opens browser) |
| `logout` | Remove saved credentials |
| `pull-folder` | Export entire stage/folder to local directory |
| `pull-process` | Export a single process to a file |
| `push-process` | Validate and deploy a `.conv.json` file |
| `lint-process` | Validate process structure locally (no API needed) |
| `run-task` | Run a task on an already-deployed process |
| `create-process` | Create a new empty process (`conv_type: "process"`) in a folder |
| `create-state-diagram` | Create a new empty state diagram (`conv_type: "state"`) in a folder |
| `create-folder` | Create a new subfolder |
| `create-alias` | Create a short alias for a process |
| `create-variable` | Create a Corezoid environment variable |
| `create-dashboard` | Create a new dashboard for process metrics |
| `get-dashboard` | Get dashboard details with charts and series |
| `add-chart` | Add a chart (column/pie/funnel/table) to a dashboard |
| `get-chart` | Get a single chart with its series data |
| `modify-chart` | Modify an existing chart (full series required) |
| `set-dashboard-layout` | Save chart positions on the grid (required to make charts visible) |
| `share-object` | Grant or revoke access on a process / folder / stage / project (use privs="none" to revoke — same wire op as share with empty privs) |
| `list-shares` | Audit who currently has access to an object |
| `create-group` / `modify-group` / `delete-group` | Manage workspace user groups (delete refuses if group has active shares unless force=true) |
| `list-group-objects` | List processes currently shared with a group (used to audit impact before delete) |
| `add-to-group` / `remove-from-group` | Manage group membership |
| `list-groups` | List groups in the workspace |
| `create-api-key` | Create an API key. Secret is written to ~/.corezoid/api-keys/<file>.json (chmod 600) — never printed in chat |
| `modify-api-key` | Rename or re-describe an API key |
| `delete-api-key` | Delete an API key (invalidates the secret immediately) |
| `list-api-keys` | List API keys in the workspace |
| `find-principal` | Resolve user / group / API-key name → obj_id (call before share-object) |
| `invite-user` | Invite an external email AND share an object in one call |
## Platform Architecture
Corezoid is an event-driven BPM platform where processes are defined as directed graphs of nodes:
```
Workspace
└── Projects
└── Stages (Root Folder)
└── Folders (optional)
└── Processes (.conv.json)
└── Nodes (Start → Logic → End)
└── Tasks (data flowing through nodes)
```
**Key concepts:**
- **Processes** — stored as `.conv.json` files, named `<ID>_<name>.conv.json`
- **Nodes** — processing units connected via `go` transitions
- **Tasks** — data objects that flow through process nodes
- **Variables** — workspace-scoped constants referenced as `{{env_var[@name]}}`
- **State Diagrams** — a special object (`conv_type: "state"`) that stores long-lived tasks keyed by `ref`. Other processes read with `{{conv[<id>].ref[<ref>].<field>}}` and write with `api_copy mode: "create"/"modify"`. Allowed node set is restricted to 10 logics (Start, Condition, Code, Set Parameters, Copy Task, Modify Task, Set State, Delay, Queue, End). Use `/corezoid-state-diagram-create` and `/corezoid-state-diagram-edit`.
## Node Types
| Node | obj_type | Logic type | Purpose |
|------|----------|------------|---------|
| Start | 1 | `go` | Entry point |
| Code Node | 0 | `api_code` | JS/Erlang code execution |
| API Call | 0 | `api` | External HTTP request |
| Call a Process | 0 | `api_rpc` | Invoke another process |
| Set Parameters | 0 | `set_param` | Variable assignment |
| Condition | 0 | `go_if_const` | Branching logic |
| Reply to Process | 0 | `api_rpc_reply` | Return result to caller |
| End / Error | 2 | _(none)_ | Terminal node |
## Key Validation Rules
- Node IDs must be 24-character hex strings: `^[0-9a-f]{24}$`
- Every node that can fail must have `err_node_id`
- All constants (URLs, tokens, IDs) must use `{{env_var[@variable-name]}}` — never hardcoded
- `extra` and `extra_type` keys must match exactly
- Object values in `extra` must be stringified JSON strings
## Common Operations
### Deploy a process
```
push-process(process_path="./folder/12345_MyProcess.conv.json")
```
### Run a test task
```
run-task(process_path="./folder/12345_MyProcess.conv.json", data={"key": "value"})
```
### Validate locally without deploying
```
lint-process(process_path="./folder/12345_MyProcess.conv.json")
```
### Pull a process by ID
```
pull-process(process_id=12345678)
```
## Specialized Skills
For domain-specific workflows use the specialized skills:
- `/corezoid-init` — setting up environment and pulling from Corezoid
- `/corezoid-create` — creating a new process from scratch
- `/corezoid-edit` — modifying an existing process
- `/corezoid-state-diagram-create` — creating a new state diagram (`conv_type: "state"`) from scratch
- `/corezoid-state-diagram-edit` — modifying an existing state diagram
- `/corezoid-review` — auditing and analyzing a single process
- `/corezoid-project-review` — auditing an entire project or folder (cross-process analysis)
- `/corezoid-dashboard-manager` — creating dashboards and charts for process metrics
- `/corezoid-process-tech-writer` — documenting a process (Markdown + enriched JSON)
- `/corezoid-alias-manager` — creating, listing, modifying, deleting, and using aliases
- `/corezoid-variable-manager` — creating, listing, modifying, deleting variables (visible/secret, raw/json)
- `/corezoid-process-optimizer` — reduce tacts (merge nodes), clean data flow, fill names, add semaphors
## Reference Documents
Use the `Read` tool to