A skill that ships a script uses portable sh or JavaScript with no dependencies
A script inside a skill runs on the reader’s machine, not the author’s. An interpreter the reader does not have, or a dependency install the skill cannot perform, turns a skill that loads into a skill that fails partway through the task it was invoked for.
Observable check
within a skill's scripts/ directory, at any depth, every executable file starts with a shebang naming sh or node, directly or through env; JavaScript resolves every import and require to a relative path, an absolute path, or a real Node built-in module; no script uses TypeScript, a runtime-specific global, or a runtime-specific module; and the skill directory contains no dependency manifest, lockfile, or node_modules. A skill that ships no script and no manifest falls outside this rule rather than failing it.
Where this comes from
Last read against these sources on 2026-07-28.
The spec permits scripts/ and names Python, Bash, and JavaScript as common options, saying supported languages depend on the implementation. This rule is deliberately stricter; the reason is oss-kit's own.