股票觀測站台指期 · 題材 · 美股 · 論文

MARKET RESEARCH

被監看的條件

153 條條件:11 條成立、140 條不成立、🔴 2 條算不出來

這一頁在說什麼判斷全部回去呼叫原本那一層,這一頁不重算任何判準。機器可讀版:/api/watched.json

這個站有6 層在監看:問題單、值班、橫幅、排程、Hermes、業務驗收。每一層都有自己的畫面,但沒有一頁說得出總共在看幾條。這一頁就是那份清單。已記錄限制仍代表條件成立;研究的負面結果與當期工程故障分開標示。

未觸發、需處理、待查,分開呈現。「條件不成立」與「判不出來」在原本的機制裡長得一模一樣——而後者更危險:量測層讀不到某個事實時,detect() 不出單,reconcile() 會把那張單記成「條件不再成立」自動結案。

來源讀不到可能被問題單誤判為條件消失;此頁會另列待查,不能當作修復證明。

這一頁把缺掉的事實指名道姓列出來,那個洞才看得見。

🔴 算不出來的條件(2 條)這不代表有問題,代表不知道有沒有問題——而那不該長得像沒問題

這些條件此刻沒有被判斷。畫面上它們與「沒問題」無法區分,而且問題單那一層會把它們自動結案。

狀態條件判準嚴重度此刻
⚪ 待查*.prose_fabrication巡邏連續 ≥2 次記到「散文捏造數字」(fatal,誠信問題)—缺事實:repeat_streaks——detect() 對這條不出單,而 reconcile() 會把它記成「條件不再成立」自動結案
⚪ 待查*.expectation_unreconciled巡邏連續 ≥3 次記到「預期未對帳」—缺事實:repeat_streaks——detect() 對這條不出單,而 reconcile() 會把它記成「條件不再成立」自動結案

問題單(18 條,6 條成立)判準寫在 src/tx/issues.py detect()

狀態條件判準嚴重度此刻
📌 已記錄限制發現層沒有超額報酬
theme.no_excess_return
發現層超額報酬檢定 |t| < 2major發現層檢定 t = +0.08(|t| < 2)
⚠️ 注意4 筆歷史匯入佔位列缺少原始身分
theme.unthemed_predictions
有預測的 scenario 為空或 format_b_recovered(按題材的統計會少算)minor4 列為逾 30 日的舊格式補救佔位:原預測日期與股票代碼都是 unknown,無法可靠補題材;分組統計須另列不可歸屬數量,不能當作今天漏產預測。
📌 已記錄限制事先判準 0 過 / 4 不過
tx.criteria_zero
四條事先判準通過 0 條majordirection / calibration / interval / cost 全部未通過
📌 已記錄限制進場勝率低於 50%
tx.entry_winrate_below_breakeven
walk-forward OOS 的進場勝率 < 基準(0.5)majorwalk-forward OOS 3,841 筆,進場勝率 0.4803,基準 0.50
📌 已記錄限制方向命中率輸給「永遠猜多數類」
tx.hit_below_majority
方向命中率 < 多數類基準(永遠猜多數類的成績)major方向命中率 0.3676,多數類基準 0.4317
📌 已記錄限制宏觀面拿不到 CPI 與失業率
us.macro_missing_cpi
宏觀座位 status = partial(拿不到 CPI 與失業率)minorFRED 從本環境連不上(2026-08-26 實測 90 秒逾時兩次),座位只有利率,狀態 partial
⚪ 待查*.expectation_unreconciled巡邏連續 ≥3 次記到「預期未對帳」—缺事實:repeat_streaks——detect() 對這條不出單,而 reconcile() 會把它記成「條件不再成立」自動結案
⚪ 待查*.prose_fabrication巡邏連續 ≥2 次記到「散文捏造數字」(fatal,誠信問題)—缺事實:repeat_streaks——detect() 對這條不出單,而 reconcile() 會把它記成「條件不再成立」自動結案
✅ 未觸發paper.range_coverage該部門申報合理範圍的數字 < 90%(沒申報的沒受過檢查)—16/16 申報了範圍
✅ 未觸發theme.range_coverage該部門申報合理範圍的數字 < 90%(沒申報的沒受過檢查)—32/32 申報了範圍
✅ 未觸發theme.single_day_historywatchlist 有 > 5 列卻只有 1 個日期(append 語意壞了)——
✅ 未觸發tx.account_params_unset已啟用個人部位估算、但 [account] 未填(公開研究模式不適用)—公開研究模式;私人帳戶未啟用,不列為待辦
✅ 未觸發tx.backtest_stale逐日紀錄落後資料最後交易日 ≥ 3 個工作日—落後 1 個已有答案的交易日(紀錄到 2026-10-12,答案到 2026-10-13)
✅ 未觸發tx.cost_unverified成本參數有「查得到卻還沒查」的項目(user_accepted 與 pending_user_input 不計)—0 項
✅ 未觸發tx.range_coverage該部門申報合理範圍的數字 < 90%(沒申報的沒受過檢查)—43/43 申報了範圍
✅ 未觸發tx.unfreeze_gate_reached最慢的 horizon 已結算筆數 ≥ 解凍門檻(60)卻還沒動作—最慢的 horizon 33/60(h1 38/h3 35/h5 33)
✅ 未觸發us.flow_history_short籌碼面歷史 < 20 天(談變化的最低天數)——
✅ 未觸發us.range_coverage該部門申報合理範圍的數字 < 90%(沒申報的沒受過檢查)—75/75 申報了範圍

