// 考察記事から、いま考えていることと目指すことを伝えるページの文（試作）
// 文の正：iCloud の 記事/考えのページ/下書き_考えのページ_3版.md（codex で2回検証）
// 「」の引用は、対話形式の記事の中の本人の発言だけ（原文と一字一句同じ）

export type Log = { n: string; slug: string };
const L = (n: number, slug: string): Log => ({ n: `LOG${n}`, slug });

export const LOGS = {
  118: L(118, 'day118'), 140: L(140, 'day140'), 166: L(166, 'day166'),
  212: L(212, 'motion-uncanny-valley'), 214: L(214, 'when-robot-motion-is-learned'), 223: L(223, 'two-layers-of-motion'),
  262: L(262, 'reachy-mini-motion-ux-timing'), 264: L(264, 'robot-ideas-from-pain-not-robots'), 286: L(286, 'why-robot-arms-stop-at-one'), 291: L(291, 'not-chasing-humanoids'),
  292: L(292, 'wB1BUDZj'), 296: L(296, 'four-layers-of-robot-softness'), 306: L(306, 'DesFKiCf'),
  314: L(314, 'what-to-hand-to-robots'), 315: L(315, 'road-marking-job-post-and-physical-ai'), 318: L(318, 'find-tasks-where-nobody-comes'),
  319: L(319, 'ai-visual-inspection-lighting'), 320: L(320, 'ai-writes-code-not-motions'), 323: L(323, 'so101-imitation-learning-papers'),
  324: L(324, 'physical-ai-beyond-industrial-robots'), 329: L(329, 'microfactory-fairino-fr3'), 336: L(336, 'alphanist-binary-reward-assembly'),
} as const;

export const TOP = {
  note: '2026年10月までの考察記事から、いま考えていること',
  q: ['ロボットに、', '何を任せればいいのか。'],
  lead: ['動かすことと、現場で使われることは違う。', 'その間を、実機を触りながら考えています。'],
};

export const NOW = {
  h: 'いま見えていること',
  text: '公開されている事例を調べると、ふだんの動きはできていても、例外が起きると人の手に戻っていました。別の現場に広げるたびに、調整の手間がまたかかるという問題もあります。一方で、運用を組み替えて、長く使われている例もあります。',
  logs: [LOGS[286], LOGS[306]],
  voice: { t: '今のロボットの方向性はなにかピントがズレているのでは？', log: LOGS[314] },
};

export type Voice = { t: string; log: Log };
export type Axis = {
  no: string; h: string;
  scene: { k: string; t: string; link?: { text: string; href: string } };   // link：文の中の語に付ける外部リンク
  why: { t: string; logs: Log[] };           // なぜそう考えるか（記事に書いたことから。引用ではない）
  voice: Voice[];                            // 本人の言葉。1つ目は「気づいた場面」の後、2つ目からは「なぜ」の後に置く
  think?: string; want: string; logs: Log[];
};

