원클릭으로
harness-context-clear
智能上下文清除技能,基于多维度判断决定是否清除上下文
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
智能上下文清除技能,基于多维度判断决定是否清除上下文
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
EnjoyHarness 唯一强制入口,初始化全局状态、文件体系、技能注册表
配置文件读取和验证技能,确保用户配置正确且完整
全流程自动执行超级组合技能,编排所有16个基础技能,从用户需求到完整交付的全自动化流程
头脑风暴技能,在实现前探索用户意图、需求和设计,防止返工
实施计划执行技能,逐任务执行实施计划,支持检查点、错误恢复和进度跟踪
10倍产能提效超级组合技能,通过并行执行、智能调度、优化策略实现10倍开发效率提升
| name | harness-context-clear |
| description | 智能上下文清除技能,基于多维度判断决定是否清除上下文 |
| trigger_words | ["clear context","清除上下文","context overflow","session handoff"] |
| priority | HIGH |
| dependencies | ["harness-config"] |
| version | v1.0.0 |
采用多维度投票机制,任一维度达到阈值即触发清除:
触发条件: Token 使用率 ≥ token_threshold(默认 60%)
计算方式:
# 从 Claude API 响应中获取
current_tokens = {当前使用的 tokens}
max_tokens = {最大容量}
usage_rate = (current_tokens / max_tokens) * 100
if [ $usage_rate -ge $TOKEN_THRESHOLD ]; then
echo "HIGH: Token使用率 ${usage_rate}% 超过阈值 ${TOKEN_THRESHOLD}%"
TRIGGER_CLEAR=true
fi
说明:
触发条件: 最近任务的复杂度评分 ≥ task_complexity_threshold(默认 6)
复杂度评分标准(1-10分):
| 分数 | 任务类型 | 典型特征 |
|---|---|---|
| 1-2 | 极简单任务 | 修改文档、修复typo、调整配置 |
| 3-5 | 简单任务 | 添加字段、修复简单bug、小型重构 |
| 6-7 | 中等复杂任务 | 新增功能、重构模块、集成单个外部服务 |
| 8-9 | 复杂任务 | 架构调整、性能优化、多系统集成 |
| 10 | 极复杂任务 | 核心架构重构、安全漏洞修复 |
评分维度:
# 基础分
score=1
# 代码修改量(+0-3分)
lines_changed=$(git diff --shortstat | grep -o '[0-9]* insertion' | grep -o '[0-9]*')
if [ $lines_changed -gt 100 ]; then
score=$((score + 3))
elif [ $lines_changed -gt 50 ]; then
score=$((score + 2))
elif [ $lines_changed -gt 10 ]; then
score=$((score + 1))
fi
# 涉及文件数(+0-2分)
files_changed=$(git diff --name-only | wc -l)
if [ $files_changed -gt 5 ]; then
score=$((score + 2))
elif [ $files_changed -gt 2 ]; then
score=$((score + 1))
fi
# 是否涉及架构变更(+3分)
if grep -q "architecture\|refactor\|redesign" .EnjoyHarness/EVENT_LOG.md; then
score=$((score + 3))
fi
# 是否有复杂依赖(+2分)
if grep -q "dependency\|integration\|external" .EnjoyHarness/EVENT_LOG.md; then
score=$((score + 2))
fi
# 是否需要外部系统集成(+2分)
if grep -q "API\|external service\|third-party" .EnjoyHarness/EVENT_LOG.md; then
score=$((score + 2))
fi
# 上限为10
if [ $score -gt 10 ]; then
score=10
fi
echo "任务复杂度评分: $score/10"
说明:
触发条件: 累计任务数 ≥ consecutive_tasks_limit(默认 5)
计算方式:
# 从 GLOBAL_STATE.md 读取
completed_tasks=$(grep "^completed_tasks:" .EnjoyHarness/GLOBAL_STATE.md | awk '{print $2}')
if [ $completed_tasks -ge $CONSECUTIVE_LIMIT ]; then
echo "MEDIUM: 累计任务数 ${completed_tasks} 达到阈值 ${CONSECUTIVE_LIMIT}"
TRIGGER_CLEAR=true
fi
说明:
触发条件: 最近5个任务的错误率 > error_rate_threshold(默认 30%)
计算方式:
# 从 ERROR_TRACE.md 读取最近错误
recent_errors=$(tail -n 50 .EnjoyHarness/ERROR_TRACE.md | grep -c "ERROR")
total_tasks=5
error_rate=$((recent_errors * 100 / total_tasks))
if [ $error_rate -gt $ERROR_RATE_THRESHOLD ]; then
echo "HIGH: 错误率 ${error_rate}% 超过阈值 ${ERROR_RATE_THRESHOLD}%"
TRIGGER_CLEAR=true
fi
说明:
触发条件: 累计任务数 ≥ absolute_limit(默认 10)
计算方式:
if [ $completed_tasks -ge $ABSOLUTE_LIMIT ]; then
echo "CRITICAL: 累计任务数 ${completed_tasks} 达到绝对上限 ${ABSOLUTE_LIMIT}"
TRIGGER_CLEAR=true
fi
说明:
使用 Bash 工具执行:
CONFIG_FILE=".EnjoyHarness/CONFIG.md"
if [ ! -f "$CONFIG_FILE" ]; then
echo "❌ 错误: 配置文件不存在"
echo "请先运行 harness-config 技能"
exit 1
fi
# 读取核心配置
CLAUDE_CMD=$(grep "^claude_command:" "$CONFIG_FILE" | sed 's/claude_command: *//' | tr -d '"' | tr -d "'")
TASKS_LIMIT=$(grep "^tasks_per_session:" "$CONFIG_FILE" | sed 's/tasks_per_session: *//')
# 读取高级配置(使用默认值)
TOKEN_THRESHOLD=$(grep "^token_threshold:" "$CONFIG_FILE" | sed 's/token_threshold: *//' | tr -d '%' || echo "60")
TASK_COMPLEXITY=$(grep "^task_complexity_threshold:" "$CONFIG_FILE" | sed 's/task_complexity_threshold: *//' || echo "6")
CONSECUTIVE_LIMIT=$(grep "^consecutive_tasks_limit:" "$CONFIG_FILE" | sed 's/consecutive_tasks_limit: *//' || echo "5")
ERROR_RATE_THRESHOLD=$(grep "^error_rate_threshold:" "$CONFIG_FILE" | sed 's/error_rate_threshold: *//' | tr -d '%' || echo "30")
ABSOLUTE_LIMIT=$(grep "^absolute_limit:" "$CONFIG_FILE" | sed 's/absolute_limit: *//' || echo "10")
echo "✅ 配置读取完成"
注意: Claude Code CLI 不直接暴露 Token 使用情况,需要从 API 层面获取。
替代方案:使用会话时长估算:
# 从 EVENT_LOG.md 计算会话时长
session_start=$(head -n 1 .EnjoyHarness/EVENT_LOG.md | grep -o '\[.*\]' | tr -d '[]')
session_end=$(date '+%Y-%m-%d %H:%M:%S')
# 转换为秒数
start_seconds=$(date -j -f "%Y-%m-%d %H:%M:%S" "$session_start" "+%s" 2>/dev/null || echo "0")
end_seconds=$(date -j -f "%Y-%m-%d %H:%M:%S" "$session_end" "+%s")
duration_seconds=$((end_seconds - start_seconds))
duration_minutes=$((duration_seconds / 60))
# 估算 Token 使用率(假设每分钟消耗 1% 容量)
estimated_token_usage=$((duration_minutes * 1))
echo "会话时长: ${duration_minutes} 分钟"
echo "估算 Token 使用率: ${estimated_token_usage}%"
if [ $estimated_token_usage -ge $TOKEN_THRESHOLD ]; then
echo "⚠️ Token 使用率可能超过阈值"
TRIGGER_CLEAR=true
CLEAR_REASON="Token 使用率估算: ${estimated_token_usage}%"
fi
# 读取最近任务记录
last_task=$(tail -n 20 .EnjoyHarness/EVENT_LOG.md | grep "任务完成" | tail -n 1)
if [ -n "$last_task" ]; then
# 分析复杂度(简化版本)
# 实际实现需要根据具体任务内容评分
# 基于文件修改数量估算
recent_files=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | wc -l || echo "0")
if [ $recent_files -ge 5 ]; then
complexity=8
elif [ $recent_files -ge 3 ]; then
complexity=6
elif [ $recent_files -ge 1 ]; then
complexity=4
else
complexity=2
fi
echo "最近任务复杂度: ${complexity}/10"
if [ $complexity -ge $TASK_COMPLEXITY ]; then
echo "⚠️ 任务复杂度超过阈值"
TRIGGER_CLEAR=true
CLEAR_REASON="任务复杂度: ${complexity}/10"
fi
fi
# 从 GLOBAL_STATE.md 读取
if [ -f ".EnjoyHarness/GLOBAL_STATE.md" ]; then
completed_tasks=$(grep "^completed_tasks:" .EnjoyHarness/GLOBAL_STATE.md | awk '{print $2}' || echo "0")
echo "累计完成任务数: ${completed_tasks}"
# 检查连续任务上限
if [ $completed_tasks -ge $CONSECUTIVE_LIMIT ]; then
echo "⚠️ 累计任务数达到连续上限"
TRIGGER_CLEAR=true
CLEAR_REASON="累计任务数: ${completed_tasks}/${CONSECUTIVE_LIMIT}"
fi
# 检查绝对上限
if [ $completed_tasks -ge $ABSOLUTE_LIMIT ]; then
echo "⚠️ 累计任务数达到绝对上限"
TRIGGER_CLEAR=true
CLEAR_REASON="达到绝对上限: ${completed_tasks}/${ABSOLUTE_LIMIT}"
fi
fi
# 从 ERROR_TRACE.md 读取
if [ -f ".EnjoyHarness/ERROR_TRACE.md" ]; then
recent_errors=$(tail -n 50 .EnjoyHarness/ERROR_TRACE.md | grep -c "ERROR" || echo "0")
# 计算最近5个任务的错误率
error_rate=$((recent_errors * 100 / 5))
echo "最近错误数: ${recent_errors}"
echo "错误率: ${error_rate}%"
if [ $error_rate -gt $ERROR_RATE_THRESHOLD ]; then
echo "⚠️ 错误率超过阈值"
TRIGGER_CLEAR=true
CLEAR_REASON="错误率: ${error_rate}%"
fi
fi
echo ""
echo "=== 上下文清除决策 ==="
if [ "$TRIGGER_CLEAR" = true ]; then
echo "✅ 决策: 建议清除上下文"
echo "原因: $CLEAR_REASON"
echo ""
# 生成清除决策报告
cat > .EnjoyHarness/CONTEXT_CLEAR_DECISION.md <<EOF
---
timestamp: $(date '+%Y-%m-%d %H:%M:%S')
decision: CLEAR_REQUIRED
reason: $CLEAR_REASON
---
# 上下文清除决策报告
## 决策时间
$(date '+%Y-%m-%d %H:%M:%S')
## 决策结果
✅ **建议清除上下文**
## 触发原因
$CLEAR_REASON
## 详细分析
### Token 使用率
- 估算值: ${estimated_token_usage}%
- 阈值: ${TOKEN_THRESHOLD}%
- 状态: $([ $estimated_token_usage -ge $TOKEN_THRESHOLD ] && echo "超过阈值 ⚠️" || echo "正常 ✅")
### 任务复杂度
- 评分: ${complexity}/10
- 阈值: ${TASK_COMPLEXITY}
- 状态: $([ $complexity -ge $TASK_COMPLEXITY ] && echo "超过阈值 ⚠️" || echo "正常 ✅")
### 累计任务数
- 数量: ${completed_tasks}
- 连续上限: ${CONSECUTIVE_LIMIT}
- 绝对上限: ${ABSOLUTE_LIMIT}
- 状态: $([ $completed_tasks -ge $CONSECUTIVE_LIMIT ] && echo "达到上限 ⚠️" || echo "正常 ✅")
### 错误率
- 错误率: ${error_rate}%
- 阈值: ${ERROR_RATE_THRESHOLD}%
- 状态: $([ $error_rate -gt $ERROR_RATE_THRESHOLD ] && echo "超过阈值 ⚠️" || echo "正常 ✅")
## 建议操作
1. 执行会话交接: harness-session-handoff
2. 清除当前会话上下文
3. 启动新会话继续任务
EOF
echo "📁 详细报告: .EnjoyHarness/CONTEXT_CLEAR_DECISION.md"
else
echo "❌ 决策: 无需清除上下文"
echo "当前上下文状态健康"
# 生成健康报告
cat > .EnjoyHarness/CONTEXT_HEALTH_REPORT.md <<EOF
---
timestamp: $(date '+%Y-%m-%d %H:%M:%S')
decision: NO_CLEAR_REQUIRED
---
# 上下文健康报告
## 检查时间
$(date '+%Y-%m-%d %H:%M:%S')
## 检查结果
✅ **上下文状态健康**
## 详细分析
### Token 使用率
- 估算值: ${estimated_token_usage}%
- 阈值: ${TOKEN_THRESHOLD}%
- 状态: 正常 ✅
### 任务复杂度
- 评分: ${complexity}/10
- 阈值: ${TASK_COMPLEXITY}
- 状态: 正常 ✅
### 累计任务数
- 数量: ${completed_tasks}
- 连续上限: ${CONSECUTIVE_LIMIT}
- 绝对上限: ${ABSOLUTE_LIMIT}
- 状态: 正常 ✅
### 错误率
- 错误率: ${error_rate}%
- 阈值: ${ERROR_RATE_THRESHOLD}%
- 状态: 正常 ✅
## 建议
继续当前会话,无需清除上下文。
EOF
echo "📁 健康报告: .EnjoyHarness/CONTEXT_HEALTH_REPORT.md"
fi
if [ "$TRIGGER_CLEAR" = true ]; then
echo ""
echo "准备触发会话交接..."
# 调用 harness-session-handoff 技能
# (实际实现需要等待 harness-session-handoff 技能完成)
echo "💡 请执行: harness-session-handoff"
echo "或等待自动触发机制"
fi
处理: 提示用户运行 harness-config 技能
处理: 使用默认值继续,记录警告
处理: 跳过复杂度评估,使用其他维度判断
输入: 会话已运行 90 分钟
AI 执行:
✅ 配置读取完成
会话时长: 90 分钟
估算 Token 使用率: 90%
⚠️ Token 使用率可能超过阈值
=== 上下文清除决策 ===
✅ 决策: 建议清除上下文
原因: Token 使用率估算: 90%
📁 详细报告: .EnjoyHarness/CONTEXT_CLEAR_DECISION.md
输入: 刚完成一个涉及 8 个文件的架构重构
AI 执行:
✅ 配置读取完成
最近任务复杂度: 9/10
⚠️ 任务复杂度超过阈值
=== 上下文清除决策 ===
✅ 决策: 建议清除上下文
原因: 任务复杂度: 9/10
📁 详细报告: .EnjoyHarness/CONTEXT_CLEAR_DECISION.md
输入: 刚完成第 2 个简单任务
AI 执行:
✅ 配置读取完成
会话时长: 15 分钟
估算 Token 使用率: 15%
最近任务复杂度: 3/10
累计完成任务数: 2
错误率: 0%
=== 上下文清除决策 ===
❌ 决策: 无需清除上下文
当前上下文状态健康
📁 健康报告: .EnjoyHarness/CONTEXT_HEALTH_REPORT.md
harness-config (提供配置)
↓
harness-context-clear (本技能)
↓
harness-session-handoff (触发会话交接)