游乐游手机版
首页/AI教程/文章详情

settings.json权限配置、CLAUDE.md文件与Rules懒加载规则实战指南

时间:2026-06-19 14:26
settings json通过allow、deny、ask三区模型控制工具权限,deny优先级最高。CLAUDE md在项目启动时加载,明确技术栈、命令、约定与边界。 claude rules 目录按文件路径懒加载特定规则,不占用无关上下文。三者协同实现精细配置与安全管控。

配置实战——settings.json 权限 + CLAUDE.md + Rules 懒加载

前两篇文章聊了"怎么操作Claude Code"和"怎么编排工作流"。这篇我们聚焦于配置——让Claude Code一启动就懂你的项目、只做你允许的事、在monorepo里不乱加载无关规则。

配置实战——settings.json 权限 + CLAUDE.md + Rules 懒加载

下面讨论的素材,来自shanraisshan/claude-code-best-practice仓库的真实配置。你可以直接拿来用,或者根据自己项目微调。

Part 1: settings.json 权限——allow / deny / ask 三区模型

权限系统是settings.json的核心——它就像一道门禁。每次Claude Code调用工具(Bash、Write、WebFetch等),都得先过这一关:

{"permissions": {"allow": ["Bash(npm test:*)", "Bash(npm run lint:*)", "Read(*)"],"deny": ["Bash(curl:*)", "Bash(rm -rf:*)", "Bash(git push --force:*)"],"ask": ["WebFetch(*)", "Bash(npm install:*)"]}}

三个区域的设计意图很明确:

区域行为用途
allow自动放行,不弹窗你每次都同意的安全操作(跑测试、读文件)
deny直接拒绝,模型看不到这个选项绝对不能做的操作(删库、强制推送)
ask弹窗问你需要你判断的操作(装依赖、调外部API)

说到优先级,一个不能忽略的设计细节是:deny > ask > allow。如果一个操作同时匹配了deny和allow,deny赢。这条规则很关键——你不会因为allow规则写得太宽而意外放行危险操作。

实战配置:一个生产可用的权限模板

{"permissions": {"allow": ["Read(*)","Edit(*)","Bash(npm test:*)","Bash(npm run lint:*)","Bash(npm run build:*)","Bash(npx tsc:*)","Bash(git status:*)","Bash(git diff:*)","Bash(git log:*)","Bash(git branch:*)","Bash(git add:*)","Bash(git commit:*)"],"deny": ["Bash(rm -rf:*)","Bash(git push --force:*)","Bash(git reset --hard:*)","Bash(curl:*)","Bash(wget:*)"],"ask": ["WebFetch(*)","Bash(npm install:*)","Bash(git push:*)","Bash(git pull:*)","Bash(npm publish:*)"]}}

这个配置背后有几个原则:

allow不是越宽越好。 那种直接写"Bash(*)"的行为,等于废了权限系统。每个allow规则应该精准锁定你确认安全的命令。少即是多。

deny放操作后果不可逆的命令。 rm -rfpush --forcereset --hard——这些操作哪怕你误点了allow,也来不及后悔。直接堵死最省心。

ask放需要你判断上下文的操作。 WebFetch调外部API可能泄露代码、npm install可能引入恶意包——每次触发时你都该看一眼。

连接第2篇:跨层权限收窄模式

第2篇展示的Command→Agent→Skill三层编排中,工具白名单是逐层收窄的:
Command层能看到Agent和Skill,但不能直接调用Bash和WebFetch;
Agent层能访问Read和Skill,但不能直接执行Bash;
Skill层权限才精确到WebFetch(*)Write(*)这样的单个操作。
这个权限收窄原则,在settings.json里也能直接套用——你可以给不同agent配置不同的allowed-tools,确保它们只做设计范围内的事。而settings.json的deny列表,就是全局底线——无论哪一层都不能越过。

Part 2: CLAUDE.md——让Claude Code一启动就懂你的项目

它应该写什么

