From agent-guardrails
Install agent behavioral guardrail rules into a project's .claude/ directory. Generates a Stop hook bash script and configures settings.local.json. Includes six battle-tested rules (no-speculative-language, no-stalling, no-preference-asking, no-false-completion, no-skipping, no-dismissing). Use when user asks to "install guardrails", "set up agent guardrails", "add behavioral hooks", "agent-guardrails install", or wants to enforce assistant discipline.
npx claudepluginhub florianbuetow/claude-code --plugin agent-guardrailsThis skill uses the workspace's default tool permissions.
Install agent behavioral guardrail rules into the current project. Generates a bash script Stop hook and configures `settings.local.json` — no external plugin dependencies.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Install agent behavioral guardrail rules into the current project. Generates a bash script Stop hook and configures settings.local.json — no external plugin dependencies.
templates/stop-guardrails.sh inside this pluginrules/no-*.md are the source of truth for patterns and messages.claude/hooks/stop-guardrails.sh in the target project.claude/settings.local.jsonRule definitions: plugins/agent-guardrails/rules/no-*.md
Bundled script: plugins/agent-guardrails/templates/stop-guardrails.sh
| # | Rule | Description |
|---|---|---|
| 1 | no-speculative-language | Blocks hedging, guessing, unverified claims |
| 2 | no-stalling | Blocks stalling language, padding before action |
| 3 | no-preference-asking | Blocks delegating decisions to the user |
| 4 | no-false-completion | Blocks unverified completion claims |
| 5 | no-skipping | Blocks skipping work or hand-waving |
| 6 | no-dismissing | Blocks dismissing issues without investigation |
Check what guardrail files already exist in the project:
ls .claude/hooks/stop-guardrails.sh 2>/dev/null
cat .claude/settings.local.json 2>/dev/null
If $ARGUMENTS contains specific rule names (e.g., "install no-stalling no-skipping"):
If $ARGUMENTS mentions "all" or "curated" (e.g., "install all"):
If $ARGUMENTS is empty:
mkdir -p .claude/hooks
Read the bundled template from ${CLAUDE_PLUGIN_ROOT}/templates/stop-guardrails.sh and write it to .claude/hooks/stop-guardrails.sh in the target project.
If only a subset of rules was requested (Step 2), remove the unwanted grep blocks from the copied script before writing.
If the user has an existing .claude/hooks/stop-guardrails.sh with custom rules (grep blocks not in the curated set), preserve those custom blocks when overwriting.
chmod +x .claude/hooks/stop-guardrails.sh
Read the existing .claude/settings.local.json if it exists. Merge the Stop hook entry into it, preserving any existing hooks and permissions.
The Stop hook entry to add:
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/stop-guardrails.sh",
"timeout": 5000
}
]
}
]
}
}
If a Stop hook for stop-guardrails.sh already exists, leave it as-is (just update the script file).
After writing all files, verify:
ls -la .claude/hooks/stop-guardrails.sh
head -5 .claude/hooks/stop-guardrails.sh
cat .claude/settings.local.json | jq '.hooks.Stop'
Show what was installed:
## Agent Guardrails Installed
| Rule | Status |
|------|--------|
| no-speculative-language | Installed |
| no-stalling | Installed |
| no-preference-asking | Installed |
| no-false-completion | Installed |
| no-skipping | Installed |
| no-dismissing | Installed |
**Script:** `.claude/hooks/stop-guardrails.sh`
**Config:** `.claude/settings.local.json` (Stop hook)
**Runtime:** bash + jq + grep (no plugin dependencies)
**Effect:** Requires a session restart. Run `/exit` and start a new Claude session for hooks to take effect.
Rules trigger on the assistant's Stop event. To test after restarting, run `/agent-guardrails:test`.
**To customize:** Edit `.claude/hooks/stop-guardrails.sh` directly.
**To add/remove rules:** Re-run /agent-guardrails:install with specific rule names.
**To refine:** Run /agent-guardrails:update after using the rules for a few sessions.
If the user provides a custom behavior description (not one of the six curated rules), add a new grep block to the bash script following the same pattern:
# {kebab-case-name}
if echo "$message" | grep -qiE '{pattern}'; then
blocked+=("**{kebab-case-name}**: {message}")
fi