# Corezoid

> >

- **Type:** Skill
- **Install:** `agentstack add skill-corezoid-corezoid-ai-plugin-corezoid`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [corezoid](https://agentstack.voostack.com/s/corezoid)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [corezoid](https://github.com/corezoid)
- **Source:** https://github.com/corezoid/corezoid-ai-plugin/tree/main/plugins/corezoid/skills/corezoid
- **Website:** https://corezoid.com

## Install

```sh
agentstack add skill-corezoid-corezoid-ai-plugin-corezoid
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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/.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 `_.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[].ref[].}}` 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-stage-scan` — pre-merge/pre-deploy static check of exported stage `.zip`s: non-active processes, empty/battered processes, broken node links, broken/inactive `conv_id` references (explains "Only active process can be used", "referenced node X does not exist", "Access user to conveyor is denied")
- `/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
- `/corezoid-api-connector` — build processes that call the Corezoid public API (`/api/2/json/`) using `api_secret_outer`

## Reference Documents

Use the `Read` tool to load these files when you need deeper detail:

| Path | When to read |
|---|---|
| `${CLAUDE_PLUGIN_ROOT}/docs/node-structures.md` | JSON schemas for all node types + full Logics fields reference (canonical) |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-built-in-functions.md` | Built-in functions: `$.math`, `$.date`, `$.random`, `$.sha1_hex`, `$.md5_hex`, `$.base64_encode`, `$.unixtime`, `$.map`, `$.filter` |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-dynamic-values.md` | Dynamic values: `{{var}}`, `{{node[id].count}}`, `{{node[id].SumID}}`, `{{conv[@alias].ref[...]}}`, `{{env_var[@name].key[1]}}` |
| `${CLAUDE_PLUGIN_ROOT}/docs/tasks/task-metadata.md` | Global `root.*` fields: `root.task_id`, `root.ref`, `root.conv_id`, `root.node_id`, `root.prev_node_id`, `root.user_id`, `root.change_time`, `root.create_time` |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/code-node.md` | Code node details and available JS libraries |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/call-process-node.md` | Call a Process node, semaphores, cross-folder calls |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/api-call-node.md` | HTTP API call configuration |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/condition-node.md` | Condition node (branching logic) |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/reply-to-process-node.md` | Reply formats, object stringification |
| `${CLAUDE_PLUGIN_ROOT}/docs/nodes/end-node.md` | End node success/error configuration |
| `${CLAUDE_PLUGIN_ROOT}/docs/process/process-json-validation.md` | Validation rules and common errors |
| `${CLAUDE_PLUGIN_ROOT}/docs/process/error-handling.md` | Error handling patterns |
| `${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-overview.md` | State diagram concepts and allowed nodes |
| `${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-node-structures.md` | JSON schemas for nodes inside a state diagram |
| `${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-process-interaction.md` | How driver processes read / create / modify state tasks |
| `${CLAUDE_PLUGIN_ROOT}/docs/variables-guide.md` | Variable naming rules, creation workflow, usage examples |

## Tips

- Always `lint-process` before `push-process` to catch errors early
- Use `pull-folder` to sync the full stage to disk before editing
- Node IDs are 24-char hex — generate with `crypto.randomBytes(12).toString('hex')`
- Variables are workspace-scoped — check `_ENV_VARS_.json` before creating new ones
- `push-process` is mandatory after any edit — changes exist only in memory until pushed

## Proactive improvement/bug reporting

When responding to a user message that reveals a **platform-level mistake** — wrong node type, wrong API choice (Corezoid vs Simulator), wrong process structure, wrong MCP tool, missing required platform field — add one line to your response, adapted to the situation:

- Bug / broken behavior → "Хотите сообщить о баге команде Corezoid?"
- Unexpected plugin choice → "Хотите сообщить об этом команде Corezoid?"
- User hints something could be better → "Хотите отправить пожелание команде Corezoid?"

This is one extra line in the same response, not a separate action. Offer once per problem; do not repeat if the user declines.

**Do not add this line** for business-logic iterations: changing a value, adding a field, renaming, adjusting a condition — these are normal user changes, not platform issues.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [corezoid](https://github.com/corezoid)
- **Source:** [corezoid/corezoid-ai-plugin](https://github.com/corezoid/corezoid-ai-plugin)
- **License:** MIT
- **Homepage:** https://corezoid.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-corezoid-corezoid-ai-plugin-corezoid
- Seller: https://agentstack.voostack.com/s/corezoid
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
