From heimdall
Remove a Heimdall lock block or specific protected paths. Use when the user says "unprotect X", "unlock X permanently", "stop guarding X", "remove protection from X", "delete the lock for X", or asks to drop a protected path. Removes the lock from config (this is permanent removal, not the temporary phrase-based unlock).
How this skill is triggered — by the user, by Claude, or both
Slash command
/heimdall:unprotect <unlock phrase> [path[,path...]]<unlock phrase> [path[,path...]]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Permanently removes protection from a Heimdall store. (This edits config — distinct from speaking the unlock phrase, which only lifts the lock for the current few tool calls.)
Permanently removes protection from a Heimdall store. (This edits config — distinct from speaking the unlock phrase, which only lifts the lock for the current few tool calls.)
Identify the lock block by its unlock phrase. If the user references paths but not the phrase, run /heimdall:list (or the list script) first to find the owning block, then confirm with AskUserQuestion which block they mean.
Decide scope:
--phrase.--phrase and --paths (the block is deleted if it becomes empty).Run the script:
node "${CLAUDE_PLUGIN_ROOT}/scripts/heimdall-unprotect.js" --phrase="<phrase>" [--paths="<comma,separated>"]
Without --kind, it removes the matching block from every active store. Pass --kind=<local|worktree|global> to scope to one store.
Print the script output verbatim.
The store and its marker are never deleted — only lock blocks are removed.
npx claudepluginhub thomfilg/ai-plugin-work --plugin heimdallCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.