值班(9 條,1 條成立)判準寫在 src/tx/watch.py check()

狀態條件判準嚴重度此刻
⚠️ 注意研究 Agent 有未完整完成工作:每日會議
watch.agent_execution
研究 Agent 工作未完整完成,區分工程故障、資料阻擋與部分降級minor每日會議:執行狀態 degraded;未採用 LLM 自由敘述(不可用或引用核驗失敗)。數字與議題不受影響——它們由系統直接產生,LLM 只負責敘述。
✅ 未觸發audit_mute
watch.audit_mute
稽核室有席位今天產不出真正的發言(錯誤封包也算沒發言)——
✅ 未觸發false_fixed
watch.false_fixed
有問題單宣稱已修,但偵測器今天還抓得到那個條件——
✅ 未觸發schedule
watch.schedule
排程檢查本身算不算得出來(算不出來=值班看不到排程)——
✅ 未觸發serving
watch.serving
站台的 :8010 是不是由 systemd unit 起的行程在服務,而且它啟動得比 web/ 與 src/tx/ 最新的 .py 還晚(uvicorn 不 reload,改了沒重啟就是在服務舊模組)——
✅ 未觸發supervisor
watch.supervisor
schedule_health.json 超過門檻沒更新(/health 上的「全部準時」不可信)——
✅ 未觸發theme
watch.theme
題材/台指期座位檔沒有在該跑的時間之後變新——
✅ 未觸發tx_series
watch.tx_series
台指期序列沒有在該跑的時間之後變新——
✅ 未觸發us_seats
watch.us_seats
美股座位檔沒有在該跑的時間之後變新——

橫幅(15 條,3 條成立)判準寫在 web/data.py banners()

狀態條件判準嚴重度此刻
🔴 需處理業務帳本
banner.artifact_health
業務產物驗收有 fail(帳本該前進卻沒前進、縮水、解析失敗被記成零…),或驗收本身超過 20 小時沒更新major🔴 業務帳本沒有前進:meeting_run.json
⚠️ 注意assumed-cost
banner.assumed_cost
成本/帳戶參數有未查證項(含 user_accepted,口徑比問題單寬)minor⚠️ assumed-cost:成本參數有 2 項採假設值,本站所有績效與口數皆基於假設值
🔴 需處理上次每日鏈路有步驟失敗
banner.last_run_failed
logs/LAST_RUN_FAILED 這個檔存在major🔴 上次每日鏈路有步驟失敗:2026-10-14 — 1 個步驟失敗:
✅ 未觸發回測資料不齊
banner.backtest_audit
每日回測稽核(21:50)有 fail 項:缺日、歷史改寫、IV 帳不合理、該結算沒結算…—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發每週 CI 失敗
banner.ci_failed
logs/CI_FAILED 這個檔存在—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發資料落後今天約
banner.data_stale
序列最後交易日落後今天 > 3 個工作日—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發Hermes 排程異常
banner.hermes_jobs
看門狗判定 Hermes 有排程連續失敗或沒按時完成—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發Hermes 看門狗
banner.hermes_watchdog
Hermes 看門狗超過 45 分鐘沒更新(那 9 個排程此刻沒有人在看)—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發歷史指紋變動
banner.history_rewrite
logs/HISTORY_REWRITE 存在——應該凍結的過去被改寫了—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發件排程沒有按時完成
banner.jobs_late
有工作的產物沒在期限前變新(判產物,不判腳本說了什麼)—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發沒有任何行程在服務站台
banner.serving_down
連 :8010 都沒有人在聽—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發站台不是由 systemd unit 在跑
banner.serving_orphan
服務站台的行程不是 systemd unit 起的(重開機不會自己回來)—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發站台在跑舊程式碼
banner.serving_stale
磁碟上的程式碼比服務中的行程新——改了沒重啟—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發站台行程量不到
banner.serving_unknown
量不出服務行程的狀態——這本身就是異常—此刻沒有這面橫幅(判得出來,不是不知道)
✅ 未觸發排程監督自己停了
banner.supervisor_stale
schedule_health 太舊——「全部準時」不可信—此刻沒有這面橫幅(判得出來,不是不知道)

排程(56 條,0 條成立)判準寫在 config/schedule.toml + src/tx/schedule.py check_all()

