# Tencent Yuanbao Gaokao Regional Passing Scores

> 高考地区分数线信息检索助手。当用户询问各省份历年高考录取分数线、录取批次或对应排名时使用，支持按地区、年份、选科和批次查询，自动适配新老高考政策差异。

- Skill: `ahang1598/tencent-yuanbao-gaokao-regional-passing-scores` (Agent Skill, multi-file: 18 files)
- Install (CLI): `npx skillmds@latest add ahang1598/tencent-yuanbao-gaokao-regional-passing-scores`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/tencent-yuanbao-gaokao-regional-passing-scores/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/tencent-yuanbao-gaokao-regional-passing-scores

---


## 核心原则

根据用户的问题，依次提取以下四类信息：
**地区（place）、年份（year）、选科（student）、录取批次（luqupici）**

回答必须严格遵循脚本返回字段，不得使用模型记忆、历史回答或外部网络资料补写分数线。同一地区、年份、选科、批次条件一致时，重复回答必须保持与脚本返回数据一致；若脚本返回多条口径不同的数据，只列出各自字段并提示以省级招生考试机构官方发布为准。

用户侧表达要面向高考生和家长，避免"优先级、P0/P1/P2、阻断、闸门"等内部术语，也不得使用评价性、标签化措辞。

---

## Step 0：时间锚点自检（调用脚本前必走）

高考是按年举行、有明确时间窗口的全国性考试，所有批次分数线都依赖官方放榜才会发布。时间锚点用于避免查询未来或明显未完成考试的数据，**不得替代结构化接口的实际返回**。进入 6 月下旬发布窗口后，不要仅凭日期或旧经验判断"尚未公布"。

### 0.1 关键时间节点

- **高考笔试**：每年 **6 月 7 日 ~ 6 月 9 日**（部分新高考省份考至 6 月 10 日）
- **成绩与批次线公布**：通常 6 月下旬（6 月 23-26 日前后，各省可能提前或错峰）
- **脚本年份策略**：`fetch_data.py` 不再硬编码最新数据年份；显式传入的年份会按原值查询，未传年份时会按当前日期动态回溯最近年份

### 0.2 自检流程

1. 确认运行时当前日期（年-月-日）
2. 确认用户问的"目标年份"
3. 按下表处理：

| 情形 | 处理 |
|------|------|
| 目标年份 > 当前年份 | **不调用脚本**，明确告知"该年份高考尚未举行，无任何批次线数据" |
| 目标年份 = 当前年份，6 月 9 日前 | 不以目标年份调用脚本；如需参考，可查最近一年已返回数据并显式标注年份 |
| 目标年份 = 当前年份，6 月 9 日后且进入 6 月下旬发布窗口 | **调用脚本查询目标年份**，以脚本返回为准；不得仅凭时间锚点断言"尚未公布" |
| 脚本返回目标年份数据 | 正常回答 |
| 脚本未返回目标年份数据 | 说明"当前结构化数据源未返回该年份批次线数据"，不要替官方断言"尚未公布"；可按需提供最近一年已返回数据作参考 |
| 目标年份 < 当前年份 | 正常调用脚本 |

### 0.3 脚本年份提示

`fetch_data.py` 会优先查询用户显式传入的年份，不再把大于固定上限的年份截断为旧年份。回复必须以脚本返回的"分数查询年份"字段为准；若返回年份与用户目标年份不一致或为空，只能说明当前数据源的返回情况，不得把旧年份数据标成新年份。


---

## Step 1：提取地区（place）
读取 `./ref/place.json` 中的地区列表，将用户 query 中提及的地区与列表进行匹配。

**匹配规则：**
- 支持别称/简称（如"魔都"→ 上海、"首都"→ 北京、"闽南"→ 福建、"桂"→ 广西）
- 支持容错匹配（如存在错别字或非标准表述，尽量推断正确地区）
- 支持城市到省份的映射（如"福州"->"福建"）
- 如果用户提及了多个地区，则**每个年份单独生成一个 dict**，不得将多个年份合并到同一个 dict 中
- 如果用户想查询所有省份（如"各省"、"各地区"），则返回 "place" : "全省"
- 以列表中的标准名称作为最终输出值

**若无法从 用户query 中识别地区，则询问用户:"您想查询哪个省份的信息呢？"。**

---

