Skip to content
Conduit

skill

agent-kit

Rusty Arms Claude Code plugin: clean-room guard hooks, the reviewer subagent and loop scripts shared by every project repo.

rusty-arms/agent-kitcommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/rusty-arms/agent-kit itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 22, 2026

agent-kit

Guard rails for Claude Code sessions on the Rusty Arms project, packaged as a Claude Code plugin. Install it once and every session gets the same clean-room guard, format/lint checks, session rules and reviewer, whichever repo it starts in.

Project policy lives in core: clean-room policy, guard setup and project status.

What it contains

PartFileWhat it does
Clean-room guardhooks/cleanroom-guard.pyPreToolUse hook. Blocks any tool call whose input contains a blocklist term, including writes and MCP tools. Blocks reading tools (Bash, Read, Grep, Glob, WebFetch, WebSearch) that touch the lab, unless the session started inside the lab. Fails closed when it has no terms.
Format and linthooks/format-lint.pyPostToolUse hook on Edit and Write. Formats and lints Python with ruff when installed (otherwise checks syntax), lints YAML with yamllint when installed, checks that JSON parses and that Markdown links resolve.
Session ruleshooks/session-start.pySessionStart hook. Adds the session discipline and short clean-room rules to every session, marks lab sessions as observer sessions, and warns when the guard has no blocklist terms.
Revieweragents/reviewer.mdRead-only Sonnet subagent that checks work against evidence: the brief, the specs, the provenance log, the tests.
Lab profileprofiles/lab/CLAUDE.md and .claude/settings.json for the lab, so sessions there run as observers.

The hooks use the Python standard library only.

Install

1. Create the blocklist first

The guard blocks every guarded tool call until it has blocklist terms, so create them before installing. Follow step 1 of core's guard setup: one lower-case term per line in ~/.claude/cleanroom-blocklist.txt. Cloud environments use the CLEANROOM_BLOCKLIST_TERMS variable instead. The terms are never committed anywhere.

2. Install the plugin for your user

Install at user scope, so sessions started outside a project repo are guarded too. In Claude Code:

/plugin install agent-kit --marketplace rusty-arms/agent-kit

Or from a shell:

claude plugin marketplace add rusty-arms/agent-kit
claude plugin install agent-kit@rusty-arms --scope user

Restart Claude Code. The first message of a new session should include "Rusty Arms session rules". To update later: claude plugin marketplace update rusty-arms, then restart.

A project repo can also enable the plugin for everyone who opens it, by adding this to its .claude/settings.json:

{
  "extraKnownMarketplaces": {
    "rusty-arms": { "source": { "source": "github", "repo": "rusty-arms/agent-kit" } }
  },
  "enabledPlugins": { "agent-kit@rusty-arms": true }
}

3. Install the lab profile

After creating the lab (section 3 of core's owner checklist), run from a clone of this repo:

profiles/lab/install.sh                # default ~/Develop/rusty-arms/ma-lab
profiles/lab/install.sh /path/to/lab   # or another lab folder

It copies CLAUDE.md and .claude/settings.json into the lab and never overwrites an existing file. Commit both to the lab's local git. The settings enable this plugin for the lab and deny network, push and remote commands, and edits to the profile and to golden traces.

Settings

VariableDefaultUse
CLEANROOM_BLOCKLIST~/.claude/cleanroom-blocklist.txtBlocklist file.
CLEANROOM_BLOCKLIST_TERMSunsetComma-separated terms, for cloud environments.
CLEANROOM_LAB~/Develop/rusty-arms/ma-labThe lab folder.

Develop

python3 -m unittest discover -s tests   # run every hook as Claude Code runs it
python3 scripts/check_no_retail.py --all
python3 scripts/check_links.py
yamllint -s .
claude plugin validate .

CI runs the first four on every push and pull request. .githooks/pre-commit runs the retail-data guard; enable it with git config core.hooksPath .githooks.

Licence

MIT OR Apache-2.0, at your option: LICENSE-MIT, LICENSE-APACHE.

↑↓ navigate openesc close