---
name: git_largefile_safety
description: git add -A の前に大規模バイナリ (gguf/fits/モデル) の存在を必ず確認する
type: feedback
---

`git add -A` を使う前に、リポジトリ内に GitHub の 100MB/ファイル上限を超えるバイナリが untracked で存在しないかを必ず確認すること。

**Why:**
2026-04-08 のセッション終盤コミットで以下が誤って追加され、HTTP 500 で push が 2 度失敗した:
- `data/python-bridge/smica_planck2018.fits` (2.0 GB) — STEP 535 で実 Planck SMICA を取得した残骸
- `models/Bonsai-8B.gguf` (1.16 GB) — Bonsai-8B モデル
- `models/Bonsai-8B-Q4_K_M.gguf` (903 MB) — 量子化版

GitHub の制限は **ファイル単位 100 MB**、推奨上限は **リポジトリ全体 1 GB**。これを超えるとサーバー側で RPC 失敗 (HTTP 500) になる。`git add -A` は untracked も含めて全部ステージングするため、研究で生成された大ファイルが knowingly/unknowingly 紛れ込みやすい。

**How to apply:**

1. **コミット前チェック**: `git add -A` する前に
   ```bash
   find . -size +50M -not -path "./node_modules/*" -not -path "./.git/*" 2>/dev/null
   ```
   で 50MB 超ファイルを発見する

2. **.gitignore に予防的パターンを置く** (Rei-AIOS の既存設定):
   ```
   models/*.gguf
   models/*.bin
   models/*.safetensors
   *.fits
   data/python-bridge/*.fits
   data/python-bridge/smica_*
   ```

3. **誤って commit した場合の修復**:
   ```bash
   git rm --cached <large-file>
   echo "<large-file>" >> .gitignore
   git add .gitignore
   git commit --amend --no-edit
   git push
   ```

4. **特に警戒すべき STEP**:
   - astropy/healpy で実 FITS データ取得 → `data/python-bridge/*.fits`
   - Bonsai/Llama 等の LLM モデル取得 → `models/*.gguf`
   - 動画・音声生成 → `*.mp4 *.wav` 大容量

5. **Push 失敗の症状**: `error: RPC failed; HTTP 500` + `send-pack: unexpected disconnect` が出たら**サイズ超過を疑う**こと。HTTP buffer 増加 (`http.postBuffer`) では解決しない。
