# Goal Charter

> 为规格已冻结的施工编写 goal 执行章程，锁定目标、验证器、边界、自愈清单和启动参数。触发：写 goal 章程、定义自主执行边界、把施工/提交/部署/测试交给 goal 闭环。设计用 lightweight-design，用例用 test-case-design，总控用 task-control-doc。

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

---


# goal 章程

**一句话**：章程是给自主执行体的**候选件生产契约**——goal 自主跑到“精确候选可供独立验收”，但无权自己宣布整个任务完成。终点是标准研发流程的候选终审，不是飞行日志或 goal 自评。

## 0. 第一原则：结果管控，不是过程管控

| | 过程管控（旧） | 结果管控（本 skill） |
|---|---|---|
| 授权角色在哪 | 每道工序都临时找人审批 | 起点由授权角色批准执行契约，终点由指定验收角色审核候选；项目治理要求的职责分离仍然生效 |
| 靠什么保证质量 | 人逐步审查 | **可判定的验证器** + 边界 + 事后逐条追认 |
| 出问题怎么办 | 停下来问 | 自愈 + 记飞行日志；只有白名单情况才停 |

**可逆工程问题应在预授权边界内自愈，不能靠临时加审批维持安全。** 但协调成本不天然高于业务或环境风险；项目声明的授权角色、职责分离和强制检查点不得被“少打断”覆盖。

### 0.1 治理角色不是同一个“用户”

本 skill 使用四类授权角色：**任务发起人**提出目标，**业务决策负责人**裁决业务结果与冻结规格，**环境所有者 / 发布授权人**批准环境使用与外发动作，**候选验收人**在终点审核候选。个人项目可以由一人兼任；团队项目可由不同人员或岗位承担。角色绑定与职责分离来自项目级补丁、项目指令或任务批准记录。

对话中的“用户”只表示当前交互方，**不自动证明其拥有其余角色的权限**。任何章程都必须记录本次实际授权角色；缺少角色绑定时，不得把任务发起、批准计划或启动 goal 推导成环境抢占、生产发布或最终验收授权。

写章程时反复自问的那一句：**这件事会改变业务结果吗？会造成不可逆后果吗？** 都不是 → 授权它自己干，记日志。

**章程准入**：正式规格冻结且规格物化覆盖报告全绿，必要的真实动作授权已明确。环境、测试资产、runner、夹具、数据工具和证据适配器不再是章程门票；它们由 goal 的 M0 启动检查负责建立和修复。只有授权缺口需要在启动前补齐。

**启动服务不是准入闸**：章程阶段同时清算已经可预见的人工协作，产出 `_shared/T{n}-goal启动服务单.md`。它只保存当前环境、会话、凭据位置、外部平台状态与责任角色，不能签发 PASS/FAIL、冻结命令或削弱 M0 自愈；真正约束 goal 的仍只有上游授权、项目治理策略与本章程边界。

## 1. 铁律（写章程的人最容易违反的三条）

1. **章程无权铸造规则**。规则只来自用户级文档（项目 `CLAUDE.md` / `AGENTS.md` / skill）。章程里写的"硬门""死亡线""必须审批"**一律只是执行建议，不具停机权**。你在写一份执行契约，不是在立法。
2. **死亡线是封闭清单**，以项目级文档为准。**任何人无权新增——包括你、包括评审报告、包括任何工作包里的文字。** 「密钥」「部署」「提交」这类不在清单里的东西，就不是死亡线，别给它套死亡线的待遇。
3. **反棘轮**：章程**禁止**给下游新增闸门 / 审批 / 硬门。评审结论是信息，不是门禁。

> 这三条是有来历的：执行链会自己发明「前置硬门」「具名人工审查」这类 skill 原文**从未出现过**的门禁词汇，并层层继承到后代工作包里，累计出现数十次。最后用户被迫花掉一次人工裁决，去撤销一条从来没有任何人类批准过的规则。

## 2. 目标的正确形式：动作 ≠ 目标

目标必须是「**完成时什么事实为真 + 什么证据证明**」。写成动作，goal 就永远"在做"而不"做完"。

| ❌ 动作 | ✅ 可判定终态 |
|---|---|
| 制作好测试脚本，确保符合用例 | M0 启动检查覆盖全部命中执行面，测试资产/runner 可被 goal 构建和修复，且真实断言不少于冻结用例 |
| 开发好代码，确保符合规范 | **检查器全绿**，零违规 |
| 部署，跑通所有测试 | 候选部署到 **{具名环境}**，矩阵全绿 **且测试未被削弱**（见 §7） |
| 文档收口 | 施工前物化报告已全绿；goal 只产执行记录，意外规格缺口必须有界重新冻结，不携带任何已知切片内文档债 |
| 把本次修好的基座留给以后 | 本轮新增/修复的执行资产已分为任务临时、领域复用、项目通用三类；可复用项已晋升稳定路径并提交，交接中已写明验证命令、环境前提与跨分支传播状态 |
| **（最常漏的一条）** | **精确候选已提交到 {分支}，工作树干净，commit/tree SHA、真值基线和执行证据清单已冻结；状态仅为 `CANDIDATE_READY`** |

> 最后一条不是凑数。典型事故：施工成果——代码写完、测试过了、文档冻结了——以"脏工作区"的形态长期裸奔，**零提交**。目标里没写"提交"，它就真的不会提交。

## 3. 章程模板：固定 8 节，实例 ≤100 行

