diff --git a/README.md b/README.md
index b5312e8..da1206d 100644
--- a/README.md
+++ b/README.md
@@ -95,11 +95,12 @@ AI活用の記事の末尾には、相談の案内（`/message?topic=ai` への
 AI に引用される数を増やすため、すべての記事に、AI が丸ごと読める全文ページを足し、記事ページに「AIで読む」ボタンを置いた。人が見る記事ページは変えていない。
 - 全文ページ：`/record/{slug}.md`（`src/pages/record/[slug].md.ts`・中身の作り方は `src/lib/fulltext.ts`）。記事の頭に題名・LOG番号・シリーズ・公開日・記事ページの住所・要約を付け、本文を飾りのない Markdown にする。長いコード・ログを分けた記事は、分ける前の全文（`public/files/LOG{N}/LOG{N}_full.md`・`.html`）を使う。Studio から移した記事（本文が HTML）は turndown で Markdown に直す。画像・図解・動画・サイトの中の住所は https://pixelstomotors.com から始まる住所にする
 - 検索では記事ページを正とする：`worker/index.js` が全文ページに `Link: <記事ページ>; rel="canonical"` と文字コードを付けて返す。記事ページの head の `<link rel="alternate" type="text/markdown">` と `/llms.txt` は、すべての記事でこの全文ページを指す
-- 「AIで読む」：タイトルの下の灰色の帯（`src/pages/record/[slug].astro` の `.ai-read`）。押すと ChatGPT・Claude・Perplexity・Gemini・質問文のコピーが出る。ChatGPT・Claude・Perplexity は住所の後ろの `q=` で質問文（記事と全文ページの住所つき）を入力欄に入れて開く。Gemini は入れる方法がないので、質問文をコピーしてから開く。前回選んだものを見た人のブラウザに覚え（`p2m-site-ai`）、次から一番上に「前回」を付けて出す
+- 「AIで読む」：タイトルの下の灰色の帯（`src/pages/record/[slug].astro` の `.ai-read`）。押すと ChatGPT・Claude・Perplexity・Gemini・質問文のコピーが出る。ChatGPT・Claude・Perplexity は住所の後ろの `q=` で質問文（記事と全文ページの住所つき）を入力欄に入れて開く。Gemini は入れる方法がないので、質問文をコピーしてから開く。Gemini のアプリはテキストのファイル（.md）を読まないので、Gemini の質問文だけは全文ページではなく記事ページ（`?via=gemini` 付き）を読ませる（2026-11-03）。前回選んだものを見た人のブラウザに覚え（`p2m-site-ai`）、次から一番上に「前回」を付けて出す
 - 押した数：`/api/ev-stats` の押したもの（場所 `ai`。`AIで読む chatgpt.com` など）。全文ページを AI のクローラーが読んだ数は `/api/cr-stats` のよく読まれたページ（`.md`）
 - ボタン経由で AI が読みに来た数：質問文の全文ページの住所には、押した AI の印 `?via=chatgpt`（claude・perplexity・gemini・copy）を付けている。`worker/index.js` がこの印の付いた全文ページへの訪問を、名乗りが一覧にない読み手（Gemini・人のブラウザなど）も「その他」として残す（`AI_VIA`）。数は `/api/cr-stats` の「AIで読む経由」（押した AI ごとに、実際に読みに来たのはだれか・週ごと）
 - 各社が `q=` の扱いを変えると、入力欄に入らなくなる。そのときは `AI_TARGETS` を直す
 - 元に戻す：この節を入れた commit を `git revert` する（全文ページ・ボタン・head・llms.txt・worker・turndown がまとめて戻る）
+- TOP の「このサイトの楽しみ方」（2026-11-03・`src/components/TopAiGuide.astro`）：ヒーローの下の、閉じると1行の帯。開くと質問を4つから選び、AI で開く（ChatGPT・Claude・Perplexity・Gemini・コピー。Gemini のアプリはテキストのファイルを読まないので、Gemini には同じ中身の HTML 版 `/llms`（ファイルは /llms.html。配信の設定で /llms.html は /llms へ転送される。`src/lib/llmsGuide.ts` が共通の中身）を読ませる）。AI にはサイトの案内（`/llms.txt?via=…`）を読ませる。`/llms.txt` の記録の行には公開日を添えている（「前に来たときから」のため）。前に TOP を開いた日は見た人のブラウザに覚える（`p2m-site-top-visit`）。押した数は `/api/ev-stats` の「TOPの楽しみ方:…」、AI が読みに来た数は `/api/cr-stats` の「AIで読む経由」（ページが `/llms.txt` のもの）。質問を変えるときは `QUESTIONS` を直す
 
 ## 記事の変換の作り置き（2026-10-30）
 
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 0ed2af9..4525703 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 TopAiGuide from '../components/TopAiGuide.astro';
 import { allManga } from '../lib/records';
 // Studio のトップと同じく、4コマは新しい4話
 const mangaCards = allManga.slice(0, 4);
