clawock

harness · HK + US portfolio

脚本详细参考(TOOLS_SCRIPTS.md)

从 TOOLS.md 外移(TOOLS.md 受 openclaw 16K bootstrap 注入上限约束)。 每个脚本/cron 的完整说明在此;TOOLS.md 只留精简索引 + 路由。需要细节时读这里。

现有脚本梳理

核心(当前在用)

数据 用法
最近 filings (10-K/10-Q/8-K) fetch_us_filings.py RKLB--filings 10-K,10-Q 指定表型)
XBRL 关键财务概念(营收/净利/现金/EPS 等 13 项) --financials
Insider Form 4 / 13F-HR --form4 / --13f
机器可读 任一模式加 --json

注意:速率限制 10 req/sec(脚本默认 8/sec)超量 403;SEC_USER_AGENT 可放 .api_keys;ticker→CIK 本地缓存 7 天;非美股票返回 “CIK not found”

Cron harness 脚本(preflight + postflight 三明治)

所有 stock cron 都用同一套”preflight (确定性) → LLM (创造性) → postflight (校验)”模式。 确定性活强制脚本化执行;LLM 只做合成;postflight 自验证 + commit。

Daily deep brief(08:00 HKT cron)

Mode 6 briefing(HK 开/午/午后/收盘 + US 开/收盘 — 6 个 cron 共享)

Mode 7 intraday(HK + US 盘中盯盘 — 3 个 cron job 共享同一套脚本;季节化 slot 数和精确时间只看生成调度表,隔夜始终最晚 02:30 HKT)

共通设计点

辅助

Cron map

精确的 11-job schedule、EDT/EST 表达式、Mode/harness 和 10 条 watchdog 映射由 config/cron-schedules.json 单源维护,生成的人读表见 CRON_SCHEDULES.mdsync_us_cron_dst.py --apply 每日自动对齐美股 live cron + system watchdog; cron_heartbeat.py 维护 Mode 7 slot ledger,由现有 single publisher 发布。

所有 harness preflight/postflight 都在 scripts/harness/。Mode 6 / brief / Mode 7 的 postflight 都会重建 dashboard;Mode 7 不提交 portfolio.json,dashboard 只发布语义变化,但每个 受监控 slot 的 heartbeat 都会发布并由 cron health 对账。

cron payload 是真实执行面,会为隔离 session 自包含关键步骤;SKILL.md 是详细规范。改格式时 必须同时 diff payload 与对应 Mode,尤其 Step 2.5 sidecar。schedule 的 runtime 真值来自 CLI, tracked contract 在 config/cron-schedules.json;schedule、payload、watchdog 或生成文档漂移 都会被 scripts/system_check.py / CI 拦截。

改 cron prompt 的安全步骤(6.1 后只走 CLI,不碰文件):

# 读:openclaw cron list --json | python3 -c '...'   (JSON 前可能有 Config warnings 噪音,find('{') 起切)
# 写:openclaw cron edit <job-id> --message "$NEW_MSG"   (只 patch message,schedule/tz 不动)

--cron 表达式时必须同时带 --tz Asia/Shanghai(否则 tz 被重置)。升级大版本后先 openclaw cron list 数 job 个数(应为 11),少了跑 openclaw doctor --fix

Cron 运行历史(自动 + 手动跨 job 聚合)

openclaw cron runs 必须带 --id,且单 job 视角。跨 job + 自动调度 + 手动 trigger 一起看用:

./check_crons.sh                 # 最近 20 次(auto + manual 混排,HKT 倒序)
./check_crons.sh 50              # 最近 50 次
./check_crons.sh --status error  # 只看失败
./check_crons.sh --kind cron     # 只看自动调度
./check_crons.sh --job 港股       # 按 job 名子串过滤
./check_crons.sh --full          # 摘要不截断
./check_crons.sh --json          # JSON 输出(喂给后续 pipeline)

运行历史同样优先经 OpenClaw CLI 读取;旧 cron/runs/*.jsonl 只作为迁移前 fallback。 脚本本体 scripts/data/cron_runs.py

已废弃(不作为调用入口,但作为参考代码可读)

这些脚本不要直接调起来跑当主路径,但里面的 URL、header、fallback 思路、解析片段在调试或场景超出现役脚本时仍有参考价值。

  • scripts/legacy/stock_analyzer.py — 被 scripts/data/analyze_us_stocks.py + analyze_hk_stocks.py 取代;仅保留早期 fallback 顺序作参考
  • 完全删掉 (2026-05-16 大扫除):monday_signal.py (含硬编码 key)、api_retry_wrapper.pybaidu_search_wrapper.pydeep_analysis.pyfinal_analysis.pyfind_opportunities.pyhk_ai_monitor.pymulti_agent_stock_analysis.pyprice_alert_monitor.pyTradingAgents/ 整目录
  • 完全删掉 (2026-07-04 清理):scripts/legacy/{hk_monitor,hk_open_monitor,hk_stock_fetcher,portfolio_monitor,portfolio_table,portfolio_visualization}.py(无代码/cron 引用的死参考)、scripts/data/brief_fallback_send.py(被 gh_action_brief_fallback.py 取代)