**≤100 行是硬上限，不是建议。** 写不下就是切片切大了或话说啰嗦了，不是上限定小了。

> **为什么是物理上限而不是"注意精简"**：近千行的施工蓝图不是一天长成的，是每轮评审垫一点垫出来的，最后它自己跟自己打架（同一份文件前后给出相反的施工指令），把下游炸了。**物理上限比自觉可靠。**
> 上限由维护该流程的治理负责人批准，**执行者无权移动它，松紧皆然**。实测放不下 → 报实际行数给对应负责人裁决，不要自行放宽。

```markdown
# goal 章程：{任务名}

## 1. 目标（完成时什么为真）
1. …（每条都是可判定终态 + 证据，见 §2）

## 2. 里程碑（= 施工切片；checkpoint 非闸门，断点续跑用）
| # | 目标状态 | 前置 | 验证命令 | 数据/环境前置 | 回滚与兼容窗口 |
|---|---|---|---|---|---|
| M0 | 启动检查：执行面可工作，缺陷已自愈或准确分类 | 冻结规格 + 授权 | 每个命中面一个最小健康探针 | 按面填写 | 可逆修复 |
| M1 | | M0 | | 无 | — |
> 需要**指定授权角色人工完成**的外部动作（平台配置 / 授权 / 第三方后台操作）必须显式标为「**人工里程碑**」行，并写明责任角色：goal 跑到该行停机等待该角色完成并验证后继续。禁止把它降级成已知豁免绕过——那会让其下游所有真实链路测试只剩 simulated。
> 只有 AI 无法操作的真实设备、原生客户端对象或原生平台动作才可成为人工里程碑；AI 可控浏览器/开发者工具、DOM/data 断言、截图与 VLM 判读仍属自动化，不得转嫁给人工角色。
> 人工里程碑只能来自 §4.1 分类后的 `CANDIDATE_DEPENDENT`；已经完成的 `PRE_GOAL` 不得继续出现在本表。

## 3. 权限边界
### 3.1 允许（无需请示，做了记日志）
1. 角色绑定：任务发起人 `{}` / 业务决策负责人 `{}` / 环境所有者或发布授权人 `{}` / 候选验收人 `{}` / 职责分离要求 `{}`
2. 继承上游授权（不得扩大）：授权角色 `{}` / 目标环境 `{}` / 精确动作 `{}` / 目标对象 `{}` / 费用上限 `{含重试储备}` / 副作用范围 `{}` / 授权锚点 `{DEC-x或总控批准记录}`
3. goal 可在授权范围内创建或修复：产品代码、测试脚本、runner、夹具、数据建立/清理/恢复工具、环境适配器、部署脚本与证据采集器；每次修复登记影响面并重跑受影响验证
4. 测试资产修改的硬不变量：真实断言集合不得弱于冻结规格，不得用 skip、放宽阈值或把产品现状反写测试来求绿
### 3.2 禁止（硬边界，违反即失败）
1. …（**按可达性写，不按动作枚举**，见 §5）

## 4. 停机条件（白名单，仅此三条需要相应授权角色裁决）
1. 两份都已冻结的真值互相矛盾，且裁决会改变业务结果
2. 命中项目死亡线清单的**业务规则**需要变更
3. 需要章程未预授权的不可逆 / 外发动作
**除此之外不停机。** 计划内例外：§2 显式标注的「人工里程碑」到点停机等待，属章程预定的外部协作点，不占用本白名单。

凭据定位、实现取舍、产品/测试/runner/夹具/环境/证据工具缺陷与重复失败均属 goal 内工程问题。安全路径确已穷尽、外部状态暂不可得或达到限轮时，允许以 `EXECUTION_BLOCKED` 交还控制权；该出口不要求业务裁决、不前拉上游、不作废未受影响证据，恢复后回同一 goal 切片。

**停机后的处置（默认热修续跑，回炉是例外）**：停机报告必须随附一份**修改方案**——①决策项（同族冲突一次收齐，互斥选项 + 影响，沿用冲突批处理合并决策包格式）②上游修改清单（要动的轻量设计条目 / 正式 L1–L7 小节 / L7 用例，逐项改前→改后语义）③失效证据清单（按影响面圈定重跑范围，未受影响证据不作废）④恢复点（从哪个断点、哪个切片继续）⑤档位建议（热修为默认；建议回炉必须论证热修为何不可靠——地基级设计错误、影响面无法圈定）。**对应业务决策负责人批准一次 = 方案范围内的一揽子授权**：方案内全部上游修改、五项冻结闸门重跑、受影响证据重跑、断点续跑同一 goal，中间不再确认。若项目要求多角色会签或职责分离，则按项目治理策略完成，不得由任务发起人替代。热修复用有界重新冻结的同一套机器，语义变更以本次批准为裁决来源；完成后更新断点与章程引用的哈希基线（登记动作，不重写章程），用**同一条 /goal 条件**重新启动续跑。

## 5. 回炉出口（例外档，业务决策负责人批准才走）
回炉不再是规格错误的默认出口——默认走 §4「修改方案 → 获批 → 热修续跑」。仅当修改方案论证热修不可靠（地基级设计错误、影响面无法圈定）且对应业务决策负责人批准时：带证据终止本 goal → 回退上游子任务重新设计 → 修用例 → 重写章程 → 重跑。
判据：…（本次哪些属规格层，见 §6）

## 6. 已知豁免（不算失败；每条三段：豁免项 / 原因 / **验收时你将看到什么现象**）
1. …（"现象"用人话写给验收者，例：「第三方支付回调永远不来，N 分钟后一律判超时」——不写现象 = 候选验收人在终点才发现"全绿"和"能用"不是一回事）

## 7. 文档动作清单
> 七层规格已在第 5 步完成真值收敛，是本 goal 的**输入**。本节只列意外触发的有界重新冻结与执行记录；不得预先安排“施工后再补文档”：
| 动作 | 对象 | 说明 |
|---|---|---|
| 有界重新冻结授权 | 轻量设计 + 正式 L1–L7 + 覆盖报告 | 仅限不需新业务裁决且现有真值给出唯一方向的意外规格洞；同步补 `SD→TOPIC→SPEC→AC`、哈希与五项闸门报告后继续，禁止只补 L5/L6 |
| 执行记录产出 | {路径} | 落 `_shared/` 与项目执行记录路径，不进七层 |

> 章程必须引用第 5 步的规格物化覆盖报告，要求 `SD→TOPIC→SPEC→AC` 五项全真、已触发的评审闭环 PASS、切片内债务为 0。M0 启动检查是本 goal 的首个产物，不是章程的前置证明。

## 8. 飞行日志 + 候选交接面
- 日志：`{路径}`，每条自愈一行——时间 / 类别 / 改了什么 / 依据哪份冻结真值 / 为何是纯实现自由
- 断点：`{路径}`，保存 run/当前里程碑/已完成事实/失效证据/下一动作/强制阅读路径与读取哈希；首次、恢复、新会话或自动压缩后先从磁盘复水再写入，断点不承载业务语义
- 执行证据清单：`{路径}`，每条 AC 只允许 `VERIFIED / BLOCKED / MISSING / WAIVED`；仅由“raw 运行 → 采集时不可变信封 → AC 映射 → 账本”重算出的 `VERIFIED` 计入通过
- 证据检查器：`{命令}` 已验证 `evidence_semantics_version=assertion-native-v1`、候选 commit/tree、环境身份/保真度、框架原生断言事件、全部证明部件、消费者完整性与 observed/expected；信封和 raw 位于同一内容寻址包
- 候选自检：观测分布报告中的代理观测、非法重复簇、孤儿套件、未消费失败/跳过、未执行绑定与多部件缺口全部为 0，才允许报 `CANDIDATE_READY`
- **真实链路闭合度**：交付记录单列一节——全部 `simulated` 与 `BLOCKED` 的 AC 汇成一张表，一句人话说明真实链路断在哪、由谁何时接通；不得与真实链路证据混入同一统计
- **执行资产交接**：本轮新增/修复资产逐项分为任务临时、领域复用、项目通用；可复用项写稳定路径、commit、验证命令、环境/凭据前提、消费者与分支传播状态。只存在兄弟分支而当前分支不可达时写 `PROPAGATION_REQUIRED`，不得假称已继承；本轮没有可晋升项也要明说
- 候选交接：commit SHA / tree SHA / 工作树干净证据 / 规格与执行清单哈希 / 验证命令与证据路径
- 终态只能写 `CANDIDATE_READY`，不得写“整体完成”、“全部验收通过”或替代候选终审
```

