@v587d/capital-generation 2.7.5 → 2.7.7

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 (35) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +6 -6
  3. package/THIRD_PARTY_NOTICES.md +12 -10
  4. package/capital-config/client.js +2 -2
  5. package/capital-config/package.json +1 -1
  6. package/capital-watchlist/package.json +1 -1
  7. package/chart-ui/package.json +1 -1
  8. package/lib/agents/selected-skills-provider.js +91 -41
  9. package/lib/index.js +3 -2
  10. package/lib/web-retriever/local-fetch.d.ts +1 -1
  11. package/lib/web-retriever/local-fetch.js +1 -1
  12. package/lib/web-retriever/wind-client.d.ts +1 -1
  13. package/lib/web-retriever/wind-client.js +1 -1
  14. package/package.json +1 -1
  15. package/selected-skills/InvestSkill/UPSTREAM.md +2 -2
  16. package/selected-skills/catalog.js +105 -10
  17. package/selected-skills/claude-for-financial-services-cn/UPSTREAM.md +49 -37
  18. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-catalyst-calendar/SKILL.md +1 -1
  19. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps-analysis/SKILL.md +1 -1
  20. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-idea-generation/SKILL.md +24 -20
  21. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-initiating-coverage/SKILL.md +1 -1
  22. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-morning-note/SKILL.md +27 -41
  23. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-sector-overview/SKILL.md +1 -1
  24. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-thesis-tracker/SKILL.md +22 -18
  25. package/selected-skills/trading-skills/UPSTREAM.md +30 -16
  26. package/selected-skills/trading-skills/skills/catalyst-map/SKILL.md +1 -1
  27. package/selected-skills/trading-skills/skills/evidence-gap-check/SKILL.md +1 -1
  28. package/selected-skills/trading-skills/skills/execution-plan-check/SKILL.md +1 -1
  29. package/selected-skills/trading-skills/skills/journal-pattern-analyzer/SKILL.md +1 -1
  30. package/selected-skills/trading-skills/skills/portfolio-concentration/SKILL.md +1 -1
  31. package/selected-skills/trading-skills/skills/position-management/SKILL.md +1 -1
  32. package/selected-skills/trading-skills/skills/position-sizing/SKILL.md +1 -1
  33. package/selected-skills/trading-skills/skills/position-sizing/references/calculation-helpers.md +3 -1
  34. package/selected-skills/trading-skills/skills/thesis-validation/SKILL.md +1 -1
  35. package/selected-skills/trading-skills/skills/watchlist-review/SKILL.md +1 -1
@@ -5,34 +5,37 @@ description: Systematic stock screening and investment idea sourcing for A-share
5
5
 
6
6
  # china-idea-generation
7
7
 
8
+ > 本文件相对上游 `d7585ca` 快照做过合规改写(取数与凭据口径),逐条记在快照根目录的 UPSTREAM.md;方法论、阈值与输出模板未改。
9
+
8
10
  ## Purpose
9
11
 
10
12
  Systematically surface new **A股投资机会** through quantitative screens, thematic analysis, and pattern recognition.
11
13
 
12
14
  ## Data Sources
13
15
 
14
- ### Primary: iFind MCP (Tier-1 付费) / AkShare MCP (Tier-2 免费备选)
16
+ A screen is a set of conditions applied to numbers somebody else handed back, and this step retrieves none of them: the plugin has one retrieval entry — the main agent delegating to the role that owns structured data or web and disclosure material — and it holds no data-service key and runs no query from here.
15
17
 
16
- ```python
17
- get_market_overview() → Top gainers, losers, most active
18
- get_quote(ticker) → Price, PE, PB, market cap
19
- get_historical_data(ticker) → Price trends, momentum
20
- get_financials(ticker, "income") → Financial metrics
21
- get_financials(ticker, "balance") → Balance sheet health
22
- get_industry_stocks(industry="...") → Peer comparison
23
- ```
18
+ 发 brief 时按族写清标的或筛选条件、要的字段与 as-of 日期:
19
+
20
+ - 全市场快照:涨跌幅榜、成交额榜与异动名单
21
+ - 候选池的行情与估值:价格、PE / PB、市值,以及一段价格序列(动量与形态要用同一段区间)
22
+ - 财务口径:利润表与资产负债表的关键科目(筛选阈值那一节按这些数下判断)
23
+ - 分类与同业:行业分类口径下的成分股清单,以及同一批字段(一次 brief,别逐个问)
24
24
 
25
25
  ### Secondary Screening Data
26
26
 
