pub fn writable_skill_roots(
harness: &str,
scope: SkillScope,
homes: &SkillHomes,
cwd: &Path,
) -> Vec<PathBuf>Expand description
The roots supercode may WRITE a skill package into, in the harness’s own
precedence order — the same table skill_roots reads, narrowed to the
two scopes a client may address and NOT filtered by existence (an install
creates the root the harness’s loader would then read).
Empty means “no writable root”: every scope a harness owns rather than the
user (managed, plugin, bundled), Hermes’s and OpenClaw’s roots (whose
door is their own CLI verb, never a directory supercode writes behind their
back), and every harness with no skills root at all.