# Goal Execution

> 执行任何已定义的 Goal 时必须携带的证据驱动协议；在用户要求开始、继续、循环、自动化或长期执行目标，尤其涉及远程机器、复杂调试、环境兼容、OOM、高成本实验、代码上仓和进度汇报时使用。用有界循环、实验门禁、失败去重、过程归档、渐进交付和升级机制防止无信息空转；若 Goal 未定义或存在关键缺口，先使用 $goal-definition。

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

---


# Goal 证据化执行

将执行视为**受控搜索和持续交付**。每轮必须增加信息或交付物；运行命令、消耗时间和反复失败本身不算进展。

## 执行不变量

1. **以 Goal 合同为准。** 不静默扩大范围，也不降低验收标准后宣布成功。
2. **一次循环只解决一个 micro-goal。** 默认只改变一个主要变量。
3. **先获得信息，再做高成本实验。** 高成本实验必须有 E2 级证据，或取得用户明确豁免。
4. **同类失败必须去重。** 同一错误签名在无新增证据时最多重跑一次。
5. **证据必须落盘。** 终端、聊天上下文和 `/tmp` 不能作为唯一记录。
6. **边做边交付。** 每个可解释里程碑形成代码状态、测试、文档或可复现记录。
7. **阻塞必须显式升级。** 不知道、做不到、物理不可行或需要权限时，进入 `BLOCKED/ESCALATE`，不得以随机尝试伪装推进。
8. **结论与证据绑定。** 所有“已解决”“可行”“不可行”“预计完成”都引用具体记录。

## 启动协议

1. 读取 Goal、仓库规则、已有交接、Git 状态和相关过程记录。
2. 验证 Goal 状态为 `READY`，且明确绑定 `$goal-execution`。
3. 若缺少可证明验收、预算、关键权限或停止条件，暂停写入性执行并使用 `$goal-definition` 补全；可继续不越权的只读调查。
4. 读取 [过程与汇报模板](references/artifact-templates.md)，初始化或续写：

   ```text
   goal_process/<goal-id>/
   ```

5. 建立基线：仓库/提交、工作区改动、环境版本、硬件、启动命令、最小成功或失败现象。
6. 将验收项、交付物、未知量、假设和预算登记到过程文件。
7. 若预计或实际执行超过 20 分钟，加载 `$rmb-cost-report`，在工作目录创建或更新 `RMB-Cost.md`；缺少最新价格、汇率或 token 明细时标记为 `estimate`，不得编造。

现有过程目录属于任务证据，不得覆盖或清空。继续任务时从最新 `CURRENT_STATUS.md` 和运行记录恢复，不依赖记忆重建历史。

## 状态机

按以下状态推进：

```text
INIT -> BASELINE -> RECON -> HYPOTHESIS -> PROBE
     -> EXPERIMENT -> VERIFY -> INTEGRATE -> DONE
```

任一状态可进入：

```text
BLOCKED | ESCALATE | ROLLBACK
```

- **RECON**：阅读代码、文档、配置和调用链，将未知量变为事实。
- **HYPOTHESIS**：列出可证伪解释、依据、替代原因和最低成本判别方法。
- **PROBE**：运行最小复现或增加维测，只获取区分假设所需的信息。
- **EXPERIMENT**：在门禁通过后进行受控实验。
- **VERIFY**：用独立检查验证结果，不以“命令退出 0”代替业务验收。
- **INTEGRATE**：整理代码、测试、中文设计/运行文档和仓库交付。

状态不是按顺序打卡。新证据推翻假设时返回 `RECON/HYPOTHESIS`；不要继续沿错误路径堆叠实验。

## 单轮有界循环

每次调度只完成一个控制周期：

1. **读取状态**：当前阶段、剩余验收项、预算、最高优先级未知量和最新错误签名。
2. **声明 micro-goal**：写清本轮只要确认或交付什么。
3. **选择动作类型**：`READ`、`PROBE`、`EXPERIMENT` 或 `INTEGRATE`。
4. **预注册判据**：记录假设、现有证据等级、预期观察、区分条件、成本、风险和回滚。
5. **执行一个主要动作**：默认只改变一个主要变量；保存脱敏命令、配置、日志、指标和代码差异。
6. **解释结果**：区分事实与推断，更新假设置信度和替代解释。
7. **更新账本**：验收项、交付物、时间、费用、错误签名和下一步。
8. **形成交付**：达到可解释里程碑时，按 Goal 授权提交、推送或创建 PR；未获外部写权限时保留 commit-ready 状态并报告所缺授权。
9. **主动结束本轮**：用一段摘要说明信息增量、预算变化、下一 micro-goal 和是否需要决策。

以下至少一项成立才算有效进展：

