Project-level: ./safety.yaml (relative to project root)
Display current effective settings per guardian:
credential_guardian: blocked paths, allowed files
destructive_bash: category decisions (deny/ask/allow per category)
write_scope: allowed/blocked prefixes and files
supply_chain: category decisions, allowlists
playwright: category decisions, domain allowlist
Ask user which guardian(s) to customize.
For each selected guardian, present current category decisions and ask for changes:
Show: category: current_decision
Accept: deny, ask, or allow per category
For list fields (allowlists, prefixes): show current, ask for additions/removals
Ask target location: project-level (./safety.yaml) or user-level (~/.claude/safety.yaml).
Generate or update the YAML file at chosen location.
Only write overrides (do not duplicate defaults).
Deep-merge with existing content if file already exists.
Validate by loading the merged config and displaying effective result.
Steps
1. Read ${CLAUDE_PLUGIN_ROOT}/config/safety.default.yaml
2. Read ~/.claude/safety.yaml (if exists)
3. Read ./safety.yaml (if exists)
4. Display merged effective config as table
5. Prompt: "Which guardian to customize? (credential/destructive_bash/write_scope/supply_chain/playwright/all)"
6. For selected guardian(s):
a. Show categories with current decisions
b. Ask for new decision per category (or skip)
c. For list fields, show current and ask for changes
7. Prompt: "Save to project-level or user-level? (project/user)"
8. Write YAML with only the overrides
9. Re-read and display new effective config
Constraints
Never modify plugin defaults (safety.default.yaml)
Only write overrides -- do not duplicate default values
Validate decisions are one of: deny, ask, allow
Existing file content must be preserved (deep-merge on write)
1---2name: configure-safety3description: configure-safety4---5# configure-safety67Interactive safety.yaml configuration for ac-safety plugin.89## Trigger1011`/configure-safety` or `/ac-safety:configure-safety`1213## Behavior14151. Read the 3-tier config resolution and display current effective config:16 - Plugin defaults: `${CLAUDE_PLUGIN_ROOT}/config/safety.default.yaml`17 - User-level: `~/.claude/safety.yaml`18 - Project-level: `./safety.yaml` (relative to project root)19202. Display current effective settings per guardian:21 - credential_guardian: blocked paths, allowed files22 - destructive_bash: category decisions (deny/ask/allow per category)23 - write_scope: allowed/blocked prefixes and files24 - supply_chain: category decisions, allowlists25 - playwright: category decisions, domain allowlist26273. Ask user which guardian(s) to customize.28294. For each selected guardian, present current category decisions and ask for changes:30 - Show: `category: current_decision`31 - Accept: `deny`, `ask`, or `allow` per category32 - For list fields (allowlists, prefixes): show current, ask for additions/removals33345. Ask target location: project-level (`./safety.yaml`) or user-level (`~/.claude/safety.yaml`).35366. Generate or update the YAML file at chosen location.37 - Only write overrides (do not duplicate defaults).38 - Deep-merge with existing content if file already exists.39407. Validate by loading the merged config and displaying effective result.4142## Steps4344```451. Read ${CLAUDE_PLUGIN_ROOT}/config/safety.default.yaml462. Read ~/.claude/safety.yaml (if exists)473. Read ./safety.yaml (if exists)484. Display merged effective config as table495. Prompt: "Which guardian to customize? (credential/destructive_bash/write_scope/supply_chain/playwright/all)"506. For selected guardian(s):51 a. Show categories with current decisions52 b. Ask for new decision per category (or skip)53 c. For list fields, show current and ask for changes547. Prompt: "Save to project-level or user-level? (project/user)"558. Write YAML with only the overrides569. Re-read and display new effective config57```5859## Constraints6061- Never modify plugin defaults (`safety.default.yaml`)62- Only write overrides -- do not duplicate default values63- Validate decisions are one of: deny, ask, allow64- Existing file content must be preserved (deep-merge on write)
Run npx skillmds@latest add matiascomercio/configure-safety in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
configure-safety It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
MatiasComercio (@matiascomercio) published this skill. Their other Agent Skills are listed on their SkillMD profile.