@v587d/capital-generation 2.15.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/README.md +7 -12
  3. package/THIRD_PARTY_NOTICES.md +1 -0
  4. package/automation/TABLER-ICONS-LICENSE +21 -0
  5. package/automation/builtins.js +237 -10
  6. package/automation/client.js +79 -17
  7. package/automation/client.src.cjs +873 -210
  8. package/automation/contract.js +4 -0
  9. package/automation/defaults.js +6 -4
  10. package/automation/index.js +12 -7
  11. package/automation/package.json +5 -2
  12. package/automation/route.js +9 -2
  13. package/automation/runner.js +33 -6
  14. package/automation/scheduler.js +34 -29
  15. package/automation/schema.js +39 -5
  16. package/automation/service.js +102 -10
  17. package/automation/settings.js +6 -0
  18. package/automation/store.js +64 -21
  19. package/automation/task-icons.js +75 -0
  20. package/automation/workspaces.js +113 -13
  21. package/chart-ui/client.js +2 -2
  22. package/chart-ui/package.json +1 -1
  23. package/config/client.js +19 -5
  24. package/config/client.src.cjs +365 -44
  25. package/config/index.js +7 -5
  26. package/config/package.json +1 -1
  27. package/lib/agents/root-tool-policy.d.ts +3 -3
  28. package/lib/agents/root-tool-policy.js +4 -2
  29. package/lib/chart/runtime.d.ts +1 -1
  30. package/lib/chart/runtime.js +95 -0
  31. package/lib/chart/series.d.ts +4 -4
  32. package/lib/chart/series.js +44 -10
  33. package/lib/data-collector/dataset-tools.js +22 -0
  34. package/lib/data-collector/describe.js +1 -0
  35. package/lib/data-collector/hub.js +5 -0
  36. package/lib/data-collector/store.d.ts +5 -0
  37. package/lib/data-collector/store.js +17 -0
  38. package/lib/data-collector/time-axis.d.ts +15 -0
  39. package/lib/data-collector/time-axis.js +73 -0
  40. package/lib/data-collector/tools.d.ts +1 -1
  41. package/lib/data-collector/tools.js +12 -1
  42. package/lib/index.d.ts +5 -0
  43. package/lib/index.js +7 -5
  44. package/lib/sources/tencent-http.js +7 -2
  45. package/lib/sources/tencent-public-core.d.ts +2 -0
  46. package/lib/sources/tencent-public-core.js +5 -0
  47. package/lib/sources/wind-mcp.js +3 -3
  48. package/lib/sources-entry.d.ts +1 -1
  49. package/lib/web-retriever/local-fetch.d.ts +1 -1
  50. package/lib/web-retriever/local-fetch.js +1 -1
  51. package/lib/web-retriever/sources.d.ts +58 -0
  52. package/lib/web-retriever/sources.js +290 -0
  53. package/lib/web-retriever/tools.js +199 -8
  54. package/lib/web-retriever/wind-client.d.ts +1 -1
  55. package/lib/web-retriever/wind-client.js +1 -1
  56. package/package.json +1 -1
  57. package/preset/capital-generation/agent.patch.yml +20 -19
  58. package/preset/capital-generation/skills/capital-chart-protocol/SKILL.md +6 -3
  59. package/preset/capital-generation/skills/capital-data-protocol/SKILL.md +9 -2
  60. package/preset/capital-generation/skills/capital-orchestration/SKILL.md +2 -1
  61. package/preset/capital-generation/skills/capital-visualization-protocol/SKILL.md +2 -0
  62. package/preset/capital-generation/skills/capital-web-evidence/SKILL.md +18 -13
  63. package/preset/capital-generation/skills/capital-web-protocol/SKILL.md +30 -15
  64. package/watchlist/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,177 @@
7
7
  - **第三位(patch)**:不破坏既有工具 / 配置 / 会话的新增与修复(如 2.1.1、2.1.2)。
8
8
  - **第二位(minor)**:有需要用户知晓的行为变更,且段内附迁移说明(如 2.1.0 的图表呈现通道重做、2.2.0 的数据源与检索来源扩容、2.4.0 的**必须换宿主版本**、2.9.0 的选择器收敛与质检前置——本插件自己的工具与数据契约没变,所以只抬第二位)。
9
9
 
