[{"data":1,"prerenderedAt":224},["ShallowReactive",2],{"content-/note-first-series-plan-review":3,"all-pages-for-dir":202,"related-/note-first-series-plan-review":203,"og-image-/note-first-series-plan-review":223},{"id":4,"title":5,"body":6,"category":183,"concepts":184,"description":185,"extension":186,"meta":187,"navigation":156,"ogImage":184,"path":188,"project_name":189,"published":190,"publishedAt":191,"seo":192,"stem":193,"tags":194,"todo":184,"unpublished":190,"updatedAt":184,"__hash__":201},"pages/2026-07/2026-07-29/note-first-series-plan-review.md","企画レビューで前提が2つ崩れた — レシートOCRのシリーズ案をシーケンス図に描き直す",{"type":7,"value":8,"toc":171},"minimark",[9,13,16,21,24,27,30,34,37,40,43,46,50,53,61,64,67,71,74,77,80,83,87,90,93,96,101,104,107,111,114,117,120,142,145],[10,11,12],"p",{},"自分の企画書を画面でスクロールしていて、最初に赤を入れたのは記事の並び順ではなかった。「写真1枚に複数のレシートが写り込んでいる場合は、まず画像を1枚ずつに切り分ける」という一行だ。",[10,14,15],{},"ここが違う。",[17,18,20],"h2",{"id":19},"レビューの場はローカルに立てた決裁フォーム","レビューの場は、ローカルに立てた決裁フォーム",[10,22,23],{},"note第1弾のシリーズ企画は、マークダウンで書いた計画書をHTMLに変換し、ローカルサーバーで立てて読んでいる。判断が必要な項目には3択ボタンが埋まっていて、読んだ流れでそのまま答えられる。今日はそのHTMLを上から読みながら、気づいた点を口で伝えて、計画書のほうを直させていった。",[10,25,26],{},"途中で手が止まった。27項目ある企画書を、上下に往復しながら読んでいる。目次が欲しい。",[10,28,29],{},"ただ、計画書のプレビューに使っている共通CSSは他の計画書も全部読んでいるファイルなので、ここを書き換えられると過去の計画書の見た目まで動く。既存には触らせず、目次用のCSSを新規で1枚足させた。右側に27項目が並んで、本文と重なっていないことを画面で確かめてから続きに戻った。",[17,31,33],{"id":32},"指摘1-手順ではなく前提が古かった","指摘1 — 手順ではなく、前提が古かった",[10,35,36],{},"企画書のOCRの節には「複数枚が写り込んだ写真は、分割してから読ませる」と書いてあった。分割が難しいケースの回避策で記事を1本立てる構成にもなっていた。",[10,38,39],{},"自分が試した範囲では、この前処理は要らない。最近のマルチモーダルのモデルは、レシートの境界がはっきりしていれば、1枚の写真に4枚写っていても4件として読み分ける。切り分けの工程を挟む理由がない。",[10,41,42],{},"これは実装の細部ではなく前提なので、直る範囲が広い。該当箇所を4か所書き直させた。「分割してから読む」という手順が消え、「分割が難しいときの回避策」だった記事の枠が、「いろいろな写り方の写真をどう読ませるか」という別の記事に変わった。",[10,44,45],{},"企画書の誤りは、たいてい手順ではなく前提のほうに居る。手順の誤りは文を直せば済むが、前提の誤りは記事の本数を変えてしまう。",[17,47,49],{"id":48},"ネタ元を実務から引く前に禁止事項を先に決めた","ネタ元を実務から引く前に、禁止事項を先に決めた",[10,51,52],{},"記事候補が机上の想像に寄っていたので、実務処理を置いてあるリポジトリを読ませることにした。どの帳票をどの道具でどう通しているかは、そこに全部ある。いちいち口で説明するより読ませたほうが早い。",[10,54,55,56,60],{},"ただしそこは、顧客の実名がディレクトリ名になっている場所だ。読ませる前に前提を1つ立てた。",[57,58,59],"strong",{},"記事には実名も金額も一切使わない。抜き出すのは処理の型だけ。"," 「どの種類の帳票を、どの道具で、どの順に通したか」だけが記事に出ればいい。実務の中身は記事に持ち出さない。",[10,62,63],{},"読ませてみて、いちばん効いたのは新しい発見ではなかった。数か月前に自分で作ったAI活用事例の棚卸し資料が、そのまま記事候補の母集団になっていた。用途欄には「ブログ連載の記事お題候補」と自分の字で書いてある。仕込んだことを忘れていた。",[10,65,66],{},"抜き出した処理の型を、部品のカタログとして計画書の §9 に書き込ませた。20本強ある。ここで企画の性格が変わった。読ませる前の候補は「たぶん誰かが困っているはず」で立てた想像だったが、書き込まれたのは自分が毎月すでに動かしているものだけになった。動かしているものは、詰まる箇所も回避のしかたも手が覚えている。想像で立てた記事は、書き始めてから中身が無いことに気づく。",[17,68,70],{"id":69},"指摘2-ゴールが手前で止まっていた","指摘2 — ゴールが手前で止まっていた",[10,72,73],{},"今日いちばん大きい軌道修正がこれだった。",[10,75,76],{},"企画書のゴールは「提出用の様式に流し込んだExcelができたところ」になっていた。写真を撮り、読み取り、様式に落ちる。そこで記事が終わる構成だ。",[10,78,79],{},"実務ではそこで終わらない。CSVにして会計ソフトDに取り込み、画面に出た件数と金額が手元の集計と合っているところまでが1本の作業だ。取り込みで弾かれる、件数が1件足りない、金額が丸めでずれる。詰まるのはたいていこの区間で、Excelができた時点はまだ折り返しにすぎない。",[10,81,82],{},"だから終点を「ソフトの画面で件数と金額が合うところ」まで伸ばさせた。そのうえで、撮影から表示までを1本の記事に載せると長い。フェーズに割って、記事のほうを分ければいい。",[17,84,86],{"id":85},"シーケンス図にしてフェーズで囲む","シーケンス図にして、フェーズで囲む",[10,88,89],{},"レシートを題材に、撮ってから取り込んで表示されるまでを1本のシーケンス図にまとめさせた。フェーズは図の外の注記ではなく、図の中でまとまりを囲む形にした。読んだ人が「今日の記事はこの区間」と指で押さえられるほうがいい。",[10,91,92],{},"第1版はすぐ出てきた。lintも描画も確認済み。ただ、図の中身が実態と合っているかは別問題で、確認すべき範囲が広い。取り込み用CSVの仕様のリバースエンジニアリングと、スプレッドシート台帳への集約の仕組みを、サブエージェント2本に分けて並列で調べさせた。",[10,94,95],{},"1本目が引っかかるものを返してきた。集計フォームと取り込み用CSVのパイプラインが、ドキュメント上つながっていない。実ファイルで接続を確認させたら、つながっていないのが事実だった。",[10,97,98],{},[57,99,100],{},"図に描こうとしていた終点は、実務でもまだ通していない区間だった。",[10,102,103],{},"これは図の描き直しになるが、悪い発見ではない。書くべき記事が1本増えた、という意味にもなる。台帳のスプレッドシートが全体の中心に居ると分かったので、第2版は6フェーズに割り直させた。6フェーズ＝6記事。目次の深さも1段上げて、シーズン構成まで右側に出るようにした。",[10,105,106],{},"なお、HTMLを作り直しても画面が古いままだったことが今日2回あった。サーバーが前のHTMLを掴んだままなので、再生成のあとは立て直しまでやらないと自分が古い版をレビューしてしまう。",[17,108,110],{"id":109},"帰り際に明日の自分へ渡す","帰り際に、明日の自分へ渡す",[10,112,113],{},"帰る時間になった。ここで止めると、明日の自分は「計画書のどこが最新か」から探し始めることになる。",[10,115,116],{},"計画書に現在地と残タスクを追記させ、引き継ぎを §12 として本文の中に残させた。図の版、フェーズの本数、まだ通っていない区間。この3つは計画書側に文字で置いておかないと、明日の判断がやり直しになる。決裁フォームも最新のHTMLで立て直してある。",[17,118,119],{"id":119},"学び",[121,122,123,127,130,133,136,139],"ul",{},[124,125,126],"li",{},"企画書のレビューは、手順より前提を疑う。前提が誤っていると記事の本数まで変わる",[124,128,129],{},"「モデルが苦手だから前処理を足す」という設計は、モデルの世代が変わると丸ごと不要になる。前処理の必要性は都度自分で試して確かめる",[124,131,132],{},"成果物の終点を「ファイルができたところ」に置くと、実務では折り返しで止まる。「画面で数字が合うところ」まで伸ばす",[124,134,135],{},"実務のリポジトリをネタ元にするなら、読ませる前に「実名・金額は使わない、型だけ抜く」を宣言してから読ませる",[124,137,138],{},"共通CSSに手を入れさせず、用途別のCSSを足す。過去の計画書の見た目を巻き込まない",[124,140,141],{},"過去の自分の棚卸し資料は、そのまま企画の母集団になる",[17,143,144],{"id":144},"明日やること",[121,146,149,159,165],{"className":147},[148],"contains-task-list",[124,150,153,158],{"className":151},[152],"task-list-item",[154,155],"input",{"disabled":156,"type":157},true,"checkbox"," まだ通っていない区間（集計フォーム → 取り込み用CSV）を実際に通し、ソフトの画面で件数と金額が合うところまで確認する",[124,160,162,164],{"className":161},[152],[154,163],{"disabled":156,"type":157}," 6フェーズの記事割りを、1本ずつの見出しレベルまで落とす",[124,166,168,170],{"className":167},[152],[154,169],{"disabled":156,"type":157}," 決裁フォームに残っている判断項目に答えて、シリーズの本数を確定させる",{"title":172,"searchDepth":173,"depth":173,"links":174},"",2,[175,176,177,178,179,180,181,182],{"id":19,"depth":173,"text":20},{"id":32,"depth":173,"text":33},{"id":48,"depth":173,"text":49},{"id":69,"depth":173,"text":70},{"id":85,"depth":173,"text":86},{"id":109,"depth":173,"text":110},{"id":119,"depth":173,"text":119},{"id":144,"depth":173,"text":144},"dev",null,"note第1弾のシリーズ企画をローカルに立てた決裁フォームでレビューしていたら、「複数枚写った写真は分割してから読ませる」という前提と、「様式のExcelができたら完成」というゴールが順番に崩れた。撮影から取り込み・表示までを1本のシーケンス図に描き直し、6フェーズ＝6記事に割るまでの記録。","md",{},"/note-first-series-plan-review","marketing-thinking",false,"2026-07-29T00:00:00.000Z",{"title":5,"description":185},"2026-07/2026-07-29/note-first-series-plan-review",[195,196,197,198,199,200],"note","OCR","シーケンス図","計画書レビュー","コンテンツ企画","Claude Code","gbsWITt1JQy2IgSZm2_0R1NWeQCTZqIz9XnqVQ5DxWU",[],[204,207,211,215,219],{"title":205,"path":206,"publishedAt":191},"2026年7月29日の開発日記 - 朝いちで ~/.claude が消えた日に、7本の作業が並走した","/2026-07-29-diary",{"title":208,"path":209,"publishedAt":210},"ChatGPT Proのディープリサーチが空振りした日｜送信は成功、プロンプトは空だった","/book-db-deep-research-content-plan","2026-07-27T00:00:00.000Z",{"title":212,"path":213,"publishedAt":214},"Kindle電子書籍をOCRで蔵書DBに取り込む新コマンドを作った","/kindle-ocr-pipeline-async-command","2026-07-23T00:00:00.000Z",{"title":216,"path":217,"publishedAt":218},"Kindle 5冊を yomitoku-kindle で並列パイプラインに流して1時間で完走させた話","/yomitoku-kindle-batch-import","2026-06-19T00:00:00.000Z",{"title":220,"path":221,"publishedAt":222},"裁断した実務書をOCRしてTursoのDBに横串検索できる本棚を毎日10冊単位で増やす","/book-knowledge-base-import-batch-workflow","2026-06-16T00:00:00.000Z","https://log.eurekapu.com/og/blog/note-first-series-plan-review.png?v=2026-07-29T00%3A00%3A00.000Z&title=%E4%BC%81%E7%94%BB%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%A7%E5%89%8D%E6%8F%90%E3%81%8C2%E3%81%A4%E5%B4%A9%E3%82%8C%E3%81%9F%20%E2%80%94%20%E3%83%AC%E3%82%B7%E3%83%BC%E3%83%88OCR%E3%81%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%E6%A1%88%E3%82%92%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E5%9B%B3%E3%81%AB%E6%8F%8F%E3%81%8D%E7%9B%B4%E3%81%99&author=Kei%20Komatsu&sig=01309ac6a6ec3da5",1785379972830]