## 4. 里程碑 = 施工切片

切片是**断点续跑的锚**，不是要人批准的关卡。切片之间不临时新增审批；项目治理预先声明的人工里程碑和职责分离检查点仍然生效。

- **要素表一行一片**（别每片一节，那是行数预算杀手）
- **产出方就是章程作者**。切片依据 = 轻量设计的影响面勘察 + 用例矩阵
- **章程作者允许且需要亲自读代码**——切片是文件/模块级编排，而上游设计明确不下沉到逐文件，光靠上游文档切不出来。**亲自读**（不要为了补背景派子 agent 去调查）
- **判失败**：任一切片**不能独立编译或独立验证 → 切片门失败，重新切**。中间态长期不可编译 = 没切对

> 这一条在 goal 里比在任何设计文档里都要命：**goal 要断点续跑，切片不能独立验证 = 根本没有断点。**

### 4.1 goal 启动服务：清算预见停机，不预演施工

章程作者在生成 `/goal` 启动物前，把每个密钥、登录、第三方后台、真实设备和外部平台事项分到唯一类别：

| 类别 | 判据 | 处理 |
|---|---|---|
| `AI_AUTO` | AI 可通过工具、浏览器、开发者工具、脚本或 VLM 完成 | 留给 goal/M0；禁止降级成人工 |
| `PRE_GOAL` | 必须由指定授权角色参与，但不依赖候选代码或部署结果 | 章程阶段提前完成；对应责任角色明确批准延期时才可转成人工里程碑 |
| `CANDIDATE_DEPENDENT` | 只有候选部署或运行后才能真实完成 | 留在 goal，并在不违反职责分离的前提下合并人工协作窗口 |
| `LONG_LATENCY_EXTERNAL` | 审批、开户或外部协调周期可能跨天 | 上游独立任务完成，不埋入 goal |

伴生服务单至少记录：目标环境与授权锚点、访问入口和登录/权限状态、凭据是否存在及**受控位置**（禁止明文）、外部平台快照、每项分类与依赖、责任角色、已完成/明确延期事实、回滚入口、`planned_human_windows` 与不可合并原因。人工窗口应在项目治理允许的范围内合并，但**不设通用固定次数**；职责分离要求拆开的动作不得为了追求“零打断”而合并。

