DAYBREAK · CASE STUDY
產品經理視角 · 2026.09.22 — 2026.10.23
號外個人產品 · 從零到每日出刊

Daybreak破曉

把 15 個免費資料源,變成每天台北 08:30 出刊、會自己追蹤對錯的比特幣簡報。

角色

產品負責人(個人專案)
問題定義、規則設計、資料策略、AI 編輯流程與品質標準

協作

Claude Code 實作
Claude 排程任務每日撰寫判讀;GitHub Actions 跑資料管線

平台

靜態網站 + PWA
GitHub Pages、中文/英文、日刊/夜刊、可加到手機主畫面

連結

daybreak.aronlab.dev
GitHub 原始碼

Daybreak 桌面版頭版:左側九個版面的目錄,上方是號外標題,中間是超大的收盤價 81,086。
頭版,2026-10-23 收盤版(第 18 期)。號外標題總結當天市場,收盤價是全頁唯一的視覺重量。
18期連續每日出刊(10/06 起)
15個公開資料來源,0 把 API 金鑰
$0資料與主機成本
26條序列每天自動掃描異動
9個版面 × 中英兩種語言
155次提交,公開倉庫 16 天內
TL;DR

一頁看完

問題

資料很多,結論很少

長期持有者要在週期頂部前分批賣出,但鏈上、ETF、衍生品數據散在十幾個網站,每個數字都沒有「所以呢」,最需要紀律的時候最容易被情緒帶走。

做法

數字、判讀、規則分三層

程式產生數字,AI 只負責解釋,出場規則寫死、每月才檢討。每天自動出刊,再用「今日發現」把注意力集中到不尋常的地方,並在下一期檢查自己說得對不對。

結果

零成本、每天準時

18 期連續出刊,全程用免費 API;每天人工只剩一步(發 X 貼文)。發現有可驗證的追蹤條件,第一批已在隔天得到「確認」或「追蹤中」的結果。

Problem

問題與使用者

目標使用者是手上有比特幣、打算在這一輪週期分批賣出的長期持有者。第一位使用者是我自己。

  • 資訊分散鏈上指標在 Glassnode、CheckOnChain,ETF 流量在 Farside,衍生品在 Deribit、CoinGlass。每天早上要開一輪分頁,還得自己對齊日期。
  • 數字沒有解讀MVRV 1.5 是高還是低?資金費率 10% 代表什麼?跟昨天比變了什麼?工具給的是數字,使用者要的是判斷。
  • 紀律最難事先寫好的出場計畫,到了頂部常常不照做。價格越熱,越容易找到「這次不一樣」的理由。
  • 免費資料有坑免費層有每日額度,部分序列晚 5 到 7 天,網站會擋自動抓取。付費工具則要長期訂閱。
Job to be done每天早上花幾分鐘就知道:市場在週期的哪裡、今天有沒有任何出場規則被觸發、接下來該盯哪幾個價位和日期。
要做
  • 結論先行的每日簡報
  • 週期位置與出場框架的距離
  • 每個數字附一句白話解讀
  • 手機上也好讀,中英文都有
刻意不做
  • 短線價格預測與喊單
  • 顯示任何人的實際持倉或金額
  • 交易下單或串接帳戶
  • 需要金鑰或付費的資料源
Principles

產品原則

這五條寫在 README 和每日任務的規則裡,後面所有取捨都回到它們。

先給結論,再給證據

每一版最上方是「今日判讀」,一句話說這一版今天最值得注意的事,數字放在後面當證據。

寧可「本日未取得」,也不推估

來源失敗只影響那一項,頁面照實標示,絕不沿用昨天的數字。頁首的資料狀態列出每個來源落後幾天。

不同資料商的數字不相減

CoinMetrics 和 bitcoin-data 的 MVRV 口徑不同,混算會產生看起來精確、實際錯誤的結論。

分數附樣本數

引用歷史一律寫出樣本數,少於 30 不下結論。比特幣只有 3 到 4 輪週期,所有「遞減」推論都標明假設。

讀值不連動規則

市場階段、數字解讀、新聞、第三方模型都只作參考,不能改變出場框架。規則參數每月檢討時才改。