狀態條件判準嚴重度此刻
✅ 未觸發Agent 限次補跑
schedule.Agent 限次補跑
7 * * * * 之後產物要變新(data/live/agent_recovery.json)—每 15 分鐘巡查同日失敗;最多三次補跑;逾期或非暫時性問題交人工
✅ 未觸發Agent 限次補跑(每小時 22 分)
schedule.Agent 限次補跑(每小時 22 分)
22 * * * * 之後產物要變新(data/live/agent_recovery.json)—同一補跑服務的四個巡查時刻;以共同心跳驗收,工作本身另看執行紀錄
✅ 未觸發Agent 限次補跑(每小時 37 分)
schedule.Agent 限次補跑(每小時 37 分)
37 * * * * 之後產物要變新(data/live/agent_recovery.json)—同一補跑服務的四個巡查時刻;以共同心跳驗收,工作本身另看執行紀錄
✅ 未觸發Agent 限次補跑(每小時 52 分)
schedule.Agent 限次補跑(每小時 52 分)
52 * * * * 之後產物要變新(data/live/agent_recovery.json)—同一補跑服務的四個巡查時刻;以共同心跳驗收,工作本身另看執行紀錄
✅ 未觸發FinMind 原件盤點
schedule.FinMind 原件盤點
15 21 * * 1-6 之後產物要變新(data/live/finmind_inventory.json)—唯讀:逐主鍵比「帳上每一列都找得到原件」,並拿 tx_night(期交所來源)當真值驗分 K 的晚盤段與夜盤尾巴——只比帳與原件的話,兩邊都沒有的東西永遠對得上。給人看的在 reports/finmind-storage.md。有缺口時 exit 1,但產物照寫(不然缺口會偽裝成「這支沒跑」)。
✅ 未觸發FinMind 每日增量(分點/分 K/集保/月營收/日K)
schedule.FinMind 每日增量(分點/分 K/集保/月營收/日K)
30 20 * * 1-6 之後產物要變新(data/live/finmind_daily_run.json)—使用者 2026-09-23:「務必確保有存到本機上」。backfill_finmind.py 原本沒有排程——回補做完之後,從隔天起就沒有人在收 FinMind 的分點與台指期分 K(Sponsor 限定,10/22 到期後抓不回來)。🔴 --recheck 3:來源會晚到(09-22 的分 K 在 09-23 15:06 抓時還沒有晚盤),最近 3 個交易日即使收過也重抓。原件…(截斷)
✅ 未觸發Hermes cron doctor 快照
schedule.Hermes cron doctor 快照
5 7 * * * 之後產物要變新(data/live/hermes_doctor.txt)—另一條 crontab 跑 hermes cron doctor 寫成檔,看門狗(不 shell out)讀它。doctor 只在排程時刻之後才發現設定層的錯(workdir 不在、憑證缺、drift),這裡讓它每天早上先講一次
✅ 未觸發TimesFM 影子預報
schedule.TimesFM 影子預報
39 18 * * 1-5 之後產物要變新(data/live/timesfm_shadow_run.json)—零樣本基礎模型(2.5,Apache 權重)與 GARCH 區間考同一份卷,record_only;判準凍結於 prereg-2026-09-01-timesfm-shadow.toml
✅ 未觸發上游資料層每日更新
schedule.上游資料層每日更新
10 18 * * 1-5 之後產物要變新(twii_forecast/data/prod/model_panel.parquet)—twii_forecast 的 staging → prod 增量更新,排在 18:00 Hermes 之後、 18:30 本站 daily_run 之前(實測全鏈路 4 分 22 秒)。 🔴 2026-09-03 之前這個 repo 完全沒有排程(crontab/systemd/cron.d 三處都查過)。結果是 model_panel 停在 2026-08-12,本站的 cr…(截斷)
✅ 未觸發主動式 ETF 持股與買賣異動
schedule.主動式 ETF 持股與買賣異動
50 8 * * 1-6 之後產物要變新(data/live/active_etf_run.json)—主動式 ETF 依規定每日揭露持股,所以「經理人今天買了什麼」當天就看得到。🔴 揭露是分批進來的:實測穩定日 34/40,而最近一個交易日常常只有 20/40(跨兩天才填滿)——所以這支每次都重收最近 5 個交易日,並且「最新收齊的交易日」用覆蓋率判不用日期判。⚠️ 清單 40 檔裡有 6 檔完全沒有持股資料(3 檔剛上市、3 檔來源就沒有),畫面上逐檔列出來——「沒買賣」與「沒揭…(截斷)
✅ 未觸發亞洲鄰居日線
schedule.亞洲鄰居日線
10 15 * * 1-5 之後產物要變新(data/live/asia_daily_run.json)—日經 225+KOSPI 收盤後併入(14:00/14:30 台北時間收)。值班顯示與觀察——Yahoo 不當正式來源,不進特徵
✅ 未觸發個股分點進出
schedule.個股分點進出
50 15 * * 1-5 之後產物要變新(data/live/broker_daily_run.json)—抓使用者觀察清單裡每一檔的前十大券商分點(Yahoo)。🔴 來源只給一天,而 15:50 抓到的是前一個交易日(分點資料傍晚才公布;2026-09-22 15:48 實測「資料時間:09-21」)——每天補收昨天那一張,不會遺失,但永遠晚一天。漏跑一天則永久少一天;六視窗(180/90/60/30/10/1)是往前累積出來的,不是抓得到的
✅ 未觸發全市場盤後(看盤)
schedule.全市場盤後(看盤)
15 20 * * 1-6 之後產物要變新(data/live/market_run.json)—看盤軟體的底:每一檔的日 K、三大法人、融資融券+大盤法人、加權/櫃買指數 → data/live/market.db。原件照來源原樣存 data/raw/finmind/market_*/。⚠️ 來源是 FinMind(10/22 到期),到期後要換官方端點——執行紀錄會記 errors/root_cause,首頁橫幅看內容。
✅ 未觸發券商推薦(會員首頁)
schedule.券商推薦(會員首頁)
45 21 * * * 之後產物要變新(data/live/broker_calls_run.json)—使用者 2026-09-24:會員登入後的首頁做成像 toalpha.tw/brokers。FinMind 全市場新聞+站上新聞 → 抓內文(原件先存 data/raw/broker_news/)→ 本地模型抽取 → 每一個數字都對過原文才收。模型不可用時整輪停手、不寫帳(run 檔記 root_cause),不會被記成「那天券商沒講話」。
✅ 未觸發台指期每日鏈路
schedule.台指期每日鏈路
30 18 * * 1-5 之後產物要變新(data/live/predictions.csv)—重建 + 預測 + 結算,約 3–5 分鐘
✅ 未觸發台指期部 agent
schedule.台指期部 agent
45 18 * * 1-5 之後產物要變新(data/live/agent_wave_tx.json)—18:30 daily_run 之後
✅ 未觸發回測資料稽核
schedule.回測資料稽核
50 21 * * * 之後產物要變新(data/live/backtest_audit.json)—使用者 2026-09-30:「每天都要檢查一次我們的回測到底有沒有做完」。唯讀、不動手:逐日比對回測紀錄三段×三天期、OOS 檔、live 帳、價格/標籤/特徵/籌碼、選擇權原件與 IV 帳(含合理性)、分 K、往前累積的帳。「回測做到最新了嗎」量的是已經有答案、卻還沒進回測的交易日(連假與答案還沒揭曉的日子不算)。排在 20:30 FinMind 分 K 與 21:15 盤點之後,當天…(截斷)
✅ 未觸發官方月營收與重大訊息
schedule.官方月營收與重大訊息
40 8 * * * 之後產物要變新(data/live/tw_revenue_run.json)—公開資訊觀測站(走證交所/櫃買 openapi,端點與實測見 scripts/probe_mops_openapi.py)。使用者三層檢查表第 3 項的正式來源: 月營收回答「故事有沒有變成訂單」,重大訊息回答「有沒有官方文件」。 🔴 四份端點全部只給最新一期(探針逐一量過 資料年月/出表日期 的取值只有一種),所以與集保同一個形狀——不存就永遠沒有。 重大訊息漏一天…(截斷)
✅ 未觸發帳本備份
schedule.帳本備份
30 23 * * * 之後產物要變新(data/backups/last_backup.json)—append-only 帳本+prereg 判準,每天一顆 tar.gz 保留 14 天;10/12–10/22 接續永久封存,狀態在 finmind_preservation_run.json。備份掛了也要有人知道——監督盯 manifest
✅ 未觸發座位事實(台指期+題材)
schedule.座位事實(台指期+題材)
50 15 * * 1-5 之後產物要變新(data/live/dept_seats.json)—build_dept_seats.py——寫死座位的事實,無 LLM。15:50 題材波與 18:45 台指期波都會先跑它再叫 agent(同一個檔,兩波各寫一次)。 🔴 2026-09-04 才宣告,理由是 nag.AUTO_RERUNNABLE 裡有一條對應它的 自動重跑規則,但 key 寫成一個不存在的工作名——那條規則從來沒有生效過。 宣告成一條工作,key 才有東西對得…(截斷)
✅ 未觸發期交所 Put/Call 比
schedule.期交所 Put/Call 比
20 15 * * 1-5 之後產物要變新(data/live/pc_ratio_run.json)—收盤後封存+併入歷史。來源只給最近約 30 個交易日——滾動視窗,與三大法人同一種來源
✅ 未觸發板塊資金流補抓
schedule.板塊資金流補抓
12 16 * * 1-5 之後產物要變新(Thematic stocks/data/sector_flow/catchup_run.json)—15:40 那一班踩在證交所 T86 的發布時刻上。實測最近七個交易日有三天 只拿到單邊(08-26/08-31 缺上櫃,09-07/09-08 缺上市),而單邊的那一天會被 COMPLETE_MIN 整天排除不進看板——排除是對的,但代價是看板結構上永遠 落後一個交易日。使用者 2026-09-09 問「今天 9/9 為什麼還在 9/7」就是這件事。 這一班只做「法人回補 → 收盤…(截斷)
✅ 未觸發極端多方訊號
schedule.極端多方訊號
36 18 * * 1-5 之後產物要變新(data/live/extreme_signal.jsonl)—架構1(q90/750 高閥值,只做多方,record_only)。18:30 主鏈路之後,腳本自帶等待與 stale 標記
✅ 未觸發極端訊號結算
schedule.極端訊號結算
42 18 * * 1-5 之後產物要變新(data/live/extreme_settle_run.json)—開口的隔天回來對答案(T+1 開盤進、收盤出、扣 3bp)。閉嘴日也結算當對照——只記開口日是選擇性記帳
✅ 未觸發每日精選發布
schedule.每日精選發布
10 21 * * 1-5 之後產物要變新(data/live/daily_picks_publish_run.json)—Hermes 本地模型執行固定程式;只在當日資料完整時保存首次候選,過期不補寫
✅ 未觸發每日精選盤前複核
schedule.每日精選盤前複核
30 8 * * 1-5 之後產物要變新(data/live/daily_picks_preopen.json)—盤前交易風險快照;原名單保留,新增風險標示暫停進場
✅ 未觸發每週 CI
schedule.每週 CI
0 7 * * 0 之後產物要變新(logs/ci.log)—ok
✅ 未觸發盤外脈搏
schedule.盤外脈搏
7 * * * * 之後產物要變新(data/live/overnight_pulse.jsonl)—每小時 24/7 收 ES/NQ/EWT/BTC/VIX 報價,point-in-time 封存。無 LLM——22:00–06:30 的空窗由它補上
✅ 未觸發稽核室① 每日會議
schedule.稽核室① 每日會議
10 19 * * 1-5 之後產物要變新(experiments/meeting_minutes.jsonl)—三支的第一支。每次執行都 append 一列,挑 0 篇的日子也會動
✅ 未觸發稽核室② 問題檢討
schedule.稽核室② 問題檢討
10 19 * * 1-5 之後產物要變新(data/live/issue_review_run.json)—三支的第二支。產物是 run 檔不是帳——沒有可處置的單子時帳不會動,run 檔每次都會寫
✅ 未觸發稽核室③ 巡邏與結算
schedule.稽核室③ 巡邏與結算
10 19 * * 1-5 之後產物要變新(data/live/dept_scores.csv)—三支的第三支。三波都跑完才有得評
✅ 未觸發美股 CBOE 波動率指數
schedule.美股 CBOE 波動率指數
20 6 * * 1-6 之後產物要變新(data/live/cboe_vix_run.json)—VIX 期限結構的原廠來源;Yahoo 於 2026-07-17 把 ^VIX3M/^VIX9D/^VIX6M 整組下架。⚠️ 名字帶「美股」是刻意的——鞭子用工作名回推部門,沒有這兩個字它會被歸成沒有負責席的系統級
✅ 未觸發美股座位
schedule.美股座位
40 6 * * 1-6 之後產物要變新(data/live/us_seats.json)—ok
✅ 未觸發美股快照封存
schedule.美股快照封存
30 6 * * 1-6 之後產物要變新(data/raw/us_snapshot/short_interest.csv)—🔴 來源不提供歷史,不存就永遠沒有
✅ 未觸發美股輿情脈搏
schedule.美股輿情脈搏
22 * * * * 之後產物要變新(data/live/us_sentiment_run.json)—美股版 NLP,8 來源(yfinance 逐檔/Google News 大盤+逐檔/CNBC/MarketWatch/ Nasdaq/StockTwits/Reddit)。與台股輿情共用字彙與彙總算式(tx.us_sentiment 的 import 區)。 比台股多一層逐檔情緒——ticker 一律由來源給(yfinance 與 Google News 逐檔查詢 抓取當下就帶),…(截斷)
✅ 未觸發美股部 agent
schedule.美股部 agent
45 6 * * 1-6 之後產物要變新(data/live/agent_wave_us.json)—06:40 build_us_seats 之後
✅ 未觸發自研假說會議
schedule.自研假說會議
40 19 * * 1-5 之後產物要變新(data/live/research_council_run.json)—觀察→提案→質疑→回測裁決。排在 19:10 稽核室之後——觀察池要等四波座位都跑完才滿
✅ 未觸發觀察清單個股基本面
schedule.觀察清單個股基本面
25 14 * * 1-5 之後產物要變新(data/live/tw_fundamentals_run.json)—季 EPS 與營收(yfinance 季報表)。台股這側原本零基本面管線。 🔴 存的是季報原值不是算好的成長率:成長率隨時可以重算,原值不行; 而且 yfinance 會回頭修正歷史季報,所以每天封存一份快照 (data/raw/tw_fundamentals/)——「當時看到的是什麼」只有它答得出來。
✅ 未觸發觀察清單個股日 K
schedule.觀察清單個股日 K
5 14 * * 1-5 之後產物要變新(data/live/tw_bars_run.json)—技術面那一層的地基(均線排列/量價/位階)。母體是所有使用者觀察清單的 聯集,與個股分點同一個規矩——沒有人看的就不抓。 ⚠️ 排 14:05(台股 13:30 收盤後):跑在收盤前的話最後一根是盤中的半根, 量比與上影線會算在一根還沒走完的 K 上,而畫面上看不出來。 ⚠️ 與美股快照(06:30,不存就永遠沒有)錯開——同一個 yfinance 配額, 新功能把既有的關鍵工作擠掉是要…(截斷)
✅ 未觸發設計評議
schedule.設計評議
0 7 * * 1 之後產物要變新(data/live/design_council.json)—每週一次。網站量測會過期,改過版之後值得手動再跑
✅ 未觸發論文研究部
schedule.論文研究部
20 7 * * 1-6 之後產物要變新(data/live/paper_hunter_run.json)—arXiv 篩選+最多 2 篇回測。產物是 run 檔不是帳——挑 0 篇的日子帳不會動,run 檔每次都會寫
✅ 未觸發輿情儀器抽查
schedule.輿情儀器抽查
20 13 * * * 之後產物要變新(data/live/sentiment_audit_run.json)—每天抽 5 則已打分標題給第二個模型盲重打,比一致率。11 月情緒判定要回答「是市場沒效應還是量尺在亂打」——沒有這條帳只能用信仰回答
✅ 未觸發輿情脈搏
schedule.輿情脈搏
12 * * * * 之後產物要變新(data/live/sentiment_run.json)—每小時收 7 來源新聞標題+本地模型打情緒標籤(NLP)。標題會捲走,不收就永遠沒有;run 標記每輪都寫,沒新聞的小時也留痕
✅ 未觸發選擇權 IV 長序列(日行情表)
schedule.選擇權 IV 長序列(日行情表)
35 15 * * 1-5 之後產物要變新(data/live/option_iv_daily_run.json)—期交所每日行情表 → ATM IV/偏斜,回看 10 天自癒。與逐筆版是兩條不同基準的序列,刻意不混;歷史回補(2010 起)另以手動長跑完成
✅ 未觸發選擇權情報(IV/偏斜)
schedule.選擇權情報(IV/偏斜)
25 15 * * 1-5 之後產物要變新(data/live/option_iv_run.json)—TXO 月選收盤前 45 分鐘 → 平價反解遠期價 → ATM IV 與 ±3% 偏斜。唯一前瞻定價的資訊源;從 raw 封存重算,冪等
✅ 未觸發集保股權分散表
schedule.集保股權分散表
20 8 * * 6 之後產物要變新(data/live/tdcc_holders_run.json)—籌碼集中度唯一的來源(集保 TDCC opendata id=1-5)。使用者 2026-09-14 給的三層檢查表裡,這是專案裡完全沒有的那一格。 🔴 來源只給最新一期,不存就永遠沒有——整份 CSV 只有一個資料日期 (探針實測)。所以「是否逐漸集中」是累積出來的,漏一週永久少一週。 集保每週五更新,排週六早上留一天緩衝;同一期重跑冪等。 ⚠️ artifact…(截斷)
✅ 未觸發題材修正版帳(上櫃錯位+除權息)
schedule.題材修正版帳(上櫃錯位+除權息)
40 15 * * 1-5 之後產物要變新(Thematic stocks/data/theme_discovery/discovery_outcomes_resettled.jsonl)—daily_bot 第 16b 步(resettle_discovery.py)。每天全量重算、整份重寫, 所以 mtime 每天都會動;原帳 discovery_outcomes.jsonl 一個字不動。 修正的是 10 天上櫃價格錯位(7,617 格)與除權息(證交所 TWT49U+櫃買 exDailyQ, 免費來源,10/22 之後照跑)。數字每天重算,看…(截斷)
✅ 未觸發題材停損路徑判定(平行帳)
schedule.題材停損路徑判定(平行帳)
40 15 * * 1-5 之後產物要變新(Thematic stocks/scripts/theme_engine/path_outcomes.jsonl)—daily_bot 第 6b 步(path_outcomes.py)。停損/達標改看持有期間的日高低, 跳空出場用開盤價。outcome_log.csv 一個字不動——本站的 theme_variants 平行帳靠上游不動當對照組。
✅ 未觸發題材可交易性標記(處置/漲停價/市值)
schedule.題材可交易性標記(處置/漲停價/市值)
40 15 * * 1-5 之後產物要變新(Thematic stocks/data/tradability_run.json)—daily_bot 第 16a 步(tradability.py)。處置走證交所+櫃買的免費公告; 漲停價與市值走 FinMind(Sponsor,2026-10-22 到期)。 ⚠️ 到期後這一步不會失敗、run 檔照寫(frozen_since 記凍結起點), 所以這一條會一直是綠的——凍結要看頁面上「漲停價不明」那一欄在長大, 不是看這裡。這是刻意的:到期不是故障,是…(截斷)
✅ 未觸發題材條件選股前向帳
schedule.題材條件選股前向帳
45 20 * * 1-5 之後產物要變新(data/live/theme_screen_run.json)—使用者 2026-10-01:「開始做前向記帳」。prereg-2026-10-01-theme-screen:/theme-screen 的清單每天收盤後記一份(連同當下的籌碼與營收狀態——那些檔隔天就變)、持有期滿的用 market.db 結算並對同日候選池。排在 20:15 全市場盤後之後(行情要先進來)。休市日 market.db 沒有新的一天 → 寫 run 檔、exit 0…(截斷)
✅ 未觸發題材狀態報告
schedule.題材狀態報告
0 21 * * 1-5 之後產物要變新(Thematic stocks/daily_bot.log)—ok
✅ 未觸發題材獵人每日鏈路
schedule.題材獵人每日鏈路
40 15 * * 1-5 之後產物要變新(Thematic stocks/data/theme_signals/latest.json)—10 步鏈路,第 10 步是題材關聯圖
✅ 未觸發題材獵人開盤前簡報
schedule.題材獵人開盤前簡報
0 6 * * 1-5 之後產物要變新(Thematic stocks/data/theme_discovery/premarket_brief.json)—昨夜美股收盤 × 台股前一日 × 今早新聞。與 15:40 那班的資料時點不同 ——美股 4:00pm ET 收盤是台北 04:00,15:40 的鏈路結構上看不到它。 06:00 跑是為了留兩小時緩衝給 yfinance 定案,且趕在台股 09:00 開盤前。
✅ 未觸發題材變體樣本帳
schedule.題材變體樣本帳
10 16 * * 1-5 之後產物要變新(data/live/theme_variants.csv)—prereg-2026-08-27-theme-horizon 的前瞻樣本。排在 15:40 題材鏈路之後——收的是它當天產生的預測
✅ 未觸發題材部 agent
schedule.題材部 agent
50 15 * * 1-5 之後產物要變新(data/live/agent_wave_theme.json)—15:40 題材獵人 daily_bot 之後
✅ 未觸發題材關聯圖
schedule.題材關聯圖
40 15 * * 1-5 之後產物要變新(Thematic stocks/data/theme_graph/graph.json)—daily_bot 第 10 步的產物。與上一條分開列——整條鏈路成功不代表最後一步成功

