iOS Fix
MacMagazine/app-iOS
Bug-fix and refactoring workflow for MacMagazine — root cause analysis, pattern-matching fix, regression verification.
JeecgBoot 开发规范(仅手动触发)。⚠️ 本技能只在用户显式输入 /jeecg-dev 或 $jeecg-dev 命令时使用,禁止自动触发——编写/修改 JeecgBoot 代码、应用 GitHub PR/issue 改动、修复 bug、新增功能、重构、代码生成等场景都不要自动调用本技能。内容涵盖 update-begin/end 痕迹注释、命名规范、实体/控制器/服务模式、API…
$ npx skills add jeecgboot/skills --skill jeecg-dev -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeecgboot/skills jeecg-dev --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeecgboot/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/jeecg-dev .claude/skills/jeecg-dev && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "jeecg-dev" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-dev into .claude/skills/jeecg-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-dev", 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.
$skill-installer install https://github.com/jeecgboot/skills/tree/main/jeecg-devType 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.
$ npx skills add jeecgboot/skills --skill jeecg-dev -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeecgboot/skills jeecg-dev --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeecgboot/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/jeecg-dev .agents/skills/jeecg-dev && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "jeecg-dev" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-dev into .agents/skills/jeecg-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-dev", 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.
$ npx skills add jeecgboot/skills --skill jeecg-dev -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeecgboot/skills jeecg-dev --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeecgboot/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/jeecg-dev .cursor/skills/jeecg-dev && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "jeecg-dev" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-dev into .cursor/skills/jeecg-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-dev", 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.
$ gemini skills install https://github.com/jeecgboot/skills.git --path jeecg-dev--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeecgboot/skills --skill jeecg-dev -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeecgboot/skills jeecg-dev --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeecgboot/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/jeecg-dev .gemini/skills/jeecg-dev && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "jeecg-dev" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-dev into .gemini/skills/jeecg-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-dev", 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.
$ gh skill install jeecgboot/skills jeecg-devInstalls 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).
$ npx skills add jeecgboot/skills --skill jeecg-dev -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeecgboot/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/jeecg-dev .github/skills/jeecg-dev && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "jeecg-dev" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-dev into .github/skills/jeecg-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-dev", 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.
$ npx skills add jeecgboot/skills --skill jeecg-dev -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeecgboot/skills jeecg-dev --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeecgboot/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/jeecg-dev .opencode/skills/jeecg-dev && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "jeecg-dev" agent skill from https://github.com/jeecgboot/skills/tree/main/jeecg-dev into .opencode/skills/jeecg-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jeecg-dev", 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.
jeecg-devJeecgBoot 开发规范(仅手动触发)。⚠️ 本技能只在用户显式输入 /jeecg-dev 或 $jeecg-dev 命令时使用,禁止自动触发——编写/修改 JeecgBoot 代码、应用 GitHub PR/issue 改动、修复 bug、新增功能、重构、代码生成等场景都不要自动调用本技能。内容涵盖 update-begin/end 痕迹注释、命名规范、实体/控制器/服务模式、API…
Jeecg Dev is an agent skill from jeecgboot/skills. JeecgBoot 开发规范(仅手动触发)。⚠️ 本技能只在用户显式输入 /jeecg-dev 或 $jeecg-dev 命令时使用,禁止自动触发——编写/修改 JeecgBoot 代码、应用 GitHub PR/issue 改动、修复 bug、新增功能、重构、代码生成等场景都不要自动调用本技能。内容涵盖 update-begin/end 痕迹注释、命名规范、实体/控制器/服务模式、API 约定、建表规则、MyBatis 多数据库兼容与修改日志实践。MANUAL ONLY: invoke ONLY when the user explicitly runs the /jeecg-dev command. Do NOT auto-trigger on any code editing, bug fix, PR/issue application, refactoring, or code generation.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Debugging and Refactoring. It works with GitHub. The repository describes itself as: JeecgBoot Skills — AI 驱动 · 一句话生成全套工件! 在 Claude Code 中,用一句话生成 代码 · 表单 · 流程 · 报表 · 图表 · 大屏 · 仪表盘。 覆盖 JeecgBoot 低代码平台 与 JimuReport 积木报表 两大产品的企业级开发全场景。 The licence is Apache-2.0.
3 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.
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.
Shell commands in SKILL.md call:
rgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Jeecg Dev loads about 2.8k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 564 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from jeecgboot/skills at commit 12760b9, republished under its Apache-2.0 licence (© jeecgboot). 564 words, ~2,792 tokens.
.claude/skills/jeecg-dev/SKILL.md (or your agent's skills folder).在 JeecgBoot 项目中编写或修改代码时,必须遵循以下规范。本 skill 是强制性的——任何代码变更都必须符合这些标准。 简单收尾直接复用当前线程结果,不重复扫描和构建。
针对原有核心逻辑代码的修改,请统一增加头尾日志,并使用 update-begin / update-end 注释进行代码块标识,方便后续代码追踪、维护和差异定位。
//update-begin---author:作者名 ---date:YYYYMMDD for:【bug号/需求号】修改说明-----------
// 已有方法体中被修改的核心逻辑
//update-end---author:作者名 ---date:YYYYMMDD for:【bug号/需求号】修改说明-----------业务核心逻辑(必须标记) 核心业务流程处理 状态流转逻辑 业务规则计算 权限校验 审批流程 数据转换和业务组装逻辑
规则:
author 填实际修改人,date 格式 YYYYMMDD(无横线),for 填 bug号/需求号 + 简要说明update-begin / update-end 只包裹被修改的代码段for 直接填写修改说明,禁止生成 【无号】、【无编号】 或空的 【】。例如:for:图片模型测试连接使用快速参数Vue、React、JavaScript、TypeScript 等前端代码默认不加 update-begin/end。前端变化通常可直接通过 SVN diff 识别,避免为局部交互和状态更新增加大量头尾注释。
前端只有以下关键逻辑修改需要标记:
以下常见前端改动一律不加:
loading、弹窗、页签、选中项、列表刷新、事件 emit 等页面状态或交互更新if、循环、async/await 或多行代码;这些语法本身不构成核心逻辑例如,保存成功后补充 emit('success') 刷新列表,或通过 filter 统计启用项数量,均不需要 update-begin/end。
⚠️ 不需要加痕迹注释的改动(以下一律不加):
以下改动 不要 加 update-begin/end 注释,否则徒增 diff 噪音、破坏代码整洁:
@author 创建人、@since YYYY-MM-DD 原因,有 TB号/BUG号/issue号时一并写入;无需 update-begin/end 包裹@author 创建人、@since YYYY-MM-DD 原因,有 TB号/BUG号/issue号时一并写入;无需 update-begin/end 包裹<select>/<insert>/<update>/<delete>):在 <!-- --> 注释里写明用途、author 和 since 日期即可,无需 update-begin/endimport 语句的新增 / 删除 / 排序package 调整@Override、serialVersionUID 等@RequiresPermissions("xxx")、@Transactional、@Deprecated、Swagger/Knife4j @Operation、@Schema(description=...)、@TableField(...)、@JsonProperty(access=...)、Lombok 类级注解(@Slf4j/@Data 等)private → protected)、final 添加等单行属性变更@Excel/@Schema 之类不影响调用方的注解.yml/.yaml/.properties)的任何改动:需要说明修改原因时,直接用普通 # 注释写在被改的配置项旁边即可判断标准:"这行改动是在修改已有方法体的核心逻辑吗?"
update-begin/end举例:
SysUserDepartIdVo VO 类 → 不加,新文件 diff 一眼可见queryDepartIdVosByUserIds → 不加,在 Javadoc 注明时间和原因即可queryPageList 方法体里把循环内 N 次查询改为批量预加载 → 加 update-begin/end,后人需要知道这段重构的来由/queryById 方法补一行 @RequiresPermissions(...) → 不加Java 示例(用 // 行注释,允许 --- 分隔):
//update-begin---author:chenrui ---date:20250606 for:[issues/8337]关于ai工作列表的数据权限问题 #8337------------
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
AiragApp app = airagAppService.getById(id);
String currentTenantId = TokenUtils.getTenantIdByRequest(request);
if (null == app || !app.getTenantId().equals(currentTenantId)) {
return Result.error("删除AI应用失败,不能删除其他租户的AI应用!");
}
}
//update-end---author:chenrui ---date:20250606 for:[issues/8337]关于ai工作列表的数据权限问题 #8337------------XML 注释内严禁出现 --(XML 规范禁止 double-hyphen 出现在 <!-- --> 内),因此在 .xml 文件(如 Mapper XML、pom.xml、Flyway xml 等)中写痕迹注释时:
<!-- update-begin---author:scott ---date:20260421 for:【xxx】说明----------- -->(含 --,解析器可能报错或告警)<!-- update-begin author:scott date:20260421 for:【xxx】说明 -->(用空格或单 - 分隔,避免任何连续两个及以上的 -)XML 痕迹注释模板:
<!-- update-begin author:作者名 date:YYYYMMDD for:【bug号/需求号】修改说明 -->
<if test="processApplyUserId != null and processApplyUserId !=''">
AND ahp.START_USER_ID_ = #{processApplyUserId}
</if>
<!-- update-end author:作者名 date:YYYYMMDD for:【bug号/需求号】修改说明 -->其他同样要求避免 -- 的注释场景:HTML(.html/.vue template)、SVG、XSL 等所有基于 XML 的文件类型。
在对应模块的日志文件末尾追加记录,格式:
⚠️ 强制要求:只允许在文件最末尾追加,禁止插入到文件开头或中间任何位置。
-- author:作者名---date:YYYYMMDD--for: 【bug号/PR号】修改说明 ---
涉及的文件路径(每行一个,新增文件末尾加 (+) 标记)
-- author:作者名---date:YYYYMMDD--for: 【bug号/PR号】修改说明 ---用户明确回复“无号”或“无编号”时,省略编号及其书名号:
-- author:作者名---date:YYYYMMDD--for: 修改说明 ---
涉及的文件路径(每行一个,新增文件末尾加 (+) 标记)
-- author:作者名---date:YYYYMMDD--for: 修改说明 ---文件标记规则:
(+) (-)原文件名 --> 新文件名完整路径代码修改日志 文件本身(如 doc/代码修改日志.log)不应出现在“涉及的文件路径”列表中,避免自我引用。各模块日志文件位置:
jeecg-boot-base-core/doc/修改日志.logjeecg-module-system/jeecg-system-biz/docs/代码修改日志jeecg-boot-module/jeecg-module-demo/doc/代码修改日志.logdoc/ 或 docs/ 目录下查找代码和日志文件都修改完成后,提醒用户进行 SVN 提交(修改日志文件必须和源代码一起提交,不得遗漏)。提交日志格式必须与 代码修改日志 文件条目保持一致:
--author:作者名--date:YYYYMMDD--for:【bug号/PR号】简要说明用户明确回复“无号”或“无编号”时,使用以下格式,禁止写成 【无号】:
--author:作者名--date:YYYYMMDD--for:简要说明示例:
--author:scott--date:20251030--for:【issues/9450】online导入数据库表时,如果字段有两个下划线则会报错
--author:scott--date:20260424--for:【JHHB-1336】我发起的流程-当前办理人支持多人展示格式要点:
--author: 三段式:--author:xxx--date:xxx--for:xxx(短横线 -- 作分隔)date 为 YYYYMMDD(无横线)for 字段内 bug 号用中文书名号 【】 包裹,常见形式:【issues/XXXX】(GitHub 开源)、【JHHB-XXXX】(内部 Jira)、【VUEN-XXXX】(VUE 专项)、【QQYUN-XXXX】 等】)for: 后直接接简要说明禁止用 svn commit -m "<中文>" + --encoding utf-8 的写法。在 Windows (Git Bash/MSYS) 下,shell 会把参数按 GBK (CP936) 传给 svn.exe,而 --encoding utf-8 又告诉 SVN "这是 UTF-8",结果服务端存的是乱码(形如 �ҷ�...)。
✅ 正确做法:commit message 先写入 UTF-8 文件,再用 -F 提交
# 1. 写入 UTF-8 文件(用 Write 工具,或 printf + iconv)
cat > /tmp/svn_msg.txt <<'EOF'
JHHB-XXXX 简要说明
EOF
# 2. 用 -F 提交,--encoding 指定文件的编码
svn commit -F /tmp/svn_msg.txt --encoding utf-8 "<file1>" "<file2>" 2>&1 | iconv -f GBK -t UTF-8
# 3. 提交完成后删除临时文件
rm /tmp/svn_msg.txt提交后必须验证:用 svn log -l 1 --xml <path> | iconv -f GBK -t UTF-8 或直接看命令行输出,肉眼确认 commit message 中的中文没有变成 �? 之类的乱码;一旦发现乱码立即用 svn propset --revprop -r <rev> svn:log "<新msg>" 修复(需服务端开启 pre-revprop-change hook)。
变通方案(如果服务端不允许改 revprop):改用纯 ASCII commit message,中文说明写在 代码修改日志 里,例如 svn commit -m "JHHB-1336 fix multi-assignee display"。
| 规则 | 说明 |
|---|---|
| 主键 | 必须是 id,字符串 varchar(32),唯一索引 |
| 标准字段 | 必须有 create_by、create_time、update_by、update_time |
| 字段注释 | 每个字段必须有注释,状态字段注明取值规则如 '性别 0/男,1/女' |
| 命名 | 英文单词,多词用下划线连接如 school_id,禁止拼音 |
| 类型字段 | 优先用 varchar(1) / varchar(2),少用 int |
| 索引 | 高频查询字段加索引 |
| 逻辑删除 | 设计 del_flag 字段 |
代码修改日志(历史记录文件)JeecgBoot 同时支持 MySQL、Oracle、PostgreSQL、SQL Server、达梦(DM8)等多种数据库,任何 MyBatis 查询写法都必须在所有数据库上行为一致。
MyBatis Mapper XML 以及 @Select、@Insert、@Update、@Delete 等注解中的普通 SELECT、INSERT、UPDATE、DELETE SQL,末尾严禁添加分号 ;。
部分数据库或 JDBC 驱动会容忍末尾分号,但 Oracle JDBC 会将分号作为 SQL 内容交给数据库解析,可能触发 ORA-00911: 无效字符。禁止依赖某个数据库或驱动的宽松处理行为。
<!-- ❌ 错误:Oracle JDBC 可能报 ORA-00911 -->
<select id="queryUser" resultType="org.jeecg.modules.system.entity.SysUser">
SELECT * FROM sys_user WHERE id = #{id};
</select>
<!-- ✅ 正确:普通 SQL 不写结尾分号 -->
<select id="queryUser" resultType="org.jeecg.modules.system.entity.SysUser">
SELECT * FROM sys_user WHERE id = #{id}
</select>检查要求:
;。rg -n ';\s*$' <模块路径> -g '*Mapper.xml' 辅助检索,但必须人工排除 XML 实体(如 >)、注释等非 SQL 内容。databaseId 或独立 Mapper),禁止放入通用 SQL 后依赖所有数据库执行。CONCAT 传入三个及以上参数Oracle 的 CONCAT 函数严格只接受两个参数。MySQL 等数据库允许的多参数写法放入通用 Mapper SQL 后,在 Oracle 下会触发 ORA-00909: 参数个数无效。
<!-- ❌ 错误:Oracle 下报 ORA-00909 -->
AND r.name LIKE CONCAT('%', #{keyword}, '%')
<!-- ✅ 正确:嵌套调用,每个 CONCAT 都只有两个参数 -->
AND r.name LIKE CONCAT(CONCAT('%', #{keyword}), '%')统一使用嵌套双参数 CONCAT,不要改成仅适用于部分数据库的字符串连接语法。前缀或后缀匹配本身只有两个参数时,可直接调用:
AND org_code LIKE CONCAT(#{orgCode}, '%')检查要求:
CONCAT 的顶层参数数量,确保不超过两个。CONCAT 后,必须扫描当前模块;涉及公共功能或数据库兼容专项修复时,扫描整个项目源码,并排除 target、.svn、node_modules、dist 等生成目录。rg -n -i 'concat\s*\(' <检查路径> 找出候选项,再按括号层级人工确认顶层参数数量;合法的嵌套 CONCAT(CONCAT(...), ...) 不得误报。resultType="map" + 字符串 key 直接访问各数据库对 resultType="map" 的列名/别名 key 大小写处理不同:
| 数据库 | AS procInstId 返回的 key |
|---|---|
| MySQL | procInstId(保持别名原样) |
| Oracle | PROCINSTID(全部大写,丢失驼峰) |
| PostgreSQL | procinstid(全部小写) |
因此以下写法在 Oracle/PostgreSQL 下 m.get(...) 返回 null,必须禁止:
// ❌ 禁止:Oracle 下 key 是 "PROCINSTID",取不到值
List<Map<String, Object>> rows = mapper.queryXxx();
rows.stream().collect(Collectors.toMap(
m -> String.valueOf(m.get("procInstId")), // Oracle 下为 null
m -> String.valueOf(m.get("text")) // Oracle 下为 null
));用专门的 DTO 类替代 Map,MyBatis 映射到 Java 类时采用大小写不敏感的属性匹配,PROCINSTID(Oracle)/ procinstid(PostgreSQL)/ procInstId(MySQL)均能正确映射到 procInstId 字段:
// DTO 类(简单 POJO,无需注解)
public class BizTitleSimpleDTO {
private String procInstId;
private String text;
// getter / setter ...
}<!-- Mapper XML:resultType 指向 DTO,所有数据库均兼容 -->
<select id="getBatchHisVarinst" resultType="org.jeecg.modules.bpm.dto.BizTitleSimpleDTO">
SELECT EXECUTION_ID_ AS procInstId, TEXT_ AS text
FROM act_hi_varinst
WHERE NAME_ = #{name}
AND EXECUTION_ID_ IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>// Service 中通过 getter 访问,类型安全且跨数据库
List<BizTitleSimpleDTO> rows = mapper.getBatchHisVarinst(name, ids);
Map<String, String> result = rows.stream().collect(Collectors.toMap(
BizTitleSimpleDTO::getProcInstId,
r -> oConvertUtils.getString(r.getText()),
(a, b) -> a
));resultType="map" 的例外场景以下情况可以使用 Map,但必须通过固定大写 key 访问(Oracle 风格,所有库均返回大写时一致):
@Select 注解查询且只需判断是否为空(不关心 key 名称)其他所有情况一律使用 DTO。
© jeecgboot, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in jeecg-dev of jeecgboot/skills.
Open the folder on GitHubat commit 12760b9
Jeecg Dev 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Jeecg Dev this skilljeecgboot/skills | 239 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| iOS FixMacMagazine/app-iOS | 171 | — | ~957 | Automated safety check: Pass | None | |
| Panel Reviewstacklok/mecatl | 241 | — | ~5.8k | Automated safety check: Pass | Apache-2.0 | |
| Julessanjay3290/ai-skills | 431 | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Exposed Bug Fix WorkflowJetBrains/Exposed | 9.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| OpenCLI Adapter Autofixjackwener/OpenCLI | 30k | 1 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 |
MacMagazine/app-iOS
Bug-fix and refactoring workflow for MacMagazine — root cause analysis, pattern-matching fix, regression verification.
stacklok/mecatl
Review completed non-trivial code across four independent axes: Spec, Standards, Test adequacy, and installed Domain specialists.
sanjay3290/ai-skills
Delegate coding tasks to Google Jules AI agent for asynchronous execution.
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
jackwener/OpenCLI
Repairs a broken OpenCLI site adapter after a command fails: collects a trace, patches only the adapter, retries, and files an upstream GitHub issue once fixed.
mono/SkiaSharp
Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.
jeecgboot/skills
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/skills
JeecgBoot 系统主数据查询与管理。Use when user asks to query/create/manage system master data, or says "查询角色", "查询用户", "查询部门", "查询字典", "创建字典", "创建角色", "查岗位", "查职务", "查租户", "查数据源", "查定时任务", "系统主数据", "query…
jeecgboot/skills
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"…
jeecgboot/skills
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/skills
积木报表生成器 — 自然语言描述报表需求或提供截图,自动生成积木报表(支持数据报表、打印报表、分组报表、循环报表、数据填报等全类型)。Use when user says "积木报表", "jmreport", "Excel报表", "数据填报", "可视化报表", "打印报表", "分组报表", "循环报表", "按照截图生成报表", "创建积木报表", "做一个可视化报表"…
jeecgboot/skills
JeecgBoot AI 编排流程(AIFlow)全生命周期管理——通过自然语言描述需求,自动创建、编辑、查询、删除、调试、发布 AI 编排流程。
Works with
Categories
JeecgBoot 开发规范(仅手动触发)。⚠️ 本技能只在用户显式输入 /jeecg-dev 或 $jeecg-dev 命令时使用,禁止自动触发——编写/修改 JeecgBoot 代码、应用 GitHub PR/issue 改动、修复 bug、新增功能、重构、代码生成等场景都不要自动调用本技能。内容涵盖 update-begin/end 痕迹注释、命名规范、实体/控制器/服务模式、API…. Jeecg Dev is an agent skill from jeecgboot/skills. JeecgBoot 开发规范(仅手动触发)。⚠️ 本技能只在用户显式输入 /jeecg-dev 或 $jeecg-dev 命令时使用,禁止自动触发——编写/修改 JeecgBoot 代码、应用 GitHub PR/issue 改动、修复 bug、新增功能、重构、代码生成等场景都不要自动调用本技能。内容涵盖 update-begin/end 痕迹注释、命名规范、实体/控制器/服务模式、API 约定、建表规则、MyBatis 多数据库兼容与修改日志实践。MANUAL ONLY: invoke ONLY when the user explicitly runs the /jeecg-dev command.
Jeecg Dev fits situations like: explicitly runs the /jeecg-dev command; any code editing; PR/issue application; code generation.
Run `npx skills add jeecgboot/skills --skill jeecg-dev -a claude-code`. Or copy the skill folder (jeecg-dev in jeecgboot/skills) into .claude/skills/jeecg-dev in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeecgboot/skills --skill jeecg-dev -a codex`. Or copy the skill folder (jeecg-dev in jeecgboot/skills) into .agents/skills/jeecg-dev in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeecgboot/skills --skill jeecg-dev -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-dev, .gemini/skills/jeecg-dev, .github/skills/jeecg-dev and .opencode/skills/jeecg-dev in your project.
Going by SKILL.md and its folder, Jeecg Dev needs the command-line tools its instructions call (rg).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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. Review the folder before installing.
Jeecg Dev 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.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Jeecg Dev: iOS Fix (MacMagazine/app-iOS, 171 stars), Panel Review (stacklok/mecatl, 241 stars), Jules (sanjay3290/ai-skills, 431 stars) and Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.