週期版:今日判讀說明市場階段為牛市第 15 天,下方是三個判定燈號與六個佐證燈號的表格,以及短期持有者成本與真實市場均價的走勢圖。
週期版。市場階段用寫死的規則判定(投降出現過、在上升的 200 日均線上連 30 天),六盞佐證燈號只顯示、不參與判定;圖上的虛線一律代表外推。
How it works

三層分工與每日流程

最重要的架構決定,是讓 AI 只負責「解釋」,不負責「算」,也不負責「決定」。

確定性程式

數字層

Python 管線抓 15 個來源、計算指標、偵測異動、封存前一期。同樣的輸入永遠得到同樣的輸出。

Claude 排程任務

判讀層

讀精簡摘要、查證新聞與研報,寫中英文頭條、各版判讀和今日發現。不改任何數字,也不改網站程式。

寫死的參數

規則層

出場框架:8 階價格階梯、鏈上觸發、頂部加速、200 日均線避險、時間停損。只有每月檢討時才改。

台北時間誰做什麼
06:40Actions預先抓 7 個鏈上指標,把免費層每天 15 次的額度分成兩批用。
08:06Actions抓全部資料、算指標、跑異動偵測、封存前一期、發布到網站。
08:30Claude讀摘要、查證新聞與研報,寫中英文判讀與發現;格式檢查與隱私掃描通過才提交。
08:3xActions產生中英文分享圖;X 貼文草稿推播到手機。
22:00Actions補抓前一個交易日的 ETF 流量(來源約晚一天公布)。
Decision log

關鍵決策與取捨

核心設計

AI 寫判讀,但不碰數字

情境
讓模型直接看原始資料寫日報很快,但數字可能被改寫、捏造,或混用不同口徑。
決定
數字只由管線產生;AI 只讀約 20KB 的精簡摘要,所有數字都要能在摘要裡找到。規則寫成一份任務文件,提交前由 notes_lint.py 檢查格式、數量、長度、英文版沒有中文、制式提醒句全期最多 4 次。
取捨
文字彈性變小,換來可審計:每句判讀都能追到資料欄位。品質靠規則和檢查器維持,不靠每天人工審稿。
10/08 · 10/15

零成本資料策略

情境
bitcoin-data 免費層每天只有 15 次請求;它的 STH-SOPR 晚約 7 天;Farside 用 Cloudflare 擋自動抓取。
決定
請求分前一晚 7 個、當天 6 個輪替;STH-SOPR 改讀 CheckOnChain 公開圖表;ETF 改用 The Block,逐日和 Farside 比對一致才採用。
取捨
多了快取與輪替的複雜度。STH-SOPR 的延遲從約 7 天降到約 1 天,同時每天省下額度,總用量維持在 13 次。
10/08 · 10/21

準時比聰明重要

情境
GitHub 內建排程在這個倉庫每天晚 5 到 7 小時,晨報變午報。
決定
改由 cron-job.org 準時觸發;原排程保留當備援,同一天重複觸發自動略過。AI 任務發現資料過期時,會自己觸發管線並等待。10/21 再修正「今天抓過沒」的判斷,改以週期起點計算,不再用 UTC 日期。
取捨
多一個外部服務要維護。換到的是晨報回到早上出刊,公開以來 18 期沒有斷過。
10/21

寧可拿掉,也不顯示舊資料

情境
鯨魚與大戶分層的來源 BitInfoCharts 開始擋自動抓取。
決定
暫停這個面板。管線不報錯,網站在沒有資料時連同狀態列和來源說明一起隱藏;程式碼保留,找到替代來源再回補。
取捨
少一個受歡迎的面板,但守住「不沿用舊數字」的原則。
10/18

發現自己的回測錯了,公開更正

情境
淨實現損益面板上線時,回測用的是每段尖峰「最極端的那一天」,這是事後才知道的資訊。
決定
改用即時可得的「每段第一天」重測,結論反轉:虧損尖峰之後的報酬普通,不是買點;獲利尖峰之後常繼續漲,也不是賣點。同時補上限制:歷次觸發都在現貨 ETF 之前,訊號在 ETF 時代可能變鈍。
取捨
少了一個好看的「買點訊號」。讀者拿到的是可信的讀值,每日任務也加上一條規則:不能把「沒觸發」寫成「還沒見底」。
10/08 → 10/12

