# Plan Goal

> 轻量任务流程 skill（通用）。总控/标准研发流程的微缩档：一份全包式计划（含决策点、测试 AC 表、七层文档同步清单、执行章程节）→ 业务决策负责人批准（决策逐条生效 + 计划冻结）→ 转 goal 自主执行到底 → 指定候选验收人终点验收。适用于有决策点或测试义务、单会话可完成的小任务；对抗评审仅按项目治理或人工明确要求触发，AI 永不自行加闸。触发词：plan-goal、「轻量流程」、「小任务」。

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

---


# plan-goal：轻量任务流程

**一句话**：把「调查 → 设计 → 测试设计 → 章程 → goal 执行 → 验收」整条研发流水线压进**一份计划文件**，保留计划批准与候选验收两个治理检查点；两者可由一人兼任，也可按项目职责分离。

**设计 DNA**：砍过程、不砍验收。保留防「不可逆风险 / 真值分叉 / 工具机制事实」的规则；废弃「跨会话交接 / 脚本可解析 / 弱模型防呆」类脚手架（SD/TOPIC/哈希对账、总控目录、六要素表格、多套报告模板——它们防的失败模式在单文件单会话形态下不存在）。内核只有三问：**选了什么 / 为什么 / 怎么验**。

## 0. 定位与分档

| 档位 | 判据 | 模式 |
|---|---|---|
| 直接做 | 无业务语义决策、无新增测试义务（排版/注释/配置微调） | 计划模式，不出文档 |
| **本档（plan-goal）** | 有决策点或测试义务，单会话可完成，未命中升级触发 | 一份全包计划 → 批准 → goal |
| 升级 | 命中任一升级触发 | `lightweight-design` 或总控 |

**升级触发（命中任一就不许硬塞轻量档）**：跨 ≥2 域写入 · 不可逆数据迁移 · 钱/权/数据整链路重构 · 阻塞级决策相互耦合无法一次拍板收敛 · 预计跨会话。

- **判据按「碰了什么」，不按改动量**——三行 diff 改掉一条优惠券核销规则不是小任务。
- **死亡线局部小改准入本档**：计划开场声明强制标记命中；是否加评审由项目治理策略或指定审查角色决定（对齐 `lightweight-design` §0.1：死亡线局部改造不升档、升评审强度）。

## 1. 流程

```
（可选）调查——亲自读，或有界并行派叶子
（可选）方向对齐——和业务决策负责人对齐结果
     │
计划模式：按 §2 模板写一份全包计划
     │
项目治理或授权角色可触发对抗评审（AI 永不自行加闸）
     │
业务决策负责人批准 = 决策点逐条生效 + 计划冻结落盘（一个文件）
     │
执行启动服务：清算 PRE_GOAL，按治理策略合并人工协作窗口
     │
生成一条 /goal 条件（§4 四段式）
     │
goal 自主跑到底：M0 启动检查并修执行基础设施 → 施工 → 测试 → 文档同步 → 钩子 → commit → 追加执行记录
     │
CANDIDATE_READY ──→ 指定候选验收人终点验收 ──→ 完成
```

## 2. 计划模板（9 节）

简单任务半屏写完；每节都有写「无」的权利，但**不许整节省略**——省略和「无」是两回事：前者没扫过，后者扫过没命中。

