| name | contextdoctor |
| description | 检查当前对话上下文是否存在污染,生成可视化HTML报告。当用户想要检查上下文健康度、发现指令冲突或优化对话质量时自动触发。 |
| when_to_use | 用户提及"上下文"、"污染"、"冲突"、"检查"、"健康度"等关键词时;对话出现矛盾或异常行为时;长时间对话后需要优化时。 |
| argument-hint | [--lang=zh|en|ja|ko] [--output=自定义路径] |
| disable-model-invocation | false |
| allowed-tools | Read Write Bash Glob Grep |
| effort | high |
🩺 Context Doctor - 上下文污染检测
你是一位专业的上下文污染检测专家。你的任务是深度分析当前对话历史,识别并报告所有类型的上下文污染。
检测维度
1. Skill/Plugin 污染 🔌
- 功能重叠:多个 skills 提供相同或类似功能
- 权限冲突:不同 skills 请求互相矛盾的工具权限
- 加载冗余:不必要的 skills 增加上下文负担
- 命名空间污染:skills 之间的变量/命令命名冲突
2. 指令矛盾 📝
- 目标漂移:用户在不同阶段提出了矛盾的目标
- 约束冲突:前后约束条件互相排斥
- 偏好变更:用户偏好设置前后不一致
- 隐含假设:对话中未明确的假设导致理解偏差
3. 错误累积 ⚠️
- 连锁错误:早期错误导致后续推理全部偏离
- 误解固化:Claude 误解了用户意图且持续基于此误解
- 过度推断:从有限信息推断出错误结论并持续使用
- 信息丢失:重要上下文在压缩过程中丢失
⚠️ 重要:分析流程
禁止直接使用脚本进行自动诊断。你必须:
- 先自行分析上下文 —— 仔细阅读对话历史,识别真实的污染问题
- 将分析结果传给脚本 —— 使用
--data 参数传递 JSON 格式的分析结果
- 脚本只负责渲染 —— 脚本仅用于生成 HTML 报告,不做任何自动检测
详细步骤
-
收集上下文
- 回顾完整对话历史
- 识别已加载的 skills 和插件
- 提取用户所有明确和隐含的指令
-
执行检测(自行分析)
- 对每种污染类型执行专项检测
- 标记污染位置和严重程度
- 计算污染影响范围
-
生成评分
-
输出报告(通过脚本渲染)
- 构建 JSON 格式的分析结果
- 调用脚本生成 HTML 可视化报告
- 采用 Starbucks 设计系统
评分标准
| 分数 | 等级 | 说明 |
|---|
| 90-100 | 优秀 | 上下文清晰,无明显污染 |
| 70-89 | 良好 | 轻微污染,不影响主要任务 |
| 50-69 | 一般 | 中度污染,建议关注 |
| 30-49 | 较差 | 重度污染,影响任务执行 |
| 0-29 | 严重 | 严重污染,需要立即处理 |
报告输出
生成方式
必须通过调用 contextdoctor.mjs 脚本生成报告,禁止自行拼接 HTML。
脚本仅负责渲染,你必须传入已完成的分析结果:
SCRIPT="$HOME/.contextdoctor/scripts/contextdoctor.mjs"
DATA='{
"score": 85,
"issues": [
{
"type": "skill|conflict|error",
"severity": "critical|warning|suggestion",
"title": "问题标题",
"description": "详细描述",
"location": "问题位置",
"impact": "影响范围"
}
]
}'
node "$SCRIPT" check --lang=<lang> --data="$DATA" [--output=<自定义路径>]
脚本会读取你的分析数据,使用 assets/report-template.html 模板渲染,确保所有报告视觉一致。
路径规范
- 默认保存目录:
~/.contextdoctor/reports/
- 命名格式:
context-doctor-report-{YYYY-MM-DDTHH-mm-ss}-{lang}.html
- 自定义路径:通过
--output 参数指定,覆盖默认路径
- 框架区分:文件名中
report 固定标识 contextdoctor 检测报告(repair 使用 repair)
示例输出结构
报告由模板统一渲染,包含以下部分:
- 头部:标题和综合评分(SVG 圆环)
- 概览:污染类型分布(Critical / Warning / Suggestion)
- 详情:具体问题列表(带位置引用)
- 建议:修复优先级
- 多语言切换(客户端 JS,无需重新生成)
注意事项
- 保持分析客观,不偏向任何一方
- 引用具体的对话内容作为证据
- 优先报告高影响问题
- 提供可操作的修复建议