"""台本の読み物（台本_*.md）と codex 敵対的検証の依頼（codex_*.md）を、narration.py から作り直す。
台本を直したら、動画の作業フォルダで  python3 make_docs.py
2026-10-28: 「何台入れたら店は変わる」の make_docs.py を写して書き換えた（謎解きの型の1本目・1回目の依頼）
2026-10-28: 2回目の依頼にした（台本5版）。エイイチの指示で、codex には事実確認だけを頼む（話の筋・構成・見立ての提案は求めない）
"""
import sys, json, os
sys.path.insert(0, '.')
from narration import SEGS, parse
NAME = "世界記録と洗濯物"
TITLE = "人型ロボットは人間より速く走ったのに、なぜ洗濯物はたためないのか（仮題）"
ROUND = 2
FJ = {"base": "基本", "smile": "小さな笑み", "surprise": "驚き", "doubt": "ジト目", "think": "目を閉じる",
      "trouble": "困り眉", "joy": "＞▽＜", "wink": "ウインク"}
SEC = [("hook", "0 謎"), ("title", "1 自己紹介"), ("question", "2 今日の謎"), ("promise", "3 聞くときの約束"),
       ("map", "4 地図（たとえは1つだけ）"), ("hayatochiri", "5 ハコブくんの早とちり"),
       ("c1", "6 手がかり1：練習する場所"), ("c2", "7 手がかり2：相手の形"),
       ("c3", "8 手がかり3：お手本の数（今日いちばん大事）"), ("ei_desk", "　― 証人：エイイチの机の上"),
       ("solve", "9 謎が解ける"), ("mitate", "10 エイイチの見立て"), ("answer", "11 謎の答えと、持ち帰る3つ"),
       ("outro", "12 アウトロ")]
idx = {o['i']: o for o in json.load(open('tts/index.json'))} if os.path.exists('tts/index.json') else {}
rows, n, t, done, first, last = [], 0, 0.0, set(), {}, {}
for k, s in enumerate(SEGS):
    sc, f, text, p = parse(s)
    for key, name in SEC:
        if sc == key and name not in done:
            rows.append(("sec", name, t)); done.add(name)
    o = idx.get(k)
    t += (o['dur'] + o['pause']) if o else 0
    if text:
        n += 1
        first.setdefault(sc, n); last[sc] = n
        rows.append(("line", n, f, sc, text))


def R(*scs):
    return "・".join((f"S{first[x]:03d}〜S{last[x]:03d}" if first[x] != last[x] else f"S{first[x]:03d}") for x in scs if x in first)


# 読み物の台本
out = [f"# 台本：{TITLE}", "", "話し手はハコブくん（エイイチは三人称）。各行は「文番号｜表情｜場面｜字幕の文」。字幕の「｜」は、読み上げは1文のまま字幕だけ次の枚に替える位置。",
       "エイイチ（ドット絵・右下の小窓・声なし）が出るのは、場面が ei_ で始まる所と、見立て（mitate）だけ。", ""]
for r in rows:
    if r[0] == "sec":
        m, ss = divmod(int(r[2]), 60); out += ["", f"## {r[1]}" + (f"（{m}:{ss:02d}〜）" if idx else ""), ""]
    else:
        out.append(f"- S{r[1]:03d}｜{FJ[r[2]]}｜{r[3]}｜{r[4]}")
if idx:
    m, ss = divmod(int(t), 60)
    out += ["", f"全体の長さ（いまの音声）：{m}分{ss:02d}秒"]
open(f"台本_{NAME}.md", "w").write("\n".join(out) + "\n")

# codex 敵対的検証の依頼
body = []
for r in rows:
    body.append(f"\n### {r[1]}\n" if r[0] == "sec" else f"S{r[1]:03d}　{r[4].replace('｜', '')}")
