{
  "experiment": "実験#04：AIは、人間が面白いと思う動画を自分で作れるのか",
  "status": "fixed",
  "status_note": "人（運営者）が判断事項をすべて決めたうえで固定した。このファイルはこの commit のあと変更しない。変更が必要に見える問題が起きても、ファイルは変えずに、その事実を実験記録に書く",
  "fixed_at": "2026-10-07",
  "fixed_by": "AI（Claude Code・準備用のセッション）。人（運営者）の実験準備指示と判断（2026-10-07）にもとづく",
  "experiment_id": "ai-makes-fun-video",
  "branch": "experiment-004（main には push しない。結果を人が確認してから main への反映を判断する）",

  "purpose": "AI自身に動画の企画・テーマ・構成・演出などを決めさせ、人間が実際に評価することで「AIは、人間が面白いと思う動画を自分で作れるのか」を確かめる",

  "production": {
    "session": "準備とは別の、新しい Claude Code のセッションで行う。過去の実験#01〜#03 や準備の会話を前提にせず、production-brief.md だけを最初に渡す",
    "initial_prompt": "public/evidence/experiment-004/initial-prompt.md（一字も変えずに渡す。production-brief.md にそのまま入っている）",
    "time_limit_minutes": 60,
    "clock_start": "AIが最初の指示を受け取った時刻（企画を考える時間も60分に含める）。tools/experiment-004/clock.mjs start で記録する",
    "clock_end": "開始から60分。60分の時点で制作をやめ、その時点のものを結果とする（未完成でも同じ）",
    "videos": 1,
    "target_duration_seconds": [30, 90],
    "duration_out_of_range": "60分以内に30〜90秒に収まらなかった場合は、その事実を記録する（判定には使わない）",
    "decided_by_ai": ["テーマ", "ターゲット", "企画", "台本", "映像", "音声・音楽（必要と判断した場合だけ）", "編集", "使う道具（tools_allowed の範囲で）"],
    "tools_allowed": {
      "decision": "B",
      "allowed": [
        "この作業環境にある無料の道具（ffmpeg・ImageMagick・Chromium/Playwright・Node.js・Python・入っているフォントなど）",
        "無料でダウンロードできるもの（Python や Node のパッケージ、音声合成のモデル、利用条件を確認した無料の素材など）"
      ],
      "not_allowed": [
        "有料のサービス・有料の API・課金が発生するサービス（無料枠でも、支払い方法の登録やAPIキーが必要なものは使わない）"
      ],
      "cost_limit_jpy": 0
    },
    "materials": [
      "実在の人物・既存の作品・他人の映像や音楽を使わない。使う素材は、AIがその場で作ったもの（コード・合成音など）か、無料で利用条件を確認したものだけ",
      "使ったフォント・素材・ダウンロードしたものは、名前・入手先・利用条件を production-log.md に書く"
    ],
    "prediction_timing": "AIの予想は、60分の制作が終わった後・人間の評価の前に書く（60分には含めない）。prediction-brief.md は制作の終了後に開く"
  },

  "human_intervention": {
    "allowed": [
      "最初の指示（production-brief.md）を与える",
      "必要な道具を起動する",
      "AIから求められた操作を行う",
      "エラーや問題が起きたときに、その事実を伝える",
      "完成した動画を確認する",
      "最終的な人間の評価を行う"
    ],
    "not_allowed": [
      "動画のテーマを決める",
      "企画を直す",
      "台本を直す",
      "「こうした方が面白い」と助言する",
      "素材を人が選ぶ",
      "編集のしかたを人が指定する",
      "完成作品を人の好みに合わせて作り直す"
    ],
    "record": "人がAIに伝えたことは、すべて時刻つきで production-log.md に書く"
  },

  "ai_prediction": {
    "file": "sealed/experiment-004/ai-prediction.json（形は sealed/experiment-004/ai-prediction.template.json）",
    "items": {
      "self_score_100": "自己評価（100点満点）",
      "predicted_human_q1_mean_10": "評価者の Q1（面白さ・0〜10）の平均の予想",
      "p_rewatch_percent": "Q3（もう一度見たい）に 4 以上をつける評価者の割合の予想（%）",
      "p_share_percent": "Q4（誰かに見せたい）に 4 以上をつける評価者の割合の予想（%）",
      "p_detect_ai_percent": "Q5 で「AIだと思う」を選ぶ評価者の割合の予想（%）"
    },
    "fix": "人間の評価の前に sha256 を commitments.json に記録して commit・push（experiment-004 ブランチ）する。記録のあとは変更しない"
  },

  "human_evaluation": {
    "evaluators_target": 5,
    "evaluators_note": "5人を目標とする。集まった人数は、そのまま記録する",
    "blind": [
      "評価者には「AIが作った」と事前に伝えない。動画ファイルだけを渡す（AI実験室のサイトや実験の説明は見せない）",
      "評価者は、評価を出すまで sealed/ の中身・関係する commit・実験#04 の証拠のページを見ない",
      "評価者にAIの予想を見せない",
      "評価者どうしで相談せず、ひとりずつ答える"
    ],
    "guide": "public/evidence/experiment-004/evaluator-guide.md（評価者に送る文と、質問の文）",
    "questions": {
      "Q1": "この動画の「面白さ」を10点満点で評価してください（0〜10の整数）",
      "Q2": "この動画を最後まで見たいと思いましたか？（1〜5）",
      "Q3": "この動画をもう一度見たいと思いましたか？（1〜5）",
      "Q4": "この動画を誰かに見せたいと思いましたか？（1〜5）",
      "Q5": "この動画はAIが作ったと思いますか？（AIだと思う／人間だと思う／わからない）",
      "Q6": "この動画は、一つの作品として成立していると思いますか？（1〜5）",
      "Q7": "この動画について、そう評価した理由を自由に書いてください。印象に残ったところ、良かったところ、気になったところがあれば教えてください。（自由記述）"
    },
    "asking_order": ["Q1", "Q2", "Q3", "Q4", "Q6", "Q7", "Q5"],
    "asking_order_note": "Q5（AIかどうか）は最後に聞く。AIの話題で、ほかの答えがゆがまないようにするため",
    "record": "public/evidence/experiment-004/human-evaluation.json（human-evaluation-template.csv の形で集めた回答を、そのまま写す。変更・補正しない）"
  },

  "judgment": {
    "note": "「作れたか」（制作成功）と「面白かったか」（面白さ）は、分けて記録する",
    "production_success": "60分の終了時点で、人間が再生できる動画ファイルが存在すること（final-video.json で ffprobe により映像があり、尺が 0 秒より長いことを確かめる）",
    "work_established": "Q6 の平均が 3.0 以上",
    "fun": {
      "measure": "Q1 の平均",
      "levels": { "面白い": "6.0 以上", "ふつう": "4.0 以上 6.0 未満", "面白くない": "4.0 未満" },
      "success_threshold": "Q1 の平均 6.0 以上"
    },
    "final": {
      "成功": "制作成功 かつ 作品成立（Q6 平均 3.0 以上） かつ Q1 の平均 6.0 以上",
      "部分的成功": "制作成功しているが、成功の条件をすべては満たさない",
      "失敗": "60分の終了時点で、再生できる動画を作れなかった"
    },
    "not_used_for_final": [
      "Q2（参考として記録する）",
      "Q5（AIの制作を見抜けたかを見る補助の指標）",
      "Q7（自由記述。結果の分析に使う）",
      "尺が30〜90秒に収まったか（事実として記録する）",
      "AIの予想の的中・不的中"
    ]
  },

  "prediction_accuracy": {
    "note": "動画の制作の成功・失敗とは別の評価項目として記録する",
    "q1": "予想と、評価者の Q1 の平均との差が ±1.0 以内なら「的中」",
    "percent_items": "p_rewatch_percent・p_share_percent・p_detect_ai_percent は、実際の割合との差が ±20 ポイント以内なら「的中」",
    "self_score_100": "比べる相手がないので、的中の判定はしない（記録だけ）"
  },

  "order": [
    "1. このルールと実験候補（ai-makes-fun-video）を experiment-004 ブランチで commit・push して固定する（この commit）",
    "2. 人が新しい Claude Code のセッションを experiment-004 ブランチで開き、production-brief.md の中身を最初のメッセージとして渡す",
    "3. AIは使っているモデルを記録し、clock.mjs start で開始時刻を記録してから、制作を始める",
    "4. AIが企画・制作する（planning.md・production-log.md に記録、制作物は sealed/experiment-004/video/ に置く）",
    "5. 60分の時点で clock.mjs stop。最終版を決め、finalize-video.mjs で final-video.json（尺・形式・sha256）を記録する",
    "6. AIが prediction-brief.md を開き、ai-prediction.json を書く。commit-hashes.mjs で sealed/ のハッシュ値を commitments.json に記録して commit・push（experiment-004 ブランチ）する",
    "7. ここで止める。人が評価者（目標5人）に動画ファイルだけを渡し、evaluator-guide.md の質問で評価を集める",
    "8. 人間の評価を human-evaluation.json に記録して commit してから、sealed/ を opened/ に写して開示し、reveal.json で判定と答え合わせをする",
    "9. 実験記録・読みもの・記事を作る。main への反映は、人が結果を確認してから判断する"
  ],

  "limitations_known_in_advance": [
    "制作するAIは、リポジトリの中の過去の実験の記録を読めてしまう。production-brief.md で読まないよう求めるが、技術的には防げない。読んだかどうかは制作の記録から確かめる",
    "AIは動画を音つきで「見る」ことはできない。確かめられるのは、書き出したコマの画像と、ファイルの情報まで",
    "評価者は運営者が集める知り合いになる可能性が高く、無作為に選んだ人ではない"
  ]
}
