Claude Settings Audit

作者 getsentryd18b7aa8ba87無授權條款1K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 天前更新

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.

AI 產生的概覽

分析程式碼倉庫,依據偵測到的技術堆疊推薦唯讀的 Claude Code settings.json 權限設定。

功能
此技能會檢查指標檔案與鎖定檔案,辨識倉庫使用的語言、套件管理器、框架、服務、建置工具以及 monorepo 結構。接著它會彙整出一份推薦的唯讀 bash 指令允許清單、WebFetch 網域以及選用的 MCP 伺服器設定,並以摘要表格和可直接複製的 JSON 形式輸出,同時提供與現有設定合併的說明。
適用情境
適用於為新專案設定 Claude Code 權限、稽核或擴充現有設定,或判斷應允許哪些唯讀 bash 指令與文件網域。它鎖定能從設定檔與鎖定檔辨識技術堆疊的程式碼倉庫。
執行需求
僅為說明性內容,未附帶指令碼。它依賴代理程式執行 ls、find、cat 等 shell 指令來檢查倉庫,並讀取相依性與鎖定檔案;產生建議不需要憑證或網路存取。

Claude Settings Audit

Analyze this repository and generate recommended Claude Code settings.json permissions for read-only commands.

Phase 1: Detect Tech Stack

Run these commands to detect the repository structure:

bash
ls -lafind . -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 -50

Check for these indicator files:

CategoryFiles to Check
Pythonpyproject.toml, setup.py, requirements.txt, Pipfile, poetry.lock, uv.lock
Node.jspackage.json, package-lock.json, yarn.lock, pnpm-lock.yaml
Gogo.mod, go.sum
RustCargo.toml, Cargo.lock
RubyGemfile, Gemfile.lock
Javapom.xml, build.gradle, build.gradle.kts
BuildMakefile, Dockerfile, docker-compose.yml
Infra*.tf files, kubernetes/, helm/
Monorepolerna.json, nx.json, turbo.json, pnpm-workspace.yaml

Phase 2: Detect Services

Check for service integrations:

