律师类案检索与报告
一、能力总述
本 Skill 覆盖律师办案中类案与判例工作的完整链路:从把案情或法律问题改写成专业检索式、调用案例检索连接器取回并核验真实判例、生成样本内裁判观点与争议焦点,到按案号取回指定裁判文书的逐字全文,再到把核验后的案例编排成可正式提交或归档的 Word 类案检索报告。
本单元由原三个技能合并而成,对外只有一个入口,内部按用户意图分流为三种模式:
| 模式 | 名称 | 解决什么问题 | 前身技能 | 核心交付物 |
|---|---|---|---|---|
| 模式A | 类案检索 | 用案情/法律问题找真实判例,出裁判观点、争议焦点、法规清单和案例列表 | lawd-case-retrieval(旧名「律师类案检索」,合并后沿用其 slug) |
默认对话交付(可选 .md) |
| 模式B | 按案号取裁判文书全文 | 已知案号,取回该案文书详情与逐字全文并落盘 | lawd-case-detail-query(旧名「裁判文书网抓取/案号取全文」) |
outputs/ 下 .md + .pdf + 详情 URL |
| 模式C | 正式类案检索报告 | 把已核验案例编排成五部分正式报告 | lawd-case-retrieval-report(旧名「类案检索报告」) |
经脚本校验的 .docx |
一句话记住三者的分界:没有案号、要找一批 → 模式A;已有案号、要一份文书的字 → 模式B;已有案例、要一份能提交的报告 → 模式C。
贯穿三模式的不可违反原则
- 先取得连接器或页面的实际返回数据,再陈述任何案例事实、裁判趋势或法规使用情况。
- 不编造、补全、修正或猜测案号、法院、日期、当事人、审判人员、裁判理由和法律依据。
- 案号有值时逐字引用,不清理空格、不替换括号、不纠错;为空、
null或缺失时统一显示案号:无(模式C 中显示"检索结果未提供")。 - 用户明确要求优先于默认行为;未指定的时间、地域、法院、分类和文件格式不得自行添加。
- 分析结论必须注明基于当前检索样本,不得把有限样本表述为全部司法实践。
- 交付前必须运行对应模式的门禁脚本(第五节),未通过禁止交付。
- 不得使用固定 Skill UUID,也不得假设用户安装了任何其他 Skill。
二、触发与分流
2.1 意图 → 模式路由表
判定顺序:先看用户手里有没有案号,再看要的产出物形态,最后看范围。
| 用户意图(原话典型形态) | 判定要点 | 路由 |
|---|---|---|
| "帮我找找类似的买卖合同纠纷判决" / "查案例" / "找判例" / "有没有类似案件" | 无案号,要一批案例 | 模式A |
| "法院一般怎么判" / "这类案子裁判趋势" / "认定标准是什么" | 要裁判观点/趋势归纳 | 模式A |
| "有没有支持我方观点的裁判" / "对方的主张有判例支持吗" | 要找支持某一方立场的判例 | 模式A |
| "找五个近三年浙江法院竞业限制补偿金的案例" | 有数量/时间/地域约束的检索 | 模式A |
| "(2023)京01民终1234号这个判决书全文给我" | 已给出案号 + 要全文 | 模式B |
| "查一下这个案号" / "下载这份判决书" / "去裁判文书网看这个文书" / "要判决书原文" | 已给出案号 + 指向裁判文书网/文书详情 | 模式B |
| "把刚才检索结果做成正式报告" / "生成类案检索报告" / "出一份案例检索报告" | 要正式报告文件 | 模式C |
| "做份能向法院提交的类案报告" / "检索报告 Word 版" | 要可提交/归档的 .docx |
模式C |
2.2 无案号情形(必须先判断,最容易出错的一条)
模式B 的硬前提是已知案号。 用户口头提到"判决书全文""裁判文书""文书原文"但没有给出案号时:
- 一律走模式A,不得进入模式B,不得让用户"先去查个案号回来";
- 在模式A 检索完成后,明确告知用户:"已检索到 X 条相关判例,如需其中某一条的裁判文书逐字全文,请告诉我序号或案号,我按模式B 去裁判文书网取回。"
- 用户给出的"案号"缺关键段(缺年份、缺法院代字、结构不成立)时,按
references/detail-query-case-no-examples.md请用户补全,禁止猜测补全;用户无法补全时回落到模式A。
反例(必须落到模式A):
- "劳动争议的判决书全文发我看看" → 无案号 → 模式A
- "帮我找一下最高院关于对赌协议的判决书原文" → 只有法院和主题,无案号 → 模式A
- "去裁判文书网查一下买卖合同纠纷的案子" → 只有案由 → 模式A
正例(可进模式B):
- "(2026)最高法刑申3号,判决书全文" → 有案号 → 模式B
- "2017年沪01刑更761号这份文书详情" → 有可标准化的案号 → 模式B
2.3 组合链路与"不重复检索"约定
三个模式可以在同一会话内串联。串联时严禁重复检索:
| 链路 | 触发形态 | 衔接规则 |
|---|---|---|
| A → C | 模式A 交付后用户说"做成正式报告" | 直接复用模式A 本次任务的 cases_full.json / cases_delivery.json / stats.json,按 references/mode-c-retrieval-report.md Step 3 映射为报告输入契约。不得重新调用检索连接器,不得复制一份经模型改写的案例清单当事实源 |
| A → B | 模式A 交付后用户说"第 3 条的判决书全文" | 先按交付集顺序从 cases_full.json 取该案的 caseNo;案号存在→以该案号进入模式B 步骤 B1;案号为空→告知用户"该条检索结果未提供案号,无法按案号取全文",不得由标题、法院或日期反推案号 |
| B → C | 模式B 取回全文后用户要报告 | 把模式B 取得的逐字全文写入报告契约的 full_text;未取得全文的案例该字段留空并如实注明 |
| C(无数据直入) | 用户直接说"生成类案检索报告"但会话内没有案例数据 | 先执行模式A 取数(含模式A 全部门禁),再进入模式C;模式A 检索连接器不可用时按 A 档停止,不得生成虚构报告 |
用户中途改变目的时直接切换模式,已完成的检索结果与已落盘文件复用,不重复索要材料、不重复检索、不重新编号。
2.4 边界(NOT for,指向本单元之外的技能)
- 仅需法律法规条文检索(不要案例)→ 使用
律师法规检索 - 需要被执行人、失信被执行人、执行案件信息 → 使用
被执行人记录查询 - 需要企业工商公示信息 → 使用
律师企业尽调报告 - 需要案例要点摘要/案例笔记 → 使用
律师办案小结 - 需要争议焦点归纳与攻防推演 → 使用
起诉状分析与攻防策略 - 本 Skill 不替代正式法律意见,不虚构案例,不为凑数混入无关案例。
2.5 资源导航(按需读取,勿全文加载)
| 主题 | 适用模式 | 路径 |
|---|---|---|
| 模式A 完整工作流(执行模式A 前必读) | A | references/mode-a-case-search.md |
| 模式B 完整工作流(执行模式B 前必读) | B | references/mode-b-fetch-judgment.md |
| 模式C 完整工作流(执行模式C 前必读) | C | references/mode-c-retrieval-report.md |
| Query 改写规则与输出 JSON 格式 | A | references/query-rewrite-prompt.md |
| 案例检索连接器调用方式(能力调用的唯一来源) | A | references/connector-search.md |
| 归一化分页 JSON、字段映射、去重、裁剪与交接结构 | A / C | references/data-structure.md |
| 对话、Markdown、详情与分类输出格式 | A | references/output-format.md |
| 案号提取、标准化细则、形态校验、对照表 | B | references/detail-query-case-no-examples.md |
| 模式B 脚本用法与浏览器动作清单 | B | references/detail-query-script-usage.md |
output 路径、命名、sanitize、同名策略 |
B | references/detail-query-file-naming.md |
| 报告输入契约(JSON 字段与缺失值规则) | C | references/report-case-input-contract.md |
| 报告五部分结构与写作边界 | C | references/report-format.md |
| 报告校验规则与一致性机制 | C | references/report-validation-rules.md |
三、模式工作流
三个模式的完整执行细则已外移到 references/,按需加载。进入任一模式前,必须先完整读取对应文件并严格按其流程执行;下方仅为速览简介,不得凭简介直接执行。
3.1 模式A:类案检索
将用户问题转化为可执行的类案检索:提取用户约束 → 改写 Query → 三段式探测并调用案例检索连接器 → process_case_results.py 确定性处理 → validate_case_fields.py 字段门禁核验 → 样本内洞察与交付,并含模式A→B/C 内部衔接与异常重试规则。默认对话交付;用户明确要求时出 .md;要求 Word 时转模式C。
⛔ 执行模式A 前,必须先完整读取 references/mode-a-case-search.md,严格按其流程执行。未读取该文件前,禁止开始检索、罗列案号或交付。
3.2 模式B:按案号取裁判文书全文
已知案号时,用「浏览器页面操作」能力登录中国裁判文书网,按案号检索、核对列表、取回文书详情与逐字全文,落盘 Markdown 与 PDF 并给出详情 URL。硬前提:必须已知案号,无案号一律回落模式A(见 2.2)。实验性能力:首条回复必须显性提示;抓取失败必须显性告知并建议改用模式A,禁止静默失败、禁止以摘要冒充全文。
⛔ 执行模式B 前,必须先完整读取 references/mode-b-fetch-judgment.md,严格按其流程执行。未读取该文件前,禁止打开裁判文书网或落盘任何文件。
3.3 模式C:正式类案检索报告
将经过核验的案例数据编排为五部分正式类案检索报告:确认输入 → 确定案例集合 → 建立结构化输入 JSON → validate_report_cases.py 校验 → 大纲与结论 → generate_report_docx.py 生成 → validate_report_docx.py 强制验证 → 交付。数据优先复用模式A 交接产物(不重复检索)或模式B 逐字全文;无案例数据时先执行模式A。只有 .docx 已生成且通过校验才可宣告完成。
⛔ 执行模式C 前,必须先完整读取 references/mode-c-retrieval-report.md,严格按其流程执行。未读取该文件前,禁止生成或交付任何报告。
四、数据源
本技能涉及两类外部能力:模式A 的案例检索连接器、模式B 的浏览器页面操作能力。两者都只写能力语义、不写死任何供应商工具名,运行时按语义探测;找不到就按分级降级处理。两类能力均按 A 档(拒绝降级)处理——判例引证与裁判文书全文属"准确性即价值"场景。
4.1 模式A 数据源:案例/裁判文书检索能力
本技能需要「案例/裁判文书检索」能力:输入自然语言案情描述或结构化条件,返回真实案例列表(案号、法院、裁判日期、案由、裁判要旨等)。调用方式只写能力语义,不写死任何供应商工具名;按 references/connector-search.md 完成三段式探测:
- 探测:用
qwenwork_mcp_tool_list依次检索关键词案例 / 判例 / case / ptal / qwal / pkulaw / fabao / yuandian / 裁判文书,汇总候选连接器; - 匹配:按工具名或描述含案例语义检索、案例条件检索、权威案例(指导性/公报/典型)、案例详情等语义判定;不确定时用
qwenwork_mcp_tool_get查看 schema,schema 不符的切换下一家; - 调用:用
qwenwork_mcp_tool_call执行;多家可用时按能力匹配度选择,首选出错切下一家。
Query 改写结果与用户明确约束按 connector-search.md 的入参语义映射传入(案情描述、案由、法院、地域、日期范围、文书类型、返回条数);具体参数名以连接器运行时 schema 为准。
降级(A 档,拒绝降级):全部连接器不可用时——
停止执行,并告知用户:"本技能需要「案例/裁判文书检索」连接器。请前往 设置 → 连接器,搜索「案例」或「法律检索」安装法律案例检索类连接器后重试。"
不硬跑,不用网页搜索或模型记忆编造案例与案号。
已知缺口:案例检索连接器(北大法宝、元典、法智、企查查、天眼查、Qibook 等)均不提供裁判文书逐字全文抓取能力——语义检索、条件检索与案例详情返回的是整理后的案例内容、命中片段或裁判要旨(元典 case_details 明示"不等同逐字全文")。因此逐字全文没有连接器可以替代,只能走模式B 的浏览器方案。
4.2 模式B 数据源:浏览器页面操作能力
模式B 需要「浏览器页面操作」能力:导航到指定网址、在页面上点击元素、向输入框输入文本、截图、读取页面内容(正文/DOM/可见文本),可选等待/滚动与导出 PDF。用途是登录并访问中国裁判文书网、按案号检索、取回裁判文书全文。
说明:千问办公内置浏览器连接器属原生 builtin 连接器(非市场 MCP),其设置项 key 为
qwenwork.settings.connector.builtin.browser(query / open / enable / disable,典型 tools:navigate / screenshot / click / type)。这里给出 key 仅用于生成"去设置里启用"的引导话术与状态自查;能力匹配一律按语义判定,不在调用处写死工具名。
探测
调用 qwenwork_mcp_tool_list,keyword 依次覆盖:
browser / 浏览器 / navigate / screenshot / 页面 / click / type / 导航 / 截图 / web / browse
(可选状态自查:qw_query({ key: "qwenwork.settings.connector.builtin.browser" }) 查看 connected / status / tools;未连接时按下方 A 档降级引导用户启用,不得自行替代。)
匹配(按工具语义,不写死名字)
在返回工具中,按工具名或 description 是否包含以下语义判定:
- 「页面导航」:描述含 navigate、open url、goto、打开网页、访问网址;
- 「页面内容读取」:描述含 get content、read page、extract text、DOM、snapshot、页面内容、正文;
- 「元素交互」:描述含 click、type、fill、input、点击、输入;
- 「截图」:描述含 screenshot、capture、截图;
- 「等待 / 滚动」(增强,可选):描述含 wait、scroll、等待、滚动;
- 「导出 PDF」(增强,可选):描述含 pdf、print to pdf、打印。
Schema 验证(必做):候选确定后用 qwenwork_mcp_tool_get 查看参数与返回 schema,必须确认同时具备「导航」与「页面内容读取」两项基础能力(导航能接受目标 URL,内容读取能返回页面文本/DOM)。仅有截图而无内容读取的,不满足模式B 要求(截图不能作为文书正文来源);schema 不符的切换下一候选,不得强行套用。
调用
用 qwenwork_mcp_tool_call 执行;动作与用途对照表见 references/detail-query-script-usage.md 第 3 节。具体参数名以运行时 schema 为准。同一会话内可缓存探测结果,避免重复探测。
降级(A 档 · 拒绝降级)
裁判文书全文用于法律引证,属"准确性即价值"场景。浏览器能力不可用(探测不到、未启用、schema 不具备导航与内容读取)时:
停止执行,并告知用户:"模式B 需要「浏览器页面操作」能力才能登录并访问中国裁判文书网取回文书全文。请前往 设置 → 连接器,启用浏览器连接器后重试。当前也可以改用模式A 类案检索,取该案或同类案件的裁判要旨与裁判观点(非逐字全文)。"
严禁:
- 用
WebSearch或任何网页搜索取回的摘要、转载、二手解读冒充裁判文书全文; - 凭模型记忆编造判决内容、裁判理由、法条援引或当事人信息;
- 把模式A 的
sourceContent(连接器整理后内容)标称为"逐字全文"; - 把"连接器缺失"当异常静默跳过——它是必然场景,必须显式提示用户。
实验性状态与风险提示
模式B 的浏览器登录与页面抓取尚未在千问办公完成实测,是本单元最大风险点。执行时必须:
- 首条回复中一句话告知用户模式B 属实验性能力;
- 抓取失败时明确告知失败环节与原因,不让失败静默;
- 同时给出替代路径:"改用模式A 取裁判要旨";
- 不因为失败而回落到任何编造或摘要冒充行为。
五、门禁脚本
通用规则:交付前必须运行对应模式的门禁脚本,任一脚本退出码非 0 即视为未通过,未通过禁止交付。 不得为通过校验而删改用户约束、伪造字段或修改脚本规则。
| 脚本 | 服务模式 | 作用 | 何时必须运行 | 未通过后果 |
|---|---|---|---|---|
scripts/process_case_results.py |
A | 校验分页 JSON 结构、合并分页、稳定去重、形成交付集、裁剪重字段、输出统计 | 每新增一页后重跑一次;输出任何案号前必须已通过 | 停止分析,说明数据无法验证;禁止从异常响应中摘取案例 |
scripts/validate_case_fields.py |
A | 字段映射门禁:案号 / 法院 / 出处(数据来源)三项的类型容错校验与齐全度统计 | 模式A 第五步,交付案例列表前 | 禁止罗列案例;先定位是字段映射问题还是数据源缺字段 |
scripts/validate_report_cases.py |
C | 报告输入 JSON 结构、身份键唯一性、案号重复、占位符、用户明确约束可核验性 | 模式C Step 4,生成 DOCX 前 | 修正数据映射或补充取证,不得强行通过 |
scripts/validate_report_docx.py |
C | DOCX 容器合法性、A4 与黑色标题、五章节齐全、案例集合摘要一致、无占位符 | 模式C Step 7,交付前 | 视为未交付完成;修复后重新生成并重新验证 |
scripts/normalize_case_no_for_search.py |
B | 搜索框键入前强制去空白闸门 | 模式B 步骤 B4.0,提交搜索前 | 不得提交搜索;回步骤 B1 重新标准化 |
scripts/convert_to_md.py |
B | 文书内容落盘为 Markdown,输出 FILE_PATH: 供核验 |
模式B 步骤 B7 | 非零退出或无 FILE_PATH: 时禁止伪造路径 |
scripts/generate_report_docx.py |
C | 确定性 DOCX 生成器(A4、中文字体、标题层级、表格、分页、附件) | 模式C Step 6 | 生成失败按模式C 降级处理,不得改扩展名冒充 |
scripts/save_stdout.py |
A | 命令行输出管道保存工具(> 被禁用时) |
需要管道保存分页 JSON 时 | — |
validate_case_fields.py 用法与拦截口径
python3 "<本技能目录>/scripts/validate_case_fields.py" "<交付集精简JSON>" \
[--max-missing-ratio 0.3] [--json]
校验三项出处字段(验收口径"返回判例带案号 / 法院 / 出处"):
| 字段 | 归一化路径 | 拦截条件 |
|---|---|---|
| 案号 | caseDomain.caseNo |
非字符串类型(int/list/dict 等)→ 逐条定位并拦截;缺失率 > 阈值 → 拦截 |
| 法院 | caseDomain.trialCourt.name |
缺失率 > 阈值 → 拦截 |
| 出处(数据来源) | caseDomain.dataFrom |
缺失率 > 阈值 → 拦截 |
- 默认阈值
--max-missing-ratio 0.3(30%);三者任一大面积缺失即拦截。 - 未超阈值的零星缺失只提示不拦截,但交付时必须逐条注明"未提供",禁止推断补全、禁止拼接法院全称。
- 该脚本补的正是
process_case_results.py的两处已知缺口:① 案号类型异常原先会让整页校验失败且难以定位,本脚本逐条报出实际类型与取值;② 原统计只有missingCaseNoCount,未覆盖法院与出处,本脚本补齐三字段统计与拦截。 --json输出结构化结果,便于把校验结论留痕到交付说明中。
六、交付物
| 模式 | 默认交付物 | 格式与落点 | 必须同时说明 |
|---|---|---|---|
| 模式A | 对话内检索结果 | 按 references/output-format.md 顺序:检索说明 → AI 洞察(标注样本边界)→ 核心法规关注清单 → 类案列表 → 限制说明。不自动写文件 |
Query 与明确约束、检索页数、原始/去重/交付数量、字段缺失情况 |
| 模式A(用户明确要求 .md) | Markdown 文件 | 类案检索结果_YYYYMMDD_HHMMSS.md,保存到用户指定目录;未指定时用当前工作区内明确位置 |
文件路径 + 样本数量;Markdown 不是 Word |
| 模式A(用户明确要求 Word) | 转入模式C | 见下 | 不得把 .md 改扩展名冒充 .docx |
| 模式B | 文书 Markdown + PDF + 详情 URL | {工作区}/outputs/{sanitize(案号)}_案例详情.md、…_案例详情.pdf(命名与同名策略见 references/detail-query-file-naming.md);URL 为详情页完整地址 |
实际用于检索的 caseNo;PDF 是否成功落到 outputs/;若用户改选了列表条目要客观说明;实验性能力提示与失败原因 |
| 模式C | 经脚本校验的 .docx |
五部分结构(检索说明 / 检索目标 / 检索结果 / 检索内容 / 附件),A4 纵向,中文字体,案例间分页;路径由用户指定或工作区内明确位置 | 纳入案例数量、已执行的用户明确约束、缺失的来源信息、DOCX 校验已通过 |
交付硬口径
- 模式A:默认对话交付,不自动生成任何文件;未运行
process_case_results.py+validate_case_fields.py且退出码为 0,禁止罗列案号。 - 模式B:只有文件在
{工作区}/outputs/中实际存在才可报告该路径;PDF 首写在artifacts/、snapshot/等位置不算交付。内联全文与"文件已生成"不得同时成立。 - 模式C:只有
.docx已生成且通过validate_report_docx.py才可宣告完成。Markdown 仅用于大纲预览或失败诊断;在线文档仅为协作副本。 - 文书类正式交付一律只认
.docx(沿用套件统一口径)。 - 任何模式失败时,明确说明失败环节、已完成部分和建议的替代路径,不得用摘要、外站内容或模型记忆填补后宣告成功。
可选套件上下文(不影响独立使用)
- 工作目录根存在
套件运行规则.md时必须先读取并执行;不存在时以本技能硬规则为准,不影响独立使用。 - 工作目录根存在
办案画像.md时,只读取与当前任务有关的诉讼立场、风险偏好和文书风格;不存在时按本技能默认运行,不追问、不报错。 - 仅当用户明确切换到某案或提供唯一案件路径时,读取
cases/{案件简称}/案件画像.md;不得猜测案件,不得跨案带入。 - 画像只影响表达与偏好,不得覆盖事实、法律依据、必备结构、验证结果或本技能硬规则。
- 已明确绑定唯一案件且案件管家可用时,成果完成后提交标准案件事件;无案件不建档、不回写,回写失败不得阻塞成果交付。