diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..76bf861 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "deployshield", + "description": "Production safety guardrails for Claude Code", + "owner": { + "name": "Matan Ryngler", + "url": "https://github.com/matanryngler" + }, + "plugins": [ + { + "name": "deployshield", + "description": "Production safety guardrails that block write/mutating operations on cloud, database, IaC, and deployment CLIs.", + "version": "1.1.0", + "source": "./", + "author": { + "name": "Matan Ryngler", + "url": "https://github.com/matanryngler" + } + } + ] +} diff --git a/README.md b/README.md index b98d459..8a82c06 100644 --- a/README.md +++ b/README.md @@ -73,15 +73,16 @@ DeployShield uses a quote-aware parser that correctly handles: ## Installation -### As a plugin directory +### Via Plugin Marketplace (recommended) + +Register the marketplace and install: ```bash -claude --plugin-dir /path/to/deployshield +claude plugin marketplace add matanryngler/deployshield +claude plugin install deployshield@deployshield ``` -### In your project - -Clone or copy into your project and reference it: +### Manual ```bash git clone https://github.com/matanryngler/deployshield.git @@ -90,13 +91,12 @@ claude --plugin-dir ./deployshield ### Verify it's working -Launch with debug mode to confirm hooks are registered: +Start a new Claude Code session and try a write command — it should be blocked: -```bash -claude --plugin-dir /path/to/deployshield --debug ``` - -You should see DeployShield's SessionStart hook fire, and any write commands will be blocked with a clear message. +> kubectl delete pod my-pod +# => Blocked: kubectl 'delete' is not in the safe-list for kubernetes +``` ## Project Structure diff --git a/release-please-config.json b/release-please-config.json index 7bce02c..856e01b 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -8,6 +8,11 @@ "type": "json", "path": ".claude-plugin/plugin.json", "jsonpath": "$.version" + }, + { + "type": "json", + "path": ".claude-plugin/marketplace.json", + "jsonpath": "$.plugins[0].version" } ] }