服务单是可刷新现场基线，不是执行契约。会话过期、路径变化、命令失效或工具缺失仍由 M0 在授权内修复；只有缺权、找不到凭据位置或真实物理边界才按章程出口处理。章程获批前尚未完成的 `PRE_GOAL` 应当当场清算；若对应责任角色明确批准延期，记录批准锚点、日期与影响后转入人工里程碑，不得默认延期。

## 5. 边界按「可达性」定义，不按动作枚举

**能力边界 > 指令边界，差一个数量级。** 做不到 ≫ 不许做。

> **典型漏网形态（必读）**：章程写了「零 SSH、零部署、零重启、零配置修改、零数据库操作」保护一台生产机器。goal **一条都没违反**——它是通过测试文件里硬编码的 `http://<生产主机>:<端口>` 发 HTTP 请求越的界。
> **按动作类型枚举禁令，必然有漏网。**

因此：

| 做法 | 例 |
|---|---|
| ✅ 首选：**物理隔离** | 让禁区网络不可达（hosts / 防火墙 / 容器网络）；生产凭据不在场 |
| ✅ 次选：**按可达性写禁令** | 「不得以任何方式访问 {IP/域名}，含 HTTP、SDK、测试夹具、第三方回调」 |
| ❌ 别只做：动作枚举 | 「不 SSH、不部署、不重启」——留下 HTTP 这类通道 |

**启动前必做**：扫描测试套件里硬编码的外部端点。**跑测试 = 执行任意代码 = 可达任何网络端点**，测试套件是最隐蔽的能力通道。

## 6. 文档：七层全是规格，goal 按分类自愈、重新冻结或回炉

**规格的判据（唯一试金石）**：

> **把代码全删了，能照文档重做出来吗？** 能 → 这些文档就是规格。这是 SDD 里规格的定义。

由此：**七层文档 L1~L7 全部是规格层，全部在施工前冻结**。它们是 goal 的**输入**，不是计划中的施工产物。意外命中有界重新冻结时，当前施工切片先暂停，重新建立一份六闸全绿的新输入基线后再继续。**没有"实录层"这种东西**——实现细节（函数内部 / 样式写法 / DTO 转换 / SQL / 标准 CRUD）属于**代码自由范围，压根不进文档**（层定位与管辖边界见 `doc-layer-system` §5.5/§5.6，本 skill 只消费不定义）。

| 遇到什么 | 地位 | 怎么办 |
|---|---|---|
| **代码 ≠ 冻结的七层规格** | 规格是**约束（法律）** | **文档赢，改代码，不停机** |
| 未规定事项属于纯实现自由 | 不影响可观察结果、契约、数据、架构边界与按规格重建 | 选合规实现 + 记日志；**不进七层** |
| **规格有洞但现有真值给出唯一方向** | 规格不完整，但不需要新业务裁决 | 暂停当前切片，自动有界重新冻结：补轻量设计 `SD-x`、`TOPIC-x`、职责正式层、对应 `AC-x`，更新哈希/语义差异/覆盖报告，五项闸门全绿后继续 |
| **上游资产完整性错位**（引用断链 / 哈希失配 / 编号错位，语义本身无矛盾） | 登记信息损坏，不是语义变化 | 按真值优先级修复：纯编号/指纹/引用修正 + 飞行日志留痕，继续跑，**不停机**；仅当修复必须在多个业务结果之间做选择时，升级为 §4 条 1 或 §5 回炉 |
| **规格错了 / 洞会改变业务结果** | 需要业务决策负责人裁决的语义修改 | 停机出 §4 **修改方案**，按项目治理获批后热修续跑（默认）；方案论证热修不可靠且获相应批准 → §5 回炉 |
| 执行记录 / 交付记录 / 飞行日志 | goal 的**产出证据**，不是规格 | 落总控 `_shared/` 与项目执行记录路径，**不进七层** |

**关于有界重新冻结**：判据就是 `doc-layer-system` 的重建试金石。若不写也能从现有规格唯一重建，它是实现自由；若不写会让下一个 AI 作出另一种架构/链路选择，它就是规格缺口，必须同步补齐轻量设计、职责正式层、L7 和覆盖报告。这个过程不新增人工裁决，但绝不允许“只补 L5/L6 + 飞行日志”造成再次分叉。

**飞行日志没有语义权力**：出现“不再”、“改为”、“取消原”、“与正式规格不同但”、“实现选择”时，必须逐条附上纯实现自由证明；无法证明即回炉/停机。日志不得取消、改写或覆盖任何 `SD/TOPIC/SPEC/AC`。

> **回炉必须显式成节。** 只有"跑完"和"停机"两个出口是不够的：AI 证明上游规格错了却没有第三条路时，只能二选一——**硬改代码绕过（灾难）或无恢复点阻塞（卡点）**。
> 停机 ≠ 回炉：停机后默认按 §4 修改方案热修续跑（获批即续，不再重复确认）；回炉是**本次 goal 作废，退回上游子任务重来**——例外档，须由业务决策负责人按项目治理批准。

## 7. 防作弊三层防线

长程自主执行的头号风险是 **reward hacking**：不去干活，去把验证器搞绿。

**不变量不是「脚本不变」，是「脚本的断言集合 ⊇ 规格的断言集合」，且执行状态只能由先发 raw 单向派生。**

> 脚本是规格的**翻译**。翻译可以修，但不能删原文；它在 goal 的 M0 或后续执行中实现与修复。脚本/runner/夹具/环境适配/证据工具缺陷与产品缺陷一样，都是 goal 内的可逆工程问题；修复后按影响面重跑，不得借机改变冻结语义。