CLAUDE.md是Claude Code启动时加载的指令文件。它可以有多个(从祖先目录往下读取),但项目根目录那个是核心。一份好的CLAUDE.md,通常不超过200行,只写三样东西:

1. Claude不会知道但必须知道的。 技术栈、命令、项目约定——这些是你项目特有的,Claude的训练数据里大概率没有。

2. Claude知道但可能搞错的。 比如"用named export,不用default export"——Claude两种都会写,但你的项目只认一种。这是纠正默认行为,不是教它基础知识。

3. 绝对不能做的。 .env不能commit、database schema不能随便改、依赖不能随便加——这些是项目的"宪法",白纸黑字写清楚。

它不应该写什么

  • 基础知识("React组件应该用hooks"——Claude本来就知道)
  • 模糊建议("写出高质量的代码"——这句话没有任何约束力)
  • 太长(超过200行Claude会开始忽略后面的内容)

实战模板:一个60行的CLAUDE.md

# 项目:[你的项目名]## 技术栈- Frontend: React 18, TypeScript 5, Vite- Backend: Node.js 22, Express, PostgreSQL, Prisma## 命令- Build: `npm run build`- Test: `npm test -- --coverage`(必须0 failure)- Lint: `npm run lint --fix`- Type check: `npx tsc --noEmit`## 代码约定- 函数组件 + hooks,不用class- named export,不用default export- 测试文件和源文件同级:Button.tsx → Button.test.tsx- commit message格式:`type(scope): description`## 边界- 永远不commit .env或secrets- 加依赖前先检查bundle size- 改database schema、CI配置前先问我- commit前必须跑测试和lint## 当前项目状态- 正在做的功能:用户认证重构(auth-v2分支)- 已知坑:auth.ts里有一段旧的JWT逻辑,本次重构不碰它

注意最后"当前项目状态"那段——这是CLAUDE.md里最容易被忽略但最有价值的部分。它告诉Claude"我们在做什么、有什么坑",避免它在你不在的时候自创方案。

Monorepo场景:祖先加载 + 后代加载

Claude Code会沿着目录树加载CLAUDE.md,有点像gitignore的继承策略:

你从 /monorepo/ 启动 Claude:自动加载:~/.claude/CLAUDE.md ← 全局规则/monorepo/CLAUDE.md ← 项目根(shared规则:git约定、CI流程)按需加载(碰到对应目录的文件时才加载):/monorepo/packages/frontend/CLAUDE.md ← 前端规则/monorepo/packages/backend/CLAUDE.md ← 后端规则

实战策略很简单:
根目录CLAUDE.md放跨项目的共享约定。
子目录CLAUDE.md放各模块特有的技术栈和patterns。
Claude处理前端代码时自动带上前端规则,处理后端时自动带上后端规则,互不污染。

Part 3: .claude/rules/——更细粒度的指令控制

CLAUDE.md够好用了,但有一个小问题——它没办法按文件类型做精细的控制。你在monorepo里可能希望"TypeScript文件有统一规范,但别影响其他文件"。

.claude/rules/目录 + paths: frontmatter就是专门解决这个问题的:

# .claude/rules/typescript.md---paths:- "src/**/*.ts"- "src/**/*.tsx"---## TypeScript规范- 优先使用interface而非type(除非需要union/intersection)- 函数参数超过3个时使用对象参数- 异步函数返回值始终用Promise<T>

这个文件只在Claude读取src/**/*.ts文件时才加载。处理Go、Python、配置文件时完全不占用context——这就是"懒加载"的用意。

什么时候用Rules而不是CLAUDE.md:当一条规则只对特定文件类型或目录生效时。全局规则放CLAUDE.md,文件级规则放Rules。

实战落地:你能直接拿走的东西

完整的settings.json模板

把下面内容保存到.claude/settings.json