@@ -57,6 +58,9 @@ const jsonLd = [
     <video class="hero-video" src={media("/media/hakobu_fv_voice_eleven.mp4") + "#t=0.01"} controls muted autoplay loop playsinline></video>
   </section>
 
+  <!-- このサイトの楽しみ方（AI に読ませて聞く）。何度も来ている人向けに、ヒーローのすぐ下・閉じると1行（2026-11-03） -->
+  <TopAiGuide />
+
   <!-- 解説動画：YouTube の新着を GitHub の videos.json から読む埋め込み（Studio で使っていたものをそのまま） -->
   <section class="sec"><div class="panel">
     <div class="embed-wide"><iframe src="/embeds/top-video.html" sandbox="allow-scripts allow-popups allow-popups-to-escape-sandbox" title="解説動画" data-embed style="height:450px"></iframe></div>
diff --git a/src/pages/record/[slug].astro b/src/pages/record/[slug].astro
index be1a5f6..40fe86e 100644
--- a/src/pages/record/[slug].astro
+++ b/src/pages/record/[slug].astro
@@ -113,8 +113,15 @@ const nowCard = seriesNow || siteNow;
 // 前回選んだ AI を見た人のブラウザに覚え（p2m-site-ai）、次から一番上に出す。押した数は /api/ev-stats（場所 ai）で見る
 const mdUrl = `${SITE}${fullTextPath(r.slug)}`;
 // 全文ページの住所に ?via=（どの AI から来たか）を付ける。AI が読みに来たとき、ボタン経由だと worker/index.js が分けて数える（/api/cr-stats の「AIで読む経由」）
+// Gemini のアプリはテキストのファイル（.md）を読まず HTML だけ読むので、Gemini には記事ページ（HTML）を読ませる（2026-11-03）
 const aiPromptFor = (via) => {
   const md = `${mdUrl}?via=${via}`;
+  if (via === 'gemini') {
+    const page = `${url}?via=${via}`;
+    return isEnglish
+      ? `Please read this article and answer my questions.\nArticle: ${page}\n\nFirst, briefly summarize what was done and what was found. Then tell me what I should check to reproduce it in my own environment.`
+      : `この記事を読んで、質問に答えてください。\n記事: ${page}\n\nまず、何をして何が分かったのかを短くまとめてください。そのあと、私が同じことを自分の環境で試すときに、確かめることを教えてください。`;
+  }
   return isEnglish
     ? `Please read this article and answer my questions.\nArticle: ${url}\nFull text (including code and logs): ${md}\n\nFirst, briefly summarize what was done and what was found. Then tell me what I should check to reproduce it in my own environment.`
     : `この記事を読んで、質問に答えてください。\n記事: ${url}\n全文（コード・実行ログを含む）: ${md}\n\nまず、何をして何が分かったのかを短くまとめてください。そのあと、私が同じことを自分の環境で試すときに、確かめることを教えてください。`;
diff --git a/worker/index.js b/worker/index.js
index 3eb8a53..97496c6 100644
--- a/worker/index.js
+++ b/worker/index.js
@@ -49,7 +49,8 @@ export default {
     // 検索エンジン・AI のクローラーが読みに来たか（記録の失敗でページを止めない）
     // 記事の「AIで読む」から来た全文ページ（?via=chatgpt など）は、名乗りが一覧にない読み手（Gemini など）も「その他」として残す（2026-11-01）
     try {
-      const via = /^\/record\/[^/]+\.md$/.test(url.pathname) && AI_VIA.has(url.searchParams.get('via') || '') ? url.searchParams.get('via') : '';
+      // TOP の「このサイトの楽しみ方」から来た /llms.txt?via=… も同じく数える（2026-11-03）
+      const via = (/^\/record\/[^/]+\.md$/.test(url.pathname) || (/^\/record\/[^/.]+$/.test(url.pathname) && url.searchParams.get('via') === 'gemini') || url.pathname === '/llms.txt' || url.pathname === '/llms' || url.pathname === '/llms.html') && AI_VIA.has(url.searchParams.get('via') || '') ? url.searchParams.get('via') : '';
       const bot = crawlerOf(request, url) || (via ? 'その他' : null);
       if (bot) ctx.waitUntil(crRecord(request, env, url, bot, res.status, via).catch(() => {}));
     } catch { /* 数え損ねてもページは返す */ }