| 层 | 机制 | 防什么 | 卡不卡 |
|---|---|---|---|
| 1 | **规格 `spec_hash` 冻结**（在 goal 之外，goal 碰不到） | 改断言的**定义** | 不卡 |
| 2 | **编号覆盖检查器**（每轮跑）：冻结规格的每个断言编号都能在脚本里找到落点 | 删测试 / skip / 空实现 | 不卡（机器判，违规当场自愈） |
| 3 | **raw → 采集时信封 → AC 映射 → 账本**（执行证据检查器） | 状态账本自证、反向改 raw、事后绑定候选/环境 | 候选交付前必须通过 |
| 4 | **候选终审** | 编号在但真实断言/测试形状不符，或把阻塞项算成已覆盖 | goal 内不卡，但不得宣称完成；终审硬阻断 |

**证据链要点**：raw 必须先发生，采集时立刻封存候选 commit/tree、环境身份与保真度、run/test/assertion ID、原始报告路径/哈希及 observed/expected；信封与 raw 同包内容寻址。禁止把状态账本或派生聚合物当 raw，禁止从账本反向回写 raw，禁止事后补绑候选版本或环境。

**执行状态封闭集**：`VERIFIED / BLOCKED / MISSING / WAIVED`。只有可从上述单向链重算的 `VERIFIED` 计入覆盖；`BLOCKED` 和 `MISSING` 必须分别给物理边界/缺失事实的结构化证据且永不计入“已覆盖”；`WAIVED` 必须有正式规格或 `DEC-x` 依据并单独统计。多个 AC 共用同一测试时仍须有独立 assertion ID 与观测值，不能复制一个泛化 observed。

**唯一判据：改完之后，脚本是更接近规格，还是更接近代码？**

| | 规格说 | 代码实际 | 脚本原来 | 改成 | 判定 |
|---|---|---|---|---|---|
| A | 400 | 400 | 404（写错了） | **400** | ✅ 忠实化 |
| B | 400 | **404（有 bug）** | 400 | **404** | ❌ **作弊** |

**规格是唯一的裁判席。** 规格一旦可变，A 和 B 就再也分不开了——可以先改规格，再理直气壮地改脚本。这就是第 1 层必须存在于 goal 之外的理由。

## 8. goal 内部工序编排（常量，写在这里，**不进章程实例**）

每个任务都一样，所以它属于本 skill；章程实例不要抄一遍。

```
M0：仓库/工具链/环境/测试基础设施健康探针并自愈 → 产品代码 → [检查器：机器判定]
→ 部署 → 跑冻结矩阵 → raw+采集时信封 → AC 映射/账本 → 执行证据检查器 → 每切片收尾记录
        ↑ 不临时新增人工闸门；审核 = AI 自审或检查器；预定人工里程碑/职责分离检查点照常执行
```

- **goal 内部的审核禁止走对抗评审**。对抗评审引入 loop 外的观点——场景不同、上下文不同，产出的是**噪音**。goal 内只能是 loop 闭环内的 AI 自审 + 机器检查器。
- 测试资产、runner、夹具、环境适配器或证据工具缺陷在 goal 内修复；只使其影响到的运行、证据与候选失效。只有冻结用例或正式规格语义改变，才按责任回到上游并扩大失效范围。
- **代码合规绑定检查器命令**，不是 AI 自觉，更不是人工评审。**能做成检查器的不要做成评审**：检查器每轮免费跑、确定、即时；评审一次性、主观、会漏。
- **文档动作跟着切片走，不攒到最后**——跑到第 4 小时预算见底，攒着的文档必然敷衍。
- **部署动作遵守项目环境占用策略**：目标环境有账本或租约时，其位置、有效期、失效判据、可抢占角色和冲突处置由项目级补丁或部署 skill 声明。**启动 goal 不构成环境授权或抢占授权**。只有租约按既定规则失效、原持有人释放，或环境所有者明确授权抢占时才能继续；否则优先换用隔离环境，仍无法继续则交付可恢复的 `EXECUTION_BLOCKED`。项目要求登记时，部署后按规定登记时间、分支、commit、任务与操作者；手动或热修部署同样遵守。
- 长文档治理是 goal 内的自愈项，不是交付前的人工闸。

## 9. 有界扇出

- ✅ 允许按章程**已枚举的切片**派**叶子级**并行子执行体
- ❌ **禁二级派生**（子执行体不得再派）
- ❌ **禁为补背景 / 调查派子执行体**——背景自己亲自读
- 用 goal 的 token 预算做机械止损，不靠自觉

> 无界自主派遣是有事故记录的（一次 token 烧穿）。有界并行没问题，**能并行却串行同样是失职**。

## 10. 自检表（判失败）

**结构类**
- 判失败：章程实例 > 100 行。
- 判失败：目标里有任何一条是动作而非可判定终态（§2）。
- 判失败：目标没有"已提交 / 工作树干净 / 产物已冻结"这一条（而任务确实产出代码）。
- 判失败：里程碑写成"每片一节"而不是要素表。
- 判失败：存在切片不能独立编译或独立验证。
- 判失败：缺 §5 回炉出口，或把回炉混进停机条件里。
- 判失败：没有 M0 启动检查里程碑，或不允许 goal 在冻结语义不变的前提下修复测试/runner/夹具/环境/证据工具。
- 判失败：M0 未先核对项目稳定执行资产及其当前分支可达性便无声重造；或把资产继承登记重新做成章程准入闸。
- 判失败：缺 goal 启动服务单；或把它写成 readiness、PASS/FAIL、逐 AC 门票、固定命令清单或新的章程准入证明。