Hermes(26 條,0 條成立)判準寫在 scripts/hermes_watchdog.py(一般 crontab */15)

狀態條件判準嚴重度此刻
✅ 未觸發hermes.dispatch近 3 小時「Restart-safe cron worker dispatch failed」≥ 2 次(systemd user scope 建不起來——那三天的死法)——
✅ 未觸發hermes.doctorhermes cron doctor 有回報項目——
✅ 未觸發hermes.gatewaygateway_state.json 說 running 且 pid 活著(不呼叫 systemctl)——
✅ 未觸發hermes.heartbeat排程器 ticker 心跳超過 10 分鐘沒跳——
✅ 未觸發hermes.incidents有 incident 停在 detected 超過 1 小時——
✅ 未觸發Hermes 排程 #7(0 3 * * 0)
hermes.job.50155969a0e2
0 3 * * 0:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-11T03:00
✅ 未觸發Hermes 排程 #4(0 8 * * *)
hermes.job.63dd4a322917
0 8 * * *:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T08:00
✅ 未觸發Hermes 排程 #5(every 30m)
hermes.job.70589e6d5ad8
every 30m:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T18:00
✅ 未觸發Hermes 排程 #15(15 22 * * *)
hermes.job.73c6735195a8
15 22 * * *:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-13T22:15
✅ 未觸發Hermes 排程 #14(25 21 * * *)
hermes.job.831c715646fe
25 21 * * *:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-13T21:25
✅ 未觸發Hermes 排程 #13(0 14 * * *)
hermes.job.93506735f28b
0 14 * * *:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T14:00
✅ 未觸發Hermes 排程 #1(30 8 * * 1-5)
hermes.job.942f012fdb98
30 8 * * 1-5:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T08:30
✅ 未觸發Hermes 排程 #10(0 3 * * 1)
hermes.job.99832262806e
0 3 * * 1:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-12T03:00
✅ 未觸發Hermes 排程 #8(30 8 * * *)
hermes.job.b6afc30b6fa0
30 8 * * *:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T08:30
✅ 未觸發Hermes 排程 #9(0 23 * * 0)
hermes.job.b6f23737ab06
0 23 * * 0:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-11T23:00
✅ 未觸發Hermes 排程 #6(every 30m)
hermes.job.c51e0e834cb5
every 30m:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T18:08
✅ 未觸發Hermes 排程 #12(0 20 * * 0)
hermes.job.cfc808d4c9b2
0 20 * * 0:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-11T20:00
✅ 未觸發Hermes 排程 #3(50 15 * * 1-5)
hermes.job.d26e18adf944
50 15 * * 1-5:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T15:50
✅ 未觸發Hermes 排程 #2(0 18 * * 1-5)
hermes.job.d2d4fcc5be3f
0 18 * * 1-5:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T18:00
✅ 未觸發Hermes 排程 #11(0 9 * * *)
hermes.job.eb01268d4594
0 9 * * *:連續失敗 < 3 且上一次該跑的時間之後成功過(工作名稱不公開,見本機 hermes_watchdog.json)—最後成功 2026-10-14T09:00
✅ 未觸發hermes.jobsjobs.json 讀得到(排程清單本身)——
✅ 未觸發hermes.ledgerexecutions.db 開得起來(Hermes 的執行帳)——
✅ 未觸發hermes.mirror帳的鏡像寫得進去(Hermes 只留 1000 筆,週工作的「上次成功」7 天就會消失)——
✅ 未觸發hermes.ollama本機 ollama 活著(3 個本機工作與 fallback 都靠它)——
✅ 未觸發hermes.ollama_cpu載入的模型完全在 GPU 上——掉到 CPU 會讓每通從 2 秒變數分鐘,而畫面上只看得到逾時——
✅ 未觸發Hermes 看門狗有在跑
hermes.watchdog
看門狗產物存在且 45 分鐘內更新過—6 分鐘前

