name: audit-statuslines description: 审计Claude Code状态行以评估质量和跨平台兼容性。在创建或验证自定义状态行脚本,或解决终端输出问题时使用。 argument-hint: [–force | --skip-validation] allowed-tools: Read, Bash, Glob, Grep, Task
审计状态行命令
审计Claude Code状态行配置的质量和跨平台兼容性。
初始化
在审计之前,初始化环境:
- 获取当前UTC日期用于审计时间戳。
- 捕获项目根路径用于子代理通信。
- 确保临时目录(
.claude/temp/)存在。 - 如果用户确认,清理任何过时的审计文件。
status-line-customization 技能提供权威验证指导(运行此命令时自动加载)。
审计内容
- 脚本结构和执行
- JSON输入处理
- 终端颜色代码使用
- 跨平台兼容性(Windows、macOS、Linux)
- 辅助函数可用性
命令参数
| 参数 | 描述 |
|---|---|
| (无) | 审计所有可发现的状态行脚本 |
--force |
无论修改状态如何,都进行审计 |
--skip-validation |
跳过发现验证(更快,但可能包括误报) |
步骤1:发现状态行配置
检查项目和用户设置文件中的 statusLine 设置。
对于项目设置,读取 .claude/settings.json 并提取任何 statusLine 值。
对于用户设置,首先检测平台:在类Unix系统上检查 ~/.claude/settings.json,在Windows上检查 %USERPROFILE%\.claude\settings.json。然后提取任何 statusLine 值。
每个 statusLine 值指向一个脚本文件。构建一个发现脚本列表,包括其范围(项目或用户)和完整路径。
如果没有配置自定义状态行,报告此情况并提供如何创建的指导。
步骤2:解析参数
检查命令参数中是否存在 --force 标志。基于发现的脚本和强制标志构建审计队列。
步骤3:呈现审计计划
显示审计模式(SMART或FORCE)、发现的脚本,并列出每个脚本的范围和最后修改日期。
步骤4:执行审计
对于每个脚本,生成 statusline-auditor 子代理,并提供以下上下文:
- 范围(项目或用户)
- 脚本文件的完整路径
- 设置文件引用
- 最后审计日期或“从未审计”
- 当前审计日期
- 项目根路径
当存在多个脚本时,并行运行子代理。
子代理将发现写入 .claude/temp/,包括JSON(用于恢复/聚合)和Markdown(用于人工审查)。主对话线程使用其Write/Edit工具收集结果并更新审计日志。
步骤4.5:验证发现
除非 --skip-validation 标志存在:
- 生成
audit-finding-validator代理,并提供:project_root:捕获的项目根路径audit_type:“statusline”audit_files:.claude/temp/audit-*-statusline-*.json文件路径列表
- 等待验证完成
- 读取更新后的JSON文件,包含验证结果
- 在聚合前完全过滤掉FALSE_POSITIVE发现
- 注意:过滤后的发现记录在
.claude/temp/audit-filtered-findings.json
如果 --skip-validation 标志存在:
- 完全跳过验证阶段(保持当前速度)
- 呈现所有发现而不进行过滤
- 在摘要中注明:“验证:已跳过”
步骤5:最终摘要
报告审计的总脚本数、按范围的结果和详细表格。列出跨平台或JSON处理问题,并提供修复步骤。
包括验证统计(如果执行了验证):
- 验证执行:是/否
- 发现验证:X
- 误报过滤:Y
- 已验证发现:Z
- 未验证发现:W
重要注意事项
脚本要求
状态行脚本必须通过stdin接受JSON输入,正确解析它,输出格式化的终端文本,并在Windows(Git Bash/PowerShell)、macOS和Linux上工作。
跨平台路径
| 平台 | 设置位置 |
|---|---|
| Unix | ~/.claude/settings.json |
| Windows | %USERPROFILE%\.claude\settings.json |
终端颜色代码
正确使用ANSI转义码,并为不支持颜色的终端提供回退。
审计日志位置
所有审计结果写入 .claude/audit/statuslines.md。
使用 /audit-log statuslines 查看当前审计状态。
使用示例
示例1:审计所有状态行
用户:/audit-statuslines
Claude:正在发现状态行配置...
## 审计计划
**模式**:SMART
**发现脚本**:2
1. [项目] .claude/statusline.sh
2. [用户] ~/scripts/my-statusline.py
[生成statusline-auditor子代理]
## 审计完成
| 范围 | 脚本 | 结果 | 分数 |
| --- | --- | --- | --- |
| 项目 | statusline.sh | 通过 | 100/100 |
| 用户 | my-statusline.py | 通过 | 98/100 |
示例2:强制审计
用户:/audit-statuslines --force
Claude:正在审计所有脚本(强制模式)...