@v587d/capital-generation 2.7.2 → 2.7.4

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 (181) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/README.md +10 -9
  3. package/THIRD_PARTY_NOTICES.md +116 -30
  4. package/capital-config/client.js +4 -4
  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/web-retriever/local-fetch.d.ts +1 -1
  9. package/lib/web-retriever/local-fetch.js +1 -1
  10. package/lib/web-retriever/sources.d.ts +1 -1
  11. package/lib/web-retriever/sources.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 +3 -1
  15. package/selected-skills/InvestSkill/UPSTREAM.md +9 -0
  16. package/selected-skills/README.md +6 -1
  17. package/selected-skills/catalog.js +353 -0
  18. package/selected-skills/china-stock-research-skills/UPSTREAM.md +2 -1
  19. package/selected-skills/claude-for-financial-services-cn/LICENSE +201 -0
  20. package/selected-skills/claude-for-financial-services-cn/UPSTREAM.md +173 -0
  21. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-3-statement-model/SKILL.md +287 -0
  22. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-accrual-schedule/SKILL.md +182 -0
  23. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-audit-xls/SKILL.md +231 -0
  24. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-break-trace/SKILL.md +217 -0
  25. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-catalyst-calendar/SKILL.md +258 -0
  26. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-clean-data-xls/SKILL.md +237 -0
  27. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps/SKILL.md +104 -0
  28. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps-analysis/SKILL.md +196 -0
  29. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-dcf/SKILL.md +81 -0
  30. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-dcf-model/SKILL.md +68 -0
  31. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-deal-screening/SKILL.md +212 -0
  32. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-deck-refresh/SKILL.md +221 -0
  33. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-earnings-analysis/SKILL.md +237 -0
  34. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-earnings-preview/SKILL.md +239 -0
  35. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-gl-recon/SKILL.md +232 -0
  36. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-ib-check-deck/SKILL.md +252 -0
  37. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-idea-generation/SKILL.md +277 -0
  38. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-initiating-coverage/SKILL.md +271 -0
  39. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-lbo-model/SKILL.md +273 -0
  40. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-market-data/SKILL.md +229 -0
  41. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-model-update/SKILL.md +219 -0
  42. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-morning-note/SKILL.md +227 -0
  43. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-ppt-template-creator/SKILL.md +231 -0
  44. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-pptx-author/SKILL.md +240 -0
  45. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-roll-forward/SKILL.md +189 -0
  46. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-sector-overview/SKILL.md +257 -0
  47. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-skill-creator/SKILL.md +304 -0
  48. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-tax-loss-harvesting/SKILL.md +200 -0
  49. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-thesis-tracker/SKILL.md +237 -0
  50. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-variance-commentary/SKILL.md +262 -0
  51. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-xlsx-author/SKILL.md +256 -0
  52. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-accrual-schedule/SKILL.md +190 -0
  53. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-break-trace/SKILL.md +182 -0
  54. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-gl-recon/SKILL.md +200 -0
  55. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-nav-tieout/SKILL.md +233 -0
  56. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-roll-forward/SKILL.md +178 -0
  57. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-variance-commentary/SKILL.md +190 -0
  58. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-buyer-list/SKILL.md +198 -0
  59. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-cim-builder/SKILL.md +223 -0
  60. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-competitive-analysis/SKILL.md +233 -0
  61. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-datapack-builder/SKILL.md +232 -0
  62. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-deal-tracker/SKILL.md +151 -0
  63. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-merger-model/SKILL.md +226 -0
  64. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-pitch-deck/SKILL.md +231 -0
  65. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-process-letter/SKILL.md +249 -0
  66. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-strip-profile/SKILL.md +196 -0
  67. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-teaser/SKILL.md +235 -0
  68. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/operations/skills/china-kyc-doc-parse/SKILL.md +252 -0
  69. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/operations/skills/china-kyc-rules/SKILL.md +223 -0
  70. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-ai-readiness/SKILL.md +184 -0
  71. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-dd-checklist/SKILL.md +217 -0
  72. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-dd-meeting-prep/SKILL.md +290 -0
  73. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-deal-sourcing/SKILL.md +224 -0
  74. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-ic-memo/SKILL.md +230 -0
  75. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-portfolio-monitoring/SKILL.md +214 -0
  76. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-returns-analysis/SKILL.md +176 -0
  77. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-unit-economics/SKILL.md +192 -0
  78. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-value-creation-plan/SKILL.md +193 -0
  79. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-client-report/SKILL.md +205 -0
  80. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-client-review/SKILL.md +218 -0
  81. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-financial-plan/SKILL.md +259 -0
  82. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-investment-proposal/SKILL.md +271 -0
  83. package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-portfolio-rebalance/SKILL.md +191 -0
  84. package/selected-skills/investment-skills/UPSTREAM.md +2 -1
  85. package/selected-skills/peter-lynch-skill/UPSTREAM.md +4 -3
  86. package/selected-skills/trading-skills/LICENSE +21 -0
  87. package/selected-skills/trading-skills/UPSTREAM.md +111 -0
  88. package/selected-skills/trading-skills/skills/catalyst-map/SKILL.md +119 -0
  89. package/selected-skills/trading-skills/skills/catalyst-map/references/catalyst-framework.md +68 -0
  90. package/selected-skills/trading-skills/skills/earnings-preview/SKILL.md +124 -0
  91. package/selected-skills/trading-skills/skills/earnings-preview/references/data-providers.md +26 -0
  92. package/selected-skills/trading-skills/skills/earnings-preview/references/providers/fmp.md +49 -0
  93. package/selected-skills/trading-skills/skills/earnings-preview/references/providers/polygon.md +45 -0
  94. package/selected-skills/trading-skills/skills/earnings-preview/references/providers/tradingeconomics.md +49 -0
  95. package/selected-skills/trading-skills/skills/earnings-preview/references/relevance-ranking.md +24 -0
  96. package/selected-skills/trading-skills/skills/earnings-trade-prep/SKILL.md +134 -0
  97. package/selected-skills/trading-skills/skills/earnings-trade-prep/references/workflow-framework.md +65 -0
  98. package/selected-skills/trading-skills/skills/evidence-gap-check/SKILL.md +120 -0
  99. package/selected-skills/trading-skills/skills/evidence-gap-check/references/gap-framework.md +66 -0
  100. package/selected-skills/trading-skills/skills/execution-plan-check/SKILL.md +121 -0
  101. package/selected-skills/trading-skills/skills/execution-plan-check/references/execution-checklist.md +70 -0
  102. package/selected-skills/trading-skills/skills/journal-pattern-analyzer/SKILL.md +120 -0
  103. package/selected-skills/trading-skills/skills/journal-pattern-analyzer/references/calculation-helpers.md +16 -0
  104. package/selected-skills/trading-skills/skills/journal-pattern-analyzer/references/pattern-framework.md +74 -0
  105. package/selected-skills/trading-skills/skills/macro-event-analysis/SKILL.md +122 -0
  106. package/selected-skills/trading-skills/skills/macro-event-analysis/references/data-providers.md +23 -0
  107. package/selected-skills/trading-skills/skills/macro-event-analysis/references/interpretation-guide.md +22 -0
  108. package/selected-skills/trading-skills/skills/macro-event-analysis/references/providers/fmp.md +28 -0
  109. package/selected-skills/trading-skills/skills/macro-event-analysis/references/providers/tradingeconomics.md +40 -0
  110. package/selected-skills/trading-skills/skills/market-regime-analysis/SKILL.md +117 -0
  111. package/selected-skills/trading-skills/skills/market-regime-analysis/references/data-providers.md +26 -0
  112. package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/fmp.md +46 -0
  113. package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/polygon.md +36 -0
  114. package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/tradingeconomics.md +46 -0
  115. package/selected-skills/trading-skills/skills/market-regime-analysis/references/regime-framework.md +23 -0
  116. package/selected-skills/trading-skills/skills/portfolio-concentration/SKILL.md +119 -0
  117. package/selected-skills/trading-skills/skills/portfolio-concentration/references/concentration-framework.md +72 -0
  118. package/selected-skills/trading-skills/skills/portfolio-risk-review/SKILL.md +126 -0
  119. package/selected-skills/trading-skills/skills/portfolio-risk-review/references/workflow-framework.md +57 -0
  120. package/selected-skills/trading-skills/skills/position-management/SKILL.md +120 -0
  121. package/selected-skills/trading-skills/skills/position-management/references/management-framework.md +70 -0
  122. package/selected-skills/trading-skills/skills/position-sizing/SKILL.md +83 -0
  123. package/selected-skills/trading-skills/skills/position-sizing/assets/trade-plan-template.md +15 -0
  124. package/selected-skills/trading-skills/skills/position-sizing/references/calculation-helpers.md +13 -0
  125. package/selected-skills/trading-skills/skills/position-sizing/references/methodology.md +28 -0
  126. package/selected-skills/trading-skills/skills/post-trade-debrief/SKILL.md +99 -0
  127. package/selected-skills/trading-skills/skills/post-trade-debrief/references/workflow-framework.md +51 -0
  128. package/selected-skills/trading-skills/skills/post-trade-review/SKILL.md +82 -0
  129. package/selected-skills/trading-skills/skills/post-trade-review/references/review-rubric.md +34 -0
  130. package/selected-skills/trading-skills/skills/pre-trade-check/SKILL.md +136 -0
  131. package/selected-skills/trading-skills/skills/pre-trade-check/references/workflow-framework.md +61 -0
  132. package/selected-skills/trading-skills/skills/risk-reward-sanity-check/SKILL.md +81 -0
  133. package/selected-skills/trading-skills/skills/risk-reward-sanity-check/references/calculation-helpers.md +14 -0
  134. package/selected-skills/trading-skills/skills/risk-reward-sanity-check/references/failure-modes.md +9 -0
  135. package/selected-skills/trading-skills/skills/thesis-validation/SKILL.md +123 -0
  136. package/selected-skills/trading-skills/skills/thesis-validation/references/thesis-checklist.md +56 -0
  137. package/selected-skills/trading-skills/skills/watchlist-review/SKILL.md +119 -0
  138. package/selected-skills/trading-skills/skills/watchlist-review/references/review-framework.md +57 -0
  139. package/selected-skills/InvestSkill/ADDING-NEW-SKILLS.md +0 -546
  140. package/selected-skills/InvestSkill/CHANGELOG.md +0 -373
  141. package/selected-skills/InvestSkill/CI-CD-GUIDE.md +0 -432
  142. package/selected-skills/InvestSkill/CLAUDE.md +0 -148
  143. package/selected-skills/InvestSkill/CONTRIBUTING.md +0 -291
  144. package/selected-skills/InvestSkill/DEPLOYMENTS.md +0 -321
  145. package/selected-skills/InvestSkill/FAQ.md +0 -509
  146. package/selected-skills/InvestSkill/GEMINI.md +0 -419
  147. package/selected-skills/InvestSkill/PLATFORM-COMPATIBILITY.md +0 -529
  148. package/selected-skills/InvestSkill/README-claude-code.md +0 -435
  149. package/selected-skills/InvestSkill/README-cursor.md +0 -475
  150. package/selected-skills/InvestSkill/README-gemini.md +0 -532
  151. package/selected-skills/InvestSkill/README-ollama.md +0 -106
  152. package/selected-skills/InvestSkill/README-zh-TW.md +0 -461
  153. package/selected-skills/InvestSkill/README.md +0 -311
  154. package/selected-skills/InvestSkill/RELEASE-QUICK-REFERENCE.md +0 -230
  155. package/selected-skills/InvestSkill/RELEASE_NOTES.md +0 -121
  156. package/selected-skills/InvestSkill/SECURITY.md +0 -232
  157. package/selected-skills/InvestSkill/TODO.md +0 -28
  158. package/selected-skills/InvestSkill/package.json +0 -64
  159. package/selected-skills/InvestSkill/plugins/us-stock-analysis/README.md +0 -119
  160. package/selected-skills/china-stock-research-skills/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
  161. package/selected-skills/china-stock-research-skills/.github/ISSUE_TEMPLATE/skill_request.md +0 -28
  162. package/selected-skills/china-stock-research-skills/.github/PULL_REQUEST_TEMPLATE.md +0 -15
  163. package/selected-skills/china-stock-research-skills/CHANGELOG.md +0 -59
  164. package/selected-skills/china-stock-research-skills/CONTRIBUTING.md +0 -121
  165. package/selected-skills/china-stock-research-skills/GITHUB_PUBLISHING.md +0 -259
  166. package/selected-skills/china-stock-research-skills/INSTALL.md +0 -151
  167. package/selected-skills/china-stock-research-skills/PUBLISH_CHECKLIST.md +0 -165
  168. package/selected-skills/china-stock-research-skills/README.en.md +0 -209
  169. package/selected-skills/china-stock-research-skills/README.md +0 -209
  170. package/selected-skills/china-stock-research-skills/RELEASE_ASSETS.md +0 -222
  171. package/selected-skills/china-stock-research-skills/ROADMAP.md +0 -45
  172. package/selected-skills/china-stock-research-skills/SKILLS.md +0 -85
  173. package/selected-skills/china-stock-research-skills/examples/full-report-flow.md +0 -20
  174. package/selected-skills/china-stock-research-skills/examples/module-select-cases.md +0 -26
  175. package/selected-skills/china-stock-research-skills/examples/quickstart-prompts.md +0 -25
  176. package/selected-skills/investment-skills/.github/workflows/validate.yml +0 -25
  177. package/selected-skills/investment-skills/.tbd/config.yml +0 -107
  178. package/selected-skills/investment-skills/README.md +0 -253
  179. package/selected-skills/investment-skills/docs/development.md +0 -37
  180. package/selected-skills/investment-skills/docs/roadmap.md +0 -25
  181. package/selected-skills/peter-lynch-skill/README.md +0 -305
