generate-judge-contest
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGenerate a judge contest
生成 Judge 竞赛
Read references/contest-format.md before authoring any file.
-
Confirm the contest parameters: contest id and name, target course and lecture, divisions (each with open/close datetimes), which concepts the contest covers, the number of problems (4-6 is typical), and target programming language(s). The contest belongs at, and its problems belong under the same course's
<courseId>/<lectureId>/<contestId>.contest.yamldirectory. If any are missing, ask before generating when the user is available; otherwise choose reasonable values from the context and list them as open decisions in the final report.problems/ -
Plan the problem set as drafts (id, name, overview, difficulty, score):
- Use only concepts the learners have already studied in the covered materials.
- Span difficulties from 初級 to harder levels so every participant can solve something and strong participants stay challenged; order problems from easy to hard.
- Assign scores increasing with difficulty (e.g. 100, 200, 300, ...).
-
Generate each problem directory by following the generate-judge-problems skill workflow (model answer first, run it to producefiles unless the custom judge does not compare stdout, cross-check with a second language, validate).
.out -
Writeper references/contest-format.md, listing every division and every problem with its score. Place the file inside the lecture directory when the contest belongs to a course.
<contestId>.contest.yaml -
Validate with theCLI (it ships with
exercode-problem, which must be a declared repository dependency — see setup-exercode-course-repository) and fix until clean; rerun after every fix until both commands report success:@exercode/problem-utilsbashbunx exercode-problem validate-problem <problemDir>... bunx exercode-problem validate-contest <contestYamlPath> --problems-dir <problemsDir>Address warnings too unless they are intentional; if you keep a warning, tell the user why in the final report. -
Report the contest yaml path, the problem list with scores and difficulties, and any open decisions (e.g. datetimes or scores you chose, intentionally kept warnings).
编写任何文件前,请阅读 references/contest-format.md。
-
确认竞赛参数:竞赛 ID 和名称、目标课程与讲次、各组别及其开放/关闭日期时间、竞赛涵盖的概念、题目数量(通常为 4-6 道)以及目标编程语言。竞赛文件应位于,题目应放在同一课程的
<courseId>/<lectureId>/<contestId>.contest.yaml目录下。如果用户可联系且有任何参数缺失,应在生成前询问;否则根据上下文选择合理值,并在最终报告中将其列为待定事项。problems/ -
先以草稿形式规划题集(ID、名称、简介、难度、分值):
- 仅使用学习者在相关材料中已经学过的概念。
- 难度应从初级覆盖到更高级别,使每位参与者都能解出部分题目,同时让能力较强的参与者仍有挑战;题目应按从易到难的顺序排列。
- 分值应随难度提高而增加(例如 100、200、300……)。
-
按照 generate-judge-problems skill 工作流生成每个题目目录(先生成标准答案并运行以产生文件;仅当自定义 judge 会比较 stdout 时执行此步骤;然后使用第二种语言交叉核验并验证)。
.out -
根据 references/contest-format.md 编写,列出每个组别以及每道题目及其分值。如果竞赛归属于某门课程,请将该文件放在对应的讲次目录中。
<contestId>.contest.yaml -
使用CLI 进行验证(该 CLI 随
exercode-problem提供,而@exercode/problem-utils必须声明为仓库依赖,参见 setup-exercode-course-repository),并修复问题直至验证结果干净。每次修复后都要重新运行,直到两条命令均报告成功:@exercode/problem-utilsbashbunx exercode-problem validate-problem <problemDir>... bunx exercode-problem validate-contest <contestYamlPath> --problems-dir <problemsDir>除非警告是有意保留,否则也应一并处理;如果保留某项警告,请在最终报告中说明原因。 -
报告竞赛 yaml 文件路径、题目列表及其分值和难度,以及所有待定事项(例如所选的日期时间或分值,以及有意保留的警告)。