财经早参
一、这是什么(一句话)
A股每个交易日开盘前,自动把「昨日收盘 → 今早」的全球重大外围事件(美联储/美债/美股/大宗商品/中东俄乌/日韩)按对A股的影响方向分类整理, 并次日自动复盘前日判断的对错,越跑越准。
设计定位:这是「野渡高级复盘」的盘前互补模块。复盘看 A股自身技术面+情绪面; 本 skill 看外围输入 + 自迭代闭环。两者独立,互不依赖。TDX 连接器断开不影响本 skill。
二、触发方式(自动 / 手动 / 历史复盘)
| 触发方式 | 怎么触发 | 效果 |
|---------|---------|------|
| 自动(推荐) | 无需说话,每个 A股交易日 8:45 一键产出(含日韩股市开盘模块 + 次日前日复盘),由 WorkBuddy 自动化调度 | 全自动产出 MD+HTML 到 E:/workfwb/ |
| 手动立即跑 | 说「跑财经早参」「看今天外围」「手动跑早参」「今日盘前速览」 | 立即执行完整流程(含日韩模块 + 次日复盘节) |
| 只跑复盘 | 说「复盘昨天财经早参」「看看昨天判断准不准」 | 仅执行次日复盘验证节,输出命中率 |
| 看日韩(手动可选) | 说「看日韩股市」「日韩开盘怎么样」 | 单独跑日韩模块,仍并入主早参日韩节 |
| 当日盘后验证(v1.4.0 新增 · v1.4.2 起自动化) | 说「早参预判验证」「预判兑现」「早参准不准」「当日盘后验证」「看预测复核」 | 当天收盘后用完整收盘数据结算「七节断言 + 二节方向清单全部个股」,输出分组命中表 + 区分度判定(关注组 vs 承压组),并归因到 §七·4 纪律条目。自 v1.4.2 起该复核已由「野渡高级复盘」自动化每个交易日 17:00 自动触发,结果写入共享账本 E:/workfwb/zaocan_verify_ledger.json 并注入复盘报告(手动触发仍可用) |
自动运行建立在已配置好数据源的前提下。若从未配置,请先执行
scripts/setup_check.ps1自检并按 FAQ 接线(见第十、十一节)。
三、能力边界(什么能做 / 不能做)
能做:
- 盘前梳理全球外围变量及其对 A股 的潜在影响方向(正/负/中性)
- 8:45 随主早参一并产出日韩四大指数开盘后早盘表现(对比上一交易日)
- 次日自动复盘前日「可验证断言」的对错,迭代维度权重
- 输出结构化 MD + 浏览器直读 HTML
不能做 / 不做:
- ❌ 不替代盘后技术面复盘(那是「野渡高级复盘」的事)
- ❌ 不构成投资建议,仅做信息梳理与传导逻辑标注
- ❌ 不预测 A股 具体点位或个股买卖点
- ❌ 非交易日(周末/法定节假日/调休休市)不运行
- ❌ 不伪造数据:任一数据源缺失时降级产出并标注,绝不编造数字
四、示例输出(真实样例节选)
以下摘自
财经早参_2026-08-24.md的精简版,展示成品长什么样:
# 财经早参 | 2026-08-24 周一(交易日)
> 采集窗口:昨日 A股收盘(15:00)→ 今早 08:45
> 数据来源:**L1 妙想 mx-ds-mcp(唯一价格基准)** + **L2 ifind-mcp / L3 同舟投研(独立校核)** + **L4 tencent-news(中文主源)+ 华尔街见闻 wscn(中文财经第二源)+ 新华财经 XHCJ(政策/公告权威源·可选源)** + L5 westock-mcp(A股结构)
> 校核规则:关键价格断言须经 L2/L3 独立校核(美债 ≤5bp / 指数 ≤0.3% / 商品 ≤0.5% 视为一致;超阈值并列两值并降「【临界观察·不押注】」)
> **状态表只列本期实际取数的源**;已永久删除的源(tavily 英文源、日韩实时脚本)不重复出现在报告正文(v1.7.10)
## 一、结论与操作定调(含三档情景)
中性偏谨慎:美债高位+地缘溢价支撑黄金油气,但伊朗风向突变令油价从六连涨高位跳水。
## 二、今日开盘关注清单(主题 + 具体个股)
1. 伊朗官方表态后续(油价方向)
2. 8/26 核心PCE(美联储最关注通胀指标)
3. 韩国半导体龙头异动对A股存储链映射
| 方向 | 主题 | 标的(代码) | 逻辑锚点 |
|------|------|-------------|---------|
| 🟢 承压 | 油气油服 | 中国海油 600938 | 伊朗表态致油价跳水 |
| 🔴 关注 | 存储 / 半导体 | 兆易创新 603986 | 韩国存储龙头异动映射 |
#### 📊 速查表逐只参考(前一交易日涨跌 + 板块属性)
| 代码 | 名称 | 涨跌幅 | 属性 | 备注 |
|------|------|--------|------|------|
| 600938 | 中国海油 | −2.713% | 沪主板 | 油气油服 |
| 603986 | 兆易创新 | −4.902% | 沪主板 | 存储 |
## 三、负面影响(需警惕)
| 事件 | 维度 | 关联板块 | 传导 | 置信度 |
|------|------|---------|------|--------|
| 美债30Y 5.27%高位 | 流动性 | 外资重仓白马/高估值成长 | 收益率↑→贴现率↑→估值压 | 高 |
| 韩国KOSPI盘中跌超1.5%(三星-6%) | 产业映射 | A股半导体/存储 | 龙头异动传导 | 中 |
> 精简版从略:「四、正面影响」「五、中性/待观察」两节详见完整报告。
## 六、日韩股市(随主早参一并运行)
日经225 低开震荡;韩国KOSPI 受三星电子跌超6%拖累盘中跌超1.5% → A股半导体开盘承压。
## 七、可验证断言清单(供明日复盘)
### 7.1 核心断言(≤12 条)
1. 布伦特是否守住 90(妙想查收盘)
2. 黄金是否上破 4650
3. KOSPI 是否跌破 6800
### 7.2 临界观察(≤6 条)
1. 美债30Y 是否破 5.30%【临界观察·不押注】
## 附录、过程留痕(默认折叠)
| 前日断言 | 验证 | 实际 |
|---------|------|------|
| 布伦特维持 90 上方 | ✅兑现 | 91.55 |
| 美债30Y反弹至5.27% | ✅兑现 | 5.27 |
| 油价六连涨 | ❌未兑现 | 伊朗表态致跳水 WTI 86/-1.22% |
| 金价冲关4700 | ⏳待验证 | 4629 |
五、运行架构
A股交易日
└─ 08:45 财经早参(自动化 automation-1787496209488,单一入口)
│ ⓪ 读预测反馈账本(zaocan_verify_ledger.json)→ 混合模式调口径(§七·1.5)
│ ① 次日复盘节(读前日断言→妙想查实际值→✅/❌/⏳)
│ ② 分层取数(L1 妙想定基准 → L2 ifind-mcp 独立校核 → L3 tongzhou-fin-research 宏观序列 → L4 tencent-news + wscn + 新华财经 XHCJ(政策/公告权威)中文事件面 → L5 westock-mcp A股结构;L6 已于 v1.7.0 永久删除:tavily 英文源 与 雅虎/Stooq 日韩实时脚本)
│ ②-b 关键价格断言须独立校核(美债 ≤5bp / 指数 ≤0.3% / 商品 ≤0.5% 视为一致;超阈值须并列两值并降为「临界观察·不押注」)
│ ③ 日韩股市开盘模块(v1.7.0 起雅虎/Stooq 脚本已删除,改用 tencent-news / wscn 公开媒体检索,见 §2.5)
│ ④ 判断纪律五条自检(§七·4,成文前必过:事件前夜双情景 / 份额转移拆两栏 / 贵金属双路径 / 破位类只作临界观察 / 点位带来源)
│ → 财经早参_<日期>.md/.html
├─ 17:00 早参预判复核(由 automation-1785898449435「野渡高级复盘」自动触发,v1.4.2 起)
│ 读当日早参「六、个股速查表」→ westock 取实际收盘涨跌 → 双判据 + 归因(脚本 daily_verify.py)
│ → ① 写共享账本 zaocan_verify_ledger.json(供次晨 8:45 读取迭代)
│ → ② 产片段 verify_section_for_review.html → 幂等注入复盘报告「📮 早参预判复核」节(inject_review_section.py)
│ → 财经早参_预判验证_<日期>.html(明细 _zaocan_verify_<YYYYMMDD>.json)
└─ 非交易日:自动化自动停止,不产出
日韩时区提醒:东京/首尔东9区 = 北京东8区,日韩当地 9:00 开盘 = 北京时间 8:00 已开盘。 故 8:45 主早参取到的是日韩已交易 45 分钟的真实早盘数据,标注真实开盘表现即可,无需单独 8:30 任务。
六、数据来源与优先级
数据源分级(v1.7.0 起 · L1–L5):L1 妙想定唯一价格基准 → L2 ifind-mcp / L3 tongzhou-fin-research(独立校核)→ L4 中文事件面(tencent-news + wscn)→ L5 westock-mcp A股结构。原 L6(tavily 英文源、雅虎/Stooq 日韩实时)已于 v1.7.0 永久删除(用户拍板):英文一手对照改由内置联网搜索按需兜底,日韩行情改由公开媒体取数。
| 等级 | 来源 | 用途 | 调用方式 | 状态 |
|------|------|------|---------|------|
| L1 · 价格基准(唯一) | mx-ds-mcp 东方财富妙想 | 价格/数值基准 + 机构研报:COMEX黄金、布伦特原油、美债收益率、美元指数、LME铜等权威报价;券商宏观策略研报 | MCP 工具 mx_macro_data / mx_finance_search_news / mx_comprehensive_finance_data | ✅ connected(推荐使用) |
| L2 · 独立校核 + 全球指数/日频指标 | ifind-mcp 同花顺 iFinD(v1.6.6 提升) | ① 指数点位 + 涨跌幅(A股/美股/日韩/港股,必须用显式代码);② A股个股 估值/财务/行情摘要;③ 美股/港股/期货期权日频指标。定位=给 L1 妙想的基准做独立交叉校核(实测可复现妙想的纳指 27122.09 / KOSPI 7007.72) | MCP get_security_indicators(market=指数/A股/美股/港股/期货期权;禁复合条件)/ get_stock_summary | ✅ 实测可用(日频,非实时) |
| L3 · 宏观序列 + A股快照 + 研报事件 | tongzhou-fin-research 同舟投研(v1.6.6 提升) | ① 宏观经济时间序列——含美国国债收益率曲线各期限(来源=美联储)、美元指数等,是「美债守/破 X%」类断言的独立第三方结算源;② A股/指数最新快照(含盘中分钟 bar);③ 研报/公告/事件/行业图谱 | MCP query_macro_series(优先传 indicator_id)/ search_macro_indicators / get_latest_snapshot | ✅ 实测可用(宏观目录部分滞后,须核最新 trade_date) |
| L4 · 中文事件主源 | tencent-news | 中文源(主):国际热点、财经、军事、地缘 | CLI 脚本(API Key 已配置) | ✅ 已验证 |
| L4 · 中文财经第二源 | 华尔街见闻 wscn(MCP 连接器) | 中文财经第二源:① 全球财经资讯(美联储/美债/日本央行/地缘/商品)get_wscn_global_articles;② 前一交易日 A股板块异动及驱动理由 get_large_stocks(约 30 板块、数百只个股,含 6 位代码与「异动原因」文本,天然含 688/300/301,契合板块不设限铁律)。仅作事件面与板块叙事佐证,价格数字一律弃用 | MCP 工具 get_wscn_global_articles / get_wscn_global_article_detail / get_large_stocks | ✅ connected(token 类连接器) |
| L4 · 政策/公告权威源 | 新华财经 XHCJ(MCP 连接器,2026-10-12 接入) | 新华社系权威资讯源,补两个早参真实缺口:① 国内政策结构化检索(get-las-vector 返回发文机关/发布日/实施日/摘要/历史版本——其他源无此能力,作分级依据的交叉验证);② 公告事件化监控(xhcj-mcp-announce-search 覆盖 50 种监控事件,含 info_tag 事件类型 + info_tag_reason 原因分析 + announcement_link 原文,比巨潮全文更适合监控减持/解禁/重大事项)。另作 板块资讯(search_prodinfo_stockSector_news)/ 个股资讯(get_AStock_News_byStockName,自带四级行业分类 + 评级描述 + 关键词)/ 热点新闻(get_xhcj_hotNews)/ 快讯(get_newsflash_stock 个股、get_newsflash_Commodities 大宗商品·正对稀土/战略金属线、get_newsflash_foreign_currency 外汇)的交叉验证源。价格数字一律弃用(同 wscn 铁律) | MCP 工具 get-las-vector / xhcj-mcp-announce-search / search_prodinfo_stockSector_news / get_AStock_News_byStockName / get_xhcj_hotNews / get_newsflash_stock / get_newsflash_Commodities / get_newsflash_foreign_currency;公告两段式:get_bulletin_type(查类别码)→ getBulletinList_gzj_4mcp(股票/债券/基金公告)+ getBulletinList_other_4mcp(指数/理财/港股/三板公告) | ✅ 实测有效(2026-10-12 验证 Key 有效、时间窗问题已澄清) |
| L5 · A股结构数据 | westock-mcp(v1.6.6 明确等级) | A股 K线/指数/板块/市场总览批量取数(data_kline / data_index / data_sector / data_market_overview)——盘后验证脚本 daily_verify.py 的取数通道,亦作 A股板块口径的第二校核源。日韩行情不可用:data_search(jpkr_market=jp/kr) 实测 HTTP 403(与雅虎/Stooq 同因:受限网络) | MCP data_kline / data_index / data_sector / data_market_overview | ✅ A股可用 / ⚠️ 日韩 403 |
数据源优先级与脏数据处理(关键,避免被噪声带偏):
- 价格/数值类一律以妙想(mx-ds-mcp)为基准(交易所/机构一手报价),不采用新闻文本中的数字。
- ★ 基准独立校核规则(v1.6.6 新增 · L2/L3 的核心用途):妙想仍是唯一基准,但关键价格断言(美债收益率、美元指数、金/油/铜、主要指数)须用 L2/L3 各取一次做独立校核,并把结果写进报告该条的「校核」括注。偏差阈值(≤ 视为一致):美债 ≤5bp、指数 ≤0.3%、商品 ≤0.5%。均未超阈值 → 只写妙想值,括注「已由 L2/L3 独立校核一致」;任一超阈值 → 报告须并列两值 + 标注口径分歧,该条降为「【临界观察·不押注】」并移入「四、中性/待观察」节(衔接 §七·4 ④)。 实测锚点(2026-09-22 建立,用于判断「校核层是否还正常工作」):10 年期美债 妙想 4.96% ↔ 同舟(美联储源)4.9750%(9/21) = 差 1.5bp → 判一致;纳斯达克综指 妙想 27122.09 / +2.261% ↔ ifind
IXIC.GI27122.09 / +2.2605% → 判一致。- ★ L2 ifind 三条硬边界(实测踩坑,勿违):① 必须用显式代码——中文名会被实体解析错,实测查「纳斯达克」返回
NDAQ.ND(93.54,那是纳斯达克公司个股、不是综合指数)❌;② 禁复合条件——多条件复合会静默漏召回,须拆成多次单条件调用;③ 它是日频且有前值填充——实测日经225 在 9/18–9/22 五个日期全部返回 65018.95(休市日前值填充,无法区分「休市」与「真交易」)→ 禁止用 ifind 判断日韩是否开市,也禁止用它冒充日韩当日实时。 常用 ifind 指数代码(显式写法,直接抄):纳指IXIC.GI| 标普500SPX.GI| 道指DJI.GI| 费半SOX.GI| 日经225N225.GI| 东证TOPIX.T| KOSPIKS11.GI| 沪深300000300.SH| 上证000001.SH| 创业板指399006.SZ| 科创50000688.SH| 纽约金连续@GC0Y.CMX(实测 9/21 = 4368.1)。- ★ L3 同舟三条使用纪律:① 宏观序列优先传
indicator_id(按名称匹配精度低)——10 年期美债 =L015211687、2 年期 =L015211683、美元指数 =G002600885;② 取数后必须核对最新trade_date——其宏观目录部分滞后(实测 9/22 查:10Y 美债已更到 9/21,美元指数只到 9/18)→ 滞后 >1 交易日的数据不得用于当日断言结算,只作趋势参照;③ 其 A股/指数快照仅作盘中参照,收盘类断言仍以妙想为准(禁以盘中价冒充收盘,与硬约束 10 同源)。- ★ westock 边界(L5):日韩搜索
data_search(jpkr_market=jp|kr)实测 HTTP 403 → 不得据 westock 判断日韩行情;日韩数据一律由公开媒体取数并逐条标注来源与数据时间(v1.7.0 起,雅虎/Stooq 已删除)。- 英文源已永久删除(v1.7.0 · 用户拍板):tavily 实为第三方搜索聚合 API(非新闻社),全期未配 Key,且曾报金价 2350 等脏数据(与妙想 4624 不符)。全球/英文事件面由 tencent-news(中文主源)+ wscn(中文财经第二源)承担;确需英文一手原文对照(防中文转述失真——参见 §1.7 摘要反向归纳禁令)时,由 agent 内置联网搜索按需调用(零 Key、不入常规流水线、不作价格源)。禁止再在报告任何位置出现「tavily 缺 Key 降级 / 连续 N 期」表述(历史报告中存在,属当期快照,不回改)。
- tencent-news 作为中文事件面主源;华尔街见闻(wscn)为中文财经第二源,定位是「专业财经视角的事件面补充 + A股板块异动叙事」——其
get_large_stocks给出的「板块 + 异动原因 + 6 位代码」正好补妙想只给指数涨跌、不给「为什么动」的缺口,且代码天然含 688/300/301(契合板块不设限铁律)。- wscn 价格数字一律弃用(同价格基准铁律):wscn 全球资讯里夹带的点位/价格均非基准,只作事件佐证。需要价格基准时仍只调妙想。global_articles 仅返回资讯列表(无正文),仅在确需深度引用某条时才二次调
get_wscn_global_article_detail取正文。get_large_stocks必须传date = 前一交易日(08:45 跑早参时「当天」A股尚未开盘,传当天无意义;传前一交易日才拿到已收盘的板块异动)。- tencent-news 作为中文事件面主源。
- ★ 新华财经(XHCJ)定位与边界(v1.7.11 新增 · 2026-10-12 实测):① 政策类结论优先采信 XHCJ——
get-las-vector是国内政策结构化检索的独门能力(其他源只有泛新闻、无「发文机关/实施日/历史版本」结构),凡涉及「某部委发文/新规落地/产业政策」的评级依据,优先用 XHCJ 交叉验证;② 公告监控用 XHCJ 事件化结果——xhcj-mcp-announce-search的info_tag/info_tag_reason比巨潮全文更适合做「事件归因 + 风险预警」,可用于减持/解禁/重大事项的早参提示;③ 板块/个股资讯与热点新闻作交叉验证源(新华社权威背书,真伪优先级高于聚合源);④ 价格数字一律弃用(同 wscn 铁律),资讯夹带的点位/价格非基准。- ★ XHCJ 时间窗硬规则(v1.7.11 · 2026-10-12 实测踩坑,必须写死):
get_xhcj_hotNews/search_prodinfo_stockSector_news/get_AStock_News_byStockName等资讯/热点类工具默认不带begTime/endTime时,返回的是「历史热点榜」逻辑(实测最新只到数月前,非近 10 天);只有显式传begTime/endTime时间窗(如前一交易日 00:00:00→前一交易日 23:59:59,或近 3 天窗口)才返回指定窗口的实时数据。早参调用一律强制传时间窗,否则会拿过期热点污染结论。公告类(xhcj-mcp-announce-search/getBulletinList_*)按各自参数传日期,同样须指定窗口、避免拉到过期公告。- XHCJ 降级不阻断:XHCJ 未连 / 返回空 / 401 → 妙想 + tencent-news + wscn 继续,政策面由 tencent-news search「政策/新规」补、公告监控由现有源补,报告标题加
【部分数据源降级·XHCJ】,绝不因 XHCJ 缺失而空跑。⚠️ 黄金口径分歧(v1.3.4 实测教训 · 2026-09-15):妙想
期货收盘价(连续):COMEX黄金与伦敦金现可能显著背离—— 9/11 与 9/14 的 COMEX 连续合约均报 4379,而同日伦敦金现报 4299(基差约 80 美元/盎司,超出常态),媒体亦报「现货黄金跌破 4300」。 判定含「黄金守/破某价位」的断言时,必须同时拉取 COMEX 连续 + 伦敦金现两个口径: ① 若二者同向 → 直接判定;② 若背离 → 报告须显式标注口径分歧并声明以哪个口径为准(默认以伦敦金现/现货口径为准,因期货连续合约存在展期与基差失真), 禁止只取单一源就下「守住/未守住」的结论。此条同样适用于现货价格:黄金(元/克)与 COMEX 美元口径的换算对照。
七、采集流程
0. 挂载前置自检(第零道闸门 · 先挂载、后运行 · v1.7.1 新增 · 用户 2026-09-23 拍板强制)
背景:9/23 期出刊时 wscn / ifind / 同舟三源被启动快照误判「未挂载」(实际一直在线,MCP 异步挂载在自动化触发后才完成)。用户拍板:每次运行必须先确认挂载、再进入取数,且信息与新闻须跨源交叉验证重要性/真伪。
执行时机:交易日检查之前,作为第零道闸门。任何取数动作(含复盘解析、断言验证)都不得先于本节。
- 逐源实测(禁止以会话启动时的连接器状态快照/注入文本作为挂载依据):
- MCP 类(妙想 / wscn / ifind / 同舟 / westock):①
ToolSearch搜该工具 schema → ② 实测一次最小调用(wscn=get_wscn_global_articles(前一交易日);ifind=显式代码单条件;同舟=宏观 indicator_id 序列;妙想=任一指数快照)。schema 搜得到但调用返回空/报错 → 记「已挂载·召回异常」,不算未挂载。 - CLI 类(tencent-news):执行一次最小检索调用确认可用。
- MCP 类(妙想 / wscn / ifind / 同舟 / westock):①
- 重试规则(v1.6.7 条款升格为闸门组成):schema 搜不到 → 等 30–60 秒重搜一次;两次失败或实测调用报错 → 才允许判「未挂载」并降级。
- 硬性顺序:未完成本节自检前,禁止进入 §七·1 及之后的任何取数;未实测就写「未挂载」属报告不合格(等同于违反硬约束 19)。
- 挂载结果须在「0.5 数据源状态」表落实测证据(调用了什么、返回了什么),禁止只写「在线/未挂载」无凭据。
- 挂载确认后即触发跨源交叉验证(与 §七·2 取数并行消费):
- 价格/数值冲突 → 一律基准优先(妙想),其他源数字弃用并标疑;
- 事件冲突 → 双源一致才判「真·可分级」;单源独有且不可即时核实的,按性质标「⏳ 待验证 / 机构观点类」,不作二/三节分级依据;
- 重要性分层:政策/规划类 > 龙头公司实质资本运作 > 机构观点 > 题材传闻;前两类可入分级,后两类只作观察项。
- 交叉验证结论写入「0.6 数据源补挂载与信息/新闻交叉验证」节(若当期无冲突/无新增,可写「全源一致,无新增判定」一行的简版)。
1. 交易日检查(第一道闸门)
开始任何采集前,先判断目标日期是否为 A 股交易日(排除周末与中国法定节假日,即当日 A股 实际开盘 才跑)。 若非交易日,告知用户「今日休市,无财经早参」,停止后续流程。判断口径与「野渡高级复盘」一致。
1.5 预测反馈账本读取(闭环入口 · v1.4.2 新增)
闭环定位:本 skill 的盘后验证由「野渡高级复盘」自动化(automation-1785898449435)在每个交易日 17:00 收盘后自动调用
scripts/daily_verify.py --date <当日>完成,验证结果写入共享账本E:/workfwb/zaocan_verify_ledger.json。次日 8:45 本早参启动时先读该账本最近条目,据此调整本期预测口径,形成「早参预测 → 盘后验证 → 次日反馈迭代」闭环。本 skill 与「野渡高级复盘」由此从「互不依赖」升级为一对反馈回路。
读取动作(交易日检查通过后、分维度抓取之前执行):
- 读
E:/workfwb/zaocan_verify_ledger.json;文件不存在 → 跳过本闭环(首期无历史),按常规流程产出。 - 取账本最后一条(= 最近一期复盘验证结论),关键字段:
date/verdicts.classification_failed/verdicts.suppress_reversed/consecutive_fail/attribution/suggestions。 - 按混合模式两条规则调整本期口径:
①-a 硬规则A(连续失效降级 · 自动生效,不询问用户)
consecutive_fail >= 2(连续 2 期双判据任一失效)→ 本期「二、开盘关注清单」自动降级为 「拐点日·不押注」模式:关注组整体标注「⚠️ 高位补跌风险」,不单列做多方向;承压组照常。- 计数口径(v1.6.1 修正):
consecutive_fail只统计本脚本实测记录——标记为补录的条目(source == "backfill")与测量失败条目(无groups)中性跳过(既不计失效,也不打断连续段)。故本 skill 读到该字段时可直接使用,无需再人工剔除补录期。 - 同时在「附录、过程留痕」节明示:「连续 N 期预判失效,本期降级为拐点日·保守,不押注方向」。
- 连续计数在恢复(某期双判据均通过)后归零,硬规则A自动解除。
⚠️ 硬规则 × §7.4 ① 的冲突消解(2026-09-18 首度触发时确立):硬规则要求「关注组不单列做多方向」,而 §7.4 ① 要求「双情景并列、各列一组方向」,二者在条款字面冲突。消解口径(优先级:硬规则 > §7.4 ①): ① 六节仍须并列双情景(保留 §7.4 ① 的可证伪要求),但情景 B(关注方向)整栏前置
⚠️ 不押注·勿追高标注,并在每行逻辑锚点写明「高开不追、等分歧企稳」类限定; ② 速查表保留关注侧标的(不得少于 2 只,硬约束 12 仍生效),但方向列改为⚠️ 关注(不押注·勿追高),且每条须附该方向上一期的实际反例数据(如「9/17 该板块 −5.37%」),使"不押注"可追溯; ③ 一节须显式写明「情景 B 权重 ≥ A 但只作观察位展示,不构成做多建议」,避免 §7.4 ① 的"权重不低于"被误读为看多; ④ 禁止以硬规则为由取消双情景或删空关注侧标的——那会同时违反 §7.4 ① 与硬约束 12。
①-b 硬规则B(单期退潮预警 · v1.6.0 新增 · 自动生效,不询问用户)
- 触发判据:账本最近条目
ebb_day == true,即判定为「退潮/分歧日」。定义(口径由用户 2026-09-19 拍板确认,勿擅改):verdicts.suppress_reversed == true(承压组〔低位/滞涨标的〕跑赢沪深300)且att_avg <= 0(关注组〔前期强势方向〕当日组均 ≤ 0)。大白话:前期涨得多的在跌、而没怎么涨的低位标的反而抗跌 → 这才叫退潮;若低位票上涨只是普涨补涨(关注组同时也在涨),则不算退潮,避免误判。用账本历史回验:9/17(att −0.97%)→ 命中;9/18(att +2.28%,普涨)→ 不误判。
- 动作:本期「二、开盘关注清单」关注组整体标注 「⚠️ 高位补跌风险」、不单列做多方向(承压组照常);并在「附录、过程留痕」节注明触发依据(账本
ebb_evidence)。 - 与硬规则A 的关系:同权限、独立触发。 硬规则A 需连续判错 ≥ 2 期(反应慢一拍);硬规则B 只要前一日出现 1 次退潮特征即触发(早一拍)。两者同时命中则并列展示,动作取并集(本就是同一套降级)。
- 单期生效、不连坐:硬规则B 只作用于「次日」这一期,再下一日按最新
ebb_day重新判定;不得因"上一期是退潮日"而延续降级(这是它与硬规则A 的关键差别)。 - 与 §7.4 ① 的冲突消解:完全沿用上方硬规则A 已确立的四条口径(双情景并列保留、速查表关注侧标的 ≥2 只、方向列改
⚠️ 关注(不押注·勿追高)并附上一期反例数据、禁止删空关注侧)。
② soft 通道(待拍板建议 · 只展示、不静默改口径)
-
仅当
consecutive_fail >= 2(处于连续失效期)时,才读账本suggestions.soft并以 「📋 迭代建议(待确认)」 列于「附录、过程留痕」节附录;非连续失效期一律不展示(v1.6.0 守卫,修正此前脚本"文字写了条件、代码却每天无条件打印"的缺陷)。 -
不据此静默修改本期预测逻辑;用户认可后,由维护者固化进本 SKILL.md(升版本),并从
daily_verify.py的PENDING_SOFT中移除该项。 -
已处置项不再重复出现(2026-09-19 用户拍板,勿再复议):
| 原软规则 | 裁决 | 现状 | |---|---|---| | ① 退潮日/分歧日,关注组加「高位补跌风险」提示,不作为默认做多信号 | 采纳 | 已固化为上方硬规则B(
ebb_day触发) | | ② 剔除前一日涨幅 ≥5% 的标的出「关注」默认逻辑,或单列「前高标·谨慎追」栏 | 否决 | 用户理由:「昨天涨 5% 及以上,今天依然可能还会上涨,不应该被排除」;含"单列前高标"变体一并否决,禁止再提出 | | ③ 连续失效期,本建议展示于早参附录 | 采纳 | 已固化为本 soft 通道守卫 |- 当前
suggestions.soft为空集(三项全部处置完毕);后续若产生新建议,由维护者追加进PENDING_SOFT后按上述守卫展示。
- 当前
⚠️ 脚本幂等性(v1.5.1 修复 · 2026-09-18 实测踩坑):scripts/daily_verify.py 原先不幂等——同一 --date 重复运行(例如先跑一次看结果、再跑一次取完整输出)会向账本 append 第二条同日记录,而 calc_consecutive_fail() 逐条回溯计数,导致 consecutive_fail 虚增 1 期(实测:09-18 跑两次后账本同名日期出现 cf=3 与 cf=4 两条,注入复盘的片段显示错误的「4 期」)。已双保险修复:① write_ledger() 写入前剔除同 date 的旧记录(同日只保留最新一条);② calc_consecutive_fail() 遍历时跳过与本次 rep["date"] 同日的历史记录。排查提示:若账本出现同一日期多条记录,先按 date 去重再判断连续失效期数;注入类脚本 inject_review_section.py 本身幂等(重复运行输出 [replaced]),但 daily_verify.py 重跑前须确认账本已干净。
- 「附录、过程留痕」节必须展示账本结论(闭环的可视化落点,也是硬约束 13 的归因载体):昨日双判据(区分度 / 承压是否跑赢基准)、分组命中概览、规则化归因(
attribution)、连续失效计数。
账本字段速查(由 daily_verify.py 写入、本 skill 读取):
| 字段 | 含义 |
|------|------|
| date | 验证对应的交易日 |
| source | 记录来源(v1.6.1):measured = 本脚本实测取数(参与连续失效计数);backfill = 人工补录(不参与计数,中性跳过)|
| verdicts.classification_failed | 判据①:区分度 < 1pct → 本期分类失效 |
| verdicts.suppress_reversed | 判据②:承压组跑赢沪深300 → 承压方向系统性判反 |
| consecutive_fail | 连续失效计数(硬规则A 阈值 = 2;仅计实测记录,v1.6.1) |
| ebb_day | 退潮/分歧日标志(v1.6.0 新增 · 硬规则B 触发器)= suppress_reversed 且 att_avg <= 0 |
| ebb_evidence | 退潮判定依据文本(命中时写明承压组跑赢幅度与关注组组均;未命中写明原因) |
| attribution | 规则化归因草稿 |
| suggestions.hard / .soft | 混合模式建议(hard = 硬规则A/B 自动生效;soft = 待拍板项,仅连续失效期展示) |
| groups | 分组明细(topic / expect / avg / rate / verdict / items) |
| prediction_snapshot | 早参速查表原始分组(供回放预测) |
配套脚本:
scripts/daily_verify.py(核算 + 写账本 + 产复盘片段)、scripts/inject_review_section.py(把片段幂等注入复盘报告)。闭环链路由「野渡高级复盘」automation 的第 8 步驱动,本 skill 侧只负责读取与消费。
1.6 复盘实质性结合(v1.5.0 引入对照块 → v1.7.6 升为强制条款)
用户口径(2026-09-18 09:01 选定 A 方案 / 2026-09-29 10:29 强化为「要固化」): 早参看外围环境、复盘看内部结构,两者保持独立不互改分类;但**「独立」≠「不看」—— 每期早参必须读取前一交易日「野渡高级复盘」报告,并把其 P0/P1 档 + §五/§八/§十一 实质结论显式反馈进本期报告。 这不是可选项,是产出的前置条件**(见硬约束 21)。 ⚠️ 严禁把复盘 P0/P1 直接提升为早参的「关注组」标的,也严禁因「复盘没提」而删减早参自己的方向 —— 那会同时污染两套独立信号(B 方案已被用户否决)。 ⚠️ 严禁只跑脚本贴一段「对照块」交差 —— 那只是第 1 步,必须走完下面 §1.6 的四步闭环。
1.6.0 四步闭环(缺任一步 = 报告不合格)
| 步 | 动作 | 落点 | 不可省的理由 |
| --- | --- | --- | --- |
| ① 解析 | 跑 fetch_review_focus.py --date <前一交易日> | §0.4 | 机械化取 P0/P1/P3-A1/A2,避免人工漏读 |
| ② 通读 | 人工阅读复盘报告 §三(连板梯队)/ §五(板块资金)/ §八(偏差复核)/ §十一(下一日推演) | — | 这四节的结论不在脚本输出里,必须人读 |
| ③ 映射 | 逐条判断「复盘结论 → 影响早参哪个节」并实际改动该节 | §0.3 / §二 / §七 / §三 | 只读不写 = 无效反馈 |
| ④ 声明 | 写 §0.4b 表 + 逐条说明背离与取舍 | §0.4b | 让"结合"可审计、可追溯,而非感觉 |
执行动作(读账本之后、写报告之前):
# 通用写法(skill 目录以 <SKILL_DIR> 表示,agent 运行时自行替换为实际路径)
python "<SKILL_DIR>/scripts/fetch_review_focus.py" --date <前一交易日>
-
数据源:
E:/workbuddy/2026-08-05-10-36-24/daily-review/全景复盘_<YYYYMMDD>.html(⚠️ 注意:复盘报告不在E:/workfwb/,这是 2026-09-18 核实过的固定路径,勿在E:/workfwb/下找)。 -
解析对象:复盘报告中标题含「下一个交易日」的那一个节(如「八、下一个交易日(2026-10-08)重点关注」)的「分级总览」段 + P1 明细块(
P1/ 板块名 /6位代码/名称成对出现)。 ⚠️ 节号不写死:复盘报告的节号随当期结构变动(v2.1.x 起为 八、早期为 九),解析器按标题文字匹配而非节号 —— 禁止在文档或脚本里硬编码「§九」(2026-09-30 实测:本期为「八」,按 §九 找会落空)。 -
★ 两个「前一交易日」口径必须分开算(硬约束 22 · v1.7.9 新增 · 2026-10-01 用户拍板):
| 场景 | 取值口径 | 例:10-08 早参 | | --- | --- | --- | | ① 复盘报告 / wscn
get_large_stocks/fetch_review_focus的<前一交易日>| 回溯到最近一个已收盘、且复盘已生成的 A股交易日;遇周末/长假/临时休市须回溯到节前最后交易日,不得跳空 | 2026-09-30 | | ②review_previous.py --prev-date的<前一日>(结算上一期早参断言) | 回溯到最近一个已生成早参文件的交易日——不是自然日 T−1;若该日无早参文件则继续向前回溯,并在报告中显式注明实际结算的是哪一期 | 2026-09-30(10-07 休市、无早参) |⛔ 禁止按自然日取 T−1:长假后首个交易日按自然日会取到休市日(10-08 → 10-07),导致节前最后一期早参的断言无人结算、维度权重迭代断档(本次即为此隐患:09-30 早参断言本应在 10-08 结算)。 两者在正常情况下同值;仅当某交易日早参因故障/降级未生成时才分叉——此时 ② 继续回溯、① 不变。
-
输出:stdout 结构化摘要;
--md-only只输出 markdown 对照块;--json <path>落盘完整解析结果。 -
退出码:
0= 成功;3= 报告不存在 或 §九 未定位到。收到 3 时跳过对照块并在报告注明原因,绝不阻断早参主流程、绝不编造复盘内容。
对照块落位(两处同步):
- Markdown:
## 附录、过程留痕节末尾,以### 0.4 📎 昨日复盘对照(P0/P1 档 + 实质结论反馈)为标题。 - HTML:同节
<div class="sec">内、末位追加(沿用var(--panel)/var(--line)/var(--muted)变量,左框3px solid var(--muted),与既有卡片风格一致)。
内容必含:来源文件名 + 节标题、行式 **P0**:… 独立一行(见 FAQ Q11b「C3 格式硬要求」;空缺须显式写明「全市场无板块满足 P0 三准入条件」,但标题行本身仍须存在,否则 C3 判 FAIL)、P1(板块名 + 标的名称/代码)、P3-A1 坚决回避(复盘侧的承压方向,与早参承压组天然可对照)、口径声明(独立、不参与分类、背离时以各自逻辑为准)。
1.6.1 §0.4b 复盘实质结论反馈表(v1.7.6 新增 · 强制五列)
第 ② 步通读的四节,必须逐条落成下表(禁止写「已参考」「已结合」等空话):
| 复盘出处 | 复盘原结论(引用要点) | 已并入早参何处 | 处理方式 | 若背离 · 理由 | | --- | --- | --- | --- | --- | | §三 连板梯队 | 最高 N 板 / 梯队整齐度 / 封板质量 | §二 或 §三 | 作某方向降级/保留的依据 | — | | §五 板块资金 | 净流入/流出方向、退守还是进攻 | §二 速查表 | 决定哪几组升防守底仓、哪几组降「不押注」 | — | | §八 偏差复核 | 各档最差期次、R 系列待拍板修订 | §0.3 | 采纳的写「已采纳」;未采纳的写理由 | 必填 | | §十一 下一日推演 | 复盘三情景 + 关键阈值(指数/量能/均线) | §一·1.1 三档情景 | 逐条对齐;阈值不一致时必须说明取严/取宽理由 | 必填 |
三条硬性判定规则(防"假结合"):
- 阈值必须对齐或显式说明背离:复盘的指数关口、量能阈值、均线位,与早参 §一·1.1 情景阈值逐条对比。一致 → 写「与复盘一致」;不一致 → 必须写明取严/取宽的量化理由(如「复盘 15500 亿较宽,早参取 1.9 万亿因为前一日是下跌放量」)。
- P0/P1 标的不自动入表:复盘点名的标的若已在高位(连板 ≥3 板 / 前一日已涨停)且当期触发降级规则,不纳入早参做多方向,但须在 §0.4b 说明该取舍理由。
- 背离须可审计:每处与复盘不一致的判断,都要能回答「为什么不采纳」——不能是"忘了看"或"脚本没解析出来"。
1.6.2 前置校验(写报告前自问,答不出即回炉)
- [ ] 脚本解析结果里 P0 / P1 / P3-A1 / P3-A2 四项无一为「未解析到」?若出现,先修解析器(§1.6 已知坑 2 + 三期回归),不得带占位出报告。
- [ ] §0.4b 表四行齐全(§三/§五/§八/§十一)?缺行须写明该节在复盘报告中确实不存在。
- [ ] 「若背离·理由」列在存在背离时非空?
- [ ] 「已并入早参何处」列的目标节确实被改动过(可 diff 验证),不是嘴上说并入?
- [ ] §0.4 有无行式
**P0**:…独立一行?——表格内| **P0** |加粗档位列不被 C3 正则识别,缺则 FAIL(详见 FAQ Q11b「C3 格式硬要求」)。表格与行式须并存。 - [ ] 是否已跑
check_review_integration.py --date <本期日期>并全项 OK?(退出码 1 = 不得交付)
⚠️ 已知坑(首次实现踩到):复盘「分级总览」段以 P0 开头(P0 / 空缺 / (0 条)|P1 …),解析时不可用「遇到裸 P0 行即停止」作终止条件——首行即命中、结果恒为空。正确做法:累积到以句号 。 结尾即停(总览是一个完整句子)。见 fetch_review_focus.py::parse_grading() 注释。
⚠️⚠️ 已知坑 2(2026-09-29 修复 · 三种版式共存,改动前务必回归 9/18 + 9/24 + 9/28 三期):
复盘报告「下一个交易日重点关注」节自 2026-09-18 起至少出现过三种并存的版式,旧解析器只覆盖 A 版、导致 9/28 报告 P0/P3-A1/P3-A2 全部输出「未解析到」:
| 版式 | 出现日期 | 行序特征 | 旧逻辑结果 |
| --- | --- | --- | --- |
| A(旧) | 9/18 | P1 → 板块名 → 说明段 → 代码 → 名称(代码在前) | P1 标的解析为 0 条 |
| B1(新) | 9/28 | h3 单行式 P0 · 出版业 / 国企改革(…);标的为 P1 → 名称 → 代码 | P0 恒「未解析」;每只标的被当成独立 блок、6 只只留 1 只且名称错位 |
| B2 | 9/28 | 600418 江淮汽车 逻辑:… 名称与代码同行 | 名称恒空、标的被丢弃 |
三处关键修复(fetch_review_focus.py):
skip_definition()提前返回:遇到^P0\s*[·・::]\s*\S(即P0 · xxx单行式标题)必须立即停下,否则会一路推进到后面的裸P1行,把 P0 整段跳过。同理parse_p0()增加^P0\s*[·・::]\s*(.+)$分支。parse_p1()重写为「板块标题一次 + 裸 P1 作标的分隔符」语义:先用^P1\s*[·・::]\s*(.+)$抓唯一的板块级标题;此后每个裸P1都只作标的起点(名称在其下一行、代码在其下一行);同时保留 A 版「裸代码 → 向后找名称」与 B2 版「同行式」两条兜底分支。- 收集起点必须 = P1 段起点(
p1_hdr_idx + 1),不可沿用--date传入的start——否则会把上一段(P0)尾部的逻辑+600825误挂成伪标的。 另:parse_p3()增加 h4 式P3-A1「趋势性退潮 · 坚决回避」/P3-A2「…」匹配,并对结果清洗前导标点(旧报告实测残留:13 只连板封板质量)。
回归验证(每次改动后必跑):
for d in 2026-09-18 2026-09-24 2026-09-28; do
python fetch_review_focus.py --date $d --md-only
done
期望:9/18 → 22 只标的;9/24 → 4 只标的 + P3-A2: 13 只连板封板质量(无前导冒号);9/28 → P0 出版业/国企改革 + 6 只标的(江淮汽车 600418 起) + P3-A2: 空缺。
1.7 华尔街见闻(wscn)连接器接入规范(v1.5.2 新增)
接入动机(2026-09-19 用户确认「接」):wscn 补两个早参真实缺口——① 第三个中文财经源,直接填 tavily 缺 Key 的洞(专业度高于 tencent-news 泛新闻);② A股「为什么动」的叙事源(妙想只给指数涨跌,不给板块异动原因)。其
get_large_stocks返回的板块异动含 6 位代码与「异动原因」文本,且天然含 688/300/301,契合板块不设限铁律。
调用方式(读账本之后、写报告之前):
# 全球财经资讯列表(美联储/美债/日本央行/地缘/商品)—— 事件面补充
# 工具:mcp__wscnmcp-token__get_wscn_global_articles {date: <前一交易日>}
# 前一交易日 A股 板块异动 + 驱动理由(含 6 位代码)—— 板块叙事源
# 工具:mcp__wscnmcp-token__get_large_stocks {date: <前一交易日>}
# 深度引用某条资讯正文时才二次调:
# 工具:mcp__wscnmcp-token__get_wscn_global_article_detail {id: <文章id>}
硬边界(与 §1.6 同逻辑:只参照、不污染早参自身分类):
- 价格数字一律弃用:wscn 全球资讯里夹带的点位/价格非基准,只作事件佐证;价格基准永远只调妙想(§七·4 ⑤ 与硬约束 15)。
get_large_stocks必须传date = 前一交易日:08:45 跑早参时「当天」A股未开盘,传当天无意义;传前一交易日才拿到已收盘的板块异动与「异动原因」。get_wscn_global_articles仅返回资讯列表(无正文):默认只用列表的标题/摘要做事件面补充;仅当需深度引用某条时才二次调get_wscn_global_article_detail取正文(避免无谓二次调用)。- 不改变早参承压/关注分组、不参与 §七·4 纪律自检:wscn 板块异动(如 PCB/电子布、光通信)只作「关联板块标的」映射的叙事佐证,不因此新增或删除早参方向;若与早参结论背离,以各自逻辑为准并在正文说明。
- 降级不阻断:wscn 未连 / 返回空 → 妙想 + tencent-news 继续,A股板块异动叙事由 tencent-news search 补,报告标题加
【部分数据源降级·wscn】,绝不因 wscn 缺失而空跑。- ★ 挂载时序重试规则(v1.6.7 新增 · 连续多期误判「未挂载」后固化):MCP 连接器在会话启动后异步陆续挂载,自动化触发瞬间的连接器状态只是启动快照(实测 2026-09-23:11:15 快照仅 2/7 挂载,11:23 全部 7 个连上,wscn 实测可用)。因此
ToolSearch搜不到 wscn 工具 schema ≠ 连接器损坏——判定「未挂载」前必须重试一次:① 先ToolSearch(tool_names=["mcp__wscnmcp-token__get_wscn_global_articles"])搜 schema;② 搜不到则等待 30–60 秒后重搜一次;③ 两次都搜不到、或 schema 在但实测调用报错,才允许判降级并加【部分数据源降级·wscn】。禁止把「启动快照里没列出 wscn」直接当作降级依据。本规则同样适用于其它 MCP 连接器(妙想/ifind/同舟/westock)的挂载判定。
- ★ 挂载时序重试规则(v1.6.7 新增 · 连续多期误判「未挂载」后固化):MCP 连接器在会话启动后异步陆续挂载,自动化触发瞬间的连接器状态只是启动快照(实测 2026-09-23:11:15 快照仅 2/7 挂载,11:23 全部 7 个连上,wscn 实测可用)。因此
- ★ 摘要反向归纳禁令(v1.6.3 新增 · 连续两次同源误读后固化):
- 凡 wscn/媒体的标题或摘要中出现「运价/价格/费率上行、创新高、上涨」类表述,一律不得据摘要反向归纳为「上行放缓 / 红利消退 / 见顶回落」等向下结论。 摘要只可用于「该方向有事件」的事实判定,方向结论必须读原文。
- 触发二次校验的条件(任一命中即须调
get_wscn_global_article_detail读正文后再落笔):① 拟写结论与摘要的方向性字面相反;② 结论将改变早参分组归属(承压 ↔ 关注 ↔ 中性);③ 引用的数字含「创纪录 / 历史峰值 / 倍 / 倍于基准」等量级词。 - 违规判据:若某方向的落笔结论与所引原文方向相反,且未走二次校验,该条视为当期报告不合格,须读原文重写该方向后重新产出。
- 历史案例(两次,均为「结论对、理由错」):① 2026-09-21 期「商品价格下行 → 油气股承压」,实测油气组均 +3.92% 判反(映射脱钩);② 2026-09-22 期首版把「霍尔木兹出口量回升至 650 万桶/日」读成「运价红利边际消退」并将航运列承压,而原文实为「高昂风险推动 VLCC 运价飙升至每桶逾 30 美元,运输体系越来越贵」;同期 VLCC 日租金破 124 万美元/日创历史纪录、集装箱运费 +201%。已于重跑版按「中性·高波动·双向」修正并移出承压组。
- 配套动作:凡修正此类错误,须在报告
〇节单设### 0.3-X 🔴 本期归因修正子块,逐项列出「首版表述 / 一手事实(带来源·日期)/ 修正后处置」,并在文末迭代记录留痕。
1.8 新华财经(XHCJ)连接器接入规范(v1.7.11 新增 · 2026-10-12 接入)
【可选数据源 · 默认跳过 · 最高优先级】XHCJ 是「可选」连接器,不是必需源。早参运行前若检测到使用者未安装或未连接 XHCJ 连接器,则整段跳过所有 XHCJ 调用——不报错、不降级告警、不阻断主流程,政策面与公告监控自动回退到
tencent-news+wscn现有源(见下方第 5 条)。本 skill 在「无 XHCJ」环境下必须能零报错跑完并产出合格报告。仅当使用者确认已连 XHCJ 时才启用本节全部调用。
接入动机(2026-10-12 用户确认「接」):XHCJ(新华社系 cnfic 权威源)补两个早参真实缺口——① 国内政策结构化检索(
get-las-vector,其他源无此能力,作分级依据交叉验证);② 公告事件化监控(xhcj-mcp-announce-search50 种事件含原因分析,比巨潮全文更适合做减持/解禁/重大事项预警)。另作板块/个股资讯与热点新闻的交叉验证源(新华社权威背书)。价格数字一律弃用(同 wscn 铁律)。
调用方式(读账本之后、写报告之前):
# ① 政策结构化检索(独门)—— 国内政策/新规/产业政策,返回发文机关/发布日/实施日/摘要/历史版本
# 工具:mcp__xhcj-mcp-announcements-news-policy__get-las-vector {keyword: <政策关键词>}
# ② 公告事件化检索(50 种监控事件,含 info_tag 事件类型 + info_tag_reason 原因分析 + announcement_link 原文)
# 工具:mcp__xhcj-mcp-announcements-news-policy__xhcj-mcp-announce-search {keyword/date 等}
# ②-b 公告两段式(先查类别码,再取列表)—— 股票/债券/基金公告 与 指数/理财/港股/三板公告
# 工具:mcp__xhcj-mcp-announcements-news-policy__get_bulletin_type {keyword}
# 工具:mcp__xhcj-mcp-announcements-news-policy__getBulletinList_gzj_4mcp {typeCode, date}
# 工具:mcp__xhcj-mcp-announcements-news-policy__getBulletinList_other_4mcp {typeCode, date}
# ③ 板块资讯(如「稀土」「半导体」)—— 事件面补充
# 工具:mcp__xhcj-mcp-announcements-news-policy__search_prodinfo_stockSector_news {keyword, begTime, endTime}
# ④ 个股资讯(自带四级行业分类 + 评级描述 + 关键词)—— 个股事件归因
# 工具:mcp__xhcj-mcp-announcements-news-policy__get_AStock_News_byStockName {stockName, begTime, endTime}
# ⑤ 热点新闻(⚠️ 必须传 begTime/endTime,否则返回历史热点榜非最新)
# 工具:mcp__xhcj-mcp-announcements-news-policy__get_xhcj_hotNews {begTime, endTime}
# ⑥ 快讯:个股财报类 / 大宗商品(正对稀土·战略金属线)/ 外汇
# 工具:mcp__xhcj-mcp-announcements-news-policy__get_newsflash_stock {stockName, eventType}
# 工具:mcp__xhcj-mcp-announcements-news-policy__get_newsflash_Commodities {keyword}
# 工具:mcp__xhcj-mcp-announcements-news-policy__get_newsflash_foreign_currency {keyword}
硬边界(与 §1.7 同逻辑:只参照、不污染早参自身分类):
- 价格数字一律弃用:XHCJ 资讯/快讯夹带的点位、价格、涨跌幅均非基准,只作事件佐证;价格基准永远只调妙想(同硬约束 15 / 18)。
- ★ 资讯/热点类工具必须显式传时间窗:
get_xhcj_hotNews/search_prodinfo_stockSector_news/get_AStock_News_byStockName默认不带begTime/endTime返回的是「历史热点榜」(实测最新只到数月前),只有传begTime/endTime才返回指定窗口实时数据。早参一律传「前一交易日 00:00:00 → 23:59:59」或近 3 天窗口;公告类同样须指定日期窗口,避免拉到过期公告。违此规则拿到旧数据视为当期报告不合格(污染结论)。 - 不改变早参承压/关注分组、不参与 §七·4 纪律自检:XHCJ 政策/公告/板块资讯只作「关联板块标的」映射与事件佐证,不因此新增或删除早参方向;若与早参结论背离,以各自逻辑为准并在正文说明。
- 政策类结论优先采信 XHCJ:凡涉及「部委发文/新规落地/产业政策」的评级依据,用
get-las-vector交叉验证,其结构化字段(发文机关/实施日/历史版本)作分级置信度依据;其他源的泛新闻表述不升格为政策定调。 - 【可选源·默认跳过】降级不阻断:XHCJ 非必需。① 若使用者根本未安装/未连接 XHCJ(常态,非异常)→ 整段静默跳过,妙想 + tencent-news + wscn 继续,政策面由 tencent-news search「政策/新规」补、公告监控由现有源补,不标降级、不报错误(因为可选源缺席是常态);② 若 XHCJ 已连接却 401/返回空/报错(异常)→ 才走降级分支,报告标题加
【部分数据源降级·XHCJ】。两者都绝不因 XHCJ 缺失而空跑。挂载判定沿用第 6 条时序重试规则(搜不到 schema → 等 30–60 秒重搜 → 两次都搜不到才判未连)。- ★ 挂载时序重试规则(同 §1.7 第 5 条,适用于全部 MCP 连接器):MCP 连接器异步挂载,
ToolSearch搜不到 schema ≠ 连接器损坏——判定「未挂载」前须 ① 搜 schema → ② 等 30–60 秒重搜一次 → ③ 两次都搜不到或实测调用报错才允许降级。禁止把启动快照里没列出 XHCJ 直接当降级依据。
- ★ 挂载时序重试规则(同 §1.7 第 5 条,适用于全部 MCP 连接器):MCP 连接器异步挂载,
2. 环境就绪检查(含错误码)
快速自检:正式运行前建议先跑
scripts/setup_check.ps1,它会输出各依赖的红绿灯状态与修复命令。 以下每类失败都给出错误码,Agent 遇到时应按错误码提示用户,而非笼统说"失败了"。
tencent-news(Windows):
- CLI 二进制应位于
$HOME/.tencent-news-cli/bin/tencent-news-cli.exe(v1.0.14)。 - 若缺失 → 错误码
ERR_TNCLI_001:运行scripts/install_tn_cli.ps1自动安装,或 curl 直下https://mat1.gtimg.com/qqcdn/qqnews/cli/hub/windows-amd64/tencent-news-cli.exe到该路径。 - API Key 必填:若
tencent-news-cli apikey-get显示「未设置」→ 错误码ERR_TNKEY_001:去 https://news.qq.com/exchange?scene=appkey 免费申请,再tencent-news-cli apikey-set <KEY>。 - 子命令:
morning/hot/search/evening。CLI 无 Key 完全不出数据;失败则停止,绝不回退 WebSearch 替代(遵守 tencent-news 硬约束)。
mx-ds-mcp 妙想:
- 通过 MCP 工具调用。若当前会话未连接 → 错误码
ERR_MX_001:WorkBuddy 连接器管理页启用「东方财富妙想MCP」;价格数字降级为 tencent-news 检索值并标注"妙想未连、价格仅供参考",复盘节降级为纯文字复盘(不强制数值验证)。
2. 分维度抓取(含降级策略)
降级原则:任一在用数据源失败,不中止整体产出,其余源继续,报告标题加 【部分数据源降级】 并标注缺失源。具体:
- tencent-news 失败 → 按硬约束 1 提示用户(ERR_TNCLI_001/ERR_TNKEY_001)、不用 WebSearch 替代;产出降级为「妙想 + wscn 事件版」并标注缺失源
- wscn 未连 / 返回空 → 妙想 + tencent-news 继续;A股板块异动叙事缺口由 tencent-news search「昨日 涨停 板块 异动」补(不阻断主流程)。wscn 缺失不影响价格基准(基准始终是妙想),缺失时报告标题加
【部分数据源降级·wscn】。⚠️ wscn 是英文/全球事件面的主要承担者 → 自 v1.6.5 取消 tavily 后,wscn 稳定性即本 skill 的真实瓶颈:若 wscn 与 tencent 同时缺口,事件面仅剩妙想机构研报,须在报告显式标注这一覆盖缺口 - 新华财经 XHCJ 未连 / 返回空 / 401 → 妙想 + tencent-news + wscn 继续;政策面由 tencent-news search「政策/新规」补、公告监控由现有源补(不阻断主流程)。XHCJ 缺失不影响价格基准(基准始终是妙想),缺失时报告标题加
【部分数据源降级·XHCJ】。⚠️ XHCJ 是国内政策结构化检索与公告事件化监控的唯一权威源 → 自 v1.7.11 接入后,若 XHCJ 与 tencent-news 同时缺口,政策面仅剩泛新闻检索,须在报告显式标注「政策面覆盖缺口·缺 XHCJ」 - 妙想未连 → tencent-news + wscn 出"事件版",价格标"待妙想复核"(wscn 可作中文事件面补充,但仍不提供价格基准)
- L2/L3/L5 校核与结构层失败 → 不阻断、不加标题
【部分数据源降级】(它们不是必需源),但须在报告「数据源状态」行标注「校核层缺失(ifind/tongzhou 未取到)」;同时该期关键价格断言只写妙想单源值、不得写「已独立校核」括注(禁止在校核未做时冒充已做)。ifind/同舟的定位是校核与补强,永不取代妙想的基准地位。 - tavily 英文源已永久删除(v1.7.0):流程中不存在该源,任何分支不得再调用或标注它
网络重试:每个外部 API 调用(tencent-news / wscn / 妙想)加 3 次指数退避重试(1s→2s→4s),仍失败才报对应错误码并走降级。
抓取维度:
| 维度 | 示例查询 | 对A股映射 |
|------|---------|----------|
| 美联储/美债/美元 | Federal Reserve decision treasury yield dollar index today | 流动性总闸:宽松利好/收紧压制 |
| 美股隔夜 | US stock market Nasdaq S&P 500 overnight close futures | 风险偏好锚 + 科技股映射 |
| 大宗商品 | gold oil crude copper price today commodity | 黄金/油气/工业金属链 |
| 中东地缘 | Middle East conflict oil supply latest news | 能源溢价 + 军工/黄金 |
| 俄乌局势 | Russia Ukraine war latest energy grain export | 能源/粮食/化肥链 |
| 亚太(日韩) | Japan Nikkei Korea KOSPI stock market today | 亚太情绪 + 出口链 |
时间窗口:只取「昨日 A股收盘后 → 今早 08:45」区间事件。检索结果须核对发布时间,剔除旧日期旧文。
2.5 日韩股市开盘模块(每个开盘日 8:45,随主早参一并运行)
目的:在 A股 开盘前随主早参一并给出日韩股市的开盘后早盘速览(日韩当地 9:00 = 北京 8:00 已开盘,8:45 已交易 45 分钟,为真实数据)。不再单独 8:30 运行,避免与主线重复抓取。
数据源(v1.7.0 起 · 媒体检索制):雅虎/Stooq 实时脚本 fetch_japan_korea.py 已永久删除(连续 8 期受限网络 403、从未成功产出,用户拍板)。日韩四指数一律通过 tencent-news search(「日经 225 / 东证 TOPIX / 韩国 KOSPI / 韩国 KOSDAQ 今日」)+ wscn 全球资讯 取公开媒体数值,逐条标注来源与数据时间,并注明「数值来自新闻媒体,非程序化实时,仅供参考」,禁止留空。妙想(不覆盖 TOPIX/KOSDAQ 且只返 T-1 收盘)、ifind(日频+前值填充)、westock(日韩 403)三者均不得冒充日韩当日实时。
覆盖标的:
| 指数 | 代码 | 对A股映射 | |------|------|----------| | 日经225 | N225 / NKY | 亚太风险情绪 + 日本出口链竞争 | | 东证指数 | TOPIX | 日本 broad 市场情绪 | | 韩国KOSPI | KS11 | 半导体周期先行(三星/SK海力士映射) | | 韩国KOSDAQ | KQ11 | 韩国成长/科技风险偏好 |
字段要求(每条指数):开盘后早盘实时点位 + 较上一交易日收盘涨跌幅(%)+ 开盘方向(高/平/低开)与振幅 + 与再前一交易日方向对比(连涨/连跌/反转)+ 对A股映射结论。
产出:直接并入主早参「五、日韩股市」节,不单独产文件。主早参「二、负面影响/三、正面影响」亚太维度引用本模块结论,避免重复抓取。
3. 影响分类与映射
对每条事件,按以下框架落表,并在末尾标注可验证断言(供次日复盘):
- 影响方向:正面 / 负面 / 中性
- 影响维度:流动性 / 风险偏好 / 成本通胀 / 地缘溢价 / 产业映射
- 关联板块:贵金属、油气开采、半导体、军工、稀土战略金属、航空(成本端)、外资重仓白马 等
- 关联标的(必含代码):每条影响的「关联标的」须落到具体股票代码(如 北方稀土 600111 / 中国稀土 000831 / 盛和资源 600392、山东黄金 600547),供「二、开盘关注清单」汇总成速查表。
- 置信度:高/中/低
- 🔮 可验证断言(次日复盘用):把"对价格/事件的明确判断"抽成一句可验证的话,如"COMEX黄金今明两日将测试 4700 美元阻力""布伦特原油受中东升级影响维持 90 美元上方""10Y美债收益率在杰克逊霍尔前维持 4.7% 上方"。每条标注验证方式(妙想查实际值)与验证截止日(通常为次日早参)。
4. 判断纪律(v1.4.0 起强制 · 源自 2026-09-16 实盘验证)
定位:本节 = 「七、采集流程」第 4 小节,全文引用统一记作 §7.4。(报告输出侧的「七、可验证断言清单」是另一处编号,勿混。)
背景:2026-09-16 当日盘后即时验证显示,早参「关注组」组均 +1.45%、「承压组」组均 +1.35%——承压组反而跑赢沪深300 约 +0.67pct,两组仅差 0.10pct,预测区分度为零。 根因不是数据错,而是分类纪律缺失。以下五条为硬规则,写入即生效;违反任一条视为当期报告不合格。
① 事件前夜双情景规则(最优先) 凡「重大事件公布前的最后一个 A股 交易日」(FOMC 议息、CPI/PCE/非农/央行决议等),总评必须并列给出两个对等情景,不得只给单向:
- 情景 A|避险承压延续:事件未落地,久期资产(外资白马/高估值成长/券商)继续被压制;
- 情景 B|利空出尽抢跑:当市场定价已充分(隐含概率 ≥90% 即视为充分定价),资金提前空头回补,高弹性方向(半导体/光模块/AI硬件)与超跌资产领涨。
执行要求:① 「二、开盘关注清单」须为两条情景各列一组方向;② 概率 ≥90% 时,情景 B 权重不低于情景 A;③ 禁止把承压写成主判断、把修复写成一句备注。
反例(2026-09-16):早参主判断为「低开震荡、结构分化、油气/军工占优、成长承压」,实际为全面反攻日(上证 +0.71%、科创50 +4.14%、4170 家上涨)。判反的黄金矿端 +3.43%、电池链 +5.05%,正是情景 B 的受益方向。
② 供应链份额转移必须拆「两栏」,禁止整链同向 凡事件涉及「客户多元化 / 新增第二供应商 / 份额被分流 / 被替代 / 反制替代」,落表须拆为:
- 流失方 → 承压(单供估值溢价压缩)
- 承接方 → 受益(订单与产能增量)
两栏都必须落到具体代码。若所引证据本身指向反向结论,不得仍按原方向定级——须回头重判。
反例(2026-09-16):早参把「去宁化」整条链(含承接方 欣旺达 300207 / 国轩高科 002074)统一归入承压,而自身引用的证据「理想拟向欣旺达动力增资 26.5 亿」恰恰是承接方利好。当日 欣旺达 +11.67%(全清单最强)、宁德时代 −3.44%,方向完全相反。
③ 贵金属 / 大宗必须「双路径」并列 每条黄金、白银、原油判断须同时列出两条路径:
- 路径 ① 实际利率路径:利率↑ → 无息资产持有成本↑ → 压制;
- 路径 ② 持仓·情绪回补路径:利空充分定价 + 油价见顶回落 + 空头拥挤 → 空头回补反弹。
两路径方向冲突时,评级降为「中性·双向」并显式标注冲突,禁止强行给单向承压/看好。可与 §二「黄金口径分歧」条配套使用(口径 + 路径都要双取)。
反例(2026-09-16):早参只取路径 ①,判「黄金矿端短线跟跌」;当日伦敦金现 +0.96% 重回 4335、贵金属板块 +3.51%(行业第 4)、三只黄金股全红(赤峰 +4.36%)。
④ 破位/突破类断言只作「临界观察」,不得作为评级依据
凡「X 是否上破 / 跌破 Y」形式的阈值断言,一律标注 【临界观察·不押注】,其结论只进入「四、中性/待观察」节;不得写入「二、负面影响」或「三、正面影响」作为分级依据,也不得据此调整任何个股方向。
实测:DXY 破 100、KOSPI 破 6600、伦敦金破 4250 —— 2026-09 连续四期全部未兑现(9/16 实际:DXY 99.65、KOSPI 6717.97 反涨 +1.37%、金现 4335.07 反涨 +0.96%)。该类断言的历史命中率显著低于其他类型,只可用于「提醒关注临界位」,不可用于定级。
⑤ 数值引用必须带「来源 + 时间戳」
任何点位/价格写入报告时,格式为 数值(来源·日期),禁止裸写数字。尤其国内期货点位(原油主连、沪金、沪银)必须标合约与日期,且不得沿用前日引述值。
实测勘误(2026-09-16):早参写「国内原油期货维持 900 元/桶上方」,实际原油主连收 827.0 元/桶(偏差 −8.1%)。该错误被同时用作「油气受益」与「航空承压」两条逻辑的成本锚,影响量化判断。
八、次日复盘迭代(核心自闭环)
这是本 skill 区别于普通早参的关键能力。
每次生成当日早参时,若 E:/workfwb/ 下存在前一日的 财经早参_<前日>.md,则:
-
读取前日断言清单:解析前日报告「🔮 可验证断言」段落,提取每条断言文本 + 验证方式 + 验证截止日。
- 脚本:
scripts/review_previous.py --prev-date <前日> --workdir E:/workfwb。 - ⚠️ 2026-09-17 修复(v1.4.1):该脚本 v1 曾硬编码章节号「六、可验证断言清单」,而报告实际用「七、」→ 永远匹配不到,退化到全文抓 🔮 又把「二/三节影响表」的
| 🔮 断言 |列误当断言(产出 3 条垃圾 + 漏掉真断言)。 现改为:① 章节序号用[〇一二三四五六七八九十\d]+通配;② 只认标题含「可验证断言」的节,取到下一同级/更高级标题为止;③ 表格行(以|开头)一律排除;④ 遇水平分割线---即停止(其后是斜体脚注);⑤ 只取「标记后跟空白」的列表项。找不到该节时返回 None 并告警,不再全文兜底(禁止静默产出错误断言表)。 已用 9/16(旧格式)与 9/17(新格式)双份报告回归验证,均正确解析 7 条。 - ⚠️ 2026-09-19 再修复(v1.5.3):v1.4.1 的「
search第一个含「可验证断言」的标题」会在报告含复盘子节### 0.2 …7 条可验证断言结算时误锚该子节(它含同子串且位于文首),导致 9/18 早参解析 0 条、次日复盘断言全空。现改为按优先级锚定独立「清单」节:level==2 且标题含「清单」>含「清单」>level==2>最后一个出现,并按行扫描到下一个同级/更高标题为止(替代跨行正则截断,避免把脚注当断言)。已用 9/18(8 条)/ 9/17(7 条)双份回归验证通过。防复发:复盘节内的「断言结算」子节标题请勿再写「可验证断言结算」字样(即便解析器已能规避,命名上也避免该子串,降低误锚风险)。
- 脚本:
-
对照实际行情验证:用 mx-ds-mcp 查前日断言涉及的实际价格/事件(如"黄金是否摸到4700"),得到实际值。
- v1.6.6 新增 · 断言结算须独立校核:判定「美债守/破 X%」「某指数涨跌幅」「金/油/铜点位」这类阈值型断言时,除妙想外必须用 L2 ifind(显式代码)或 L3 同舟(宏观
indicator_id)再取一次同口径值。两侧偏差在阈值内(美债 ≤5bp / 指数 ≤0.3% / 商品 ≤0.5%)→ 判定照写,复盘表加「校核一致」;超阈值 → 该条须并列两值、注明「口径分歧」并降为 ⏳ 待验证(不参与权重升降)。实测锚点:9/21 10Y 美债 妙想 4.96% ↔ 同舟(美联储源)4.9750%,两源均 <5.0 → 「守 5.0」判 ❌ 成立、结论一致。 - 若妙想未连(ERR_MX_001)→ 降级为文字复盘:仅回顾前日判断逻辑,标注"数值未验证",不强制造假。(v1.6.6 起:此时可用 L2/L3 作「参考值」并显式标注来源与口径,但不得升格为使断言结算的基准。)
- v1.6.6 新增 · 断言结算须独立校核:判定「美债守/破 X%」「某指数涨跌幅」「金/油/铜点位」这类阈值型断言时,除妙想外必须用 L2 ifind(显式代码)或 L3 同舟(宏观
-
判定结果:每条断言标 ✅兑现 / ❌未兑现 / ⏳待验证(未到验证时点)。
-
迭代权重:某维度连续 3 日 ✅ → 提升优先级与置信度;连续 3 日 ❌ → 下调权重并加"历史命中偏低,谨慎参考"。
- 破位/突破类断言独立计权:该类连续 3 期 ❌ 时永久降级为「临界观察」(见 §七·4),只保留提醒功能,不再参与维度权重升降,也不作为下期分级依据。
-
写入复盘节:当日报告末尾「## 附录、过程留痕」节,列出前日断言验证表 + 当日迭代调整说明。
-
【v1.4.0 新增】当日盘后即时验证(可选触发):与「次日复盘」互补——次日复盘只验断言,且部分海外断言(FOMC/美债/金银)在次日早参时点仍未结算;当日盘后验证用完整收盘数据同时结算断言 + 六节方向清单的全部个股,能在当天就暴露「方向清单是否失效」。
触发词:早参预判验证、预判兑现、早参准不准、当日盘后验证。
流程:
- 读当日
E:/workfwb/财经早参_<今日>.md,提取 ① 七节断言清单、② 六节「具体个股速查表」(全部方向组 + 全部代码)。 - 批量取数:个股与指数用 westock(
bash tools/wsk.sh kline "<代码,逗号分隔>" --period day --end <今日> --limit 3),只取 T-1 与 T 两个收盘价算涨跌幅;日韩用公开媒体收盘(妙想只给 T-1);欧美未收盘的标的标⏳ 待验证,不得用盘中价冒充收盘。 - 逐组统计:组均涨跌、红盘率、方向一致率(承压组看绿盘率,关注组看红盘率)。
- 输出判据(核心):
- 区分度 = 关注组组均 − 承压组组均;若
< 1pct,判定「本期分类失效」; - 承压组是否跑赢基准指数;若跑赢,判定「承压方向系统性判反」;
- 【v1.6.0 新增】退潮/分歧日判定 = 「承压组跑赢基准」且「关注组组均 ≤ 0」;命中即
ebb_day=true(附ebb_evidence依据)写入账本,次日早参据此触发硬规则B(关注组加「⚠️ 高位补跌风险」提示、不单列做多方向,单期生效)。口径详见 §七·1.5 ①-b。 三项命中任一,须在验证报告「核心结论」节直接写明,并逐组归因到 §七 五条纪律中的哪一条被违反。
- 区分度 = 关注组组均 − 承压组组均;若
- 断言结算:已到验证时点的标 ✅/❌,未到的标
⏳ 待验证并注明结算时点。 - 产出
E:/workfwb/财经早参_预判验证_<YYYY-MM-DD>.html(沿用早参视觉:纯 CSS 自包含、淡蓝 + 红涨绿跌、不使用需联网的图表库),聊天给「一句话结论 + 判反组根因 + 退潮判定(硬规则B 触发器)+ 待拍板迭代建议(仅连续失效期展示,v1.6.0 起)」。
闭环产物(v1.4.2 起自动,无需额外触发):
daily_verify.py跑完即写共享账本E:/workfwb/zaocan_verify_ledger.json(字段含ebb_day/ebb_evidence,速查见 §七·1.5)并产verify_section_for_review.html供复盘报告注入「📮 早参预判复核」节。脚本:
scripts/daily_verify.py(读取早参 MD 的速查表 → 批量取 K 线 → 输出分组统计表;HTML 由主流程按模板生成)。工程自检(交付前必跑,缺一不可):① 无
__TOKEN__/{rows_*}未替换残留;② HTML 花括号count("{")==count("}");③ 条形图方向须用像素扫描确认(不可在缩放截图上目测坐标,极易误判);④ Chrome headless 截图目视复核。 - 读当日
验证口径统一:当日盘后验证与次日复盘共用同一套判定标准(红涨跌绿、涨跌幅 = T 收盘 ÷ T-1 收盘 − 1、基准取沪深300),确保两套结果可横向比较。
复盘迭代的目的不是"证明自己对",而是累积命中率、淘汰噪声源、提升 signal-to-noise,让早参越跑越准。
⚠️ 复盘有效性边界(前视偏差 · 实测教训 2026-09-10):上述「命中率提升」仅在实盘逐日运行时才是有效信号。若为补跑历史日期(如休假后一次性回填 8/31→9/10 多日),区间价格数据往往一次性拉齐,写每日断言时已可见被复盘日的真实结果,导致:
- 命中率曲线(如 50%→100%)不能证明预测能力提高——因断言在「已知答案」下更易写成「安全」的趋势延续型,且题目随趋势确立而变简单;
- 真正可复用的是失败模式收敛(如半导体单日方向≈噪声、拐点处惯性外推失效),而非命中率绝对值;
- 补跑过程还可能引入转录错误(如实测 9/3 报告 DXY 数值误写),命中率样本本身不干净。 验证预测是否真提高,只能看实盘:断言在 08:45 锁定(只用前一收盘数据)、次日复盘、重点观察特定 ❌ 类型是否减少。补跑仅作一致性/校准练习,不得据其宣称「预测变准」。
九、输出格式
产出 Markdown 财经早参_<YYYY-MM-DD>.md 与同名 HTML 财经早参_<YYYY-MM-DD>.html,均存 E:/workfwb/。
HTML 版含作战条头部、复盘断言卡、风险水位横幅、分维度影响卡、日韩指数条、开盘关注清单、可验证断言 chips;配色遵循 A股涨红跌绿,且全篇统一 红=涨·向好·机会·断言兑现,绿=跌(仅价格方向),琥珀=警示·风险·待验证(即负面影响卡用琥珀边、正面影响卡用红边,避免"红"被误读为风险)。聊天中给出摘要 + 文件路径。
HTML 视觉模板(v1.3.0 起统一视觉)
自 v1.3.0 起,HTML 不再每次现场即兴写 CSS,而是统一套用专用模板壳,保证每期风格一致、有辨识度。v1.3.1 起视觉升级为「淡蓝财经」风格(淡蓝底 + 蓝品牌色 + 红=涨/向好主调)。
- 模板文件:
scripts/template.html(淡蓝财经风格,自包含内联 CSS,离线打开即用,涨红跌绿;红=涨·向好,绿=跌,琥珀=警示·风险,蓝=品牌/中性)。 - 生成方式(v1.6.2 起唯一推荐路径 · 常驻渲染器):
默认输出 = 与 MD 同名同目录、仅扩展名换# 通用写法(skill 目录以 <SKILL_DIR> 表示,agent 运行时自行替换为实际路径) python "<SKILL_DIR>/scripts/md2html.py" --md "E:/workfwb/财经早参_<YYYY-MM-DD>.md".html(符合硬约束「MD + 同名 HTML 双版本」)。--out/--title可选覆盖。 脚本自动完成:套用template.html的<style>(另注入表格/引用/列表补充 CSS)→ 按##切分成.sec卡片 → 表格包.tw横向滚动 → 带符号百分数自动涨红跌绿(无符号点位不强行着色,避免误标)→ 跑工程自检(占位残留 / 外链 /<script>/ 花括号平衡 /%s残留 / 残留注释 / 主容器可见正文长度 / 标签被注释吞没),自检不过返回退出码 3 并告警,不静默交付。 - ⚠️ 模板注释陷阱(2026-09-22 实发故障 · 必修条款):
template.html内含大量「给 Agent 看的」说明注释。历史上其中一条写着主容器标签的字面量,于是任何用index()/find()定位主容器的渲染脚本都会命中注释内部那个伪标签 → 切点落在注释中间 → 注释头被保留且永不闭合 → 整篇正文被 HTML 注释吞没,浏览器打开只剩空白页(2026-08-24~27、2026-09-22 两度实发)。已双线根治:①template.html的注释中禁止出现主容器标签字面量(一律改写成「主容器(属性 id 的值是 report-body)」这类无尖括号描述);②md2html.py定位前先剥离模板注释,并断言剥离后主容器唯一、否则拒绝产出。 - ⚠️ 自检铁律:必须验「可见性」,不能只数标签。只统计
<table>/class="sec"的出现次数会被「注释吞没」100% 骗过(标签一个不少,只是全在注释里)。故自检强制三条:产物零 HTML 注释 + 主容器内可见正文 ≥2000 字符 + 去注释前后标签计数一致。历史产物可用scripts/audit_html.py批量体检(跨世代模板通用:按「去注释去 style/script 后的可见文本量」判定,不依赖特定容器 id)。 - ⛔ 禁止:再新建按日期命名的生成脚本(
_gen_zaocan_<日期>.py、_md2html_zaocan.py等)。口径变更只改md2html.py一处,避免「改口径要同步 N 个脚本」的历史缺陷(2026-09-21 首次踩到、9/22 固化)。 - ⛔ 排版硬禁令 ·
.list li禁用display:flex(2026-10-14 实发故障 · 不得回改):template.html的.list li一旦成为 flex 容器,其内部每个<b>/<code>/ 每一段独立文本都会被当作独立 flex 子项排成一行;在窄屏或 IDE 预览面板(用户实际阅读场景实测约 760px 宽)下每项各占一列并逐字竖排,整段可读性归零(2026-10-14 期 §7.6 与 §三 3.3 两处中招,用户截图报障)。正确写法:position:relative+ 绝对定位的::before承载▸标记,正文保持默认 inline flow;有序清单.list.ol复用同一标记槽位、改用counter(item)编号,禁止叠加▸。推广判据:凡「卡片内是富文本」的容器一律不得用 flex —— flex 只用于「子项数量固定且各自独立」的行/网格。 - 折叠块 ·
:::fold围栏(v1.7.13 新增 · 压篇幅用):MD 内写:::fold <折叠条标题>独占一行 → 正文原样跟随 → 再写:::独占一行收尾,即渲染为<details class="fold">卡片(默认收起、点击展开;@media print强制展开,纸面信息不丢)。用途=把底层逻辑 / 方法论 / 自检索引类长文案收起以压缩首屏篇幅(2026-10-14 期 4 块共收起 18,903 字符,首屏可见量 35,866 → 16,963 字符,−52.7%)。铁律:① 内容一字不删 —— 禁止以折叠变相删正文;② 重要结论禁止折叠(§一 结论 / §二 关注清单 / §三 负面 / §四 正面必须默认可见;§附录 过程留痕默认折叠);③ 推荐折叠对象=0.3 维度权重迭代/0.5 数据源状态/0.6 交叉验证/七 可验证断言清单等过程与索引节;④ 围栏必须一一配对 ——md2html.py已新增折叠闸门(配对 + 渲染数一致),不通过即退出码 3;⑤ 折叠不破坏任何解析器(review_previous.py只取\d+./-列表行、check_review_integration.py表格解析遇非竖线行跳过、daily_verify.parse_watchlist按标题定位「开盘关注清单」节)—— 2026-10-14 实测 4 处折叠后 C1–C7 全 OK。 - 可用 CSS 类(详见模板文件末尾注释速查):
.head/.title/.pill.neu|.up|.dn/.src、.sec/.no/.bar、.assert-grid/.badge.ok|.no|.wait、.banner、.cards/.card.neg|.pos/.meta/.trans、.idx-strip/.idx/.chg.up|.dn|.flat、.list li、.chips/.chip .star。 - 配色语义(务必遵守):
.chg.up=红(涨) /.chg.dn=绿(跌);.card.pos=红边(向好) /.card.neg=琥珀边(风险);.badge.ok=红(兑现) /.badge.no=灰(未兑现) /.badge.wait=金(待验证);.pill.up=红(risk-on) /.pill.dn=绿(risk-off) /.pill.neu=蓝(中性偏谨慎)。 - 禁止:外链字体/图片;改动已定义配色变量;把负面事件写成红色或正面事件写成绿色(红在全篇统一代表涨/向好,负面风险统一用琥珀色区分)。
- 若用户偏好其他风格(暗色作战室 / 浅色终端 / 编辑杂志风等),可更换
scripts/template.html整体视觉,结构 class 保持兼容即可。
文件结构模板
# 财经早参 | <YYYY-MM-DD> 周X(交易日)
> 采集窗口:昨日 A股收盘(15:00)→ 今早 08:45
> 数据来源:**L1 妙想 mx-ds-mcp(唯一价格基准)** + **L2 ifind-mcp / L3 同舟投研(独立校核)** + **L4 tencent-news(中文主源)+ 华尔街见闻 wscn(中文财经第二源)+ 新华财经 XHCJ(政策/公告权威源·可选源)** + L5 westock-mcp(A股结构)
> 校核规则:关键价格断言须经 L2/L3 独立校核(美债 ≤5bp / 指数 ≤0.3% / 商品 ≤0.5% 视为一致;超阈值并列两值并降「【临界观察·不押注】」)
> **状态表只列本期实际取数的源**;已永久删除的源(tavily 英文源、日韩实时脚本)不重复出现在报告正文(v1.7.10)
> 日韩股市模块:随主早参 8:45 一并运行,结论写入本报告的「五、日韩股市」节
## 一、结论与操作定调(含三档情景)
(一句话定调:risk-on / 中性 / risk-off + 三档情景阈值表 + 风险双档 + 操作定调。**必须默认可见,禁止折叠**)
## 二、今日开盘关注清单(主题 + 具体个股)
(3-5 条主题主线;下方必须附「📌 具体个股速查表」。**该表是盘后 `scripts/daily_verify.py` 的解析契约源,必须严格满足以下格式,否则「早参→复盘」闭环断裂**:
① 表必须位于**标题含「开盘关注清单」的节之内**——解析器按该标题定位节、读到下一个 `## ` 二级标题为止(v1.8.0 起不再依赖固定「六、」编号);**禁止**挪到节外,或改名去掉「开盘关注清单」字样(2026-09-24 误置「六(补)」、10-15 期速查表用「组 / 标的」三列且方向列无 🟢🔴,两种情形均致解析为空、账本断更);
② 列固定四列:**`| 方向 | 主题 | 标的(代码) | 逻辑锚点 |`**,第一列「方向」须含 `🟢`(承压·预期跌)或 `🔴`(关注·预期涨),也可写「承压 / 关注」文字;第三列「标的(代码)」须为「名称 6位代码」对(如 `超声电子 000823`),多只以 `、` 分隔;
③ 表头行(含「代码 / 标的」字样的行)自动跳过,勿把表头写成数据行;
④ 承压=绿、关注=红,沿用涨红跌绿;双创照常纳入、单票仓位减半提示,不构成剔除理由。)
## 三、负面影响(需警惕)
| 事件 | 维度 | 关联板块/标的 | 传导逻辑 | 置信度 | 🔮断言 |
## 四、正面影响(可关注)
| 事件 | 维度 | 关联板块/标的 | 传导逻辑 | 置信度 | 🔮断言 |
## 五、中性/待观察
| 事件 | 备注 |
## 六、日韩股市(08:45 随主早参一并运行)
(日经/东证/KOSPI/KOSDAQ 对比上一交易日 + 对A股映射)
## 七、可验证断言清单(供明日复盘)
(**硬上限:核心断言 ≤12 条 + 临界观察 ≤6 条**;断言行一律编号列表、**禁止写成表格**——`review_previous.py` 排除表格行,写成表格会让次日结算解析为 0 条。)
### 7.1 核心断言(≤12 条 · 可证伪的方向判断:分组代表 + 指数/广度)
### 7.2 临界观察(≤6 条 · 关口突破类 · 标 `【临界观察·不押注】` · 只观察不押注)
## 附录、过程留痕(默认折叠)
(0.1 账本读取 + 0.2 前日断言验证表 + 0.3 维度权重迭代 + **0.4 📎 昨日复盘对照(格式见 §1.6)** + **0.4b 复盘实质结论反馈表(v1.7.6 强制 · 五列含「若背离·理由」,见 §1.6.1)** + 0.5 数据源状态 + 0.6 交叉验证;**全部用 `:::fold` 收起**,不占首屏)
---
*本早参为信息梳理,不构成投资建议。盘后请结合「野渡高级复盘」技术面信号综合决策。*
▶ 盘后验证产物(手动触发,v1.4.0 起):财经早参_预判验证_<YYYY-MM-DD>.html
用当日完整收盘数据结算「七节断言 + 二节方向清单的全部个股」,输出分组命中表、「区分度」与「承压组是否跑赢基准」两项判据,并把判反组归因到 §七·4 纪律条目。脚本:scripts/daily_verify.py。
⚠️ 2026-09-18 修复(v1.4.4):
gen_review_section()的「数据源」行原写作... 取 %s 实际收盘涨跌 ...但该操作数只做字符串拼接、未套% rep["date"](%优先级高于+,仅作用于紧邻字面量),导致注入复盘报告的%s原样残留。9/17 首次实跑即命中(全景复盘_20260917.html已就地修正)。教训:HTML 片段的每一段参与拼接的字符串若含%s,必须显式挂载格式化运算符,不可依赖链式+的隐式传递。片段自检正则须包含%s残留检测(见 §七·5 五连自检)。
十、安装配置(首次使用必看)
已配置好数据源的用户可跳过本节。首次使用请按
scripts/setup_check.ps1自检 → 按提示修复。
① tencent-news CLI(中文源,必装)
- 一键安装:
powershell -ExecutionPolicy Bypass -File scripts/install_tn_cli.ps1 - 手动:curl 直下
https://mat1.gtimg.com/qqcdn/qqnews/cli/hub/windows-amd64/tencent-news-cli.exe到$HOME/.tencent-news-cli/bin/ - 申请 Key:https://news.qq.com/exchange?scene=appkey →
tencent-news-cli apikey-set <KEY>
② 妙想 mx-ds-mcp(价格基准,强烈推荐)
- WorkBuddy 连接器管理页启用「东方财富妙想MCP」(登录送 300 积分)
③ 一键配置(推荐)
scripts/set_keys.ps1 -TencentNewsKey "xxx" 可写入 tencent-news Key 并自检。
④ L2/L3/L5 增强与校核源(v1.6.6 新增)
- L2 ifind-mcp(同花顺 iFinD)→ 连接器管理页启用「同花顺 iFinD」;✅ 本期实测已挂载可用。
- L3 tongzhou-fin-research(同舟投研)→ 连接器管理页启用「同舟投研」;✅ 本期实测已挂载可用。
- L5 westock-mcp → 连接器管理页启用「Westock」;✅ A股可用,⚠️ 日韩搜索 403。
- 三者均非必需:未挂载时早参照跑(走 L1 妙想 + L4 中文事件面),仅在报告「数据源状态」行标注「校核层缺失」。
- 每次自动化开跑前先确认三者是否已挂载(与 wscn 同级的稳定性检查)——未挂载不等于失败,但该期必须去掉「已独立校核」括注(见 §2 降级原则)。
十一、常见问题 FAQ
v1.7.0 编号说明:原 Q3 / Q5 / Q8 / Q10 / Q13(tavily 与雅虎/Stooq 相关)已随对应数据源永久删除而移除,编号保留空缺以免历史引用错位;其余编号不变。
Q1:提示 ERR_TNCLI_001(tencent-news CLI 未找到)怎么办?
→ 运行 scripts/install_tn_cli.ps1 自动安装;或按第十节手动 curl 下载二进制。CLI 本质是 Go 程序,装好即可用。
Q2:提示 ERR_TNKEY_001(缺 tencent-news API Key)?
→ 去 https://news.qq.com/exchange?scene=appkey 免费申请,然后 tencent-news-cli apikey-set <KEY>。无 Key 完全不出数据。
Q4:提示 ERR_MX_001(妙想未连接)?报告还能出吗?
→ 能出。价格数字降级为新闻源估算并标注"妙想未连、价格仅供参考",复盘节降级为纯文字复盘。去连接器管理页启用「东方财富妙想MCP」即可恢复权威定价。
Q6:非交易日为什么没跑? → 自动化第一项就是交易日检查,周末/法定节假日/调休休市会自动停止,不产出文件。手动触发时也会先拦截并告知。
Q7:日韩模块现在还单独运行吗?
→ 不再单独运行。自 v1.3.0 起,日韩股市开盘模块已合并进每日 8:45 的财经早参主流程,作为报告「五、日韩股市」节一并产出,不再生成独立的 日韩盘前_<日期>.md 文件。8:45 取到的是日韩已交易 45 分钟的真实数据。数据源自 v1.7.0 起为公开媒体检索(tencent-news / wscn,逐条标注来源与数据时间)——原雅虎/Stooq 实时脚本因连续 8 期受限网络 403 已永久删除。
Q9:日韩数据从哪来?取不到怎么办?
→ 自 v1.7.0 起一律取公开媒体:tencent-news search「日经225 / 东证TOPIX / 韩国KOSPI / 韩国KOSDAQ 今日」+ wscn 全球资讯,逐条标注来源与数据时间,并注明「媒体数值、非程序化实时、仅供参考」,禁止留空。
→ 禁用源清单:妙想(不覆盖 TOPIX/KOSDAQ 且只返 T-1 收盘)、ifind(日频 + 前值填充,实测 9/18–9/22 日经均返 65018.95)、westock(jpkr_market HTTP 403)——三者均不得冒充日韩当日实时。原雅虎/Stooq 脚本(fetch_japan_korea.py)因连续 8 期受限网络 403 已于 v1.7.0 永久删除。
Q11:早参 HTML 怎么生成?还要不要现写生成脚本?
→ 不要再现写脚本(v1.6.2 起)。MD 定稿后用常驻渲染器一条命令产出:
python scripts/md2html.py --md "E:/workfwb/财经早参_<日期>.md"(默认同名 .html)。
脚本自带工程自检(占位残留 / 外链 / <script> / 花括号平衡 / %s 残留 / 残留注释 / 主容器可见正文长度 / 标签被注释吞没),退出码 3 = 自检未过,须修正 MD 或 CSS 后重跑,不得手工绕过。
需要改视觉只改 scripts/template.html(CSS)或 md2html.py(EXTRA_CSS / 着色规则)一处。
⚠️ 禁止在 template.html 的注释里书写主容器标签的字面量(2026-09-22 空白页故障根因)。
Q11b:怎么确认当期早参真的「结合了前一交易日的野渡高级复盘」?(v1.7.6 新增) → 出报告前跑闸门校验(硬约束 21 配套,退出码 1 = 未过,不得交付):
python scripts/check_review_integration.py --date <早参日期>
七项检查:C1 §0.4 节存在 / C2 无「未解析到」占位 / C3 P0 已解析 / C4 §0.4b 节存在 / C5 §0.4b 表 ≥4 行(§三/§五/§八/§十一)/ C6 含「若背离」列或等效说明 / C7 全文「复盘」≥8 次(防只贴不改)。
⚠️ C3 格式硬要求(2026-09-30 首次踩坑后固化):C3 用行式正则
^\s*>?\s*[-*]?\s*\*\*P0[*]{0,2}\s*[::]\s*(.+)$匹配,因而 §0.4 必须在对照表之前另起一行写「P0:<方向名>」,形如:**P0**:元件 / 覆铜板 · AI 硬件材料链(回补)+ 房地产 / 房地产服务 · 政策链启动仅在对照表内用
| **P0** | … |加粗档位列 不被识别,会报[FAIL] C3 未找到有效的 P0 行。同理 P1 亦建议补行式一行(非硬性)。「表格 + 行式」两者并存,不是二选一。 注意:本闸门只验形式合规(写了没有、表全不全),内容质量仍需人工判断——§0.4b 的「若背离·理由」是否真的说清楚了取舍,机器判不了。fetch_review_focus.py改动后另须跑三期回归(9/18 + 9/24 + 9/28,见 §1.6 已知坑 2)。
Q12:HTML 打开是空白页 / 无内容,怎么排查?
→ 先跑批量体检器定位(跨世代通用,不依赖容器 id):
python scripts/audit_html.py(默认扫 E:/workfwb/财经早参_*.html,退出码 1 = 有严重可疑)。
两大典型病因:
- 正文被 HTML 注释吞没(铁证:
<!--与-->计数不相等;文件尾部停在注释里)——即 2026-09-22 故障,见 v1.6.4 迭代记录。修复:确认md2html.py已在定位前剥离模板注释,且模板注释内无主容器标签字面量。 - 正文丢失/占位未替换(可见文本极短但注释配对正常)——重新跑
md2html.py渲染。 判据铁律:只统计<table>/class="sec"出现次数无法发现病因 1(标签全在注释里、计数照样对),必须用「去注释后的可见文本量」。
Q14:用 PowerShell 校验 scripts/*.ps1 语法时,冒出一堆「字符串缺少终止符」「不允许使用与号(&)」「缺少右 }」?
→ 多半是编码假报错,不是真错。 [Parser]::ParseFile($path,…) 以系统默认代码页(本机为 GBK)读取文件,而脚本是 UTF-8 无 BOM → 中文注释/字面量被误读成乱码,连带触发大量伪语法错误。
→ 判定铁证(两条同时出现即可定案):① 连本次未改动过的脚本也报错;② 错误信息里含乱码(如 鏈畨瑁咃 / 浠呭惎鐢ㄦ椂鎵嶉渶瑕侊級)。
→ 正确姿势:显式按 UTF-8 读入内容再解析 ——
$src = Get-Content -Raw -Encoding UTF8 $f; [void][System.Management.Automation.Language.Parser]::ParseInput($src, $f, [ref]$null, [ref]$errs)
(2026-09-22 实测:同批文件 ParseFile 报 5 / 10 / 1 个错 → ParseInput + UTF8 报 0 / 0 / 0。)
→ 先验编码,再怀疑代码;否则会去"修"根本不存在的语法问题(本次差点如此)。
Q15:ifind-mcp / tongzhou-fin-research / westock-mcp 怎么用?和妙想什么关系?(v1.6.6)
→ 三者自 v1.6.6 起优先级提升至 tavily 与 雅虎/Stooq 之前,但都不取代妙想的基准地位:妙想(L1)仍是唯一价格/数值基准;三者是校核层 / 补强层——L2 ifind 校核指数与期货、L3 同舟结算美债收益率等宏观阈值断言、L5 westock 供 A股 K线(盘后验证脚本 daily_verify.py 的取数通道)。
→ ifind 三条坑:① 必须用显式代码(IXIC.GI / SPX.GI / N225.GI / KS11.GI / TOPIX.T / @GC0Y.CMX)——实测查「纳斯达克」返回 NDAQ.ND 93.54,那是纳斯达克公司个股、不是综合指数;② 禁复合条件(多条件会静默漏召回,须拆多次单条件);③ 日频 + 前值填充(实测 9/18–9/22 日经均返 65018.95,分不清「休市」与「真交易」)→ 不得作日韩当日实时源、不得用于判断日韩是否开市。
→ 同舟:宏观序列优先传 indicator_id(10Y 美债 L015211687、2Y L015211683、美元指数 G002600885);其目录部分滞后(实测 9/22 查:10Y 已更到 9/21,美元指数只到 9/18),取后必核最新 trade_date,滞后 >1 交易日不得用于当日断言结算。
→ westock:A股 K线/指数/板块/总览可用;但 data_search(jpkr_market=jp|kr) 实测 HTTP 403 → 不得用于日韩行情。
→ 都不挂载也能跑:早参照常产出(走 L1 + L4),只在报告「数据源状态」行标「校核层缺失」,并去掉「已独立校核」括注(禁止冒充已校核)。
十二、错误码速查
| 错误码 | 含义 | 修复 |
|--------|------|------|
| ERR_TNCLI_001 | tencent-news CLI 未安装 | scripts/install_tn_cli.ps1 |
| ERR_TNKEY_001 | tencent-news API Key 缺失 | 申请 Key 后 tencent-news-cli apikey-set <KEY> |
| ERR_MX_001 | 妙想 mx-ds-mcp 未连接 | 连接器管理页启用;价格降级、复盘降级文字版 |
| ERR_NET_001 | 外部 API 3 次重试后仍失败 | 检查网络;报告降级产出并标注缺失源 |
硬约束
-
CLI 失败不回退:tencent-news CLI 异常时停止并提示用户(ERR_TNCLI_001/ERR_TNKEY_001),不用 WebSearch 替代(遵守其 skill 规范)。
-
英文源已永久删除(v1.7.0):tavily 已从本 skill 移除,任何流程不得再调用或标注;需英文一手对照时由 agent 内置联网搜索按需兜底(零 Key、不作价格源)。★ 已删除的源一律不列入报告「0.5 数据源状态」表(v1.7.10 新增 · 用户拍板「以后不用每次体现在财经早参中」) —— tavily 英文源、日韩实时脚本(雅虎/Stooq)这类已永久删除、历史已结案的源,其状态行不再逐期重复展示;「0.5 表只反映本期实际参与取数的源」。删除事实仍保留在本SKILL.md §六/ §2.5/本条(供追溯),但不落到报告正文。
-
时间窗口严格:只统计 A股休市期间的事件,不混入盘中信息。
-
不越权:本 skill 只做外围梳理 + 次日复盘,不替代盘后复盘的技术面判断。
-
标注来源:每条事件保留来源媒体/检索出处,便于用户复核。
-
复盘不造假:次日验证必须对照真实行情(妙想),妙想未连则降级文字复盘,绝不编造验证结果。
-
降级不中止:任一数据源失败,其余源继续产出,报告标注
【部分数据源降级】+ 缺失源,绝不因单点失败而空跑或编造。 -
已发布宏观数据必做专项影响拆解:窗口内发布的重磅宏观数据(如美国 PPI / CPI / 非农 / FOMC 纪要)不得只在总评里一句话带过,须单独设「一·补 / X·补」小节,拆解:① 数据实际构成(同比/环比/核心项,以妙想为准);② 对 A股 的传导路径(是否已部分兑现于前期行情);③ 板块分化与个股映射;④ 与后续待发布数据的组合风险。避免「只提数字、不反馈影响」。
-
开盘关注清单必含 🟢/🔴 方向速查表(daily_verify.py 解析契约):六节须附「📌 具体个股速查表」,必须位于「六、」节内(解析器正则捕获
六、→七、区间,节外表格不可见),四列固定方向|主题|标的(代码)|逻辑锚点,第一列须含🟢(承压)/🔴(关注) 或「承压/关注」文字、第三列须为「名称 6位代码」对;禁止改名为「六(补)」或挪出「六、」节,否则盘后复核解析为空、闭环断裂。不允仅有宏观主题罗列。 -
日韩数据必须标注来源与数据时间:自 v1.7.0 起,雅虎/Stooq 实时脚本已永久删除,日韩四指数一律取自公开媒体(tencent-news / wscn)并逐条标注来源与数据时间,禁止留空;禁止用妙想 T-1 收盘、ifind(前值填充)、westock(403)冒充当日实时。
-
判断纪律五条必须逐条自检(v1.4.0):成文前对照 §七·4 五条硬规则逐条核对。任一条被违反——事件前夜只给单向情景、供应链份额转移整链同向、贵金属只列单路径、破位类断言写入二/三节作分级依据、点位裸写无来源——该当期报告视为不合格,须重写对应节后才可产出。
-
承压/关注两分必须可证伪(v1.4.0):「二、负面影响」与「三、正面影响」两侧,每侧须至少给出 2 只带代码的代表标的,确保当日盘后或次日即可验证。禁止只给主题方向而不落代码——不可证伪的分类等于没有分类。
-
盘后验证须归因到纪律条目(v1.4.0):输出「区分度 = 关注组组均 − 承压组组均」与「承压组是否跑赢沪深300」两项判据;判反组须逐条归因到 §七·4 的具体条目(哪条纪律被违反、下期如何避免),禁止只写「判断有误」这类不可执行的结论。
-
预测反馈闭环必须消费账本(v1.4.2 · v1.6.0 扩):8:45 生成时若
E:/workfwb/zaocan_verify_ledger.json存在,必须先读取最近条目,按混合模式规则调整本期口径(硬规则A:consecutive_fail >= 2→ 自动降级「拐点日·不押注」并标注;硬规则B:ebb_day == true→ 关注组单期加「⚠️ 高位补跌风险」提示、不单列做多方向;soft 通道:待拍板项仅consecutive_fail >= 2时以「📋 迭代建议(待确认)」展示、不静默改口径),并在「附录、过程留痕」节展示复核结论(双判据 + 退潮判定 + 归因 + 连续失效计数)。禁止无视反馈、每期从零预测。 -
wscn 价格数字一律弃用(v1.5.2):华尔街见闻(wscn)连接器仅作事件面与板块叙事佐证,其全球资讯 / 资讯正文里夹带的任何点位、价格、涨跌幅数字均不得作为早参断言或速查表基准;价格基准永远只以妙想(mx-ds-mcp)为准,若 wscn 与妙想价格冲突,以妙想为准并标注分歧已解决。另:
get_large_stocks必须传date = 前一交易日,禁止传当日(当日 A股 未开盘)。 -
退潮预警单期生效 + 建议通道须有守卫(v1.6.0):① 硬规则B(
ebb_day命中)只作用于次日一期,再下一日必须按最新账本重新判定,禁止沿用"上期是退潮日"而延续降级(连坐);② soft 通道(「📋 迭代建议(待确认)」)只在consecutive_fail >= 2时写入报告附录,非连续失效期不得展示;③ 禁止在脚本或报告中重新提出已被用户否决的建议(清单见 §七·1.5 ②,首项为"剔除前一日涨幅 ≥5% 标的");④ 退潮日判据口径(suppress_reversed 且 att_avg <= 0)未经用户确认不得擅改。 -
连续失效计数只计实测记录(v1.6.1):
consecutive_fail的计数口径为「仅本脚本实测记录」——source == "backfill"的补录条目、以及缺groups/sup_avg/att_avg的测量失败条目,一律中性跳过(既不计失效,也不打断连续段)。禁止把「测不到」当作「判错了」(会虚增失效期数、使硬规则A 提前一期触发),也禁止当作「判对了」(会错误归零)。判定统一由脚本is_measured()负责,每条新记录显式写入source="measured";历史账本已存档的consecutive_fail属当时的决策快照,不回改(保留审计痕迹),下次运行起按新口径重算。 -
数据源分级与基准校核铁律(v1.6.6):① 妙想永远是唯一价格/数值基准——L2 ifind / L3 同舟 / L5 westock 只作校核与补强,不得升格为基准;② 关键价格断言(美债收益率 / 美元指数 / 金油铜 / 主要指数)必须完成一次独立校核并写入「校核」括注——偏差阈值 美债 ≤5bp / 指数 ≤0.3% / 商品 ≤0.5%,未超阈值只写妙想值,超阈值须并列两值 + 标注口径分歧 + 降为「【临界观察·不押注】」并入「四、中性/待观察」节;③ ifind 必须用显式代码(中文名会被误解析成个股,实测「纳斯达克」→
NDAQ.ND),禁复合条件(会静默漏召回);④ 日韩行情禁用 ifind(日频 + 前值填充)与 westock(日韩 403)——不得据此判断日韩是否开市,日韩数据以公开媒体标注来源与数据时间为准(v1.7.0 起 雅虎/Stooq 已删除);⑤ 校核层缺失时禁止写「已独立校核」,只在报告「数据源状态」行标注「校核层缺失」,且不加【部分数据源降级】标题(校核层属非必需源)。 -
先挂载、后运行(v1.7.1 · 用户拍板强制):每期运行必须先执行 §七·0 挂载前置自检(ToolSearch 搜 schema + 实测最小调用 + 失败重试一次),全部在用源确认挂载后方可进入取数流程;禁止以会话启动时的连接器状态快照判定挂载(9/23 期 wscn/ifind/同舟三源误判教训);挂载结果须在 0.5 表落实测证据;未实测就标「未挂载」视为报告不合格。挂载确认后须完成信息/新闻跨源交叉验证(价格冲突→基准优先;事件双源一致才判真;单源独有→待验证/机构观点,不作分级依据)。
-
板块速查表逐只有数、格式统一(v1.7.3 · 用户铁律「不能有缺」):六节「个股速查表」对每一个推荐板块(含观察类板块石油/贵金属/防御),逐只标的必须给出真实涨跌(取自已验证数据源),禁止留「—」「N/A」「未查」等空值;格式必须统一为表格(列固定:代码 + 名称 + 涨跌 + 属性[主板/创业/科创] + 备注),禁止有的板块用表格、有的板块用纯文本罗列,造成「时有时无」的观感;妙想积分耗尽时改走 tongzhou
rank_securities(按概念篮子取涨幅居前)+ ifindget_security_indicators(核心龙头逐只验涨跌)补齐全表,不得因数据源切换而缺列缺行;ST/退市/停牌/一字板/北交所按板块不设限铁律剔除或单独标注,不得混入主线表。 -
必须结合前一交易日「野渡高级复盘」(v1.7.6 · 用户 2026-09-29 拍板「要固化」,最高优先级):每期早参必须读取前一交易日复盘报告
E:/workbuddy/2026-08-05-10-36-24/daily-review/全景复盘_<YYYYMMDD>.html并完成 §1.6.0 四步闭环(解析 → 通读 §三/§五/§八/§十一 → 映射改动早参相应节 → §0.4b 声明)。具体禁止项: ① 禁止只跑fetch_review_focus.py贴一段对照块就交差(那只是第 1 步); ② 禁止 §0.4 出现「未解析到(请人工核对…)」占位出报告 —— 脚本解析失败须先修解析器(跑 §1.6 三期回归),修不好则降级为人工阅读并显式注明「脚本解析失败·已人工读取」,绝不带占位; ③ 禁止 §0.4b 表缺行或缺「若背离·理由」列内容; ④ 禁止复盘阈值与早参阈值不一致却不写理由; ⑤ 禁止复盘点名的高位标的(连板 ≥3 板 / 前一日已涨停)在降级期自动进入早参做多方向 —— 须在 §0.4b 说明取舍。 ⚠️ 独立性边界仍在:结合≠合并。复盘看内部结构、早参看外围环境,复盘内容不得改变早参承压/关注分组,不得参与 §七·4 纪律自检(§1.6 口径声明的老规矩继续生效)。 ⚠️ 日期口径:<前一交易日>必须是最近一个已收盘且复盘报告已生成的交易日;遇长假(如中秋 9/25–9/27、国庆 10/1–10/7)须回溯到节前最后交易日,不得跳空。 -
新华财经(XHCJ)时间窗必传 + 政策权威定位(v1.7.11):① XHCJ 的资讯/热点类工具(
get_xhcj_hotNews/search_prodinfo_stockSector_news/get_AStock_News_byStockName)默认不带begTime/endTime返回「历史热点榜」(实测最新只到数月前),并非近 10 天最新;早参调用必须显式传时间窗(如前一日00:00:00→23:59:59或近 3 天),公告类同样须指定日期窗口,否则拿过期数据污染结论、视为当期报告不合格;② 涉及「部委发文/新规落地/产业政策」的评级依据,优先用get-las-vector结构化检索交叉验证(其他源无此能力),不得用泛新闻表述升格为政策定调;③ XHCJ 价格数字一律弃用(同硬约束 15 / 18);④ XHCJ 缺失降级不阻断(标题加【部分数据源降级·XHCJ】),但须显式标注「政策面覆盖缺口」。
迭代记录
v1.5.2(2026-09-19 · 用户确认「接」)
- 新增数据源:华尔街见闻(wscn)连接器(MCP token 类连接器,已 connected)。定位 = 中文财经第二源,补两个早参真实缺口:① tavily 缺 Key 期间的英文/专业事件面替代(专业度高于 tencent-news 泛新闻);② A股「板块异动 + 驱动理由」叙事源(
get_large_stocks返回约 30 板块、数百只个股,含 6 位代码与「异动原因」文本,天然含 688/300/301,契合板块不设限铁律)。 - 接线点(共 7 处同步):§六 数据源表(wscn 行)、§六 优先级/脏数据段、§2 流程图「② 四源取数」、报告模板数据来源标注(两处
数据来源:)、降级原则(wscn 缺失分支)、§1.7 接入规范(独立小节)、硬约束 15(价格弃用 + date 约束);frontmatterdescription与version同步升 1.5.2。 - 硬边界(防污染,写进 SKILL.md §1.7 + 硬约束 15):① wscn 价格数字一律弃用,基准永远只妙想;②
get_large_stocks须传date=前一交易日(08:45 跑时当天未开盘);③get_wscn_global_articles仅返回列表、深度引用才二次get_wscn_global_article_detail;④ 不改变早参承压/关注分组、不参与 §七·4 自检;⑤ 缺失降级不阻断(标题加【部分数据源降级·wscn】)。 - 配套修改:automation-1787496209488(财经早参 8:45)prompt 第 3 点取数源从「妙想 + tencent-news + tavily」扩为「+ wscn(全球资讯列表 + 前一交易日 large_stocks)」。
v1.5.3(2026-09-19 · 用户确认「改成独立节」)
- 修复
review_previous.py断言节锚定 bug(用户拍板"改成独立节"):旧版用hdr.search抓第一个含「可验证断言」的标题,而复盘节### 0.2 …7 条可验证断言结算子节含同子串且位于文首 → 误锚「结算」子节、解析 0 条(9/18 早参实测命中,导致次日复盘断言全空)。 - 修复方案(四处同改):① 脚本
parse_assertions改为按优先级锚定独立「清单」节(level==2 且标题含「清单」>含「清单」>level==2>最后一个出现),并按行扫描到下一个同级/更高标题为止(替代跨行正则截断);② SKILL.md 正文 §八·1 增补 v1.5.3 修复说明与防复发命名约定;③ frontmatterversion升 1.5.3;④ 脚本 docstring 同步。 - 实测回归:9/18 早参解析 8 条(修复前 0)、9/17 回归 7 条(保持),均
py_compile通过。 - 结论:早参断言「独立七节」格式本就正确(9/18 已有
## 七、🔮 可验证断言清单(供 9/21 复盘)8 条),本次仅修解析器使其稳定读取——"改成独立节"的自动复盘链路已打通。
v1.6.0(2026-09-19 · 用户对账本 3 条待拍板软规则作最终裁决)
- 背景:
daily_verify.py每期生成的 3 条软规则自 9/17 起在早参与复盘片段中展示,但均未固化。用户本次逐条拍板。 - 裁决与落地:
| 原软规则 | 裁决 | 落地方式 |
|---|---|---|
| ① 退潮日/分歧日,关注组加「高位补跌风险」提示、不作默认做多信号 | 采纳 | 升级为 硬规则B(新判据
ebb_day触发,单期生效)| | ② 剔除前一日涨幅 ≥5% 的标的出「关注」默认逻辑(或单列「前高标·谨慎追」栏) | 否决 | 用户原话:「昨天涨了5%及以上,今天依然可能还会上涨,不应该被排除」;脚本中该条已删除并保留REJECTED by user 2026-09-19注释,禁止再提出(含"单列前高标"变体)| | ③ 连续失效期,本建议展示于早参附录 | 采纳 | 固化为 soft 通道守卫(仅cf>=2时展示)| - 新增判据「退潮/分歧日」定义(口径经用户确认):
ebb_day = verdicts.suppress_reversed == true 且 att_avg <= 0,即「承压组〔低位/滞涨〕跑赢沪深300」且「关注组〔前期强势〕当日组均 ≤ 0」。全部复用账本已有字段,不新增数据源。历史回验:9/17(att −0.97%)→ 命中;9/18(att +2.28%,普涨日低位补涨)→ 不误判。 - 硬规则B 与硬规则A 的分工:A 需连续判错 ≥2 期(慢一拍、持续至回归正常);B 只需前一日 1 次退潮特征即触发(早一拍、只作用一期)。同权限、独立触发、可同时命中。
- 同步修复的脚本缺陷(本次核查新发现):
gen_suggestions()原先无条件每天 append 全部 3 条软规则——文字写了「退潮日」「连续失效期」等前提,代码却无任何if守卫(与 2026-09-17 板块铁律那次的「文档写条件、代码不判」同类)。现已补上真实守卫:硬规则A 守cf>=2、硬规则B 守ebb_day、soft 守cf>=2 且 PENDING_SOFT 非空;suggestions.soft目前为空集。 - 改动落点(共 8 处):①
scripts/daily_verify.py新增calc_ebb_day();② 重写gen_suggestions()(三守卫 + 删否决项);③ 新增常量PENDING_SOFT(含三条历史处置留痕);④write_ledger()写入ebb_day/ebb_evidence;⑤gen_review_section()增「退潮/分歧日判定」KPI 卡 + 退潮判定行;⑥show()终端输出退潮判定;⑦main()接线 + 账本输出加退潮标志;⑧ SKILL.md §1.5 拆为「硬规则A / 硬规则B / soft 通道」三条款 + 账本字段速查表补 2 行 + 硬约束新增 16 + frontmatter 描述与版本。 - 实测:
py_compile通过;用账本 3 条历史记录回验退潮判据全部符合预期;gen_suggestions四组条件组合守卫自检正确(cf=1/ebb=False → 0 条;cf=2 → 硬规则A;ebb=True → 硬规则B;cf=3+ebb=True → 两条并列)。 - 发布:
skillhub publish至 SkillHub(slugcaijing-zaocan,skillId=170015),并用「指定版本下载验包」确认线上包版本与脚本一致。 - 📌 两项遗留诊断的用户裁决(2026-09-19 当日作出):① 判定口径偏严(9/18 关注组 +2.28% 明确跑赢承压组 +1.38%,仅因差 0.9pct 未过 1pct 阈值即判「分类失效」,把"方向对但幅度小"与"方向判反"记成同一等)→ 用户裁定「不处理」,1pct 阈值与判据口径维持不变;② backfill 条目(
source:"backfill"、bench_chg:null、groups:[])计入consecutive_fail污染连续失效计数 → 用户裁定「处理」,落地为下方 v1.6.1。
v1.6.1(2026-09-19 · 用户裁决「计数口径污染 → 处理」)
- 背景:v1.6.0 核查时发现账本 2026-09-16 那条是人工补录(数据取自 SKILL.md 背景段,非本脚本取数,
bench_chg为 null、groups为空),却被计入连续失效计数,使 9/17 记录里的consecutive_fail由 1 虚增为 2、9/18 为 3 —— 即硬规则A 实际被提前一期触发。 - 修正口径:引入
is_measured(),非实测记录中性跳过——既不计失效、也不打断连续段。之所以不选「不计失效但打断连续段」,是因为那等于把「测不到」当成「判对了」而错误归零;跳过才是中立。只计实测记录,其余两类(source=="backfill"补录条目 / 无groups的测量失败条目)一律不参与。 - 改动落点(共 6 处):①
daily_verify.py新增is_measured();② 新增scan_ledger_streak()(返回(计数, 被跳过的非实测日期列表)),calc_consecutive_fail()保留为兼容入口(委托前者);③write_ledger()每条新记录显式写source="measured";④gen_review_section()第 3 张 KPI 卡副标显示「已排除 N 条非实测记录:<日期>」;⑤main()终端输出新增排除说明行、账本行追加排除条数;⑥ SKILL.md §1.5 硬规则A 补「计数口径」条 + 账本字段速查表补source行 + 硬约束新增 17 + frontmatter 版本。 - 实测(临时目录隔离,真实账本与注入片段未触碰,mtime 仍为 9/18 17:43):
py_compile通过;历史复算 9/17 由 2→1、9/18 由 3→2(口径修正生效);9/16 补录条目判为非实测·跳过;新记录source="measured";复盘片段 4 张 KPI 卡渲染正常,第 3 张副标显示「未触发硬规则A(已排除 1 条非实测记录:2026-09-16)」。 - 不回改历史:账本里已存档的
consecutive_fail(1/2/3)是当时的决策快照,保留不改,以免破坏审计痕迹;下次运行(9/21 盘后)起按新口径重算。
v1.6.2(2026-09-22 · 消除「一日一脚本」)
- 背景:9/21 首次产出早参 HTML 时现写了
_gen_zaocan_0921.py(手工拼 HTML),当日 wscn 补数重试又临时写了_md2html_zaocan.py(通用 MD→HTML),跑完即删。此种「每期一个按日期命名的生成脚本」属结构性风险:口径/视觉一旦变更,需同步 N 个脚本,极易出现「文档改了、脚本没改」的漏改(本 skill 历史上已多次因此翻车)。 - 落地:新增常驻
scripts/md2html.py(v1.0.0)——MD 子集解析(#/##/###/引用/列表/表格/粗斜体/行内代码/分割线)→ 套用template.html的<style>(另注入表格、引用块、列表、@media print补充 CSS)→ 按##切分为.sec卡片 → 表格包.tw横向滚动 → 带符号百分数自动涨红跌绿(+x%→红、−x%→绿;无符号点位不着色,防止把 4.96 / 95.99 这类点位误标为涨跌)→ 输出同名.html。 - 内置工程自检(交付前自动跑):占位残留(
__TOKEN__/{rows_*})、外链(http(s)://)、<script>标签、花括号平衡、%s残留;任一命中则打印告警并返回退出码 3,不静默交付半成品。 - 改动落点(4 处同步):① frontmatter
version1.6.1 → 1.6.2 与description增补段;② §九「HTML 视觉模板」生成方式改为常驻渲染器 + 新增「⛔ 禁止再建按日期命名生成脚本」条;③ 本迭代记录;④ 脚本本体scripts/md2html.py。 - 实测(2026-09-22 早参):
财经早参_2026-09-22.md→.html,33,385 字符、8 个.sec(〇–七)、11 张表、<div>开闭 54/54 平衡、着色 span 89(涨红 76 / 跌绿 13)、自检全过(占位 0 / 外链 0 / script 0 /%s0)。
v1.6.3(2026-09-22 · 摘要反向归纳禁令)
- 背景(连续两次同源误读,用户于 9/22 11:35 要求重跑时暴露):
- 第一次(9/21 期):「商品价格下行 → A股 油气股承压」,实测 9/21 油气上游组均 +3.92%(海油工程 +7.756%),方向判反,根因是把商品价格当板块方向的决定变量(当前映射已脱钩,中特估/红利属性主导)。
- 第二次(9/22 首版):把 wscn 原文「高昂风险推动 VLCC 运价飙升至每桶逾 30 美元,运输体系越来越贵」反向归纳为「运价红利边际消退」,据此将「原油运输/航运」列入承压组。而同期一手事实是:VLCC 日租金破 124 万美元/日创历史纪录(华尔街见闻·09-21)、阿曼湾→中国 VLCC 运费 4.5×Worldscale(波罗的海交易所·09-12)、胡塞袭沙特阿美管道致红海渠道熄火、沙特出口路线一夜东移、运距拉长(财联社·09-22 11:11)、集装箱运费 +201%(华尔街见闻·09-21)。→ 属结论对、理由错:A股 9/22 上午 航运港口(申万) −2.6%(妙想·09-22 11:29)实为 9/21 海运板块大涨后获利回吐,非「运价消退」。
- 落地:§1.7 新增硬边界 第 6 条「摘要反向归纳禁令」——① 摘要含「上行/创纪录/上涨」类表述时,禁止反向归纳为「放缓/消退/见顶」等向下结论;② 任一命中即须二次调
get_wscn_global_article_detail读正文:结论与摘要字面方向相反 / 结论将改变分组归属 / 引用含「创纪录·历史峰值·倍」等量级词;③ 违规判据:结论与所引原文方向相反且未走二次校验 → 该条视为当期报告不合格,须读原文重写该方向后重新产出;④ 修正须在〇节单设### 0.3-X 🔴 本期归因修正子块(逐项列「首版表述 / 一手事实(带来源·日期)/ 修正后处置」)。 - 改动落点(4 处同步):① frontmatter
version1.6.2 → 1.6.3 与description增补段;② §1.7 硬边界新增第 6 条;③ 本迭代记录;④ 报告侧### 0.3-A 🔴 本期归因修正子块(已在财经早参_2026-09-22.md重跑版落地)。 - 实测(2026-09-22 重跑版):
财经早参_2026-09-22.md→.html,43,188 字符、8 个.sec、13 张表、<div>开闭 59/59 平衡、着色 span 118(涨红 101 / 跌绿 17)、自检全过;−2.6%(U+2212)正确判绿、+1.52%/+201%正确判红(负号口径复验通过);首版「【部分数据源降级·wscn】」残留 0。 - 同批增量(非本次规则变更):wscn 本期恢复挂载 → 补入 36 条全球资讯 + 20 组板块异动,据此新增 6 个关注方向(存储超级周期 / PCB·覆铜板·被动元件 / 医药创新药·CRO / 炼化 / 外贸出口链 / 有色锡),存储链权重由「单日噪声」上调至本期最高关注档(有产业价格数据背书,非纯情绪)。
v1.6.4(2026-09-22 · 修复「HTML 打开空白页」故障 + 自检升格为可见性闸门)
- 背景:用户 11:36 报障「html格式错误,打开无内容!」——9/22 重跑版 HTML 打开为空白页。
- 诊断(硬证据):产物 44,162 字符,尾部停在 CSS 注释(
====…-->),<main>只在注释内可见;<!--2 处 /-->1 处不配对。 - 根因:
template.html中一条给 Agent 看的说明注释,正文写了主容器标签字面量(<!-- 复制本文件后,用真实报告内容替换 <main id="report-body"> 内的占位… -->)。build_html()用tpl.index('<main id="report-body">')定位主容器,而该字符串在模板中出现 2 次(注释内 pos 6991 / 真实标签 pos 7504),index命中的是注释内那个 → 切点落在注释中间 → 注释头<!-- 复制本文件后…被保留且永不闭合 → 其后直到模板末尾注释-->的全部内容(含整篇正文)落入注释 → 浏览器渲染空白。 - 横向排查(禁外推 · 30 份全量体检,并订正首轮误判):
- 真实故障仅 9/22 这 1 份。
- 8/24–8/27 四份首轮被误判为「正文被吞」(判据含
report-body主容器内计数,而老模板没有该容器 → 计数恒为 0)→ 复检实际可见 2,272–4,914 字符,正常。教训:判据依赖特定容器 id 会系统性误报,体检须用跨世代通用判据。 - 9/01–9/09 七份为「历史补跑·价格驱动」精简版(可见 1,079–1,355 字符,但结构完整:〇复盘/一定调/二负面/三正面/五日韩/六关注/七断言),正常,非故障。
- 模板预览 3 份为模板示例,本该无正文。
- 治本 + 治标双线:① 治本:
template.html该条注释改写为「主容器(属性 id 的值是 report-body)」,禁止再出现主容器标签字面量,并就地留警示(含 8/24–27、9/22 两度实发的记录);② 治标/防未来:md2html.py新增COMMENT_RE,定位主容器前先剥离全部模板注释;剥离后断言主容器唯一,否则RuntimeError拒绝产出(main()捕获 → 退出码 2)。 - 自检升格(本次最关键的方法论修正):原自检只统计
<table>/class="sec"出现次数 → 被「注释吞没」100% 骗过(标签一个不少、只是全在注释里,所以当时还打印了「自检通过」)。新增三条可见性硬闸门:① 产物零 HTML 注释(残留<!--或-->即判失败);② 主容器内可见正文 ≥2000 字符;③ 去注释前后class="sec"/class="tbl"计数必须一致。任一命中 → 退出码 3。 - 新增常驻工具:
scripts/audit_html.py(v1.0.1)——批量体检历史产物;判据「去注释、去<style>/<script>后的可见文本量」,跨世代模板通用(不依赖容器 id);分级--min 800(严重)/--warn 1500(提示)/--exclude 模板;退出码 1 可作自动化闸门。 - 改动落点(4 处同步):① frontmatter
version1.6.3 → 1.6.4 与description增补段;② §九 新增「⚠️ 模板注释陷阱(必修条款)」+「⚠️ 自检铁律:必须验可见性」两条;③ 本迭代记录;④ 脚本本体md2html.py(剥注释 + 唯一性断言 + 可见性自检)+template.html(注释拆雷)+ 新增scripts/audit_html.py。 - 实测:重渲染
财经早参_2026-09-22→ 42,722 字符、8.sec、13 表、<div>60/60 平衡、着色 118(涨红 101 / 跌绿 17)、注释 0/0;HTMLParser 独立复验「浏览器视角」主容器内可见文本 19,055 字符、外链 0、<script>0 → 判定「✅ 正文可见,修复成功」。audit_html.py全量复检:23 份正式早参 0 严重(9/22 修复后 17,565)。 - 遗留:历史产物本次确认无同类故障;后续任何一期若发现空白页,先跑
audit_html.py定位。
v1.6.5(2026-09-22 · tavily 英文源降为「可选增强源」并默认不启用)
- 背景:用户问「如果取消英文源呢?」——起因是每期报告都带一条「tavily ❌ 缺 Key(连续 N 期)」降级标注,已连续 8 期存在,成为阅读噪音与无效待办。
- 依据(实证,非推测):① 翻 automation 执行记录:自 v1.3.3 起连续 8 期均为「缺 Key → 降级」,即过去 8 期报告全部是在无英文源条件下产出的,维度与结论未因此受损;② SKILL.md §1.7 接入动机原文即写明 wscn「直接填 tavily 缺 Key 的洞」——设计上本就是替代位,且 9/21 已实测拿到 36 条全球资讯 + 20 组板块异动;③ tavily 的可用价值已被既有规则削到最薄:价格数字一律弃用(曾有金价 2350 脏数据)、且须做时间窗过滤,净剩价值 ≈「英文标题级事件发现」,与 wscn 全球资讯列表同层;④ 目标维度(美联储/美债/美元、美股隔夜、金油铜、中东俄乌、亚太)由妙想(权威报价 + 机构研报)+ tencent-news + wscn 合计已全覆盖,且价格基准 100% 来自妙想、与英文源无关。
- 决策口径(2026-09-22 采用推荐方案「降级为可选增强源」,非彻底删除):不删代码、不动流水线结构,改为「未配置即静默跳过」——不报错、不计降级、不写入报告与数据源徽章、不进
【部分数据源降级】(默认态 ≠ 降级)。需英文一手原文作交叉对照时,由 agent 内置联网搜索按需兜底(零 Key、不入常规流水线、不作价格源)。若用户后续改选「彻底移除」或「重新启用」,按下方回滚说明调整。 - 风险登记(本次唯一真实代价):取消 tavily 后,全球/英文事件面 100% 单点压在 wscn,而 wscn 授权状态不稳(9/21 掉线→恢复、9/22 首跑未挂载)→ 已在 §2 降级原则显式写入「wscn 稳定性=本 skill 真实瓶颈;wscn 与 tencent 同时缺口时事件面仅剩妙想研报,须显式标注覆盖缺口」。取消英文源的真正前置动作不是删它,而是把「wscn 稳定性确认」做进流程。
- 改动落点(文档多处 + 4 个脚本文件,禁止只改文档):① frontmatter
version1.6.4 → 1.6.5 与description增补段;② §六 数据源表 tavily 行改「可选增强源 · 默认未启用」+ 优先级段新增「口径铁律:英文源未启用=默认正常态,禁止在报告任何位置写「缺 Key 降级/连续 N 期」」;③ §五 流程图「四源 → 三源」、报告模板头部数据来源(2 处)、§2 配置段、§2 降级原则、§2 网络重试、§八·1 迭代权重、§十 安装配置(tavily 移为「④ 可选」并纠正set_keys.ps1误导)、FAQ Q3/Q13、错误码表、硬约束 2;④template.html数据源徽章 tavily → 华尔街见闻(否则每份报告页眉仍印 tavily);⑤fetch_global.ps1:tavily 段改「有 Key 才跑;无 Key 不计入$degraded」;⑥setup_check.ps1:tavily 两项由二元红绿灯Status改为[⭕] 可选提示(未配不再打 ❌);⑦tavily_search.py:错误提示改指setx(原指set_keys.ps1,对自动化无效)。 - 回滚说明(本变更可逆):日后若要重启英文源,只需
setx TAVILY_API_KEY <KEY>+ 重启应用,并把数据源表与模板徽章标注改回「在用」即可 —— 代码路径与全部脚本均完整保留,未删一行实现。
v1.6.6(2026-09-22 · 数据源分级化 L1–L6,ifind / 同舟 / westock 提升至 tavily 与 雅虎·Stooq 之前)
- 背景(用户指令):「ifind-mcp / westock-mcp / tongzhou-fin-research,可以提高数据等级,提升到 tavily、雅虎/Stooq(日韩实时源)之前」。
- ★ 动手前先实测三源真实能力(禁凭「已挂载」写文档),实测结果决定各自角色边界:
- ifind-mcp ✅ 可用:
get_security_indicators(market=指数)用显式代码返回 纳斯达克综指IXIC.GI27122.09 / +2.2605%、标普500SPX.GI7764.7 / +1.4927%、韩国KOSPIKS11.GI7007.72 / +1.6462%、东证TOPIX.T4091.14;期货 market 返回 纽约金连续@GC0Y.CMX4368.1(9/21);A股个股摘要(300308 中际旭创 PE 54.19)可用。纳指与 KOSPI 数值与妙想完全一致 → 可作 L1 基准的独立交叉校核。 - ⚠️ ifind 三个实测缺陷(已写进 §六 + 硬约束 18 + FAQ Q15):① 中文名会误解析——查「纳斯达克」返回
NDAQ.ND | 93.54(那是纳斯达克公司个股,不是综合指数);② 禁复合条件(已知会静默漏召回);③ 日频 + 前值填充——日经225 在 9/18、9/19、9/20、9/21、9/22 五个日期全部返回 65018.95(仅 9/17 为 64136.25),即休市日填上一交易日值、无法区分「休市」与「真交易」 → 不能作日韩当日实时源,也不能用来判断日韩是否开市。附带验证:该填充反过来证实了此前媒体口径「日本 9/21–9/23 连休」(9/18 为最后交易日)。 - tongzhou-fin-research ✅ 可用且质量高:
query_macro_series取「美国国债收益率曲线:10年」= 4.9750%(2026-09-21,来源=美联储)(L015211687;另 2YL015211683、美元指数G002600885)—— 这是「美债守/破 X%」类断言的独立第三方结算源;get_latest_snapshot返回上证000001.SH盘中分钟 bar(9/22 11:30 / 3958.64,freshness=fresh)。⚠️ 目录部分滞后:实测 9/22 查,10Y 美债已更到 9/21,美元指数只到 9/18 → 取后必核trade_date,滞后 >1 交易日不得用于当日断言结算。 - westock-mcp ⚠️ 仅 A股可用:
data_kline/data_index(1428 条指数清单,含usINX/usIXIC/usDJI/usNDX/usVIX/hkHSI/hkHSTECH/ftDAX30等全球指数)可用;但data_search(jpkr_market=jp|kr)实测 HTTP 403(与雅虎/Stooq 同因:受限网络)→ 不得用于日韩行情。
- ifind-mcp ✅ 可用:
- ★ 关键验证锚点(2026-09-22 建立):10Y 美债 妙想 4.96% ↔ 同舟(美联储源)4.9750%,差 1.5bp、同向(均 <5.0)→ 判一致,9/22 断言「守 5.0」判 ❌ 两源同结论;纳指 妙想 27122.09 / +2.261% ↔ ifind
IXIC.GI27122.09 / +2.2605% → 判一致。二锚点已写入 §六,用于后续判断「校核层是否还在正常工作」。 - 决策:不改基准,只加校核层 —— 妙想仍为唯一价格/数值基准(硬约束 18 ①),三源定位为「校核 / 补强」,并新增基准独立校核规则:关键价格断言(美债 / 美元 / 金油铜 / 主要指数)须校核一次,阈值 美债 ≤5bp / 指数 ≤0.3% / 商品 ≤0.5%;未超阈值只写妙想值 + 「已独立校核一致」括注;超阈值须并列两值 + 标注口径分歧 + 降为「【临界观察·不押注】」并入四节(衔接 §七·4 ④)。
- 改动落点(文档 10 处 + automation prompt,禁止只改文档):① frontmatter
version1.6.5 → 1.6.6 与description增补段;② §五 运行架构流程图改「② 分层取数 L1–L6」并新增「②-b 关键价格断言独立校核」;③ §六 数据源表整表重排为 L1–L6 分级(新增 L2 ifind / L3 同舟 / L5 westock 三行;tavily 与 雅虎·Stooq 降至 L6);④ §六 优先级段新增四条:「基准独立校核规则 + 实测锚点」「ifind 三硬边界 + 常用显式代码清单」「同舟三纪律」「westock 边界」;⑤ §2 降级原则新增 L2/L3/L5 校核层失败分支(不阻断、不加降级标题,但须去掉「已校核」括注);⑥ §八·1 断言结算新增独立校核步骤;⑦ §十 新增「⑤ L2/L3/L5 安装与启用」;⑧ FAQ 新增 Q15;⑨ 硬约束新增 18;⑩ automation-1787496209488 prompt 第 3 点补「L2/L3 校核」与 ifind 显式代码要求。 - 未做(诚实登记):本次未新增脚本 —— 校核动作依赖 MCP 工具(agent 层调用),Python 脚本无法直连 MCP,故以流程条款 + 显式代码表固化,不造「一日一脚本」。ifind 的
期货期权仅验一次(纽约金连续 4368.1 通过)、债券市场未验证,采样偏少;ifind 查询期间曾触发 429 限流,高频使用需注意。
v1.6.7(2026-09-23 · 修复「wscn 连续误判未挂载」——MCP 异步挂载重试规则)
- 问题(用户提问「wscn 是什么,为什么老是没挂载」触发排查):连续多期早参把 wscn 标为
❌ 未挂载并加【部分数据源降级·wscn】,但连接器实际一直处于 connected 状态。实测定位根因:MCP 连接器在会话启动后异步陆续挂载,自动化触发瞬间读到的连接器状态只是启动快照——2026-09-23 实测 11:15 快照仅 2/7 挂载(agent-mail、mx-ds-mcp),11:23 全部 7 个连上;11:27 用ToolSearch搜 wscn 工具 schema 成功、实测get_wscn_global_articles(2026-09-22)正常返回 50 条 → 连接器完好,纯属时序误判。 - 修复(§1.7 硬边界 5 增补「挂载时序重试规则」):判「未挂载」前必须 ① ToolSearch 搜 schema → ② 搜不到等 30–60 秒重搜一次 → ③ 两次都失败或实测调用报错才允许降级;禁止把启动快照里没列出 wscn 直接当降级依据。规则同样适用于妙想/ifind/同舟/westock 的挂载判定。
- 改动落点:① §1.7 硬边界 5 增补子条;② frontmatter
version1.6.6 → 1.6.7(description无实质变化,不动);③ 本迭代记录。未改脚本(重试发生在 agent 层 ToolSearch,脚本无法替代)。 - 顺带发现(不入正式流程,留痕):当日 11:15 期报告因 wscn 缺失而少的事件面,可由事后实测补回——9/22 wscn 关键叙事:Meta Muse 爆红(Meta +11%/AMD +10%/英特尔 +12%,个人 Agent 大战)、沙特延布港最快本周恢复原油出口(布油盘中破百后美油跌超 6%)、AI 算力瓶颈转向先进封装/存储层级、瑞银上调 CoWoS 2027 产能预测至 27 万片/月。
v1.7.0(2026-09-23 · 永久删除 L6 两源:tavily 英文源 与 雅虎/Stooq 日韩实时脚本)
- 背景(用户拍板):延续同日「wscn 溯源 + tavily 准确度对比」讨论——① tavily 实为第三方搜索聚合 API(非新闻社),全期从未配置 Key(实测注册表 User/Machine 两级均空),唯一实证为负面(金价 2350 vs 实际 4624、news 索引混入旧日期文章);② 雅虎/Stooq 实时脚本连续 8 期受限网络 403、从未成功产出。二者均无正面实证价值 → 用户拍板永久删除。
- SKILL.md 改动(24 处):frontmatter
version1.6.7 → 1.7.0 与 description 同步;示例输出/文件结构模板「可选增强源」行删除;§五 流程图 ②③ 改写;§六 数据源表删 L6 两行、总述改 L1–L5、westock 边界与英文源条目改写;§2 删 tavily 配置块、降级原则/网络重试/时间窗口相应清理;§2.5 日韩模块数据源改「媒体检索制」(tencent-news + wscn,标注来源与数据时间);§八·4 删 tavily 脏数据条款;§十 删 ④ tavily 配置节(⑤ 重排为 ④);FAQ 删 Q3/Q5/Q8/Q10/Q13(编号保留空缺)、改写 Q7/Q9;错误码表删ERR_TVKEY_001;硬约束 2/10/18④ 改写。 - 脚本清理(不留残余):删除
scripts/tavily_search.py、scripts/fetch_japan_korea.py及__pycache__残余;set_keys.ps1移除-TavilyKey;setup_check.ps1移除 tavily 检查段;fetch_global.ps1移除 tavily 调用段;template.html徽章注释同步。 - automation prompt 同步:automation-1787496209488 删除 L6/tavily 条目与 fetch_japan_korea.py 步骤,日韩模块改媒体检索制。
- 保持不变:日韩股市模块本身保留(改媒体源);「内置联网搜索按需兜底」保留(零 Key、不入流水线);价格基准铁律、硬规则A/B、§7.4 五条纪律均不受影响。历史迭代记录(v1.5.2 / v1.6.5 / v1.6.6 等)为决策快照,不改。
v1.7.1(2026-09-23 · 「先挂载、后运行」升格为第零道闸门 + 跨源交叉验证强制化)
- 背景(用户拍板):9/23 期出刊快照把 wscn / ifind / 同舟三源标成「未挂载」(实际为 MCP 异步挂载时序误判,三源一直在线)。用户要求:每次运行必须先确认挂载再运行,且信息与新闻须跨源交叉验证重要性与真伪。
- 三源补挂载实测(12:15,全部成功):① 同舟
query_macro_series(L015211687)返回 10Y 序列(9/22=4.927 / 9/21=4.960 / 9/18=5.010,美联储源);② ifind 指数市场单条件召回正常(沪深300 9/22 收 4544.5875 / +0.1106%,与妙想校核一致;美股市场召回暂空属临时性);③ wscnget_large_stocks(2026-09-22)返回 15 组板块异动全量。 - 交叉验证实证产出:① 沪深300 +0.1106% 妙想↔ifind 校核一致;② 发现妙想宏观报价存在 T-1 滞后情形(10Y 出刊写 4.96 实为 9/21 值,9/22 实际 4.927,「守 4.9」结论不变、数值更新)→ 证实阈值断言必须用同舟 indicator_id 复核最新 trade_date;③ SOX 涨幅冲突(wscn 文案「涨超4%」vs 妙想 +2.064%)→ 按铁律基准优先;④ wscn 独有重要事件补录:中际旭创 55.70 元/股受让中石科技(300684) 10.47% 股份(17.47 亿)、医药工业「十五五」规划、高盛地产供给缺口(机构观点类仅观察)。
- SKILL.md 改动:新增 §七·0 挂载前置自检(第零道闸门:逐源实测最小调用 + 重试规则 + 未实测禁标「未挂载」+ 挂载证据落表 + 交叉验证五条判定规则);硬约束新增 第 19 条;frontmatter
version1.7.0 → 1.7.1。v1.6.7 的重试条款被吸收进 §七·0。 - automation prompt 同步:automation-1787496209488 在执行要点最前新增「步骤 0 挂载前置自检」。
- 当日报告补丁:
财经早参_2026-09-23.md/.html0.5 表改为「出刊时 vs 12:15 补验」双列、新增 0.6 交叉验证节;重渲后 audit_html ✅ 正常。
v1.7.2(2026-09-23 · 连续失效计数「连续段打断即归零」修正 + KPI 差值符号修正)
- 背景(复盘自动化 17:00 实测发现):9/23 盘后复核两项判据均通过(区分度 +1.18 pct、承压组 −1.00% 未跑赢基准 −0.60%),但
scan_ledger_streak()返回的consecutive_fail仍写出 4——该值等于「上一段连续失效期长度」,而非当期计数。 - 危害(真实可复现):次日 8:45 早参按 §七·1.5「取账本最后一条、
consecutive_fail可直接使用」的口径读取该字段 → 会把已回正的一期误判为「仍在连续失效期」→ 错误触发硬规则A「拐点日·不押注」降级(本应自动解除)。 - 脚本改动(
scripts/daily_verify.py两处): ①scan_ledger_streak()返回值由fails + (1 if cur else 0)改为(fails + 1) if cur else 0—— 当期判据未失效(cur=False)即视为连续段被打断、计数归零;追溯到的上一段长度不再冒充当期计数。 ②gen_review_section()第 2 张 KPI 卡差值格式"+%.2f"→"%+.2f"(原写法在负值时输出+-0.40 pct)。 - 验证:修复后重跑
--date 2026-09-23(幂等,同日记录替换不叠加)→ 账本consecutive_fail: 4 → 0、suggestions.hard: [](硬规则A 正确解除)、注入片段 KPI 卡显示-0.40 pct/0 期 · 未触发硬规则A。历史账本条目不回改(保留当时决策快照)。 - 改动落点:
scripts/daily_verify.py;frontmatterversion1.7.1 → 1.7.2。SKILL.md 正文口径(§七·1.5 硬规则A 阈值与consecutive_fail字段含义)无需改写——本次修复正是让实现回归该条文原意。
v1.7.3(2026-09-24 · 板块速查表「逐只有数、格式统一」铁律)
- 背景(用户铁律「不能有缺」):9/24 补跑早参第六节的「推荐板块重点关注标的速查表」出现时有时无——出版传媒 7 只标的涨跌留「—」、石油/贵金属/防御三板块用纯文本罗列(与其余 4 板块表格格式不一致)。用户明确指出"板块里面的股票你时有时无,不行"。
- 根因:妙想积分耗尽(本轮取 5 板块概念时被限流)后,改用同舟
rank_securities+ ifind 补数,但补数只覆盖"概念涨幅居前"与"核心龙头",未把出版央企等未进 rank 前 12 的标的逐一核验,也未把观察类板块统一重排为表格;最终部分板块缺数据、格式分裂。 - SKILL.md 改动:硬约束新增 第 20 条(板块速查表逐只有真实涨跌、禁止「—」空值、格式统一为
代码+名称+涨跌+属性+备注表格,禁止表格/纯文本混用;妙想耗尽时由同舟 rank + ifind 逐只补全,不得因数据源切换缺列缺行);frontmatterversion1.7.2 → 1.7.3。 - 当期限期修复:把 9/24 早参六节 7 个板块全部重排为统一表格(覆铜板/CCL、存储、半导体材料、先进封装、出版传媒、石油天然气开采、贵金属/防御),出版传媒补回中国科传/中国出版/中文传媒/中南传媒/长江传媒/新华文轩/中原传媒/凤凰传媒 8 只真实涨跌(iFinD 核验),ST洲际按板块不设限铁律剔除;重渲 HTML(12 表 / 124 处涨跌着色,零外链可打印)。
v1.7.4(2026-09-24 · 修复「早参→复盘」闭环断裂:恢复 🟢/🔴 方向速查表契约)
- 背景(用户拍板方案 A「早参恢复」):09-24 早参第六节由旧版「🟢/🔴 方向速查表」改成了「开盘关注清单(纯文字 6 条)+ 六(补)板块标的速查表(含 9/23 真实涨跌、无方向标记)」。盘后
daily_verify.py解析六、→七、区间时,因该区间只剩纯文字列表、且方向表被挪到「六(补)」(正则不识别),报「速查表解析为空」,导致账本断更一期、复盘报告第 12 节只能硬编码「闭环暂挂」说明。 - 根因:
daily_verify.py的parse_watchlist()只读## 六、→## 七、文本,要求表格第一列含🟢/🔴或承压/关注、第三列含「名称 6位代码」对。09-24 早参把方向表改名「六(补)」置于「六、」节外 + 六、 节内取消方向列,双向违反契约。 - SKILL.md 改动(3 处 + 版本):① 第六节模板(§报告结构)写明速查表的精确四列格式与「必须位于六、节内、禁止改名六(补)/挪出」的位置契约;② 硬约束第 9 条强化为「🟢/🔴 方向速查表(daily_verify.py 解析契约)」,明确列定义与位置禁令;③ 本迭代记录;④ frontmatter
version1.7.3 → 1.7.4。 - 09-24 当期限期修复(闭环已闭合):在 09-24 早参「六、」节内补回
### 📌 具体个股速查表(7 组 / 78 只去重,关注 5 组·覆铜板/存储/半导体材料/先进封装/出版传媒,承压 2 组·石油/贵金属防御,方向列严格🔴 关注/🟢 承压);重跑daily_verify.py --date 2026-09-24→ 实测:关注组 9/24 组均 −2.83%、承压组 −1.31%、基准沪深300 −1.73%;区分度 −1.53pct(分类失效)+ 承压组跑赢基准(判反)+ 关注组组均 ≤0 → 退潮日(硬规则B 触发,连续失效计数=1);账本已写入;并用inject_review_section.py把真实复核节幂等注入复盘报告,替换原「暂挂」硬编码说明(第 12 节标签平衡、标记完好)。 - 后续动作:09-25 早参将因 09-24 账本
ebb_day=true自动触发硬规则B(关注组加「⚠️ 高位补跌风险」提示、单期生效),并据consecutive_fail=1(<2 不触发硬规则A)。
v1.7.5(2026-09-29 · 修复复盘对照块解析器:三版式兼容 + 由「仅取 P0/P1」扩为「实质结论反馈」)
- 背景(用户追问「是否已把昨天的野渡高级复盘内容反馈回来并进行分析」):核查发现两处缺口 ——
① 解析器失效:
fetch_review_focus.py --date 2026-09-28对 9/28 复盘报告输出P0:(未解析)、P3-A1/A2:(未解析),9/29 早参 §0.4 因此写了「未解析到(请人工核对…)」占位;9/18 报告亦只能解析出 0 只标的。 ② 反馈深度不足:9/29 早参只消费了复盘 §十(P0/P1 档),复盘 §五(板块资金)、§八(偏差复核)、§十一(下一日推演)的实质结论未被写入早参。 - 根因(三版式共存,见 §1.6「已知坑 2」):
skip_definition()未识别P0 · xxx单行式标题而一路推进到裸P1;parse_p0()/parse_p3()只认裸P0/P3-A1行;parse_p1()把「裸P1的下一行」误当板块名(实际是股票名),且收集起点沿用了start导致 P0 段尾行漏进 P1。 - 脚本改动(
scripts/fetch_review_focus.py· 4 处): ①skip_definition()增^P0\s*[·・::]\s*\S提前返回;②parse_p0()增版本 B 正则分支; ③parse_p1()重写为「板块标题一次 + 裸 P1 作标的分隔符」语义,并保留 A 版「裸代码→向后找名称」、B2 版「同行式」两条兜底;收集起点改为p1_hdr_idx + 1; ④parse_p3()增 h4 式P3-A1「…」/P3-A2「…」匹配 + 结果前导标点清洗(修掉旧报告:13 只连板封板质量)。 - 回归验证:9/18 → 22 只标的(原 0 只);9/24 → 4 只标的 +
P3-A2: 13 只连板封板质量(原 0 只 + 有前导冒号);9/28 →P0: 出版业/国企改革(新华传媒)+ 6 只标的 +P3-A2: 空缺(原三者全「未解析」)。 - SKILL.md 改动:§1.6 新增「已知坑 2」三版式对照表 + 三处修复说明 + 强制回归命令(改解析器后必跑 9/18 + 9/24 + 9/28 三期);frontmatter
version1.7.4 → 1.7.5。 - 9/29 早参同步修复:§0.4 由「未解析到」占位更新为真实解析结果;新增 §0.4b「复盘实质结论反馈」表,把复盘 §五(资金退守防御)→ 落到速查表 4 组防守底仓 / §八(R1-R3 待拍板)→ 落到 §0.3 权重迭代 / §十一(三情景+阈值)→ 落到 §七 三档情景 / §三(连板梯队断层)→ 落到出版传媒组降级依据,并逐条说明三处主动背离与取舍理由(量能阈值取严 1.9 万亿 vs 复盘 15500 亿、指数不设点状预测改区间、P0 新华传媒 5 板高标不纳入做多方向)。重渲 HTML 自检通过(30632 字符 / 8 节 / 9 表 / 130 处着色 / 外链·script·注释 = 0)。
v1.7.6(2026-09-29 · 复盘「实质性结合」升为强制条款 —— 用户拍板「还是要结合前一交易日的野渡高级复盘,要固化!」)
- 背景(用户二次强调):v1.7.5 只是修好了管道(解析器三版式兼容)并当期补了一次 §0.4b。但「结合复盘」此前在 SKILL.md 里始终是**§1.6 的可选参照块**(原文「仅参照,不改本 skill 分类」),没有任何强制条款约束"必须读、必须分析、必须写入"。用户明确要求固化为制度,避免下一期又退回「只跑脚本贴一段」。
- 核心改动:§1.6 由「对照块」升为「复盘实质性结合」,新增三层强制结构:
- §1.6.0 四步闭环(缺任一步 = 报告不合格):① 解析
fetch_review_focus.py→ ② 人工通读复盘 §三/§五/§八/§十一(这四节不在脚本输出里,必须人读)→ ③ 逐条映射并实际改动早参 §0.3/§六/§七/§二(只读不写 = 无效反馈)→ ④ 写 §0.4b 声明。 - §1.6.1 §0.4b 五列表(复盘出处 / 原结论 / 已并入早参何处 / 处理方式 / 若背离·理由)+ 三条硬性判定规则:阈值必须对齐或显式说明背离、P0/P1 高位标的不自动入表、背离须可审计。
- §1.6.2 前置校验四问:P0/P1/P3 四项无「未解析到」、§0.4b 四行齐全、「若背离·理由」非空、目标节可 diff 验证确被改动。
- §1.6.0 四步闭环(缺任一步 = 报告不合格):① 解析
- 硬约束新增第 21 条(最高优先级):把上述要求写成五条明确禁止项 —— ①禁只贴对照块交差;②禁带「未解析到」占位出报告(解析失败须先修解析器,修不好则降级人工阅读并显式注明);③禁 §0.4b 缺行或缺「若背离·理由」;④禁阈值不一致却不写理由;⑤禁降级期把复盘高位标的自动纳入做多方向。同时重申独立性边界仍在(结合 ≠ 合并:复盘不改早参分组、不参与 §七·4 自检),并明确长假日期口径(须回溯到节前最后交易日,不得跳空)。
- 同步改动:frontmatter
version1.7.5 → 1.7.6、description新增 v1.7.6 段、触发词补「结合复盘/复盘反馈/复盘实质结论」;报告结构模板 §〇 节由「0.4 对照块」扩为「0.4 + 0.4b(强制)」;§1.6 标题与口径段改写(「仅参照」→「强制性前置条件」,并写明「独立 ≠ 不看」)。 - 新增常驻校验脚本
scripts/check_review_integration.py(配套本条款,防"文档写了、执行时忘"): 逐项检查当日早参 MD —— ① §0.4 节存在且不含「未解析到」;② P0 非空;③ §0.4b 节存在;④ §0.4b 表**≥4 行**且含「若背离」列;⑤ 全文中「复盘」出现次数 ≥ 阈值(防只贴不改)。任一不过 → 退出码非 0 并打印缺失项,可在出报告前当闸门用。 - 实测:9/29 早参跑校验 → 全部通过(§0.4 无占位、P0 已解析、§0.4b 四行齐全含背离列);反向用例(把 9/29 的 §0.4b 整段删掉)→ 正确报缺失并退出码 1。
v1.7.7(2026-09-29 · 发布前合规改造:跨机可移植 + 文档去本机路径)
- 背景(用户明确要求):发布 v1.7.6 到 SkillHub 前,用户要求「严格检查内容和格式,必须符合平台要求以后再发」。遂执行 8 项合规体检,发现
publish --dry-run不报的 3 个真问题。 - 问题 1(真阻塞项)·
daily_verify.py硬编码本机用户名:原第 56–59 行写死本机C:/Users/<user>/.workbuddy/binaries/node/...三处常量,虽可用WSK_NODE/WSK_CLI/WSK_NODE_PATH覆盖,但他机用户无 env 时必然失效。 修复:新增_discover_node()/_discover_ws_cli()/_discover_node_path()三个探测函数,优先级 = 环境变量(保留覆盖入口) → 当前 python 解释器同级的 node/versions 目录 glob →~/.workbuddy/binaries/node/versions→ PATH 兜底(返回"node");NODE_PATH由 CLI 路径反推。 验收:改造后实测本机三项解析结果 →NODE=C:\...\22.22.2-3\node.exe(存在 True)、CLI=...\westock-data-skillhub\index.js(存在 True)、NODE_PATH=...\node_modules(存在 True)——本机可用性未退化。 - 问题 2 · 缓存夹带:
scripts/__pycache__/含 4 个.pyc(check_review_integration/daily_verify/fetch_review_focus/md2html)→ 已清空,发布前须复清。 - 问题 3 · 文档写死本机绝对路径:SKILL.md 两处示例命令(
fetch_review_focus.py调用、md2html.py调用)原写死 managed python 与 skill 绝对路径 → 改为通用写法<SKILL_DIR>+python,agent 运行时自行替换。 - 未改动项(已核实合规):① 无任何硬编码真实凭证(
set_keys.ps1内51cc873f-xxxx为带-xxxx的占位示例,安全);② 全仓无乱码 /U+FFFD/ 锟斤拷;③SKILL.md等关键文件均 UTF-8 无 BOM;④ frontmatter 8 项字段(name/slug/displayName/displayNameEn/version/author/visibility/agent_created)齐全;⑤ 7 个 Python 脚本py_compile全过、6 个有标准--help。 - 功能级回归(合规改造后必跑):
md2html.py渲染 9/28 底稿 → 工程自检通过(17552 字符 / 6 节 / 5 表 / 44 着色 / 外链·script·注释 = 0);audit_html.py体检该产物 → ✅ 正常(注释 0/0);check_review_integration.py --date 2026-09-29→ C1–C7 全 OK、结论通过。 - 改动落点:
scripts/daily_verify.py(三处常量 → 三个探测函数);SKILL.md(两处示例命令改通用写法);frontmatterversion1.7.6 → 1.7.7。 - 配套沉淀:本流程(8 项体检清单 + 跨机探测函数范例 + "改造后必须断言本机未退化"铁律)已同步写入
skill迭代收口流程第 9.0 步(该 skill 升 v1.3.1 → v1.4.0)。
v1.7.8(2026-09-30 · 补 C3 格式契口的文档缺环 · 「文档未写、脚本要卡」类缺陷)
- 背景:9/30(国庆前最后交易日)盘中补跑早参,首轮跑闸门
check_review_integration.py --date 2026-09-30→ C1/C2/C4–C7 全 OK,唯 C3 FAIL:未找到有效的 P0 行。 - 根因(文档缺环,非脚本 bug):C3 校验用的是行式正则
^\s*>?\s*[-*]?\s*\*\*P0[*]{0,2}\s*[::]\s*(.+)$,只认独立一行**P0**:…;而本报告 §0.4 按文档既有示范写的是对照表内的加粗档位列| **P0** | … |。SKILL.md 全文从未写明 C3 要求行式 —— 属「脚本有契约、文档没写」的典型缺环,出报告时必然踩。 - 修复(文档侧三处,脚本零改动):
- FAQ Q11b 新增「C3 格式硬要求」引用块 —— 给出正则、给出正确写法示例、明写「仅表格内加粗档位列不被识别」、点明「表格 + 行式须并存,不是二选一」(P1 同样建议补行式,非硬性)。
- §1.6.0 内容必含 —— 「
P0」一项补为「行式**P0**:…独立一行」,并注明「空缺期标题行仍须存在,否则 C3 判 FAIL」(防把「缺 P0」写成「不写 P0 行」)。 - §1.6.2 前置校验 —— 新增两条自查:① §0.4 有无行式
**P0**:…独立一行;② 是否已跑闸门且全项 OK(退出码 1 不得交付)。
- 实测(修复后回归):9/30 早参按新写法补行后重跑 → C1–C7 全部 OK、结论 ✅ 通过;同时复验速查表契约
daily_verify.parse_watchlist→ 12 组 / 47 只 / 零重复 / 无北交所 / 零空值;md2html.py渲染 → 工程自检通过(43,422 字符 / 9 节 / 14 表 / 161 着色 / 外链·script·注释 = 0);audit_html.py→ ✅ 正常。 - 改动落点:仅
SKILL.md(FAQ Q11b + §1.6.0 + §1.6.2 三处);frontmatterversion1.7.7 → 1.7.8。scripts/未改动,故无脚本回归负担。 - 教训固化:凡新增校验脚本,必须同步把「该脚本会卡什么格式」写进 SKILL.md 对应执行步骤——否则下次出报告仍会在同一处 FAIL。本条已同步写入
skill迭代收口流程(「脚本-文档契约对齐」检查项)。
v1.7.9(2026-10-01 · 「前一交易日」双口径拆分 · 长假后断言结算断档修复)
- 触发:09-30 复盘完成后,野渡指示「结果暂存,10-08 开盘交给当日早参」。核查链路时发现两个「前一交易日」被混为一谈:
fetch_review_focus.py --date(A股交易日口径,prompt 已规定长假回溯)与review_previous.py --prev-date(早参文件口径)在 prompt 里都只写了「前一日」,长假后按自然日会取到休市日。 - 具体风险(10-08 实例):第 2 步若按自然日 T−1 取 = 10-07(休市、无早参) → 09-30 那期早参的可验证断言无人结算,维度权重迭代断一档。
- 用户拍板(2026-10-01):「回溯到最近一个已生成早参的交易日」。据此固化为 硬约束 22:
① 复盘报告 / wscn
get_large_stocks/fetch_review_focus→ 回溯到最近一个已收盘且复盘已生成的 A股交易日(10-08 → 2026-09-30); ②review_previous.py --prev-date→ 回溯到最近一个已生成早参文件的交易日,禁按自然日取 T−1(10-08 → 2026-09-30);若早于自然日 T−1,须在「〇、昨日观点复盘」节显式注明「本期实际结算 X 月 X 日早参断言(因 X 月 X 日休市/无早参)」。 两者正常同值,仅当某交易日早参因故障未生成时才分叉——此时 ② 继续回溯、① 不变。 - 同批修正(文档漂移):§1.6.0「解析对象」原写死复盘报告**「九、下一个交易日…」节 —— 实测 v2.1.x 起该节已变为「八、下一个交易日(2026-10-08)重点关注」。解析器按标题文字匹配不依赖节号(09-30 预跑仍全项解析成功),但文档硬编码「§九」会误导** → 改为「标题含『下一个交易日』的那一个节」,并加禁令「禁止在文档或脚本里硬编码『§九』」。
- 预跑验证:
fetch_review_focus.py --date 2026-09-30→ 退出码 0,P0/P1/P3-A1/P3-A2 四项全解析到,节标题正确定位为「八、下一个交易日(2026-10-08)重点关注」。 - 改动落点:
SKILL.md(§1.6.0 新增双口径表 + 解析对象去节号 + 本条记录);automationautomation-1787496209488第 2 步(新增口径 + 为什么 + 正确取值 + 回溯须注明)、第 2.5 ①(补 A股交易日口径说明 + 节号不写死)、顶部自校准清单(增读双口径表)、硬约束第 8 条(增硬约束 22)、第 9 条(摘要须含「本期实际结算的早参日期」)。frontmatterversion1.7.8 → 1.7.9。scripts/未改动。
v1.7.10(2026-10-09 · 「已删除的源」不再逐期占位数据源状态表 · 用户拍板)
- 触发(用户原话):野渡看10-09 报告的「0.5 数据源状态」表后指出——「日韩实时 / 英文源」这两行「已永久删除(v1.7.0)」是历史遗留说明,要求删除,且以后不用每次体现在财经早参中。
- 问题定性:「已永久删除」是已结案的历史事实,其状态已固化在本 SKILL.md(§六、§2.5、硬约束 2、硬约束 10)与各期迭代记录里;每期再在报告数据源表重复占一行属纯冗余,且会让读者误以为「当前有两个源处于故障/缺失状态」,与实际的「源根本不存在」语义混淆。
- 规则固化(新增至硬约束 2):
- 报告「0.5 数据源状态」表只反映本期实际参与取数的源;
- 已永久删除的源(tavily 英文源、日韩实时脚本 雅虎/Stooq)一律不列入该表,历史删除事实保留在 SKILL.md 内供追溯,不落报告正文;
- ⚠️ 注意与既有降级口径的区分:本条仅针对「已删除/不存在的源」;在用源本期真的取不到(未挂载、召回异常、限频失败)仍须照实标注降级——否则会掩盖真实故障(与「未实测挂载禁止标未挂载」硬约束 19 同源)。
- 改动落点(4 处):frontmatter
version1.7.9 → 1.7.10;硬约束 2 追加「★ 已删除的源一律不列入报告『0.5 数据源状态』表」条款;报告模板 2 处(§四 示例节 + §九 文件结构模板)的「数据来源」行下方括注,由「(tavily 英文源已永久删除…不入数据源行)」改为「状态表只列本期实际取数的源;已永久删除的源(tavily 英文源、日韩实时脚本)不重复出现在报告正文」;本迭代记录。scripts/未改动。 - 本期同步修正(10-09 报告):
财经早参_2026-10-09.md§0.5 表已删除「日韩实时 / 英文源」两行状态行,重渲染后 HTML 同步;§0.5 表格由 7 行降为 5 行(L1/L2/L3/L4×2/L5),其余内容与结论不受影响。 - 核验:
grep "日韩实时 | ❌ 已永久删除"与"英文源 | ❌ 已永久删除"在当期 MD 中均归零;SKILL.md 中「已永久删除」相关条款(§六/§2.5/硬约束 2/硬约束 10/§七·2/FAQ)全部保留未误删——即「文档留痕、报告不写」。
v1.7.11(2026-10-12 · 接入新华财经 XHCJ 连接器 · 用户确认「接」)
- 新增数据源:新华财经(XHCJ)MCP 连接器(新华社系 cnfic 权威源,2026-10-12 实测 Key 有效)。定位 = 政策面与公告权威源,补两个早参真实缺口:① 国内政策结构化检索(
get-las-vector返回发文机关/发布日/实施日/摘要/历史版本——其他源无此能力,作分级依据交叉验证);② 公告事件化监控(xhcj-mcp-announce-search覆盖 50 种监控事件,含info_tag事件类型 +info_tag_reason原因分析 +announcement_link原文,比巨潮全文更适合做减持/解禁/重大事项预警)。另作板块/个股资讯与热点新闻的交叉验证源。 - ★ 实测踩坑(必须写死):
get_xhcj_hotNews等资讯/热点类工具默认不带begTime/endTime返回的是「历史热点榜」(实测最新只到数月前),并非近 10 天最新;只有显式传时间窗才返回指定窗口实时数据。故早参调用一律强制传begTime/endTime,否则拿过期热点污染结论。 - ★ 工具集更新:实际比原 SKILL.md(xhcj 技能说明)描述的多 3 个公告工具——
get_bulletin_type(查类别码)→getBulletinList_gzj_4mcp(股票/债券/基金公告)+getBulletinList_other_4mcp(指数/理财/港股/三板公告),即公告为「先查类别码、再查列表」的两段式。 - 接线点(共 7 处同步):frontmatter
version1.7.10 → 1.7.11 +description加 XHCJ 一句;§6 模板数据来源:行(2 处);§2 流程图「② 四源取数」L4 增 XHCJ;§六 数据源表(XHCJ 行);§六 优先级/脏数据段(XHCJ 定位 + 时间窗硬规则 + 降级分支);§1.8 接入规范(独立小节);硬约束 22(时间窗必传 + 政策权威定位);降级原则(XHCJ 缺失分支)。 - 硬边界(防污染,写进 SKILL.md §1.8 + 硬约束 22):① XHCJ 价格数字一律弃用,基准永远只妙想;② 资讯/热点类工具必须显式传
begTime/endTime时间窗,否则返回历史热点榜非最新;③ 政策类结论优先采信get-las-vector结构化检索;④ 不改变早参承压/关注分组、不参与 §七·4 自检;⑤ 缺失降级不阻断(标题加【部分数据源降级·XHCJ】)。 - 配套说明(自动化无需改):财经早参自动化
automation-1787496209488的 prompt 已声明「永远以最新 SKILL.md 为准、冲突以 SKILL.md 为准」,并要求在运行前读取 §六 / §1.8 / 硬约束 22 —— 故 XHCJ 接入点写入 SKILL.md 后即自动生效,自动化 prompt 无需改动;如需在 prompt 的 L4 取数列举里显式点名 XHCJ,可后续单独再提。
v1.7.12(2026-10-12 · XHCJ 明确为「可选源·默认跳过」· 发布前打磨)
- 用户拍板(发布 SkillHub 前):XHCJ 必须是可选源——使用者若没有新华财经连接器,早参默认整段跳过 XHCJ,绝不错报、绝不阻断。据此强化 §1.8:① 节首新增「【可选数据源·默认跳过·最高优先级】」横幅,明确「无 XHCJ 环境必须零报错跑完」;② 第 5 条「降级不阻断」拆为两层——「未安装/未连接」= 常态静默跳过(不标降级、不报错),「已连却故障」= 才走降级标记分支;③ 挂载判定仍走时序重试(搜不到 schema → 等 30–60 秒重搜 → 两次都搜不到才判未连),避免启动快照误判。
- 版本:frontmatter
version1.7.11 → 1.7.12(保证与 SkillHub 平台三方版本一致,见发布雷区 4)。 - 配套确认:本 skill 在「无 XHCJ」环境下不依赖任何 XHCJ 专属字段即可产出合格报告;XHCJ 仅作增强层。
v1.7.13(2026-10-14 · 修复列表排版故障 + 新增折叠块压篇幅 · 用户截图报障)
- 报障来源:用户野渡 2026-10-14 提供两张 10-14 期 HTML 截图,指出「排版还是有些问题」+「有些底层逻辑的文案是否可以隐藏,来减少篇幅?重要的必须保留!」
- ★ 根因(单一,非表格问题):
template.html的.list li{display:flex;gap:10px}。li 一旦成为 flex 容器,其内部每个<b>/<code>/ 独立文本片段都成为独立 flex 子项横排;在窄屏 / IDE 预览面板(约 760px)下每项各占一列、逐字竖排。两张截图是同一根因 —— 图1(§三 3.3)与图2(§7.6)经逐行比对 MD 后确认均为 bullet 列表,与表格无关(已实测:全篇表格行 cell 数正常、未转义竖线 0 处,排除「列爆炸」猜测)。 - 修复(治本):
.list li改position:relative+padding-left:30px,标记▸改绝对定位::before,正文回归默认 inline flow;.list.ol改用counter(item)编号复用同一标记槽位(同步删除md2html.pyEXTRA_CSS 里两条会把.list.ol拉回list-style:decimal的规则)。并在 §九 立「排版硬禁令」条防回改。 - 新增能力(对应「隐藏底层逻辑压篇幅」诉求):MD 侧新增
:::fold <标题>…:::围栏 →md2html.py的render_blocks()递归渲染为<details class="fold">(summary 标题 +点击展开/收起提示 + 旋转 ▸);@media print强制展开。内容一字不删,只收起。 - 口径边界(写进 §九 铁律):重要结论禁止折叠(§一 / §二 / §三 / §六 / §八 默认可见)。本期实际折叠 4 块=
0.3 维度权重迭代(4,408 字符)/0.5 数据源状态(4,270)/0.6 交叉验证(2,358)/七 可验证断言清单(7,867);首屏可见量 35,866 → 16,963 字符(−52.7%)。 - 新增闸门:
md2html.py加「折叠围栏闸门」——:::fold与:::计数必须相等、且产物class="fold"数等于围栏开数,否则退出码 3;输出行新增fold=N字段。 - 实测回归(修复后):
md2html.py→ 自检通过(80,824 字符 / 9 节 / 12 表 / fold=4 / 围栏配对);check_review_integration.py --date 2026-10-14→ C1–C7 全 OK、exit 0;audit_html.py→ ✅ 正常(严重 0 / 提示 0);折叠不破坏解析 ——review_previous.py断言解析路径复核 OK、daily_verify.parse_watchlist仍 9 组 / 34 只 / 双创 10。视觉自检:Chrome 无头截图(760px 窄屏)确认 §二 / §三 / §0.1 / §0.2 全部横排正常、折叠卡外观符合预期。 - 改动落点(4 处同步):① frontmatter
version1.7.12 → 1.7.13 与description增补段;② §九 新增「排版硬禁令」+「折叠块围栏」两条;③ 本迭代记录;④ 脚本本体template.html(.listCSS)+md2html.py(render_blocks折叠解析 / EXTRA_CSS / 折叠闸门 / docstring),另报告侧财经早参_2026-10-14.md加 4 处围栏并重渲 HTML。 - 版本说明:本次为视觉层修复,10-14 期正文口径未变(产出时 skill 为 v1.7.12)→ 报告头已注明「正文 v1.7.12 / 视觉层 v1.7.13 重渲」,保持可审计。
v1.8.0(2026-10-17 · 输出结构重排:结论前置 / 速查表前置 / 过程留痕后置 · 用户拍板「报告结构」)
- 触发(用户原话):「调出昨天的财经早参,我们来看看怎么调整」→ 选定「报告结构」。量化诊断:10-16 期 340 行中,§〇(账本 + 断言结算 + 复盘对照 + 校核 + 数据源)占 125 行(37%),且排在 §一 结论之前;结论落在第 136 行(40% 处)、标的速查表落在第 235 行(69% 处)。一份「看盘工具」把审计过程排在结论前面,属结构性倒置。
- 结构变更(内容一字不删,只改顺序与折叠):原
〇 复盘 → 一 风险水位 → 二 负面 → 三 正面 → 四 中性 → 五 日韩 → 六 关注清单 → 七 断言重排为一 结论与操作定调(含三档情景)→ 二 今日开盘关注清单 → 三 负面影响 → 四 正面影响 → 五 中性/待观察 → 六 日韩股市 → 七 可验证断言 → 附录 过程留痕(默认折叠)。§〇 整节下移为附录;0.1+0.2 与 0.4+0.4b 补:::fold,与 0.3/0.5/0.6 一起全部默认收起(5 个折叠块,围栏配对 5/5)。 - ★ 解析器解耦(本次最关键工程改动):
daily_verify.parse_watchlist原写死## 六、→## 七、正则(旧模板明令「速查表必须落在六→七区间」)——结构重排必然打断「早参→复盘」闭环。已改为按节标题定位(^##\s[^\n]*开盘关注清单[^\n]*起、到下一个##止),并保留旧「六、」正则作兜底,向后兼容历史报告。回归实测:10-16(9 组/30 只)、9-30(12 组/47 只)均正常;10-15 属其自身格式不符(速查表用「组 / 标的 / 逻辑锚点」三列、方向列无 🟢🔴),改动前后一致无法解析,非本次回归。 - 断言分层与上限:§七 由 18 条平铺改为 7.1 核心断言(≤12 条,覆盖 9 个方向组代表 + 指数/广度)+ 7.2 临界观察(≤6 条,关口突破类),并写明「断言行一律编号列表、禁止表格」——
review_previous.py排除表格行,10-15 期写成表格致次日结算解析 0 条。10-16 样板实际落地 12 + 5。 - 交叉引用治理:同步修正报告内部节号引用(§六→§二、§四→§五、§二→§三);把「§七·4 / §七·0」规范为 §7.4 / §7.4·0(原写法与报告 §七 混淆);把 5 处误标为「§七 情景阈值 / 三档情景」的引用改为 §一·1.1(三档情景的实体位置)。活规则区(<828 行)已无「〇、昨日观点复盘 / 六、开盘关注清单」残留。
- 同步落点:frontmatter
version1.7.13 → 1.8.0;文件结构模板(含硬约束 20「速查表定位」条款改为标题定位);§四 示例输出(改新序并补速查表示例);硬规则A/B、硬约束 14、硬约束 21 映射表、§九 折叠铁律的节号;parse_watchlist实现。 - 样板实测:
财经早参_2026-10-16重排后 →md2html.py自检通过(53,642 字符 / sec=8 / tbl=14 / fold=5 / 外链·script·注释 = 0);check_review_integration.py --date 2026-10-16→ C1–C7 全 OK、exit 0;parse_watchlist→ 9 组 / 30 只 / 零重复。旧版(SKILL + 报告 MD/HTML)备份于E:/workfwb/_backups_20261017/。
Scan to join WeChat group