agentsclimarketplace

Decision tree with lp embedding

Skill EthanYoQ/Skill-hub/skills/08-writing-marketing/decision-tree-with-lp-embedding

Use when generating Mermaid clinical decision trees that must include Leverage Point (LP) annotations at specific stage nodes (not just text-only in summary box). Trigger on tasks like "决策树标 LP 切入点", "在流程图节点上 标注杠杆点", "决策树嵌入 LP", or any flowchart that has accompanying LP strategy. Library-agnostic — works for hematology IFI, respiratory ICU, oncology, cardiology, any disease where decision tree + leverage points must be visually integrated. Inherits from L0 market-sizing-mece-foundation §10 LP decision diagram spec. LP annotations sourced from `pubtator-entity-search.entity_search()` (drug-disease relations).From its SKILL.md

Install
npx -y skills add EthanYoQ/Skill-hub --skill decision-tree-with-lp-embedding

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.

SKILL.md

16.9 KB, ~7.1k tokens by cl100k_base, as published. Nobody here has run it

决策树 + LP 节点嵌入 Skill (L2 · 复用组件)

L2 工具组件:本 skill 提供"决策树 + LP 切入点"在 Mermaid 流程图中的节点级嵌入规范。 设计目标:让任何疾病领域的决策树流程图在节点级直接可见 LP 切入点,不再依赖单独的 LP 决策图。 上游依赖:market-sizing-mece-foundation (L0 §10 LP 决策图规范) + ifi-market-sizing-skill (L1)

v1.1 变更说明 (2026-04-25) · 新增规则 10 + 规则 11(主图禁嵌 LP / LP 图必须双分支)。 触发原因:血液科 v2.5 第 6 次迭代交付时主图嵌入 8 个 LP_BADGE,用户立即指出"主图(疾病分流总览)语义只承担疾病分流,加 LP 是双语义混淆"。同时旧版 LP 全景图所有 LP 连到线性高危/中高危瀑布,忽略非预防分支,违背 LP 应"双分支分流"的本质。本次新增 2 条 Iron Law 把这两类失败模式钉死。

一句话定义

把"决策树主干"与"LP 切入点 badge"用虚线连接 + stadium 节点 + classDef 配色的方式融合到一张 Mermaid 流程图,使读者一眼看到"哪个临床阶段对应哪个杠杆点 + 量化 Impact"。



核心规范(Iron Law · 不可违反)

规则 1:LP 必须以独立节点出现,不可混在业务节点 label 内

错误示例:

PROPH["<b>① 一级预防</b><br/>泊沙康唑 35%<br/>🏆 LP1 预防结构优化"]

LP 标签被业务正文稀释,视觉淹没,失去战略提示作用。

正确示例:

PROPH["<b>① 一级预防</b><br/>泊沙康唑 35% · 伏立 25%"]
LP1_BADGE(["<b>🏆 LP1 · Crown</b><br/>预防结构优化<br/>Impact 1,500-3,000/yr"])
PROPH -.-> LP1_BADGE

规则 2:LP 节点用 stadium 形状(圆角矩形)

LP_X_BADGE(["..."])
  • 与决策方块 [] 区分(避免读者误以为 LP 是流程节点)
  • 与判断菱形 {} 区分(LP 不是决策点)
  • stadium (["..."]) 的"奖章/徽章"语义明确

规则 3:LP 与业务节点用虚线 -.-> 连接

PROPH -.-> LP1_BADGE
  • 实线 --> 是流程进展(打断主流)
  • 虚线 -.-> 是"附加注释/战略提示"(不打断主流)
  • ELK 布局对虚线支持良好,会从主流向旁路偏移

规则 4:LP 配色用 lpcrown (金) + lpstd (红)

classDef lpcrown fill:#FEF3C7,stroke:#F59E0B,stroke-width:3.5px,color:#78350F,font-weight:bold
classDef lpstd fill:#FEE2E2,stroke:#DC2626,stroke-width:2.5px,color:#7F1D1D,font-weight:bold
class LP1_BADGE lpcrown
class LP2_BADGE,LP3_BADGE,LP4_BADGE lpstd
  • 金色 = Crown LP(战略最重要、不可被取代)
  • 红色 = Standard LP(常规 LP,体现紧急程度)
  • 边框粗细对比(3.5px vs 2.5px)凸显 Crown 优先级

规则 5:每个 LP_BADGE 必含三要素

