⚡ PSHP STATUS LOG

⚠️ 次セッション開始時の最重要確認事項

このSTATUS LOGを最初に読み込んでから会話を始めること。

アーキテクチャ刷新方針(確定)

新規index.html(超軽量ゲートウェイ・11.6KB)
  ├── Route Attack(ルート設定+ソナーナビ)
  ├── Area Scout(POI管理+Places API検索)
  ├── STATUS LOG(このファイル)
  └── PSHP_dashboard.html(車両管理・旧index.html)

設計原則:
  - index.htmlの役割はゲートウェイのみ
  - 各モジュールは独立・ブックマーク直接起動可能
  - indexに機能を持たせない(肥大化防止)

AreaScout設計原則(確定)

「登録を意識させない」
気になる場所 → ワンアクションでpin → 即ナビ継続 or 即編集

ソナー演出の結晶(お互いのアイデア)

トリガー演出
スイープ線がPOIに触れる点が浮かび上がる(基本PING)
時間経過徐々に減衰・消える
自車がPOIに近づく点が大きくPOP・点滅
POIをタップ波紋が広がる→白線がスルスルと伸びる
次のCPに設定点が色変化してロック表示

レスポンシブUI設計(未実装)

横持ちスマホ(バイクマウント・最優先)
  ├── 円を画面高さいっぱいに拡大
  └── 左右余白を情報・操作エリアに活用
10インチタブレット → 円を最大化・周囲に情報配置

絶対遵守の哲学(防風壁)

- 右肩靭帯保護が最優先:低負荷運用・疲労排除
- 連泊・空荷アタック
- 拠点条件:サウナ・モール温泉必須・駐輪は屋内またはエントランス横
- Brembo換装は永久に禁止(確定済み)
- 実装前に内容確定・ユーザー確認:急いでコードを書かない

📅 最終更新:2026-05-12 残り60日(出発:7月11日)

Route Attack(5,045行)

機能状態
IndexedDB・OSRM白線・動的レンジ完了
ヘディングアップ(方位追従)完了
PWA(Service Worker)完了
4象限タップズーム(右上拡大・左上縮小・左下復帰・右下目盛り)完了
白線崩壊修正(範囲外ポイントで線を切断)完了
スカウトスタート(ルートなし即出発)完了
GPS取得後に出発点を現在地に自動補正完了
getMergedPOI()にArea Scout localStorageを統合(暫定)完了
drawSnake逸脱フラグ(_wasOff・連射防止)未実装
距離目盛りラベルの回転(まだ回転している)未修正
POI DB共通化(IndexedDB統一)未実装
ソナー演出(スイープ→PING)未実装
レスポンシブUI(横持ち対応)未実装

Area Scout(拡張版)

機能状態
GPS近い順・カテゴリフィルター完了
Places API検索(日本語)完了
Place Details API(詳細取得ボタン)完了
出力形式選択(poi_master.js / JSON / CSV)完了
インポート機能(JSON / CSV両対応)完了
全POIエクスポート(3形式)完了
POI DB共通化(IndexedDB統一)未実装

Cloudflare Worker(更新版)

エンドポイント状態
POST /places/search(Text Search)稼働中
POST /places/details(Place Details)要デプロイ
GET /api/route(GraphHopper + OSRM両対応)要デプロイ

修正済みバグ(2026-05-12)

🚨 触るな(確定済み・変更禁止)

onGPS関数:最適化済み・updateNextCpRoute()はCP変更時のみ呼ばれる
fetchRoute:キャッシュ実装済み・変更禁止
isApiLocked():既存の日次制限ガード・変更禁止
drawSnake._lastIdx:局所探索実装済み・変更禁止

Google Places API

プロジェクト:pshp-495711
API:Places API (New) ✅ 有効
料金:月$200無料クレジット(実質無料)
1回 = $0.032・最大20件取得

Cloudflare Workers

URL:https://pshp-api.naturerider-gsx1300r.workers.dev
POST /places/search  ← Places API(languageCode: ja)
GET  /routing        ← GraphHopper(carプロファイル)
Secrets:GOOGLE_PLACES_API_KEY ✅ / GRAPHHOPPER_API_KEY ✅

POI検索キーワード例

セイコーマート 北海道 / 道の駅 北海道
温泉 苫小牧 / 温泉 帯広 / 温泉 弟子屈
ガソリンスタンド 千歳 / ガソリンスタンド 帯広

ファイル構成

PSHP/
  ├── index.html              ← 軽量ゲートウェイ(11.6KB)
  ├── PSHP_dashboard.html     ← 車両管理(旧index.html)
  ├── PSHP_RouteAttack.html   ← ナビ本体(4,787行)
  ├── PSHP_AreaScout.html     ← POI管理・Places API
  ├── pshp-status.html        ← このファイル
  ├── poi_master.js           ← マスターPOIデータ
  └── route-attack-worker.js  ← PWA Service Worker

デバイス

Motorola Edge 40  ← Route Attack専用・RAM車載マウント
Xiaomi 15         ← メイン通信端末

🔴 最優先(次回セッション冒頭で着手)

🟡 実走行確認待ち

🟢 要実装

🏆 本命本丸(基盤安定後に着手)

次回Claudeへの引き継ぎ文(コピーして使う)

PSHPプロジェクト(隼25周年・北海道ツーリング)の続きです。
pshp-status.htmlを確認しました。

【前回完了】
・4象限タップズーム(右上拡大・左上縮小・左下復帰・右下目盛り)
・白線崩壊修正(範囲外で線を切断)
・スカウトスタート(ルートなし即出発)
・Area Scout拡張(詳細取得・3形式エクスポート・インポート)
・getMergedPOI()にArea Scout localStorageを暫定統合

【今回やりたい】
[ここに書く]

【触るな】
・onGPS関数:最適化済み
・fetchRoute:キャッシュ実装済み
・drawSnake._lastIdx:局所探索実装済み

防風壁:右肩保護・低負荷運用・連泊空荷アタック
Brembo換装は永久禁止(確定済み)

📝 自由メモ(自動保存)

アイデア・気づき・決定事項を自由に。3秒後に自動保存されます。