# Harness Goal

> 目标追踪技能，防止任务偏离目标，确保任务执行符合SMART原则

- Skill: `konglong87/harness-goal` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add konglong87/harness-goal`
- Raw SKILL.md: https://api.skillmd.com/api/skills/konglong87/harness-goal/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: konglong87 (https://skillmd.com/u/konglong87)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/konglong87/harness-goal

---


# harness-goal 目标追踪技能

## 核心能力
1. 检查前置条件（harness-init已完成）
2. 创建SMART目标文件（目标开始时强制）
3. 更新目标里程碑（阶段性完成时）
4. 调整目标（用户修改需求时强制）
5. 验证目标达成（任务完成时强制）
6. 防止目标偏离（持续监控，自治模式下不中断执行）

## 前置条件
- harness-init 已完成
- Git仓库已初始化

## 执行步骤

### Step 1: 检查前置条件

使用 Read 工具读取：`.EnjoyHarness/SKILL_REGISTRY.md`

检查条件：
- harness-init 已标记为完成

如果未完成：
```
❌ 错误: 系统未初始化
💡 请先运行: harness-init
```

### Step 2: 判断用户意图

根据当前状态和用户消息，判断需要执行的操作：

同时读取：`.EnjoyHarness/EXECUTION_CONTRACT.md`

自治模式规则：
- 如果 `mode: autonomous_after_confirmation` 且 `requirements_confirmed: true`，默认继续当前目标链路，不向用户发起新的执行确认。
- 仅当用户明确提出“需求变更”且这发生在最终确认之前，才进入“调整目标”分支。
- 在自治模式下发现附加优化项或范围外事项时，记录为后续候选，不中断当前目标执行。

#### 意图分类

1. **创建目标**：用户提出新任务，当前无pending目标
2. **调整目标**：用户修改需求，当前有pending目标
3. **验证目标**：AI认为完成，需要验证目标达成情况
4. **更新里程碑**：阶段性完成，记录进度
5. **查询/对话**：纯信息查询，无需创建目标

### Step 3: 创建SMART目标（强制触发）

**触发条件**：
- 用户消息包含行动指令（实现、修复、重构、优化等）
- 多步骤需求（需要2+步骤完成）
- 涉及代码编写、文件修改
- **当前无pending目标**

**强制动作**：

使用 Bash 工具获取当前时间：

```bash
TIMESTAMP=$(date +"%Y-%m-%d_%H%M")
DATE=$(date +"%Y-%m-%d")
TIME=$(date +"%H:%M:%S")
echo "时间戳: $TIMESTAMP"
echo "日期: $DATE $TIME"
```

使用 Write 工具创建目标文件：`memory/goals/${TIMESTAMP}_${目标关键词}.md`

内容模板：

```markdown
---
goal_id: GOAL-${TIMESTAMP}
created_at: ${DATE} ${TIME}
status: pending
version: 1
session_id: ${SESSION_ID}
---

# 目标文件

## 原始需求
{用户原始表述}

## SMART 目标提取

### Specific（具体的）
{明确要达成什么}

### Measurable（可衡量的）
{量化指标和成功标准}

### Achievable（可实现的）
{资源和能力可行性分析}

### Relevant（相关性的）
{与大局目标的关系}

### Time-bound（有时限的）
{明确的截止时间}

## 关键里程碑
- M1: {第一个里程碑} - 预计完成时间
- M2: {第二个里程碑} - 预计完成时间
- M3: {最终完成} - 预计完成时间

## 目标调整历史
无（初始版本）

## 验证记录
暂无

## 最终状态
pending
```

### Step 4: 更新里程碑

**触发条件**：阶段性完成

使用 Edit 工具更新目标文件：

将里程碑状态从 `- [ ]` 改为 `- [x]`

示例：
```markdown
- [x] M1: 完成脚本开发 - 2026-03-28 10:30 ✅
- [ ] M2: 完成测试 - 预计 2026-03-28 11:00
```

### Step 5: 调整目标（强制触发）

**触发条件**：
- 用户明确修改需求（"算了"、"改成"、"加一个"）
- 用户补充新的要求或约束
- 环境变化导致目标不可行

**强制动作**：

使用 Edit 工具更新目标文件：

1. 增加 version 计数（version: N → version: N+1）
2. 在"目标调整历史"中记录：
   - 调整时间
   - 调整原因
   - 新的SMART目标

示例：
```markdown
## 目标调整历史

### 版本 2 (2026-03-28 11:00)
**调整原因**：用户补充需求，需要支持动态调整目标

