关于 generate-course-materials
该技能指导如何按规范生成 exercode 课程材料,面向课程作者。流程涵盖需求确认、提纲、日文讲义与嵌入式测验,并要求验证课程结构和问题引用。
主要功能
- 01确认课程主题、受众和输出目录
- 02先拟定逐讲课程提纲
- 03创建课程与讲义目录结构
- 04编写日文材料并嵌入测验
- 05验证课程及 Judge 问题引用
适用场景
- 01从课程需求生成完整讲义
- 02为编程课程设置练习检查点
- 03检查课程文件布局与元数据
- 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.mdmaterial-authoring.mdquestion-authoring.md详细介绍
生成 exercode 课程材料
编写任何文件前,请先阅读以下参考资料:
- references/course-format.md — 课程目录结构、
course.yaml和材料 frontmatter 架构。 - references/material-authoring.md — 讲义材料的教学写作规则。
- references/question-authoring.md — 如何编写嵌入式测验题。
-
与用户确认课程参数:主题、目标受众、讲座数量、目标编程语言以及输出目录。如果有任何参数缺失,且用户当前可响应,请先询问再生成;否则根据上下文选择合理值,并在最终报告中将其列为待定事项。
-
先编写大纲:使用嵌套 Markdown 项目符号列表,涵盖所有讲座,并以一行摘要结尾。用户当前可响应时,请将大纲展示给用户并征求批准;否则按你认为最佳的大纲继续。
-
按照 references/course-format.md 创建课程目录结构:
<courseId>/course.yaml,列出每场讲座(id、name、description)。- 每场讲座创建一个
<courseId>/<lectureId>/目录。按课程顺序为讲座 ID 添加补零序号前缀(01_、02_……),后接描述性名称。 - 在
<courseId>/problems/<problemId>/下创建课程范围内的编程题。
-
按照 references/material-authoring.md,在每个讲座目录中编写 Markdown 材料文件,并添加补零序号前缀;每场讲座均从
01_重新开始。除非用户要求使用其他语言,否则材料正文使用日语。 -
按照 references/question-authoring.md,在材料正文中以围栏代码块
yaml question的形式嵌入测验题。每引入一个新概念后立即插入对应问题,不要将问题集中放在末尾。 -
判断编写、修改或执行代码是否属于课程的学习目标。如果是,请在有意义的检查点,使用 generate-judge-problems 创建一个或多个课程范围内的 Judge 题。每道题都必须要求学习者运用课程中已介绍的概念;嵌入式问题和完整代码示例不满足此要求。请在相关前置材料附近以
[显示名称](problems/<problemId>)链接每道题。每个被链接的题目目录都必须存在于同一课程的problems/目录下。对于不包含可执行编码目标的课程,仅在请求中要求时才创建 Judge 题。绝不要引用其他课程的题目。 -
使用
exercode-problemCLI 验证(它随@exercode/problem-utils一起提供;该依赖必须在仓库中声明,参见 setup-exercode-course-repository),并修复问题,直到验证通过:bunx exercode-problem validate-course <courseDir> --problems-dir <problemsDir>对于不含 Judge 题的课程,请省略
--problems-dir(显式指定的目录必须存在);此时验证器会在课程目录内解析题目引用,悬空引用会导致错误。修复所有报告的错误并重新运行。重复此过程,直到命令报告成功。也要处理警告,除非这些警告是有意保留的;如保留警告,请在最终报告中说明原因。 -
报告已创建的课程目录、讲座列表以及任何待定事项(例如未经用户确认而自行决定的大纲项目、刻意保留的警告)。