Yida Create Process logo

Yida Create Process

Organization
openyida
yida-create-process

流程表单一体化创建(创建表单 → 转流程 → 配置流程);仅当无既有流程/表单上下文且用户意图允许新建流程表单时使用。

Overview

Publisheropenyida
Repositoryopenyida
Skill nameyida-create-process
Stars
228
Forks
50
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 openyida on GitHub. Read the source before you install it.

Installation

Install the Yida Create Process 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/openyida/openyida/tree/main/yida-skills/skills/yida-create-process
  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/openyida/openyida.git /tmp/openyida
mkdir -p .claude/skills
cp -r /tmp/openyida/yida-skills/skills/yida-create-process .claude/skills/yida-create-process
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Yida Create Process 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 Yida Create Process 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 Yida Create Process 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.

流程表单一体化创建

资源边界:本技能只处理普通 OpenYida 流程表单创建;目标不明时先只读确认或询问用户。

Resource-First 使用门槛

本技能不是“审批/流程”诉求的默认入口。执行前必须先解析 app/form/process context:

  • 已有流程表单、processCode、流程表单 URL 或 bound process 时,禁止从零创建,改用 yida-process-rule 配置/更新节点、分支、字段权限。
  • 已有普通表单 formUuid 且用户明确要把这张表单转成审批流程时,可使用用法 2(--formUuid)复用该表单;不得新建同名表单。
  • 只有没有目标表单/流程,且用户明确要新建带审批的数据入口或完整审批系统时,才使用用法 1 或推荐两步流程创建新表单再转流程。
  • 多个表单/流程候选按根技能来源优先级选择;同级冲突或无法判断要改哪条流程时才问用户。

严格禁止 (NEVER DO)

  • 不要编造 processCode,必须从命令返回的 JSON 中提取
  • 不要在流程定义中使用猜测的 fieldId,必须先用 yida-get-schema 获取
  • 不要在流程定义 nodes 中声明 start / startNode / end / endNode / finish 节点;OpenYida 会自动生成发起和结束节点
  • 不要把审批节点写成 approve;CLI 支持的是 approval(名词),别名可用 approver / approvalNode
  • 不要用 shell heredoc、cat/echo/printf/tee 或重定向生成字段定义、流程定义 JSON 文件
  • 已有流程表单、processCode 或 bound process 时,不要从零创建流程表单;改用 yida-process-rule。

严格要求 (MUST DO)

  • 创建前必须确认:执行创建命令前,必须向用户确认表单名称、流程配置和目标应用,获得用户明确同意后再执行
  • 优先使用用法 2(先创建表单获取字段 ID,再 --formUuid 转流程)
  • 创建成功后,将 formUuid 和 processCode 记录到 .cache/<项目名>-schema.json
  • 流程定义中字段 ≥ 3 且审批节点 ≥ 2 时,必须自动配置字段权限
  • 字段定义和流程定义文件必须用 agent 的结构化文件写入工具创建到 <projectRoot>/.cache/openyida/<项目名或任务名>/;不要在仓库根目录、系统临时目录或 .cache/ 顶层生成 fields.json、process-definition.json 等临时文件
  • 本技能不读写 memory:formUuid 和 processCode 输出到 stdout,通过 .cache/<项目名>-schema.json 持久化,不依赖跨会话的 memory 状态
  • 创建或转换任何远程资源前,CLI 必须先完成字段和流程定义的纯本地编译;本地编译失败时远程写入数必须为 0
  • 复用普通表单时由 configure-process 统一执行表单模式只读 preflight、必要转换、发布与平台 view 回读,不要在外层先手动转换表单

配置失败后的原表恢复

  • create-process 返回 success:false 且包含 formUuid 时,该表单已经存在,失败的是后续配置;新建模式与复用模式均适用。保存返回的 appType/formUuid,禁止去掉 --formUuid、再次 create-form 或另建同名表作为恢复手段。
  • 先按错误中的 stage、nextStep 和 recovery 检查原表状态及权限。修正明确原因后只能复用原 formUuid,使用返回的完整 retryCommand;不得自动补 --replace 绕过已绑定流程的保护。
  • noWriteRetry:true、NON_IDEMPOTENT_RESULT_UNKNOWN 或 PUBLISHED_UNVERIFIED 表示远程结果未确认:只读核实原表/流程,不能执行写重试,也不能新建替代资源。
  • 无法安全恢复时保留原表,并向用户报告原表链接、失败阶段和需处理的问题;不要宣称流程已完成。

适用场景

用户需要"创建审批流程"、"新建流程表单"、"搭建审批系统",且 resource context 没有既有流程/表单目标时使用。