{"permissions": {"allow": ["Read(*)", "Edit(*)","Bash(npm test:*)", "Bash(npm run lint:*)", "Bash(npm run build:*)","Bash(git:status,diff,log,branch,add,commit:*)(!push !reset !rebase)"],"deny": ["Bash(rm -rf:*)", "Bash(git push --force:*)", "Bash(curl:*)"],"ask": ["WebFetch(*)", "Bash(npm install:*)", "Bash(npm publish:*)"]},"attribution": {"commit": ""}}

完整的CLAUDE.md模板

把上面那个60行模板保存到项目根目录CLAUDE.md就行。

Rules文件模板

mkdir -p .claude/rules

# .claude/rules/typescript.md---paths:- "src/**/*.ts"- "src/**/*.tsx"---## TypeScript规范[你的规范]

验证配置生效

# 1. 检查settings.json有无语法错误cat .claude/settings.json | python3 -m json.tool > /dev/null && echo "JSON valid"# 2. 重启Claude Codeclaude# 3. 验证CLAUDE.md被加载(Claude应该知道你的项目命令和约定)# 让它跑一下npm test——如果不需要你解释怎么跑,说明CLAUDE.md生效了

本文素材来源:shanraisshan/claude-code-best-practice

来源:https://juejin.cn/post/7651998644058324998
上一篇HOW2026中国数据库开源发展峰会参会收获与心得 下一篇深入拆解成熟Skill案例,掌握从零到一编写技巧
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Windows Docker Desktop RabbitMQ生产级部署完整指南
AI教程 · 2026-06-29

Windows Docker Desktop RabbitMQ生产级部署完整指南

前言 在 Windows 本地开发环境中,直接安装 RabbitMQ 确实颇为周折:需要单独配置 Erlang 运行环境、手动管理环境变量、服务启停全凭手工操作。更令人困扰的是,版本兼容冲突、端口占用、环境不一致等问题层出不穷。笔者见过不少开发者为搭建环境就得耗费整整半天时间。 相比之下,借助 Do

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践
AI教程 · 2026-06-29

AI搜索重构制造业采购逻辑的阿里云企业级GEOCMS优化实践

先分享一个切实感受。过去两年,我们与福建制造企业合作较为频繁,发现一个非常突出的现象:超过80%的企业官网,产品参数仍然存放在PDF或图片中。AI爬虫?根本无法抓取。这些企业技术实力不弱、资质证照齐全、应用案例也丰富,但在AI搜索这一全新战场上,它们几乎处于隐身状态。 一、一个正在发生的行业变化 A

阿里云Token Plan团队版功能价格与省钱购买指南
AI教程 · 2026-06-29

阿里云Token Plan团队版功能价格与省钱购买指南

阿里云百炼近期推出了名为“Token Plan 团队版”的全新服务,这一服务专为企业与开发者量身打造,定位为AI大模型订阅平台。通过引入Credits作为统一计量单位,将文本生成、图像生成等多模态AI能力纳入单一计费体系,同时无缝兼容主流AI编程工具及智能体(Agent)生态系统。其核心亮点包括:全

阿里云物联网.NET Core客户端位置信息上报
AI教程 · 2026-06-29

阿里云物联网.NET Core客户端位置信息上报

阿里云物联网平台的位置服务并非一个完全独立的功能模块。位置信息可包含二维坐标与三维坐标,而位置数据的来源本质上是借助设备属性进行上传。换言之,若要让设备上报位置,您需先将其视为一个普通属性进行处理。 1)添加二维位置数据 操作过程十分简洁。进入数据分析 → 空间数据可视化 → 二维数据,点击添加,将

年阿里云服务器选型配置与网站部署全攻略
AI教程 · 2026-06-29

年阿里云服务器选型配置与网站部署全攻略

2026年,阿里云服务器生态已高度成熟,形成了清晰的轻量应用服务器与ECS云服务器两大产品阵营。无论你是计划搭建个人博客、企业官网,还是运营电商平台、进行应用开发,基本都能找到理想的解决方案。本指南将从服务器选型、配置选择、部署流程到安全运维,系统梳理2026年最实用的操作要点,帮助你少走弯路,让网