mcpField
C
claude-settings-audit

claude-settings-audit

github.com/getsentryAgent 工作流1.1k4.5k 次安装5 天前更新
代码仓库

关于 claude-settings-audit

面向 Claude Code 的技能,可检查仓库中的语言、工具和服务,并据此推荐只读 `settings.json` 权限。它还会检查 MCP 配置,并说明如何合并已有设置。

主要功能

  1. 01检测语言和项目工具
  2. 02检查服务集成与现有设置
  3. 03生成只读命令允许列表
  4. 04推荐相关 MCP 服务配置
  5. 05提供检测结果与合并说明

适用场景

  1. 01设置权限前检查仓库结构
  2. 02为项目生成 Claude Code 允许列表
  3. 03判断是否需要合并现有设置

MCP 相关

技能会检查 `.mcp.json`,并可在检测到相关服务时推荐 Sentry 或 Linear MCP 服务配置。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/getsentry/skills --skill claude-settings-audit

安装后在 Claude Code 中输入/claude-settings-audit确认已加载。

详细介绍

Claude 设置审计

分析此仓库,并为只读命令生成推荐的 Claude Code settings.json 权限。

阶段 1:检测技术栈

运行以下命令以检测仓库结构:

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 -50

检查以下指示文件:

类别要检查的文件
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
构建Makefile、Dockerfile、docker-compose.yml
基础设施*.tf 文件、kubernetes/、helm/
Monorepolerna.json、nx.json、turbo.json、pnpm-workspace.yaml

阶段 2:检测服务

检查服务集成:

服务检测方式
Sentry依赖项中的 sentry-sdk、@sentry/* 包、.sentryclirc、sentry.properties
LinearLinear 配置文件、.linear/ 目录

读取依赖文件以识别框架:

  • package.json → 检查 dependencies 和 devDependencies
  • pyproject.toml → 检查 [project.dependencies] 或 [tool.poetry.dependencies]
  • Gemfile → 检查 gem 名称
  • Cargo.toml → 检查 [dependencies]

阶段 3:检查现有设置

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

阶段 4:生成建议

通过组合以下内容构建允许列表:

基准命令(始终包含)
[
  "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:*)"
]
特定技术栈的命令

仅包含项目中实际检测到的工具对应的命令。

Python(检测到任何 Python 文件或配置时)
检测条件添加以下命令
任意 Pythonpython --version、python3 --version
poetry.lockpoetry show、poetry env info
uv.lockuv pip list、uv tree
Pipfile.lockpipenv graph
requirements.txt(无其他锁文件)pip list、pip show、pip freeze
Node.js(检测到 package.json 时)
检测条件添加以下命令
任意 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
其他语言
如果检测到添加这些命令
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
构建工具
如果检测到添加这些命令
Dockerfiledocker --version、docker ps、docker images
docker-compose.ymldocker-compose ps、docker-compose config
*.tf 文件terraform --version、terraform providers、terraform state list
Makefilemake --version、make -n
技能(用于 Sentry 项目)

如果这是 Sentry 项目(或已安装 sentry-skills 插件),请包含:

[
  "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-screenshots)",
  "Skill(sentry-skills:pr-writer)",
  "Skill(sentry-skills:presentation-creator)",
  "Skill(sentry-skills:prompt-optimizer)",
  "Skill(sentry-skills:secret-serialization)",
  "Skill(sentry-skills:security-model)",
  "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 域名
始终包含(Sentry 项目)
[
  "WebFetch(domain:docs.sentry.io)",
  "WebFetch(domain:develop.sentry.dev)",
  "WebFetch(domain:docs.github.com)",
  "WebFetch(domain:cli.github.com)"
]
框架特定
如果检测到添加域名
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 服务建议

MCP 服务配置在 .mcp.json(而不是 settings.json)中。检查现有配置:

cat .mcp.json 2>/dev/null || echo "No existing .mcp.json"
Sentry MCP(如果检测到 Sentry SDK)

添加到 .mcp.json(将 {org-slug} 和 {project-slug} 替换为你的 Sentry 组织和项目 slug):

{
  "mcpServers": {
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp/{org-slug}/{project-slug}"
    }
  }
}
Linear MCP(如果检测到使用 Linear)

添加到 .mcp.json:

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

注意:绝不要建议 GitHub MCP。GitHub 始终使用 gh 命令行命令。

输出格式

按以下方式呈现你的发现:

  1. 摘要表 - 检测到了什么
  2. 推荐的 settings.json - 可直接复制的完整 JSON
  3. MCP 建议 - 如果适用
  4. 合并说明 - 如果找到现有设置

示例输出结构:

## 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`...

重要规则

应包含的内容
  • 仅包含无法修改状态的只读命令
  • 仅包含项目实际使用的工具(通过锁文件检测)
  • 标准系统命令(ls、cat、find 等)
  • :* 后缀允许向基础命令传递任意参数
绝不应包含的内容
  • 绝对路径 - 绝不要包含用户特定的路径,如 /home/user/scripts/foo 或 /Users/name/bin/bar
  • 自定义脚本 - 绝不要包含可能有副作用的项目脚本(例如 ./scripts/deploy.sh)
  • 替代包管理器 - 如果项目使用 pnpm,则不要包含 npm/yarn 命令
  • 会修改状态的命令 - 不要包含安装、构建、运行、写入或删除命令
包管理器规则

仅包含项目实际使用的包管理器:

如果检测到包含不要包含
pnpm-lock.yamlpnpm 命令npm、yarn
yarn.lockyarn 命令npm、pnpm
package-lock.jsonnpm 命令yarn、pnpm
poetry.lockpoetry 命令pip(除非同时存在 requirements.txt)
uv.lockuv 命令pip、poetry
Pipfile.lockpipenv 命令pip、poetry

如果存在多个锁文件,仅包含每个检测到的包管理器对应的命令。

评论

支持 Markdown