<b>{Icon} LP{N} · {Tier 标签}</b>
{LP 名称简化版}
Impact {low}-{high}/yr · {关键缺口数据}

示例:

<b>🏆 LP1 · Crown</b>
预防启用率 50% → 70%
Impact 1,500-3,000/yr · 指南-RWE 20pp 缺口

规则 6:每张子页决策树嵌入 2-3 个 LP(主页主图嵌 6-8 个)

图类型LP 数量选择标准
子页(独立疾病决策树)2-3 个TOP Impact + Crown 1 个 + 业务节点匹配度
主页主图(疾病分流总览)0 个(规则 10 严禁)主图只承担疾病分流语义,LP 单独成 lp-panorama.mmd

子页 LP 数量过多 → 视觉杂乱,失去战略焦点;过少 → 缺少行动指引。TOP 3 是最佳平衡

规则 7:LP_BADGE 命名约定 = LP{N}_BADGE

  • LP1_BADGE / LP2_BADGE / .../ LP8_BADGE
  • 不用 LP_PREVENTION / LP_STRUCTURE 等语义命名 — 跨疾病不可移植
  • 数字编号 + _BADGE 后缀 = 通用、可复用、跨子图一致

规则 8:LP 必须连接到"动作发生"节点而非"风险评估"节点

✅ 正确连接示例:

  • LP1 (预防启用率) → PROPH (一级预防药物节点) 或 RISK (风险分层判断,准备启用预防)
  • LP2 (长程口服) → A_MAINT (维持期节点)
  • LP3 (mNGS 普及) → B_DD (诊断驱动节点)
  • LP4 (CAR-T 共识) → PROPHA_BREAK (突破性 IFD 节点)

❌ 错误连接:

  • 不要连接到 HEAD(顶层患者池信息节点)
  • 不要连接到 END_*(终止节点)— LP 是行动机会,不是结局
  • 不要连接到纯展示节点(SUMMARY、统计框)

规则 9:-.-> 不计入 linkStyle 主路径着色

主路径着色(色彩编码业务流):

linkStyle 0 stroke:#1E8449,stroke-width:3.5px
linkStyle 1 stroke:#CB4335,stroke-width:3.5px,stroke-dasharray: 5 3

LP 虚线由 classDef 控制视觉,不要再用 linkStyle 覆盖,避免冲突。

规则 10:主图(disease-flow-map)不嵌入 LP_BADGE

主图(疾病分流总览图 / 市场分级图 / 病程总览图)的语义是"疾病/病种之间的分流",一图一主题。叠加 LP 会让视觉同时承担 2 个语义(疾病分流 + 杠杆点),读者无法分辨"这条线是病程进展还是 LP 标注"。

LP 嵌入只适用于以下两类图:

  1. LP 全景决策图(独立的战略图,所有 LP 集中在一张图)
  2. 各子页决策树(节点级标注 TOP 3 LP,聚焦单一疾病的可执行机会)

错误示例(血液科 v2.5 第 6 次迭代):

%% disease-flow-map.mmd 主图
PATIENT_POOL --> RISK_STRATIFY --> AML_T1 & MDS_T1 & ALL_T1 & LYM_T2 & MM_T2 & CML_T3
LP1_BADGE -.-> AML_T1
LP2_BADGE -.-> MDS_T1
LP3_BADGE -.-> ALL_T1
LP4_BADGE -.-> LYM_T2
LP5_BADGE -.-> MM_T2
LP6_BADGE -.-> CML_T3
LP7_BADGE -.-> AML_T1
LP8_BADGE -.-> MDS_T1
%% 8 个 LP_BADGE 全连到 6 个 disease tier 节点 → 视觉双语义混淆

正确示例:

%% disease-flow-map.mmd 主图(无 LP)
PATIENT_POOL --> RISK_STRATIFY --> AML_T1 & MDS_T1 & ALL_T1 & LYM_T2 & MM_T2 & CML_T3
%% 主图只画"疾病池 → 风险分层 → 6 个 disease tier → 总览",LP 单独成图

LP 全景图独立成 lp-panorama.mmd,子页决策树各嵌 TOP 3 LP — 主图始终保持纯净的疾病分流语义。

规则 11:LP 决策图必须双分支(或多分支)

LP 全景决策图的入口必须显式标出双分支或多分支分流(例:预防分支 ~50% / 非预防分支 ~50%)。每个 LP_BADGE 必须连接到"具体分支的具体动作节点",不能只连到入口或汇总节点

