新規キャラクター追加手順
新キャラは アプリのリリースを待たずに配信で届く(キャラデータの配信)。 main にマージすれば数分で公開され、ユーザーのアプリは 6 時間以内に取り込む。
Claude Code では add-character スキルがこの手順をまとめて実行する。
1. ブランチを切る
キャラ追加は main から chars/YYYYMMDD を切る(開発中の develop の差分を混ぜないため)。
git checkout main && git pull --ff-only && git checkout -b chars/$(date +%Y%m%d)2. 新キャラを見つける
ブラウザ自動化で取得した reseponses/{winrate,memo,battle_detail}.json と、キャラ DB(src/data/characters.json)の差分を見る。
npx tsx scripts/data/diff-characters.tsreseponses/ が古ければ先に corepack yarn update-characters --fetch で取り直す。
アプリは、キャラ DB に無いキャラを保存すると telemetry に resource.unknown-character(キャラ ID)を送る。 新キャラの登場はここで最初に分かることが多い。
3. キャラ DB・画像・版を更新する
corepack yarn update-characters次をまとめて行う:
src/data/characters.jsonに新キャラを追加し、既存キャラの欠けを補う- 画像をダウンロードし、白背景にして
public/images/starward/<コスト×10>/<name_en の小文字>.pngに保存 src/utils/imageImports.ts/src/utils/imageManifest.tsを作り直すsrc/data/characterDataVersion.tsの版と sha を上げる(配信の新旧はこの版で決まる)
版の上げ忘れは src/data/__tests__/characterDataVersion.test.ts が落ちて分かる。
4. 画像が名前で引けないとき
キャラ ID → 画像は、name_en と画像ファイル名で対応づける(CharacterService.getImagePath)。 特殊な文字で対応づかないときは、scripts/data/generate-imports.ts の FILE_NAME_MAPPING、 または src/utils/logAnalyzer/CharacterService.ts の nameAliases に対応を足す。
5. 確認して main へ
corepack yarn typecheck:all
corepack yarn lint
corepack yarn test:relatedchars/* を push して main 向けの PR を作る。マージされると publish-resources が配信する。 キャラだけのための patch リリースは不要(次のリリースで同梱も追いつく)。配信を読めない旧版のユーザーにも急いで届けたいときだけ yarn release patch する。
配信されたかは gh run list --workflow publish-resources と、アプリの「設定 → デバッグ・性能 → キャラデータ」で確かめる。