星财富AI – 港股新股 IPO 打新分析
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-qoa1dr8y--hk-ipo-analysis.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-qoa1dr8y/hk-ipo-analysis。港股打新不知道怎么选?你只需要说一句「这只新股值得打吗」,复星财富旗下星财富(Fosun Wealth) AI – 港股新股 IPO 打新分析 Skills 就能拿到带图表的交互式 HTML 深度研报。招股书要点、认购倍数、中签率预测、暗盘与首日表现、保荐人战绩、基石穿透、估值定位,一次拉齐,全程客观拆解,不喊单。 快来开通星财富APP 免费API Key,即刻辅助打新决策。
阅读全文 (展开查看完整说明)
概述
港股新股 IPO 分析
港股新股(IPO / 打新)一站式分析:鉴权 → 自家 MCP 取数 → 富模板 HTML 报告,一条链路走到交付。数据面 = 自家 MCP 的 5 个取数 tool + 宿主自带 westock-data(只兜发行日期),按四层优先级取数(见 §2.1):MCP 结构化真值 → Dify 母本 → MCP 补充信源 → 宿主新股日历;联网只放行宿主自带的 WebSearch / WebFetch(只补发行日期缺口);Windows / macOS / Linux 同一套命令,唯一依赖是 Python 3.8+。
本技能只做四件事:过闸 · 列新股 · 出报告 · 交付一条路径。除本文列出的命令外,不要自作主张。
list与report彻底独立:问名单只跑list,列完即停;用户点名代码/名字只跑report,禁止先list。两条命令不共享状态、互不前置。
🗺️ 速览
| 命令 | 何时跑 | 判定 |
|---|---|---|
gate | 本轮第一次动手之前 | 退出码 0 才继续;3 / 4 把 stdout 原样给用户 |
list | 用户只要名单 | 只列清单,到此结束,不要接着 report |
report --codes hk06700 --name 四方精创 | 用户已点名一只 | 不跑 list。出 data/<code>/<code>_report.html |
present_files | 报告 HTML 已落地 | files 只带这一条路径 |
0 · 🔐 鉴权(最高优先级,先于一切)
Key 没过闸:不装依赖、不调 MCP、不出报告、不用自身知识回答,本轮到此为止。
首次运行
bash "<技能根>/run.sh" gate # Windows: py -3 "<技能根>scriptsmain.py" gate<技能根>见 §1。不要直接执行run.sh(无+x时 exit 126),一律bash。- 运行环境(关键):本包命令要写
.env并访问 HTTP 端点,须在可写技能目录、允许出网的环境里执行,单次超时设timeout: 1800000(一次报告约 10 分钟)。WorkBuddy / CodeBuddy 的 Bash 工具自带所需开关,按工具 schema 传入即可;不要依赖 hook 改写。
| 退出码 | 你要做的 |
|---|---|
0 | 静默继续;不要对用户说「鉴权通过」「进入准备」之类的话 |
3 / 4 | 把 stdout 原样展示给用户(里面就是开通链接,可点),结束本轮;禁止复述「退出码 3/4」 |
5 | 一句人话(服务暂时不可用,请稍后重试),结束本轮 |
用户粘贴了 Key
用户在开通页登录后把 Key 复制粘贴回对话(形如 fsk_…)→ 立刻写入并校验,然后接着他原来的问题继续,不要让他重问:
bash "<技能根>/run.sh" gate --set-key "<用户粘贴的 Key>"Key 的来路(只有一条)
门禁是双闸:入口先过闸,MCP 出口(client_common.mcp_rpc)还会再拦一道 —— 绕过入口直接调 MCP 也漏不过去。
- 唯一来路:用户在对话里粘贴 →
gate --set-key写进本技能根目录.env(就地 upsert,不会动端点那几行)。 - 不读用户主目录、不读宿主注入的插件选项、不向上层目录爬 —— 没粘贴过 Key 的机器必然先看到开通引导,不存在「本机残留让门禁悄悄过关」。
- 只接受 FinSkillHub 签发的
fsk_Key,不接受自拟字符串,不自动重试。
1 · 🚪 入口(三平台同一套参数)
| 平台 | 命令 |
|---|---|
| macOS / Linux | bash "<技能根>/run.sh" <命令> [参数] |
| Windows(cmd / PowerShell) | py -3 "<技能根>scriptsmain.py" <命令> [参数](py 不在就换 python) |
<技能根> = 本 SKILL.md 所在目录(WorkBuddy / CodeBuddy 装到 ~/.workbuddy/skills/hk-ipo-analysis,Windows %USERPROFILE%.workbuddyskillshk-ipo-analysis;其它宿主落在各自的 skills 目录,本包不认路径、只认 SKILL.md 的位置)。
入口自己定位技能根、自己找解释器(python3 → python → py -3),不依赖 cwd、不依赖任何环境变量;要指定解释器就设 HK_PYTHON=<解释器路径>。
| 命令 | 作用 |
|---|---|
gate | 鉴权体检 |
gate --set-key <Key> | 写入用户粘贴的 Key |
gate --guide | 只看开通引导 |
gate --json | 输出结构化 JSON |
list | 只列新股;列完即停,不触发 report |
report --codes hk06700 --name 四方精创 | 只出点名的报告(不跑 list)。一拍取母本、填 payload、出 HTML |
report … --refresh | 重取母本(默认本地已有 <code>_raw.md 就直接用,不重复取数) |
check A.html B.html | 本地结构回归(不联网、不需 Key,exit 0 = 结构一致) |
唯一依赖是 Python 3.8+:没有 pip、没有 npm、没有第三方包。Windows 从 python.org 安装并勾选 “Add python.exe to PATH” 即可直接用。
2 · ⛔ 铁律
- 数据面 = 自家 MCP 的 5 个取数 tool + 宿主自带
westock-data:ipo_list/market_snapshot/ipo_dify_report/deep_profile/news_catalysts,外加宿主 CLIwestock-data ipo --market hk --raw(只补发行日期:招股起 / 招股止 / 上市日)。除此之外禁止浏览器、curl/wget、第二个数据源、猜名单、下载招股书、改本包源码;脚本失败了就停,不得改渲染器。禁止自己写data/<code>/<code>.json或 HTML——payload 由脚本按母本标题 / 「标签:值」/ 表格填出。 - 联网只有一个出口:宿主自带的
WebSearch/WebFetch(其余联网工具被 hook 拒)。只在 MCP 四层都没给出某个发行日期槽时用它,只补issue_params的日期字段,不搜名单、不搜招股书、不换数据源。 - 旁路由包内
hooks/pretool.py(PreToolUse)按能力拦截:联网类工具直接拒(白名单例外:宿主自带的WebSearch/WebFetch,按后缀匹配);写/改落在本包源码路径直接拒(data/<code>/*.json产物放行);curl/wget命令直接拒。宿主其它项目的写改不受影响。 - 不要
ls/env/ 探127.0.0.1/ 找第二个入口。 report一次跑完:Bashtimeout必须是1800000。提交后这一次进程一直监测状态和当前节点,直到全文;遇到静默期断流(服务端把这次生成判死)脚本会自动带retry换一次新生成继续,最多 4 次尝试;确定性失败(额度 / 招股书 / 基本信息缺失)立刻停。不要中途停掉,也不要另起第二条命令。
2.1 · 🧭 数据源优先级(四层,唯一真相在 scripts/ipo_sources.py)
| 层 | 谁 | tool | 供什么 | 拿不到时 |
|---|---|---|---|---|
| 1 · 结构化真值 | 自家 MCP | ipo_list、market_snapshot | 名单条目、官方名称、币种等客观值 | 空手继续,不覆盖母本 |
| 2 · Dify 母本 | 自家 MCP | ipo_dify_report | 报告全文;payload 其余槽位(评级、认购、溢价、估值、财务、赛道、大盘、中签率) | 对应槽留空 |
| 3 · 补充信源 | 自家 MCP | deep_profile、news_catalysts | 基本面画像、个股资讯——只补层 1+层 2 仍为空的 interpretation 槽,只补文本不覆盖数值 | 该槽留空,报告照出 |
| 4 · 宿主新股日历 | 宿主 CLI | westock-data ipo --market hk --raw | 只补 issue_params 仍为空的日期:sgrq(起~止)→ 招股起 / 招股止,ssrq → 上市日 | 该槽留空,报告照出;没装 / 报错 / 认不出该股一律静默跳过 |
| 4b · 宿主联网(最后手段) | 宿主工具 | WebSearch / WebFetch | 上面各层都没给出某发行日期槽时,agent 手动搜该股补日期 | 该槽留空 |
- 合并只有一条机制:
report_fill.merge_prefer(有值者胜、空值不覆盖),所以「谁优先」只写一遍;payload 将来加槽不用改代码。 - 层 1 与层 3 都花额度(同一把 Key、同一份额度):层 3 先判空槽,空了才发起调用;层 1 失败 / 层 3 失败都只降级,报告照出。
- 层 4 只动空槽,绝不覆盖母本或 MCP 给出的值;
westock-data的price/hy不取(招股价与行业一律以母本为准)。 - 母本里的招股起止优先:整句(
招股期自9月14日…至9月17日…)→ 拆开的独立标签(招股开始:…/招股截止:…)→ 才轮到层 4。 - 开关:
IPO_MCP_PRIMARY=0关层 1,IPO_MCP_SUPPLEMENT=0关层 3,IPO_HOST_SOURCES=0关层 4(默认都开)。
3 · 🔄 流程
list 只列清单,列完即停。report --codes 只出点名的报告,不依赖、不调用 list。交付只走 §5:present_files 的 files 只传脚本回报的那条 <code>_report.html,就一条。
report 内部次序固定为 层 1 → 层 2 → 层 3 → 层 4:先 MCP 结构化真值(ipo_list + market_snapshot)→ 再母本(本地已有 <code>_raw.md 就直接用,否则 ipo_dify_report)→ 再 deep_profile / news_catalysts 补 interpretation 空槽 → 最后宿主 westock-data ipo 补仍为空的发行日期槽。各层各印一行日志(层1 … / 层4 …),报告本身不写数据来源清单。
单只报告约 10 分钟(服务端 eta_seconds 自报)。提交后按服务端 poll_after_seconds 长轮询这一次作业:每次打印是否正常运行、当前节点、第几步,一直等到全文。静默期断流(Dify 下载招股书期间零字节输出,链路按空闲超时掐断)会让这次生成被判死——脚本会自动带 retry 换一次新生成继续,最多 4 次尝试;确定性失败(额度 / 招股书 / 基本信息缺失)立刻停。report 一拍出 HTML(进程最多等 1800 秒,Bash timeout 写 1800000),不要手写 payload。本地已有母本就直接填、不要 --refresh。
4 · 📄 产物与结构(锁定)
产物三件套落 IPO_DATA_DIR(默认本包 data/<code>/):
| 文件 | 是什么 |
|---|---|
<code>_raw.md | 母本原文 |
<code>.json | payload(脚本从母本标题 / 标签 / 表格填出) |
<code>_report.html | 交付件 |
报告为富模板单文件(11 个 section.card + hero + nav.toc + 两张档位表 + 最多 4 张 echarts 图:五维雷达只在「AI 评级」卡出 1 张,另有认购 / 保荐人 / 基本面折线各 1;echarts 已内联,离线可画),结构与参照 ../ipo_data/hk02261_report.html 锁定,只换数据,禁止改结构。overview 卡的五维只以 gauge 明细(5 条)呈现,不再重复出雷达。
- 母本模块 10「热点问答」已整体移除:不抽取(payload 无
hot_qa)、不渲染(无.qa块),出报告时整段跳过,不补占位。 - 图表随数据:任一 series 不足 2 点(含单点)→ 该图整块不出,不留空白框。
- 渲染链路:
report_fill.py(标题 / 「标签:值」/ 表格 → payload,不用正则)→chart_options.py→report_template.py;echarts 本体assets/echarts.min.js。 - 结构回归:
run.sh check A.html B.html。
5 · 📦 交付
交付只有一件、路径只有一条。
present_files的files只放脚本回报的{symbol}_report.html(在IPO_DATA_DIR下),不放第二个。
- 产物只落
IPO_DATA_DIR;禁止复制 / 导出 / 另存到任何包外目录(桌面、下载、文档……),也禁止为「方便打开」cp出副本 —— 多一份副本就是面板上多一条同内容的产物(一次present_files带 N 个路径 = 登记 N 条)。 - 多只代码才可能 >1 条:那时一码一条
<code>_report.html,同一份不得交两遍。 - 给用户的话里文件只说这一条路径。
6 · 🚦 退出码
| 码 | 含义 |
|---|---|
0 | 成功 |
2 | 用法/参数问题(next_action 说缺什么) |
3 | Key 缺失或格式非法 → 展示开通引导后结束 |
4 | Key 无效 → 让用户回开通页取新 Key |
5 | 服务或 Key 校验不可用 → 一句人话后结束 |
6 | 数据面失败:failures[].error 是服务端原文,原样转述,不改走网络搜索 |
3/4/5 只属于门禁;ipo.py 自己的失败走 6,不撞门禁的码。