Atlas 技術版 > holdings-deploy

holdings-deploy NO_AGENT UNKNOWN risk=LOW

1. 做什麼 / 2. 為什麼存在

(purpose 尚未填寫 — manifest 為 draft/INFERRED)

3. Schedule / Mode

mode=NO_AGENT state=retired enabled=0
schedule=10 21 * * 1-5
next_run=2026-09-04T21:10:00 last_run=2026-09-03T21:10:35
deliver=local model=— provider=—

4. Implementation

script=/Users/exion/.hermes/scripts/deploy-holdings-report.py
monitor_script=— monitor_url=—
skills=[]
workdir=—

5. Effective instruction sources

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。…

6. Actual rules / thresholds

rulevaluesource
CLOUDFLARE_DIR/Users/exion/cloudflare-pages/holdingsCODE_STATIC @deploy-holdings-report.py:25
DAILY_CHECK/Users/exion/.hermes/scripts/holdings_daily_check.pyCODE_STATIC @deploy-holdings-report.py:26
HEALTH_REPORT_SCRIPT/Users/exion/.hermes/hermes-agent/scripts/holdings_health_reCODE_STATIC @deploy-holdings-report.py:27
HEALTH_REPORT_PATH/tmp/holdings_health_report.jsonCODE_STATIC @deploy-holdings-report.py:28
COMMENTARY_SCRIPT/Users/exion/.hermes/scripts/holdings_llm_commentary.pyCODE_STATIC @deploy-holdings-report.py:29
HTML_SCRIPT/Users/exion/.hermes/scripts/holdings_html_v7.pyCODE_STATIC @deploy-holdings-report.py:30
KEYCHAIN_LABELcloudflare-pagesCODE_STATIC @deploy-holdings-report.py:31
KEYCHAIN_SERVICEcloudflare.comCODE_STATIC @deploy-holdings-report.py:32
PROJECTkenjibot-pagesCODE_STATIC @deploy-holdings-report.py:33
RETENTION_DAYS7CODE_STATIC @deploy-holdings-report.py:34
MARKER_DIR/Users/exion/.hermes/data/holdings_deploy_markersCODE_STATIC @deploy-holdings-report.py:35
REGISTRY_CONSUMERholdings_deployCODE_STATIC @deploy-holdings-report.py:36
REGISTRY_GROUPholdings-reportCODE_STATIC @deploy-holdings-report.py:37

7/8. Inputs & Outputs (resources)

kindpathnameaccess
SQLITE_DB/Users/exion/.hermes/data/notification_events.dbunknown
SQLITE_DB/Users/exion/.hermes/data/portfolio_history.dbunknown
SQLITE_DB/Users/exion/.hermes/data/portfolio_history.dbread/write
SQLITE_DB/Users/exion/.hermes/data/shioaji_kline.dbunknown
SQLITE_DB/Users/exion/.hermes/data/shioaji_kline.dbread/write
SQLITE_DB/Users/exion/.hermes/data/shioaji_kline.dbread/write
SQLITE_DB/Users/exion/.hermes/data/shioaji_kline.dbread/write
SQLITE_TABLEselfnotification_eventsread
SQLITE_TABLEselfnotification_eventsread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_eventsread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfnotification_deliveriesread
SQLITE_TABLEselfstock_klineread
SQLITE_TABLEselfstock_institutionalread
SQLITE_TABLEselfstock_inforead
SQLITE_TABLEselfstock_klineread
SQLITE_TABLEselfstock_klineread
SQLITE_TABLE/Users/exion/.hermes/data/portfolio_history.dbportfolio_snapshotsread
SQLITE_TABLE/Users/exion/.hermes/data/portfolio_history.dbportfolio_snapshotsread
SQLITE_TABLE/Users/exion/.hermes/data/shioaji_kline.dbstock_marginread
SQLITE_TABLE/Users/exion/.hermes/data/shioaji_kline.dbstock_klineread
SQLITE_TABLEselfnotification_eventswrite
SQLITE_TABLEselfnotification_eventswrite
SQLITE_TABLEselfnotification_deliverieswrite
SQLITE_TABLEselfnotification_eventswrite
SQLITE_TABLEselfnotification_deliverieswrite
SQLITE_TABLEselfnotification_eventswrite
SQLITE_TABLEselfnotification_eventswrite
SQLITE_TABLEselfstock_klinewrite
FILE_READ/tmp/holdings_health_report.jsonread
FILE_READ/tmp/holdings_commentary.jsonread
FILE_READ/Users/exion/.hermes/data/sector_map.jsonread
FILE_READ/Users/exion/.hermes/data/disposition_status.jsonread
FILE_READ/tmp/stock_margin_latest.jsonread
FILE_READ/Users/exion/.hermes/data/stock_list.jsonread
FILE_READ/tmp/holdings_check.jsonread
FILE_READ/tmp/holdings_health_report.jsonread
FILE_READ/tmp/market_risk.jsonread
FILE_READ/tmp/holdings_health_report.jsonread
FILE_READ/tmp/holdings_commentary.jsonread
FILE_WRITE+00:00write
FILE_WRITEwrite
FILE_WRITEwrite
FILE_WRITE/Users/exion/cloudflare-pages/holdings/index.htmlwrite
FILE_WRITEwrite
FILE_WRITE/tmp/check_market_open_last.jsonwrite
FILE_WRITEwrite
FILE_WRITE/Users/exion/.hermes/data/disposition_status.jsonwrite
FILE_WRITE/Users/exion/.hermes/data/disposition_status.jsonwrite
FILE_WRITE/tmp/holdings_commentary.jsonwrite
FILE_WRITE/tmp/holdings_commentary_prompt.txtwrite
FILE_WRITE/tmp/holdings_commentary.jsonwrite
FILE_WRITE/tmp/holdings_commentary.jsonwrite

9/10. Upstream / Downstream

Upstream: —
Downstream: —
Transitive downstream (0): —

Edges (typed evidence)

typehard?fromtoresourceoriginconfevidence
none

11. Shared resources

12. Recent executions

failure_streak=7
last_error=Script exited with code 2 stdout: [21:10:32] === 持股健檢管線 === [21:10:32] Step 0/4: Running daily check... [21:10:35] REPORT_INCOMPLETE: HOLDINGS_HEALTH_REPORT_SCRIPT_MISSING
delivery_error=—

14. Drift history

16. Impact / change risk

change_risk=LOW