Skip to content

新規キャラクター追加手順 ​

新キャラは アプリのリリースを待たずに配信で届く(キャラデータの配信)。 main にマージすれば数分で公開され、ユーザーのアプリは 6 時間以内に取り込む。

Claude Code では add-character スキルがこの手順をまとめて実行する。

1. ブランチを切る ​

キャラ追加は main から chars/YYYYMMDD を切る(開発中の develop の差分を混ぜないため)。

bash
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)の差分を見る。

bash
npx tsx scripts/data/diff-characters.ts

reseponses/ が古ければ先に corepack yarn update-characters --fetch で取り直す。

アプリは、キャラ DB に無いキャラを保存すると telemetry に resource.unknown-character(キャラ ID)を送る。 新キャラの登場はここで最初に分かることが多い。

3. キャラ DB・画像・版を更新する ​

bash
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 へ ​

bash
corepack yarn typecheck:all
corepack yarn lint
corepack yarn test:related

chars/* を push して main 向けの PR を作る。マージされると publish-resources が配信する。 キャラだけのための patch リリースは不要(次のリリースで同梱も追いつく)。配信を読めない旧版のユーザーにも急いで届けたいときだけ yarn release patch する。

配信されたかは gh run list --workflow publish-resources と、アプリの「設定 → デバッグ・性能 → キャラデータ」で確かめる。