shorebird-patchlisted
Install: claude install-skill chenyynx/claudio
# Shorebird パッチ配布
Shorebird OTA パッチを staging に作成する。stable への昇格はユーザーが検証後に手動で実施する。
> **新バージョンのリリース**は `/release-mobile` スキルを使用する。
> アセット差分でパッチが適用されない場合も、`/release-mobile` でリリース後に再パッチする。
## フロー概要
```
patch (staging) → デバッグ画面で検証 → ユーザーが promote (stable) → 全ユーザーに配信
```
## パッチ手順
### 1. バージョン確認
```bash
grep '^version:' apps/mobile/pubspec.yaml
```
`version: X.Y.Z+N` の値を記録する(= `<version>`)。
### 2. パッチ作成 (staging)
引数でプラットフォームが指定された場合はそのまま使う。指定がなければ、その時点のエージェントで利用可能な質問手段でユーザーに確認する。特定の質問ツール名には依存しない。
```bash
# iOS
bash .claude/skills/shorebird-patch/patch.sh ios <version>
# Android
bash .claude/skills/shorebird-patch/patch.sh android <version>
# 両方の場合は順番に実行
```
スクリプトが以下を一括で行う:
- `shorebird patch` で **staging** にパッチ作成
- `--allow-asset-diffs` によりアセット変更の確認プロンプトを自動スキップ
完了後の出力から **パッチ番号** を記録する(= `<patch-number>`)。
### 3. アセット差分の検証(重要)
パッチ出力に以下の警告が含まれていないか確認する:
```
[WARN] Your app contains asset changes, which will not be included in the patch.
```
**この警告が出た場合、パッチは publish されるが実機に適用されない可能性が高い。**
#### 対処法
アセット差分が検出された場合、ユーザーに以下を報告する:
1. **警告内容**: どのファイルにアセット差分があるか(例: `MaterialIcons-Regular.otf`)
2. **影響**: パッチは作成されるが、デバイスでダウンロード後に適用されない
3. **推奨対応**: `/release-mobile` で新リリースを作成してから、クリーンな状態でパッチを再作成する
### 4. 検証(staging)
パッチが staging に配信されたら、以下の方法で検証する:
- **ローカル**: `shorebird preview --track=staging --release-version=<version>`
- **実機(TestFlight等)**: アプリのデバッグ画面(ロゴ5連打)→ Update Track を Staging に変更 → アプリ再起動
### 5. Promote (staging → stable)
このスキルでは stable への昇格は実行しない。検証が問題なけ