用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/nodetool-ai/nodetool --skill sandbox-diff命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Produce a whole campaign in NodeTool rather than one video — entity sheets for a product and model, a set of still campaign frames, several short social cuts and a long film, all on one locked grade. Use when the user asks for a launch kit, a campaign, an asset pack, a content set, "a bunch of assets", or names several deliverables in different aspect ratios from one product. Not for a single video (use product-commercial or ugc-video).
Direct a polished product film in NodeTool — pack shots, macro hero spots, luxury commercials, brand films on location, with or without talent. Use when the user wants an ad that looks shot on a camera rather than a phone, mentions a pack shot, hero shot, product film, brand spot, cyclorama or studio lighting, or names a product as the subject of a multi-shot video. Not for self-filmed or creator-style pieces (use ugc-video).
Direct video where a written voiceover drives the picture — faceless explainers, narrated b-roll, documentary segments, tutorials, corporate and educational video with no on-camera talent. Use when the user asks for an explainer, a voiceover video, a narrated piece, a faceless video, or says the script comes first. Also use when spoken words must time the cut. Not for talking-head or creator video (use ugc-video).
正在显示 SKILL.md
| name | sandbox-diff |
| description | Unified text diffs in a Code node or CodeAct action, with the diff library running on the host |
Specifier: @nodetool-ai/sandbox-diff. Import it at the top of the body.
The diff library schedules with setTimeout, and the guest has no timers, so
it cannot be compiled in. This pack is a host module: the import resolves to
a generated facade over NodeTool's own implementation.
import { unified } from "@nodetool-ai/sandbox-diff";
const patch = await unified(inputs.before, inputs.after, {
oldName: "before.md",
newName: "after.md",
context: 5
});
return { patch, changed: patch.includes("@@") };
Options: context (lines of context, 0–100, default 3), oldName, newName.
Identical inputs produce a header with no hunks, so includes("@@") is the
cheap "did anything change" test — handy in a verify loop.
unified is async.