# SHIMA BUILDER NAVIGATION SLIM v6.9.3 — RUNTIME AUDIT

監査日：2026-09-09
基準ZIP：SHIMA_BUILDER_NAVIGATION_SLIM_v6.9.2_FULL.zip
基準SHA-256：2894fdb80b843126eea13dd94eb1ef9bedd65c43a8f4bcbcab6a85db3b6173a4
基準サイズ：5,131,939 bytes

## 1. 要求

Android幅の長い`作る`画面で、現在いる棚を表示しながら前後の棚へ移動でき、さらにページ最上部へ戻れる小さな追従UIを追加する。誤案内を再導入せず、選択・出力・保存に影響させない。

## 2. 監査した現行構造

- 実棚の正本は`#sections`直下の`.section`。
- 各棚名は直下の`details > summary`または見出しから取得できる。
- `作る／選択中／出力`の表示状態は`body[data-shima-mobile-view]`で同期される。
- Android固定footerの実高は`--builder-footer-height`へ同期される。
- 既存の`revealSection()`は、指定した実棚の親detailsを開き、棚先頭へスクロールする。

このため、新しい用途表や棚対応表を持たず、上記の実構造だけを使用した。

## 3. 現在棚の判定

- `#sections > .section`からhidden、`aria-hidden=true`、描画矩形なし、見出しなしを除外する。
- 残った棚はsortせずDOM順のまま扱う。
- 画面上端から16%、ただし68〜112pxに収めた基準線を横切る棚を現在棚とする。
- 棚間の余白では基準線より上の直近棚を選び、上に棚がなければ下の最初の棚を選ぶ。
- 表示名は既存の`sectionName()`を使用し、画面表示と同じ実棚名にする。

## 4. 操作契約

- `前`／`次`は現在棚のindexへ-1／+1した実棚だけを対象にする。
- 先頭と末尾を越えず、到達不能側のボタンをdisabledにする。
- 移動は`revealSection()`だけを使い、checkboxのclick、checked代入、change発火を行わない。
- `TOP`は`window.scrollTo({top: 0})`だけを行い、棚のopen状態も変えない。
- reduced motion設定ではTOPを即時移動にする。

## 5. 表示・層・性能

- 追従棚ナビは700px以下の`作る`画面だけに表示する。
- 選択中、出力、Reforge検索・メニューのdialog表示中は非表示にする。
- 既存固定footerの直上6pxへ配置し、本文末尾へ68px相当の余白を追加する。
- ボタン最小高42px、横書き、4列一段、touch-actionを固定する。
- scroll、resize、orientationchange、棚開閉、表示切替を追従契機にする。
- 高頻度更新は`requestAnimationFrame`で集約し、棚名を書き換えても`#sections`監視を再発火させない。
- 起動契約と低頻度heartbeatは4要素欠損時だけ再生成する。

## 6. 互換性

- 新規prompt：0。
- 削除prompt：0。
- promptデータファイル変更：0。
- input ID／stable ID変更：0。
- checked／出力／保存形式変更：0。
- Positive／Negative routing変更：0。
- R-18境界変更：0。
- 季節背景400件、四季定点48件：維持。
- v6.9.2の4列切替修正：維持。

## 7. 自動テスト

- 追従棚ナビ専用：6 / 6。
- SLIM関連：39 / 39。
- 起動・性能を含む重点：50 / 50。
- 全回帰：525 / 525。
- JavaScript構文：合格。
- manifest JSON：合格。
- 実DOM順、基準線判定、端のdisabled、非選択移動、TOP、表示範囲、rAF集約、footer回避：合格。

## 8. 実ブラウザ保留

この実行環境ではローカル配布物をAndroid実ブラウザへ開く経路がないため未実施。許可された端末では390〜412pxで、縦スクロール時の棚名追従、前後移動、TOP、`作る／選択中／出力`の往復、横溢れ0を最終確認する。

判定：自動回帰合格。推測案内を増やさず、現行DOMを正本にした最小4要素ナビとして実装した。
