Scratch 图形化编程工具
把"一句话指令 → 创新项目 → 说明文档 → 项目建议 → 可运行 sb3"整条链路封装为可复用能力。
核心不是只写 sb3,而是自主完成选题、文档、建议、落实四步,让小学信息科技教师/学生
拿到即改、改完即跑、跑完能讲。
> 本技能只保证产出标准 Scratch 3 (.sb3),可在 Scratch 桌面端 / 官方编辑器 / scratch-vm
> 中直接打开运行。第三方编辑器(如编程猫 Kitten 4.0)对 sb3 有各自的私有导入规范,
> 不在本技能范围内,相关适配请另行处理。
何时使用
- 用户要"做个 XX 主题的 Scratch 作品""备赛""生成编程作业样例"。
- 用户给的是一个开放指令(主题/年级/赛事),需要 AI 先想清楚做什么。
- 需要把算法骨架批量/定制生成为标准 .sb3,再交给用户在 Scratch 桌面端/官方编辑器继续加工。
四步工作流(每步都产出可见交付物)
第 1 步 · 构思(Ideate)
套用 references/ideation.md 的选题铁律与构思四问,自主产出一张「概念卡」
(项目名 / 真实问题 / 核心算法 / AI 元素 / 生成范围 / 用户必做 / 风险点)。
优先从恩施本土选题库(织锦/导游/水质/山洪/野猪/巡河/方言)借鉴或交叉组合。
不满足铁律任一条就换方向,不要硬做。
第 2 步 · 文档(Document)
按 references/doc_template.md 生成一份项目说明 HTML(可直接微信/腾讯文档分享):
背景、功能清单、算法设计(伪代码+公式)、知识点映射、操作说明、二次开发与落地、答辩话术、评分对照。
文档要"老师看得懂、学生讲得出、用户改得动"。
第 3 步 · 建议(Suggest)
给出 2–3 个变体/难度梯度/扩展点(如换数据、加 AI 阈值、改宽屏),让用户选方向再落实。
可用 AskUserQuestion 让用户拍板,或直接给建议清单后进入第 4 步。
第 4 步 · 落实(Build)
用 scripts/s3.py 内核把算法骨架生成为标准 .sb3;需要用户手做的部分(加素材、接扩展、
润色)在说明文档里写清,不代写。交付后必跑:
- python scripts/selfcheck.py <sb3> —— 结构+语义+标准格式守卫(pen. 点号)
- python scripts/orphan.py <sb3> —— 孤儿块扫描
算法骨架再用真实 scratch-vm 对账(变量/列表/笔迹一致)后才算完成。
内核 API 速查(scripts/s3.py)
from s3 import Sprite, Proc, V, N, E, write_sb3
stage = Sprite("Stage", is_stage=True, assets_dir="assets")
sp = Sprite("画笔", assets_dir="assets")
sp.costume("笔头", "pen.svg") # SVG/PNG 素材(中文文字用 PNG)
row = sp.var("行", 1) # 变量
P = Proc(sp, "画格", args=[("x",0)], warp=True) # 自定义积木(warp=绘制类必开)
P.define("d_hg", "p_hg")
sp.put("rep", "control_repeat", {"TIMES": N(10)})
sp.seq("a", "b", "c", top=True) # 串堆叠(首块为顶层脚本)
sp.sub("rep", "SUBSTACK", "first", "last") # 挂 C 型子栈(先 seq 串好链再挂)
sp.cond("if", "bool_block") # 挂布尔条件
write_sb3("out.sb3", [stage, sp], "assets") # 打包(标准字段 / 归一化 shadow)
见 scripts/example_grid.py:零依赖可运行示例(画笔网格),跑通即证明技能可用。
关键铁律(错一处整组失效)
- 画笔 opcode 用官方点号
pen.penDown(与 Scratch 3 完全一致;不要写成 pen_ 下划线)。 - project.json 保持标准字段:monitors 留空数组,extensions 按需(画笔填
["pen"]),不要塞第三方私有结构。 - 广播
broadcasts写进 Stage target 内;变量VARIABLE字段 =[名, ID](名在前)。 - 循环体必须有
control_wait;环形循环内层 next 必须串进外层 next 链(防孤儿块)。 - 详见
references/pitfalls.md、references/anatomy.md。
验证管线
结构自检 → 孤儿块扫描 → 真机 scratch-vm 对账(笔迹/变量/列表)。无渲染 harness 的层序与
鼠标信息不可信,坐标类 bug 用视觉合成兜底。交付前 selfcheck+orphan 必须全绿。
文件清单
scripts/s3.py—— 积木图内核(生成标准 sb3)scripts/selfcheck.py—— 结构/语义/标准格式守卫自检scripts/orphan.py—— 孤儿块扫描scripts/example_grid.py—— 可运行示例(自生成素材)references/ideation.md—— 选题方法论与本土选题库references/doc_template.md—— 项目说明文档模板references/pitfalls.md—— 生成 sb3 的致命坑references/anatomy.md—— project.json 结构与 opcode 速查