验收标准:LP 全景图必须能让读者一眼判断"该 LP 影响哪个分支的多少患者"。

错误示例(旧 v2.1 LP 全景图):

%% 所有 LP 连到"高危/中高危/低中危"线性瀑布,忽略非预防分支
ENTRY --> HIGH_RISK --> MID_HIGH --> LOW_MID --> END
LP1_BADGE -.-> HIGH_RISK
LP2_BADGE -.-> MID_HIGH
LP3_BADGE -.-> LOW_MID
%% 假设了 100% 启用预防 — 实际仅 ~50% 启用,忽略另外 ~50% 非预防分支的 LP 机会

正确示例:

ENTRY{"<b>风险分层后</b>"}
ENTRY -->|"~50% 启用预防"| PROPH_BRANCH
ENTRY -->|"~50% 不启用预防"| NO_PROPH_BRANCH
PROPH_BRANCH --> A_INDUC --> A_BREAK --> A_MAINT
NO_PROPH_BRANCH --> B_DD --> B_EMP_TX --> B_TARGET_TX

%% LP1 横跨双分支决策点 — 影响"是否启用预防"的判断
LP1_BADGE -.-> ENTRY
%% LP3 落在非预防分支的诊断节点
LP3_BADGE -.-> B_DD
%% LP8 落在非预防分支的经验治疗节点
LP8_BADGE -.-> B_EMP_TX
%% LP2 落在预防分支的维持节点
LP2_BADGE -.-> A_MAINT

每个 LP 必须能被读者读出"作用在哪个分支 · 影响多少患者占比",而不是被吸进一条单线瀑布里。


执行流程(决策树作者 SOP)

Step 1: 完成主决策树骨架(HEAD → RISK → BRANCH_A/B → 阶段节点 → END)
Step 2: 在 SUMMARY 节点列出 TOP 3 LP 文字版(战略层确定 LP 内容)
Step 3: 在 SUMMARY 之后,新增 LP 嵌入区块:
        - LP_BADGE 节点定义(2-3 个,Crown 优先)
        - 每个 LP 用 -.-> 连接到主流的"动作节点"
        - classDef lpcrown / lpstd 定义
        - class LP*_BADGE 应用 classDef
Step 4: 渲染 PNG (mmdc -w 5500 --scale 2 -b white -p puppeteer-config.json)
        验证:LP_BADGE 视觉醒目 + 虚线偏移不打断主流 + Crown 金色突出
Step 5: 文件大小 ≥ 750 KB,短边 ≥ 3000 px,否则重渲
        回退方案:先尝试 `-w 6000`;若 ELK 布局混乱,改 `layout: dagre` 重渲;
        仍失败则检查 puppeteer-config.json 中 chromium 路径是否正确。

完整模板(直接复制粘贴 · 适配任何疾病)

---
config:
  layout: elk
  flowchart:
    nodeSpacing: 55
    rankSpacing: 75
    curve: basis
    padding: 18
  theme: base
  themeVariables:
    fontSize: "13px"
    fontFamily: "Microsoft YaHei, PingFang SC, Arial"
---
flowchart TB

%% === 主决策树骨架 (省略, 此处保留疾病专属业务流程) ===
HEAD["<b>{疾病名}</b><br/>年量 + 市场份额"]
HEAD --> RISK{"<b>风险分层</b>"}
RISK -->|"X% 启用预防"| PROPH
RISK -->|"X% 不启用"| NO_PROPH
PROPH --> ... --> A_END["缓解 X%"]
NO_PROPH --> ... --> B_END["缓解 X%"]
A_END & B_END --> SUMMARY["<b>🎯 Market 汇总</b><br/>(LP 战略切入点文字版)"]

%% === LP 节点级切入点标注 (本 skill 强制规范) ===
LP1_BADGE(["<b>🏆 LP1 · Crown</b><br/>{LP 名称}<br/>Impact {low}-{high}/yr"])
LP2_BADGE(["<b>{Icon} LP2</b><br/>{LP 名称}<br/>Impact {low}-{high}/yr"])
LP3_BADGE(["<b>{Icon} LP3</b><br/>{LP 名称}<br/>Impact {low}-{high}/yr"])

PROPH -.-> LP1_BADGE
A_MAINT -.-> LP2_BADGE
B_DD -.-> LP3_BADGE

