Skip to content

Commit 8b229a6

Browse files
committed
docs(claude): 添加Claude配置与工具详细说明文档
添加完整的Claude配置管理系统说明文档,涵盖: - 目录结构说明和配置模型介绍 - 共享模板与本机覆盖的双层配置方案 - Sync-ClaudeConfig.ps1脚本功能详述 - Manage-ClaudeSkills.ps1技能管理工具说明 - 配
1 parent 9ac1d31 commit 8b229a6

1 file changed

Lines changed: 269 additions & 0 deletions

File tree

ai/coding/claude/README.md

Lines changed: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
# Claude 配置与工具说明
2+
3+
这个目录承载本仓库里与 Claude Code 相关的配置、同步脚本、文档和本地 Skill 开发入口。
4+
5+
如果你只想知道怎么开始,用最短路径:
6+
7+
1.`ai/coding/claude/config/settings.local.json` 写入本机 secrets 或 provider 覆盖。
8+
2. 运行 `pwsh -NoProfile -File ./ai/coding/claude/Sync-ClaudeConfig.ps1`
9+
3. 让脚本生成并更新 `~/.claude/settings.json`,以及同步受管共享资产。
10+
11+
## 目录说明
12+
13+
```text
14+
ai/coding/claude/
15+
├── .claude/ # 受管共享资产源,不是最终运行目录
16+
├── config/
17+
│ ├── settings.json # 可提交的共享模板
18+
│ └── settings.local.json # 本机私有覆盖(可选,不提交 Git)
19+
├── docs/ # Claude 相关说明与备忘
20+
├── skills-dev/ # 本地开发中的 Skill 源目录
21+
├── Sync-ClaudeConfig.ps1 # 配置生成与共享资产同步入口
22+
├── Manage-ClaudeSkills.ps1 # Skill 安装 / 卸载 / 导出 / watch 工具
23+
└── install.ps1 # 当前保留的快捷安装入口
24+
```
25+
26+
## 当前配置模型
27+
28+
本仓库采用的是“两层源 + 一层生成产物”的模型:
29+
30+
### 1. 共享模板
31+
32+
文件:`ai/coding/claude/config/settings.json`
33+
34+
这里放:
35+
36+
- 团队共享的默认权限
37+
- 非敏感 `env` 默认值
38+
- 默认模型、状态栏、插件开关
39+
- 适合提交审阅的长期配置
40+
41+
这里不应放:
42+
43+
- `ANTHROPIC_API_KEY`
44+
- `ANTHROPIC_BASE_URL`
45+
- 任何 token / secret / password
46+
47+
### 2. 本机覆盖
48+
49+
文件:`ai/coding/claude/config/settings.local.json`
50+
51+
这是可选文件,不提交 Git。这里适合放:
52+
53+
- API key
54+
- 本机代理 / router 地址
55+
- 临时模型切换
56+
- 个人偏好覆盖
57+
58+
示例:
59+
60+
```json
61+
{
62+
"env": {
63+
"ANTHROPIC_API_KEY": "sk-ant-...",
64+
"ANTHROPIC_BASE_URL": "http://127.0.0.1:3456"
65+
},
66+
"model": "opus[1m]"
67+
}
68+
```
69+
70+
### 3. 生成产物
71+
72+
文件:`~/.claude/settings.json`
73+
74+
这是最终生效配置,由 `Sync-ClaudeConfig.ps1` 生成。不要把它当成长期手改入口。
75+
76+
如果要改行为,优先改:
77+
78+
- 共享默认值:`config/settings.json`
79+
- 本机差异:`config/settings.local.json`
80+
81+
而不是直接改 `~/.claude/settings.json`
82+
83+
## 合并规则
84+
85+
`Sync-ClaudeConfig.ps1` 会按下面的规则合并 shared template 与 local override:
86+
87+
- 标量:local 覆盖 shared
88+
- 对象:深度合并
89+
- 数组:拼接后按内容去重
90+
91+
这意味着你只需要在 `settings.local.json` 里声明差异项,不需要复制整个对象。
92+
93+
例如:
94+
95+
- 只想补一个 `env.ANTHROPIC_API_KEY`
96+
- 只想把某个 `enabledPlugins.xxx` 改成 `true`
97+
- 只想覆盖 `model`
98+
99+
都只写这些字段即可。
100+
101+
## `Sync-ClaudeConfig.ps1` 做了什么
102+
103+
运行命令:
104+
105+
```powershell
106+
pwsh -NoProfile -File ./ai/coding/claude/Sync-ClaudeConfig.ps1
107+
```
108+
109+
脚本会做这些事:
110+
111+
1. 读取 `config/settings.json`
112+
2. 读取可选的 `config/settings.local.json`
113+
3. 检查共享模板里是否误放了明显的 secrets
114+
4. 生成最终的 `~/.claude/settings.json`
115+
5. 同步 `.claude/` 下的受管共享资产到真实的 `~/.claude`
116+
117+
### 在新机器上执行
118+
119+
如果机器上还没有 `~/.claude`
120+
121+
- 不会创建软连接
122+
- 会直接创建真实目录 `~/.claude`
123+
- 会生成 `~/.claude/settings.json`
124+
- 会把受管共享资产复制进去
125+
126+
### 在已有 `~/.claude` 的机器上执行
127+
128+
如果 `~/.claude` 已经存在:
129+
130+
- `~/.claude/settings.json` 会被重新生成并覆盖
131+
- 受管共享资产会按白名单覆盖更新
132+
- 非受管运行态文件会尽量保留
133+
134+
### 在旧软连接机器上执行
135+
136+
如果之前是旧模式:
137+
138+
```text
139+
~/.claude -> repo/.claude
140+
```
141+
142+
脚本会:
143+
144+
1. 先做备份
145+
2. 删除旧软连接
146+
3. 创建真实的 `~/.claude` 目录
147+
4. 恢复备份内容
148+
5. 再写入生成的 settings 和受管资产
149+
150+
也就是说,当前脚本的目标是**结束整目录软连接模式**,回到真实的用户配置目录。
151+
152+
## 会同步哪些文件
153+
154+
当前受管白名单包括:
155+
156+
- `CLAUDE.md`
157+
- `config.json`
158+
- `commands/*.md`
159+
- `output-styles/*.md`
160+
- `ccline/config.toml`
161+
- `ccline/models.toml`
162+
- `ccline/themes/*.toml`
163+
- `skills/**/*.md`
164+
165+
同步后目标目录里还会写一个内部清单:
166+
167+
- `.sync-manifest.json`
168+
169+
这个文件用于记录“哪些文件是脚本管理的”,方便后续清理仓库里已经删除的旧受管文件。
170+
171+
## 不会主动管理哪些内容
172+
173+
这些通常属于 Claude 运行时生成内容,不作为仓库共享配置管理:
174+
175+
- `history.jsonl`
176+
- `debug/`
177+
- `sessions/`
178+
- `transcripts/`
179+
- `projects/`
180+
- 其他缓存、锁文件、统计文件
181+
182+
因此:
183+
184+
- 仓库负责“共享配置和共享资产”
185+
- `~/.claude` 负责“真实运行时状态”
186+
187+
## 推荐使用流程
188+
189+
### 场景 1:首次配置
190+
191+
1. 准备 `config/settings.local.json`
192+
2. 运行 `Sync-ClaudeConfig.ps1`
193+
3. 启动 Claude
194+
4. 让 Claude 自己生成运行态目录和历史文件
195+
196+
### 场景 2:更新共享默认配置
197+
198+
1. 修改 `config/settings.json`
199+
2. 提交到仓库
200+
3. 在目标机器运行 `Sync-ClaudeConfig.ps1`
201+
202+
### 场景 3:只改本机 secrets 或 router
203+
204+
1. 修改 `config/settings.local.json`
205+
2. 重新运行 `Sync-ClaudeConfig.ps1`
206+
207+
### 场景 4:切换到新机器
208+
209+
1. 拉取仓库
210+
2. 新建本机 `config/settings.local.json`
211+
3. 运行 `Sync-ClaudeConfig.ps1`
212+
213+
## `Manage-ClaudeSkills.ps1` 用来做什么
214+
215+
这个脚本主要服务于 `skills-dev/` 目录中的本地 Skill 开发。
216+
217+
它支持:
218+
219+
- 查看 Skill 列表
220+
- 安装 / 更新 Skill 到 `.claude/skills`
221+
- 卸载 Skill
222+
- watch 模式同步
223+
- 导出 Skill 压缩包
224+
225+
交互式运行:
226+
227+
```powershell
228+
pwsh -NoProfile -File ./ai/coding/claude/Manage-ClaudeSkills.ps1
229+
```
230+
231+
也可以传动作参数,例如:
232+
233+
```powershell
234+
pwsh -NoProfile -File ./ai/coding/claude/Manage-ClaudeSkills.ps1 -Action List
235+
pwsh -NoProfile -File ./ai/coding/claude/Manage-ClaudeSkills.ps1 -Action Install -SkillName my-skill
236+
```
237+
238+
注意:这个脚本当前把 `ai/coding/claude/.claude/skills` 当作 Skill 的目标目录,也就是“仓库里的受管共享资产源”,而不是直接写入用户真实的 `~/.claude/skills`。要让这些 Skill 最终进入用户目录,仍然要再跑一次 `Sync-ClaudeConfig.ps1`
239+
240+
## 常见问题
241+
242+
### 1. 为什么 `settings.local.json` 没提交?
243+
244+
因为这是本机私有覆盖层,通常会包含 secrets 或个人差异配置,不应该进 Git。
245+
246+
### 2. 为什么不能直接改 `~/.claude/settings.json`
247+
248+
因为它是生成产物。你下次跑 sync 时,这个文件会被重新写出。
249+
250+
### 3. 我只想走 router,不想在模板里放 `ANTHROPIC_BASE_URL`
251+
252+
把它放到 `config/settings.local.json` 即可。共享模板应该只保留安全的默认值。
253+
254+
### 4. 如果共享模板里不小心放了 key 会怎样?
255+
256+
`Sync-ClaudeConfig.ps1` 会在写入前直接报错并阻止生成,提醒你把敏感内容移到 `config/settings.local.json`
257+
258+
### 5. 我的 `~/.claude/skills` 里有自己手加的内容,会被删吗?
259+
260+
脚本只管理白名单和它自己记录过的受管文件。额外的非受管内容通常会保留。
261+
262+
## 相关文档
263+
264+
- `ai/coding/claude/docs/config.md`
265+
- `ai/coding/claude/docs/CLAUDE_CODE_CHEATSHEET.md`
266+
- `ai/coding/claude/docs/CLAUDE_CODE_ADVANCED_FEATURES.md`
267+
- `ai/coding/claude/docs/CLAUDE_CODE_AGENT_SKILL_CHEATSHEET.md`
268+
- `ai/coding/claude/docs/CLAUDE_CODE_SUB_AGENT_CHEATSHEET.md`
269+
- `ai/coding/claude/docs/CLAUDE_CODE_WORKFLOW_CHEATSHEET.md`

0 commit comments

Comments
 (0)