| # | 节 | 最低要求 |
|---|---|---|
| 1 | **目标终态** | 可判定，不写动作写终态；必含「已提交、工作树干净」 |
| 2 | **开场声明** | 五项：命中哪几层文档 / 死亡线命中与否（逐条对照项目封闭清单）/ 涉及哪些域 / 是否跨域 / 目标环境 |
| 3 | **事实基线** | 改造类必填：在真实代码里读到的关键约束（读过才算，列文件名不算）；未验证的假设显式标注 |
| 4 | **决策点清单** | 每个改变业务结果/契约/持久化语义的选择单列一行：选了什么 / 放弃了什么 / 为什么；死亡线命中项单独标记；**禁止多项打包成一次总体同意**；无则写「无」 |
| 5 | **改动清单** | 文件/模块级，含接口与 DB 变更 |
| 6 | **测试计划** | ① 命中面判定表：逐面写命中/不命中及理由（矩阵沿用 `test-standards` §2），不许写「暂不需要」；② AC 表，最低列：编号 / 断言（given-when-then 可简写，但两人照着写脚本行为必须一致）/ 取证形态（实测/推导/替身）/ 执行方式（自动化；手工须写例外理由）/ 规格出处 |
| 7 | **文档同步清单** | 要改的 L1-L7 具体文件 + DDL 快照 + 运行资产台账；有长期回归价值的用例列 L7 落点；无则逐层写「不涉及」 |
| 8 | **执行章程** | 固定要素见 §2.1 |
| 9 | **执行记录** | goal 期间追加专用：一行式飞行日志（时间/类别/改了什么/依据）、测试结果、commit SHA、交付证据 |

### 2.1 第 8 节「执行章程」的固定要素

- **可达性边界**：goal 能碰到什么就写什么禁区（环境、目录、凭据），不按动作枚举；启动前扫一遍测试脚本里硬编码的外部端点。
- **预授权不可逆动作显式清单**：goal 期间允许的不可逆/外发动作逐条列出（如「允许部署到测试机」「允许 commit」）。**清单之外一律停机；推送远端、生产操作永不默认预授权**。
- **停机出口白名单（仅三条，同 goal-charter §4，细则以彼处为真值）**：① 两份冻结真值存在改变业务结果的矛盾 ② 死亡线业务规则要变 ③ 需要计划未预授权的不可逆/外发动作。凭据定位、实现取舍、测试/runner/环境/证据工具缺陷和重复失败都在同一 goal 自愈，不升级成业务裁决。
- **限轮**：必写（轻量档建议 5-15 轮）。
- **有界并行授权**：已枚举叶子可并行；禁二级派生、禁为补背景派子执行体。
- **角色与环境治理**：记录任务发起人、业务决策负责人、环境所有者/发布授权人、候选验收人及职责分离要求；共享环境必须引用项目占用策略，启动 goal 不构成环境授权或抢占授权。
- **启动服务表**：把密钥、登录、第三方后台、真实设备与外部平台事项分为 `AI_AUTO / PRE_GOAL / CANDIDATE_DEPENDENT / LONG_LATENCY_EXTERNAL`，记录环境、责任角色、凭据受控位置、状态、回滚和 `planned_human_windows`；禁止记录秘密明文。该表无 PASS/FAIL，不冻结命令，不限制 M0。

## 3. 批准与冻结语义

- **业务决策负责人批准 = 本档的评审等价物**。批准即：第 4 节决策点逐条生效（等价 DEC）、计划取得冻结件资格——对齐 `doc-layer-system` §2.3 goal 执行态例外的三前提：施工前冻结 ✓ / goal 之外产出且经相应授权角色逐条批准 ✓ / 第 9 节承担飞行日志 ✓。
- **批准后计划文件分区**：§1-§8 冻结——改动决策点或 AC 表必须显式声明并重新获业务决策负责人批准，禁止静默改写；§9 追加专用——goal 期间只许 append。
- **「计划赢」的边界**：goal 中遇「计划 ↔ 代码/现实」不一致，计划**明写**的语义按计划改、不停机；计划未覆盖但可由正式真值唯一推出的内容在 goal 内对齐；只有两份冻结真值形成改变业务结果的矛盾才进入停机白名单。不许拿冻结件资格给计划没写的东西背书。
- **断言不许削弱**：AC 表批准后即是裁判席；施工中改测试脚本前先问一句——改完更接近 AC 表 = 忠实化 ✅；更接近代码 = 作弊 ❌。
- **批准后、建 goal 前清算**：`AI_AUTO` 留给 goal；`PRE_GOAL` 当场完成，只有对应责任角色明确批准延期才转人工里程碑；`CANDIDATE_DEPENDENT` 在不违反职责分离的前提下合并人工协作窗口；`LONG_LATENCY_EXTERNAL` 升为上游任务。**不设通用固定窗口次数**，每个不可合并窗口必须写明客观原因与责任角色。

