mcpField
G
generate-judge-contest

generate-judge-contest

github.com/willbooster开发0213 次安装2 天前更新
代码仓库

关于 generate-judge-contest

用于在课程仓库中创建编程判题竞赛的技能,指导 Agent 收集参数、规划并生成题目、验证文件,以及汇报未决事项。

主要功能

  1. 01收集竞赛参数
  2. 02按难度和分数规划题目
  3. 03生成竞赛与题目文件
  4. 04验证竞赛及题目
  5. 05汇报路径与未决事项

适用场景

  1. 01为课程讲座创建竞赛
  2. 02制作分数递增的题目集
  3. 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。

  1. 确认竞赛参数:竞赛 ID 和名称、目标课程和讲座、各分组(每个分组的开始和结束日期时间)、竞赛涵盖的概念、题目数量(通常为 4–6 道)以及目标编程语言。如果竞赛属于某门课程,则应将竞赛文件放在 <courseId>/<lectureId>/<contestId>.contest.yaml,题目文件放在同一课程的 problems/ 目录下。如果缺少任何参数,且用户可联系,请先询问;否则根据上下文选择合理的值,并在最终报告中将其列为待定事项。

  2. 将题目集规划为草案(ID、名称、概述、难度、分数):

    • 只使用学习者已在涵盖的材料中学过的概念。
    • 难度应从初级逐步提升,让每位参赛者都能解出一些题,同时也能给实力较强的参赛者带来挑战;题目按从易到难排序。
    • 分数随难度递增(例如 100、200、300……)。
  3. 按照 generate-judge-problems 技能的工作流,生成每道题的目录(先编写标准答案,运行它生成 .out 文件,除非自定义判题器不比较标准输出;使用第二种语言交叉检查;进行验证)。

  4. 按照 references/contest-format.md 编写 <contestId>.contest.yaml,列出所有分组和每道题及其分数。如果竞赛属于某门课程,请将文件放在讲座目录下。

  5. 使用 exercode-problem CLI 进行验证(该 CLI 随 @exercode/problem-utils 一同提供,而它必须是已声明的仓库依赖项,参见 setup-exercode-course-repository),并持续修复,直到检查通过;每次修复后都要重新运行,直至两条命令均报告成功:

    bunx exercode-problem validate-problem <problemDir>...
    bunx exercode-problem validate-contest <contestYamlPath> --problems-dir <problemsDir>
    

    也要处理警告,除非它们是有意保留的;如果保留了警告,请在最终报告中说明原因。

  6. 报告竞赛 YAML 文件的路径、题目列表及其分数和难度,以及任何待定事项(例如你自行选择的日期时间或分数、有意保留的警告)。

评论

支持 Markdown