classDef lpcrown fill:#FEF3C7,stroke:#F59E0B,stroke-width:3.5px,color:#78350F,font-weight:bold
classDef lpstd fill:#FEE2E2,stroke:#DC2626,stroke-width:2.5px,color:#7F1D1D,font-weight:bold
class LP1_BADGE lpcrown
class LP2_BADGE,LP3_BADGE lpstd

主图模板(无 LP) vs LP 全景图模板(双分支) · v1.1 新增对比

关键差异:主图与 LP 全景图是两张独立的图,不可合并。下面给出两份最简骨架,用于直接复制粘贴。

A. 主图模板(disease-flow-map · 无 LP_BADGE)

主图只承担"疾病/病种之间的分流"语义,严禁嵌入任何 LP_BADGE(规则 10)。

---
config:
  layout: elk
  flowchart: { nodeSpacing: 55, rankSpacing: 75, curve: basis }
---
flowchart TB

POOL["<b>{疾病大类}患者池</b><br/>年量 {N} 人 · 占血液恶性肿瘤 {pct}%"]
POOL --> RISK{"<b>风险分层</b><br/>高危 / 中高危 / 低中危"}

RISK -->|"高危 ~{pct}%"| T1
RISK -->|"中高危 ~{pct}%"| T2
RISK -->|"低中危 ~{pct}%"| T3

T1["<b>Tier 1 · 急性高危</b><br/>AML / MDS / ALL"]
T2["<b>Tier 2 · 中危</b><br/>淋巴瘤 / 多发性骨髓瘤"]
T3["<b>Tier 3 · 低危</b><br/>CML / 慢性 NHL"]

T1 & T2 & T3 --> SUMMARY["<b>总览</b><br/>疾病分流完成 · LP 详见 lp-panorama.mmd"]

%% 严禁在此嵌入 LP_BADGE — 见规则 10

B. LP 全景图模板(lp-panorama.mmd · 双分支强制)

LP 图入口必须显式标出双分支或多分支分流(规则 11),每个 LP 必须连到具体分支的具体动作节点。

---
config:
  layout: elk
  flowchart: { nodeSpacing: 55, rankSpacing: 75, curve: basis }
---
flowchart TB

ENTRY{"<b>风险分层后入口</b><br/>(双分支必现)"}

ENTRY -->|"~50% 启用预防"| PROPH_BR["<b>预防分支</b><br/>泊沙康唑 / 伏立康唑"]
ENTRY -->|"~50% 不启用预防"| NO_PROPH_BR["<b>非预防分支</b><br/>等待感染信号"]

PROPH_BR --> A_INDUC["诱导期"] --> A_BREAK["突破性 IFD"] --> A_MAINT["维持期"]
NO_PROPH_BR --> B_DD["诊断驱动 mNGS / GM"] --> B_EMP["经验治疗"] --> B_TARGET["靶向治疗"]

A_MAINT & B_TARGET --> END["缓解 / 总览"]

%% LP_BADGE 节点定义(8 个示例)
LP1_BADGE(["<b>🏆 LP1 · Crown</b><br/>预防启用率 50%→70%<br/>Impact 1500-3000/yr"])
LP2_BADGE(["<b>🔧 LP2</b><br/>长程口服维持<br/>Impact 800-1500/yr"])
LP3_BADGE(["<b>🔬 LP3</b><br/>mNGS 普及<br/>Impact 600-1200/yr"])
LP8_BADGE(["<b>💊 LP8</b><br/>经验治疗规范化<br/>Impact 500-1000/yr"])

%% LP 必须连到具体分支的具体动作节点 — 不可只连 ENTRY 或 END
LP1_BADGE -.-> ENTRY
LP2_BADGE -.-> A_MAINT
LP3_BADGE -.-> B_DD
LP8_BADGE -.-> B_EMP

classDef lpcrown fill:#FEF3C7,stroke:#F59E0B,stroke-width:3.5px,color:#78350F,font-weight:bold
classDef lpstd fill:#FEE2E2,stroke:#DC2626,stroke-width:2.5px,color:#7F1D1D,font-weight:bold
class LP1_BADGE lpcrown
class LP2_BADGE,LP3_BADGE,LP8_BADGE lpstd

对比要点

维度主图(disease-flow-map)LP 全景图(lp-panorama)
单一语义✅ 仅疾病分流✅ 仅 LP 战略
入口结构风险分层(3 个 Tier)双分支强制(预防 ~50% / 非预防 ~50%)
LP_BADGE 数量0(严禁)6-8 个(全 LP 集中)
LP 连接策略不适用连到具体分支的动作节点,非入口/汇总
文件命名disease-flow-map.mmdlp-panorama.mmd

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

