npx skills add https://github.com/jezweb/claude-skills --skill project-health一个技能,涵盖你项目中 Claude Code 配置的所有方面。在项目开始、中期或结束时运行它——它会判断需要什么。
目标:零权限提示,组织良好的上下文文件,无冗余。
| 你说... | 会发生什么 |
|---|---|
| "project health" / "check project" | 全面审计:权限 + 上下文 + 文档 |
| "setup project" / "kickoff" / "bootstrap" | 从头开始新项目设置 |
| "tidy permissions" / "clean settings" | 仅修复权限文件 |
| "capture learnings" / "update CLAUDE.md" | 保存会话发现 |
| "add python" / "add docker permissions" | 向现有设置添加预设 |
| "audit context" / "audit memory" | 仅进行上下文审计 |
繁重的分析在子代理中运行,以保持主对话简洁。主代理进行编排;子代理执行扫描并返回摘要。
使用 Task(subagent_type: "general-purpose") 启动。提示:
读取 .claude/settings.local.json。
**发现已连接的 MCP 服务器**:使用 ToolSearch(搜索 "mcp")并从工具名称中提取唯一的服务器前缀(例如 mcp__vault__secret_list → vault)。
**发现已安装的技能**:使用 Skill 工具或 ToolSearch 列出可用技能。
对于每个在其目录中包含 scripts/ 的技能,注意它需要哪些 Bash 模式(python3,环境变量前缀如 GEMINI_API_KEY=* 等)。检查 SKILL.md 中技能引用的任何 MCP 工具(例如 mcp__vault__secret_get)。
报告:
1. 已连接但不在 settings 中的 MCP 服务器(缺失)
2. 在 settings 中但未连接的 MCP 服务器(陈旧)
3. 技能权限:已安装技能需要但未获批准的 Bash 模式和 MCP 工具
4. 文件访问:检查项目设置中对 .claude/** 和 //tmp/** 的 Read/Edit/Write 模式,以及全局设置中对 ~/Documents/**/~/.claude/** 的访问
5. 泄露的密钥:包含 API 密钥、令牌、bearer 字符串、长度超过 20 个字符的十六进制字符串、长度超过 20 个字符的 base64 字符串的条目
6. 遗留冒号语法:像 Bash(git:*) 这样的条目,而不是 Bash(git *)
7. 垃圾条目:shell 片段(Bash(do), Bash(fi), Bash(then), Bash(else), Bash(done))、__NEW_LINE_* 伪影、循环体片段(Bash(break), Bash(continue), Bash(echo *))
8. 重复项:被更广泛模式覆盖的条目(例如,如果 Bash(git *) 存在,则 Bash(git add *) 是冗余的)
9. 缺失的预设:基于存在的文件,建议来自 [permission-presets.md] 的预设
优先使用 Read/Glob/Grep 工具而非 Bash。如果你需要扫描多个文件或为一个分析运行 3 个以上命令,请编写一个 Python 脚本到 .jez/scripts/ 并运行一次(首先 mkdir -p .jez/scripts)。
返回结构化摘要,而非原始数据。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
使用 Task(subagent_type: "general-purpose") 启动。提示:
审计 [repo-path] 处的项目上下文情况:
1. 查找所有 CLAUDE.md 文件。对于每个:
- 统计行数(目标:根目录 50-150 行,子目录 15-50 行)
- 根据 6 项标准评分质量(参见 quality-criteria.md)
- 检查过时的文件/路径引用
- 标记过大的文件
2. 查找 .claude/rules/ 主题文件。检查大小(目标:20-80 行)。
3. 根据存在的文件检测项目类型(参见 project-types.md)。
检查预期的文档是否存在(ARCHITECTURE.md, DATABASE_SCHEMA.md 等)
4. 查找公共 markdown 文件(README.md, LICENSE, CONTRIBUTING.md)。
检查与 CLAUDE.md 内容的重叠。
5. 检查 ~/.claude/projects/*/memory/MEMORY.md 处的自动记忆。
6. 如果是 Cloudflare 项目:查找所有 wrangler.jsonc/wrangler.toml 文件。
检查每个文件是否包含 "observability": { "enabled": true }。标记任何缺失此项的文件。
优先使用 Read/Glob/Grep 工具而非 Bash。如果你需要扫描许多文件或在仓库中聚合数据,请编写一个 Python 脚本到 .jez/scripts/ 并运行一次,而不是运行许多单独的 bash 命令(首先 mkdir -p .jez/scripts)。
返回:项目类型、质量分数、缺失的文档、过时的引用、重叠、大小违规、可观测性差距以及总的 markdown 占用空间。
对于完整的健康检查,并行启动两个代理:
Task(subagent_type: "general-purpose", name: "permission-audit", prompt: "...")
Task(subagent_type: "general-purpose", name: "context-audit", prompt: "...")
两者都返回摘要。主代理将它们合并成一个报告并提出修复建议。
默认模式。 随时运行。
并行启动权限审计器和上下文审计器代理
将发现合并成一份报告:
## 项目健康报告
**项目类型**:[检测到的类型]
**CLAUDE.md 质量**:[分数]/100 ([等级])
### 权限
- 缺失的 MCP 服务器:[列表]
- 泄露的密钥:发现 [数量] 个
- 遗留语法:[数量] 个条目
- 缺失的预设:[列表]
### 上下文
- 过大的文件:[列表]
- 过时的引用:[列表]
- 缺失的文档:[列表]
- 重叠:[列表]
### 推荐修复
1. [修复 1]
2. [修复 2]
...
在单次是/否确认后应用修复
时机:不存在 .claude/settings.local.json,或用户说 "setup" / "kickoff"。
| 指示器 | 类型 | 预设 |
|---|---|---|
wrangler.jsonc 或 wrangler.toml | cloudflare-worker | JS/TS + Cloudflare |
vercel.json 或 next.config.* | vercel-app | JS/TS + Vercel |
astro.config.* | astro | JS/TS + Static Sites |
package.json(无部署目标) | javascript-typescript | JS/TS |
pyproject.toml 或 setup.py 或 requirements.txt | python | Python |
Cargo.toml | rust | Rust |
go.mod | go | Go |
Gemfile 或 Rakefile | ruby | Ruby |
composer.json 或 wp-config.php | php | PHP |
pom.xml 或 build.gradle* | java | Java/JVM |
*.sln 或 *.csproj | dotnet | .NET |
mix.exs | elixir | Elixir |
Package.swift | swift | Swift + macOS |
pubspec.yaml | flutter | Mobile |
Dockerfile 或 docker-compose.yml | docker | Docker |
fly.toml 或 railway.json 或 netlify.toml | hosted-app | Hosting Platforms |
supabase/config.toml | supabase | Hosting + Database |
.claude/agents/ 或操作脚本 | ops-admin | — |
| 空目录 | 询问用户 | — |
类型可叠加(例如 cloudflare-worker + javascript-typescript)。
生成.claude/settings.local.json:
.claude/**、//tmp/** 的文件访问)~/.claude/settings.local.json 是否具有与主目录相关的文件访问模式(~/Documents/**、~/.claude/**)。如果没有,建议在那里添加它们(不要在项目文件中添加——主目录路径仅属于全局设置)WebSearch、WebFetchgh 子命令(针对 Bash(gh *) bug 的变通方法)// 注释组编写生成CLAUDE.md:
生成.gitignore:
.claude/settings.local.json、.claude/plans/、.jez/screenshots/、.jez/artifacts/.jez/scripts/ —— 生成的脚本值得保留可选(先询问):git init + gh repo create
警告:"项目 settings.local.json 会遮蔽全局设置(不会合并)。需要重启会话。"
时机:用户说 "tidy permissions" 或健康检查发现权限问题。
启动权限审计器代理,然后应用其推荐的修复。
时机:会话结束时,"capture learnings","save what we learned"。
这在主上下文中运行(非子代理),因为它需要访问对话历史。
回顾对话,寻找值得保存的发现
决定放置位置:
适用于所有项目?
├── 是 → ~/.claude/rules/<topic>.md
└── 否 → 特定于某个子目录?
├── 是 → <dir>/CLAUDE.md
└── 否 → 参考性还是操作性?
├── 参考性 → docs/ 或 ARCHITECTURE.md
└── 操作性 → ./CLAUDE.md (根目录)
将所有更改作为单个批次的差异草稿
在单次是/否确认后应用
保持简洁:每个概念一行。
时机:"add python permissions", "add docker", "add MCP servers"。
.claude/settings.local.json时机:根目录 CLAUDE.md 超过 200 行,"restructure memory"。
.claude/rules/<topic>.mddocs/| 文件 | 目标 | 最大值 |
|---|---|---|
| 根目录 CLAUDE.md | 50-150 行 | 200 |
| 子目录 CLAUDE.md | 15-50 行 | 80 |
| 规则主题文件 | 20-80 行 | 120 |
| 模式 | 含义 |
|---|---|
Bash(git *) | 首选 —— * 前的空格 = 单词边界 |
Bash(nvidia-smi) | 精确匹配,无参数 |
WebFetch | 全面的网页抓取 |
WebSearch | 全面的网页搜索 |
mcp__servername__* | 一个 MCP 服务器上的所有工具 |
| 模式 | 原因 |
|---|---|
mcp__* | 通配符不能跨越 __ 边界 |
mcp__*__* | 仍然无效 |
Bash(git:*) | 已弃用的冒号语法(有效但首选空格) |
settings.local.json 的编辑需要重启会话gh bug:Bash(gh *) 有时会遗漏子命令 —— 包含明确的 Bash(gh issue *) 等| 时机 | 读取 |
|---|---|
| 构建权限预设时 | references/permission-presets.md |
| 生成 CLAUDE.md, .gitignore 时 | references/templates.md |
| 为 CLAUDE.md 质量评分时 | references/quality-criteria.md |
| 检测项目类型 + 预期文档时 | references/project-types.md |
| 设置提交捕获钩子时 | references/commit-hook.md |
每周安装数
608
仓库
GitHub 星标数
650
首次出现时间
2026 年 1 月 30 日
安全审计
安装于
opencode504
gemini-cli503
cursor493
codex489
github-copilot465
claude-code441
One skill for everything about your project's Claude Code configuration. Run it at the start, middle, or end of a project — it figures out what's needed.
Goal : Zero permission prompts, well-organised context files, no cruft.
| You say... | What happens |
|---|---|
| "project health" / "check project" | Full audit: permissions + context + docs |
| "setup project" / "kickoff" / "bootstrap" | New project setup from scratch |
| "tidy permissions" / "clean settings" | Fix permissions file only |
| "capture learnings" / "update CLAUDE.md" | Save session discoveries |
| "add python" / "add docker permissions" | Add a preset to existing settings |
| "audit context" / "audit memory" | Context-focused audit only |
Heavy analysis runs in sub-agents to keep the main conversation clean. The main agent orchestrates; sub-agents do the scanning and return summaries.
Launched with Task(subagent_type: "general-purpose"). Prompt:
Read .claude/settings.local.json.
**Discover connected MCP servers**: Use ToolSearch (search "mcp") and extract unique
server prefixes from tool names (e.g. mcp__vault__secret_list → vault).
**Discover installed skills**: Use the Skill tool or ToolSearch to list available skills.
For each skill that has scripts/ in its directory, note what Bash patterns it needs
(python3, env var prefixes like GEMINI_API_KEY=*, etc.). Check the SKILL.md for any
MCP tools the skill references (e.g. mcp__vault__secret_get).
Report:
1. MCP servers connected but NOT in settings (missing)
2. MCP servers in settings but NOT connected (stale)
3. Skill permissions: Bash patterns and MCP tools that installed skills need but aren't approved
4. File access: check for Read/Edit/Write patterns for .claude/** and //tmp/**
in project settings, and ~/Documents/**/~/.claude/** in global settings
5. Leaked secrets: entries containing API keys, tokens, bearer strings, hex >20 chars, base64 >20 chars
6. Legacy colon syntax: entries like Bash(git:*) instead of Bash(git *)
7. Junk entries: shell fragments (Bash(do), Bash(fi), Bash(then), Bash(else), Bash(done)),
__NEW_LINE_* artefacts, loop body fragments (Bash(break), Bash(continue), Bash(echo *))
8. Duplicates: entries covered by a broader pattern (e.g. Bash(git add *) redundant if Bash(git *) exists)
9. Missing presets: based on files present, suggest presets from [permission-presets.md]
Prefer Read/Glob/Grep tools over Bash. If you need to scan multiple files or
run 3+ commands for one analysis, write a Python script to .jez/scripts/
and run it once (mkdir -p .jez/scripts first).
Return a structured summary, not raw data.
Launched with Task(subagent_type: "general-purpose"). Prompt:
Audit the project context landscape at [repo-path]:
1. Find all CLAUDE.md files. For each:
- Count lines (target: root 50-150, subdirs 15-50)
- Score quality on 6 criteria (see quality-criteria.md)
- Check for stale file/path references
- Flag oversized files
2. Find .claude/rules/ topic files. Check sizes (target: 20-80 lines).
3. Detect project type from files present (see project-types.md).
Check expected docs exist (ARCHITECTURE.md, DATABASE_SCHEMA.md, etc.)
4. Find public markdown (README.md, LICENSE, CONTRIBUTING.md).
Check for overlap with CLAUDE.md content.
5. Check auto-memory at ~/.claude/projects/*/memory/MEMORY.md
6. If Cloudflare project: find all wrangler.jsonc/wrangler.toml files.
Check each has "observability": { "enabled": true }. Flag any missing it.
Prefer Read/Glob/Grep tools over Bash. If you need to scan many files or
aggregate data across the repo, write a Python script to .jez/scripts/
and run it once rather than running many individual bash commands
(mkdir -p .jez/scripts first).
Return: project type, quality scores, missing docs, stale refs, overlaps,
size violations, observability gaps, and total markdown footprint.
For a full health check, launch both agents in parallel :
Task(subagent_type: "general-purpose", name: "permission-audit", prompt: "...")
Task(subagent_type: "general-purpose", name: "context-audit", prompt: "...")
Both return summaries. The main agent combines them into one report and proposes fixes.
The default. Run this anytime.
Launch Permission Auditor and Context Auditor agents in parallel
Combine findings into a single report:
## Project Health Report
**Project type**: [detected type]
**CLAUDE.md quality**: [score]/100 ([grade])
### Permissions
- Missing MCP servers: [list]
- Leaked secrets: [count] found
- Legacy syntax: [count] entries
- Missing presets: [list]
### Context
- Oversized files: [list]
- Stale references: [list]
- Missing docs: [list]
- Overlaps: [list]
### Recommended Fixes
1. [fix 1]
2. [fix 2]
...
Apply fixes after single yes/no confirmation
When : No .claude/settings.local.json exists, or user says "setup" / "kickoff".
| Indicator | Type | Preset |
|---|---|---|
wrangler.jsonc or wrangler.toml | cloudflare-worker | JS/TS + Cloudflare |
vercel.json or next.config.* | vercel-app | JS/TS + Vercel |
astro.config.* | astro | JS/TS + Static Sites |
package.json (no deploy target) | javascript-typescript |
Types stack (e.g. cloudflare-worker + javascript-typescript).
Generate.claude/settings.local.json:
.claude/**, //tmp/**)~/.claude/settings.local.json has home-relative file access patterns (~/Documents/**, ~/.claude/**). If not, suggest adding them there (NOT in the project file — home paths belong in global settings only)WebSearch, When : User says "tidy permissions" or health check found permission issues.
Launch the Permission Auditor agent, then apply its recommended fixes.
When : End of session, "capture learnings", "save what we learned".
This runs in the main context (not a sub-agent) because it needs access to the conversation history.
Review conversation for discoveries worth preserving
Decide placement:
Applies to all projects?
├── YES → ~/.claude/rules/<topic>.md
└── NO → Specific to a subdirectory?
├── YES → <dir>/CLAUDE.md
└── NO → Reference or operational?
├── Reference → docs/ or ARCHITECTURE.md
└── Operational → ./CLAUDE.md (root)
Draft all changes as diffs in a single batch
Apply after single yes/no confirmation
Keep it concise : one line per concept.
When : "add python permissions", "add docker", "add MCP servers".
.claude/settings.local.jsonWhen : Root CLAUDE.md over 200 lines, "restructure memory".
.claude/rules/<topic>.mddocs/| File | Target | Maximum |
|---|---|---|
| Root CLAUDE.md | 50-150 lines | 200 |
| Sub-directory CLAUDE.md | 15-50 lines | 80 |
| Rules topic file | 20-80 lines | 120 |
| Pattern | Meaning |
|---|---|
Bash(git *) | Preferred — space before * = word boundary |
Bash(nvidia-smi) | Exact match, no arguments |
WebFetch | Blanket web fetch |
WebSearch | Blanket web search |
mcp__servername__* | All tools on one MCP server |
| Pattern | Why |
|---|---|
mcp__* | Wildcard doesn't cross __ boundary |
mcp__*__* | Still doesn't work |
Bash(git:*) | Deprecated colon syntax (works but prefer space) |
settings.local.json edits need session restartgh bug: Bash(gh *) sometimes misses subcommands — include explicit Bash(gh issue *) etc.| When | Read |
|---|---|
| Building permission presets | references/permission-presets.md |
| Generating CLAUDE.md, .gitignore | references/templates.md |
| Scoring CLAUDE.md quality | references/quality-criteria.md |
| Detecting project type + expected docs | references/project-types.md |
| Setting up commit capture hook | references/commit-hook.md |
Weekly Installs
608
Repository
GitHub Stars
650
First Seen
Jan 30, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
opencode504
gemini-cli503
cursor493
codex489
github-copilot465
claude-code441
fp-check误报检查工具:验证漏洞真伪,提升安全分析准确性
575 周安装
YouTube视频搜索下载工具 - 基于API v3高级搜索与yt-dlp下载,支持频道筛选与字幕提取
576 周安装
Web应用项目规划助手 - 自动生成实施阶段与文档 | 项目规划技能
576 周安装
React-use Hooks 库:传感器、UI、动画、状态管理全功能集合
577 周安装
TypeScript/JavaScript日志模式审查与优化 - 结构化日志与错误处理最佳实践
577 周安装
Mondo风格海报AI设计生成器 - 一键生成电影/书籍/专辑封面,丝网印刷美学
577 周安装
| JS/TS |
pyproject.toml or setup.py or requirements.txt | python | Python |
Cargo.toml | rust | Rust |
go.mod | go | Go |
Gemfile or Rakefile | ruby | Ruby |
composer.json or wp-config.php | php | PHP |
pom.xml or build.gradle* | java | Java/JVM |
*.sln or *.csproj | dotnet | .NET |
mix.exs | elixir | Elixir |
Package.swift | swift | Swift + macOS |
pubspec.yaml | flutter | Mobile |
Dockerfile or docker-compose.yml | docker | Docker |
fly.toml or railway.json or netlify.toml | hosted-app | Hosting Platforms |
supabase/config.toml | supabase | Hosting + Database |
.claude/agents/ or operational scripts | ops-admin | — |
| Empty directory | Ask the user | — |
WebFetchgh subcommands (workaround for Bash(gh *) bug)// comment groupsGenerateCLAUDE.md:
Generate.gitignore:
.claude/settings.local.json, .claude/plans/, .jez/screenshots/, .jez/artifacts/.jez/scripts/ — generated scripts are worth keepingOptionally (ask first): git init + gh repo create
Warn : "Project settings.local.json SHADOWS global settings (does not merge). Session restart needed."