用途
scrolls-explainer 是一个技能,用于交付一个自包含的 HTML 页面,以可视化方式解释 scrolls 技能家族的工作方式。该页面随技能提供,位于 assets/scrolls-explainer.html。
主要能力与使用方式
该技能提供三种模式:
- 默认模式(无参数或 --show):不复制任何内容,打印随附页面的路径和 file:// URL,并在默认浏览器中就地打开。若无法打开浏览器(远程或无头机器),仅提示,不算错误。--show 不能与 -o 同时使用。
- -o / --output PATH:将页面复制到指定位置。文件路径按原样使用;若给出已存在的文件夹(如 .)或以 / 结尾的路径,则在该文件夹内生成 scrolls-explainer.html。缺失的文件夹会被创建。
- --build:根据与本技能相邻的 scrolls-* 技能重新生成 assets/scrolls-explainer.html,使其与当前技能状态一致。单独使用时仅重建;可加 --show 打开结果,或加 -o 同时复制。
其他选项包括:-f / --force(仅配合 -o,覆盖路径上已有的不同文件,否则脚本以退出码 3 拒绝且不做更改;相同文件会报告为已是最新)、--open(配合 -o,复制后也在默认浏览器中打开)、--reviewed(仅配合 --build,记录已检查过 SKILL.md 变化的标签页的新指纹,然后构建)、--skills-dir DIR(仅配合 --build,指定 scrolls-* 技能所在目录,默认为本技能所在文件夹)、--version(打印页面版本并退出)、-h / --help(打印用法并退出)。
退出码含义:0 完成(或已是最新);1 随附页面缺失或文件无法写入;2 用法错误;3 路径上存在不同文件(未加 -f);4 --build 因技能需要人工处理而停止;5 --build 找不到 network-flow 技能。
跨平台
脚本提供两种行为一致的形式:explain.sh(bash,适用于 macOS、Linux 或带 Git Bash/WSL 的 Windows)和 explain.ps1(PowerShell 7+,适用于 Windows,或安装了 pwsh 的 macOS/Linux)。两者都是 explain.py(仅依赖 Python 3.9+ 标准库)的轻量启动器,会先解析 python3 再解析 python。根据实际可用环境选择启动器:先尝试 bash --version,成功则使用 .sh;否则通过 pwsh(首选)使用 .ps1,仅在 pwsh 不可用时使用内置 Windows PowerShell powershell.exe。
页面使用说明
页面包含多个标签页:Overview、每个 scrolls 命令一个标签页,以及 New session(说明新的智能体会话如何依次遵循 AGENTS.md/CLAUDE.md → SCROLLS.md → STARTER.md)。每个命令标签页会自动播放其步骤,并在所操作文件旁显示标注;标注的 ‹ › 按钮用于步进和暂停。键盘操作:→/← 步进,Home/End 跳到首/末步,[ ] 或 Shift+方向键切换标签页,数字键跳转到指定标签页,Space/P 暂停,R 重播,? 显示所有快捷键,Esc 关闭或清除。点击块可查看其内容并追踪连接。页面完全离线:无网络请求,无需安装。
对于页面未涵盖的命令问题(如确切参数、边界情况),应引导用户查阅 /scrolls-help,那里保存权威参考;不要描述页面和 /scrolls-help 均未说明的行为。
构建流程
--build 会读取与本技能相邻(或 --skills-dir 指定目录中)的 scrolls-* 技能并据此重新生成页面。它会自行决定:每个技能对应一个标签页;若某技能的 SKILL.md 被重命名为 SKILL.md.deprecated、.deactivated 或 .inactive(该家族关闭技能的习惯做法),则移除其标签页和块;版本号采用家族的同步版本并标注在页面上。
每个标签页上的文字手写在 assets/explainer-graph.json 中,因此构建会记录每个 SKILL.md 的指纹(不含版本行),当需要人工处理时以退出码 4 停止。需按以下方式处理每种消息:
- “SKILL.md changed since the page was last reviewed: …”:阅读每个被点名技能的 SKILL.md(及其 CHANGELOG.md 最新条目),与该技能标签页的场景步骤(每条为标题和文字)及 assets/explainer-graph.json 中该块的 kind、sub、detail 对比。只修改技能已不再执行或现在执行方式不同的内容,保持现有语气(每步一到两句平实的话)。然后运行 --build --reviewed。若无需编辑,仅运行 --build --reviewed 即可。告诉用户修改了哪些标签页。
- “no tab for /scrolls-…”:出现了新的 scrolls 技能。根据其 SKILL.md 草拟标签页:一个 id 为去掉 scrolls- 前缀的名称的节点,指向其所涉及文件的边(复用现有节点 id),以及一个相同 id、标注为 /scrolls-…、包含 2 到 10 个步骤的场景。将该节点添加到 wide/medium/narrow 各布局的空闲单元格中。向用户展示新增内容,然后运行 --build --reviewed。
- “versions differ (lockstep)”或“…: not found”:不要在解释器中修复这些问题,应报告:家族版本必须一起升级,缺失的技能必须安装(只有按上述方式停用技能时标签页才会移除)。
成功执行 --build 后,报告其打印内容:读取了哪些技能、移除了哪些标签页、页面是已更改(wrote …)还是已匹配(unchanged …)。
适用场景
适用于需要向用户直观解释 scrolls 技能家族工作方式的场景,或需要将解释页面导出为文件、在技能更新后重新生成页面以保持一致的情况。
限制
该技能从不读取、检查或更改用户的 scrolls 记忆(docs/.scrolls/、SCROLLS.md、CLAUDE.md、AGENTS.md)。默认模式(--show)不写入任何内容。使用 -o 时仅写入指定路径的页面,除非用户要求(-f),否则不会覆盖已有的不同文件。--build 仅写入本技能自己的 assets/scrolls-explainer.html,以及配合 --reviewed(或添加缺失标签页时)写入 assets/explainer-graph.json,不会写入本技能文件夹之外的内容。meta/MAINTAINERS.md 和 tests/ 不属于执行 /scrolls-explainer 请求的组成部分,处理请求时不要操作这些目录。