agentsclimarketplace

Disease market sizing html template

Skill EthanYoQ/Skill-hub/skills/10-business-industry/disease-market-sizing-html-template

Reusable AI agent skills for Codex, Claude Code etc. — AI coding workflows, SKILL.md templates, and automation practices. 面向 Codex、Claude Code等agents 的可复用 AI Agent Skill 技能库:AI 编程工作流、SKILL.md 模板与自动化实践。

Install
npx -y skills add EthanYoQ/Skill-hub --skill disease-market-sizing-html-template

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when generating multi-page HTML market research reports with main page + N disease sub-pages structure (e.g. hematology IFI, respiratory ICU fungal, oncology immunotherapy). Provides shared CSS design system, sticky topnav, hero gradients per market tier, disease-card grid, lp-callout boxes, cross-page link integrity, and (v1.2 · 2026-04-25) standalone single-file HTML-only 交付 pipeline (build_standalone.py base64 内嵌, v1.2 PDF 已停用, 仅交付 HTML 单文件即终态交付物). Triggers on "生成 HTML 报告主页+子页", "市场调研 HTML 模板", "决策树跳转 网格", "可分享交付物 / 双击可读 / 邮件附件", or any multi-page disease market sizing HTML output. Inherits from L0 market-sizing-mece-foundation §11 visual specs (MRR alignment). After generating HTML pages, downstream skill is `report-bundle-builder` for single-file delivery.

SKILL.md

24.4 KB, as published. Nobody here has run it

疾病市场调研 HTML 模板 Skill (L2 · 复用组件)

L2 工具组件:本 skill 提供"主页 + N 子页"HTML 报告的模板库 + CSS 设计系统。 设计目标:让任何疾病市场调研直接套用,得到一致美观、链接完整、tier 区分清晰的多页 HTML 报告。 上游依赖:market-sizing-mece-foundation (L0 §11 视觉规范) + ifi-market-sizing-skill (L1 §5.3 完整性清单)

一句话定义

主页(总览 + 跳转网格)+ N 子页(疾病独立深挖) 双重导航 HTML 模板,统一 CSS 设计系统(navy/blue/gold/red),tier-tag 视觉分级(⭐⭐⭐ 金 / ⭐⭐ 橙 / ⭐ 蓝),sticky topnav,disease-card grid,lp-callout 八色 box 系统。


何时调用本 skill

调用时机:

  1. 市场调研项目即将生成 HTML 报告
  2. 主报告章节数 ≥ 6 + 子市场数 ≥ 3 → 必须用主页 + 子页结构,否则单页过长
  3. 已有手写 HTML 报告需要审计(检查是否符合本模板)

不调用的场景:

  • 单一市场调研(无 N 子市场)→ 用单页咨询式 HTML
  • 内部 brief / 快速摘要 → 用 markdown 即可

文件结构标准

output/
├── report_v??.html                  # 主页(总览 + N disease-card 跳转)
├── page_<sub1>.html                 # 子页 1(独立疾病决策树+测算+TOP 3 LP+证据)
├── page_<sub2>.html                 # 子页 2
├── ...
├── flowchart_main_v??.png           # 主图(疾病分流总览,主页 §3 嵌入)
├── flowchart_lp.png                 # LP 全景决策图(主页 §7.0 嵌入 · Iron Law)
├── flowchart_<sub1>_v??.png         # 子页 1 决策树
├── flowchart_<sub2>_v??.png         # 子页 2 决策树
└── flowchart_<sub*>_v??.mmd         # 决策树源码(配套 L2 skill `decision-tree-with-lp-embedding`)

CSS 设计系统(共享模板 · 主页 + 子页通用)

