A skill your agent uses when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN"…
Apache-2.0Auto-check passed
Install Jeecg Bpmn
skills CLI
$ npx skills add jeecgboot/skills --skill jeecg-bpmn -a claude-code
Project install by default; add -g for ~/.claude/skills/.
Install the "jeecg-bpmn" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-bpmn into .claude/skills/jeecg-bpmn/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-bpmn", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add jeecgboot/skills --skill jeecg-bpmn -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "jeecg-bpmn" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-bpmn into .agents/skills/jeecg-bpmn/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-bpmn", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jeecgboot/skills --skill jeecg-bpmn -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "jeecg-bpmn" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-bpmn into .cursor/skills/jeecg-bpmn/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-bpmn", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add jeecgboot/skills --skill jeecg-bpmn -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "jeecg-bpmn" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-bpmn into .gemini/skills/jeecg-bpmn/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-bpmn", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
GitHub CLI
$ gh skill install jeecgboot/skills jeecg-bpmn
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add jeecgboot/skills --skill jeecg-bpmn -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "jeecg-bpmn" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-bpmn into .github/skills/jeecg-bpmn/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-bpmn", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jeecgboot/skills --skill jeecg-bpmn -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "jeecg-bpmn" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-bpmn into .opencode/skills/jeecg-bpmn/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-bpmn", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
jeecg-bpmn
GitHub stars
239
Token cost
~17k tokens
SKILL.md length
3,188 words
Files
63 (incl. scripts, references)
Skills in repo
13
Repo updated
First seen
Licence
Apache-2.0
At a glance
A skill your agent uses when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN"…
Works in 12 steps: 解析用户需求 → 5: 识别「代码生成 + 审批流程」联合创建场景 → 识别节点并构建流程结构 → …
User asks to create/generate/edit/modify a BPM workflow
SKILL.md covers 使用边界:先判断「建/改流程」还是「绑已有流程」,再决定是否整…, 临时配置文件规则(强制), 介绍组件时的完整性要求 and 性能规范与已验证规律
Calls python; reaches api3.boot.jeecg.com
What it does
Jeecg Bpmn is an agent skill from jeecgboot/skills. Use when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN", "create flow", "create process", "new workflow", "generate workflow". Also triggers when user describes an approval chain like "先经理审批再HR审批" or mentions process nodes like "开始→审批→网关→结束". Also triggers for OA application creation: "创建OA应用", "创建审批单", "创建报销单", "创建请假单", "做一个OA表单带流程", "一键创建表单和流程", "create OA app", "create approval form with…
Its SKILL.md is about 17k tokens, which your agent loads only when the skill is triggered. The skill folder holds 64 other files, including scripts and reference files (for example `docs/skill-usage-guide.md`, `references/bpmn-advanced.md` and `references/bpmn-api-task-autocreate.md`).
The repository describes itself as: JeecgBoot Skills — AI 驱动 · 一句话生成全套工件! 在 Claude Code 中,用一句话生成 代码 · 表单 · 流程 · 报表 · 图表 · 大屏 · 仪表盘。 覆盖 JeecgBoot 低代码平台 与 JimuReport 积木报表 两大产品的企业级开发全场景。 The licence is Apache-2.0.
When your agent uses it
User asks to create/generate/edit/modify a BPM workflow
Design a Flowable BPMN process
Generate workflow
User describes an approval chain like 先经理审批再HR审批
Example prompts
“create flow”
“create process”
“new workflow”
“/jeecg-bpmn”
Requirements
Python 3
Workflow steps
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 12760b9. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
python
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
api3.boot.jeecg.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Jeecg Bpmn loads about 17k tokens when it runs, and up to ~164k if it reads all its reference files. Until then it costs about 241 tokens; SKILL.md has 3,188 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~241
When it runs· the whole SKILL.md, loaded when a task matches
~17k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~164k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
Download SKILL.mdSave it as .claude/skills/jeecg-bpmn/SKILL.md (or your agent's skills folder). This skill also uses 62 other files; get the full folder from GitHub.
name
jeecg-bpmn
description
Use when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN", "create flow", "create process", "new workflow", "generate workflow". Also triggers when user describes an approval chain like "先经理审批再HR审批" or mentions process nodes like "开始→审批→网关→结束". Also triggers for OA application creation: "创建OA应用", "创建审批单", "创建报销单", "创建请假单", "做一个OA表单带流程", "一键创建表单和流程", "create OA app", "create approval form with workflow". Also triggers for ANY operation on existing processes: "编辑流程", "修改流程", "删除监听器", "添加监听器", "删除节点", "添加节点", "修改节点", "配置节点", "流程中的", "edit process", "modify process", "delete listener", "add listener", "remove listener", "add node", "delete node", "configure node". Key rule: whenever user mentions a specific process name (like "网关测试") with any modification intent, this skill MUST be invoked FIRST before any manual API exploration.
JeecgBoot BPM 流程自动生成器
将自然语言的流程描述转换为 Flowable BPMN 2.0 XML,并通过 API 在 JeecgBoot 系统中自动创建流程。
def find_fields(node, results):
if isinstance(node, dict):
if node.get('type') not in ('grid','text','') and node.get('model'):
results.append(node)
for v in node.values(): find_fields(v, results)
elif isinstance(node, list):
for item in node: find_fields(item, results)
fields = []; find_fields(design, fields)
userTask 含会签时 XML 子元素顺序:extensionElements → incoming/outgoing → multiInstanceLoopCharacteristics(顺序错报 cvc-complex-type.2.4.a)
def find_or_create_approval_role(name, grp_id):
def query_id():
r = api_get(f'/sys/approvalRole/childList?pid={grp_id}')
return next((c['id'] for c in r.get('result',{}).get('records',[]) if c['name']==name), None)
rid = query_id()
if not rid:
api_post('/sys/approvalRole/role/add', {'name': name, 'pid': grp_id})
rid = query_id()
return rid
req = urllib.request.Request(f'{API_BASE}/sys/sysDepart/queryDepartAndPostTreeSync', headers=HEADERS)
result = json.loads(urllib.request.urlopen(req).read().decode())['result'] or []
def flatten(nodes, acc=None):
if acc is None: acc = []
for n in (nodes or []):
if isinstance(n, dict):
acc.append(n)
flatten(n.get('children', []), acc)
return acc
all_nodes = flatten(result)
depts = [n for n in all_nodes if str(n.get('orgCategory','')) == '2']
positions = [n for n in all_nodes if str(n.get('orgCategory','')) == '3']
# _setup_oa_subprocess 执行完之后立即执行:
import urllib.parse as _up
q = _up.urlencode({'processId': sub_pid, 'pageNo': 1, 'pageSize': 10})
sub_forms = bc.api_request(API_BASE, TOKEN,
f'/act/process/extActProcessForm/list?{q}', method='GET')
for rec in (sub_forms.get('result') or {}).get('records', []):
bc.api_request(API_BASE, TOKEN,
f'/act/process/extActProcessForm/delete?id={rec["id"]}', method='DELETE')
# 之后再 link_form 到主流程
此步骤不影响子流程运行——Scenario A 子流程通过 JG_SUB_MAIN_PROCESS_ID 共享主流程数据,无需自己独立绑定表单。
规则9:API 响应遍历前必须做类型检查(⚠️ 强制)
现象:'str' object has no attribute 'get' 或 KeyError: 0,程序崩溃。
根因: 部分 API 的 result 字段结构不固定,可能是 dict(含 records 键)、裸 list、或 str。直接用 [0] 或 .get() 导致类型错误。
强制规则:凡是遍历 API 响应 result 的,必须先 isinstance 检查和 print(type(result)) 确认结构。
python
# ❌ 错误 —— 假设 result 一定是 list
for item in r['result']: # 实际是 dict,抛出 KeyError
print(item['name'])
# ✅ 正确 —— 先查验结构再遍历
result = r.get('result', [])
if isinstance(result, dict):
records = result.get('records', [])
elif isinstance(result, list):
records = result
else:
records = []
for item in records:
print(item.get('name'))
规则10:复杂流程(含网关/会签/多种审批人)先 dry-run 验证 XML(⚠️ 推荐)
现象: 直接调用 API 创建复杂流程后,发现 taskExtendJson 配置不正确或布局错乱,需要删除重建。
bpmn_creator.py 第389行已正确生成三参数形式,手写 XML 时必须严格按此格式,禁止简化参数列表。
规则18:探查 XML 行内容必须用 repr() 打印原始字符串(⚠️ 强制)
现象: 打印 XML 行时只用 print(line),看不出行尾是否还有其他标签(如 </bpmn2:extensionElements>),写删除逻辑时整行删掉导致结构损坏,deploy 失败。
根因:print(line) 不显示行边界,无法判断一行内是否同时包含多个标签。
强制规则:探查 XML 行内容时,必须用 repr(line) 打印,以便看清行尾是否还有其他内容。
python
# ❌ 错误 —— 看不出行尾有 </bpmn2:extensionElements>
for i, line in enumerate(xml.splitlines()):
if 'TestExecutionListener' in line:
print(f'L{i+1}: {line}')
# ✅ 正确 —— repr 显示完整内容,含行尾隐藏标签
for i, line in enumerate(xml.splitlines()):
if 'TestExecutionListener' in line:
print(f'L{i+1}: {repr(line)}')
# 输出: L20: ' <flowable:executionListener .../></bpmn2:extensionElements>'
# 可见行尾还有 </bpmn2:extensionElements>,删除时必须保留该部分
删除行内标签的正确模式: 只删标签本身,保留同行其他内容:
python
lines = xml.splitlines(keepends=True)
new_lines = []
for line in lines:
if 'TestExecutionListener' in line:
# 只删 executionListener 标签,保留同行剩余内容(如 </bpmn2:extensionElements>)
cleaned = re.sub(r'\s*<flowable:executionListener[^>]*TestExecutionListener[^>]*/>', '', line)
if cleaned.strip(): # 有剩余内容则保留
new_lines.append(cleaned)
# 否则整行丢弃(行内无其他内容)
else:
new_lines.append(line)
规则19:saveProcess 成功即持久化,deploy 失败不回滚(⚠️ 强制)
现象:saveProcess 返回 success=True,随后 deployProcess 失败。再次读取流程 XML 时,发现已是 saveProcess 提交的(可能损坏的)版本,而非原始版本。
强制规则:所有路径统一汇聚到同一个 end endEvent。已有流程如存在多个 endEvent 必须合并。
python
# 合并多个 endEvent 到单一 end 的标准修复模式
OLD_ENDS = {'end_approved', 'end_rejected', 'end_a', 'end_b'} # 按实际调整
# Step1: 所有 targetRef 指向 end
for old_id in OLD_ENDS:
xml = xml.replace(f'targetRef="{old_id}"', 'targetRef="end"')
# Step2: 删除旧 endEvent 元素(自闭合 + 完整标签两种形式)
for old_id in OLD_ENDS:
xml = re.sub(rf'<bpmn2:endEvent[^>]*id="{old_id}"[^>]*/>', '', xml)
xml = re.sub(rf'<bpmn2:endEvent[^>]*id="{old_id}".*?</bpmn2:endEvent>', '', xml, flags=re.DOTALL)
# Step3: 在保留的 end 节点中补充新 incoming 元素
ns = "bpmn2:" if "<bpmn2:incoming>" in xml else ""
xml = re.sub(
r'(<(?:bpmn2:)?endEvent\s[^>]*id="end"[^>]*>)',
lambda m: m.group(0) + ''.join(
f'\n <{ns}incoming>{fid}</{ns}incoming>'
for fid in ['flow_approve', 'flow_reject'] # 按实际 flow id 调整
),
xml
)
# 去除结构性网关 name 的标准模式
for gw_id in ['gw_par', 'gw_par_join', 'gw_incl_join']:
xml = re.sub(rf'(id="{gw_id}"[^>]*?)\s+name="[^"]*"', r'\1', xml)
xml = re.sub(rf'(\s+name="[^"]*")([^>]*id="{gw_id}")', r'\2', xml)
Jeecg Bpmn next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
A skill your agent uses to author new custom Jetpack Compose modifiers and migrate legacy ones from Modifier.composed { } to Modifier.Node + ModifierNodeElement<T.
A skill your agent uses when user asks to generate JeecgBoot CRUD code, create a new module, add/modify fields on existing module, or says "代码生成", "生成代码", "创建模块", "新增功能", "建表", "加字段", "加一个字段"…
JeecgBoot 系统主数据查询与管理。Use when user asks to query/create/manage system master data, or says "查询角色", "查询用户", "查询部门", "查询字典", "创建字典", "创建角色", "查岗位", "查职务", "查租户", "查数据源", "查定时任务", "系统主数据", "query…
A skill your agent uses when user asks to create/edit/query Online reports, SQL reports, data reports, or says "创建报表", "生成报表", "新建报表", "查询报表", "online报表", "SQL报表", "数据报表", "统计报表", "create report"…
JeecgBoot 门户(Portal)全生命周期管理——通过 API 自动创建、删除、配置门户,管理门户内的 14 种组件(轮播图、新闻动态、系统公告、流程中心、应用快捷入口、协同待办、我的计划、知识库、文本、iframe 等),动态查询数据源并填充组件内容,支持 Web 和 App 双端布局。
239 GitHub stars~2k tokensUpdated 23 days ago
Auto-check passed
Questions about Jeecg Bpmn
What does Jeecg Bpmn do?
A skill your agent uses when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN"…. Jeecg Bpmn is an agent skill from jeecgboot/skills. Use when user asks to create/generate/edit/modify a BPM workflow, design a Flowable BPMN process, or says "创建流程", "生成流程", "新建流程", "设计流程", "画流程", "审批流程", "工作流", "BPM", "BPMN", "create flow", "create process", "new workflow", "generate workflow".
When should I use Jeecg Bpmn?
Jeecg Bpmn fits situations like: user asks to create/generate/edit/modify a BPM workflow; design a Flowable BPMN process; generate workflow; user describes an approval chain like 先经理审批再HR审批.
How do I install Jeecg Bpmn in Claude Code?
Run `npx skills add jeecgboot/skills --skill jeecg-bpmn -a claude-code`. Or copy the skill folder (jeecg-bpmn in jeecgboot/skills) into .claude/skills/jeecg-bpmn in your project. Claude Code loads it when a task matches its description.
How do I install Jeecg Bpmn in Codex?
Run `npx skills add jeecgboot/skills --skill jeecg-bpmn -a codex`. Or copy the skill folder (jeecg-bpmn in jeecgboot/skills) into .agents/skills/jeecg-bpmn in your project. Codex loads it when a task matches its description.
Can I use Jeecg Bpmn in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeecgboot/skills --skill jeecg-bpmn -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jeecg-bpmn, .gemini/skills/jeecg-bpmn, .github/skills/jeecg-bpmn and .opencode/skills/jeecg-bpmn in your project.
What does Jeecg Bpmn need to run?
Going by SKILL.md and its folder, Jeecg Bpmn needs the command-line tools its instructions call (python). Our summary lists: Python 3.
Does Jeecg Bpmn access the network?
SKILL.md names 1 domain. In commands or code: api3.boot.jeecg.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Is Jeecg Bpmn safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
What licence does Jeecg Bpmn use?
Jeecg Bpmn is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Jeecg Bpmn use?
About 17k tokens (SKILL.md is roughly 70k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 146k tokens, read only when the agent opens those files.
What are the alternatives to Jeecg Bpmn?
Skills that share tags, products or a category with Jeecg Bpmn: Gameobject Modify (IvanMurzak/Unity-MCP, 4.4k stars), Object Modify (IvanMurzak/Unity-MCP, 4.4k stars), Assets Modify (IvanMurzak/Unity-MCP, 4.4k stars) and Modifying Taxonomic Filter (PostHog/posthog, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Jeecg Bpmn?
jeecgboot (a GitHub organization) maintains it in jeecgboot/skills, which has 239 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on September 17, 2026.
Source: jeecgboot/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.