27
- | Data | Source | Use |
28
- |------|--------|-----|
29
- | 龙虎榜 (Dragon-Tiger list) | 东方财富 | Unusual activity, institutional interest |
27
+ | Data | 披露/发布方 | Use |
28
+ |------|-------------|-----|
29
+ | 龙虎榜 (Dragon-Tiger list) | 交易所每日榜单 | Unusual activity, institutional interest |
30
30
  | 北向资金 (Northbound flows) | 沪深港通 | Foreign investor sentiment |
31
31
  | 融资融券 (Margin trading) | 交易所 | Leverage and sentiment |
32
- | 股东人数变化 | 巨潮 | Institutional accumulation/distribution |
33
- | 机构持仓 | 季报/F10 | Fund ownership trends |
32
+ | 股东人数变化 | 定期报告与公告 | Institutional accumulation/distribution |
33
+ | 机构持仓 | 季报 / F10 | Fund ownership trends |
34
34
  | 大宗交易 (Block trades) | 交易所 | Smart money signals |
35
35
 
36
+ 这几档同样按"要哪个字段"写进 brief,由检索侧决定去哪儿取;哪一档没回来就在筛选记录里写明它缺席,
37
+ 不许凭印象把它算进或排除。北向那一档按宿主返回的口径转述——实时买卖明细已停止披露,别写成"净买入"。
38
+
36
39
  ## Workflow
37
40
 
38
41
  ### Step 1: Define Screen Criteria
@@ -211,13 +214,16 @@ Output: Event-driven opportunities
211
214
  - **Medium**: Good thesis, catalyst timeline uncertain
212
215
  - **Low**: Exploratory, needs more research
213
216
 
217
+ 清单里的 Idea Type(Long / Short)、信念档与后面那条仓位设想,是把筛选结果写成一个结论的**推演练习**:
218
+ 本插件没有券商接口,不据它下单,也不会替你建任何一笔仓;它同样不去替你决定这笔做不做。
219
+
214
220
  ### Step 7: Monitor & Update
215
221
 
216
222
  **Ongoing tracking:**
217
223
  - Weekly price and news updates
218
- - Catalyst tracking (china-catalyst-calendar)
224
+ - Catalyst tracking(事件日期与是否落地,逐条复查)
219
225
  - Thesis validation / invalidation
220
- - Position sizing recommendations
226
+ - Position sizing recommendations(若使用者要一个仓位,按宿主的风险预算口径把算式写出来给他看,不落成订单)
221
227
 
222
228
  **Update triggers:**
223
229
  - Earnings results
@@ -271,7 +277,5 @@ Before delivering ideas list:
271
277
  - [ ] Conviction levels assigned
272
278
  - [ ] Liquidity verified (tradable)
273
279
  - [ ] Regulatory/compliance review passed
274
- > **Data Source Mode Switch**: Set env var `IFIND_DATA_SOURCE_MODE` to control data source preference.
275
- > - `ifind-only` (strict): Use iFind only, error if unavailable
276
- > - `ifind-fallback` (default): iFind preferred, fallback to AkShare
277
- > - `akshare-only, wind-only (Wind only), wind-fallback (Wind first, fallback to iFind → AkShare)`: Skip iFind, use AkShare only
280
+
281
+ > 取数档位(接哪家数据服务、用哪个密钥)由宿主的凭据域决定:这份选股清单不配置它,也不向使用者索取凭据。
@@ -268,4 +268,4 @@ Before delivering:
268
268
  - [ ] All citations complete
269
269
  - [ ] Compliance disclosures included
270
270
  > 取数档位(接哪家数据服务、用哪个密钥)由宿主的凭据域决定:这份报告不配置它,也不向使用者索取凭据。
271
- > 报告里的评级五档与目标价是把上面这些材料写成一个结论的**推演练习**:本插件不据它下单,也不给仓位。
271
+ > 报告里的评级五档与目标价是把上面这些材料写成一个结论的**推演练习**:本插件没有券商接口,不据它下单,也不会替你执行任何一笔。
@@ -5,64 +5,45 @@ description: Daily morning research note for A-share markets. Summarizes overnig
5
5
 
6
6
  # china-morning-note
7
7
 
8
+ > 本文件相对上游 `d7585ca` 快照做过合规改写(取数与凭据口径),逐条记在快照根目录的 UPSTREAM.md;方法论、阈值与输出模板未改。
9
+
8
10
  ## Purpose
9
11
 
10
12
  Draft concise **A股晨会纪要/每日策略**, summarizing overnight developments and pre-market sentiment for the Chinese equity market. Designed for the typical Chinese sell-side 晨会 format (typically 7:00-8:30 AM before market open).
11
13
 