:root{
  /* 配色 (MRR 对齐 + 红/金 强调色) */
  --navy:#003366; --blue:#336699; --accent-blue:#0078D7;
  --red:#C62828; --red-bg:#FFEBEE;
  --green:#008060; --green-bg:#C8E6C9;
  --purple:#6A1B9A; --purple-bg:#F3E5F5;
  --gold:#F59E0B; --gold-dark:#78350F;
  --orange:#CA6F1E; --orange-light:#FFEEDA;
  --gray-100:#f3f4f6; --gray-200:#e5e7eb; --gray-300:#d1d5db;
  --gray-500:#6b7280; --gray-700:#374151; --gray-900:#1f2937;
  /* 字体 */
  --font-sans:'Source Han Sans CN','PingFang SC','Microsoft YaHei',sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{font-family:var(--font-sans);color:var(--gray-900);line-height:1.65;margin:0;padding:0;font-size:11pt;background:#fff;font-feature-settings:"tnum" 1}
@page{size:A4;margin:2.2cm 2cm}
h1{color:var(--navy);font-size:22pt;margin:22pt 0 10pt;padding-bottom:6pt;border-bottom:2.5pt solid var(--navy);font-weight:700;scroll-margin-top:80px}
h2{color:var(--navy);font-size:15pt;margin:16pt 0 9pt;padding-left:10pt;border-left:4pt solid var(--blue);font-weight:700;scroll-margin-top:80px}
h3{color:var(--blue);font-size:12pt;margin:11pt 0 6pt;font-weight:600}
p{margin:6pt 0}ul,ol{margin:6pt 0;padding-left:22pt}li{margin:3pt 0}

Tier 渐变 hero(子页头部 · 按市场分级)

/* ⭐⭐⭐ 顶级(金色 — Crown Tier) */
.hero.t3{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-dark) 100%)}
/* ⭐⭐ 中等(橙色) */
.hero.t2{background:linear-gradient(135deg,var(--orange) 0%,#7C3F00 100%)}
/* ⭐ 低(海军蓝) */
.hero.t1{background:linear-gradient(135deg,var(--blue) 0%,var(--navy) 100%)}

共享组件(必含)

组件用途关键 CSS
.hero子页 / 主页头部渐变padding 28px 32px, color #fff, position relative
.hero .back子页返回主页position absolute top 14px right 32px, rgba(255,255,255,0.2)
.hero .tier-tagtier 徽章background #fff, color tier 主色, padding 2pt 10pt, border-radius 10pt
.topnav章节快速跳转sticky top:0, z-index 50, display flex, gap 8px
.disease-card主页跳转网格(子页入口)padding 16pt 18pt, border-left 5pt solid tier 主色
.lp-calloutLP 高亮区块display flex, align-items flex-start, padding 12pt 16pt
.lp-crownCrown LPbackground #FEF3C7, border 3pt solid var(--gold)
.lp-standardStandard LPbackground #FEE2E2, border 2pt solid #DC2626
.callout蓝色信息框border-left 4pt solid var(--accent-blue), background #E6F1FB
.warning红色警告框border-left 4pt solid var(--red), background var(--red-bg)
.datahint绿色数据洞察border-left 4pt solid var(--green), background var(--green-bg)
.recommendation紫色建议框border-left 4pt solid var(--purple), background var(--purple-bg)
table.ds数据表border-collapse, font-size 10pt, font-variant-numeric tabular-nums
.figure图片嵌入text-align center, page-break-inside avoid
.anchor-badgePMID 文献徽章inline-block, font-size 9pt, background #e0f2fe, color #0369a1

主页结构(report_v??.html)

[hero · 顶部 navy 背景]
  - 标题 + 立场 + 版本日期 + 署名
  - 分母总市场 + 数据基准

[topnav sticky]
  - 8-12 个章节锚点

[main]
  ① 执行摘要(8-12 条结论)
  ② 研究方法概要
  ③ 主图 flowchart_main_v??.png(完整渲染嵌入)
  ④ N 张 disease-card 跳转网格(子页入口)
     - 每张 disease-card 含: tier-tag, 疾病名, market 占比, 链接
  ⑤ 市场规模(总览表 + TAM/SAM/SOM)
  ⑥ 结论与策略
  ⑦ LP 决策图
     - §7.0 LP 全景决策图 PNG 嵌入(Iron Law · 失败模式 #28)
     - §7.1 8 LP 总览(lp-callout × 8)
     - §7.2 LP 排序表
     - §7.3 LP 量化方法
  附录 A:研究方法论
  附录 B:子页索引(再次列表所有子页 + PNG)
  附录 C:参考文献

[footer]
  - 子页快速跳转链(N 个)
  - 署名

子页结构(page_<sub>.html)

[hero · tier 渐变 (t1/t2/t3)]
  - back 链(返回主页)
  - tier-tag(⭐⭐⭐ 顶级 / ⭐⭐ 中 / ⭐ 低)
  - 疾病名 + market 总额 + 占比
  - 双分支结构提示(预防 X% / 非预防 X%)

[topnav sticky]
  - 主页 / ①决策树 / ②测算 / ③TOP 3 LP / ④证据

[main]
  ① 决策树 PNG 嵌入(flowchart_<sub>_v??.png)
     · 含本 skill `decision-tree-with-lp-embedding` 的 LP 节点级标注
  ② 测算依据
     - 表 1 双分支患者流量
     - 表 2 阶段 × 主药构成
     - datahint 核心洞察
  ③ TOP 3 LP(lp-callout × 3)
     - 1 个 lp-crown(本子页 Crown)
     - 2 个 lp-standard
     - recommendation 区块解释 LP 选择逻辑 + 链回主页 §7
  ④ 关键证据 PMID 表(≥4 行)

[footer]
  - 返回主页链
  - 署名

Iron Law(本 skill 强制清单)

主页必含

  • §3 嵌入 flowchart_main_v??.png(主图)
  • §4 N 张 disease-card 跳转网格(每张含 tier-tag + market 数字 + 链接)
  • §7.0 嵌入 flowchart_lp.png LP 全景决策图(Iron Law · L1 失败模式 #28 历史复现)
  • §7.1 全部 LP 的 lp-callout
  • footer 含全部 N 个子页快速跳转链

子页必含

  • hero 渐变按 tier 分级(t1/t2/t3)
  • sticky topnav 4 个锚点(决策树 / 测算 / TOP 3 LP / 证据)
  • §1 嵌入 flowchart_<sub>_v??.png
  • §3 TOP 3 lp-callout(1 个 lp-crown + 2 个 lp-standard)
  • §3 末尾 recommendation 链回主页 §7
  • footer 含返回主页链 + 署名
  • 每子页至少 4 个反向链接(hero back / topnav home / recommendation / footer)

链接互联

  • 主页 → 子页:每张 disease-card / 跳转表 / footer 链接全部就位
  • 子页 → 主页:每子页 ≥4 个反向链接
  • 子页 → PNG:每子页正确引用其专属 flowchart_<sub>_v??.png
  • 主页 → flowchart_lp.png + flowchart_main_v??.png 全部就位

视觉一致性

  • 全部页面共用同一套 CSS 变量(--navy / --gold / etc)
  • 全部页面字体堆栈一致(Source Han Sans CN → PingFang SC → Microsoft YaHei)
  • tier-tag 配色与 hero 渐变 tier 主色保持一致
  • lp-crown 仅 Crown LP 使用,其他 LP 一律用 lp-standard

跨疾病移植清单(下次"呼吸科 ICU 真菌"项目)

模板部分移植方式
CSS :root 变量✅ 直接复用
.hero / .topnav / .disease-card / .lp-callout✅ 直接复用
Tier 渐变(t1/t2/t3)✅ 直接复用 — Crown/中/低 视觉规范一致
主页 7 章 + 3 附录骨架✅ 直接复用 — 改章节内容
子页 4 节(决策树+测算+TOP 3 LP+证据)✅ 直接复用
子页文件名🟡 改名 — 例 page_RICU_CAPA.html / page_PCCM_CPA.html
主图文件名🟡 改名 — 例 flowchart_main_resp_v??.png
LP 全景图文件名✅ 保持 flowchart_lp.png
配色三档(t3 金/t2 橙/t1 蓝)✅ 直接复用

失败模式速查

#失败模式根因修复
1主页缺 LP 决策图 PNGskill 无强约束清单本 skill Iron Law §7.0
2子页 hero 全部用同色无 tier 视觉分级强制 t1/t2/t3 三档渐变
3子页缺 sticky topnav长子页用户找不到锚强制 4 锚点 sticky topnav
4disease-card 缺 tier-tag主页跳转视觉无层级强制 tier-tag + 颜色对应 hero 渐变
5lp-callout 全部红色Crown 与普通无区分强制 1 个 lp-crown(金)+ 其他 lp-standard(红)
6子页 footer 缺返回主页链用户卡死子页强制 footer back 链
7跨页面 CSS 不一致子页独立写 CSS强制全部页用同一套 :root 变量
8LP 排序表用普通 td 不分级视觉重点缺失Crown LP 用 background:#FEF3C7;font-weight:600
9缺 footer 子页快速跳转主页用户在 §7 后无法直接进子页强制 footer 含全部 N 个子页链
10跨文件交付的链接断裂HTML/PNG 跨文件相对路径,收件人解压时漏文件 / 路径不对 / 无 AI 软件无法浏览Iron Law(阶段 6):必须用 build_standalone.py 合并成单文件 HTML 交付,禁止直接交付 7 HTML + 8 PNG 散文件(v1.2:PDF 已停用,单 HTML 即终态)
11PDF 决策树压缩失真 / 重复劳动Chrome headless PDF 把 base64 PNG 二次压缩,且 PDF 与单 HTML 内容完全冗余,维护成本翻倍v1.2 决策(2026-04-25):PDF 不再交付。单 HTML(零依赖+决策树原画质+锚点跳转)即终态交付物,涵盖屏幕浏览、邮件附件、即时通讯、网盘分享所有场景

阶段 6:可分享交付物生成(单文件 HTML · v1.2 仅 HTML 交付)

场景定义:多页 HTML 报告完成后,需要交付给最终读者(同事 / 客户 / 高管)的"零依赖"形态。 v2.5.3 实战经验:用户电脑可能没有任何 AI 软件,要"双击就能读 / 邮件附件直接发 / 网盘/即时通讯一键分享"。

⚠️ v1.2 重大决策(2026-04-25 用户最终明确):以后交付全部交付 HTML,不再交付 PDF。 单 HTML 已是终态交付物 — 决策树原画质 base64、锚点跳转、零依赖、双击可读、邮件附件可发,完全覆盖 PDF 所有场景。PDF 反而引入二次压缩失真、内容冗余、维护翻倍问题。 如读者明确要打印,可在浏览器中 Ctrl+P 自行另存为 PDF — 生成方不再主动产出 PDF

6.1 何时触发

用户出现以下任一意图,立即进入阶段 6:

  • "生成可分享的交付物 / 分享给同事 / 邮件附件 / 网盘分享"
  • "目标用户电脑可能没有任何 AI 软件 / 双击就能阅读"
  • "打包发出去 / 一键交付 / 给客户最终版"
  • 项目临近收尾、所有主页+子页已就绪、所有 PNG 已渲染

6.2 交付物形态(v1.2 仅 HTML 交付)

交付物形态文件大小用户体验推荐
单 HTML(base64 内嵌)report_v??_standalone.html~9 MB双击浏览器打开 · 锚点跳转 · 零依赖 · 决策树原画质唯一交付物
配套 PDFreport_v??_standalone.pdfv1.2 停止交付(失败模式 #11)
ZIP 打包(原生 7 HTML + 8 PNG)report.zip~10 MB解压后打开主页 · 跨文件链接易断不推荐(失败模式 #10)

为什么单 HTML 即终态:

  • 决策树原画质保留(PDF 会二次压缩)
  • 锚点跳转 / 平滑滚动 / 浏览器搜索全部支持(PDF 弱化)
  • 邮件附件 9 MB 完全可发(PDF 同体积无优势)
  • 读者若需打印 → 在浏览器中 Ctrl+P 自行另存为 PDF(分发方零成本)
  • 维护成本砍半:只跑 build_standalone.py,无需 Chrome headless 二次渲染

6.3 核心技术规范

A) PNG → base64 内嵌

# 正则匹配 <img src="*.png">,替换为 data: URI
data_uri = f"data:image/png;base64,{base64.b64encode(png_bytes).decode('ascii')}"
  • 8 张 PNG 全部内嵌(主图 1 + LP 全景图 1 + 子页决策树 N)
  • 单文件目标 < 25 MB(主流邮箱附件上限)

B) 跨文件链接 → 锚点跳转

  • 主页 href="page_<key>.html"href="#page-<key>"
  • 主页 href="page_<key>.html#decision"href="#page-<key>"(子页 hash 重写时同步处理)
  • 子页 href="report_v??.html"href="#top"
  • 子页 href="report_v??.html#§N"href="#§N"
  • 子页内部 href="#decision|calc|lp|evidence"href="#page-<key>-decision"(防止多子页锚点冲突)

C) 子页 body 包裹成 section

<section class="standalone-subpage" id="page-<key>">
  <div class="standalone-divider">
    <span class="standalone-divider-label">子页 · <key></span>
    <a href="#top" class="standalone-back">↑ 回到主页顶部</a>
  </div>
  <!-- 原子页 body 内容 -->
</section>

D) 顶部三件套

<a id="top"></a>                                       <!-- 锚点 -->
<div class="standalone-banner">                        <!-- 横幅说明 -->
  <strong>📦 单一独立 HTML 版</strong> · 已合并主页 + 全部 N 个子页 + 全部 M 张 PNG · 零外部依赖 · 双击浏览器即可阅读
</div>

每个子页 section 内置"↑ 回到主页顶部"返回链。

E.5) 悬浮目录导航(Floating TOC · v1.3 · 2026-04-25 强制)

Iron Law:单文件 HTML 必须含全量悬浮 TOC(主页 + 全部 N 子页所有 h1/h2),不只是主页章节。

用户体验目标:

  • 右上角圆形目录按钮(40-44px · 始终可见 · 不打扰内容)
  • 点击展开右侧悬浮面板(420px · 主报告 + N 子页全量 h1/h2 节点)
  • 点击面板外区域 / Esc 键 / 收起按钮 → 关闭
  • 点击任意 anchor → 平滑滚动 + 自动收起
  • 打印时(@media print) 自动隐藏

HTML 结构:

<button id="ftoc-button" type="button" aria-label="打开目录导航">
  <svg viewBox="0 0 24 24">...</svg>
</button>
<div id="ftoc-overlay" hidden>
  <aside id="ftoc-panel" role="dialog">
    <header class="ftoc-header">
      <span class="ftoc-title">目录导航</span>
      <button id="ftoc-close">收起</button>
    </header>
    <div class="ftoc-body">
      <div class="floating-toc-section">
        <div class="floating-toc-section-title">📋 主报告</div>
        <ul>
          <li class="ftoc-l1"><a href="#ch1" data-ftoc-link>一、执行摘要</a></li>
          <li class="ftoc-l2"><a href="#ch1-1" data-ftoc-link>1.1 ...</a></li>
          ...
        </ul>
      </div>
      <div class="floating-toc-section">
        <div class="floating-toc-section-title">
          📑 子页 · <a href="#page-{key}" data-ftoc-link>{key}</a>
        </div>
        <ul>...</ul>
      </div>
      ... (N 子页)
    </div>
  </aside>
</div>

CSS 关键规则:

  • #ftoc-button { position: fixed; top: 18px; right: 22px; z-index: 9998; }
  • #ftoc-overlay { position: fixed; inset: 0; z-index: 9999; backdrop-filter: blur(2px); }
  • #ftoc-panel { width: min(420px, calc(100vw - 28px)); max-height: calc(100vh - 28px); }
  • body.ftoc-open { overflow: hidden; }(打开时锁定背景滚动)
  • @media print { #ftoc-button, #ftoc-overlay { display: none !important; } }

JS 行为(vanilla,零依赖):

  • 点击按钮 → toggle 显示
  • 点击 #ftoc-overlay(但非 #ftoc-panel 子元素)→ 关闭
  • Esc 键 → 关闭
  • 点击任意 [data-ftoc-link] → 50ms 后自动关闭(让锚点跳转先生效)
  • T 键(键焦点在 body)→ 快速打开

自动构建:

  • build_standalone.py 中的 extract_headings(html, prefix_id) + build_floating_toc(main_html, sub_pages) 自动从合并后的 HTML 提取所有 <h1 id> / <h2 id> / <h3 id> 并构建树
  • 子页 anchor 通过 prefix_id="page-{key}-" 自动加前缀,不会与主页冲突

Iron Law(v1.3.1 修复 · 2026-04-25 用户反馈):

  1. 主报告分组必须过滤 page-* 前缀 anchor:extract_headings(main_html) 在合并后的 HTML 上调用会同时抓到主页和已合并的子页 h1/h2(id 已带 page-{key}- 前缀)→ 必须 if anchor.startswith("page-"): continue 过滤,否则主报告分组会出现 N 套重复且无归属(图中症状:连续 6 套"双分支决策树/Market 测算/TOP 3 LP/关键证据"无子页归属)
  2. 禁用 backdrop-filter: blur:9 MB+ 大文档下 backdrop-filter: blur(2px) 会让浏览器对整个 viewport 强制重排重绘 → 鼠标延迟高、卡顿。改用 background: rgba(15,23,42,0.35) 半透明纯遮罩(GPU 友好)
  3. 过渡时长 ≤ 150ms · 动画用 @keyframes 而非 transition:opacity transition 130ms · panel 用 animation: ftoc-pop 0.14s ease-out,加 will-change: opacity/transform 提示合成层
  4. 打开用 requestAnimationFrame 而非 setTimeout(10):确保 hidden 切换后下一帧才加 .show class(避免动画跳过)

血液科 v2.5.3 实测:92 个目录条目自动提取(主页 30+ + 6 子页各 ~10),HTML 体积 +0.02 MB(可忽略)。

E.6) 子页 sticky topnav 在合并版隐藏

.standalone-subpage .topnav { display: none !important; }
.standalone-subpage { margin-top: 60pt; padding-top: 30pt; border-top: 4pt double var(--navy); page-break-before: always; }
.standalone-divider { display: flex; justify-content: space-between; background: linear-gradient(90deg, var(--navy) 0%, var(--blue) 100%); color: #fff; padding: 12pt 18pt; border-radius: 6pt; }

原因:合并后所有锚点都在同一文档,子页 topnav 失去意义且会污染滚动。

6.4 复用脚本骨架(从 build_standalone.py 抽取)

完整参考实现:<output_dir>/build_standalone.py(血液科 v2.5.3 验证可用)

from pathlib import Path
import base64, re
from dataclasses import dataclass

# ===== 配置常量(跨疾病移植仅改这里)=====
OUT = Path(__file__).parent
MAIN_HTML = OUT / "report_v??.html"
SUB_PAGES: list[tuple[str, Path]] = [
    ("<key1>", OUT / "page_<key1>.html"),
    ("<key2>", OUT / "page_<key2>.html"),
    # ... N 个子页
]
OUTPUT_HTML = OUT / "report_v??_standalone.html"

@dataclass(frozen=True)
class SubPage:
    key: str; title: str; body_html: str; head_style: str

# ===== 核心五函数 =====
def extract_subpage(path, key) -> SubPage: ...      # 提取子页 body + 重写主页链接
def png_to_base64(path) -> str: ...                  # PNG → data: URI
def inline_all_png(html, base_dir): ...              # 批量替换 <img src="*.png">
def rewrite_subpage_links(html) -> str: ...          # 主页 page_*.html → #page-*
def build_section_for_subpage(sub) -> str: ...       # 子页 body → <section>

def merge():
    # 1) 读主页 + N 子页
    # 2) 注入 extra CSS(.standalone-* 系列)
    # 3) 重写主页跨文件链接
    # 4) <body> 后注入 <a id="top"> + banner
    # 5) </main> 前插入 N 个子页 section
    # 6) inline_all_png 全文 PNG 内嵌
    # 7) 写出 + 验证

6.5 配套 PDF 生成(v1.2 已停用 · 2026-04-25)

本节已停用:用户最终明确"以后交付全部交付 HTML,不再交付 PDF"。 单 HTML 是终态交付物 — 决策树原画质 base64 内嵌、锚点跳转、零依赖,完全覆盖 PDF 所有场景。 读者若需打印,在浏览器中按 Ctrl+P 自行另存为 PDF — 生成方不再主动产出 PDF。 Chrome headless / playwright 命令仅作历史归档保留(失败模式 #11)。

6.6 验证清单(交付前必过)

  • 文件大小 < 25 MB(邮件附件可发)
  • 锚点跳转:点击主页任一 disease-card → 平滑滚到对应子页 section
  • 回退链:每个子页内 "↑ 回到主页顶部" 工作正常
  • PNG 内嵌:N+1 张 PNG 全部用 data:image/png;base64,... 内嵌(grep 计数)
  • 零外部依赖:断网双击打开,所有图、所有跳转、所有样式都正常
  • banner 提示:文件顶部"📦 单一独立 HTML 版"横幅可见
  • 悬浮目录导航(v1.3 Iron Law):右上角目录按钮可见,点击展开主报告 + 全部 N 子页全量目录(h1/h2 全提取),点击外部/Esc 关闭,@media print 隐藏
  • PDF 验证 — v1.2 不再交付 PDF,本项删除

6.7 跨疾病移植清单

配置项改动示例(呼吸科 ICU 真菌)
MAIN_HTML🟡 改report_resp_v??.html
SUB_PAGES🟡 改[("RICU_CAPA", ...), ("PCCM_CPA", ...), ...]
OUTPUT_HTML🟡 改report_resp_v??_standalone.html
extract_subpage() 中主页文件名正则🟡 改r'href="report_resp_v??\.html"'
五个核心函数(extract / inline / rewrite / build / merge)✅ 直接复用
extra CSS(.standalone-* 系列)✅ 直接复用
banner 文案🟡 改版本号即可
Chrome headless PDF 命令❌ v1.2 已停用不再交付 PDF

6.8 Iron Law(本阶段强制条款)

报告交付前必须生成单文件 HTML 版本(v1.2 更新 · 仅 HTML 交付):

  • 跨文件链接的"N HTML + M PNG"形态禁止直接交付给最终读者
  • 必须用 build_standalone.py 合并成单一 HTML(零外部依赖)
  • 不再生成 PDF(失败模式 #11 · 用户最终决策 2026-04-25)
  • 合并失败或 §6.6 验证清单未全过 → 不可声明"已交付"
  • 历史复现证据:
    • v2.5.3 初版双交付 HTML + PDF — 用户立即指出"以后交付全部交付 HTML,不再交付 PDF"
    • 单 HTML 已涵盖屏幕浏览/邮件附件/即时通讯/网盘分享/打印(浏览器 Ctrl+P)所有场景

版本历史

  • v1.3 (2026-04-25) · 新增悬浮目录导航 Iron Law(阶段 6.3 §E.5)— 单文件 HTML 必须含全量 TOC(主页 + 全部 N 子页 h1/h2),右上角圆形按钮 + 悬浮面板,点击外部/Esc 关闭,@media print 隐藏。build_standalone.py 新增 extract_headings() + build_floating_toc() 自动构建,血液科 v2.5.3 实测 92 条目自动提取。
  • v1.2 (2026-04-25) · PDF 永久停用(用户最终决策"以后交付全部交付 HTML,不再交付 PDF")。新增失败模式 #11(PDF 二次压缩失真 + 内容冗余)。Iron Law 简化为"必须生成单文件 HTML 版本"。读者打印需求 → 浏览器 Ctrl+P 自助。
  • v1.1 (2026-04-25) · 追加阶段 6:可分享交付物生成(原方案 单文件 HTML + 配套 PDF · 已被 v1.2 收敛为 HTML-only)。新增失败模式 #10。证据来源:
    • 血液科 v2.5.3 [build_standalone.py](D:/Vibe Coding Project/AI Square/血液科市场调研/output/build_standalone.py)
    • 交付物 [report_v25_standalone.html](D:/Vibe Coding Project/AI Square/血液科市场调研/output/report_v25_standalone.html) (9 MB)
  • v1.0 (2026-04-25) · 从血液科 v2.5 第 6 次迭代抽出。证据来源:
    • 主页 [report_v25.html](D:/Vibe Coding Project/AI Square/血液科市场调研/output/report_v25.html)
    • 6 子页 [page_alloHSCT.html](D:/Vibe Coding Project/AI Square/血液科市场调研/output/page_alloHSCT.html) 等
    • L1 ifi-market-sizing-skill v1.5 §5.3 HTML 报告完整性清单

Skill Presented by:YongQi, SimonSu, RuiYu, YingJi

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.