**文档类**
- 判失败：没有引用全绿的规格物化覆盖报告，或报告存在未物化 SD、孤儿 AC、无正式来源 AC、切片内已知文档债。
- 判失败：覆盖报告没有独立证明跨层可满足性，或 L6/L7 要求的状态、快照、预留在 L3/L4/域内没有合法承载路径。
- 判失败：章程消费了无 `DEC-x` 或无实际授权角色的“已批准”规则，或评审前后业务语义差异仍有未授权变化。
- 判失败：章程要求 goal 把**实现细节回写进 L5/L6**（那是代码自由范围，回写它 = 把 L5/L6 变成代码镜像层 = 开始腐烂）。
- 判失败：章程把预期中的七层修订安排成 goal 施工产物，而不是在第 5 步冻结；有界重新冻结只能处理施工前不可合理预见的缺口。
- 判失败：把执行记录 / 交付记录 / 飞行日志写进七层文档。
- 判失败：允许 goal 只补某一份 L5/L6 而不更新轻量设计、主题账、L7、哈希与五项闸门覆盖报告；或未给有界重新冻结授权，导致非业务语义缺口也只能停机问人。
- 判失败：允许 goal 把 `BLOCKED/MISSING` 计入覆盖，或 `WAIVED` 没有正式来源。

**边界类**
- 判失败：章程的目标环境、动作、对象、费用或副作用范围超出上游授权；或预算没有重试储备。
- 判失败：禁止段只有动作枚举，没有可达性定义；或有物理隔离手段却没用。
- 判失败：没扫过测试套件里的硬编码外部端点。
- 判失败：项目存在环境占用策略，而章程遗漏或违反该策略；把启动 goal 推导成环境授权；没有失效/释放/抢占证据便忽略有效占用；或遗漏项目要求的部署后登记。
- 判失败：停机条件超出三条白名单；或把凭据定位、实现取舍、重复失败、"文档冲突""脚本小错""记录笔误"写成业务裁决理由。
- 判失败：停机只报问题不附修改方案；把回炉当默认出口；热修后未按影响面重跑或未更新哈希基线；热修中夹带方案外语义变更；续跑前再要第二次确认。
- 判失败：章程里出现自造的"硬门""死亡线""必须审批"（§1 铁律 1、2）。
- 判失败：需要不可逆/外发动作（如推送），但 §3.1 没有显式授权——这不是停机理由，是章程写漏了。

**验证器类**
- 判失败：用"测试脚本哈希不变"当完成判定（自相矛盾，见 §7）。
- 判失败：冻结规格没有 spec_hash，或断言没有稳定编号（三层防线全塌）。
- 判失败：断言虚到无法对账（「应该失败」不合格；「返回 400 / 错误码 40001 / retryable=false」合格）。
- 判失败：一条 AC 捆绑多个独立结果，或高风险语义没有真并发、固定时钟边界、快/回退双路径、批量故障隔离中对应的强制测试形状。
- 判失败：章程允许 goal 自行宣布整体完成，或未产出精确 commit/tree 候选与执行证据清单。
- 判失败：已知豁免条目缺「验收时你将看到什么现象」的人话描述。
- 判失败：需要指定授权角色完成的外部前置被写成已知豁免而不是「人工里程碑」，导致其下游真实链路验证在本 goal 内注定只能 simulated。
- 判失败：AI 可操作事项被降级为人工里程碑；候选无关的 `PRE_GOAL` 未完成且责任角色未明确批准延期便进入 goal；人工窗口未按项目治理合并，或为了合并而违反职责分离。
- 判失败：启动服务单扩大上游授权，记录秘密明文，或要求 M0 因其中路径、命令、登录态过期而停机。
- 判失败：交付/交接缺「真实链路闭合度」独立结论，或把 `simulated` 证据与真实链路证据混入同一统计。
- 判失败：可复用执行资产只留在任务目录、本地运行根或未提交工作树；或交接未说明稳定路径、验证命令、环境前提与跨分支传播状态。
- 判失败：`VERIFIED` 不能从 raw+采集时信封重算，信封与 raw 不在同一内容寻址包，或未运行执行证据检查器。
- 判失败：新候选缺 `assertion-native-v1` 语义证据标记；wrapper 生成断言事实；代理观测或未声明的重复内容批量签发 AC；消费者完整性或证明部件不全仍报 `CANDIDATE_READY`。
- 判失败：用状态账本/派生聚合物自证，反向改 raw，事后补绑候选/环境，或多个 AC 复制同一泛化 observed 而无独立 assertion ID。

**交接类**（详见 §13.6）
- 判失败：启动物不是一条 `/goal` 条件（做成了提示词+条件两块）、复制章程正文、②段缺举证义务、④段漏出口或把停机写成"等待某人继续执行"、在章程获批前生成，或回填后总控脚本抓不到。

## 11. 章程按风险触发开放式红队，整改后封闭验收

章程并非每次都强制开放式评审。仅当项目规则判定命中死亡线、跨域/破坏契约，或用户显式要求时，才走 `adversarial-review` 的章程口径卡（红队四问 A 作弊路径 / **B 必卡路径** / C 漏停路径 / D 断点丢失）。同一章程对象、同一真值基线只允许这一轮，禁止自动 R2/R3。普通任务由冻结规格、执行期机器验证器和全新上下文候选终审提供独立性。

