twu-event-predict
金融事件预测与未来事件链推演(displayName:金融事件预测与未来事件链推演)
定位与边界
归因回答"为什么发生",影响回答"会怎样影响",本技能回答更难的问题:接下来会发生什么。给定当前事件网络的状态,推演出未来事件链会长成什么样:主链走哪条路、什么条件下会拐进分支、每一步的前置信号是什么、整条链的置信度有多高。
⛔ 职责边界(P0,最高优先级):
- 本技能只做预测,不做归因。输出中出现"因为 A 所以事件发生"的归因句式即越界,归因任务转 twu-causal-chain。
- 本技能不输出影响矩阵。预测链中每个未来节点会产生什么后果,只作为评估该节点重要性的维度(一句话刻画),不展开成影响分析。用户要"这个事件会有什么影响"时转 twu-event-impact。
- 预测节点一律标注 [预测态],与已发生事实严格区分。预测不是事实,是带条件的假设,条件不满足即为落空。
- 禁止预测具体价格点位、涨跌幅目标,只给方向判断,不给买卖/仓位建议。
底层哲学(P0,贯穿一切)
第一原理:事件不在真空
任何事件同时位于两条坐标轴上:
- 时序轴:它是事件链上的一个环节,往前有前因,往后有后果。预测就是沿着这条轴,从当前环节走向未来的环节。
- 截面轴:它是事件网络里的一个节点,与网络里其他在发事件互相推、互相堵、互相带偏。预测未来事件链时,每走一步都要问:这个未来事件会被网络里哪些在发事件推动、阻碍、改道?
网络交互不是修饰,是预测的主变量。 孤立地推演一条链而忽略网络共振/对冲的预测,是纸上谈兵。
第二原理:预测的诚实形态
预测的本质是"带条件的假设 + 可判定的裁决信号"。
- 无条件断言("一定会发生 X")不是预测,是占卜。预测的合法形态是:"在 C 条件下,X 的论证链成立;C 的判定信号是 S;如果 X 发生,我们会在 T 窗口内看到 V"。
- 没有裁决信号的预测无法被验证,无法被验证的预测与占卜无异。
第三原理:分歧是有价值的输出
多轮正反拷问收敛后:
- 高共识:主链核心节点锁定或条件化锁定 → 预测论证链完整、数据支撑扎实。
- 大分歧:核心节点正反未化解 → 未来走势很难确定。这不是预测失败,是预测的诚实形态:输出分歧图景、双方论据、裁决信号,标注"哪些点需要等什么数据才能定"。
假装全知是预测的大忌。明确说"我不知道,但我知道怎么才能知道",比含混说"我判断会怎样"专业得多。
第四原理:三路输入,不闭门造车(P0)
金融市场不是纯理论的教科书,现实数据也有多种解读。任何预测节点必须同时吸收三路输入,缺一路即为闭门造车:
| 路 | 输入 | 典型来源 |
|---|---|---|
| 理论路 | 经济学/金融学机制论证,为什么这个因果成立 | 政策传导机制、定价逻辑、历史规律 |
| 事实路 | 可验证的现实数据,客观事实 | 行情、资金、宏观指标、财务数据,标注 [已验证]/[推断] |
| 观点路 | 市场专业意见与情绪,包括机构观点、分析师判断、交易者行为证据 | 券商研报、卖方预期、资金流向、期权定价、舆情 |
三条铁律:
- 理论逻辑和现实情绪同样重要。情绪(恐慌/贪婪/共识拥挤)不是噪音,是定价的一部分。观点路里至少 1 个行为证据类(资金流向/期权定价/远期曲线),行为比言论诚实。
- 现实数据有多种解读。每个关键数据必须主动列出至少一种最强反向解读(同一数据怎么读出相反结论),这个反向解读进入反方拷问。数据只说"是什么",不自动等于"意味着什么"。
- 结论从三路提炼。三路同向 → 支持充分;理论+事实同向但观点分歧 → 拷问重点;观点强但理论/事实弱 → 怀疑为情绪驱动,标注。最终结论必须能说清"理论怎么支撑、数据怎么支撑、市场怎么看、我为什么认同/背离",不能只报一路。
⛔ 最强逻辑约束:咬合论证(P0 · 最高优先级 · 用户 2026-08-13 钦定)
本 skill 的第一铁律,优先级高于一切流程细节。任何轮次的拷问违反此约束,一律打回重写。
多轮拷问是螺旋式咬合论证,不是轮次堆砌。序列必须严格为:
A1 → B1 → A2 → B2 → A3 → B3 → ……
(A=正方,B=反方,数字=轮次;A1 是正方首轮完整论证)
三条铁律:
- 后一项必须针对前一项。B(N) 攻击 A(N);A(N+1) 必须回应 B(N)(反驳 / 接受修正 / 补针对性证据);B(N+1) 攻击 A(N+1) 的回应。任何一轮脱离前一轮的回应,即为断链。
- 禁止开新话题。正方轮 N+1 若提出与 B(N) 攻击无关的全新论点,判定"未回应攻击",本轮打回。正方必须先回应攻击,新论据只能作为回应的支撑引入,不能独立成轮。
- A1 完整度是根。所有支持论据必须在 A1(正方首轮论证)完整给出。若反方攻击后,正方需要引入 A1 未包含的全新论据来回应,说明 A1 没考虑全。处理不是继续堆轮次,而是回到 A1 重写(把漏掉的论据并入首轮论证,重新走 B1 之后)。
咬合检查(强制):每一轮 pro 必须以"回应 B(N-1):……"开头(A1 除外);裁决者每轮自问"正方是否回应了上一轮反方的攻击?反方是否攻击了正方上一轮的回应?"任一为否,本轮无效,标注断链原因后打回。
为什么这是最强约束:断链的拷问等于各说各话,轮次越多噪音越大。咬合保证每一轮都在前一轮的地基上前进,论证是收敛的、可审计的。A1 完整度检查则逼出"首轮就想全",从源头消灭补丁式论证。
触发条件
用户期望推演未来事件链时触发。典型形态:
- "XX 事件之后,接下来会发生什么?"
- "帮我预测一下 XX 方向的未来"
- "未来一个月/一季度,XX 会怎么发展?"
- "这个趋势的下一步是什么?"
- "推演一下 XX 的未来事件链"
使用示例(TRACE 示例充分性)
输入示例(用户原话即可触发):
- "最近医药板块走势不错,预测一下未来医药行业的走势如何?"
- "昨天美联储公布了 CPI 数据,这对未来一个月 A 股大趋势有什么影响?"
- "推演一下央行三季度货币政策的未来事件链"
输出形态:单文件 HTML 预测报告(也可对话模式),结构固定:预测摘要卡(核心判断 + 共识度徽章)→ A 锚定与网络快照 → B 未来事件链(竖向树,主链节点 + 条件分支)→ C 共识度判定与关键分歧 → C' 多轮拷问实录(按节点分组、正反左右对峙)→ 裁决信号清单 → 残余不确定性 → 边界声明。每条预测链带裁决信号,供用户后续自行验证。
输出示例(核心判断摘要卡形态):
> 医药板块修复行情未结束,但已从普涨进入震荡分化阶段。政策端创新药连续三年写入政府工作报告,业绩端 BD 出海半年 1100 亿美元开始兑现,估值端指数 PE 处于近三年 11% 分位。但 8 月中旬板块已现分化,医药 ETF 份额不升反降,公募对"阶段性修复 vs 趋势性机会"存在分歧。判断:震荡中分化、催化中验证,9 月医保测算与临床数据是第一个验证窗口,11 月医保目录公布决定谁留下谁掉队。共识度:中共识,方向可信,节奏与幅度不确定。
变更日志(changelog)
- 1.1.0(2026-08-13):删除回验功能,回归纯预测定位。移除预测台账(data/predictions.jsonl)、check_predictions.py、回验自动化任务机制、命中率校准回流。预测报告保留裁决信号与验证窗口(作为用户自行验证的指引),不再自动追踪回验。文件结构精简为 SKILL.md + 3 references + 2 scripts + 1 template。
- 1.0.1(2026-08-13):全面审计合并升级。①references 4→3(consensus-gauge 并入 templates.md §2.1 共识度判定标准);②节点 schema 单一来源化(predict-framework §2 改引用 templates.md §1/§4);③SKILL.md 瘦身 57 行(A3/B1/B3/C2/C3/C4/D3/共识度章节执行细节改引用,只留决策层);④台账 --add 分支节点处理修正(无 node_id 的简化分支节点不入台账)与跳过文案修正;⑤D2 台账表述同步。逻辑/框架/功能零变更,第三次实战(医药两周预测)质量闸门一次通过验证。
- 1.0.0(2026-08-13):SkillHub 格式梳理首版。补齐 category/platforms 字段、H1 与 name 对齐、新增使用示例与变更日志章节;整合此前 5 轮反馈的全部迭代(三路输入、每节点 ≤10 轮拷问、咬合铁律、残余三类准入、事件三分法、叙述化专业表述、模板化生成、质量闸门 v2、台账 --add 接口)。
输入两种模式(统一锚定流程):
- 事件驱动:输入一个已发生事件,预测它接下来会引发什么新事件。
- 方向驱动:输入一个演进中的方向/主题(如"AI 资本开支周期""地产政策"),预测其未来事件链。
不触发:纯行情播报;"为什么涨跌"(归因,转 causal-chain);"这个事件会有什么影响"(影响,转 event-impact);简单数据查询。
执行速查卡(开始前先看这里)
A 状态锚定与网络快照
事件锚定(时序+截面) → 相关在发事件检索(event-graph) → 外部预期基线
产出: 锚定卡 + 网络快照 + 市场预期共识
→ 锚定错位禁止推演
B 未来事件链推演
主链: 论证最完整的路径 3-6 个节点
分支: 条件触发(如果 X 发生 → 走分支 Y)
网络交互: 节点与在发事件的共振/对冲/竞合
每个节点: 事件候选+触发条件+时间窗口+前置信号+推理链+证据+裁决信号
→ 所有节点标 [预测态],禁止概率量化
C 多轮拷问(grill-me 金融版,本技能的灵魂)
正方: 为每个关键节点构建最强论证
反方: 一次一攻、每攻带推荐修正、深度优先、能查证先查证
轮次上限 10, 高效前提下尽量多拷问, 锁定即停
收敛为合(条件合/时间分层合/超越合) → 共识度判定
产出: 完整拷问实录 + 共识度徽章 + 分歧清单
D 收敛输出
预测结论(主链+分支) + 共识度声明 + 触发信号清单 + 裁决信号
报告渲染 HTML + check_report.py 质量闸门 + twu-output-guard deep 档
细节规则按需查阅 references:推演 predict-framework.md、拷问 grill-protocol.md、共识度与输出 templates.md。
步骤 A:状态锚定与网络快照(P0)
预测的前提是知道"现在站在哪里"。锚定错位,推演全错。
A1 事件锚定(两维)
| 维度 | 问什么 | 产出 |
|---|---|---|
| 时序锚定 | 往前追溯 3-5 个关键前序事件,当前处于链条哪一环(起点/中段/尾声)?市场预期处于什么状态(超预期/符合/低预期)? | 前序链 + 预期差状态 |
| 截面锚定 | 当前流动性/估值/情绪/政策周期坐标?目标事件连接哪些市场层级、资产类别、节点?有哪些在发事件叠加? | 环境坐标 + 空间坐标 |
预期差是预测的第一输入:市场预期已充分定价的东西,不会成为未来事件链的驱动;真正的预测价值在预期差的缺口上(市场没 price in 什么)。预期必须取自当前信息,不用事后反应倒推。
A2 网络快照(事件不在真空的落地)
- 用 twu-event-graph 检索相关在发事件(最多 2 次查询):目标事件连向哪些活跃节点、当前有什么传导链在进行、强度档位如何。
- 手工补充图谱外的重要在发事件(政策日程、财报季、监管事件、海外联动)。
- 产出:当前事件网络快照(节点 + 活跃边 + 强度),这是步骤 B 推演的输入网络。
⛔ 事件三分法(P0,2026-08-13 用户纠偏):事实与观点/未来必须严格分离,禁止混淆进"在发事件":
| 类别 | 定义 | 字段 | 示例 |
|---|---|---|---|
| 在发事件 | 已发生或正在进行的事件 | active_events | 8/12 CPI 公布、央行 Q2 报告发布 |
| 日历事件 | 确定的未来日程(会议/数据发布),非已发生事实 | upcoming_events | 9/17 FOMC、8 月 CPI 发布(9 月上旬) |
| 市场预期 | 观点输入:预测市场定价/机构观点/衍生品定价,非事实 | external_baseline | "按兵不动约 68.2%"(8/13 预测市场定价,须标注来源时点) |
铁律:未来事件(FOMC、数据发布)只进 upcoming_events 并标注"未来日程,非已发生事实";市场定价只进 external_baseline 并标注"观点定价,非事实",引用时必须带来源与时点(如"8/13 预测市场")。渲染时三区分离展示。
A3 三路输入搜集(不闭门造车,P0)
"第四原理"的落地步骤:分析启动时同步搜集三路输入(来源要求与三区标注见 predict-framework.md §6),不是分析完再补。
- 观点路须 ≥3 独立来源,其中 ≥1 行为证据类(资金流向/期权定价/远期曲线,行为比言论诚实)
- 三区标注:共识区(多源一致,已被定价)/ 分歧区(多源矛盾,指向未定价的隐性变量,重点推演对象)/ 独见区(仅我的判断,需更重证据)
- 数据多解读自检:对每个关键事实主动写出至少一种最强反向解读,写入待拷问清单(步骤 C 必须拷问它)
- 搜集不足判定:理论路无机制框架 / 事实路无 [已验证] 数据 / 观点路不足 3 独立来源,任一满足触发降级模式
- 锚定错位自查:"如果当前位置判断错了,未来事件链会怎么变?"差异越大,锚定越关键
步骤 B:未来事件链推演(P0)
B1 主链推演
从锚定状态出发,推演最可能的未来路径,3-6 个节点。每个节点必须完整:
节点 = 事件候选 + 触发条件 + 时间窗口 + 前置信号 + 三路输入(理论/事实/观点) + 裁决信号
字段语义与完整 schema 见 predict-framework.md §2。关键约束:
- 事件候选必须是可判定的未来事件("央行三季度降准 25bp"),不是方向("流动性转松")
- 触发条件必须有,无条件的事件候选直接打回
- 三路输入缺路即打回(理论路不许"因为大家都这么预期";事实路标 [已验证]/[推断] 并注明最强反向解读;观点路标注同向/背离)
- 裁决信号必须可判定(验证用)
⛔ 禁止概率量化(P0):节点不标注"发生概率 X%"、不标注倾向档位。确定性以论证形态表达:论证链完整 + 数据双源 = 支持充分;反例未排除或证据单源 = 支持不足。
B2 分支推演(条件触发)
主链之外,识别关键分支:如果 X 发生 → 主链改道走分支 Y。
- 每个分支标注:触发条件、触发信号、与原主链的关系(替代/补充/延后)。
- 分支不是无限展开,最多 2-3 个关键分支,每个分支最多 3 个节点。分支的价值在于显性化"什么情况下我的主链判断会失效"。
B3 网络交互标注
每个节点必须回答:它会被网络里哪些在发事件影响,何种影响(共振/对冲/竞合/独立;修正规则见 predict-framework.md §3.4)。
锚定错位检查:如果网络快照漏了某个关键在发事件,节点论证会怎么变?漏了就补。
步骤 C:多轮拷问(grill-me 金融版,核心)(P0)
拷问是本技能的灵魂。正方为预测主张辩护,反方用最强攻击拷问,多轮交锋收敛为"合"。拷问全程记录:共识说明预测有逻辑有支持,分歧本身就是有意义的输出。
C1 正方构建
为每个关键节点(主链节点 + 关键分支节点)构建最强论证:为什么这个事件候选最可能?触发条件合理在哪?依据的机制和证据是什么?正方必须给出完整论证,不许偷懒。
C2 反方拷问(规则移植自 grill-me,金融化)
八条反方纪律(每轮强制):①一次一攻 ②每攻必带推荐修正 ③深度优先 ④可查证先查证(未知先追历史锚点收窄)⑤依赖顺序 ⑥魔鬼代言人 ⑦顽固不妥协 ⑧数据多解读测试。细则见 grill-protocol.md §3。
⛔ 逻辑咬合约束(P0,2026-08-13 用户确认):拷问序列必须 A1 → B1 → A2 → B2 → A3 → B3……螺旋式咬合。完整定义见顶层"最强逻辑约束"章节(后项必应前项 / 禁止开新话题 / A1 完整度是根),裁决者每轮咬合检查见 grill-protocol.md §4.5。
攻击杀伤力排序:按优先级攻击(时间因果倒置与数据虚构为致命伤,先杀致命伤再修轻伤)。完整排序见 grill-protocol.md §4。
轮次约束(每节点反复拷问,2026-08-12 用户明确):
- ⛔ "不超过 10 轮"指每个节点最多拷问 10 轮,不是整个分析的总轮数。 每个主链节点独立拷问、独立计数,反复攻防到论证充分为止。禁止"每节点 1 轮"的浅拷问(1 轮就写"分歧未化解"= 偷懒)。
- 终止条件三选一:①达成合(锁定);②论证收敛(反方连续 2 轮无新攻击角度);③该节点拷满 10 轮。
- 分歧未化解的充分性门槛:反方已覆盖 ≥3 类攻击角度 + 正方多次补证据仍无法化解 + 无新牌或到上限,缺一不可。
- 单次分析时间预算 30 分钟(执行视角),超时自动收敛,标注"因时间预算收敛"。细则见
grill-protocol.md §5。
C3 收敛为合
合有三种形态(同 causal-chain / event-impact 体系):条件合(攻击只在特定条件下成立,显性化条件后保留)/ 时间分层合(正反短期中期各归其位)/ 超越合(冲突暴露问题重构)。定义与收敛规则见 grill-protocol.md §6。
C4 拷问实录(必须记录)
每一轮交锋按固定格式记录(格式见 grill-protocol.md §7),这是报告的核心特色区块。记录的意义:共识说明预测有逻辑有支持;分歧说明未来走势难确定,读者能看见分歧在哪里、双方论据是什么、需要什么数据才能裁决。拷问过程本身就是预测质量的可审计证据。
步骤 D:收敛输出
D1 预测结论
- 主链:按时间窗口排序的未来事件链,每个节点带三路输入(理论/事实/观点)+ 条件 + 前置信号。
- 分支:条件触发分支 + 触发信号。
- 共识度声明:高共识/中共识/大分歧(判定标准见下)。
- 关键分歧:正反未化解的点、双方论据、裁决标准(什么数据能证明哪边对)。
- 裁决信号清单:所有节点的裁决信号汇总,标注验证窗口(精确到月/季)。
- 残余不确定性清单:信息真空、无法验证项、未化解分歧,宁可多写不假装全知。
三路提炼规则(第四原理落地):最终结论不是任选一路,是从三路提炼。每个核心结论必须说清:理论怎么支撑(机制)、事实怎么支撑(数据 [已验证]/[推断])、市场怎么看(观点路,共识还是背离)、我为什么认同或背离市场。三路同向 → 结论表述为"支持充分";观点路强背离且我站独见区 → 必须给出市场错在哪的论证,且该论证接受拷问。
D2 报告渲染
模板化生成(P0,2026-08-12 反馈):分析产出走"填模板"流程,固定结构不重复写,提高生成效率:
1. 复制 templates/report-template.json 为本次数据文件
2. 填充【填:…】占位符:核心判断、节点 narrative、拷问实录、分歧、残余等分析内容
(title/footer_note/version/区块结构由模板预置,不改)
3. python scripts/render_report.py <数据.json> <输出.html>
4. python scripts/check_report.py <数据.json> <输出.html> # 质量闸门 v2(P0,2026-08-13 优化)
5. 用 present_files 交付
质量闸门 v2 校验项(机器强制,覆盖 P0 约束的可查部分):顶层必填 / 节点必填字段 / status 合法 / 三路输入完整性 / 咬合铁律(轮 N>1 的 pro 必须以"回应 B(N-1)"开头,轮次连续)/ 主链节点零拷问检查 / 残余三类准入 / 【填:】占位符残留 / 概率语境提示("概率+数字"出现时警告,确认是市场定价引用而非预测概率)。任一 error 打回重写。
报告区块顺序(与流水线对齐,先结论后过程):预测摘要卡 → A 锚定与网络快照 → B 未来事件链(竖向树)→ C 共识度判定与关键分歧(先出结论)→ C' 多轮拷问实录(过程支撑结论)→ 裁决信号清单 → 残余不确定性 → 边界声明。报告硬性规范(红利好绿利空/预测态/证据标注/共识徽章/边界声明)见 templates.md §2-3。
对话模式(用户只要快速结论或报告无法交付):完整叙事约 80-150 行。结构:核心判断(主链一句话+共识度)→ 未来事件链 → 关键分歧 → 裁决信号 → 残余不确定性 → 边界声明。
调用模式(被其他 skill 调用):压缩至 15-30 行:主链节点(事件+窗口+推理链)、共识度、裁决信号、分歧清单。
共通要求:结论前置;预测节点全部标 [预测态];每条链带裁决信号;残余清单必出;隐藏分析框架(不展示因子分解过程,只给结论与依据);人味输出拒绝 AI 腔。
节点叙述化(P0,2026-08-12 反馈):每个节点必须写 narrative 字段,一段连贯论证(现象 → 机制 → 分歧 → 判断),数据自然嵌入句子,落点"判断:……"。专业严谨优先:是去除 AI 腔的自然表达,不是自媒体式大白话;保持金融从业者水准(术语准确、表述有分寸、不下无依据结论)。写不出叙述 = 分析没想透,回到步骤 C 继续拷问。完整要求见 templates.md §1。
D3 输出闸门(twu-output-guard deep 档)
预测直接服务投资判断,事故高发,输出前必须执行 deep 档:
- 运行 twu-output-guard scripts/checker.py 硬校验
- 逐条对照 references/negative-bank.md:监管数字、单源、时间戳、年份、单位、分类一致性
- 时间线审计:所有事件(含预测事件)按时间排序,因果箭头只允许早到晚
- 双源验证:关键断言必须两个独立来源
- 预测态审计:所有未来断言标注 [预测态]?无条件断言是否已打回?是否带裁决信号?
- 不合格按 quality-gate.md 打回重写
执行方式见 ~/.workbuddy/skills/twu-output-guard/SKILL.md。
共识度判定(标准见 references/templates.md §2.1)
按节点权重(重要性 × 证据强度)加权拷问结果,分三档:
- 高共识:主链核心节点绝大多数锁定或条件化锁定 → "预测论证链完整、数据支撑扎实"
- 中共识:核心节点部分条件化,部分有分歧但存在明确裁决信号 → "方向可信,时点/幅度不确定"
- 大分歧:核心节点多数未化解,或反方推翻正方主张 → "未来走势很难确定"。输出分歧图景 + 裁决信号,标注需要等什么数据才能定
共识度徽章必须在报告摘要卡展示,是预测报告最重要的元信息。
预测纪律(P0 红线)
- 咬合论证(最强约束,见顶层铁律):所有拷问轮次必须 A1→B1→A2→B2 严格咬合,禁止开新话题,A1 必须完整。违反即打回
- 禁止预测具体价格点位、涨跌幅目标
- 禁止无条件断言:未来事件必须有触发条件,无条件的打回重写
- 预测节点一律标注 [预测态],与已发生事实严格区分
- 时间因果序:预测链上原因必须早于结果,未来节点按时间窗口排序
- 分歧必须显性化,禁止假装全知
- 禁止概率量化:不出"发生概率 X%"、不出倾向档位(高/中/低)。确定性用论证形态表达:论证链完整 + 数据双源 = 支持充分;反例未排除或证据单源 = 支持不足。给概率数字即视为神棍行为,打回
- 每条预测节点必须带裁决信号 + 验证窗口,没有的可降级为"探索性命题"并标注
- 与市场预期基线对照,独见区需更重证据
- 拷问必须执行且全程记录,跳过拷问的预测不交付
- 历史类比必须先写差异点、再写相似点、最后写不可复现性(防锚定偏差)
降级模式:有限预测
触发条件(任一):信息层少于 2 条独立来源;事件本身信息源单一未确认;网络快照无法建立(图谱空且手工补充不足);外部预期基线不足 3 个独立来源。
降级输出:标题加 [有限预测] 前缀;说明哪些环节被跳过;不确定环节提升到正文优先列出;明确标注"结论置信度低"。保留:锚定(能做多少做多少)、主链(节点可减到 2-3 个)、拷问(基于已有信息,至少 1 轮)、残余清单(必做)。
降级模式不等于不分析。它的作用是明确告诉读者:这个预测的边界在哪里。
松耦合设计原则(P0,工程约束)
本 skill 各模块通过明确定义的接口交互,互不依赖内部实现:
| 模块 | 职责 | 对外接口 | 依赖 |
|---|---|---|---|
| SKILL.md | 唯一编排者,定义流程 A-D | 输入(事件/方向)→ 输出(预测报告) | 无 |
| references/ 各协议 | 单一协议文档,各自独立 | 只被 SKILL.md 引用 | 不互相引用 |
| templates/report-template.json | 报告骨架占位符模板 | 复制后填【填:…】占位符 | 只被 SKILL.md 引用 |
| render_report.py | 数据即 JSON 一步渲染 | JSON 文件 → HTML 文件 | 只消费 JSON,不知分析过程 |
| check_report.py | 报告质量闸门 v2:JSON 源校验(咬合/三路/残余准入/占位符) | JSON 路径 [HTML 路径] → 退出码 | 无 |
松耦合规则:
- 改任一 references 协议,不影响脚本(脚本不读 references)。
- 改分析流程(SKILL.md A-D),只要 JSON 字段契约不变,渲染器零改动。
- 外部 skill(event-graph/output-guard)失败时本 skill 优雅降级,不阻塞主流程。
与其他 skill 的分工联动
| skill | 关系 | 联动方式 |
|---|---|---|
| twu-causal-chain | 归因(为什么发生) | 预测中需要解释已发生事实时引用其事实部分;真发生的事件由 causal-chain 归因时入库 event-graph |
| twu-event-impact | 影响(E 会怎样影响) | 预测节点的后果刻画不展开,用户要影响分析时转出 |
| twu-event-graph | 事件网络库(L1) | 步骤 A 检索在发事件与历史参照;预测节点不入库 |
| twu-output-guard | 输出守门员(L0) | 输出前 deep 档审计 |
三者独立可跑,职责互不重叠:causal-chain 解释过去,event-impact 推演影响,本技能预测未来事件链。
依赖
- 数据:tushare-data-fetcher / westock-data / neodata-financial-search(行情、资金、财务、宏观)
- 信息:WebSearch / agentic-search(新闻、政策日程、机构观点、历史先例)
- 网络:twu-event-graph(在发事件检索 + 历史参照)
- 渲染:scripts/render_report.py、scripts/check_report.py
- 无额外 Python 依赖:核心分析由 AI 执行,脚本仅做渲染与质量校验