关于 generate-judge-contest
用于在课程仓库中创建编程判题竞赛的技能,指导 Agent 收集参数、规划并生成题目、验证文件,以及汇报未决事项。
主要功能
- 01收集竞赛参数
- 02按难度和分数规划题目
- 03生成竞赛与题目文件
- 04验证竞赛及题目
- 05汇报路径与未决事项
适用场景
- 01为课程讲座创建竞赛
- 02制作分数递增的题目集
- 03交付前检查竞赛文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ willbooster/ exercode-problem-utils --skill generate-judge-contest安装后在 Claude Code 中输入/generate-judge-contest确认已加载。
附带文件references/contest-format.md
详细介绍
生成一场竞赛
编写任何文件前,请阅读 references/contest-format.md。
-
确认竞赛参数:竞赛 ID 和名称、目标课程和讲座、各分组(每个分组的开始和结束日期时间)、竞赛涵盖的概念、题目数量(通常为 4–6 道)以及目标编程语言。如果竞赛属于某门课程,则应将竞赛文件放在
<courseId>/<lectureId>/<contestId>.contest.yaml,题目文件放在同一课程的problems/目录下。如果缺少任何参数,且用户可联系,请先询问;否则根据上下文选择合理的值,并在最终报告中将其列为待定事项。 -
将题目集规划为草案(ID、名称、概述、难度、分数):
- 只使用学习者已在涵盖的材料中学过的概念。
- 难度应从初级逐步提升,让每位参赛者都能解出一些题,同时也能给实力较强的参赛者带来挑战;题目按从易到难排序。
- 分数随难度递增(例如 100、200、300……)。
-
按照 generate-judge-problems 技能的工作流,生成每道题的目录(先编写标准答案,运行它生成
.out文件,除非自定义判题器不比较标准输出;使用第二种语言交叉检查;进行验证)。 -
按照 references/contest-format.md 编写
<contestId>.contest.yaml,列出所有分组和每道题及其分数。如果竞赛属于某门课程,请将文件放在讲座目录下。 -
使用
exercode-problemCLI 进行验证(该 CLI 随@exercode/problem-utils一同提供,而它必须是已声明的仓库依赖项,参见 setup-exercode-course-repository),并持续修复,直到检查通过;每次修复后都要重新运行,直至两条命令均报告成功:bunx exercode-problem validate-problem <problemDir>... bunx exercode-problem validate-contest <contestYamlPath> --problems-dir <problemsDir>也要处理警告,除非它们是有意保留的;如果保留了警告,请在最终报告中说明原因。
-
报告竞赛 YAML 文件的路径、题目列表及其分数和难度,以及任何待定事项(例如你自行选择的日期时间或分数、有意保留的警告)。