來源
owner 於 2026-07-12 拍板。2026-07-11 雙跑對比發現:fomo-kernel 只吃 Firstrade CSV schema(csv.DictReader + RecordType/Action/Symbol/Quantity/Price/TradeDate),台股對帳單是 .md 中文表格(TWD),連 load() 的門都進不了 。後果:fomo-kernel 把「最大單點依賴」講成 GOOG 20.6%,但用戶真相是台積電 combined ~38.4%(TSM 全曝險 ~61%)——engine 的宇宙裡根本沒有台積電,因為台股從沒進過它的輸入。
對照:inote 的 combined 口徑是 Claude 人工讀 .md + OCR 截圖手動維護 portfolio.md,非 engine 算。fomo-kernel 沒有這層。
owner 方向:任意格式自動轉
假設輸入可能是任何格式 (券商 .md 對帳單、App 截圖、不同券商 CSV 欄位),fomo-kernel 要自動轉成系統標準格式 再餵 engine。
架構分工(符合 #89 engine 不 hardcode 格式)
Claude 端(SKILL Step 0) :認得任意格式 → 轉成標準 CSV(含 Market/Currency 欄)。這是世界知識職責,engine 不長格式 parser。與 ledger.py snapshot 走 Step 0 標準化同款。
engine 端 :只吃標準 CSV。多市場幣別基礎設施已在 (feat(engine): 多市場幣別傳導 + 匯率 gate — 台股美股混倉不再靜默算錯 (PR-2a of #129) #132 /PR-2a:Market/Currency 欄、匯率 gate、混倉聚合入 USD)。缺口 = 台股個股報價 :fetch_prices 需掛 .TW(上市)/.TWO(上櫃)suffix 抓 yfinance;本 issue 要確認現況並補。
待定 / 設計點
台股標準 CSV 欄位慣例:Market=TW、Currency=TWD、ticker 用代號(2330)還是帶 suffix(2330.TW)——engine 內部報價 key 與呈現 key 的映射。
台股報價源:yfinance .TW/.TWO;上市/上櫃如何判別(Step 0 標準化時標記 or engine 查表)。
截圖/.md → 標準 CSV 的轉換在 Step 0 怎麼落(買賣明細 vs 持倉 snapshot 兩種輸入都要能轉;snapshot 走 ledger --cash/positions)。
台股缺即時報價時的誠實降級(對齊 last_px max_stale_days 既有邏輯)。
驗收
cross-ref #129 (多市場母 issue)、#132 (已 merged 的幣別傳導)。與 B 路線 issue 的多幣別現金有交集(台股現金 = TWD cash 桶),實作時對齊。
來源
owner 於 2026-07-12 拍板。2026-07-11 雙跑對比發現:fomo-kernel 只吃 Firstrade CSV schema(
csv.DictReader+RecordType/Action/Symbol/Quantity/Price/TradeDate),台股對帳單是.md中文表格(TWD),連load()的門都進不了。後果:fomo-kernel 把「最大單點依賴」講成 GOOG 20.6%,但用戶真相是台積電 combined ~38.4%(TSM 全曝險 ~61%)——engine 的宇宙裡根本沒有台積電,因為台股從沒進過它的輸入。對照:inote 的 combined 口徑是 Claude 人工讀
.md+ OCR 截圖手動維護portfolio.md,非 engine 算。fomo-kernel 沒有這層。owner 方向:任意格式自動轉
假設輸入可能是任何格式(券商
.md對帳單、App 截圖、不同券商 CSV 欄位),fomo-kernel 要自動轉成系統標準格式再餵 engine。架構分工(符合 #89 engine 不 hardcode 格式)
Market/Currency欄)。這是世界知識職責,engine 不長格式 parser。與ledger.pysnapshot 走 Step 0 標準化同款。Market/Currency欄、匯率 gate、混倉聚合入 USD)。缺口 = 台股個股報價:fetch_prices需掛.TW(上市)/.TWO(上櫃)suffix 抓 yfinance;本 issue 要確認現況並補。待定 / 設計點
Market=TW、Currency=TWD、ticker 用代號(2330)還是帶 suffix(2330.TW)——engine 內部報價 key 與呈現 key 的映射。.TW/.TWO;上市/上櫃如何判別(Step 0 標準化時標記 or engine 查表)。.md→ 標準 CSV 的轉換在 Step 0 怎麼落(買賣明細 vs 持倉 snapshot 兩種輸入都要能轉;snapshot 走 ledger--cash/positions)。max_stale_days既有邏輯)。驗收
cross-ref #129(多市場母 issue)、#132(已 merged 的幣別傳導)。與 B 路線 issue 的多幣別現金有交集(台股現金 = TWD cash 桶),實作時對齊。