关键区分:

  • 从零创建流程表单(含表单+流程配置)→ 本技能
  • 为已有表单或流程配置/修改审批规则 → yida-process-rule;已有普通表单要转流程时仅使用本技能的 --formUuid 复用模式

触发条件

正向触发:

  • "创建审批流程"、"新建流程表单"
  • "搭建审批系统"、"创建带审批的表单"
  • 需求中含「审批」「流程」「申请」「审核」「工单」等关键词,且尚无目标表单/流程

用法 1:全新创建

bash
openyida create-process <appType> <formTitle> <fieldsJsonFile> <processDefinitionFile> [--replace]

用法 2:复用已有表单(推荐)

bash
openyida create-process <appType> --formUuid <formUuid> <processDefinitionFile> [--replace]

推荐用法 2:先用 openyida create-form create 创建表单获取字段 ID,再用 --formUuid 转流程表单。

参数必填说明
appType是应用 ID
formTitle用法 1 必填表单名称
fieldsJsonFile用法 1 必填字段定义文件(格式同 yida-create-form-page)
--formUuid用法 2 必填已有表单 UUID
processDefinitionFile是流程定义文件(格式同 yida-process-rule)
--replace条件必填仅当目标已存在 PUBLISHED 流程或 SAVED 草稿,并已获得用户对整图替换的明确确认时传入

参数不确定时先看 openyida create-process --help。缺参、重复参数或未知选项会在读文件和登录前返回 CREATE_PROCESS_INVALID_ARGUMENTS;按 details.argument 定位参数、details.reason 判断原因,修正后重试。复用参数写作 --formUuid。

输出

json
{"success":true,"formUuid":"FORM-YYY","formMode":"create","formTitle":"订单处理表","appType":"APP_XXX","fieldCount":6,"processCode":"TPROC--XXX","processId":"83145794990","processVersion":2,"verificationLevel":"PLATFORM_VIEW_VERIFIED","platformViewVerified":true,"url":"{base_url}/APP_XXX/workbench/FORM-YYY"}

formMode 区分新建(create)和复用(reuse)。复用模式不读取表单名称和字段数,formTitle、fieldCount 返回 null,表示未查询,不代表字段为空或转换失败;新建模式返回传入名称和创建结果中的字段数。配置失败时返回的表单信息也遵循此约定。流程是否成功以 success 和 verificationLevel 为准,不能根据字段数判断。

流程定义最小 DSL 合约

processDefinitionFile 只描述发起和结束之间的业务节点。OpenYida 编译器会自动注入发起节点和结束节点,nodes 数组里不要手写任何 start/end 节点。

节点参数按需加载 use_skill("yida-flow-node-config", "流程;所需节点类别或配置项")。发起页字段权限用顶层 startFormConfig;谁能发起用表单 START 权限组。保存发布和整图替换仍遵循 yida-process-rule,不必为简单人员配置加载全部高级节点。

合法基础节点类型只使用这些值:

节点意图type 写法
审批approval
办理 / 填写operator
条件分支route
并行分支parallel
抄送carbon
多人审批multiApproval,并设置 mode: all|or|oneByOne 与必填 approver

常见误写必须修正:

错误写法正确处理
start, startNode, StartNode删除该节点,CLI 自动生成发起节点
end, endNode, finish, FinishNode删除该节点,CLI 自动生成结束节点
approve改成 approval

最小合法流程定义示例:

json
{
  "nodes": [
    {
      "type": "approval",
      "name": "主管审批",
      "approver": "originator"
    }
  ]
}

带条件分支示例:

json
{
  "nodes": [
    {
      "type": "route",
      "name": "金额分支",
      "conditions": [
        {
          "name": "5万以上",
          "rules": [
            {
              "fieldId": "numberField_amount",
              "fieldName": "采购金额",
              "componentType": "NumberField",
              "op": "GreaterThanOrEqual",
              "value": 50000
            }
          ],
          "childNodes": [
            { "type": "approval", "name": "总经理审批", "approver": "originator" }
          ]
        },
        {
          "name": "5万以下",
          "rules": [
            {
              "fieldId": "numberField_amount",
              "fieldName": "采购金额",
              "componentType": "NumberField",
              "op": "LessThan",
              "value": 50000
            }
          ],
          "childNodes": [
            { "type": "approval", "name": "部门经理审批", "approver": "originator" }
          ]
        }
      ]
    }
  ]
}

