# ロボットに関わる人に、何を作れるかを伝える ― 研究サイトのトップに相手ごとの困りごとを並べた

- 記録: LOG493（ひとり研究所の裏側）
- 公開: 2026/11/12
- 記事のページ: https://pixelstomotors.com/record/top-page-what-i-can-make-for-robotics-teams
- サイト: Pixels to Motors（ADAPT DESIGN / 島津 栄一） https://pixelstomotors.com/
- 要約: ロボットに関わる人に何を解決できるかを伝えるには、スキルの一覧より、相手ごとの困りごとと作れるものを公開済みの記録で裏づけて並べる方が伝わる。pixelstomotors.com のトップに節を足し、事業所についてに立ち位置の1文と仕事の進め方を足した。

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

---

**ロボットに関わる人に、個人の研究で何を解決できるかを伝えるには、スキルを並べるより、相手ごとの困りごとと、そこに向けて作れるものを、公開済みの記録で裏づけて並べる方が伝わる。** ロボットの研究記録サイト Pixels to Motors（pixelstomotors.com ）のトップに、ロボット会社・ロボットを入れる店や病院・ロボットに AI で動きを覚えさせる人・ロボットの横で働く人の4者に向けた節を足し、その下の事業所についてに、立ち位置の1文と仕事の進め方3つを足した。

変えたことで、次のことが変わった。

- トップを下まで見た人が、だれのどんな困りごとに、何を作れるのかを、4枚のカードで見られる。前のトップには、何をしているか（Unity のシミュレーション、実機のアーム、借りた GPU での学習）は書いてあったが、だれの役に立つのかは書いていなかった
- どのカードにも、裏づけになる公開済みの記録（LOG）へのリンクが2本ずつ付いた。自分で言うだけでなく、やった記録をそのまま読める
- 相談を受けてから最初の公開までは15分（14:53 に相談、15:08 に公開）。そのあと公開した画面を見て3回直し、15:28 に今の形になった。前にプロフィールを書き直したときの時間は測っていない
- 効果（トップから記録への移動、AI がこのサイトを紹介するときの言い方）は、まだ測っていない。2週間後に、サイトの計測の数字で見る

Pixels to Motors は、フィジカルAI（AI がロボットなどの体を通して現実に作用する技術）の研究記録のサイトで、記事の大半は作業ログだ。だれが書いていて、その人に何を頼めるのかは、トップの一番下の事業所についての節にしか書いていなかった。しかもその節は、使っている道具の名前と、29年のデザイナー経験の話で終わっていた。

