用途:在 Open edX Studio 上批量构建或批量修改课程大纲。IBL course-creator 应用在 Studio 上新增 api/v1/ibl/… 路由,封装原生 /xblock/ 处理器以支持批量操作。
主要能力:create_full_course 按 JSON 规格(section → subsection → unit → problems)在一个 modulestore 事务内创建全部内容并在结束时发布整门课程,五节含文本与测验的课程只需一次请求。支持 problem_type:html、blank、multiplechoice、dropdown、video、drag-and-drop-v2、lti_consumer、ibl_openedx_scorm_xblock;pdf 不支持,需事后用 /iblai-api-studio-pdf 添加。另有 xblock/create、xblock/update、xblock/publish 单块接口,以及 GET /api/v1/ibl/course/{COURSE}/units 读取全部单元与组件定位符。
使用方式:先运行 node .claude/skills/iblai-api-studio-auth/scripts/studio-login.mjs --check 确认两项 ok,否则先执行 /iblai-api-studio-auth。加载 studio.env 后以 curl 携带会话 Cookie 与 CSRF 头调用接口。批量构建后需三步收尾:重命名被默认命名为 Text 的 html 组件、为评分 subsection 设置 graderType、再次发布根节点。已有课程批量修改用 scripts/reconcile.py,默认 dry run,加 --apply --publish 执行,--delete 才会删除规格外的块;按 id 或同级 name 匹配,幂等。
限制:创建内容无批量撤销,需逐块删除,发布前应向用户确认规格;v1 创建路由不要发送 position,否则返回 500;v1 课程资源上传路由同样返回 500,需改用 POST /assets/{COURSE}/;规格缺少 problems 键等格式错误会返回 500 且不回滚已创建部分;html 组件忽略 display_name;规格中无 graderType 键,评分需另行设置。
适用场景:新建空课程的一次性批量搭建,或对已有课程重写阅读材料、跨课添加单元、重构结构。