12
- ## Data Sources (Multi-Tier)
13
-
14
- ### Tier 0 — 万得 Wind(最全面付费数据)
15
- - 覆盖:A股/港美股/基金/指数/债券/宏观/研报/分析(44个工具)
16
- - MCP 服务:`wind-mcp`(需 `WIND_API_KEY` 密钥,以 `ak_` 开头)
17
- - 优势:全市场覆盖面最广、数据最全面、包含研报和量化分析
18
- - 密钥申请:https://aifinmarket.wind.com.cn/#/home
19
-
20
- ### Tier 1 - Tonghuashun iFind (paid)
21
- ```python
22
- ifind_search_news(query) -> Real-time financial news
23
- ifind_search_trending_news() -> Trending events
24
- ifind_index_data(query) -> Index data
25
- ifind_sector_data(query) -> Sector data
26
- ```
27
-
28
- ### Tier 2 - AkShare / Other (free, fallback)
14
+ ## Data Sources
29
15
 
30
- > Data source mode: `IFIND_DATA_SOURCE_MODE=ifind-only` for iFind-only mode.
16
+ A morning note is assembled before the open from material this step does not fetch: the plugin has one retrieval entry — the main agent delegating it to the role that owns market data or web and disclosure material — and this note holds no data-service key and issues no query of its own.
31
17
 
32
- ## Data Sources (Legacy)
18
+ 按族发 brief,每条写明标的或指标、要的字段与 as-of 日期:
33
19
 
34
- ### Market Data
20
+ - 指数与全市场:四大指数(上证 / 深证成 / 创业板 / 科创50)上一交易日收盘、涨跌家数、成交额;全市场新闻流
21
+ - 隔夜与外盘:美股三大指数、恒生、原油 / 铜 / 黄金、USD/CNY
22
+ - 资金与情绪:北向与南向的成交口径、两融余额、龙虎榜异动名单
23
+ - 公司要闻与披露:前一晚与今晨的公告(业绩预告、增减持、重大合同、回购)、已有研报条目
24
+ - 事件日历:今日披露、解禁、股东大会、业绩说明会、宏观数据发布
35
25
 
36
- ```python
37
- get_market_overview() → Top gainers, losers, most active
38
- get_index_data("000001") → 上证指数
39
- get_index_data("399001") → 深证成指
40
- get_index_data("399006") → 创业板指
41
- get_index_data("000688") → 科创50
42
- get_stock_news(ticker="") → Market headlines
43
- ```
44
-
45
- ### News & Sentiment
26
+ | 材料 | 由谁取 | 注意 |
27
+ |------|--------|------|
28
+ | 行情、指数、资金口径 | 宿主结构化取数,回传为数据集引用 | 全套统一 as-of;晨会的写法是"前一交易日收盘 + 今晨可用信息" |
29
+ | 公告、政策原文、监管通报 | 宿主的披露与网页检索(正文过长时由其解析成可读文本) | 引用落到具体文件与时点 |
30
+ | 宏观指标 | 把发布方与频率列进检索 brief(见下表) | 取不到就写成缺口,不折算成记忆里的数 |
46
31
 
47
- | Source | Coverage |
48
- |--------|----------|
49
- | china-news MCP | Stock-specific and market headlines from 东方财富 |
50
- | 财联社 | Real-time financial news |
51
- | 华尔街见闻 | Macro and market news |
52
- | 证券时报 | Regulatory and market news |
53
- | 中国新闻网 / 新华社 | Policy announcements |
32
+ 披露场所与资讯站点由检索侧决定去哪儿取:这份纪要只写"要哪一类文件",不把某个站点或某家服务商的工具当取数指令。
33
+ 没回来的那一档在正文里写成"未取到",不要让前一天早上的数字冒充今天的。
54
34
 
55
- ### Macro Data (if relevant)
35
+ ### Macro context (which indicators matter, and their release cadence)
56
36
 
57
- | Data | Source | Frequency |
37
+ | Data | 发布方 | Frequency |
58
38
  |------|--------|-----------|
59
39
  | PMI (制造业/非制造业) | 国家统计局 | Monthly |
60
40
  | CPI / PPI | 国家统计局 | Monthly |
61
41
  | Social financing / M2 | 央行 | Monthly |
62
42
  | FX rate (USD/CNY) | 中国外汇交易中心 | Daily |
63
43
  | Bond yields (10Y CGB) | 中国债券信息网 | Daily |
64
- | 北向资金 | 沪深港通 | Daily |
65
- | Southbound 南向资金 | 沪深港通 | Daily |
44
+ | 北向 / 南向资金 | 沪深港通 | Daily |
45
+
46
+ 北向那一档按宿主返回的口径转述:实时买卖明细已停止披露,不要把取到的成交额写成"净买入"。
66
47
 
67
48
  ## Workflow
68
49
 
@@ -181,6 +162,9 @@ For each idea:
181
162
  - Flag high-conviction ideas vs. lower-conviction
