ChHsiching

shandong-cee-line-diff

山东高考 CEE 录取数据整理——大绿本招生计划匹配近三年线差。Use when the user provides 山东高考 admission xlsx and wants them matched into a unified table with 线差+标准差+结构化日志列. Annual reuse; auto-asks 一段线/scope.

ChHsiching 0 Updated 4w ago

Resources

14
GitHub

Install

npx skillscat add chhsiching/shandong-cee-line-diff

Install via the SkillsCat registry.

SKILL.md

山东省高考录取数据匹配整理(年度复用,v5)

单一真相源:完整设计见 spec/plan(docs/superpowers/specs/ + plans/)。
管线阶段/审计检查项/故障排查的详细参考REFERENCE.md(各 Step 内联指针指向具体章节)。
本 skill 是年度执行的浓缩;与 spec/plan 冲突时以 spec/plan 为准。

自主启动流程(收到文件后按此执行)

收到山东省高考数据 xlsx(或提及 大绿本/近三年线差/提前批录取/CEE)时,按以下 7 步自主执行。每步有完成判据;不确定的用 AskUserQuestion 问,不静默停

Step 1:识别三源 + 验证列布局

  • data/(或用户指定路径)下 xlsx,按内容识别:大绿本(含「批次/学校代码/代号/名称」)、近三年线差统计(含「batch/schoolcode/统计线差」)、提前批录取数据(含「批次名称/录取低分」)。
  • 验证列布局:读各表 header,用下方「常量速查」的列索引确认一致。若列变 → 更新 constants.py + 告知用户。
  • 完成判据:三源识别完毕 + 列布局匹配 constants(或已更新并验证)。

Step 2:确认参数(智能询问——只在缺失时问)

先检查调用 prompt 提供了什么:文件路径?年份?一段线?范围?已知改名?
已提供的直接用,只问缺失的。 能从数据推断的(如年份从文件内容)不问。

  • 一段线:调用 prompt 说了就用;没说 → 从近三年「说明」sheet 读取(如有);都没有 → AskUserQuestion 问。
  • 范围:默认「仅提前批+常规批一段、仅本科」——除非调用 prompt 另说。
  • 已知改名校:调用 prompt 提了就记录;没提也行(改名检测 agent 会网查)。
  • 完成判据:一段线已确认(提供 / 读取 / 问到)+ constants.ONE_LINE 已更新。

Step 3:更新常量 + 基线

  • 更新 constants.ONE_LINE + tests/baseline_hashes.py(三源 SHA256)。
  • 完成判据:ONE_LINE + baseline_hashes 反映当年数据。

Step 4:跑确定性管线

  • .venv/bin/python -m scripts.run_pipeline(Stage0→1→1.5→3,不调 agent)。
  • 各 Stage 的详细参数(归一化函数/严格键/粗筛键/Stage2 契约/复核 demote/边界公式)见 REFERENCE.md「管线阶段」——出问题时查阅。

  • 完成判据:管线跑通,主表+边界表产出,agent prompt 已生成待派发。

Step 5:派发 agent(harness 侧)

  • semantic-match/RUN.md:Stage2 语义匹配 agent。
  • semantic-match/RUN_VERIFY.md判断型二次复核(precision-first:粗筛+语义全部须复核)。
  • research/RUN_RENAME.md:改名检测 + WebSearch 网查。
  • 完成判据:三套 agent result jsonl 齐全。

Step 6:回填 + 审计硬门

  • .venv/bin/python -m scripts.run_pipeline --with-agent-results(回填最终主表+边界表)。
  • .venv/bin/python -m scripts.audit_outputexit 0 才算完成
  • 审计 5 项检查的详细判据见 REFERENCE.md「数据质量审计硬门」——audit FAIL 时查阅定位。故障排查表也在 REFERENCE.md。

  • 完成判据:audit exit 0。

Step 7:产出报告

  • 生成 output/数据整理报告.md(markdown,讲清表格关系/作用/口径/阶段分布/列说明,基于真实当年数字)。
  • 完成判据:报告文档产出 + audit exit 0 + .venv/bin/python -m pytest 全绿 + ruff check 无错。

