Corezoid State Diagram Edit logo

Corezoid State Diagram Edit

Organization
corezoid
corezoid-state-diagram-edit

Corezoid state diagram editing specialist. Use when the user wants to modify, update, or fix an existing Corezoid state diagram — add or remove a state, change a transition, add a side effect on transition, fix the wiring of an api_callback state node, or rework transitions. Activate when the user says "edit a state diagram", "add a state", "remove a state", "change transitions", "fix state diagram", "update state machine", "поправить state diagram", "изменить состояния", or refers to modifying a .conv.json with conv_type "state".

Overview

Publishercorezoid
Repositorycorezoid-ai-plugin
Skill namecorezoid-state-diagram-edit
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 State Diagram Edit 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-state-diagram-edit
  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-state-diagram-edit .claude/skills/corezoid-state-diagram-edit
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Corezoid State Diagram Edit 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 State Diagram Edit 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 State Diagram Edit 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.

Edit an Existing Corezoid State Diagram

You are a specialist in modifying Corezoid state diagrams (conv_type: "state") using the corezoid MCP server.

A state diagram is a long-lived data store; modifying it means changing the set of states, the data conditions that drive transitions between them, or the side effects performed on transition. The driver processes that read / write the diagram are usually edited separately via /corezoid-edit.

Read ${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-overview.md for a refresher on the model before editing.


Identify the State Diagram (MANDATORY FIRST STEP)

Before doing anything else, resolve PROCESS_PATH:

  1. Check whether the user already provided an identifier — a file path, state diagram name, or numeric id — in the current message or conversation history.
  2. If no identifier is provided, ask:

    "Please specify the state diagram — a file path (e.g. 1863140_User_Status.conv.json), a name, or a state diagram id." Do not call any MCP tools until the user provides one.

  3. If the user gives a name or id, search the local working directory for the matching .conv.json using find / grep.
  4. Open the file and confirm "conv_type": "state" at the root. If conv_type is "process", this is a regular process — hand off to /corezoid-edit instead.
  5. Once PROCESS_PATH is confirmed, analyze the file before changing anything.

Step 1: Analyze the State Diagram

Read the file and map out:

  • The list of state nodes (every node with obj_type: 0 whose first logic is api_callback). Note each state's id, title, and outbound go_if_const transitions.
  • The Start node and which state it routes to (the initial state).
  • Any helper nodes between states (Set Parameters, Code, Modify Task, Copy Task, Delay, Queue).
  • Terminal nodes (obj_type: 2).

🔍 If you see obj_type: 3 state nodes, you are looking at the legacy state-node format. The current Corezoid format uses obj_type: 0 with api_callback as the first logic. Convert old nodes to the new format only if the user explicitly asks — otherwise leave them as-is and edit in place.

Make sure you also locate any driver processes that reference this state diagram (search the project for conv[<sd_id>], conv[@<alias>], and api_copy nodes with conv_id: <sd_id>). When editing, you may need to update those drivers too.


Step 2: Plan the Edit

Categorise the change before touching JSON:

Change typeWhat to touch
Add a new stateInsert a new obj_type: 0 state node with api_callback + transitions + self-loop. Wire at least one inbound transition from an existing state's go_if_const.
Remove a stateDelete the node and re-route every inbound transition that pointed to it. Search the file for to_node_id: "<deleted_id>".
Change a transition conditionEdit the conditions array of the relevant go_if_const in the source state.
Re-target a transitionChange to_node_id of the relevant go_if_const.
Add a side effect on transitionInsert a Modify Task / Copy Task / Set Parameters node between the source state and the target state. Update the source state's go_if_const.to_node_id to point at the new helper, and have the helper go to the original target.
Rename a stateChange title only — the id must stay the same to preserve drivers that reference it.
Add an aliasHand off to /corezoid-alias-manager.

Step 3: Apply Changes

Edit PROCESS_PATH directly.

Core rules

  • Connect nodes only through go / go_if_const to_node_id fields.
  • Every node that has err_node_id (Code, Set Parameters, Copy Task, Modify Task, Queue) must point at a real End: Error node — never to a state node.
  • Node ids are 24-character hex: ^[0-9a-f]{24}$. For new nodes, generate fresh ids; never reuse an old id, even if its node was deleted.
  • Use descriptive title values — they are the state names visible on the canvas and dashboards.
  • Layout: keep states roughly on the same y lane (≈ 400); increment x by ≈ 320–400 between adjacent states. Start at y = 100. End nodes at the bottom.

State node invariants (do not break these)

For every state node:

  • obj_type: 0
  • First logic is exactly { "type": "api_callback" } (no extra fields)
  • Every outbound transition is a go_if_const between the api_callback and the trailing go
  • The final logic is { "type": "go", "to_node_id": "<self_id>" } — the "stay here" fallback
  • extra contains "icon":"state"
  • No err_node_id on api_callback

If you add or modify transitions, the order matters — first matching go_if_const wins. Put more specific conditions first.

Allowed logics

Only these logics may appear inside a state diagram. Adding anything else will fail validation on push.

AllowedType
Startgo (obj_type: 1)
Stateapi_callback + go_if_consts + self-go
Conditiongo_if_const
Codeapi_code
Set Parametersset_param
Copy Task (fan-out)api_copy with mode: "create"
Modify Task (by ref)api_copy with mode: "modify"
Delaysemaphor-only
Queueapi_queue
End(obj_type: 2)

Forbidden: api, api_rpc, api_rpc_reply, db_call, git_call, api_sum, api_form. If the user asks to add one of these, push back: move the side effect into the driver process and explain why.

Common pitfalls

  • Adding a state but forgetting to wire any inbound transition → unreachable state.
  • Deleting a state but leaving a go_if_const somewhere with to_node_id pointing to the deleted id → push will fail with "unknown node".
  • Reordering transitions accidentally: the first matching go_if_const wins, so order is semantically meaningful.
  • Using api_copy mode: "modify" from inside the state diagram targeting its own ref — that re-triggers api_callback and can loop. Use set_param to update the current task in place instead.
  • Forgetting to update the driver process when you rename a state and the driver compares against its name (e.g. {{conv[…].ref[…].status}} == "Active"). The state name is title; the driver compares against a stored value, not the title — confirm with the user which they're checking.

Step 4: Deploy the Changes

MANDATORY: Always push after any change — even if work is in-flight. Without push, the changes exist only on disk.

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

If push fails:

  • Re-read the file and confirm "conv_type": "state" is still at the root (a stray editor save or auto-format may have flipped it).
  • Lint with lint-process to localise the issue.
  • Confirm every state node still ends in go → self_id.
  • Confirm no forbidden logic types were introduced.

After a successful push, notify the user:

"State diagram updated. Refresh the Corezoid page to see the new states / transitions. Any tasks already parked in renamed states keep their id references intact, but tasks parked in deleted states are now stranded — check the workspace before deleting a populated state."

⚠️ Live data warning: Unlike regular processes, a state diagram usually has live tasks parked in its states. Deleting or restructuring a state can strand those tasks. Before deleting a state, ask the user whether they want to migrate parked tasks first (e.g. by modifying their ref so they transition out of the doomed state).


Step 5 (optional): Update Driver Processes

If your edit changed the observable interface of the state diagram — added a new field that drivers should now read, renamed a field drivers compare against, or removed a state drivers used to detect — hand off to /corezoid-edit for each driver process that needs updating.

To find driver processes affected by the edit, search the project:

grep -rn "conv\[<sd_id>\]" .
grep -rn "conv_id\": <sd_id>" .
grep -rn "conv\[@<alias>\]" .

Reference Documents

PathWhen to read
${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-overview.mdConcepts, allowed nodes, root structure
${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-node-structures.mdCanonical JSON for every allowed node type
${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-process-interaction.mdHow driver processes read / create / modify state tasks
${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-state-node.mdBackground and the {{conv[...]}} template
${CLAUDE_PLUGIN_ROOT}/docs/nodes/copy-task-node.mdError catalogue for api_copy
${CLAUDE_PLUGIN_ROOT}/docs/nodes/condition-node.mdgo_if_const reference
${CLAUDE_PLUGIN_ROOT}/docs/variables-guide.mdVariables ({{env_var[@…]}})

Example Files

PathDescription
${CLAUDE_PLUGIN_ROOT}/samples/state-diagrams/user-status-state-diagram.conv.jsonMinimal two-state diagram (Active ⇄ Inactive)
${CLAUDE_PLUGIN_ROOT}/samples/state-diagrams/user-status-driver-process.conv.jsonCompanion driver process

Frequently asked questions

What does the Corezoid State Diagram Edit AI skill do?

Corezoid state diagram editing specialist. Use when the user wants to modify, update, or fix an existing Corezoid state diagram — add or remove a state, change a transition, add a side effect on transition, fix the wiring of an api_callback state node, or rework transitions. Activate when the user says "edit a state diagram", "add a state", "remove a state", "change transitions", "fix state diagram", "update state machine", "поправить state diagram", "изменить состояния", or refers to modifying a .conv.json with conv_type "state".

Why use Corezoid State Diagram Edit on TypingMind?

Because you install it once and use it with any model. Corezoid State Diagram Edit 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 State Diagram Edit 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-state-diagram-edit. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Corezoid State Diagram Edit?

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 State Diagram Edit?

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

Is the Corezoid State Diagram Edit 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 👇