commit fd321de
2026-11-12 15:28:48 +0900

トップ：ロボットに関わる人へのカードに小さな写真を見出しの横に足し、仕事の進め方の文から細かい数値を外した

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LevEXUNCxhaiqKmAnsEaNK


diff --git a/src/pages/index.astro b/src/pages/index.astro
index f25f5cf..5914ebb 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -42,30 +42,30 @@ const records = await allCards();
 const byLog = (n: number) => records.find((c) => c.day === `LOG${n}`)!;
 const shortTitle = (n: number) => byLog(n).title.replace(/^.*?\| /, '').replace(/ ― .*$/, '');
 const SOLVE = [
-  { who: 'ロボット会社の導入・営業の人へ',
+  { who: 'ロボット会社の導入・営業の人へ', img: '/site/series8-service-robot-unity.webp',
     pain: '導入先ごとに条件が違い、見積もりと段取りが毎回手作業になる',
     make: '店や病院の形と運び方を入れると、台数・待ち時間・詰まる場所が出る導入前の試算。Unity で動きを見せる再現。導入先が変わっても使える手順の型。',
     logs: [477, 485] },
-  { who: 'ロボットを入れる店や病院へ',
+  { who: 'ロボットを入れる店や病院へ', img: '/site/sim/hospital.jpg',
     pain: 'メーカーの説明だけでは、自分の現場で回るかが分からない',
     make: 'メーカーに寄らない立場での、入れる前の確かめ。通る道、待たせる場所、人の手が要る回数を、入れる前に数字で出します。',
     logs: [404, 389] },
-  { who: 'ロボットに AI で動きを覚えさせる人へ',
+  { who: 'ロボットに AI で動きを覚えさせる人へ', img: '/site/lab/run-poster.webp',
     pain: '学習させても、どこで失敗し、人がどれだけ手を出しているかが見えない',
     make: '失敗した所を人がゲームパッドで直し、そのまま学習のお手本にする道具。直す時間の計測。借りた GPU で学習を回す手順。',
     logs: [492, 419] },
-  { who: 'ロボットの横で働く人の画面と手順',
+  { who: 'ロボットの横で働く人の画面と手順', img: '/site/sim/serving.jpg',
     pain: 'ロボットが止まったとき、現場の人がどうすればいいか分からない',
     make: '止まった理由と次にやることが分かる画面と手順。現場の人に伝えるための説明の絵や動画も作ります。',
     logs: [439, 389] },
 ];
 const WAYS = [
   { h: 'ロボットより、現場に入れる手間を見る',
-    t: 'ロボットそのものは、大手とAIがこれからどんどん安く強くしていきます。それでも、現場ごとに違う導入の手間は残ります。その手間を、決まった見積もりと手順に変えるのが私の立ち位置です。', log: 481 },
+    t: 'ロボットそのものは、大手とAIがどんどん安く強くしていきます。残るのは、現場ごとに違う導入の手間。そこを、決まった見積もりと手順に変えます。', log: 481 },
   { h: '入れる前に、現場ごと再現して数える',
-    t: '配膳ロボットならファミレスの店を、搬送ロボットなら病院のフロアを、人の動きごと Unity で再現します。どこで詰まるかを数えてから決めます。速さを上げるより通る道を変えたほうが効く、という答えも、導入の前に出せます。', log: 477 },
+    t: '店や病院を、人の動きごと3Dで再現し、どこで詰まるかを入れる前に数えます。勘ではなく、数えた結果で決めます。', log: 477 },
   { h: '測ってから、縮める先を決める',
-    t: '実機のアームでは、AIの失敗を人が直す時間まで測りました。キーボードで直すと1回43.2秒、ゲームパッドに替えると14.5秒。どこに時間がかかっているかを数字にしてから、手を打ちます。', log: 492 },
+    t: '人が手を出している時間を測り、どこに時間がかかっているかを数字にしてから手を打ちます。直す先を、思いつきで選びません。', log: 492 },
 ];
 // 立ち位置の1文（2026-11-08 エイイチが決定）。タイトル・説明文・AI 向けの案内（src/lib/llmsGuide.ts の GUIDE_LEAD）とそろえる
 const LINE = '現場で人が受け入れて、使い続けられるロボットを';
@@ -165,8 +165,10 @@ const jsonLd = [
     <div class="sv-grid">
       {SOLVE.map((s) => (
         <div class="sv">
-          <p class="sv-who">{s.who}</p>
-          <p class="sv-pain">{s.pain}</p>
+          <div class="sv-head">
+            <img class="sv-img" src={s.img} alt="" loading="lazy" />
+            <div><p class="sv-who">{s.who}</p><p class="sv-pain">{s.pain}</p></div>
+          </div>
           <div class="sv-make"><span class="sv-tag">作れるもの</span><p>{s.make}</p></div>
           <div class="sv-links">{s.logs.map((n) => (
             <a href={`/record/${byLog(n).slug}`}><span class="sv-log">LOG{n}</span>{shortTitle(n)}<i class="ms" aria-hidden="true">arrow_forward</i></a>
@@ -277,6 +279,9 @@ const jsonLd = [
   .sv-lead { margin: -16px 0 24px; font: 400 14px/1.7 var(--sans); color: #333; }
   .sv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
   .sv { display: flex; flex-direction: column; gap: 12px; padding: 28px; background: #f7f7f7; border-radius: 8px; }
+  .sv-head { display: flex; gap: 20px; align-items: center; }
+  .sv-head > div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
+  .sv-img { flex: 0 0 120px; width: 120px; height: 90px; border-radius: 8px; object-fit: cover; }
   .sv-who { margin: 0; font: 500 13px/1.4 var(--sans); color: #666; }
   .sv-pain { margin: 0; font: 600 20px/1.5 var(--sans); }
   .sv-make { padding: 16px 20px; background: #fff; border-radius: 8px; flex: 1; }
@@ -316,6 +321,8 @@ const jsonLd = [
     .ways-stance br { display: none; }
     .sv { padding: 20px; }
     .sv-pain { font-size: 18px; }
+    .sv-head { gap: 14px; }
+    .sv-img { flex-basis: 84px; width: 84px; height: 84px; }
   }
   .guide-wrap { max-width: 1280px; margin: 0 auto; }
 </style>

