Corezoid Create logo

Corezoid Create

Organization
corezoid
corezoid-create

Corezoid process creation specialist. Use when the user wants to create a new Corezoid process from scratch, build a new automation flow, or design a new business process. Activate when the user says "create a process", "build a new flow", "new process", "design from scratch", "create an automation", or "add a new process". Not for API connectors — use /corezoid-connector-create.

Overview

Publishercorezoid
Repositorycorezoid-ai-plugin
Skill namecorezoid-create
Stars
74
Forks
26
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by corezoid on GitHub. Read the source before you install it.

Installation

Install the Corezoid Create AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/corezoid/corezoid-ai-plugin/tree/main/plugins/corezoid/skills/corezoid-create
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/corezoid/corezoid-ai-plugin.git /tmp/corezoid-ai-plugin
mkdir -p .claude/skills
cp -r /tmp/corezoid-ai-plugin/plugins/corezoid/skills/corezoid-create .claude/skills/corezoid-create
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Corezoid Create in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Corezoid Create on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Corezoid Create is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Create a New Corezoid Process

You are a specialist in creating Corezoid processes using the corezoid MCP server.

Step 1: Gather Requirements

⚠️ If the request is a connector to one API endpoint (any HTTP API — external, internal, or Corezoid's own public API), stop here and use /corezoid-connector-create instead — it builds the atomic single-endpoint pattern (input contract, validation, API Call, Reply on every outcome, test, Smart API registration). Exception: the user explicitly invoked /corezoid-api-connector — do not intercept that.

Ask the user for the following before proceeding:

  • Process purpose — what should it do?
  • Input parameters — what data does it receive?
  • Expected output — what should it return on success?
  • Process type — business logic that orchestrates other Corezoid processes (several calls; a single-endpoint API connector belongs to the warning above, not here)

If any required information is missing, ask the user before proceeding.


Step 2: Create the Empty Process

Call MCP tool create-process with:

  • folder_path: Relative path to the folder directory. Omit to use the current directory.
  • process_name: the process name

This creates an empty process in Corezoid and saves the file as <ID>_<Name>.conv.json inside folder_path. The returned file path is PROCESS_PATH — all subsequent steps use it.

⚠️ Always verify folder_path points to the intended target folder. Omitting it places the process in the project root, which may not be the correct location.

⚠️ After create-process, Corezoid may create default template nodes (Start, a placeholder process node, Final) even with create_mode: without_nodes. Before generating the full JSON, check the current scheme.nodes array in the created file. If a Start node already exists, do not add another — doing so will cause a validation error.

If the process type is business logic and it needs to call existing processes, find their conv_id values by browsing the already-exported .conv.json files in the project folder.


Step 3: Design the Process Structure

Every process follows this base structure:

#Nodeobj_typePurpose
1Start1Entry point
2Code Node (optional)0Prepare / transform input data
3API Call or Call a Process0Core action (one or more)
4Reply to Process (Success)0Return result to caller
5Reply to Process (Error)3Return error to caller — one dedicated node per failure point; err_node_id targets are escalations (obj_type: 3)
6Error2Terminal error node — one dedicated, descriptively-named node per failure point
7Final2Terminal success node

Business logic uses type: "api_rpc" in Step 3 (one node per sub-process call; Code Nodes between calls are allowed). An individual step may still use an api Call node alongside api_rpc calls — a standalone single-endpoint connector belongs in /corezoid-connector-create.

Node type quick reference

Nodeobj_typeLogic type
Start1go
Code Node0api_code
Call a Process0 (4 only for active Stub Mode)api_rpc
API Call0api
Condition (business flow)0go_if_const
Reply to Process (success, via go)0api_rpc_reply
Any err_node_id target (error Reply, retry Condition/Delay)3(escalation)
End / Error2(no logics)

For complete JSON schemas see ${CLAUDE_PLUGIN_ROOT}/docs/node-structures.md.

Node choice — do NOT default to git_call. git_call is deliberately absent from the table above: hosted sandbox measurements show an approximately 60 s execution deadline, so handlers need to finish comfortably below 50 s. Its default 50 MB RAM / 0.1 CPU allocation comes from a shared, super-admin-configurable pool; concurrent calls can contend for it, and local storage is ephemeral. Writing one code block is often easier than modelling the flow — that is not a reason to use it. Prefer, in order: native nodes (set_param, condition, delay, api/api_rpc, db_call) → a Code node (api_code) for transforms/parse/compute → git_call only when a file to parse, an external library, or a custom runtime leaves no other option. Never put long-running work or a latency-critical path that requires predictable execution time in git_call. Model loops/polling as process state with condition+delay, and external waits with a callback; those patterns avoid holding one handler open and remain subject to normal platform/process limits. Full guidance and the decision gate: the corezoid-gitcall skill.


Step 4: Generate the Process JSON

Produce a valid .conv.json file.

Root object

json
{
  "obj_type": 1,
  "obj_id": null,
  "parent_id": null,
  "title": "Process Name",
  "description": "",
  "status": "active",
  "params": [],
  "ref_mask": true,
  "conv_type": "process",
  "scheme": {
    "nodes": [],
    "web_settings": [[], []]
  }
}

Fill in description based on the requirements gathered in Step 1 (see Description Update Rule in corezoid/SKILL.md): 1–2 sentences starting with a verb, under 200 characters, no "This process…" preamble.

params — declare all input parameters the caller must pass. See ${CLAUDE_PLUGIN_ROOT}/docs/process/process-with-parameters.md.

Core rules

  • Node IDs must be unique 24-character hex strings: ^[0-9a-f]{24}$. These are temporary placeholders for new nodes — on push-process Corezoid reassigns its own canonical IDs (and rewires references within the push). Run pull-process after pushing to get the canonical IDs before any further edits. See Node ID Lifecycle.
  • Connect nodes only through the go field
  • Dedicated error cluster per error-prone node. Every node that can fail (set_param, api, api_rpc, api_code, api_copy, db_call, git_call, api_sum) gets its own error path — never funnel several failing nodes into one shared Reply/Error node. Each cluster is:
    1. A Reply to Process node (api_rpc_reply, obj_type: 3 — it is an escalation, being an err_node_id target) that returns the error to the caller — set to collapsed: "extra": "{\"modeForm\":\"collapse\",\"icon\":\"\"}".
    2. → an Error end node (obj_type: 2, collapsed like the rest of the cluster: "extra": "{\"modeForm\":\"collapse\",\"icon\":\"error\"}") named after the specific failure so the error is obvious on hover/selection (e.g. Charge Payment Error, not generic Error).
    • Wire err_node_id of the failing node → its Reply node; the Reply node's go → its Error node.
    • Separate Error nodes per failure point (instead of one shared terminal) make the process far more readable.
    • For fire-and-forget processes that do not reply to a caller, skip the Reply node and wire err_node_id directly to the dedicated named Error node.
    • A single node's error MAY fan through its own Condition (several go_if_const branches) into one Error terminal — that cluster still belongs to that one node. A NEIGHBOUR's error must never join it (direct err_node_id or a converging tail) — lint-process flags this as a shared error cluster.
    • When the error path routes a retry (Condition → Delay → back to the failing node), set the error-path Condition and the Delay to collapsed ("extra": "{\"modeForm\":\"collapse\",\"icon\":\"\"}"), same as the Reply node. Business-logic Conditions stay expanded.
    • Every err_node_id target is obj_type: 3 — the error Reply AND the retry/fatal Condition alike. An obj_type: 0 err target is the legacy old format: the UI shows "Convert process to new format" and rewrites it. Business-flow Conditions reached via go stay obj_type: 0.
    • Never mix an action logic with go_if_const in one node (e.g. set_param + a conditional branch). That is old format too — the UI converter splits it. Author it as two nodes: the action node's go → a separate Condition node. lint-process flags both old-format shapes.
    • Never create an Escalation node (obj_type: 3) that only contains a bare go — that is a passthrough anti-pattern flagged by lint-process.
  • A process invoked via Call a Process (api_rpc) must execute api_rpc_reply on EVERY path — success included. The caller's task waits in the Call node until the callee replies; a path that reaches a final without a Reply hangs the caller until its timeout semaphor. Put a collapsed success Reply right before the success final. lint-process flags finals reachable without a Reply in any process that replies elsewhere.
  • Do not create active Stub Mode unless the user explicitly asks for a temporary mock. Stub Mode is obj_type: 4 plus condition.stub; it bypasses the called process and returns configured mock replies. Use it only while the target process is not ready or for controlled integration tests, and avoid production unless the user explicitly confirms allow_active_stub_mode=true.
  • All constants (URLs, tokens, IDs) must be Corezoid variables — never hardcoded:
    1. Check for existing variables: read _ENV_VARS_.json (from pull-folder) or .processes/variables.json (from this session)
    2. Create a new variable if needed: call cz-variables with action: "create-variable" and args name, description, value
    3. Reference in logic: {{env_var[@variable-name]}}
  • Use descriptive title values (e.g., "Call Payment Process", not "RPC")
  • Position main-flow nodes top-to-bottom, incrementing y by 200–250px
  • Pin each error cluster tight to the node it protects. Place the Reply node at the same y as its failing node and just to the right (x + ~250) so the collapsed Reply sits right next to it; place its Error node immediately to the right of the Reply (x + ~500), same y. Same y gives a straight horizontal connector; the small offset keeps the cluster visually attached instead of drifting off with a large gap

Common pitfalls

  • Using "type": "call_process" instead of "type": "api_rpc" — will fail validation
  • Missing extra/extra_type in Call a Process node — both required even if empty ({})
  • Leaving active Stub Mode (obj_type: 4) in a production path — it returns mock data instead of calling the real process
  • Raw JSON objects as values in extra — must be stringified: "{\"key\":\"val\"}"
  • Keys in extra and extra_type must match exactly
  • Missing rfc_format: true, customize_response: true, or version: 2 in API Call node

Step 5: Lay Out the Nodes

You built this process, so its positions are yours to arrange: leave the node coordinates at x: 0, y: 0 while generating the JSON (never hand-place them by eye) and call MCP tool layout-process with process_path: "<PROCESS_PATH>" once the nodes and edges are final. It arranges everything deterministically (no overlaps, business flow top-down, errors railed to the right) and reports the strategy and canvas size. See the corezoid-node-layout skill for details and density options.


Step 6: Validate with Lint

Call MCP tool lint-process with process_path: "<PROCESS_PATH>".

Fix all reported errors and re-run until the output is clean. Do not proceed with lint errors.


Step 7: Deploy and Test

Call MCP tool push-process with process_path: "<PROCESS_PATH>".

After a successful deploy, run a test task to verify the process behaves as expected:

Call MCP tool run-task with:

  • process_path: <PROCESS_PATH>
  • data: {"param1": "value1"}

Reference Documents

Use the Read tool to load these files when specific node or validation details are needed:

PathWhen to read
${CLAUDE_PLUGIN_ROOT}/docs/node-structures.mdJSON schemas for all node types + full Logics fields reference (canonical)
${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-built-in-functions.mdBuilt-in functions: $.math, $.date, $.random, $.sha1_hex, $.md5_hex, $.base64_encode, $.unixtime, $.map, $.filter
${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-dynamic-values.mdDynamic values: {{var}}, {{node[id].count}}, {{node[id].SumID}}, {{conv[@alias].ref[...]}}, {{env_var[@name].key[1]}}
${CLAUDE_PLUGIN_ROOT}/docs/tasks/task-metadata.mdGlobal 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.mdCode node details and available JS libraries
${CLAUDE_PLUGIN_ROOT}/docs/nodes/call-process-node.mdCall a Process node, semaphores, cross-folder calls
${CLAUDE_PLUGIN_ROOT}/docs/nodes/reply-to-process-node.mdReply formats, object stringification
${CLAUDE_PLUGIN_ROOT}/docs/nodes/api-call-node.mdHTTP API call configuration
${CLAUDE_PLUGIN_ROOT}/docs/nodes/delay-node.mdDelay/timer node; 30s limit is static-literal only — dynamic absolute-timestamp value for scheduled or sub-30s delays
${CLAUDE_PLUGIN_ROOT}/docs/nodes/end-node.mdEnd node success/error configuration
${CLAUDE_PLUGIN_ROOT}/docs/process/process-json-validation.mdValidation rules and common errors
${CLAUDE_PLUGIN_ROOT}/docs/process/error-handling.mdError handling patterns
${CLAUDE_PLUGIN_ROOT}/docs/process/node-positioning-best-practices.mdCoordinate system and layout guidelines
${CLAUDE_PLUGIN_ROOT}/docs/variables-guide.mdVariable naming rules, creation workflow, usage examples

Example Processes

PathDescription
${CLAUDE_PLUGIN_ROOT}/samples/api-post.jsonA single api Call node inside a business-logic process — not the connector pattern; for a standalone connector use /corezoid-connector-create (references/process-skeleton.md there has the compliant shape: debug_info: true, named result fields)
${CLAUDE_PLUGIN_ROOT}/samples/corezoid-api-node-list.conv.jsonCorezoid API connector (Node List, api_secret_outer pattern)
${CLAUDE_PLUGIN_ROOT}/samples/stripe-checkout.jsonStripe payment checkout flow
${CLAUDE_PLUGIN_ROOT}/samples/create-actors.jsonBusiness logic with multiple process calls
${CLAUDE_PLUGIN_ROOT}/samples/gpt-calculator.jsonGPT integration example
${CLAUDE_PLUGIN_ROOT}/samples/create-user.jsonUser creation process

Final Step: Update Git Context

Do NOT report the task as complete and do NOT stop until this step is evaluated. The main task being deployed does not mean the session is over — this step is next.

Immediately after push-process or create-process succeeds, check whether at least one of the following is true:

  • push-process or create-process was actually called (not just previewed);
  • a new external host/API/service appeared that is not yet in dependencies.md;
  • an architectural decision was made (one approach chosen over another);
  • an issue was found or closed during this session.

If yes → activate corezoid-git-context skill right now. Do not wait for the user to ask. Do not skip because the main task "looks done".

If none of the above → skip and tell the user the session is complete.

The skill handles everything autonomously: reads current _ext/docs/, proposes a unified diff, asks confirmation, writes files, and pushes — one invocation.

Frequently asked questions

What does the Corezoid Create AI skill do?

Corezoid process creation specialist. Use when the user wants to create a new Corezoid process from scratch, build a new automation flow, or design a new business process. Activate when the user says "create a process", "build a new flow", "new process", "design from scratch", "create an automation", or "add a new process". Not for API connectors — use /corezoid-connector-create.

Why use Corezoid Create on TypingMind?

Because you install it once and use it with any model. Corezoid Create is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Corezoid Create in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/corezoid/corezoid-ai-plugin/tree/main/plugins/corezoid/skills/corezoid-create. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Corezoid Create?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Corezoid Create?

As many as you like. As long as a model supports skills, you can use Corezoid Create with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Corezoid Create AI skill free?

Yes. It is published on GitHub by corezoid under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