- 完成一个验收项或交付物；
- 将一个未知量变成有来源的事实；
- 有证据地改变一个假设的等级；
- 将故障缩小到具体阶段、函数、rank、tensor 或依赖；
- 排除一个候选原因；
- 形成可复现脚本、维测、测试、提交、文档或决策包。

若本轮没有信息增量，不得原样开始下一轮；必须改变观测方法、降低实验粒度或升级。

## 证据与实验门禁

使用统一等级：

- **E0（0–30%）**：猜测或弱类比，只允许 `READ` 和低成本观测。
- **E1（40–60%）**：有代码、文档、配置或稳定错误栈，允许最小 `PROBE`。
- **E2（70–80%）**：有最小复现、受控探针或单变量实验，允许高成本 `EXPERIMENT`。
- **E3（90%+）**：重复验证，主要替代解释已排除，可进入集成和结论固化。

百分比不得脱离等级和证据主观填写。高成本实验开始前必须记录：

- 要验证的假设和现有证据；
- 为什么本实验能区分候选原因；
- 唯一主要变量；
- 预期结果、成功/失败判据；
- 时间、算力、费用和重试预算；
- 超时、停止和回滚方法。

无法达到 E2 时，优先阅读代码、构建最小复现或增加维测，不用更多全量运行替代认知。

## 失败去重

错误签名由以下字段组成：

```text
错误类型 + 首个稳定堆栈位置 + 执行阶段 + 关键错误码
```

处理规则：

1. 第一次出现时完整归档上下文、命令、配置和日志。
2. 无新增证据时只允许重现一次，以确认稳定性。
3. 再次执行前必须增加观测、形成最小复现或进行能区分假设的单变量变化。
4. 两个循环仍未增加信息时，停止该路径，返回代码调查或进入 `ESCALATE`。
5. 禁止仅换随机种子、微调无关参数、重复安装或重复完整运行来刷新错误。

## 专项诊断

遇到以下问题时，必须读取 [专项诊断协议](references/diagnostic-protocols.md)：

- 软件版本、依赖或驱动兼容性；
- OOM、显存/内存不足或分布式资源问题；
- 隐蔽、复杂、日志不足或跨 rank 故障；
- 需要通过 `TSJDEBUG` 增量维测收集证据。

版本问题先建立兼容性矩阵再切换；OOM 先定位阶段和内存组成再减配；隐藏故障每轮只增加一小步可控维测。

## 预算与汇报

在 `CURRENT_STATUS.md` 中持续维护：

- 红/黄/绿状态和当前阶段；
- 已完成验收项、已有交付和仓库 SHA；
- 当前唯一主阻塞及关键证据；
- 已解决问题及对应记录；
- 时间投入：环境、调研、实现、实验、文档/交付、资源等待；
- 已用/剩余的时间、算力、费用、重试和版本预算；
- 下一 micro-goal、预期信息增量和停止条件；
- 条件化 ETA、置信证据和最晚决策点；
- 需要用户或领导做出的一个明确决策。

到达每个里程碑、预算剩余 50%/25%、状态转黄/红或用户约定的汇报时间时生成快照。不要给无条件的单点 ETA，使用：

```text
若 H1 成立：剩余 X–Y，证据等级 E2。
若 H1 不成立且需改后端：剩余 A–B，证据等级 E1。
最晚在 <时间/预算点> 决定扩资源、改范围或停止。
```

## 交付纪律

按 Goal 明确的授权和目标位置交付。工程类 Goal 通常至少维护：

- 可复现代码、配置和启动脚本；
- 测试、关键日志、指标和环境/兼容性记录；
- 工作分支、提交 SHA、推送或 PR 状态；
- 中文软件设计文档、运行手册和已知限制；
- 实验与决策记录；
- 未完成时的阻塞证据、候选路径、资源需求和交接说明。

用户要求“代码上仓”时，只有远端分支/提交或约定的 PR 可作为完成证据，本地改动不算。不得在等待最终成功时推迟文档和仓库整理。

## 结束判定

仅在以下条件全部成立时进入 `DONE`：

1. 每个验收项都有可定位、可复核的证据；
2. 每个必需交付物存在于约定位置；
3. 关键路径已按 Goal 约定验证；
4. 代码、文档、日志和运行方法一致；
5. 已记录限制、剩余风险和复现条件；
6. 已完成约定的提交、推送、PR 和汇报；
7. 没有通过静默缩小范围获得“成功”。

若截止时间到达但未满足 `DONE`，立即生成交接与决策包，不再进行未经批准的碰运气实验。清楚说明：完成了什么、未完成什么、卡在哪里、证据是什么、时间花在哪里、是否可解、条件化 ETA、已有交付、所需决策。

