sja-成绩分析

SKILL教育学习
教育学习 未标注权限 许可证不明确
安装这个技能

分析学生考试成绩,计算三率(优秀率、合格率、低分率)、成绩进退情况与排名。当用户提供成绩单(xlsx/csv,含学号、姓名、班级、科目分数)并要求做成绩分析、考情分析、质量分析、算优秀率/合格率/低分率/及格率、对比两次考试进退、排班级或年级名次、找出进步与退步学生、生成成绩分析报告时使用此 skill。

一句话选型结论

按资料字段整理

sja-成绩分析是教育学习类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类教育学习 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_28ab74fb/sja-chengjifenxi
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

教育学习
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_28ab74fb仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量8.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
讲解知识点

按水平把知识点讲清楚。

出练习题

按章节生成练习与答案。

制定学习计划

按目标和时间排学习节奏。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在教育学习场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
sja-成绩分析当前 未标注权限 未标注 未标注 未标注 有
食谱创建课堂课程 未标注权限 GitHub 仓库 25.5 万 Codex、Claude、Cursor 有
语言学习 联网访问 ClawHub 市场 23.6 万 OpenClaw 有
learning 效率 只读 ClawHub 市场 19.2 万 OpenClaw 有
学习习惯 未标注权限 ClawHub 市场 10.2 万 OpenClaw 有
日语家教 只读 ClawHub 市场 8.2 万 OpenClaw 有

SKILL.md 全文

8.5 KB
模型实际读到的说明书原文,来自技能仓库

成绩分析

概述

把一份或两份成绩单,转成教师可直接使用的分析结论:三率(优秀率 / 合格率 / 低分率)、成绩进退情况、排名,输出 Excel 多维表格 + HTML 可视化报告,并给出面向教学的解释与建议。

核心计算全部由 scripts/analyze_scores.py 完成,不要手写计算逻辑——口径统一、避免算错。

快速开始

# 首选解释器(已预装 openpyxl)
PY="C:/Users/Administrator/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
[ -x "$PY" ] || PY=python     # 回退;若提示缺 openpyxl 则先 pip install openpyxl

# 单次考试:三率 + 排名
"$PY" scripts/analyze_scores.py --current 期末成绩.xlsx --out ./成绩分析输出

# 两次考试:额外得到进退分析
"$PY" scripts/analyze_scores.py --current 期末成绩.xlsx --previous 期中成绩.csv --out ./成绩分析输出

脚本运行后会在 --out 目录生成 成绩分析报告_<时间戳>.xlsx 与 .html,同时在控制台打印摘要。

工作流程

第 1 步:确认输入与意图

判断用户处在哪种场景,决定是否要 --previous:

用户说法 配置
"分析一下这次期中考试成绩" 只用 --current
"对比期中期末,看谁进步了" / "成绩进退" 加 --previous
"排一下班里的名次" --rank-scope class(默认)
"整个年级排一下" --rank-scope grade(需表内有「年级」列)

文件已上传但只有文件内容没有本地路径时,先把内容落成本地 .csv 或 .xlsx 再调用脚本。

第 2 步:确认分数线(关键)

默认口径为百分制 优秀 ≥90、合格 ≥60、低分 <40,脚本按各科满分自动折算(如 150 分制 → 135 / 90 / 60)。

出现以下情况必须向用户确认,不要默认套用:

  • 学校有自定标准(如优秀 85、低分 30)→ 用 --excellent --pass --low 覆盖
  • 科目满分不是 100 → 用 --full-marks &quot;语文:150,数学:150,英语:150&quot;
  • 用户要的"低分率"其实指不及格率(<60)→ 说明区别,建议同时给出「不合格率」(报告已含此列)

一句话确认即可,例如:"按百分制优秀 90 / 合格 60 / 低分 40 算,如果学校另有标准告诉我。"

第 3 步:执行脚本

&quot;$PY&quot; scripts/analyze_scores.py \
  --current  本次成绩.xlsx \
  --previous 上次成绩.xlsx \
  --full-marks &quot;语文:150,数学:150&quot; \
  --excellent 90 --pass 60 --low 40 \
  --rank-scope class \
  --out ./成绩分析输出

常用参数:

参数 说明 默认
--current / --previous 本次 / 上次成绩单(必填 / 可选) —
--sheet / --prev-sheet 指定工作表名(多 sheet 时必填) 第一个 sheet
--subject-cols 手动指定科目列,如 &quot;语文,数学,英语&quot; 自动识别
--full-marks 各科满分 100
--excellent --pass --low 优秀线 / 合格线 / 低分线(百分制基准) 90 / 60 / 40
--line-mode ratio 按满分折算;absolute 直接用给定分数线 ratio
--rank-scope class 班级内 / grade 年级内 class
--progress-mode rank 按名次变化 / score 按分数变化 rank
--flat-threshold score 模式下判定持平的分数阈值 1.0
--allow-missing-total 有缺考科目时仍按有效科目求和参与总分排名 关闭
--json 额外输出机器可读 JSON(喂给后续制图/PPT) 关闭
--no-html 不生成 HTML 报告 关闭