182
163
  - Include risk management notes (止损位, 仓位建议)
183
164
 
165
+ 【今日策略】里的方向(Long / Short / Watch)、止损位与仓位写法,是把上面这些材料写成一个结论的**推演练习**:
166
+ 本插件没有券商接口,不据它下单,也不会替你执行任何一笔。
167
+
184
168
  **Typical length:**
185
169
  - 300-600 words for daily note
186
170
  - 800-1,500 words for weekly strategy piece
@@ -225,3 +209,5 @@ Before delivering:
225
209
  - [ ] Event calendar complete
226
210
  - [ ] Risk factors included
227
211
  - [ ] Tone appropriate for morning meeting format
212
+
213
+ > 取数档位(接哪家数据服务、用哪个密钥)由宿主的凭据域决定:这份晨会纪要不配置它,也不向使用者索取凭据。
@@ -254,4 +254,4 @@ Before delivering:
254
254
  - [ ] Ideas shortlist included (3-5 names)
255
255
  - [ ] Risk factors specific to China market included
256
256
  > 取数档位(接哪家数据服务、用哪个密钥)由宿主的凭据域决定:这份行业报告不配置它,也不向使用者索取凭据。
257
- > Step 8 的 Long / Short 一览与第七节的重点标的、目标价、评级是把上面这些材料写成结论的**推演练习**:本插件不据它下单,也不给仓位。
257
+ > Step 8 的 Long / Short 一览与第七节的重点标的、目标价、评级是把上面这些材料写成结论的**推演练习**:本插件没有券商接口,不据它下单,也不会替你执行任何一笔。
@@ -5,29 +5,31 @@ description: Maintain and update investment theses for A-share portfolio positio
5
5
 
6
6
  # china-thesis-tracker
7
7
 
8
+ > 本文件相对上游 `d7585ca` 快照做过合规改写(取数与凭据口径),逐条记在快照根目录的 UPSTREAM.md;方法论、阈值与输出模板未改。
9
+
8
10
  ## Purpose
9
11
 
10
12
  Track and maintain **A股投资逻辑/thesis** for portfolio positions and watchlist names, ensuring thesis validity is continuously monitored.
11
13
 
12
14
  ## Data Sources
13
15
 
14
- ### Primary: iFind MCP (Tier-1 付费) / AkShare MCP (Tier-2 免费备选)
16
+ A thesis review is only as good as what came back since the last one, and this step fetches none of it: the plugin has one retrieval entry — the main agent delegating to the role that owns structured data or disclosure and web material — and it holds no data-service key here.
15
17
 
16
- ```python
17
- get_quote(ticker) → Current price, valuation
18
- get_historical_data(ticker) → Price trajectory
19
- get_financials(ticker, "income") → Financial performance
20
- # News (china-news MCP — separate server)
21
- get_stock_news(ticker="{{TICKER}}") → News affecting thesis
22
- get_industry_stocks(industry="...") → Peer context
23
- ```
18
+ Send out briefs naming the ticker, the fields wanted and the as-of date:
19
+
20
+ - 行情与估值:最新价与估值、一段股价历史(从论点建立那天到今天)
21
+ - 财务与 KPI:三表里论点盯着的那些科目,加上公司专属 KPI(批价、动销、订单…)
22
+ - 股东与资金口径:股本结构与股东变化、成分与资金流口径——写成字段,不写成站点或工具
23
+ - 披露与新闻:定期报告与公告、业绩说明会材料、已有研报条目、行业与公司新闻
24
24
 
25
- ### Secondary Sources
25
+ | 材料 | 由谁取 | 注意 |
26
+ |------|--------|------|
27
+ | 财务与行情数字 | 宿主结构化取数,回传为数据集引用 | 与上一次复核用同一段区间,否则变化没得比 |
28
+ | 公告 / 说明会纪要 / 研报 | 宿主的披露与网页检索(正文过长时由其解析成可读文本) | 引用落到具体文件与日期 |
29
+ | 公司专属 KPI | 检索侧按行业口径去找 | 这类高频口径常常没有公开来源;取不到就只留能证实的部分,写明来源与时点 |
26
30
 
27
- - 巨潮公告 — corporate actions and filings
28
- - 业绩说明会 — management commentary
29
- - 券商研报 — analyst updates
30
- - Wind / Choice — ownership and flow data
31
+ 股东结构与资金流那几档按字段交代即可,服务商名不出现在这份逻辑里。哪个口径没回来,就在"数据追踪"那一节写成缺口,
32
+ 不用记忆里的价格、持仓或批价补上。
31
33
 
32
34
  ## Workflow
33
35
 
@@ -170,6 +172,10 @@ get_industry_stocks(industry="...") → Peer context
170
172
  - [Key metrics to watch]
