You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fill six documentation gaps: system skills concept in docs/AGENTS.md, nodetool models recommended flags in docs/cli.md, deploy list/show and worker token in docs/cli.md, and NODETOOL_SYSTEM_SKILLS_DIR env var in docs/configuration.md.
description: Turn a product page URL into a finished launch commercial — ... Use when someone asks for an ad, a launch spot, a promo or a commercial from a product page or website.
407
+
---
408
+
409
+
# Product Page → Launch Commercial Agent
410
+
411
+
You are a single agent. Your job: …
412
+
```
413
+
414
+
The `description` is what auto-select matches an objective against, so it says
415
+
*when* the skill applies, not what it contains.
416
+
417
+
`list_skills` and `load_skill` serve both tiers, so a system skill reaches the
418
+
model exactly the way a user skill does. The difference is that it is read-only:
419
+
`create_skill`, `update_skill`, and `delete_skill` refuse a shipped name, naming
420
+
the verb they refused — `"<name>" is a system skill that ships with NodeTool and
421
+
cannot be overwritten. Pick another name; load_skill still reads it.`, and
422
+
likewise `edited`, `renamed over`, and `deleted`. A user row that already held
423
+
the name predates the reservation and wins — reserving names only stops new ones.
424
+
425
+
Nothing imports these files, so `packages/system-skills` is not a workspace and
426
+
npm links nothing. A file whose frontmatter is missing or malformed, or whose
427
+
`name` disagrees with its directory, is skipped rather than failing the catalog.
428
+
394
429
### Skill Resolution
395
430
396
431
-**Explicit** — pass `skills: ["skill-a"]` in the agent constructor.
Copy file name to clipboardExpand all lines: docs/configuration.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -560,6 +560,7 @@ missing binary.
560
560
|`NODETOOL_VIDEO_FRAME_MAX_FPS`| Ceiling on the frame sample rate | no | Default `1`. A clip too long for the frame budget to reach this rate is sampled more sparsely, so the frames still span it |
561
561
|`NODETOOL_VIDEO_FRAME_MAX_DIMENSION`| Longest edge of a sampled frame, in pixels | no | Default `768`. Frames are never upscaled |
562
562
|`NODETOOL_SHIPPED_PACKS_DIR`| Roots the sandbox packs that ship with NodeTool are read from | no | Comma-, semicolon-, or `PATH`-separator-delimited, same as `NODETOOL_PACK_SEARCH_PATHS`. Candidates that do not exist are dropped, so a bad path yields no packs rather than an error. Unset, the loader looks for `_sandbox/` beside the bundled `server.mjs` (packaged desktop app, Docker image), then walks up to `packages/sandbox-packs` (a checkout). Set it only for a host that stages the packs somewhere else. See [Sandbox package design](sandbox-package-design.md)|
563
+
|`NODETOOL_SYSTEM_SKILLS_DIR`| Root the system skills that ship with NodeTool are read from | no | One path, not a list. Unset, the loader looks for `_skills/` beside the bundled `server.mjs` (packaged desktop app, Docker image), then walks up to `packages/system-skills` (a checkout). A path that does not exist means no system skills rather than an error, and so does an unset variable in a build that ships none. Each skill is a `SKILL.md` under a directory that names it — a frontmatter `name` disagreeing with the directory is skipped, as is a file that cannot be parsed. Read once per process. Set it only for a host that stages the skills somewhere else. See [Agent Architecture › Skills](AGENTS.md#skills)|
563
564
|`NODETOOL_SANDBOX_INPROC`| Run every QuickJS guest on the calling thread instead of a worker | no |`1` only. A chosen fallback, so it warns about nothing. A CPU-bound guest then blocks the thread — on the server's main thread that freezes the event loop, including the frame that would have cancelled the run. See [JavaScript sandbox threading](#javascript-sandbox-threading)|
564
565
|`NODETOOL_SANDBOX_WORKER`| Require the sandbox worker path | no |`require` only. A run that cannot reach a worker fails with `the sandbox worker path is required (NODETOOL_SANDBOX_WORKER=require) but unavailable: <reason>` rather than falling back in-process. Runs that stream their inputs never reach a worker, so this fails them |
565
566
|`NODETOOL_GPU_VALIDATE`| Escape hatch for the WGSL linearity validator | no |`off` disables it. The validator rejects a shader module whose WGSL contradicts its declared premultiplied-alpha contract, at module load. Use it to ship a hotfix while the shader is corrected, not as a standing setting; read once per process |
0 commit comments