skills/yuandian-law-search/SKILL.md
元典法条与案例检索。本技能应在需要查询中国法律法规条文、检索相关案例、为法律分析提供数据支撑时使用。
npx skillsauth add cat-xierluo/legal-skills yuandian-law-searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
通过元典开放平台 API 检索中国法律法规条文和案例。每次 API 调用消耗 1-50 积分(视接口而定)。所有检索结果会自动归档到本地,方便后续回溯。
每次使用本技能前,必须先执行以下检测流程,确认 API Key 已就绪:
.env 文件:检查 scripts/.env 是否存在YD_API_KEY 的值,确认非空且不是占位符 your-api-key-here⚠️ 元典 API Key 未配置。请按以下步骤获取并配置:
1. 注册/登录:访问 https://open.chineselaw.com ,使用手机号注册
2. 创建 API Key:登录后在个人中心创建 Key
3. 配置密钥:将 Key 填入以下文件
scripts/.env
─────────────
YD_API_KEY=sk-你的密钥
# YD_STRATEGY=balanced
─────────────
每次调用消耗 10 积分,需在平台充值。
配置完成后重新发起检索即可。
# 检测 .env 文件和 API Key
if [ -f "scripts/.env" ]; then
KEY=$(grep '^YD_API_KEY=' scripts/.env | cut -d'=' -f2)
if [ -n "$KEY" ] && [ "$KEY" != "your-api-key-here" ]; then
echo "API Key 已就绪"
else
echo "API Key 未配置"
fi
else
echo ".env 文件不存在"
fi
# 读取检索策略
STRATEGY=$(grep '^YD_STRATEGY=' scripts/.env 2>/dev/null | cut -d'=' -f2)
echo "当前策略:${STRATEGY:-balanced}"
默认使用 scripts/yd-run 执行检索,而不是直接调用底层 yd_search.py。yd-run 会以干净环境启动 Python:清除 Codex/代理相关环境变量,保留 HOME、PATH、语言环境、YD_API_KEY、YD_STRATEGY,并继续读取 scripts/.env 和 archive/ 缓存。
scripts/yd-run search "正当防卫的限度" --sxx 现行有效
若遇到 nodename nor servname provided, or not known 或其他网络错误,先执行无积分消耗的网络检查:
scripts/yd-run --network-check
注意:yd-run 只能避免 Codex 进程环境变量、代理变量和 PATH 漂移造成的影响;如果 Codex 本身以网络沙箱启动,或系统代理/VPN 接管 DNS,子进程仍会受到系统级网络策略影响。终端 Codex 应使用 --sandbox danger-full-access --ask-for-approval never 启动。
本技能共 35 个接口,分为四层。选择规则:
search 语义检索keyword 关键词检索detail 精确获取case 关键词检索(默认普通案例)case-semantic 语义检索case-detailenterprise-search 定位,再用 enterprise-base/enterprise-summary 获取详情enterprise-list --type TYPEhall-detect核心接口(默认使用): search · keyword · detail · case · case-semantic
扩展接口(需确认): regulation · regulation-detail · case-detail · case --authority-only
附属接口(仅限明确要求): enterprise · enterprise-detail · enterprise-search · enterprise-base · enterprise-summary · enterprise-list
专项接口(仅限明确要求): hall-detect
读取 scripts/.env 中的 YD_STRATEGY 配置(默认 balanced)。三种策略决定了 AI 的接口使用、确认流程和补充检索行为。
用户的明确指令始终优先于策略默认行为。
每次 API 调用消耗 1-50 积分(视接口而定)。以下规则不受策略影响:
即当前"正确性优先"策略,不改变现有行为。
在 balanced 基础上进一步收紧,最大限度减少积分消耗。
不考虑积分消耗,最大化检索精度和覆盖面。
旧接口
enterprise和enterprise-detail的策略行为不变,沿用上方"附属接口"的通用规则。
新增接口(hall-detect、enterprise-search、enterprise-base、enterprise-summary、enterprise-list)在三种策略下的具体行为:
| 接口 | 积分 | balanced | economical | aggressive | |------|------|----------|-----------|------------| | hall-detect | 50 | 用户明确要求时才使用,需确认"检测需要 50 积分" | 二次确认(第一次仅展示积分提醒,等用户再次确认才调用) | 可主动对用户引用的法条/案例做幻觉核验 | | enterprise-search | 1 | 直接使用,无需确认 | 优先检查缓存,未命中时直接使用(仅 1 积分) | 直接使用 | | enterprise-base / enterprise-summary | 10 | 用户明确要求时使用,告知积分消耗 | 需二次确认 | 直接使用 | | enterprise-list | 5-10/次 | 用户指定类型时调用,提醒多种类型会累积积分 | 每次只查一种类型,展示全部可用类型让用户选择 | 企业尽调场景可一次性查询多个相关类型(如涉诉+行政处罚+失信) |
关键词检索默认是精确匹配,用户搜索"刑事案件管辖权"不会自动命中"知识产权管辖权"等相关概念。本节说明 AI 应如何主动扩展检索范围、分阶段提炼精准结果。
AI 在执行关键词检索前,应先分析用户查询是否涉及可扩展的法律概念:
当 AI 判断用户查询涉及可扩展概念时,按以下流程操作:
--search-mode or 扩大命中范围)关键词检索、案例检索和法规检索新增 --expand 参数,用于一次性传入多个扩展关键词:
# 法条关键词扩展检索
scripts/yd-run keyword "刑事案件 管辖权" --expand "知识产权管辖,级别管辖,专门管辖" --search-mode or
# 案例关键词扩展检索
scripts/yd-run case "买卖合同 瑕疵担保" --expand "质量纠纷,违约责任" --search-mode or
# 法规关键词扩展检索
scripts/yd-run regulation "民法典 合同" --expand "买卖合同,租赁合同" --search-mode or
--expand 参数的行为:
--search-mode or 模式进行检索--expand 时保持原有的精确匹配行为用户问:"关于刑事案件管辖权有哪些规定?"
第一阶段(广撒网):
scripts/yd-run keyword "刑事案件 管辖权 级别管辖 地域管辖 专门管辖" --search-mode or --sxx 现行有效
分析第一阶段结果:发现大量结果涉及"级别管辖"和"地域管辖"两个核心分支
第二阶段(精提炼):
scripts/yd-run keyword "级别管辖 中级法院" --search-mode and --sxx 现行有效
scripts/yd-run keyword "地域管辖 犯罪地" --search-mode and --sxx 现行有效
检索完成后,AI 应根据检索结果向用户建议相关的扩展方向。提示格式:
本次检索完成了对"刑事案件管辖权"的查询,消耗 XX 积分。
💡 相关的扩展检索方向:
1. 级别管辖 —— 中级/高级/最高法院的管辖分工
2. 地域管辖 —— 犯罪地、被告人居住地的管辖规则
3. 专门管辖 —— 军事法院、知识产权法院等专门管辖
如需深入了解某个方向,请告诉我。
关键词扩展行为与三种检索策略的关系:
| 策略 | 扩展行为 | 分阶段检索 | 积分控制 | |------|----------|-----------|---------| | balanced | AI 判断是否需要扩展,主动执行 | 可执行两阶段检索 | 第二阶段前告知用户将额外消耗积分 | | economical | 不主动扩展,仅用户要求时执行 | 不执行,一次检索完成 | 仅扩展时提示积分消耗 | | aggressive | 自动扩展所有相关概念,不等待确认 | 自动执行多阶段检索 | 不限制,追求最大覆盖面 |
AI 在完成检索后,应主动告知用户检索结果摘要和积分消耗,并根据场景推荐后续操作。
用户问:"正当防卫在什么情况下会超过必要限度?"
用户问:"有没有防卫过当的实际案例?"
用户问:"帮我找广西的买卖合同纠纷判决书"
策略提示:aggressive 模式下,AI 会自动对结果中最相关的 2-3 个案例调用 case-detail,无需等待用户指令。
用户问:"帮我查一下XX公司的背景信息"
策略差异:economical 下 enterprise-base/enterprise-summary 需二次确认;enterprise-list 每次只查一种类型。aggressive 下可一次性查询多个相关类型(如涉诉+行政处罚+失信)。
用户在对话中引用了某法条或案例,AI 希望核验准确性
用户问:"这家公司有没有什么风险?"
archive/<ts>_<query>.md:与 archive JSON 配对,技能内部归档,便于复盘<CWD>/<ts>_<query>.md:用户当前工作目录副本(运行命令时所在的文件夹),便于直接放入案件文件夹--no-report 完全跳过、--no-cwd-report 仅跳过工作目录副本每个领域有语义检索和关键词检索两种模式。
| | 语义检索 | 关键词检索 |
|---|---|---|
| 子命令 | search(法条)/ case-semantic(案例) | keyword(法条)/ case(案例) |
| 输入 | 自然语言问题或描述 | 精确关键词组合 |
| 匹配 | 语义相似度,概念关联 | 字面匹配,AND/OR 逻辑 |
| 返回量 | 默认 45 条 | 默认 10 条 |
用语义检索:用户提出法律问题 / 描述场景 / 不确定关键词 / 需要广覆盖 → 不确定时默认用 用关键词检索:用户给出明确关键词 / 需要 AND/OR 逻辑 / 需按日期、效力级别、法院等精确筛选 / 语义检索结果不够聚焦
此外需区分检索法条还是案例:"XX的法律依据" → 法条检索;"有没有相关案例" → 案例检索;兼要法条和案例 → 先法条后案例,两次调用。
scripts/yd-run search "正当防卫的限度" --sxx 现行有效
scripts/yd-run keyword "人工智能 监管" \
--effect1 法律 --sxx 现行有效 \
--fbrq-start 2022-01-01 --fbrq-end 2026-03-01
scripts/yd-run detail "民法典" --ft-name "第十五条"
# 普通案例(默认)
scripts/yd-run case "买卖合同纠纷" --province 广西
# 权威案例(扩展,需确认)
scripts/yd-run case "买卖合同纠纷" --province 广西 --authority-only
scripts/yd-run case-semantic "正当防卫的限度" --jarq-start 2020-01-01
scripts/yd-run regulation "数据安全" --effect1 法律 --sxx 现行有效
scripts/yd-run regulation-detail --name "中华人民共和国数据安全法"
scripts/yd-run case-detail --type ptal --ah "(2025)桂09民终192号"
scripts/yd-run enterprise "华为" --num 5
scripts/yd-run enterprise-detail --credit-code "9144030071526726XG"
检测文本中引用的法规、法条、案例是否存在幻觉(是否真实存在、内容是否准确)。每次调用消耗 50 积分。
scripts/yd-run hall-detect "根据《中华人民共和国数据保护法》第35条规定,数据处理者应当..."
返回结果包含:
每次调用消耗 1 积分。按名称检索企业,返回候选列表(仅含 ID、名称、信用代码),用于定位目标企业后调用其他企业接口。
scripts/yd-run enterprise-search "华为" --top-k 5
根据企业 ID 或统一社会信用代码获取企业完整信息(含股东、核心成员、分支机构等)。
scripts/yd-run enterprise-base --uscc "9144030071526726XG"
一次调用获取企业各维度数据的统计摘要。
scripts/yd-run enterprise-summary --id "企业ID"
查询企业各维度详细记录,支持分页。每次调用消耗 5-10 积分(涉诉统计和涉诉文书 10 积分,其余 5 积分)。
# 查询企业涉诉文书
scripts/yd-run enterprise-list --type writ-list --uscc "9144030071526726XG"
# 查询企业对外投资
scripts/yd-run enterprise-list --type invest --uscc "9144030071526726XG" --page 1 --size 10
# 查询企业商标
scripts/yd-run enterprise-list --type brand --uscc "9144030071526726XG"
| TYPE | 名称 | 积分 | |------|------|------| | invest | 对外投资 | 5 | | brand | 商标 | 5 | | patent | 专利 | 5 | | soft-right | 软件著作权 | 5 | | works-right | 作品著作权 | 5 | | icp | 网站备案 | 5 | | change-info | 变更记录 | 5 | | writ-agg | 涉诉信息统计 | 10 | | writ-list | 涉诉文书 | 10 | | court-session | 开庭公告 | 5 | | court-notice | 法院公告 | 5 | | execution | 失信被执行人 | 5 | | executed-person | 被执行人 | 5 | | frozen-equity | 股权冻结 | 5 | | punishment | 行政处罚 | 5 | | pledge | 股权出质 | 5 | | guaranty | 对外担保 | 5 | | abnormal | 经营异常 | 5 | | tax | 欠税公告 | 5 | | serious-illegal | 严重违法 | 5 |
| 参数 | 说明 | 可选值 |
|------|------|--------|
| --effect1 | 效力级别(可多次指定) | 宪法、法律、司法解释、行政法规、部门规章、地方性法规 等 |
| --sxx | 时效性(可多次指定) | 现行有效、失效、已被修改、部分失效、尚未生效 |
| 参数 | 说明 |
|------|------|
| --province / --xzqh-p | 省份筛选 |
| --jarq-start / --jarq-end | 结案日期范围 |
| --cj | 法院层级:最高/高级/中级/基层 |
| --wenshu-type | 案件类型:刑事案件/民事案件/行政案件 |
references/MANIFEST.json 记录全部已适配接口的元数据(端点、子命令、分层、分类),以及平台接口排查历史。下次排查新增接口时,更新该文件的 check_history 即可。
| # | 文件 | 接口 | |---|------|------| | 01 | law-vector-search.md | 法条语义检索 | | 02 | law-keyword-search.md | 法条关键词检索 | | 03 | law-detail.md | 法条详情 | | 04 | case-semantic-search.md | 案例语义检索 | | 05 | case-keyword-search.md | 普通案例关键词检索 | | 06 | case-keyword-search-authority.md | 权威案例关键词检索 | | 07 | case-detail.md | 案例详情 | | 08 | regulation-search.md | 法规关键词检索 | | 09 | regulation-detail.md | 法规详情 | | 10 | enterprise-search.md | 企业名称检索 | | 11 | enterprise-detail.md | 企业详情 | | 12 | hall-detect.md | 幻觉检测 | | 13 | enterprise-search-lightweight.md | 企业检索(轻量) | | 14 | enterprise-base-info.md | 企业基本信息 | | 15 | enterprise-aggregation-summary.md | 企业聚合总览 | | 16 | enterprise-out-invest.md | 对外投资 | | 17 | enterprise-brand.md | 商标 | | 18 | enterprise-patent.md | 专利 | | 19 | enterprise-soft-right.md | 软件著作权 | | 20 | enterprise-works-right.md | 作品著作权 | | 21 | enterprise-icp.md | 网站备案 | | 22 | enterprise-change-info.md | 变更记录 | | 23 | enterprise-writ-agg.md | 涉诉信息统计 | | 24 | enterprise-writ-list.md | 涉诉文书 | | 25 | enterprise-court-session-notice.md | 开庭公告 | | 26 | enterprise-court-notice.md | 法院公告 | | 27 | enterprise-executions.md | 失信被执行人 | | 28 | enterprise-executed-person.md | 被执行人 | | 29 | enterprise-frozen-equity.md | 股权冻结 | | 30 | enterprise-punishment.md | 行政处罚 | | 31 | enterprise-pledge.md | 股权出质 | | 32 | enterprise-guaranty.md | 对外担保 | | 33 | enterprise-abnormal-operation.md | 经营异常 | | 34 | enterprise-corporate-tax.md | 欠税公告 | | 35 | enterprise-serious-illegal.md | 严重违法 |
每次 API 调用的完整结果会自动归档到 archive/ 目录。当用户提到"之前查过什么"时,AI 可以直接从归档中提取历史结果,无需重新调用 API。
archive/<ts>_<query>.json 是机器可读版(response/query/fingerprint/source_urls 全字段),archive/<ts>_<query>.md 是同次检索的人类可读版(结构化报告),两者一一对应。同一份报告的副本会同步写入用户运行命令时的工作目录(<CWD>/<ts>_<query>.md),便于附卷。
浏览历史记录:
scripts/yd-run archive-list
scripts/yd-run archive-list --keyword "正当防卫"
如果用户说"之前查正当防卫的时候看到一个案例",AI 应先用 archive-list --keyword "正当防卫" 找到对应的归档文件,然后直接读取其中的 response 字段返回给用户。这不需要消耗积分。
scripts/yd-run raw /open/law_vector_search "正当防卫" --extra '{"fatiao_filter":{"sxx":["现行有效"]}}'
多次检索之后,把 per-call 报告汇总成一份完整的法律检索报告。这是律师/客户看的交付物,per-call 报告是数据底稿。
末尾附"本次检索明细"表格,链接到每条 per-call 报告。
scripts/yd-run consolidate \
--title "张某买卖合同违约金调整" \
--project "case-2024-zhangsan" \
--case "案情:..." \
--strategy "检索思路:..." \
--analysis "分析与判断:..." \
--include "违约金,高空抛物"
--case / --strategy / --analysis 必填:AI 显式传本次任务的案情/思路/判断--include 必填:逗号分隔的查询子串,明确指定"本次任务范围"(不取最近 N 条)
<8位时间戳>_<6位时间戳>_<查询>.md 命名的 .md 文件,文件名包含任一子串即被纳入--project 可选:项目子目录名。默认从 --title slugify(如 "张某买卖合同违约金调整" → "张某买卖合同违约金调整")。用于 archive/<project>/ 归类--title / --purpose / --conclusion / --output 可选
--purpose 不传则基于检索词自动生成--conclusion 不传则提示"详见第五节"--output 默认同时写 CWD 和 archive/<project>/;指定则只写到指定路径consolidate 会把这次任务的所有文件归类到 archive/<project>/ 子目录:
archive/
case-2024-zhangsan/
20260610_192031_货款逾期违约金_司法实践.json ← 从 archive/ 根目录移入
20260610_192031_货款逾期违约金_司法实践.md ← 从 CWD 复制
20260610_192032_逾期付款_违约金_调整.json
20260610_192032_逾期付款_违约金_调整.md
20260610_192058_法律检索报告.md ← 主交付物
多次 yd-run 检索(自动写 per-call .md 到 archive + CWD)
↓
AI 汇总判断后调 consolidate --project "case-x"
↓
创建 archive/case-x/,.md 复制进来,.json 移进来,法律检索报告写进去
↓
CWD 也有法律检索报告副本,per-call .md 仍在 CWD(工作副本)
↓
报告末尾的"检索明细表"链接回 archive/case-x/ 里的副本
per-call .md 是数据底稿,可独立查看;session 报告是主交付物,附案情/思路/判断;项目子目录是组织容器。
元典已发布官方 MCP(https://open.chineselaw.com/mcp-config),3 个 servers:yuandian-law(法律法规)、yuandian-case(案例文书)、yuandian-company(企业信息)。本 skill 的价值现在转向"归档 + 法律检索报告生成"——数据接入由 MCP 负责,本 skill 负责沉淀。
模板在 scripts/.mcp.json.example(与 scripts/.env.example 同目录)。把它复制为客户端能识别位置的 .mcp.json:
{
"mcpServers": {
"yuandian-law": { "url": "https://open.chineselaw.com/mcp/law/stream", "headers": {"Authorization": "Bearer ${YD_API_KEY}"} },
"yuandian-case": { "url": "https://open.chineselaw.com/mcp/case/stream", "headers": {"Authorization": "Bearer ${YD_API_KEY}"} },
"yuandian-company":{ "url": "https://open.chineselaw.com/mcp/company/stream","headers": {"Authorization": "Bearer ${YD_API_KEY}"} }
}
}
设置环境变量后重启客户端,agent 即可自动获得 mcp__yuandian_law__*、mcp__yuandian_case__*、mcp__yuandian_company__* 工具。
Step 1: 调 MCP 拿数据(agent 直接调,不经 yd-run)
mcp__yuandian_law__yuandian_law_vector_search("违约金", sxx="现行有效")
→ 拿到 API 响应 JSON
Step 2: 喂给 yd-run ingest 归档 + 生成 .md
echo "<上一步的 JSON>" | yd-run ingest \
--query "违约金 调整" \
--endpoint "/open/law_vector_search"
→ archive/<ts>_违约金_调整.json + .md(同直接 API 模式)
→ CWD/<ts>_违约金_调整.md 工作副本
Step 3: 多次 ingest 后,调 yd-run consolidate 生成法律检索报告
yd-run consolidate --project "case-2024-xxx" \
--case "..." --strategy "..." --analysis "..." \
--include "违约金"
→ archive/case-2024-xxx/ 项目包 + 6 节标准报告
# 方式 1: 文件输入
yd-run ingest --query "<Q>" --endpoint "/open/<E>" --input <file.json>
# 方式 2: stdin pipe(agent 友好)
cat result.json | yd-run ingest --query "<Q>" --endpoint "/open/<E>"
# 必填
# --query: 用于生成文件名 + 元信息
# --endpoint: 对应 API 路径,用于 routing 到 formatter(见 INGEST_ROUTING)
# 可选
# --cost: 成本标签(默认 "10 积分")
# --no-report: 跳过 .md 报告生成
# --no-cwd-report: 跳过 CWD 副本
--endpoint 取值见 INGEST_ROUTING 路由表(36 个 endpoint 全部覆盖,包括元典 MCP 暴露的全部 24 个数据 tools)。
| 场景 | 推荐模式 | |---|---| | agent 调 mcp__yuandian__* | 走 MCP + yd-run ingest(v1.6.0 推荐)| | 客户端没装 MCP / 单次脚本 | 走 yd-run search/case/... 直接 API(v1.5.x 兼容)| | 调试 / 看 raw JSON | 走 yd-run raw |
两种模式产出完全一致(archive/ 格式、.md 元信息、consolidate 路由),可混用。
脚本每 7 天自动检测远程版本。也可手动检查:
# 检查是否有新版本(会显示最近提交记录)
scripts/yd-run check-update
# 执行更新(仅下载本 skill 目录下的文件,不影响其他目录)
scripts/yd-run do-update
do-update 仅更新 yuandian-law-search/ 目录下的文件,不会修改 .env(API Key)和 archive/(历史检索记录)。
content-media
Legal Visualization。面向法律业务场景的法律图解与图表生成技能;当用户要求把案件材料、合同材料、合规事项、交易安排、证据链、诉讼流程、时间轴、法律关系、客户汇报、法律服务方案或律师团队工作整理成关系图、流程图、时间轴、证据链、风险图、路线图、PNG/SVG/PDF/.drawio 时使用;也兼容“法律可视化”“案件事实图”“法律关系图”等说法。先按受众、任务动词和路由规则筛选场景,再生成可交付图片,并保留 draw.io 源文件作为可编辑底稿。本技能不用于事实核验,也不替代法律结论判断。
development
Skill 质量验收与格式审查工具,也可称 Skilllint。本技能应在用户需要审查 Claude Code Skill 的目录结构、Frontmatter、引用一致性、发布版本、业务流深度、可评估性和安全风险时使用。不要用于:创建新技能、代码审查、应用功能测试、通用编程任务。
content-media
将图片或 PDF 页面按 N 张/页编排为标准化 A4 PDF,或将长截图渲染为单张自适应高度 PDF。本技能应在用户需要将截图(手机截图、视频截图)、照片、已有 PDF 页面或长截图(微信聊天、庭审笔录)合并为 PDF 时使用。不要用于:OCR 文字识别、PDF 内容编辑、图片格式转换。
content-media
本技能应在用户需要 OCR、扫描识别、图片文字识别、文档识别,或将 PDF、图片、Office 文档、URL 转换为 Markdown 时使用。检测到法律材料时可进行保守的法律术语与文书结构优化。不要用于法律事实判断、补写缺失内容、语义改写、印章深度识别或图表实体分析。