ServiceDetection
Sentrysentry-sdk in deps, @sentry/* packages, .sentryclirc, sentry.properties
LinearLinear config files, .linear/ directory

Read dependency files to identify frameworks:

  • package.json → check dependencies and devDependencies
  • pyproject.toml → check [project.dependencies] or [tool.poetry.dependencies]
  • Gemfile → check gem names
  • Cargo.toml → check [dependencies]

Phase 3: Check Existing Settings

bash
cat .claude/settings.json 2>/dev/null || echo "No existing settings"

Phase 4: Generate Recommendations

Build the allow list by combining:

Baseline Commands (Always Include)

json
[  "Bash(ls:*)",  "Bash(pwd:*)",  "Bash(find:*)",  "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:*)",  "Bash(git remote:*)",  "Bash(git tag:*)",  "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 api:*)"]

Stack-Specific Commands

Only include commands for tools actually detected in the project.

Python (if any Python files or config detected)
If DetectedAdd These Commands
Any Pythonpython --version, python3 --version
poetry.lockpoetry show, poetry env info
uv.lockuv pip list, uv tree
Pipfile.lockpipenv graph
requirements.txt (no other lock)pip list, pip show, pip freeze
Node.js (if package.json detected)
If DetectedAdd These Commands
Any Node.jsnode --version
pnpm-lock.yamlpnpm list, pnpm why
yarn.lockyarn list, yarn info, yarn why
package-lock.jsonnpm list, npm view, npm outdated
TypeScript (tsconfig.json)tsc --version
Other Languages
If DetectedAdd These Commands
go.modgo version, go list, go mod graph, go env
Cargo.tomlrustc --version, cargo --version, cargo tree, cargo metadata
Gemfileruby --version, bundle list, bundle show
pom.xmljava --version, mvn --version, mvn dependency:tree
build.gradlejava --version, gradle --version, gradle dependencies
Build Tools
If DetectedAdd These Commands
Dockerfiledocker --version, docker ps, docker images
docker-compose.ymldocker-compose ps, docker-compose config
*.tf filesterraform --version, terraform providers, terraform state list
Makefilemake --version, make -n

Skills (for Sentry Projects)

If this is a Sentry project (or sentry-skills plugin is installed), include:

json
[  "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:django-access-review)",  "Skill(sentry-skills:django-perf-review)",  "Skill(sentry-skills:doc-coauthoring)",  "Skill(sentry-skills:document-api-endpoint)",  "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-link-issue)",  "Skill(sentry-skills:pr-writer)",  "Skill(sentry-skills:presentation-creator)",  "Skill(sentry-skills:prompt-optimizer)",  "Skill(sentry-skills:secret-serialization)",  "Skill(sentry-skills:security-review)",  "Skill(sentry-skills:skill-scanner)",  "Skill(sentry-skills:skill-writer)",  "Skill(sentry-skills:sred-project-organizer)",  "Skill(sentry-skills:sred-work-summary)",  "Skill(sentry-skills:triage-frontend-issues)",  "Skill(sentry-skills:typing-exclusion-worker)"]

WebFetch Domains

Always Include (Sentry Projects)
json
[  "WebFetch(domain:docs.sentry.io)",  "WebFetch(domain:develop.sentry.dev)",  "WebFetch(domain:docs.github.com)",  "WebFetch(domain:cli.github.com)"]
Framework-Specific
If DetectedAdd Domains
Djangodocs.djangoproject.com
Flaskflask.palletsprojects.com
FastAPIfastapi.tiangolo.com
Reactreact.dev
Next.jsnextjs.org
Vuevuejs.org
Expressexpressjs.com
Railsguides.rubyonrails.org, api.rubyonrails.org
Gopkg.go.dev
Rustdocs.rs, doc.rust-lang.org
Dockerdocs.docker.com
Kuberneteskubernetes.io
Terraformregistry.terraform.io

MCP Server Suggestions

MCP servers are configured in .mcp.json (not settings.json). Check for existing config:

bash
cat .mcp.json 2>/dev/null || echo "No existing .mcp.json"
Sentry MCP (if Sentry SDK detected)

Add to .mcp.json (replace {org-slug} and {project-slug} with your Sentry organization and project slugs):

json
{  "mcpServers": {    "sentry": {      "type": "http",      "url": "https://mcp.sentry.dev/mcp/{org-slug}/{project-slug}"    }  }}
Linear MCP (if Linear usage detected)

Add to .mcp.json:

json
{  "mcpServers": {    "linear": {      "command": "npx",      "args": ["-y", "@linear/mcp-server"],      "env": {        "LINEAR_API_KEY": "${LINEAR_API_KEY}"      }    }  }}

Note: Never suggest GitHub MCP. Always use gh CLI commands for GitHub.

Output Format

Present your findings as:

  1. Summary Table - What was detected
  2. Recommended settings.json - Complete JSON ready to copy
  3. MCP Suggestions - If applicable
  4. Merge Instructions - If existing settings found

Example output structure:

markdown
## Detected Tech Stack
| Category        | Found          || --------------- | -------------- || Languages       | Python 3.x     || Package Manager | poetry         || Frameworks      | Django, Celery || Services        | Sentry         || Build Tools     | Docker, Make   |
## Recommended .claude/settings.json
\`\`\`json{"permissions": {"allow": [// ... grouped by category with comments],"deny": []}}\`\`\`
## Recommended .mcp.json (if applicable)
If you use Sentry or Linear, add the MCP config to `.mcp.json`...

Important Rules

What to Include

  • Only READ-ONLY commands that cannot modify state
  • Only tools that are actually used by the project (detected via lock files)
  • Standard system commands (ls, cat, find, etc.)
  • The :* suffix allows any arguments to the base command

What to NEVER Include

  • Absolute paths - Never include user-specific paths like /home/user/scripts/foo or /Users/name/bin/bar
  • Custom scripts - Never include project scripts that may have side effects (e.g., ./scripts/deploy.sh)
  • Alternative package managers - If the project uses pnpm, do NOT include npm/yarn commands
  • Commands that modify state - No install, build, run, write, or delete commands

Package Manager Rules

Only include the package manager actually used by the project:

If DetectedIncludeDo NOT Include
pnpm-lock.yamlpnpm commandsnpm, yarn
yarn.lockyarn commandsnpm, pnpm
package-lock.jsonnpm commandsyarn, pnpm
poetry.lockpoetry commandspip (unless also has requirements.txt)
uv.lockuv commandspip, poetry
Pipfile.lockpipenv commandspip, poetry

If multiple lock files exist, include only the commands for each detected manager.

來源與署名

來源:getsentry/skills位於skills/claude-settings-audit提交d18b7aa

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架