Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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 报告主页+子页", "市场调研 HTM
.claude/skills/ethanyoq-disease-market-sizing-html-template/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 926% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 293% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 324% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 352% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 285% | 0% |
> 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 系统。
调用时机:
不调用的场景:
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}
css/* ⭐⭐⭐ 顶级(金色 — 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-tag | tier 徽章 | 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-callout | LP 高亮区块 | display flex, align-items flex-start, padding 12pt 16pt | | .lp-crown | Crown LP | background #FEF3C7, border 3pt solid var(--gold) | | .lp-standard | Standard LP | background #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-badge | PMID 文献徽章 | inline-block, font-size 9pt, background #e0f2fe, color #0369a1 |
[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 个)
- 署名[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]
- 返回主页链
- 署名flowchart_main_v??.png(主图)flowchart_lp.png LP 全景决策图(Iron Law · L1 失败模式 #28 历史复现)flowchart_<sub>_v??.png| 模板部分 | 移植方式 | |---------|---------| | 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 决策图 PNG | skill 无强约束清单 | 本 skill Iron Law §7.0 | | 2 | 子页 hero 全部用同色 | 无 tier 视觉分级 | 强制 t1/t2/t3 三档渐变 | | 3 | 子页缺 sticky topnav | 长子页用户找不到锚 | 强制 4 锚点 sticky topnav | | 4 | disease-card 缺 tier-tag | 主页跳转视觉无层级 | 强制 tier-tag + 颜色对应 hero 渐变 | | 5 | lp-callout 全部红色 | Crown 与普通无区分 | 强制 1 个 lp-crown(金)+ 其他 lp-standard(红) | | 6 | 子页 footer 缺返回主页链 | 用户卡死子页 | 强制 footer back 链 | | 7 | 跨页面 CSS 不一致 | 子页独立写 CSS | 强制全部页用同一套 :root 变量 | | 8 | LP 排序表用普通 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 即终态)| | 11 | PDF 决策树压缩失真 / 重复劳动 | Chrome headless PDF 把 base64 PNG 二次压缩,且 PDF 与单 HTML 内容完全冗余,维护成本翻倍 | v1.2 决策(2026-04-25):PDF 不再交付。单 HTML(零依赖+决策树原画质+锚点跳转)即终态交付物,涵盖屏幕浏览、邮件附件、即时通讯、网盘分享所有场景 |
> 场景定义:多页 HTML 报告完成后,需要交付给最终读者(同事 / 客户 / 高管)的"零依赖"形态。 > v2.5.3 实战经验:用户电脑可能没有任何 AI 软件,要"双击就能读 / 邮件附件直接发 / 网盘/即时通讯一键分享"。 > > ⚠️ v1.2 重大决策(2026-04-25 用户最终明确):以后交付全部交付 HTML,不再交付 PDF。 > 单 HTML 已是终态交付物 — 决策树原画质 base64、锚点跳转、零依赖、双击可读、邮件附件可发,完全覆盖 PDF 所有场景。PDF 反而引入二次压缩失真、内容冗余、维护翻倍问题。 > 如读者明确要打印,可在浏览器中 Ctrl+P 自行另存为 PDF — 生成方不再主动产出 PDF。
用户出现以下任一意图,立即进入阶段 6:
| 交付物形态 | 文件 | 大小 | 用户体验 | 推荐 | |----------|------|------|---------|------| | 单 HTML(base64 内嵌) | report_v??_standalone.html | ~9 MB | 双击浏览器打开 · 锚点跳转 · 零依赖 · 决策树原画质 | ✅ 唯一交付物 | | ~~配套 PDF~~ | ~~report_v??_standalone.pdf~~ | — | — | ❌ v1.2 停止交付(失败模式 #11)| | ZIP 打包(原生 7 HTML + 8 PNG) | report.zip | ~10 MB | 解压后打开主页 · 跨文件链接易断 | ❌ 不推荐(失败模式 #10) |
为什么单 HTML 即终态:
python# 正则匹配 <img src="*.png">,替换为 data: URI data_uri = f"data:image/png;base64,{base64.b64encode(png_bytes).decode('ascii')}"
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"(防止多子页锚点冲突)html<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>
html<a id="top"></a> <!-- 锚点 --> <div class="standalone-banner"> <!-- 横幅说明 --> <strong>📦 单一独立 HTML 版</strong> · 已合并主页 + 全部 N 个子页 + 全部 M 张 PNG · 零外部依赖 · 双击浏览器即可阅读 </div>
每个子页 section 内置"↑ 回到主页顶部"返回链。
> Iron Law:单文件 HTML 必须含全量悬浮 TOC(主页 + 全部 N 子页所有 h1/h2),不只是主页章节。
用户体验目标:
HTML 结构:
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,零依赖):
#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> 并构建树prefix_id="page-{key}-" 自动加前缀,不会与主页冲突Iron Law(v1.3.1 修复 · 2026-04-25 用户反馈):
page-* 前缀 anchor:extract_headings(main_html) 在合并后的 HTML 上调用会同时抓到主页和已合并的子页 h1/h2(id 已带 page-{key}- 前缀)→ 必须 if anchor.startswith("page-"): continue 过滤,否则主报告分组会出现 N 套重复且无归属(图中症状:连续 6 套"双分支决策树/Market 测算/TOP 3 LP/关键证据"无子页归属)backdrop-filter: blur(2px) 会让浏览器对整个 viewport 强制重排重绘 → 鼠标延迟高、卡顿。改用 background: rgba(15,23,42,0.35) 半透明纯遮罩(GPU 友好)@keyframes 而非 transition:opacity transition 130ms · panel 用 animation: ftoc-pop 0.14s ease-out,加 will-change: opacity/transform 提示合成层requestAnimationFrame 而非 setTimeout(10):确保 hidden 切换后下一帧才加 .show class(避免动画跳过)血液科 v2.5.3 实测:92 个目录条目自动提取(主页 30+ + 6 子页各 ~10),HTML 体积 +0.02 MB(可忽略)。
css.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 失去意义且会污染滚动。
完整参考实现:<output_dir>/build_standalone.py(血液科 v2.5.3 验证可用)
pythonfrom 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) 写出 + 验证
> ❌ 本节已停用:用户最终明确"以后交付全部交付 HTML,不再交付 PDF"。 > 单 HTML 是终态交付物 — 决策树原画质 base64 内嵌、锚点跳转、零依赖,完全覆盖 PDF 所有场景。 > 读者若需打印,在浏览器中按 Ctrl+P 自行另存为 PDF — 生成方不再主动产出 PDF。 > Chrome headless / playwright 命令仅作历史归档保留(失败模式 #11)。
data:image/png;base64,... 内嵌(grep 计数)| 配置项 | 改动 | 示例(呼吸科 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 |
报告交付前必须生成单文件 HTML 版本(v1.2 更新 · 仅 HTML 交付):
build_standalone.py 合并成单一 HTML(零外部依赖)build_standalone.py 新增 extract_headings() + build_floating_toc() 自动构建,血液科 v2.5.3 实测 92 条目自动提取。| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 23,601 | 23,491 | -0% | 1 | 1 | 0% | 6,278 | 14,438 | +130% | 0 | 0 | — |
case-02 | fail→fail | 24,233 | 23,251 | -4% | 1 | 1 | 0% | 6,273 | 14,433 | +130% | 0 | 0 | — |
case-03 | pass→pass | 21,647 | 23,639 | +9% | 1 | 1 | 0% | 5,344 | 14,351 | +169% | 0 | 0 | — |
case-04 | pass→fail | 15,282 | 18,557 | +21% | 1 | 1 | 0% | 2,908 | 11,811 | +306% | 0 | 0 | — |
case-05 | pass→pass | 33,608 | 16,506 | -51% | 1 | 1 | 0% | 3,780 | 12,056 | +219% | 0 | 0 | — |
case-06 | fail→pass | 37,598 | 22,947 | -39% | 1 | 1 | 0% | 1,400 | 14,358 | +926% | 0 | 0 | — |
case-07 | fail→pass | 14,168 | 13,296 | -6% | 1 | 1 | 0% | 2,879 | 11,315 | +293% | 0 | 0 | — |
case-08 | pass→pass | 11,391 | 8,943 | -21% | 1 | 1 | 0% | 2,470 | 10,042 | +307% | 0 | 0 | — |
case-09 | pass→pass | 13,989 | 13,103 | -6% | 1 | 1 | 0% | 3,292 | 11,319 | +244% | 0 | 0 | — |
case-10 | fail→pass | 12,020 | 11,106 | -8% | 1 | 1 | 0% | 2,527 | 10,708 | +324% | 0 | 0 | — |
case-11 | fail→pass | 9,158 | 3,344 | -63% | 1 | 1 | 0% | 1,964 | 8,887 | +352% | 0 | 0 | — |
case-12 | fail→pass | 10,783 | 4,470 | -59% | 1 | 1 | 0% | 2,390 | 9,210 | +285% | 0 | 0 | — |
case-13 | fail→pass | 17,094 | 14,664 | -14% | 1 | 1 | 0% | 3,645 | 11,447 | +214% | 0 | 0 | — |
case-14 | fail→fail | 10,060 | 3,928 | -61% | 1 | 1 | 0% | 1,716 | 8,938 | +421% | 0 | 0 | — |
case-15 | fail→fail | 8,602 | 4,602 | -47% | 1 | 1 | 0% | 1,772 | 9,172 | +418% | 0 | 0 | — |
case-16 | fail→pass | 7,994 | 7,767 | -3% | 1 | 1 | 0% | 1,683 | 9,863 | +486% | 0 | 0 | — |
case-17 | fail→pass | 9,707 | 4,787 | -51% | 1 | 1 | 0% | 1,944 | 9,137 | +370% | 0 | 0 | — |
case-18 | fail→pass | 8,171 | 7,822 | -4% | 1 | 1 | 0% | 1,673 | 9,973 | +496% | 0 | 0 | — |
case-19 | fail→pass | 8,051 | 4,099 | -49% | 1 | 1 | 0% | 1,920 | 9,062 | +372% | 0 | 0 | — |
case-20 | fail→pass | 13,648 | 9,499 | -30% | 1 | 1 | 0% | 2,730 | 9,940 | +264% | 0 | 0 | — |
case-21 | fail→fail | 6,184 | 3,008 | -51% | 1 | 1 | 0% | 1,175 | 8,744 | +644% | 0 | 0 | — |
case-22 | fail→pass | 5,462 | 3,032 | -44% | 1 | 1 | 0% | 1,104 | 8,802 | +697% | 0 | 0 | — |
case-23 | fail→pass | 13,369 | 8,947 | -33% | 1 | 1 | 0% | 2,636 | 9,957 | +278% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 22 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +52 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.