# 課題地図を9秒で去る人に1つ読ませたい ― 最初の画面を写真つきの3課題に

- 記録: LOG507（ひとり研究所の裏側）
- 公開: 2026/11/14
- 記事のページ: https://pixelstomotors.com/record/issues-map-first-screen-top-three
- サイト: Pixels to Motors（ADAPT DESIGN / 島津 栄一） https://pixelstomotors.com/
- 要約: pixelstomotors.com の課題地図は、人が21回開いても表示時間の中央値が9秒で、課題のページへ進んだのは1回ほどだった。最初の画面を、緊急度と深刻度が最も高い3課題の写真つきカードとボタン1つに変えた。

> AI が読むための記事の全文です（コード・実行ログを含む）。引用するときは上の「記事のページ」の住所を使ってください。

---

**pixelstomotors.com の課題地図（/issues）は、2026年10月26日から11月14日までに人が21回開いたが、表示時間の真ん中の値は9秒で、25%より下まで進んだのは1回、課題地図の中のリンクを押したのも1回だった。** そこで最初の画面を、42件の課題のうち緊急度と深刻度が最も高い3件を写真つきのカードで並べ、ボタンを「42件すべてを見る」の1つにする形に変えた。

この直しで、次のことが変わりました。

- 開いた人が、最初の画面で「まず何を読めばいいか」を3つの課題として受け取れるようになった。前は、見出しと長い説明文と数字5つのあとに、ボタンが2つ並んでいた
- 同じ42件の課題の名前が、分類の箱と一覧で2回並ぶことがなくなった。目立たせる印（42件中26件に付いていた）もなくなった
- サイトのトップにあった課題地図のバナーは「36件」のまま古くなっていた。課題のデータから件数を数える形に作り直し、トップの下のほうから上から5分の1ほどの位置へ上げた
- かかった時間は、改修案を出してから課題地図の公開まで約40分（08:41〜09:20ごろ）、トップのバナーが約5分（09:31〜09:35）。エイイチが手を動かしたのは、方向を選ぶ・写真を選ぶ・Studio.Stock にログインする・写真の切り抜き方を指示する、の4つ。効いたかどうかは、課題地図から課題ごとのページへ進んだ回数で、この先の人の表示が30回を超えてから確かめる（下の作業ログの「効いたかの見方」）

課題地図は、フィジカルAI（現実の物を動かす AI）とロボットが社会で使われる前に解いておかないといけない課題を、技術・制度・体験の3つの視点で42件に整理したページです。週に1回、各課題に関わる新しい動きを出典つきで足しています。このサイトの中では、研究の記録と並ぶもう1つの柱のつもりで作ってきました。

ところが、週の分析でサイトの計測（ページごとに、人がどこまで下に進んだか・何秒いたか・どこを押したかを数える自前の仕組み）を見ると、課題地図は「開いて、9秒ほど見て、離れる」使われ方をしていました。TOP（40回）に次いで、GPU を買うか借りるかのページと並んで2番目に多く開かれているのに、中身はほとんど読まれていません。

| やったこと | なぜ | 結果 |
|---|---|---|
| 週の3つの数字とページごとの読まれ方を見た | 週の分析 | 課題地図は21回開かれ、25%より下まで進んだのは1回 |
| 課題地図から次にどこへ移ったかを見た | 中を回っているかを確かめるため | 21回のうち、次の行き先の記録があるのは4回。課題ごとのページの表示は合わせて4回ほど |
| 改修の方向を3つ出した | 何を主役にするかを先に決めるため | エイイチが「まず読む3つ」を選んだ |
| カードの印を、番号 → アイコン → 写真と替えた | アイコンだけでは物足りないとエイイチが判断したため | Studio.Stock の AI で作られた写真3枚に決めた |
| 課題地図を直して公開した | 最初の画面で1つ開かせるため | 3課題のカード・ボタン1つ・分類の箱から名前の一覧を外した |
| トップの課題地図のバナーを作り直した | 「36件」のまま古くなっていたため | 件数を自動で数え、位置を上げた |