10
+ ## [2.16.0] - 2026-11-03
11
+
12
+ 公告这条线换了默认来源:新增两个零密钥的东财公告工具(列表 + 分页正文),公告清单不再依赖 Wind
13
+ 的自然语言检索,Wind 明确标成按次计费的深研备用;数据侧给每份 Dataset 加上宿主算出的时间覆盖
14
+ 范围,自动化补上统一默认工作区、12 个月运行热力图与以宿主时钟为准的运行预算。
15
+
16
+ ### Added
17
+
18
+ - **东财公告列表 `eastmoney_announcements`(零密钥)**:A/H/US 一次查一个市场、最多 50 个代码,
19
+ 按 `display_time`(北京时间)的日期窗过滤,返回标题、披露时间、分类、`art_code` 与详情页链接,
20
+ 用 `next_cursor` 翻页。最多扫描最近 5 页(500 条);请求窗口早于扫描范围时在 `note` 里明确说
21
+ 「窗口未被覆盖」并给出最早扫描到的日期,不把不完整当完整。混合市场或代码形状不对直接报错。
22
+ - **公告正文 `eastmoney_announcement_body`(零密钥)**:按 `art_code` 读正文,上游约 5,000 字符/页,
23
+ 单次最多返回 4,000 字符,回执带 `next_offset` / `next_page` / `done` / `pdf_url`。美股公告正文
24
+ 常为空而只有 PDF,回执会明说并指向 `ocr`;港股是繁体原文。东财是官方披露的转载,权威引用仍落
25
+ 巨潮 / 发行人 PDF,回传标注「公告全文(东财转载)」。
26
+ - **Wind 与公告的分工写进工具描述与协议**:`wind_docs_announcements` 不再是公告清单的第一选择
27
+ (实测会漏最新公告、混入关联方文件);Wind 五个工具摘要统一加 `[计费]`,只在语义深研或东财
28
+ 覆盖不到时使用。`web_retriever` 的工具从 14 个增到 16 个,persona、两份协议 skill、能力表与
29
+ README 计数同步。
30
+ - **`DatasetRef.time_coverage`**:宿主在落盘前从真实行里算最早/最晚时间(`column` / `from` / `to` /
31
+ `format`),支持 `epoch_ms`、`date_string`、`datetime_string`;没有时间列时显式返回
32
+ `format: "none"`,不拿 `captured_at` 或请求区间冒充。旧 Dataset 的 manifest 没有该字段时保持
33
+ 缺失。data_collector 必须原样转达,分析师据此判断「取到的数据是否覆盖请求窗口」。
34
+ - **腾讯实时行情带 `quote_time`**:交易所当地时间(北京时间)的最后成交时刻,与 `captured_at`
35
+ (抓取时刻)分开;时间戳不可解析时整批响亮失败,不把坏时间写成空值。
36
+ - **投研自动化:统一默认工作区**:设置卡第二格顶部新增「默认工作区」下拉(宿主 `Menu` + 34px
37
+ 胶囊触发器,空 = 专属默认工作区),选项来自新接口 `GET /capital-automation/workspaces`
38
+ (id / 标题 / 路径,路径按家目录缩写成 `~`)。任务自己保存的工作区仍然优先;默认工作区被删除
39
+ 或目录不可用时回退专属默认并 warn,不阻断运行。
40
+ - **运行历史 12 个月热力图**:任务页与运行页的历史卡从 30 天点阵改为 53 周 × 7 天的热力图,
41
+ 按浏览器时区聚合每日运行数,失败描边、进行中脉冲、hover 显示当日成功/失败/进行中明细;
42
+ 新接口 `GET /capital-automation/runs/history?days=371&tz=…` 拒绝非法天数与时区。
43
+ - **运行预算改用宿主时钟**:首条 prompt 增加「最晚结束」硬截止,并明确预算判断只能以
44
+ `get_local_datetime` 的当前时间为准,不得用步数、等待次数或工具耗时估算。
45
+ - **UI/UX 设计规章入库**:新增 `docs/dev/ui-design.md` 并在 `AGENTS.md` §13 挂索引——下拉/日期
46
+ 一律用宿主件(禁原生 `<select>` / `<input type="date">`),尺寸、焦点环、token 与文案自查表。
47
+
48
+ ### Changed
49
+
50
+ - **自动化 session 标题**:从 `[CapGen 投研自动化·<profile>] <任务名>·<id 后 8 位>` 改为
51
+ `<MM-DD> <任务名> <id 前 8 位>`(月-日取触发时区),侧栏按时间读得出来,也不再把 profile 名
52
+ 重复到每个会话上。
53
+ - **专属默认工作区目录**:`<dsh home>/automation-workspace/<显示名>` →
54
+ `<dsh home>/CapGen-automation-workspace/<profile 名>`;换显示名不再换目录,已注册工作区仍按 id 使用。
55
+ - **默认标记跟随设置**:`/meta` 的工作区列表里 `default` 现在指「实际会用的工作区」(设置里选中的
56
+ 那个),专属默认工作区另带 `dedicated: true`,方便设置卡把它作为回退项固定列出。
57
+
58
+ ### Migration
59
+
60
+ - 公告能力不再需要 Wind Key;已有 Wind Key 仍只影响深研调用,不调用不计费。习惯用 Wind 查公告的
61
+ 会话会在 persona / 协议里被引导到东财;要按语义找段落时仍可显式用 Wind。
62
+ - 升级后首次运行任务或打开设置卡会注册新的 `CapGen-automation-workspace/<profile>` 目录;旧的
63
+ `automation-workspace/<显示名>` 不会自动迁移,历史 session 仍在原工作区。想继续用旧目录,在
64
+ 「插件 → Capital Generation → 投研自动化 → 默认工作区」里选中它即可。
65
+ - 已保存任务的工作区 id 优先于统一默认工作区;把默认工作区删掉或目录移走,下次运行自动回退专属
66
+ 默认工作区,并在日志里点一次名。
67
+ - 运行历史口径从最近 30 天变为最近 12 个月,旧运行记录会重新出现在热力图里;页面需刷新一次以
68
+ 加载新的前端资产(`automation/client.js`)。
69
+ - `time_coverage` 只是新增可选字段:升级前落盘的 Dataset 不会补造覆盖范围,重新取数后才有;
70
+ 引用旧 Dataset 时按缺失处理,不要自己填。
71
+
72
+ ## [2.15.1] - 2026-11-02
73
+
74
+ 内置任务模板从三个扩到十六个:三份旧指令重写为「主体 / 覆盖范围 / 什么算做完」,新增 08:00 的
75
+ 盘前公告补上晚间披露,盘后公告更名为当日公告(仍 16:00),每日复盘改为以自选股为主体;同时
76
+ 补上港美股收盘与盘前、午间快照、组合周报与风险月报、自选股周检、行业周报、研究选题、财报
77
+ 跟踪、下周事件日历与市场周报,并新增「组合」「监控」两个分类。数据纪律、分类输出结构与无人
78
+ 值守策略仍由 preset / runner 提供,模板不再复制,也不点名工具。同一版修正了图表时间轴按 UTC
79
+ 显示、A 股日 K 日期早一天的问题,并把调度器待命从任务通知里拆出来,改到页面底部「系统状态」,
80
+ 任务通知只留任务事件。
81
+
82
+ ### Added
83
+
84
+ - **盘前公告(08:00)**:补齐 16:00 之后到开盘前的晚间披露。覆盖上一交易日收盘后至运行时刻
85
+ 已披露的公告,先逐只过自选股(含已标持仓),再补权重股、行业龙头与政策相关的非自选股;
86
+ 逐条写标的、事项、关键数字、对基本面或交易的影响与开盘后要验证的点,按「开盘前必看 /
87
+ 只需知晓」两级排成清单;只写公告,不复述隔夜外盘与大盘行情,取不到写「未取到」。
88
+ - **午间快照(交易日 11:35)**:上午收盘的指数、两市成交额、涨跌家数与涨跌停、领涨领跌板块,
89
+ 自选股逐只写上午涨跌、量能与异动,加上午间已披露的公告与下午要验证的 2–3 个点;盘中数据
90
+ 可能延迟,注明采集时间,只写上午与午间。
91
+ - **美股收盘(周二至周六 07:00)**:三大指数与费半、利率与美元、原油与黄金,自选股里的美股
92
+ 与中概逐只写涨跌、量能与盘后异动,再给财报指引、宏观数据与对 A/H 的映射(只给条件)。
93
+ 按北京时间周二至周六触发,对应美股周一至周五收盘;美股休市直接说明。
94
+ - **美股盘前(周一至周五 20:30)**:今晚开盘前已知的财报与指引、宏观数据与事件、亚洲时段
95
+ 消息,以及自选股里的美股/中概动态,给出今晚最该盯的 3 件事。行情数据源不透出盘前盘后报价,
96
+ 模板明确要求盘前价格与期货取不到就写「未取到」,不拿昨收冒充盘前价。
97
+ - **港股收盘(交易日 16:30)**:恒生指数、恒生科技与国企指数,南向资金、成交与涨跌家数,
98
+ 自选股里的港股逐只写涨跌与异动,再给 AH 溢价与同日 A 股联动里的偏离。
99
+ - **组合周报(每周六 10:00)**:只认用户标记的持仓与自报权重,逐只写本周涨跌、成交与事件,
100
+ 再给单票 / 行业 / 市场 / 币种集中度、同向暴露与最大风险;没有标记就说明无法做组合层计算。
101
+ - **组合风险月报(每月最后一天 20:30)**:月度检查集中度、流动性、同向暴露与事件风险,有
102
+ 可靠数据才做简单情景或波动测算,数据不足标「未评估」,不填 0 也不称「安全」。
103
+ - **自选股周检(每周六 14:00)**:逐只过自选股,按「需要立刻准备 / 继续跟踪 / 可以移出」
104
+ 分级,理由看催化剂、流动性、重复暴露与证据是否还够,并写下一步该补什么。
105
+ - **行业周报(每周六 20:00)**:按可核实的行业/主题分类列本周领涨领跌、成交与资金集中度,
106
+ 解释驱动并点出自选股集中的行业与领涨方向的重合或偏离;市场周报只给板块轮动的一句话结论,
107
+ 行业与主题的细账不重复。
108
+ - **研究选题(每周日 14:00)**:从自选股与本周市场主线里挑 3 个最值得深挖的标的或主题,
109
+ 写清为什么是现在、核心问题、需要的证据与先做哪几步核查,不写成完整研报。
110
+ - **财报跟踪(每周日 16:00)**:过去一周已披露财报的营收、利润、毛利率与指引预期差、一次性
111
+ 项目与会计口径变化,加上未来两周的财报预约、一致预期与要盯的指标;没有财报就说明下一次
112
+ 披露窗口,不硬凑。
113
+ - **下周事件日历(每周日 18:00)**:自选股的财报预约、解禁、股东大会、分红与停复牌,加上
114
+ 宏观数据、重要会议与政策窗口,逐条写时间、影响与要提前准备什么。
115
+ - **市场周报(每周日 20:00)**:指数与量能、涨跌家数与风格、板块轮动的一句话结论、北向与
116
+ 两融、ETF 申赎等资金口径,给出市场状态、下周关键位与最大风险。
117
+ - **新增「组合」与「监控」分类**:`portfolio` 只处理标记持仓的组合层问题,`monitor` 负责清单
118
+ 与日历维护;服务端分类枚举、`/meta` 能力清单、页面筛选与标签、分类图标与配色同步。
119
+
120
+ ### Fixed
121
+
122
+ - **投研自动化的上限一直保存失败**:保存路径写在了 `automation` 这一层容器上,而设置服务只接受逐个可编辑字段,所有写入都被拒绝(界面提示「没有保存成功」)。改成逐字段保存后,改完失焦即生效。
123
+ - **图表时间轴按北京时间显示**:时间轴的 epoch 刻度与十字线此前交给库按 UTC 格式化,A 股日 K 的日期会比实际业务日早一天;现在统一按 Asia/Shanghai 格式化(日 K 显示 `MM-dd`,分钟线显示 `HH:mm`),纯日期串仍原样显示。无时区的 `YYYY-MM-DD HH:MM[:SS]` 改按北京时间墙钟解释,`range` 的 date-only 边界按本地日历日计、`to` 含当日 23:59:59;已生成的图不变,重新出图即按新口径。
124
+
125
+ ### Changed
126
+
127
+ - **插件设置拆出独立的「投研自动化」格**:原来压在「数据源」底部的检查间隔、最长运行时间、空闲超时、
128
+ 步骤与工具调用上限、通知开关,整组移到与「数据源」「精选 Skills」平级的第二格,并按「调度 / 单次
129
+ 运行上限 / 通知」分组;「数据源」只留五把密钥与本机直连回退。上限改成整数输入,清空或越界会在
130
+ 标题右侧点名允许范围(带毫秒 / 分钟 / 步 / 次),失焦后回填已保存值、不写回配置;「调度间隔」
131
+ 「wall-clock」两个内部说法改为「自动检查间隔」「最长运行时间」。范围同步收敛为:最长运行
132
+ 5–120 分钟、空闲 1–30 分钟、步骤 100–2000、工具调用 100–5000;最长运行时间的默认值从 30 分钟
133
+ 提到 60 分钟(午间任务可能跑满半小时);保存失败时的提示改成一句人话「没有保存成功,请再试一次」。
134
+ 已保存的值不受影响,调度与运行上限仍是任务级设置优先。
135
+ - **通用设置里的运行上限成为未单独设置任务的默认值**:内置模板或自定义任务没有单独改过上限时,
136
+ 直接跟随「投研自动化」里的值,改通用设置会同步生效;任务高级设置里改过的值仍然优先,把某项改回
137
+ 与通用值相同就恢复跟随。新建任务表单也以通用值为初始值。
138
+ - **盘后公告 → 当日公告(仍 16:00)**:改名避免「盘后」被读成当晚公告已出齐。指令与交付不变:
139
+ 截至运行时刻的当日已披露公告、次日复核清单、信息截止与待披露的已知事项。
140
+ - **早间资讯(08:30)**:开头先列今早最该知道的 3 件事,再逐档覆盖隔夜外盘、大宗商品与汇率,
141
+ 国内外宏观、政策与监管,自选股(含已标持仓)从昨收至今的新闻、异动与昨夜公告中会改变开盘
142
+ 判断的部分,以及今日披露、解禁、股东大会、数据与会议日程。每档必须有结论:确实没有写「无」,
143
+ 取不到写「未取到」并说明缺哪一块;自选股逐只过,没有新信息的并成一句。公告明细交给盘前公告,
144
+ 早间只留会影响开盘判断的那几条。
145
+ - **每日复盘(20:00)**:指令改为以自选股(含已标持仓)为主体,逐只写当天有变化的标的
146
+ (价格、量能、公告或消息)、驱动与风险信号,按「需优先复核 / 继续跟踪」分级;指数、量能
147
+ 与板块轮动只作解释个股的背景,明日观察条件要落到具体标的与触发点。
148
+ - 内置指令不再点名 `get_watchlist` 一类工具或角色:运行固定在自动模式,工具面由 preset 与
149
+ 运行期决定,写死工具名反而会在换实现时失效。
150
+ - **任务通知只留任务事件**:`scheduler_standby` 不再写通知记录(旧实现会按 10 分钟一条刷屏,
151
+ 并在 200 条上限下挤掉真实运行失败);页面底部新增「系统状态」展示定时调度与交易日历的当前
152
+ 状态、最近一次中断及折叠的技术原因,调度待命与租约失效不再进任务收件箱。
153
+ - **通知 API 增加 `scope`**:`GET /notifications?scope=task|system|all` 与
154
+ `POST /notifications/read` 的 `scope` 默认 `task`;未读计数与「全部已读」默认只处理任务事件,
155
+ `scope=system` 只用于诊断查看旧 `scheduler_standby` 记录。
156
+ - **通知开关联动**:关闭「写入任务通知」后,失败/成功两个开关置灰,避免看起来还会通知;
157
+ 调度与日历的 banner、通知文案改成「当前窗口没有定时调度权」「暂时无法确认交易日」等
158
+ 可操作的说法。
159
+
160
+ ### Migration
161
+
162
+ - 已添加的内置任务若没改过标题或指令,下一次读取就用新文案;自己改过的保留,想回到新版模板
163
+ 可在任务详情点「休眠并恢复默认」。盘后公告改名为当日公告只改默认标题,任务 id 与运行记录不变。
164
+ - 新增的十三个模板默认是未添加状态,需要在模板区点「添加」后才会按各自日程运行;只想用原来的
165
+ 三个交易日任务就不必添加。
166
+ - 当日公告仍是 16:00;单独改过触发时间的不受影响。16:00 时当日披露窗口尚未结束,模板会标注
167
+ 信息截止与待披露部分,晚间披露由次日 08:00 的盘前公告收口;想一次看全当日公告,可把
168
+ 当日公告时间改到 21:00 前后。
169
+ - 周末 / 月末模板用固定本地星期与月末触发,不受 A 股交易日历影响(周五休市也不会整周跳过);
170
+ 美股收盘按北京时间周二至周六 07:00、美股盘前按周一至周五 20:30 触发,对应美股的收盘与
171
+ 开盘时间。
172
+ - 美股盘前不承诺盘前报价:数据源不透出盘前盘后行情,模板只写有来源的盘前财报、宏观事件与
173
+ 消息;需要盘前价格时以券商或交易所页面为准。
174
+ - 投研自动化的步骤 / 工具调用下限抬到 100、工具调用上限收到 5000:profile 里已保存的越界值
175
+ 不会报错,运行期按新边界生效,之后可在「插件 → Capital Generation → 投研自动化」里重新填写。
176
+ - 最长运行时间的 60 分钟只是新默认值:profile 里已经保存过 30 分钟的保持 30,想延长到 60 可在
177
+ 「插件 → Capital Generation → 投研自动化」里直接改,区间仍是 5–120 分钟。
178
+ - 以前保存过任务上限的任务(内置模板覆盖或自定义任务)保留原值,不会自动跟随通用设置;在该任务
179
+ 的高级设置里把上限改成与通用值相同即可恢复跟随。
180
+
10
181
  ## [2.15.0] - 2026-10-31
