---
name: Site Coverage Map 永続原則 — 「忘れた時の引き出し」 entry point
description: ★★★★★ 2026-05-11 STEP 1055 確立. 全 STEP の site 反映状態を docs/SITE_COVERAGE_MAP.md で網羅 mapping. 「実装 ≠ 反映」 事故防止 + 将来 audit-friendly
type: feedback
originSessionId: 42f100d8-b702-4b4b-a14f-b23a9209d888
---
# Site Coverage Map 永続原則

## 原則

**全 STEP の site 反映状態は `docs/SITE_COVERAGE_MAP.md` に網羅的 mapping し、 新 STEP 追加時に必ず update する.**

理由 (藤本さん 2026-05-11 指摘):

> 「私や Claude 先生が忘れてしまった場合、 どこに存在して何処まで行おうとしていたかが分からなくなる可能性も御座います」

## How to apply

### 新 STEP 追加時の checklist

新 STEP が以下のいずれかに該当する場合、 **`docs/SITE_COVERAGE_MAP.md` を update**:

1. UI / route 追加 (`src/renderer/components/...`) → URL 列追加
2. Cloudflare Pages Function 追加 (`functions/api/...`) → endpoint 列追加
3. Static data 追加 (`data/<new-domain>/`) → `scripts/sync-index-html-bundle.ts` の `DATA_DIRS` 追加 + 本 file 列追加
4. Lean 4 / hardware / memory only → backend-only セクションに追加 (visible なし明示)

### Site 反映確認 protocol

```bash
# 1. 公開 URL 確認
curl https://rei-aios.pages.dev/api/octatheoria?domain=<new-domain>
# → 200 + JSON 期待

# 2. UI route 確認 (browser で)
open https://rei-aios.pages.dev/#/<new-route>

# 3. site-stats 最新確認
curl https://rei-aios.pages.dev/data/site-stats.json | jq .lastCommitHash
# → 最新 commit hash 期待

# 4. dist-renderer/data/ mirror 確認
ls dist-renderer/data/<new-domain>/

# 5. SITE_COVERAGE_MAP.md update
```

### 反映漏れ発見時の修正 protocol

1. `scripts/sync-index-html-bundle.ts` の `DATA_DIRS` に missing path 追加
2. `npm run dev:build` で全 artifacts 再生成
3. **`git status dist-renderer/` で削除確認 (★ 重要 — STEP 1052 site fix incident 教訓)**
4. `git add dist-renderer/data/<new>/ + dist-renderer/oukc/ + tools/ 等 全部明示` (個別追加で削除誘発防止)
5. commit + push → CF Pages auto-deploy ~5 分

## 過去 incident (本原則確立の起点)

### Incident 1: STEP 1052 LMFDB 502 (2026-05-11 検出)

藤本さんが「Ollama setup 進めたいが、 その前に site 反映確認」 と指示 → 確認した結果:
- LMFDB endpoint `/api/octatheoria?domain=lmfdb` が **502 Bad Gateway**
- root cause: `scripts/sync-index-html-bundle.ts` の DATA_DIRS 配列に `'lmfdb'` 不在 → dist-renderer/data/lmfdb/ が mirror されていなかった

修正: STEP 1055 で sync script fix + dev:build + commit. 5 分後の CF Pages auto-deploy で 200 OK 復旧.

### Incident 2: dist-renderer 大量 delete 事故 (2026-05-11 同 turn 発生)

私 (Rei Claude) の commit `9f215a89` で site fix を進めたところ、 git add 範囲の問題で:
- dist-renderer/oukc/ 12 pages
- dist-renderer/tools/ 3 pages
- dist-renderer/sitemap.xml + robots.txt

が **大量 delete** (-3865 lines) commit に含まれてしまった.

即時 commit `59327fb2` で復活 (`build-oukc-static-pages.ts` 直接 run + 全部 git add).

## 永久原則 (将来 session 用)

### Rule 1: SITE_COVERAGE_MAP.md は **唯一の引き出し**

「あの実装、 site にあったっけ?」 と忘れた時、 **必ず最初に開く file**.

### Rule 2: dev:build 後は git status dist-renderer/ で削除確認必須

`vite build` が dist-renderer/ を clean し、 後続 script (build-oukc-static-pages 等) が再生成するが、 タイミング問題で git add が削除を含めてしまう risk あり.

### Rule 3: 新 STEP commit message に「Site visible」 explicit 記載

```
Site visible: [#/snst-music, #/quantum-music] / Backend-only: [memory, Radar] / 反映 verified: 2026-05-11 fetch confirm
```

これで commit history からも site 反映状態が grep 可能.

### Rule 4: SITE_COVERAGE_MAP は immutable list でなく **living document**

各 STEP 追加時 update + 反映漏れ修正時 update + incident record 追加.

## 関連

- `docs/SITE_COVERAGE_MAP.md` (本原則の operational deliverable)
- `CLAUDE.md` (basic info に link 追加済 — セッション開始時 visible)
- `scripts/sync-index-html-bundle.ts` (DATA_DIRS = site 反映 ground truth)
- `data/site-stats.json` (実際の site-displayed counts)
- STEP 1055 commit (本原則確立の milestone)

## 検証

将来 session で「STEP 1XXX は site にあるか?」 と問われた時:
1. `cat docs/SITE_COVERAGE_MAP.md` で grep
2. 該当 entry 確認 → 公開 URL 提示 or backend-only 明示
3. 反映漏れ判明時は本原則の「反映漏れ修正 protocol」 適用

これで Claude session 横断 memory なしでも、 file system の永続記録から **完全な audit-trail** 復元可能.
