# 案例检索报告（中国大陆地区法院案例检索）Plus

> 案例检索报告（中国大陆地区法院案例检索）Plus

- Skill: `cslawyer1985/plus-6` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cslawyer1985/plus-6`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cslawyer1985/plus-6/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: cslawyer1985 (https://skillmd.com/u/cslawyer1985)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cslawyer1985/plus-6

---


# 案例检索报告（中国大陆地区法院案例检索）Plus

> **v3.8.0** — 检索提速优化（不影响检索质量）：
> ① **默认四省市检索改为单轮全国检索 + 本地按地域归类**（原"分4次串行检索"请求量降为 1/4，语义检索仍返回关联度最高的案例，质量不变）；用户明确要求分省精确过滤时仍走 `xzqh_p` 精确模式。
> ② **`rewrite_flag` 智能设置**：用户已提供明确案由 + 核心争议焦点（结构化关键词）时，设 `rewrite_flag: false` 跳过查询改写往返；用户仅给模糊需求时仍保持 `true`。
> ③ **报告生成时详情接口改为并行批量调用**（原说明为串行），权威案例优先、普通案例降级用 `content`，在保证重点案例深度的同时缩短耗时、降低限流风险。
> ④ **支持用户预声明批次上限**：首轮回显时用户可一次性指定"共检索 N 批"，减少逐轮 `AskUserQuestion` 往返（仍保留每批后确认与随时叫停）。
> ⑤ 继承 v3.7.3 全部修复（5.0 非阻塞回显、引用规范、批次来源列）。

> **v3.8.1** — 一致性修正（不影响检索质量）：
> ① 修正默认地域行为矛盾：兜底规则与"四省市兜底"已并入 v3.8.0 默认全国单轮检索模式，删除"默认按四省市分别检索"的倒退表述。
> ② 修正 `ALL_CASES` 结构矛盾：移除已废除的 `v`（裁判结果摘要）持久化字段，明确摘要与文书在第五步按需提取，与第三步"无需额外 `v` 字段"及 v3.7 精神一致。
> ③ 修正地域归类字段不一致：统一标注归类依据为返回字段 `court` 或 `fayuan`（两者等价），消除"按 `court` 字段"与工具参考"或"表述的歧义。
> ④ 修正 DOCX 转换运行时：转换脚本改用托管 Node 绝对路径并加 npm 隔离；龚家勇律师已于 2026-07-10 明确授权将报告/`.docx` 保存至桌面，故 DOCX 默认输出至 `~/Desktop`（仍保留运行时隔离，裸 `node` 命令禁用）。

> **v3.9.0** — 新增「特定律师 + 特定律所代理」限定检索模式：
> ① 在第一步/第二步的参数收集中新增第 4 个维度「代理限定」，支持用户指定"某律师事务所某律师代理"的检索范围。
> ② 当用户指定特定律师 + 特定律所时，检索结果**仅输出该律师在该律所执业期间代理（担任诉讼代理人）的案件 / 裁判文书**，严格过滤无关内容；华宇元典检索接口无直接的律师/律所过滤字段，故采用"query 语义偏置 + 返回结果二次内容过滤"双重机制实现。
> ③ 过滤判定标准：裁判文书正文（含「当事人基本情况」「委托代理人」等段落）中**同时出现该律师姓名与该律所全称**，且二者处于同一方当事人的诉讼代理人语境（至少在"代理人/委托代理人"字段共现）；仅出现姓名或仅出现律所名、或二者分属不同当事人/无代理关系的，一律剔除。
> ④ widget 与《案例检索报告》顶部以醒目方式标注"限定：XX律师事务所 XX律师代理"，且每案在案例详细分析中标注「代理律师/律所」字段，便于复核检索范围。

> **v3.9.1** — 严格模式律所名称模糊匹配（在不放宽硬条件的前提下减少漏检）：
> ① 严格模式下，除律所全称精确匹配外，WB 基于 `agent_firm` 自动派生「律所名称集合」（去后缀核心名、去行政区划、常用简称如"XX所/XX律所/XX律师"等），任一形态命中即视为满足"律所出现"条件。
> ② 模糊匹配**仅放宽"律所名称形态"**，**不放宽**"同一代理关系语境"与"律师姓名共现"两项硬条件——仍须律师姓名与该律所任一名称形态共现于同一条"委托代理人/代理人"表述，方予保留。
> ③ 同步修正 v3.9.0 ③ 的严苛措辞：原"同时出现该律师姓名与该律所全称"修订为"出现该律师姓名且出现该律所全称或其派生简称/别称"，与第三步「律所名称模糊匹配」规则一致。

> **v3.10.0** — 调整「代理限定」的呈现范围（保留检索过滤能力）：
> ① **保留**「按特定律师/律所过滤检索」的完整能力——第一步/第二步仍收集「代理限定」维度、第三步仍执行 query 语义偏置 + 二次内容过滤（含律所名称模糊匹配、宽松模式、过滤后数量提示）及 `agent_lawyer` / `agent_firm` 解析；回显确认与 widget 仍标注限定范围，便于复核。
> ② **仅移除**《案例检索报告》中的代理限定标注：删除报告头部「代理限定」行、选定案例清单「代理律师/律所」列、案例详细分析「代理律师/律所」字段。报告回归纯主题维度呈现，但检索过滤行为不受影响。

> **v3.10.1** — 补充「代理限定」实务警示（不影响检索过滤能力）：
> ① 基于 2026-08-03 以"龚家勇+浙江金道律师事务所"实测，新增代理限定模式的前提与局限说明：`case_vector_search` 为语义向量检索（按主题相似度排序而非人名精确索引），且华宇元典精选案例库大量文书对委托代理人作匿名化（XXX、某某、金某某等），故该模式难以稳定召回特定律师代理案件。
> ② 明确处置规则：当用户指定"某律师+某律所代理"且连续多轮（建议≥3批、累计≥30份候选）二次过滤后 M=0 时，应如实报告"该库无法稳定检索到目标律师代理案件"并说明机制性原因，建议改用北大法宝、企查查、威科先行等具备律师代理案件索引的库或由用户提供具体案号/文书核验，不得编造或生成空报告。检索过滤逻辑本身不受影响。

> **v3.11.0** — 检索提速优化（不影响检索质量，延续 v3.8.0 思路，进一步压降请求量与交互往返）：
> ① **首轮批量返回（替代"每批固定 5 个 + 每批都问"）**：默认 `return_num` 由固定 5 上调为「首轮批量值」——全国模式 15、精确省/市模式 10、代理限定模式 15（均远低于工具默认 45，仍属精确可控）；一次检索即返回足够候选，渲染单个 widget 后仅用一次 `AskUserQuestion` 决策。将原"多批×5 + 多轮交互"压缩为"1–2 次大返回 + 1 次交互"，语义排序与候选质量不变（候选更多反而更易挑优）。用户仍可在决策题中口头要求"下一批 N 个"继续补检。
> ② **详情接口流水线化（pipelining）**：在渲染每批 widget 的同一 turn 内，并行预取该批**权威案例**的完整详情 `yuandian_rh_case_details`（已知 `ah`/`case_id`，无新增检索词）；将详情获取从"第五步集中"前移到"检索阶段并行"，使报告生成阶段无需再等待详情请求。质量不变（仍获取完整文书）；用户若在 5.0 回显中"去掉第X号"，仅浪费极少预取量，可忽略。
> ③ **批次上限预声明设为默认推荐**：第一步回显中主动建议用户一次性声明批次上限（如"建议共检索 2–3 批"），并将"批次计划"作为首轮交互的一部分，减少逐批 `AskUserQuestion` 往返（联动 v3.8.0 机制）。
> ④ 普通案例第五步直接复用第三步已提取的 `content` 与裁判结果摘要，**禁止在报告阶段重复调用 `case_vector_search`**，避免冗余语义检索往返。
> ⑤ 继承 v3.10.1 全部能力（代理限定模式及其局限警示等）。

## 前置说明（必须首先告知用户）

**在开始使用前，请务必确认：**

> ⚠️ 本技能依赖「华宇元典法律数据」MCP 连接器。
> 请先在 **WorkBuddy → 专家 → 连接器** 中，手动连接「华宇元典法律数据」MCP，连接成功后再使用本技能。
> 如未连接，本技能无法正常运行。

---

## 使用步骤

### 第一步 + 第二步（参数收集）：使用 AskUserQuestion 以多选题方式询问用户

**本技能强制使用 `AskUserQuestion` 工具，以「多选题 + 自由文本补充」的方式，一次性向用户收集四个维度的检索参数（地域、时间段、关键词/争议焦点、代理限定）：**

1. **检索范围（地域）** — 多选题（`multiSelect: true`）
2. **检索时间段** — 单选题（`multiSelect: false`，并提供自由文本框供用户填写自定义时间段）
3. **检索关键词 / 争议焦点** — 多选题（`multiSelect: true`，并提供自由文本框供用户补充案由、核心争议焦点、具体关键词、当事人类型等）

**调用方式：** WB 在正式检索前，调用一次 `AskUserQuestion`，`questions` 数组中放入以下四个问题。

**问题构造规范：**

#### 问题 1：检索范围（header: "检索范围"，multiSelect: true）

选项（label 为简洁短词，description 为说明）：

- **label: "北京市"** — 检索北京市各级法院案例
- **label: "上海市"** — 检索上海市各级法院案例
- **label: "浙江省"** — 检索浙江省各级法院案例
- **label: "广东省"** — 检索广东省各级法院案例

说明：
- 用户可多选省份。若用户仅选某一省，WB 在第三步设置 `wenshu_filter.xzqh_p = "省份名"`。
- 若用户未选任何预设项，且在自由文本框中输入了具体法院名称（如"杭州市中级人民法院"），WB 在第三步设置 `wenshu_filter.fayuan = ["完整法院名称"]`。
- 若用户在自由文本框中填写了上列之外的其他省份（如"江苏省"），WB 在第三步设置 `wenshu_filter.xzqh_p = "用户填写的省份名"`。
- **兜底规则：** 若用户完全未作答（直接跳过或回复"默认"），WB 按 v3.8.0 默认全国模式处理——**不设置 `xzqh_p` / `fayuan` 过滤条件，发起单轮全国检索，检索返回后在本地按审理法院名称中的省份关键字归类展示**（逻辑等价于原来的默认四省市，但请求量降为 1/4，且可覆盖全部省份）。
- 若用户明确指出想检索"全部法院"或"不限地域"，WB 在第三步同样不设置 `xzqh_p` / `fayuan` 过滤条件（全国范围检索），与兜底规则行为一致。

#### 问题 2：检索时间段（header: "时间段"，multiSelect: false）

- **label: "2021年1月1日至今（默认）"** — 使用默认时间段
- **label: "2023年1月1日至今"** — 仅检索 2023 年之后的案例
- **label: "2024年1月1日至今"** — 仅检索 2024 年之后的案例
- **label: "自定义时间段"** — 请在自由文本框中填写起止日期（格式：YYYY-MM-DD 至 YYYY-MM-DD，如 2020-01-01 至 2024-12-31）

说明：
- 用户选择"自定义时间段"后，必须在自由文本框填写具体起止日期；WB 在第三步设置 `wenshu_filter.ja_start` 和 `wenshu_filter.ja_end`。
- 用户仅填写起始日期 → 结束日期默认为"至今"；仅填写结束日期 → 起始日期默认为"2021-01-01"。
- 用户未作答（默认）→ 使用 `wenshu_filter.ja_start = "2021-01-01"`。

#### 问题 3：检索关键词 / 争议焦点（header: "关键词焦点"，multiSelect: true）

针对"股东对公司债务承担责任"类需求，WB 预置以下常见情形选项（每次使用技能时，WB 应结合本次用户的争议主题，动态调整为与主题相关的选项；以下为通用示例）：

- **label: "人格混同/财产混同"** — 股东与公司人格混同、财产混同导致连带责任（《公司法》第23条）
- **label: "一人公司财产独立"** — 一人有限责任公司股东不能证明财产独立于公司的连带责任
- **label: "未足额/未届期出资"** — 股东未全面履行出资义务、出资加速到期下的补充赔偿责任
- **label: "抽逃出资"** — 股东抽逃出资后的返还与补充赔偿责任
- **label: "清算/注销责任"** — 股东未依法清算、恶意注销公司致债权人受损的赔偿责任
- **label: "其他/自定义"** — 请在自由文本框中补充具体案由、核心争议焦点、关键词或当事人类型

说明：
- 用户可多选，WB 将所选标签合并为 `query` 语义文本传入第三步检索工具。
- 用户在自由文本框中填写的案由（如"股东损害公司债权人利益责任纠纷"）、核心争议焦点、关键词、当事人类型（自然人/公司/国企），WB 一律采纳，并在第三步中：
  - 若有明确案由 → 设置 `wenshu_filter.ay = ["案由名称"]`
  - 将核心争议焦点 + 关键词 + 所选标签合并为 `query` 文本
  - 当事人类型记录备存（华宇元典检索接口无直接当事人类型过滤字段时，作为 query 语义补充）

#### 问题 4：代理限定（header: "代理限定"，multiSelect: false）

- **label: "不限定（默认）"** — 不限定代理律师 / 律所，按常规主题检索
- **label: "限定特定律师+律所"** — 仅在自由文本框中按格式填写「律师姓名，律所全称」（如「张三，浙江金道律师事务所」）；WB 将只输出该律师在该律所执业期间代理的案件 / 裁判文书

说明：
- 用户选择"限定特定律师+律所"后，**必须在自由文本框填写**「律师姓名，律所全称」，WB 据此解析出 `agent_lawyer`（律师姓名）与 `agent_firm`（律所全称）两个过滤参数。
- 解析规则：以中文逗号「，」、中文顿号「、」、英文逗号「,」或加号「+」作为分隔符，前半部分为律师姓名、后半部分为律所全称；若用户仅填写律所名称（未填律师姓名），则 `agent_lawyer` 留空、仅按律所过滤；若仅填写律师姓名，则 `agent_firm` 留空、仅按律师过滤（宽松模式，匹配范围更大）。
- 该限定与地域、时间段、关键词三类条件**叠加生效**：即在用户指定的地域 + 时间段 + 主题范围内，再二次过滤出特定律师/律所代理的案例。
- 华宇元典检索接口无直接的律师 / 律所过滤字段，故该限定在第三步通过"query 语义偏置 + 返回结果二次内容过滤"实现，详见第三步「代理律师/律所限定模式」。

**强制要求：**

- WB 必须调用 `AskUserQuestion` 提出上述四个问题（可一屏呈现），**不得**退化为纯文本逐条提问。
- 四个问题必须同时提出，避免分多轮反复打扰用户。
- 用户作答后，WB 应将作答结果整理为下方「回显确认」格式，在正式检索前做一次简短回显；**回显后默认直接开始检索（无需用户再次确认）**。如用户回复要求调整，则重新调用 `AskUserQuestion` 收集。

**回显确认格式：**

> 确认检索条件如下：
> - 检索范围：[用户所选省份 / 具体法院 / 全国 / 默认全国（不限地域）]
> - 检索时间段：[2021年1月1日至今 或 用户指定的时间段]
> - 争议焦点/关键词：[用户所选标签 + 自由文本补充内容]
> - 案由：[案由 或「不限」]
> - 当事人类型：[类型 或 「不限」]
> - 代理限定：[不限定 / 限定：XX律师事务所 XX律师代理（宽松模式？）]
> - 批次计划：[用户预声明的批次上限，如"共检索3批" / 未声明则逐批询问]（**建议直接声明，可省去逐批确认往返**）
>
> 确认无误，我将开始检索。如需调整请告知。

**批次上限预声明（v3.8.0 提速项 · v3.11.0 设为默认推荐）：** WB 在回显阶段**主动建议**用户一次性声明"共检索 N 批"（N 为正整数，**建议 2–3**；结合 v3.11.0 首轮批量返回 15 个，2–3 批已足以覆盖绝大多数需求）。用户声明后，WB 在达到 N 批后**自动跳过轮次选择题、直接生成报告**，将交互往返从"N 次"降为"1 次"。若用户未声明，仍按 v3.7 机制逐批询问（但首轮已批量返回，单轮候选量已显著提升）。无论是否预声明，用户均可随时在任一批次后口头要求"停止/生成报告"以提前结束，或要求"再加一批"以突破原上限。

用户确认（或默认视为确认）后进入第三步。如用户要求调整，重新调用 `AskUserQuestion` 收集。

---

### 第三步：执行检索

调用华宇元典法律数据 MCP 的 `yuandian_case_vector_search` 工具，按以下规则检索：

- **工具名称：** `mcp__yuandian-mcp__yuandian_case_vector_search`
- **检索范围：** 裁判案例（判决书、裁定书）
- **时间范围：**
  - **用户未限定检索时间段：** 设置 `wenshu_filter.ja_start = "2021-01-01"`，仅检索 2021-01-01 及之后的案例
  - **用户限定了检索时间段：** 设置 `wenshu_filter.ja_start` 和 `wenshu_filter.ja_end` 为用户指定的日期范围
- **地域范围（三种模式，v3.8.0 重构）：**
  - **精确省/市模式**（用户指定单一或多个省份、未指定具体法院）→ 设置 `wenshu_filter.xzqh_p = "省份名"`（如 `"浙江省"`）；若用户多选多省且接口支持数组，可一次性传 `xzqh_p` 数组。此模式用于需要严格限定地域的场景。
  - **具体法院模式**（用户在自由文本填写法院名称）→ 设置 `wenshu_filter.fayuan = ["完整法院名称"]`（如 `["浙江省杭州市中级人民法院"]`）。
  - **默认全国模式（v3.8.0 提速默认项 · v3.11.0 首轮批量返回）**：用户未指定地域、或仅触发兜底规则（默认全国）时，**不设置 `xzqh_p` / `fayuan`**，发起**单次全国范围检索**（语义检索仍按关联度返回最相关案例），检索返回后**在本地按审理法院名称（返回字段为 `court` 或 `fayuan`，两者等价）中的省份关键字归类展示**（如"北京市""上海市""浙江省""广东省"分组）。如此将原来"分4次串行检索"的 4 个请求压缩为 **1 个请求**，请求量降为 1/4；**v3.11.0 起该单次请求 `return_num = 15`，一次性返回充足候选、省去逐批往返**，且不影响检索质量（语义相关性排序不变）。如本地归类后发现某省案例偏少，可针对性补一轮精确省模式检索（或继续补检批次）。
  - **用户明确"全部法院/不限地域"** → 同默认全国模式，单轮检索。
- **代理律师/律所限定模式（v3.9.0 新增）：** 当第一步/第二步收集到 `agent_lawyer` / `agent_firm` 参数（用户限定特定律师 + 特定律所代理）时，启用以下机制：
  - **query 语义偏置：** 在 `query` 文本中追加代理限定信息，例如「（代理律师：{agent_lawyer}，代理律所：{agent_firm}）」，使语义检索偏向检索返回提及该律师/律所的文书，提升命中率。
  - **返回数量上调：** 因需二次过滤，将 `return_num` 由默认 5 上调至 **10–15**（建议 12），以在一次检索中获得足够多的候选文书供内容过滤；如仍不足，可在后续批次继续检索并过滤累积。
  - **二次内容过滤（核心）：** 对每批返回的案例，读取其 `content` 正文，执行以下判定，**仅保留同时满足两项条件的案例**：
    1. 正文中**出现** `agent_lawyer`（律师姓名），且**出现该律所的任一名称形态**——即 `agent_firm`（律所全称）或其派生的简称/别称（详见下方「律所名称模糊匹配」）中**任一字符串命中**；
    2. 二者处于**同一方当事人的诉讼代理人语境**——即在「当事人基本情况」「委托代理人」「代理人」等字段中，该律师姓名与该律所任一名称形态**共现于同一条代理关系表述**（如「委托代理人：张三，浙江金道律师事务所律师」「委托代理人：张三，金道律师」）。
  - **律所名称模糊匹配（v3.9.1 补充）：** 严格模式下，仅凭律所全称精确匹配易漏检"全称未出现但简称/别称出现"的文书。WB 应基于用户填写的 `agent_firm` 自动派生「律所名称集合」，任一形态命中即视为满足"律所出现"条件：
    - **全称**：原样 `agent_firm`（如「浙江金道律师事务所」）；
    - **去后缀核心名**：去除「律师事务所」「律师」「（特殊普通合伙）」「（有限合伙）」等后缀及括号内容，保留主体（如「浙江金道」「金道」）；
    - **去行政区划**：去除开头的省/市/区名（如「浙江」「杭州市」「杭州」），得「金道律师事务所」「金道律师」；
    - **常用简称**：核心名 + 「所」（如「金道所」）、核心名 + 「律所」（如「金道律所」）、核心名 + 「律师」（如「金道律师」）；
    - **匹配约束**：模糊匹配仅放宽"律所名称形态"，**不放宽"同一代理关系语境"与"律师姓名共现"两项硬条件**——仍须律师姓名与该律所任一名称形态共现于同一条「委托代理人/代理人」表述，方予保留；仅以简称出现但不在代理关系语境、或代理关系语境中无该律师姓名的，仍剔除。
  - **剔除规则：** ① 仅出现律师姓名、或律所全称及任一派生简称/别称均未出现者；② 二者虽同现但分属不同当事人（如律师代理原告、律所代理被告，无同一代理关系）者；③ 姓名/律所名出现在无关的"查明事实""裁判说理"而非代理关系语境者——一律剔除，不进入候选池与报告。
  - **宽松模式（仅限律师或仅限律所其一）：** 若用户仅填律师姓名（`agent_firm` 为空），则只要正文出现该律师姓名即保留（可能跨多律所）；若仅填律所（`agent_lawyer` 为空），则只要正文出现该律所全称即保留。宽松模式匹配范围更大，WB 应在回显中标注「宽松模式」，提示结果可能不限于单一代理关系。
  - **过滤后数量提示：** 每批过滤后，WB 应向用户说明"本批检索 N 份，符合代理限定 M 份"；若过滤后 M=0，应提示用户"当前检索范围内未检索到该律师/律所在该律所代理的案件"，并询问是否扩大检索范围（如放宽地域/时间、或改为宽松模式）或结束检索。
- **查询改写 `rewrite_flag`（v3.8.0 智能设置）：**
  - 用户在第三步已提供**明确案由 + 核心争议焦点（结构化关键词）**时，设置 `rewrite_flag: false`，直接以用户原 query 检索，跳过查询改写的一次 LLM 推理往返，提速且更贴合用户原意。
  - 用户仅给出模糊/口语化需求（如"想找点相关的股东责任案例"）时，保持 `rewrite_flag: true` 由系统改写以提升召回。
- **案由过滤：** 如用户提供了案由，设置 `wenshu_filter.ay = ["案由名称"]`
- **返回数量（v3.11.0 提速：首轮批量返回）：** 默认 `return_num` 由固定 5 上调为首轮批量值——**全国模式 15、精确省/市模式 10、代理限定模式 15**（均远低于工具默认 45，仍属精确可控，不淹没用户）。一次检索即返回足够候选，渲染单个 widget 后仅用一次 `AskUserQuestion` 决策，将原"多批×5 + 多轮交互"压缩为"1–2 次大返回 + 1 次交互"，语义排序与候选质量不变。若用户口头要求"下一批 N 个"继续补检，WB 按对应模式上限设置（全国≤15、精确≤10、代理≤15），且靠案号去重避免重复。
- **query 参数：** 将用户的「核心争议焦点」作为 `query` 传入，可附加案由关键词提升准确性

**第一批（v3.11.0 批量返回 + 流水线预取）：** 检索关联度最高的 **15 个案例**（全国模式 `return_num = 15`；精确省/市模式 10；代理限定模式 15），一次性返回足够候选。（**v3.11.0 流水线**：渲染本批 widget 的同一 turn 内，WB 同步**并行预取本批权威案例**（`l` 字段非"—"者）的完整详情 `yuandian_rh_case_details`，供第五步直接复用，报告阶段无需再等待。）渲染为单个 widget 后，调用一次 `AskUserQuestion` 决策（继续检索 / 生成报告）。用户仍可在决策回复中口头要求"下一批 N 个"（N ≤ 对应模式上限）以补检；后续批次复用相同 `query` 与过滤条件，靠案号去重。如需减少首轮数量（如只想看 5 个），用户在第一步回显或决策题中口头提出即可，WB 相应下调 `return_num`。

**案例权威性优先排序规则（v3.6）：** 检索结果返回后，在按关联度排序的基础上，将以下权威案例**优先排列在列表前部**（在同一关联度层级内，权威案例排在普通案例之前）：

- **最高人民法院公报案例**：案例名称或内容中包含「最高人民法院公报」「公报案例」标识的案例
- **各级法院系统评奖评优案例**：包括但不限于：
  - 最高人民法院评选的「指导性案例」「典型案例」「优秀案例」
  - 各省高级人民法院评选的「全省法院典型案例」「优秀裁判文书」
  - 各级法院系统发布的「参考性案例」「年度案例」
- **识别方式**：从 `content` 字段中检索关键词（「公报」「典型案例」「优秀案例」「指导性案例」「参考性案例」「年度案例」等），或在案例元数据中查找权威性标签
- **Widget 标注**：权威案例在 widget 的「案例名称」列中通过标签（如 🏛️公报、⭐典型、📌指导）进行醒目标注

**重要：生成 widget 前预加载裁判结果。** 在调用 `show_widget` 渲染案例列表之前，必须为每个案例预先获取其**裁判结果摘要**，方法如下：

1. `yuandian_case_vector_search` 的返回结果中，每个案例包含 `content` 字段（整理后的完整案例内容）。
2. 从 `content` 字段中**提取裁判结果部分**（通常包含「判决如下」「裁定如下」「本院认定」「判决主文」等段落），整理为 **150-250 字的纯文本摘要**，包含：判决/裁定结论、主要法律依据、裁判要旨。
3. 用 `【结】` `【据】` `【旨】` 等单字标记替代长标题，段落用 `|` 分隔。
4. 将整理后的摘要直接写入每个案例的 `.detail-inner` 元素中（即预览展开行显示的文本内容），无需额外 `v` 字段。

这样用户点击「预览」时，裁判结果在下一行全宽展开显示，无需等待异步通信。

将这批案例通过 `show_widget` 工具以**纯 HTML/CSS 交互式表格**呈现给用户审阅。每个案例附带**可展开的预览区域（点击后另起一行全宽显示）**，供用户审阅裁判结果。**注意：本技能不再使用"纳入报告"复选框——每轮检索到的案例全部自动进入报告候选池，最终是否生成报告由下方的轮次选择题决定。**

**呈现后用 `AskUserQuestion` 询问用户（替代原 v2.2 强制收集机制）：**

每轮（第一批、第二批……）案例 widget 渲染完毕后，WB **必须立即调用一次 `AskUserQuestion`**，向用户提出如下**二选一**选择题（单选）：

- **问题文本（question）：** 第 N 批案例已展示。是否继续检索更多案例，还是直接生成检索报告？
- **header：** 轮次决策
- **选项1（label: "继续检索"）：** 检索下一批 5 个案例（重复检索 → 预加载 → 渲染 widget → 再询问的流程）。
- **选项2（label: "生成报告"）：** 将**此前所有轮次（第1批至第N批）检索到的全部案例合并**，直接生成《案例检索报告》。

**强制规则：**
- WB **必须**通过 `AskUserQuestion` 提出上述选择题，**不得**退化为纯文本提问，也**不得**默认直接进入下一步（除非用户已预声明批次上限且达到上限，见下）。
- 用户选择「继续检索」→ 检索下一批（自动去重，不重复展示已出现过的案号），重复本流程。
- 用户选择「生成报告」→ **将所有已检索轮次的案例（合并、按案号去重）全部纳入报告**，直接进入第五步生成《案例检索报告》。**无需再弹出汇总确认表，也无需用户逐案勾选。**
- 每一轮检索到的案例，在用户选择「生成报告」之前，都视为"已候选"状态，无需单独确认。
- **批次上限预声明联动（v3.8.0）：** 若用户在首轮回显时已声明"共检索 N 批"，则当已展示第 N 批后，WB **不再弹出轮次选择题，直接执行 5.0 回显并进入第五步生成报告**（仍保留随时叫停权利：用户在 N 批内任一批后口头要求"停止/生成报告"，即提前终止；要求"再加一批"则突破上限继续）。
- **多轮检索实务提示：** 每轮复用相同的 `query` 与过滤条件，靠"按案号去重"避免重复。若连续多轮去重后新增极少（接近耗尽语义相近结果），WB 应在询问时提示用户"新案例已较少，建议生成报告，或口头提出调整检索词/范围以重启检索"，避免无效轮次。默认全国模式下若某省分布偏少，可补一轮精确省模式检索补齐。

---

## 纯 HTML/CSS Widget 模板（v3.0 核心）

**设计原理：** 完全不依赖 JavaScript。利用 `<details>` 原生展开 + CSS 实现交互。
- **预览展开（v3.6.2 修复）**：每个案例是一个独立的 `<details class="case-card">`，`<summary class="case-row-summary">` 是案例行（用 flex 模拟表格行），展开后预览内容在案例行**下方另起一行全宽显示**，自动换行，行高 1.8，阅读体验良好。**无需任何 JavaScript。**
- **（v3.7 变更）** 案例 widget 不再含"纳入报告"勾选区与底部确认区；勾选筛选机制已废止，流程由 `AskUserQuestion` 轮次选择题驱动。

**【关键约束】**
- **禁止使用任何 `<script>` 标签**
- **禁止使用任何内联事件处理器（onclick/onchange）**，唯一例外：textarea 上允许 `onclick="this.select()"` 以改善复制体验（`select()` 是 textarea 原生方法，沙箱不会剥离）
- **所有交互必须通过纯 HTML + CSS 实现**
- verdict 文本控制在 150-250 字，用 `|` 分隔段落，用 `【结】【据】【旨】` 等单字标记

> **⚠️ CSS 类名注意：** 本模板使用 `.case-card` 作为每个案例卡片的类名（非 `.case-row`）。所有 CSS 规则均需针对 `.case-card` 书写。文档其他位置若出现 `.case-row` 均为笔误，以模板代码为准。v3.7 起模板已移除 `.case-cb` / `.cb-label` / `.confirm-area` 等勾选相关类名，仅保留预览展开所需的 `.case-card` / `.case-row-summary` / `.detail-inner` 等。

```html
<!-- 每个案例是一个独立的 <details class="case-card">，展开后预览内容全宽显示 -->
<div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 100%;">
  <h3 style="margin: 0 0 12px 0; font-size: 15px; color: #333;">
    第N批 · 共M个案例
  </h3>

  <style>
    /* 每个案例是一个 details 卡片 */
    .case-card { border-bottom: 1px solid #eee; }
    .case-card:first-of-type { border-top: 1px solid #eee; }
    /* summary = 案例行，用 flex 模拟表格行 */
    .case-row-summary { display: flex; align-items: center; padding: 8px 6px; cursor: default; list-style: none; gap: 4px; }
    .case-row-summary::-webkit-details-marker { display: none; }
    .case-card[open] > .case-row-summary { background: #f9f9f9; }
    .case-card:hover > .case-row-summary { background: #f9f9f9; }
    /* 各列 flex 宽度，模拟表格（v3.7 起：不含"纳入报告"列） */
    .col-seq   { width: 40px; flex-shrink: 0; text-align: center; font-size: 13px; }
    .col-name  { flex: 2; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
    .col-ah    { width: 170px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
    .col-court { width: 150px; flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
    .col-date  { width: 90px; flex-shrink: 0; text-align: center; font-size: 13px; }
    .col-rel   { width: 150px; flex-shrink: 0; font-size: 12px; color: #555; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .col-prev  { width: 70px; flex-shrink: 0; text-align: center; }
    /* 预览展开区域：全宽显示 */
    .detail-inner { padding: 12px 16px; background: #f9f9f9; font-size: 13px; line-height: 1.8; color: #333; max-height: 400px; overflow-y: auto; white-space: pre-wrap; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
    /* 表头 */
    .table-header { display: flex; align-items: center; padding: 8px 6px; border-bottom: 2px solid #d0d0d0; background: #f0f2f5; position: sticky; top: 0; z-index: 1; font-size: 13px; font-weight: 500; }
    .scroll-wrap { max-height: 600px; overflow-y: auto; border: 1px solid #e0e0e0; border-radius: 4px; }
  </style>

  <div class="scroll-wrap">
    <!-- 表头 -->
    <div class="table-header">
      <div class="col-seq">序号</div>
      <div class="col-name" style="text-align:left;">案例名称</div>
      <div class="col-ah" style="text-align:left;">案号</div>
      <div class="col-court" style="text-align:left;">审理法院</div>
      <div class="col-date">裁判日期</div>
      <div class="col-rel" style="text-align:left;">关联度简述</div>
      <div class="col-prev">预览</div>
    </div>

    <!-- ===== 案例1 ===== -->
    <details class="case-card">
      <summary class="case-row-summary">
        <div class="col-seq">1</div>
        <div class="col-name"><span style="background:#fff3e0;color:#e65100;font-size:11px;padding:1px 4px;border-radius:2px;margin-right:4px;">⭐典型</span>XX诉XX商标侵权纠纷案</div>
        <div class="col-ah">(2024)浙0108民初XXX号</div>
        <div class="col-court">杭州市滨江区人民法院</div>
        <div class="col-date">2024-01-01</div>
        <div class="col-rel">侵害商标权，支持律师费</div>
        <div class="col-prev">
          <span style="color:#1890ff;cursor:pointer;font-size:13px;text-decoration:underline dotted;">预览</span>
        </div>
      </summary>
      <!-- 预览内容：展开后全宽显示，自动换行 -->
      <div class="detail-inner">【结】判决结论内容|【据】法律依据|【旨】裁判要旨</div>
    </details>

    <!-- ===== 案例2 ===== -->
    <details class="case-card">
      <summary class="case-row-summary">
        <div class="col-seq">2</div>
        <div class="col-name">XX诉XX著作权侵权案</div>
        <div class="col-ah">(2024)浙0108民初YYY号</div>
        <div class="col-court">杭州市滨江区人民法院</div>
        <div class="col-date">2024-02-01</div>
        <div class="col-rel">摄影作品侵权，全额支持维权合理开支</div>
        <div class="col-prev">
          <span style="color:#1890ff;cursor:pointer;font-size:13px;text-decoration:underline dotted;">预览</span>
        </div>
      </summary>
      <!-- 预览内容：展开后全宽显示，自动换行 -->
      <div class="detail-inner">【结】判决结论内容|【据】法律依据|【旨】裁判要旨</div>
    </details>

    <!-- 更多案例按相同格式追加（每个案例一个 <details class="case-card">） -->
  </div>

</div>
```

### 关键交互说明（v3.7 更新）

- **预览（核心交互）**：每个案例是一个 `<details class="case-card">`，`<summary>` 是案例行，点击「预览」文字后 `<details>` 原生展开，**预览内容在案例行下方另起一行全宽显示**，自动换行，行高 1.8，阅读体验良好。**无需任何 JavaScript。**
- **轮次决策（外部选择题）**：案例 widget 仅用于**审阅**裁判结果，**不再含勾选框或确认区**。是否继续检索或生成报告，由 WB 在 widget 之后调用 `AskUserQuestion` 二选一选择题决定（见第三步末尾与第四步）。
- **代理限定标注（v3.9.0）**：当启用特定律师/律所限定模式时，widget 的 `<h3>` 标题须追加标注，例如「第N批 · 共M个案例（限定：XX律师事务所 XX律师代理）」；同时在每条案例的「关联度简述」列或案例名称中体现「代理：XX律所 XX律师」，便于用户即时核对检索范围。经二次过滤后保留的案例，均为该律师在该律所代理的案件，无关案例已剔除，不可在 widget 中混入未通过过滤的案例。
- **零脚本原则**：所有 `show_widget` HTML 中严禁 `<script>`；交互仅依赖 `<details>` + CSS。原"绿色确认区 + textarea 复制"机制已随 v3.7 废止。

### verdict 字段格式规范

每个案例的 verdict 必须按以下格式，控制在 150-250 字：

```
【结】判决/裁定结论（50-80字）|【据】主要法律依据（30-50字）|【旨】裁判要旨/参考价值（70-120字）
```

用 `|` 分隔三段，不要使用 `\n` 或 `<br>`。渲染时 `.detail-inner` 中直接写文本，用 `white-space: pre-wrap` 保留格式。

---

### 第四步：轮次管理与生成报告决策

**核心原则（v3.7 重大调整）：** 本技能**不再使用逐案勾选 + 汇总确认表**机制。每一轮（第1批、第2批……）检索到的案例，在用户作出"生成报告"决策之前，全部自动进入**报告候选池 `ALL_CASES`**。用户通过第三步末尾的 `AskUserQuestion` 选择题（继续检索 / 生成报告）控制流程推进。

**数据维护：** WB 在内存中维护 `ALL_CASES` 数组（报告候选池），每个案例对象包含：`batch`（批次号，如"第1批"）、`i`（全局序号，从1开始连续编号）、`n`（案例名称）、`c`（案号）、`t`（审理法院）、`d`（裁判日期）、`s`（关联度简述）、`l`（案例级别：`"公报案例"` / `"典型案例"` / `"优秀案例"` / `"指导性案例"` / `"—"`）。**同一案例按 `c`（案号）去重**——若下一轮检索结果中出现与 `ALL_CASES` 中已有案号相同的案例，不予重复加入。

**说明（v3.8.0 修正）：** `ALL_CASES` 仅保存检索阶段获取的结构化元数据（含 `s` 关联度简述与已识别的 `l` 案例级别），用于 widget 展示与候选池去重；裁判结果摘要与完整文书均在第五步生成报告时按需从 `content` / `yuandian_rh_case_details` 提取，**不再在 `ALL_CASES` 中持久化存储 `v` 摘要字段**（与第三步"无需额外 `v` 字段"及 v3.7 废除勾选/逐案预览缓存的机制保持一致）。

**注意：** 每次呈现新批次案例时，标题注明批次号（第1批、第2批……），并在回复中提示"当前候选池共 N 个案例"。所有已检索案例的完整信息必须在 WB 内存中持续维护，供第五步生成报告使用。

**流程决策（由第三步末尾的 `AskUserQuestion` 二选一选择题驱动）：**

- **用户选择「继续检索」** → 检索下一批（自动按案号去重，不重复展示已有案例），重复第三步完整流程（检索 → 预加载裁判结果 → 渲染 widget → 再次询问）。各轮案例持续累积进 `ALL_CASES`。
- **用户选择「生成报告」** → **将 `ALL_CASES` 中的全部案例（即第1批至第N批所有已检索案例，合并去重）直接纳入报告**，进入第五步生成《案例检索报告》。**此场景下不再弹出汇总确认表，也无需用户逐案勾选。**

**兜底规则：**
- 若用户在第1批后即选择「生成报告」，`ALL_CASES` 仅含第1批案例，直接进入第五步。
- 若某轮检索返回 0 个新案例（去重后无新增），WB 应提示用户"未检索到更多新案例"，并再次询问"继续检索 / 生成报告"，由用户决策。如用户希望**调整检索词或更换检索范围**以扩大结果，应在回复中口头提出，WB 据此回第一步/第二步重新收集参数后重启检索（原候选池可保留或清空，由用户决定）。
- 若用户连续多次选择「继续检索」导致候选池过大（超过 30 个），WB 应在询问时提示"候选池已较大，建议生成报告或调整检索词缩小范围"，但仍尊重用户选择。

> **🚫 已废止机制说明：** 原 v3.6 及之前的"每批绿色文本框勾选收集""第四点五步汇总确认表""SELECTED_CASES 勾选筛选"等机制，自 v3.7 起**正式废止**，不再使用。生成报告的范围一律以 `ALL_CASES`（各轮检索合并去重）为准。

---

### 第四点五步：（已废止，自 v3.7 起跳过）

原“案例汇总确认表”步骤因与新的轮次选择题机制冲突，自 v3.7 起**不再执行**。用户选择「生成报告」后直接进入第五步，无需汇总表确认。

---

### 第五步：生成《案例检索报告》

**第5.0步（v3.7 调整）：用户选择「生成报告」后，先回显候选池清单。**

当用户在第三步末尾的 `AskUserQuestion` 中选择「生成报告」后，WB **应先回复一段非阻塞的告知信息**（即"通知式回显"，不强制等待用户确认即可继续生成），列出 `ALL_CASES`（各轮检索合并去重）中的案例清单，格式如下：

> 已确认纳入报告的案例共 N 个（来自第1批至第M批合并去重）：
> - 第1号：案例名称（案号）〔第X批〕
> - 第2号：案例名称（案号）〔第Y批〕
> ……
>
> 即将据此生成《案例检索报告》。如需调整（如"去掉第X号"），请尽快回复告知，我将在生成前拦截处理。

**说明：** 此回显为流程透明化要求（让用户知悉报告范围），**不阻塞生成**——WB 回复告知后即可直接进入第5.1步生成报告；若用户在生成前补充"去掉第X号"等调整指令，WB 应中断并相应修改 `ALL_CASES` 后重新回显（最多 2 轮），再生成。（注：v3.7 起报告范围即为 `ALL_CASES` 全部案例，用户无需逐案勾选；如用户希望缩减范围，可在回复中口头指定"去掉第X号"，WB 相应调整 `ALL_CASES` 后**重新连续编号**。）

**第5.1步：获取完整裁判内容并生成报告。**

**获取完整裁判内容操作指南：**

对 `ALL_CASES` 中的每个案例，调用 `mcp__yuandian-mcp__yuandian_rh_case_details` 获取完整详情：
- 参数：`ah = "案号"`（如 `"(2024)浙0108民初XXX号"`）
- 如 `ah` 查询无结果，尝试用 `id` 参数（从搜索结果的 `case_id` 字段获取）
- 如仍无结果，降级使用第三步中已提取的 `content` 字段内容

**效率提示（v3.8.0 并行优化 + v3.11.0 流水线化）：**
- **【v3.11.0 流水线化】检索阶段即预取权威详情：** 自 v3.11.0 起，WB 在第三步渲染每批 widget 的同一 turn 内，已**并行预取该批权威案例**（`l` 字段非"—"者）的完整详情 `yuandian_rh_case_details`（案号/ID 在搜索结果中已知，无需新增检索词）。因此进入第五步时，权威案例详情通常已就绪，报告生成阶段**无需再等待详情请求**——这是将原集中在报告阶段的网络耗时前移、与交互并行的关键提速，且不影响质量（仍获取完整文书）。
- **并行批量调用（核心提速）：** 若仍有未预取的详情（如用户补检批次后新增的权威案例需获取），WB 应**并行**发起多个 `yuandian_rh_case_details` 请求，而非逐案串行。总耗时由"N × 单请求耗时"降为"≈ 1 × 单请求耗时（受并发上限约束）"。**不改变任何返回内容，不影响报告质量**。
- **权威优先 + 普通降级（仍保留）：** 权威案例（含 `l` 字段非"—"者）必须获取完整文书；普通案例直接基于第三步检索结果中的 `content` 与已预加载的裁判结果摘要生成报告（仍须满足附件"主要内容"强制要求）。**【v3.11.0 禁止冗余检索】报告阶段普通案例一律复用第三步 `content`，禁止重复调用 `case_vector_search`，避免冗余语义检索往返。**
- **并发保护：** 若并行请求触发限流或报错，WB 应自动退化为"小批量并行"（如每批 3–5 个并行），而非完全串行，以保持提速收益。

**从完整详情中提取报告所需各部分：**
- **案情简介**（≤100字）：从「案件基本事实」「经审理查明」等段落提取
- **案例级别**：从案例内容中识别权威性标签（「最高人民法院公报」「指导性案例」「典型案例」「优秀案例」「参考性案例」等），标注为「公报案例」「典型案例」「优秀案例」「指导性案例」等；无权威标签的普通案例标注「—」
- **争议焦点**：从「争议焦点」「本案焦点」等段落提取，或自行归纳
- **法院认定**：从「本院认为」「本院认定」等段落提取
- **法律适用**：从「依照……规定」「依据……法」等段落提取援引法条。**【引用规范】** 引用法律条文时必须注明法律法规全称、生效版本及具体条款号；WB 通过外部检索仍无法核验的条文，须明确标注「待核实」，不得作为确定性结论给出。
- **参考价值**：结合用户争议焦点，分析该案例的参考意义。**权威案例（公报案例、指导性案例、典型案例等）的参考价值应特别强调其权威性和对下级法院的指导意义**
- **附件内容**：优先使用完整裁判文书正文；如 `yuandian_rh_case_details` 返回内容不完整，从 `content` 字段提取补充，至少包含：当事人信息、案件基本事实、法院认定与说理、裁判结果

**生成报告：** 按下方报告格式模板生成完整的《案例检索报告》。报告以 Markdown 格式写入工作目录下的文件，文件名格式：`案例检索报告_[争议焦点简称]_YYYYMMDD.md`。

**【v2.3 强制要求 — 报告内容审核】**
1. **报告中的案例 = `ALL_CASES` 中的案例，一一对应，不多不少。**
2. 报告中每个案例必须来自各轮检索结果（用户已通过"生成报告"决策确认纳入）。
3. 用户从未见过的案例 → 绝对不出现在报告中。
4. **WB 在生成报告前，必须逐案例核对：报告中的每个案例，是否都在 `ALL_CASES` 中。不在的案例，必须移除。**
5. **WB 在生成报告后，必须再次自检：报告的「选定案例清单」（第二部分）和「案例详细分析」（第三部分）中的案例数量，是否与 `ALL_CASES` 数量一致。**

报告格式如下：

---

## 案例检索报告

**检索主题：** [用户提供的争议焦点/案由]

**检索范围：** [省份/直辖市/具体法院，如：北京市、上海市、浙江省、广东省相关法院]

**检索时间范围：** 2021年1月1日 至今

**检索日期：** YYYY年MM月DD日

**检索工具：** 华宇元典法律数据库

---

### 一、检索概述

本次检索共进行 [轮次总数] 轮，累计返回案例 [各轮返回数之和] 份，按案号合并去重后得 [候选池数] 份，全部纳入本报告分析如下。

---

### 二、选定案例清单

| 序号 | 案例名称 | 案号 | 审理法院 | 裁判日期 | 案例级别 | 批次来源 |
|------|---------|------|---------|---------|---------|---------|
| 1 | [案例名称] | [案号] | [法院] | [日期] | [公报案例/典型案例/优秀案例/—] | [第X批] |
| 2 | ... | ... | ... | ... | ... | ... |

---

### 三、案例详细分析

#### 案例1：[案例名称]

- **案号：** [案号]
- **审理法院：** [法院]
- **裁判日期：** [日期]
- **案例级别：** [公报案例 / 典型案例 / 优秀案例 / 指导性案例 / —（普通案例留空或填「—」）]
- **批次来源：** [第X批]
- **案情简介：** [100字以内摘要]
- **争议焦点：** [本案争议的核心问题]
- **法院认定：** [法院对争议焦点的认定思路和结论]
- **法律适用：** [援引的法条]
- **参考价值：** [该案例对用户案件的参考意义]

（依次分析每个选定案例）

---

### 四、裁判观点汇总

将各案例的裁判观点进行归纳，提炼共通认定标准、分歧点（如有），并给出实务建议。

---

### 五、检索结论

综合上述案例，就用户的争议焦点问题，总结司法实践中的主流观点，并提示风险或注意事项。

---

**⚠️ AI风险提示：** 本报告由 AI 基于华宇元典法律数据库检索生成，仅供参考使用，不构成法律意见，不代表任何司法机关观点。如需用于诉讼或正式法律文件，请结合最新法律法规案例审慎使用。本报告也可能存在遗漏、错误，请人工进行审核校对！

---

### 附件：案例裁判文书或主要内容

以下为《案例检索报告》中收录的各案例裁判文书或主要内容。

**【强制要求】报告中选定的每个案例，必须在附件中附上裁判文书或主要内容。每个案例附件必须明确注明法院和案号，不可遗漏。优先附上完整裁判文书正文；如确因数据库限制无法获取全文，则必须附上裁判文书的主要内容（至少包含：当事人信息、案件基本事实、法院认定与说理、裁判结果），严禁仅附摘要。**

---

#### 附件1：[案例名称]

**案号：** [案号]

**审理法院：** [法院]

**裁判日期：** [日期]

**裁判文书或主要内容：**

[裁判文书正文内容。优先附上完整裁判文书全文；如无法获取全文，则附上裁判文书主要内容，至少包含：当事人信息、案件基本事实、法院认定与说理、裁判结果。]

---

#### 附件2：[案例名称]

**案号：** [案号]

**审理法院：** [法院]

**裁判日期：** [日期]

**裁判文书或主要内容：**

[裁判文书正文内容。优先附上完整裁判文书全文；如无法获取全文，则附上裁判文书主要内容，至少包含：当事人信息、案件基本事实、法院认定与说理、裁判结果。]

---

（依次附上每个选定案例的裁判文书或主要内容，每个案例必须注明法院和案号）

---

**⚠️ AI风险提示（再次提示）：** 本报告及附件由 AI 基于华宇元典法律数据库检索生成，仅供参考使用，不构成法律意见，不代表任何司法机关观点。如需用于诉讼或正式法律文件，请结合最新法律法规案例审慎使用。本报告也可能存在遗漏、错误，请人工进行审核校对！

---

### 第六步：询问是否转换为 DOCX 格式（强制选择题）

> **🚫 本步骤是报告生成后的强制收尾环节，绝对不可跳过。**
>
> **WB 必须在《案例检索报告》Markdown 文件生成完毕后、结束本次回复前，使用 `AskUserQuestion` 工具向用户弹出一个明确的三选一选择题。无论用户之前是否表达过对 DOCX 的偏好，此提问都不可省略。**

**提问内容：**

使用 `AskUserQuestion` 工具，设置 `questions` 参数为一个包含单个问题的数组，该问题必须提供以下三个选项：

- **问题文本（question）：** 《案例检索报告》Markdown 文件已生成。是否需要将其转换为 DOCX 格式文件并保存至电脑桌面？

- **选项1（label: "需要"）：** 将 Markdown 文件转换为 DOCX 格式，保存至电脑桌面。WB 将立即执行下方的转换流程。

- **选项2（label: "不需要"）：** 无需转换，当前流程结束。WB 不做任何额外操作。

- **选项3（label: "自定义需求"）：** 用户可在自由文本框中输入自定义需求（如：「转换为 PDF 格式」「保存到 D 盘指定文件夹」「同时生成 DOCX 和 PDF」「仅保留 Markdown 即可」等）。WB 根据用户输入的具体文字需求执行相应操作。如涉及 DOCX 转换，使用下方的转换流程。

**`AskUserQuestion` 调用示例结构：**

```json
{
  "questions": [
    {
      "question": "《案例检索报告》Markdown 文件已生成。是否需要将其转换为 DOCX 格式文件并保存至电脑桌面？",
      "header": "DOCX转换",
      "options": [
        {
          "label": "需要",
          "description": "将 Markdown 转换为 DOCX 格式，保存至电脑桌面"
        },
        {
          "label": "不需要",
          "description": "无需转换，当前流程结束"
        },
        {
          "label": "自定义需求",
          "description": "请在下方文本框中输入您的具体需求（如：转换为PDF、指定保存路径等）"
        }
      ]
    }
  ]
}
```

**处理用户选择：**

- **用户选择「需要」或「不需要」：** 直接按对应逻辑执行。
- **用户选择「自定义需求」并在文本框中输入了文字：** WB 必须仔细阅读用户输入的自定义需求，理解其意图后执行相应操作。常见场景：
  - 涉及 DOCX 转换 → 使用下方转换流程
  - 涉及 PDF 转换 → 先转 DOCX 再转 PDF，或直接搜索可用工具
  - 指定了其他保存路径 → 将输出文件保存到用户指定路径
  - 用户输入了其他非转换类需求 → 按需响应
- **用户选择「自定义需求」但未输入文字或输入为空：** WB 回复：「您选择了自定义需求，但未输入具体内容。请问您需要什么操作？」并等待用户补充。

**转换流程：**

1. **前置校验：** 先确认 `joe-markdown-to-docx` skill 是否存在于 `~/.workbuddy/skills/joe-markdown-to-docx/`。若不存在，WB 应提示用户该转换依赖未安装，并询问是否改用其他方案（如 pandoc、python-docx），**不得静默失败**。
2. **加载 skill：** 加载 `joe-markdown-to-docx` skill（路径 `~/.workbuddy/skills/joe-markdown-to-docx/`），按其内置说明执行转换。
3. **运行时隔离（强制）：** 转换脚本必须经由托管 Node 运行时调用，禁止直接使用裸 `node` 命令。使用本会话管理的 Node 绝对路径：
   ```bash
   /Users/gongjiayong/.workbuddy/binaries/node/versions/22.22.2/bin/node ~/.workbuddy/skills/joe-markdown-to-docx/scripts/convert.js <Markdown文件路径> ~/Desktop/案例检索报告_[争议焦点简称]_YYYYMMDD.docx
   ```
   （若脚本依赖 npm 包，应将其装在托管 workspace：`/Users/gongjiayong/.workbuddy/binaries/node/workspace/node_modules`，并以 `NODE_PATH` 指向该目录运行。输出路径默认桌面，用户指定其他路径时替换末参。）
4. **保存路径（用户已授权）：** 龚家勇律师已于 2026-07-10 **明确授权**：将检索生成的报告及转换后的 `.docx` 文件保存至其电脑桌面（`~/Desktop`）属于许可操作。因此 DOCX **默认输出至桌面**：`~/Desktop/案例检索报告_[争议焦点简称]_YYYYMMDD.docx`。若用户在"自定义需求"中指定其他路径（如 D 盘、指定文件夹、同时转 PDF 等），按用户指定执行。无论保存至何处，完成后均应以文字告知用户确切文件路径。
5. **完成告知：** 转换完成后，告知用户文件位置（默认桌面路径，或用户指定的其他路径）。

**【强制规则】此提问不可跳过。WB 必须在 Markdown 文件生成后、结束回复前，使用 `AskUserQuestion` 工具执行此提问。即使之前用户明确说过「不要 DOCX」或「只要 Markdown」，此提问仍需执行，以便用户做最终确认。**

---

## 注意事项

1. **地域过滤（v3.8.0 重构）：** 提供三种模式——① 精确省/市模式：用 `wenshu_filter.xzqh_p`（省份）或 `wenshu_filter.fayuan`（具体法院）在检索时直接过滤；② 默认全国模式（提速默认项）：不设置 `xzqh_p`/`fayuan`，单轮全国检索后**在本地按审理法院名称（返回字段 `court` 或 `fayuan`）中的省份关键字归类展示**（如北京市、上海市、浙江省、广东省分组）；如某省分布偏少，再补一轮精确省模式。两种模式质量等价，全国模式仅减少请求量。默认四省市兜底场景已并入默认全国模式，不再分 4 次串行检索。
2. **时间过滤：** 用户未限定时间范围时，必须在 `wenshu_filter` 中设置 `ja_start: "2021-01-01"`；用户限定了时间范围时，同时设置 `ja_start` 和 `ja_end`。
3. **案例数量（v3.11.0 首轮批量返回）：** 首轮默认批量返回——全国模式 `return_num = 15`、精确省/市模式 10、代理限定模式 15（均精确可控，不依赖默认 45）；渲染单个 widget 后仅用一次 `AskUserQuestion` 决策。用户可在决策回复中口头要求"下一批 N 个"（N ≤ 对应模式上限：全国 15 / 精确 10 / 代理 15）继续补检，或要求"首轮只看 5 个"下调数量。多批靠案号去重。用户可多次追加批次。
4. **交互功能：** 每批案例列表以纯 HTML/CSS 表格呈现，必须包含**预览区域**（点击展开查看裁判结果），**无需勾选按钮**（v3.7 起已取消"纳入报告"复选框）。**使用纯 HTML/CSS 方案（`<details>` 实现展开），禁止使用 `<script>` 标签。**
5. **【v3.7 强制】每轮选择题驱动：** 每轮（第1批、第2批……）案例 widget 渲染完毕后，WB **必须**调用 `AskUserQuestion` 向用户提出二选一选择题（「继续检索」/「生成报告」），**不得**退化为纯文本提问，也**不得**默认直接进入下一步。用户选择「生成报告」即代表将截至当前的全部候选池案例纳入报告。
6. **【v3.7 废止】汇总确认表不再使用：** 原"第四点五步案例汇总确认表"自 v3.7 起**正式废止**。用户选择「生成报告」后直接进入第五步，不再弹出汇总表、不再要求用户逐案勾选或复制答题卡。**严禁以"未弹汇总表"为由拒绝生成报告。**
7. **【v2.3 强制】报告仅含候选池案例：** 最终生成的《案例检索报告》中，仅包含 `ALL_CASES`（各轮检索合并去重）中的案例。用户从未见过的案例、**一律不得出现在报告中**。WB 生成报告前必须逐案例核对 `ALL_CASES`，生成后必须自检报告中的案例数量与 `ALL_CASES` 一致。
8. **报告生成前：** 原则上应先调用 `mcp__yuandian-mcp__yuandian_rh_case_details`（按案号 `ah` 查询）获取完整裁判内容；**权威案例（含 `l` 字段非"—"者）必须调用以提取完整文书**——自 v3.11.0 起，此调用已在第三步检索阶段**并行预取**完毕，报告阶段直接复用，无需等待。**普通案例**直接基于第三步检索结果中的 `content` 与已预加载的裁判结果摘要生成报告（**v3.11.0 禁止在报告阶段重复调用 `case_vector_search`**），**但仍须满足"附件须含裁判文书或主要内容"的强制要求，严禁仅以 `content` 摘要充当附件**。详细操作见第五步第5.1步。**（v3.8.0 并行批量 / v3.11.0 流水线化 + 复用 content）详情接口应尽量并行批量调用；权威案例优先调用、普通案例降级用 `content`，但不得跳过附件强制要求。**
9. **附件：** 报告中选定的每个案例，必须在附件中附上完整裁判文书正文（或主要内容）。每个案例附件必须明确注明**法院**和**案号**，不可遗漏。如无法获取全文，至少附上当事人信息、案件基本事实、法院认定与说理、裁判结果等核心内容，严禁仅附摘要。
10. **AI风险提示：** 报告末尾及附件末尾的AI风险提示不可省略。
11. **【v3.0 新增 / v3.7 修订】Widget 零脚本原则：** 所有 `show_widget` 生成的 HTML 中，**严禁包含 `<script>` 标签**。v3.7 起 widget 仅含 `<details>` + CSS（无需 `<input>`/`<label>`/`:checked`，勾选机制已废止）；流程决策由 `AskUserQuestion` 外部选择题完成。这是解决沙箱兼容性问题的根本方案。
12. **【v3.7 更新】轮次决策传递：** v3.7 起不再依赖 widget 内 checkbox 勾选传递信息。流程决策统一通过第三步末尾的 `AskUserQuestion` 选择题（「继续检索」/「生成报告」）完成。用户选择「生成报告」后，WB 直接进入第五步并回显 `ALL_CASES` 清单；如用户希望缩减范围，可在回复中口头指定"去掉第X号"，WB 相应调整 `ALL_CASES` 并**重新连续编号**后回显（最多 2 轮）。
13. **【v3.6.5 更新 / v3.8.1 修正】DOCX 转换询问（强制选择题）：** Markdown 报告文件生成后，WB 必须使用 `AskUserQuestion` 工具向用户弹出三选一选择题，选项为「需要」「不需要」「自定义需求」。用户选择「自定义需求」时可在自由文本框中输入具体需求（如转 PDF、指定路径等），WB 按需响应。此提问不可跳过，即使用户之前表达过对 DOCX 的偏好也必须执行。转换使用 `joe-markdown-to-docx` skill（路径：`~/.workbuddy/skills/joe-markdown-to-docx/`），调用时必须使用托管 Node 绝对路径（见第六步转换流程第3点）；**DOCX 默认输出至桌面 `~/Desktop`（龚家勇律师已于 2026-07-10 明确授权保存至桌面），用户指定其他路径时按指定执行**。
14. **【v3.6 新增】权威案例优先呈现：** 在每批案例的 widget 展示中，权威案例（最高人民法院公报案例、指导性案例、各级法院典型案例/优秀案例等）必须优先排列在列表前部。通过彩色标签（🏛️公报、⭐典型、📌指导等）在「案例名称」列中醒目标注。在报告的「选定案例清单」和「案例详细分析」中必须标注「案例级别」字段。权威案例的「参考价值」分析应特别强调其对下级法院的指导意义和裁判权威性。**识别权威案例的方法：** 从 `content` 字段中检索关键词（「公报」「典型案例」「优秀案例」「指导性案例」「参考性案例」「年度案例」），或在案例元数据中查找权威性标签。
15. **【v3.9.0 新增 / v3.9.1 修订 / v3.10.0 调整】特定律师/律所代理限定：** 当用户指定"某律师事务所某律师代理"的检索范围时，启用代理限定模式：① `query` 追加代理限定信息以偏置语义检索；② `return_num` 上调至 10–15 以容纳二次过滤；③ 对每批返回案例做二次内容过滤，**保留正文中出现该律师姓名、且出现该律所全称或其派生简称/别称（模糊匹配，v3.9.1 新增：去后缀核心名/去行政区划/常用简称如"XX所""XX律所""XX律师"等），且二者共现于同一"委托代理人/代理人"表述的案例**，无关案例一律剔除、不进入候选池与报告；④ widget 醒目标注限定范围，每案标注「代理律师/律所」。宽松模式（仅限律师或仅限律所）匹配范围更大，须标注提示。华宇元典接口无直接律师/律所过滤字段，故以"语义偏置 + 内容过滤"实现，结果以裁判文书正文共现为准。**（v3.10.0 起：《案例检索报告》输出不再单列代理限定字段，检索过滤行为不受影响。）**
16. **【v3.10.1 实务警示】代理限定模式的前提与局限：** 本模式的有效性**依赖华宇元典案例库对目标律师姓名存在可命中的索引**，且文书「委托诉讼代理人」字段含未脱敏的姓名。实测（2026-08-03，检索"龚家勇+浙江金道律师事务所"）表明：① `case_vector_search` 为语义向量检索，按"主题相似度"排序而非"人名精确索引"，query 中的人名常被匹配到「代理/律师费」主题或「龚×勇」等姓名形态，难以精准召回特定律师；② 华宇元典「精选案例库」大量文书对委托代理人作匿名化（XXX、某某、金某某等），即便目标文书入库亦可能无法被检索与核验。故当用户指定"某律师+某律所代理"且**连续多轮（建议≥3批、累计≥30份候选）二次过滤后 M=0** 时，应如实向用户报告"该库无法稳定检索到目标律师代理案件"，说明上述机制性原因，并建议改用其他具备律师代理案件索引的库（北大法宝、企查查、威科先行等）或由用户提供具体案号/文书核验，**不得编造或生成空报告**。

---

## MCP 工具调用参考（华宇元典法律数据）

**已确认可用的 MCP 工具（直接按此名称调用，无需再查询）：**

### 1. `mcp__yuandian-mcp__yuandian_case_vector_search`（案例语义检索）

- **功能：** 根据自然语言 query 在案例库中进行语义相似度检索，返回整理后的案例内容
- **必填参数：**
  - `query`（string）：检索问题 / 查询文本（填入用户的争议焦点）
- **选填参数：**
  - `return_num`（number）：返回数量，默认 45。**本技能强制设为 5**
  - `rewrite_flag`（boolean）：是否改写查询，默认 true
  - `wenshu_filter`（object）：过滤条件，本技能常用字段：
    - `wenshu_filter.ay`（array[string]）：案由，如 `["买卖合同纠纷"]`
    - `wenshu_filter.xzqh_p`（string）：省份，如 `"浙江省"`
    - `wenshu_filter.fayuan`（array[string]）：具体法院名称，如 `["浙江省杭州市中级人民法院"]`
    - `wenshu_filter.cj`（string）：法院层级，`"基层" | "中级" | "高级" | "最高"`
    - `wenshu_filter.ja_start`（string）：结案日期起，`"yyyy-MM-dd"` 格式
    - `wenshu_filter.ja_end`（string）：结案日期止，`"yyyy-MM-dd"` 格式
    - `wenshu_filter.wenshu_type`（string）：案件类别，如 `"民事案件"`
- **返回字段说明（关键）：**
  - `content`：整理后的案例内容（**预加载裁判结果时从此字段提取**）
  - `case_name` 或 `name`：案例名称
  - `ah` 或 `case_id`：案号
  - `court` 或 `fayuan`：审理法院
  - `date` 或 `ja_date`：裁判日期

### 2. `mcp__yuandian-mcp__yuandian_rh_case_details`（获取案例详情）

- **功能：** 按案号或案例 ID 查询单条案例的完整详情
- **选填参数（id 与 ah 至少传一个）：**
  - `ah`（string）：案号，如 `"(2023)浙01民初123号"`
  - `id`（string）：案例标识（从搜索结果中获取）
  - `type`（string）：类型筛选，`"ptal"`（普通案例）或 `"qwal"`（权威案例），不传则不筛选
- **用途：** 生成报告前，用此工具获取选定案例的**完整裁判内容**。**权威案例必须调用以提取完整文书；普通案例在接口不可用、触发限流或候选池较大时，可降级使用搜索结果的 `content` 与已预加载的裁判结果摘要，但仍须满足"附件须含裁判文书或主要内容"的强制要求，严禁仅以 `content` 摘要充当附件。**

