- 将 student/ 下班级数据迁移至 class/ 目录 - 班级命名改为"课程+老师+时间"格式(如 AI03橙子周六1900) - 学生子目录:课评反馈/ → feedback/,用户画像/【姓名】.md → profile.md - 新增 summary/ 目录用于阶段性总结 - 同步更新 CLAUDE.md、skills、feedback 中的路径引用
181 lines
5.4 KiB
Markdown
181 lines
5.4 KiB
Markdown
---
|
||
name: 出勤记录
|
||
description: 查询和管理学生出勤情况,支持按学生姓名、班级、时间范围查询
|
||
---
|
||
|
||
# 📊 出勤记录查询系统
|
||
|
||
## 功能说明
|
||
本技能用于查询学生出勤情况,生成出勤报表。
|
||
|
||
## 🎯 核心逻辑
|
||
|
||
### 出勤记录文件位置
|
||
```
|
||
.claude/memory/class/[班级]/[学生姓名]/feedback/出勤登记-2026春季.md
|
||
```
|
||
|
||
### 出勤记录状态说明
|
||
- **✅ 出勤**:学生正常上课
|
||
- **⏸ 请假**:学生请假
|
||
- **❌ 未上课**:学生未上课
|
||
|
||
## 📋 使用方法
|
||
|
||
### 方式1:查询某个学生
|
||
```
|
||
/出勤记录 陈嘉博
|
||
```
|
||
输出:陈嘉博本学期的所有出勤记录和出勤率统计
|
||
|
||
### 方式2:查询某个班级
|
||
```
|
||
/出勤记录 周六晚上1900AI03班
|
||
```
|
||
输出:该班级所有学生的出勤汇总表
|
||
|
||
### 方式3:查询指定月份
|
||
```
|
||
/出勤记录 陈嘉博 4月
|
||
```
|
||
输出:该学生4月份的出勤情况
|
||
|
||
### 方式4:查询全部
|
||
```
|
||
/出勤记录
|
||
```
|
||
输出:所有班级所有学生的出勤汇总
|
||
|
||
### 方式5:查询班级最近N节课出勤率 ⭐新增
|
||
```
|
||
/出勤记录 周六晚上1900AI03班 前3节课
|
||
```
|
||
输出:该班级从本周起往回数3节课的出勤情况
|
||
- 例如:本周是第6课,则统计第4、5、6课的出勤情况
|
||
|
||
```
|
||
/出勤记录 周六晚上1900AI03班 前4节课
|
||
```
|
||
输出:该班级从本周起往回数4节课的出勤情况
|
||
- 例如:本周是第6课,则统计第3、4、5、6课的出勤情况
|
||
|
||
## 📊 输出格式
|
||
|
||
### 个人出勤记录
|
||
```
|
||
👤 学生:陈嘉博
|
||
🏫 班级:周六晚上1900AI03班
|
||
📅 学期:2026春季
|
||
|
||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||
|------|------|------|------|------|
|
||
| 2026-04-06 | AI大作家下 | 第5课 | ✅ 出勤 | 已生成课评 |
|
||
| 2026-03-30 | AI大作家上 | 第4课 | ❌ 缺勤 | 病假 |
|
||
| 2026-03-23 | AI训练师 | 第3课 | ✅ 出勤 | 已生成课评 |
|
||
|
||
📊 统计:
|
||
- 应出勤:5次
|
||
- 实际出勤:4次
|
||
- 缺勤:1次
|
||
- 出勤率:80%
|
||
```
|
||
|
||
### 班级汇总表
|
||
```
|
||
📋 班级:周六晚上1900AI03班
|
||
📅 学期:2026春季
|
||
|
||
| 学生姓名 | 应出勤 | 实际出勤 | 缺勤 | 出勤率 |
|
||
|----------|--------|----------|------|--------|
|
||
| 陈嘉博 | 5 | 4 | 1 | 80% |
|
||
| 谭俊研 | 5 | 5 | 0 | 100% |
|
||
| 李承泽 | 5 | 5 | 0 | 100% |
|
||
| 王子墨 | 5 | 4 | 1 | 80% |
|
||
|
||
📊 班级总出勤率:90%
|
||
```
|
||
|
||
### 班级最近N节课出勤率表 ⭐新增
|
||
|
||
```
|
||
📋 班级:周六晚上1900AI03班
|
||
📊 统计范围:最近3节课(第4课-第6课)
|
||
|
||
| 学生姓名 | 应出勤 | 实际出勤 | 缺勤 | 出勤率 | 缺勤课次 |
|
||
|----------|--------|----------|------|--------|----------|
|
||
| 陈嘉博 | 3 | 3 | 0 | 100% | - |
|
||
| 谭俊研 | 3 | 2 | 1 | 67% | 第5课 |
|
||
| 李承泽 | 3 | 3 | 0 | 100% | - |
|
||
| 王子墨 | 3 | 3 | 0 | 100% | - |
|
||
| 黄彦棋 | 3 | 1 | 2 | 33% | 第4,6课 |
|
||
|
||
📊 班级最近3节课平均出勤率:75% (12/16人次)
|
||
⚠️ 需关注学生:谭俊研、黄彦棋
|
||
```
|
||
|
||
## 🔧 实现步骤
|
||
|
||
当用户调用 `/出勤记录` 时:
|
||
|
||
1. **解析参数**
|
||
- 读取用户输入的学生姓名、班级、时间范围
|
||
- 如果参数包含"前N节课"(如"前3节课"、"前4节课"),标记为最近N节课查询模式
|
||
- 确定查询范围
|
||
|
||
2. **定位文件夹**
|
||
- 根据班级名称定位到 `.claude/memory/class/[班级]/`
|
||
- 如果指定学生,再定位到具体学生文件夹
|
||
|
||
3. **读取出勤文件**
|
||
- 查找每个学生文件夹下的 `出勤登记-2026春季.md`
|
||
- 如果文件不存在,显示"暂无出勤记录"
|
||
|
||
4. **解析表格数据**
|
||
- 提取表格中的每一行数据
|
||
- 如果有日期筛选条件,筛选指定月份的记录
|
||
- **如果是最近N节课查询**:
|
||
- 先从所有记录中找到最大课次(当前课次)
|
||
- 计算查询范围:当前课次-(N-1) 到 当前课次
|
||
- 只保留该范围内的记录(如当前第6课,"前3节课"保留第4、5、6课)
|
||
- 记录每位学生的缺勤课次
|
||
|
||
5. **生成报表**
|
||
- 统计出勤、缺勤次数
|
||
- 计算出勤率
|
||
- **最近N节课查询特有统计**:
|
||
- 计算班级平均出勤率
|
||
- 列出需关注学生(出勤率低于100%的学生)
|
||
- 显示每位学生的具体缺勤课次
|
||
- 按格式输出报表
|
||
|
||
6. **返回结果**
|
||
- 显示清晰易读的出勤报表
|
||
|
||
## 💡 技巧提示
|
||
|
||
### 快速筛选
|
||
- 可以用 "4月"、"3月" 等月份名称快速筛选
|
||
- 可以用 "2026-04-06" 这样的具体日期查询单次出勤
|
||
- 可以用 "前3节课"、"前4节课" 查询班级前N节课出勤情况
|
||
|
||
### 最近N节课查询使用场景
|
||
- **阶段性检查**:了解学生最近3-4节课的出勤趋势
|
||
- **重点关注**:找出近期缺勤或出勤率低的学生的具体缺勤课次
|
||
- **动态跟踪**:每周更新,掌握最新出勤情况
|
||
|
||
**示例**:
|
||
- 本周是第6课,`前3节课` 查询的是第4、5、6课
|
||
- 本周是第6课,`前4节课` 查询的是第3、4、5、6课
|
||
|
||
### 异常处理
|
||
- 如果学生文件夹不存在,提示"该学生不在系统中"
|
||
- 如果出勤文件不存在,提示"该学生暂无出勤记录"
|
||
- 如果表格格式错误,提示"出勤记录文件格式有误"
|
||
|
||
### 扩展功能
|
||
未来可以添加:
|
||
- 导出Excel功能
|
||
- 月度出勤对比
|
||
- 缺勤原因统计
|
||
- 出勤趋势图
|