claude-settings-audit – Security skill for AI agents
Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.
Install the claude-settings-audit skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/claude-settings-audit-31283.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /claude-settings-audit – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/claude-settings-audit-31283.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $claude-settings-audit – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/claude-settings-audit-31283.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /claude-settings-audit – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/claude-settings-audit-31283.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /claude-settings-audit – then describe the task you want done.
SKILL.md content
Claude Settings Audit
Analyze this repository and generate recommended Claude Code settings.json permissions for read-only commands.
When to Use
- You are setting up or auditing Claude Code
settings.jsonpermissions for a repository. - You need to infer a safe read-only allow list from the repo's tech stack, tooling, and monorepo structure.
- You want to review or replace an existing Claude permissions baseline with something evidence-based.
The broad prefixes in legacy examples are not a read-only sandbox: find can execute/delete, gh api can POST/PATCH/DELETE, and git branch/remote/tag have mutating forms. Recommend narrow reviewed commands or purpose-built read tools; never auto-allow arbitrary arguments merely because a command is usually observational. Build tools (make -n, Gradle, Maven, package managers) may evaluate project code or download/write caches. Redact settings/MCP secret values before displaying them, preserve existing deny/ask rules, and produce a proposal rather than silently installing permissions or servers. Skill invocation permissions can authorize mutating workflows and are not read-only by name.
Phase 1: Detect Tech Stack
Run these commands to detect the repository structure:
ls -la
find . -maxdepth 2 \( -name "*.toml" -o -name "*.json" -o -name "*.lock" -o -name "*.yaml" -o -name "*.yml" -o -name "Makefile" -o -name "Dockerfile" -o -name "*.tf" \) 2>/dev/null | head -50Check for these indicator files:
| Category | Files to Check |
| ------------ | ------------------------------------------------------------------------------------- |
| Python | pyproject.toml, setup.py, requirements.txt, Pipfile, poetry.lock, uv.lock |
| Node.js | package.json, package-lock.json, yarn.lock, pnpm-lock.yaml |
| Go | go.mod, go.sum |
| Rust | Cargo.toml, Cargo.lock |
| Ruby | Gemfile, Gemfile.lock |
| Java | pom.xml, build.gradle, build.gradle.kts |
| Build | Makefile, Dockerfile, docker-compose.yml |
| Infra | *.tf files, kubernetes/, helm/ |
| Monorepo | lerna.json, nx.json, turbo.json, pnpm-workspace.yaml |
Phase 2: Detect Services
Check for service integrations:
| Service | Detection |
| ---------- | ------------------------------------------------------------------------------- |
| Sentry | sentry-sdk in deps, @sentry/* packages, .sentryclirc, sentry.properties |
| Linear | Linear config files, .linear/ directory |
Read dependency files to identify frameworks:
package.json→ checkdependenciesanddevDependenciespyproject.toml→ check[project.dependencies]or[tool.poetry.dependencies]Gemfile→ check gem namesCargo.toml→ check[dependencies]
Phase 3: Check Existing Settings
cat .claude/settings.json 2>/dev/null || echo "No existing settings"Phase 4: Generate Recommendations
Build the allow list by combining:
Candidate Baseline (Review Each Permission)
[
"Bash(ls:*)",
"Bash(pwd:*)",
"Bash(file:*)",
"Bash(stat:*)",
"Bash(wc:*)",
"Bash(head:*)",
"Bash(tail:*)",
"Bash(cat:*)",
"Bash(tree:*)",
"Bash(git status:*)",
"Bash(git log:*)",
"Bash(git diff:*)",
"Bash(git show:*)",
"Bash(git branch --list)",
"Bash(git remote -v)",
"Bash(git tag --list)",
"Bash(git stash list:*)",
"Bash(git rev-parse:*)",
"Bash(gh pr view:*)",
"Bash(gh pr list:*)",
"Bash(gh pr checks:*)",
"Bash(gh pr diff:*)",
"Bash(gh issue view:*)",
"Bash(gh issue list:*)",
"Bash(gh run view:*)",
"Bash(gh run list:*)",
"Bash(gh run logs:*)",
"Bash(gh repo view:*)",
"Bash(gh repo view --json nameWithOwner)"
]Stack-Specific Commands
Only include commands for tools actually detected in the project.
Python (if any Python files or config detected)
| If Detected | Add These Commands |
| ---------------------------------- | --------------------------------------- |
| Any Python | python --version, python3 --version |
| poetry.lock | poetry show, poetry env info |
| uv.lock | uv pip list, uv tree |
| Pipfile.lock | pipenv graph |
| requirements.txt (no other lock) | pip list, pip show, pip freeze |
Node.js (if package.json detected)
| If Detected | Add These Commands |
| ---------------------------- | -------------------------------------- |
| Any Node.js | node --version |
| pnpm-lock.yaml | pnpm list, pnpm why |
| yarn.lock | yarn list, yarn info, yarn why |
| package-lock.json | npm list, npm view, npm outdated |
| TypeScript (tsconfig.json) | tsc --version |
Other Languages
| If Detected | Add These Commands |
| -------------- | -------------------------------------------------------------------- |
| go.mod | go version, go list, go mod graph, go env |
| Cargo.toml | rustc --version, cargo --version, cargo tree, cargo metadata |
| Gemfile | ruby --version, bundle list, bundle show |
| pom.xml | java --version, mvn --version, mvn dependency:tree |
| build.gradle | java --version, gradle --version, gradle dependencies |
Build Tools
| If Detected | Add These Commands |
| -------------------- | -------------------------------------------------------------------- |
| Dockerfile | docker --version, docker ps, docker images |
| docker-compose.yml | docker-compose ps, docker-compose config |
| *.tf files | terraform --version, terraform providers, terraform state list |
| Makefile | make --version, make -n |
Skills (for Sentry Projects)
If this is a Sentry project (or sentry-skills plugin is installed), include:
[
"Skill(sentry-skills:agents-md)",
"Skill(sentry-skills:blog-writing-guide)",
"Skill(sentry-skills:brand-guidelines)",
"Skill(sentry-skills:claude-settings-audit)",
"Skill(sentry-skills:code-review)",
"Skill(sentry-skills:code-simplifier)",
"Skill(sentry-skills:commit)",
"Skill(sentry-skills:create-branch)",
"Skill(sentry-skills:create-pr)",
"Skill(sentry-skills:django-access-review)",
"Skill(sentry-skills:django-perf-review)",
"Skill(sentry-skills:doc-coauthoring)",
"Skill(sentry-skills:find-bugs)",
"Skill(sentry-skills:gh-review-requests)",
"Skill(sentry-skills:gha-security-review)",
"Skill(sentry-skills:iterate-pr)",
"Skill(sentry-skills:pr-writer)",
"Skill(sentry-skills:security-review)",
"Skill(sentry-skills:skill-creator)",
"Skill(sentry-skills:skill-scanner)",
"Skill(sentry-skills:skill-writer)",
"Skill(sentry-skills:sred-project-organizer)",
"Skill(sentry-skills:sred-work-summary)"
]WebFetch Domains
Always Include (Sentry Projects)
[
"WebFetch(domain:docs.sentry.io)",
"WebFetch(domain:develop.sentry.dev)",
"WebFetch(domain:docs.github.com)",
"WebFetch(domain:cli.github.com)"
]Framework-Specific
| If Detected | Add Domains |
| -------------- | ----------------------------------------------- |
| Django | docs.djangoproject.com |
| Flask | flask.palletsprojects.com |
| FastAPI | fastapi.tiangolo.com |
| React | react.dev |
| Next.js | nextjs.org |
| Vue | vuejs.org |
| Express | expressjs.com |
| Rails | guides.rubyonrails.org, api.rubyonrails.org |
| Go | pkg.go.dev |
| Rust | docs.rs, doc.rust-lang.org |
| Docker | `doc
… (full content is in the download package)
Related skills
- origin-ip-discovery – Discover origin IPs behind CDN/WAF via favicon hash, DNS history, and SSL certs.
- client-secret-exposure-audit – Audit a deployed web app for secrets exposed to the browser: hardcoded API keys/tokens…
- osint-methodology – Comprehensive OSINT methodology for external red-team operations and authorized…
- cloudflare-security-audit – Audit authorized codebases for exploitable vulnerabilities using scoped reconnaissance…
- isms-audit-expert – Information Security Management System (ISMS) audit expert for ISO 27001 compliance…
- iso13485-audit-prep – /compliance-os:iso13485-audit-prep [scope] — ISO 13485 QMS audit 6-question forcing…
- pentest-playbook – 7-phase pentest pipeline from passive recon to exploitation.
- iso27001-audit-prep – /compliance-os:iso27001-audit-prep [scope] — ISO 27001 ISMS audit readiness 6-question…