171
173
  ```
172
174
 
175
+ 第五节那个决策(Maintain / Add / Reduce / Exit)与前面的目标价、止损位、置信度,是把材料写成一个结论的**推演练习**:
176
+ 本插件没有券商接口,不据它下单,也不会替你加减任何一笔仓。使用者的实际持仓与成本由使用者提供,
177
+ 缺了就只复查逻辑、不给加减建议。
178
+
173
179
  ### Step 7: Portfolio-Level Review
174
180
 
175
181
  **Aggregate view:**
@@ -231,7 +237,5 @@ Before delivering thesis update:
231
237
  - [ ] Risk factors updated
232
238
  - [ ] Action recommendation clear
233
239
  - [ ] Next review date set
234
- > **Data Source Mode Switch**: Set env var `IFIND_DATA_SOURCE_MODE` to control data source preference.
235
- > - `ifind-only` (strict): Use iFind only, error if unavailable
236
- > - `ifind-fallback` (default): iFind preferred, fallback to AkShare
237
- > - `akshare-only`: Skip iFind, use AkShare only
240
+
241
+ > 取数档位(接哪家数据服务、用哪个密钥)由宿主的凭据域决定:这份逻辑跟踪不配置它,也不向使用者索取凭据。
@@ -31,18 +31,21 @@
31
31
  两者都不进 catalog、也不进发布包(见 Packaging),按"不进 catalog 的正文一律不动"原样保留。
32
32
  2. **删除上游的 `.gitignore`。** 被排除的 ignore 规则会在本仓继续生效,并把"按 commit 重导"的快照
33
33
  与所钉 commit 弄成两种样子(InvestSkill 那一轮就是三个文件被静默挡掉)。vendored 快照不把 ignore 规则带进宿主仓库。
34
- 3. **取数与执行面口径改写**:8 份 `SKILL.md` + 2 份 `references/calculation-helpers.md`,
35
- 共 17 处句子级改动(+34 / −13 行)。分析结论、判定档位词汇(`must-watch` / `fragile` / `too concentrated` 一类)、
34
+ 3. **取数与执行面口径改写**:10 份 `SKILL.md` + 3 份 `references/calculation-helpers.md`,
35
+ 共 20 处句子级改动(+46 / −20 行)。分析结论、判定档位词汇(`must-watch` / `fragile` / `too concentrated` 一类)、
36
36
  输入清单、输出顺序与 `references/` 的框架、阈值文档一字未改。
37
37
  本颗**没有** `web search` 与记忆回填那一族(`web search` 零命中;每颗都写"缺什么就点名缺、别编",
38
38
  `example-mode` 指使用者自带的示例数据并要求标注,不是逃生口),换的是另外三种形态:
39
- - **谁去取数(6 处)**:`catalyst-map`、`watchlist-review`、`evidence-gap-check`、`thesis-validation`、
39
+ - **谁去取数(7 处)**:`catalyst-map`、`watchlist-review`、`evidence-gap-check`、`thesis-validation`、
40
40
  `execution-plan-check`、`portfolio-concentration` 各有一句 `Do not fetch live data unless the user
