[{"data":1,"prerenderedAt":336},["ShallowReactive",2],{"content-/science-materials-heat-light-sound":3,"all-pages-for-dir":334,"og-image-/science-materials-heat-light-sound":335},{"id":4,"title":5,"body":6,"category":314,"description":315,"extension":316,"meta":317,"navigation":318,"ogImage":319,"path":320,"project_name":321,"published":322,"publishedAt":323,"seo":324,"stem":325,"tags":326,"todo":319,"unpublished":322,"updatedAt":319,"__hash__":333},"pages/2026-07/2026-07-03/science-materials-heat-light-sound.md","小学生向け理科教材に熱・光・音の8トピックを一括追加 — 生成・事実チェック・修正のエージェント並列パイプライン",{"type":7,"value":8,"toc":300},"minimark",[9,13,17,20,23,63,66,70,73,203,206,210,217,229,232,235,238,241,245,248,251,262,265,269,272,275,278,286,289],[10,11,12],"h2",{"id":12},"やったこと概要",[14,15,16],"p",{},"中学受験向け参考書をベースにした小学生向け理科学習教材のバッチ4を進めた。対象は熱・光・音カテゴリの残り8トピック（物のあたたまり方・熱の伝わり方・熱量・光の直進・反射・屈折・凸レンズ・虹と分散）。トピックごとに Vue SFC のセクション4本＋クイズ10問を生成エージェントに書かせ、事実チェック→修正→表示確認→コミットまで一日で通した。",[10,18,19],{"id":19},"パイプラインの流れ",[14,21,22],{},"バッチ3までで固まった手順をそのまま回した。",[24,25,26,34,40,46,52,58],"ol",{},[27,28,29,33],"li",{},[30,31,32],"strong",{},"生成",": 生成エージェント8体（Sonnet 5）を並列で派遣。各トピック Vue 4本＋クイズ10問。原文流用を検出する機械チェッカーに合格するまで書き直させる（大半は書き直し1回、凸レンズは2回）",[27,35,36,39],{},[30,37,38],{},"登録",": categories.ts と quizDataRegistry への一括登録はメインセッション側で実施。その前に、エージェントに禁止している categories.ts 直編集がないか、生成ファイルが実在するかを確認",[27,41,42,45],{},[30,43,44],{},"事実チェック",": トピックごとにチェックエージェントを派遣し、物理的な正しさと計算を検算させる",[27,47,48,51],{},[30,49,50],{},"修正",": チェック結果を修正指示として確定させてから、修正エージェントを並列起動",[27,53,54,57],{},[30,55,56],{},"最終検証",": チェッカー全体再実行 → テスト → dev サーバーでの表示確認",[27,59,60],{},[30,61,62],{},"計画書更新とコミット",[14,64,65],{},"事実チェックの起動では8体のうち6体が立ち上がらず、30秒待ってリトライしたら全員動いた。完了通知が届くたびに「残り○体」と数えながら、集計表を埋めていく一日だった。",[10,67,69],{"id":68},"_8トピックの成績表","8トピックの成績表",[14,71,72],{},"生成時の書き直し回数と事実チェックの結果を並べると、どこで手がかかったかが一目で分かる。",[74,75,76,94],"table",{},[77,78,79],"thead",{},[80,81,82,86,89,91],"tr",{},[83,84,85],"th",{},"トピック",[83,87,88],{},"生成（チェッカー）",[83,90,44],{},[83,92,93],{},"メモ",[95,96,97,112,124,137,150,164,177,190],"tbody",{},[80,98,99,103,106,109],{},[100,101,102],"td",{},"物のあたたまり方",[100,104,105],{},"書き直し1回",[100,107,108],{},"critical 1 / minor 2",[100,110,111],{},"ぼう張率の記述が逆に読める",[80,113,114,117,119,122],{},[100,115,116],{},"熱の伝わり方",[100,118,105],{},[100,120,121],{},"critical 0 / minor 3",[100,123],{},[80,125,126,129,132,134],{},[100,127,128],{},"熱量",[100,130,131],{},"1発合格",[100,133,121],{},[100,135,136],{},"2解法で独立検算・全問一致",[80,138,139,142,144,147],{},[100,140,141],{},"光の直進",[100,143,105],{},[100,145,146],{},"critical 3 / minor 5",[100,148,149],{},"点光源の定義矛盾・扇状の平行光線",[80,151,152,155,158,161],{},[100,153,154],{},"光の反射",[100,156,157],{},"—",[100,159,160],{},"critical 1 / minor 5",[100,162,163],{},"作図手順の光線が逆向き",[80,165,166,169,171,174],{},[100,167,168],{},"光の屈折",[100,170,131],{},[100,172,173],{},"critical 5 / minor 6",[100,175,176],{},"クイズ11問で上限超え報告",[80,178,179,182,185,187],{},[100,180,181],{},"凸レンズ",[100,183,184],{},"書き直し2回",[100,186,121],{},[100,188,189],{},"レンズ公式で自己検算済み",[80,191,192,195,197,200],{},[100,193,194],{},"虹と分散",[100,196,105],{},[100,198,199],{},"critical 0 / minor 6",[100,201,202],{},"一般知識で補完した箇所を明示",[14,204,205],{},"生成時に一番粘った凸レンズが事実チェックでは無傷で、1発合格だった屈折が critical 5件と最多。生成時のチェッカー通過状況と物理的な正しさは相関しなかった。",[10,207,209],{"id":208},"svg光路図に-critical-が集中した","SVG光路図に critical が集中した",[14,211,212,213,216],{},"事実チェックの集計は ",[30,214,215],{},"critical 10件 / minor 33件","。critical の内訳は屈折5・直進3・あたたまり方1・反射1で、光の単元の SVG 図解に集中した。",[218,219,220,223,226],"ul",{},[27,221,222],{},"点光源の定義が自己矛盾していて、平行光線のはずの図が扇状に開いていた（光の直進）",[27,224,225],{},"鏡像の作図手順で、光線の矢印が「目→鏡→物」と逆向きに描かれていた（光の反射）",[27,227,228],{},"ぼう張率の大小関係が逆に読める記述（物のあたたまり方）",[14,230,231],{},"テキストと計算はプロンプトの検算義務でほぼ守られる（熱量のクイズは2解法で独立検算して全問一致）のに、SVG の光路や矢印の向きは生成時の検算をすり抜けて破綻する。この傾向がバッチ4ではっきり数字に出た。",[14,233,234],{},"修正はバッチ3の知見どおり「レビュー確定済みの修正指示を渡して1周で解消」方式。SVG 幾何の再計算を伴う4トピック（屈折・直進・反射・虹）はメインと同格のモデル、軽量修正は Sonnet に振り分けて9体並列で走らせた。屈折はスネルの法則で26項目を検算させ、凸レンズはレンズ公式で自己検算させて、全件1周で潰れた。",[10,236,237],{"id":237},"既存トピック2本の書き直しも並走",[14,239,240],{},"バッチ4の新規8本と並行して、以前に作った既存トピック2本（状態変化系と音系）の原文混入の書き直しも走らせた。どちらもチェッカー合格まで持っていき、状態変化系はテスト434件 pass、音系は計算の検算まで済ませた状態で完了報告が来た。新規生成と既存の手直しを同じ待ち行列に混ぜても、完了通知ベースで進める運びなら混乱しなかった。",[10,242,244],{"id":243},"スコープ外の発見-既存クイズの設定流用","スコープ外の発見: 既存クイズの設定流用",[14,246,247],{},"音系の書き直しを任せたエージェントから、担当外の既存クイズ2問が参考書と同一の問題設定（数値までそのまま）を流用しているという報告が上がってきた。機械チェッカーのゲートは通過するが、「数値・設定を必ず変える」というプロジェクトのルールに反する。修正バッチに混ぜて、花火とドローンを使った独自の設定に差し替えさせた。機械ゲートを通ることと、ルールを守れていることは別物だと再確認した。",[10,249,250],{"id":250},"最終検証でつまずいたところ",[218,252,253,256,259],{},[27,254,255],{},"全テストを回したら31件失敗した。バッチ4起因か既存の失敗かの切り分けに入ったが、Git Bash の変数展開が干渉して確認コマンドが空振り。netstat に切り替えたら、前回セッションの dev サーバー残プロセスが2つのポートを占有しているのが見つかった。PID を指名して kill し、dev を起動し直したらページは全トピック 200 を返した",[27,257,258],{},"表示確認の途中でセッション上限に当たって強制停止（リセットは13時過ぎ）。再開したら表示確認エージェントも巻き添えで落ちていたので、起動し直した",[27,260,261],{},"最終的に対象10トピック（新規8本＋原文混入で書き直した既存2本）すべてで表示確認が合格。セクション描画・クイズ動作・タブタイトル OK、コンソールエラー0件",[14,263,264],{},"計画書は途中経過の時点で一度「現在地」を更新しておいた。セッション上限で切られる日は、この途中セーブが効く。",[10,266,268],{"id":267},"そのままバッチ5電気へ","そのままバッチ5（電気）へ",[14,270,271],{},"午後はバッチ4の知見をプロンプトに反映して、次のカテゴリ（電気7トピック）のバッチ5も同じパイプラインで完走させた。反映した知見は「クイズの answerIndex を0〜3に分散させる」明示指示（バッチ4では9問中9問が先頭選択肢に偏った）など。それでもバッチ5の事実チェックでは critical 7件が出て、今度は電流や回転の矢印の向きに集中した。円周上の接線矢印は、検算を義務付けてもまだ破綻しやすい。",[14,273,274],{},"一日の締めで dev サーバーを止め、ポート3000が解放されたのを確認してからセッションを閉じた。次のセッションは「dev 未起動」前提のクリーンな状態から始められる。",[10,276,277],{"id":277},"成果",[218,279,280,283],{},[27,281,282],{},"コミット5件（バッチ4を内容別に3件＋バッチ5）",[27,284,285],{},"参考書ベースの101トピック中39本が実装済みに。熱・光・音と電気の2カテゴリが完成",[10,287,288],{"id":288},"学び",[218,290,291,294,297],{},[27,292,293],{},"テキストと計算はプロンプトの検算義務で守れるが、SVG の幾何（光路・矢印の向き）は生成時には守れない。「事実チェックで座標まで確定→修正エージェントに1周で適用」の流れを最初から工程に組み込むのが正解だった",[27,295,296],{},"クイズの正解位置の偏りは、生成プロンプトに分散指示を1行足すだけで次バッチから直る。事実チェックの minor 指摘は次バッチのプロンプト改善ネタとして拾う",[27,298,299],{},"前回セッションの dev サーバー残プロセスがテストの切り分けを混乱させる。セッションの終わりにポートを解放しておくのが次の自分への礼儀",{"title":301,"searchDepth":302,"depth":302,"links":303},"",2,[304,305,306,307,308,309,310,311,312,313],{"id":12,"depth":302,"text":12},{"id":19,"depth":302,"text":19},{"id":68,"depth":302,"text":69},{"id":208,"depth":302,"text":209},{"id":237,"depth":302,"text":237},{"id":243,"depth":302,"text":244},{"id":250,"depth":302,"text":250},{"id":267,"depth":302,"text":268},{"id":277,"depth":302,"text":277},{"id":288,"depth":302,"text":288},"dev","中学受験向け参考書ベースの理科学習教材バッチ4。熱・光・音カテゴリの残り8トピックをVue SFC＋クイズで並列生成し、事実チェックで検出したSVG光路図のcritical 10件を修正エージェント1周で解消、表示確認まで完了した記録。","md",{},true,null,"/science-materials-heat-light-sound","mdx-playground",false,"2026-07-03T00:00:00.000Z",{"title":5,"description":315},"2026-07/2026-07-03/science-materials-heat-light-sound",[327,328,329,330,331,332],"理科","教育コンテンツ","Vue","サブエージェント","SVG","Claude Code","n8r1KLRbz-67gXpdAZjG1IajWgI5X7yrT5gxAGBHePg",[],"https://log.eurekapu.com/og/blog/science-materials-heat-light-sound.png?v=2026-07-03T00%3A00%3A00.000Z&title=%E5%B0%8F%E5%AD%A6%E7%94%9F%E5%90%91%E3%81%91%E7%90%86%E7%A7%91%E6%95%99%E6%9D%90%E3%81%AB%E7%86%B1%E3%83%BB%E5%85%89%E3%83%BB%E9%9F%B3%E3%81%AE8%E3%83%88%E3%83%94%E3%83%83%E3%82%AF%E3%82%92%E4%B8%80%E6%8B%AC%E8%BF%BD%E5%8A%A0%20%E2%80%94%20%E7%94%9F%E6%88%90%E3%83%BB%E4%BA%8B%E5%AE%9F%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%BB%E4%BF%AE%E6%AD%A3%E3%81%AE%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E4%B8%A6%E5%88%97%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3&author=Kei%20Komatsu&sig=bbb2a6ad6dda5334",1783124600830]