@@ -5,7 +5,7 @@ window.__ModuleLoader__.load({
5
5
  var module = { exports: {} }
6
6
  var exports = module.exports
7
7
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' })
8
- "use strict";var D=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var ie=(t,e,i)=>()=>{if(i)throw i[0];try{return t&&(e=t(t=0)),e}catch(n){throw i=[n],n}};var ae=(t,e)=>{for(var i in e)D(t,i,{get:e[i],enumerable:!0})},se=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of ee(e))!te.call(t,l)&&l!==i&&D(t,l,{get:()=>e[l],enumerable:!(n=Z(e,l))||n.enumerable});return t};var ne=t=>se(D({},"__esModule",{value:!0}),t);var H={};ae(H,{SELECTED_SKILL_CATALOG:()=>oe,SELECTED_SKILL_SKILL_DIRS:()=>le,SELECTED_SKILL_TAG_LABELS:()=>re});var le,oe,re,U=ie(()=>{"use strict";le=Object.freeze({"investment-skills":"skills","china-stock-research-skills":"skills",InvestSkill:"plugins/us-stock-analysis/skills","peter-lynch-skill":"skills"}),oe=Object.freeze([{key:"buffettFramework",name:"buffett-investment-framework",label:{zh:"Buffett Investment Framework",en:"Buffett Investment Framework"},description:{zh:"\u4EE5\u8BC1\u636E\u4E3A\u57FA\u7840\u7684\u5546\u4E1A\u8D28\u91CF\u3001\u8D44\u672C\u914D\u7F6E\u3001\u4F30\u503C\u548C\u98CE\u9669\u5206\u6790\u6846\u67B6\u3002\u4E3B\u8981\u6E90\u4E8E\u7F8E\u80A1\u8BED\u5883\u3002",en:"Evidence-led business quality, capital allocation, valuation, and risk analysis. Primarily US-market oriented."},owner:"finterm-ai",repository:"investment-skills",status:"experimental",lastCommit:"2026-07-22",reviewBy:"2026-11-06",tags:["business-analysis","cash-flow","perspective","risk","valuation"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4E0D\u80FD\u76F4\u63A5\u5F53\u4F5C A \u80A1\u89C4\u5219\u6216\u6295\u8D44\u5EFA\u8BAE\u3002",en:"Experimental; do not treat it as A-share rules or investment advice."}},{key:"financialHealth",name:"financial-health",label:{zh:"\u8D22\u52A1\u5065\u5EB7",en:"Financial Health"},description:{zh:"\u68C0\u67E5\u76C8\u5229\u8D28\u91CF\u3001\u73B0\u91D1\u8F6C\u6362\u3001\u8425\u8FD0\u8D44\u672C\u3001\u6760\u6746\u548C\u8D44\u4EA7\u8D1F\u503A\u8868\u98CE\u9669\u3002",en:"Checks earnings quality, cash conversion, working capital, leverage, and balance-sheet risk."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","cash-flow","financial-health","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u7EF4\u62A4\u8F83\u4E45\u672A\u66F4\u65B0\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u5185\u5BB9\u548C\u6765\u6E90\u3002",en:"Cold-start experiment; upstream has been quiet, so review content and sources before use."}},{key:"riskWarningCatalysts",name:"risk-warning-catalysts",label:{zh:"\u98CE\u9669\u4E0E\u50AC\u5316\u5242\u76D1\u63A7",en:"Risk Warning Catalysts"},description:{zh:"\u628A\u7814\u7A76\u7ED3\u8BBA\u8F6C\u6210\u5E26\u6765\u6E90\u3001\u9608\u503C\u548C\u590D\u67E5\u9891\u7387\u7684\u98CE\u9669\u4E0E\u50AC\u5316\u5242\u76D1\u63A7\u9879\u3002",en:"Turns research into source-backed risk and catalyst monitoring with thresholds and review cadence."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","monitoring","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0D\u8D1F\u8D23\u4F30\u503C\u6216\u4EA4\u6613\u51B3\u7B56\u3002",en:"Cold-start experiment; it does not make valuation or trading decisions."}},{key:"valuationInvestmentStrategy",name:"valuation-investment-strategy",label:{zh:"\u4F30\u503C\u4E0E\u60C5\u666F\u5206\u6790",en:"Valuation Investment Strategy"},description:{zh:"\u5728\u4E8B\u5B9E\u57FA\u7840\u5B8C\u6210\u540E\u6784\u5EFA\u5E26\u5047\u8BBE\u3001\u60C5\u666F\u548C\u5931\u6548\u6761\u4EF6\u7684\u4F30\u503C\u6846\u67B6\u3002",en:"Builds valuation scenarios with assumptions and invalidation conditions after the factual base is ready."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","risk","valuation"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u8F93\u51FA\u4E0D\u7B49\u4E8E\u4E70\u5356\u6216\u4ED3\u4F4D\u5EFA\u8BAE\u3002",en:"Cold-start experiment; output is not a buy, sell, or position-size recommendation."}},{key:"strategyBusinessTransition",name:"strategy-business-transition",label:{zh:"\u6218\u7565\u4E0E\u4E1A\u52A1\u8F6C\u578B",en:"Strategy Business Transition"},description:{zh:"\u68C0\u9A8C\u516C\u53F8\u6218\u7565\u53D9\u4E8B\u3001\u4E1A\u52A1\u8FC1\u79FB\u3001\u8D44\u672C\u914D\u7F6E\u548C\u8F6C\u578B\u91CC\u7A0B\u7891\u3002",en:"Tests strategy narratives, business migration, capital allocation, and transition milestones."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","strategy","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0D\u8D1F\u8D23\u4F30\u503C\u6216\u4EA4\u6613\u8BA1\u5212\u3002",en:"Cold-start experiment; it does not make valuation or trading plans."}},{key:"industryCompetitionMoat",name:"industry-competition-moat",label:{zh:"\u884C\u4E1A\u7ADE\u4E89\u4E0E\u62A4\u57CE\u6CB3",en:"Industry Competition Moat"},description:{zh:"\u5206\u6790\u884C\u4E1A\u7ED3\u6784\u3001\u7ADE\u4E89\u683C\u5C40\u3001\u4F9B\u9700\u548C\u516C\u53F8\u5DEE\u5F02\u5316\u662F\u5426\u53EF\u6301\u7EED\u3002",en:"Analyzes industry structure, competition, supply-demand, and sustainable differentiation."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","business-analysis","competition","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u884C\u4E1A\u5224\u65AD\u4ECD\u9700\u56DE\u5230\u516C\u5F00\u8BC1\u636E\u3002",en:"Cold-start experiment; industry conclusions still require public evidence."}},{key:"businessDecompositionOrderQuality",name:"business-decomposition-order-quality",label:{zh:"\u4E1A\u52A1\u62C6\u89E3\u4E0E\u8BA2\u5355\u8D28\u91CF",en:"Business Decomposition Order Quality"},description:{zh:"\u62C6\u89E3\u4EA7\u54C1\u3001\u5BA2\u6237\u3001\u9879\u76EE\u548C\u8BA2\u5355\uFF0C\u68C0\u67E5\u589E\u957F\u80FD\u5426\u8F6C\u5316\u4E3A\u6536\u5165\u548C\u73B0\u91D1\u3002",en:"Breaks down products, customers, projects, and orders to test conversion into revenue and cash."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","business-analysis","cash-flow","orders","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0D\u8D1F\u8D23\u6700\u7EC8\u4F30\u503C\u6216\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; it does not make final valuation or trading recommendations."}},{key:"tenKDigest",name:"10k-digest",label:{zh:"\u5E74\u62A5\uFF0810-K\uFF09\u9010\u8282\u7CBE\u8BFB",en:"10-K Report Digest"},description:{zh:"\u9010\u8282\u7CBE\u8BFB\u7F8E\u80A1\u5E74\u62A5 10-K\uFF0C\u4EA7\u51FA\u6458\u8981\u3001\u5206\u8282\u8981\u70B9\u3001\u5173\u952E\u6307\u6807\u4E0E\u53EF\u6838\u5BF9\u7684\u51FA\u5904\u5F15\u7528\u3002",en:"Reads a 10-K section by section into an abstract, section summaries, key metrics and sourced references."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","business-analysis"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u7AE0\u8282\u53E3\u5F84\u6309\u7F8E\u80A1 10-K \u5199\uFF0CA \u80A1\u5E74\u62A5\u7684\u62AB\u9732\u7ED3\u6784\u4E0D\u540C\uFF0C\u4E0D\u80FD\u76F4\u63A5\u5E73\u79FB\u3002",en:"Experimental; the section map follows US 10-K disclosure and does not transfer to A-share annual reports."}},{key:"bearCase",name:"bear-case",label:{zh:"\u7A7A\u5934\u89C6\u89D2\u7EA2\u961F\u53CD\u9A73",en:"Bear Case Red Team"},description:{zh:"\u9488\u5BF9\u4E00\u4E2A\u770B\u591A\u8BBA\u70B9\u523B\u610F\u6784\u5EFA\u6700\u5F3A\u7684\u53CD\u9762\u8BBA\u8BC1\uFF0C\u9010\u6761\u627E\u51FA\u53CD\u8BC1\u4E0E\u8106\u5F31\u5047\u8BBE\u3002",en:"Builds the strongest deliberate short-side counter-argument to a bullish thesis, with counterevidence."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","risk","perspective"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u53EA\u505A\u53CD\u9762\u8BBA\u8BC1\uFF0C\u4E0D\u6784\u6210\u5356\u51FA\u6216\u505A\u7A7A\u5EFA\u8BAE\uFF0C\u4E5F\u4E0D\u9884\u6D4B\u8DCC\u5E45\u3002",en:"Experimental; a counter-argument only, not a sell or short recommendation and no downside forecast."}},{key:"catalystCalendar",name:"catalyst-calendar",label:{zh:"90 \u5929\u50AC\u5316\u5242\u65E5\u5386",en:"Catalyst Calendar"},description:{zh:"\u5217\u51FA\u672A\u6765 90 \u5929\u7684\u4E8B\u4EF6\u50AC\u5316\u5242\u4E0E\u9884\u671F\u5F71\u54CD\uFF0C\u7528\u6765\u5B89\u6392\u590D\u67E5\u8282\u594F\u3002",en:"Lists upcoming catalysts over a 90-day window with expected impact and a review cadence."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","earnings","monitoring"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4E8B\u4EF6\u5F71\u54CD\u662F\u5B9A\u6027\u5224\u65AD\uFF0C\u4E0D\u9884\u6D4B\u5177\u4F53\u6DA8\u8DCC\u3002",en:"Experimental; catalyst impact is qualitative and does not forecast price moves."}},{key:"competitorAnalysis",name:"competitor-analysis",label:{zh:"\u76F4\u63A5\u5BF9\u624B\u4E0E\u62A4\u57CE\u6CB3",en:"Competitor Analysis"},description:{zh:"\u56F4\u7ED5\u4E00\u5BB6\u516C\u53F8\u4E0E\u5176\u76F4\u63A5\u5BF9\u624B\u505A\u62A4\u57CE\u6CB3\u3001\u5E02\u573A\u5730\u4F4D\u4E0E\u884C\u4E1A\u683C\u5C40\u5206\u6790\u3002",en:"Moat, market position and industry dynamics for one company against its direct rivals."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","competition","business-analysis","risk"],riskNote:{zh:"\u4E0E\u300C\u884C\u4E1A\u7ADE\u4E89\u4E0E\u62A4\u57CE\u6CB3\u300D\u89C6\u89D2\u91CD\u53E0\uFF0C\u540C\u4E1A\u540D\u5355\u4E0E\u53E3\u5F84\u6309\u7F8E\u80A1\u62AB\u9732\u53D6\u6750\uFF1B\u7ED3\u8BBA\u4ECD\u8981\u56DE\u5230\u516C\u5F00\u8BC1\u636E\u3002",en:"Overlaps the industry/moat lens; peer sets follow US disclosure, so conclusions still need public evidence."}},{key:"dividendAnalysis",name:"dividend-analysis",label:{zh:"\u5206\u7EA2\u56DE\u8D2D\u4E0E\u8D44\u672C\u914D\u7F6E",en:"Dividend & Capital Allocation"},description:{zh:"\u628A\u5206\u7EA2\u3001\u56DE\u8D2D\u3001\u5E76\u8D2D\u3001\u503A\u52A1\u7BA1\u7406\u4E0E\u81EA\u7531\u73B0\u91D1\u6D41\u53BB\u5411\u5408\u8D77\u6765\u770B\u8D44\u672C\u914D\u7F6E\u7EAA\u5F8B\u3002",en:"Reviews dividends, buybacks, M&A, debt and FCF deployment as one capital-allocation discipline."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","capital-allocation","cash-flow","valuation"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4E0D\u627F\u8BFA\u80A1\u606F\u53EF\u6301\u7EED\u6027\uFF0C\u4E5F\u4E0D\u9884\u6D4B\u6536\u76CA\u3002",en:"Experimental; it does not promise dividend sustainability or returns."}},{key:"earningsCallAnalysis",name:"earnings-call-analysis",label:{zh:"\u4E1A\u7EE9\u7535\u8BDD\u4F1A\u6587\u672C\u5206\u6790",en:"Earnings Call Analysis"},description:{zh:"\u4ECE\u4E1A\u7EE9\u7535\u8BDD\u4F1A\u7EAA\u8981\u91CC\u8BFB\u60C5\u7EEA\u3001\u4E3B\u9898\u4E0E\u7BA1\u7406\u5C42\u53E3\u5F84\u7684\u53D8\u5316\u3002",en:"Reads sentiment, themes and shifts in management tone from earnings call transcripts."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","earnings","perspective"],riskNote:{zh:"\u5FC5\u987B\u5148\u62FF\u5230\u7EAA\u8981\u539F\u6587\uFF1B\u6CA1\u6709\u539F\u6587\u65F6\u4E0D\u8BB8\u51ED\u5370\u8C61\u8865\u5199\u7BA1\u7406\u5C42\u8868\u6001\u3002",en:"Needs the actual transcript; never reconstruct management remarks from memory."}},{key:"earningsPreview",name:"earnings-preview",label:{zh:"\u8D22\u62A5\u524D\u4E09\u6863\u60C5\u666F\u63A8\u6F14",en:"Earnings Preview"},description:{zh:"\u5BF9\u6BD4\u4E00\u81F4\u9884\u671F\u4E0E\u671F\u6743\u9690\u542B\u6CE2\u52A8\uFF0C\u7ED9\u51FA\u8D85\u9884\u671F/\u7B26\u5408/\u4E0D\u53CA\u4E09\u6863\u60C5\u666F\u4E0E\u5404\u81EA\u8981\u76EF\u7684\u6307\u6807\u3002",en:"Compares consensus with the implied move and lays out beat / in-line / miss scenarios with watch KPIs."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","earnings","risk","monitoring"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u6B63\u6587\u6BCF\u6863\u60C5\u666F\u5E26\u4ED3\u4F4D\u5199\u6CD5\uFF0C\u53EA\u5F53\u63A8\u6F14\u7EC3\u4E60\uFF0C\u4E0D\u662F\u4EA4\u6613\u6307\u4EE4\u3002",en:"Experimental; each scenario carries position wording \u2014 read it as a rehearsal, not a trade instruction."}},{key:"economicsAnalysis",name:"economics-analysis",label:{zh:"\u7F8E\u56FD\u5B8F\u89C2\u6307\u6807\u89E3\u8BFB",en:"US Economics Analysis"},description:{zh:"\u89E3\u8BFB\u7F8E\u56FD\u5B8F\u89C2\u6570\u636E\u4E0E\u5229\u7387\u8DEF\u5F84\uFF0C\u5E76\u4EA4\u4EE3\u5B83\u4F20\u5BFC\u5230\u5E02\u573A\u7684\u8DEF\u5F84\u3002",en:"Interprets US macro prints and the rate path, and spells out the transmission to markets."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","macro","risk"],riskNote:{zh:"\u53E3\u5F84\u662F\u7F8E\u56FD\u5B8F\u89C2\uFF0C\u5BF9 A \u80A1\u53EA\u80FD\u5F53\u5916\u90E8\u73AF\u5883\u53D8\u91CF\uFF0C\u4E0D\u76F4\u63A5\u63A8\u653F\u7B56\u3002",en:"US macro only; for A-shares treat it as an external condition, not a policy read."}},{key:"etfAnalysis",name:"etf-analysis",label:{zh:"ETF \u5C3D\u8C03\u4E0E\u5951\u5408\u5EA6\u8BC4\u5206",en:"ETF Analysis"},description:{zh:"\u8D39\u7387\u3001\u8DDF\u8E2A\u8BEF\u5DEE\u3001\u6D41\u52A8\u6027\u3001\u6210\u5206\u96C6\u4E2D\u5EA6\u4E0E\u6301\u4ED3\u91CD\u53E0\uFF0C\u6C47\u6210\u4E00\u679A ETF \u5951\u5408\u5EA6\u8BC4\u5206\u3002",en:"Expense ratio, tracking difference, liquidity, concentration and overlap rolled into a fitness score."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","instruments","portfolio","risk"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u8BC4\u5206\u8861\u91CF\u7ED3\u6784\u7279\u5F81\uFF0C\u4E0D\u4EE3\u8868\u6536\u76CA\u9884\u671F\u3002",en:"Experimental; the score describes structure, not expected return."}},{key:"factCheck",name:"fact-check",label:{zh:"\u9010\u6761\u4E3B\u5F20\u6838\u9A8C\u4E0E\u8865\u5F15\u7528",en:"Fact Check"},description:{zh:"\u628A\u62A5\u544A\u91CC\u7684\u6BCF\u4E2A\u6570\u5B57\u4E0E\u4E8B\u5B9E\u4E3B\u5F20\u62C6\u51FA\u6765\u9010\u6761\u6BD4\u5BF9\u4E00\u624B\u6765\u6E90\uFF0C\u6807\u6CE8\u5DF2\u6838\u9A8C/\u4E0D\u7B26/\u65E0\u6CD5\u6838\u9A8C\u5E76\u56DE\u586B\u5F15\u7528\u3002",en:"Extracts every figure and claim, checks each against a primary source, and marks verified / mismatch / unverifiable."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","verification"],riskNote:{zh:"\u4E00\u624B\u6765\u6E90\u6E05\u5355\u6309 SEC \u6587\u4EF6\u3001\u516C\u53F8 IR\u3001FRED \u4E0E\u4EA4\u6613\u6240\u6570\u636E\u5199\uFF1BA \u80A1\u6750\u6599\u8981\u6362\u6210\u516C\u544A\u4E0E\u5B98\u65B9\u62AB\u9732\u3002",en:"Its primary-source list is SEC / IR / FRED / exchange data; swap in announcements and official disclosure for A-shares."}},{key:"financialReportAnalyst",name:"financial-report-analyst",label:{zh:"\u8D22\u62A5\u8D28\u91CF\u4E0E\u7EA2\u65D7\u89E3\u8BFB",en:"Financial Report Analyst"},description:{zh:"\u4ECE 10-K / 10-Q \u8BFB\u62A5\u8868\u8D28\u91CF\u3001\u5F02\u5E38\u7EA2\u65D7\u4E0E\u4E00\u4E2A\u53EF\u4EA4\u4EE3\u51FA\u5904\u7684\u4FE1\u53F7\u3002",en:"Reads statement quality, red flags and one sourced signal from 10-K / 10-Q filings."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","financial-health","risk"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u7EA2\u65D7\u662F\u63D0\u793A\u590D\u67E5\u7684\u7EBF\u7D22\uFF0C\u4E0D\u662F\u7ED3\u8BBA\u3002",en:"Experimental; red flags are prompts to re-check, not conclusions."}},{key:"industryMap",name:"industry-map",label:{zh:"\u4EA7\u4E1A\u94FE\u5730\u56FE\u4E0E\u54BD\u5589\u70B9",en:"Industry Map"},description:{zh:"\u628A\u4E0A\u4E0B\u6E38\u753B\u6210\u6709\u5411\u56FE\uFF0C\u5B9A\u4F4D\u516C\u53F8\u4F4D\u7F6E\u3001\u627E\u4F9B\u9700\u74F6\u9888\u4E0E\u5229\u6DA6\u6C60\uFF0C\u5E76\u6D3E\u751F\u4E8C\u7EBF\u7EBF\u7D22\u3002",en:"Maps the value chain as a directed graph to locate the company, find chokepoints and second-order ideas."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","macro","competition","business-analysis"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4EA7\u4E1A\u94FE\u5224\u65AD\u4ECD\u9700\u9010\u6761\u56DE\u5230\u516C\u5F00\u8BC1\u636E\u3002",en:"Experimental; value-chain reads still need claim-by-claim public evidence."}},{key:"insiderTrading",name:"insider-trading",label:{zh:"\u5185\u90E8\u4EBA\u589E\u51CF\u6301\u8FFD\u8E2A",en:"Insider Trading"},description:{zh:"\u4ECE SEC Form 4 \u8FFD\u8E2A\u9AD8\u7BA1\u4E0E\u8463\u4E8B\u7684\u589E\u51CF\u53D8\u52A8\u5E76\u505A\u89E3\u8BFB\u3002",en:"Tracks executive and director buying and selling from SEC Form 4 filings."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","monitoring","perspective"],riskNote:{zh:"\u4F9D\u8D56\u7F8E\u56FD\u5185\u90E8\u4EBA\u7533\u62A5\u5236\u5EA6\uFF1BA \u80A1\u8981\u6362\u6210\u5927\u80A1\u4E1C\u4E0E\u8463\u76D1\u9AD8\u53D8\u52A8\u516C\u544A\uFF0C\u53E3\u5F84\u4E0D\u53EF\u76F4\u63A5\u5E73\u79FB\u3002",en:"Assumes US insider filings; A-shares need major-holder and director-change announcements instead."}},{key:"institutionalOwnership",name:"institutional-ownership",label:{zh:"\u673A\u6784\u6301\u4ED3\u53D8\u52A8",en:"Institutional Ownership"},description:{zh:"\u4ECE 13F \u6587\u4EF6\u8BFB\u673A\u6784\u6301\u4ED3\u53D8\u5316\uFF0C\u8BC6\u522B\u673A\u6784\u8D44\u91D1\u7684\u8FC1\u79FB\u65B9\u5411\u3002",en:"Reads changes in institutional holdings from 13F filings to spot where the money is moving."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","monitoring"],riskNote:{zh:"13F \u6709\u4E00\u4E2A\u5B63\u5EA6\u6EDE\u540E\u4E14\u4E0D\u542B\u7A7A\u5934\u4ED3\u4F4D\uFF1B\u8BFB\u6210\u8D8B\u52BF\u4E4B\u524D\u5148\u8BB0\u4F4F\u8FD9\u4E24\u70B9\u3002",en:"13F lags a quarter and omits shorts \u2014 remember both before reading it as a trend."}},{key:"learningCoach",name:"learning-coach",label:{zh:"\u628A\u5206\u6790\u8BB2\u6210\u8BFE\u7A0B",en:"Learning Coach"},description:{zh:"\u50CF\u5BFC\u5E08\u4E00\u6837\u9010\u6307\u6807\u89E3\u91CA\u4E00\u4EFD\u5206\u6790\u7ED3\u679C\uFF0C\u518D\u53CD\u95EE 3\u20135 \u4E2A\u68C0\u9A8C\u7406\u89E3\u7684\u95EE\u9898\u3002",en:"Explains an analysis metric by metric in plain words, then asks 3\u20135 Socratic questions."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["education","perspective"],riskNote:{zh:"\u6559\u5B66\u6027\u8D28\uFF1B\u5B83\u89E3\u91CA\u7684\u662F\u4E0A\u6E38\u5206\u6790\u7684\u53E3\u5F84\uFF0C\u4E0D\u989D\u5916\u4EA7\u751F\u6295\u8D44\u5224\u65AD\u3002",en:"Educational; it explains the analysis it is handed and forms no investment view of its own."}},{key:"optionsAnalysis",name:"options-analysis",label:{zh:"\u671F\u6743\u5E0C\u814A\u5B57\u6BCD\u4E0E\u9690\u6CE2",en:"Options Analysis"},description:{zh:"\u770B\u5E0C\u814A\u5B57\u6BCD\u3001\u9690\u542B\u6CE2\u52A8\u7387\u4E0E\u7B56\u7565\u9002\u914D\u5EA6\uFF0C\u7528\u6765\u7406\u89E3\u671F\u6743\u7684\u98CE\u9669\u5F62\u72B6\u3002",en:"Reviews Greeks, implied volatility and strategy fit to characterise an options risk shape."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","instruments","risk"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u53EA\u89E3\u91CA\u671F\u6743\u98CE\u9669\uFF0C\u4E0D\u63A8\u8350\u5177\u4F53\u5408\u7EA6\u6216\u7B56\u7565\u7EC4\u5408\u3002",en:"Experimental; it explains options risk and does not recommend contracts or spreads."}},{key:"portfolioReview",name:"portfolio-review",label:{zh:"\u7EC4\u5408\u8868\u73B0\u4E0E\u914D\u7F6E\u504F\u79BB",en:"Portfolio Review"},description:{zh:"\u590D\u76D8\u7EC4\u5408\u7684\u6536\u76CA\u6765\u6E90\u3001\u96C6\u4E2D\u5EA6\u4E0E\u914D\u7F6E\u504F\u79BB\uFF0C\u5E76\u5217\u51FA\u9700\u8981\u76EF\u7684\u89C2\u5BDF\u9879\u3002",en:"Reviews portfolio performance, concentration and allocation drift, with items to watch."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","portfolio","risk"],riskNote:{zh:"\u4E0E\u672C\u63D2\u4EF6\u81EA\u5E26\u7684\u7EC4\u5408\u590D\u76D8\u6D41\u7A0B\u91CD\u53E0\uFF1B\u8FD9\u6761\u6309\u7F8E\u80A1\u8BED\u5883\u7ED9\u89C2\u5BDF\u6E05\u5355\uFF0C\u4ED3\u4F4D\u52A8\u4F5C\u4ECD\u7531\u4F7F\u7528\u8005\u51B3\u5B9A\u3002",en:"Overlaps the built-in portfolio review; this one gives a US-context watchlist and leaves position moves to you."}},{key:"positionLadder",name:"position-ladder",label:{zh:"\u5206\u6279\u5EFA\u4ED3\u4E0E\u644A\u8584\u8282\u594F",en:"Position Ladder"},description:{zh:"\u628A\u5EFA\u4ED3\u62C6\u6210\u5206\u6279\u7684\u80A1\u6570\u4E0A\u4E0B\u9650\u4E0E\u52A0\u51CF\u4ED3\u8282\u594F\uFF0C\u5E76\u68C0\u67E5\u6279\u6B21\u8BB0\u8D26\u3001\u6D17\u552E\u7A97\u53E3\u4E0E\u603B\u6536\u76CA\u53E3\u5F84\u3002",en:"Plans a staged entry with share-count floors and ceilings, trim/re-add cadence, lot and wash-sale checks."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","portfolio","monitoring"],riskNote:{zh:"\u6B63\u6587\u91CC\u7684\u80A1\u6570\u533A\u95F4\u662F\u63A8\u6F14\u7528\u7684\u7EC3\u4E60\uFF0C\u4E0D\u662F\u4E70\u5356\u6307\u4EE4\uFF1B\u672C\u63D2\u4EF6\u4E0D\u63D0\u4F9B\u6295\u8D44\u5EFA\u8BAE\uFF0C\u4ED3\u4F4D\u51B3\u5B9A\u5728\u4F7F\u7528\u8005\u3002",en:"Its share-count ranges are rehearsal arithmetic, not orders; this plugin gives no investment advice."}},{key:"resultValidator",name:"result-validator",label:{zh:"\u5206\u6790\u7ED3\u679C\u7F6E\u4FE1\u5EA6\u8BC4\u5206",en:"Result Validator"},description:{zh:"\u4ECE\u6570\u636E\u8D28\u91CF\u3001\u65B9\u6CD5\u4E00\u81F4\u6027\u4E0E\u4FE1\u53F7\u51B2\u7A81\u4E09\u4E2A\u7EF4\u5EA6\uFF0C\u7ED9\u4E00\u4EFD\u5206\u6790\u7ED3\u679C\u6253\u7F6E\u4FE1\u5EA6\u5206\u3002",en:"Scores an analysis's confidence across data quality, methodology and signal consistency."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["verification","perspective"],riskNote:{zh:"\u6253\u7684\u662F\u6570\u636E\u4E0E\u65B9\u6CD5\u81EA\u6D3D\u5EA6\uFF0C\u4E0D\u7B49\u4E8E\u9884\u6D4B\u51C6\u786E\u7387\uFF0C\u4E5F\u4E0D\u627F\u8BFA\u8868\u73B0\u3002",en:"It grades internal data/method consistency, not forecast accuracy or future performance."}},{key:"riskStressTest",name:"risk-stress-test",label:{zh:"\u7EC4\u5408\u538B\u529B\u6D4B\u8BD5\u4E0E\u98CE\u9669\u9884\u7B97",en:"Risk Stress Test"},description:{zh:"beta \u52A0\u6743\u655E\u53E3\u3001\u5386\u53F2\u60C5\u666F\u91CD\u653E\u3001VaR / CVaR\u3001\u6700\u5927\u56DE\u64A4\u4F30\u8BA1\u4E0E\u6D41\u52A8\u6027\u9000\u51FA\u5929\u6570\u3002",en:"Beta-weighted exposure, historical scenario replay, VaR / CVaR, drawdown estimates and days to exit."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","portfolio","risk","macro"],riskNote:{zh:"\u6A21\u578B\u5316\u4F30\u8BA1\uFF0C\u5047\u8BBE\u4E00\u53D8\u7ED3\u679C\u5C31\u53D8\uFF1B\u4E0D\u6784\u6210\u98CE\u63A7\u989D\u5EA6\uFF0C\u4E5F\u4E0D\u662F\u51CF\u4ED3\u6307\u4EE4\u3002",en:"Model output moves with every assumption; this is not a risk limit or a de-risking order."}},{key:"sectorAnalysis",name:"sector-analysis",label:{zh:"\u677F\u5757\u76F8\u5BF9\u5F3A\u5F31\u4E0E\u8F6E\u52A8",en:"Sector Analysis"},description:{zh:"\u770B\u7F8E\u56FD\u5404\u677F\u5757\u7684\u76F8\u5BF9\u5F3A\u5F31\u4E0E\u8F6E\u52A8\u7EBF\u7D22\uFF0C\u5E76\u4EA4\u4EE3\u5224\u65AD\u4F9D\u636E\u3002",en:"Reviews US sector positioning and rotation clues, and states what each read rests on."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","macro","competition"],riskNote:{zh:"\u677F\u5757\u5206\u7C7B\u6309\u7F8E\u80A1\u53E3\u5F84\uFF0C\u4E0E A \u80A1\u884C\u4E1A\u5206\u7C7B\u4E0D\u53EF\u76F4\u63A5\u5BF9\u7167\u3002",en:"Sector taxonomy is US-market; it does not line up with A-share industry classification."}},{key:"shortInterest",name:"short-interest",label:{zh:"\u7A7A\u5934\u6301\u4ED3\u4E0E\u6324\u538B\u6761\u4EF6",en:"Short Interest"},description:{zh:"\u8BFB\u7A7A\u5934\u6BD4\u4F8B\u3001\u56DE\u8865\u6210\u672C\u4E0E\u6324\u538B\u6761\u4EF6\uFF0C\u5E76\u68C0\u67E5\u5229\u7A7A\u5806\u79EF\u4FE1\u53F7\u3002",en:"Analyses short ratio, cost to cover, squeeze conditions and bearish positioning signals."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","monitoring","risk"],riskNote:{zh:"\u7A7A\u5934\u6570\u636E\u662F\u6EDE\u540E\u62AB\u9732\uFF1B\u5F53\u6210\u5B9E\u65F6\u7ED3\u8BBA\u4E4B\u524D\u5148\u6838\u5BF9\u53E3\u5F84\u4E0E\u622A\u6B62\u65E5\u671F\u3002",en:"Short data is reported with a lag \u2014 check basis and as-of date before reading it as live."}},{key:"stockEval",name:"stock-eval",label:{zh:"\u57FA\u672C\u9762\u4E0E\u4F30\u503C\u7EFC\u5408\u8BC4\u4F30",en:"Stock Evaluation"},description:{zh:"\u628A\u8D22\u52A1\u8D28\u91CF\u3001\u6210\u957F\u3001\u4F30\u503C\u4E0E\u98CE\u9669\u5408\u5230\u4E00\u6B21\u7EFC\u5408\u8BC4\u4F30\u91CC\uFF0C\u5E76\u8F93\u51FA\u4E00\u4E2A\u53EF\u4EA4\u4EE3\u51FA\u5904\u7684\u7ED3\u8BBA\u3002",en:"Combines quality, growth, valuation and risk into one evaluation with a sourced conclusion."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","business-analysis","financial-health","valuation","risk"],riskNote:{zh:"\u4E0A\u6E38\u5DF2\u628A fundamental-analysis \u5408\u5165\u672C\u6761\uFF1B\u7EFC\u5408\u7ED3\u8BBA\u4ECD\u662F\u7F8E\u80A1\u53E3\u5F84\uFF0C\u4E0D\u66FF\u4EE3\u672C\u63D2\u4EF6\u65E2\u6709\u7814\u7A76\u6D41\u7A0B\u3002",en:"Upstream folded fundamental-analysis in; the read is US-context and does not replace Capital's own research flow."}},{key:"stockScreener",name:"stock-screener",label:{zh:"\u591A\u6807\u7684\u6A2A\u5411\u6253\u5206\u6392\u5E8F",en:"Stock Screener"},description:{zh:"\u6309\u4F30\u503C\u3001\u8D28\u91CF\u3001\u52A8\u91CF\u3001\u60C5\u7EEA\u4E0E\u6210\u957F\u4E94\u4E2A\u7EF4\u5EA6\u7ED9\u4E00\u7BEE\u5B50\u6807\u7684\u6253\u5206\u5E76\u6392\u5E8F\u3002",en:"Screens and ranks a list of US stocks across valuation, quality, momentum, sentiment and growth."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","valuation","business-analysis","technicals"],riskNote:{zh:"\u6392\u5E8F\u53EA\u53CD\u6620\u5F53\u671F\u6253\u5206\u53E3\u5F84\uFF0C\u4E0D\u9884\u6D4B\u672A\u6765\u8868\u73B0\uFF1B\u6807\u7684\u6E05\u5355\u4E0E\u6570\u636E\u6765\u6E90\u4ECD\u8981\u8D70\u672C\u63D2\u4EF6\u7684\u53D6\u6570\u94FE\u8DEF\u3002",en:"Ranking reflects the current scoring inputs only, not future performance; data still comes via Capital's own sources."}},{key:"stockValuation",name:"stock-valuation",label:{zh:"\u56DB\u65B9\u6CD5\u4F30\u503C\u533A\u95F4",en:"Stock Valuation"},description:{zh:"DCF\u3001\u53EF\u6BD4\u516C\u53F8\u3001EV \u500D\u6570\u4E0E\u5269\u4F59\u6536\u76CA\u4E00\u8D77\u51FA\u4F30\u503C\u533A\u95F4\uFF0C\u5E76\u9010\u6761\u4EA4\u4EE3\u5047\u8BBE\u3002",en:"Values a company with DCF, comparables, EV multiples and residual income, stating every assumption."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","valuation","cash-flow"],riskNote:{zh:"\u533A\u95F4\u968F\u5047\u8BBE\u5927\u5E45\u79FB\u52A8\uFF1B\u8F93\u51FA\u4E0D\u7B49\u4E8E\u76EE\u6807\u4EF7\uFF0C\u4E5F\u4E0D\u662F\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Ranges swing with assumptions; the output is not a price target or a trade call."}},{key:"taxLens",name:"tax-lens",label:{zh:"\u7F8E\u56FD\u7A0E\u52A1\u89C6\u89D2\u68C0\u89C6\u6E05\u5355",en:"Tax Lens"},description:{zh:"\u957F\u77ED\u671F\u8D44\u672C\u5229\u5F97\u3001\u6D17\u552E\u7A97\u53E3\u3001\u5408\u683C\u80A1\u606F\u6301\u6709\u671F\u3001\u6279\u6B21\u9009\u62E9\u4E0E\u5E74\u5EA6\u7A0E\u8D1F\u62D6\u7D2F\u7684\u68C0\u89C6\u6E05\u5355\u3002",en:"Checks short vs. long-term gains, wash-sale windows, qualified dividends, lot selection and estimated tax drag."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","tax","portfolio"],riskNote:{zh:"\u53EA\u8BB2\u7F8E\u56FD\u7A0E\u5236\u4E14\u6B62\u4E8E\u6559\u80B2\u53E3\u5F84\uFF1B\u4E2D\u56FD\u5927\u9646\u7684\u7A0E\u52A1\u4E0E\u8D26\u6237\u5B89\u6392\u8BF7\u54A8\u8BE2\u4E13\u4E1A\u4EBA\u58EB\u3002",en:"US tax mechanics, educational only; get professional advice for mainland-China tax and account matters."}},{key:"technicalAnalysis",name:"technical-analysis",label:{zh:"\u6280\u672F\u9762\u4E0E\u6307\u6807\u89E3\u8BFB",en:"Technical Analysis"},description:{zh:"\u7528\u5747\u7EBF\u3001\u6210\u4EA4\u91CF\u3001RSI / MACD \u7B49\u6307\u6807\u8BFB\u8D8B\u52BF\u3001\u5173\u952E\u4EF7\u4F4D\u4E0E\u590D\u67E5\u89E6\u53D1\u6761\u4EF6\u3002",en:"Reads trend and key levels with moving averages, volume, RSI and MACD, plus re-check triggers."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","technicals","monitoring"],riskNote:{zh:"\u6280\u672F\u4FE1\u53F7\u53EA\u7ED9\u590D\u67E5\u6761\u4EF6\uFF0C\u4E0D\u9884\u6D4B\u65B9\u5411\uFF1B\u4E0D\u8981\u628A\u56FE\u5F62\u7ED3\u8BBA\u5199\u6210\u4E8B\u5B9E\u3002",en:"Technical signals are re-check triggers, not direction forecasts \u2014 do not present them as facts."}},{key:"thesisTracker",name:"thesis-tracker",label:{zh:"\u6295\u8D44\u8BBA\u70B9\u5B58\u6863\u4E0E\u590D\u6838",en:"Thesis Tracker"},description:{zh:"\u5199\u4E0B\u8BBA\u70B9\u7684 KPI\u3001\u5931\u6548\u6761\u4EF6\u4E0E\u50AC\u5316\u5242\uFF0C\u4E4B\u540E\u6309\u65B0\u6570\u636E\u590D\u67E5\u5E76\u7ED9\u51FA\u7EF4\u6301 / \u8D70\u5F31 / \u5931\u6548\u3002",en:"Records KPIs, invalidation triggers and catalysts, then re-checks them as INTACT / WEAKENED / BROKEN."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","verification","monitoring","perspective"],riskNote:{zh:"\u4E0A\u6E38\u5047\u8BBE\u80FD\u628A\u8BBA\u70B9\u843D\u76D8\uFF1B\u5728\u672C\u63D2\u4EF6\u4E0B\u6587\u4EF6\u5199\u5728\u5DE5\u4F5C\u76EE\u5F55\u5E76\u670D\u4ECE\u5F53\u524D\u4F1A\u8BDD\u6743\u9650\u3002",en:"Upstream assumes it can save files; under Capital it writes into the session workspace and obeys its permissions."}},{key:"peterLynchResearch",name:"peter-lynch-skill",label:{zh:"\u5F7C\u5F97\xB7\u6797\u5947\u5F0F\u4E2A\u80A1\u7814\u7A76",en:"Peter Lynch Research"},description:{zh:"\u7ED9\u4E00\u4E2A\u4EE3\u7801\u6216\u516C\u53F8\u540D\uFF0C\u8D70\u5FEB\u7B5B\uFF08SKIP / WATCHLIST / DEEP RESEARCH\uFF09\u6216\u5B8C\u6574\u5C3D\u8C03\uFF0C\u751F\u610F\u7406\u89E3\u3001\u5206\u7C7B\u4E0E\u4F30\u503C\u653E\u5728\u540C\u4E00\u5957\u68C0\u67E5\u91CC\uFF0C\u6BCF\u6761\u4E3B\u5F20\u914D\u53EF\u70B9\u5F00\u7684\u6765\u6E90\u94FE\u63A5\u3002\u7F8E\u80A1\u4E0E\u5883\u5916\u4E0A\u5E02\u53E3\u5F84\u3002",en:"Screens a ticker or company fast (SKIP / WATCHLIST / DEEP RESEARCH) or runs full due diligence, with linked sources under every claim. US and overseas-listing conventions."},owner:"DjNero11",repository:"peter-lynch-skill",status:"watchlist",lastCommit:"2026-06-28",reviewBy:"2026-11-06",tags:["peter-lynch","us-stock","valuation","risk","verification"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u4EC5\u4E24\u6B21\u63D0\u4EA4\u3001\u81EA 2026-06-28 \u8D77\u65E0\u66F4\u65B0\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002X/10 \u8861\u91CF\u7684\u662F\u8BBA\u70B9\u81EA\u6D3D\u5EA6\u4E0E\u7ED3\u6784\u7279\u5F81\uFF0C\u4E0D\u9884\u6D4B\u8868\u73B0\uFF0C\u4E5F\u4E0D\u6784\u6210\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream has two commits and has been quiet since 2026-06-28, so review the sources before use. The X/10 score rates thesis consistency and structure, not forecast performance, and is not investment advice."}}]),re=Object.freeze({zh:{all:"\u5168\u90E8","a-share":"A \u80A1","business-analysis":"\u4E1A\u52A1\u5206\u6790","capital-allocation":"\u8D44\u672C\u914D\u7F6E","cash-flow":"\u73B0\u91D1\u6D41",competition:"\u7ADE\u4E89\u683C\u5C40",earnings:"\u4E1A\u7EE9\u4E0E\u7535\u8BDD\u4F1A",education:"\u6559\u5B66",filings:"\u62AB\u9732\u6587\u4EF6","financial-health":"\u8D22\u52A1\u5065\u5EB7",instruments:"\u671F\u6743\u4E0E\u57FA\u91D1",macro:"\u5B8F\u89C2\u4E0E\u884C\u4E1A",monitoring:"\u76D1\u63A7",orders:"\u8BA2\u5355",perspective:"\u5206\u6790\u89C6\u89D2","peter-lynch":"\u5F7C\u5F97\xB7\u6797\u5947",portfolio:"\u7EC4\u5408\u4E0E\u4ED3\u4F4D",risk:"\u98CE\u9669",strategy:"\u6218\u7565",tax:"\u7A0E\u52A1",technicals:"\u6280\u672F\u9762","us-stock":"\u7F8E\u80A1",valuation:"\u4F30\u503C",verification:"\u8BC1\u636E\u6838\u9A8C"},en:{all:"All","a-share":"A-share","business-analysis":"Business analysis","capital-allocation":"Capital allocation","cash-flow":"Cash flow",competition:"Competition",earnings:"Earnings",education:"Education",filings:"Filings","financial-health":"Financial health",instruments:"Options & funds",macro:"Macro & industry",monitoring:"Monitoring",orders:"Orders",perspective:"Perspective","peter-lynch":"Peter Lynch",portfolio:"Portfolio",risk:"Risk",strategy:"Strategy",tax:"Tax",technicals:"Technicals","us-stock":"US equity",valuation:"Valuation",verification:"Verification"}})});var{createElement:a,useEffect:N,useRef:j,useState:b}=require("react"),{createPortal:ce}=require("react-dom"),{SettingsForm:de,SettingsSecretField:pe,SettingsFormModel:ue,SegmentedControl:he,Switch:q,Modal:me,writeClipboard:ge,IconRightUpOutlineRegular:W}=require("@deepseek-ai/dsh-client-ui-primitives"),{SELECTED_SKILL_CATALOG:v,SELECTED_SKILL_TAG_LABELS:V}=(U(),ne(H)),T="capital-config",S="@v587d/capital-generation",B="settings.capital",K="plugins.detail.badge",fe="https://github.com/v587d/capital-generation",ye=`https://www.npmjs.com/package/${S}`,ke="FUYAO_API_KEY",we="ANYSEARCH_API_KEY",ve="WIND_API_KEY",be="PADDLE_OCR_TOKEN",_="capital-config-tabs",Se="/capital-skills",E={fuyao:"https://fuyao.aicubes.cn/docs/",anysearch:"https://www.anysearch.com/docs/auth",wind:"https://market.windalice.com/",paddleocr:"https://aistudio.baidu.com/paddleocr"},f=["fuyao","anysearch","wind","paddleocr"],$=v.map(({key:t})=>t),C={fuyao:ke,anysearch:we,wind:ve,paddleocr:be},xe=()=>Object.fromEntries(f.map(t=>[t,{ref:C[t],configured:!1,writable:!0}])),Ce={tabsLabel:"\u914D\u7F6E\u5206\u533A",title:"\u6570\u636E\u6E90",titleUnsaved:"\u6570\u636E\u6E90 \u672A\u4FDD\u5B58",componentsTitle:"\u5305\u542B\u7684\u7EC4\u4EF6",componentsHint:"\u7EC4\u4EF6\u6E05\u5355\u7531 DSH \u7ED8\u5236\uFF0C\u663E\u793A\u5728\u4E0B\u65B9\u3002",fuyaoLabel:"Fuyao API Key",fuyaoHint:"\u540C\u82B1\u987A Fuyao \u7ED3\u6784\u5316\u6570\u636E\u63A5\u53E3\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",anysearchLabel:"AnySearch API Key",anysearchHint:"AnySearch \u7F51\u9875\u641C\u7D22 / \u63D0\u53D6\u63A5\u53E3\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",localFetchLabel:"\u5141\u8BB8\u542F\u52A8\u672C\u5730\u63D0\u53D6\u7F51\u9875\u5185\u5BB9",localFetchHint:"\u5F00\u542F\u540E\u672C\u5730\u6293\u53D6\u515C\u5E95\uFF08\u56DE\u6267\u6765\u6E90 local-http\uFF09\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",windLabel:"Wind Alice API Key",windHint:"Wind \u91D1\u878D\u4FE1\u62AB\u7C7B\u6587\u6863\u68C0\u7D22\u63A5\u53E3\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",paddleocrLabel:"PaddleOCR \u6587\u6863\u89E3\u6790 Token",paddleocrHint:"\u914D\u7F6E Token \u540E\u81EA\u52A8\u89E3\u6790 PDF\u3001\u56FE\u7247\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",selectedSkillsTitle:"\u7CBE\u9009 Skills",selectedSkillsFilterLabel:"\u6309\u80FD\u529B\u7B5B\u9009",selectedSkillsEmpty:"\u6CA1\u6709\u5339\u914D\u8FD9\u4E2A\u6807\u7B7E\u7684 Skill\u3002",selectedSkillsCopyName:"\u590D\u5236\u6280\u80FD\u540D",selectedSkillsCopied:"\u5DF2\u590D\u5236",selectedSkillsDetail:"\u8BE6\u60C5",selectedSkillsDetailClose:"\u5173\u95ED",selectedSkillsDocLoading:"\u539F\u6587\u8BFB\u53D6\u4E2D\u2026",selectedSkillsDocFailed:"\u539F\u6587\u8BFB\u4E0D\u5230\uFF1A\u8FD9\u4EFD\u5FEB\u7167\u6CA1\u968F\u5305\u843D\u5730\uFF0C\u6216\u6682\u65F6\u8BFB\u4E0D\u51FA\u6765\u3002",selectedSkillsDocStale:"\u539F\u6587\u8BFB\u4E0D\u5230\uFF1A\u5BBF\u4E3B\u8FDB\u7A0B\u91CC\u8FD8\u6CA1\u6709\u8FD9\u6761\u8BFB\u539F\u6587\u7684\u901A\u9053\u3002\u5347\u7EA7\u63D2\u4EF6\u540E\u8981\u91CD\u542F DSH\uFF0C\u91CD\u542F\u524D\u5237\u65B0\u9875\u9762\u4E5F\u6CA1\u6709\u7528\u3002",selectedSkillsOpenRepo:"\u6253\u5F00\u4E0A\u6E38\u4ED3\u5E93",openDocs:"\u5B98\u65B9\u6587\u6863",configured:"\u5DF2\u914D\u7F6E\u5BC6\u94A5\u3002",notConfigured:"\u672A\u914D\u7F6E\u5BC6\u94A5\u3002",save:"\u4FDD\u5B58",saving:"\u4FDD\u5B58\u4E2D\u2026",readOnly:"\u672C\u90E8\u7F72\u7684\u8BBE\u7F6E\u4E3A\u53EA\u8BFB\u3002",saveFailed:"\u672C\u90E8\u7F72\u6CA1\u6709\u63A5\u53D7\u8FD9\u4E9B\u503C\uFF0C\u5DF2\u4FDD\u7559\u4F9B\u4F60\u4FEE\u6539\u3002",unavailable:"\u8BE5\u63D2\u4EF6\u5F53\u524D\u672A\u52A0\u8F7D\uFF0C\u6682\u65F6\u65E0\u6CD5\u914D\u7F6E\u3002",githubLabel:"GitHub \u4ED3\u5E93",npmLabel:"npm \u5305\u9875\u9762"},ze={tabsLabel:"Settings sections",title:"Data Sources",titleUnsaved:"Data Sources unsaved",componentsTitle:"Components",componentsHint:"The component list is drawn by DSH and appears below.",fuyaoLabel:"Fuyao API Key",fuyaoHint:"Tonghuashun Fuyao structured-data API. Takes effect in new Capital mode sessions.",anysearchLabel:"AnySearch API Key",anysearchHint:"AnySearch web search / extract interface. Takes effect in new Capital mode sessions.",localFetchLabel:"Allow local web page extraction",localFetchHint:"When on, a failed fetch falls back to local direct fetching (receipt via: local-http). Takes effect in new Capital mode sessions.",windLabel:"Wind Alice API Key",windHint:"Wind financial disclosure document retrieval interface. Takes effect in new Capital mode sessions.",paddleocrLabel:"PaddleOCR document token",paddleocrHint:"Configure the token to parse PDFs and images automatically. Takes effect in new Capital mode sessions.",selectedSkillsTitle:"Selected Skills",selectedSkillsFilterLabel:"Filter by capability",selectedSkillsEmpty:"No skills match this tag.",selectedSkillsCopyName:"Copy skill name",selectedSkillsCopied:"Copied",selectedSkillsDetail:"Details",selectedSkillsDetailClose:"Close",selectedSkillsDocLoading:"Loading the source\u2026",selectedSkillsDocFailed:"The source could not be read: this snapshot is not in the installed package, or it cannot be opened right now.",selectedSkillsDocStale:"The source could not be read: this host process has no route for it yet. After upgrading the plugin, restart DSH \u2014 reloading the page alone will not help.",selectedSkillsOpenRepo:"Open upstream repository",openDocs:"Official docs",configured:"A key is configured.",notConfigured:"No key is configured.",save:"Save",saving:"Saving\u2026",readOnly:"This deployment stores settings read-only.",saveFailed:"The deployment did not accept these values; they were left for you to correct.",unavailable:"This plugin is not loaded, so it cannot be configured right now.",githubLabel:"GitHub repository",npmLabel:"npm package page"};function F(t,e){return typeof t=="string"&&t.length>0?t:e}function Ee(t,e){return e==="fuyao"?F(t.value?.fuyaoCredentialRef,C.fuyao):e==="wind"?F(t.value?.retriever?.windDocs?.credentialRef,C.wind):e==="paddleocr"?F(t.value?.retriever?.paddleOcr?.credentialRef,C.paddleocr):F(t.value?.retriever?.credentialRef,C.anysearch)}function Fe(){if(typeof document>"u"||document.querySelector("style[data-capital-config]"))return()=>{};let t=document.createElement("style");return t.dataset.capitalConfig="true",t.textContent=`
8
+ "use strict";var T=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var ae=(t,e,a)=>()=>{if(a)throw a[0];try{return t&&(e=t(t=0)),e}catch(n){throw a=[n],n}};var ie=(t,e)=>{for(var a in e)T(t,a,{get:e[a],enumerable:!0})},se=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ee(e))!te.call(t,o)&&o!==a&&T(t,o,{get:()=>e[o],enumerable:!(n=Z(e,o))||n.enumerable});return t};var ne=t=>se(T({},"__esModule",{value:!0}),t);var O={};ie(O,{SELECTED_SKILL_CATALOG:()=>re,SELECTED_SKILL_SKILL_DIRS:()=>oe,SELECTED_SKILL_TAG_LABELS:()=>le});var oe,re,le,U=ae(()=>{"use strict";oe=Object.freeze({"investment-skills":"skills","china-stock-research-skills":"skills",InvestSkill:"plugins/us-stock-analysis/skills","peter-lynch-skill":"skills","trading-skills":"skills","claude-for-financial-services-cn":"vertical-plugins/china-finance/skills"}),re=Object.freeze([{key:"buffettFramework",name:"buffett-investment-framework",label:{zh:"Buffett Investment Framework",en:"Buffett Investment Framework"},description:{zh:"\u4EE5\u8BC1\u636E\u4E3A\u57FA\u7840\u7684\u5546\u4E1A\u8D28\u91CF\u3001\u8D44\u672C\u914D\u7F6E\u3001\u4F30\u503C\u548C\u98CE\u9669\u5206\u6790\u6846\u67B6\u3002\u4E3B\u8981\u6E90\u4E8E\u7F8E\u80A1\u8BED\u5883\u3002",en:"Evidence-led business quality, capital allocation, valuation, and risk analysis. Primarily US-market oriented."},owner:"finterm-ai",repository:"investment-skills",status:"experimental",lastCommit:"2026-07-22",reviewBy:"2026-11-06",tags:["business-analysis","cash-flow","perspective","risk","valuation"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4E0D\u80FD\u76F4\u63A5\u5F53\u4F5C A \u80A1\u89C4\u5219\u6216\u6295\u8D44\u5EFA\u8BAE\u3002",en:"Experimental; do not treat it as A-share rules or investment advice."}},{key:"financialHealth",name:"financial-health",label:{zh:"\u8D22\u52A1\u5065\u5EB7",en:"Financial Health"},description:{zh:"\u68C0\u67E5\u76C8\u5229\u8D28\u91CF\u3001\u73B0\u91D1\u8F6C\u6362\u3001\u8425\u8FD0\u8D44\u672C\u3001\u6760\u6746\u548C\u8D44\u4EA7\u8D1F\u503A\u8868\u98CE\u9669\u3002",en:"Checks earnings quality, cash conversion, working capital, leverage, and balance-sheet risk."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","cash-flow","financial-health","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u7EF4\u62A4\u8F83\u4E45\u672A\u66F4\u65B0\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u5185\u5BB9\u548C\u6765\u6E90\u3002",en:"Cold-start experiment; upstream has been quiet, so review content and sources before use."}},{key:"riskWarningCatalysts",name:"risk-warning-catalysts",label:{zh:"\u98CE\u9669\u4E0E\u50AC\u5316\u5242\u76D1\u63A7",en:"Risk Warning Catalysts"},description:{zh:"\u628A\u7814\u7A76\u7ED3\u8BBA\u8F6C\u6210\u5E26\u6765\u6E90\u3001\u9608\u503C\u548C\u590D\u67E5\u9891\u7387\u7684\u98CE\u9669\u4E0E\u50AC\u5316\u5242\u76D1\u63A7\u9879\u3002",en:"Turns research into source-backed risk and catalyst monitoring with thresholds and review cadence."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","monitoring","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0D\u8D1F\u8D23\u4F30\u503C\u6216\u4EA4\u6613\u51B3\u7B56\u3002",en:"Cold-start experiment; it does not make valuation or trading decisions."}},{key:"valuationInvestmentStrategy",name:"valuation-investment-strategy",label:{zh:"\u4F30\u503C\u4E0E\u60C5\u666F\u5206\u6790",en:"Valuation Investment Strategy"},description:{zh:"\u5728\u4E8B\u5B9E\u57FA\u7840\u5B8C\u6210\u540E\u6784\u5EFA\u5E26\u5047\u8BBE\u3001\u60C5\u666F\u548C\u5931\u6548\u6761\u4EF6\u7684\u4F30\u503C\u6846\u67B6\u3002",en:"Builds valuation scenarios with assumptions and invalidation conditions after the factual base is ready."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","risk","valuation"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u8F93\u51FA\u4E0D\u7B49\u4E8E\u4E70\u5356\u6216\u4ED3\u4F4D\u5EFA\u8BAE\u3002",en:"Cold-start experiment; output is not a buy, sell, or position-size recommendation."}},{key:"strategyBusinessTransition",name:"strategy-business-transition",label:{zh:"\u6218\u7565\u4E0E\u4E1A\u52A1\u8F6C\u578B",en:"Strategy Business Transition"},description:{zh:"\u68C0\u9A8C\u516C\u53F8\u6218\u7565\u53D9\u4E8B\u3001\u4E1A\u52A1\u8FC1\u79FB\u3001\u8D44\u672C\u914D\u7F6E\u548C\u8F6C\u578B\u91CC\u7A0B\u7891\u3002",en:"Tests strategy narratives, business migration, capital allocation, and transition milestones."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","strategy","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0D\u8D1F\u8D23\u4F30\u503C\u6216\u4EA4\u6613\u8BA1\u5212\u3002",en:"Cold-start experiment; it does not make valuation or trading plans."}},{key:"industryCompetitionMoat",name:"industry-competition-moat",label:{zh:"\u884C\u4E1A\u7ADE\u4E89\u4E0E\u62A4\u57CE\u6CB3",en:"Industry Competition Moat"},description:{zh:"\u5206\u6790\u884C\u4E1A\u7ED3\u6784\u3001\u7ADE\u4E89\u683C\u5C40\u3001\u4F9B\u9700\u548C\u516C\u53F8\u5DEE\u5F02\u5316\u662F\u5426\u53EF\u6301\u7EED\u3002",en:"Analyzes industry structure, competition, supply-demand, and sustainable differentiation."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","business-analysis","competition","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u884C\u4E1A\u5224\u65AD\u4ECD\u9700\u56DE\u5230\u516C\u5F00\u8BC1\u636E\u3002",en:"Cold-start experiment; industry conclusions still require public evidence."}},{key:"businessDecompositionOrderQuality",name:"business-decomposition-order-quality",label:{zh:"\u4E1A\u52A1\u62C6\u89E3\u4E0E\u8BA2\u5355\u8D28\u91CF",en:"Business Decomposition Order Quality"},description:{zh:"\u62C6\u89E3\u4EA7\u54C1\u3001\u5BA2\u6237\u3001\u9879\u76EE\u548C\u8BA2\u5355\uFF0C\u68C0\u67E5\u589E\u957F\u80FD\u5426\u8F6C\u5316\u4E3A\u6536\u5165\u548C\u73B0\u91D1\u3002",en:"Breaks down products, customers, projects, and orders to test conversion into revenue and cash."},owner:"spikeHongg",repository:"china-stock-research-skills",status:"watchlist",lastCommit:"2026-03-09",reviewBy:"2026-11-06",tags:["a-share","business-analysis","cash-flow","orders","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0D\u8D1F\u8D23\u6700\u7EC8\u4F30\u503C\u6216\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; it does not make final valuation or trading recommendations."}},{key:"tenKDigest",name:"10k-digest",label:{zh:"\u5E74\u62A5\uFF0810-K\uFF09\u9010\u8282\u7CBE\u8BFB",en:"10-K Report Digest"},description:{zh:"\u9010\u8282\u7CBE\u8BFB\u7F8E\u80A1\u5E74\u62A5 10-K\uFF0C\u4EA7\u51FA\u6458\u8981\u3001\u5206\u8282\u8981\u70B9\u3001\u5173\u952E\u6307\u6807\u4E0E\u53EF\u6838\u5BF9\u7684\u51FA\u5904\u5F15\u7528\u3002",en:"Reads a 10-K section by section into an abstract, section summaries, key metrics and sourced references."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","business-analysis"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u7AE0\u8282\u53E3\u5F84\u6309\u7F8E\u80A1 10-K \u5199\uFF0CA \u80A1\u5E74\u62A5\u7684\u62AB\u9732\u7ED3\u6784\u4E0D\u540C\uFF0C\u4E0D\u80FD\u76F4\u63A5\u5E73\u79FB\u3002",en:"Experimental; the section map follows US 10-K disclosure and does not transfer to A-share annual reports."}},{key:"bearCase",name:"bear-case",label:{zh:"\u7A7A\u5934\u89C6\u89D2\u7EA2\u961F\u53CD\u9A73",en:"Bear Case Red Team"},description:{zh:"\u9488\u5BF9\u4E00\u4E2A\u770B\u591A\u8BBA\u70B9\u523B\u610F\u6784\u5EFA\u6700\u5F3A\u7684\u53CD\u9762\u8BBA\u8BC1\uFF0C\u9010\u6761\u627E\u51FA\u53CD\u8BC1\u4E0E\u8106\u5F31\u5047\u8BBE\u3002",en:"Builds the strongest deliberate short-side counter-argument to a bullish thesis, with counterevidence."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","risk","perspective"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u53EA\u505A\u53CD\u9762\u8BBA\u8BC1\uFF0C\u4E0D\u6784\u6210\u5356\u51FA\u6216\u505A\u7A7A\u5EFA\u8BAE\uFF0C\u4E5F\u4E0D\u9884\u6D4B\u8DCC\u5E45\u3002",en:"Experimental; a counter-argument only, not a sell or short recommendation and no downside forecast."}},{key:"catalystCalendar",name:"catalyst-calendar",label:{zh:"90 \u5929\u50AC\u5316\u5242\u65E5\u5386",en:"Catalyst Calendar"},description:{zh:"\u5217\u51FA\u672A\u6765 90 \u5929\u7684\u4E8B\u4EF6\u50AC\u5316\u5242\u4E0E\u9884\u671F\u5F71\u54CD\uFF0C\u7528\u6765\u5B89\u6392\u590D\u67E5\u8282\u594F\u3002",en:"Lists upcoming catalysts over a 90-day window with expected impact and a review cadence."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","earnings","monitoring"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4E8B\u4EF6\u5F71\u54CD\u662F\u5B9A\u6027\u5224\u65AD\uFF0C\u4E0D\u9884\u6D4B\u5177\u4F53\u6DA8\u8DCC\u3002",en:"Experimental; catalyst impact is qualitative and does not forecast price moves."}},{key:"competitorAnalysis",name:"competitor-analysis",label:{zh:"\u76F4\u63A5\u5BF9\u624B\u4E0E\u62A4\u57CE\u6CB3",en:"Competitor Analysis"},description:{zh:"\u56F4\u7ED5\u4E00\u5BB6\u516C\u53F8\u4E0E\u5176\u76F4\u63A5\u5BF9\u624B\u505A\u62A4\u57CE\u6CB3\u3001\u5E02\u573A\u5730\u4F4D\u4E0E\u884C\u4E1A\u683C\u5C40\u5206\u6790\u3002",en:"Moat, market position and industry dynamics for one company against its direct rivals."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","competition","business-analysis","risk"],riskNote:{zh:"\u4E0E\u300C\u884C\u4E1A\u7ADE\u4E89\u4E0E\u62A4\u57CE\u6CB3\u300D\u89C6\u89D2\u91CD\u53E0\uFF0C\u540C\u4E1A\u540D\u5355\u4E0E\u53E3\u5F84\u6309\u7F8E\u80A1\u62AB\u9732\u53D6\u6750\uFF1B\u7ED3\u8BBA\u4ECD\u8981\u56DE\u5230\u516C\u5F00\u8BC1\u636E\u3002",en:"Overlaps the industry/moat lens; peer sets follow US disclosure, so conclusions still need public evidence."}},{key:"dividendAnalysis",name:"dividend-analysis",label:{zh:"\u5206\u7EA2\u56DE\u8D2D\u4E0E\u8D44\u672C\u914D\u7F6E",en:"Dividend & Capital Allocation"},description:{zh:"\u628A\u5206\u7EA2\u3001\u56DE\u8D2D\u3001\u5E76\u8D2D\u3001\u503A\u52A1\u7BA1\u7406\u4E0E\u81EA\u7531\u73B0\u91D1\u6D41\u53BB\u5411\u5408\u8D77\u6765\u770B\u8D44\u672C\u914D\u7F6E\u7EAA\u5F8B\u3002",en:"Reviews dividends, buybacks, M&A, debt and FCF deployment as one capital-allocation discipline."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","capital-allocation","cash-flow","valuation"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4E0D\u627F\u8BFA\u80A1\u606F\u53EF\u6301\u7EED\u6027\uFF0C\u4E5F\u4E0D\u9884\u6D4B\u6536\u76CA\u3002",en:"Experimental; it does not promise dividend sustainability or returns."}},{key:"earningsCallAnalysis",name:"earnings-call-analysis",label:{zh:"\u4E1A\u7EE9\u7535\u8BDD\u4F1A\u6587\u672C\u5206\u6790",en:"Earnings Call Analysis"},description:{zh:"\u4ECE\u4E1A\u7EE9\u7535\u8BDD\u4F1A\u7EAA\u8981\u91CC\u8BFB\u60C5\u7EEA\u3001\u4E3B\u9898\u4E0E\u7BA1\u7406\u5C42\u53E3\u5F84\u7684\u53D8\u5316\u3002",en:"Reads sentiment, themes and shifts in management tone from earnings call transcripts."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","earnings","perspective"],riskNote:{zh:"\u5FC5\u987B\u5148\u62FF\u5230\u7EAA\u8981\u539F\u6587\uFF1B\u6CA1\u6709\u539F\u6587\u65F6\u4E0D\u8BB8\u51ED\u5370\u8C61\u8865\u5199\u7BA1\u7406\u5C42\u8868\u6001\u3002",en:"Needs the actual transcript; never reconstruct management remarks from memory."}},{key:"earningsPreview",name:"earnings-preview",label:{zh:"\u8D22\u62A5\u524D\u4E09\u6863\u60C5\u666F\u63A8\u6F14",en:"Earnings Preview"},description:{zh:"\u5BF9\u6BD4\u4E00\u81F4\u9884\u671F\u4E0E\u671F\u6743\u9690\u542B\u6CE2\u52A8\uFF0C\u7ED9\u51FA\u8D85\u9884\u671F/\u7B26\u5408/\u4E0D\u53CA\u4E09\u6863\u60C5\u666F\u4E0E\u5404\u81EA\u8981\u76EF\u7684\u6307\u6807\u3002",en:"Compares consensus with the implied move and lays out beat / in-line / miss scenarios with watch KPIs."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","earnings","risk","monitoring"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u6B63\u6587\u6BCF\u6863\u60C5\u666F\u5E26\u4ED3\u4F4D\u5199\u6CD5\uFF0C\u53EA\u5F53\u63A8\u6F14\u7EC3\u4E60\uFF0C\u4E0D\u662F\u4EA4\u6613\u6307\u4EE4\u3002",en:"Experimental; each scenario carries position wording \u2014 read it as a rehearsal, not a trade instruction."}},{key:"economicsAnalysis",name:"economics-analysis",label:{zh:"\u7F8E\u56FD\u5B8F\u89C2\u6307\u6807\u89E3\u8BFB",en:"US Economics Analysis"},description:{zh:"\u89E3\u8BFB\u7F8E\u56FD\u5B8F\u89C2\u6570\u636E\u4E0E\u5229\u7387\u8DEF\u5F84\uFF0C\u5E76\u4EA4\u4EE3\u5B83\u4F20\u5BFC\u5230\u5E02\u573A\u7684\u8DEF\u5F84\u3002",en:"Interprets US macro prints and the rate path, and spells out the transmission to markets."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","macro","risk"],riskNote:{zh:"\u53E3\u5F84\u662F\u7F8E\u56FD\u5B8F\u89C2\uFF0C\u5BF9 A \u80A1\u53EA\u80FD\u5F53\u5916\u90E8\u73AF\u5883\u53D8\u91CF\uFF0C\u4E0D\u76F4\u63A5\u63A8\u653F\u7B56\u3002",en:"US macro only; for A-shares treat it as an external condition, not a policy read."}},{key:"etfAnalysis",name:"etf-analysis",label:{zh:"ETF \u5C3D\u8C03\u4E0E\u5951\u5408\u5EA6\u8BC4\u5206",en:"ETF Analysis"},description:{zh:"\u8D39\u7387\u3001\u8DDF\u8E2A\u8BEF\u5DEE\u3001\u6D41\u52A8\u6027\u3001\u6210\u5206\u96C6\u4E2D\u5EA6\u4E0E\u6301\u4ED3\u91CD\u53E0\uFF0C\u6C47\u6210\u4E00\u679A ETF \u5951\u5408\u5EA6\u8BC4\u5206\u3002",en:"Expense ratio, tracking difference, liquidity, concentration and overlap rolled into a fitness score."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","instruments","portfolio","risk"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u8BC4\u5206\u8861\u91CF\u7ED3\u6784\u7279\u5F81\uFF0C\u4E0D\u4EE3\u8868\u6536\u76CA\u9884\u671F\u3002",en:"Experimental; the score describes structure, not expected return."}},{key:"factCheck",name:"fact-check",label:{zh:"\u9010\u6761\u4E3B\u5F20\u6838\u9A8C\u4E0E\u8865\u5F15\u7528",en:"Fact Check"},description:{zh:"\u628A\u62A5\u544A\u91CC\u7684\u6BCF\u4E2A\u6570\u5B57\u4E0E\u4E8B\u5B9E\u4E3B\u5F20\u62C6\u51FA\u6765\u9010\u6761\u6BD4\u5BF9\u4E00\u624B\u6765\u6E90\uFF0C\u6807\u6CE8\u5DF2\u6838\u9A8C/\u4E0D\u7B26/\u65E0\u6CD5\u6838\u9A8C\u5E76\u56DE\u586B\u5F15\u7528\u3002",en:"Extracts every figure and claim, checks each against a primary source, and marks verified / mismatch / unverifiable."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","verification"],riskNote:{zh:"\u4E00\u624B\u6765\u6E90\u6E05\u5355\u6309 SEC \u6587\u4EF6\u3001\u516C\u53F8 IR\u3001FRED \u4E0E\u4EA4\u6613\u6240\u6570\u636E\u5199\uFF1BA \u80A1\u6750\u6599\u8981\u6362\u6210\u516C\u544A\u4E0E\u5B98\u65B9\u62AB\u9732\u3002",en:"Its primary-source list is SEC / IR / FRED / exchange data; swap in announcements and official disclosure for A-shares."}},{key:"financialReportAnalyst",name:"financial-report-analyst",label:{zh:"\u8D22\u62A5\u8D28\u91CF\u4E0E\u7EA2\u65D7\u89E3\u8BFB",en:"Financial Report Analyst"},description:{zh:"\u4ECE 10-K / 10-Q \u8BFB\u62A5\u8868\u8D28\u91CF\u3001\u5F02\u5E38\u7EA2\u65D7\u4E0E\u4E00\u4E2A\u53EF\u4EA4\u4EE3\u51FA\u5904\u7684\u4FE1\u53F7\u3002",en:"Reads statement quality, red flags and one sourced signal from 10-K / 10-Q filings."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","financial-health","risk"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u7EA2\u65D7\u662F\u63D0\u793A\u590D\u67E5\u7684\u7EBF\u7D22\uFF0C\u4E0D\u662F\u7ED3\u8BBA\u3002",en:"Experimental; red flags are prompts to re-check, not conclusions."}},{key:"industryMap",name:"industry-map",label:{zh:"\u4EA7\u4E1A\u94FE\u5730\u56FE\u4E0E\u54BD\u5589\u70B9",en:"Industry Map"},description:{zh:"\u628A\u4E0A\u4E0B\u6E38\u753B\u6210\u6709\u5411\u56FE\uFF0C\u5B9A\u4F4D\u516C\u53F8\u4F4D\u7F6E\u3001\u627E\u4F9B\u9700\u74F6\u9888\u4E0E\u5229\u6DA6\u6C60\uFF0C\u5E76\u6D3E\u751F\u4E8C\u7EBF\u7EBF\u7D22\u3002",en:"Maps the value chain as a directed graph to locate the company, find chokepoints and second-order ideas."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","macro","competition","business-analysis"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u4EA7\u4E1A\u94FE\u5224\u65AD\u4ECD\u9700\u9010\u6761\u56DE\u5230\u516C\u5F00\u8BC1\u636E\u3002",en:"Experimental; value-chain reads still need claim-by-claim public evidence."}},{key:"insiderTrading",name:"insider-trading",label:{zh:"\u5185\u90E8\u4EBA\u589E\u51CF\u6301\u8FFD\u8E2A",en:"Insider Trading"},description:{zh:"\u4ECE SEC Form 4 \u8FFD\u8E2A\u9AD8\u7BA1\u4E0E\u8463\u4E8B\u7684\u589E\u51CF\u53D8\u52A8\u5E76\u505A\u89E3\u8BFB\u3002",en:"Tracks executive and director buying and selling from SEC Form 4 filings."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","monitoring","perspective"],riskNote:{zh:"\u4F9D\u8D56\u7F8E\u56FD\u5185\u90E8\u4EBA\u7533\u62A5\u5236\u5EA6\uFF1BA \u80A1\u8981\u6362\u6210\u5927\u80A1\u4E1C\u4E0E\u8463\u76D1\u9AD8\u53D8\u52A8\u516C\u544A\uFF0C\u53E3\u5F84\u4E0D\u53EF\u76F4\u63A5\u5E73\u79FB\u3002",en:"Assumes US insider filings; A-shares need major-holder and director-change announcements instead."}},{key:"institutionalOwnership",name:"institutional-ownership",label:{zh:"\u673A\u6784\u6301\u4ED3\u53D8\u52A8",en:"Institutional Ownership"},description:{zh:"\u4ECE 13F \u6587\u4EF6\u8BFB\u673A\u6784\u6301\u4ED3\u53D8\u5316\uFF0C\u8BC6\u522B\u673A\u6784\u8D44\u91D1\u7684\u8FC1\u79FB\u65B9\u5411\u3002",en:"Reads changes in institutional holdings from 13F filings to spot where the money is moving."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","monitoring"],riskNote:{zh:"13F \u6709\u4E00\u4E2A\u5B63\u5EA6\u6EDE\u540E\u4E14\u4E0D\u542B\u7A7A\u5934\u4ED3\u4F4D\uFF1B\u8BFB\u6210\u8D8B\u52BF\u4E4B\u524D\u5148\u8BB0\u4F4F\u8FD9\u4E24\u70B9\u3002",en:"13F lags a quarter and omits shorts \u2014 remember both before reading it as a trend."}},{key:"learningCoach",name:"learning-coach",label:{zh:"\u628A\u5206\u6790\u8BB2\u6210\u8BFE\u7A0B",en:"Learning Coach"},description:{zh:"\u50CF\u5BFC\u5E08\u4E00\u6837\u9010\u6307\u6807\u89E3\u91CA\u4E00\u4EFD\u5206\u6790\u7ED3\u679C\uFF0C\u518D\u53CD\u95EE 3\u20135 \u4E2A\u68C0\u9A8C\u7406\u89E3\u7684\u95EE\u9898\u3002",en:"Explains an analysis metric by metric in plain words, then asks 3\u20135 Socratic questions."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["education","perspective"],riskNote:{zh:"\u6559\u5B66\u6027\u8D28\uFF1B\u5B83\u89E3\u91CA\u7684\u662F\u4E0A\u6E38\u5206\u6790\u7684\u53E3\u5F84\uFF0C\u4E0D\u989D\u5916\u4EA7\u751F\u6295\u8D44\u5224\u65AD\u3002",en:"Educational; it explains the analysis it is handed and forms no investment view of its own."}},{key:"optionsAnalysis",name:"options-analysis",label:{zh:"\u671F\u6743\u5E0C\u814A\u5B57\u6BCD\u4E0E\u9690\u6CE2",en:"Options Analysis"},description:{zh:"\u770B\u5E0C\u814A\u5B57\u6BCD\u3001\u9690\u542B\u6CE2\u52A8\u7387\u4E0E\u7B56\u7565\u9002\u914D\u5EA6\uFF0C\u7528\u6765\u7406\u89E3\u671F\u6743\u7684\u98CE\u9669\u5F62\u72B6\u3002",en:"Reviews Greeks, implied volatility and strategy fit to characterise an options risk shape."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","instruments","risk"],riskNote:{zh:"\u5B9E\u9A8C\u6027\u8D28\uFF1B\u53EA\u89E3\u91CA\u671F\u6743\u98CE\u9669\uFF0C\u4E0D\u63A8\u8350\u5177\u4F53\u5408\u7EA6\u6216\u7B56\u7565\u7EC4\u5408\u3002",en:"Experimental; it explains options risk and does not recommend contracts or spreads."}},{key:"portfolioReview",name:"portfolio-review",label:{zh:"\u7EC4\u5408\u8868\u73B0\u4E0E\u914D\u7F6E\u504F\u79BB",en:"Portfolio Review"},description:{zh:"\u590D\u76D8\u7EC4\u5408\u7684\u6536\u76CA\u6765\u6E90\u3001\u96C6\u4E2D\u5EA6\u4E0E\u914D\u7F6E\u504F\u79BB\uFF0C\u5E76\u5217\u51FA\u9700\u8981\u76EF\u7684\u89C2\u5BDF\u9879\u3002",en:"Reviews portfolio performance, concentration and allocation drift, with items to watch."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","portfolio","risk"],riskNote:{zh:"\u4E0E\u672C\u63D2\u4EF6\u81EA\u5E26\u7684\u7EC4\u5408\u590D\u76D8\u6D41\u7A0B\u91CD\u53E0\uFF1B\u8FD9\u6761\u6309\u7F8E\u80A1\u8BED\u5883\u7ED9\u89C2\u5BDF\u6E05\u5355\uFF0C\u4ED3\u4F4D\u52A8\u4F5C\u4ECD\u7531\u4F7F\u7528\u8005\u51B3\u5B9A\u3002",en:"Overlaps the built-in portfolio review; this one gives a US-context watchlist and leaves position moves to you."}},{key:"positionLadder",name:"position-ladder",label:{zh:"\u5206\u6279\u5EFA\u4ED3\u4E0E\u644A\u8584\u8282\u594F",en:"Position Ladder"},description:{zh:"\u628A\u5EFA\u4ED3\u62C6\u6210\u5206\u6279\u7684\u80A1\u6570\u4E0A\u4E0B\u9650\u4E0E\u52A0\u51CF\u4ED3\u8282\u594F\uFF0C\u5E76\u68C0\u67E5\u6279\u6B21\u8BB0\u8D26\u3001\u6D17\u552E\u7A97\u53E3\u4E0E\u603B\u6536\u76CA\u53E3\u5F84\u3002",en:"Plans a staged entry with share-count floors and ceilings, trim/re-add cadence, lot and wash-sale checks."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","portfolio","monitoring"],riskNote:{zh:"\u6B63\u6587\u91CC\u7684\u80A1\u6570\u533A\u95F4\u662F\u63A8\u6F14\u7528\u7684\u7EC3\u4E60\uFF0C\u4E0D\u662F\u4E70\u5356\u6307\u4EE4\uFF1B\u672C\u63D2\u4EF6\u4E0D\u63D0\u4F9B\u6295\u8D44\u5EFA\u8BAE\uFF0C\u4ED3\u4F4D\u51B3\u5B9A\u5728\u4F7F\u7528\u8005\u3002",en:"Its share-count ranges are rehearsal arithmetic, not orders; this plugin gives no investment advice."}},{key:"resultValidator",name:"result-validator",label:{zh:"\u5206\u6790\u7ED3\u679C\u7F6E\u4FE1\u5EA6\u8BC4\u5206",en:"Result Validator"},description:{zh:"\u4ECE\u6570\u636E\u8D28\u91CF\u3001\u65B9\u6CD5\u4E00\u81F4\u6027\u4E0E\u4FE1\u53F7\u51B2\u7A81\u4E09\u4E2A\u7EF4\u5EA6\uFF0C\u7ED9\u4E00\u4EFD\u5206\u6790\u7ED3\u679C\u6253\u7F6E\u4FE1\u5EA6\u5206\u3002",en:"Scores an analysis's confidence across data quality, methodology and signal consistency."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["verification","perspective"],riskNote:{zh:"\u6253\u7684\u662F\u6570\u636E\u4E0E\u65B9\u6CD5\u81EA\u6D3D\u5EA6\uFF0C\u4E0D\u7B49\u4E8E\u9884\u6D4B\u51C6\u786E\u7387\uFF0C\u4E5F\u4E0D\u627F\u8BFA\u8868\u73B0\u3002",en:"It grades internal data/method consistency, not forecast accuracy or future performance."}},{key:"riskStressTest",name:"risk-stress-test",label:{zh:"\u7EC4\u5408\u538B\u529B\u6D4B\u8BD5\u4E0E\u98CE\u9669\u9884\u7B97",en:"Risk Stress Test"},description:{zh:"beta \u52A0\u6743\u655E\u53E3\u3001\u5386\u53F2\u60C5\u666F\u91CD\u653E\u3001VaR / CVaR\u3001\u6700\u5927\u56DE\u64A4\u4F30\u8BA1\u4E0E\u6D41\u52A8\u6027\u9000\u51FA\u5929\u6570\u3002",en:"Beta-weighted exposure, historical scenario replay, VaR / CVaR, drawdown estimates and days to exit."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","portfolio","risk","macro"],riskNote:{zh:"\u6A21\u578B\u5316\u4F30\u8BA1\uFF0C\u5047\u8BBE\u4E00\u53D8\u7ED3\u679C\u5C31\u53D8\uFF1B\u4E0D\u6784\u6210\u98CE\u63A7\u989D\u5EA6\uFF0C\u4E5F\u4E0D\u662F\u51CF\u4ED3\u6307\u4EE4\u3002",en:"Model output moves with every assumption; this is not a risk limit or a de-risking order."}},{key:"sectorAnalysis",name:"sector-analysis",label:{zh:"\u677F\u5757\u76F8\u5BF9\u5F3A\u5F31\u4E0E\u8F6E\u52A8",en:"Sector Analysis"},description:{zh:"\u770B\u7F8E\u56FD\u5404\u677F\u5757\u7684\u76F8\u5BF9\u5F3A\u5F31\u4E0E\u8F6E\u52A8\u7EBF\u7D22\uFF0C\u5E76\u4EA4\u4EE3\u5224\u65AD\u4F9D\u636E\u3002",en:"Reviews US sector positioning and rotation clues, and states what each read rests on."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","macro","competition"],riskNote:{zh:"\u677F\u5757\u5206\u7C7B\u6309\u7F8E\u80A1\u53E3\u5F84\uFF0C\u4E0E A \u80A1\u884C\u4E1A\u5206\u7C7B\u4E0D\u53EF\u76F4\u63A5\u5BF9\u7167\u3002",en:"Sector taxonomy is US-market; it does not line up with A-share industry classification."}},{key:"shortInterest",name:"short-interest",label:{zh:"\u7A7A\u5934\u6301\u4ED3\u4E0E\u6324\u538B\u6761\u4EF6",en:"Short Interest"},description:{zh:"\u8BFB\u7A7A\u5934\u6BD4\u4F8B\u3001\u56DE\u8865\u6210\u672C\u4E0E\u6324\u538B\u6761\u4EF6\uFF0C\u5E76\u68C0\u67E5\u5229\u7A7A\u5806\u79EF\u4FE1\u53F7\u3002",en:"Analyses short ratio, cost to cover, squeeze conditions and bearish positioning signals."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","filings","monitoring","risk"],riskNote:{zh:"\u7A7A\u5934\u6570\u636E\u662F\u6EDE\u540E\u62AB\u9732\uFF1B\u5F53\u6210\u5B9E\u65F6\u7ED3\u8BBA\u4E4B\u524D\u5148\u6838\u5BF9\u53E3\u5F84\u4E0E\u622A\u6B62\u65E5\u671F\u3002",en:"Short data is reported with a lag \u2014 check basis and as-of date before reading it as live."}},{key:"stockEval",name:"stock-eval",label:{zh:"\u57FA\u672C\u9762\u4E0E\u4F30\u503C\u7EFC\u5408\u8BC4\u4F30",en:"Stock Evaluation"},description:{zh:"\u628A\u8D22\u52A1\u8D28\u91CF\u3001\u6210\u957F\u3001\u4F30\u503C\u4E0E\u98CE\u9669\u5408\u5230\u4E00\u6B21\u7EFC\u5408\u8BC4\u4F30\u91CC\uFF0C\u5E76\u8F93\u51FA\u4E00\u4E2A\u53EF\u4EA4\u4EE3\u51FA\u5904\u7684\u7ED3\u8BBA\u3002",en:"Combines quality, growth, valuation and risk into one evaluation with a sourced conclusion."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","business-analysis","financial-health","valuation","risk"],riskNote:{zh:"\u4E0A\u6E38\u5DF2\u628A fundamental-analysis \u5408\u5165\u672C\u6761\uFF1B\u7EFC\u5408\u7ED3\u8BBA\u4ECD\u662F\u7F8E\u80A1\u53E3\u5F84\uFF0C\u4E0D\u66FF\u4EE3\u672C\u63D2\u4EF6\u65E2\u6709\u7814\u7A76\u6D41\u7A0B\u3002",en:"Upstream folded fundamental-analysis in; the read is US-context and does not replace Capital's own research flow."}},{key:"stockScreener",name:"stock-screener",label:{zh:"\u591A\u6807\u7684\u6A2A\u5411\u6253\u5206\u6392\u5E8F",en:"Stock Screener"},description:{zh:"\u6309\u4F30\u503C\u3001\u8D28\u91CF\u3001\u52A8\u91CF\u3001\u60C5\u7EEA\u4E0E\u6210\u957F\u4E94\u4E2A\u7EF4\u5EA6\u7ED9\u4E00\u7BEE\u5B50\u6807\u7684\u6253\u5206\u5E76\u6392\u5E8F\u3002",en:"Screens and ranks a list of US stocks across valuation, quality, momentum, sentiment and growth."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","valuation","business-analysis","technicals"],riskNote:{zh:"\u6392\u5E8F\u53EA\u53CD\u6620\u5F53\u671F\u6253\u5206\u53E3\u5F84\uFF0C\u4E0D\u9884\u6D4B\u672A\u6765\u8868\u73B0\uFF1B\u6807\u7684\u6E05\u5355\u4E0E\u6570\u636E\u6765\u6E90\u4ECD\u8981\u8D70\u672C\u63D2\u4EF6\u7684\u53D6\u6570\u94FE\u8DEF\u3002",en:"Ranking reflects the current scoring inputs only, not future performance; data still comes via Capital's own sources."}},{key:"stockValuation",name:"stock-valuation",label:{zh:"\u56DB\u65B9\u6CD5\u4F30\u503C\u533A\u95F4",en:"Stock Valuation"},description:{zh:"DCF\u3001\u53EF\u6BD4\u516C\u53F8\u3001EV \u500D\u6570\u4E0E\u5269\u4F59\u6536\u76CA\u4E00\u8D77\u51FA\u4F30\u503C\u533A\u95F4\uFF0C\u5E76\u9010\u6761\u4EA4\u4EE3\u5047\u8BBE\u3002",en:"Values a company with DCF, comparables, EV multiples and residual income, stating every assumption."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","valuation","cash-flow"],riskNote:{zh:"\u533A\u95F4\u968F\u5047\u8BBE\u5927\u5E45\u79FB\u52A8\uFF1B\u8F93\u51FA\u4E0D\u7B49\u4E8E\u76EE\u6807\u4EF7\uFF0C\u4E5F\u4E0D\u662F\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Ranges swing with assumptions; the output is not a price target or a trade call."}},{key:"taxLens",name:"tax-lens",label:{zh:"\u7F8E\u56FD\u7A0E\u52A1\u89C6\u89D2\u68C0\u89C6\u6E05\u5355",en:"Tax Lens"},description:{zh:"\u957F\u77ED\u671F\u8D44\u672C\u5229\u5F97\u3001\u6D17\u552E\u7A97\u53E3\u3001\u5408\u683C\u80A1\u606F\u6301\u6709\u671F\u3001\u6279\u6B21\u9009\u62E9\u4E0E\u5E74\u5EA6\u7A0E\u8D1F\u62D6\u7D2F\u7684\u68C0\u89C6\u6E05\u5355\u3002",en:"Checks short vs. long-term gains, wash-sale windows, qualified dividends, lot selection and estimated tax drag."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","tax","portfolio"],riskNote:{zh:"\u53EA\u8BB2\u7F8E\u56FD\u7A0E\u5236\u4E14\u6B62\u4E8E\u6559\u80B2\u53E3\u5F84\uFF1B\u4E2D\u56FD\u5927\u9646\u7684\u7A0E\u52A1\u4E0E\u8D26\u6237\u5B89\u6392\u8BF7\u54A8\u8BE2\u4E13\u4E1A\u4EBA\u58EB\u3002",en:"US tax mechanics, educational only; get professional advice for mainland-China tax and account matters."}},{key:"technicalAnalysis",name:"technical-analysis",label:{zh:"\u6280\u672F\u9762\u4E0E\u6307\u6807\u89E3\u8BFB",en:"Technical Analysis"},description:{zh:"\u7528\u5747\u7EBF\u3001\u6210\u4EA4\u91CF\u3001RSI / MACD \u7B49\u6307\u6807\u8BFB\u8D8B\u52BF\u3001\u5173\u952E\u4EF7\u4F4D\u4E0E\u590D\u67E5\u89E6\u53D1\u6761\u4EF6\u3002",en:"Reads trend and key levels with moving averages, volume, RSI and MACD, plus re-check triggers."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","technicals","monitoring"],riskNote:{zh:"\u6280\u672F\u4FE1\u53F7\u53EA\u7ED9\u590D\u67E5\u6761\u4EF6\uFF0C\u4E0D\u9884\u6D4B\u65B9\u5411\uFF1B\u4E0D\u8981\u628A\u56FE\u5F62\u7ED3\u8BBA\u5199\u6210\u4E8B\u5B9E\u3002",en:"Technical signals are re-check triggers, not direction forecasts \u2014 do not present them as facts."}},{key:"thesisTracker",name:"thesis-tracker",label:{zh:"\u6295\u8D44\u8BBA\u70B9\u5B58\u6863\u4E0E\u590D\u6838",en:"Thesis Tracker"},description:{zh:"\u5199\u4E0B\u8BBA\u70B9\u7684 KPI\u3001\u5931\u6548\u6761\u4EF6\u4E0E\u50AC\u5316\u5242\uFF0C\u4E4B\u540E\u6309\u65B0\u6570\u636E\u590D\u67E5\u5E76\u7ED9\u51FA\u7EF4\u6301 / \u8D70\u5F31 / \u5931\u6548\u3002",en:"Records KPIs, invalidation triggers and catalysts, then re-checks them as INTACT / WEAKENED / BROKEN."},owner:"yennanliu",repository:"InvestSkill",status:"experimental",lastCommit:"2026-09-25",reviewBy:"2026-11-06",tags:["us-stock","verification","monitoring","perspective"],riskNote:{zh:"\u4E0A\u6E38\u5047\u8BBE\u80FD\u628A\u8BBA\u70B9\u843D\u76D8\uFF1B\u5728\u672C\u63D2\u4EF6\u4E0B\u6587\u4EF6\u5199\u5728\u5DE5\u4F5C\u76EE\u5F55\u5E76\u670D\u4ECE\u5F53\u524D\u4F1A\u8BDD\u6743\u9650\u3002",en:"Upstream assumes it can save files; under Capital it writes into the session workspace and obeys its permissions."}},{key:"peterLynchResearch",name:"peter-lynch-skill",label:{zh:"\u5F7C\u5F97\xB7\u6797\u5947\u5F0F\u4E2A\u80A1\u7814\u7A76",en:"Peter Lynch Research"},description:{zh:"\u7ED9\u4E00\u4E2A\u4EE3\u7801\u6216\u516C\u53F8\u540D\uFF0C\u8D70\u5FEB\u7B5B\uFF08SKIP / WATCHLIST / DEEP RESEARCH\uFF09\u6216\u5B8C\u6574\u5C3D\u8C03\uFF0C\u751F\u610F\u7406\u89E3\u3001\u5206\u7C7B\u4E0E\u4F30\u503C\u653E\u5728\u540C\u4E00\u5957\u68C0\u67E5\u91CC\uFF0C\u6BCF\u6761\u4E3B\u5F20\u914D\u53EF\u70B9\u5F00\u7684\u6765\u6E90\u94FE\u63A5\u3002\u7F8E\u80A1\u4E0E\u5883\u5916\u4E0A\u5E02\u53E3\u5F84\u3002",en:"Screens a ticker or company fast (SKIP / WATCHLIST / DEEP RESEARCH) or runs full due diligence, with linked sources under every claim. US and overseas-listing conventions."},owner:"DjNero11",repository:"peter-lynch-skill",status:"watchlist",lastCommit:"2026-06-28",reviewBy:"2026-11-06",tags:["peter-lynch","us-stock","valuation","risk","verification"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u4EC5\u4E24\u6B21\u63D0\u4EA4\u3001\u81EA 2026-06-28 \u8D77\u65E0\u66F4\u65B0\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002X/10 \u8861\u91CF\u7684\u662F\u8BBA\u70B9\u81EA\u6D3D\u5EA6\u4E0E\u7ED3\u6784\u7279\u5F81\uFF0C\u4E0D\u9884\u6D4B\u8868\u73B0\uFF0C\u4E5F\u4E0D\u6784\u6210\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream has two commits and has been quiet since 2026-06-28, so review the sources before use. The X/10 score rates thesis consistency and structure, not forecast performance, and is not investment advice."}},{key:"catalystMap",name:"catalyst-map",label:{zh:"\u50AC\u5316\u5242\u5730\u56FE",en:"Catalyst Map"},description:{zh:'\u628A\u8981\u53D1\u751F\u7684\u4E8B\u4EF6\u6309"\u5F71\u54CD\u4EC0\u4E48\u3001\u4EC0\u4E48\u65F6\u5019\u5F71\u54CD\u3001\u4F1A\u4F20\u5BFC\u5230\u8C01"\u6392\u6210\u6CE8\u610F\u529B\u4F18\u5148\u7EA7\uFF0C\u5E76\u6807\u51FA\u4F9D\u8D56\u540C\u4E00\u4E8B\u4EF6\u94FE\u7684\u6301\u4ED3\u3002\u7F8E\u80A1\u4E0E\u5883\u5916\u5B8F\u89C2\u65E5\u5386\u53E3\u5F84\u3002',en:"Ranks upcoming events by what they move, when, and how they transmit across related names, and flags positions hanging on the same event chain. US and overseas calendar conventions."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","macro","monitoring","us-stock"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5B83\u6392\u7684\u662F\u6CE8\u610F\u529B\u4F18\u5148\u7EA7\uFF0C\u4E0D\u9884\u6D4B\u4EF7\u683C\u8D70\u5411\uFF0C\u4E5F\u4E0D\u6784\u6210\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. The map ranks attention, not price direction, and is not investment advice."}},{key:"watchlistReview",name:"watchlist-review",label:{zh:"\u81EA\u9009\u80A1\u5206\u8BCA",en:"Watchlist Review"},description:{zh:"\u5BF9\u4F7F\u7528\u8005\u7ED9\u51FA\u7684\u81EA\u9009\u6E05\u5355\u505A\u5206\u8BCA\uFF1A\u54EA\u4E9B\u503C\u5F97\u76EF\u3001\u54EA\u4E9B\u53EA\u4F5C\u80CC\u666F\u3001\u54EA\u4E9B\u7406\u7531\u5DF2\u7ECF\u4E0D\u6210\u7ACB\uFF0C\u5E76\u8BF4\u6E05\u79FB\u51FA\u7684\u662F\u6E05\u5355\u6761\u76EE\u800C\u4E0D\u662F\u6301\u4ED3\u3002",en:"Triages the watchlist the user supplies into active focus, background monitoring, or removal, and says that what comes off is a list entry, not a position."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","portfolio","monitoring","us-stock"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5206\u8BCA\u53EA\u4F5C\u7528\u4E8E\u81EA\u9009\u6E05\u5355\uFF0C\u4E0D\u6784\u6210\u4E70\u5356\u52A8\u4F5C\uFF1B\u672C\u63D2\u4EF6\u8BFB\u4E0D\u5230\u5238\u5546\u8D26\u6237\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. The triage acts on the watchlist only, is not a buy or sell action, and this plugin cannot read a brokerage account."}},{key:"evidenceGapCheck",name:"evidence-gap-check",label:{zh:"\u8BC1\u636E\u7F3A\u53E3\u68C0\u67E5",en:"Evidence Gap Check"},description:{zh:'\u628A\u4E00\u7B14\u60F3\u6CD5\u8FD8\u7F3A\u7684\u4E8B\u5B9E\u3001\u5047\u8BBE\u4E0E\u672A\u89E3\u95EE\u9898\u6309"\u4F1A\u4E0D\u4F1A\u6539\u53D8\u5224\u65AD"\u6392\u5E8F\uFF0C\u8BF4\u6E05\u54EA\u4E9B\u7F3A\u53E3\u5FC5\u987B\u5148\u8865\u3001\u54EA\u4E9B\u53EA\u662F\u964D\u4F4E\u7F6E\u4FE1\u5EA6\u3002',en:"Ranks the missing facts, assumptions and open questions behind an idea by whether they change the judgement, and separates blocking gaps from confidence gaps."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","verification","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5B83\u53EA\u5217\u8BC1\u636E\u7F3A\u53E3\uFF0C\u4E0D\u7ED9\u8BC4\u7EA7\u3001\u4E0D\u66FF\u4F7F\u7528\u8005\u51B3\u5B9A\u8FD9\u7B14\u505A\u4E0D\u505A\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. It lists evidence gaps only: no rating, and no decision about whether to take the trade."}},{key:"thesisValidation",name:"thesis-validation",label:{zh:"\u8BBA\u70B9\u538B\u529B\u6D4B\u8BD5",en:"Thesis Validation"},description:{zh:"\u628A\u4E00\u4E2A\u8BF4\u6CD5\u538B\u6210\u53EF\u68C0\u9A8C\u7684\u4E3B\u5F20\uFF1A\u8BBA\u70B9\u3001\u8BC1\u636E\u3001\u5931\u6548\u6761\u4EF6\u4E0E\u65F6\u95F4\u7A97\u5206\u5F00\u5199\uFF0C\u518D\u5224\u5B83\u591F\u4E0D\u591F\u683C\u8FDB\u5165\u7ED3\u6784\u68C0\u67E5\u3002",en:"Turns a claim into something testable \u2014 thesis, evidence, invalidation, timeframe \u2014 then judges whether it is ready to be built on."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","verification","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5224\u7684\u662F\u8BBA\u70B9\u662F\u5426\u81EA\u6D3D\u53EF\u68C0\u9A8C\uFF0C\u4E0D\u9884\u6D4B\u8868\u73B0\uFF0C\u4E5F\u4E0D\u6784\u6210\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. It tests whether a thesis is coherent and falsifiable, not how it will perform, and is not investment advice."}},{key:"riskRewardSanityCheck",name:"risk-reward-sanity-check",label:{zh:"\u76C8\u4E8F\u6BD4\u81EA\u6D3D\u68C0\u67E5",en:"Risk-Reward Sanity Check"},description:{zh:"\u6309\u5165\u573A\u3001\u6B62\u635F\u4E0E\u76EE\u6807\u7B97\u51FA\u76C8\u4E8F\u6BD4\uFF0C\u518D\u68C0\u67E5\u8FD9\u4E2A\u7ED3\u6784\u662F\u5426\u81EA\u6D3D\uFF1A\u76EE\u6807\u662F\u5426\u843D\u5728\u566A\u58F0\u91CC\u3001\u6B62\u635F\u662F\u5426\u5728\u660E\u663E\u7684\u6D41\u52A8\u6027\u805A\u96C6\u5904\u3002",en:"Works out the reward-to-risk ratio from entry, stop and target, then tests whether the structure holds \u2014 targets inside noise, stops sitting in obvious liquidity pools."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","risk","us-stock"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u6BD4\u503C\u8861\u91CF\u7684\u662F\u7ED3\u6784\u81EA\u6D3D\u4E0E\u5931\u8D25\u9762\uFF0C\u4E0D\u662F\u80DC\u7387\u6216\u6536\u76CA\u627F\u8BFA\uFF0C\u672C\u63D2\u4EF6\u4E5F\u4E0D\u636E\u5B83\u7ED9\u4ED3\u4F4D\u6570\u5B57\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. The ratio measures structural coherence and failure modes, not win rate or returns, and this plugin derives no position size from it."}},{key:"executionPlanCheck",name:"execution-plan-check",label:{zh:"\u6267\u884C\u8BA1\u5212\u68C0\u67E5",en:"Execution Plan Check"},description:{zh:"\u68C0\u67E5\u4E00\u4EFD\u4EA4\u6613\u8BA1\u5212\u5728\u64CD\u4F5C\u4E0A\u662F\u5426\u771F\u7684\u80FD\u843D\u5730\uFF1A\u8BA2\u5355\u7C7B\u578B\u4E0E\u7D27\u8FEB\u5EA6\u662F\u5426\u5339\u914D\u3001\u6D41\u52A8\u6027\u4E0E\u70B9\u5DEE\u98CE\u9669\u3001\u4E8B\u4EF6\u65F6\u70B9\u3001\u6B62\u635F\u80FD\u5426\u6210\u4EA4\u3002",en:"Checks whether a plan is operationally workable: order type against urgency, liquidity and spread risk, event timing, and whether a stop would actually fill."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","risk","monitoring","us-stock"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u68C0\u67E5\u7684\u662F\u8BA1\u5212\u7684\u53EF\u64CD\u4F5C\u6027\uFF1A\u672C\u63D2\u4EF6\u4E0D\u4E0B\u5355\u3001\u4E0D\u6539\u5355\uFF0C\u4E5F\u4E0D\u7ED9\u4ED3\u4F4D\u6570\u5B57\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. It reviews whether a plan is executable: this plugin places and amends no orders and gives no position size."}},{key:"portfolioConcentration",name:"portfolio-concentration",label:{zh:"\u7EC4\u5408\u96C6\u4E2D\u5EA6\u68C0\u67E5",en:"Portfolio Concentration"},description:{zh:"\u770B\u7EC4\u5408\u662F\u5426\u8FC7\u5EA6\u538B\u5728\u540C\u4E00\u6279\u53D1\u884C\u4EBA\u3001\u884C\u4E1A\u3001\u4E3B\u9898\u6216\u76F8\u5173\u66B4\u9732\u4E0A\uFF0C\u5E76\u5199\u6E05\u8FD9\u4E2A\u5224\u65AD\u9700\u8981\u54EA\u4E9B\u6301\u4ED3\u6570\u636E\u624D\u6210\u7ACB\u3002",en:"Shows whether a book leans too hard on a few issuers, sectors, themes or correlated exposures, and what holdings data that verdict needs to stand."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","portfolio","risk"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u6587\u4E2D\u7684 5%\uFF0F10% \u4E00\u7C7B\u662F\u7ECF\u9A8C\u53E3\u5F84\u4E0D\u662F\u666E\u9002\u89C4\u5219\uFF1B\u6301\u4ED3\u53EA\u4EE5\u4F7F\u7528\u8005\u81EA\u62A5\u7684\u6807\u8BB0\u4E3A\u51C6\uFF08\u672C\u63D2\u4EF6\u8BFB\u4E0D\u5230\u5238\u5546\u8D26\u6237\uFF09\uFF0C\u4E5F\u4E0D\u6784\u6210\u52A0\u51CF\u4ED3\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. The 5% / 10% bands are practical review thresholds, not universal laws; the book comes only from positions the user marked as held (this plugin cannot read a brokerage account), and it is not advice to add or reduce."}},{key:"journalPatternAnalyzer",name:"journal-pattern-analyzer",label:{zh:"\u4EA4\u6613\u65E5\u5FD7\u6A21\u5F0F\u5206\u6790",en:"Journal Pattern Analyzer"},description:{zh:"\u4ECE\u4F7F\u7528\u8005\u81EA\u5DF1\u7684\u4EA4\u6613\u65E5\u5FD7\u91CC\u627E\u91CD\u590D\u51FA\u73B0\u7684\u4F18\u52BF\u4E0E\u5931\u8BEF\u3001\u5B83\u4EEC\u5404\u81EA\u53D1\u751F\u5728\u4EC0\u4E48\u73AF\u5883\u4E0B\uFF0C\u5E76\u4E3A\u5C0F\u6837\u672C\u8BBE\u62A4\u680F\u3002",en:"Finds the repeated strengths and mistakes in the user\u2019s own trade journal, groups them by environment, and keeps small samples from hardening into lessons."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","education","portfolio"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u80DC\u7387\u3001\u671F\u671B\u503C\u8FD9\u7C7B\u6570\u5B57\u662F\u5BF9\u5DF2\u6709\u65E5\u5FD7\u7684\u63CF\u8FF0\uFF0C\u4E0D\u8BC1\u660E\u53EF\u6301\u7EED\u7684\u4F18\u52BF\uFF0C\u4E5F\u4E0D\u6784\u6210\u6295\u8D44\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. Win rate and expectancy describe the log you already have: they prove no durable edge and are not investment advice."}},{key:"postTradeReview",name:"post-trade-review",label:{zh:"\u4EA4\u6613\u590D\u76D8",en:"Post-Trade Review"},description:{zh:"\u6309\u8BBA\u70B9\u3001setup\u3001\u6267\u884C\u3001\u5B88\u89C4\u4E0E\u7ED3\u679C\u51E0\u6761\u7EBF\u590D\u76D8\u4E00\u7B14\u5DF2\u7ECF\u5E73\u6389\u7684\u4EA4\u6613\uFF0C\u907F\u514D\u7528\u540E\u89C6\u955C\u7F16\u9020\u6559\u8BAD\u3002",en:"Reviews a closed trade across thesis, setup, execution, adherence and outcome without rewriting it with hindsight."},owner:"marian2js",repository:"trading-skills",status:"watchlist",lastCommit:"2026-03-16",reviewBy:"2026-11-06",tags:["trade-discipline","education"],riskNote:{zh:'\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u81EA 2026-03-16 \u8D77\u65E0\u63D0\u4EA4\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u590D\u76D8\u5F97\u51FA\u7684"\u4E0B\u6B21\u8981\u6539\u7684\u89C4\u5219"\u5C5E\u4E8E\u8FC7\u7A0B\u63A8\u6F14\uFF0C\u672C\u63D2\u4EF6\u4E0D\u636E\u5B83\u66FF\u4F7F\u7528\u8005\u8C03\u6574\u6301\u4ED3\u6216\u4E0B\u5355\u3002',en:"Cold-start experiment; upstream has been quiet since 2026-03-16, so review the sources before use. The rule changes it suggests are process exercises: this plugin adjusts no holdings and places no orders on them."}},{key:"chinaEarningsAnalysis",name:"china-earnings-analysis",label:{zh:"A \u80A1\u4E1A\u7EE9\u70B9\u8BC4",en:"A-Share Earnings Review"},description:{zh:"\u628A\u5DF2\u8986\u76D6\u516C\u53F8\u7684\u5B63\u62A5\u6216\u5E74\u62A5\u5199\u6210 A \u80A1\u5356\u65B9\u4F53\u4F8B\u7684\u70B9\u8BC4\uFF1A\u5B9E\u9645 / \u4E00\u81F4\u9884\u671F / \u4E0A\u671F\u7684\u5DEE\u5F02\u8868\u3001\u6536\u5165\u4E0E\u5229\u6DA6\u7387\u5206\u89E3\u3001\u8D44\u4EA7\u8D1F\u503A\u8868\u4E0E\u73B0\u91D1\u6D41\u5173\u6CE8\u70B9\uFF0C\u518D\u843D\u5230\u4F30\u503C\u4E0E\u98CE\u9669\u3002",en:"Writes a quarterly or annual update in Chinese sell-side format: an actual / consensus / prior variance table, revenue and margin decomposition, balance-sheet and cash-flow focus, then valuation and risks."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","earnings","filings","financial-health"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u672C\u63D2\u4EF6\u6CA1\u6709\u4E00\u81F4\u9884\u671F\u7684\u7ED3\u6784\u5316\u53D6\u6570\u9762\uFF1A\u90A3\u4E00\u5217\u53D6\u4E0D\u5230\u5C31\u7559\u7A7A\u5E76\u70B9\u540D\u7F3A\u5931\uFF0C\u4E0D\u7528\u8BB0\u5FC6\u8865\u3002\u62A5\u544A\u91CC\u7684\u8BC4\u7EA7\u4E0E\u76EE\u6807\u4EF7\u6BB5\u843D\u5C5E\u4E8E\u63A8\u6F14\u7EC3\u4E60\uFF0C\u4E0D\u6784\u6210\u4E70\u5356\u5EFA\u8BAE\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. This plugin has no consensus endpoint: that column stays empty and the gap is named rather than remembered. The rating and target-price paragraphs are exercises, not investment advice."}},{key:"chinaEarningsPreview",name:"china-earnings-preview",label:{zh:"A \u80A1\u8D22\u62A5\u524D\u77BB",en:"A-Share Earnings Preview"},description:{zh:"\u516C\u5E03\u524D\u628A\u5173\u6CE8\u70B9\u6392\u597D\uFF1A\u5386\u53F2\u57FA\u7EBF\u3001\u8981\u76EF\u7684\u4E09\u5230\u4E94\u4E2A\u6307\u6807\u3001\u4E50\u89C2 / \u57FA\u51C6 / \u60B2\u89C2\u4E09\u6863\u60C5\u666F\u4E0E\u89E6\u53D1\u6761\u4EF6\uFF0C\u6309 A \u80A1\u62AB\u9732\u8282\u594F\uFF08\u4E1A\u7EE9\u9884\u544A\u3001\u5FEB\u62A5\u3001\u6B63\u5F0F\u62A5\u544A\uFF09\u5199\u524D\u77BB\u3002",en:"Sets up the pre-release frame: historical baseline, the three to five metrics that matter, bull / base / bear scenarios with their triggers, all on the A-share rhythm of \u9884\u544A, \u5FEB\u62A5 and the full report."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","earnings","monitoring"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5BBF\u4E3B\u53D6\u4E0D\u5230\u4E00\u81F4\u9884\u671F\u65F6\uFF0C\u60C5\u666F\u5BF9\u6BD4\u5199\u5728\u5386\u53F2\u4E0E\u81EA\u5BB6\u62AB\u9732\u53E3\u5F84\u4E0A\uFF0C\u5E76\u6807\u660E\u90A3\u662F\u4F60\u81EA\u5DF1\u7684\u57FA\u7EBF\uFF1B\u6587\u4E2D\u7684\u4ED3\u4F4D\u4E0E\u4EA4\u6613\u7B56\u7565\u8BBE\u60F3\u5C5E\u4E8E\u63A8\u6F14\u7EC3\u4E60\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. With no retrievable consensus, scenarios are framed against history and the company\u2019s own disclosed range, labelled as your baseline; the sizing and trade ideas it sketches are exercises."}},{key:"chinaCompsAnalysis",name:"china-comps-analysis",label:{zh:"A \u80A1\u53EF\u6BD4\u516C\u53F8\u500D\u6570",en:"A-Share Comparable Multiples"},description:{zh:"\u6309 A \u80A1\u53E3\u5F84\u642D\u540C\u4E1A\u500D\u6570\u8868\uFF1A\u677F\u5757\u5206\u7EC4\u4E0E\u5E02\u503C / \u589E\u901F / \u76C8\u5229\u6027\u7B5B\u9009\uFF0CP/E\uFF08\u52A8\u6001\xB7\u9759\u6001\xB7TTM\uFF09\u3001P/B\u3001EV/EBITDA \u4E0E\u6EA2\u4EF7\u6298\u4EF7\u7684\u89E3\u91CA\uFF0C\u6700\u540E\u6536\u655B\u6210\u4E00\u4E2A\u4F30\u503C\u533A\u95F4\u3002",en:"Builds a peer multiple table on A-share conventions: sector grouping with size, growth and profitability screens, dynamic / static / TTM P/E, P/B and EV/EBITDA, premium and discount explanations, and a resulting valuation range."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","valuation","competition"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u533A\u95F4\u968F\u500D\u6570\u5047\u8BBE\u5927\u5E45\u79FB\u52A8\uFF0C\u672B\u5C3E\u7684\u76EE\u6807\u4EF7\u4E0E\u6295\u8D44\u5EFA\u8BAE\u5C5E\u4E8E\u63A8\u6F14\u7EC3\u4E60\uFF0C\u672C\u63D2\u4EF6\u4E0D\u636E\u5B83\u4E0B\u5355\uFF0C\u4E5F\u4E0D\u7ED9\u4ED3\u4F4D\u6570\u5B57\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. The range moves with the multiple assumptions, and the closing target price and recommendation are exercises: this plugin places no orders and derives no position size from them."}},{key:"chinaDcf",name:"china-dcf",label:{zh:"A \u80A1 DCF \u53E3\u5F84",en:"A-Share DCF Conventions"},description:{zh:"\u7528\u4E2D\u56FD\u8D22\u62A5\u53E3\u5F84\u8DD1 DCF\uFF1A\u65E0\u98CE\u9669\u5229\u7387\u53D6\u5341\u5E74\u671F\u56FD\u503A\u6536\u76CA\u7387\u3001A \u80A1\u80A1\u6743\u98CE\u9669\u6EA2\u4EF7\u300125% \u7A0E\u7387\uFF08\u9AD8\u65B0\u6280\u672F\u4F01\u4E1A 15%\uFF09\u3001\u672C\u5E01\u7EC8\u503C\u589E\u957F\uFF0C\u518D\u628A WACC \u4E0E\u654F\u611F\u6027\u644A\u5F00\u3002",en:"Runs a DCF on Chinese conventions: a 10-year government bond yield as the risk-free rate, A-share equity risk premium, 25% tax (15% for \u9AD8\u65B0\u6280\u672F\u4F01\u4E1A), local-currency terminal growth, then WACC and sensitivities."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","valuation","cash-flow"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u56FD\u503A\u6536\u76CA\u7387\u6216 \u03B2 \u53D6\u4E0D\u5230\u65F6\u6309\u5047\u8BBE\u533A\u95F4\u505A\u654F\u611F\u6027\u5E76\u5199\u660E\u5047\u8BBE\uFF0C\u4E0D\u5047\u8BBE\u4E00\u4E2A\u70B9\u4F4D\uFF1B\u884C\u4E1A\u5229\u6DA6\u7387\u7684\u9ED8\u8BA4\u503C\u662F\u8FD9\u4E2A\u6A21\u578B\u7684\u8F93\u5165\uFF0C\u4E0D\u662F\u5BF9\u516C\u53F8\u7684\u9884\u6D4B\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. If the bond yield or beta cannot be retrieved, the model runs as a labelled sensitivity band rather than a guessed level; the sector margin defaults are inputs to this model, not forecasts of the company."}},{key:"chinaSectorOverview",name:"china-sector-overview",label:{zh:"A \u80A1\u884C\u4E1A\u5168\u666F",en:"A-Share Sector Landscape"},description:{zh:"\u753B\u4E00\u5F20 A \u80A1\u884C\u4E1A\u5730\u56FE\uFF1A\u5E02\u573A\u89C4\u6A21\u4E0E\u96C6\u4E2D\u5EA6\u3001\u653F\u7B56\u4E0E\u76D1\u7BA1\u6846\u67B6\u3001\u7ADE\u4E89\u683C\u5C40\u4E0E\u6309\u677F\u5757\u7684\u5173\u952E KPI\uFF08\u6279\u4EF7\u3001\u88C5\u673A\u91CF\u3001NIM \u4E00\u7C7B\uFF09\uFF0C\u518D\u843D\u5230\u4E3B\u9898\u4E0E\u4F30\u503C\u5BF9\u7167\u3002",en:"Maps an A-share industry: market size and concentration, the policy and regulatory frame, competitive structure with sector-specific KPIs (\u6279\u4EF7, \u88C5\u673A\u91CF, NIM and the like), then themes and valuation context."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","macro","competition","business-analysis"],riskNote:{zh:'\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u884C\u4E1A\u53E3\u5F84\u7684\u7EDF\u8BA1\u53D6\u4E0D\u5230\u5C31\u5199\u6210\u7F3A\u53E3\uFF0C\u4E0D\u6298\u7B97\u6210\u8BB0\u5FC6\u91CC\u7684\u6570\uFF1B\u591A\u7A7A\u4E00\u89C8\u4E0E"\u91CD\u70B9\u6807\u7684\u3001\u76EE\u6807\u4EF7\u3001\u8BC4\u7EA7"\u4E00\u8282\u5C5E\u4E8E\u63A8\u6F14\u7EC3\u4E60\uFF0C\u672C\u63D2\u4EF6\u4E0D\u636E\u5B83\u4E0B\u5355\uFF0C\u4E5F\u4E0D\u7ED9\u4ED3\u4F4D\u3002',en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. Industry statistics that do not come back stay a named gap rather than a remembered figure; the long / short list and the \u91CD\u70B9\u6807\u7684\u3001\u76EE\u6807\u4EF7\u3001\u8BC4\u7EA7 section are exercises \u2014 no orders and no position size come from them."}},{key:"chinaCatalystCalendar",name:"china-catalyst-calendar",label:{zh:"A \u80A1\u50AC\u5316\u5242\u65E5\u5386",en:"A-Share Catalyst Calendar"},description:{zh:"\u628A A \u80A1\u7684\u62AB\u9732\u4E0E\u4E8B\u4EF6\u6309\u65F6\u95F4\u6392\u6210\u6CE8\u610F\u529B\u65E5\u5386\uFF1A\u8D22\u62A5\u4E0E\u4E1A\u7EE9\u9884\u544A\u3001\u80A1\u4E1C\u5927\u4F1A\u3001\u89E3\u7981\u4E0E\u5206\u7EA2\u56DE\u8D2D\u3001\u653F\u7B56\u4E0E\u884C\u4E1A\u4F1A\u8BAE\uFF0C\u5E76\u6807\u51FA\u538B\u5728\u540C\u4E00\u4E2A\u4E8B\u4EF6\u94FE\u4E0A\u7684\u516C\u53F8\u3002",en:"Lays A-share disclosures and events out as an attention calendar: earnings and \u4E1A\u7EE9\u9884\u544A, shareholder meetings, lockup expiries, dividends and buybacks, policy and industry events, flagging names hanging on the same event chain."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","monitoring","macro","earnings"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u4E0E\u7F8E\u80A1\u53E3\u5F84\u7684\u300C\u50AC\u5316\u5242\u5730\u56FE\u300D\u540C\u65CF\uFF0C\u4F46\u6362\u6210 A \u80A1\u62AB\u9732\u8282\u594F\uFF1B\u65E5\u671F\u6CA1\u53D6\u56DE\u6765\u5C31\u6807\u6210\u672A\u786E\u8BA4\uFF0C\u4E0D\u7F16\u65E5\u5386\uFF0C\u4E5F\u4E0D\u9884\u6D4B\u4EF7\u683C\u8D70\u5411\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. The same family as the US-market Catalyst Map, retuned to A-share disclosure rhythm; a date that did not come back is marked unconfirmed rather than invented, and the calendar forecasts no price direction."}},{key:"chinaBreakTrace",name:"china-break-trace",label:{zh:"A \u80A1\u8D22\u52A1\u6838\u67E5",en:"A-Share Forensic Review"},description:{zh:"\u5BF9 A \u80A1\u8D22\u62A5\u505A\u53D6\u8BC1\u5F0F\u6838\u67E5\uFF1A\u79D1\u76EE\u52FE\u7A3D\u3001\u5229\u6DA6\u4E0E\u73B0\u91D1\u6D41\u7684\u80CC\u79BB\u3001\u5E94\u6536\u4E0E\u5B58\u8D27\u5F02\u5E38\u3001\u8425\u8FD0\u8D44\u672C\u53E3\u5F84\uFF0C\u518D\u8BFB\u5BA1\u8BA1\u610F\u89C1\u7C7B\u578B\u3001\u4EA4\u6613\u6240\u95EE\u8BE2\u4E0E\u5904\u7F5A\u516C\u544A\u91CC\u7684\u4FE1\u53F7\u3002",en:"Works through A-share statements forensically: line-item tie-outs, the gap between earnings and cash flow, receivable and inventory anomalies, working-capital behaviour, then what auditor opinions, exchange inquiries and penalties signal."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","risk","financial-health","verification"],riskNote:{zh:'\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5B83\u5217\u7684\u662F"\u8BE5\u53BB\u67E5\u4EC0\u4E48"\uFF0C\u4E0D\u662F\u6307\u63A7\uFF0C\u4E5F\u4E0D\u6784\u6210\u4E70\u5356\u5EFA\u8BAE\uFF1B\u4E0E\u300C\u98CE\u9669\u4E0E\u50AC\u5316\u5242\u76D1\u63A7\u300D\u90E8\u5206\u91CD\u53E0\uFF0C\u8FD9\u9897\u6309\u62A5\u8868\u79D1\u76EE\u4E0E\u76D1\u7BA1\u6587\u4E66\u8D70\u3002',en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. It lists what to investigate, not an accusation, and is not investment advice; it overlaps the risk-and-catalyst module but works from statement lines and regulatory documents."}},{key:"chinaVarianceCommentary",name:"china-variance-commentary",label:{zh:"A \u80A1\u4E1A\u7EE9\u5DEE\u5F02\u8868\u8FF0",en:"A-Share Variance Commentary"},description:{zh:'\u628A\u5DEE\u5F02\u5199\u6210\u8BFB\u5F97\u61C2\u7684\u4E2D\u6587\uFF1A\u8D85\u9884\u671F / \u4F4E\u4E8E\u9884\u671F\u600E\u4E48\u5206\u7C7B\u3001\u9A71\u52A8\u56E0\u7D20\u5F52\u56E0\u5230\u54EA\u4E00\u5C42\u3001\u53E3\u5F84\u4E0E\u5355\u4F4D\u4E00\u81F4\u6027\u600E\u4E48\u4EA4\u4EE3\uFF0C\u4EE5\u53CA"\u8FD9\u4E2A\u53D8\u5316\u610F\u5473\u7740\u4EC0\u4E48"\u7684\u53E5\u5B50\u7EA7\u5199\u6CD5\u3002',en:"Turns variances into readable Chinese commentary: how to classify beat / miss / in-line, where to attribute the driver, how to keep \u53E3\u5F84 and units consistent, and how to say what the change actually means."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","earnings","verification"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u5BBF\u4E3B\u53D6\u4E0D\u5230\u4E00\u81F4\u9884\u671F\u65F6\uFF0C\u5DEE\u5F02\u5C31\u5199\u5728\u53BB\u5E74\u540C\u671F\u3001\u5148\u524D\u53E3\u5F84\u4E0E\u62AB\u9732\u533A\u95F4\u4E0A\uFF0C\u5E76\u8BF4\u660E\u90A3\u662F\u54EA\u79CD\u57FA\u7EBF\uFF0C\u4E0D\u5192\u5145\u5E02\u573A\u5171\u8BC6\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. Without a retrievable consensus, variances are stated against prior-year, your own earlier figures and the disclosed range \u2014 labelled as which baseline, never dressed up as market consensus."}},{key:"chinaInitiatingCoverage",name:"china-initiating-coverage",label:{zh:"A \u80A1\u9996\u6B21\u8986\u76D6",en:"A-Share Initiation Report"},description:{zh:"\u6309\u5238\u5546\u7814\u7A76\u6240\u4F53\u4F8B\u642D\u4E00\u4EFD A \u80A1\u9996\u6B21\u8986\u76D6\uFF1A\u516C\u53F8\u4E0E\u884C\u4E1A\u5206\u6790\u3001\u4E09\u8868\u5EFA\u6A21\u3001\u4F30\u503C\u4E0E\u500D\u6570\u533A\u95F4\u3001\u56FE\u8868\u6E05\u5355\u4E0E\u62A5\u544A\u9AA8\u67B6\uFF0C\u4E00\u8DEF\u5199\u5230\u8BC4\u7EA7\u4E0E\u76EE\u6807\u4EF7\u90A3\u4E00\u8282\u3002",en:"Assembles an initiation report in Chinese sell-side form: company and industry analysis, three-statement modelling, valuation and multiple ranges, the exhibit list and the report skeleton, through to the rating and target-price section."},owner:"jwangkun",repository:"claude-for-financial-services-cn",status:"watchlist",lastCommit:"2026-09-14",reviewBy:"2026-11-08",tags:["a-share","valuation","business-analysis","filings"],riskNote:{zh:"\u51B7\u542F\u52A8\u5B9E\u9A8C\uFF1B\u4E0A\u6E38\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4\u662F 2026-09-14\uFF0C\u542F\u7528\u524D\u8BF7\u81EA\u884C\u590D\u6838\u6765\u6E90\u3002\u4E94\u6863\u8BC4\u7EA7\u4E0E\u76EE\u6807\u4EF7\u662F\u628A\u6750\u6599\u5199\u6210\u4E00\u4E2A\u7ED3\u8BBA\u7684\u63A8\u6F14\u7EC3\u4E60\uFF0C\u672C\u63D2\u4EF6\u4E0D\u636E\u5B83\u4E0B\u5355\uFF0C\u4E5F\u4E0D\u7ED9\u4ED3\u4F4D\u6570\u5B57\uFF1B\u62A5\u544A\u5199\u5728\u6700\u7EC8\u7B54\u590D\u91CC\u3001\u4E0D\u4EA7\u51FA\u6587\u4EF6\uFF0C\u9875\u6570\u53EA\u662F\u4F53\u91CF\u53C2\u8003\u3002",en:"Cold-start experiment; upstream last moved on 2026-09-14, so review the sources before use. The five-tier rating and target price are a conclusion exercise: this plugin places no orders and gives no position size on them. The report is written into the final reply rather than a file, and the page counts are only a sense of scale."}}]),le=Object.freeze({zh:{all:"\u5168\u90E8","a-share":"A \u80A1","business-analysis":"\u4E1A\u52A1\u5206\u6790","capital-allocation":"\u8D44\u672C\u914D\u7F6E","cash-flow":"\u73B0\u91D1\u6D41",competition:"\u7ADE\u4E89\u683C\u5C40",earnings:"\u4E1A\u7EE9\u4E0E\u7535\u8BDD\u4F1A",education:"\u6559\u5B66",filings:"\u62AB\u9732\u6587\u4EF6","financial-health":"\u8D22\u52A1\u5065\u5EB7",instruments:"\u671F\u6743\u4E0E\u57FA\u91D1",macro:"\u5B8F\u89C2\u4E0E\u884C\u4E1A",monitoring:"\u76D1\u63A7",orders:"\u8BA2\u5355",perspective:"\u5206\u6790\u89C6\u89D2","peter-lynch":"\u5F7C\u5F97\xB7\u6797\u5947",portfolio:"\u7EC4\u5408\u4E0E\u4ED3\u4F4D",risk:"\u98CE\u9669",strategy:"\u6218\u7565",tax:"\u7A0E\u52A1",technicals:"\u6280\u672F\u9762","trade-discipline":"\u4EA4\u6613\u7EAA\u5F8B","us-stock":"\u7F8E\u80A1",valuation:"\u4F30\u503C",verification:"\u8BC1\u636E\u6838\u9A8C"},en:{all:"All","a-share":"A-share","business-analysis":"Business analysis","capital-allocation":"Capital allocation","cash-flow":"Cash flow",competition:"Competition",earnings:"Earnings",education:"Education",filings:"Filings","financial-health":"Financial health",instruments:"Options & funds",macro:"Macro & industry",monitoring:"Monitoring",orders:"Orders",perspective:"Perspective","peter-lynch":"Peter Lynch",portfolio:"Portfolio",risk:"Risk",strategy:"Strategy",tax:"Tax",technicals:"Technicals","trade-discipline":"Trade discipline","us-stock":"US equity",valuation:"Valuation",verification:"Verification"}})});var{createElement:i,useEffect:F,useRef:M,useState:b}=require("react"),{createPortal:ce}=require("react-dom"),{SettingsForm:de,SettingsSecretField:he,SettingsFormModel:pe,SegmentedControl:ue,Switch:$,Modal:me,writeClipboard:ge,IconRightUpOutlineRegular:W}=require("@deepseek-ai/dsh-client-ui-primitives"),{SELECTED_SKILL_CATALOG:v,SELECTED_SKILL_TAG_LABELS:V}=(U(),ne(O)),B="capital-config",x="@v587d/capital-generation",D="settings.capital",q="plugins.detail.badge",fe="https://github.com/v587d/capital-generation",ye=`https://www.npmjs.com/package/${x}`,ke="FUYAO_API_KEY",we="ANYSEARCH_API_KEY",ve="WIND_API_KEY",be="PADDLE_OCR_TOKEN",P="capital-config-tabs",xe="/capital-skills",A={fuyao:"https://fuyao.aicubes.cn/docs/",anysearch:"https://www.anysearch.com/docs/auth",wind:"https://market.windalice.com/",paddleocr:"https://aistudio.baidu.com/paddleocr"},f=["fuyao","anysearch","wind","paddleocr"],H=v.map(({key:t})=>t),S={fuyao:ke,anysearch:we,wind:ve,paddleocr:be},Ce=()=>Object.fromEntries(f.map(t=>[t,{ref:S[t],configured:!1,writable:!0}])),Se={tabsLabel:"\u914D\u7F6E\u5206\u533A",title:"\u6570\u636E\u6E90",titleUnsaved:"\u6570\u636E\u6E90 \u672A\u4FDD\u5B58",componentsTitle:"\u5305\u542B\u7684\u7EC4\u4EF6",componentsHint:"\u7EC4\u4EF6\u6E05\u5355\u7531 DSH \u7ED8\u5236\uFF0C\u663E\u793A\u5728\u4E0B\u65B9\u3002",fuyaoLabel:"Fuyao API Key",fuyaoHint:"\u540C\u82B1\u987A Fuyao \u7ED3\u6784\u5316\u6570\u636E\u63A5\u53E3\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",anysearchLabel:"AnySearch API Key",anysearchHint:"AnySearch \u7F51\u9875\u641C\u7D22 / \u63D0\u53D6\u63A5\u53E3\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",localFetchLabel:"\u5141\u8BB8\u542F\u52A8\u672C\u5730\u63D0\u53D6\u7F51\u9875\u5185\u5BB9",localFetchHint:"\u5F00\u542F\u540E\u672C\u5730\u6293\u53D6\u515C\u5E95\uFF08\u56DE\u6267\u6765\u6E90 local-http\uFF09\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",windLabel:"Wind Alice API Key",windHint:"Wind \u91D1\u878D\u4FE1\u62AB\u7C7B\u6587\u6863\u68C0\u7D22\u63A5\u53E3\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",paddleocrLabel:"PaddleOCR \u6587\u6863\u89E3\u6790 Token",paddleocrHint:"\u914D\u7F6E Token \u540E\u81EA\u52A8\u89E3\u6790 PDF\u3001\u56FE\u7247\u3002\u4FDD\u5B58\u540E\u65B0 Capital \u6A21\u5F0F\u4F1A\u8BDD\u751F\u6548\u3002",selectedSkillsTitle:"\u7CBE\u9009 Skills",selectedSkillsFilterLabel:"\u6309\u80FD\u529B\u7B5B\u9009",selectedSkillsEmpty:"\u6CA1\u6709\u5339\u914D\u8FD9\u4E2A\u6807\u7B7E\u7684 Skill\u3002",selectedSkillsCopyName:"\u590D\u5236\u6280\u80FD\u540D",selectedSkillsCopied:"\u5DF2\u590D\u5236",selectedSkillsDetail:"\u8BE6\u60C5",selectedSkillsDetailClose:"\u5173\u95ED",selectedSkillsDocLoading:"\u539F\u6587\u8BFB\u53D6\u4E2D\u2026",selectedSkillsDocFailed:"\u539F\u6587\u8BFB\u4E0D\u5230\uFF1A\u8FD9\u4EFD\u5FEB\u7167\u6CA1\u968F\u5305\u843D\u5730\uFF0C\u6216\u6682\u65F6\u8BFB\u4E0D\u51FA\u6765\u3002",selectedSkillsDocStale:"\u539F\u6587\u8BFB\u4E0D\u5230\uFF1A\u5BBF\u4E3B\u8FDB\u7A0B\u91CC\u8FD8\u6CA1\u6709\u8FD9\u6761\u8BFB\u539F\u6587\u7684\u901A\u9053\u3002\u5347\u7EA7\u63D2\u4EF6\u540E\u8981\u91CD\u542F DSH\uFF0C\u91CD\u542F\u524D\u5237\u65B0\u9875\u9762\u4E5F\u6CA1\u6709\u7528\u3002",selectedSkillsOpenRepo:"\u6253\u5F00\u4E0A\u6E38\u4ED3\u5E93",openDocs:"\u5B98\u65B9\u6587\u6863",configured:"\u5DF2\u914D\u7F6E\u5BC6\u94A5\u3002",notConfigured:"\u672A\u914D\u7F6E\u5BC6\u94A5\u3002",save:"\u4FDD\u5B58",saving:"\u4FDD\u5B58\u4E2D\u2026",readOnly:"\u672C\u90E8\u7F72\u7684\u8BBE\u7F6E\u4E3A\u53EA\u8BFB\u3002",saveFailed:"\u672C\u90E8\u7F72\u6CA1\u6709\u63A5\u53D7\u8FD9\u4E9B\u503C\uFF0C\u5DF2\u4FDD\u7559\u4F9B\u4F60\u4FEE\u6539\u3002",unavailable:"\u8BE5\u63D2\u4EF6\u5F53\u524D\u672A\u52A0\u8F7D\uFF0C\u6682\u65F6\u65E0\u6CD5\u914D\u7F6E\u3002",githubLabel:"GitHub \u4ED3\u5E93",npmLabel:"npm \u5305\u9875\u9762"},ze={tabsLabel:"Settings sections",title:"Data Sources",titleUnsaved:"Data Sources unsaved",componentsTitle:"Components",componentsHint:"The component list is drawn by DSH and appears below.",fuyaoLabel:"Fuyao API Key",fuyaoHint:"Tonghuashun Fuyao structured-data API. Takes effect in new Capital mode sessions.",anysearchLabel:"AnySearch API Key",anysearchHint:"AnySearch web search / extract interface. Takes effect in new Capital mode sessions.",localFetchLabel:"Allow local web page extraction",localFetchHint:"When on, a failed fetch falls back to local direct fetching (receipt via: local-http). Takes effect in new Capital mode sessions.",windLabel:"Wind Alice API Key",windHint:"Wind financial disclosure document retrieval interface. Takes effect in new Capital mode sessions.",paddleocrLabel:"PaddleOCR document token",paddleocrHint:"Configure the token to parse PDFs and images automatically. Takes effect in new Capital mode sessions.",selectedSkillsTitle:"Selected Skills",selectedSkillsFilterLabel:"Filter by capability",selectedSkillsEmpty:"No skills match this tag.",selectedSkillsCopyName:"Copy skill name",selectedSkillsCopied:"Copied",selectedSkillsDetail:"Details",selectedSkillsDetailClose:"Close",selectedSkillsDocLoading:"Loading the source\u2026",selectedSkillsDocFailed:"The source could not be read: this snapshot is not in the installed package, or it cannot be opened right now.",selectedSkillsDocStale:"The source could not be read: this host process has no route for it yet. After upgrading the plugin, restart DSH \u2014 reloading the page alone will not help.",selectedSkillsOpenRepo:"Open upstream repository",openDocs:"Official docs",configured:"A key is configured.",notConfigured:"No key is configured.",save:"Save",saving:"Saving\u2026",readOnly:"This deployment stores settings read-only.",saveFailed:"The deployment did not accept these values; they were left for you to correct.",unavailable:"This plugin is not loaded, so it cannot be configured right now.",githubLabel:"GitHub repository",npmLabel:"npm package page"};function E(t,e){return typeof t=="string"&&t.length>0?t:e}function Ae(t,e){return e==="fuyao"?E(t.value?.fuyaoCredentialRef,S.fuyao):e==="wind"?E(t.value?.retriever?.windDocs?.credentialRef,S.wind):e==="paddleocr"?E(t.value?.retriever?.paddleOcr?.credentialRef,S.paddleocr):E(t.value?.retriever?.credentialRef,S.anysearch)}function Ee(){if(typeof document>"u"||document.querySelector("style[data-capital-config]"))return()=>{};let t=document.createElement("style");return t.dataset.capitalConfig="true",t.textContent=`
9
9
  .capital-config-card { display: flex; flex-direction: column; gap: 12px; }
10
10
  .capital-config-title { margin: 0; font-size: 14px; font-weight: 500; line-height: 20px; }
11
11
  /* \u9762\u677F\u7684 display \u53EA\u5728\u300C\u6CA1\u88AB hidden\u300D\u65F6\u58F0\u660E\uFF1AUA \u7684 [hidden]{display:none} \u4F1A\u8F93\u7ED9\u4EFB\u4F55\u4F5C\u8005
@@ -19,8 +19,8 @@ window.__ModuleLoader__.load({
19
19
  whileServed \u653E\u884C\u3001available \u4E3A\u5047\u3001\u5C5E\u6027\u503C\u610F\u5916\uFF09\u90FD\u843D\u5728**\u5BBF\u4E3B\u6BB5\u843D\u7167\u5E38\u53EF\u89C1**\u90A3\u4E00\u4FA7\u2014\u2014\u5B81\u53EF\u91CD\u590D\uFF0C
20
20
  \u4E0D\u80FD\u628A\u7528\u6237\u7684\u6570\u636E\u85CF\u4E22\u3002\u5199\u6210 :not([data-capital-config-tab="components"]) \u5C31\u662F\u628A\u4E00\u4E2A\u62FC\u9519\u7684
21
21
  \u5C5E\u6027\u503C\u53D8\u6210\u4E8B\u6545\u3002\u56DE\u5230\u53EF\u89C1\u4E00\u4FA7\u7684\u7ED3\u6784\u4FDD\u8BC1\uFF1Atab \u6761\u4E0D\u5728\u4EFB\u4F55\u9762\u677F\u91CC\uFF0C\u6C38\u8FDC\u6536\u4E0D\u5230 hidden\u3002 */
22
- [data-plugin-detail="${S}"]:has(.capital-config-card[data-capital-config-tab="sources"]) section[data-plugin-rows] { display: none; }
23
- [data-plugin-detail="${S}"]:has(.capital-config-card[data-capital-config-tab="skills"]) section[data-plugin-rows] { display: none; }
22
+ [data-plugin-detail="${x}"]:has(.capital-config-card[data-capital-config-tab="sources"]) section[data-plugin-rows] { display: none; }
23
+ [data-plugin-detail="${x}"]:has(.capital-config-card[data-capital-config-tab="skills"]) section[data-plugin-rows] { display: none; }
24
24
  .capital-config-secret-row { display: flex; flex-direction: column; gap: 2px; }
25
25
  /* \u6587\u6863\u94FE\u63A5 portal \u8FDB\u5B98\u65B9 head \u884C\u4E4B\u540E\u9760\u8FD9\u4E24\u6761\u6446\u4F4D\uFF1A\u5B98\u65B9 label \u662F flex:1\uFF08\u4F1A\u5403\u6389\u6574\u884C\uFF09\uFF0C
26
26
  \u6536\u6210 0 1 auto \u624D\u8BA9\u94FE\u63A5\u7D27\u8D34\u5176\u53F3\uFF1B\u914D\u7F6E\u5FBD\u6807\u62FF order + margin-left:auto \u7559\u5728\u884C\u5C3E\u3002 */
@@ -84,7 +84,7 @@ window.__ModuleLoader__.load({
84
84
  .capital-config-plugin-link { border-radius: var(--dsw-radius-sm); width: 24px; height: 24px; color: var(--dsw-alias-label-tertiary); justify-content: center; align-items: center; display: inline-flex; text-decoration: none; }
85
85
  .capital-config-plugin-link:hover { background: var(--dsw-alias-interactive-bg-hover); color: var(--dsw-alias-label-primary); }
86
86
  .capital-config-plugin-link:focus-visible { outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsw-alias-brand-primary)); outline-offset: 1px; }
87
- `,document.head.appendChild(t),()=>t.remove()}var P=class{constructor(e,i){this.scope=e,this.ctx=i,this.status=xe(),this.localFetchWriting=!1,this.localFetchFailed=!1,this.selectedSkillWriting=new Set,this.selectedSkillFailed=new Set,this.bundleRows=null,this.rowsRequested=!1,this.rowsInFlight=!1,this.model=new ue(e,[],f.map(n=>({field:n,write:l=>this.writeKey(n,l)}))),this.store=this.model.bind(()=>this.projection()),this.unsubscribe=e.subscribe(()=>{this.refreshRefs(),this.store.set(this.projection()),this.readCredentials()}),this.refreshRefs(),this.readCredentials()}dispose(){this.unsubscribe?.(),this.model.dispose()}projection(){let e=this.scope.getSnapshot();return{...this.model.shell(),...Object.fromEntries(f.map(i=>[i,{...this.model.field(i),configured:this.status[i].configured,writable:this.status[i].writable}])),localFetch:{on:e.value?.retriever?.localFetch?.enabled!==!1,writing:this.localFetchWriting,failed:this.localFetchFailed},selectedSkills:Object.fromEntries($.map(i=>[i,{on:e.value?.selectedSkills?.[i]===!0,writing:this.selectedSkillWriting.has(i),failed:this.selectedSkillFailed.has(i)}])),components:{count:this.bundleRows}}}refreshRefs(){let e=this.scope.getSnapshot();for(let i of f){let n=Ee(e,i);this.status[i].ref!==n&&(this.status[i]={ref:n,configured:!1,writable:!0},this.model.edit(i,""))}}async readCredentials(){let e=f.map(i=>this.status[i].ref);try{let i=await this.ctx.remote.credentials.describe(e);if(!i?.ok||f.some((l,o)=>e[o]!==this.status[l].ref))return;let n=i.value??{};for(let l of f){let o=this.status[l],r=n[o.ref];r!==void 0&&(this.status[l]={ref:o.ref,configured:r.configured===!0,writable:r.writable!==!1})}this.store.set(this.projection())}catch{}}refresh(e){f.some(i=>e===this.status[i].ref)&&this.readCredentials()}async writeKey(e,i){try{return await this.ctx.remote.credentials.set(this.status[e].ref,i.trim()),await this.readCredentials(),this.status[e].configured===!0}catch{return!1}}async toggleLocalFetch(e){if(this.localFetchWriting)return;let i=this.scope.getSnapshot();if(i.status!=="ready"||!i.writable)return;this.localFetchWriting=!0,this.localFetchFailed=!1,this.store.set(this.projection());try{await this.scope.mutate([{op:"set",path:["retriever","localFetch","enabled"],value:e}])}catch{}this.localFetchWriting=!1,this.scope.getSnapshot().value?.retriever?.localFetch?.enabled===e||(this.localFetchFailed=!0),this.store.set(this.projection())}async toggleSelectedSkill(e,i){if(!$.includes(e)||this.selectedSkillWriting.has(e))return;let n=this.scope.getSnapshot();if(n.status!=="ready"||!n.writable)return;this.selectedSkillWriting.add(e),this.selectedSkillFailed.delete(e),this.store.set(this.projection());try{await this.scope.mutate([{op:"set",path:["selectedSkills",e],value:i}])}catch{}this.selectedSkillWriting.delete(e),this.scope.getSnapshot().value?.selectedSkills?.[e]===i||this.selectedSkillFailed.add(e),this.store.set(this.projection())}async ensureBundleRows(){this.rowsRequested=!0,this.bundleRows===null&&await this.readBundleRows()}invalidateBundleRows(){this.rowsRequested&&this.readBundleRows()}async readBundleRows(){if(this.rowsInFlight)return;this.rowsInFlight=!0;let e=this.bundleRows;try{let i=await this.ctx.remote.pluginManager.listBundles(),n=i?.ok===!0?(i.value??[]).find(l=>l?.name===S):void 0;Array.isArray(n?.rows)&&(e=n.rows.length)}catch{}this.rowsInFlight=!1,e!==this.bundleRows&&(this.bundleRows=e,this.store.set(this.projection()))}inject(){return{hooks:{capitalCard:this.store},...this.model.actions(),toggleLocalFetch:e=>this.toggleLocalFetch(e),toggleSelectedSkill:(e,i)=>this.toggleSelectedSkill(e,i),ensureBundleRows:()=>this.ensureBundleRows()}}};function L({field:t,label:e,hint:i,docsUrl:n,state:l,disabled:o,onEdit:r,t:h}){let m=j(null),[g,y]=b(null);N(()=>{let c=m.current,u=c?c.querySelector("label"):null;u&&u.parentElement&&y(u.parentElement)},[]);let k=a("a",{href:n,target:"_blank",rel:"noopener noreferrer","aria-label":`${e} ${h("openDocs")}`,"data-capital-config-doc":"true",className:"capital-config-doc-link"},h("openDocs"),a(W,{size:12}));return a("div",{className:"capital-config-secret-row",key:t,ref:m},a(pe,{id:`capital-config-${t}-key`,label:e,hint:i,text:l.text,configured:l.configured,stateLabel:l.configured?h("configured"):h("notConfigured"),disabled:o,onEdit:r}),g?ce(k,g):k)}function G(){let t=typeof document<"u"?document.documentElement?.lang:"";return typeof t=="string"&&t.toLowerCase().startsWith("en")?"en":"zh"}var R=new Map,O=new Map;function Le(t){return`${Se}/${encodeURIComponent(t)}.md`}function Ne(t){let e=R.get(t);if(e!==void 0)return Promise.resolve(e);let i=O.get(t);return i===void 0&&(i=fetch(Le(t),{method:"GET",cache:"no-store",credentials:"same-origin"}).then(async n=>{if(!n.ok){let o=await n.json().catch(()=>({})),r=new Error(typeof o?.error=="string"?o.error:`http_${n.status}`);throw r.code=typeof o?.error=="string"?o.error:n.status===401||n.status===403?"unauthorized":"route_missing",r}let l=await n.text();return R.set(t,l),l}).finally(()=>O.delete(t)),O.set(t,i)),i}var Re=1600;function Ae({entry:t,state:e,disabled:i,onChange:n,t:l}){let o=G(),r=t.label[o],h=`https://github.com/${t.owner}/${t.repository}`,m=j(null),[g,y]=b(!1),[k,c]=b(!1),[u,w]=b(null);N(()=>()=>{m.current!==null&&clearTimeout(m.current)},[]);let z=async()=>{await ge(t.name)&&(y(!0),m.current!==null&&clearTimeout(m.current),m.current=setTimeout(()=>y(!1),Re))},x=()=>{if(!(u?.status==="ready"||u?.status==="loading")){if(R.has(t.name)){w({status:"ready",text:R.get(t.name)});return}w({status:"loading"}),Ne(t.name).then(d=>w({status:"ready",text:d}),d=>{globalThis.console?.warn?.(`capital-config: SKILL.md \u539F\u6587\u8BFB\u53D6\u5931\u8D25 ${t.name}: ${String(d?.code??d?.message??d)}`),w({status:"failed",code:d?.code==="route_missing"?"route_missing":"unreadable"})})}},A=u?.status==="ready"?a("pre",{className:"capital-config-skill-doc"},u.text):u?.status==="failed"?a("p",{className:"capital-config-skill-doc-state"},l(u.code==="route_missing"?"selectedSkillsDocStale":"selectedSkillsDocFailed")):a("p",{className:"capital-config-skill-doc-state"},l("selectedSkillsDocLoading"));return a("div",{className:"capital-config-field"},a("div",{className:"capital-config-switch-row"},a("div",{className:"capital-config-switch-text"},a("div",{className:"capital-config-skill-heading"},a("span",{className:"capital-config-title"},r),a("div",{className:"capital-config-skill-actions"},e?.on===!0?a("button",{type:"button",className:"capital-config-skill-action",title:`${l("selectedSkillsCopyName")}: ${t.name}`,"aria-label":`${l("selectedSkillsCopyName")}: ${t.name}`,onClick:z},l(g?"selectedSkillsCopied":"selectedSkillsCopyName")):null,a("button",{type:"button",className:"capital-config-skill-action","aria-label":`${l("selectedSkillsDetail")}: ${t.name}`,"aria-haspopup":"dialog",onPointerEnter:x,onFocus:x,onClick:()=>{x(),c(!0)}},l("selectedSkillsDetail")),a(me,{open:k,onClose:()=>c(!1),title:r,description:t.name,closeLabel:l("selectedSkillsDetailClose"),className:"capital-config-skill-modal",contentClassName:"capital-config-skill-modal-content"},A))),a("p",{className:"capital-config-skill-description"},t.description[o]),a("a",{className:"capital-config-skill-repo",href:h,target:"_blank",rel:"noopener noreferrer",title:l("selectedSkillsOpenRepo")},`${t.owner}/${t.repository}`,a(W,{size:12})),a("div",{className:"capital-config-skill-tags"},t.tags.map(d=>a("span",{key:d,className:"capital-config-skill-tag"},V[o][d]??d)))),a(q,{label:r,checked:e?.on===!0,disabled:i||e?.writing===!0,onChange:n})),e?.failed?a("p",{role:"status",className:"capital-config-write-failed"},l("saveFailed")):null)}function Ie(t){let e=t.t,i=t.useCapitalCard(s=>s),n=!i.writable,l=G(),[o,r]=b("sources"),[h,m]=b("all");N(()=>{t.ensureBundleRows()},[]);let g=()=>new Set(v.filter(s=>i.selectedSkills?.[s.key]?.on===!0).map(s=>s.key)),[y,k]=b(g);N(()=>{i.available&&k(g())},[i.available]);let c=new Map;for(let s of v)for(let p of s.tags)c.set(p,(c.get(p)??0)+1);c.set("all",v.length);let u=["all",...Array.from(c.keys()).filter(s=>s!=="all").sort((s,p)=>c.get(p)-c.get(s))],w=v.filter(s=>h==="all"||s.tags.includes(h)).sort((s,p)=>(y.has(s.key)?0:1)-(y.has(p.key)?0:1)),z=a(de,{labels:{unavailable:e("unavailable"),readOnly:e("readOnly"),saveFailed:e("saveFailed"),save:e("save"),saving:e("saving")},state:i,onSave:t.save,onDiscard:t.discard},a(L,{field:"fuyao",label:e("fuyaoLabel"),hint:e("fuyaoHint"),docsUrl:E.fuyao,state:i.fuyao,disabled:n||i.saving||!i.fuyao.writable,onEdit:s=>t.edit("fuyao",s),t:e}),a(L,{field:"anysearch",label:e("anysearchLabel"),hint:e("anysearchHint"),docsUrl:E.anysearch,state:i.anysearch,disabled:n||i.saving||!i.anysearch.writable,onEdit:s=>t.edit("anysearch",s),t:e}),a(L,{field:"wind",label:e("windLabel"),hint:e("windHint"),docsUrl:E.wind,state:i.wind,disabled:n||i.saving||!i.wind.writable,onEdit:s=>t.edit("wind",s),t:e}),a(L,{field:"paddleocr",label:e("paddleocrLabel"),hint:e("paddleocrHint"),docsUrl:E.paddleocr,state:i.paddleocr,disabled:n||i.saving||!i.paddleocr.writable,onEdit:s=>t.edit("paddleocr",s),t:e}));if(!i.available)return a("div",{className:"capital-config-card"},z);let x=a("div",{className:"capital-config-field"},a("div",{className:"capital-config-switch-row"},a("div",{className:"capital-config-switch-text"},a("span",{className:"capital-config-switch-label"},e("localFetchLabel")),a("p",{className:"capital-config-hint"},e("localFetchHint"))),a(q,{label:e("localFetchLabel"),checked:i.localFetch?.on!==!1,disabled:n||i.saving||i.localFetch?.writing===!0,onChange:t.toggleLocalFetch})),i.localFetch?.failed?a("p",{role:"status",className:"capital-config-write-failed"},e("saveFailed")):null),A=V[l],d=a("div",{className:"capital-config-selected-filter",role:"group","aria-label":e("selectedSkillsFilterLabel")},...u.map(s=>a("button",{key:s,type:"button",className:"capital-config-selected-filter-button","aria-pressed":h===s?"true":"false",onClick:()=>m(s)},A[s]??s,a("span",{className:"capital-config-selected-filter-count"},String(c.get(s)))))),Y=w.length>0?w.map(s=>a(Ae,{key:s.key,entry:s,state:i.selectedSkills?.[s.key],disabled:n||i.saving,onChange:p=>t.toggleSelectedSkill(s.key,p),t:e})):[a("p",{key:"empty",className:"capital-config-hint"},e("selectedSkillsEmpty"))],Q=v.filter(s=>i.selectedSkills?.[s.key]?.on===!0).length,X=(s,p)=>Number.isInteger(p)?`${s} ${p}`:s,J=[{value:"sources",label:i.dirty?e("titleUnsaved"):e("title")},{value:"skills",label:`${e("selectedSkillsTitle")} ${Q}/${v.length}`},{value:"components",label:X(e("componentsTitle"),i.components?.count)}],I=(s,p)=>a("section",{id:`${_}-${s}-panel`,role:"tabpanel","aria-labelledby":`${_}-${s}`,className:"capital-config-panel","data-capital-config-panel":s,hidden:o!==s},...p);return a("div",{className:"capital-config-card","data-capital-config-tab":o},a(he,{id:_,value:o,options:J,label:e("tabsLabel"),disabled:!1,onChange:s=>{r(s),s==="components"&&t.ensureBundleRows(),s==="skills"&&k(g())}}),I("sources",[z,x]),I("skills",[a("div",{className:"capital-config-selected-layout"},d,a("div",{className:"capital-config-selected-list"},...Y))]),I("components",[a("span",{className:"capital-config-sr-only"},e("componentsHint"))]))}var De={github:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12",npm:"M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"};function M({kind:t,href:e,label:i}){return a("a",{className:"capital-config-plugin-link",href:e,target:"_blank",rel:"noopener noreferrer","aria-label":i,title:i,"data-capital-plugin-link":t},a("svg",{viewBox:"0 0 24 24",width:16,height:16,fill:"currentColor","aria-hidden":"true",focusable:"false"},a("path",{d:De[t]})))}function Te({subject:t,t:e}){return t?.kind!=="bundle"||t.pkg?.name!==S?null:a("span",{className:"capital-config-plugin-links"},a(M,{kind:"github",href:fe,label:e("githubLabel")}),a(M,{kind:"npm",href:ye,label:e("npmLabel")}))}function Be(t){t.effect(Fe,"capital-config: styles"),t.effect(()=>t.locale.register(B,{zh:Ce,en:ze}),"capital-config: dictionaries");let e=new P(t.configForms.get(T),t);t.effect(()=>()=>e.dispose(),"capital-config: form subscription"),t.effect(()=>t.remote.$on("credentials/reference-updated",i=>e.refresh(i)),"capital-config: credential invalidations"),t.effect(()=>{let i=()=>e.invalidateBundleRows(),n=[t.remote.$on("plugin-manager/changed",i),t.on("connection/reset",i)];return()=>{for(let l of n)l()}},"capital-config: bundle row invalidations"),t.effect(()=>t.configForms.whileServed([T],()=>t.slots.inject("plugins.bundle.config",()=>t.slots.register({name:"plugins.bundle.config",key:S,locale:B,inject:()=>e.inject()},Ie))),"capital-config: page"),t.effect(()=>t.slots.inject(K,()=>t.slots.register({name:K,id:`${T}-plugin-links`,locale:B},Te)),"capital-config: plugin links"),t.logger?.info?.("capital-config: settings card + \u6807\u9898\u5916\u94FE mounted")}exports.name="capital-config";exports.inject=["slots","locale","remote","remote.credentials","remote.pluginManager","configForms"];exports.apply=Be;
87
+ `,document.head.appendChild(t),()=>t.remove()}var j=class{constructor(e,a){this.scope=e,this.ctx=a,this.status=Ce(),this.localFetchWriting=!1,this.localFetchFailed=!1,this.selectedSkillWriting=new Set,this.selectedSkillFailed=new Set,this.bundleRows=null,this.rowsRequested=!1,this.rowsInFlight=!1,this.model=new pe(e,[],f.map(n=>({field:n,write:o=>this.writeKey(n,o)}))),this.store=this.model.bind(()=>this.projection()),this.unsubscribe=e.subscribe(()=>{this.refreshRefs(),this.store.set(this.projection()),this.readCredentials()}),this.refreshRefs(),this.readCredentials()}dispose(){this.unsubscribe?.(),this.model.dispose()}projection(){let e=this.scope.getSnapshot();return{...this.model.shell(),...Object.fromEntries(f.map(a=>[a,{...this.model.field(a),configured:this.status[a].configured,writable:this.status[a].writable}])),localFetch:{on:e.value?.retriever?.localFetch?.enabled!==!1,writing:this.localFetchWriting,failed:this.localFetchFailed},selectedSkills:Object.fromEntries(H.map(a=>[a,{on:e.value?.selectedSkills?.[a]===!0,writing:this.selectedSkillWriting.has(a),failed:this.selectedSkillFailed.has(a)}])),components:{count:this.bundleRows}}}refreshRefs(){let e=this.scope.getSnapshot();for(let a of f){let n=Ae(e,a);this.status[a].ref!==n&&(this.status[a]={ref:n,configured:!1,writable:!0},this.model.edit(a,""))}}async readCredentials(){let e=f.map(a=>this.status[a].ref);try{let a=await this.ctx.remote.credentials.describe(e);if(!a?.ok||f.some((o,r)=>e[r]!==this.status[o].ref))return;let n=a.value??{};for(let o of f){let r=this.status[o],l=n[r.ref];l!==void 0&&(this.status[o]={ref:r.ref,configured:l.configured===!0,writable:l.writable!==!1})}this.store.set(this.projection())}catch{}}refresh(e){f.some(a=>e===this.status[a].ref)&&this.readCredentials()}async writeKey(e,a){try{return await this.ctx.remote.credentials.set(this.status[e].ref,a.trim()),await this.readCredentials(),this.status[e].configured===!0}catch{return!1}}async toggleLocalFetch(e){if(this.localFetchWriting)return;let a=this.scope.getSnapshot();if(a.status!=="ready"||!a.writable)return;this.localFetchWriting=!0,this.localFetchFailed=!1,this.store.set(this.projection());try{await this.scope.mutate([{op:"set",path:["retriever","localFetch","enabled"],value:e}])}catch{}this.localFetchWriting=!1,this.scope.getSnapshot().value?.retriever?.localFetch?.enabled===e||(this.localFetchFailed=!0),this.store.set(this.projection())}async toggleSelectedSkill(e,a){if(!H.includes(e)||this.selectedSkillWriting.has(e))return;let n=this.scope.getSnapshot();if(n.status!=="ready"||!n.writable)return;this.selectedSkillWriting.add(e),this.selectedSkillFailed.delete(e),this.store.set(this.projection());try{await this.scope.mutate([{op:"set",path:["selectedSkills",e],value:a}])}catch{}this.selectedSkillWriting.delete(e),this.scope.getSnapshot().value?.selectedSkills?.[e]===a||this.selectedSkillFailed.add(e),this.store.set(this.projection())}async ensureBundleRows(){this.rowsRequested=!0,this.bundleRows===null&&await this.readBundleRows()}invalidateBundleRows(){this.rowsRequested&&this.readBundleRows()}async readBundleRows(){if(this.rowsInFlight)return;this.rowsInFlight=!0;let e=this.bundleRows;try{let a=await this.ctx.remote.pluginManager.listBundles(),n=a?.ok===!0?(a.value??[]).find(o=>o?.name===x):void 0;Array.isArray(n?.rows)&&(e=n.rows.length)}catch{}this.rowsInFlight=!1,e!==this.bundleRows&&(this.bundleRows=e,this.store.set(this.projection()))}inject(){return{hooks:{capitalCard:this.store},...this.model.actions(),toggleLocalFetch:e=>this.toggleLocalFetch(e),toggleSelectedSkill:(e,a)=>this.toggleSelectedSkill(e,a),ensureBundleRows:()=>this.ensureBundleRows()}}};function N({field:t,label:e,hint:a,docsUrl:n,state:o,disabled:r,onEdit:l,t:u}){let m=M(null),[g,y]=b(null);F(()=>{let c=m.current,p=c?c.querySelector("label"):null;p&&p.parentElement&&y(p.parentElement)},[]);let k=i("a",{href:n,target:"_blank",rel:"noopener noreferrer","aria-label":`${e} ${u("openDocs")}`,"data-capital-config-doc":"true",className:"capital-config-doc-link"},u("openDocs"),i(W,{size:12}));return i("div",{className:"capital-config-secret-row",key:t,ref:m},i(he,{id:`capital-config-${t}-key`,label:e,hint:a,text:o.text,configured:o.configured,stateLabel:o.configured?u("configured"):u("notConfigured"),disabled:r,onEdit:l}),g?ce(k,g):k)}function G(){let t=typeof document<"u"?document.documentElement?.lang:"";return typeof t=="string"&&t.toLowerCase().startsWith("en")?"en":"zh"}var R=new Map,_=new Map;function Ne(t){return`${xe}/${encodeURIComponent(t)}.md`}function Fe(t){let e=R.get(t);if(e!==void 0)return Promise.resolve(e);let a=_.get(t);return a===void 0&&(a=fetch(Ne(t),{method:"GET",cache:"no-store",credentials:"same-origin"}).then(async n=>{if(!n.ok){let r=await n.json().catch(()=>({})),l=new Error(typeof r?.error=="string"?r.error:`http_${n.status}`);throw l.code=typeof r?.error=="string"?r.error:n.status===401||n.status===403?"unauthorized":"route_missing",l}let o=await n.text();return R.set(t,o),o}).finally(()=>_.delete(t)),_.set(t,a)),a}var Re=1600;function Le({entry:t,state:e,disabled:a,onChange:n,t:o}){let r=G(),l=t.label[r],u=`https://github.com/${t.owner}/${t.repository}`,m=M(null),[g,y]=b(!1),[k,c]=b(!1),[p,w]=b(null);F(()=>()=>{m.current!==null&&clearTimeout(m.current)},[]);let z=async()=>{await ge(t.name)&&(y(!0),m.current!==null&&clearTimeout(m.current),m.current=setTimeout(()=>y(!1),Re))},C=()=>{if(!(p?.status==="ready"||p?.status==="loading")){if(R.has(t.name)){w({status:"ready",text:R.get(t.name)});return}w({status:"loading"}),Fe(t.name).then(d=>w({status:"ready",text:d}),d=>{globalThis.console?.warn?.(`capital-config: SKILL.md \u539F\u6587\u8BFB\u53D6\u5931\u8D25 ${t.name}: ${String(d?.code??d?.message??d)}`),w({status:"failed",code:d?.code==="route_missing"?"route_missing":"unreadable"})})}},L=p?.status==="ready"?i("pre",{className:"capital-config-skill-doc"},p.text):p?.status==="failed"?i("p",{className:"capital-config-skill-doc-state"},o(p.code==="route_missing"?"selectedSkillsDocStale":"selectedSkillsDocFailed")):i("p",{className:"capital-config-skill-doc-state"},o("selectedSkillsDocLoading"));return i("div",{className:"capital-config-field"},i("div",{className:"capital-config-switch-row"},i("div",{className:"capital-config-switch-text"},i("div",{className:"capital-config-skill-heading"},i("span",{className:"capital-config-title"},l),i("div",{className:"capital-config-skill-actions"},e?.on===!0?i("button",{type:"button",className:"capital-config-skill-action",title:`${o("selectedSkillsCopyName")}: ${t.name}`,"aria-label":`${o("selectedSkillsCopyName")}: ${t.name}`,onClick:z},o(g?"selectedSkillsCopied":"selectedSkillsCopyName")):null,i("button",{type:"button",className:"capital-config-skill-action","aria-label":`${o("selectedSkillsDetail")}: ${t.name}`,"aria-haspopup":"dialog",onPointerEnter:C,onFocus:C,onClick:()=>{C(),c(!0)}},o("selectedSkillsDetail")),i(me,{open:k,onClose:()=>c(!1),title:l,description:t.name,closeLabel:o("selectedSkillsDetailClose"),className:"capital-config-skill-modal",contentClassName:"capital-config-skill-modal-content"},L))),i("p",{className:"capital-config-skill-description"},t.description[r]),i("a",{className:"capital-config-skill-repo",href:u,target:"_blank",rel:"noopener noreferrer",title:o("selectedSkillsOpenRepo")},`${t.owner}/${t.repository}`,i(W,{size:12})),i("div",{className:"capital-config-skill-tags"},t.tags.map(d=>i("span",{key:d,className:"capital-config-skill-tag"},V[r][d]??d)))),i($,{label:l,checked:e?.on===!0,disabled:a||e?.writing===!0,onChange:n})),e?.failed?i("p",{role:"status",className:"capital-config-write-failed"},o("saveFailed")):null)}function Ie(t){let e=t.t,a=t.useCapitalCard(s=>s),n=!a.writable,o=G(),[r,l]=b("sources"),[u,m]=b("all");F(()=>{t.ensureBundleRows()},[]);let g=()=>new Set(v.filter(s=>a.selectedSkills?.[s.key]?.on===!0).map(s=>s.key)),[y,k]=b(g);F(()=>{a.available&&k(g())},[a.available]);let c=new Map;for(let s of v)for(let h of s.tags)c.set(h,(c.get(h)??0)+1);c.set("all",v.length);let p=["all",...Array.from(c.keys()).filter(s=>s!=="all").sort((s,h)=>c.get(h)-c.get(s))],w=v.filter(s=>u==="all"||s.tags.includes(u)).sort((s,h)=>(y.has(s.key)?0:1)-(y.has(h.key)?0:1)),z=i(de,{labels:{unavailable:e("unavailable"),readOnly:e("readOnly"),saveFailed:e("saveFailed"),save:e("save"),saving:e("saving")},state:a,onSave:t.save,onDiscard:t.discard},i(N,{field:"fuyao",label:e("fuyaoLabel"),hint:e("fuyaoHint"),docsUrl:A.fuyao,state:a.fuyao,disabled:n||a.saving||!a.fuyao.writable,onEdit:s=>t.edit("fuyao",s),t:e}),i(N,{field:"anysearch",label:e("anysearchLabel"),hint:e("anysearchHint"),docsUrl:A.anysearch,state:a.anysearch,disabled:n||a.saving||!a.anysearch.writable,onEdit:s=>t.edit("anysearch",s),t:e}),i(N,{field:"wind",label:e("windLabel"),hint:e("windHint"),docsUrl:A.wind,state:a.wind,disabled:n||a.saving||!a.wind.writable,onEdit:s=>t.edit("wind",s),t:e}),i(N,{field:"paddleocr",label:e("paddleocrLabel"),hint:e("paddleocrHint"),docsUrl:A.paddleocr,state:a.paddleocr,disabled:n||a.saving||!a.paddleocr.writable,onEdit:s=>t.edit("paddleocr",s),t:e}));if(!a.available)return i("div",{className:"capital-config-card"},z);let C=i("div",{className:"capital-config-field"},i("div",{className:"capital-config-switch-row"},i("div",{className:"capital-config-switch-text"},i("span",{className:"capital-config-switch-label"},e("localFetchLabel")),i("p",{className:"capital-config-hint"},e("localFetchHint"))),i($,{label:e("localFetchLabel"),checked:a.localFetch?.on!==!1,disabled:n||a.saving||a.localFetch?.writing===!0,onChange:t.toggleLocalFetch})),a.localFetch?.failed?i("p",{role:"status",className:"capital-config-write-failed"},e("saveFailed")):null),L=V[o],d=i("div",{className:"capital-config-selected-filter",role:"group","aria-label":e("selectedSkillsFilterLabel")},...p.map(s=>i("button",{key:s,type:"button",className:"capital-config-selected-filter-button","aria-pressed":u===s?"true":"false",onClick:()=>m(s)},L[s]??s,i("span",{className:"capital-config-selected-filter-count"},String(c.get(s)))))),Y=w.length>0?w.map(s=>i(Le,{key:s.key,entry:s,state:a.selectedSkills?.[s.key],disabled:n||a.saving,onChange:h=>t.toggleSelectedSkill(s.key,h),t:e})):[i("p",{key:"empty",className:"capital-config-hint"},e("selectedSkillsEmpty"))],Q=v.filter(s=>a.selectedSkills?.[s.key]?.on===!0).length,X=(s,h)=>Number.isInteger(h)?`${s} ${h}`:s,J=[{value:"sources",label:a.dirty?e("titleUnsaved"):e("title")},{value:"skills",label:`${e("selectedSkillsTitle")} ${Q}/${v.length}`},{value:"components",label:X(e("componentsTitle"),a.components?.count)}],I=(s,h)=>i("section",{id:`${P}-${s}-panel`,role:"tabpanel","aria-labelledby":`${P}-${s}`,className:"capital-config-panel","data-capital-config-panel":s,hidden:r!==s},...h);return i("div",{className:"capital-config-card","data-capital-config-tab":r},i(ue,{id:P,value:r,options:J,label:e("tabsLabel"),disabled:!1,onChange:s=>{l(s),s==="components"&&t.ensureBundleRows(),s==="skills"&&k(g())}}),I("sources",[z,C]),I("skills",[i("div",{className:"capital-config-selected-layout"},d,i("div",{className:"capital-config-selected-list"},...Y))]),I("components",[i("span",{className:"capital-config-sr-only"},e("componentsHint"))]))}var Te={github:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12",npm:"M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"};function K({kind:t,href:e,label:a}){return i("a",{className:"capital-config-plugin-link",href:e,target:"_blank",rel:"noopener noreferrer","aria-label":a,title:a,"data-capital-plugin-link":t},i("svg",{viewBox:"0 0 24 24",width:16,height:16,fill:"currentColor","aria-hidden":"true",focusable:"false"},i("path",{d:Te[t]})))}function Be({subject:t,t:e}){return t?.kind!=="bundle"||t.pkg?.name!==x?null:i("span",{className:"capital-config-plugin-links"},i(K,{kind:"github",href:fe,label:e("githubLabel")}),i(K,{kind:"npm",href:ye,label:e("npmLabel")}))}function De(t){t.effect(Ee,"capital-config: styles"),t.effect(()=>t.locale.register(D,{zh:Se,en:ze}),"capital-config: dictionaries");let e=new j(t.configForms.get(B),t);t.effect(()=>()=>e.dispose(),"capital-config: form subscription"),t.effect(()=>t.remote.$on("credentials/reference-updated",a=>e.refresh(a)),"capital-config: credential invalidations"),t.effect(()=>{let a=()=>e.invalidateBundleRows(),n=[t.remote.$on("plugin-manager/changed",a),t.on("connection/reset",a)];return()=>{for(let o of n)o()}},"capital-config: bundle row invalidations"),t.effect(()=>t.configForms.whileServed([B],()=>t.slots.inject("plugins.bundle.config",()=>t.slots.register({name:"plugins.bundle.config",key:x,locale:D,inject:()=>e.inject()},Ie))),"capital-config: page"),t.effect(()=>t.slots.inject(q,()=>t.slots.register({name:q,id:`${B}-plugin-links`,locale:D},Be)),"capital-config: plugin links"),t.logger?.info?.("capital-config: settings card + \u6807\u9898\u5916\u94FE mounted")}exports.name="capital-config";exports.inject=["slots","locale","remote","remote.credentials","remote.pluginManager","configForms"];exports.apply=De;
88
88
  return module.exports
89
89
  },
90
90
  })
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-config",
3
- "version": "2.7.2",
3
+ "version": "2.7.4",
4
4
  "description": "Capital 模式的取数凭据与偏好配置行:卡片坐在 @v587d/capital-generation 插件主页的「配置」段,点这一行本身没有表单。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-watchlist",
3
- "version": "2.7.2",
3
+ "version": "2.7.4",
4
4
  "description": "Capital 模式的用户自选股(宿主级清单 + Fuyao 报价快照 + /capital-watchlist 路由 + 输入框菜单弹窗):由 @v587d/capital-generation 随包携带并作为 host 平面行挂载。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-charts",
3
- "version": "2.7.2",
3
+ "version": "2.7.4",
4
4
  "description": "Capital 模式的图表前端组件(浏览器半边 + 序列旁路路由):由 @v587d/capital-generation 随包携带并作为 host 平面行挂载。",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -6,7 +6,7 @@
6
6
  * between validation and connect. Closing that window would require a custom
7
7
  * dispatcher; this module keeps the same explicit trade-off as dsh-search-first.
8
8
  */
9
- export declare const LOCAL_FETCH_CLIENT_VERSION = "2.7.2";
9
+ export declare const LOCAL_FETCH_CLIENT_VERSION = "2.7.4";
10
10
  export declare const LOCAL_FETCH_MAX_URL_LENGTH = 2048;
11
11
  export type LocalFetchErrorCode = 'ABORTED' | 'TIMEOUT' | 'INVALID_URL' | 'BLOCKED_URL' | 'DNS' | 'REDIRECT' | 'HTTP' | 'TOO_LARGE' | 'UNSUPPORTED_CONTENT_TYPE';
12
12
  export declare class LocalFetchError extends Error {
@@ -7,7 +7,7 @@
7
7
  * dispatcher; this module keeps the same explicit trade-off as dsh-search-first.
8
8
  */
9
9
  import { htmlToMarkdown, stripInvisibleText } from './html-markdown.js';
10
- export const LOCAL_FETCH_CLIENT_VERSION = '2.7.2';
10
+ export const LOCAL_FETCH_CLIENT_VERSION = '2.7.4';
11
11
  export const LOCAL_FETCH_MAX_URL_LENGTH = 2048;
12
12
  export class LocalFetchError extends Error {
13
13
  code;
@@ -7,7 +7,7 @@
7
7
  * 而是结果集是否确定、是否可复现、以及"这次调用承诺了什么"——见
8
8
  * `docs/design/web-retriever-source-expansion.md` §2.2。
9
9
  *
10
- * 四条来源各自是一次具体实现,**不做配方注册表 / 通用适配层**:只有这样,
10
+ * 七条来源各自是一次具体实现,**不做配方注册表 / 通用适配层**:只有这样,
11
11
  * 每个来源的端点、签名、字段语义才能就地写清楚,不引入一层只为"统一"而存在的间接。
12
12
  * 出口校验(URL 合法性 + DNS 公网 IP 闸门 + 重定向重校验 + 大小/超时上限)统一复用
13
13
  * `createHttpRequester`,本文件不自建网络路径(AGENTS.md §9.7)。
@@ -7,7 +7,7 @@
7
7
  * 而是结果集是否确定、是否可复现、以及"这次调用承诺了什么"——见
8
8
  * `docs/design/web-retriever-source-expansion.md` §2.2。
9
9
  *
10
- * 四条来源各自是一次具体实现,**不做配方注册表 / 通用适配层**:只有这样,
10
+ * 七条来源各自是一次具体实现,**不做配方注册表 / 通用适配层**:只有这样,
11
11
  * 每个来源的端点、签名、字段语义才能就地写清楚,不引入一层只为"统一"而存在的间接。
12
12
  * 出口校验(URL 合法性 + DNS 公网 IP 闸门 + 重定向重校验 + 大小/超时上限)统一复用
13
13
  * `createHttpRequester`,本文件不自建网络路径(AGENTS.md §9.7)。
@@ -52,7 +52,7 @@ export interface WindCallResult {
52
52
  * `test/chart-composition.test.mjs` 守着(会因漂移而失败),这里原本是写死的第二处,
53
53
  * 一次发版就得记得改两遍。所以本常量由测试一并核对(见 `test/wind-client.test.mjs`)。
54
54
  */
55
- export declare const WIND_CLIENT_VERSION = "2.7.2";
55
+ export declare const WIND_CLIENT_VERSION = "2.7.4";
56
56
  export interface WindClient {
57
57
  callTool(toolName: string, args: Record<string, unknown>, signal?: AbortSignal): Promise<WindCallResult>;
58
58
  }
@@ -35,7 +35,7 @@ export const WIND_SERVER_ENDPOINTS = {
35
35
  * `test/chart-composition.test.mjs` 守着(会因漂移而失败),这里原本是写死的第二处,
36
36
  * 一次发版就得记得改两遍。所以本常量由测试一并核对(见 `test/wind-client.test.mjs`)。
37
37
  */
38
- export const WIND_CLIENT_VERSION = '2.7.2';
38
+ export const WIND_CLIENT_VERSION = '2.7.4';
39
39
  function errorText(error) {
40
40
  return error instanceof Error ? error.message : String(error);
41
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@v587d/capital-generation",
3
- "version": "2.7.2",
3
+ "version": "2.7.4",
4
4
  "description": "Capital Generation:面向中国散户的 AI 投资助手插件(Capital mode Agent Preset)",
5
5
  "icon": "assets/cg-icon.png",
6
6
  "author": "v587d",
@@ -38,6 +38,8 @@
38
38
  "selected-skills/china-stock-research-skills",
39
39
  "selected-skills/InvestSkill",
40
40
  "selected-skills/peter-lynch-skill",
41
+ "selected-skills/trading-skills",
42
+ "selected-skills/claude-for-financial-services-cn",
41
43
  "cordis.patch.yml",
42
44
  "assets/cg-icon.png",
43
45
  "README.md",
@@ -10,6 +10,15 @@
10
10
  - Imported content: 该 commit 的完整仓库快照,只移除上游自己的 `.gitignore`(见下)。
11
11
  34 颗 skill 在 `plugins/us-stock-analysis/skills/<name>/SKILL.md`;`scripts/`、`prompts/`、
12
12
  `site/`、`qa/`、`doc/`、`data/`、`.github/` 作为可审查材料保留,intake 与 activation 都不执行它们。
13
+ - Packaging: 这颗自己的 `.npmignore` 是排除口径的唯一声明处(`test/packaging.test.mjs` 逐条反查,
14
+ 目录规则与文件规则都问)。挡掉的是上游静态站 `site/`(1.7 MB)、与 skill 正文同源的提示词副本
15
+ `prompts/`(772 KB)、`scripts/`、`qa/`、`doc/`、`data/`、`.github/`、`.cursor/`、`.claude-plugin/`,
16
+ 以及只有人类读者会用的仓库文档:`README*.md` 六个语言/平台变体(含 `plugins/us-stock-analysis/README.md`)、
17
+ `CLAUDE.md`、`GEMINI.md`、`ADDING-NEW-SKILLS.md`、`CI-CD-GUIDE.md`、`CONTRIBUTING.md`、`DEPLOYMENTS.md`、
18
+ `FAQ.md`、`PLATFORM-COMPATIBILITY.md`、`RELEASE_NOTES.md`、`RELEASE-QUICK-REFERENCE.md`、`SECURITY.md`、
19
+ `TODO.md` 与它自己的 `package.json`。根级 `install.sh` 照旧随包保留(本插件从不执行它)。
20
+ 不进可选清单的六颗 skill 也照旧随包,作为可审查材料。全量快照完整住在 git,
21
+ `github:` 安装与"当时是哪个 commit"的复核都不受影响。
13
22
  - Local modifications(三类,逐条可复核;口径与理由见 `docs/dev/selected-skills.md` §8.6 的接入必查清单):
14
23
  1. **34 颗 `SKILL.md` 的 frontmatter 第一键补 `name: <目录名>`。** DSH filesystem provider 要求
15
24
  frontmatter 同时有 `name` 与 `description`,缺 `name` 的文件是**静默跳过**(只 warn)——原样收录
@@ -12,7 +12,12 @@ for the user to review the source and decide whether it fits the task.
12
12
 
13
13
  ## Layout
14
14
 
15
- - `<project>/skills/`: upstream skill files, preserved at a pinned commit.
15
+ - `<project>/<skills root>/`: upstream skill files, preserved at a pinned commit. The root
16
+ is not always `skills/` — it is declared per repository in `SELECTED_SKILL_SKILL_DIRS`
17
+ (`catalog.js`), because upstreams lay skills out differently: one buries them under a
18
+ plugin directory, one groups them two levels deep, and the A-share snapshot has six
19
+ parallel roots, of which exactly one is registered (the line upstream itself calls the
20
+ source of truth). Everything else in the snapshot stays unregistered material.
16
21
  - `<project>/UPSTREAM.md`: repository URL, owner, commit, license, runtime scope,
17
22
  maintenance notes, and local changes.
18
23
  - `<project>/LICENSE`: original upstream license.