进退口径怎么选:试卷难度不同的两次考试(如期中 vs 期末)用 rank,名次变化更真实;同一份卷子的前后测(如周测复测)用 score。

第 4 步:解读结果

脚本已算好数字,这一步要把数字翻成教学判断。按「三率 → 分布 → 进退 → 建议」四层来写,参考下面的话术:

三率
- 优秀率看尖子生厚度;合格率看底线;低分率看兜底风险。
- 三率之和不等于 100%,不要合成"综合得分"。
- 单科合格率低于 85% 或低分率高于 10%,点名为重点科目。

分数段分布
- 看「中等段」是否臃肿:中等与及格人数过多说明教学停在"能听懂、不会用",需要拔高训练。
- 看尖子与后段是否两极分化:标准差超过满分的 15% 提示分化明显。

进退
- 先看整体:进步率与退步率的差值,反映班级整体走势(注意两次试卷难度不同时,rank 口径不受影响)。
- 再看分层:优秀层退步要防滑坡,临界层进步说明帮扶有效,后进层大面积退步要查原因。
- 重点列出「进步之星」和「需要关注」名单,教师可直接找学生谈话。

建议(每条都要落到人和科目,不要泛泛而谈)
- 按名次变化幅度排序取前 5 / 后 5。
- 结合分层进退:优秀层退步 → 拔高与心理;临界层 → 精准补差;后进层 → 基础与信心。

第 5 步:交付

用 present_files 同时给出 Excel 和 HTML:

  • Excel 适合教师继续加工(筛选、排序、贴进其他表),含冻结窗格与自动筛选。
  • HTML 适合快速看结论和汇报,含三率卡片、分数段堆叠条、进退分层图。

结论要点写进回复正文,不要只说"报告已生成"。

输出物结构

Excel 工作表:

Sheet 内容
分析概览 各科与总分的三率、均分、中位数、标准差、极值、各条分数线
分数段分布 优秀/良好/中等/及格/不及格/低分的人数与占比
学生排名 总分名次 + 各单科名次 + 各科分数
进退明细 两次考试的分数与名次变化、分层标签、进退判定(有 previous 时)
进退汇总 进步/退步/持平人数与比率、幅度分布、分层进退(有 previous 时)
缺考名单 缺考科目明细

数据准备与容错

脚本已处理以下情况,无需预处理:

  • 表头不在第一行:自动在前 12 行内定位含「姓名/学号/考号」的表头行(跳过"XX中学考试成绩表""制表:教务处"等标题行)。
  • 列名变体:学号/考号/准考证号、姓名/学生姓名、班级/班别、总分/合计均可识别。
  • 自动识别科目列:排除序号、性别、排名、总分等元数据列,其余数字列视为科目。
  • 缺考:缺考 缺 请假 - / 空值均识别为无成绩,不计入三率分母,不参与总分排名,并列入「缺考名单」。
  • 并列名次:竞赛式排名(1、2、2、4),同分同名次、后续跳号。
  • 编码:CSV 自动尝试 UTF-8 / GBK / GB18030,WPS 与 Excel 导出的文件都可直接读。
  • 只支持 .xlsx / .csv,.xls 会提示先另存,不要尝试解析。

若科目列识别错误(例如把"班级排名""体育"当成科目),用 --subject-cols &quot;语文,数学,英语&quot; 显式指定。

指标口径

三率分母、进退判定、排名规则与边界情况的严格定义见 references/metric-definitions.md。

在回答用户关于"为什么这个人的优秀率算进/没算进""名次为什么并列"时,先读该文件再解释,避免口径说错。

示例数据

assets/sample/期中成绩.csv 与 assets/sample/期末成绩.csv 是 40 名学生、两班、三科、含缺考的示例数据,可用于试跑验证:

&quot;$PY&quot; scripts/analyze_scores.py --current assets/sample/期末成绩.csv \
  --previous assets/sample/期中成绩.csv --out ./示例输出

预期:40 人、每科 39 人有效、总分 37 人有效、3 人缺考。

资源

  • scripts/analyze_scores.py:分析引擎(读表 → 三率 → 排名 → 进退 → 生成 Excel/HTML)
  • references/metric-definitions.md:三率、进退、排名的口径定义与边界情况
  • assets/sample/:可直接试跑的两份示例成绩单

常见问题

5 问
答案由本站依据条目字段整理
sja-成绩分析怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_28ab74fb/sja-chengjifenxi。安装方式为未标注。装完刷新技能列表或重开客户端。

sja-成绩分析支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

sja-成绩分析权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

sja-成绩分析收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

sja-成绩分析用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。