手機和桌面用不同的閱讀方式

情境
9 個版面,資訊密度很高。上線第一天就試了 5 種換版方式。
決定
手機一次一版、左右滑動、換版一律回到頂部;桌面連續捲動、鍵盤 1 到 9 跳版。CSS 和 JS 加版本號,避免手機拿到新舊混搭的檔案。
取捨
兩套導覽要各自測試,所以每個 PR 都用無頭瀏覽器渲染中英文 × 桌面手機,確認沒有 JS 錯誤、不會橫向捲動。
10/12

英文版的預設語言依地區決定

情境
X 上的讀者大多看英文,但核心使用者讀中文。
決定
台灣、香港、澳門、中國大陸、新加坡預設中文,其他地區預設英文;使用者選過就一直沿用。只查國家代碼,結果存在訪客自己的瀏覽器。
取捨
多一次第三方查詢。AI 每天要多寫一份英文判讀,缺檔時退回中文並標示。
Feature deep dive

今日發現:從儀表板到判斷

上線兩週後的觀察:讀者自己看得到數字,看不到的是「哪裡不尋常、為什麼、接下來看什麼」。

前 16 期的日報是「每個版面一段判讀」。資訊完整,但重點平均分配,真正異常的訊號會被淹沒在 9 個版面裡。10/23 上線的「今日發現」改成先找異常、再寫判斷,並讓每個判斷都能在下一期被檢驗。

STEP 1偵測

26 條序列套固定規則:一年 2% 極端值、7 日急變、狀態翻轉、關鍵價位 ±3%、連續、跨指標組合。

signals.py
STEP 2撰寫 0 到 3 則

拆解是哪一邊在動、交叉比對、列出其他解釋、引用過去同樣情況與樣本數。

Claude
STEP 3寫下追蹤條件

例如「實現獲利回到 4,000 顆以下」,附期限,並標明成立時代表確認或推翻。

Claude
STEP 4隔天自動檢查

管線讀上期條件,用今天的數字判斷成立與否。

signals.py
STEP 5寫後續

確認、推翻、到期或追蹤中。結果寫進往期索引。

Claude

↺ 第 5 步的結果成為下一期第 1 步的輸入

今日發現區塊:整體偏空,兩則發現各附可信度與偏空標籤;下方是上期發現的後續,一則追蹤中,一則確認。
10/23 版的今日發現。上期兩則發現,一則「確認」(資金費率維持在 5% 以上),一則仍在「追蹤中」。每則都標偏多/偏空/中性與理由,頂端彙總整體方向。
設計規則

硬湊的發現比沒有更糟

數量上限 3 則,可以是 0。同一件事的多個訊號合成一則;連續多天的異常只有出現新發展才再寫,否則放進後續。

為什麼這樣設計

讓 AI 的判斷可以被記分

每則發現都寫出會推翻自己的條件,系統隔天自動對答案。累積下來,就能算出發現的確認率,評估判讀品質。

Iterations

迭代時間軸

  1. 資料管線與網站

    先解決「每天有一份正確的數字」,再談解讀。

  2. 籌碼流向、掛單簿深度

    掛單簿從 3 家擴大到 13 個交易所(10/06),加入第三方頂底模型讀值。

  3. 公開上線

    請求輪替、ETF 換源、手機滑動換版、資產版本號。

  4. 市場階段規則修訂

    牛市需投降出現過,加上在上升的 200 日均線上連 30 天;加入佐證燈號。

  5. 每個數字附白話解讀;英文版

    依固定門檻自動產生「現在代表什麼」,標上偏多/偏空/留意/中性。PR 自動檢查上線。

  6. 分發

    中英文分享圖、每日 X 草稿、發文小幫手、無 cookie 的訪客統計。

  7. 每張圖都有「讀圖」

    「現在」一句自動產生,「怎麼讀」說明要小心什麼;虛線一律代表推測。11 項鏈上指標補上 3 年走勢。

  8. 淨實現損益與回測更正

    發現後見之明偏誤,改用即時測試,結論反轉並公開更正。

  9. 可靠性週

    修正預抓排程、鯨魚面板暫停、每日任務規則依版面重整。

  10. 今日發現與後續追蹤

    從「每版一段判讀」轉向「先找異常、再寫可檢驗的判斷」。

