# 检索式生成指南

适用于 `litigation-strategy-report` 技能，法规检索使用 `search_laws.py`，案例检索使用 `search_cases.py`。
目标是按照规则生成检索条件并查询相关法规案例信息，将争议焦点或案件关键信息稳定地改写成可执行命令，而不是直接把原始案情整段塞进检索工具。

## 一、先判断检索对象与策略

- 先区分本轮要解决的是**法规问题**还是**案例问题**。
- 再判断更适合用**关键词检索**、**语义检索**，还是两者并用。
- 同一争议焦点下，关键词检索与语义检索**不冲突**；命中率或相关性不足时，应补跑另一种策略。
- 每条命令只聚焦一个争议焦点，不要把多个问题混在同一条检索式里。

## 二、命令模板

法规检索与案例检索使用**两个独立脚本**：

```bash
# 法规检索
python3 <skill_dir>/scripts/search_laws.py "<query>" [选项]

# 案例检索
python3 <skill_dir>/scripts/search_cases.py "<query>" [选项]
```

### 1. 法规关键词检索

```bash
python3 <skill_dir>/scripts/search_laws.py \
  "中华人民共和国民法典 买卖合同 合同解除"
```

### 2. 法规语义检索

```bash
python3 <skill_dir>/scripts/search_laws.py \
  "买卖合同中买方拒绝收货，双方就合同解除条件及违约责任发生争议"
```

### 3. 法规带时间范围检索

```bash
python3 <skill_dir>/scripts/search_laws.py \
  "民间借贷 利率上限" --from 2020-01-01 --to 2025-12-31 --size 10
```

### 4. 案例关键词检索

```bash
python3 <skill_dir>/scripts/search_cases.py \
  "张三 李四 （2024）京0105民初123号 买卖合同纠纷 货物质量瑕疵"
```

### 5. 案例语义检索（长文本匹配）

```bash
python3 <skill_dir>/scripts/search_cases.py \
  --long-text "卖方已交货，买方以货物质量不合格为由拒付尾款，双方就举证责任与违约责任发生争议"
```

### 6. 案例带多维筛选

```bash
python3 <skill_dir>/scripts/search_cases.py \
  "民间借贷 利率" --cause "民间借贷纠纷" --court-level high \
  --doc-type judgment --from 2022-01-01 --to 2025-12-31 --size 10
```

## 三、法规检索式生成规则

### 1. 何时优先做关键词检索

出现下列信息时，优先组织关键词检索：

- 明确提到法规名称
- 明确提到发文字号
- 能总结出较稳定的规范关键词

关键词检索写法：

- 优先保留法规全称或常用简称
- 能写发文字号时直接写入
- 再补 1 到 3 个核心问题词
- 避免口语化修饰和无关事实细节

可直接使用的输入形态示例：

- `中华人民共和国民法典`
- `法释〔2020〕17号 格式条款`
- `消费者权益保护法 七日无理由退货`

### 2. 何时补充做语义检索

出现下列情况时，补充语义检索：

- 用户没有给出具体法规，但能概括成一个规范适用问题
- 需要围绕某个法律要件、责任分配或规则边界寻找相关规范
- 关键词检索结果过窄、过散或不够贴合争议焦点

语义检索写法：

- 用一句话概括"法律关系 + 争点 + 关键情境"
- 只保留与规范适用直接有关的事实
- 直接描述案情事实，不必写成提问句

建议模板：

```text
<法律关系>中，因<关键事实>引发<核心争点>
```

## 四、案例检索式生成规则

### 1. 何时优先做关键词检索

出现下列信息时，优先组织关键词检索：

- 明确提到案件名称
- 明确提到当事人信息
- 明确提到案号
- 能总结出较稳定的案由或争议关键词

关键词检索写法：

- 有案件名称时优先写案件名称
- 有案号时优先保留案号（可用 `--case-no` 精确指定）
- 可补当事人姓名、公司名、案由（可用 `--cause` 指定）、争议关键词
- 可通过 `--court-level`、`--court`、`--doc-type`、`--trial` 等参数缩小范围

可直接使用的输入形态示例：

- `（2021）最高法民申1234号`
- `北京某科技公司 张某 竞业限制纠纷`
- `房屋买卖合同纠纷 阴阳合同 违约金调整`

### 2. 何时使用长文本语义检索（`--long-text`）

出现下列情况时，使用长文本语义检索：

- 只有问题描述或案情描述，没有明确案件标识
- 需要寻找事实结构相近、裁判思路接近的类案
- 关键词检索命中大量噪声，无法快速锁定有效案例
- 用户提供了完整的案件材料文本

长文本检索写法：

- 用一段文字概括"当事人关系 + 关键行为 + 争议焦点 + 结果/后果"
- 优先保留会影响裁判说理的事实
- 不要堆砌证据细节、情绪表达或无关背景
- 直接描述案情事实，不必写成提问句

建议模板：

```text
<当事人关系>中，因<关键行为>引发<争议焦点>，造成<结果/后果>
```

## 五、重试与改写

单轮检索无结果或结果明显失焦时，在不改变案件核心问题的前提下最多重试 3 次：

1. 先在关键词检索与语义检索（或长文本检索）之间补齐另一种策略。
2. 关键词过长时删去噪声词，只保留名称、案号、案由、要点词。
3. 语义描述过长时压缩成一句争点句；过短时补入法律关系或关键情境。
4. 一个检索式同时包含多个争议焦点时，拆成多条命令分别执行。
5. 案例检索可尝试调整筛选参数（更换 `--court-level`、移除/添加 `--cause`、调整 `--from`/`--to` 时间范围）。
6. 法规检索可尝试 `--all-timeliness` 开启全时效模式，或调整时间范围。
7. 在最终报告中只引用有效命中的命令；若多轮失败，要说明尝试过的方向与局限。