41
41
  explicitly asks to pair this skill with …`。前半句的意图(别自己去堆一堆数据)保留,
42
- 后半句改成"确实缺一个日期或一个字段时,把标的、字段、as-of 日期写成 brief 交给宿主取数通道——
42
+ 后半句改成"确实缺一个日期或一个字段时,把标的、字段、as-of 日期写成交给宿主取数通道——
43
43
  角色分流的宿主里就是负责检索与行情的角色——用回来的东西继续,剩下的照旧标为未知"。
44
44
  顺带这三句原本点名的 `earnings-preview` / `macro-event-analysis` 不在可选清单里(见下面的收录判断)。
45
- - **没有 shell 就算不了(2 + 2 处)**:`journal-pattern-analyzer:49` 与 `risk-reward-sanity-check:52` 的
45
+ 本轮收录 `position-management` 时同一句按同一改法处理:这颗原本靠这句守住"不自己堆数据、
46
+ 要不要拉一份行情是使用者点的事",闸门只认 `fetch live` 与 `pair this skill` 两个词形,
47
+ 所以改完必须自己核对语义还在——现在它写的是"这份复查不出网,缺什么由主 Agent 决定要不要委派去取"。
48
+ - **没有 shell 就算不了(2 + 4 处)**:`journal-pattern-analyzer:49` 与 `risk-reward-sanity-check:52` 的
46
49
  `For agents that support code execution, use [references/calculation-helpers.md] …` 改成
47
50
  "本插件的分析角色没有 shell,也不跑 helper 脚本:统计量交给宿主数据侧(角色分流的宿主里委派做统计与质量校验的角色),
48
51
  三笔以内可以在答复里手算并把算式写出来,缺输入的条目留空不补默认值";
@@ -50,29 +53,40 @@
50
53
  改写成"这些量是什么、怎么取"(公式按上游 `_lib/calculations.py` 的实现核对:
51
54
  `risk_reward_ratio` = |target−entry| / |entry−stop| 每单位、`expectancy` = 胜率×均盈 − 败率×均亏,
52
55
  `kelly_fraction` 只是参照值,不作为交给使用者的仓位)。
56
+ 本轮收录 `position-sizing` 时同一族又落两处:它的 `SKILL.md:52` 与 `references/calculation-helpers.md:3`
57
+ 原本也是那句"能跑代码的宿主去用共享模块"——这颗自己不带取数,所以要改的只有这一处形状:
58
+ 按 `references/methodology.md` 的基础算式(`position size = allowed trade risk / per-unit realized risk`)
59
+ 在答复里把式子写出来,波动率一类统计量交给 `data_junior`。
53
60
  - **点名的下一步 skill 未必存在(7 处)**:`catalyst-map`、`watchlist-review`、`evidence-gap-check`、
54
61
  `thesis-validation`、`journal-pattern-analyzer`、`execution-plan-check`、`portfolio-concentration` 的
55
62
  `Next Skill` 清单原句保留,各加同一句前置条件与退路(InvestSkill 那轮的改法):
56
- 点名的 skill 只有使用者显式开启才存在于会话里,本插件明确不提供的那两类(下单、给仓位)永远不存在,
57
- 只能说成选项、不能替使用者跑。
63
+ 点名的 skill 只有使用者显式开启才存在于会话里,本插件明确不提供的那一类(替使用者下单与改单)永远不存在,
64
+ 只能说成选项、不能替使用者跑。这句原本写的是"(下单、给仓位)两类"——本轮起仓位测算已收录,
65
+ 留着就成了假话,七处与第六颗同一句一起改成执行面口径。
58
66
  **没有新增 `Retrieval:` 出处档**:上游根本没有这个枚举(§8.6 第 3 条不适用),
59
67
  不为了套前几颗的改法新造上游没有的模板字段。
60
68
 
61
- - 收录判断(19 颗里 9 颗进 catalog,10 颗留在快照里当可审查材料):
69
+ - 收录判断(19 颗里 11 颗进 catalog,8 颗留在快照里当可审查材料,其中 `etoro` 连发布包都不进):
62
70
  - **进**:`catalyst-map`、`watchlist-review`、`evidence-gap-check`、`thesis-validation`、
63
71
  `risk-reward-sanity-check`、`execution-plan-check`、`portfolio-concentration`、
64
- `journal-pattern-analyzer`、`post-trade-review`。
72
+ `journal-pattern-analyzer`、`post-trade-review`,本轮再加 `position-sizing` 与 `position-management`。
65
73
  `post-trade-review` 一字未动就过闸门(全文无取数、无脚本、无出图,只在 `references/review-rubric.md`
66
74
  里举了一条"高冲击数据日把仓位减 25%"的过程规则例子 → `riskNote` 写明属于过程推演)。
75
+ 新收那两颗的输出形状:`position-sizing` 索取 account equity / risk budget / entry / stop,给
76
+ `Position Recommendation`(股数、合约数、占账户风险的百分比);`position-management` 复查在手持仓,
77
+ 给 `hold, trim, tighten risk, close, or wait` 与 `Best Next Action`。两颗都不取数、不碰凭据、不产文件,
78
+ 所以要动的只有上面那处"能跑代码的宿主"退路句与那一句护栏,判定逻辑一字未改。
79
+ - **本轮判据纠正的记录**:这两颗当初按"给仓位数字与持仓加减动作"整颗不收,写的理由是
80
+ 「评级、买卖动作和仓位决策属于明确冲突,不能直接集成」——那是把 §8.6 第 7 条读成了内容禁令。
81
+ 本插件不收的从来是**执行面**:没有券商接口,不替使用者下单或改单(第 4 条;`etoro` 至今按这条不收,
82
+ 也不进发布包)。仓位数字与加减建议在正文里属于方法推演,收录之后由 catalog 的 `riskNote` 承担口径,
83
+ 正文的"不据它执行"那句也跟着写在 `Next Skill` 前置条件里。同一条误读在第六颗挡掉三颗
84
+ (见 `selected-skills/claude-for-financial-services-cn/UPSTREAM.md`),两处一起纠正。
67
85
  - **不进 · 执行面**:`etoro`。它是券商公开 API 的操作手册:`SKILL.md:18` "**Keys (request from the user on install)**"
68
86
  与逐步生成密钥的说明、`x-api-key` / `x-user-key` 请求头、`curl -X POST …/trading/execution/…market-open-orders/by-amount`
69
87
  带 `"IsBuy": true, "Leverage": 1`、"Use **non-demo execution endpoints** for real trading"、按 `positionId` 平仓,
70
88
  末尾还指到一个 MCP server。§8.6 第 4 条(执行面)与第 7 条(真实下单)双重排除;本插件不接券商、不下单、
71
89
  凭据只进 credentials 域(§5)。这颗连发布包都不进(`.npmignore`),全量仍住在 git 里。
72
- - **不进 · 仓位与买卖动作**:`position-sizing`(索取 account equity,输出 `Position Recommendation`:
73
- 股数/合约数/账户风险百分比)、`position-management`(`hold, trim, tighten risk, close, or wait` + `Best Next Action`)。
74
- 与 `docs/reference/external-skill-scan-2026-10.md` 观察名单里既写的同一口径:
75
- 「评级、买卖动作和仓位决策属于明确冲突,不能直接集成」。
76
90
  - **不进 · 接管会话路由**:`pre-trade-check`、`earnings-trade-prep`、`portfolio-risk-review`、`post-trade-debrief`
77
91
  四颗 workflow。上游自己的 "Workflow routing" 段按结果分流到 11–12 颗子 skill 并给出
78
92
  `ready` / `reject` / `hold through with conditions` 一类决断,与本插件的角色路由冲突
@@ -85,9 +99,9 @@
85
99
  另外 `earnings-preview` 与 catalog 里已收录的 InvestSkill 同名那颗**撞车**——provider 的启用集合只按 `name` 认,
86
100
  `test/persona.test.mjs` 钉住 name 全局唯一,收进来必然出问题。
87
101
  - `test/selected-skills-provider.test.mjs` 用「skills 根目录 − 排除清单」派生本颗的可选清单,
88
- `test/persona.test.mjs` 另把 `etoro` / `position-sizing` / `position-management` / `pre-trade-check` 明确断为不进 catalog。
102
+ `test/persona.test.mjs` 另把 `etoro` / `pre-trade-check` 明确断为不进 catalog(执行面与会话路由那一类)。
89
103
  - 复核方法:`git clone` 所钉 commit 后,把上游 `skills/<domain>/<name>` 与快照 `skills/<name>` 逐颗 `diff -r`——
90
- 差异只应包含以上三类(10 份文件、17 处句子级改动;其余 11 颗与 `_lib/`、`LICENSE` 逐字节相同)。
104
+ 差异只应包含以上三类(13 份文件、20 处句子级改动;其余 9 颗与 `_lib/`、`LICENSE` 逐字节相同)。
91
105
  `test/selected-skills-content.test.mjs` 扫正文**结果**、本文件记**理由**,两边任一漂回去都会红。
92
106
  - Packaging: 这颗带 `.npmignore`,挡的是非运行内容:`docs/`(上游文档站与 18 份 walkthrough)、
93
107
  `scripts/`(上游的 catalog 生成与仓库校验 python)、`.github/`、`catalog.json`(上游自己的索引,与本仓
@@ -104,7 +118,7 @@
104
118
  - Runtime status: `watchlist` / 默认关闭的显式实验。只有使用者在「插件」→ Capital Generation →「精选 Skills」
105
119
  里逐格打开,它们才对**之后新建**的 Capital 根 Agent 可见;子 Agent 不继承,上游脚本从不执行。
106
120
  能力标签带来的新词是 `trade-discipline`(交易纪律 / Trade discipline),市场口径继续用 `us-stock`;
107
- `riskNote` 里逐条写明各颗不做什么(不下单、不改单、不给仓位数字、不预测表现)。
121
+ `riskNote` 里逐条写明各颗不做什么(不预测表现;本插件没有券商接口,不据这些结论下单或改单)。
108
122
  - Review status: 2026-11-06 复查上游、许可证与维护状态。内容按美股与境外交易习惯写(SPY/QQQ/ES 期货、
109
123
  美股时段与盘前盘后、FINRA/Fidelity/Schwab 口径的集中度阈值、EURUSD 与 CFD/杠杆工具),
110
124
  **不声称适用 A 股**,也不得直接当作 A 股规则;它提供的是过程纪律而不是信号或收益承诺,
@@ -104,7 +104,7 @@ Always include:
104
104
  - what requires deeper prep now versus background monitoring
105
105
  - whether the next step is `earnings-preview`, `macro-event-analysis`, `market-regime-analysis`, `thesis-validation`, or no further action yet
106
106
 
107
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
107
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
108
108
 
109
109
  ## Best practices
110
110
 
@@ -105,7 +105,7 @@ Always include:
105
105
  - the single highest-value next research step
106
106
  - whether the user should move next to `thesis-validation`, `earnings-preview`, `macro-event-analysis`, `market-regime-analysis`, `watchlist-review`, or stay in research mode
107
107
 
108
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
108
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
109
109
 
110
110
  ## Best practices
111
111
 
@@ -106,7 +106,7 @@ Always include:
106
106
  - whether the plan should proceed, be resized, be restructured, or wait
107
107
  - whether the user should move next to `portfolio-concentration`, `position-sizing`, or back to `risk-reward-sanity-check`
108
108
 
109
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
109
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
110
110
 
111
111
  ## Best practices
112
112
 
@@ -105,7 +105,7 @@ Always include:
105
105
  - one or two process changes to test next
106
106
  - whether the next step is `post-trade-review`, a revised rule in the journal, or no additional skill yet
107
107
 
108
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
108
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
109
109
 
110
110
  ## Best practices
111
111
 
@@ -104,7 +104,7 @@ Always include:
104
104
  - any special risk from employer stock, narrow products, or illiquid holdings
105
105
  - whether the user should move next to `position-sizing`, reduce exposure first, or review a fuller portfolio snapshot
106
106
 
107
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
107
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
108
108
 
109
109
  ## Best practices
110
110
 
@@ -48,7 +48,7 @@ Use the user's materials first.
48
48
 
49
49
  If the original plan is missing, say that clearly and manage the position provisionally rather than inventing a clean prior plan.
50
50
 
51
- Do not fetch live data unless the user explicitly asks to pair this skill with another market-context or event-risk skill.
51
+ Nothing here goes and gets market material on its own: work from what the user handed over. When the review genuinely needs a current quote or a fresh event, that is the main agent's call to delegate through the host's single retrieval entry (naming the ticker, the fields and the as-of date); whether a market-context or event-risk companion is worth pulling in is the same routing call, not this skill's.
52
52
 
53
53
  ## Analysis process
54
54
 
@@ -49,7 +49,7 @@ If any key input is missing, state what is missing and stop rather than invent i
49
49
 
50
50
  Use [references/methodology.md](references/methodology.md) for sizing conventions and caveats. Use [assets/trade-plan-template.md](assets/trade-plan-template.md) when the user wants a reusable planning format.
51
51
 
52
- For agents that support code execution, use [references/calculation-helpers.md](references/calculation-helpers.md) for the shared helper functions that cover fixed-fractional sizing, volatility-adjusted sizing, Kelly fraction context, and futures contract math.
52
+ Use [references/calculation-helpers.md](references/calculation-helpers.md) for the quantities behind fixed-fractional sizing, volatility-adjusted sizing, Kelly fraction context, and futures contract math. This host has no shell: work each one from the base formula in [references/methodology.md](references/methodology.md) and show the arithmetic in the reply, handing volatility-type statistics to the data side (delegate `data_junior`).
53
53
 
54
54
  ## Output structure
55
55
 
@@ -1,6 +1,8 @@
1
1
  # Calculation Helpers
2
2
 
3
- For code-execution environments, reuse the shared repo helper at `skills/_lib/calculations.py`.
3
+ 这里没有能跑代码的宿主:本插件的分析角色不带 shell,也不复用上游那份共享计算模块(它不进发布包)。
4
+ 下面每个名字对应一个可以手算的量——按 [methodology.md](methodology.md) 的基础算式在答复里把式子写出来算,
5
+ 需要波动率一类的统计量时交给宿主数据侧(本插件里是委派 `data_junior`),不在这份附属文件里自己算历史序列。
4
6
 
5
7
  Relevant functions for this skill:
6
8
 
@@ -108,7 +108,7 @@ Always include:
108
108
  - the most important dependency or catalyst
109
109
  - whether the idea should move next to `market-regime-analysis`, `risk-reward-sanity-check`, `position-sizing`, or more research
110
110
 
111
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
111
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
112
112
 
113
113
  ## Best practices
114
114
 
@@ -104,7 +104,7 @@ Always include:
104
104
  - what additional prep each top name needs
105
105
  - whether the next step is `earnings-preview`, `macro-event-analysis`, `market-regime-analysis`, `thesis-validation`, or no further action yet
106
106
 
107
- A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and the ones this plugin deliberately does not offer — placing orders, setting position size — are not reachable at all. Say what you would check next and let the user decide.
107
+ A skill named above is an option for the user, not a step this role can take: only the skills the user switched on exist in this session, and what this plugin deliberately does not offer — placing or amending an order on the user's behalf — is not reachable at all. Say what you would check next and let the user decide.
108
108
 
109
109
  ## Best practices
110
110