mcpField
G
generate-judge-contest

generate-judge-contest

github.com/willbooster開発0213 回インストール2 日前に更新
リポジトリ

generate-judge-contest について

コースリポジトリでプログラミングコンテストを作成するスキルです。必要情報の確認、問題の計画と生成、ファイル検証、未決事項の報告を支援します。

主な機能

  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-utils に付属する exercode-problem CLI で検証します。このパッケージはリポジトリの依存関係として宣言されている必要があります(setup-exercode-course-repository を参照)。問題がなくなるまで修正し、両方のコマンドが成功を報告するまで、修正のたびに再実行してください。

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

    意図的なものを除き、警告にも対応してください。警告を残す場合は、その理由を最終レポートでユーザーに伝えてください。

  6. コンテスト YAML のパス、スコアと難易度を含む問題一覧、未決事項(選択した日時やスコア、意図的に残した警告など)を報告してください。

コメント