Date: 2026-09-21 ·
Repo: fc0web/rei-aios ·
Commits: 84322a136 (v0.5 initial) + STEP 2169 corrigendum + STEP 2170 refine ·
Session: rei-aios-04 [6c39e5]
--include-untracked stash に 対する 予防のみ、 通常 stash / autostash は 「tracked かつ modified」 も 対象 = tracked 単独 では immunity にならない。git reset --hard / rebase で 消える = 「commit + push まで」 が refine 版。 更に force push は 別 layer 対策必須。reset --hard 経路 は 別 (STEP 2170 認識)。藤本さん directive: 「Tab Isolation Protocol v0.2 起工お願いします」 (2026-09-21)。 doc version 系列は既に v0.1→v0.2→v0.3→v0.4 が積み上がっていたため、 「sidecar-tracked 議論全体の起工」 として v0.5 で append。 label 「v0.2」 は 2026-09-21 audit session 内で peer rei-aios-f5 が使った marker と一致 (「v0.2 candidate」)。
直接契機 = STEP 2160 stash 事案 (2026-09-20 peer rei-aios-42 tab pre-rebase git stash push --include-untracked)。 3 tab (04/e9/f5) が影響を受けた audit を経由し、 「tracked file は --include-untracked の対象外 = 構造的安全」 という e9 の実例から v0.5 は成立した。
--include-untracked なしの 素の git stash (autostash 含む) が 持っていきます。 正確な 規定は 『sidecar は 書いたら commit まで 済ませる、 working tree に 置いたままにしない』。」
| Tab | stash@{2}^3 内 の 捕獲 file | 現状 disk | 判定 |
|---|---|---|---|
| rei-aios-04 (私) | step-claims.json 486 bytes (initial in_progress 版) | file 有 (1,938 bytes、 4 回 rewrite で 復活) | ✅ safe (但し 偶然の復活、 protocol 保護 ではない) |
| rei-aios-e9 | なし | dir 有、 全 file tracked | ✅ safe (tracked = --include-untracked の対象外 = 構造的安全) |
| rei-aios-f5 | rei-server-daemon.bat 656 bytes (promote 前旧版) | dir 自体 消失 | ❌ 一時消失 (別 promote 済で 復旧不要 と 判定) |
git add + git commit (commit through)data/tabs/<self>/ 内 に 新 file を 作成 したら、 その turn で git add + git commit を 済ませる。 「add した だけ で commit していない」 状態 も NG = 通常 stash (autostash 含む) が modified を 持っていく。 唯一 safe な state は clean working tree (untracked=0 かつ modified=0)。
# OK (v0.5 STEP 2170 refine 版 準拠、 commit + push まで)
echo '{...}' > data/tabs/rei-aios-<self>/step-claims.json
git add data/tabs/rei-aios-<self>/step-claims.json
git commit -m "STEP N sidecar init (tab rei-aios-<self>)"
git push origin main
# → clean working tree + push 済、 stash 経路 + reset --hard 経路 両方 に 保護
# NG-1 (v0.5 違反、 「後で まとめて」 pattern)
echo '{...}' > data/tabs/rei-aios-<self>/step-claims.json
# write のみ → peer stash -u 発火で 消失
# NG-2 (STEP 2169 で 新たに 認識、 tracked 単独 では 不十分)
echo '{...}' > data/tabs/rei-aios-<self>/step-claims.json
git add data/tabs/rei-aios-<self>/step-claims.json
# add したが commit していない → 通常 stash / autostash が modified を 持っていく
# NG-3 (STEP 2170 で 新たに 認識、 local commit のみ では 不十分)
git add ... && git commit -m "..."
# push していない → 別 tab の git reset --hard / rebase で local commit も 消える
Safe な state の 層 (STEP 2170 で 明示化):
step-claims.json, README.md, handoff-*.md, audit-*.md 等、 「tab の 状態 record」 として 恒久保持対象.gitignore が より安全).githooks/pre-commit Section 8b は untracked + modified-tracked 両方 を advisory warn (non-blocking、 grace period):
git ls-files --others --exclude-standard data/tabs/<REI_TAB_ID>/
git diff --name-only data/tabs/<REI_TAB_ID>/ + staged 分[pre-commit] Section 8b (v0.5 advisory, STEP 2170 refined): data/tabs/<self>/ に non-clean file: untracked=N / modified=M
→ Tab Isolation Protocol v0.5 (STEP 2169+2170 訂正): sidecar は 書いたら commit + push まで 済ませる
→ stash / autostash に対して は clean working tree が 最も安全 (tracked 単独 は 不十分)
→ 但し 以下 は 別 layer 対策 が 要る (clean working tree は これらに 効かない):
1. rebase / reset --hard (local committed でも 消える)、 対策 = push 済で reflog / remote 経由 復旧
2. force push (remote commit 巻き戻る)、 対策 = protected branch / 事前 review
3. worktree remove (別 branch の 未 merge 変更 消える)、 対策 = merge / push 済 で 分岐点 保護
→ 対応: git add + git commit + git push で working tree から 抜き remote まで 到達
→ 意図的 non-clean (scratch / secret / temp / active WIP) は SKIP_V05_UNTRACKED_WARN=1
REI_TAB_ID | 自 tab dir 内 untracked | 挙動 |
|---|---|---|
| rei-aios-04 (私) | 0 file | no warn ✓ |
| rei-aios-e8 (pseudo test) | 1 (ecc-audit/ECC/) | would warn with 3 選択肢 (git add / SKIP=1 / .gitignore) ✓ |
git add して track に 昇格。 私 が repo root で git add data/tabs/**/* を 実行 する と 全 peer dir に 書き込む = v0.1 違反、 やらない。data/tabs/rei-aios-e8/ecc-audit/ECC/) が v0.5 target pattern 実例、 e8 tab owner 判断待ち。
.gitignore 経路 も 案内)藤本さん directive の 「Tab Isolation Protocol v0.2」 = sidecar-tracked 議論 全体 の 起工 と 解釈。 doc version 系列 は v0.1 (STEP 1670)→v0.2 継承 handoff (STEP 1760)→v0.3 correction routing (STEP 1892)→v0.4 auto-cycle (STEP 2158) が 既存、 本 STEP は v0.5 として append。 藤本さん label と doc version の drift を sidecar step-claims.json に record 明示。
84322a136)docs/TAB_ISOLATION_PROTOCOL.md — v0.5 section append (~90 行、 v0.4 の 後ろ).githooks/pre-commit — Section 8b 追加 (untracked-under-self-tab advisory warn)CLAUDE.md — Tab Isolation Protocol v0.1 → v0.5 pointer update + v0.5 追加 section 案内 embeddocs/notepad/2026-09-21T07-30_STEP-2166_tab_isolation_protocol_v05_sidecar_tracked.md — 学習 record + failure modedata/tabs/rei-aios-04/step-claims.json — STEP 2166 claim + label refinement notescripts/rei-server-daemon.bat promote = 「isolation dir を shared tree に promote する 動作 が、 期せずして wipe に 対する 保護策 として 機能」 と f5 自身が 記録、 v0.5 と 相補)84322a136
Attribution: [via 藤本さん / orig: STEP 2159 arc 副産物 audit + chat-Claude 2026-09-21 review round 3+4+5 (initial insight → tracked→commit-through → commit+push refine) + chat-Claude(Cowork) 2026-09-21 4th+5th paste Pattern L round 4-5 訂正 + peer rei-aios-f5 SendMessage relay & endorsement + 藤本さん explicit go chain: 「Tab Isolation Protocol v0.2 起工お願いします」 → 「次 judgment」 → 「(a)(b)(d)(e) 1 commit で 反映、 (f) 別 arc」 (2026-09-21)]
Pattern L 累計 5 round 学習 dataset (仮説、 Round 4-5 の 2 事例 のみ): 「対策を 書く場面 が 一番 その 誤り の 出やすい場面」 (chat-Claude paste 明示) は **法則 ではなく 仮説** として 記録、 累積 事例 で 効果 verify 待ち。 STEP 2170 で self-check pattern 「予防 が 効かない 条件 3 個 列挙」 を codify、 protocol document 起草時 の 標準 discipline candidate。 但し **self-check 自身 も Pattern L に かかる 可能性** (「3 個 列挙 で 完全予防」 は 過大主張 emerge candidate) を 認識、 効果 verify も 累積 事例 待ち。