Admin Capability Lockdown
Organization control mod: withholds the http and process nouns from $ so no plugin beneath it can reach the network or spawn processes, refuses user-tier plugins by name allowlist or by the $ calls their source declares, and withholds the Bash tool (shellPolicy "deny", default) or, in "guardrail" mode, denies well-known network clients as a bypassable speed bump. Hooks engine.create, plugin.register and tool.call; seat it in the managed prepend tier.
npx claude-code-templates@latest --skill ••••••••••••••••••••Interactive Terminal Locked
Unlock this skill to run and inspect the interactive installation sequence.
admin-capability-lockdown
An organization-level mod that (1) withholds the http and process
nouns from $ so no plugin seated beneath it can reach the network or
spawn processes, (2) refuses
plugins at plugin.register by name allowlist and by the $ calls their
source declares, and (3) optionally withholds or guards the Bash tool.
Only (1), (2) and the "deny" shell policy are real boundaries. The
"guardrail" shell denylist is bypassable by design and is labelled as such.
SEATING. Withholding and refusal only bind the plugins BENEATH this one.
Put it in the prepend tier through managed settings, e.g.
"prependPlugins": ["admin-capability-lockdown@acme-tools", "sec-default@builtin"]
so it is outermost: its engine.create step returns last (its withholding
wins) and it judges every plugin.register after it. Loaded with
--plugin-dir it sits in the user tier and only binds plugins listed after it.
If a check itself fails (it throws or runs out of its time budget), a user plugin is refused and a guardrail-mode command is denied, never let through unchecked. The engine.create step has no time budget; a failure there fails the load.
Options
allowedPlugins: string plugin names that may register, comma-separated (unset = any name)
refuseCalls: string a user-tier plugin whose source calls any of these is refused, comma-separated
(default: the withheld nouns' calls, e.g. "http.fetch", "process.run")
shellPolicy: "deny" | "guardrail" | "allow" (default "deny")Declared in .claude-plugin/plugin.json (userConfig). Set them in /config, in user settings (~/.claude/settings.json, not project settings), with --settings <file> or in managed settings:
{ "pluginConfigs": { "admin-capability-lockdown@skills-dir": { "options": { } } } }Install
npx claude-code-templates@latest --mod enterprise/admin-capability-lockdown claude
It is written to .claude/skills/admin-capability-lockdown/, which Claude Code auto-loads as admin-capability-lockdown@skills-dir. For one session with hot reload: claude --plugin-dir .claude/skills/admin-capability-lockdown. claude plugin validate .claude/skills/admin-capability-lockdown prints every event it hooks and every $ call it makes.
Requirements. Mods are on by default in Claude Code 2.1.287+. Typed against Anthropic's declarations: https://github.com/anthropics/claude-code/tree/main/mods
How to Use & Getting Started
# Step 1: Initialize skill agent setup
npx skills add Admin Capability Lockdown --install-production
python -m pip install -r requirements.txt
codex plugin install Admin Capability Lockdown@latest
export API_KEY=secret_token_key_here
Installation Runbook & Walkthrough Locked
Unlock this skill to reveal complete step-by-step setup guides, terminal commands, configuration recipes, repository links, and interactive installation video walkthroughs.
Unlock full access to Admin Capability Lockdown
Get instant access to complete setup guides, repository source code, and integration assets.
More in mod
View all mod skills →Prompt Cache Control
Prompt-cache meter above the Claude Code prompt: how many tokens each request read from, wrote to and sent past the cache, a live countdown to the cache's expiry, and what to do about it (keep going, compact or clear). The TTL follows Claude Code's own rules for your account (1 hour on a Claude subscription, 5 minutes on an API key, cloud provider or usage credits, plus the TTL variables and setting) and corrects itself from request timing. When Claude Code will compact an idle conversation by itself, it counts down to that too. cache opens a per-turn table.
Jev Model Router
Picks the model and the reasoning effort for each task with TypeSafe's Jev, a System One decision model reached either through TypeSafe's own API or the Vercel AI Gateway. Routes subagent models at agent.spawn and the main loop's effort and model at turn.step, in both directions, falling back to the engine's built-in classifier when no key is set.
Jev Skill Suggestion
Keeps the skill listing out of the context window and lets TypeSafe's Jev, a System One decision model, pick at most one skill per prompt from the skills' descriptions, the way TypeSafe's skill-suggestion cookbook does: one request ranks every skill and asks whether the prompt needs a skill at all, a second re-reads the top three with their SKILL.md and can reject them all. The winner's SKILL.md is attached to the prompt, so the skills can be hidden from the model altogether ( jev-skill-suggestion:setup makes them user-invocable-only and context counts them at 0). Falls back to the engine's built-in classifier when no key is set.