学术科研
Claude Code 项目配置与健康审计:新建/审计项目时…
在 Claude Code 中初始化或审计项目时,用于管理权限、上下文文档、MCP 覆盖、密钥泄露和配置整洁度。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
Claude Code 项目配置与健康审特定
解决思路
- 用子代理运行重型分析,主代理只负责编排;子代理扫描并返回摘要,以保持主上下文干净。
- 启动 Agent 1: Permission Auditor:调用 Task(subagent_type: "general-purpose"),并传入指定 prompt。
- 在 Permission Auditor prompt 中:读取 .claude/settings.local.json。
- 发现已连接 MCP servers:用 ToolSearch 搜索 "mcp",从工具名提取唯一 server 前缀,例如 mcp__vault__secret_list → vault。
- 发现已安装 skills:用 Skill 工具或 ToolSearch 列出可用 skills。对每个其目录中有 scripts/ 的 skill,记录它需要的 Bash 模式,例如 python3、像 GEMINI_API_KEY=* 的环境变量前缀等。检查 SKILL.md 中 skill 引用的任何 MCP 工具,例如 mcp__vault__secret_get。
- 报告 1:已连接但不在 settings 中的 MCP servers(缺失)。
- 报告 2:在 settings 中但未连接的 MCP servers(过期)。
- 报告 3:skill 权限:已安装 skills 需要但未批准的 Bash 模式和 MCP 工具。
- 报告 4:文件访问:检查项目 settings 中 .claude/** 和 //tmp/** 的 Read/Edit/Write 模式,以及全局 settings 中 ~/Documents/**、~/.claude/**。
- 报告 5:泄露密钥:包含 API keys、tokens、bearer strings、hex >20 chars、base64 >20 chars 的条目。
- 报告 6:旧式冒号语法:像 Bash(git:*) 而不是 Bash(git *) 的条目。
- 报告 7:垃圾条目:shell fragments,例如 Bash(do)、Bash(fi)、Bash(then)、Bash(else)、Bash(done),以及 __NEW_LINE_* artefacts、循环体片段,例如 Bash(break)、Bash(continue)、Bash(echo *)。
- 报告 8:重复:被更宽模式覆盖的条目,例如 Bash(git add *) 在 Bash(git *) 存在时冗余。
- 报告 9:缺失预设:根据存在的文件,建议来自 [permission-presets.md] 的 presets。
- 在 Permission Auditor 中优先 Read/Glob/Grep 工具而非 Bash。如果需要扫描多个文件或为一个分析运行 3+ 命令,写 Python 脚本到 .jez/scripts/ 并运行一次,先 mkdir -p .jez/scripts。返回结构化摘要,不是原始数据。
- 启动 Agent 2: Context Auditor:调用 Task(subagent_type: "general-purpose"),并传入指定 prompt。
- 在 Context Auditor prompt 中:审计项目上下文 landscape at [repo-path]。
- 查找所有 CLAUDE.md 文件。对每个:统计行数,目标 root 50-150、subdirs 15-50;按 6 个标准评分质量,见 quality-criteria.md;检查过期文件/路径引用;标记过大文件。
- 查找 .claude/rules/ 主题文件。检查大小,目标 20-80 lines。
- 从存在文件检测项目类型,见 project-types.md。检查预期文档是否存在,例如 ARCHITECTURE.md、DATABASE_SCHEMA.md 等。
- 查找公开 markdown,例如 README.md、LICENSE、CONTRIBUTING.md。检查与 CLAUDE.md 内容重叠。
- 检查 auto-memory 在 ~/.claude/projects/*/memory/MEMORY.md。
- 如果是 Cloudflare 项目:查找所有 wrangler.jsonc/wrangler.toml 文件。检查每个有 "observability": { "enabled": true }。标记任何缺失它的。
- 在 Context Auditor 中优先 Read/Glob/Grep 工具而非 Bash。如果需要扫描许多文件或跨 repo 聚合数据,写 Python 脚本到 .jez/scripts/ 并运行一次,而不是运行许多单独 bash 命令,先 mkdir -p .jez/scripts。返回:项目类型、质量分数、缺失文档、过期引用、重叠、大小违规、observability gaps 和总 markdown footprint。
- 完整健康检查时并行启动两个 agents:Task(subagent_type: "general-purpose", name: "permission-audit", prompt: "...") 和 Task(subagent_type: "general-purpose", name: "context-audit", prompt: "...")。两者返回摘要;主代理合并为一个报告并提出修复。
- 执行完整健康检查步骤 1:并行启动 Permission Auditor 和 Context Auditor agents。
- 执行完整健康检查步骤 2:将发现合并为单个报告,包含 ## Project Health Report、Project type、CLAUDE.md quality: [score]/100 ([grade])、### Permissions:Missing MCP servers、Leaked secrets、Legacy syntax、Missing presets;### Context:Oversized files、Stale references、Missing docs、Overlaps;### Recommended Fixes 编号列表。
- 执行完整健康检查步骤 3:单次 yes/no 确认后应用修复。
- 执行新项目设置:从存在文件检测项目类型。wrangler.jsonc 或 wrangler.toml → cloudflare-worker,preset 为 JS/TS + Cloudflare;vercel.json 或 next.config.* → vercel-app,preset 为 JS/TS + Vercel;astro.config.* → astro,preset 为 JS/TS + Static Sites;package.json 且无部署目标 → javascript-typescript,preset 为 JS/TS;pyproject.toml 或 setup.py 或 requirements.txt → python,preset 为 Python;Cargo.toml → rust,preset 为 Rust;go.mod → go,preset 为 Go;Gemfile 或 Rakefile → ruby,preset 为 Ruby;composer.json 或 wp-config.php → php,preset 为 PHP;pom.xml 或 build.gradle* → java,preset 为 Java/JVM;*.sln 或 *.csproj → dotnet,preset 为 .NET;mix.exs → elixir,preset 为 Elixir;Package.swift → swift,preset 为 Swift + macOS;pubspec.yaml → flutter,preset 为 Mobile;Dockerfile 或 docker-compose.yml → docker,preset 为 Docker;fly.toml 或 railway.json 或 netlify.toml → hosted-app,preset 为 Hosting Platforms;supabase/config.toml → supabase,preset 为 Hosting + Database;.claude/agents/ 或 operational scripts → ops-admin,preset 为 —;空目录 → 询问用户,preset 为 —。类型可叠加,例如 cloudflare-worker + javascript-typescript。
- 生成 .claude/settings.local.json:读取 [references/permission-presets.md];始终包含 Universal Base,包括 .claude/**、//tmp/** 文件访问;添加检测到的语言+部署 presets;检查全局 ~/.claude/settings.local.json 是否有 home-relative 文件访问模式,例如 ~/Documents/**、~/.claude/**,若没有建议加到那里,而不是项目文件,因为 home paths 只属于全局设置;启动 Permission Auditor agent 发现 MCP servers 并添加 per-server wildcards;始终包含 WebSearch、WebFetch;始终包含显式 gh 子命令,作为 Bash(gh *) bug 的 workaround;用 // 注释组写入。
- 生成 CLAUDE.md:读取 [references/templates.md];使用适合项目类型的模板。
- 生成 .gitignore:读取 [references/templates.md];始终包含 .claude/settings.local.json、.claude/plans/、.jez/screenshots/、.jez/artifacts/;不要 gitignore .jez/scripts/,生成的脚本值得保留。
- 可选但先询问:执行 git init + gh repo create。
- 警告:Project settings.local.json SHADOWS global settings (does not merge). Session restart needed.
- 执行整理权限:启动 Permission Auditor agent,然后应用其推荐修复。
- 执行捕获 learnings:在 main context 运行,不是子代理,因为需要访问对话历史。审查对话中值得保留的发现。
- 决定 learnings 放置位置:适用于所有项目?是 → ~/.claude/rules/<topic>.md;否 → 特定于子目录?是 → <dir>/CLAUDE.md;否 → 参考或运营?参考 → docs/ 或 ARCHITECTURE.md;运营 → ./CLAUDE.md(根)。
- 将 learnings 的所有更改起草为 diff 在单个批次中。单次 yes/no 确认后应用。保持简洁:每个概念一行。
- 执行添加 preset:从 [references/permission-presets.md] 读取 preset。读取现有 .claude/settings.local.json。合并不重复。提醒需要重启会话。
- 执行重构上下文:先启动 Context Auditor agent。基于发现:将过大 CLAUDE.md 拆分为 .claude/rules/<topic>.md;提取目录特定内容到子目录 CLAUDE.md;移动参考材料到 docs/;解决重叠;为项目类型创建缺失文档。展示计划,经批准后应用。
- 应用大小目标:Root CLAUDE.md 目标 50-150 行,最大 200;Sub-directory CLAUDE.md 目标 15-50 行,最大 80;Rules topic file 目标 20-80 行,最大 120。
- 权限语法快速参考:Bash(git *) 首选,* 前有空格 = 单词边界;Bash(nvidia-smi) 精确匹配,无参数;WebFetch 全局 web fetch;WebSearch 全局 web search;mcp__servername__* 一个 MCP server 的所有工具。
- 不可用语法:mcp__* 通配符不跨 __ 边界;mcp__*__* 仍不行;Bash(git:*) 已弃用冒号语法,可用但优先空格。
- 重要行为:Not hot-reloaded:settings.local.json 编辑需要重启会话;Don't ask again 在运行时注入,无需重启,使用 colon format,这是正常的;Shadows, not merges:项目设置完全替换全局;gh bug:Bash(gh *) 有时漏子命令,包含显式 Bash(gh issue *) 等。
- 自主性:Just do it:检测项目类型、启动 audit agents、发现 MCP servers;Brief confirmation:写/更新文件,单批次 yes/no;Ask first:git init、GitHub repo、删除现有内容、重大重构。
- 参考文件:构建 permission presets 时读 [references/permission-presets.md];生成 CLAUDE.md、.gitignore 时读 [references/templates.md];评分 CLAUDE.md 质量时读 [references/quality-criteria.md];检测项目类型+预期文档时读 [references/project-types.md];设置 commit capture hook 时读 [references/commit-hook.md]。
适用边界 · 注意事项
- 不适用于非 Claude Code 环境;该技能 compatibility 为 claude-code-only,依赖 Task、ToolSearch、Skill 等工具。
- 不适用于无法运行子代理或不允许向 .jez/scripts/ 写入并运行分析脚本的仓库。
- Cloudflare 的 observability 检查仅适用于 Cloudflare 项目,其他项目跳过该检查。