mcpField
G
generate-course-materials

generate-course-materials

github.com/willbooster文档处理0200 次安装今天更新
代码仓库

关于 generate-course-materials

该技能指导如何按规范生成 exercode 课程材料,面向课程作者。流程涵盖需求确认、提纲、日文讲义与嵌入式测验,并要求验证课程结构和问题引用。

主要功能

  1. 01确认课程主题、受众和输出目录
  2. 02先拟定逐讲课程提纲
  3. 03创建课程与讲义目录结构
  4. 04编写日文材料并嵌入测验
  5. 05验证课程及 Judge 问题引用

适用场景

  1. 01从课程需求生成完整讲义
  2. 02为编程课程设置练习检查点
  3. 03检查课程文件布局与元数据
  4. 04发现并修复失效的问题引用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/willbooster/exercode-problem-utils --skill generate-course-materials

安装后在 Claude Code 中输入/generate-course-materials确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
course-format.md
material-authoring.md
question-authoring.md

详细介绍

生成 exercode 课程材料

编写任何文件前,请先阅读以下参考资料:

  1. 与用户确认课程参数:主题、目标受众、讲座数量、目标编程语言以及输出目录。如果有任何参数缺失,且用户当前可响应,请先询问再生成;否则根据上下文选择合理值,并在最终报告中将其列为待定事项。

  2. 先编写大纲:使用嵌套 Markdown 项目符号列表,涵盖所有讲座,并以一行摘要结尾。用户当前可响应时,请将大纲展示给用户并征求批准;否则按你认为最佳的大纲继续。

  3. 按照 references/course-format.md 创建课程目录结构:

    • <courseId>/course.yaml,列出每场讲座(id、name、description)。
    • 每场讲座创建一个 <courseId>/<lectureId>/ 目录。按课程顺序为讲座 ID 添加补零序号前缀(01_、02_……),后接描述性名称。
    • 在 <courseId>/problems/<problemId>/ 下创建课程范围内的编程题。
  4. 按照 references/material-authoring.md,在每个讲座目录中编写 Markdown 材料文件,并添加补零序号前缀;每场讲座均从 01_ 重新开始。除非用户要求使用其他语言,否则材料正文使用日语。

  5. 按照 references/question-authoring.md,在材料正文中以围栏代码块 yaml question 的形式嵌入测验题。每引入一个新概念后立即插入对应问题,不要将问题集中放在末尾。

  6. 判断编写、修改或执行代码是否属于课程的学习目标。如果是,请在有意义的检查点,使用 generate-judge-problems 创建一个或多个课程范围内的 Judge 题。每道题都必须要求学习者运用课程中已介绍的概念;嵌入式问题和完整代码示例不满足此要求。请在相关前置材料附近以 [显示名称](problems/<problemId>) 链接每道题。每个被链接的题目目录都必须存在于同一课程的 problems/ 目录下。对于不包含可执行编码目标的课程,仅在请求中要求时才创建 Judge 题。绝不要引用其他课程的题目。

  7. 使用 exercode-problem CLI 验证(它随 @exercode/problem-utils 一起提供;该依赖必须在仓库中声明,参见 setup-exercode-course-repository),并修复问题,直到验证通过:

    bunx exercode-problem validate-course <courseDir> --problems-dir <problemsDir>
    

    对于不含 Judge 题的课程,请省略 --problems-dir(显式指定的目录必须存在);此时验证器会在课程目录内解析题目引用,悬空引用会导致错误。修复所有报告的错误并重新运行。重复此过程,直到命令报告成功。也要处理警告,除非这些警告是有意保留的;如保留警告,请在最终报告中说明原因。

  8. 报告已创建的课程目录、讲座列表以及任何待定事项(例如未经用户确认而自行决定的大纲项目、刻意保留的警告)。

评论

支持 Markdown