Code Review Checklist
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
给定一个投资主题/趋势,复用交易者 Serenity(@aleabitoreddit)的"供应链瓶颈逆向映射"方法论,独立挖出被市场忽视的上游瓶颈股(而非分析他已喊过的标的)。当用户给出一个主题(如"AI 数据中心电力""人形机器人""HBM 内存")并想要候选标的+论证时使用。仅供研究教育,非投资建议。
$ npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Mrjie7205/serenity-bottleneck-hunter serenity-bottleneck-hunter --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "serenity-bottleneck-hunter" agent skill from https://github.com/Mrjie7205/serenity-bottleneck-hunter/tree/main into .claude/skills/serenity-bottleneck-hunter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serenity-bottleneck-hunter", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Mrjie7205/serenity-bottleneck-hunter serenity-bottleneck-hunter --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "serenity-bottleneck-hunter" agent skill from https://github.com/Mrjie7205/serenity-bottleneck-hunter/tree/main into .agents/skills/serenity-bottleneck-hunter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serenity-bottleneck-hunter", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Mrjie7205/serenity-bottleneck-hunter serenity-bottleneck-hunter --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "serenity-bottleneck-hunter" agent skill from https://github.com/Mrjie7205/serenity-bottleneck-hunter/tree/main into .cursor/skills/serenity-bottleneck-hunter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serenity-bottleneck-hunter", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Mrjie7205/serenity-bottleneck-hunter serenity-bottleneck-hunter --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "serenity-bottleneck-hunter" agent skill from https://github.com/Mrjie7205/serenity-bottleneck-hunter/tree/main into .gemini/skills/serenity-bottleneck-hunter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serenity-bottleneck-hunter", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Mrjie7205/serenity-bottleneck-hunter serenity-bottleneck-hunterInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "serenity-bottleneck-hunter" agent skill from https://github.com/Mrjie7205/serenity-bottleneck-hunter/tree/main into .github/skills/serenity-bottleneck-hunter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serenity-bottleneck-hunter", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Mrjie7205/serenity-bottleneck-hunter serenity-bottleneck-hunter --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "serenity-bottleneck-hunter" agent skill from https://github.com/Mrjie7205/serenity-bottleneck-hunter/tree/main into .opencode/skills/serenity-bottleneck-hunter/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serenity-bottleneck-hunter", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
serenity-bottleneck-hunter给定一个投资主题/趋势,复用交易者 Serenity(@aleabitoreddit)的"供应链瓶颈逆向映射"方法论,独立挖出被市场忽视的上游瓶颈股(而非分析他已喊过的标的)。当用户给出一个主题(如"AI 数据中心电力""人形机器人""HBM 内存")并想要候选标的+论证时使用。仅供研究教育,非投资建议。
Serenity Bottleneck Hunter is an agent skill from Mrjie7205/serenity-bottleneck-hunter. 给定一个投资主题/趋势,复用交易者 Serenity(@aleabitoreddit)的"供应链瓶颈逆向映射"方法论,独立挖出被市场忽视的上游瓶颈股(而非分析他已喊过的标的)。当用户给出一个主题(如"AI 数据中心电力""人形机器人""HBM 内存")并想要候选标的+论证时使用。仅供研究教育,非投资建议。
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 127 other files, including scripts (for example `.github/workflows/validate.yml`, `CHANGELOG.md` and `README.md`).
It sits in Development. It works with Python. The repository describes itself as: A Claude skill: reverse-map a supply chain to find overlooked upstream bottleneck stocks. Distilled from trader Serenity (@aleabitoreddit)'s public methodology. Not financial… The licence is MIT.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b62f330. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
pythoncurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
eodhd.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
EODHD_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Serenity Bottleneck Hunter loads about 3.9k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 1,143 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Mrjie7205/serenity-bottleneck-hunter at commit b62f330, republished under its MIT licence (© Mrjie7205). 1,143 words, ~3,891 tokens.
.claude/skills/serenity-bottleneck-hunter/SKILL.md (or your agent's skills folder). This skill also uses 122 other files; get the full folder from GitHub.把一个投资主题转成一份被忽视的上游瓶颈候选股名单 + 论证 + 目标价/时间框架。核心不是抄 Serenity 的票,而是复用他的逻辑去选新股。
📓 每条纪律是怎么用一次真实翻车换来的,见
reference/lessons.md。本文件只讲"做什么";完整事故复盘在那边,用〔… → lessons.md#锚点〕指过去。
逆向拆解供应链,在机构与分析师发现之前,埋伏那个无人察觉的上游瓶颈,用催化剂兑现。 alpha 来自"早于机构发现主题",不是抄到最低点。
python scripts/run_demo.py:不联网的历史演示,输出与正式跟踪表分开;说明见 examples/README.md。演示不替代真实研究。tracking_file 选择自己的 CSV。现有默认路径兼容保留。shell_from 缺省时使用内置模板,无需私库或驾驶舱。python scripts/verify_report.py <报告> --scan <输入> --tracking <跟踪表> --strict 完整对账。严格模式的输入缺失和数字错配必须先解决。只有用户需要管理、跟踪或复盘已有研究时,才使用 cockpit/README.md 的本地驾驶舱。核心研究流程不依赖它。
默认 python cockpit/run.py 读取只读历史演示,不抓取行情。用户自己的研究须明确指定目录;报告 SPEC 的 out 与 tracking_file 应指向该目录。取价、告警核对和定时任务分别由用户手动触发或显式启用。驾驶舱的“猎手/覆盖”是显示范围,不是龙头视角。
个人目录的星级用 tracking/cross_theme_scan.py --input <个人跟踪表> --output <个人星级表> 重建,避免把公库历史样本的星级混入个人研究。
Step 1 · 确认资本开支确定性 这个主题的钱为什么"一定"会花?规模、周期多长?需求确定性 > 个股故事性。先归类:Bottleneck(瓶颈)/ Disruption(颠覆)/ Evolution(演进)?(本 skill 主攻 Bottleneck)
Step 2 · 逆向拆链 + 广扫纪律(5 层产业链 + 跨主题 root + 可选第 6 层独有 IP) 列出 5 层 从下游到上游:下游对照 → 中游系统 → 中游器件 → 上游设备 → 上游材料/代工。跳过人人都盯的下游龙头。
必做"广扫供应商":除最上游材料层外,单独再搜一轮该主题的子系统/器件/卖铲子供应商,否则漏 ④ 原型标的。〔教训:商业航天漏 Redwire → lessons.md#redwire〕
广扫颗粒度:覆盖 5 层,每层至少 2-3 个标的。广扫不到位 ≠ 板块没机会 —— 停手前先问"是真没机会,还是没扫够"。〔教训:800VDC 6 只→15 只才挖出 STM → lessons.md#breadth-stm〕
跨主题 root 节点:ARM / CDNS / SNPS 放在 chain-viz 上方独立的"跨主题 root"小卡片,显示一次,不画进每个主题的产业链层(三家是所有芯片设计驱动主题共用的根)。〔教训:7 份报告 IP/EDA 层 100% 重复 → lessons.md#ip-eda-root〕
<div class="cross-theme-root">
<span class="label">跨主题 root(芯片设计驱动主题共用)</span>
ARM ⭐⭐ + CDNS ⭐⭐ + SNPS ⭐⭐
</div>其 ⭐⭐ 状态来自 tracking/cross_theme_index_snapshot.csv,不每个主题重画。
可选第 6 层 · 主题独有 IP/EDA 玩家(仅当主题真有独立玩家才画):
A 穷尽性 · 已知玩家全集:每个主题开扫前先列已知玩家全集(全球+全市场,涵盖上市/私有/被并购),逐一显式标记 covered / private(跳过+原因)/ acquired(标合并实体)/ delisted / untracked(EODHD/yfinance 无数据)。不允许"默认遗漏",不允许"我扫了 5 家就够了"。写在报告底部"已知玩家全集 audit"块。〔示例:L4 LiDAR 全集枚举 → lessons.md#player-census〕
A+ ETF audit(强制工具化兜底):A 项"凭记忆列全集"不够,会漏主仓玩家。 每个新主题开 forward_picks 扫描前,必跑 python scripts/theme_etf_coverage.py --etfs <ETF1>,<ETF2>,... --theme "<主题名>" → 拉主题 ETF top 25 持仓、与 forward_picks diff、输出 tracking/_etf_audit_<theme>.json。对每只 new candidate 人工判定产业链层 + 原型 + 是否纳入;top 25 持仓 100% 必 audit(主仓占权重 >70%,小权重 me-too 可跳)。〔教训:Dogfood #10 漏 PANW/CRWD 等 34 只、covered 率 50% → lessons.md#etf-audit〕
IGV + WCLD + AIQCIBR + BUG + HACKSOXX + SMH + PSIAIQ + BOTZWCLD + CLOU + SKYYBOTZ + ROBO + IRBODRIV + IDRVGRID + XLU + URNMICLN + LIT + KARSITA + XAR + UFOFIVG + NXTGDTCR + CLOU + SRVRA++ ticker 双向验证(强制):广扫前用 EODHD search 反查"代码 → 公司名"双向验证——A 项穷尽 + A+ ETF audit 都不防"错标"(标对公司名但 ticker 指向另一家)。每只候选必验:
curl "https://eodhd.com/api/search/<COMPANY_NAME>?api_token=$KEY&fmt=json"
curl "https://eodhd.com/api/search/<TICKER>?api_token=$KEY&fmt=json"→ 两次返回的 Name 必须一致。禁止凭记忆写 ticker,哪怕"我很确定"也必须 search。A 股尤其踩坑:6(沪市)/ 0(深市)/ 3(创业板)/ 688(科创板)/ 002(中小板)代码段交叉,同 5 位数字可能是不同公司。工具:scripts/ticker_truth.py(ground-truth 库)+ scripts/verify_tickers.py(git pre-commit hook 自动拦截)。验证通过才写入 scan*.py。 〔教训:绿的谐波/信质电机/ASEKY/EHGO 共 4 个真错位 → lessons.md#ticker-verify〕
公司状态检查(写判定前必查):每只候选(含链路图非候选节点)搜一次当前状态——收购/被收购/私有化/IPO 上市/退市/破产重组(搜 <公司名> acquisition/IPO/merger)。收购中的标的 🔴 剔除(被收购反向验证选股方向、记进报告当佐证)。"私有/不可投"是状态性断言,LLM 的"某某私有"先验是训练快照、极易过期,必须当场搜证,状态写进 company_desc 带日期的 status 字段。〔教训:SkyWater 被 IonQ 收购 + SpaceX IPO 当天报告还标"私有" → lessons.md#company-status〕
私有公司诚实跳过:每个主题都有"真单源但私有/子部门"的标的。禁止为凑标的硬塞不纯/不可投的公司;在报告里显式列"已识别但跳过的瓶颈 + 原因"(本身就是高密度信号)。例:物理 AI 六维力传感器(坤维/字节灵犀/宇立全私)、鼎智科技(北交所 EODHD 不支持)→ 跳过。坦诚标"无干净纯 play"比硬凑更有价值。
主题边界声明:跑大类主题(物理 AI / AI 算力 / 能源转型)时,报告顶部必须界定本期边界 —— 大类下常有 3+ 个供应链差异显著的子领域,显式说"本期聚焦 X,其他子领域作为独立专题分批跑"。命名:<大类>_<子领域>_完整分析报告.html。〔教训:物理 AI v1 默认=人形 → lessons.md#theme-scope〕
Step 3 · 对每层套「9 大瓶颈原型」(详见 reference/supply-chain-and-archetypes.md Part D):
①上游材料/衬底垄断 ②单一来源卡脖子 ③产能售罄/已锁定=去风险 ④进每个设计的BOM/普适 ⑤估值对标套利 ⑥测试/设备瓶颈 ⑦冷门/前机构 ⑧巨头依赖护城河 ⑨宏观二阶/错杀。
命中原型越多的环节,越是猎区。
Step 4 · 产出候选(偏上游、冷门、小市值) 每个环节挑 1-3 家最纯正的公司。优先:小市值、卖方覆盖少、散户没听过(原型⑦)。用 EODHD search 校验代码与上市地(含海外,见 A++ 纪律)。
python tracking/cross_theme_scan.py,与历史 forward_picks.csv 对照:.US 后缀,否则脚本无法匹配同一只。〔首测案例 AEHR 跨双主题 → lessons.md#cross-theme-aehr〕Step 5 · 三道闸门逐一检验
Step 6 · 入场时机(见下方两套模式,别搞错)
Step 7 · 出报告(单文件 HTML,用下方输出模板 + reference/report_template.html,含目标价+时间框架+反向研究+证伪条件+风险+免责)→ 交付前必过 scripts/verify_report.py 契约校验(见下方"交付契约")
| 模式 | 适用 | 触发 |
|---|---|---|
| A 主题瓶颈长线(本 skill 默认) | 主题里的上游瓶颈股 | 主题刚点燃 + 早期上行/突破 + 仍前机构就进,主动放弃抄底。等回调=踏空。 |
| B 波段超跌反弹 | 成熟大票的非实质性错杀 | 买恐慌回调(增发/稀释类实质利空则回避) |
回测依据(11 只光子学标的):首 call 多在前 6 月区间 86%-237% 高位入场,之后 2-6 个月中位 ~+277%。→ 早于主题、容忍不抄底才是 alpha 来源(注:此为逻辑自洽校准,非业绩,见"验证状态")。
判定二轴(2026-06-21 核心修正):水位 ≠ 判定。 高水位(rng 高、贴顶)不再自动 = 🟡——单看水位是「均值回归」伪装成「动量」,会系统性把热门板块的真龙头判成"别追"、错过最大涨幅(闪迪式 melt-up)。判定必须叠加第二轴:这波涨基本面跟不跟得上——price.py 的 valuation() 出 forward P/E / PEG / 盈利&营收增速,扫描算 RS-rank(同主题内 3 月动量排名),Step 1 出周期 runway(早/中/晚)。render_report 标尺自动显示第二轴 + 给 hint:
| 基本面跟得上(forward P/E 压缩 / PEG≤2 / 盈利增速≥涨幅 / RS 领头 / 周期早) | 跟不上(纯重估 / forward P/E 扩张 / 周期晚 / RS 落后) | |
|---|---|---|
| 高水位(贴顶) | 🟢 贵但对——动量龙头,Mode A 持有/可加,别 fade | 🔴 真贴顶——再涨是博傻,回避 |
| 低水位 | 🟢 经典埋伏(Mode A 早 / Mode B 超跌) | 🔴 落后有原因,排除 |
A股 forward/PEG 常缺(yfinance 估计覆盖薄)→ 退化用"盈利/营收增速 vs 涨幅"+ RS;标尺显示"—"即数据缺、不强判。limit:顶 vs 续涨本质难判,二轴只 tilt 概率、不根治,新规则对不对靠 L1 向前跟踪校准。〔教训:水位标尺均值回归伪装动量、系统性反龙头 → lessons.md#water-level-2axis〕
价格纪律(硬规则):
scripts/price.py 拉真实价格(provider 自动回退:EODHD(EODHD_API_KEY)→ yfinance),输出 6 月区间位置、距高点、近 1/3 月动量、stage 标签。严禁 WebSearch 抓价格、严禁凭印象猜 early/extended——猜测 = 流程错误。海外股若 yfinance 拿不到,让用户提供 EODHD key 或换可解析代码重跑,不降级为定性。python -c "from scripts.price import analyze; print(analyze('6324.T'))" 或脚本里 from scripts.price import fetch_history。禁止 inline Invoke-RestMethod 调 EODHD(绕过 yfinance fallback)。〔教训:物理 AI v1 漏 4 只日股 → lessons.md#price-interface〕last / range_pos_6mo_pct / pct_off_6mo_high / ret_1m_pct / ret_3m_pct / above_sma50 / stage + high/low_6mo)+ 保留完整 log;写入 forward_picks 前逐字段 verify。〔教训:手填 9 个 off% 全错(HSAI -89% 真 -35.6%)→ lessons.md#hand-filled〕交付物 = 一个自包含 HTML 文件(单文件、样式内联,仅 Google Fonts 可外链),写到
reports/<主题>_分析报告.html。骨架与配色复用reference/report_template.html。生成后Start-Process <file>.html(Win)/open(mac)打开。生成方式(硬规则):报告必须用
scripts/render_report.py渲染——agent 只写一个薄「主题 SPEC」(纯数据:候选 / §A§B / 产业链节点+依赖边 / 文字;示例examples/demo_spec.json),引擎负责:默认读取公库自带reference/report_template.html(也可显式选择合格报告外壳)(CSS + reveal/术语/chain-draw 脚本)、拉 scan 价(零手填)、渲染真 chain-viz(.cnode+.edge-list喂layoutChain自动绘制判瓶颈)、水位标尺三价、§A 红队 + §B 证伪、写 forward_picks。严禁绕过引擎手搓 HTML / 画静态简版 chain-viz——引擎是唯一路,产出后必须用verify_report.py校验;结构通过不代表投资论点通过。因预算/复杂度砍任何既定标准,当场说明、不把缩水版当完整品交。〔教训:契约≠保真,把"过自己造的闸"当"做好了" → lessons.md#chain-viz-fidelity〕report_template.html 已内置的模板特征(生成时必用):① 本次行动点——头条位最多 2 张行动卡(设什么警报 / 什么条件做什么),无视排序置顶,读者 10 秒拿到本次唯一要做的事;② 水位标尺——动量用 贴顶/高位/中位/低位/贴底 + 距高点% + 1m/3m 的人话化标尺,且标尺两端标 6 个月最低/最高价、游标上方标现价(6 月低/高/现价三价,币种按交易所后缀);③ 产业链双规则瓶颈判定——漏斗型(入度≥2 出度≤1,金边)+ 枢纽型(入度≥2 出度≥2,多对多最难绕开,酒红边);④ 判定史——同标的历史判定(旧价→今价 ±%、对错复盘),体现框架连续性与诚实度;⑤ §A 红队 + §B 证伪——每候选折叠红队、🟢 带证伪(本次 Tier-1 新增,见上)。
scripts/verify_report.py,交付前必过)报告写完、宣布完成之前必跑一次,把"漏交付/漏状态/漏入库"挡在交付前:
EODHD_API_KEY=… python scripts/verify_report.py reports/<主题>_分析报告.html它查契约(不查思路):区块齐全(chain-viz / leaderboard / 行动点 / 三道闸 / 免责)· 每候选有 §A、🟢 有 §B · 标尺三价齐 · ticker 过 ground-truth · 现价/6月低/高 逐字段对账 scan JSON(防手填/过期)· 状态断言带日期(过期 30 天提醒)· 每判定入轨 forward_picks 且 🟢 的 invalidation 非空 · 无占位符残留 · <details> 开合平衡。有【拦】先修再交付,只剩【警】方可交付。
报告必含区块(对应 7 步,所有项 hard rule 不允许跳过):
.thirty-sec)。.chain-viz 容器 + 5 层 .chain-layer(+ 可选第 6 层独有 IP),跨主题 root 卡片在上方。每层 .cnode[data-id=...](data-id = forward_picks 一致的 eodhd_symbol,美股带 .US);供货关系写 .edge-list(data-from/to/weight 三档),JS 画 SVG + 判瓶颈点。跨主题节点加 <span class="star-inline">⭐</span>。〔教训:L4/AMR 漏此区块 → lessons.md#chain-viz-required〕.why 块(20-40 字人话) · 风险。cross_theme_index_snapshot.csv)。<abbr> 抽取)。每个 🟢/🟡 候选必带一段红队,不许写"风险:估值高"这种套话。四问 + 一句最大杀点:
反向研究 · 杀死这个候选的最短路径
① 为什么可能不是真瓶颈? → 谁能绕过 / 替代方案进度
② 瓶颈为什么可能不变现? → 收入纯度 X% / 下游议价能力 / 毛利能否扩
③ 市场是否已定价? → 【强制引用 price.py 的 off-high / 1m / 3m 数字对账,不许空谈】
④ 有没有更优替代? → 必须点名一个对比标的 XXX.XX(且过 price.py / ticker 验证)
最大杀点(一句):________ (必须区别于"估值高/竞争加剧"的通用风险)牙齿:③ 必须引用我们已拉到的 9 字段数字(off/1m/3m 就在 scan JSON 里,逼对账);④ 必须点名一个真实存在、可验证的对比 ticker。
每个 🟢 必带 2-4 条具体可检验的"什么会证明我错了",至少一条是价格/stage 机器可读(供 score_tracker 自动监控):
证伪条件(满足任一即承认判断错):
· 价格/stage:跌破 ¥X(entry)且 1m 转负 ← 机器可检,写进 forward_picks 的 invalidation 列
· 基本面:下季度订单/backlog 未随主题增长
· 估值:涨到 PS > 行业 +1σ 但毛利未扩牙齿 + 闭环接口:至少一条要能落成机器规则(stop 价 / stage 失效),写进 forward_picks.csv 的 invalidation 列;score_tracker 重拉价时自动检查"证伪触发没有"。没有证伪条件的 🟢 = 故事不是投资假设。
$WOLF 重组后是 NewCo,业务逻辑可独立评估 → 🟡 观望 + trigger,不永久排除。.why 一行(20-40 字人话);③ 专业缩写首次出现用 <abbr title="中文解释">缩写</abbr>,来源 reference/glossary.md(120+ 条),新术语先 append 再用;④ 底部 <details class="glossary-section"> 折叠速查表,JS 自动从 <abbr> 抽取。页脚必带:⚠️ 仅供研究教育,非投资建议;估值为网页研究近似值需复核;微盘/诉讼/海外标的风险极高。
scripts/price.py,自动回退 ① EODHD(EODHD_API_KEY)→ ② yfinance → ③ 都失败=报错退出。Key 从环境变量读、不硬编码。WebSearch 仅用于公司基本面/定性研究,不用于抓价格。reference/lessons.md —— 翻车档案 / 纪律的由来(每条纪律对应一次真实事故,SKILL.md 用 〔… → lessons.md#锚点〕 指向)reference/methodology.md —— 完整方法论(理念、筛选清单、两套择时、回避清单、风险)reference/supply-chain-and-archetypes.md —— 元框架、产业链速查表、Part D 9 大瓶颈原型库、EODHD 数据映射reference/report_template.html —— HTML 报告骨架 + 配色模板scripts/render_report.py —— 报告统一渲染引擎(克隆合格报告外壳 + 数据驱动渲染真 chain-viz / 标尺三价 / §A§B / forward_picks;agent 只写薄主题 SPEC,示例 examples/demo_spec.json)scripts/verify_report.py —— 交付契约 linter(报告生成后必跑;查区块齐全 / §A§B / 标尺三价 / 价格对账 scan / 入轨 forward_picks / 真 chain-viz / 揭示类脚本 / 占位符,有【拦】先修再交付)reference/example_commercial_space.md —— worked example(商业航天),示范分析内容与颗粒度reference/glossary.md —— 术语库(120+ 条,LLM 自动 enrich);报告 <abbr> 注释来源reference/company_desc.md —— 公司业务描述库:只存 business(主营/产业链位置/技术/客户),严禁含 price/stage/估值等动态数据。格式 - **SYM.EX** [YYYY-MM-DD] = 业务描述,每条带 last_updated 时间戳。.cnode[data-desc=],带时间戳)/ 🔴 status(.cnode[data-status=],price/stage,每次重写带 [YYYY-MM-DD])。tracking/check_desc_freshness.py。〔三次迭代史 → lessons.md#company-desc-evolution〕reference/ticker_truth.csv + reference/TICKER_HYGIENE.md —— ticker ground-truth 库 + L1/L2/L3 防御文档tracking/forward_picks.csv —— 向前(样本外)跟踪表(带 invalidation 证伪列)tracking/score_tracker.py + tracking/theme_benchmark.csv —— Alpha 打分(🟢-vs-🔴 内部对照为主、vs 主题 ETF/大盘为辅)tracking/cross_theme_scan.py + tracking/cross_theme_index_snapshot.csv —— 跨主题节点扫描(Step 4 末尾强制跑)+ 快照score_tracker 重拉价。关键纪律:量 Alpha = 标的收益 − 主题 ETF 同期收益(牛市里随便选上游小票也涨,raw return 看不出选股有没有 alpha);最硬的检验是 🟢 篮子 vs 🔴 篮子内部对照(同主题 beta 对消,差额 = 纯选股能力)。结论出来前,输出只当研究线索,不是业绩。每次出新候选都追加进 forward_picks.csv。© Mrjie7205, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 122 other files (scripts) in the repository root of Mrjie7205/serenity-bottleneck-hunter.
Open the folder on GitHubat commit b62f330
Serenity Bottleneck Hunter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Serenity Bottleneck Hunter this skillMrjie7205/serenity-bottleneck-hunter | 403 | — | ~3.9k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 4 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Minimizing Ty Ecosystem Changesastral-sh/ruff | 50k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Merge Dependabot PRsonyx-dot-app/onyx | 32k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Summarise Ecosystem Resultsastral-sh/ruff | 50k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Senior Architect Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 8 repos | ~1.2k | Automated safety check: Notes | Custom licence |
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
onyx-dot-app/onyx
Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…
astral-sh/ruff
A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin…
kedro-org/kedro
Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…
Works with
Categories
给定一个投资主题/趋势,复用交易者 Serenity(@aleabitoreddit)的"供应链瓶颈逆向映射"方法论,独立挖出被市场忽视的上游瓶颈股(而非分析他已喊过的标的)。当用户给出一个主题(如"AI 数据中心电力""人形机器人""HBM 内存")并想要候选标的+论证时使用。仅供研究教育,非投资建议。. Serenity Bottleneck Hunter is an agent skill from Mrjie7205/serenity-bottleneck-hunter.
Serenity Bottleneck Hunter fits situations like: development work in your project.
Run `npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a claude-code`. Or copy the skill folder (the Mrjie7205/serenity-bottleneck-hunter repository) into .claude/skills/serenity-bottleneck-hunter in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a codex`. Or copy the skill folder (the Mrjie7205/serenity-bottleneck-hunter repository) into .agents/skills/serenity-bottleneck-hunter in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mrjie7205/serenity-bottleneck-hunter --skill serenity-bottleneck-hunter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/serenity-bottleneck-hunter, .gemini/skills/serenity-bottleneck-hunter, .github/skills/serenity-bottleneck-hunter and .opencode/skills/serenity-bottleneck-hunter in your project.
Going by SKILL.md and its folder, Serenity Bottleneck Hunter needs Python for the scripts in its folder, the command-line tools its instructions call (python and curl) and credentials named EODHD_API_KEY. Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: eodhd.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Serenity Bottleneck Hunter is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Serenity Bottleneck Hunter: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Minimizing Ty Ecosystem Changes (astral-sh/ruff, 50k stars), Merge Dependabot PRs (onyx-dot-app/onyx, 32k stars) and Summarise Ecosystem Results (astral-sh/ruff, 50k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Mrjie7205 (a GitHub user) maintains it in Mrjie7205/serenity-bottleneck-hunter, which has 403 GitHub stars. The repository was last updated on September 29, 2026.
Source: Mrjie7205/serenity-bottleneck-hunter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.