**关键不对称**：A/C/D 找的是“边界太松”，**B 找的是“边界太紧”**。主线程按裁决整改后，调用 `closed-remediation-review`：当前工具一个原生子线程只检查原 A/B/C/D 采纳项、正式 `DEC-x` 与整改 diff，再由主线程逐条裁决。封闭验收必须同时确认堵 A 没有制造新 B，但不得新增攻击意见；`PASS` 后才交业务决策负责人批准。

> **轻量档例外（plan-goal）**：`plan-goal` 轻量任务的计划内嵌「执行章程节」，不是本 skill 的章程实例——是否对计划跑开放式红队由用户决定，AI 不主动触发；但 §13 的 `/goal` 机制事实与出口写法对轻量档同样生效。

## 12. 边界（不归本 skill 管）

| 事 | 归谁 |
|---|---|
| 设计决策、影响面勘察、验收映射 | `lightweight-design` |
| 用例规格、断言编号、spec_hash 冻结 | `test-case-design` |
| 各层的层定位、管辖范围 vs 代码自由范围 | `doc-layer-system` §5 |
| 总控子任务编排、阶段片段 | `task-control-doc` |
| 风险触发或项目治理要求的章程开放式红队 | `adversarial-review`（章程口径卡） |
| 红队整改后的封闭验收 | `closed-remediation-review`（原生子线程检查 + 主线程裁决） |
| 部署命令、测试执行、项目工具细节 | 项目执行 skill |

## 13. 章程 → `/goal` 的交接（章程阶段的最后一步）

章程是**给人读的契约**；`/goal` 是**让它自己跑的开关**。两者不是一回事，交接做不好，章程写得再好也只是被人手动执行一遍。

### 13.1 `/goal` 的机制事实（照着用，别凭印象）

| 事实 | 后果 |
|---|---|
| `/goal <完成条件>` 只有一个参数，**上限 4000 字符** | 100 行章程塞不进去，条件必须**指针化**——指向章程文件，不复制章程内容 |
| 设定 goal **立刻起一轮**，条件本身就是那轮的指令 | **不需要另发"会话启动提示词"。条件 = 启动物，只有一条**（§13.3） |
| 每轮结束由**小快模型**判条件成立否，不成立自动续轮 | 判定权不在干活的模型手上（这正是它比自觉可靠的原因） |
| **evaluator 不跑命令、不读文件**，只看对话里已出现的内容 | **最大陷阱，见 §13.2** |
| 条件不成立就**自动续轮，不交还控制权** | **章程 §4 的停机白名单在 goal 模式下会被覆盖**——见 §13.2b |
| 条件里可写限轮/限时子句 | 必写。否则跑不通的条件会无限续轮烧预算 |
| `/goal` 只免每轮确认，不免每工具确认 | 要无人值守必须叠 auto mode |
| `/goal clear` 停；`/goal` 无参看轮次与 token；`--resume` 恢复条件但计数清零 | 断点续跑时人要知道计数是重置的 |

### 13.2 可判定终态 ≠ 可观测终态

章程 §1 写的是**可判定**终态（"覆盖检查器零缺失"、"哈希已登记"、"矩阵八面各有证据"）——那是给候选终审的人核的。evaluator 读不到文件，它只能看见**对话里贴出来的东西**。

> **真实失效模式**：目标全都达成了，但命令输出没贴进对话 → evaluator 每轮都判"没看到证据" → 无限续轮；或者反过来，Claude 嘴上说"检查器已通过"而没贴输出 → evaluator 信了 → 假绿收工。

因此 goal 条件必须把每条终态转译成**可观测**形式，并在条件里**明写举证义务**：

| ❌ 直接抄章程 | ✅ 转译后 |
|---|---|
| 覆盖检查器零缺失 | 覆盖检查器**已在本对话执行且输出已贴出**，结果为零缺失 |
| 候选已提交、工作树干净 | `git status --porcelain` **输出已贴出且为空**，commit SHA 已贴出 |
| 三份执行记录齐备 | 三份记录已落盘，**路径已在对话中报出** |

### 13.2b 停机出口必须写进完成条件，否则它不生效

章程 §4 白名单、§5 回炉出口、§2 的「人工里程碑」都假设**执行体停下来交还控制权**。但 `/goal` 的续轮判据只有一个：条件成立否。命中停机白名单时条件当然不成立 → evaluator 判 no → **自动再起一轮**。

> 结果：执行体老老实实报告"我需要你拍板"，goal 立刻把它拉回去继续跑，还附上 evaluator 的"尚未达成"当作催促。停机机制表面存在，实际失效。

因此完成条件必须把**所有出口都写成"条件满足"**：

```text
…完成条件：{正常终态} —— 或者命中以下任一出口并已在对话中写明出口编号与现状：
命中章程 §4 白名单三条 / 触发 §5 回炉 / 到达人工里程碑 {M-x} / 已跑满 {N} 轮并交付 EXECUTION_BLOCKED。
```

四类出口一起进条件，goal 才会在任一出口真正交还控制权。**漏写哪个出口，哪个出口就形同虚设。**

### 13.3 启动物 = **一条** `/goal` 条件，不是两块

`/goal` 条件同时扮演两个角色：**给 evaluator 的完成判据** + **给执行体的首轮指令**。所以**不要**再单写一份"会话启动提示词"、另配一条 goal 条件——那是把总控体系的提示词结构和 `/goal` 机械叠加，制造双份真值必然漂移，也和官方"条件即指令、无需另发提示词"的设计对着干。

