当用户提出以下任务时使用本 Skill:
student-record.json 与 03)02)每个学生都必须在本地拥有独立文件夹,统一存放在 ~/StudentGrowthOps/ 下。
以下路径均相对于仓库根目录(包含 student-growth-ops/ 的那一层),不要使用本机仓库的绝对路径去读取或打开文件。
执行前先读取这些项目内文件:
student-growth-ops/question-bank.jsonstudent-growth-ops/student-file-schema.jsonstudent-growth-ops/web/student-form.htmlstudent-growth-ops/server/index.jsstudent-growth-ops/scripts/open_student_form.js如果需要初始化学生目录,在仓库根目录下执行(使用相对路径):
python "student-growth-ops/scripts/scaffold_student.py" --student-name "学生名" --grade "G3" --status "leads" --start-date "2026-04-15"
若本机中学员服务所在目录与仓库布局不一致,可在启动服务前设置环境变量 STUDENT_GROWTH_OPS_ROOT 指向包含 web/student-form.html 的 student-growth-ops 目录根路径。
1-2 个问题。student-growth-ops/question-bank.json。_data/student-record.json(结构见 student-file-schema.json);老师可读层为 02-家长需求.txt、03-课后跟进记录.txt。02 等文件。student-record.json 全文;用一句「系统数据已同步更新」即可。02、03,在收尾用本机绝对路径(纯文本)标出即可,不要用 Markdown 超链接或 file://。这是当前项目 abcclaw 的集成版本,所有路径都以项目根目录下的 student-growth-ops/ 为准。
student-growth-ops/ 目录内学生根目录:
~/StudentGrowthOps/Leads/~/StudentGrowthOps/Active/~/StudentGrowthOps/RenewalWatch/~/StudentGrowthOps/Archived/学生目录命名:
{grade}-{studentName}-{startDate}G3-Luna-2026-04-15老师可读(学员文件夹根目录):
02-家长需求.txt:家长诉求与跟进摘要(纯文本);即时发家长的话术默认只在对话里输出。03-课后跟进记录.txt:学习情况与课后跟进要点(纯文本,按日期追加)系统数据(_data/student-record.json):
student-growth-ops/student-file-schema.json。课次在 lessonLog.rows 中追加对象。网页中间采集:
~/.openclaw/Workspace/student-growth-ops/form-submissions/*.txt 为网页提交后的中间文件(逐行 字段名:内容),需再合并进学员目录中的 student-record.json / 02 / 03。把用户需求映射到以下阶段之一:
intake:咨询、报名、家长需求、回访优先级assessment:试听、测评、首诊反馈lesson-log:单次课后记录weekly-followup:一周汇总、提醒、纠正monthly-report:月度学情文字总结renewal-watch:续费相关沟通(写入 student-record.json 内 parentNeeds、tags)在提问前,先从用户原话中提取已知信息,优先提取:
studentNamegradestatuscurrentLevelprimaryGoalspainPointssourceChannelparentNeeds不要对这些已知字段重复追问。
不管用户要做建档、学情更新还是跟踪记录,第一步都先确认学生名称。
执行顺序:
请先告诉我学生姓名。~/StudentGrowthOps/ 下查找是否已有对应学生目录。判断原则:
已有目录 = 跟踪记录 / 更新资料 / 继续补充没有目录 = 新建档案 / 首次采集正式采集前,先只问这一个问题(问的时候要把两种方式各自的优势说清楚,方便用户选):
你想通过网页填写信息,还是通过对话一步步填写?选项说明(给用户看的优势):
建议使用 AskQuestion 提供两个选项,标签或说明里可带上上述优势,例如:
web:网页填写(更快、更精准)chat:对话填写(方便,微信也可以完成)网页已经写在项目里的 student-growth-ops/ 目录下。
运行时要求:
node "student-growth-ops/scripts/open_student_form.js"node "student-growth-ops/scripts/open_student_form.js" --studentName=张三 --grade=G3 --status=active --stage=monthly-reportnode "student-growth-ops/server/index.js"http://127.0.0.1:8766/student-form8766 是否已被其他进程占用,在终端执行:lsof -nP -iTCP:8766 -sTCP:LISTEN 再根据结果结束旧进程或改用环境变量 STUDENT_GROWTH_PORT 指定其他端口。
网页必须满足这些要求:
GET /api/lookup-student?name=...(由 student-growth-ops/server/index.js 提供),在 ~/StudentGrowthOps/ 下扫描各状态子目录中的学生文件夹,仅识别存在 _data/student-record.json 且其中 studentProfile.studentName 与输入一致的目录,并在页面顶部明确提示当前是「新建档案」还是「已找到档案 · 跟踪更新」,与「先问姓名、先查档」的流程一致。完成填写 按钮。完成填写 后立即进入 loading 状态:提交中... 或 生成中...~/.openclaw/Workspace/student-growth-ops/form-submissions/{studentName}-{timestamp}.txt名字:小明年级:G3学校:育才小学当前英语基础:能跟读家长诉求:提分, 口语表达字段名:内容 格式,供后续 AI 直接读取并合并进正式学生档案;不要把该 txt 当作最终存档。02-家长需求.txt、03-课后跟进记录.txt_data/student-record.json网页模式下的交互规则:
完成填写 后会在 OpenClaw 工作空间生成文本文件。填写完成。~/.openclaw/Workspace/student-growth-ops/form-submissions/以 student-growth-ops/question-bank.json 作为唯一题库来源。
对话规则:
1-2 个未完成字段。AskQuestion。好的方式:
1-2 个题库问题错误方式:
如果学生文件夹不存在:
scaffold_student.py 初始化。如果学生文件夹已存在:
文件映射规则(系统数据均写入 _data/student-record.json 内对应键;老师可读层为根目录 02、03):
intake -> 更新 studentProfile、parentNeeds、tags;需要维护建档摘要时再更新 02-家长需求.txt(不是「发给家长的即时话术」的默认落点)assessment -> 更新 learningBaseline、tagslesson-log -> 向 lessonLog.rows 追加一行(对象字段与 lessonLog.columns 一致),并在 03-课后跟进记录.txt 记一条可读摘要weekly-followup -> 更新 weeklyFollowup、tags,必要时更新 03-课后跟进记录.txtmonthly-report -> 更新 weeklyFollowup、tags,并在 03-课后跟进记录.txt 记可读摘要renewal-watch -> 更新 parentNeeds、tags;必要时将目录转入 RenewalWatch写入规则:
YYYY-MM-DD结束时只需要简洁说明:
student-record.json 全文;用「系统数据已更新」之类概括即可。02、03:若本次有更新,直接写出本机绝对路径(纯文本),不要用 Markdown 超链接或 file://。~/.openclaw/Workspace/student-growth-ops/form-submissions/ 展开后的本机绝对路径(纯文本)。共 1 个版本