with one click
make-ahc-visualizer
// AHC形式のRustプロジェクトで、problem_description.txt と公式 tools/src をもとに、同梱テンプレートから case visualizer / eval viewer / WASM 接続を完成させる。
// AHC形式のRustプロジェクトで、problem_description.txt と公式 tools/src をもとに、同梱テンプレートから case visualizer / eval viewer / WASM 接続を完成させる。
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | make-ahc-visualizer |
| description | AHC形式のRustプロジェクトで、problem_description.txt と公式 tools/src をもとに、同梱テンプレートから case visualizer / eval viewer / WASM 接続を完成させる。 |
AHC形式の visualizer を作る。UI/API/eval viewer の大枠は同梱テンプレートをコピーし、問題固有の接続だけを編集する。
project root は AGENTS.md または README.md があるディレクトリである。作業前に以下を確認し、不足があれば停止してユーザーに報告する。
problem_description.txt が存在し、プレースホルダーではないtools/src/ が存在するCargo.toml が存在するcorepack, wasm-pack, cargo が実行できるこの skill の assets/template/ を project root にコピーする。既存ファイルがない前提であるため、もし存在する場合は一時停止してユーザーに確認する。
例:
SKILL_DIR=".agents/skills/make-ahc-visualizer"
cp "$SKILL_DIR/assets/template/index.html" .
cp "$SKILL_DIR/assets/template/eval.html" .
cp "$SKILL_DIR/assets/template/vite.config.js" .
cp "$SKILL_DIR/assets/template/package.json" .
mkdir -p src_vis src_eval wasm/src scripts
cp "$SKILL_DIR/assets/template/src_vis/main.js" src_vis/main.js
cp "$SKILL_DIR/assets/template/src_eval/"*.js src_eval/
cp "$SKILL_DIR/assets/template/wasm/Cargo.toml" wasm/Cargo.toml
cp "$SKILL_DIR/assets/template/wasm/src/"*.rs wasm/src/
cp "$SKILL_DIR/assets/template/scripts/"*.sh scripts/
chmod +x scripts/build_wasm.sh scripts/dev_vis.sh
src_vis/wasm/ は build 生成物なので手書きしない。
以下を読む。
problem_description.txttools/src/lib.rstools/src の非 bin モジュールtools/src/bin/ は原則として設計根拠にしない。公式 tools/src に parse / score / vis 相当がある場合は優先して移植・接続する。
編集中心は以下に限定する。
wasm/src/impl_vis.rs
generate(seed) -> Stringcalc_max_turn(input, output) -> usizevisualize(input, output, turn) -> Result<(i64, String, String), String>vite.config.js
parseCaseMeta(filePath) に case metadata 抽出を追加するCASE_SORT_OPTIONS に必要な sort option を追加するsrc_eval/case_sorters.js
問題固有 metadata は results/eval_records.jsonl に混ぜない。eval viewer 側で input_dir と case_name から case file を読んで復元する。
wasm/Cargo.toml の crate 名と src_vis/main.js の WASM import 名を合わせる/ は case visualizer、/eval.html は eval viewer として維持する以下を通す。
cd wasm && cargo check
cd wasm && wasm-pack build --target web --out-dir ../src_vis/wasm
corepack yarn build
./scripts/dev_vis.sh
./scripts/dev_vis.sh は起動できたことが分かったらすぐ終了する。ユーザーから明示的な指示がない限り、Playwright やブラウザ操作で / と /eval.html を確認しない。
cargo check, wasm-pack build, corepack yarn build が通る./scripts/dev_vis.sh で起動できることを確認し、起動できたらすぐ終了する./scripts/dev_vis.sh を提示するsrc_vis/wasm/ の生成物を手書き編集することeval_records.jsonl に問題固有 metadata を追加すること