![直す前のトップの事業所についての節。写真・見出し・本文2段落・事業所名と研究分野・SNS だけで、だれのどんな困りごとに何ができるかは書いていない](https://pixelstomotors.com/media/LOG493_01_before_about.jpg)

始まりは、この相談だった。

> 自分のスキルや仕事を進める上での考え方やできることなどを整理して自分のプロフィールに掲載するのはどう思いますか？

やったことの全体は次のとおり。

| 順 | やったこと | なぜ | 結果 |
|---|---|---|---|
| 1 | 仕事の進め方を3つに絞り、それぞれに公開済みの LOG を付けた | 自分で言うだけの強みは、読む人が確かめられないため | 考え方3つと、裏づけの LOG 6本が決まった |
| 2 | 事業所についての節の案を、主役の違う3つで組んだ | 並べ方の違いではなく、何を主役にするかで選ぶため | 立ち位置の1文を主役にする案（B）に決まった |
| 3 | ロボットに関わる人へ、の節を足した | できることを、相手の困りごとから伝えるため | 4者の困りごとと作れるものを、その手前に置いた |
| 4 | 公開した画面を見て、3回直した | 写真の下の隙間、頭に入ってこないカード、意味のない数値 | 15:28 に今の形で公開した |

次の段落からが作業ログで、使ったコードは変更の差分とファイルの全文で載せている。


## 作業ログ ― スキルの一覧ではなく、考え方を記録で裏づける形にした

### 前の事業所についての節は、何をしているかだけを書いていた

最初の答えとして、スキルを並べる形ではなく、考え方を軸にして、それぞれを裏づける記録を添える形を勧めた。前の本文は、何をしているかは伝わる。ただ、エイイチが自分の強みと考えている部分、つまりロボットが今後どんな立ち位置になるかを見極めて、今の時点で運用に耐える落とし所へ持っていく、という見方はほとんど書かれていなかった。道具の名前はいずれ誰でも使えるようになるので、差がつくのは考え方の方だと考えた。

できることを一覧にすると、サービスのメニューに見えやすい。このサイトの決まり（研究の進め方の文書 MASTER）では、トップに相談の窓口を出さないことにしている。相談は研究の副産物として受け、窓口は記事とメッセージのフォームに限るためだ。なので、できることは並べず、考え方と記録で示す形にした。

### 仕事の進め方3つと、裏づけの LOG を選んだ

公開済みの記事の題名と書き出しを読み、考え方ごとに、それを実際にやった記録を2本ずつ選んだ。

| 考え方 | 何をしているか | 裏づけの LOG |
|---|---|---|
| ロボットより、現場に入れる手間を見る | ロボットそのものは大手と AI が安く強くしていく。残るのは現場ごとに違う導入の手間で、そこを決まった見積もりと手順に変える | LOG481・LOG389 |
| 入れる前に、現場ごと再現して数える | 店や病院を人の動きごと 3D で再現し、どこで詰まるかを入れる前に数える | LOG477・LOG404 |
| 測ってから、縮める先を決める | 人が手を出している時間を測り、どこに時間がかかっているかを数字にしてから手を打つ | LOG492・LOG490 |

LOG481 はロボットが安くなっても現場に入れる手間は残るという考察、LOG389 はロボットを広げるのは性能より現場で扱えるかだったという考察。LOG477 は病院の搬送ロボットで外来の廊下を避けて問題を4割減らした回、LOG404 は導入前に配膳ロボットの詰まりを動画で見比べた回。LOG492 は mechArm 270 を人が直す時間を測った回、LOG490 は mechArm 270 の待ちを測って Claude Fable 5.2 の使い所を決めた回だ。

3つ目の締めには、最初は前職の経験の話を入れていた。ほかの自己紹介でも何度も使っている話で、読む人には新しくないとエイイチが外すよう求めたので、測った結果で何が変わったかで締める文にした。

### 事業所についての3案は、主役が違う

デザインは、並べ方の違いではなく、何を主役にするかの違いで3案を出した（デザインの進め方の決まり）。どの案も、今の本文はそのまま残し、その下に足す形にした。

| 案 | 主役 | 見え方 |
|---|---|---|
| A | 考え方 | 番号付きで3つを縦に並べ、それぞれの下に LOG を2本ずつ。言いたいことが一番はっきり伝わるが、縦に長い |
| B | 立ち位置の1文 | 黒い帯に立ち位置の1文（現場ごとに違う導入の手間を、決まった見積もりと手順に変える。）を大きく置き、その下に考え方を3列で並べる |
| C | 記録 | 考え方の見出しの下に、記録の一覧と同じカードを3枚。中身は見えるが、考え方そのものは見出しだけになる |

![案A。仕事の進め方を01から03の番号付きで縦に並べ、それぞれの下に裏づけの LOG を2本ずつ付けた](https://pixelstomotors.com/media/LOG493_02_plan_a.jpg)

![案B。黒い帯に立ち位置の1文を大きく置き、その下に考え方を3列で並べた](https://pixelstomotors.com/media/LOG493_03_plan_b.jpg)

![案C。考え方の見出しの下に、記録の一覧と同じサムネイル付きのカードを3枚並べた](https://pixelstomotors.com/media/LOG493_04_plan_c.jpg)


## 作業ログ ― ロボットに関わる人へ、相手ごとの困りごとと作れるものを足した

### 何を解決でき、何を作れるかも伝える

3案を作っている途中で、もう一つの指示が来た。

> あともっとロボット企業やロボットに関わる人たちにスキルを活かして何を解決したり、何を作れるかも伝えた方がいいね。

事業所についての節は、だれが書いているかを伝える場所だ。そこに相手ごとの話まで入れると、1つの節で伝えることが2つになる。なので、別の節にした。相手は、ロボットを作る人、売る人、入れる人、横で働く人の4者に分けた。どれも、すでに公開している記録で裏づけられる相手に限った。

| 相手 | 困りごと | 作れるもの | 裏づけの LOG |
|---|---|---|---|
| ロボット会社の導入・営業の人 | 導入先ごとに条件が違い、見積もりと段取りが毎回手作業になる | 店や病院の形と運び方を入れると、台数・待ち時間・詰まる場所が出る導入前の試算。Unity で動きを見せる再現。導入先が変わっても使える手順の型 | LOG477・LOG485 |
| ロボットを入れる店や病院 | メーカーの説明だけでは、自分の現場で回るかが分からない | メーカーに寄らない立場での、入れる前の確かめ。通る道、待たせる場所、人の手が要る回数を数字で出す | LOG404・LOG389 |
| ロボットに AI で動きを覚えさせる人 | 学習させても、どこで失敗し、人がどれだけ手を出しているかが見えない | 失敗した所を人がゲームパッドで直し、そのまま学習のお手本にする道具。直す時間の計測。借りた GPU で学習を回す手順 | LOG492・LOG419 |
| ロボットの横で働く人の画面と手順 | ロボットが止まったとき、現場の人がどうすればいいか分からない | 止まった理由と次にやることが分かる画面と手順。現場の人に伝えるための説明の絵や動画 | LOG439・LOG389 |

![最初に組んだロボットに関わる人への節。2列2段のカードで、相手・困りごと・作れるもの・裏づけの LOG を並べた](https://pixelstomotors.com/media/LOG493_05_first_for_robotics.jpg)

この節にも、相談のボタンは置いていない。読む先は記録へのリンクだけにした。

### 案Bと、その手前の節で公開した

エイイチが選んだのは、事業所についてを案B（立ち位置の1文が主役）にし、その手前にロボットに関わる人への節を置く形だった。トップの index.astro（下の使った道具の節で説明）に2つの節を組み、ビルドと実際の画面で確かめてから 15:08 に公開した。

- ねらい：トップを下まで見た人に、だれに何を作れるのかと、どう考えて進めるのかを、この順で伝える
- 変わったこと：事業所についての手前に4者向けの節が入り、事業所についての中に立ち位置の1文と仕事の進め方3つが入った
- 見込める効果：トップから記録（LOG）へ移る人が増える。AI がこのサイトを紹介するときに、何を作れるのかまで言えるようになる。どちらも見込みで、2週間後にサイトの計測の数字で確かめる

![最初に公開した事業所についての節。黒い帯と考え方3つが本文の幅に入っていて、写真の下に大きな空白ができていた](https://pixelstomotors.com/media/LOG493_06_b_left_gap.jpg)


## 作業ログ ― 公開した画面を見て、3回直した

公開した画面を見たエイイチからの指示は、どれも短かった。直した順に、どこがどう変わったかを図にまとめた。

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

### 写真の下の隙間をなくし、プロフィールをひとまとめにした

公開した画面を見たエイイチから、写真の右の列をひとまとめにし、写真の下（左側）の空きをなくすよう指示があった。黒い帯と考え方3つは、写真の右の列の中に入っていたので、写真の下が空いていた。写真・見出し・本文・事業所名などの概要・SNS を1つのかたまりにし、黒い帯と考え方3つはその下に横幅いっぱいで置いた（15:14 公開）。

![直したあとの事業所についての節。上に写真とプロフィールのかたまり、その下に黒い帯の1文と考え方3つが横幅いっぱいに並ぶ](https://pixelstomotors.com/media/LOG493_07_after_about.jpg)

### 仕事の進め方の文から、細かい数値を外した

> この内容具体的な数値とかあっても意味なくない？

3つ目の文には、キーボードで直すと1回43.2秒、ゲームパッドに替えると14.5秒、という数字を入れていた。読む人がほしいのは秒数ではなく、測ってから決めるという進め方の方だ。3つとも、数値と細かい例を外して、何をどう決めるかだけを短く書いた。

| 考え方 | 前の文 | 直した文 |
|---|---|---|
| ロボットより、現場に入れる手間を見る | ロボットそのものは、大手とAIがこれからどんどん安く強くしていきます。それでも、現場ごとに違う導入の手間は残ります。その手間を、決まった見積もりと手順に変えるのが私の立ち位置です。 | ロボットそのものは、大手とAIがどんどん安く強くしていきます。残るのは、現場ごとに違う導入の手間。そこを、決まった見積もりと手順に変えます。 |
| 入れる前に、現場ごと再現して数える | 配膳ロボットならファミレスの店を、搬送ロボットなら病院のフロアを、人の動きごと Unity で再現します。どこで詰まるかを数えてから決めます。速さを上げるより通る道を変えたほうが効く、という答えも、導入の前に出せます。 | 店や病院を、人の動きごと3Dで再現し、どこで詰まるかを入れる前に数えます。勘ではなく、数えた結果で決めます。 |
| 測ってから、縮める先を決める | 実機のアームでは、AIの失敗を人が直す時間まで測りました。キーボードで直すと1回43.2秒、ゲームパッドに替えると14.5秒。どこに時間がかかっているかを数字にしてから、手を打ちます。 | 人が手を出している時間を測り、どこに時間がかかっているかを数字にしてから手を打ちます。直す先を、思いつきで選びません。 |

### 4者のカードに、小さな写真を見出しの横に足した

> LP的アイコンか写真があった方がいいかも。いまいち頭に入ってこないね

カードは文字だけで、どの現場の話かが一目で分からなかった。写真を上に大きく置く案（A）と、アイコンを左上に置く案（B）を、同じ節で組んで並べた。写真はサイトにすでにあるものを使った（Unity で建てた店、病院の搬送ロボット、机の上の mechArm 270、配膳ロボットと店員）。アイコンは、サイトですでに使っている Material Symbols の4つ（見積もり・病院・ロボットアーム・ヘッドセット）にした。

![写真の案。4枚のカードの上に、横長の写真を大きく置いた](https://pixelstomotors.com/media/LOG493_08_photo_large.jpg)

![アイコンの案。4枚のカードの左上に、黒い丸のアイコンを置いた](https://pixelstomotors.com/media/LOG493_09_icon.jpg)

写真を新しく作るなら ChatGPT に頼む、という申し出もあったが、手元の写真で合うかを先に見た。

2案を見たエイイチの指摘は、写真はもっと小さくていい、アイコンは右側が空いて見える、の2つだった。写真の案は1枚が大きすぎて、カードの半分を写真が占めていた。アイコンの案は、アイコンの右が空いていた。そこで、写真を 120×90px に小さくして見出しの左に置き、見出しを写真の右に並べた（スマホでは 84×84px）。写真の横に見出しが入るので、右の空きもなくなる（15:28 公開）。

- ねらい：カードを見た瞬間に、どの現場の話かが分かるようにする
- 変わったこと：4枚のカードの見出しの左に、現場の小さな写真が入った。写真の大きさはカードの高さを増やさない程度にした
- 見込める効果：4枚のうち自分に関係のあるカードに目が止まりやすくなる。見込みで、記録へのリンクが押された数で確かめる

![公開した今の、ロボットに関わる人への節。4枚のカードの見出しの左に、現場の小さな写真が入っている](https://pixelstomotors.com/media/LOG493_10_after_for_robotics.jpg)

![スマホで見た、ロボットに関わる人への節。カードは1列になり、写真は見出しの左に正方形で入る](https://pixelstomotors.com/media/LOG493_11_after_for_robotics_phone.jpg)

1枚目の Unity の店の画面だけ、人が写っていないので、ほかの3枚より少し浮いて見える。差し替えるなら ChatGPT で作る。


## 作業ログ ― 使った道具とコード

### Astro は、ページの部品と記事の Markdown からサイトを書き出す道具

[Astro](https://astro.build/) は、ページの部品（.astro のファイル）と記事の Markdown から、サイトの HTML を書き出す道具。pixelstomotors.com は Astro で作り、GitHub の main に push すると約1分で公開される。

| 言葉 | この記事での意味 |
|---|---|
| index.astro | トップのページの部品。節の並び・文・写真・スタイルが1つのファイルに入っている |
| ビルド（npm run build） | 部品から HTML を書き出すこと。通らなければ公開しない |
| コミット | 変更のひとまとまり。この記事では3回（889da18・ed8da04・fd321de） |

案を見比べるときは、公開しない確認用のページ（src/pages/preview/ の下）に案を並べて組み、画面写真で見てもらった。確認用のページは公開する前に消し、GitHub には入れていない。画面写真は、ブラウザを自動で動かす [Playwright](https://playwright.dev/) で、PC（幅1440px）とスマホ（幅390px）の2つの幅で撮った。サイトにあるお知らせの吹き出しやハコブくんの絵は、画面に固定で出るので、撮るときだけ隠した。

### コミット 889da18：ロボットに関わる人への節と、仕事の進め方を足した

```diff
commit 889da18
2026-11-12 15:08:07 +0900

トップ：ロボットに関わる人への節を足し、事業所についてに仕事の進め方（立ち位置の1文と考え方3つ）を足した

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 391fe9b..508da77 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -38,6 +38,35 @@ const series = [
   { href: '/series4', img: '/site/series4-behind-the-solo-lab-door.png', en: 'Behind the Solo Lab', ja: 'ひとり研究所の裏側', desc: 'フィジカルAIの研究をひとりで続けるために、AIと一緒に作ってきた仕組みの記録。サイト、動画、記録の整理など、研究の外側の作業をどう回しているかを残しています。' },
 ];
 const records = await allCards();
+// ロボットに関わる人へ・事業所についての仕事の進め方（2026-11-12 エイイチが B 案に決定）。裏づけは公開済みの記録
+const byLog = (n: number) => records.find((c) => c.day === `LOG${n}`)!;
+const shortTitle = (n: number) => byLog(n).title.replace(/^.*?\| /, '').replace(/ ― .*$/, '');
+const SOLVE = [
+  { who: 'ロボット会社の導入・営業の人へ',
+    pain: '導入先ごとに条件が違い、見積もりと段取りが毎回手作業になる',
+    make: '店や病院の形と運び方を入れると、台数・待ち時間・詰まる場所が出る導入前の試算。Unity で動きを見せる再現。導入先が変わっても使える手順の型。',
+    logs: [477, 485] },
+  { who: 'ロボットを入れる店や病院へ',
+    pain: 'メーカーの説明だけでは、自分の現場で回るかが分からない',
+    make: 'メーカーに寄らない立場での、入れる前の確かめ。通る道、待たせる場所、人の手が要る回数を、入れる前に数字で出します。',
+    logs: [404, 389] },
+  { who: 'ロボットに AI で動きを覚えさせる人へ',
+    pain: '学習させても、どこで失敗し、人がどれだけ手を出しているかが見えない',
+    make: '失敗した所を人がゲームパッドで直し、そのまま学習のお手本にする道具。直す時間の計測。借りた GPU で学習を回す手順。',
+    logs: [492, 419] },
+  { who: 'ロボットの横で働く人の画面と手順',
+    pain: 'ロボットが止まったとき、現場の人がどうすればいいか分からない',
+    make: '止まった理由と次にやることが分かる画面と手順。現場の人に伝えるための説明の絵や動画も作ります。',
+    logs: [439, 389] },
+];
+const WAYS = [
+  { h: 'ロボットより、現場に入れる手間を見る',
+    t: 'ロボットそのものは、大手とAIがこれからどんどん安く強くしていきます。それでも、現場ごとに違う導入の手間は残ります。その手間を、決まった見積もりと手順に変えるのが私の立ち位置です。', log: 481 },
+  { h: '入れる前に、現場ごと再現して数える',
+    t: '配膳ロボットならファミレスの店を、搬送ロボットなら病院のフロアを、人の動きごと Unity で再現します。どこで詰まるかを数えてから決めます。速さを上げるより通る道を変えたほうが効く、という答えも、導入の前に出せます。', log: 477 },
+  { h: '測ってから、縮める先を決める',
+    t: '実機のアームでは、AIの失敗を人が直す時間まで測りました。キーボードで直すと1回43.2秒、ゲームパッドに替えると14.5秒。どこに時間がかかっているかを数字にしてから、手を打ちます。', log: 492 },
+];
 // 立ち位置の1文（2026-11-08 エイイチが決定）。タイトル・説明文・AI 向けの案内（src/lib/llmsGuide.ts の GUIDE_LEAD）とそろえる
 const LINE = '現場で人が受け入れて、使い続けられるロボットを';
 const DESC = `${LINE}。そのために、サービスロボットを店に入れる前に何が起きるかを試算と3D（Unity）で確かめ、机の上のロボットアームにお手本から動きを覚えさせています。前提・結果・コードはすべて公開。29年のデザイナー経験をもつ島津 栄一（ADAPT DESIGN）の研究記録です。`;
@@ -128,6 +157,25 @@ const jsonLd = [
     <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）。相手ごとに、困りごと → 作れるもの → 裏づけの記録。
+       MASTER：トップに相談の窓口は出さないため、ボタンは置かない -->
+  <section class="sec" id="for-robotics"><div class="panel">
+    <h2 class="sec-h">ロボットに関わる人へ | For Robotics Teams</h2>
+    <p class="sv-lead">ロボットを作る人、売る人、入れる人、横で働く人。それぞれの困りごとに、これまでの記録から作れるものです。</p>
+    <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-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>
+          ))}</div>
+        </div>
+      ))}
+    </div>
+  </div></section>
+
   <section class="sec" id="about"><div class="panel">
     <h2 class="sec-h">事業所について | Sole Prop</h2>
     <div class="prop">
@@ -139,6 +187,19 @@ const jsonLd = [
       <div class="prop-body">
         <p class="prop-lead">画面（Pixels）のデザインから、動き（Motors）のデザインへ</p>
         <p class="prop-text">フィジカルAIの技術で作られたロボットが、現場で使い続けられるためのサービスやプロダクトをつくる。そのための研究所を目指しています。<br><br>29年にわたるデザイナーとしての知見を土台に、人とロボットの関わり（HRI）と、ロボットが学習できる環境づくりに取り組むデザイン事務所です。Unityでのシミュレーション、実機のロボットアーム、借りたGPUでの学習・推論までを自分の手で回し、AIエージェント（Claude Code）を設計と実装の相棒にしています。基準は物理精度ではなく体験の成立。画面上の「Pixels（デジタル）」の設計を、現実の「Motors（モーター）」へ——その過程を公開しています。</p>
+        <!-- 仕事の進め方（2026-11-12）。立ち位置の1文を黒い面に、その下に考え方3つ -->
+        <div class="ways">
+          <p class="ways-stance">現場ごとに違う導入の手間を、<br>決まった見積もりと手順に変える。</p>
+          <div class="ways-cols">
+            {WAYS.map((w) => (
+              <div class="way">
+                <p class="way-h">{w.h}</p>
+                <p class="way-t">{w.t}</p>
+                <a class="way-link" href={`/record/${byLog(w.log).slug}`}>LOG{w.log} を読む<i class="ms" aria-hidden="true">arrow_forward</i></a>
+              </div>
+            ))}
+          </div>
+        </div>
         <dl class="prop-facts">
           <div><dt>事業所名</dt><dd>ADAPT DESIGN</dd></div>
           <div><dt>設立</dt><dd>2021年10月</dd></div>
@@ -202,12 +263,36 @@ const jsonLd = [
   .prop-facts { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 16px 40px; }
   .prop-facts dt { font: 300 12px/15.6px var(--sans); color: #888; }
   .prop-facts dd { margin: 4px 0 0; font: 400 14px/1.5 var(--sans); }
+  /* 仕事の進め方：黒い面に立ち位置の1文、その下に考え方3つ */
+  .ways { margin-top: 12px; border-radius: 8px; overflow: hidden; }
+  .ways-stance { margin: 0; padding: 32px; background: var(--ink); color: #fff; font: 600 26px/1.5 var(--sans); }
+  .ways-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #f7f7f7; }
+  .way { padding: 24px; display: flex; flex-direction: column; gap: 8px; }
+  .way + .way { box-shadow: inset 1px 0 0 #e6e6e6; }
+  .way-h { margin: 0; font: 600 16px/1.5 var(--sans); }
+  .way-t { margin: 0; font: 400 13px/1.7 var(--sans); color: #333; flex: 1; }
+  .way-link { color: var(--ink); font: 500 14px/1.5 var(--sans); }
+  .way-link .ms, .sv-links .ms { vertical-align: -3px; margin-left: 4px; }
+  /* ロボットに関わる人へ：2×2。困りごとを見出しに、作れるものを白い面に */
+  .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-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; }
+  .sv-make p { margin: 6px 0 0; font: 400 14px/1.7 var(--sans); color: #333; }
+  .sv-tag { font: 600 12px/1 var(--sans); }
+  .sv-links { display: flex; flex-direction: column; gap: 6px; }
+  .sv-links a { color: var(--ink); font: 500 14px/1.5 var(--sans); text-decoration: underline; text-underline-offset: 3px; }
+  .sv-log { display: inline-block; margin-right: 8px; font: 600 13px/1 Inter, sans-serif; }
   .sns { display: flex; gap: 12px; }
   .sns a { display: inline-flex; color: #242424; }
   .sns a :global(svg) { height: 18px; width: auto; display: block; }
   .sns a:hover { color: #666; }
 
   @media (max-width: 1023px) {
+    .ways-cols, .sv-grid { grid-template-columns: 1fr; }
+    .way + .way { box-shadow: inset 0 1px 0 #e6e6e6; }
     .hero-wrap { padding: 0 24px; }
     .hero { padding: 96px 0 32px; gap: 32px; }
     .hero-head { flex-direction: column; align-items: flex-start; gap: 20px; }
@@ -227,6 +312,10 @@ const jsonLd = [
     .grid2 { grid-template-columns: 1fr; gap: 24px; }
     .grid4 { gap: 16px; }
     .prop { flex-direction: column; align-items: center; gap: 24px; }
+    .ways-stance { padding: 24px; font-size: 20px; }
+    .ways-stance br { display: none; }
+    .sv { padding: 20px; }
+    .sv-pain { font-size: 18px; }
   }
   .guide-wrap { max-width: 1280px; margin: 0 auto; }
 </style>

```

### コミット ed8da04：プロフィールをひとまとめにし、仕事の進め方を横幅いっぱいに置いた

```diff
commit ed8da04
2026-11-12 15:14:06 +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 508da77..f25f5cf 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -187,19 +187,6 @@ const jsonLd = [
       <div class="prop-body">
         <p class="prop-lead">画面（Pixels）のデザインから、動き（Motors）のデザインへ</p>
         <p class="prop-text">フィジカルAIの技術で作られたロボットが、現場で使い続けられるためのサービスやプロダクトをつくる。そのための研究所を目指しています。<br><br>29年にわたるデザイナーとしての知見を土台に、人とロボットの関わり（HRI）と、ロボットが学習できる環境づくりに取り組むデザイン事務所です。Unityでのシミュレーション、実機のロボットアーム、借りたGPUでの学習・推論までを自分の手で回し、AIエージェント（Claude Code）を設計と実装の相棒にしています。基準は物理精度ではなく体験の成立。画面上の「Pixels（デジタル）」の設計を、現実の「Motors（モーター）」へ——その過程を公開しています。</p>
-        <!-- 仕事の進め方（2026-11-12）。立ち位置の1文を黒い面に、その下に考え方3つ -->
-        <div class="ways">
-          <p class="ways-stance">現場ごとに違う導入の手間を、<br>決まった見積もりと手順に変える。</p>
-          <div class="ways-cols">
-            {WAYS.map((w) => (
-              <div class="way">
-                <p class="way-h">{w.h}</p>
-                <p class="way-t">{w.t}</p>
-                <a class="way-link" href={`/record/${byLog(w.log).slug}`}>LOG{w.log} を読む<i class="ms" aria-hidden="true">arrow_forward</i></a>
-              </div>
-            ))}
-          </div>
-        </div>
         <dl class="prop-facts">
           <div><dt>事業所名</dt><dd>ADAPT DESIGN</dd></div>
           <div><dt>設立</dt><dd>2021年10月</dd></div>
@@ -213,6 +200,19 @@ const jsonLd = [
         </dl>
       </div>
     </div>
+    <!-- 仕事の進め方（2026-11-12）。立ち位置の1文を黒い面に、その下に考え方3つ。写真の下に隙間ができないよう、プロフィールの外に全幅で置く -->
+    <div class="ways">
+      <p class="ways-stance">現場ごとに違う導入の手間を、<br>決まった見積もりと手順に変える。</p>
+      <div class="ways-cols">
+        {WAYS.map((w) => (
+          <div class="way">
+            <p class="way-h">{w.h}</p>
+            <p class="way-t">{w.t}</p>
+            <a class="way-link" href={`/record/${byLog(w.log).slug}`}>LOG{w.log} を読む<i class="ms" aria-hidden="true">arrow_forward</i></a>
+          </div>
+        ))}
+      </div>
+    </div>
   </div></section>
 </Base>
 
@@ -264,7 +264,7 @@ const jsonLd = [
   .prop-facts dt { font: 300 12px/15.6px var(--sans); color: #888; }
   .prop-facts dd { margin: 4px 0 0; font: 400 14px/1.5 var(--sans); }
   /* 仕事の進め方：黒い面に立ち位置の1文、その下に考え方3つ */
-  .ways { margin-top: 12px; border-radius: 8px; overflow: hidden; }
+  .ways { margin-top: 32px; border-radius: 8px; overflow: hidden; }
   .ways-stance { margin: 0; padding: 32px; background: var(--ink); color: #fff; font: 600 26px/1.5 var(--sans); }
   .ways-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #f7f7f7; }
   .way { padding: 24px; display: flex; flex-direction: column; gap: 8px; }

```

### コミット fd321de：カードに小さな写真を足し、仕事の進め方の文から数値を外した

```diff
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>

```

### index.astro の全文（fd321de の時点）

```astro
---
import Base from '../layouts/Base.astro';
import RecordCard from '../components/RecordCard.astro';
import { ymd } from '../lib/format';
import { media } from '../lib/media';
// SNS アイコン（Font Awesome Free 6.7.2・CC BY 4.0。ライセンス表記は各 SVG の中に残している）
import icGithub from '../icons/github.svg?raw';
import icLinkedin from '../icons/linkedin.svg?raw';
import icX from '../icons/square-x-twitter.svg?raw';
import icYoutube from '../icons/youtube.svg?raw';
import { allCards } from '../lib/records';
import MangaCard from '../components/MangaCard.astro';
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);

// 2026-10-30：研究室（series6）はお手本の関節の動きを重ねた白黒ツートンの図（tools/series_cards/series6.py）、導入シミュレーション（series8）は Unity の画面、画像認識（series7）は赤い箱の写真が処理されていく4列の図（tools/series_cards/series7.py）に変えた。
// 前の絵：研究室 = media の s-1672x941_76620d86-fa7b-491f-b554-99c2f8981d8d.webp、画像認識 = media の s-1800x1200_v-frms_82af05c4-20df-4ea1-b88d-355ed8fabd63.webp、導入シミュレーション = /site/series8-service-robot-simulation.png?v=3（どれも消さずに残してある）
const series = [
  { href: '/series1', img: 's-1920x1318_v-frms_4cd7792b-68a1-4239-ad08-0785c4e538c5.webp', en: 'Drug Delivery Robot', ja: '薬剤搬送ロボットハコブくん',
    desc: '病院で薬を運ぶロボット「ハコブくん」を題材に、人とロボットの関わり（HRI）を設計する記録。画面の設計、Unity での自律移動、日々の開発の記録を、4コママンガと一緒に残しています。' },
  { href: '/series6', img: '/site/series6-physical-ai-lab-demos.webp', en: 'Physical AI Lab', ja: 'フィジカルAI研究室',
    desc: 'ロボットアームが動きを覚える環境を、自宅にひとりで作る記録。お手本の動きを集めてロボット用のAIに学習させ、実機で確かめます。誰でも同じ手順で始められる形で残しています。' },
  { href: '/series7', img: '/site/series7-image-recognition-steps.webp', en: 'Image recognition and Object detection', ja: '画像認識と物体検出',
    desc: 'ロボットのカメラが物を見つける仕組みを、下の層から学び直す記録。画素・色・しきい値・輪郭といった手法を、机の上のアームを撮った写真で1つずつ測って確かめます。' },
  { href: '/series8', img: '/site/series8-service-robot-unity.webp', en: 'Service Robot Simulation', ja: 'サービスロボット導入シミュレーション',
    desc: '配膳・清掃・搬送などのロボットを店や施設に入れる前に、待ち時間・人数・止まる場所・費用を試算する記録。時間と台数は SimPy、空間と動きは Unity で扱い、前提・結果・コードをすべて公開しています。' },
  { href: '/series5', img: '/site/series5-deep-dive.jpg', // 考察記事のサムネイルと同じ形（3-B）。元の HTML は tools/series5_top_card.html（2026-10-26）
    en: 'Deep Dive', ja: '考察記事',
    desc: '実装の記録とは別に、フィジカルAIやロボットについて、なぜそうなるのか、何を意味するのかを考えた記事。外れた議論も含めて、対話をそのまま残しています。' },
  { href: '/series2', img: 's-1920x1318_v-frms_0d775000-730b-4ac2-90b5-d814a9f53fc6.webp', en: 'R2R2R', ja: 'デジタルツイン学習-R2R2R（Real to Render to Real）',
    desc: 'iPhone で物を3Dスキャンし、Unity で動きを試してから、机の上のロボットアームで実際に動かす記録。ロボット工学を学んでいないデザイナーでも、アームの動きを設計できるかを試しています。' },
  { href: '/series4', img: '/site/series4-behind-the-solo-lab-door.png', en: 'Behind the Solo Lab', ja: 'ひとり研究所の裏側', desc: 'フィジカルAIの研究をひとりで続けるために、AIと一緒に作ってきた仕組みの記録。サイト、動画、記録の整理など、研究の外側の作業をどう回しているかを残しています。' },
];
const records = await allCards();
// ロボットに関わる人へ・事業所についての仕事の進め方（2026-11-12 エイイチが B 案に決定）。裏づけは公開済みの記録
const byLog = (n: number) => records.find((c) => c.day === `LOG${n}`)!;
const shortTitle = (n: number) => byLog(n).title.replace(/^.*?\| /, '').replace(/ ― .*$/, '');
const SOLVE = [
  { who: 'ロボット会社の導入・営業の人へ', img: '/site/series8-service-robot-unity.webp',
    pain: '導入先ごとに条件が違い、見積もりと段取りが毎回手作業になる',
    make: '店や病院の形と運び方を入れると、台数・待ち時間・詰まる場所が出る導入前の試算。Unity で動きを見せる再現。導入先が変わっても使える手順の型。',
    logs: [477, 485] },
  { who: 'ロボットを入れる店や病院へ', img: '/site/sim/hospital.jpg',
    pain: 'メーカーの説明だけでは、自分の現場で回るかが分からない',
    make: 'メーカーに寄らない立場での、入れる前の確かめ。通る道、待たせる場所、人の手が要る回数を、入れる前に数字で出します。',
    logs: [404, 389] },
  { who: 'ロボットに AI で動きを覚えさせる人へ', img: '/site/lab/run-poster.webp',
    pain: '学習させても、どこで失敗し、人がどれだけ手を出しているかが見えない',
    make: '失敗した所を人がゲームパッドで直し、そのまま学習のお手本にする道具。直す時間の計測。借りた GPU で学習を回す手順。',
    logs: [492, 419] },
  { who: 'ロボットの横で働く人の画面と手順', img: '/site/sim/serving.jpg',
    pain: 'ロボットが止まったとき、現場の人がどうすればいいか分からない',
    make: '止まった理由と次にやることが分かる画面と手順。現場の人に伝えるための説明の絵や動画も作ります。',
    logs: [439, 389] },
];
const WAYS = [
  { h: 'ロボットより、現場に入れる手間を見る',
    t: 'ロボットそのものは、大手とAIがどんどん安く強くしていきます。残るのは、現場ごとに違う導入の手間。そこを、決まった見積もりと手順に変えます。', log: 481 },
  { h: '入れる前に、現場ごと再現して数える',
    t: '店や病院を、人の動きごと3Dで再現し、どこで詰まるかを入れる前に数えます。勘ではなく、数えた結果で決めます。', log: 477 },
  { h: '測ってから、縮める先を決める',
    t: '人が手を出している時間を測り、どこに時間がかかっているかを数字にしてから手を打ちます。直す先を、思いつきで選びません。', log: 492 },
];
// 立ち位置の1文（2026-11-08 エイイチが決定）。タイトル・説明文・AI 向けの案内（src/lib/llmsGuide.ts の GUIDE_LEAD）とそろえる
const LINE = '現場で人が受け入れて、使い続けられるロボットを';
const DESC = `${LINE}。そのために、サービスロボットを店に入れる前に何が起きるかを試算と3D（Unity）で確かめ、机の上のロボットアームにお手本から動きを覚えさせています。前提・結果・コードはすべて公開。29年のデザイナー経験をもつ島津 栄一（ADAPT DESIGN）の研究記録です。`;
import { SITE, SITE_NAME, AUTHOR, PUBLISHER } from '../lib/seo';
const jsonLd = [
  { '@context': 'https://schema.org', '@type': 'WebSite', name: SITE_NAME, url: SITE + '/', inLanguage: 'ja', description: DESC, publisher: PUBLISHER },
  { '@context': 'https://schema.org', ...PUBLISHER, founder: AUTHOR,
    sameAs: ['https://www.youtube.com/@PixelstoMotors', 'https://github.com/PixelstoMotors', 'https://x.com/adaptdesignjp'] },
  { '@context': 'https://schema.org', ...AUTHOR, sameAs: ['https://www.linkedin.com/in/eiichi-shimazu/', 'https://x.com/adaptdesignjp'], description: '29年のデザイナー経験を持つデザイナー／ディレクター。Pixels to Motors で人とロボットの関わり（HRI）とフィジカルAIを研究・発信している。' },
];
---
<Base title={`Pixels to Motors ｜ ${LINE}`}
  description={DESC}
  ogImage="/site/ffb300c2-1071-4714-978c-87d386d5dfd3.png" path="/" jsonLd={jsonLd}>

  <!-- 最初の画面（2026-11-08 作り直し）。立ち位置の1文を主役に、いま進めている2つ（導入シミュレーション・研究室）をその証拠として並べる。
       同じ1文をタイトル・説明文・AI 向けの案内（src/lib/llmsGuide.ts）にもそろえている（AI がこのサイトを説明するときの言葉になるため）。
       前の FV はハコブくんの動画（media の hakobu_fv_voice_eleven.mp4・消さずに残してある） -->
  <section class="hero-wrap"><div class="hero">
    <div class="hero-head">
      <h1>現場で人が受け入れて、<br>使い続けられるロボットを。</h1>
      <p>そのために、いま2つを進めています。店に入れる前に何が起きるかを確かめることと、ロボットに動きを覚えさせること。前提・結果・コードは、すべて公開しています。</p>
    </div>
    <div class="hero-cards">
      <a class="hcard" href="/series8" data-ev="FV:導入シミュレーション">
        <img src="/site/series8-service-robot-unity.webp" alt="Unityで建てたファミレスを斜めから見たところ" width="1320" height="880" />
        <span class="hc-meta"><span><span class="hc-kicker">入れる前に確かめる</span><span class="hc-title">サービスロボット<wbr>導入シミュレーション</span></span><i class="ms" aria-hidden="true">arrow_forward</i></span>
      </a>
      <a class="hcard" href="/series6" data-ev="FV:研究室">
        <img class="hc-arm" src="/site/lab/run-poster.webp" alt="机の上のロボットアームと、赤いブロックと白い箱" width="1200" height="900" />
        <span class="hc-meta"><span><span class="hc-kicker">動きを覚えさせる</span><span class="hc-title">フィジカルAI研究室</span></span><i class="ms" aria-hidden="true">arrow_forward</i></span>
      </a>
    </div>
  </div></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>
  </div></section>

  <!-- 1年の LP（/one-year）への入口。動画の次、導入前ガイドの前に置く（2026-10-25）
       MASTER 2026-10-25：デジタルの AI の土台を記録から示すページは、トップと SNS に出してよい（AI活用の相談の看板にはしない） -->
  <section class="sec"><div class="panel">
    <h2 class="sec-h">Pixels to Motors の1年 | Year One</h2>
    <OneYearBanner />
  </div></section>

  <!-- 導入前ガイド：LP 2つ（GPU を買うか借りるか・配膳ロボットの導入前シミュレーション）への入口 -->
  <section class="sec"><div class="panel">
    <h2 class="sec-h">導入前ガイド | Guide</h2>
    <GuideCards />
  </div></section>

  <section class="sec"><div class="panel">
    <h2 class="sec-h">4コママンガ | Archive</h2>
    <div class="grid4">{mangaCards.map((m) => <MangaCard item={m} />)}</div>
    <div class="center"><a class="btn-more" href="/manga-archive">もっと見る<i class="ms">arrow_forward</i></a></div>
  </div></section>

  <!-- 考えのページ（/thinking）への入口。4コマとシリーズの間に置く
       （2026-10-24 のアクセスの記録：TOP は25%の深さまでで42%、下まで33%しか読まれない。一番下では届かないため上げた。最初の画面の直下は上すぎるとエイイチの判断） -->
  <section class="sec"><div class="panel">
    <h2 class="sec-h">いまの考え | Thinking</h2>
    <ThinkingBanner />
  </div></section>

  <section class="sec"><div class="panel">
    <h2 class="sec-h">シリーズ | Series</h2>
    <div class="grid2">
      {series.map((s) => (
        <a class="scard" href={s.href}>
          <img src={s.img.startsWith('/') ? s.img : media(`/media/${s.img}`)} alt={`${s.ja}｜${s.en}`} loading="lazy" />
          <div class="sc-meta">
            <div class="sc-line"><span class="sc-ja">{s.ja}</span><span class="sc-en">{s.en}</span></div>
            {s.desc && <p class="sc-desc">{s.desc}</p>}
          </div>
        </a>
      ))}
    </div>
  </div></section>

  <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）。相手ごとに、困りごと → 作れるもの → 裏づけの記録。
       MASTER：トップに相談の窓口は出さないため、ボタンは置かない -->
  <section class="sec" id="for-robotics"><div class="panel">
    <h2 class="sec-h">ロボットに関わる人へ | For Robotics Teams</h2>
    <p class="sv-lead">ロボットを作る人、売る人、入れる人、横で働く人。それぞれの困りごとに、これまでの記録から作れるものです。</p>
    <div class="sv-grid">
      {SOLVE.map((s) => (
        <div class="sv">
          <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>
          ))}</div>
        </div>
      ))}
    </div>
  </div></section>

  <section class="sec" id="about"><div class="panel">
    <h2 class="sec-h">事業所について | Sole Prop</h2>
    <div class="prop">
      <div class="prop-person">
        <video class="prop-photo" src={media("/media/s-1280x720_ff64009f-cd40-4e7d-8ba3-350ff0d6c3ad.mp4")} poster={media("/media/s-2048x2048_5af0bc9f-8d23-4bdb-85e4-ada51bfd7bbd.webp")} muted autoplay loop playsinline></video>
        <p class="prop-role">Robotics UX &amp; HRI Designer</p>
        <p class="prop-name">島津 栄一</p>
      </div>
      <div class="prop-body">
        <p class="prop-lead">画面（Pixels）のデザインから、動き（Motors）のデザインへ</p>
        <p class="prop-text">フィジカルAIの技術で作られたロボットが、現場で使い続けられるためのサービスやプロダクトをつくる。そのための研究所を目指しています。<br><br>29年にわたるデザイナーとしての知見を土台に、人とロボットの関わり（HRI）と、ロボットが学習できる環境づくりに取り組むデザイン事務所です。Unityでのシミュレーション、実機のロボットアーム、借りたGPUでの学習・推論までを自分の手で回し、AIエージェント（Claude Code）を設計と実装の相棒にしています。基準は物理精度ではなく体験の成立。画面上の「Pixels（デジタル）」の設計を、現実の「Motors（モーター）」へ——その過程を公開しています。</p>
        <dl class="prop-facts">
          <div><dt>事業所名</dt><dd>ADAPT DESIGN</dd></div>
          <div><dt>設立</dt><dd>2021年10月</dd></div>
          <div class="wide"><dt>研究・実践分野</dt><dd>フィジカルAI（学習・推論） / HRI / ロボティクスUX設計 / デジタルツイン / 画像認識 / Unity / R2R2R</dd></div>
          <div><dt>SNS</dt><dd class="sns">
            <a href="https://github.com/PixelstoMotors/r2r2r-content" aria-label="GitHub" set:html={icGithub} />
            <a href="https://www.linkedin.com/in/eiichi-shimazu/" aria-label="LinkedIn" set:html={icLinkedin} />
            <a href="https://x.com/adaptdesignjp" aria-label="X" set:html={icX} />
            <a href="https://www.youtube.com/@PixelstoMotors" aria-label="YouTube" set:html={icYoutube} />
          </dd></div>
        </dl>
      </div>
    </div>
    <!-- 仕事の進め方（2026-11-12）。立ち位置の1文を黒い面に、その下に考え方3つ。写真の下に隙間ができないよう、プロフィールの外に全幅で置く -->
    <div class="ways">
      <p class="ways-stance">現場ごとに違う導入の手間を、<br>決まった見積もりと手順に変える。</p>
      <div class="ways-cols">
        {WAYS.map((w) => (
          <div class="way">
            <p class="way-h">{w.h}</p>
            <p class="way-t">{w.t}</p>
            <a class="way-link" href={`/record/${byLog(w.log).slug}`}>LOG{w.log} を読む<i class="ms" aria-hidden="true">arrow_forward</i></a>
          </div>
        ))}
      </div>
    </div>
  </div></section>
</Base>

<style>
  /* 最初の画面：下の節のパネル（.sec の左右 80px＋.panel の 32px）と端をそろえる */
  .hero-wrap { padding: 0 80px; }
  .hero { max-width: 1280px; margin: 0 auto; box-sizing: border-box; padding: 112px 32px 48px; display: flex; flex-direction: column; gap: 44px; }
  .hero-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; }
  .hero h1 { margin: 0; font: 900 46px/1.4 'Noto Sans JP', sans-serif; letter-spacing: -0.005em; }
  .hero-head p { flex: 0 1 440px; margin: 0 0 6px; font: 400 16px/1.85 'Noto Sans JP', sans-serif; color: #333; }
  .hero-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .hcard { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 8px 16px rgba(0,0,0,.08); color: var(--ink); }
  .hcard img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: #eceef2; transition: transform .3s; }
  .hcard .hc-arm { object-position: center 40%; }
  .hcard:hover img { transform: scale(1.02); }
  .hc-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; position: relative; background: #fff; }
  .hc-meta > span { display: flex; flex-direction: column; gap: 6px; }
  .hc-kicker { font: 500 13px/1 'Noto Sans JP', sans-serif; color: #666; }
  .hc-title { font: 600 22px/1.3 'Noto Sans JP', sans-serif; word-break: keep-all; overflow-wrap: anywhere; }
  .hc-meta .ms { font-size: 24px; }
  .embed-wide { margin: 0 -16px; } /* 埋め込み側の左右 16px の余白ぶん外へ出し、カードの端をほかの節と揃える */
  .embed-wide iframe, .embed-banner iframe { display: block; width: 100%; border: 0; }
  .embed-banner { max-width: 964px; margin: 48px auto 0; }

  .grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }

  .grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .scard { display: block; background: #fff; border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,.08); overflow: hidden; }
  .scard img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
  .sc-meta { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
  .sc-line { display: flex; align-items: baseline; gap: 8px 12px; flex-wrap: wrap; }
  /* 日本語を先に、大きく置く（シリーズのページの見出し「考察記事 | Deep Dive」とそろえる。2026-10-26） */
  .sc-ja { font: 600 24px/1.3 var(--sans); }
  .sc-en { font: 500 14px/16.8px var(--sans); }
  .sc-desc { margin: 0; font: 400 14px/1.7 var(--sans); color: #555; }

  .center { display: flex; justify-content: center; margin-top: 40px; }
  .btn-more { display: inline-flex; align-items: center; gap: 16px; padding: 8px 24px; border-radius: 4px; background: var(--dark); color: #fff; font: 500 20px/30px var(--sans); }

  .prop { display: flex; gap: 40px; }
  .prop-person { flex: 0 0 160px; text-align: center; }
  .prop-photo { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; display: block; }
  .prop-role { margin: 12px 0 4px; font: 300 12px/1.3 var(--sans); color: #888; }
  .prop-name { margin: 0; font: 500 20px/20px var(--sans); }
  .prop-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
  .prop-lead { margin: 0; padding: 10px 8px; background: #f7f7f7; font: 600 18px/1.4 var(--sans); }
  .prop-text { margin: 0; font: 400 14px/1.5 var(--sans); color: #333; }
  .prop-facts { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 16px 40px; }
  .prop-facts dt { font: 300 12px/15.6px var(--sans); color: #888; }
  .prop-facts dd { margin: 4px 0 0; font: 400 14px/1.5 var(--sans); }
  /* 仕事の進め方：黒い面に立ち位置の1文、その下に考え方3つ */
  .ways { margin-top: 32px; border-radius: 8px; overflow: hidden; }
  .ways-stance { margin: 0; padding: 32px; background: var(--ink); color: #fff; font: 600 26px/1.5 var(--sans); }
  .ways-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #f7f7f7; }
  .way { padding: 24px; display: flex; flex-direction: column; gap: 8px; }
  .way + .way { box-shadow: inset 1px 0 0 #e6e6e6; }
  .way-h { margin: 0; font: 600 16px/1.5 var(--sans); }
  .way-t { margin: 0; font: 400 13px/1.7 var(--sans); color: #333; flex: 1; }
  .way-link { color: var(--ink); font: 500 14px/1.5 var(--sans); }
  .way-link .ms, .sv-links .ms { vertical-align: -3px; margin-left: 4px; }
  /* ロボットに関わる人へ：2×2。困りごとを見出しに、作れるものを白い面に */
  .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; }
  .sv-make p { margin: 6px 0 0; font: 400 14px/1.7 var(--sans); color: #333; }
  .sv-tag { font: 600 12px/1 var(--sans); }
  .sv-links { display: flex; flex-direction: column; gap: 6px; }
  .sv-links a { color: var(--ink); font: 500 14px/1.5 var(--sans); text-decoration: underline; text-underline-offset: 3px; }
  .sv-log { display: inline-block; margin-right: 8px; font: 600 13px/1 Inter, sans-serif; }
  .sns { display: flex; gap: 12px; }
  .sns a { display: inline-flex; color: #242424; }
  .sns a :global(svg) { height: 18px; width: auto; display: block; }
  .sns a:hover { color: #666; }

  @media (max-width: 1023px) {
    .ways-cols, .sv-grid { grid-template-columns: 1fr; }
    .way + .way { box-shadow: inset 0 1px 0 #e6e6e6; }
    .hero-wrap { padding: 0 24px; }
    .hero { padding: 96px 0 32px; gap: 32px; }
    .hero-head { flex-direction: column; align-items: flex-start; gap: 20px; }
    .hero-head p { flex: none; max-width: 640px; }
    .hero-cards { gap: 20px; }
    .hc-title { font-size: 18px; }
    .grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 599px) {
    .hero-wrap { padding: 0 16px; }
    .hero { padding: 80px 0 24px; gap: 24px; }
    .hero h1 { font-size: 26px; line-height: 1.5; }
    .hero-head p { font-size: 15px; line-height: 1.8; }
    .hero-cards { grid-template-columns: 1fr; gap: 16px; }
    .hc-meta { padding: 14px 16px; }
    .hc-title { font-size: 17px; }
    .grid2 { grid-template-columns: 1fr; gap: 24px; }
    .grid4 { gap: 16px; }
    .prop { flex-direction: column; align-items: center; gap: 24px; }
    .ways-stance { padding: 24px; font-size: 20px; }
    .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>

```


## 作業ログ ― 公開後に表紙と引用を直し、引用の決まりを足した

### 表紙に、直す前と後の画面と時刻の流れを入れた

最初の表紙は、英字の見出しと、ロボットに関わる人への節の画面写真1枚と、数字3つだけだった。エイイチから、シンプルすぎるので直すよう指示があった。作り直した表紙には、直す前の事業所についての画面、直した後の2つの節の画面（4者のカードと、黒い帯の1文と考え方3つ）、4者の札、相談から公開までの時刻の流れ（14:53・15:08・15:14・15:26・15:28）を入れた。表紙の画像は R2 に新しい名前（LOG493_cover_v2.jpg）で入れた。同じ名前の画像は上書きしない作りになっているためだ。

### 意図の分からない短い発言を、引用から地の文に置き換えた

最初に公開した版では、画面写真を見ながら出た短い指示を、そのまま引用で載せていた。エイイチの指摘はこうだった。

> 全文入れるだけど、流石に意味がこれではよくわからないし、意図がはっきりしない言葉も全部入れる必要はないよ。

引用にしていたのは、ひとまとめにする指示、左の隙間をなくす指示、前職の話はいらないという指示、案Bを選んだ発言、写真は小さくていいという指示、アイコンの右が空いて見えるという指摘の6つだった。どれも、どこを指しているかが前後を読まないと分からない。6つとも地の文に書き換え、何をどう直すよう求められたかを書いた。それだけで意図が読める4つ（最初の相談、何を作れるかも伝えたいという指示、数値は意味がないという指摘、写真かアイコンがほしいという指摘）は引用のまま残した。横にはみ出していた考え方の表は、LOG を番号だけにし、それぞれの LOG が何の回かを表の下の段落に書いた。

### 記事の決まりに、引用は意図が分かるものに限ると足した

同じことを次の記事で繰り返さないように、記事の決まり（article_rules.md）の対話の全量掲載の節に、次の決まりを足した。

| 決まり | 中身 |
|---|---|
| 引用にするもの | 相談の始まり・方針を決めた発言・指摘の理由が分かる発言など、その発言だけを読んで意図が分かるもの |
| 引用にしないもの | 画面写真を見ながら出した短い指示（ここ・これ・左・B が何を指すかが前後を読まないと分からないもの）と、何を求めているかがはっきりしない一言 |
| 引用にしないときの書き方 | 何を、どう直すよう求められたかを地の文で書く |
| 考察記事 | 対話の全量掲載でも同じ。指すものが分からない短い発言は、何を指していたかを地の文で補う |
| 公開前の確かめ | 記事の中の引用を1つずつ読み、その1行だけで何を求めているかが分かるかを見る |

- ねらい：記事を1本だけ開いた人が、引用を読んで何が起きたかを追えるようにする
- 変わったこと：記事の中の引用が、それだけで意図が読めるものだけになる。短い指示は、何をどう直したかの地の文になる
- 見込める効果：作業ログの節が、引用の前後を読み返さずに読める。見込みで、次に記事にするときに引用を見直す手間が減ったかで確かめる

## 作業ログ ― 効果は2週間後にサイトの計測で見る

効果はまだ測っていない。書いた効果はすべて見込み。2週間後に、トップから記録（LOG）への移動と、AI が利用者の依頼でこのサイトを読んだ回数・AI のリンクから来た人の数（サイトの計測の主な数字）を見て、前の2週間と比べる。AI がこのサイトをどう紹介するかは、同じ問いを ChatGPT と Claude に聞いて、作れるものまで言うかを確かめる。