铁律

  • 三源 xlsx 字节级只读:读取前后 SHA256 校验。
  • 范围:仅 提前批 + 常规批一段、仅本科;专科全排除(小标题含「专科」即弃)。
  • 一段线:每年不同(constants.ONE_LINE,Step 2 确认)。
  • 输出不覆盖大绿本原列:行尾追加 7 列(J/T + 匹配阶段/单年数据/选科漂移/复核结果/原因备注)。原 12 + 7 = 19 列。
  • precision-first:只有严格精确构造的匹配算「确定」;所有判断型匹配(粗筛+语义)必须经二次 agent 复核。verdict=确定 留主表;verdict=存疑 → 下放特殊表。主表零错配是完成硬门
  • 精度 2 位:新算的值舍入 2 位;matched 保留源值。
  • T 策略:单年历史 T 留空+日志「(单年数据,无标准差)」;新增估算 J 与 T 同时给(同校同选科均值,T 排除 None)。
  • 审计硬门:完成前必跑 python -m scripts.audit_output,exit 0 才算完成(pytest 全绿 ≠ 产出正确)。

常量速查(Step 1 验证列布局用)

  • 一段线:{2023:443, 2024:444, 2025:441}constants.ONE_LINE)。
  • 近三年列(0-based):批次=0 / 校名=2 / 专业=3 / 选科=4 / 统计线差 J=9 / 标准差 T=19。
  • 提前批低分列:2025=10 / 2024=14 / 2023=18。
  • 大绿本批次:4.常规批 / 1.提前批A类 / 2.提前批B类 / 3.提前批—飞行技术(军队)
  • 专科关键词:「专科」(小标题含即排除)。

匹配规则(核心领域知识——理解专业名匹配的全部依据)

什么使同名专业是「不同专业」(六要素差异化,必须对齐)

  1. 专业方向/描述(如 量化投资含电力储能方向)——核心名同但方向不同 = 不同专业。
    教学样例投资学(量化投资)投资学——两个不同专业、不同分数线,不能混配。
  2. 性别(男/女)——分性别招生、不同分数线。完全同名但不同性别 = 两个独立专业,分开匹配。
  3. 校外合作(中外合作办学 / 校企合作 / 合作国别)——不同合作轨道 = 不同专业。
  4. 独立校区(如 东北大学秦皇岛分校东北大学)——不同校区 = 不同专业。
  5. 招生类别(普通计划 / 中外合作 / 地方专项 / 走读 / 边防预科…)——不同招生轨道 = 不同专业。
    近三年拼进校名,大绿本在小标题(B)列——须剥校名后缀对齐。
  6. 核心名本身(去括号后的基础专业名)——核心名不同 = 不同专业。

什么不影响「是否同一专业」(忽略类,剥除后匹配)

身高 / 体重 / 色盲 / 色弱 / 视力 / 体检标准 / 合格 / 语种 / 单科成绩 / 年龄 / 特殊类型招生控制线

性别是唯一例外——不能忽略。

关键洞察

  • 大绿本 2026 专业名远比近三年详细(子专业清单/校区/培养描述/国际交流长文)→ 核心名+差异化括号对齐即可匹配,多余描述性长文不影响。
  • 核心名唯一也可能错配方向(投资学反例)→ 判断型匹配须二次复核(precision-first)。
  • 选科政策漂移(37.5% 近三年跨年多值)→ 选科不作为差异化项。

输出(output/

文件 内容
大绿本_附线差_分层版.xlsx 原表全行 + 行尾 7 列(J/T + 5 结构列);专科行标注「专科(超范围)」
大绿本_附线差_扁平版.xlsx 仅本科专业行 + 行尾 7 结构列
新增专业.xlsx 估算值 / 退化级别 / 样本量 / 日志
被删旧专业.xlsx 近三年 J/T + 日志
特殊情况.xlsx 飞行不成 / 剩余无法匹配 / 复核存疑
学校改名表.xlsx 新校名 / 候选旧校名 / 置信度 / 专业数 / 备注 / 人工已核验
新增校表.xlsx 未配对的大绿本独有校
停招消失校表.xlsx 未配对的历史独有校

分层版与扁平版同源:同一 MatchResult 列表,同专业行 7 列行尾逐行相等(审计检查④验证)。

主表 5 结构化列(便于筛选):匹配阶段 / 单年数据(是/空) / 选科漂移(是/空) / 复核结果(确定/空) / 原因备注(自由文本)。flag 列「是」即满足、「非空」即可筛。边界表保留原单一日志列。

完成判据(每项必过)

  • 8 张表齐全;pytest 全绿(≥80%) + ruff clean。
  • 审计 exit 0(主表零错配 / 0空匹配阶段 / 0空行 / J-T一致)。
  • 三源 SHA256 不变;100% 归类;精度 ≤2 位;报告文档已生成。