朝イチで「昨日の積み残しって何でしたっけ」とログに聞いたら、2026-06-22 の計画書 memo/2026-06-22/next-session-tendaily-by-item.md が出てきた。韓国半導体旬報チャートを「品目別」に拡張する作業。DRAM / NAND / MCP / DRAMモジュール / SSD の5本ぶん、day10 / day20 / monthly_final の3段積み上げチャートを並べたい、というやつ。
進捗確認をさせたら「6割くらい」と返ってきた。金額版の5本までは前回ほぼ終わっていて、残りは 重量版の3段チャート描画 → テスト → 手順書追記。順序通りに進めれば終わるはずだった。
重量チャート5本まで作って、テストも通った
Claude Code に Task 1〜4 を立てさせて、上から順に走らせた。
- Task 1:
TendailyStackedChart.vueの拡張(金額系のhasUnitPriceだけだったところを、重量トンの軸にも対応させる)。右軸のmaxUnitを条件分岐に、左軸のNICE_STEPSをトン向けに広げる - Task 2:
/memory-makers/korea-chip-exports.vueに重量チャート5本ぶんのセクションを追加。テンプレをv-ifで金額/重量に切り替え - Task 3: テスト追記。17件 pass
- Task 4:
s10/s20ヘルパがkoreaChipItemTendaily.tsに未実装だったので、/update-korea-chip-exportsStep 3.9 がday10: s10('2026-07', 3.9)の1行で書けるようにヘルパを追加。capturedAt(当月11日/21日 09:00 KST)とsourceCutoffLabelをヘルパが埋める
dev サーバーを起動して Chrome DevTools でスクショまで撮らせた。DRAM / NAND / MCP / DRAMモジュール / SSD の5本、左軸が 0t / 50t / 100t / 150t / 200t / 250t の目盛りでキレイに並んでいる。完了報告まで受け取った。
ここまでで筆者本人は手を動かしておらず、判断もしていない。AI が淡々と上から実装を流していった。
一度 revert して、別案を試そうとした
スクショを見て「あれ、ちょっとイメージが違う」と引っかかった。3段チャートの形は前回のものとつながっているけど、重量って本当にこの形で見たかったんだっけ。1個前に戻させて、別の表示案として Nanya 専用に作ってある NanyaAspBitChart(単価 ASP と数量 Bit Shipment の QoQ 変化率を1枚に並べる二系列折れ線) を品目別に5本横展開する方向で検討させた。
新規ファイル UnitPriceQuantityChart.vue の作成まで進んだところで、また「いったん手を止めて」と止めた。Nanya 風で進めるとスコープが膨らむし、今日もともと予定していた「重量チャート5本」の話とズレ始めていた。新規ファイルだけ削除させて、重量チャート対応を再度 staging まで適用しなおした。
ステージング直前で前提を疑い直した
重量チャート5本ぶんを全部 staging に上げ終わった瞬間、引っかかった違和感に正面から名前を付けた。
「ごめん、だからこれ、具体的に何が変わったんでしたっけ。表示変わってないんでしたっけ。なんか 品目別って、その10日とか20日とか取れないんですよね。」
ここが今日のキモ。手を動かす前ではなく、手を動かしてチャートが画面に出てから、そもそも論に戻った。
整理するとこうなる。
- 公式旬報(관세청 KCS): MTI 10대 품목(=半導体合計)止まり。HSK 10桁の品目別では金額・重量とも旬報がない(2026-06-22 に確定済み)
- X 経由の代替路: SK증권 한동희のレポートを @jun89320 が상순(1〜11日)/ 중순(1〜20日)で投稿しているが、出るのは 金額(億달러)だけ。重量(トン)の旬報は誰もポストしていない
- 結果として、重量版3段チャートの器を作っても day10 / day20 は永遠に null のまま。黄バー(monthly_final)だけが立ち続ける、3段が3段として機能しないチャートになる
つまり、AI に「重量チャート5本を作って」と頼んだ瞬間に決まっていた構造的な欠陥に、5本描画 → スクショ確認 → staging 直前まで来てから気づいた。事業ロジックの粒度(旬報は半導体合計までしか降りない)と、データ構造の粒度(3段積み上げ)が噛み合っていない。
revert → ヘルパとテストだけ残してコミット
判断が決まったので、重量チャート関連を順次 unstage させた。
apps/web/app/components/memory-makers/TendailyStackedChart.vue→ unstageapps/web/app/pages/memory-makers/korea-chip-exports.vue→ unstageapps/web/public/_redirects→ unstage
staging に残したのは2ファイルだけ。
apps/web/app/data/memory-makers/koreaChipItemTendaily.ts: s10 / s20 ヘルパの追加。これは A 案(金額版)の運用に必要なので残すapps/web/tests/korea-chip-item-tendaily.test.ts: データ整合性テスト4件。day10 ≤ day20 ≤ monthlyの内包関係、DRAM+NAND+MCP ≤ MOTIE 半導体合計 × 1.01の物理上限、≥ MOTIE × 0.4の主要構成
ヘルパは s10('2026-07', 3.9) の1行で capturedAt と sourceCutoffLabel を埋める純粋関数にした。weightTons は null 固定。@jun89320 の상순投稿が 2026-07-11 に流れ始めたら、このヘルパを使って金額の day10 / day20 を積んでいく。
テストを走らせて 17件 pass を確認。コミット 5ab14bab として確定。
ドキュメントを「クローズ」状態に更新
「更新しといてくださいね、ドキュメント」と一言入れて、3つの md を整理させた。
memo/2026-06-22/next-session-tendaily-by-item.md: 冒頭に Status: Closed サマリを追加。DoD のチェックボックスを実態に合わせて更新(金額版5本+ヘルパ+テストは完了、重量版は見送り)memo/2026-06-24/tendaily-by-item-closed.md: 新規の意思決定記録。なぜ重量版を見送ったか、代わりに何を残したか、代替案として検討した3案(重量も1段で運用 /MonthlyRevenueChartで別構造で描く / 既存セクションに補助バー併載)をなぜ採らなかったか、を残したmemo/2026-06-22/chrome-extension-tradedata-plan.md: Step 3.9(x-search 経路)が動くと確認できた以上、Chrome 拡張で旬報を自前取得する案は緊急度低 → Status: Deferred
コミット 808d49f7。これで「やったけど棚に上げた作業」が地層として残った。1ヶ月後に同じ計画書を開いて「あれ、これ進めたっけ?」となっても、冒頭のクローズサマリと意思決定記録を読めば理由まで辿れる。
学び: 手を動かしてから前提を疑い直すのは、AI 時代でも自分の係
今日の構図はシンプルだった。
- AI(実行係): 計画書を渡せば Task 1〜4 を上から順に流す。重量チャート5本を描画して、テストも通して、スクショまで撮る
- 筆者本人(判断係): 「これ、品目別の重量って旬報粒度で取れないのでは?」と画面を見てから気づく
AI は計画書に「重量チャート5本を作る」と書いてあれば作る。書かれていない前提(重量の旬報データが構造上存在しない)を、計画書の上から指摘してはくれない。指摘してきても、手を動かさずに机上で気づくのは難しい。実物のチャートが画面に出てから「あれ、これ毎月黄バー1本で終わるやつだ」と分かったのが今日の正直なところ。
これは大事な区切りで、AI に作業させる時代でも「手を動かした結果に違和感を持つ」のは人間側の係として残り続ける。事前に全部の前提を詰められれば最高だけど、現実には「手を動かしてみないと分からない欠陥」が必ず混じる。動かしてから戻ってこられる体力(revert する勇気、決定を文書化する手間)の方を鍛えた方が、結果的に速い。
棚に上げた重量チャートも、もし将来 한동희が重量も投稿し始めるか、別ソースで重量旬報が公開されたら、koreaChipItemTendaily.ts のヘルパと整合性テストはそのまま使い回せる。今日の作業は「捨てた」のではなく「動かす条件が揃ったら起こす」状態で寝かせた。
残置
- 2026-07-11: Step 3.9 を初運用。
s10('2026-07', X.XX)で day10 金額を1行追記する想定 - 重量旬報の出現待ち: ソースが出てきたら B 案再考。それまで重量は月末確報のみ