下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-r4zbzp7j--abcclawpay.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-r4zbzp7j/abcclawpay。能帮英语老师做出想要的少儿英语作业纸。说个上课主题、发张图片、传份教材或英文绘本都行,阅读理解、词汇配对、语法练习、课后练习都能出。提到作业纸、练习纸,或者要把图片、PDF、绘本改成练习时使用。
阅读全文 (展开查看完整说明)
概述
ABCClaw Worksheet Studio · Skill Pay
将教学目标、参考图片或 PDF 教材转化为可直接打印、课堂使用的全英文作业纸。通过 ABCClaw 后台完成账号认证、图片上传、教材分析、作业纸规划、图像生成和本地交付,形成从需求到成品的完整生产流程。
本 Skill 面向跨平台 Agent 环境。所有业务操作统一通过自带 Node.js CLI 执行;登录凭据、任务状态、分析结果和生成图片统一保存在 Skill 自己的运行目录中,不依赖某个 Agent 平台的专有存储。
About ABCClaw
ABCClaw 是面向教师与教学场景的 AI 助手,帮助用户更高效地完成备课、教学资料制作、课堂活动设计和课后练习等工作。ABCClaw 将账号、AI 能力、任务状态与使用积分统一托管,让教师能够把精力放在教学目标和内容质量上,而不必自行配置模型或生成服务。
本 Skill 是 ABCClaw 英语作业纸能力的独立跨平台入口。用户可以在支持 Node.js、本地文件读写和 weixinpay_pay 支付工具的 Agent 平台中,通过手机号注册或登录 ABCClaw,并调用同一套后台服务完成教材分析与作业纸生成。账号有可用积分时优先扣积分;积分不足时,后台返回 Skill Pay 的 402 支付请求,用户确认支付后继续同一份作业纸任务。手机号仅用于注册和登录 ABCClaw,不会写入作业纸或公开展示。
Core Capabilities
- 账号接入:检查现有登录态,通过手机号和短信验证码自动完成新用户注册或老用户登录。
- 主题生成:根据词汇、语法、阅读或课堂活动目标生成一张或多张定制作业纸。
- 需求约束:先提取用户明确指定的数量、题型、版式、难度和保留/删除内容,不自行补写未提出的创作要求。
- 偏好复用:当前要求优先;仅使用当前上下文中已确认或高置信的作业纸偏好补充未指定字段。
- 偏好学习:用户明确要求长期沿用或记住时,分析指定样例并更新当前 Agent 工作区的作业纸偏好。
- 图片驱动:上传单张本地教学图片,分析图片中的内容、文字、题型和版式,再按用户目标生成新作业纸。
- 教材驱动:上传本地 PDF,由后台生成结构化
worksheetPlan,再按规划逐张生成。 - 风格继承:使用规划中的
referenceImageUrl保持作业纸与原教材或绘本的视觉风格一致。 - 积分与 Skill Pay:由 ABCClaw 后台校验可用积分;不足时通过受控的微信 Skill Pay 支付一次 ¥0.40,支付生成记录独立标识,不计入积分限制。
- 任务恢复:保存事件 ID 和状态文件,在进程中断或平台会话恢复后继续同一任务。
- 成品交付:下载生成图片到 Skill 目录,并按当前平台支持的附件方式交付。
Operating Contract
以下规则适用于所有路径:
- 认证前置:每次业务操作先检查登录态;Token 有效时禁止重复发送验证码。
- CLI 唯一入口:只调用
scripts/中的 CLI;不要手写 HTTP 请求、Token Header 或后台 URL,也不要追加未记录的 JSON 输出参数。 - 后台规划优先:PDF 流程只以
worksheetPlan.worksheets[]为生成依据,不自行补写或替换规划。 - 后台配置优先:不传模型名;模型、供应商、画幅和质量由 ABCClaw 后台统一控制。
- 英文成品:作业纸中的标题、说明、题目和选项必须全英文,不出现中文或中英双语。
- 任务幂等:任务一旦创建,查询中断或轮询超时不代表可以重新生成;优先恢复同一任务。
- 凭据保密:不要求用户粘贴 Token,不显示完整 Token,不把凭据写入发布包或对话内容。
- 真实交付:生成成功后必须交付实际图片,不只描述“已经生成”。
- 积分与支付以后端为准:不在本地预判、修改或绕过积分规则;只根据后台明确返回的 402 支付请求采取行动。
- 支付须确认:只有在 CLI 明确输出
PAYMENT_REQUIRED后,向用户展示本次 ¥0.40 的价格并取得本次支付确认,才可调用weixinpay_pay(paymentCode);绝不自动扣款、绝不重复支付。 - 支付后原样恢复:支付完成后,只使用 CLI 给出的同一
stateFile执行--resume。不得更改 prompt、参考图、requestId、eventId或X-Out-Trade-No,不得新建任务。 - 当前要求优先:所有分析和生成 prompt 都先整理用户需求;未提及的数量、题型、版式、难度、年龄、题量或内容要求不补写、不追问。
- 偏好谨慎使用:仅使用当前上下文中已确认或高置信、且不与本轮要求冲突的偏好;单次参考样例不自动写入长期记忆。
Runtime Location
将包含本文件的目录记为 <skill-dir>,始终使用实际安装路径执行命令:
<skill-dir>/
├── SKILL.md
├── scripts/
├── references/
└── .abcclaw-runtime/
├── credentials.json
├── artifacts/worksheet-analysis/
└── artifacts/worksheet-generation/.abcclaw-runtime/ 在首次运行时自动创建。构建发布包时必须排除该目录和 dist/,避免把用户凭据、教材、生成图片或旧发布包带入 zip。
Step 0: Authentication Gate
这是每个作业纸请求的强制前置步骤。除非用户明确要求退出登录,否则先运行:
需要向用户索取手机号时,原样发送下面这段说明,不要改写、不要拆开追问:
登录说明:ABCClaw 平台用手机号短信验证码登录,无需密码。我发一条验证码到你手机(四位数字),你把验证码回给我即可完成登录,登录凭证会保存在本地;如果这个手机号没注册过,首次登录会自动创建账号。请回复你的手机号。
不得暗示手机号会写入作业纸、公开展示或用于本 Skill 之外的内容处理;不要承诺每日赠送积分的具体数量、发放时间或长期规则。
node "<skill-dir>/scripts/abcclaw-auth.mjs" status按 CLI 文本结果分支:
已登录 ABCClaw:继续原始作业纸任务,不进入短信流程。尚未登录 ABCClaw、登录已过期或登录已失效:进入单次短信登录流程。- 连接超时或网络错误:报告暂时无法连接 ABCClaw;不要误判为未登录,不要发送验证码。
登录状态检查成本低,短信发送有频率和日限额。不要因为“不确定”而重新登录;始终先执行 status。
SMS Login Flow
当且仅当登录态无效时执行以下两步。
1. Send Verification Code
当前对话没有手机号时,先发送上面的固定登录说明,然后只等待用户回复中国大陆手机号。不要另起一套说法,不要索取与注册登录无关的个人信息。拿到手机号后运行:
node "<skill-dir>/scripts/abcclaw-auth.mjs" send-code
--phone "<phone>"发送成功后告知验证码已发送到脱敏手机号,只询问短信验证码并停止等待回复。不要猜测验证码,不要在同一次登录流程中自动重发。
若 CLI 返回发送频繁或日限额提示,原样说明原因和重试条件,不绕过限制。
2. Verify and Continue
用户回复验证码后,使用此前同一手机号运行:
node "<skill-dir>/scripts/abcclaw-auth.mjs" login
--phone "<phone>"
--code "<code>"用户主动提供邀请码时才追加 --invite-code "<invite-code>";不要主动索要邀请码。
- CLI 返回
注册并登录成功:后台已创建新账号。 - CLI 返回
登录成功:已有账号已登录。 - 登录成功后恢复并继续登录前的原始作业纸请求,不要求用户重新描述任务。
- 验证码错误时只请用户核对当前验证码;验证码过期后,征得用户同意再发送一次。
仅在用户明确要求退出时运行:
node "<skill-dir>/scripts/abcclaw-auth.mjs" logoutUser Requirement Analysis
调用 analyze-book-pdf.mjs 或 generate-worksheet.mjs 前,先把用户原话整理成简洁、无歧义的需求提示词,重点检查:
- 数量:只写用户明确指定的作业纸张数和每张题目数量。
- 题型:只写用户明确指定的连线、选择、填空、排序、阅读理解、词汇练习等题型。
- 版式:只写用户明确指定的纸张方向、内容分区、插图风格、留白和答题空间。
- 其他要求:主题、学习目标、页码、难度、目标年龄、必须保留或删除的内容。
完整保留用户明确提出的要求,不得弱化。用户未提及的字段保持未指定,不擅自补写,也不为常见参数追问。只有当前上下文中已有明确、可靠的作业纸偏好,且不与本轮要求冲突时,才用对应偏好补充用户未指定的字段;没有可靠偏好时静默按本轮要求继续。
PDF 分析 prompt 可以使用用户语言。传给 generate-worksheet.mjs 的生成 prompt 必须是英文,并包含 English-only. Do not include any Chinese text.。例如用户只说“基于这个绘本帮我生成两张作业纸”时,PDF prompt 只表达“基于该绘本生成 2 张作业纸”,不得自行添加阅读理解、词汇练习、答题空间或不显示答案等要求。
Worksheet Preference Learning
仅当用户明确表达长期意图,例如“以后都参考这张作业纸”“以后就按这个来”“以后按这种方式”“记住我喜欢这种作业纸”,或语义等效的长期表述时:
- 读取 [references/worksheet-preference-memory.md](references/worksheet-preference-memory.md)。
- 分析用户明确指定的作业纸和当前会话,只归纳有证据支持的内容类型、题型组合、题量、版式、视觉风格和明确禁忌。
- 更新当前 Agent 工作区
MEMORY.md中唯一的“作业纸偏好”章节;合并同义项,不堆叠重复或相互冲突的记录。 - 当前要求优先于记忆;记忆只补充本轮未指定的字段。单个样例中无法确认的特征不得冒充长期偏好。
- 只保存抽象偏好,不保存整份作业纸内容、附件路径、题目、答案、OSS URL 或个人隐私。
用户仅说“参考这张/这份/第 N 张作业纸”“参考图片的作业纸版式”或其他单次参考表述时,只分析指定样例并用于本次任务,不写入长期偏好,也不宣称已经记住。
Workflow Routing
完成 Step 0 后,根据输入选择唯一生产路径。
Path A: Topic-to-Worksheet
用户没有提供 PDF 或图片,或明确要求只按主题直接生成时走此路径。
- 按“User Requirement Analysis”提取学习主题、题型、目标年龄、数量和特殊要求。
- 未指定的难度、年龄、题型、题量和版式保持未指定,不追问,也不自行采用默认创作要求。
- 用户明确要求多张时按指定数量顺序生成;未指定数量时只创建一次生成任务,不在 prompt 中声称用户要求一张。
- 将分析后的需求整理成英文生成提示词,并强制包含:
English-only. Do not include any Chinese text.- 用户明确提出的学习目标、题型、数量、版式和其他限制。
- 当前上下文中不冲突的已确认或高置信偏好。
- 不添加用户没有提出、偏好中也没有可靠依据的创作要求。
- 开始前告知用户一次“正在生成作业纸,请耐心等待”,随后立即执行,不把等待提示作为最终回复。
node "<skill-dir>/scripts/generate-worksheet.mjs"
--prompt "<English-only prompt>"
--category "<category>"
--timeout-ms 180000只有后台、图片上传脚本或 worksheetPlan 提供远程参考图 URL 时才追加:
--url "<referenceImageUrl>"不要把用户本地图片路径直接传给 --url。
Path B: Image-to-Worksheet
用户只提供或指定一张本地图片,并要求根据图片生成作业纸时走此路径。
- 支持 JPG、PNG、WEBP,文件不得超过 5MB。只处理最新用户消息中去重后的单张图片。
- 从当前平台提供的附件信息中取得真实本地路径;如果路径包在
[clawx-staged-path: ...]、[media attached: ...]或类似标记中,只把路径本身传给 CLI。 - 不走 PDF 分析,也不要把本地路径、
file://URL 或附件标记直接传给generate-worksheet.mjs --url。 - 开始前只告知用户一次“正在根据图片制作作业纸,请耐心等待”,然后连续完成上传和生成;拿到 URL 后不得停下等待确认。
先上传图片:
node "<skill-dir>/scripts/upload-worksheet-image.mjs"
--image "<local-image-path>"上传成功后从纯文本结果的 ossUrl: <url> 行取得远程 URL。生成提示词必须至少完整包含:
Analyze the reference image carefully. Identify its visible content, text, learning topic, vocabulary, question types, layout, and illustrations.
Based on the analyzed user request: <ANALYZED_USER_REQUEST_IN_ENGLISH>. Create a new worksheet using the reference image content as source material and follow only the explicitly requested goal and format.
English-only. Do not include any Chinese text.将 <ANALYZED_USER_REQUEST_IN_ENGLISH> 替换为按“User Requirement Analysis”整理后的数量、题型、版式和其他明确要求。用户只上传图片、没有补充要求时使用:
Create a worksheet based on the reference image content.不要因为参考图中出现某种题型或版式,就把它冒充为用户的长期偏好;除非用户明确要求模仿或长期沿用,否则参考图只作为本次内容来源。
随后立即生成:
node "<skill-dir>/scripts/generate-worksheet.mjs"
--prompt "<image-analysis prompt and English user request>"
--category "<category>"
--url "<ossUrl>"
--timeout-ms 180000上传失败、格式不支持、图片超过 5MB 或结果缺少 ossUrl 时立即报告并停止,不绕过上传直接生成。生成阶段适用后文的长任务、积分和恢复规则。
Path C: PDF-to-Worksheet Plan
用户提供本地 PDF 并要求生成作业纸时走此路径。不要跳过分析直接生成,也不要让 Agent 自己逐页解释 PDF。
当前 Skill 只处理单个 PDF。用户同时提供多个 PDF 时,不建立批量队列、不启动并行子任务;请用户逐个提交或明确选择本次要处理的一个 PDF。
如果资料是绘本、故事书、picture book、storybook、reader 或连续图文故事,先读取 [references/picture-book-pdf-workflow.md](references/picture-book-pdf-workflow.md),再执行本路径。
1. Analyze Source Material
开始前告知用户一次“正在后台分析这本教材,请稍等片刻”,然后立即运行:
node "<skill-dir>/scripts/analyze-book-pdf.mjs"
--pdf "<PDF>"
--prompt "<按 User Requirement Analysis 整理后的 PDF 作业纸需求>"
--timeout-ms 300000用户没有补充题型、版式等要求时,prompt 只表达用户要求基于该 PDF 生成作业纸;不要补写未提出的数量、题型、题量、难度或版式要求。
CLI 成功后会打印 worksheetPlan: <path>。读取该路径中的 JSON 文件,并确认:
worksheetPlan.worksheets[]存在且非空。- 每个 worksheet 至少包含
title或promptNotes。 - 有
referenceImageUrl的 worksheet 在生成时使用自己的 URL。
分析未完成、规划为空或文件不可读时禁止生成;报告问题,不自行编造规划。
2. Generate from the Plan
数清 worksheetPlan.worksheets[] 的长度 N,只提示一次:
已拿到作业纸规划,本次将生成 N 张作业纸。正在生成作业纸,请耐心等待。随后按数组顺序逐张生成:
node "<skill-dir>/scripts/generate-worksheet.mjs"
--prompt "<English-only prompt derived from this worksheet item>"
--category "英语-绘本阅读"
--url "<worksheet.referenceImageUrl when present>"
--timeout-ms 180000用该项的 title、pageNumbers 和 promptNotes 组织提示词,并合并用户当前明确要求及不冲突的可靠偏好。生成完第 i 张后直接进入第 i+1 张,不逐张询问是否继续;用户明确只要一张时除外。
Long-Running Task Protocol
分析和生成均为长任务。启动后持续等待同一进程直到成功、明确失败或超时:
- PDF 分析最多等待 5 分钟。
- 每张作业纸生成最多等待 3 分钟。
- 原进程仍在运行时继续轮询原进程,不启动第二个 CLI。
- CLI 返回明确失败或取消时停止并报告,不自动重试、不跳过当前 worksheet。
PDF 分析轮询超时、网络中断或查询中断不代表分析失败,也不允许重新上传 PDF。只有服务端明确返回终态 failed / cancelled,或明确不可恢复的业务错误时,才报告分析失败。可恢复中断必须保留同一 stateFile,重新登录(如有需要)后恢复同一 eventId。
原进程已退出、平台会话中断或无法继续轮询时,使用 CLI 打印的 stateFile 恢复同一任务:
node "<skill-dir>/scripts/analyze-book-pdf.mjs"
--resume "<stateFile>"
--timeout-ms 300000
node "<skill-dir>/scripts/generate-worksheet.mjs"
--resume "<stateFile>"
--timeout-ms 180000不要复制带省略号的事件 ID,不要改变 prompt、category 或参考图,不要因为超时创建新任务。
若轮询期间登录失效,保留 stateFile,完成单次短信登录后只恢复原任务。
Points & Skill Pay Protocol
generate-worksheet.mjs 永远请求 Skill Pay 网关。后端决定走哪条路径:
- 积分充足:任务直接创建并继续轮询;不向用户展示支付信息。
- 积分不足:CLI 写入状态文件并以退出码
2输出PAYMENT_REQUIRED、paymentCode和恢复命令。这是正常的支付等待状态,不是生成失败。
收到 PAYMENT_REQUIRED 时必须严格按下面做:
- 停止当前及后续新建任务,保留 CLI 打印的
stateFile、paymentCode与X-Out-Trade-No;不要自行构造支付链接、二维码或 HTTP 请求。 - 向用户清楚说明:“当前账号积分不足。本张作业纸可通过微信支付 ¥0.40 继续生成。是否确认支付?”等待用户对本次支付明确确认。
- 用户确认后,确认当前 Agent 环境确实提供
weixinpay_pay工具;调用weixinpay_pay(paymentCode),其中paymentCode必须逐字取自 CLI 输出。若工具不可用,说明当前平台未配置微信支付能力,保留状态文件,不要伪造支付成功或改用其他支付方式。 - 支付工具返回成功后,立即执行 CLI 打印的恢复命令,例如:
node "<skill-dir>/scripts/generate-worksheet.mjs"
--resume "<stateFile>"
--timeout-ms 180000该命令会用已保存的 X-Out-Trade-No 重试完全相同的请求;后端查单成功后创建一条 SKILL_PAY 标识的生成记录。此记录不扣积分,也不计入积分限制。
- 若 CLI 输出
PAYMENT_PENDING,表示支付平台尚未确认。不要再次调用weixinpay_pay,稍等后用同一恢复命令重试。若支付失败或用户取消,保留状态文件并停止,不创建替代任务。 - 多张 PDF 作业纸逐张独立处理:前面已完成的仍交付;遇到
PAYMENT_REQUIRED时暂停后续项,支付并完成当前项后才继续下一项。每一次付款都必须单独得到用户确认。
网络错误、图片上传失败、普通生成失败、登录失效、PDF 分析失败或轮询超时均不是付款信号。只有 CLI 的 PAYMENT_REQUIRED 才能进入支付流程。
Delivery Contract
生成成功后先输出可见正文:
已为你生成作业纸:然后交付 CLI 返回的实际图片:
- 当前平台识别
[media attached: ...]媒体标记时,逐字使用 CLI 打印的对应行。 - 当前平台支持本地文件附件时,附加生成结果中的真实本地图片路径。
- 当前平台仅支持 Markdown 远程图片时,使用后台返回的图片 URL。
最终只展示本次 generate-worksheet.mjs 实际返回的图片。不得使用 ls、find、目录扫描或历史文件列表补充结果,不得把历史 PNG、上传图片、参考图或 PDF 附件当作本次新生成作业纸。不得手写不存在的路径、修改文件名、只返回内部状态对象,或只说“已经生成”却不附成品。
Platform Compatibility
正式版本默认连接 https://abcclaw.ai/api,默认运行目录为 <skill-dir>/.abcclaw-runtime/。如需联调测试环境,可通过 ABCCLAW_API_BASE_URL 临时覆盖默认地址。所有公开 CLI 的标准输出和错误输出都只使用纯文本,避免某些 Agent 平台把 JSON 对象直接交给 UI 渲染。结构化数据只写入 Skill 运行目录中的状态文件和结果文件;不要给命令追加 --json。
仅在开发、私有部署或 Skill 安装目录只读时使用:
ABCCLAW_API_BASE_URL:覆盖 API 地址。ABCCLAW_HOME:覆盖运行目录;安装目录只读的平台必须设置。ABCCLAW_CREDENTIALS_PATH:覆盖凭据文件。ABCCLAW_AUTH_TOKEN:注入临时自动化 Token;不得写入文档、发布包或命令历史。
如果平台缺少 Node.js 18+、命令执行能力、本地文件读写能力或长任务轮询能力,说明该平台当前不能完整运行本 Skill;不要退化为手写 HTTP 或伪造生成结果。
Completion Checklist
结束任务前确认:
- 登录态在业务操作前已验证,且没有无意义重发短信。
- 图片请求已先上传并取得真实
ossUrl,没有把本地路径直接传给生成接口。 - PDF 请求已先完成后台分析,并严格按
worksheetPlan生成。 - PDF 分析已收到按当前要求整理的
prompt,且没有加入用户未提出的题型、题量、难度或版式。 - 用户明确要求记住偏好时已按参考流程更新;单次参考没有误写成长期偏好。
- 所有生成提示词都包含 English-only 约束,未传模型名。
- 已完成全部规划项,或已明确报告终态失败和对应 worksheet。
- 超时/中断后恢复的是同一任务,没有重复扣费或重复生成。
- 积分充足时任务已直接继续;只有
PAYMENT_REQUIRED时才发起 ¥0.40 的支付确认、支付与同一状态文件恢复。 - 付费生成在支付确认后只恢复原请求,没有改变 prompt、参考图或新建重复任务。
- 最终回复只包含本次真实生成的作业纸图片,且没有泄露 Token、手机号或内部状态对象。