chars = sum(len(r[4].replace('｜', '')) for r in rows if r[0] == "line")
md = f"""# 敵対的検証依頼：YouTube台本「{TITLE}」

この台本の**事実確認**をしてください。数字・日付・名前・発言の紹介・研究や発表の中身が出典と合っているか、出典の範囲を超えて言い切っていないかを、ウェブ検索で一次情報を確かめて見てください。日本語で答えてください。

**話の筋・構成・たとえ・問いの立て方・エイイチの見立ては変えません。** それらを組み替える提案や、新しい話題・事例を足す提案は要りません（足すと、ただのニュースの解説になってしまうため。運営者の判断）。直す案は、事実を正しくするための最小の言い換えにしてください。台本の文が、新しい事実（2026年の発表など）で誤りになっている場合だけ、その文を正しくする形で指摘してください。

## 前提

- チャンネル：フィジカルAI解説｜Pixels to Motors（YouTube）。運営はエイイチ（本業はデザイナー。ロボティクスの研究と開発をしている）。ナレーションはキャラクターのハコブくん（AI 音声）で、エイイチは三人称で出てくる
- 視聴者：ロボティクスに関心のある経営者・PM・マネージャー・開発者。人型ロボットのニュースは見ているが、専門家ではない人も多い
- この回の型：謎解きの型（このチャンネルで1本目）。冒頭で変な事実（謎）を出し、答えは後半の「9 謎が解ける」で出す。たとえは1つだけ（ロボットの学校：走る＝体育、たたむ＝家庭科）。手がかりは3つ。話の出どころを4種類の札（大会や会社の発表・ニュースの報道・研究の論文・エイイチの見立て）で画面に出す
- 謎：2026年4月の北京の人型ロボット・ハーフマラソンで、優勝機が50分26秒（人間の男子の世界記録候補 56分51秒より速い）。なのに、家で洗濯物を毎日任せられる人型ロボットは、公開資料では確認できない。なぜか
- 「まだ」の定義：家で、人が遠くから操作したり手伝ったりせずに、毎日任せられる段階には来ていない（{R('define')}・{R('answer')}）
- エイイチの言葉（{R('ei_react')}・{R('ei_desk2')}・{R('mitate2')}・{R('mitate3')}）は、2026-10-28 に本人に聞いた答え。中身は足していない。中国の人型ロボットについての見方（{R('mitate2')}）は、本人が「強く主張していい」と言った見立て。事実の主張としてではなく、見立てとして言い方が伝わっているかを見てください
- エイイチの机の上の数（750回）は、本人のロボットアームの通しの試行の台帳（2026-06-18〜10-22・失敗も含む）。外からは確かめられないので、言い方だけ見てください
- 台本を書いたあと、書いたのとは別のエージェントに出典と1文ずつ突き合わせてもらい、直した（1年で速くなった理由を仮想の練習から機体づくりと投資に／走れる土台は仮想の練習・2本足の Cassie（2021）でつなぐ／電池・機体交換・伴走の車・道順／HONOR の学ばせ方は「見当たらない」／ETH と NVIDIA・GPU 1枚／π0 の1万時間はいろいろな作業の合計／1X は会社自身の説明／ゴールドバーグの10万年の意味／布の仮想の研究も進んでいる／別の研究者の「思い込み」／答えで「まだ」の定義を言い直す）
- **これは{ROUND}回目の検証です。** 1回目（「直してから」・結論「条件つきで成立」・17件）の事実の指摘を入れた：世界記録候補・3倍は機体のちがう優勝タイムの比べ・自律の区分でも一部の補助は認められていた・1年の伸びは機体と投資から「説明する専門家もいる」・優勝機の学ばせ方は未確認なので言い切らない・地面と布の言い方・4096台はやり直し・Figure の2026年9月の30軒の試験（タオル62%・会社の試験）・1X の量産開始と出荷予定・10万年は規模のたとえ・750回は試行錯誤の記録・台の上でたたむだけなら足は要らない・札の言い方。**話の筋を組み替える指摘（題と問いの言い換え・人の作業動画の章・据え置きの専用ロボット・確かめる3つの言い換え）は、運営者の判断で入れていません。それらは再び指摘しないでください。** 文番号は1回目とずれています
- 台本は全{n}文・約{chars}字。ナレーションは約11〜12分の見込み

## 検証してほしい観点

### A. 事実
A1. マラソンの数字（{R('hook','hook_wr','hook_last')}）：50分26秒・自律で走ったか・56分51秒（公認手続き中）・6分あまり・2時間40分42秒・3倍あまり。比べ方の条件（{R('promise_fair')}）が出典の範囲か
A2. 仮想の世界での練習の研究（{R('c1_sim','c1_note','c1_why')}）：ETH と NVIDIA・4096台・4分／20分・GPU 1枚・実機に移せた・2本足のロボットの2021年の話
A3. この1年で記録が縮んだ理由（{R('c1_speed')}）と、優勝機の学ばせ方が未確認であること（{R('c1_note')}）が、答え（{R('solve')}・{R('answer')}）まで保たれているか
A6. Figure（{R('c3_figure')}）・1X（{R('c3_neo')}）の言い方が、会社の発表の範囲か。2026年10月28日時点で古くなっていないか
A4. 布の研究（{R('c2_cloth')}）・π0（{R('c3_pi')}）・Figure（{R('c3_figure')}）・1X NEO（{R('c3_neo')}）・ゴールドバーグ（{R('c3_gap')}・{R('solve_twist')}）・モラベック（{R('solve_moravec')}）が出典の範囲か
A5. 「人の手を借りずに、家で毎日たたんでいる人型ロボットは見当たらない」（{R('hook_q')}）が、2026年10月時点で言えるか（家庭向けの人型ロボットの出荷の状況を含めて）

### B. 言い過ぎ（事実の範囲）
B1. 出典が言っている範囲を超えた言い切り、条件や限定の抜け（推測が事実に聞こえる所）だけを見てください。論理の組み立てや反論への備えの提案は要りません

## 回答の書式

指摘ごとに次の形で書いてください。重大なものから順に並べてください。

```
[❌ NG / ⚠️ 要注意] 文番号（例：S043）
問題：何が問題か（1〜2文）
根拠：確認した出典（ウェブの原文）または推論の筋道
修正案：差し替える文（台本の話し言葉の調子に合わせて）
```

最後に次の2点をまとめてください。
1. 事実の面で、このまま公開してよいか（はい／直してから）
2. 公開前に必ず直すべき指摘の文番号

---

## 台本が使った出典

| 主張 | 文番号 | 出典 |
|---|---|---|
| 2026-04-19 北京亦庄の人型ロボット・ハーフマラソン（21.0975km・300台超・優勝 閃電／HONOR 50分26秒・自律・遠隔操作は1.2倍で採点・電池交換・機体交換・伴走の車） | {R('hook','promise_fair','check3')} | 新華社 https://www.news.cn/sports/20260419/c91172da5ef84342b7b07fb3c2ef8f12/c.html ／北京市政府 https://english.beijing.gov.cn/latest/news/202604/t20260419_4593508.html ・ https://english.beijing.gov.cn/latest/news/202603/t20260306_4550687.html ／中国新聞網 https://www.chinanews.com.cn/cj/2026/04-19/10606411.shtml ／AP https://abcnews.com/International/wireStory/humanoid-robot-sprints-victory-beijing-beating-human-half-132179294 ／TechCrunch https://techcrunch.com/2026/04/19/robots-beat-human-records-at-beijing-half-marathon/ ／Scientific American https://www.scientificamerican.com/article/a-humanoid-robot-beat-the-human-half-marathon-record-at-a-beijing-race-but-what-did-it-actually-prove/ |
| 2025年の第1回（天工 Ultra 2時間40分42秒） | {R('hook_last')} | 新華社・Smithsonian https://www.smithsonianmag.com/smart-news/humanoid-robots-just-raced-alongside-human-runners-in-a-world-first-half-marathon-heres-how-it-went-180986469/ |
| 男子ハーフマラソン 56分51秒（ケジェルチャ・2026-08-23・世界記録候補・公認手続き中）。57分20秒（キプリモ・2026-03-08）の公認発表は2026-09-03 | {R('hook_wr')} | World Athletics https://worldathletics.org/news/report/world-half-marathon-record-buenos-aires-2026-yomif-kejelcha ・ https://worldathletics.org/news/press-releases/ratified-world-records-kiplimo-tharp-wanyonyi |
| 仮想の世界での歩く練習（4096台・平地4分未満・でこぼこ20分未満・GPU 1枚・実機 ANYmal） | {R('c1_sim')} | Rudin ら 2021 https://arxiv.org/pdf/2109.11978 |
| 2本足のロボットも2021年に仮想の練習で走れるようになっていた（研究者の発言）／1年の伸びは機体づくりと投資（専門家）／別の研究者の「思い込み」 | {R('c1_note','c1_speed','solve_twist')} | Scientific American（上と同じ記事） |
| 布の仮想の世界の難しさ・本物に近づける研究 | {R('c2_cloth')} | RGBench https://arxiv.org/html/2511.06434 |
| π0（双腕・固定・1万時間超のいろいろな作業のデータ・手の込んだ作業は1回5〜20分） | {R('c3_pi')} | https://arxiv.org/html/2410.24164v3 |
| Figure（2025-08 タオルを自律でたたむ発表／Helix 2.5・2026-09-17・初めての30軒・タオル62%・3作業で56%・安全のための介入は失敗） | {R('c3_figure')} | Figure https://www.figure.ai/news/introducing-index ・ https://www.figure.ai/news/helix-2-5-zero-shot-30-home-generalization ／humanoid.guide https://humanoid.guide/?p=18222 ／runtimewire https://runtimewire.com/article/figure-index-human-video-robot-training-data |
| 1X NEO（2026-04-30 量産開始・一般の出荷は2026年予定・覚えていない作業は担当者が遠くから導く） | {R('c3_neo')} | https://www.globenewswire.com/news-release/2026/04/30/3285118/0/en/1X-opens-NEO-Factory.html ・ https://www.businesswire.com/news/home/20251027434628/en/1X-Launches-NEO-The-Robot-Redefining-Life-at-Home ・ https://www.1x.tech/neo |
| 布を仮想で練習させて本物につなげた研究 | {R('c2_cloth')} | Cloth Funnels https://arxiv.org/html/2210.09347 |
| 2本足の Cassie が2021年に仮想の練習で走った | {R('c1_note')} | Oregon State University https://engineering.oregonstate.edu/all-stories/great-strides |
| ゴールドバーグ（10万年分・仮想の練習は走る・宙返りではうまくいく） | {R('c3_gap','solve_twist')} | UC Berkeley https://vcresearch.berkeley.edu/news/are-we-truly-verge-humanoid-robot-revolution |
| モラベック（1988年『Mind Children』の趣旨。原書は未確認） | {R('solve_moravec')} | https://en.wikipedia.org/wiki/Moravec%27s_paradox |
| エイイチの机の上（台帳750行・上カメラ1台・要所の姿勢を手で教えて再生） | {R('ei_desk','ei_desk2')} | 本人の台帳と記録（外からは確かめられない） |
| 見立て | {R('mitate1','mitate2','mitate3')} | エイイチの言葉（2026-10-19・2026-10-28 本人に聞いた答え） |

---

## 台本全文（動画で読み上げる版）
""" + "\n".join(body) + "\n"
open(f"codex_敵対的検証依頼_{NAME}.md", "w").write(md)
print("文", n, "字", chars)