检查项适用方式
LP_BADGE 节点定义✅ 直接复用 — 改 LP 名称 / Icon / Impact 数字
-.-> 虚线连接✅ 直接复用 — 改连接到呼吸科决策树的对应节点(如 RICU_PROPH / CAPA_DD)
classDef lpcrown / lpstd✅ 直接复用 — 配色不变
TOP 3 LP 选择🟡 重新选 — 呼吸科 ICU 的 Crown 通常是"RICU vs 综合 ICU MECE"或"CAPA 共识"
LP 数量✅ 子页 2-3 / 主图 6-8 不变
渲染参数-w 5500 --scale 2 不变

失败模式速查

#失败模式根因修复
1LP 标签混在业务节点 label 内旧版用 prefix "🏆 LP1 ..."强制独立 LP_BADGE 节点
2LP 用决策方块而非 stadiummermaid 语法不熟(["..."]) 是奖章语义
3LP 用实线连接打断主流--> 误用强制 -.-> 虚线
4LP 配色与业务节点同色缺 classDef强制 lpcrown(金)+ lpstd(红)
5LP 缺 Impact 数字文字化但无量化强制 Impact low-high/yr
6子页嵌 5+ LP 视觉杂乱战略不聚焦强制 TOP 3 上限
7LP 连到 SUMMARY/END 节点选了"结果"而非"行动"必须连"动作发生"节点
8LP_BADGE 命名用语义(LP_STRUCTURE)跨疾病不可移植强制 LP{N}_BADGE
9决策树仅 SUMMARY 文字列 LP节点级遗漏(血液科 v2.5 反复出现)本 skill 强制节点级嵌入
10主图嵌入 LP_BADGE(疾病分流图带 LP)误把主图当 LP 全景图 · 双语义混淆主图严禁嵌 LP · LP 单独成图(规则 10)
11LP 全景图所有 LP 连到单分支线性瀑布假设 100% 启用预防,忽略非预防分支LP 图入口必须双分支 · LP 必须连具体分支动作节点(规则 11)

验收标准(交付前自检)

  • 主图 .mmd 不含 LP_BADGE(规则 10 · v1.1 新增)
  • LP 全景图入口显式标双分支或多分支(规则 11 · v1.1 新增)
  • LP 全景图所有 LP 连到具体分支的具体动作节点,非入口/汇总(规则 11 · v1.1 新增)
  • 每张子页 .mmd 含 2-3 个 LP{N}_BADGE 节点定义
  • LP 全景图 .mmd 含 6-8 个 LP_BADGE,按 Tier 连接对应分支动作节点
  • 每个 LP_BADGE 用 stadium (["..."]) 形状
  • 每个 LP_BADGE 的连接用 -.-> 虚线
  • 每个 LP_BADGE 含 Icon · 名称 · Impact 数字 三要素
  • classDef lpcrown / lpstd 已定义
  • Crown LP 用 lpcrown(金边)· 其他用 lpstd(红边)
  • LP 连到"动作节点"而非 SUMMARY/END
  • 渲染 PNG ≥ 750 KB,短边 ≥ 3000 px
  • 视觉抽查:LP_BADGE 醒目度 > 业务节点

版本历史

  • v1.1 (2026-04-25) · 新增规则 10 + 规则 11(主图禁嵌 LP / LP 图必须双分支)。

    • 触发原因:血液科 v2.5 主图嵌 8 个 LP_BADGE 被用户当场指出"主图不应承担双语义"
    • 旧 v2.1 LP 全景图所有 LP 连到线性高危/中高危瀑布,忽略非预防分支(~50% 患者)
    • 新增内容:规则 10 / 规则 11 + 失败模式 #10 / #11 + "主图模板 vs LP 全景图模板"对比 + 验收清单 3 项
  • v1.0 (2026-04-25) · 从血液科 v2.5 第 6 次迭代抽出。Iron Law 来源:

    • 失败模式 #28(L1 ifi-market-sizing-skill)— LP 决策图 + 决策树节点级 LP 标注 5 次复现
    • 用户反馈"以前试图做过约束,目前问题一直复现"
    • 解决方案:抽 L2 通用 skill + L1 强约束清单 + L3 编排 workflow

Skill Presented by:YongQi, SimonSu, RuiYu, YingJi

What ships with it: 1 file

1003 B alongside SKILL.md

evals/

Keep looking

Skills are one crate of 325,949. 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.