启动物**只有一条**，四段固定：

```text
/goal 执行 {goal 执行工作包路径}。首次启动、--resume、新会话或自动上下文压缩后，第一次写入前先从磁盘读 {章程路径} 全文（唯一执行契约，与工作包
冲突以它为准）、工作包「强制阅读」清单、goal 断点与飞行日志尾部；其余背景自己亲自补读，不派子 agent 调查。
然后按章程里程碑自主跑到底，中途不汇报。

完成条件：{章程 §1 各条终态压缩，每条带举证义务}；{产出物已落盘并报出路径}；
{工作树干净证据与候选哈希已贴出}；{下游状态回填要求}；终态报出 CANDIDATE_READY。

约束：{章程 §3.2 里最致命的 3-6 条，压缩转述}。

出口（命中任一并已在对话写明出口编号与现状，即视为条件满足）：章程 §4 停机白名单三条 /
§5 回炉 / 到达人工里程碑 {M-x} / 已跑满 {N} 轮并交付 EXECUTION_BLOCKED。
```

**总控体系的三要素不另起一块，全部承载在这条里**：主体任务→①段、目标终态→②段、边界提要→③段。

### 13.4 逐段配方（照这张表取料，不要自由发挥）

| 段 | 原料出处 | 必须写 | 禁止写 |
|---|---|---|---|
| **① 开工指令** | 工作包路径 + 章程路径 + 章程 §3.1 扇出授权 | 工作包与章程的**优先级**（章程赢）；首次/恢复/新会话/压缩后的磁盘复水；补读纪律（背景亲自读、不派 agent 调查）；**章程已授权的有界并行**（按已枚举切片派叶子级子执行体）；"中途不汇报" | 复述里程碑清单、复述强制阅读的文件名（章程与工作包里都有） |
| **② 完成条件** | 章程 §1 逐条 | 每条终态 + **举证义务**（"已在本对话执行、输出已贴出"）；产出物**路径已报出**；工作树干净证据已贴出；候选 SHA 与哈希已贴出；终态字样 | 验证命令的完整命令行、哈希字面值（易变，留在章程）；章程正文整段复制 |
| **③ 约束** | 章程 §3.2 | 挑**最致命的 3-6 条**：禁区可达性、推送、冻结规格不可动、共享环境上的连带破坏、不许弱化断言 | 把 §3.2 全抄一遍（evaluator 每轮读一遍，纯浪费）；动作枚举式禁令（见 §5） |
| **④ 出口** | 章程 §4 + §5 + §2 人工里程碑 | **四类一个不能少**，统一措辞为"命中即视为条件满足" | 只写限轮；把停机写成"等待某人继续执行"——那不是条件满足，evaluator 会把它拉回去继续跑 |

**长度校准**：典型任务 600–1200 字符，上限 4000。**超 1500 基本就是在抄章程**，回头压②③两段。

**举证义务怎么写**（②段最容易写废的地方）：

| ❌ 直接抄章程 | ✅ 带举证 |
|---|---|
| 覆盖检查器零缺失 | 覆盖检查器**已在本对话执行、输出已贴出**，结果零缺失 |
| 候选已提交、工作树干净 | `git status --porcelain` **输出已贴出且为空**，commit SHA 已贴出 |
| 三份执行记录齐备 | 三份记录已落盘并**报出路径** |

### 13.5 谁生成、什么时候生成、写到哪

**启动物是章程阶段的产出，不是建总控时的产出。** 原料 100% 来自终版章程（§1 / §2 / §3.2 / §4 / §5），章程没定稿就写它只能靠猜；红队整改必动 §1 与 §3.2，提前写必漂移。

顺序固定，**一步都不能提前**：

```text
写章程 → （风险触发或项目治理要求时：红队一次 → 封闭验收 PASS）→ 对应授权角色批准
      → 生成 /goal 条件 → 回写下游 goal 执行工作包的「会话启动提示词」段
```

**写到哪**：下游 goal 执行工作包的「会话启动提示词」段。**标题保持原名、其后紧跟代码块**——总控脚本靠"标题 + 紧跟的代码块"抓取，改标题或在中间插说明文字都会抓不到（说明写在代码块**之后**）。这是章程阶段**唯一被授权的跨子任务写入**，只准写这一段。

### 13.6 判失败（并入 §10 自检）

- 判失败：启动物做成"提示词 + 条件"两块，而不是一条 `/goal` 条件。
- 判失败：条件复制章程正文而非指向它（超 1500 字符基本就是在抄）。
- 判失败：②段任一终态没有举证义务子句（evaluator 读不到 = 判不了 = 无限续轮）。
- 判失败：④段漏写任一类出口（§4 白名单 / §5 回炉 / 人工里程碑 / 限轮）——漏哪类，哪类在 goal 模式下不生效。
- 判失败：④段把停机写成"等待某人继续执行"而不是"视为条件满足"。
- 判失败：①段只写扇出**禁令**（"不派子 agent"）而不写章程 §3.1 的有界并行**授权**——执行体会把本可并行的切片串行跑。**能并行却串行同样是失职**（§9）；这是红队 B 问要抓的"边界太紧"，不是安全。
- 判失败：章程获批前就生成启动物，或回填时动了下游工作包的其他内容。
- 判失败：回填后总控脚本抓不到（标题被改名，或标题与代码块之间插了文字）。

