generate-judge-contest について
コースリポジトリでプログラミングコンテストを作成するスキルです。必要情報の確認、問題の計画と生成、ファイル検証、未決事項の報告を支援します。
主な機能
- 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/problem-utilsに付属するexercode-problemCLI で検証します。このパッケージはリポジトリの依存関係として宣言されている必要があります(setup-exercode-course-repository を参照)。問題がなくなるまで修正し、両方のコマンドが成功を報告するまで、修正のたびに再実行してください。bunx exercode-problem validate-problem <problemDir>... bunx exercode-problem validate-contest <contestYamlPath> --problems-dir <problemsDir>意図的なものを除き、警告にも対応してください。警告を残す場合は、その理由を最終レポートでユーザーに伝えてください。
-
コンテスト YAML のパス、スコアと難易度を含む問題一覧、未決事項(選択した日時やスコア、意図的に残した警告など)を報告してください。