以下の内容はhttps://yunix-kyopro.hatenablog.com/entry/2026/02/24/230913より取得しました。


AtCoderマスターズ選手権のためにビジュアライザ実装のAgent Skillsを作った件

はじめに

こんにちは。競技プログラミングのコンテストに参加しているyunixです。今年もそろそろマスターズ選手権の季節がやってきました。

マスターズ選手権は他のコンテストと異なり、公式のビジュアライザが提供されず、各チームが独自に開発する必要があります。過去2年間、この課題に対応するため、ビジュアライザ開発を簡単にするテンプレートと解説記事を作成してきました。

これまでのアプローチは以下のような構成でした:

  • Reactを使って公式ビジュアライザのような見た目のUIを用意
  • Rustで問題固有のビジュアライザ機能を実装
    • 公式のテスタやテストケース生成コードを流用
    • 見た目部分のみ実装すればOK
  • Vercelでデプロイし、チームメンバーがBASIC認証でアクセス可能に

この方法は、公式ツールを再利用することで正確性を担保しつつ、実装範囲を限定できるため効率的でした。

しかし、この2年間での生成AIの急速な発展は著しく、今では問題文をコピペして貼り付けるだけで、ほぼ問題なく高機能なビジュアライザを自動生成してくれるようになっています。(正直なところ、この状況なら公式で提供してくれてもいいんじゃないかと思わなくもないですが…)

このテンプレートは一見すると使命を終えた感がありますが、それでも公式ツールのスコア計算を流用できるのでミスが少ないデプロイの方法をあらかじめ準備しておけるなど、実用的なメリットは残っています。

そこで今年は、これまで以上にAIに任せることをテーマに、Agent Skillsを実装しました。リポジトリに問題文と公式ツールを配置して、たった1コマンドで実行するだけ。Claude CodeやCodexが数分程度でビジュアライザを完成させてくれます。

注意: Agent Skills はローカルでコマンド実行やファイル操作を行うことがあります。第三者が作成した Skills を含め、実行前に SKILL.md とスクリプト内容を確認し、意図しない操作(ファイル削除・外部送信など)がないことを確かめてから使うのを推奨します。

実装したAgent Skills

Agent Skillsとは

Claude CodeやCodexには、Agent Skillsというカスタムコマンドを登録できる機能があります。.agents/skills/ディレクトリにSKILL.mdというファイルを置くだけで定義でき*1/コマンド名を実行するとAIがそこに書いた手順に従って自動でタスクを進めてくれます。「こういう順番でやってね」という指示書をあらかじめ用意しておけるイメージです。

make-visualizer スキル

このリポジトリに実装した /make-visualizer は、ビジュアライザの実装を丸ごと自動化するスキルです。問題文と公式ツール(テスターコード)さえ配置すれば、AIが以下の流れで進めてくれます:

  • 問題文と公式コードを読んで、ビジュアライザの設計案を提案
  • 承認後、Rustでビジュアライザを実装(状態管理・SVG描画)
  • Wasmにビルドして、ブラウザで動作確認できる状態に

実装したSKILL.mdはこちら。 使用方法の詳細はREADMEを確認してください。

実際にやってみる

AHC061を題材にして、実際にAgent SkillsのコマンドをCodexで実行してビジュアライザを実装してもらいましょう。 また、Claude Codeでも同様のやり方で実行できます。ビジュアライザ実装はそこまで難しいタスクではないと思われるので、モデルは速度重視の方がストレスがないかもしれません。

ファイルの準備・コマンドの実行

まずは問題の情報をエージェントに渡すために、問題文をproblem_description.txtにコピペをする & 公式から配られるtoolsフォルダをプロジェクトのルートフォルダに配置します*2。 この後にmake-visualizerコマンドを実行するとCodexが実装を開始してくれます。

コマンドを実行するとCodexがファイルを確認して作業を進めてくれる

設計案の確認

公式のテスタツールや問題文を読んで、ビジュアライザの設計案を出してくれます。 これを確認して問題なさそうだったら次に進みます*3

Codexが出してきた設計案を確認する

実装およびwasmのビルド

公式のテスタのコードをコピーした上でビジュアライザの描画のための関数の実装を行ってwasmのビルドまで行ってくれます。 これで完成です。合計で5分弱くらいの作業でした。

実装の作業の後にビルドをして、yarn devをすればビジュアライザが動く状態まで仕上げてくれる

完成したもの

まあよさそうかな...?

最後に

今年は最近(でもないか...)流行りのAgent Skillsを使ってビジュアライザをCoding Agentに実装させてみました。 ぶっつけ本番だと何かとトラブルはつきものですので、事前に試してみるといいかもしれません。また、Coding Agentの使用は自己責任でお願いします。 

今年のマスターズも対戦よろしくお願いいたします!

*1:これはCodexの場合です。Claude Codeは.claude/commands/コマンド名.md

*2:なおAHC061ではtools内にビジュアライザ用の関数が含まれていたので手動で削除しています

*3:私はいつも読まずに承認しています... 聞く意味ないような気もします




以上の内容はhttps://yunix-kyopro.hatenablog.com/entry/2026/02/24/230913より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14