Skip to main content

Module skill_exec

Module skill_exec 

Source
Expand description

Where a skill can execute, and why it cannot.

THE SPLIT THAT MAKES THIS WORK

Of 140 canonical skills in the Prometheus pack, only 37 ship scripts/. The other ~103 are pure knowledge: the SKILL.md body is handed to the model as prompt context and nothing is ever spawned. That is why a phone can carry the whole catalog offline — the majority need no runner at all.

THE PLATFORM CONSTRAINT IS NOT NEGOTIABLE

iOS cannot spawn child processes or JIT (the same constraint that keeps pglite off mobile — see gen_ui_agent/Cargo.toml). So an executable skill on iOS is not “slow” or “degraded”, it is impossible locally, and the only honest options are to run it on a server through RemoteRunner or to say clearly that it cannot run.

REPORTING BEATS FAILING

A skill that cannot run should say so BEFORE it is invoked, with a reason a user can act on. Returning a command not found from the middle of a bash script is the same defect as an empty array with no explanation: the caller cannot tell “misconfigured” from “impossible here”.

Enums§

ExecHost
Where the runtime is hosted. Decides which execution paths exist at all.
ExecPlan
How a given skill can run on a given host.

Constants§

COMMON_TOOLCHAINS
Binaries the pack’s scripts actually rely on, in frequency order.

Functions§

missing_toolchains
Which of COMMON_TOOLCHAINS are missing from PATH.
plan
Convenience wrapper using the detected host.
plan_with_host
Decide how a skill runs, given the host and whether a remote runner exists.