11
182
 
12
183
  宿主基线从 `0.2.1-rc.3` 抬到 `0.2.1-rc.5`;同时修掉互动易问答列表的时间列解析——站点在提问与
package/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
  <p align="center">
19
19
  <a href="https://awesome-dsh-plugin.com"><img src="https://awesome-dsh-plugin.com/badge.svg" alt="awesome · DSH plugin"></a>
20
20
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green" alt="License"></a>
21
- <a href="https://github.com/v587d/capital-generation/releases"><img src="https://img.shields.io/badge/version-2.15.0-9cf" alt="Version"></a>
21
+ <a href="https://github.com/v587d/capital-generation/releases"><img src="https://img.shields.io/badge/version-2.16.0-9cf" alt="Version"></a>
22
22
  <a href="https://www.npmjs.com/package/@v587d/capital-generation"><img src="https://img.shields.io/npm/v/%40v587d%2Fcapital-generation" alt="npm version"></a>
23
23
  <a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/powered_by-dsh-4D6BFE?style=flat-square&logo=deepseek&logoColor=white" alt="powered-by-dsh"></a>
24
24
  </p>
@@ -82,7 +82,7 @@ Capital Generation 是运行在 [DeepSeek Harness(DSH)](https://github.com/d
82
82
  | --- | --- |
83
83
  | [同花顺 Fuyao](https://fuyao.aicubes.cn/docs/) | 行情、财务数据和自选股报价 |
84
84
  | [AnySearch](https://www.anysearch.com/docs) | 网页搜索和正文提取 |
85
- | [Wind Alice](https://market.windalice.com/#/home) | 公告与新闻检索,以及宏观/行业/汇率指标与按日期区间取的历史 K 线 |
85
+ | [Wind Alice](https://market.windalice.com/#/home) | 公告与新闻的语义深研(**按次消耗积分**),以及宏观/行业/汇率指标与按日期区间取的历史 K 线;公告清单优先走零 key 的东财公告工具 |
86
86
  | [PaddleOCR AIStudio](https://aistudio.baidu.com/paddleocr) | 解析 PDF 和图片中的文字 |
87
87
  | [FTShare(非凸科技)](https://market.ft.tech/gateway/doc/p/pb8eizu3) | A 股行情与日 K 截面、主力资金流、涨跌停、龙虎榜席位、股东人数、指数权重、可转债行情、宏观利率,以及期货合约与贵金属行情等第二家上游口径 |
88
88
 
@@ -149,7 +149,7 @@ Capital Generation 是运行在 [DeepSeek Harness(DSH)](https://github.com/d
149
149
 
150
150
  ## 还能做什么
151
151
 
152
- - **查数据和资料:** 覆盖 A 股、港股、美股与期货等品种,由专用角色按需获取行情、财务、指数、基金、宏观行业与期货数据,检索公告、新闻和研报。共计 **128** 个数据收集能力和 **14** 个网页检索能力,部分公开数据源无需额外密钥;具体覆盖范围见 [数据收集能力表](docs/data-collector-capabilities.md) 和 [网页检索能力表](docs/web-retriever-capabilities.md)。
152
+ - **查数据和资料:** 覆盖 A 股、港股、美股与期货等品种,由专用角色按需获取行情、财务、指数、基金、宏观行业与期货数据,检索公告、新闻和研报。共计 **128** 个数据收集能力和 **16** 个网页检索能力,部分公开数据源无需额外密钥;具体覆盖范围见 [数据收集能力表](docs/data-collector-capabilities.md) 和 [网页检索能力表](docs/web-retriever-capabilities.md)。
153
153
  - **数据质检:** 结构化数据不会直接进入模型上下文。每份数据先由分析师检查结构、时间轴、缺失与基础统计,再按受控方式汇总;原始数据行始终留在工具层。
154
154
  - **可视化:** 分析师判断数据适合图表,或你明确要图时,绘图专员会生成可交互图表;明确不要图时只完成质检。图表会登记为**最后一轮答复**的交付物,在答复末尾集中出现,可在侧栏查看或离线打开。了解处理流程可看 [Agent 角色说明](docs/agent-roles.md)。
155
155
 
@@ -183,28 +183,23 @@ Capital Generation 是运行在 [DeepSeek Harness(DSH)](https://github.com/d
183
183
  | [Quant Agent Skills](https://github.com/Howard-Jerry/quant-agent-skills) | 1 个跨市场选线 Skill:同一家公司在 A 股与港股、或美股 ADR 与港股各有一条线时该走哪一条——价差、币种与股息税、流动性与通道、披露文件路径各不相同。公司本身只研究一次,便宜的那条线不构成"这家公司更值得买";A/H 溢价与 ADR 平价没有现成条目,须按两条线同一天的收盘价与当日汇率现算,缺任一项就只报缺的那一项 |
184
184
 
185
185
  <a id="capgen-automation" name="capgen-automation"></a>
186
- - **CapGen 投研自动化:** 内置早间资讯、盘后公告与每日复盘三个模板,也可新建自己的任务;到点自动新建 session 执行,也能手动运行。任务、运行历史与失败通知在同一页,支持运行预算、通知和仅交易日触发。
186
+ - **CapGen 投研自动化:** 内置 16 个模板(默认未添加,按需添加),覆盖资讯、行情、复盘、研究、组合与监控:交易日有盘前公告(08:00)、早间资讯(08:30)、午间快照(11:35)、当日公告(16:00)、港股收盘(16:30)与每日复盘(20:00),另有美股收盘(周二至周六 07:00)、美股盘前(周一至周五 20:30)、组合周报、自选股周检、行业周报、研究选题、财报跟踪、下周事件日历、市场周报与组合风险月报;也可新建自己的任务,并从 30 个图标里挑一个;内置模板也有各自的固定图标。到点自动新建 session 执行,也能手动运行。任务、12 个月运行热力图与任务通知在同一页,可在设置卡把任一已注册工作区设为任务统一使用的默认工作区,支持运行预算、通知和仅交易日触发。
187
187
 
188
188
  <p align="center">
189
189
  <a href="assets/capgen-automation-tasks.png">
190
190
  <img src="assets/capgen-automation-tasks.png" alt="投研自动化:任务、日程与运行概览" width="800">
191
191
  </a>
192
192
  </p>
193
- <p align="center">
194
- <a href="assets/capgen-automation-runs.png">
195
- <img src="assets/capgen-automation-runs.png" alt="投研自动化:运行历史与错误详情" width="800">
196
- </a>
197
- </p>
198
193
 
199
194
  ## 常见问题
200
195
 
201
196
  - **安装后找不到模式?** 确认插件出现在「插件」→ 已安装列表;Web / CLI profile 安装后要重启该 profile,并在新会话选择模式。选择器里应看到自动模式、行情专家、资讯专员;分析师和绘图专员是自动模式的内部角色,不会出现在这里。
202
- - **配置在哪?** 打开「插件」→ 已安装的 **Capital Generation**,页面顶部就是「数据源 / 精选 Skills / 包含的组件」三格,五把密钥都在第一格;不在 DSH 的普通「设置」页面,也不用点进任何一行组件。保存密钥后新建会话再试。
197
+ - **配置在哪?** 打开「插件」→ 已安装的 **Capital Generation**,页面顶部就是「数据源 / 投研自动化 / 精选 Skills / 包含的组件」四格,五把密钥都在第一格;第二格可指定任务统一使用的默认工作区,也能改自动检查间隔与最长运行时间等上限;不在 DSH 的普通「设置」页面,也不用点进任何一行组件。保存密钥后新建会话再试。
203
198
  - **升级到 2.9.0 后,分析师和绘图专员去哪了?** 这一版把它们收进自动模式内部,不再出现在选择器与预设管理里,避免误开一个没有取数入口的空会话。旧会话仍能按原身份恢复;新任务直接用自动模式提出即可。
204
- - **桌面端升级后仍是旧版?** 桌面端安装时会固定所解析的版本,不会自动升级。卸载后重新安装,再到插件详情查看版本号;如需指定版本,可在地址末尾加 `#v2.15.0` 或 `@2.15.0`。
199
+ - **桌面端升级后仍是旧版?** 桌面端安装时会固定所解析的版本,不会自动升级。卸载后重新安装,再到插件详情查看版本号;如需指定版本,可在地址末尾加 `#v2.16.0` 或 `@2.16.0`。
205
200
  - **刚发布的新版本装不到?** 桌面端取包时会跳过**刚发布不久**的版本(宿主侧包管理器的发布冷却策略,实测会静默装成上一个版本),国内镜像的同步也可能滞后一段时间。急着用最新代码,改用仓库地址安装最直接。
206
201
  - **网页抓取失败?** 配置卡片中的「允许启动本地提取网页内容」默认开启:AnySearch 提取失败时可尝试本机直连。关闭后,本机直连的具名来源查询也不可用;请检查该开关和网络连接。
207
- - **Wind 那部分会消耗积分?** 会。公告与新闻检索、宏观 / 行业 / 汇率指标、按日期区间取的历史 K 线都按次消耗你在 Wind 侧的额度;额度与条款以 Wind 为准,插件不做用量封顶。没配 `WIND_API_KEY` 时这几类不可用,其余功能照常。
202
+ - **Wind 那部分会消耗积分?** 会。Wind 的公告 / 新闻语义检索、宏观 / 行业 / 汇率指标、按日期区间取的历史 K 线都按次消耗你在 Wind 侧的额度;额度与条款以 Wind 为准,插件不做用量封顶。没配 `WIND_API_KEY` 时这几类不可用,其余功能照常——公告清单与正文有零密钥的东财工具,不配 Wind 也能查。
208
203
  - **没有加载想要的精选 Skill?** 先看「智能装载 Skills」开关:关着时只给已勾选的方法;打开后按角色放开全部方法,但仍由模型判断任务是否命中。再确认它归哪个预设——自动模式偏研究/组合/写作,估值、财务与筛选由分析师在计算时加载,文档深读与核验由资讯专员加载。列表上方可以按「Skill 特点」和「适用预设」两个维度取交集筛选;点技能名可看原文。需要强制使用时,在对话里直接输入 `/` 加原文中的英文名(例如 `/china-earnings-analysis`),不要用中文标题。
209
204
  - **怎么知道这次分析用了哪些精选 Skill?** 最终答复会有一节「使用的方法」,逐项列出实际加载过的 Skill 并说明各自支撑了哪个判断;主 Agent 和子 Agent 的加载都会计入。没有加载过就不会出现这一节,答复里也不会挂没读过的名字。
210
205
  - **精选 Skill 的方法论很长,Agent 读得完吗?** 读得完。超过一次可读长度的正文已经重排成「入口 + 分册」:Agent 先看入口目录,需要具体规则、模板或阈值时把对应那一册整本读进来,并会告诉你它读了哪几册、哪些没读。设置卡片里点技能名打开的原文预览仍然只给入口那一份,想看某一册直接问 Agent。
@@ -10,6 +10,7 @@
10
10
  | 组件 | 作者 | 许可证 | 原始仓库 | 许可文本 | 可选 Skill / 快照内共 | 用在哪里 |
11
11
  |---|---|---|---|---|---|---|
12
12
  | Lightweight Charts™ 5.2.1(standalone 构建) | TradingView | Apache-2.0 | <https://github.com/tradingview/lightweight-charts> | `lib/chart/vendor/LICENSE` | — | 插件内所有可交互图表的渲染层;`VERSION.json` 记有该构建的 sha256,归属标识(attribution logo)保持开启,出图产物页脚打印版本与许可。同一份副本又被 tree-shake 链接进图表卡片的客户端 bundle,那份里不再单独带许可文件——以 vendor 目录这份为准 |
13
+ | Tabler Icons(30 个 outline 图标,固定快照 `ed177a0`;只取路径几何,颜色与描边改为继承瓦片) | Paweł Kuna 与 Tabler 贡献者 | MIT | <https://github.com/tabler/tabler-icons> | `automation/TABLER-ICONS-LICENSE` | — | 投研自动化 16 个内置任务模板的固定图标,以及自定义任务可选的 30 个图标目录;模板/目录 id 与上游图标名的对照见 `automation/task-icons.js` 的 `source` 字段 |
13
14
  | Investment Skills Lexicon(`7235d34`,固定快照;路由段改写为纯 Markdown 映射) | finterm.ai | MIT | <https://github.com/finterm-ai/investment-skills> | `selected-skills/investment-skills/LICENSE` | 1 / 1 | 「精选 Skills」中的 `buffett-investment-framework` |
14
15
  | China Stock Research Skills(`d49f1f3`,固定快照;共享的 source-registry 取数阶梯改写为证据类型口径) | spikeHongg | MIT | <https://github.com/spikeHongg/china-stock-research-skills> | `selected-skills/china-stock-research-skills/LICENSE` | 6 / 6 | 「精选 Skills」中的六颗 A 股研究 Skill:`financial-health`、`risk-warning-catalysts`、`valuation-investment-strategy`、`strategy-business-transition`、`industry-competition-moat`、`business-decomposition-order-quality`;上游的 orchestrator 不收录,已从本仓删除 |
15
16
  | InvestSkill(`c3f2a17`,固定快照;补 `name` 字段 + 28 颗的取数口径改写,分析正文未改) | yennanliu | MIT | <https://github.com/yennanliu/InvestSkill> | `selected-skills/InvestSkill/LICENSE` | 28 / 28 | 「精选 Skills」中的 28 个美股 Skill(`fact-check`、`bear-case`、`10k-digest`、`stock-valuation`、`risk-stress-test`、`tax-lens` 等);另六颗(编排、报告输出口、自带出图、三颗 alias 残片)不收录,已从本仓删除 |
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020-2026 Paweł Kuna
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -32,11 +32,62 @@ const SCHEDULE_COMMON = {
32
32
  tradingDaysOnly: true,
33
33
  }
34
34
 
35
+ /** Weekend/weekly tasks do not consult the A-share calendar: they run on fixed local days. */
36
+ const WEEKLY_TRIGGER = {
37
+ kind: 'schedule',
38
+ cadence: 'weekly',
39
+ timezone: 'Asia/Shanghai',
40
+ tradingDaysOnly: false,
41
+ }
42
+
43
+ const MONTHLY_TRIGGER = {
44
+ kind: 'schedule',
45
+ cadence: 'monthly',
46
+ timezone: 'Asia/Shanghai',
47
+ tradingDaysOnly: false,
48
+ }
49
+
50
+ // Each instruction states the coverage and the deliverable only: the runner owns the category
51
+ // output shape, data discipline and unattended policy, so repeating them here would double the
52
+ // prompt and drift out of sync. Tool names stay out too — auto mode already knows the surface.
35
53
  /** @type {readonly import('./schema.js').BuiltinDefinition[]} */
36
54
  export const BUILTIN_DEFINITIONS = [
55
+ {
56
+ id: 'us-close',
57
+ version: 1,
58
+ category: 'market',
59
+ defaults: {
60
+ state: 'dormant',
61
+ category: 'market',
62
+ title: '美股收盘',
63
+ description: '美股收盘后汇总指数、财报与盘后异动,逐只过自选股里的美股与中概,映射到 A/H 开盘。',
64
+ // 美股周一至周五收盘对应北京时间的周二至周六清晨。
65
+ trigger: { ...WEEKLY_TRIGGER, time: '07:00', weekdays: [2, 3, 4, 5, 6] },
66
+ instruction: '生成美股收盘快报:覆盖上一交易日美股三大指数与费半、关键利率与美元、原油与黄金;自选股(含已标持仓)里的美股与中概逐只写涨跌、量能与盘后异动;再写当日财报与指引、重要宏观数据,以及这些变化对 A 股/港股相关标的的映射(只给条件,不下买卖结论),结尾留 2–3 个开盘后要验证的点。美股休市就直说休市,不补写行情。',
67
+ cwdKind: 'profile',
68
+ limits: { ...DEFAULT_LIMITS },
69
+ notifications: { ...DEFAULT_NOTIFICATIONS },
70
+ },
71
+ },
72
+ {
73
+ id: 'pre-open-filings',
74
+ version: 1,
75
+ category: 'news',
76
+ defaults: {
77
+ state: 'dormant',
78
+ category: 'news',
79
+ title: '盘前公告',
80
+ description: '交易日开盘前汇总上一交易日收盘后至今的公告,筛出自选股与全市场开盘前必须处理的事项。',
81
+ trigger: { ...SCHEDULE_COMMON, time: '08:00' },
82
+ instruction: '生成交易日盘前公告:覆盖上一交易日收盘后至运行时刻已披露的公告,先逐只过自选股(含已标持仓),再补权重股、行业龙头与政策相关的非自选股——业绩预告、重组并购、重大合同、增减持与回购、股权激励、诉讼与风险警示、停复牌、分红。逐条写标的、事项、关键数字(金额/比例/期限)、对基本面或交易的影响与开盘后要验证的点,按「开盘前必看 / 只需知晓」两级排成清单;没有公告的自选股并成一句。只写公告,不复述隔夜外盘与大盘行情;取不到写「未取到」。',
83
+ cwdKind: 'profile',
84
+ limits: { ...DEFAULT_LIMITS },
85
+ notifications: { ...DEFAULT_NOTIFICATIONS },
86
+ },
87
+ },
37
88
  {
38
89
  id: 'morning-brief',
39
- version: 3,
90
+ version: 4,
40
91
  category: 'news',
41
92
  defaults: {
42
93
  state: 'dormant',
@@ -44,7 +95,23 @@ export const BUILTIN_DEFINITIONS = [
44
95
  title: '早间资讯',
45
96
  description: '交易日开盘前汇总隔夜外盘、自选股、重要公告与政策信息,给出当日需要盯住的线索。',
46
97
  trigger: { ...SCHEDULE_COMMON, time: '08:30' },
47
- instruction: '生成一份交易日早间资讯简报,供开盘前阅读。覆盖隔夜外盘、自选股、重要公告与政策信息、当日事件;自选股用 get_watchlist 读取,清单为空或读取失败要分开说明。',
98
+ instruction: '生成交易日早间资讯,供开盘前读完:开头先列今早最该知道的 3 件事,再逐档覆盖隔夜外盘、大宗商品与汇率,国内外宏观、政策与监管,自选股(含已标持仓)从昨收至今的新闻与异动、昨夜公告中会改变开盘判断的部分,今日披露、解禁、股东大会、数据与会议日程。每档都要有结论——确实没有写「无」,取不到写「未取到」并说明缺哪一块;自选股逐只过,没有新信息的并成一句。重大事件写清事实、影响与开盘后要验证什么。',
99
+ cwdKind: 'profile',
100
+ limits: { ...DEFAULT_LIMITS },
101
+ notifications: { ...DEFAULT_NOTIFICATIONS },
102
+ },
103
+ },
104
+ {
105
+ id: 'midday-snapshot',
106
+ version: 1,
107
+ category: 'market',
108
+ defaults: {
109
+ state: 'dormant',
110
+ category: 'market',
111
+ title: '午间快照',
112
+ description: 'A 股午间快照:上午指数、成交、涨跌停与板块,自选股异动与午间公告,下午关注点。',
113
+ trigger: { ...SCHEDULE_COMMON, time: '11:35' },
114
+ instruction: '生成 A 股午间快照:截至 11:35 的上午收盘数据——指数、两市成交额、涨跌家数与涨跌停、领涨领跌板块;自选股(含已标持仓)逐只写上午涨跌、量能与异动,并列出午间已披露的公告;最后给下午要验证的 2–3 个点。盘中数据可能延迟,注明采集时间;只写上午与午间,不重复昨日复盘和早间资讯的内容。',
48
115
  cwdKind: 'profile',
49
116
  limits: { ...DEFAULT_LIMITS },
50
117
  notifications: { ...DEFAULT_NOTIFICATIONS },
@@ -52,15 +119,31 @@ export const BUILTIN_DEFINITIONS = [
52
119
  },
53
120
  {
54
121
  id: 'post-close-filings',
55
- version: 3,
122
+ version: 4,
56
123
  category: 'news',
57
124
  defaults: {
58
125
  state: 'dormant',
59
126
  category: 'news',
60
- title: '盘后公告',
61
- description: '交易日收盘后梳理当日公告与盘面异动,筛出次日需要复核的事项。',
62
- trigger: { ...SCHEDULE_COMMON, time: '18:30' },
63
- instruction: '生成一份交易日盘后公告与异动复盘,筛出次日需要复核的事项。',
127
+ title: '当日公告',
128
+ description: '交易日收盘后梳理截至运行时刻的已披露公告,筛出自选股与全市场次日要复核的事项,并标明信息截止。',
129
+ trigger: { ...SCHEDULE_COMMON, time: '16:00' },
130
+ instruction: '生成当日公告清单:以运行时刻前已公开的当日披露为准,覆盖自选股(含已标持仓)与权重股、行业龙头、政策相关的非自选股,按业绩预告、重组并购、重大合同、增减持与回购、股权激励、诉讼与风险警示、停复牌、分红逐类过一遍。逐条写标的、事项、关键数字(金额/比例/期限)、影响方向与仍需核实的点,按「次日必须处理 / 只需知晓」两级排成复核清单;没有公告的自选股并成一句。写明信息截止时刻,把截止后仍待披露的已知事项单列——别把「暂未披露」写成「没有公告」。',
131
+ cwdKind: 'profile',
132
+ limits: { ...DEFAULT_LIMITS },
133
+ notifications: { ...DEFAULT_NOTIFICATIONS },
134
+ },
135
+ },
136
+ {
137
+ id: 'hk-close',
138
+ version: 1,
139
+ category: 'market',
140
+ defaults: {
141
+ state: 'dormant',
142
+ category: 'market',
143
+ title: '港股收盘',
144
+ description: '港股收盘后汇总指数、南向资金与 AH 溢价,逐只过自选股里的港股,给出明日验证点。',
145
+ trigger: { ...SCHEDULE_COMMON, time: '16:30' },
146
+ instruction: '生成港股收盘快报:覆盖恒生指数、恒生科技与国企指数,南向资金、成交与涨跌家数;自选股(含已标持仓)里的港股逐只写涨跌、量能与异动;再给 AH 溢价与同日 A 股联动里值得注意的偏离,以及明日要验证的 2–3 个点。港股休市就直说休市,不补写行情。',
64
147
  cwdKind: 'profile',
65
148
  limits: { ...DEFAULT_LIMITS },
66
149
  notifications: { ...DEFAULT_NOTIFICATIONS },
@@ -68,15 +151,159 @@ export const BUILTIN_DEFINITIONS = [
68
151
  },
69
152
  {
70
153
  id: 'daily-review',
71
- version: 3,
154
+ version: 4,
72
155
  category: 'review',
73
156
  defaults: {
74
157
  state: 'dormant',
75
158
  category: 'review',
76
159
  title: '每日复盘',
77
- description: '交易日收盘后复盘指数、量能、板块轮动与自选股表现,形成可验证的观察清单。',
160
+ description: '交易日收盘后复盘自选股当日表现与驱动,给出下一交易日的可验证观察条件。',
78
161
  trigger: { ...SCHEDULE_COMMON, time: '20:00' },
79
- instruction: '生成一份交易日复盘,覆盖指数与量能、板块轮动、自选股表现与风险异常。',
162
+ instruction: '生成交易日复盘,主体是自选股(含已标持仓):逐只写当天有变化的标的(价格、量能、公告或消息),交代当日涨跌、相对近 20 日区间的位置、驱动(公告、消息、板块或资金)与风险信号,按「需优先复核 / 继续跟踪」分级;没有变化的并成一句名单。指数、量能与板块轮动只作解释个股的背景,不单独成节。明日观察条件要落到具体标的与触发点。',
163
+ cwdKind: 'profile',
164
+ limits: { ...DEFAULT_LIMITS },
165
+ notifications: { ...DEFAULT_NOTIFICATIONS },
166
+ },
167
+ },
168
+ {
169
+ id: 'us-premarket',
170
+ version: 1,
171
+ category: 'market',
172
+ defaults: {
173
+ state: 'dormant',
174
+ category: 'market',
175
+ title: '美股盘前',
176
+ description: '美股开盘前提示:盘前财报、宏观事件与自选股美股/中概动态,列出今晚最该盯的事项。',
177
+ trigger: { ...WEEKLY_TRIGGER, time: '20:30', weekdays: [1, 2, 3, 4, 5] },
178
+ instruction: '生成美股盘前提示:覆盖今晚美股开盘前已知的信息——盘前公布或待公布的财报与指引、宏观数据与事件、亚洲时段的消息与公告,以及自选股(含已标持仓)里的美股与中概的盘前动态;逐条写事实、来源时间与开盘后要验证的点,并给出今晚最该盯的 3 件事。盘前报价与期货取不到就写「未取到」,不要用昨收冒充盘前价;美股休市就说明休市。',
179
+ cwdKind: 'profile',
180
+ limits: { ...DEFAULT_LIMITS },
181
+ notifications: { ...DEFAULT_NOTIFICATIONS },
182
+ },
183
+ },
184
+ {
185
+ id: 'portfolio-weekly',
186
+ version: 1,
187
+ category: 'portfolio',
188
+ defaults: {
189
+ state: 'dormant',
190
+ category: 'portfolio',
191
+ title: '组合周报',
192
+ description: '每周按自选股里标记的持仓复盘组合集中度、暴露与风险,列出下周要复核的事。',
193
+ trigger: { ...WEEKLY_TRIGGER, time: '10:00', weekdays: [6] },
194
+ instruction: '生成本周组合周报:以自选股里用户标记的持仓与自报权重为准,逐只写本周涨跌、成交与事件,再给组合层集中度(单票、行业、市场、币种)、同向暴露与最大风险;未标记的关注条目不算持仓,权重不补满 100%。没有持仓标记或权重缺失时,明确说无法做组合层计算,只做关注清单层面的观察。结尾列下周要复核的 3 件事与数据缺口。',
195
+ cwdKind: 'profile',
196
+ limits: { ...DEFAULT_LIMITS },
197
+ notifications: { ...DEFAULT_NOTIFICATIONS },
198
+ },
199
+ },
200
+ {
201
+ id: 'watchlist-weekly',
202
+ version: 1,
203
+ category: 'monitor',
204
+ defaults: {
205
+ state: 'dormant',
206
+ category: 'monitor',
207
+ title: '自选股周检',
208
+ description: '每周给自选股分诊:需要立刻准备、继续跟踪或可以移出,并写下一步该做什么。',
209
+ trigger: { ...WEEKLY_TRIGGER, time: '14:00', weekdays: [6] },
210
+ instruction: '生成本周自选股周检:逐只过自选股(含已标持仓),按「需要立刻准备 / 继续跟踪 / 可以移出」分级——依据是下周是否有催化剂、流动性是否够用、与已有标的或持仓是否重复、证据是否还够支撑判断;每只写一句理由与下一步该做什么(补数据、读公告、等事件),重复暴露合并成一组。没有变化的并成一句,不要只按涨跌幅排序。',
211
+ cwdKind: 'profile',
212
+ limits: { ...DEFAULT_LIMITS },
213
+ notifications: { ...DEFAULT_NOTIFICATIONS },
214
+ },
215
+ },
216
+ {
217
+ id: 'sector-weekly',
218
+ version: 1,
219
+ category: 'market',
220
+ defaults: {
221
+ state: 'dormant',
222
+ category: 'market',
223
+ title: '行业周报',
224
+ description: '每周行业与主题轮动:领涨领跌、资金集中度、驱动与自选股暴露,下周景气与事件。',
225
+ trigger: { ...WEEKLY_TRIGGER, time: '20:00', weekdays: [6] },
226
+ instruction: '生成本周行业周报:按可核实的行业/主题分类列出本周领涨领跌、成交与资金集中度,解释驱动(政策、数据、事件、海外映射),再点出自选股集中的行业与领涨方向的重合或偏离,最后给下周行业事件与需要验证的景气指标。分类口径写清楚,取不到就写缺口;不把单一板块的强势当成全市场结论。',
227
+ cwdKind: 'profile',
228
+ limits: { ...DEFAULT_LIMITS },
229
+ notifications: { ...DEFAULT_NOTIFICATIONS },
230
+ },
231
+ },
232
+ {
233
+ id: 'research-topics',
234
+ version: 1,
235
+ category: 'research',
236
+ defaults: {
237
+ state: 'dormant',
238
+ category: 'research',
239
+ title: '研究选题',
240
+ description: '每周从自选股与市场主线里挑出 3 个值得深挖的选题,写清问题、证据与核查步骤。',
241
+ trigger: { ...WEEKLY_TRIGGER, time: '14:00', weekdays: [7] },
242
+ instruction: '生成下周研究选题:从自选股与本周市场主线里筛出 3 个最值得深挖的标的或主题,每个写清为什么是现在、核心问题、需要哪些证据(数据/文件/口径)、先做哪 2–3 步核查,并按时间敏感度排序;证据不足的候选直接剔除。不要写成完整研报,也不要把新闻标题当结论。',
243
+ cwdKind: 'profile',
244
+ limits: { ...DEFAULT_LIMITS },
245
+ notifications: { ...DEFAULT_NOTIFICATIONS },
246
+ },
247
+ },
248
+ {
249
+ id: 'earnings-tracker',
250
+ version: 1,
251
+ category: 'research',
252
+ defaults: {
253
+ state: 'dormant',
254
+ category: 'research',
255
+ title: '财报跟踪',
256
+ description: '每周跟踪自选股已披露与即将披露的财报,对比预期、列要盯的指标与验证点。',
257
+ trigger: { ...WEEKLY_TRIGGER, time: '16:00', weekdays: [7] },
258
+ instruction: '生成财报跟踪:先看过去一周自选股(含已标持仓)已披露的财报——营收、利润、毛利率与指引相对一致预期的差异(预期取不到就写「未取到」)、一次性项目与会计口径变化,以及哪些判断被验证或推翻;再看未来两周的财报预约,逐只写披露日期、一致预期、要盯的 3 个指标与情景。没有自选股财报时直接说明,并给下一次披露窗口与现在该补的数据,不要硬凑。',
259
+ cwdKind: 'profile',
260
+ limits: { ...DEFAULT_LIMITS },
261
+ notifications: { ...DEFAULT_NOTIFICATIONS },
262
+ },
263
+ },
264
+ {
265
+ id: 'week-ahead-calendar',
266
+ version: 1,
267
+ category: 'monitor',
268
+ defaults: {
269
+ state: 'dormant',
270
+ category: 'monitor',
271
+ title: '下周事件日历',
272
+ description: '汇总自选股与全市场的下周事件:财报、解禁、股东大会、宏观数据与政策窗口。',
273
+ trigger: { ...WEEKLY_TRIGGER, time: '18:00', weekdays: [7] },
274
+ instruction: '生成下周事件日历:先列自选股(含已标持仓)的财报预约、解禁、股东大会、分红与停复牌,再列宏观数据发布、重要会议与政策窗口;逐条写日期时间、影响哪个标的或板块、要提前准备什么。同一天按影响大小排序,日期不确定的标「待确认」并说明依据;没有事件的日期不用占位。',
275
+ cwdKind: 'profile',
276
+ limits: { ...DEFAULT_LIMITS },
277
+ notifications: { ...DEFAULT_NOTIFICATIONS },
278
+ },
279
+ },
280
+ {
281
+ id: 'market-weekly',
282
+ version: 1,
283
+ category: 'market',
284
+ defaults: {
285
+ state: 'dormant',
286
+ category: 'market',
287
+ title: '市场周报',
288
+ description: '每周复盘指数、量能、板块轮动与资金面,给出市场状态、自选股所处环境与下周关键位。',
289
+ trigger: { ...WEEKLY_TRIGGER, time: '20:00', weekdays: [7] },
290
+ instruction: '生成本周市场周报:覆盖指数与量能、涨跌家数与风格、板块轮动的一句话结论、北向与两融、ETF 申赎等可核实的资金口径;用趋势、波动、广度与事件背景给出本周市场状态的一句话判断,再写下周关键位、需要验证的假设与最大风险。数据取不到就写缺口,不用记忆里的数补位;行业与主题的细账不在这里展开,也不把单一板块的强势当成全市场结论。',
291
+ cwdKind: 'profile',
292
+ limits: { ...DEFAULT_LIMITS },
293
+ notifications: { ...DEFAULT_NOTIFICATIONS },
294
+ },
295
+ },
296
+ {
297
+ id: 'portfolio-risk-monthly',
298
+ version: 1,
299
+ category: 'portfolio',
300
+ defaults: {
301
+ state: 'dormant',
302
+ category: 'portfolio',
303
+ title: '组合风险月报',
304
+ description: '每月按自选股里标记的持仓检查集中度、暴露与流动性风险,列出未评估项与要补充的信息。',
305
+ trigger: { ...MONTHLY_TRIGGER, time: '20:30', dayOfMonth: 'last' },
306
+ instruction: '生成月度组合风险报告:以自选股里用户标记的持仓与自报权重为准,检查单票、行业、市场与币种集中度,同向暴露、流动性与事件风险;有可靠数据时再做简单的历史情景或波动测算,并写清口径与假设,数据不足的部分标「未评估」,不填 0 也不称「安全」。结尾给下月要复核的风险点与需要用户补充的信息(成本、期限、风险预算)。',
80
307
  cwdKind: 'profile',
81
308
  limits: { ...DEFAULT_LIMITS },
82
309
  notifications: { ...DEFAULT_NOTIFICATIONS },