holdings-deploy:部署持股健檢 HTML 到 Cloudflare Pages。
mode=NO_AGENT state=scheduled enabled=1
schedule=10 21 * * 1-5
next_run=2026-08-24T21:10:00 last_run=2026-08-21T21:11:44
deliver=local model=— provider=—
script=/Users/exion/.hermes/scripts/deploy-holdings-report.py
monitor_script=— monitor_url=—
skills=[]
workdir=—
prompt_sha256=077588a2d868198c… chars=592
skill_files={}
執行 /Users/exion/.hermes/scripts/deploy-holdings-report.py。這是 21:10 holdings deploy reliability owner:只在同日 upstream freshness/completeness、data_as_of、法人/融資來源、commentary/HTML artifact、Cloudflare artifact hash、Notification Event Registry claim 與 Telegram API success/dedup marker 全部通過時寫入 ~/.hermes/data/holdings_deploy_markers/YYYY-MM-DD.json 的 DEPLOY_SUCCESS。scheduler exit code 0 本身不代表成功;不得自行把缺資料、短報告或 notification failed 當成功。優先重用 17:30 authoritative institutional data,只有 stale/missing 才 fallback,且 marker 必須記錄 fallback。same-day 已驗證成功時直接 dedupe,不重抓、不重送。禁止任何下單、production trading 或 auto-order。…
| rule | value | source |
|---|---|---|
| CLOUDFLARE_DIR | ~/cloudflare-pages/holdings | CODE_STATIC @deploy-holdings-report.py:25 |
| DAILY_CHECK | ~/.hermes/scripts/holdings_daily_check.py | CODE_STATIC @deploy-holdings-report.py:26 |
| COMMENTARY_SCRIPT | ~/.hermes/scripts/holdings_llm_commentary.py | CODE_STATIC @deploy-holdings-report.py:27 |
| HTML_SCRIPT | ~/.hermes/scripts/holdings_html_v7.py | CODE_STATIC @deploy-holdings-report.py:28 |
| KEYCHAIN_LABEL | cloudflare-pages | CODE_STATIC @deploy-holdings-report.py:29 |
| KEYCHAIN_SERVICE | cloudflare.com | CODE_STATIC @deploy-holdings-report.py:30 |
| PROJECT | kenjibot-pages | CODE_STATIC @deploy-holdings-report.py:31 |
| RETENTION_DAYS | 7 | CODE_STATIC @deploy-holdings-report.py:32 |
| MARKER_DIR | ~/.hermes/data/holdings_deploy_markers | CODE_STATIC @deploy-holdings-report.py:33 |
| REGISTRY_CONSUMER | holdings_deploy | CODE_STATIC @deploy-holdings-report.py:34 |
| REGISTRY_GROUP | holdings-report | CODE_STATIC @deploy-holdings-report.py:35 |
| kind | path | name | access |
|---|---|---|---|
| SUBPROCESS | security | execute | |
| SUBPROCESS | grep | execute | |
| SUBPROCESS | curl | execute |
Upstream: 持股每日健康檢查、處置股票狀態查詢、shioaji-holdings-sync、Discovery FORMAL Fundamental Dingmao Review、Intraday Holdings Risk Owner、早盤風向-0945、持股同步觀察清單、盤中13:00帶量長紅K掃描、三大法人買賣超每日更新、個股融資資料爬取
Downstream: 層零市場風險過濾器、盤後市場宏觀報告、每日帳戶資產記錄、Shioaji每日股價抓取
Transitive downstream (3): 週日長紅K回測報告(現行規則:停損+20MA停利) (68ea49353330)、盤中持股即時快照1300 (d94622a2d6b8)、Legacy 13:02 Integrated Shadow Comparison (d03be33d1781)
| type | hard? | from | to | resource | origin | conf | evidence |
|---|---|---|---|---|---|---|---|
| CODE | soft | holdings-deploy | 層零市場風險過濾器 | module:notification_event_registry | STATIC | 0.6 | both scripts import shared module 'notification_event_registry' |
| CODE | soft | holdings-deploy | 盤後市場宏觀報告 | module:notification_event_registry | STATIC | 0.6 | both scripts import shared module 'notification_event_registry' |
| CODE | soft | Discovery FORMAL Fundamental Dingmao Review | holdings-deploy | module:notification_event_registry | STATIC | 0.6 | both scripts import shared module 'notification_event_registry' |
| CODE | soft | Intraday Holdings Risk Owner | holdings-deploy | module:notification_event_registry | STATIC | 0.6 | both scripts import shared module 'notification_event_registry' |
| CODE | soft | holdings-deploy | 盤後市場宏觀報告 | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | holdings-deploy | 每日帳戶資產記錄 | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | holdings-deploy | Shioaji每日股價抓取 | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 持股每日健康檢查 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 處置股票狀態查詢 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | shioaji-holdings-sync | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | Intraday Holdings Risk Owner | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 早盤風向-0945 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 持股同步觀察清單 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 盤中13:00帶量長紅K掃描 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 三大法人買賣超每日更新 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
| CODE | soft | 個股融資資料爬取 | holdings-deploy | module:trading_calendar | STATIC | 0.6 | both scripts import shared module 'trading_calendar' |
failure_streak=0
last_error=Script exited with code 2
stdout:
[21:10:52] === 持股健檢管線 ===
[21:10:52] Step 0/4: Running daily check...
[21:11:44] REPORT_INCOMPLETE: HOLDINGS_INSTITUTIONAL_INCOMPLETE
delivery_error=—
change_risk=HIGH