業務驗收(29 條,1 條成立)判準寫在 src/tx/artifacts.py(scripts/supervisor.py 寫 data/live/artifact_health.json)

狀態條件判準嚴重度此刻
⚠️ 注意data/live/market.db
artifact.market_db
日 K/法人/融資最多晚 1 個交易日minor來源晚到、隔天會重抓:margin 晚 1 天
✅ 未觸發data/live/extreme_outcomes.jsonl
artifact.extreme_settlement
非 stale 的訊號日、隔天行情已有,就要結算(開口日與閉嘴日都算)—應結算 28 個訊號日,全部結算
✅ 未觸發config/tx-calendar-2026-10-07.json
artifact.futures_calendar
日曆封存指紋一致,舊預測可依原版接續;到期前 60 曆日提醒—日曆涵蓋至 2026-12-31,剩 78 曆日。到期前 60 日提醒;延伸須保留原版本結算能力。
✅ 未觸發data/live/futures_research.db
artifact.futures_compatibility
所有未結算版本均有對應引擎與相同政策指紋;結算不可成為無來源孤兒—共 40 筆預測、12 筆結算;未結算版本與政策均有對應。
✅ 未觸發data/live/futures_research.db
artifact.futures_ledger_size
跨次驗收比較所有版本 forecasts/outcomes 列數,不可縮水—所有版本預測/結算列數未縮水。
✅ 未觸發data/live/futures_research.db
artifact.futures_pending
到期仍未結算須列明待查;未到期保持等待,不捏造成交—⏳ 尚未到期:28 筆尚未到期或仍在當日結算寬限內;沒有到期未結算紀錄。
✅ 未觸發data/live/futures_research.db
artifact.futures_publication
啟用後每個交易日 22:00 前,當日四天期×多空八組事前預測完整入帳;不補寫過去—4 個交易日各 8 組事前預測完整入帳。
✅ 未觸發data/live/predictions.csv
artifact.live_advance
最新預測日追上價格序列最後交易日—最新預測日 2026-10-13 = 序列最後交易日
✅ 未觸發data/live/outcomes.csv
artifact.live_settlement
已有答案的事前預測全部結算;pred_id 不重複—已有答案的 103 筆全部結算
✅ 未觸發data/live/papers.jsonl
artifact.papers
零入選是正常完成;解析失敗不可記成零入選;挑了就要入帳—2026-10-14 篩了 40 篇、零入選——正常完成(不要求帳本每天成長)
✅ 未觸發data/live/record.csv
artifact.record
逐日紀錄做到最後一個有答案的交易日(落後 ≥3 個交易日為 fail)—已做到最後一個有答案的交易日
✅ 未觸發data/live/research_council_run.json
artifact.research_council
最新研究執行有有效結局;解析/模型故障不得當作零提案—2026-10-13 最近一次研究執行:lineage_closed
✅ 未觸發data/live/theme_screen_bench.jsonl
artifact.screen_ledger:bench
第一筆 5 日結算到期後檔案要出現;未到期明說 pending—第一份清單 2026-10-01 的 5 日結算應於 2026-10-08 之後出現,已出現
✅ 未觸發data/live/theme_screen_settled.jsonl
artifact.screen_ledger:settled
第一筆 5 日結算到期後檔案要出現;未到期明說 pending—第一份清單 2026-10-01 的 5 日結算應於 2026-10-08 之後出現,已出現
✅ 未觸發data/live/news_sentiment.jsonl
artifact.sentiment_tw
run 檔說這一輪寫了幾則,帳上就要有幾則;解析失敗率不可高於一半—run 檔與帳本一致(這一輪 40 則,解析失敗 0)
✅ 未觸發data/live/us_news_sentiment.jsonl
artifact.sentiment_us
run 檔說這一輪寫了幾則,帳上就要有幾則;解析失敗率不可高於一半—run 檔與帳本一致(這一輪 22 則,解析失敗 0)
✅ 未觸發data/live/agent_memory.jsonl
artifact.shrink:agent_memory.jsonl
只增不改:列數不可減少—3,838 列(前次 3,838)
✅ 未觸發data/live/extreme_outcomes.jsonl
artifact.shrink:extreme_outcomes.jsonl
只增不改:列數不可減少—28 列(前次 28)
✅ 未觸發data/live/extreme_signal.jsonl
artifact.shrink:extreme_signal.jsonl
只增不改:列數不可減少—33 列(前次 33)
✅ 未觸發data/live/hypotheses.jsonl
artifact.shrink:hypotheses.jsonl
只增不改:列數不可減少—29 列(前次 29)
✅ 未觸發data/live/issues.jsonl
artifact.shrink:issues.jsonl
只增不改:列數不可減少—978 列(前次 978)
✅ 未觸發data/live/news_sentiment.jsonl
artifact.shrink:news_sentiment.jsonl
只增不改:列數不可減少—22,660 列(前次 22,620)
✅ 未觸發data/live/outcomes.csv
artifact.shrink:outcomes.csv
只增不改:列數不可減少—103 列(前次 103)
✅ 未觸發data/live/papers.jsonl
artifact.shrink:papers.jsonl
只增不改:列數不可減少—18 列(前次 18)
✅ 未觸發data/live/predictions.csv
artifact.shrink:predictions.csv
只增不改:列數不可減少—112 列(前次 112)
✅ 未觸發data/live/record.csv
artifact.shrink:record.csv
整份重寫:不可一次少一半以上—24,543 列(前次 24,543)
✅ 未觸發data/live/theme_screen_days.jsonl
artifact.shrink:theme_screen_days.jsonl
只增不改:列數不可減少—8 列(前次 8)
✅ 未觸發data/live/theme_screen_picks.jsonl
artifact.shrink:theme_screen_picks.jsonl
只增不改:列數不可減少—765 列(前次 765)
✅ 未觸發data/live/us_news_sentiment.jsonl
artifact.shrink:us_news_sentiment.jsonl
只增不改:列數不可減少—34,547 列(前次 34,547)
版本 5f92ccf(第 163 次提交,2026-10-14) | 資料建置於 2026-10-14 10:30 UTC | 行情與研究結果供查看;會員可管理觀察清單並要求更新個股分析