export const AXES: Axis[] = [
  {
    no: '1', h: '人が足りない仕事から、任せる作業を探す',
    scene: { k: '気づいた場面', t: '人手が足りない現場の話を聞いたとき。わかめのゴミ取りや魚の仕分けのように、次にやってくれる人がもう見つからない仕事があります。' },
    why: { t: '次の人が見つからないまま、熟練の人がいなくなりそうな仕事があると聞きました。そうした人の判断には、言葉や数字になっていない部分があります。いなくなれば、その判断も一緒に消えてしまいます。', logs: [LOGS[314], LOGS[319]] },
    voice: [
      { t: '役に立ちそうなタスクがなにかを決めるのが実は結構大変よな。', log: LOGS[318] },
      { t: '人がほんとうに集まらないけど、世の中には常に必要である業務を見つけるのが大事だよね。', log: LOGS[318] },
      { t: '暗黙知があるうちに自動化、AI化、ロボット化しないと技術が消えるね。', log: LOGS[319] },
    ],
    think: 'ロボットに合う作業から探すより、人がどうしても集まらない仕事から探すほうがいいと思います。',
    want: '熟練の人がどこを見て、なぜそう判断しているのかを、聞けるうちに記録したい。そのうえで、機械に任せられる部分を見つけたい。',
    logs: [LOGS[306], LOGS[314], LOGS[318], LOGS[319]],
  },
  {
    no: '2', h: '今の技術で成り立つ形を見極める',
    scene: { k: '気づいた場面', t: 'MicroFactory の構成を調べたとき。派手なデモより、今使える技術を組み合わせて、任せる作業を絞る進め方に目が向きました。', link: { text: 'MicroFactory', href: 'https://microfactory.com/' } },
    why: { t: 'ロボットは本体が安くなっても、置く場所や扱う物が変わるたびに調整が要るので、1台から先に広がりにくいことがあります。中身の見えない作り方だと、問題が起きたときに現場で直せないおそれもあります。だから、本体の安さより、今使える技術で作業を切り出し、人が手を入れられる形かどうかを見ます。', logs: [LOGS[286], LOGS[329]] },
    voice: [
      { t: 'micro factoryのいいところは派手なデモではなく、現実的で、現時点で合理的な技術でタスクを切り出してロボットアームの可能性を少しずつ広げているように思います。', log: LOGS[320] },
      { t: '後付けAIや後付けロボット技術などの方を進めた方が、中小にはハードルが低くていいかもな。', log: LOGS[315] },
    ],
    think: 'ロボットの形は、人型である必要はないと思います。',
    want: '人型のロボットを待つより、今ある機械に画像認識や判断を後から足す方法を試したい。中小企業の負担を下げられるかも確かめたい。',
    logs: [LOGS[286], LOGS[291], LOGS[315], LOGS[320], LOGS[329]],
  },
  {
    no: '3', h: '次にどう動くかを、人に伝える',
    scene: { k: '気づいた場面', t: '滑らかに動けば安心だ、という前提に違和感を持ったとき。' },
    why: { t: '人と同じ場所で動くなら、滑らかさより、次にどう動くかが相手に伝わることのほうが大事だと考えています。伝われば、人を傷つけることも減らせると思います。', logs: [LOGS[212], LOGS[296]] },
    voice: [
      { t: '実際のところ、滑らかにアームやロボットが動く＝人が怖くないではないからね。 中途半端に滑らかに動くなら、カクカクしてた方が人は安心するかもだよね。', log: LOGS[212] },
    ],
    want: '高い機体に頼らず、次の動きが伝わる間や予備動作を試したい。それが、そばにいる人にどう受け取られるかも確かめたい。',
    logs: [LOGS[212], LOGS[223], LOGS[262], LOGS[296]],
  },
  {
    no: '4', h: '人が自分でできる余地を残す',
    scene: { k: '考えが広がったこと', t: '生産性と完全自動化を目的に、人が入らない前提の場所を考えていたときは、無人化が答えだと思っていました。そこから、人が自分で進めるのを支える役割も考えるようになりました。' },
    why: { t: '作業を肩代わりするだけでは、人が自分で進めるのを支えることにはならないと考えています。効率を上げる場所と、人が自分で進めるのを支える場所は、分けて考えます。', logs: [LOGS[292]] },
    voice: [
      { t: '正直無人化が唯一の最適解で人は必要ないと思ってました。', log: LOGS[292] },
      { t: '結局、協働ロボットが本当の意味で協働でないのは、人の主体性を奪っていることが問題なのでは？と思いました。', log: LOGS[292] },
      { t: 'おれがロボットアームに求めているのは、精巧な動きをするロボットアームではないです。なんなら少し頼りないくらいでちょうど良さそうなアームです。やれることもそんなに多くなくて、これはココに入れてと指差す、代わりにボタンを押してあげる。手を振って呼び込むくらいの機能を持つ。', log: LOGS[292] },
    ],
    want: '人が自分で進めるのを手伝うことも、ロボットの役割として考えたい。',
    logs: [LOGS[262], LOGS[292], LOGS[324]],
  },
  {
    no: '5', h: '個人で試せて、他の人も確かめられる形にする',
    scene: { k: '気づいた場面', t: '工場で何十人もの人がロボットを遠隔操作して、動きのデータを集めている映像を見たとき。' },
    why: { t: '大きな会社は、約100万件のロボット操作の記録で学習させています。手元では、アームを動かした結果をスマホで撮り、AIに成否を判定させるところから、小さく確かめる方法を考えました。2026年4月には、深度カメラを買う前に、普通のカメラでできる限界まで試すと決めました。高い機材がなくても、同じ問いは小さく回せると思います。', logs: [LOGS[140], LOGS[166]] },
    voice: [
      { t: '人と機材使ってでもとにかくデータが欲しい。', log: LOGS[118] },
      { t: 'まずは2Dの限界までやってそのあと深度カメラだね。そこまではまだまだがんばるよ。', log: LOGS[166] },
    ],
    think: '研究のテーマを選ぶときは、他の人が同じ環境で再現できるかを物差しにします。',
    want: 'スマホとシミュレーションで動きのデータを作る手順を、失敗した条件や判断の理由も含めて公開したい。他の人が同じ条件で確かめられる形を増やしたい。',
    logs: [LOGS[118], LOGS[140], LOGS[166], LOGS[318], LOGS[323]],
  },
];

