课评: 转出学生归档(王子墨/张立坤/黄俊博)+ 周四班级总结 + 新生章梓皓档案 + C++示例代码

This commit is contained in:
chengzi
2026-09-29 22:43:54 +08:00
parent 6f57dfe67e
commit 73cce4c4f5
116 changed files with 6817 additions and 248 deletions

View File

@@ -0,0 +1,161 @@
---
name: parallel-feedback
description: 多班级并行写课评调度器。当用户要同时给2个及以上班级写课评,说「并行写课评」「多班课评」「开窗格同时写课评」「三个班一起写」时使用。通过 Herdr 分窗格启动多个 pi 助手,每个助手写一个班的课评;调度员(主会话)负责开窗格、派任务、转发提问、统一合并周汇总、验收汇报。要求 HERDR_ENV=1 环境。
type: skill
---
# 🚦 多班课评并行调度技能
## 用途
橙子手上有多份课评要写时,不再逐个班串行等待,而是:
```
┌──────────┬──────────────┐
│ 🤖 调度员 │ 🤖 助手A:班1 │
│ (主会话) ├──────────────┤
│ │ 🤖 助手B:班2 │
│ ├──────────────┤
│ │ 🤖 助手C:班3 │
└──────────┴──────────────┘
```
- 每个助手独立运行完整的「课评生成」技能流程(含质检、归档)
- 中途助手提问时进入 `blocked` 状态,**调度员负责把问题带回来、把答案传过去**,橙子无需切窗口
- 共享文件(周汇总、汇总网页)由调度员最后统一处理,避免多助手写同一文件冲突
## 第0步:环境检查(必须)
```bash
test "${HERDR_ENV:-}" = 1
```
- **通过** → 继续本技能流程。
- **失败**(不在 Herdr 中运行):告知橙子「当前不在 Herdr 环境里,没法开窗格并行」,退回**单班串行模式**:在当前会话里按「课评生成」技能逐个班顺序写。
## 第1步:收集各班信息
向橙子收集每个班的一组信息(可一次性问完):
| 项目 | 说明 | 示例 |
|------|------|------|
| 班级全名 | 课程编号+老师+星期时间 | `CSP04橙子周六0830` |
| 授课日期 | 必须与校宝 teaching_date 一致 | `2026-10-25` |
| 课次 | 第几课 | `05` |
| 补充材料 | 录音转写 docx 位置 / AIAGENT 作品文件夹路径 / 其他特殊要求 | 可选 |
> 出勤无需问——「课评生成」技能会自动调校宝 API。
> CSP 班按 v2 规则走 `class-feedback-report` 提交诊断流程,脚本自动读 `.env` 凭据。
## 第2步:开窗格
布局规则:**宽屏**第 1 个窗格 `right`(向右分),后续依次对前一个新窗格 `down`(在右列向下堆叠);**窄屏**全部 `down`。避免切出过窄的列。
```bash
# 第1个窗格(从当前会话向右分)
herdr pane split --current --direction right --cwd "$PWD" --no-focus
# 从 .result.pane.pane_id 拿到新窗格ID,如 w5:p2
# 第2个窗格(对第1个新窗格向下分)
herdr pane split <第1个新窗格ID> --direction down --cwd "$PWD" --no-focus
# 第3个窗格(对第2个新窗格向下分)
herdr pane split <第2个新窗格ID> --direction down --cwd "$PWD" --no-focus
```
⚠️ 必须带 `--cwd "$PWD"`(保证助手在项目目录启动,能加载项目技能)和 `--no-focus`(不抢橙子的屏幕焦点)。
## 第3步:启动 pi 助手
在每个新窗格里启动一个 pi 实例:
```bash
herdr agent start <助手名> --kind pi --pane <窗格ID>
```
- **助手命名规则**:`[a-z][a-z0-9_-]{0,31}`,建议带上班级缩写便于记忆,如 `keping-csp04am`、`keping-csp04pm`、`keping-ai03sun`
- 启动默认 30 秒超时;返回 `agent_not_ready` 时不要慌,用 `herdr agent get <助手名>` 轮询,等状态变为 `idle` 再派任务
- 新 pi 会自动加载本项目 `.pi/skills/` 下的技能(含课评生成)
## 第4步:派发任务
对每个助手发送任务(`--wait` 等到它进入 `idle`/`done`/`blocked`):
```bash
herdr agent prompt <助手名> "<任务文本>" --wait --timeout 120000
```
**任务文本模板**(必须完整包含以下要素):
```
请使用「课评生成」技能,为【班级全名】写【日期】第【N】课的课评。
补充材料:【录音文件位置/作品文件夹/其他要求,没有就写"按技能默认流程获取"】
【并行模式特别约束——必须遵守】
1. 只写本班自己的文件:个人课评、请假/未到记录、班级总结、学生画像更新。
2. 【禁止】写任何共享文件:周课评汇总(output/课评汇总/ 或 E:/cc 下的汇总)、
课评汇总网页、E:/cc/3笔记 —— 这些由调度员统一处理,你跳过即可。
3. 全程自动执行(出勤API、质检、归档),不要中途停下来问我确认。
4. 遇到必须人类回答的问题时,直接清晰列出问题后停住等待。
5. 完成后输出「完成报告」:逐条列出本次保存的所有文件路径。
```
- 提交成功≠开始干活,`--wait` 会等到第一个稳定状态
- 返回 `blocked` → 进入第 5 步问答转发
- 返回 `timeout`/`stalled` → **不要盲目重发**!先 `herdr agent get` + `herdr agent read` 检查实际状态
## 第5步:问答转发(核心服务)
助手中途提问(`blocked`)时的标准动作:
```bash
# 1. 看状态和问题内容
herdr agent get <助手名>
herdr agent read <助手名> --source recent-unwrapped --lines 120
# 2. 把问题用人话转述给橙子(多个助手同时 blocked 就一起列出,编号区分)
# 3. 橙子回答后,把答案传回对应助手
herdr agent prompt <助手名> "<橙子的回答>" --wait --timeout 120000
```
注意事项:
- 橙子也可能**自己点进窗格手动回答**——如果发现状态已变 `working`/`idle`,说明他已亲自处理,跳过转发,别重复发送
- 一次只给一个助手发一条 prompt;发过就没必要再发同样的内容
## 第6步:验收与统一汇总
所有助手都到 `done`/`idle` 后:
1. **读完成报告**:`herdr agent read <助手名> --source recent-unwrapped --lines 150`,核对每个班保存的文件清单
2. **抽查课评**:随机读 1-2 个刚保存的课评文件,确认格式正常(固定开头5知识点、署名等)
3. **统一写共享文件**(调度员亲自做,只有调度员写):
- 更新周课评汇总:把本次所有新课评按「最新的放最前面」合并进当周汇总文件
- 课评汇总网页:按「课评生成」技能的网页规则判断是否需要生成/跳过
4. **向橙子汇报**:逐班列出「✅ 已保存文件 + 📋 质检结论 + ⚠️ 需人工复核点」
5. **询问是否关闭窗格**:这些窗格是本技能创建的,经橙子同意后逐个关闭:
```bash
herdr pane close <窗格ID>
```
> 💡 也可以先不关,让橙子自己点进各窗格浏览课评原文,看完再说「关掉吧」。
## 🚨 故障处理速查
| 现象 | 处理 |
|------|------|
| `agent_not_ready` | 用 `agent get` 轮询等 `idle`,别急着 prompt |
| `agent_prompt_stalled` | 先 `agent read` 看实际状态,确认没收到再考虑重发 |
| `timeout` | `agent get` 看状态;还在 `working` 就 `herdr agent wait <名> --timeout 180000` 继续等 |
| `agent_blocked` | 走第 5 步问答转发;**看不懂它卡在什么 UI 时先问橙子,别替他乱按** |
| 助手进程挂了 | 窗格里 shell 还在,重新 `agent start`(可复用原名)再派任务;已保存的文件不受影响 |
| 两个助手写同一文件 | 不应发生(任务模板已禁止);若发生,以先保存者为准,让橙子核对 |
## 核心原则
1. **调度员不写课评,只做协调**:开窗格、传话、合并共享文件、汇报。
2. **共享文件只由调度员写**:周汇总、汇总网页、笔记文件,多助手一律跳过。
3. **不抢焦点**:所有 split 用 `--no-focus`,橙子想看哪个窗格自己点。
4. **转发提问要保真**:把助手的原问题完整带给橙子,把橙子的回答完整带回去,不自己编答案。
5. **课评发出前必须橙子人工过目**:汇报时明确提醒「发家长前请逐条核对」。