**新的SMART目标**：
- Specific: 实现自动目标追踪、验证和动态调整机制
- Measurable: 任务记录、会话结束前验证、未达成继续执行、实时调整目标
```

### Step 6: 验证目标达成（强制触发）

**触发条件**：
- AI认为"完成了"、"做好了"
- 准备提交代码、创建PR
- 准备结束会话

**强制动作**：

使用 Read 工具读取目标文件，对比原始目标 vs 实际完成情况。

验证清单：
- [ ] Specific目标是否完全达成
- [ ] Measurable指标是否满足
- [ ] 所有里程碑是否完成

验证结果处理：

**✅ 目标达成**：
- 使用 Edit 工具更新目标文件：
  - status: completed
  - 最终状态: completed
  - 完成时间: {当前时间}

**❌ 目标未达成**：
- 必须继续执行缺失部分
- 不得声称"基本完成"
- 记录缺失项并继续执行
- 在自治模式下直接触发后续执行或 loop-back，不等待用户确认

### Step 7: 记录目标事件

使用 Edit 工具追加到：`.EnjoyHarness/EVENT_LOG.md`

事件格式：
```markdown
{TIMESTAMP} | GOAL_{ACTION} | harness-goal | {目标ID} - {动作描述} | {SUCCESS/FAILURE}
```

示例：
```markdown
2026-03-28T10:30:00 | GOAL_CREATE | harness-goal | GOAL-20260328_1030 - 创建目标 | SUCCESS
2026-03-28T11:00:00 | GOAL_ADJUST | harness-goal | GOAL-20260328_1030 - 调整目标（v2） | SUCCESS
2026-03-28T12:00:00 | GOAL_VERIFY | harness-goal | GOAL-20260328_1030 - 验证通过 | SUCCESS
```

### Step 8: 更新全局状态

使用 Edit 工具更新：`.EnjoyHarness/GLOBAL_STATE.md`

更新当前任务状态：
```markdown
## 当前任务
- 任务ID: {目标ID}
- 状态: {pending/in_progress/completed}
- 开始时间: {创建时间}
```

### Step 9: 更新迭代计数

使用 Edit 工具更新：`.EnjoyHarness/ITERATION_COUNTER.md`

增加计数（本技能约6次迭代：Write 1次 + Edit 5次 + Bash 1次）：
```markdown
current_iteration: N+6
```

### Step 10: 标记技能完成

使用 Edit 工具更新：`.EnjoyHarness/SKILL_REGISTRY.md`

将本技能标记为已完成：
```markdown
- [x] harness-goal - 目标追踪技能 ✅
```

### Step 11: 输出完成信息

使用 Bash 工具输出：

```bash
echo ""
echo "✅ harness-goal 执行完成!"
echo ""
echo "📋 目标文件: memory/goals/${TIMESTAMP}_${关键词}.md"
echo "🎯 目标状态: {pending/in_progress/completed}"
echo ""
echo "📌 SMART目标:"
echo " - Specific: {具体目标}"
echo " - Measurable: {衡量标准}"
echo ""
echo "🔍 下一步:"
echo " - 继续执行任务，定期检查目标偏离"
echo " - 阶段性完成时更新里程碑"
echo " - 任务完成时验证目标达成"
echo ""
```

## 成功标准
- [ ] 目标文件创建成功（符合SMART原则）
- [ ] 目标文件包含完整的5个维度
- [ ] 里程碑分解清晰（3-5个关键节点）
- [ ] 全局状态已更新
- [ ] 事件已记录到EVENT_LOG.md
- [ ] 迭代计数已更新
- [ ] 技能已标记为完成

## 失败兜底
- 前置条件未满足 → 终止执行，提示运行harness-init
- 目标文件创建失败 → 记录错误，触发harness-handle-failure
- 目标验证失败 → 继续执行缺失部分，不得声称"基本完成"
- 范围外新增想法 → 记录为后续目标候选，不打断当前自治执行

## 联动关系
- 前置技能: harness-init
- 失败触发: harness-handle-failure
- 真实阻塞升级: harness-escalate-to-human（目标长期无法达成）

## 迭代计数
本技能执行预计迭代次数: 约6次（Write 1次 + Edit 5次 + Bash 1次）

## 测试用例

### 测试场景1：创建目标
**输入**：
```
用户: 修复飞书API认证失败的问题
```

**预期输出**：
- 创建目标文件：`memory/goals/20260328_1030_修复飞书API认证.md`
- 目标包含SMART维度
- 记录创建事件到EVENT_LOG.md

### 测试场景2：调整目标
**输入**：
```
用户: 对了，还要支持企业微信的通知
```

**预期输出**：
- 更新目标文件，version: 2
- 记录调整历史
- 新增企业微信相关目标

### 测试场景3：验证目标
**输入**：
```
AI: 完成了，代码已经提交
```

**预期输出**：
- 读取目标文件，对比原始目标
- 验证所有里程碑是否完成
- 如果未完成，继续执行缺失部分

### 测试场景4：防止偏离
**输入**：
```
用户: 顺便优化一下数据库查询性能
```

**预期输出**：
- 提示：当前目标为修复飞书API，数据库优化不在当前目标范围
- 在自治模式下记录为后续候选目标，不中断当前执行