// 考えが変わったこと（本人の言葉で、考えが動いた場面）
export const CHANGES = {
  h: '考えが変わったこと',
  items: [
    {
      h: 'どんなロボットかを考える前に、人の苦痛を整理する',
      t: 'AIとの対話で、欲しいロボットの案を60個出し、ほとんどを採用しませんでした。今ある道具で済むものや、ロボットである必要がないものが多かったからです。何を作るかを決める前に、人が何を大変だと感じているかを整理する順番に変えました。',
      voice: { t: 'ロボットそのものを考えるより、苦痛の分類の方がどんなロボットを作ったら良さそうかが明確になるのは確かだね。', log: LOGS[264] },
    },
    {
      h: '書いた説明も、根拠まで確かめ直す',
      t: 'AIとの対話をまとめた記事を確かめ直したら、間違いが見つかりました。記事に書いたことでも、そのまま鵜呑みにはできません。説明の筋だけでなく、根拠まで確かめる必要があると考えています。',
      voice: { t: 'なんか記事で書いたことそのまま鵜呑みはまずいような状況だね。', log: LOGS[286] },
    },
  ],
};

export const OPEN = {
  h: 'まだ分からないこと',
  items: [
    { t: '自分から問いかけるロボットは、人が考えたり、仕事に新しい価値を見つけたりする助けになるのか。', v: '今は答えはなさそうだけど。', when: '2026年7月', log: LOGS[262] },
    { t: '指を差す、ボタンを押す、といった案を、実際に使われる機械としてどう形にするのか。', v: 'そういったロボットや自動化の機械の具体例を思いついていないし、多くの人がそこに市場があると思っていないのが実情。', when: '2026年7月', log: LOGS[292] },
    { t: '作った動きのデータが、実機や現場でどこまで使えるのか。AIによる成否の判定が、人の目とどこまで合うのか。これから確かめます。', log: LOGS[323] },
  ],
};

export const AIM = {
  h: '目指すこと',
  voice: { t: 'ロボットアームを触るのは、触りながらロボットの問題を一から一つずつ理解して、まだまだあるはずの社会実装の課題を見つけ出し、クリアしたい——そういうところだね。', log: LOGS[214] },
  text: 'ハードを作って売る・貸すより、ソフト側でできることを続けるほうが、自分には向いていると思います。デモ機で、シミュレーションやソフトでどれだけ変わるかを見せたい。',
  log: LOGS[336],
};

// 縦書きのページで、本人の言葉（「」）を折り返す位置。文節の途中で折らないように手で決める
// 「／」で区切る。区切りを外した文が元の言葉と一字でも違えば、ビルドで止まる（ThinkingPage.astro）
export const TATE_BREAKS: string[] = [
  '今のロボットの方向性は／なにかピントが／ズレているのでは？',
  '役に立ちそうなタスクが／なにかを決めるのが／実は結構大変よな。',
  '人がほんとうに集まらないけど、／世の中には常に必要である／業務を見つけるのが／大事だよね。',
  '暗黙知があるうちに／自動化、AI化、／ロボット化しないと／技術が消えるね。',
  'micro factoryの／いいところは／派手なデモではなく、／現実的で、／現時点で合理的な技術で／タスクを切り出して／ロボットアームの可能性を／少しずつ広げているように／思います。',
  '後付けAIや／後付けロボット技術などの／方を進めた方が、／中小には／ハードルが低くて／いいかもな。',
  '実際のところ、／滑らかにアームやロボットが／動く＝人が怖くない／ではないからね。 ／中途半端に滑らかに／動くなら、／カクカクしてた方が／人は安心するかもだよね。',
  '正直無人化が／唯一の最適解で／人は必要ないと／思ってました。',
  '結局、協働ロボットが／本当の意味で／協働でないのは、／人の主体性を／奪っていることが／問題なのでは？と／思いました。',
  'おれがロボットアームに／求めているのは、／精巧な動きをする／ロボットアームではないです。／なんなら少し頼りないくらいで／ちょうど良さそうなアームです。／やれることも／そんなに多くなくて、／これはココに入れてと指差す、／代わりにボタンを押してあげる。／手を振って呼び込むくらいの／機能を持つ。',
  '人と機材使ってでも／とにかくデータが欲しい。',
  'まずは2Dの限界までやって／そのあと深度カメラだね。／そこまでは／まだまだがんばるよ。',
  'ロボットそのものを考えるより、／苦痛の分類の方が／どんなロボットを／作ったら良さそうかが／明確になるのは確かだね。',
  'なんか記事で書いたこと／そのまま鵜呑みは／まずいような状況だね。',
  '今は答えは／なさそうだけど。',
  'そういったロボットや／自動化の機械の具体例を／思いついていないし、／多くの人がそこに／市場があると／思っていないのが実情。',
  'ロボットアームを触るのは、／触りながら／ロボットの問題を／一から一つずつ理解して、／まだまだあるはずの／社会実装の課題を／見つけ出し、／クリアしたい——／そういうところだね。',
];
