plugins/claude-code-expert/skills/security-compliance/SKILL.md
--- name: security-compliance description: Claude Code security and compliance — permissions model, settings.json allowlists/denylists, enterprise managed settings, audit logging, secrets handling, SOC2/HIPAA/GDPR patterns. Use this skill whenever configuring permissions, auditing a setup for security, handling secrets, preparing for compliance, or tightening access. Triggers on: "permissions", "allowlist", "security audit", "compliance", "SOC2", "HIPAA", "GDPR", "secrets", "enterprise settings"
npx skillsauth add markus41/claude plugins/claude-code-expert/skills/security-complianceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Baseline security + enterprise compliance patterns for Claude Code.
Permissions live in .claude/settings.json:
{
"permissions": {
"allow": ["Read", "Write", "Edit", "Glob", "Grep", "Bash(npm *)"],
"deny": ["Bash(rm -rf /)", "Bash(sudo *)", "Bash(curl * | sh)"],
"ask": ["WebFetch", "Bash(git push *)", "Bash(npm publish *)"]
}
}
allow → tool executes without askingdeny → tool never executesask → user is prompted each time| Mode | Behavior |
|---|---|
| ask | Prompt for every tool use |
| acceptEdits | Auto-accept Read/Write/Edit; prompt for others |
| auto | Minimal prompting |
| bypassPermissions | Skip prompts (dangerous; CI only) |
| plan | Plan mode — no file writes |
Set via claude --permission-mode <mode> or in settings.json → permissionMode.
Never in repo:
.env files (except .env.example)Where secrets go:
secretstorage, keyring, keychain)Install the protect-sensitive-files hook (via cc_kb_hook_recipe("protect-sensitive-files")) to prevent accidental writes to .env / credentials.
Enterprise deployments log all tool calls for compliance:
{
"hooks": {
"PostToolUse": [
{ "matcher": "*", "hooks": [{ "type": "command", "command": "bash .claude/hooks/audit-log.sh" }] }
]
}
}
audit-log.sh appends JSON lines to a log shipping to SIEM (Splunk, Elastic, Datadog). Key fields: timestamp, session_id, tool_name, tool_input_hash (not raw input if sensitive), decision, duration_ms.
For org-wide enforcement, use managed settings at the OS level:
/Library/Application Support/Claude/managed-settings.jsonC:\ProgramData\Claude\managed-settings.json/etc/claude/managed-settings.jsonManaged settings override user settings. Use for: denylist of dangerous commands, required hooks (audit), forbidden MCP servers.
allow/deny tied to AD/SSO identity..claude/ edits go through PR review.detect-secrets + custom PHI regex in hook.mem_timeline, /cc-memory export).Run security-compliance-advisor agent for a full audit. Minimum checks:
settings.json, .mcp.json, or any committed filedeny list includes destructive commands (rm -rf, sudo, curl|sh)protect-sensitive-files hook installedbypassPermissions outside CI--dangerously-skip-permissions in any committed script| Need | Tool |
|---|---|
| Settings schema | cc_docs_settings_schema |
| Audit checklist | cc_docs_checklist("security") |
| Model for review | cc_docs_model_recommend("security review") → Opus |
| Hook recipe for protection | cc_kb_hook_recipe("protect-sensitive-files") |
permissions.allow: ["*"] → defeats the point.env → committed to git.bypassPermissions in developer default → one typo destroys something.development
Enhanced plan-authoring skill with Pre-Writing context gathering, task metadata, non-TDD templates, Red Flags, telemetry, and an automated plan linter. Use when you have a spec or requirements for a multi-step task, before touching code.
tools
Documentation intelligence engine with graph-based API docs, algorithm library, and drift detection
tools
Ultraplan cloud planning — kick off a plan in the cloud from your terminal, review and revise in the browser, then execute remotely or send back to CLI
tools
--- name: mcp description: Configure MCP servers for Claude Code — stdio vs HTTP, authentication, Tools/Resources/Prompts distinction, channels (CI webhook, mobile relay, Discord bridge, fakechat), and cost of always-loaded tools. Use this skill whenever adding an MCP server, debugging connection issues, choosing between MCP Tools vs Prompts vs Resources, installing channel servers, or managing .mcp.json. Triggers on: "MCP server", "mcp config", "add Obsidian MCP", "install context7", "channels"