Problem
Synced skill directories are protected from direct mutation: .system and .server-feeds remain write-denied, and skill_manage blocks edit/patch/delete/write_file/remove_file against resolved synced skills.
However, a user or agent can still create a local native skill with the same normalized name as a server-feed skill under ~/.netclaw/skills/<name>/SKILL.md. Native skills have higher precedence than server-feed skills during scan/merge, so this locally-created skill shadows the synced skill without going through the skill server.
That means the current protection prevents direct edits to the synced copy, but does not fully enforce the intended rule that org-managed server-feed skill identities can only be updated through the skill server.
Desired Behavior
If a skill name is already claimed by a synced source, Netclaw should reject local creation or local registration of a same-name skill unless there is an explicit operator-approved override mechanism.
Scope
- Block
skill_manage(action: "create") when the requested name is already present from .system or .server-feeds.
- Decide whether raw file writes that create same-name local skill directories should be rejected at write time or quarantined/rejected during scan.
- Add tests proving local same-name creation cannot shadow server-feed skills.
- Preserve existing direct write-deny behavior for
.system and .server-feeds.
Related
Problem
Synced skill directories are protected from direct mutation:
.systemand.server-feedsremain write-denied, andskill_manageblocks edit/patch/delete/write_file/remove_file against resolved synced skills.However, a user or agent can still create a local native skill with the same normalized name as a server-feed skill under
~/.netclaw/skills/<name>/SKILL.md. Native skills have higher precedence than server-feed skills during scan/merge, so this locally-created skill shadows the synced skill without going through the skill server.That means the current protection prevents direct edits to the synced copy, but does not fully enforce the intended rule that org-managed server-feed skill identities can only be updated through the skill server.
Desired Behavior
If a skill name is already claimed by a synced source, Netclaw should reject local creation or local registration of a same-name skill unless there is an explicit operator-approved override mechanism.
Scope
skill_manage(action: "create")when the requested name is already present from.systemor.server-feeds..systemand.server-feeds.Related
shell_execute, but does not address local identity shadowing.