# 02 — SysRole.builtin 字段 + DataInitializer 幂等化 + 权限种子 **What to build:** 为 SysRole 实体新增 `Boolean builtin` 字段(标记内置角色),将 DataInitializer 从"整体跳过"重构为"逐项检查"的幂等模式。在权限资源树的"角色管理"menu 节点下创建 5 个 button 权限点(crm:role:list/detail/save/delete/assign),并将这些权限点分配给管理员角色,使纯 hasAuthority 权限控制在部署后即可生效。同时将管理员角色的 builtin 设为 true。 **Blocked by:** None — can start immediately **Status:** ready-for-agent - [ ] SysRole 新增 `Boolean builtin` 字段(`@Column(columnDefinition = "boolean default false")`) - [ ] DataInitializer 重构:去掉 `selectCount(null) > 0` 的整体跳过,改为逐项 exists 检查 - [ ] 幂等初始化:ADMIN 角色已存在就只补 builtin=true,不存在就创建 - [ ] 幂等初始化:菜单节点(系统管理/角色管理等)已存在就跳过,不存在就创建 - [ ] 在"角色管理"menu 节点下创建 5 个 button 权限点(perms/apiUrl/denyBehavior/status 字段齐全) - [ ] 将 5 个权限点分配给管理员角色(sys_role_menu 绑定,已存在则跳过) - [ ] 每次启动都执行增量检查,只补缺的,不报错不重复插入