推荐两步流程

  1. 使用 create_file / Write / file edit tool 创建字段定义: <projectRoot>/.cache/openyida/order/order-fields.json
  2. 执行表单创建命令,获取真实 formUuid 和 fieldId。
  3. 使用结构化文件写入工具创建流程定义: <projectRoot>/.cache/openyida/order/process-definition.json
  4. 执行流程转换命令。
bash
# 以下命令默认在 OpenYida project 工作目录内执行;从 workspace 根执行时路径加 project/ 前缀。
openyida create-form create "APP_XXX" "订单处理表" .cache/openyida/order/order-fields.json
openyida create-process "APP_XXX" --formUuid "FORM-YYY" .cache/openyida/order/process-definition.json

流程定义中的 fieldId 需在表单创建后确定。如流程不含条件分支、字段权限或数据节点字段映射,可用用法 1 一步到位。

AI 自动生成流程特性

生成流程定义 JSON 时,必须自动分析并生成:

  1. 🔐 字段权限:当字段 ≥ 3 且审批节点 ≥ 2 时,每个节点只允许编辑相关字段
  2. 🔄 跳转规则:存在回退/循环语义时,自动配置 routeRules
  3. 🔀 并行/办理/高级组件:需要并行会审、办理节点或连接器/数据/消息等官方组件节点时,流程定义格式直接参考 yida-process-rule
  4. 加签/转交操作权限:用户要求开启时,加载 use_skill("yida-flow-node-config", "操作按钮"),生成 nodes[].actions.normalActions/appendActions;未要求时保持默认关闭。create-process 与 configure-process 共用编译器,无需新增命令或手写运行字段。禁止仅修改 hidden 后提交原始运行 JSON。

需要流程规则细节时,调用 use_skill("yida-process-rule", "配置已有流程节点、分支和字段权限")。

异常处理

异常场景处理方式
命令返回失败检查 appType 和 formUuid 是否正确,确认登录态有效
processCode 获取失败确认表单已成功转为流程表单类型,重新执行
流程定义 JSON 格式错误加载 yida-process-rule 子技能,按其中的 JSON 格式说明修正
PROCESS_COMPILE_ACTION_CONFIG_INVALID本地编译已拦截无效操作权限,修正报错节点的加签位置、结果或按钮配置后再执行;不要通过删除校验或手动补运行 JSON 绕过
返回 JSON 中无 processCode不要猜测 processCode,重新执行命令获取
流程发布失败检查流程定义中的 fieldId 是否为真实 ID(先 get-schema 获取)
登录态失效执行 openyida login 重新登录后再试
appType 格式错误确认格式为 APP_ 开头的字符串
formUuid 格式错误确认格式为 FORM- 开头的字符串
CONFIGURE_PROCESS_REPLACE_REQUIRED展示完整替换摘要并再次取得用户明确确认;确认后才可补 --replace 执行一次
CONFIGURE_PROCESS_OWNERSHIP_UNVERIFIED停止;核对 appType、formUuid 和 binding,不得猜测 processCode
NON_IDEMPOTENT_RESULT_UNKNOWN写入结果未知;不得自动重试,先只读查询目标版本和平台状态
PUBLISHED_UNVERIFIED发布可能已生效但平台 view 未完整验证;不得宣称成功或 processJson verified,不得直接重试写入
网络超时若发生在只读 preflight 可检查网络后重试;若发生在写入边界按结果未知处理,先只读核对状态

Agent 错误处理策略

当 Agent 执行本技能遇到错误时,必须遵循以下默认行为:

错误类型默认处理策略
命令执行失败停止执行,向用户展示完整错误信息,询问是否重试或调整参数
参数格式错误停止执行,提示正确的参数格式,引导用户修正
登录态失效提示用户执行 openyida login 重新登录
processCode 缺失停止执行,不得编造,提示用户重新执行命令
已有流程或草稿但缺少 --replace展示替换摘要并请求明确确认;未确认不执行写入
写入结果未知或发布未验证停止自动重试,只读核对平台状态并报告机器码
fieldId 不存在停止执行,提示用户先执行 yida-get-schema 获取真实 ID
用户拒绝确认停止执行,询问用户是否需要调整配置
未知错误停止执行,完整展示错误信息,建议用户反馈问题

Frequently asked questions

What does the Yida Create Process AI skill do?

流程表单一体化创建(创建表单 → 转流程 → 配置流程);仅当无既有流程/表单上下文且用户意图允许新建流程表单时使用。

Why use Yida Create Process on TypingMind?

Because you install it once and use it with any model. Yida Create Process 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 Yida Create Process in TypingMind?

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

Which AI models can use Yida Create Process?

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 Yida Create Process?

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

Is the Yida Create Process AI skill free?

Yes. It is published on GitHub by openyida 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 👇