STEP 2038 · 2026-09-14 · rei-aios-cd · 404 fix + 4-layer 反映
藤本さん audit「47 URL 中 8 本 404、 fixable は 実機側 の publish + mirror 修正」 → 5/8 修正 (comparator 6 file mirror seed + Rei-DFUMT8-Filter zip 復活)、 3/8 は 内容不明 で defer。 Case 2 rule (STEP 1977) 実 発動 6 回目 (literal 3 vs 実測 6 → 藤本さん explicit 「6 file 全部 seed 推奨」)、 CRLF/LF 発見 (未来 「破損」 誤診断 予防 dataset)、 Failure mode 5 pattern 累積。
3d368a17...)。 5/8 の 404 が real content 配信 状態 に 回復。
| Category | URL | Size | Type |
|---|---|---|---|
| comparator (literal 3) | /data/comparator/freshness-latest.json | 31,988 B | JSON |
| comparator (literal 3) | /data/comparator/harvest-lag-latest.json | 15,661 B | JSON |
| comparator (literal 3) | /data/comparator/plugin-census-latest.json | 12,001 B | JSON |
| comparator (Case 2 +3) | /data/comparator/basis-audit-latest.json | 64,456 B | JSON |
| comparator (Case 2 +3) | /data/comparator/feed-cadence-latest.json | 11,090 B | JSON |
| comparator (Case 2 +3) | /data/comparator/harvest-lag-v02-latest.json | 15,661 B | JSON |
| zip | /Rei-DFUMT8-Filter-v2.0.0-Cloud.zip | 8,878 B | application/zip |
data/comparator/ に 6 file 存在 (basis-audit / feed-cadence / freshness / harvest-lag / harvest-lag-v02 / plugin-census)dist-renderer/data/comparator/ dir 自体 未 seed = CF Pages で 404 (SPA fallback で index.html 2078 B を返す = 「200」 だが 実 content ではない、 藤本さん audit が 検知)scripts/mirror-dist-renderer.ts STEP 1835) 設計 phil = 「seed 済 path のみ 同期」、 data/ に 追加しても 自動 publish されない = 一度 明示 seed 必要public/Rei-DFUMT8-Filter-v2.0.0-Cloud.zip は HEAD 済 (commit e04313f2e) だが CF Pages source は dist-renderer/.gitignore 100 行目 dist-renderer/*.zip が dist-renderer 側 zip を 除外 → deploy 対象外dist-renderer/assets/app-BOnPl6En.js) は /Rei-DFUMT8-Filter-v2.0.0-Cloud.zip を link 先 として 参照 = 実体 404!dist-renderer/Rei-DFUMT8-Filter-v2.0.0-Cloud.zip 追加 + git add、 blob hash 2af680b0 = HEAD:public/ 版 と 一致 (byte-identical)/tools/research-cycle/ — dist-renderer/tools/ に slug 存在せず/tools/mix5-bench/ — 同上/tools/step-1783-plugin-census/ — 実 page は step-1798-plugin-census-v01/ + step-1814-plugin-census-drupal-extension/ (STEP 番号 mismatch)data/comparator/ に 6 file 存在 (basis-audit + feed-cadence + freshness + harvest-lag + harvest-lag-v02 + plugin-census)。 land 対象 に dist-renderer/data/comparator/ = 公開面 含む → Case 2 rule 発動。
Confirm template 発話 → AskUserQuestion で 2 option 提示:
藤本さん explicit 選択: (b) 6 file 全部 seed → comprehensive land 承認 = Case 2 rule discipline operational 実装 の 6 回目 evidence。
ff65dc25...) vs live md5 (b845d5a3...) 不一致」 検出、 一瞬 「content 破損?」 誤診断 risk あり。
Diagnosis: .gitattributes に JSON 用 eol 設定 なし + Windows working tree = CRLF (\r\n、 33,019 bytes for freshness)、 git stored = LF (\n、 31,988 bytes)、 CF Pages は LF 版 配信 = git commit 時 の core.autocrlf 由来 の 正規化 (normal 動作)。
Correct verify:
tr -d '\r' < data/comparator/freshness-latest.json | md5sum # = b845d5a35799569cf8d6495f2e247784 (= live md5)
本 STEP で tr -d '\r' | md5sum による LF 正規化 後 compare pattern を pattern 化、 未来 Claude 同種 verify で 「byte-identical semantic check」 の 標準 workflow として 継承。
data/ に file 追加 = auto publish」 と 誤解 → mirror script phil (「seed 済 path のみ 同期」) 誤読、 comparator 8 日 stale の 一要因。 Prevention: mirror script docstring 熟読 (STEP 1835)public/ か dist-renderer/ か 混同、 public/ に file 追加しても deploy されず 「公開したつもりで 未公開」。 Prevention: .github/workflows/* grep で CF Pages source 事前確認Content-Type header + size 両方 verify (JSON/zip 判別)tr -d '\r' | md5sum で LF 正規化 後 comparedata/comparator/ mtime 2026-09-06 で 8 日前 (stale の 可能性 あり、 generator 側 再 run が 別 STEP 候補)harvest-lag-latest.json と harvest-lag-v02-latest.json が 同一 content (md5 一致): 意図的か redundant か 未 verify、 v0.1 と v0.2 の 現在 状態 が たまたま 一致 の 可能性rei-aios.org DNS 未調査: 藤本さん audit で 「接続 通らず」 記述、 本 STEP は pages.dev subdomain のみ verify# 6 URL 現在 状態 for f in basis-audit feed-cadence freshness harvest-lag harvest-lag-v02 plugin-census; do curl -sI "https://rei-aios.pages.dev/data/comparator/$f-latest.json" | head -3 done # byte-identical verify (LF 正規化 後) for f in freshness harvest-lag plugin-census; do local_md5=$(tr -d '\r' < "data/comparator/$f-latest.json" | md5sum | cut -d' ' -f1) live_md5=$(curl -sL "https://rei-aios.pages.dev/data/comparator/$f-latest.json" | md5sum | cut -d' ' -f1) [ "$local_md5" = "$live_md5" ] && echo " OK $f" || echo " DIFF $f" done # zip verify curl -sI https://rei-aios.pages.dev/Rei-DFUMT8-Filter-v2.0.0-Cloud.zip # → Content-Length: 8878, Content-Type: application/zip