Distribution

分發與成長

內容每天自動產生,分發也要接近零成本:圖自動畫,文案自動寫,人只按發送。

英文分享圖:號外紅標,標題寫 ETF 流入 5.25 億美元但那斯達克下跌 2.6%,下方三格是市場階段、ETF 七日流量與離出場第一階的距離。
每期推送後由 Actions 自動產生的分享圖(英文版)。
連結預覽卡:DAYBREAK 破曉字標,副標 The first Bitcoin brief of the morning。
網址貼到 X 時的預覽卡,預設英文。
直式短影片封面:比特幣漲了,推它的卻是空頭;空單一天被清算 1.88 億美元。
短影片封面。社群內容只放市場資訊,不放出場框架。
自動化

每天一份草稿

AI 寫完日報後另寫中英文 X 貼文,用 x_len.py 確認在 280 字內,推播到手機。發文小幫手一鍵複製、存圖、開 X 發文視窗。

邊界

資訊公開,策略留在站內

短影片與貼文不放出場框架、觸發條數或「今天不動」之類的動作結論。社群負責帶人進來,判斷框架留在網站裡完整說明。

量測

不收個資的統計

GoatCounter 不用 cookie,只在正式網址計數;X 連結帶 utm_source=x,分得出社群帶來的流量。

Trust & quality

品質與風險控管

風險對策
公開倉庫洩漏個人資訊隱私鐵則列為最高優先:不得出現任何人的實際持倉或金額,出場框架只用百分比;每次提交前掃描。
AI 捏造或誤植數字只讀摘要、不改數字;格式與數量由檢查器把關,沒過就不能提交。
讀值被誤會成買賣訊號標籤只描述「對價格的一般含意」;與自動解讀方向不同時必須寫出原因。
資料延遲或失敗頁首資料狀態列出每個來源的日期與落後天數;失敗的項目顯示「本日未取得」。
改版弄壞網站每個 PR 檢查語法、英文字典、版本號,並渲染每一版的中英文 × 桌面手機。
Metrics & next

成效指標與下一步

產品上線約兩週,流量統計已經埋好但樣本還小,這裡先列出我會用來判斷成敗的指標。

指標定義現況
北極星每天開啟日報的回訪讀者數已埋點,累積中
準時率08:30 前資料與判讀都已更新的天數比例18 期連續出刊
資料完整度每期「本日未取得」的項目數頁首每天顯示
判讀品質發現到期時「確認」對「推翻」的比例10/22 起累積,首批 1 確認、1 追蹤中
分發效率帶 utm_source=x 的造訪占比已埋點,累積中
下一步

往期頁面

每期已自動封存頭條、當天收盤、之後漲跌與價位有沒有被碰到。10/12 決定先只封存,等資料夠多再設計成可回顧的頁面。

下一步

發現的公開記分板

把確認率放到網站上,讓讀者自己判斷這份簡報值不值得信。

下一步

鯨魚資料替代來源

找到不擋自動抓取的地址分層資料,再回補暫停中的面板。

Learnings

學到的事

  • 用 AI 做產品,規格就是規則文件

    每日任務的指示有 160 多行,寫清楚格式、數量、禁止事項和每一版要怎麼寫。品質問題出現時,修的是規則和檢查器,不是當天的那段文字,所以同樣的錯不會再犯。

  • 可信度是累積出來的

    「本日未取得」、樣本數、虛線代表推測、公開更正回測,每一項單看都讓產品顯得不那麼厲害,放在一起才讓讀者願意相信剩下的數字。

  • 先讓它每天出刊,再讓它變聰明

    前兩週大部分的工作是資料來源、排程與額度。準時、正確的基礎打好之後,「今日發現」這種需要判斷力的功能才有意義。