## Step 2：提取年份（year）
- 若用户明确提及年份（具体的数字），直接提取年份
- 若用户提及的是模糊年份，如"今年""去年""近三年"，必须按运行时当前日期动态换算为具体年份；例如"今年"=当前日期所在年份，"去年"=当前日期所在年份减 1。不得在说明中写死固定年份。
- 若用户未提及年份，则不返回 "year" 字段
- 年份必须是四位数字，如 "25年"->"2025"
- **年份必须先与 Step 0 的时间锚点自检结果联动**：未来年份和 6 月 9 日前的当前年份不得直接查询；进入 6 月下旬发布窗口后，应将目标年份传给脚本验证，按脚本实际返回判断。

---

## Step 3：提取选科（student）
读取 `./ref/student.json` 中的选科列表，将用户 query 中提及的选科与列表进行匹配。

**核心难点：新老高考政策差异**
中国各省份在不同年份实行的高考政策不同（分为：传统文理科、3+3新高考、3+1+2新高考），选科名称会随之变化。你必须结合 Step 1 的【地区】和 Step 2 的【年份】进行动态匹配与转换。

下表列出各省份切换新高考的年份，**切换年份之前为传统文理科模式**：

| 模式 | 省份 | 启用年份 |
|------|------|----------|
| 3+3 | 上海、浙江 | 2017 |
| 3+3 | 北京、天津、山东、海南 | 2020 |
| 3+1+2 | 河北、辽宁、江苏、福建、湖北、湖南、广东、重庆 | 2021 |
| 3+1+2 | 甘肃、吉林、黑龙江、安徽、江西、贵州、广西 | 2024 |
| 3+1+2 | 山西、内蒙古、河南、四川、云南、陕西、青海、宁夏 | 2025 |

内蒙古蒙授生（蒙授文科/蒙授理科）不受以上规则约束，始终保持独立分类。

**匹配与自动纠错规则：**
1. **传统高考模式**：
   - 标准选科为：**文科 理科**
   - 映射：用户提及"文史类"→ 文科；"理工类"→ 理科
2. **3+3 新高考模式**：
   - 标准选科为：**综合**（不分文理）
   - 纠错：若用户提及"文科/理科/物理/历史"，自动映射为：**综合**
3. **3+1+2 新高考模式**：
   - 标准选科为：**物理 历史**
   - 纠错：若用户提及"理科/理工"，自动映射为：**物理**；提及"文科/文史"，自动映射为：**历史**

**若用户未提及选科，则不返回 "student" 字段**

---

## Step 4：提取录取批次（luqupici）
读取`./ref/luqupici_summary.json`中的录取批次列表
然后，将用户 query 中提及的批次与列表进行匹配。

**匹配规则：**
- 支持别称/简称
- 支持容错匹配（如存在错别字或非标准表述，尽量推断正确批次）
- 如果用户提及了多个批次，则**每个批次之间使用空格隔开**，如"普通类_本科 普通类_专科"
- 如果用户未提及批次，则不返回 "luqupici" 字段
- 如果用户只提及了本科或者专科，但是没有具体到类别，则需要都返回。如"本科" -> "普通类_本科 艺术类_本科 专项计划_本科 预科/民族_本科 体育类_本科 军队类_本科"


## Step 5：调用脚本查询数据（db_info）
确认地区、年份、选科和录取批次后，调用以下脚本获取真实数据：
**若未提取到任何信息，也需要调用脚本获取数据。**
**脚本路径：** `./fetch_data.py`
**调用方式：**
```bash
python ./fetch_data.py --place {place...} --year {year...} --student {student...} --luqupici {luqupici...}
```

Windows 环境如 `python` 未绑定到 Python 3，可使用 `py -3` 替代；Agent 执行时优先使用当前可用的 Python 解释器。

## Step 6：根据脚本查询到数据判断是否符合考生的意图
- 根据"录取批次"信息，保留符合用户意图的数据。

## Step 7：总结
结合上述内容，对用户的问题进行回答。
注意需要简明扼要，只复述脚本返回的地区、年份、考生类别、录取批次、分数、位次等字段；不要延伸到录取预测或院校评价。

**强制年份标注**：
1. 回复开头必须显式写明"这是 {脚本返回的年份} 年 {地区} {选科} {批次} 批次线"（如"这是 2026 年湖南物理类普通类_本科批次线"）。
2. 当用户问的年份与脚本实际返回的年份不一致或脚本返回为空时，**必须**说明："当前结构化数据源未返回 {用户年份} 年数据"；如提供其他年份数据，必须写明"以下为 {脚本实际年份} 年数据，仅供参考"。
3. 严禁在回复中出现"2026 年福建物理类本科线是 XXX"这种把旧年份数据当新年份输出的句子（除非脚本确实返回了该年份）。

