SuperAPI AI 工具集

generate-judge-contest

编程与开发

查看项目

更新于 10-16 06:44

技能介绍

用途:在 Exercode/Judge 环境中生成一场竞赛(contest)及其配套题集,不适用于 Exercode/Judge 之外的场景。

主要能力:根据课程与讲义上下文,规划并生成竞赛配置文件与题目目录,覆盖竞赛参数确认、题集规划、题目生成、配置编写与校验的完整流程。

使用方式:编写任何文件前先阅读 references/contest-format.md。确认竞赛参数,包括竞赛 id 与名称、目标课程与讲义、各 division 及其开放/关闭时间、覆盖的概念、题目数量(通常 4-6 题)以及目标编程语言。竞赛文件位于 <courseId>/<lectureId>/<contestId>.contest.yaml,题目位于同一课程的 problems/ 目录下。若参数缺失,用户可用时应先询问;否则从上下文选取合理值,并在最终报告中列为待定决策。

题集规划:以草稿形式列出 id、名称、概述、难度、分值;只使用学习者在已覆盖材料中学过的概念;难度从初级到较难分布,按由易到难排序;分值随难度递增(如 100、200、300……)。每个题目目录按 generate-judge-problems 技能流程生成(先写标准答案,运行生成 .out 文件,除非自定义判题不比较 stdout;用第二种语言交叉验证并校验)。

配置与校验:按 references/contest-format.md 编写 <contestId>.contest.yaml,列出每个 division 和每道题及其分值;竞赛属于课程时放在讲义目录内。使用 exercode-problem CLI(随 @exercode/problem-utils 提供,须为仓库声明的依赖)校验并修复至通过:

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

每次修复后重跑,直到两条命令均成功。除有意保留外应处理警告;若保留警告,需在最终报告中说明原因。

报告内容:竞赛 yaml 路径、含分值与难度的题目列表,以及待定决策(如所选时间或分值、有意保留的警告)。

限制:仅用于 Exercode/Judge;具体参数缺失时需询问或标注为待定;资料未提供更多关于 CLI 安装细节、支持语言范围或平台限制的信息。