[図解: LOG507_issues_first_screen.html](https://pixelstomotors.com/embeds/LOG507_issues_first_screen.html)


## 作業ログ ― 週の分析から課題地図とトップのバナーの公開まで

ここから下は、作業の順に、取った数字・決めたこと・コードを全部残す。効果の数字は、測った値と見込みを分けて書く。直した後の数字はまだ取れていないので、「見込める効果」は見込み。


### 11/9の週の3つの数字：AI の依頼読みは40、人の表示は68（6日分）

このサイトで主に見る3つの数字は、AI の利用者の依頼で読みに来た数（ChatGPT・Claude・Perplexity などが、だれかに頼まれてページを取りに来た回数）、AI のサービスのリンクから来た人の数、サイト名で検索して来た人の数。11月14日の朝に、計測をつないだ道具（MCP の kpi・site_usage・crawler_visits）で取った。下の表は記事を書くときに取り直した数（09:38）で、11/9 の週の AI の依頼読みは、朝の39から40に1つ増えている。

| 週（月曜はじまり） | AI の依頼読み | AI のリンクから来た人 | サイト名の検索 | 人の表示 |
|---|---|---|---|---|
| 10/26〜11/1 | 55 | 0 | 0 | 164 |
| 11/2〜11/8 | 61 | 3 | 0（途中の数） | 136 |
| 11/9〜11/14（6日） | 40 | 1 | まだ記録していない | 68 |

この週に、AI の依頼読みの中に初めて Perplexity-User（Perplexity の利用者の依頼で読む仕組みの名乗り）が5件出た。1件ずつの時刻を出すと、11月13日 05:03 の1秒の間に `/settings`・`/manage/env`・`/__debug__/` など、設定や秘密の値の置き場所を探す住所を取りに来ていた。同じ時刻帯に、GPTBot・ClaudeBot・Googlebot など20種ほどの名乗りを順に使って、`/.aws/credentials`・`/gcp-key.json`・`/.git/config` のような住所を探す記録が並んでいた。**AI の名乗りを借りて、秘密のファイルを探して回る機械だった。** どれもサイトにはない住所で、すべて404（ページがない）を返している。この5件を除くと、この週の AI の依頼読みは35になる。ChatGPT-User を名乗った同じ種類の4件は、Cloudflare が本物ではないと判定していて、もともと数に入っていなかった。

もう1つ見つかったのは、ページの中で組み立てる前のプログラムの書きかけ（`{s.img.startsWith('/')`）を、GPTBot と ClaudeBot がリンクの行き先と読んで取りに来ていた記録。これはサイトに実在しない住所の404で、前に「コードの中の文字列を住所と読んだ404は直さない」と決めた種類のもの（LOG411）。

人の表示が11/11 から急に減っている件は、LOG494 で調べて、原因はまだ決められないとしたまま。Search Console（Google の検索での表示回数を見る道具）の数が出そろうのを待っている。


### ページごとの読まれ方：TOP と並んで、課題地図と GPU のページが多く開かれていた

人の表示だけを、ページごとに数えた（10/26〜11/14）。

| ページ | 人の表示 | 表示時間（真ん中の値） | 25%まで | 50%まで | 75%まで | 下まで |
|---|---|---|---|---|---|---|
| TOP（/） | 40 | 15秒 | 70% | 48% | 28% | 18% |
| GPU は買うか借りるか（/gpu-buy-or-rent） | 21 | 11秒 | 52% | 52% | 10% | 0% |
| 課題地図（/issues） | 21 | 9秒 | 5% | 0% | 0% | 0% |
| 4コマの一覧（/manga-archive） | 14 | 9秒 | 21% | 7% | 7% | 0% |
| 導入シミュレーションのシリーズ（/series8） | 12 | 15秒 | 17% | 17% | 17% | 8% |
| DAY18（Figma のバリアブルとスタイル） | 11 | 53秒 | 91% | 64% | 27% | 9% |
| メッセージ（/message） | 11 | 10秒 | 100% | 100% | 91% | 9% |
| DAY17（4コママンガの SNS 投稿術） | 7 | 30秒 | 86% | 86% | 43% | 0% |
| DAY12（ハコブくんの管理画面の UI デザイン） | 6 | 39秒 | 100% | 67% | 50% | 33% |

最後まで読まれているのは、初期の DAY の記事（12・17・18）だった。3本とも「薬剤搬送ロボット」のシリーズの中で書いた、Figma の色の管理や管理画面のデザインの解説で、ロボットの研究そのものより、29年のデザイナー経験から書いた内容になる。ページごとにどこから来たかは今回は取っていないので、検索から来ているかは確かめていない。

GPU のページは、10/28 の改善（改善 No.01）で最初の画面に結論を出した。そのとき「結論を読んで前半で離れるのは失敗ではない」と決めているので、75%まで進むのが1割という形は狙いどおりになる。見るべきなのは計算機（#calc）が押されるかで、こちらはまだ0回。

課題地図は、表示は GPU のページと同じ21回なのに、25%より下まで進んだのが1回だけだった。


### 課題地図から次にどこへ移ったか：21回のうち、課題地図の中を回ったのは1回

計測は、ページからページへの移り方も記録している。課題地図にかかわる移り方を抜き出した。

| 移り方 | 回数 |
|---|---|
| 課題地図 → 4コマの一覧（/manga-archive） | 2 |
| 課題地図 → 課題地図の更新履歴（/issues/updates） | 1 |
| 更新履歴 → 4コマの一覧 | 1 |
| 記事（配膳ロボットの隠れた待ち）→ 課題地図 | 1 |
| TOP → 課題地図 | 1 |
| 記事（DAY126）→ 課題地図 | 1 |
| 課題「動作のポータビリティ」→ ロボティクスの単語帳の記事 | 1 |

課題地図を開いた21回のうち、次の行き先の記録があるのは4回で、残りの17回はそのページで閉じたか、前のページに戻ったと考えられる。課題ごとのページの表示は、責任の分け方（/issues/liability-demarcation）が2回、シミュレーションと実機の差（/issues/sim2real-gap）が1回、動きの持ち運び（/issues/motion-portability）が1回だった。課題地図への入り口は、ヘッダーのメニューの「課題地図」が5回押されていた。メニューを順に見て回る人が、中身を読まずに次へ移っている形に見える。

エイイチは、ここまでで十分と判断した。

> いやもう十分でしょ。改修案を考えてください。

Claude は直前に、どのページも人の表示が30回に届いていないので、直しても効いたかは判断できない見込みだと伝えていた（Web の改善の決まりで、対象の数が30未満なら「判断できない」とする）。11/5 には「次に直すのは TOP。11/16 の分析で決める」とも決めていた。エイイチはそれを踏まえて、課題地図を先に直すことにした。


### 課題地図の中身を確かめた：同じ42件が2回並び、印は42件中26件に付いていた

課題地図のトップ（p2m-site の `src/pages/issues.astro`）の並びは次のとおりだった。

1. 最初の画面：見出し、長い説明文（「個別のデモ動画や製品発表ではなく、放置すればフィジカルAIの社会実装そのものが頓挫する——」）、数字5つ（42課題・9分類・9規制・50出典・17件の最近の動き）、ボタン2つ（課題一覧を見る・関連でたどる課題マップ）
2. 最近の動き（6件）
3. 9つの分類：分類ごとの箱の中に、その分類の課題の名前を全部並べている（合わせて42件）
4. 社会実装で論点となる規制・制度
5. すべての課題：42件のカード（2回目）
6. この課題地図について

![直す前の課題地図の最初の画面。見出しと長い説明文、数字5つ、ボタン2つが並ぶ](https://pixelstomotors.com/media/LOG507_01_issues_before_pc.png)

![直す前の「9つの分類」。分類ごとの箱の中に課題の名前が全部並び、緊急度と深刻度がどちらも4以上の課題は濃い字になっている](https://pixelstomotors.com/media/LOG507_02_issues_before_categories.png)

「9つの分類」の箱の中では、緊急度と深刻度がどちらも4以上の課題を濃い字にしていた。数えると、42件のうち26件がこれにあたる。半分以上に付いた印は、どれが大事かを伝えられない。


### 改修の方向を3つ出した：エイイチは「まず読む3つ」を選んだ

案は、並べ方の違いではなく、何をページの主役にするかの違いで出す（デザインの進め方の決まり）。

| 方向 | 主役 | よい所 | 弱い所 |
|---|---|---|---|
| A：「まず読む3つ」 | 緊急度と深刻度が最も高い3課題 | 9秒で離れる人に、1つでも課題を開かせる | 3つ以外の課題は、下まで進まないと見えない |
| B：「今週の動き」 | 今週わかった動き3件（出典つき） | 週1回の更新が見え、また来る理由になる | 動きが少ない週は、最初の画面が弱くなる |
| C：「地図」 | 課題どうしのつながりの図（今の /issues/map） | 名前のとおりで、見た目の印象が強い | スマホでは図が小さく押しにくい。作り直す量がいちばん多い |

どの方向でも、最初の画面のボタンは1つにする（2つあると迷う）。エイイチは A を選んだ。

緊急度と深刻度がどちらも満点（5と5）の課題は5件ある。並べ方の決まり（深刻度 → 緊急度 → 番号の順）で上から3件を取ると、介護現場へのロボット導入の壁（1番）、実機データの圧倒的不足（5番）、動作のポータビリティ不在（17番）になった。残りの2件は、人とロボットの共存安全基準（21番）と、物理を持つAIのセキュリティ（28番）。上の3件はどれも、このサイトでやっている研究（病院や店のロボットの試算、実機での学習、Motion UX）に近い。


### 最初の画面だけを先に作った：説明文を1文にし、3課題のカードとボタン1つ

デザインの進め方の決まりどおり、最初の画面1枚だけを先に仕上げて見せた。説明文を「放っておくと、ロボットが現場に入る前に止まってしまう課題を42件に整理しました。まず読むなら、この3つです。」の1文にした。数字5つは、ボタンの下の小さい1行（9分類・50出典・最近の動きを最後に調べた日）にまとめた。課題マップへのボタンは外し、42件の一覧の説明文の中の文字リンクに移した。上のタブからも行ける。

最初の案では、カードの頭に「01・02・03」の番号を置いた。エイイチから、番号より写真かアイコンのほうがよいのでは、と言われ、サイトで使っているアイコン（Material Symbols）に替えた。介護は歩く高齢者の人、実機データはデータベース、動きの持ち運びは左右の矢印。アイコンにした画面を見たエイイチの判断は「アイコンだけでは物足りない」だった。

写真が3枚そろうまではアイコンのままにし、そろったら写真に替わる作りにした。1枚だけ写真になると、そろって見えないため。


### 写真を Studio.Stock で探した：ロボットの写真はなく、人と現場の写真から選んだ

エイイチから、無料の写真の置き場所として [Studio.Stock](https://stock.studio.design/) を教えてもらった。Studio.Stock は、Web 制作の道具 Studio が出している写真の置き場所で、写真はすべて AI で作られたもの。Studio のヘルプでは、商用利用ができ、クレジットの表記もいらないとされている（[Studio.Stock のヘルプ](https://help.studio.design/en/articles/12761189-studio-stock)）。ダウンロードには Studio のアカウントでのログインがいる。

ページは開いてから中身を組み立てる作りで、外から取るだけでは検索の結果が読めなかった。そこでデスクトップアプリの中のブラウザで開き、英語の言葉で検索した結果から、写真の名前と番号を抜き出した。

| 検索の言葉 | 出てきたもの |
|---|---|
| robot arm | 腕を鍛える人、肩の骨の模型、生姜 など（ロボットはなし） |
| robot | モーションキャプチャーの服の人、工場の作業者、金属部品を見る技術者 など |
| elderly care | 介護職員と高齢者の写真 8枚 |
| motion capture | ダンスの動き・光の線 など |
| factory machine | 工場の作業者・金属部品を測る人 など |
| technology lab | 研究者が動きのデータを見ている写真 など |
| caregiver hospital | 介護職員が高齢者を手伝う写真 6枚 |

**ロボットが写った写真は1枚もなかった。** 課題に近い人と現場の写真を11枚選び、並べてエイイチに見せた。

![Studio.Stock で選んだ候補11枚。介護A〜D、データA〜C、動作A〜D](https://pixelstomotors.com/media/LOG507_06_studio_stock_candidates.jpg)

Claude は介護B（車いすを押す介護職員の後ろ姿）とデータB（研究者2人が人の動きの骨組みを画面で見ている）を勧め、3枚目は合う写真がないので、Studio.Stock のプロンプト編集（文字の指示で写真を直す機能）か ChatGPT で作ることを勧めた。エイイチが選んだのは、介護A（笑顔の介護職員）・データB・動作D（工場の技術者）だった。カードに入れた画面を見て、3枚目を動作A（工場の通路を書類を持って歩く作業者）に替え、さらに顔は見せなくてよいと指示があったので、胸から下で切り抜いた。

写真は、Mac の上で Studio.Stock の置き場所から元の大きさのまま取り、iCloud の `PixelstoMotors/issues_images/top3_original/` に置いた。そこからカード用に 16:10・1200×750 の jpg に切り抜いた（顔の位置に合わせて、縦長の写真は上下の切り抜く位置を変えた）。公開用は Cloudflare R2（このサイトの画像と動画の置き場所）に `issues-top3-*.jpg` の名前で入れた。置き場所は MASTER の保存先の表に1行足した。

- ねらい：9秒で離れる人に、最初の画面で課題を1つ開かせる
- 変わったこと：最初の画面が「見出し・長い説明文・数字5つ・ボタン2つ」から「見出し・1文・写真つきの3課題・ボタン1つ」になった
- 見込める効果：課題地図から課題ごとのページへ進む回数が増える（直す前は21回のうち1回ほど）。見込みで、まだ測っていない


### スマホでは写真を左の正方形にした：1枚目のカードで画面が埋まったため

写真をカードの上に横長で入れると、スマホでは1枚目のカードだけで画面が埋まり、2枚目以降が見えなくなった。スマホのときだけ、写真を左の96px の正方形にし、課題の名前と要約を右に並べる形にした。これで最初の画面で2枚目のカードの頭まで見える。

![直した後の課題地図の最初の画面（PC）。写真つきの3課題のカードと、ボタン「42件すべてを見る」](https://pixelstomotors.com/media/LOG507_03_issues_after_pc.png)

![直した後の課題地図の最初の画面（スマホ）。写真を左の正方形にし、2枚目のカードの頭まで見える](https://pixelstomotors.com/media/LOG507_04_issues_after_sp.png)

公開したあと、エイイチから説明文の改行の指示があった。「…課題を42件に整理しました。」と「まず読むなら、この3つです。」の間で改行し、PC で「3つです。」だけが次の行に落ちないようにした。


### 分類の箱から課題の名前の一覧を外した：42件が2回並ばないように

「9つの分類」の箱には、分類の名前・件数・説明だけを残した。課題の名前は、下の「すべての課題」のカードで1回だけ見える。箱の中の濃い字（目立たせる印）も、一覧と一緒になくなった。

![直した後の「9つの分類」。箱には分類の名前・件数・説明だけが残る](https://pixelstomotors.com/media/LOG507_05_issues_after_categories.png)


### トップの課題地図のバナーを作り直した：「36件」のまま古くなっていた

課題地図を公開したあと、エイイチから「TOPのバナーが古いので新しくしてください」と指示があった。トップの「記録」の一覧の下に置いていたバナー（`public/embeds/top-banner.html` を iframe で読むもの）は、課題が36件だったころの「PHYSICAL AI — 36 ISSUES TO SOLVE」と、36個の丸の図のままだった。字も、サイトの今の字（Inter と Noto Sans JP）ではなく、前の IBM Plex Mono だった。

![直す前のトップの課題地図のバナー。36件のころの英字と丸の図のまま](https://pixelstomotors.com/media/LOG507_07_top_banner_before.png)

この部品は、公開済みの記事（LOG343・LOG344）がコードの中に載せているので、消さずに残した。代わりに、トップのページの中に直接組む部品（`src/components/IssuesBanner.astro`）を新しく作った。件数は課題のデータから数えるので、課題が増えても「42件・9分類」が自動で合う。右には課題地図と同じ写真3枚を、課題の名前つきで並べた。形は、すぐ上の「1年の記録」のバナーにそろえた（白いカード・左に文字・右に写真・ボタン1つ）。

作り直している途中で、エイイチから、バナーのページの中での位置ももっと上に、と指示があった。トップは、25%の深さまで進むのが7割、半分までが5割しか読まれていない（上の表）。「記録」の一覧の下（ページの上から約8割の所）から、「Pixels to Motors の1年」のすぐ下（上から約5分の1の所）へ上げ、「課題地図 | Issues」の見出しを付けた。見出しと同じ「課題地図」の小さなラベルは、カードの中から外した。

![直した後のトップの課題地図のバナー。写真3枚と、課題のデータから数えた「42件・9分類」](https://pixelstomotors.com/media/LOG507_08_top_banner_after.png)

- ねらい：トップから課題地図へ来る人を増やす
- 変わったこと：バナーの位置がトップの上から約8割 → 約5分の1になり、件数が36件 → 42件（自動）になった
- 見込める効果：トップから課題地図への移り方（今は TOP → 課題地図が1回）が増える。見込みで、まだ測っていない。バナーには `data-ev="TOP:課題地図"` を付けたので、押された数は計測の「押したもの」に出る


### 効いたかの見方：課題地図から課題ごとのページへ進んだ回数

直す前の課題地図は、人の表示21回のうち、課題地図の中のリンクを押したのが1回、課題ごとのページの表示が合わせて4回ほどだった。直した後は、次の2つを見る。

| 見るもの | 直す前（10/26〜11/14） | 取れる場所 |
|---|---|---|
| 課題地図 → 課題ごとのページへの移り方 | ほぼ0（課題地図 → 更新履歴の1回だけ） | 計測の移り方（site_usage の moves） |
| 「まず読む3つ」のカードが押された回数 | なし（カードがなかった） | 計測の押したもの |
| トップのバナーが押された回数 | 記録なし（iframe の中だったため数えていない） | 計測の押したもの（TOP:課題地図） |

課題地図の人の表示は、この3週間で21回。30回に届くまでは「判断できない」とする。11/16 の週の分析で途中の数を見て、Web の改善の記録（web_improvement_trial.md）に改善 No.04 として書く。


## 作業ログ ― コード・データ・手順

ここから下は、公開したコードの変更と、分析に使った数字の元データを全部載せる。数字の元データは、記事を書くときに取り直したもの（2026-11-14 09:38 JST に、Mac から計測の表を鍵つきで取った）。来た所（referrers）のうち、住んでいる場所が分かる自治体のサイトの名前は `<自治体のサイト>` に置き換えた。

### 課題地図のトップの変更（commit cf784da・src/pages/issues.astro）

最初の画面を「まず読む3つ」とボタン1つにし、分類の箱から課題名の一覧を外した変更。写真がそろうまではアイコンで出す作りも入っている。

```diff
commit cf784daf271e9ddb269ba57d042df6d602d55951
Author: Claude <noreply@anthropic.com>
Date:   Sat Nov 14 09:19:30 2026 +0900

    課題地図のトップ：最初の画面を「まず読む3つ」（写真つき）とボタン1つに。分類の箱から課題名の一覧を外した
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LevEXS2w3GWf5pnT1ChrKx

diff --git a/src/pages/issues.astro b/src/pages/issues.astro
index 917dc69..f291d9e 100644
--- a/src/pages/issues.astro
+++ b/src/pages/issues.astro
@@ -3,11 +3,25 @@
 import IssuesLayout from '../layouts/IssuesLayout.astro';
 import IssueCard from '../components/issues/IssueCard.astro';
 import NewsList from '../components/issues/NewsList.astro';
-import { allIssues, bySeverity, CATEGORIES, REGULATIONS, SOURCES, NEWS, LAST_CHECKED, ISSUES_TITLE, jdate } from '../lib/issues';
+import { allIssues, CATEGORIES, REGULATIONS, SOURCES, NEWS, LAST_CHECKED, ISSUES_TITLE, jdate } from '../lib/issues';
 import { SITE, PUBLISHER } from '../lib/seo';
 
 const issues = await allIssues();
 const title = Object.fromEntries(issues.map((i) => [i.data.slug, i.data.title]));
+const top3 = issues.slice(0, 3);
+// 「まず読む3つ」のアイコン（Material Symbols）。課題を入れ替えたらここも直す
+const ICON: Record<string, string> = {
+  'caregiving-robot-adoption': 'elderly',
+  'real-robot-data-scarcity': 'database',
+  'motion-portability': 'sync_alt',
+};
+// 「まず読む3つ」の写真（R2 の住所）。3枚そろったら3つとも入れる。1つでも空ならアイコンで出す
+const PHOTO: Record<string, string> = {
+  'caregiving-robot-adoption': '/media/issues-top3-caregiving.jpg',
+  'real-robot-data-scarcity': '/media/issues-top3-data.jpg',
+  'motion-portability': '/media/issues-top3-motion.jpg',
+};
+const usePhoto = top3.every((i) => PHOTO[i.data.slug]);
 const nSources = SOURCES.reduce((n, g) => n + g.items.length, 0);
 const description = '放置すればフィジカルAI・ロボティクスの社会実装そのものが頓挫する構造的な課題を、技術・制度・体験の3つの視点を横断して抽出・整理した課題地図。週1回、最近の動きを出典つきで更新しています。';
 const jsonLd = {
@@ -20,19 +34,25 @@ const jsonLd = {
   <section class="ihero">
     <p class="ihero-k">課題地図</p>
     <h1 class="ihero-h">{ISSUES_TITLE}</h1>
-    <p class="ihero-lead">個別のデモ動画や製品発表ではなく、放置すればフィジカルAIの社会実装そのものが頓挫する——いま向き合うべき構造的な課題を、技術・制度・体験の3つの視点を横断して抽出・整理しました。</p>
-    <ul class="ihero-stats">
-      <li><b>{issues.length}</b>課題</li>
-      <li><b>{CATEGORIES.length}</b>分類</li>
-      <li><b>{REGULATIONS.length}</b>規制・制度</li>
-      <li><b>{nSources}</b>出典</li>
-      <li><b>{NEWS.length}</b>件の最近の動き</li>
-    </ul>
+    <p class="ihero-lead">放っておくと、ロボットが現場に入る前に止まってしまう課題を{issues.length}件に整理しました。まず読むなら、この3つです。</p>
+    <ol class="top3">
+      {top3.map((i) => (
+        <li>
+          <a class="t3" href={`/issues/${i.data.slug}`}>
+            {usePhoto
+              ? <span class="t3-ph"><img src={PHOTO[i.data.slug]} alt="" loading="eager" width="1200" height="750" /></span>
+              : <span class="t3-ic"><i class="ms">{ICON[i.data.slug] ?? 'help'}</i></span>}
+            <span class="t3-title">{i.data.title}</span>
+            <span class="t3-sum">{i.data.summary}</span>
+            <span class="t3-meta">緊急度 {i.data.urgency}・深刻度 {i.data.severity}<i class="ms">arrow_forward</i></span>
+          </a>
+        </li>
+      ))}
+    </ol>
     <div class="ihero-cta">
-      <a class="ibtn" href="#all">課題一覧を見る<i class="ms">arrow_downward</i></a>
-      <a class="ibtn ibtn-line" href="/issues/map">関連でたどる課題マップ<i class="ms">arrow_forward</i></a>
+      <a class="ibtn" href="#all">{issues.length}件すべてを見る<i class="ms">arrow_downward</i></a>
     </div>
-    <p class="ihero-upd">{LAST_CHECKED ? `最後に最近の動きを調べた日：${jdate(LAST_CHECKED)}（週1回）` : '最近の動きは週1回調べて更新します'}</p>
+    <p class="ihero-upd">{CATEGORIES.length}分類・{nSources}出典。{LAST_CHECKED ? `最近の動きを最後に調べた日：${jdate(LAST_CHECKED)}（週1回）` : '最近の動きは週1回調べて更新します'}</p>
   </section>
 
   <section class="ipanel" id="news">
@@ -48,12 +68,11 @@ const jsonLd = {
     <p class="idesc">社会実装を一つのシステムとして見て、課題を9つの分類に分けています。</p>
     <div class="igrid">
       {CATEGORIES.map((c) => {
-        const list = issues.filter((i) => i.data.category_slug === c.slug).sort(bySeverity);
+        const n = issues.filter((i) => i.data.category_slug === c.slug).length;
         return (
           <a class="cbox" href={`/issues/category/${c.slug}`}>
-            <h3>{c.name}<span>{list.length}件</span></h3>
+            <h3>{c.name}<span>{n}件</span></h3>
             <p>{c.desc}</p>
-            <ul>{list.map((i) => <li class={i.data.urgency >= 4 && i.data.severity >= 4 ? 'hot' : ''}><span>{i.data.title}</span><small>緊{i.data.urgency}・深{i.data.severity}</small></li>)}</ul>
           </a>
         );
       })}
@@ -77,7 +96,7 @@ const jsonLd = {
 
   <section class="ipanel" id="all">
     <h2 class="ih2">すべての課題（{issues.length}件）</h2>
-    <p class="idesc">深刻度・緊急度の高い順に並べています。カードの点数はどちらも5段階です。</p>
+    <p class="idesc">深刻度・緊急度の高い順に並べています。カードの点数はどちらも5段階です。課題どうしのつながりは<a class="ilink" href="/issues/map">課題マップ</a>でたどれます。</p>
     <div class="igrid">{issues.map((i) => <IssueCard issue={i} />)}</div>
   </section>
 
@@ -97,10 +116,23 @@ const jsonLd = {
   .ihero-k { margin: 0; font: 500 13px/20px var(--sans); color: var(--ink-3); }
   .ihero-h { margin: 8px 0 16px; font: 600 36px/1.4 var(--sans); max-width: 900px; }
   .ihero-lead { margin: 0; font: 400 17px/2 var(--sans); max-width: 820px; }
-  .ihero-stats { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 24px 0 0; padding: 0; font: 400 13px/20px var(--sans); color: var(--ink-2); }
-  .ihero-stats b { font: 500 24px/28px var(--sans); color: var(--ink); margin-right: 4px; }
   .ihero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
   .ihero-upd { margin: 16px 0 0; font: 400 12px/18px var(--sans); color: var(--ink-3); }
+  .top3 { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 32px 0 0; padding: 0; }
+  .t3 { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; background: #fff; border-radius: 8px;
+    box-shadow: 0 8px 16px rgba(0,0,0,.08); transition: box-shadow .15s; }
+  .t3:hover { box-shadow: 0 8px 24px rgba(0,0,0,.16); }
+  .t3:hover .t3-title { text-decoration: underline; }
+  .t3-ph { display: block; margin: -24px -24px 6px; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 8px 8px 0 0; background: #eee; }
+  .t3-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
+  .t3-ic { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 8px; background: var(--dark, #222); }
+  .t3-ic .ms { font-size: 28px; color: #fff; }
+  .t3-title { font: 600 20px/1.5 var(--sans); color: var(--ink); }
+  .t3-sum { font: 400 14px/1.8 var(--sans); color: var(--ink-2); }
+  .t3-meta { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 12px; border-top: 1px solid #eee;
+    font: 400 12px/20px var(--sans); color: var(--ink-3); }
+  .t3-meta .ms { font-size: 20px; color: var(--ink); }
+  .ilink { text-decoration: underline; color: var(--ink); }
   .more { margin: 24px 0 0; }
   .empty { margin: 0; padding: 20px; border-radius: 8px; background: #f5f5f5; font: 400 14px/1.8 var(--sans); color: var(--ink-3); }
 
@@ -108,11 +140,7 @@ const jsonLd = {
   .cbox:hover { border-color: var(--ink); }
   .cbox h3 { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 6px; font: 600 16px/1.5 var(--sans); }
   .cbox h3 span { font: 400 12px/24px var(--sans); color: var(--ink-3); white-space: nowrap; }
-  .cbox p { margin: 0 0 12px; font: 400 13px/1.7 var(--sans); color: var(--ink-2); }
-  .cbox ul { list-style: none; margin: auto 0 0; padding: 0; border-top: 1px solid #eee; }
-  .cbox li { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid #f2f2f2; font: 400 13px/1.6 var(--sans); color: var(--ink-2); }
-  .cbox li.hot span { color: var(--ink); font-weight: 500; }
-  .cbox li small { font-size: 11px; color: var(--ink-3); white-space: nowrap; }
+  .cbox p { margin: 0; font: 400 13px/1.7 var(--sans); color: var(--ink-2); }
 
   .regs { display: flex; flex-direction: column; gap: 16px; }
   .reg { padding: 20px; border: 1px solid #e3e3e3; border-radius: 8px; }
@@ -129,9 +157,23 @@ const jsonLd = {
   .about li { margin: 0 0 12px; font: 400 15px/1.9 var(--sans); color: var(--ink-2); }
   .about b { color: var(--ink); font-weight: 600; }
   .about a { text-decoration: underline; }
+  @media (max-width: 899px) and (min-width: 600px) {
+    .top3 { grid-template-columns: 1fr; }
+  }
   @media (max-width: 599px) {
     .ihero { padding-top: 32px; }
     .ihero-h { font-size: 26px; }
     .ihero-lead { font-size: 15px; }
+    .top3 { grid-template-columns: 1fr; }
+    .t3 { padding: 18px 20px; gap: 6px; }
+    .t3-ph + .t3-title { margin-top: 0; }
+    .t3:has(.t3-ph) { display: grid; grid-template-columns: 96px 1fr; column-gap: 14px; row-gap: 4px; padding: 14px; align-items: start; }
+    .t3:has(.t3-ph) .t3-ph { grid-row: 1 / span 3; margin: 0; width: 96px; aspect-ratio: 1; border-radius: 6px; }
+    .t3:has(.t3-ph) .t3-meta { grid-column: 2; padding-top: 8px; }
+    .t3-ic { width: 40px; height: 40px; }
+    .t3-ic .ms { font-size: 24px; }
+    .t3-title { font-size: 17px; }
+    .t3-sum { font-size: 13px; line-height: 1.7; }
+    .top3 { gap: 12px; margin-top: 24px; }
   }
 </style>
```


### 説明文の改行（commit 58f31c9）

```diff
commit 58f31c91dd61fe60adfc5e34ce03412566187ef2
Author: Claude <noreply@anthropic.com>
Date:   Sat Nov 14 09:24:31 2026 +0900

    課題地図のトップ：説明文を「整理しました。」で改行
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LevEXS2w3GWf5pnT1ChrKx

diff --git a/src/pages/issues.astro b/src/pages/issues.astro
index f291d9e..aa814a6 100644
--- a/src/pages/issues.astro
+++ b/src/pages/issues.astro
@@ -34,7 +34,7 @@ const jsonLd = {
   <section class="ihero">
     <p class="ihero-k">課題地図</p>
     <h1 class="ihero-h">{ISSUES_TITLE}</h1>
-    <p class="ihero-lead">放っておくと、ロボットが現場に入る前に止まってしまう課題を{issues.length}件に整理しました。まず読むなら、この3つです。</p>
+    <p class="ihero-lead">放っておくと、ロボットが現場に入る前に止まってしまう課題を{issues.length}件に整理しました。<br />まず読むなら、この3つです。</p>
     <ol class="top3">
       {top3.map((i) => (
         <li>
```


### 課題地図のトップの全文（公開後の src/pages/issues.astro）

```astro
---
// 課題地図のトップ（/issues）
import IssuesLayout from '../layouts/IssuesLayout.astro';
import IssueCard from '../components/issues/IssueCard.astro';
import NewsList from '../components/issues/NewsList.astro';
import { allIssues, CATEGORIES, REGULATIONS, SOURCES, NEWS, LAST_CHECKED, ISSUES_TITLE, jdate } from '../lib/issues';
import { SITE, PUBLISHER } from '../lib/seo';

const issues = await allIssues();
const title = Object.fromEntries(issues.map((i) => [i.data.slug, i.data.title]));
const top3 = issues.slice(0, 3);
// 「まず読む3つ」のアイコン（Material Symbols）。課題を入れ替えたらここも直す
const ICON: Record<string, string> = {
  'caregiving-robot-adoption': 'elderly',
  'real-robot-data-scarcity': 'database',
  'motion-portability': 'sync_alt',
};
// 「まず読む3つ」の写真（R2 の住所）。3枚そろったら3つとも入れる。1つでも空ならアイコンで出す
const PHOTO: Record<string, string> = {
  'caregiving-robot-adoption': '/media/issues-top3-caregiving.jpg',
  'real-robot-data-scarcity': '/media/issues-top3-data.jpg',
  'motion-portability': '/media/issues-top3-motion.jpg',
};
const usePhoto = top3.every((i) => PHOTO[i.data.slug]);
const nSources = SOURCES.reduce((n, g) => n + g.items.length, 0);
const description = '放置すればフィジカルAI・ロボティクスの社会実装そのものが頓挫する構造的な課題を、技術・制度・体験の3つの視点を横断して抽出・整理した課題地図。週1回、最近の動きを出典つきで更新しています。';
const jsonLd = {
  '@context': 'https://schema.org', '@type': 'CollectionPage', name: ISSUES_TITLE, description,
  url: SITE + '/issues', inLanguage: 'ja', publisher: PUBLISHER,
  hasPart: issues.map((i) => ({ '@type': 'Article', headline: i.data.title, url: `${SITE}/issues/${i.data.slug}` })),
};
---
<IssuesLayout title={`${ISSUES_TITLE} | Pixels to Motors`} description={description} path="/issues" current="top" jsonLd={jsonLd}>
  <section class="ihero">
    <p class="ihero-k">課題地図</p>
    <h1 class="ihero-h">{ISSUES_TITLE}</h1>
    <p class="ihero-lead">放っておくと、ロボットが現場に入る前に止まってしまう課題を{issues.length}件に整理しました。<br />まず読むなら、この3つです。</p>
    <ol class="top3">
      {top3.map((i) => (
        <li>
          <a class="t3" href={`/issues/${i.data.slug}`}>
            {usePhoto
              ? <span class="t3-ph"><img src={PHOTO[i.data.slug]} alt="" loading="eager" width="1200" height="750" /></span>
              : <span class="t3-ic"><i class="ms">{ICON[i.data.slug] ?? 'help'}</i></span>}
            <span class="t3-title">{i.data.title}</span>
            <span class="t3-sum">{i.data.summary}</span>
            <span class="t3-meta">緊急度 {i.data.urgency}・深刻度 {i.data.severity}<i class="ms">arrow_forward</i></span>
          </a>
        </li>
      ))}
    </ol>
    <div class="ihero-cta">
      <a class="ibtn" href="#all">{issues.length}件すべてを見る<i class="ms">arrow_downward</i></a>
    </div>
    <p class="ihero-upd">{CATEGORIES.length}分類・{nSources}出典。{LAST_CHECKED ? `最近の動きを最後に調べた日：${jdate(LAST_CHECKED)}（週1回）` : '最近の動きは週1回調べて更新します'}</p>
  </section>

  <section class="ipanel" id="news">
    <h2 class="ih2">最近の動き</h2>
    <p class="idesc">各課題に関わる規制・研究・事業の新しい動きを、週1回、出典つきで足しています。要約は出典の言い回しを使わずに書いています。</p>
    {NEWS.length > 0
      ? <><NewsList items={NEWS.slice(0, 6)} /><p class="more"><a class="ibtn ibtn-line" href="/issues/updates">すべての動きと更新履歴<i class="ms">arrow_forward</i></a></p></>
      : <p class="empty">最初の調査の結果を待っています。見つかった動きはここに載ります。</p>}
  </section>

  <section class="ipanel" id="categories">
    <h2 class="ih2">9つの分類</h2>
    <p class="idesc">社会実装を一つのシステムとして見て、課題を9つの分類に分けています。</p>
    <div class="igrid">
      {CATEGORIES.map((c) => {
        const n = issues.filter((i) => i.data.category_slug === c.slug).length;
        return (
          <a class="cbox" href={`/issues/category/${c.slug}`}>
            <h3>{c.name}<span>{n}件</span></h3>
            <p>{c.desc}</p>
          </a>
        );
      })}
    </div>
  </section>

  <section class="ipanel" id="regulations">
    <h2 class="ih2">社会実装で論点となる規制・制度</h2>
    <p class="idesc">構造課題の背景で、改正・整備の是非が議論されている主な規制・制度を、中立に整理した索引です。詳しい論点は関連する課題のページをご覧ください。</p>
    <div class="regs">
      {REGULATIONS.map((r) => (
        <div class="reg">
          <div class="reg-top"><h3>{r.name}</h3><span class="reg-st">{r.status}{r.needs_check && <em>要確認</em>}</span></div>
          <p>{r.desc}</p>
          <p class="reg-meta"><span>関連課題</span>{r.issues.map((s) => <a href={`/issues/${s}`}>{title[s] ?? s}</a>)}</p>
          <p class="reg-meta"><span>出典</span>{r.source}</p>
        </div>
      ))}
    </div>
  </section>

  <section class="ipanel" id="all">
    <h2 class="ih2">すべての課題（{issues.length}件）</h2>
    <p class="idesc">深刻度・緊急度の高い順に並べています。カードの点数はどちらも5段階です。課題どうしのつながりは<a class="ilink" href="/issues/map">課題マップ</a>でたどれます。</p>
    <div class="igrid">{issues.map((i) => <IssueCard issue={i} />)}</div>
  </section>

  <section class="ipanel" id="about">
    <h2 class="ih2">この課題地図について</h2>
    <ul class="about">
      <li><b>生成AIによる制作・評価版です。</b>本文・図・ページのもとになるデータは生成AIが作成し、人が点検しています。誤りや古い情報を含む可能性があります。</li>
      <li><b>特定のメーカー・エコシステムの立場はとりません。</b>「人とロボットが共存する社会の持続可能性と体験の質を、長期にわたって維持・向上できるか」を判断軸に課題を選び、緊急度と深刻度で優先度を示しています。賛否が分かれる論点は結論を断定せず、対立軸と出典を併記します。</li>
      <li><b>中立を志向しますが、完全な無偏りは保証できません。</b>事実・解釈・提案を分け、トレードオフや反対論も併記するよう努めています。</li>
      <li><b>週1回、自動で調べています。</b>最近の動き（出典つき）はそのまま追加し、点数・規制の状態・本文の書き換えは人が確認してから反映します。経緯は<a href="/issues/updates">更新履歴</a>に残しています。</li>
    </ul>
  </section>
</IssuesLayout>

<style>
  .ihero { padding: 48px 0 8px; }
  .ihero-k { margin: 0; font: 500 13px/20px var(--sans); color: var(--ink-3); }
  .ihero-h { margin: 8px 0 16px; font: 600 36px/1.4 var(--sans); max-width: 900px; }
  .ihero-lead { margin: 0; font: 400 17px/2 var(--sans); max-width: 820px; }
  .ihero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
  .ihero-upd { margin: 16px 0 0; font: 400 12px/18px var(--sans); color: var(--ink-3); }
  .top3 { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 32px 0 0; padding: 0; }
  .t3 { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; background: #fff; border-radius: 8px;
    box-shadow: 0 8px 16px rgba(0,0,0,.08); transition: box-shadow .15s; }
  .t3:hover { box-shadow: 0 8px 24px rgba(0,0,0,.16); }
  .t3:hover .t3-title { text-decoration: underline; }
  .t3-ph { display: block; margin: -24px -24px 6px; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 8px 8px 0 0; background: #eee; }
  .t3-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .t3-ic { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 8px; background: var(--dark, #222); }
  .t3-ic .ms { font-size: 28px; color: #fff; }
  .t3-title { font: 600 20px/1.5 var(--sans); color: var(--ink); }
  .t3-sum { font: 400 14px/1.8 var(--sans); color: var(--ink-2); }
  .t3-meta { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 12px; border-top: 1px solid #eee;
    font: 400 12px/20px var(--sans); color: var(--ink-3); }
  .t3-meta .ms { font-size: 20px; color: var(--ink); }
  .ilink { text-decoration: underline; color: var(--ink); }
  .more { margin: 24px 0 0; }
  .empty { margin: 0; padding: 20px; border-radius: 8px; background: #f5f5f5; font: 400 14px/1.8 var(--sans); color: var(--ink-3); }

  .cbox { display: flex; flex-direction: column; padding: 20px; border: 1px solid #e3e3e3; border-radius: 8px; transition: border-color .15s; }
  .cbox:hover { border-color: var(--ink); }
  .cbox h3 { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 6px; font: 600 16px/1.5 var(--sans); }
  .cbox h3 span { font: 400 12px/24px var(--sans); color: var(--ink-3); white-space: nowrap; }
  .cbox p { margin: 0; font: 400 13px/1.7 var(--sans); color: var(--ink-2); }

  .regs { display: flex; flex-direction: column; gap: 16px; }
  .reg { padding: 20px; border: 1px solid #e3e3e3; border-radius: 8px; }
  .reg-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px 16px; flex-wrap: wrap; }
  .reg h3 { margin: 0; font: 600 16px/1.6 var(--sans); }
  .reg-st { font: 400 12px/1.6 var(--sans); padding: 2px 8px; border-radius: 4px; background: #f0f0f0; color: var(--ink-2); }
  .reg-st em { font-style: normal; margin-left: 6px; color: var(--ink); font-weight: 600; }
  .reg p { margin: 8px 0 0; font: 400 14px/1.8 var(--sans); color: var(--ink-2); }
  .reg .reg-meta { font-size: 12px; display: flex; flex-wrap: wrap; gap: 4px 12px; }
  .reg-meta span { color: var(--ink-3); }
  .reg-meta a { text-decoration: underline; color: var(--ink); }

  .about { margin: 0; padding-left: 1.2em; }
  .about li { margin: 0 0 12px; font: 400 15px/1.9 var(--sans); color: var(--ink-2); }
  .about b { color: var(--ink); font-weight: 600; }
  .about a { text-decoration: underline; }
  @media (max-width: 899px) and (min-width: 600px) {
    .top3 { grid-template-columns: 1fr; }
  }
  @media (max-width: 599px) {
    .ihero { padding-top: 32px; }
    .ihero-h { font-size: 26px; }
    .ihero-lead { font-size: 15px; }
    .top3 { grid-template-columns: 1fr; }
    .t3 { padding: 18px 20px; gap: 6px; }
    .t3-ph + .t3-title { margin-top: 0; }
    .t3:has(.t3-ph) { display: grid; grid-template-columns: 96px 1fr; column-gap: 14px; row-gap: 4px; padding: 14px; align-items: start; }
    .t3:has(.t3-ph) .t3-ph { grid-row: 1 / span 3; margin: 0; width: 96px; aspect-ratio: 1; border-radius: 6px; }
    .t3:has(.t3-ph) .t3-meta { grid-column: 2; padding-top: 8px; }
    .t3-ic { width: 40px; height: 40px; }
    .t3-ic .ms { font-size: 24px; }
    .t3-title { font-size: 17px; }
    .t3-sum { font-size: 13px; line-height: 1.7; }
    .top3 { gap: 12px; margin-top: 24px; }
  }
</style>
```


### トップの課題地図のバナー（新しい部品 src/components/IssuesBanner.astro）

```astro
---
// 課題地図（/issues）への入口。TOP の「記録」の下に置く（2026-11-14）
// 前は public/embeds/top-banner.html（36件のドット地図・iframe）。LOG343・LOG344 が同じ部品を載せているので、その部品は消さずに残してある
// 件数は課題のデータから数える。写真は課題地図のトップの「まず読む3つ」と同じ（R2 の issues-top3-*.jpg）
import { allIssues, CATEGORIES } from '../lib/issues';
const n = (await allIssues()).length;
const photos = [
  ['/media/issues-top3-caregiving.jpg', '介護現場へのロボット導入の壁'],
  ['/media/issues-top3-data.jpg', '実機データの圧倒的不足'],
  ['/media/issues-top3-motion.jpg', '動作のポータビリティ不在'],
];
---
<a class="isb" href="/issues" data-ev="TOP:課題地図">
  <span class="isb-text">
    <span class="isb-title"><span class="ph">フィジカルAIが</span><span class="ph">社会実装される前に</span><span class="ph">解くべき課題</span></span>
    <span class="isb-lead">放っておくと、ロボットが現場に入る前に止まってしまう課題を{n}件・{CATEGORIES.length}分類に整理しました。週1回、最近の動きを出典つきで足しています。</span>
    <span class="isb-go">課題地図を見る<i class="ms">arrow_forward</i></span>
  </span>
  <span class="isb-ph" aria-hidden="true">
    {photos.map(([src, t]) => (
      <span class="isb-p"><img src={src} alt="" loading="lazy" width="1200" height="750" /><span class="isb-cap">{t}</span></span>
    ))}
  </span>
</a>
<style>
  .isb { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 52%); align-items: stretch; border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,.08); overflow: hidden;
    background: #fff; color: var(--ink, #242424); text-decoration: none; font-family: var(--sans); }
  .isb:focus-visible { outline: 2px solid #121418; outline-offset: 3px; }
  .isb-text { display: grid; gap: 14px; align-content: center; padding: 40px; }
  .isb-title { font-size: 26px; line-height: 1.5; font-weight: 700; }
  .ph { display: inline-block; max-width: 100%; }
  .isb-lead { font-size: 14px; line-height: 1.8; color: var(--ink-2, #555); text-wrap: pretty; }
  .isb-go { justify-self: start; display: inline-flex; align-items: center; gap: 6px; height: 44px; margin-top: 4px; padding: 0 20px; border-radius: 4px; background: var(--dark, #242424); color: #fff;
    font: 700 14px/1 var(--sans); }
  .isb-go .ms { font-size: 18px; transition: transform .2s; }
  .isb:hover .isb-go .ms { transform: translateX(3px); }
  /* 写真：3枚を縦に細長く並べ、下に課題の名前 */
  .isb-ph { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: #fff; }
  .isb-p { position: relative; display: block; min-height: 300px; overflow: hidden; }
  .isb-p img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
  .isb:hover .isb-p img { transform: scale(1.03); }
  .isb-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 12px 12px; font: 600 12px/1.5 var(--sans); color: #fff;
    background: linear-gradient(to top, rgba(0,0,0,.6), rgba(0,0,0,0)); }
  @media (max-width: 899px) {
    .isb { grid-template-columns: 1fr; }
    .isb-ph { order: -1; }
    .isb-p { min-height: 150px; }
    .isb-cap { font-size: 11px; padding: 20px 8px 8px; }
    .isb-text { padding: 28px 20px; }
    .isb-title { font-size: 21px; }
  }
</style>
```


### トップのページへの組み込み（commit 611ff96・src/pages/index.astro）

「記録」の下の iframe（top-banner.html）を外し、1年の記録の次に「課題地図 | Issues」の節を足した。

```diff
commit 611ff9639037faf87669748989d1eddd70c509e0
Author: Claude <noreply@anthropic.com>
Date:   Sat Nov 14 09:35:11 2026 +0900

    TOP：課題地図のバナーを新しくした（件数を課題のデータから数え、写真3枚）。位置を「記録」の下から1年の記録の次へ上げた
    
    元の public/embeds/top-banner.html は LOG343・LOG344 が載せているので残した
    
    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LevEXS2w3GWf5pnT1ChrKx

diff --git a/src/pages/index.astro b/src/pages/index.astro
index d3db8eb..7a87a3c 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -14,6 +14,7 @@ import LoadMore from '../components/LoadMore.astro';
 import GuideCards from '../components/GuideCards.astro';
 import ThinkingBanner from '../components/ThinkingBanner.astro';
 import OneYearBanner from '../components/OneYearBanner.astro';
+import IssuesBanner from '../components/IssuesBanner.astro';
 import TopAiGuide from '../components/TopAiGuide.astro';
 import BrowserSimTest from '../components/BrowserSimTest.astro';
 import { allManga } from '../lib/records';
@@ -132,6 +133,13 @@ const jsonLd = [
     <OneYearBanner />
   </div></section>
 
+  <!-- 課題地図（/issues）への入口（2026-11-14）。前は「記録」の下の iframe（top-banner.html・36件のドット地図）だった。
+       TOP は25%の深さまでで7割、半分まで5割しか読まれないため、1年の記録の次へ上げた（エイイチの指示） -->
+  <section class="sec"><div class="panel">
+    <h2 class="sec-h">課題地図 | Issues</h2>
+    <IssuesBanner />
+  </div></section>
+
   <!-- 導入前ガイド：LP 2つ（GPU を買うか借りるか・配膳ロボットの導入前シミュレーション）への入口 -->
   <section class="sec"><div class="panel">
     <h2 class="sec-h">導入前ガイド | Guide</h2>
@@ -174,7 +182,6 @@ const jsonLd = [
   <section class="sec" id="record"><div class="panel">
     <h2 class="sec-h">記録 | Record</h2>
     <LoadMore limit={12} total={records.length}>{records.map((c) => <RecordCard item={c} />)}</LoadMore>
-    <div class="embed-banner"><iframe src="/embeds/top-banner.html" sandbox="allow-scripts allow-popups allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation" title="お知らせ" data-embed style="height:240px"></iframe></div>
   </div></section>
 
   <!-- ロボットに関わる人へ（2026-11-12）。相手ごとに、困りごと → 作れるもの → 裏づけの記録。
```


### Studio.Stock の写真を Mac に取ったコマンド

Studio.Stock にログインしたあと、選んだ写真の元の画像を、写真の番号から取った。

```bash
cd "$HOME/mnt/PixelstoMotors" && mkdir -p issues_images/top3_original && cd issues_images/top3_original
for p in "Y9IKnc705GbYbdc5Oh3wQ caregiving" "YUQoYePLY0UggDHvD_b_X data" "3G_9DIXCkFlKm5QZJtdEU motion"; do
  set -- $p
  curl -sSf -o "$2_$1.png" "https://storage.stock.studio.design/images/$1.png"
done
# 3枚目を替えたとき
curl -sSf -o motion_YurzumT_a563fgTqeHbzQ.png "https://storage.stock.studio.design/images/YurzumT_a563fgTqeHbzQ.png"
```


### 写真をカード用に切り抜いたスクリプト（1回目）

```python
from PIL import Image
import glob, os
# 1回目（介護A・データB・動作D）。top は、縦長の写真で切り抜く位置を上からどれだけ下げるか（0〜1）
for f, name, top in [("caregiving", "issues-top3-caregiving.jpg", 0.25), ("data", "issues-top3-data.jpg", 0.5), ("motion", "issues-top3-motion.jpg", 0.2)]:
    src = glob.glob(f"top3_original/{f}_*.png")[0]
    im = Image.open(src).convert("RGB"); w, h = im.size
    tw, th = (w, int(w * 10 / 16)) if w / h < 1.6 else (int(h * 16 / 10), h)
    x = (w - tw) // 2; y = int((h - th) * top)
    im.crop((x, y, x + tw, y + th)).resize((1200, 750), Image.LANCZOS).save(name, quality=84, optimize=True, progressive=True)
    print(name, os.path.getsize(name), (w, h))
```


### 切り抜きの出力（1回目）

```text
issues-top3-caregiving.jpg 76266 (896, 1344)
issues-top3-data.jpg 125350 (1672, 941)
issues-top3-motion.jpg 94235 (1152, 1536)
```


### 3枚目を動作A に替えて切り抜き直したスクリプト

```python
from PIL import Image
# 3枚目を動作A に替え、顔を入れずに胸から下で切り抜いた（top=0.62）
im = Image.open("top3_original/motion_YurzumT_a563fgTqeHbzQ.png").convert("RGB"); w, h = im.size
th = int(w * 10 / 16); y = int((h - th) * 0.62)
im.crop((0, y, w, y + th)).resize((1200, 750), Image.LANCZOS).save("issues-top3-motion.jpg", quality=84, optimize=True, progressive=True)
print(y)
```


### R2 に入れたコマンド（tools/upload_media.py）

```bash
# upload_media.py は、フォルダの下の画像を全部入れるので、カード用の3枚だけを別のフォルダに写してから入れた
mkdir -p up && cp "$HOME/mnt/PixelstoMotors/issues_images/"issues-top3-*.jpg up/
python3 um.py up
```


### R2 に入れた出力

```text
入れる 3・入っている 0・名前の重なり 0・合計 0.3MB
  3/3
おわり
```


### 記事のために計測の数字を取り直したコマンド

鍵は KIOXIA の p2m_stats_key.txt から読み、画面にもログにも出していない。

```bash
D="$HOME/mnt/PixelstoMotors/デジタルツイン学習R2R2R/記事/LOG507_data"; mkdir -p "$D"
K=$(head -c 400 "$HOME/mnt/KIOXIA/p2m_stats_key.txt" | tr -d '\r\n ')
g(){ curl -sS -H "Authorization: Bearer $K" "https://pixelstomotors.com$1" -o "$D/$2" -w "$2 %{http_code} %{size_download}\n"; }
g "/api/kpi-stats?format=json&since=2026-10-26&until=2026-11-14" kpi_since1026.json
g "/api/ev-stats?format=json&since=2026-10-26&who=human" ev_human_since1026.json
g "/api/cr-stats?format=json&since=2026-11-09&bot=Perplexity-User" cr_since1109_perplexity_user.json
```


### 取り直しの出力

```text
kpi_since1026.json 200 18367
ev_human_since1026.json 200 30955
cr_since1109_perplexity_user.json 200 15297
2026-11-14 00:38 UTC
```


### 主な3つの数字（kpi_since1026.json・/api/kpi-stats）

```json
{
 "since": "2026-10-26",
 "until": "2026-11-14",
 "pendingDays": [],
 "byWeek": [
  {
   "week": "2026-10-26",
   "days": 7,
   "aiReads": 55,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 164,
   "aiReadsByBot": {
    "ChatGPT-User": 52,
    "Claude-User": 3
   },
   "aiReferralsBySource": {},
   "nameSearch": 0
  },
  {
   "week": "2026-11-02",
   "days": 7,
   "aiReads": 61,
   "aiReadsViaButton": 2,
   "aiReferrals": 3,
   "humanViews": 136,
   "aiReadsByBot": {
    "ChatGPT-User": 45,
    "Claude-User": 16
   },
   "aiReferralsBySource": {
    "ChatGPT": 3
   },
   "nameSearch": 0
  },
  {
   "week": "2026-11-09",
   "days": 6,
   "aiReads": 40,
   "aiReadsViaButton": 0,
   "aiReferrals": 1,
   "humanViews": 68,
   "aiReadsByBot": {
    "ChatGPT-User": 27,
    "Claude-User": 8,
    "Perplexity-User": 5
   },
   "aiReferralsBySource": {
    "ChatGPT": 1
   },
   "nameSearch": null
  }
 ],
 "byDay": [
  {
   "day": "2026-10-26",
   "partial": false,
   "aiReads": 9,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 52,
   "aiReadsByBot": {
    "ChatGPT-User": 8,
    "Claude-User": 1
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-10-27",
   "partial": false,
   "aiReads": 13,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 17,
   "aiReadsByBot": {
    "ChatGPT-User": 13
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-10-28",
   "partial": false,
   "aiReads": 4,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 21,
   "aiReadsByBot": {
    "ChatGPT-User": 4
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-10-29",
   "partial": false,
   "aiReads": 4,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 33,
   "aiReadsByBot": {
    "ChatGPT-User": 4
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-10-30",
   "partial": false,
   "aiReads": 17,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 10,
   "aiReadsByBot": {
    "Claude-User": 1,
    "ChatGPT-User": 16
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-10-31",
   "partial": false,
   "aiReads": 6,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 18,
   "aiReadsByBot": {
    "ChatGPT-User": 5,
    "Claude-User": 1
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-01",
   "partial": false,
   "aiReads": 2,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 13,
   "aiReadsByBot": {
    "ChatGPT-User": 2
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-02",
   "partial": false,
   "aiReads": 7,
   "aiReadsViaButton": 0,
   "aiReferrals": 1,
   "humanViews": 30,
   "aiReadsByBot": {
    "ChatGPT-User": 7
   },
   "aiReferralsBySource": {
    "ChatGPT": 1
   }
  },
  {
   "day": "2026-11-03",
   "partial": false,
   "aiReads": 22,
   "aiReadsViaButton": 2,
   "aiReferrals": 1,
   "humanViews": 25,
   "aiReadsByBot": {
    "Claude-User": 12,
    "ChatGPT-User": 10
   },
   "aiReferralsBySource": {
    "ChatGPT": 1
   }
  },
  {
   "day": "2026-11-04",
   "partial": false,
   "aiReads": 5,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 16,
   "aiReadsByBot": {
    "ChatGPT-User": 5
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-05",
   "partial": false,
   "aiReads": 3,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 21,
   "aiReadsByBot": {
    "ChatGPT-User": 3
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-06",
   "partial": false,
   "aiReads": 5,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 29,
   "aiReadsByBot": {
    "ChatGPT-User": 5
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-07",
   "partial": false,
   "aiReads": 13,
   "aiReadsViaButton": 0,
   "aiReferrals": 1,
   "humanViews": 10,
   "aiReadsByBot": {
    "ChatGPT-User": 9,
    "Claude-User": 4
   },
   "aiReferralsBySource": {
    "ChatGPT": 1
   }
  },
  {
   "day": "2026-11-08",
   "partial": false,
   "aiReads": 6,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 5,
   "aiReadsByBot": {
    "ChatGPT-User": 6
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-09",
   "partial": false,
   "aiReads": 2,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 28,
   "aiReadsByBot": {
    "ChatGPT-User": 2
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-10",
   "partial": false,
   "aiReads": 6,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 20,
   "aiReadsByBot": {
    "ChatGPT-User": 5,
    "Claude-User": 1
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-11",
   "partial": false,
   "aiReads": 13,
   "aiReadsViaButton": 0,
   "aiReferrals": 1,
   "humanViews": 3,
   "aiReadsByBot": {
    "ChatGPT-User": 10,
    "Claude-User": 3
   },
   "aiReferralsBySource": {
    "ChatGPT": 1
   }
  },
  {
   "day": "2026-11-12",
   "partial": false,
   "aiReads": 4,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 4,
   "aiReadsByBot": {
    "ChatGPT-User": 2,
    "Claude-User": 2
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-13",
   "partial": false,
   "aiReads": 12,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 12,
   "aiReadsByBot": {
    "ChatGPT-User": 5,
    "Perplexity-User": 5,
    "Claude-User": 2
   },
   "aiReferralsBySource": {}
  },
  {
   "day": "2026-11-14",
   "partial": true,
   "aiReads": 3,
   "aiReadsViaButton": 0,
   "aiReferrals": 0,
   "humanViews": 1,
   "aiReadsByBot": {
    "ChatGPT-User": 3
   },
   "aiReferralsBySource": {}
  }
 ],
 "detailDays": [
  {
   "version": 1,
   "day": "2026-10-26",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:08.421Z",
   "aiReads": {
    "total": 9,
    "byBot": {
     "ChatGPT-User": 8,
     "Claude-User": 1
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 3
     },
     {
      "key": "/record/pixelstomotors-com-domain",
      "count": 1
     },
     {
      "key": "/record/what-i-think-now-page",
      "count": 1
     },
     {
      "key": "/record/first-video-end-to-end",
      "count": 1
     },
     {
      "key": "/record/lock-down-ai-weekly-writes",
      "count": 1
     },
     {
      "key": "/record/youtube-script-curation",
      "count": 1
     },
     {
      "key": "/record/dev-mac-free-space",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 52,
    "humanEntriesFromOutside": 42
   }
  },
  {
   "version": 1,
   "day": "2026-10-27",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:11.611Z",
   "aiReads": {
    "total": 13,
    "byBot": {
     "ChatGPT-User": 13
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 7,
    "topPages": [
     {
      "key": "/",
      "count": 3
     },
     {
      "key": "/record/from-sim-series-to-lp",
      "count": 2
     },
     {
      "key": "/record/shorts-81-percent-swiped",
      "count": 1
     },
     {
      "key": "/record/pi05-learned-the-pauses",
      "count": 1
     },
     {
      "key": "/record/pi05-first-block-in-box",
      "count": 1
     },
     {
      "key": "/record/microfactory-fairino-fr3",
      "count": 1
     },
     {
      "key": "/record/serving-robot-observation-sheet",
      "count": 1
     },
     {
      "key": "/record/serving-robot-cost-subsidy",
      "count": 1
     },
     {
      "key": "/serving-robot-one-less-staff",
      "count": 1
     },
     {
      "key": "/record/openpi-remote-inference-first-run",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 17,
    "humanEntriesFromOutside": 11
   }
  },
  {
   "version": 1,
   "day": "2026-10-28",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:15.272Z",
   "aiReads": {
    "total": 4,
    "byBot": {
     "ChatGPT-User": 4
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/record/microfactory-fairino-fr3",
      "count": 1
     },
     {
      "key": "/record/claude-code-api-key-billing",
      "count": 1
     },
     {
      "key": "/",
      "count": 1
     },
     {
      "key": "/record/mecharm-not-done-yet",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 21,
    "humanEntriesFromOutside": 20
   }
  },
  {
   "version": 1,
   "day": "2026-10-29",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:19.132Z",
   "aiReads": {
    "total": 4,
    "byBot": {
     "ChatGPT-User": 4
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/record/robot-ideas-from-pain-not-robots",
      "count": 1
     },
     {
      "key": "/record/autodesk-fusion-mcp-setup",
      "count": 1
     },
     {
      "key": "/",
      "count": 1
     },
     {
      "key": "/record/serving-robot-hidden-waits",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 33,
    "humanEntriesFromOutside": 23
   }
  },
  {
   "version": 1,
   "day": "2026-10-30",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:22.950Z",
   "aiReads": {
    "total": 17,
    "byBot": {
     "Claude-User": 1,
     "ChatGPT-User": 16
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 3
     },
     {
      "key": "/record/serving-robot-video-ledger",
      "count": 2
     },
     {
      "key": "/record/making-explainer-video-with-ai",
      "count": 1
     },
     {
      "key": "/record/from-sim-series-to-lp",
      "count": 1
     },
     {
      "key": "/series4",
      "count": 1
     },
     {
      "key": "/record/serving-robot-cost-subsidy",
      "count": 1
     },
     {
      "key": "/series8",
      "count": 1
     },
     {
      "key": "/serving-robot-one-less-staff",
      "count": 1
     },
     {
      "key": "/record/lp-demo-same-time-compare",
      "count": 1
     },
     {
      "key": "/record/six-stores-fix-the-rules",
      "count": 1
     },
     {
      "key": "/record/code-skeleton-agent-judgment",
      "count": 1
     },
     {
      "key": "/record/video-patterns-and-try-it",
      "count": 1
     },
     {
      "key": "/record/studio-to-astro-cloudflare",
      "count": 1
     },
     {
      "key": "/record/cobot-deployment-law-and-coordination",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 10,
    "humanEntriesFromOutside": 10
   }
  },
  {
   "version": 1,
   "day": "2026-10-31",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:25.644Z",
   "aiReads": {
    "total": 6,
    "byBot": {
     "ChatGPT-User": 5,
     "Claude-User": 1
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 1,
    "topPages": [
     {
      "key": "/record/pixelstomotors-com-domain",
      "count": 1
     },
     {
      "key": "/",
      "count": 1
     },
     {
      "key": "/record/vertical-4koma-for-shorts",
      "count": 1
     },
     {
      "key": "/consult",
      "count": 1
     },
     {
      "key": "/record/floor-plans-into-simulator",
      "count": 1
     },
     {
      "key": "/record/hakobu-4koma-swipe-format",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 18,
    "humanEntriesFromOutside": 9
   }
  },
  {
   "version": 1,
   "day": "2026-11-01",
   "week": "2026-10-26",
   "madeAt": "2026-11-06T06:33:28.297Z",
   "aiReads": {
    "total": 2,
    "byBot": {
     "ChatGPT-User": 2
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 1
     },
     {
      "key": "/record/video-patterns-and-try-it",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 13,
    "humanEntriesFromOutside": 6
   }
  },
  {
   "version": 1,
   "day": "2026-11-02",
   "week": "2026-11-02",
   "madeAt": "2026-11-06T06:33:31.396Z",
   "aiReads": {
    "total": 7,
    "byBot": {
     "ChatGPT-User": 7
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/record/beyond-imitation-learning",
      "count": 4
     },
     {
      "key": "/files/LOG383/18_Assets_ServiceSim_Editor_BuildHeadless.cs.txt",
      "count": 1
     },
     {
      "key": "/record/hakobu-4koma-english-without-redrawing",
      "count": 1
     },
     {
      "key": "/",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 1,
    "bySource": {
     "ChatGPT": 1
    },
    "landing": [
     {
      "key": "/record/hakobu-4koma-english-without-redrawing",
      "count": 1
     }
    ],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 30,
    "humanEntriesFromOutside": 28
   }
  },
  {
   "version": 1,
   "day": "2026-11-03",
   "week": "2026-11-02",
   "madeAt": "2026-11-06T06:33:34.389Z",
   "aiReads": {
    "total": 22,
    "byBot": {
     "Claude-User": 12,
     "ChatGPT-User": 10
    },
    "viaButton": 2,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/llms.txt",
      "count": 2
     },
     {
      "key": "/record/retrained-pi05-still-needs-human-corrections",
      "count": 2
     },
     {
      "key": "/record/gamepad-moves-mecharm-270-pymycobot-version",
      "count": 1
     },
     {
      "key": "/record/serving-robot-faceoff-staff-resolves",
      "count": 1
     },
     {
      "key": "/record/ai-reads-more-than-people",
      "count": 1
     },
     {
      "key": "/record/building-a-physical-ai-lab-at-home",
      "count": 1
     },
     {
      "key": "/gpu-buy-or-rent",
      "count": 1
     },
     {
      "key": "/record/openpi-remote-inference-first-run",
      "count": 1
     },
     {
      "key": "/record/pi05-mecharm-demo-to-inference",
      "count": 1
     },
     {
      "key": "/record/serving-robot-one-per-narrow-restaurant",
      "count": 1
     },
     {
      "key": "/record/day103",
      "count": 1
     },
     {
      "key": "/record/pi05-first-block-in-box",
      "count": 1
     },
     {
      "key": "/record/serving-robot-jam-detection-without-path-lines",
      "count": 1
     },
     {
      "key": "/record/rewind-and-correct-pi05",
      "count": 1
     },
     {
      "key": "/record/decisions-api-grasp-check",
      "count": 1
     },
     {
      "key": "/record/serving-robot-observation-sheet",
      "count": 1
     },
     {
      "key": "/record/ai-chaos-control-systems-before-robots",
      "count": 1
     },
     {
      "key": "/",
      "count": 1
     },
     {
      "key": "/record/gemini-api-4koma",
      "count": 1
     },
     {
      "key": "/record/world-model-adoption-criteria-robot-arm",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 1,
    "bySource": {
     "ChatGPT": 1
    },
    "landing": [
     {
      "key": "/record/decisions-api-grasp-check",
      "count": 1
     }
    ],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 25,
    "humanEntriesFromOutside": 18
   }
  },
  {
   "version": 1,
   "day": "2026-11-04",
   "week": "2026-11-02",
   "madeAt": "2026-11-06T06:33:38.234Z",
   "aiReads": {
    "total": 5,
    "byBot": {
     "ChatGPT-User": 5
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 2,
    "topPages": [
     {
      "key": "/",
      "count": 2
     },
     {
      "key": "/record/pi05-libero-benchmark-first-run",
      "count": 2
     },
     {
      "key": "/record/openpi-remote-inference-first-run",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 16,
    "humanEntriesFromOutside": 16
   }
  },
  {
   "version": 1,
   "day": "2026-11-05",
   "week": "2026-11-02",
   "madeAt": "2026-11-06T06:33:58.722Z",
   "aiReads": {
    "total": 3,
    "byBot": {
     "ChatGPT-User": 3
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/record/physical-ai-defined-by-how-it-is-built",
      "count": 1
     },
     {
      "key": "/record/deep-dive-article-to-dialogue-video",
      "count": 1
     },
     {
      "key": "/files/LOG383/06_20261025_1545_v11_project_split.txt",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 21,
    "humanEntriesFromOutside": 18
   }
  },
  {
   "version": 1,
   "day": "2026-11-06",
   "week": "2026-11-02",
   "madeAt": "2026-11-06T15:00:12.938Z",
   "aiReads": {
    "total": 5,
    "byBot": {
     "ChatGPT-User": 5
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 1
     },
     {
      "key": "/record/ai-aruaru-youtube-shorts",
      "count": 1
     },
     {
      "key": "/record/full-text-pages-and-read-with-ai-button",
      "count": 1
     },
     {
      "key": "/issues/sources",
      "count": 1
     },
     {
      "key": "/record/shorts-81-percent-swiped",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 29,
    "humanEntriesFromOutside": 25
   }
  },
  {
   "version": 1,
   "day": "2026-11-07",
   "week": "2026-11-02",
   "madeAt": "2026-11-07T15:00:14.233Z",
   "aiReads": {
    "total": 13,
    "byBot": {
     "ChatGPT-User": 9,
     "Claude-User": 4
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 5
     },
     {
      "key": "/record/ai-chaos-control-systems-before-robots",
      "count": 2
     },
     {
      "key": "/record/day78",
      "count": 1
     },
     {
      "key": "/series2",
      "count": 1
     },
     {
      "key": "/record/youtube-opening-question-first",
      "count": 1
     },
     {
      "key": "/record/youtube-script-curation",
      "count": 1
     },
     {
      "key": "/record/making-explainer-video-with-ai",
      "count": 1
     },
     {
      "key": "/record/physical-ai-defined-by-how-it-is-built",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 1,
    "bySource": {
     "ChatGPT": 1
    },
    "landing": [
     {
      "key": "/record/openpi-remote-inference-first-run",
      "count": 1
     }
    ],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 10,
    "humanEntriesFromOutside": 9
   }
  },
  {
   "version": 1,
   "day": "2026-11-08",
   "week": "2026-11-02",
   "madeAt": "2026-11-08T15:00:14.008Z",
   "aiReads": {
    "total": 6,
    "byBot": {
     "ChatGPT-User": 6
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 1,
    "topPages": [
     {
      "key": "/record/maker-voice-in-explainer-video",
      "count": 2
     },
     {
      "key": "/record/ai-aruaru-youtube-shorts",
      "count": 1
     },
     {
      "key": "/record/catch-first-ai-referred-visitors-claude-connector",
      "count": 1
     },
     {
      "key": "/files/LOG453/09_sec06.json",
      "count": 1
     },
     {
      "key": "/record/alphanist-binary-reward-assembly",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 5,
    "humanEntriesFromOutside": 5
   }
  },
  {
   "version": 1,
   "day": "2026-11-09",
   "week": "2026-11-09",
   "madeAt": "2026-11-09T15:00:16.922Z",
   "aiReads": {
    "total": 2,
    "byBot": {
     "ChatGPT-User": 2
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/record/first-video-end-to-end",
      "count": 1
     },
     {
      "key": "/record/hakobu-4koma-dynamic-panels",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 28,
    "humanEntriesFromOutside": 16
   }
  },
  {
   "version": 1,
   "day": "2026-11-10",
   "week": "2026-11-09",
   "madeAt": "2026-11-10T15:00:15.995Z",
   "aiReads": {
    "total": 6,
    "byBot": {
     "ChatGPT-User": 5,
     "Claude-User": 1
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 2
     },
     {
      "key": "/record/pi05-learned-the-pauses",
      "count": 1
     },
     {
      "key": "/record/serving-robot-hand-tasks-specialist-gripper",
      "count": 1
     },
     {
      "key": "/record/pi05-sock-garbage-lora-yolo-so101",
      "count": 1
     },
     {
      "key": "/record/making-explainer-video-with-ai",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 20,
    "humanEntriesFromOutside": 18
   }
  },
  {
   "version": 1,
   "day": "2026-11-11",
   "week": "2026-11-09",
   "madeAt": "2026-11-11T15:00:14.467Z",
   "aiReads": {
    "total": 13,
    "byBot": {
     "ChatGPT-User": 10,
     "Claude-User": 3
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 6
     },
     {
      "key": "/record/youtube-opening-question-first",
      "count": 2
     },
     {
      "key": "/record/first-video-end-to-end",
      "count": 2
     },
     {
      "key": "/record/youtube-views-to-right-viewers",
      "count": 1
     },
     {
      "key": "/record/pi05-libero-benchmark-first-run",
      "count": 1
     },
     {
      "key": "/message",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 1,
    "bySource": {
     "ChatGPT": 1
    },
    "landing": [
     {
      "key": "/",
      "count": 1
     }
    ],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 3,
    "humanEntriesFromOutside": 3
   }
  },
  {
   "version": 1,
   "day": "2026-11-12",
   "week": "2026-11-09",
   "madeAt": "2026-11-12T15:00:13.823Z",
   "aiReads": {
    "total": 4,
    "byBot": {
     "ChatGPT-User": 2,
     "Claude-User": 2
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/",
      "count": 2
     },
     {
      "key": "/record/first-video-end-to-end",
      "count": 1
     },
     {
      "key": "/record/microfactory-loop-model-fix-the-variance",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 4,
    "humanEntriesFromOutside": 4
   }
  },
  {
   "version": 1,
   "day": "2026-11-13",
   "week": "2026-11-09",
   "madeAt": "2026-11-13T15:00:15.736Z",
   "aiReads": {
    "total": 12,
    "byBot": {
     "ChatGPT-User": 5,
     "Perplexity-User": 5,
     "Claude-User": 2
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 4,
    "topPages": [
     {
      "key": "/record/first-video-end-to-end",
      "count": 1
     },
     {
      "key": "/record/explainer-video-simulation-background",
      "count": 1
     },
     {
      "key": "/%2Fapi/config",
      "count": 1
     },
     {
      "key": "/%2Fsettings",
      "count": 1
     },
     {
      "key": "/settings",
      "count": 1
     },
     {
      "key": "/manage/env",
      "count": 1
     },
     {
      "key": "/__debug__/",
      "count": 1
     },
     {
      "key": "/manga-archive",
      "count": 1
     },
     {
      "key": "/manga/ep147",
      "count": 1
     },
     {
      "key": "/record/deep-dive-article-to-dialogue-video",
      "count": 1
     },
     {
      "key": "/record/box-collision-misdiagnosed-three-times",
      "count": 1
     },
     {
      "key": "/record/claude-project-linked-folders",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 12,
    "humanEntriesFromOutside": 5
   }
  },
  {
   "version": 1,
   "day": "2026-11-14",
   "week": "2026-11-09",
   "madeAt": "2026-11-14T00:38:03.359Z",
   "aiReads": {
    "total": 3,
    "byBot": {
     "ChatGPT-User": 3
    },
    "viaButton": 0,
    "unverifiedChatGPTExcluded": 0,
    "topPages": [
     {
      "key": "/manga-archive",
      "count": 1
     },
     {
      "key": "/record/ai-aruaru-youtube-shorts",
      "count": 1
     },
     {
      "key": "/record/manga-shorts-speech-bubbles",
      "count": 1
     }
    ]
   },
   "aiReferrals": {
    "total": 0,
    "bySource": {},
    "landing": [],
    "notHumanExcluded": 0
   },
   "context": {
    "humanViews": 1,
    "humanEntriesFromOutside": 1
   },
   "partial": true
  }
 ],
 "nameSearch": [
  {
   "week": "2026-10-26",
   "clicks": 0,
   "impressions": 0,
   "queries": [],
   "note": "Search Console を Chrome で確認（2026-11-06）。新ドメイン sc-domain:pixelstomotors.com・旧ドメイン https://adaptdesign.jp/ とも、正規表現 (?i)pixel|motor|ピクセル|p2m の検索語は 0（旧ドメインの1表示は CSS の文字列で、サイト名の検索ではない）。正規表現の絞り込みが効くことは studio で確かめた。人数の少ない検索語は Search Console が伏せるので、伏せられた分は数えられない",
   "source": "Search Console",
   "recordedAt": "2026-11-06T07:11:51.972Z"
  },
  {
   "week": "2026-11-02",
   "clicks": 0,
   "impressions": 0,
   "queries": [],
   "note": "途中の数（11/2〜11/5 まで。Search Console は2〜3日遅れ）。新旧ドメインとも、サイト名の検索語は 0。11/16 の分析で週の確定分に取り直す",
   "source": "Search Console",
   "recordedAt": "2026-11-06T07:11:55.674Z"
  }
 ]
}
```


### 人の表示のページごとの読まれ方（ev_human_since1026.json・/api/ev-stats?who=human）

```json
{
 "total": 6591,
 "counted": 367,
 "truncated": false,
 "since": "2026-10-26",
 "week": null,
 "who": "human",
 "byWeek": [
  {
   "week": "2026-11-09",
   "label": "2026-11-09 〜 11-15",
   "views": 68,
   "medianSeconds": 14,
   "read75Pct": 21,
   "spPct": 22,
   "backViews": 7,
   "outClicks": 6,
   "deadClicks": 7,
   "rageClicks": 0,
   "messageViews": 2,
   "formStarts": 1,
   "formSubmits": 1,
   "formSubmitsValid": 1,
   "messagesReceived": 3,
   "humanViews": 68,
   "botViews": 1919,
   "unknownViews": 24,
   "unmarkedViews": 0
  },
  {
   "week": "2026-11-02",
   "label": "2026-11-02 〜 11-08",
   "views": 136,
   "medianSeconds": 13,
   "read75Pct": 29,
   "spPct": 21,
   "backViews": 1,
   "outClicks": 1,
   "deadClicks": 18,
   "rageClicks": 0,
   "messageViews": 7,
   "formStarts": 0,
   "formSubmits": 0,
   "formSubmitsValid": 0,
   "messagesReceived": 0,
   "humanViews": 136,
   "botViews": 2180,
   "unknownViews": 47,
   "unmarkedViews": 0
  },
  {
   "week": "2026-10-26",
   "label": "2026-10-26 〜 11-01",
   "views": 163,
   "medianSeconds": 15,
   "read75Pct": 26,
   "spPct": 50,
   "backViews": 4,
   "outClicks": 8,
   "deadClicks": 13,
   "rageClicks": 1,
   "messageViews": 2,
   "formStarts": 0,
   "formSubmits": 0,
   "formSubmitsValid": 0,
   "messagesReceived": 0,
   "humanViews": 163,
   "botViews": 1987,
   "unknownViews": 67,
   "unmarkedViews": 0
  }
 ],
 "byPage": [
  {
   "path": "/",
   "views": 40,
   "medianSeconds": 15,
   "read25Pct": 70,
   "read50Pct": 48,
   "read75Pct": 28,
   "read100Pct": 18,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 1,
   "videoPlays": 1,
   "outClicks": 0
  },
  {
   "path": "/gpu-buy-or-rent",
   "views": 21,
   "medianSeconds": 11,
   "read25Pct": 52,
   "read50Pct": 52,
   "read75Pct": 10,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 2,
   "outClicks": 0
  },
  {
   "path": "/issues",
   "views": 21,
   "medianSeconds": 9,
   "read25Pct": 5,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 1
  },
  {
   "path": "/manga-archive",
   "views": 14,
   "medianSeconds": 9,
   "read25Pct": 21,
   "read50Pct": 7,
   "read75Pct": 7,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 3
  },
  {
   "path": "/series8",
   "views": 12,
   "medianSeconds": 15,
   "read25Pct": 17,
   "read50Pct": 17,
   "read75Pct": 17,
   "read100Pct": 8,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 1
  },
  {
   "path": "/record/day18",
   "views": 11,
   "medianSeconds": 53,
   "read25Pct": 91,
   "read50Pct": 64,
   "read75Pct": 27,
   "read100Pct": 9,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 1,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/message",
   "views": 11,
   "medianSeconds": 10,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 91,
   "read100Pct": 9,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 1,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/series6",
   "views": 7,
   "medianSeconds": 20,
   "read25Pct": 71,
   "read50Pct": 43,
   "read75Pct": 43,
   "read100Pct": 29,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day17",
   "views": 7,
   "medianSeconds": 30,
   "read25Pct": 86,
   "read50Pct": 86,
   "read75Pct": 43,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/service-robot-last-mile",
   "views": 7,
   "medianSeconds": 15,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 3
  },
  {
   "path": "/record/large-restaurant-five-serving-robots-longer-wait",
   "views": 7,
   "medianSeconds": 19,
   "read25Pct": 29,
   "read50Pct": 14,
   "read75Pct": 14,
   "read100Pct": 0,
   "deadClicks": 3,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 4,
   "outClicks": 2
  },
  {
   "path": "/record/beyond-imitation-learning",
   "views": 6,
   "medianSeconds": 19,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day12",
   "views": 6,
   "medianSeconds": 39,
   "read25Pct": 100,
   "read50Pct": 67,
   "read75Pct": 50,
   "read100Pct": 33,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/series4",
   "views": 5,
   "medianSeconds": 9,
   "read25Pct": 100,
   "read50Pct": 40,
   "read75Pct": 40,
   "read100Pct": 40,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/building-a-physical-ai-lab-at-home",
   "views": 5,
   "medianSeconds": 20,
   "read25Pct": 40,
   "read50Pct": 20,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/alphanist-binary-reward-assembly",
   "views": 5,
   "medianSeconds": 16,
   "read25Pct": 80,
   "read50Pct": 60,
   "read75Pct": 60,
   "read100Pct": 40,
   "deadClicks": 2,
   "rageClicks": 1,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/check-serving-robot-sim-with-phone",
   "views": 5,
   "medianSeconds": 39,
   "read25Pct": 20,
   "read50Pct": 20,
   "read75Pct": 20,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day145",
   "views": 4,
   "medianSeconds": 59,
   "read25Pct": 50,
   "read50Pct": 25,
   "read75Pct": 25,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/so101-imitation-learning-papers",
   "views": 4,
   "medianSeconds": 15,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/video-patterns-and-try-it",
   "views": 4,
   "medianSeconds": 18,
   "read25Pct": 25,
   "read50Pct": 25,
   "read75Pct": 25,
   "read100Pct": 25,
   "deadClicks": 2,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-video-part2",
   "views": 4,
   "medianSeconds": 11,
   "read25Pct": 25,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-video-ledger",
   "views": 4,
   "medianSeconds": 12,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/from-sim-series-to-lp",
   "views": 3,
   "medianSeconds": 140,
   "read25Pct": 67,
   "read50Pct": 67,
   "read75Pct": 33,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/small-store-second-robot-wait",
   "views": 3,
   "medianSeconds": 15,
   "read25Pct": 33,
   "read50Pct": 33,
   "read75Pct": 33,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/consult",
   "views": 3,
   "medianSeconds": 40,
   "read25Pct": 100,
   "read50Pct": 33,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 2,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 1
  },
  {
   "path": "/serving-robot-one-less-staff",
   "views": 3,
   "medianSeconds": 32,
   "read25Pct": 67,
   "read50Pct": 67,
   "read75Pct": 67,
   "read100Pct": 67,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 1,
   "videoPlays": 57,
   "outClicks": 0
  },
  {
   "path": "/record/one-year-lp-charts",
   "views": 3,
   "medianSeconds": 14,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-hidden-waits",
   "views": 3,
   "medianSeconds": 15,
   "read25Pct": 33,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 2,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/road-marking-job-post-and-physical-ai",
   "views": 3,
   "medianSeconds": 56,
   "read25Pct": 67,
   "read50Pct": 67,
   "read75Pct": 67,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/manga/ep133",
   "views": 3,
   "medianSeconds": 9,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/claude-project-linked-folders",
   "views": 3,
   "medianSeconds": 28,
   "read25Pct": 67,
   "read50Pct": 33,
   "read75Pct": 33,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day126",
   "views": 3,
   "medianSeconds": 93,
   "read25Pct": 67,
   "read50Pct": 67,
   "read75Pct": 33,
   "read100Pct": 33,
   "deadClicks": 6,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/youtube-opening-question-first",
   "views": 3,
   "medianSeconds": 14,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/pi05-first-block-in-box",
   "views": 2,
   "medianSeconds": 11,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/rewrite-research-report",
   "views": 2,
   "medianSeconds": 6,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/four-layers-of-robot-softness",
   "views": 2,
   "medianSeconds": 43,
   "read25Pct": 100,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-cost-subsidy",
   "views": 2,
   "medianSeconds": 81,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/microfactory-fairino-fr3",
   "views": 2,
   "medianSeconds": 1055,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 1
  },
  {
   "path": "/record/pi05-mecharm-demo-to-inference",
   "views": 2,
   "medianSeconds": 17,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/pi05-mecharm-first-real-run",
   "views": 2,
   "medianSeconds": 8,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/pi05-all-three-positions",
   "views": 2,
   "medianSeconds": 11,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day21",
   "views": 2,
   "medianSeconds": 39,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day20",
   "views": 2,
   "medianSeconds": 13,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/one-year",
   "views": 2,
   "medianSeconds": 77,
   "read25Pct": 100,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 50,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/japan-robot-leader-physical-ai-gap",
   "views": 2,
   "medianSeconds": 449,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/rewind-and-correct-pi05",
   "views": 2,
   "medianSeconds": 106,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 1
  },
  {
   "path": "/record/vertical-4koma-for-shorts",
   "views": 2,
   "medianSeconds": 113,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/manga/ep132",
   "views": 2,
   "medianSeconds": 8,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day46",
   "views": 2,
   "medianSeconds": 14,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/robot-research-data-index-and-provenance",
   "views": 2,
   "medianSeconds": 149,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 50,
   "read100Pct": 50,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/robot-ai-divides-like-brain",
   "views": 2,
   "medianSeconds": 85,
   "read25Pct": 50,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/six-deep-dives-to-dialogue-videos",
   "views": 2,
   "medianSeconds": 37,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day120",
   "views": 2,
   "medianSeconds": 106,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 2,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-night-runs",
   "views": 2,
   "medianSeconds": 10,
   "read25Pct": 50,
   "read50Pct": 50,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/series5",
   "views": 2,
   "medianSeconds": 8,
   "read25Pct": 100,
   "read50Pct": 50,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/issues/liability-demarcation",
   "views": 2,
   "medianSeconds": 66,
   "read25Pct": 50,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-simulation-simpy",
   "views": 2,
   "medianSeconds": 52,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 100,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-hand-tasks-specialist-gripper",
   "views": 2,
   "medianSeconds": 161,
   "read25Pct": 50,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/figma-design-token-consolidation",
   "views": 2,
   "medianSeconds": 990,
   "read25Pct": 50,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/first-video-end-to-end",
   "views": 2,
   "medianSeconds": 50,
   "read25Pct": 50,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/english-4-koma/ep22",
   "views": 1,
   "medianSeconds": 10,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/youtube-script-curation",
   "views": 1,
   "medianSeconds": 60,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day72",
   "views": 1,
   "medianSeconds": 14,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/issues/sim2real-gap",
   "views": 1,
   "medianSeconds": 5,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/linkedin-analytics-research-posts",
   "views": 1,
   "medianSeconds": 59,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/preview/deep-dive-thumbs",
   "views": 1,
   "medianSeconds": 24,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/robot-ideas-from-pain-not-robots",
   "views": 1,
   "medianSeconds": 57,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/mecharm-not-done-yet",
   "views": 1,
   "medianSeconds": 4,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/teach-replay-19-demos",
   "views": 1,
   "medianSeconds": 12,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 1
  },
  {
   "path": "/record/youtube-views-to-right-viewers",
   "views": 1,
   "medianSeconds": 159,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/cobot-deployment-law-and-coordination",
   "views": 1,
   "medianSeconds": 21,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day34",
   "views": 1,
   "medianSeconds": 4,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/dev-mac-free-space",
   "views": 1,
   "medianSeconds": 351,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/ai-readable-openings",
   "views": 1,
   "medianSeconds": 174,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 100,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day78",
   "views": 1,
   "medianSeconds": 16,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/issues/updates",
   "views": 1,
   "medianSeconds": 11,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 2,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/six-stores-fix-the-rules",
   "views": 1,
   "medianSeconds": 99,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/pi05-libero-benchmark-first-run",
   "views": 1,
   "medianSeconds": 8,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day28",
   "views": 1,
   "medianSeconds": 66,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/gemini-api-4koma",
   "views": 1,
   "medianSeconds": 15,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 100,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/video-progress-board",
   "views": 1,
   "medianSeconds": 11,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/english-4-koma/ep133",
   "views": 1,
   "medianSeconds": 12,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/manga-archive-en",
   "views": 1,
   "medianSeconds": 21,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/manga/ep43",
   "views": 1,
   "medianSeconds": 5,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/series1",
   "views": 1,
   "medianSeconds": 34,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/retrained-pi05-still-needs-human-corrections",
   "views": 1,
   "medianSeconds": 79,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/maker-voice-in-explainer-video",
   "views": 1,
   "medianSeconds": 86,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-one-per-narrow-restaurant",
   "views": 1,
   "medianSeconds": 3,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day57",
   "views": 1,
   "medianSeconds": 76,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/hakobu-4koma-english-without-redrawing",
   "views": 1,
   "medianSeconds": 59,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/hd-map-how-thin",
   "views": 1,
   "medianSeconds": 364,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 100,
   "deadClicks": 2,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/ai-reads-more-than-people",
   "views": 1,
   "medianSeconds": 328,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/deep-dive-video-serving-robot-modding",
   "views": 1,
   "medianSeconds": 18,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/gamepad-moves-mecharm-270-pymycobot-version",
   "views": 1,
   "medianSeconds": 38,
   "read25Pct": 0,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/decisions-api-grasp-check",
   "views": 1,
   "medianSeconds": 16,
   "read25Pct": 100,
   "read50Pct": 0,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/world-model-adoption-criteria-robot-arm",
   "views": 1,
   "medianSeconds": 162,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day122",
   "views": 1,
   "medianSeconds": 80,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day113",
   "views": 1,
   "medianSeconds": 6,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/day114",
   "views": 1,
   "medianSeconds": 15,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 0,
   "read100Pct": 0,
   "deadClicks": 0,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  },
  {
   "path": "/record/serving-robot-faceoff-staff-resolves",
   "views": 1,
   "medianSeconds": 100,
   "read25Pct": 100,
   "read50Pct": 100,
   "read75Pct": 100,
   "read100Pct": 0,
   "deadClicks": 1,
   "rageClicks": 0,
   "copies": 0,
   "videoPlays": 0,
   "outClicks": 0
  }
 ],
 "moves": [
  {
   "move": "/record/day46 → /",
   "count": 4
  },
  {
   "move": "(戻る) → /record/large-restaurant-five-serving-robots-longer-wait",
   "count": 4
  },
  {
   "move": "/ → /series4",
   "count": 2
  },
  {
   "move": "/series6 → /record/pi05-mecharm-first-real-run",
   "count": 2
  },
  {
   "move": "/serving-robot-one-less-staff → /",
   "count": 2
  },
  {
   "move": "/ → /series6",
   "count": 2
  },
  {
   "move": "(戻る) → /",
   "count": 2
  },
  {
   "move": "/ → /",
   "count": 2
  },
  {
   "move": "/record/large-restaurant-five-serving-robots-longer-wait → /series8",
   "count": 2
  },
  {
   "move": "/issues → /manga-archive",
   "count": 2
  },
  {
   "move": "/record/pi05-first-block-in-box → /series6",
   "count": 1
  },
  {
   "move": "/series6 → /gpu-buy-or-rent",
   "count": 1
  },
  {
   "move": "(戻る) → /record/rewrite-research-report",
   "count": 1
  },
  {
   "move": "/record/rewrite-research-report → /series4",
   "count": 1
  },
  {
   "move": "/ → /message",
   "count": 1
  },
  {
   "move": "/message → /",
   "count": 1
  },
  {
   "move": "/record/service-robot-last-mile → /record/service-robot-last-mile",
   "count": 1
  },
  {
   "move": "/record/from-sim-series-to-lp → /series4",
   "count": 1
  },
  {
   "move": "(戻る) → /record/from-sim-series-to-lp",
   "count": 1
  },
  {
   "move": "/record/beyond-imitation-learning → /record/beyond-imitation-learning",
   "count": 1
  },
  {
   "move": "/series6 → /record/teach-replay-19-demos",
   "count": 1
  },
  {
   "move": "/series6 → /record/pi05-mecharm-demo-to-inference",
   "count": 1
  },
  {
   "move": "(戻る) → /record/pi05-mecharm-demo-to-inference",
   "count": 1
  },
  {
   "move": "/record/youtube-views-to-right-viewers → /",
   "count": 1
  },
  {
   "move": "/consult → /one-year",
   "count": 1
  },
  {
   "move": "/record/from-sim-series-to-lp → /serving-robot-one-less-staff",
   "count": 1
  },
  {
   "move": "/record/serving-robot-cost-subsidy → /",
   "count": 1
  },
  {
   "move": "/record/serving-robot-hidden-waits → /issues",
   "count": 1
  },
  {
   "move": "/issues → /issues/updates",
   "count": 1
  },
  {
   "move": "/issues/updates → /manga-archive",
   "count": 1
  },
  {
   "move": "/record/rewind-and-correct-pi05 → /",
   "count": 1
  },
  {
   "move": "/manga-archive → /manga/ep133",
   "count": 1
  },
  {
   "move": "/manga/ep133 → /manga/ep132",
   "count": 1
  },
  {
   "move": "/manga/ep132 → /",
   "count": 1
  },
  {
   "move": "/ → /record/gemini-api-4koma",
   "count": 1
  },
  {
   "move": "/record/check-serving-robot-sim-with-phone → /record/check-serving-robot-sim-with-phone",
   "count": 1
  },
  {
   "move": "/english-4-koma/ep133 → /manga-archive-en",
   "count": 1
  },
  {
   "move": "/ → /series1",
   "count": 1
  },
  {
   "move": "/ → /record/robot-research-data-index-and-provenance",
   "count": 1
  },
  {
   "move": "/record/robot-ai-divides-like-brain → /record/robot-ai-divides-like-brain",
   "count": 1
  },
  {
   "move": "/record/serving-robot-one-per-narrow-restaurant → /series8",
   "count": 1
  },
  {
   "move": "/record/pi05-all-three-positions → /",
   "count": 1
  },
  {
   "move": "/ → /issues",
   "count": 1
  },
  {
   "move": "/record/day122 → /record/day120",
   "count": 1
  },
  {
   "move": "/record/day120 → /record/day113",
   "count": 1
  },
  {
   "move": "/record/day113 → /record/day114",
   "count": 1
  },
  {
   "move": "/record/day114 → /record/day120",
   "count": 1
  },
  {
   "move": "/issues/motion-portability → /record/robotics-review-cards-by-category",
   "count": 1
  },
  {
   "move": "/record/day126 → /issues",
   "count": 1
  },
  {
   "move": "(戻る) → /record/day126",
   "count": 1
  }
 ],
 "referrers": [
  {
   "from": "（直接・不明）",
   "count": 153
  },
  {
   "from": "www.google.com",
   "count": 90
  },
  {
   "from": "（サイト内）",
   "count": 81
  },
  {
   "from": "www.linkedin.com",
   "count": 10
  },
  {
   "from": "search.yahoo.co.jp",
   "count": 10
  },
  {
   "from": "t.co",
   "count": 4
  },
  {
   "from": "chatgpt.com（リンクの印）",
   "count": 4
  },
  {
   "from": "teams.public.onecdn.static.microsoft",
   "count": 3
  },
  {
   "from": "<自治体のサイト>",
   "count": 2
  },
  {
   "from": "www.bing.com",
   "count": 2
  },
  {
   "from": "studio.design",
   "count": 2
  },
  {
   "from": "keep.google.com",
   "count": 2
  },
  {
   "from": "com.google.android.googlequicksearchbox",
   "count": 1
  },
  {
   "from": "com.linkedin.android",
   "count": 1
  },
  {
   "from": "www.youtube.com",
   "count": 1
  },
  {
   "from": "p2mtest1112（リンクの印）",
   "count": 1
  }
 ],
 "utmSources": [
  {
   "source": "chatgpt.com",
   "count": 4
  },
  {
   "source": "p2mtest1112",
   "count": 1
  }
 ],
 "clicks": [
  {
   "target": "/｜ヘッダー",
   "count": 11
  },
  {
   "target": "btn:シリーズ｜ヘッダー",
   "count": 7
  },
  {
   "target": "/issues｜ヘッダー",
   "count": 5
  },
  {
   "target": "iframe:/sim/serving-robot.html｜sim",
   "count": 4
  },
  {
   "target": "/manga-archive｜ヘッダー",
   "count": 4
  },
  {
   "target": "btn:次のコマ｜ページの中身",
   "count": 4
  },
  {
   "target": "/series4｜ページの中身",
   "count": 3
  },
  {
   "target": "#about｜フッター",
   "count": 3
  },
  {
   "target": "x.com｜本文",
   "count": 3
  },
  {
   "target": "www.youtube.com｜ヘッダー",
   "count": 3
  },
  {
   "target": "btn:メニュー｜ヘッダー",
   "count": 3
  },
  {
   "target": "btn:AIで読む:開く｜ai",
   "count": 3
  },
  {
   "target": "btn:Load more｜ページの中身",
   "count": 3
  },
  {
   "target": "/｜現在地",
   "count": 2
  },
  {
   "target": "/｜フッター",
   "count": 2
  },
  {
   "target": "www.youtube.com｜本文",
   "count": 2
  },
  {
   "target": "iframe:/embeds/top-video.html｜ページの中身",
   "count": 2
  },
  {
   "target": "/series6｜ページの中身",
   "count": 2
  },
  {
   "target": "iframe:/embeds/day126-F4igYhgG.html｜本文",
   "count": 2
  },
  {
   "target": "素材 #files｜記事の素材",
   "count": 2
  },
  {
   "target": "/files/LOG452/LOG452_full.md｜本文",
   "count": 2
  },
  {
   "target": "/series6｜現在地",
   "count": 1
  },
  {
   "target": "/gpu-buy-or-rent｜ページの中身",
   "count": 1
  },
  {
   "target": "/message｜フッター",
   "count": 1
  },
  {
   "target": "/record/service-robot-last-mile｜その他",
   "count": 1
  },
  {
   "target": "/series4｜現在地",
   "count": 1
  },
  {
   "target": "/record/beyond-imitation-learning｜その他",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG392_frozen_vla_ports.html｜本文",
   "count": 1
  },
  {
   "target": "/files/LOG392/01_research_human_wearable_data_20261027.md｜本文",
   "count": 1
  },
  {
   "target": "/files/LOG392/LOG392_files.zip｜本文",
   "count": 1
  },
  {
   "target": "/series5｜現在地",
   "count": 1
  },
  {
   "target": "www.pi.website｜本文",
   "count": 1
  },
  {
   "target": "/files/LOG337/LOG337_full.md｜本文",
   "count": 1
  },
  {
   "target": "/files/LOG337/index.json｜本文",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG399_research_to_work.html｜本文",
   "count": 1
  },
  {
   "target": "根拠：1年の記録 /one-year｜ページの中身",
   "count": 1
  },
  {
   "target": "/consult｜フッター",
   "count": 1
  },
  {
   "target": "#alphanistのコードは未公開で土台のomniresetは公開済みだった｜目次",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG379_where_it_jams.html｜本文",
   "count": 1
  },
  {
   "target": "/issues/updates｜ページの中身",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG408_tate_4koma.html｜本文",
   "count": 1
  },
  {
   "target": "/manga/ep133｜その他",
   "count": 1
  },
  {
   "target": "/manga/ep132｜前後の記事",
   "count": 1
  },
  {
   "target": "/record/lighting-breaks-picking｜ページの中身",
   "count": 1
  },
  {
   "target": "/record/gemini-api-4koma｜ページの中身",
   "count": 1
  },
  {
   "target": "/record/check-serving-robot-sim-with-phone｜その他",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG414_sheet_to_assumptions.html｜本文",
   "count": 1
  },
  {
   "target": "/manga-archive-en｜ヘッダー",
   "count": 1
  },
  {
   "target": "/series1｜ページの中身",
   "count": 1
  },
  {
   "target": "iframe:embed.figma.com｜ページの中身",
   "count": 1
  },
  {
   "target": "/record/robot-research-data-index-and-provenance｜ページの中身",
   "count": 1
  },
  {
   "target": "#about｜ヘッダー",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG420_link_by_text.html｜本文",
   "count": 1
  },
  {
   "target": "/record/robot-ai-divides-like-brain｜その他",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG424_brain_robot_layers.html｜本文",
   "count": 1
  },
  {
   "target": "/series8｜現在地",
   "count": 1
  },
  {
   "target": "iframe:/embeds/hd-map-how-thin-LBeozryN.html｜本文",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG430_ai_vs_people.html｜本文",
   "count": 1
  },
  {
   "target": "iframe:/embeds/LOG429_six_picks.html｜本文",
   "count": 1
  },
  {
   "target": "#作業ログ--考察記事を選んでから2本目を書き出し直すまで｜目次",
   "count": 1
  }
 ],
 "areas": [
  {
   "area": "本文",
   "count": 52
  },
  {
   "area": "ページの中身",
   "count": 40
  },
  {
   "area": "ヘッダー",
   "count": 40
  },
  {
   "area": "フッター",
   "count": 11
  },
  {
   "area": "sim",
   "count": 10
  },
  {
   "area": "その他",
   "count": 7
  },
  {
   "area": "現在地",
   "count": 6
  },
  {
   "area": "目次",
   "count": 6
  },
  {
   "area": "前後の記事",
   "count": 3
  },
  {
   "area": "ai",
   "count": 3
  },
  {
   "area": "関連記事",
   "count": 3
  },
  {
   "area": "記事の素材",
   "count": 2
  }
 ],
 "deadClicks": [
  {
   "where": "/record/day126 (リンクなし):p",
   "count": 6
  },
  {
   "where": "/issues/updates (リンクなし):th",
   "count": 2
  },
  {
   "where": "/record/hd-map-how-thin (リンクなし):p",
   "count": 2
  },
  {
   "where": "/record/day99 (リンクなし):p",
   "count": 2
  },
  {
   "where": "/consult (リンクなし):div",
   "count": 2
  },
  {
   "where": "/record/large-restaurant-five-serving-robots-longer-wait (リンクなし):div",
   "count": 2
  },
  {
   "where": "/record/linkedin-analytics-research-posts (リンクなし):p",
   "count": 1
  },
  {
   "where": "/record/beyond-imitation-learning (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/pi05-mecharm-demo-to-inference (リンクなし):code",
   "count": 1
  },
  {
   "where": "/record/cobot-deployment-law-and-coordination (リンクなし):p",
   "count": 1
  },
  {
   "where": "/one-year (リンクなし):rect",
   "count": 1
  },
  {
   "where": "/record/alphanist-binary-reward-assembly (リンクなし):li",
   "count": 1
  },
  {
   "where": "/record/alphanist-binary-reward-assembly (リンクなし):td",
   "count": 1
  },
  {
   "where": "/serving-robot-one-less-staff (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/serving-robot-hidden-waits (リンクなし):h1",
   "count": 1
  },
  {
   "where": "/record/serving-robot-hidden-waits (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/road-marking-job-post-and-physical-ai (リンクなし):p",
   "count": 1
  },
  {
   "where": "/record/video-patterns-and-try-it (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/video-patterns-and-try-it (リンクなし):p",
   "count": 1
  },
  {
   "where": "/record/serving-robot-faceoff-staff-resolves (リンクなし):img",
   "count": 1
  },
  {
   "where": "/record/day18 (リンクなし):p",
   "count": 1
  },
  {
   "where": "/issues (リンクなし):nav",
   "count": 1
  },
  {
   "where": "/series6 (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/large-restaurant-five-serving-robots-longer-wait (リンクなし):span",
   "count": 1
  },
  {
   "where": "/record/first-video-end-to-end (リンクなし):img",
   "count": 1
  },
  {
   "where": "/ (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/serving-robot-hand-tasks-specialist-gripper (リンクなし):div",
   "count": 1
  },
  {
   "where": "/record/youtube-opening-question-first (リンクなし):h1",
   "count": 1
  }
 ]
}
```


### Perplexity-User を名乗った訪問（cr_since1109_perplexity_user.json・/api/cr-stats）

11/9 からの全クローラーの数と、Perplexity-User の1回ずつの訪問（hits）。errors には、同じ時刻帯に秘密のファイルの置き場所を探した404 が並んでいる。

```json
{
 "total": 10385,
 "truncated": false,
 "since": "2026-11-09",
 "bot": "Perplexity-User",
 "byBot": [
  {
   "bot": "meta-externalagent",
   "who": "Meta（AI）",
   "visits": 4405,
   "pages": 1587,
   "records": 800,
   "verified": 4400,
   "unverified": 5,
   "errors": 19,
   "last": "2026-11-14"
  },
  {
   "bot": "Amazonbot",
   "who": "Amazon（Alexa・AI）",
   "visits": 1640,
   "pages": 1136,
   "records": 554,
   "verified": 1635,
   "unverified": 5,
   "errors": 7,
   "last": "2026-11-14"
  },
  {
   "bot": "Applebot",
   "who": "Apple（Siri・検索・AI）",
   "visits": 1573,
   "pages": 887,
   "records": 298,
   "verified": 1570,
   "unverified": 3,
   "errors": 3,
   "last": "2026-11-14"
  },
  {
   "bot": "Googlebot",
   "who": "Google（検索）",
   "visits": 1085,
   "pages": 466,
   "records": 331,
   "verified": 1069,
   "unverified": 16,
   "errors": 12,
   "last": "2026-11-14"
  },
  {
   "bot": "ClaudeBot",
   "who": "Anthropic（学習）",
   "visits": 552,
   "pages": 479,
   "records": 124,
   "verified": 540,
   "unverified": 12,
   "errors": 24,
   "last": "2026-11-14"
  },
  {
   "bot": "OAI-SearchBot",
   "who": "OpenAI（ChatGPT の検索）",
   "visits": 316,
   "pages": 86,
   "records": 62,
   "verified": 305,
   "unverified": 11,
   "errors": 5,
   "last": "2026-11-14"
  },
  {
   "bot": "bingbot",
   "who": "Bing（検索。ChatGPT の検索・Copilot も使う）",
   "visits": 279,
   "pages": 101,
   "records": 77,
   "verified": 279,
   "unverified": 0,
   "errors": 0,
   "last": "2026-11-14"
  },
  {
   "bot": "GPTBot",
   "who": "OpenAI（学習）",
   "visits": 237,
   "pages": 229,
   "records": 49,
   "verified": 230,
   "unverified": 7,
   "errors": 7,
   "last": "2026-11-13"
  },
  {
   "bot": "その他",
   "who": "その他（「AIで読む」経由で、名乗りが一覧にない読み手）",
   "visits": 92,
   "pages": 66,
   "records": 64,
   "verified": 0,
   "unverified": 92,
   "errors": 0,
   "last": "2026-11-14"
  },
  {
   "bot": "GoogleOther",
   "who": "Google（その他）",
   "visits": 41,
   "pages": 22,
   "records": 10,
   "verified": 41,
   "unverified": 0,
   "errors": 0,
   "last": "2026-11-13"
  },
  {
   "bot": "YandexBot",
   "who": "Yandex（検索）",
   "visits": 34,
   "pages": 11,
   "records": 7,
   "verified": 31,
   "unverified": 3,
   "errors": 0,
   "last": "2026-11-14"
  },
  {
   "bot": "ChatGPT-User",
   "who": "ChatGPT（利用者の依頼で読む）",
   "visits": 31,
   "pages": 21,
   "records": 15,
   "verified": 27,
   "unverified": 4,
   "errors": 4,
   "last": "2026-11-14"
  },
  {
   "bot": "CCBot",
   "who": "Common Crawl（多くの AI の学習データ）",
   "visits": 30,
   "pages": 29,
   "records": 21,
   "verified": 0,
   "unverified": 30,
   "errors": 5,
   "last": "2026-11-13"
  },
  {
   "bot": "Bytespider",
   "who": "ByteDance（AI）",
   "visits": 12,
   "pages": 7,
   "records": 0,
   "verified": 0,
   "unverified": 12,
   "errors": 5,
   "last": "2026-11-13"
  },
  {
   "bot": "Claude-User",
   "who": "Claude（利用者の依頼で読む）",
   "visits": 12,
   "pages": 6,
   "records": 1,
   "verified": 0,
   "unverified": 12,
   "errors": 0,
   "last": "2026-11-13"
  },
  {
   "bot": "PerplexityBot",
   "who": "Perplexity（検索）",
   "visits": 11,
   "pages": 9,
   "records": 1,
   "verified": 0,
   "unverified": 11,
   "errors": 5,
   "last": "2026-11-13"
  },
  {
   "bot": "cohere-ai",
   "who": "Cohere",
   "visits": 10,
   "pages": 10,
   "records": 0,
   "verified": 0,
   "unverified": 10,
   "errors": 8,
   "last": "2026-11-13"
  },
  {
   "bot": "Baiduspider",
   "who": "Baidu（検索）",
   "visits": 6,
   "pages": 2,
   "records": 0,
   "verified": 0,
   "unverified": 6,
   "errors": 1,
   "last": "2026-11-13"
  },
  {
   "bot": "DuckAssistBot",
   "who": "DuckDuckGo（AI の回答）",
   "visits": 5,
   "pages": 5,
   "records": 0,
   "verified": 0,
   "unverified": 5,
   "errors": 5,
   "last": "2026-11-13"
  },
  {
   "bot": "Perplexity-User",
   "who": "Perplexity（利用者の依頼で読む）",
   "visits": 5,
   "pages": 5,
   "records": 0,
   "verified": 0,
   "unverified": 5,
   "errors": 3,
   "last": "2026-11-13"
  },
  {
   "bot": "YouBot",
   "who": "You.com",
   "visits": 4,
   "pages": 4,
   "records": 0,
   "verified": 0,
   "unverified": 4,
   "errors": 4,
   "last": "2026-11-13"
  },
  {
   "bot": "DuckDuckBot",
   "who": "DuckDuckGo（検索）",
   "visits": 3,
   "pages": 1,
   "records": 0,
   "verified": 3,
   "unverified": 0,
   "errors": 0,
   "last": "2026-11-13"
  },
  {
   "bot": "Google-CloudVertexBot",
   "who": "Google（Vertex AI）",
   "visits": 2,
   "pages": 1,
   "records": 0,
   "verified": 0,
   "unverified": 2,
   "errors": 0,
   "last": "2026-11-13"
  }
 ],
 "byWeek": [
  {
   "week": "2026-11-09",
   "total": 10385,
   "bots": "meta-externalagent 4405、Amazonbot 1640、Applebot 1573、Googlebot 1085、ClaudeBot 552、OAI-SearchBot 316、bingbot 279、GPTBot 237、その他 92、GoogleOther 41、YandexBot 34、ChatGPT-User 31、CCBot 30、Bytespider 12、Claude-User 12、PerplexityBot 11、cohere-ai 10、Baiduspider 6、DuckAssistBot 5、Perplexity-User 5、YouBot 4、DuckDuckBot 3、Google-CloudVertexBot 2"
  }
 ],
 "byPage": [
  {
   "path": "/%2Fapi/config",
   "visits": 1,
   "bots": "Perplexity-User"
  },
  {
   "path": "/%2Fsettings",
   "visits": 1,
   "bots": "Perplexity-User"
  },
  {
   "path": "/settings",
   "visits": 1,
   "bots": "Perplexity-User"
  },
  {
   "path": "/manage/env",
   "visits": 1,
   "bots": "Perplexity-User"
  },
  {
   "path": "/__debug__/",
   "visits": 1,
   "bots": "Perplexity-User"
  }
 ],
 "byVia": [
  {
   "via": "gemini",
   "visits": 232,
   "records": 200,
   "bots": "Amazonbot 175、その他 52、meta-externalagent 5",
   "last": "2026-11-14"
  },
  {
   "via": "copy",
   "visits": 86,
   "records": 75,
   "bots": "Amazonbot 46、その他 40",
   "last": "2026-11-14"
  },
  {
   "via": "chatgpt",
   "visits": 3,
   "records": 3,
   "bots": "meta-externalagent 2、Googlebot 1",
   "last": "2026-11-14"
  },
  {
   "via": "claude",
   "visits": 2,
   "records": 1,
   "bots": "Amazonbot 1、meta-externalagent 1",
   "last": "2026-11-13"
  }
 ],
 "byViaWeek": [
  {
   "week": "2026-11-09",
   "total": 323,
   "via": "gemini 232、copy 86、chatgpt 3、claude 2"
  }
 ],
 "errors": [
  {
   "path": "/files/LOG445/",
   "status": "404",
   "visits": 4,
   "bots": "Amazonbot、meta-externalagent",
   "last": "2026-11-14"
  },
  {
   "path": "/record/x.md",
   "status": "404",
   "visits": 4,
   "bots": "meta-externalagent",
   "last": "2026-11-14"
  },
  {
   "path": "/files/LOG468/03_sec02.txt",
   "status": "404",
   "visits": 2,
   "bots": "Googlebot",
   "last": "2026-11-11"
  },
  {
   "path": "/record/",
   "status": "404",
   "visits": 2,
   "bots": "meta-externalagent",
   "last": "2026-11-12"
  },
  {
   "path": "/manga/ep8",
   "status": "404",
   "visits": 2,
   "bots": "meta-externalagent",
   "last": "2026-11-12"
  },
  {
   "path": "/record/%7Bs.img.startsWith('/')",
   "status": "404",
   "visits": 2,
   "bots": "GPTBot、ClaudeBot",
   "last": "2026-11-12"
  },
  {
   "path": "/files/LOG493/%7Bs.img.startsWith('/')",
   "status": "404",
   "visits": 2,
   "bots": "GPTBot、ClaudeBot",
   "last": "2026-11-12"
  },
  {
   "path": "/files/LOG455/%7BLOGO%7D",
   "status": "404",
   "visits": 1,
   "bots": "Amazonbot",
   "last": "2026-11-09"
  },
  {
   "path": "/files/LOG457/10_",
   "status": "404",
   "visits": 1,
   "bots": "Amazonbot",
   "last": "2026-11-09"
  },
  {
   "path": "/%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%88%E5%86%85%E3%81%AB%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%93%E3%81%A7",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-11"
  },
  {
   "path": "/ads.txt",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-12"
  },
  {
   "path": "/bpru6kgcx7ptz1it6zy0",
   "status": "404",
   "visits": 1,
   "bots": "DuckAssistBot",
   "last": "2026-11-13"
  },
  {
   "path": "/.changeset/config.json",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-13"
  },
  {
   "path": "/vercel.json",
   "status": "404",
   "visits": 1,
   "bots": "OAI-SearchBot",
   "last": "2026-11-13"
  },
  {
   "path": "/nx.json",
   "status": "404",
   "visits": 1,
   "bots": "Amazonbot",
   "last": "2026-11-13"
  },
  {
   "path": "/admin/config.json",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/railway.json",
   "status": "404",
   "visits": 1,
   "bots": "OAI-SearchBot",
   "last": "2026-11-13"
  },
  {
   "path": "/..../..../..../..../proc/self/environ",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/proc/self/environ",
   "status": "404",
   "visits": 1,
   "bots": "Bytespider",
   "last": "2026-11-13"
  },
  {
   "path": "/google-credentials.json",
   "status": "404",
   "visits": 1,
   "bots": "Applebot",
   "last": "2026-11-13"
  },
  {
   "path": "/gcp-key.json",
   "status": "404",
   "visits": 1,
   "bots": "GPTBot",
   "last": "2026-11-13"
  },
  {
   "path": "/gcp-credentials.json",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/.aws/credentials%3F.txt",
   "status": "404",
   "visits": 1,
   "bots": "CCBot",
   "last": "2026-11-13"
  },
  {
   "path": "/keys/service-account.json",
   "status": "404",
   "visits": 1,
   "bots": "DuckAssistBot",
   "last": "2026-11-13"
  },
  {
   "path": "/public/admin.json",
   "status": "404",
   "visits": 1,
   "bots": "YouBot",
   "last": "2026-11-13"
  },
  {
   "path": "/var/run/secrets/kubernetes.io/serviceaccount/token",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/sa.json",
   "status": "404",
   "visits": 1,
   "bots": "CCBot",
   "last": "2026-11-13"
  },
  {
   "path": "/config/gcp-credentials.json",
   "status": "404",
   "visits": 1,
   "bots": "DuckAssistBot",
   "last": "2026-11-13"
  },
  {
   "path": "/firebase.json",
   "status": "404",
   "visits": 1,
   "bots": "Amazonbot",
   "last": "2026-11-13"
  },
  {
   "path": "/firebase-admin.json",
   "status": "404",
   "visits": 1,
   "bots": "OAI-SearchBot",
   "last": "2026-11-13"
  },
  {
   "path": "/google-service-account.json",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/app/.config/gcloud/application_default_credentials.json",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-13"
  },
  {
   "path": "/gc-service.json",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/push_config.json",
   "status": "404",
   "visits": 1,
   "bots": "GPTBot",
   "last": "2026-11-13"
  },
  {
   "path": "/gcp-service.json",
   "status": "404",
   "visits": 1,
   "bots": "ChatGPT-User",
   "last": "2026-11-13"
  },
  {
   "path": "/google-services.json",
   "status": "404",
   "visits": 1,
   "bots": "Applebot",
   "last": "2026-11-13"
  },
  {
   "path": "/secrets.json",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/service-account.json",
   "status": "404",
   "visits": 1,
   "bots": "CCBot",
   "last": "2026-11-13"
  },
  {
   "path": "/.aws/credentials",
   "status": "404",
   "visits": 1,
   "bots": "OAI-SearchBot",
   "last": "2026-11-13"
  },
  {
   "path": "/serviceAccountKey.json",
   "status": "404",
   "visits": 1,
   "bots": "ChatGPT-User",
   "last": "2026-11-13"
  },
  {
   "path": "/.git/config",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/firebase-service-account.json",
   "status": "404",
   "visits": 1,
   "bots": "Applebot",
   "last": "2026-11-13"
  },
  {
   "path": "/dashboard",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/service_account.json",
   "status": "404",
   "visits": 1,
   "bots": "GPTBot",
   "last": "2026-11-13"
  },
  {
   "path": "/admin",
   "status": "404",
   "visits": 1,
   "bots": "Amazonbot",
   "last": "2026-11-13"
  },
  {
   "path": "/settings",
   "status": "404",
   "visits": 1,
   "bots": "Perplexity-User",
   "last": "2026-11-13"
  },
  {
   "path": "/Dockerfile",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/config/default.json",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/env.json",
   "status": "404",
   "visits": 1,
   "bots": "Amazonbot",
   "last": "2026-11-13"
  },
  {
   "path": "/config/custom-environment-variables.json",
   "status": "404",
   "visits": 1,
   "bots": "DuckAssistBot",
   "last": "2026-11-13"
  },
  {
   "path": "/_payload.json",
   "status": "404",
   "visits": 1,
   "bots": "ChatGPT-User",
   "last": "2026-11-13"
  },
  {
   "path": "/dashboard/_payload.json",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-13"
  },
  {
   "path": "/admin/_payload.json",
   "status": "404",
   "visits": 1,
   "bots": "OAI-SearchBot",
   "last": "2026-11-13"
  },
  {
   "path": "/.netlify/state.json",
   "status": "404",
   "visits": 1,
   "bots": "Baiduspider",
   "last": "2026-11-13"
  },
  {
   "path": "/.output/nitro.json",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/.vercel/project.json",
   "status": "404",
   "visits": 1,
   "bots": "YouBot",
   "last": "2026-11-13"
  },
  {
   "path": "/.next/routes-manifest.json",
   "status": "404",
   "visits": 1,
   "bots": "DuckAssistBot",
   "last": "2026-11-13"
  },
  {
   "path": "/.next/required-server-files.json",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/config.json",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/.well-known/jwks.json",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-13"
  },
  {
   "path": "/firebase-config.json",
   "status": "404",
   "visits": 1,
   "bots": "GPTBot",
   "last": "2026-11-13"
  },
  {
   "path": "/app-config.json",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/ngsw.json",
   "status": "404",
   "visits": 1,
   "bots": "CCBot",
   "last": "2026-11-13"
  },
  {
   "path": "/manage/env",
   "status": "404",
   "visits": 1,
   "bots": "Perplexity-User",
   "last": "2026-11-13"
  },
  {
   "path": "/health",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/actuator/loggers",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-13"
  },
  {
   "path": "/debug/vars",
   "status": "404",
   "visits": 1,
   "bots": "Bytespider",
   "last": "2026-11-13"
  },
  {
   "path": "/debug/pprof",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/v1/onboarding/config",
   "status": "404",
   "visits": 1,
   "bots": "ChatGPT-User",
   "last": "2026-11-13"
  },
  {
   "path": "/graphql",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/graphql/console",
   "status": "404",
   "visits": 1,
   "bots": "PerplexityBot",
   "last": "2026-11-13"
  },
  {
   "path": "/actuator/configprops",
   "status": "404",
   "visits": 1,
   "bots": "Bytespider",
   "last": "2026-11-13"
  },
  {
   "path": "/app_dev.php/_profiler",
   "status": "404",
   "visits": 1,
   "bots": "PerplexityBot",
   "last": "2026-11-13"
  },
  {
   "path": "/_profiler/latest",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/telescope/requests",
   "status": "404",
   "visits": 1,
   "bots": "PerplexityBot",
   "last": "2026-11-13"
  },
  {
   "path": "/_profiler/open",
   "status": "404",
   "visits": 1,
   "bots": "PerplexityBot",
   "last": "2026-11-13"
  },
  {
   "path": "/_ignition/health-check",
   "status": "404",
   "visits": 1,
   "bots": "CCBot",
   "last": "2026-11-13"
  },
  {
   "path": "/__debug__/",
   "status": "404",
   "visits": 1,
   "bots": "Perplexity-User",
   "last": "2026-11-13"
  },
  {
   "path": "/wp-json",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/server-status",
   "status": "404",
   "visits": 1,
   "bots": "cohere-ai",
   "last": "2026-11-13"
  },
  {
   "path": "/server-info",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/litellm/spend/logs",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-13"
  },
  {
   "path": "/litellm/models",
   "status": "404",
   "visits": 1,
   "bots": "GPTBot",
   "last": "2026-11-13"
  },
  {
   "path": "/litellm/health",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/nacos/v1/console/namespaces",
   "status": "404",
   "visits": 1,
   "bots": "Bytespider",
   "last": "2026-11-13"
  },
  {
   "path": "/flowise/api/v1/credentials",
   "status": "404",
   "visits": 1,
   "bots": "Bytespider",
   "last": "2026-11-13"
  },
  {
   "path": "/v1/auth/token/lookup-self",
   "status": "404",
   "visits": 1,
   "bots": "PerplexityBot",
   "last": "2026-11-13"
  },
  {
   "path": "/jenkins/credentials/store/system/domain/_/",
   "status": "404",
   "visits": 1,
   "bots": "YouBot",
   "last": "2026-11-13"
  },
  {
   "path": "/admin/transfer/tokens",
   "status": "404",
   "visits": 1,
   "bots": "Googlebot",
   "last": "2026-11-13"
  },
  {
   "path": "/v1/secret/data/",
   "status": "404",
   "visits": 1,
   "bots": "YouBot",
   "last": "2026-11-13"
  },
  {
   "path": "/record/x",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-13"
  },
  {
   "path": "/null",
   "status": "404",
   "visits": 1,
   "bots": "meta-externalagent",
   "last": "2026-11-14"
  },
  {
   "path": "/record/%7Bsrc%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/record/%7BURL%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/record/%7Bhref%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/files/LOG502/%7Bsrc%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/files/LOG506/%7BURL%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/files/LOG506/%7Bhref%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/files/LOG502/%7Bc%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  },
  {
   "path": "/files/LOG502/%7Be%5B1%5D%7D",
   "status": "404",
   "visits": 1,
   "bots": "ClaudeBot",
   "last": "2026-11-14"
  }
 ],
 "hits": [
  {
   "at": "2026-11-13 05:03:11",
   "path": "/__debug__/",
   "via": "",
   "status": "404",
   "verified": "0"
  },
  {
   "at": "2026-11-13 05:03:11",
   "path": "/manage/env",
   "via": "",
   "status": "404",
   "verified": "0"
  },
  {
   "at": "2026-11-13 05:03:10",
   "path": "/settings",
   "via": "",
   "status": "404",
   "verified": "0"
  },
  {
   "at": "2026-11-13 05:03:10",
   "path": "/%2Fsettings",
   "via": "",
   "status": "307",
   "verified": "0"
  },
  {
   "at": "2026-11-13 05:03:10",
   "path": "/%2Fapi/config",
   "via": "",
   "status": "307",
   "verified": "0"
  }
 ]
}
```


## 次は、11/16 の週の分析で、課題地図から課題のページへ進んだ回数を見る

課題地図の人の表示が30回に届くまでは、効いたかは判断できない。11/16 の分析では、途中の数として、課題地図 → 課題ごとのページへの移り方、「まず読む3つ」のカードとトップのバナーが押された回数を見て、改善 No.04 として記録する。あわせて、Search Console で 11/10〜11/13 の検索の表示回数を見て、人の表示が減った件（LOG494）の続きを確かめる。
