关于 meta-audit
meta-audit 是用于只读审查 Claude Agent 定义和项目设置的 Skill,检查配置完整性、工具权限、安全边界、命名及模型分配。
主要功能
- 01验证 Agent frontmatter
- 02审查工具权限与特权边界
- 03检查命名和模型一致性
- 04检查 settings.local.json 限制
- 05生成发现项和行动建议
适用场景
- 01提交前审查 Agent 定义
- 02查找项目 Agent 的权限过宽问题
- 03检查多个 Agent 的配置一致性
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill meta-audit安装后在 Claude Code 中输入/meta-audit确认已加载。
详细介绍
meta-audit
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下改用 custom-agent-definitions…… |
|---|---|
审查现有的 .claude/agents/*.md 文件,检查是否缺少 frontmatter、工具权限过高或模型有误 | 从头编写新的 Agent 定义文件 |
| 在提交前验证只读与可写 Agent 之间的权限边界 | 配置单个 Agent 的 model、allowed-tools 或 context: fork |
| 审计整个项目中的 Agent,检查命名和安全性是否一致 | 复制或泛化其他项目的 Agent(使用 meta-assimilate) |
上下文
- Agent 定义:!
find . -path '*/.claude/agents/*' -name "*.md" -not -name "settings*" - 设置文件:!
find . -path '*/.claude/agents/*' -maxdepth 3 -name "settings.local.json" -type f
你的任务
1. 发现阶段
- 使用 Glob 查找
.claude/agents/中的所有 Agent 定义文件 - 阅读每个 Agent 文件,提取 frontmatter 和配置
- 找出用于覆盖权限的 settings.local.json
2. Frontmatter 验证
对每个 Agent,确认是否包含必需字段:
- ✅ name:Agent 标识符(必须与文件名一致)
- ✅ model:别名(
opus、fable、sonnet、haiku、inherit)或当前的完整 ID(例如claude-fable-5-1);已被新一代取代的旧版带日期 ID(claude-opus-4-7、claude-sonnet-4-6)应作为问题指出——除非有意固定版本,否则建议使用别名 - ℹ️ effort:可选值为
low…max(Agent 运行时会覆盖会话 effort;默认继承);若正文描述的是机械性工作,建议使用low - ✅ color:用于 UI 的十六进制颜色代码(例如 "#E53E3E")
- ✅ description:清晰的使用指引,并包含 "Use proactively when..."
- ✅ tools:工具列表,或表示完全访问权限的 "All"
标记问题:
- 缺少必需字段
- name 与文件名不一致
- 模型名称无效
- 颜色代码格式错误
3. 工具分配分析
评估工具分配是否安全且恰当:
只读 Agent(不应具有写入权限):
- research-documentation
- code-analysis(只读)
- code-review(读取 + 仅 LSP)
- security-audit(读取 + LSP + 用于扫描的 Bash)
可写 Agent(可授予相应写入权限):
- code-refactoring(Edit、MultiEdit)
- documentation(Write、MultiEdit)
- cicd-pipelines(Write、Edit、GitHub)
特殊权限(验证是否必要):
- Bash 访问权限(security-audit、system-debugging、cicd-pipelines、test-architecture)
- GitHub 访问权限(cicd-pipelines、commit-review)
- Zen MCP 访问权限(仅限 system-debugging)
- 所有工具访问权限(应少见,并验证其合理性)
LSP 工具分配(特定语言):
- 验证 LSP 工具是否符合 Agent 的语言侧重
- security-audit 应具有广泛的 LSP 覆盖范围(6+ 个服务器)
- code-review 应支持多种语言的 LSP
- code-analysis 应具有恰当的 LSP 访问权限
4. 安全评估
检查潜在的安全问题:
权限过高的 Agent:
- 使用 "All" 工具但没有明确理由的 Agent
- 具有写入或编辑能力的只读 Agent
- 不必要的 Bash 或 GitHub 访问权限
- 具有修改权限的研究 Agent
缺少限制:
- settings.local.json 应包含针对破坏性操作的拒绝规则
- 允许列表应尽可能精简且具体
- 除非有合理理由,否则不得使用通配符工具访问权限
权限提升风险:
- 能够修改其他 Agent 配置的 Agent
- 同时具有读取和执行权限的 Agent
- 跨 Agent 权限泄漏
5. 一致性检查
验证配置的一致性:
命名约定:
- Agent 名称使用 kebab-case
- 文件名与 Agent 名称一致
- 描述遵循统一格式
模型分配:
- 所有 Agent 均使用适当的 Claude 模型
- 不引用已弃用的模型
- 模型选择策略保持一致
工具分组:
- 相似的 Agent 使用相似的工具集
- 不重复或冗余分配工具
- 职责划分清晰
6. 报告生成
创建全面的审计报告,包含:
执行摘要:
- 审计的 Agent 总数
- 发现的严重问题
- 安全隐患
- 整体健康评级
详细发现:
- ❌ 严重:缺少必需字段、违反安全要求
- ⚠️ 警告:Agent 权限过高、存在不一致
- ℹ️ 信息:最佳实践建议、优化机会
逐个 Agent 分析: 针对每个 Agent,报告:
- 配置完整性(每个必需字段标注 ✅/❌)
- 工具分配是否恰当(✅/⚠️/❌)
- 安全评估(安全/需审查/有风险)
- 改进建议
待办事项:
- 需要立即修复的问题(附文件路径和行号)
- 可选改进
- 配置验证通过/未通过
7. 输出格式
按以下结构组织报告:
# Claude Agent Configuration Audit
## Executive Summary
- **Total Agents**: X
- **Configuration Issues**: Y
- **Security Concerns**: Z
- **Health Rating**: [EXCELLENT|GOOD|NEEDS_WORK|CRITICAL]
## Critical Issues
[List any critical problems requiring immediate fix]
## Agent Analysis Table
| Agent | Model | Tools | Color | Status | Notes |
| ---------- | ----- | -------- | ----- | --------- | ------ |
| agent-name | ✅/❌ | ✅/⚠️/❌ | ✅/❌ | PASS/FAIL | Issues |
## Security Assessment
[Tool privilege analysis and security concerns]
## Recommendations
[Prioritized action items with file paths]
## Detailed Findings
[Per-agent breakdown with specific issues]
8. 最佳实践参考
工具访问原则:
- 工具访问遵循最小权限原则
- 明确区分只读 Agent 和可写入 Agent
- 为特定语言的工作提供适当的 LSP 工具覆盖
- 尽量减少 Bash 访问(仅在必需时使用)
- 限制 GitHub 访问(仅用于 git-ops 和 CI/CD)
配置标准:
- 包含所有必需的 frontmatter 字段
- 各 Agent 的模型选择保持一致
- 根据 Agent 职责配置适当的工具权限
- 描述清晰,并提供主动的使用指导
9. 可选:详细模式
如果提供 --verbose 标志:
- 显示每个 Agent 的完整 frontmatter
- 显示完整的工具列表
- 包含 settings.local.json 的内容
- 为每个问题提供详细的修复命令
说明
- 这是一次只读审计——修改需要用户明确请求
- 重点关注配置正确性和安全影响
- 提供可执行的建议,并注明具体文件位置
- 检查多个 Agent 时,将逐个 Agent 状态表(§7)作为持续记录;在 Opus 4.8+/Sonnet 5/Fable 中,除非选择启用,否则无法使用任务/待办工具(TodoWrite、TaskCreate…)——参见
.claude/rules/agentic-permissions.md§“任务工具可用性”
评论
支持 Markdown