用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Veblin/invest-skills --skill verify命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | verify |
| description | 运行时验证 invest-a-stock/etf/journal CLI — 隔离 DB 驱动真实命令行(store._db_override + runpy launcher) |
lib.store 的 DB 路径是硬编码 ~/.local/share/investment/research.db,无环境变量。
CLI 验证必须隔离:写一个 launcher 脚本,先 import invest-a-stock 的 lib.store、
设 store_mod._db_override = <tmp db>,再用 runpy.run_path(etf.py, run_name="__main__")
执行真实 CLI。脚本模板(已验证可用的路径设置顺序):
import os, runpy, sys
from pathlib import Path
CODE = Path("/Users/veblin/Study/claude-bigA-financial/code")
sys.path.insert(0, str(CODE / "skills/invest-a-stock/scripts")) # lib 包 = invest-a-stock
from lib import store as store_mod
store_mod._db_override = Path(os.environ["SF_VERIFY_DB"])
# P0-2 自检:override 未生效必须立即失败——静默写真实库曾造成
# collections 记录被外部进程删除/污染(2026-08-23 现场:session 内
# #48/#53/#54 消失,总行数 55→52)。
assert store_mod._get_path() == Path(os.environ["SF_VERIFY_DB"]), (
"store override 未生效,禁止继续(会写真实 research.db)"
)
sys.argv = ["etf.py"] + sys.argv[1:]
runpy.run_path(str(CODE / "skills/invest-a-etf/scripts/etf.py"), run_name="__main__")
种数据:同 launcher 方式设 override,import sector_flow(insert scripts/lib 到 sys.path),
调真实 save_sector_flow_snapshot 逐日种快照。注意不要种未来日期——MAX(date)
是 C5 全等检测的比对基线,未来日期会让当天 collect 永远不跳过(首次驱动时的坑)。
sector-flow <symbol> 人读表格 + --json:跨度标注(trend_span_days ≠7 → 「跨度 N 日」)、
缺失行业 note、趋势标签(净额近零/近端归零/金额量级小)collect-sector-flow 连跑两次:首次 360 行写入 → 二次全等跳过(note 区分
「非交易日(日历判定)」vs「疑似盘前未刷新」);⚠ 映射自检 drift 计数(约 51 个正常)2>/dev/nulluv run python 启动 launcher(依赖在 .venv)