开发与工程 scratchpadjsdoc-extractiontypescripteffectcode-examples

Scratchpad 示例提取器

从源码中抓取最近的 JSDoc 示例,生成一个可运行的 TypeScript 暂存文件。

FollowSkills 评估 · FSRS-2.0
不推荐
49/ 100 五分制 2.5 / 5
1 2 3 4 5 6
1信任安全12 / 25 · 2.4/5

技能仅读取源文件并在本地写入scratchpad目录,无外部网络调用或敏感数据操作,授予的权限最小化。但流程要求自动提取示例并可能写入代码至本地,缺乏显式的用户确认步骤(除非需要选择runner),且无法确保写入位置的可控性。此外,脚本未实现回滚或删除操作,仅靠不覆盖已有文件来避免数据丢失。作为未验证发布者的技能,来源归因不明确。因此给予12分,扣分原因为权限请求不够显式、缺少用户确认及回滚机制。

2可靠稳定8 / 20 · 2.0/5

脚本逻辑清晰,具备参数验证和错误处理,但未提供测试覆盖,也未实际执行验证。关键路径(如查找JSDoc示例、选择示例、生成唯一文件名)在静态阅读下合理,但异常输入(如文件不存在、无示例)时仅输出错误信息并退出,反馈不够详细。由于静态审查,无法验证可运行性,故给予8分,扣分原因为缺乏测试和实际运行证据,错误反馈质量一般。

3适用触发10 / 15 · 3.3/5

技能定义明确,使用场景(提取JSDoc示例到scratchpad)清晰,触发条件(用户要求时)合理,并提供了明确的非适用情况(如无示例时询问)。环境适配方面,技能依赖本地Node.js和文件系统,不依赖海外服务,符合中国大陆网络可用性。但未明确说明对中文注释或中文文件名的处理,可能导致文件名slug化后不可读,且在无示例时需用户交互,触发精度稍受影响。给予10分,扣分原因为中文支持未明确,触发边界部分依赖用户交互。

4规范维护8 / 15 · 2.7/5

文档结构清晰,包含描述、工作流、行为说明,且脚本有Usage注释。但缺少版本号、变更日志、明确维护负责人及已知限制说明。许可信息在仓库级MIT许可证中,技能本身未单独声明。示例部分虽在README整体中,但技能目录无FAQ或故障排除。因此给予8分,扣分原因为版本管理、维护责任和已知限制披露不足。

5有效结果7 / 15 · 2.3/5

技能核心功能明确:将JSDoc示例提取为TypeScript文件,并通过自动附加runner生成可运行代码,提高了手动复制粘贴的效率。但静态审查无法验证输出文件是否可直接使用,且未提供实际使用效果的证据。在无runner时需用户介入选择,增加了交互成本。作为静态评估,按上限7分,扣分原因为缺乏执行验证和输出直接可用性的证据。

6证据核验4 / 10 · 2.0/5

技能附带了脚本源码,可作为主要证据,但未提供测试用例或CI集成证明脚本工作正常。仓库有CI工作流,但未覆盖此技能路径。缺少交叉验证或独立再现结果。因此给予4分,扣分原因为仅静态阅读,缺乏可复现的测试证据。

证据充分度: 评估于 2026年8月7日 审查版本 cf5c9948c895
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 技能的脚本会读取任意指定文件并将其中的示例提取到本地scratchpad目录,若用户误用可能读取敏感文件的内容,但不会外发,需注意使用场景。
  • 脚本没有显式的用户确认步骤(除非需要选择runner),自动模式可能直接写入文件,建议在关键操作前增加确认。
  • 发布者未经验证,依赖其长期维护存在不确定性,使用前应自行审查代码。
  • 脚本对中文文件名可能生成不可读的slug,影响输出文件的可识别性。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

该技能定位到当前源码中最靠近光标或选中区域的 JSDoc 的 `**Example**` 示例,并将其提取为一个独立的 TypeScript 文件,存放到 `./scratchpad` 目录。它通过运行一个 Node 脚本来完成提取,并智能处理同名文件的冲突。该技能能够自动识别并执行示例中的 `program` 绑定,或保留已有的 Effect 运行器,为开发者提供快速尝试和验证代码示例的便捷方式。仅需请求即可,无需手动复制粘贴。