## 4. `/goal` 交接

机制事实全部继承 `goal-charter` §13（那是工具机制不是流程仪式），照着用，别凭印象：

- `/goal <完成条件>` 只有一个参数、上限 4000 字符 → 条件**指针化指向计划文件**，不复制计划内容。条件 = 启动物，只有一条，不另发启动提示词。
- **evaluator 不跑命令不读文件，只看对话** → 每条终态必须带举证义务（「`git status --porcelain` 输出已贴出且为空」而非「工作树干净」）。
- **停机出口必须写进完成条件才生效**：漏写哪个，哪个形同虚设。
- 无人值守必须叠 auto mode；`/goal clear` 停。

**条件模板（四段）**：

```text
/goal 执行 {计划文件路径}。首次启动、--resume、新会话或自动上下文压缩后，第一次写入前从磁盘重读计划全文（唯一执行契约）、当前 goal 断点与执行记录尾部；背景自己亲自补读，
不派子 agent 调查。按计划自主跑到底，中途不汇报。
完成条件：{计划 §1 终态逐条，每条带「输出已贴出」举证}；执行记录（§9）已追加完整；
终态报出 CANDIDATE_READY。
约束：{计划 §8 章程里最致命的 3-6 条压缩转述}。
出口（命中任一并已在对话写明出口编号与现状，即视为条件满足）：计划 §8 停机白名单三条 /
SPEC_STALE 停机出修改方案 / 已跑满 {N} 轮并交付 EXECUTION_BLOCKED。
```

## 5. 执行期纪律

- **测试五件本质**（本档不可砍的全部测试义务）：命中面判定 / 断言可对账 / 断言先于代码冻结且不许削弱 / 写链路必验 DB 终态 / 失败分类 + 取证形态不升格（替身绿只证明代码路径被走到，不证明功能对用户可用）。
- **与测试链的边界**：读 `test-standards` §2 命中面矩阵判义务；**不走** `test-case-design` 的冻结管线（spec_hash / assertion_index / 两阶段冻结）——AC 表即本档的冻结载体。该管线原文只对中大任务强制，无冲突。
- **失败分类**沿用 `test-execution-router`；产品、测试资产/runner/夹具/环境与证据工具缺陷均在同一 goal 自愈并按影响面重跑；`SPEC_STALE`（AC 表本身错了）→ 停机附修改方案（改哪些计划节/AC、影响面、恢复点），业务决策负责人按项目治理批准后改好计划、断点续跑同一 goal；只有计划骨架不成立时才终止 goal 重批整份计划。两条路都不许在执行中就地改断言。
- 执行记录（§9）随做随记，一行一条，不写小作文。

## 6. 收尾与验收

- 项目钩子照常跑（如项目自带的变更后检查 / 交接前检查脚本）；文档同步清单（第 7 节）逐项完成，不许「回头再补」；commit 按项目提交规范（跨域前缀等照常）。
- goal 终态只能是 `CANDIDATE_READY`——goal 无权宣布任务完成。执行记录里备齐：commit SHA、工作树干净证据、测试结果、已知豁免。
- **指定候选验收人完成终点验收**后任务才算完成。验收材料就是计划文件本身：§1 终态 vs §9 执行记录，一屏对完；若项目要求施工与验收职责分离，必须由不同角色执行。

## 7. 反棘轮与项目注入

- **反棘轮**：禁止执行体自行加闸门、加审批、加必跑评审；项目治理预先声明的强制检查点与职责分离不属于棘轮。给本 skill 新增规则必须经流程治理负责人裁决。事故后的正确动作是「审计 → 授权角色拍板 → 靶向修」，不是往模板里塞新必填节。
- **项目注入**：本 skill 不复制任何项目规则。治理角色、职责分离、共享环境占用策略、死亡线清单、域边界、钩子命令、承重不变量由项目级 skill 运行时注入（项目强制加载的 skill 照常加载，本档不豁免）。
- **计划落盘路径**由项目补丁声明（见 `templates/项目级补丁模板/`）；无项目约定时落仓库文档过程区，由文档所有者确认路径。