确定源文件路径和行号(从 IDE 活动文件或用户指定获取)。运行 node .agents/skills/scratchpad/scripts/extract-example.mjs <source-path> <line> 命令。脚本会找到包含该行或最接近的 JSDoc Example 块,将其提取为一个 TypeScript 文件,并命名如 scratchpad/Schedule-retrying-and-repeating-effects.ts。如果文件已存在,会自动添加数字后缀,避免覆盖。在自动模式下,如果示例中存在顶层 program 绑定,脚本会追加 Effect.runPromise(program).then(console.log, console.error) 代码。如果找不到合适的运行器,脚本退出码为 2,此时会根据用户选择使用 --mode preserve--runner <identifier> 重新运行。最后以可点击的文件链接形式报告创建的文件路径。

  1. 当开发者想快速尝试某个源码示例时,在 IDE 中选中示例代码,请求“将此示例放入 scratchpad”即可生成可运行的 TS 文件。
  2. 当用户提供一个明确的文件路径和行号时,技能会从该位置提取对应的 JSDoc 示例。
  3. 当示例包含 Effect 运行器时,技能会保留原有运行逻辑,方便用户直接测试效果。
  4. 当需要修改或测试 Effect 中的特定值或函数时,用户可通过 `--runner` 参数指定要运行的 Effect 值。
  5. 当示例文件需要保持不变以避免覆盖时,用户可使用 `--mode preserve` 模式。
  6. 当用户只是想要复制或打开示例文件时,技能会提供可点击的链接,方便快速访问。

这个 Skill 有哪些优点和局限?

优点
  • 自动化提取最近的 JSDoc 示例,节省手动复制粘贴的时间。
  • 处理文件名冲突,通过添加数字后缀避免覆盖。
  • 自动识别并运行 `program` 绑定,或保留已有的 Effect 运行器,方便直接测试。
  • 支持通过 `--runner` 参数指定要运行的特定 Effect 值。
  • 提供了可点击的文件链接,方便在编辑器中打开生成的 scratchpad 文件。
  • 脚本逻辑清晰,易于理解和扩展。
局限
  • 仅支持 JSDoc 格式的示例,不适用于其他文档格式。
  • 需要 Node.js 环境,且依赖仓库中的脚本文件,独立使用可能需手动迁移依赖。
  • 如果示例没有明显的运行器,需要用户交互决定如何处理,可能增加操作步骤。
  • 该技能没有内置测试,稳定性未得到充分验证。
  • 提取的代码可能依赖源项目中的类型或模块,单独运行可能缺少上下文。
  • 仅在支持的 IDE/环境中测试过(如 Claude Code、Codex、Cursor 和 OpenCode),其他环境可能兼容。

如何安装这个 Skill?

该技能包含在 T3 Code 仓库中。获取仓库后,技能位于 .repos/effect-smol/.agents/skills/scratchpad/ 目录。要将其用作独立技能,请将该目录复制到您的 Agent Skills 目录中(例如 ~/.claude/skills/ 或项目中的 .agents/skills/)。需要 Node.js 环境。具体安装步骤请参考仓库 README,其中提供了多种安装方式(如 npx t3@latest 或桌面应用)。

如何使用这个 Skill?

在支持 Agent Skills 的 IDE 或编辑器中,打开一个源码文件,将光标放在或选中一个 JSDoc 示例附近。然后触发该技能,例如说:“把最近的示例放到 scratchpad”。技能将自动运行提取脚本,并在消息中返回一个可点击的文件链接。如果您需要指定文件和行号,可以直接提供,例如:“从 src/foo.ts 的第 42 行提取示例到 scratchpad”。请注意,技能默认不会自动运行生成的 scratchpad 文件,除非您明确要求。

这个 Skill 与同类方案有什么区别?

该技能是针对特定仓库的专用技能,主要与手动复制粘贴方式相比。与通用的代码片段工具相比,它更专注地提取 JSDoc 示例,并保留 Effect 相关语义。没有其他已命名的替代品。

常见问题

技能需要什么权限?
需要本地文件系统读取和写入权限,因为脚本会读取源文件并写入 scratchpad 目录。此外,需要 Node.js 环境执行脚本。不需要网络访问。
如果脚本执行失败怎么办?
如果退出码为 2,表示找不到运行器。此时技能会询问您是保留示例原样、指定运行的 Effect 值,还是取消操作。如果存在其他错误,请检查源文件路径和 Node.js 环境。
生成的 scratchpad 文件会自动运行吗?
不会。技能默认不会运行 scratchpad 文件,除非用户明确要求。当运行器存在时,文件会包含运行代码,但不会自动执行。
这个技能适用于所有仓库吗?
主要针对使用 JSDoc 和 Effect 框架的 TypeScript 项目。对于其他语言或文档格式,该技能可能无法正常工作。

同仓库的其他 Skills

均来自 pingdotgg/t3code

相关 Skills