@wnlen/agent-execution-template 0.8.18 → 0.8.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,8 @@ execution_policy:
11
11
  max_depth: 3
12
12
  allow_depth_4_when_needed: true
13
13
  progress_unit: "vertical_slice"
14
+ l1_granularity: "independently_acceptable_vertical_slice"
15
+ write_back_policy: "l1_start_done_red_blocked_scope_change_final"
14
16
  task_tree:
15
17
  - id: "L1-1"
16
18
  title: ""
@@ -77,12 +79,12 @@ permission:
77
79
 
78
80
  # 任务
79
81
 
80
- 这个文件是当前执行契约。优先在引导模式中,根据简短人类目标和仓库上下文生成,
81
- 然后由人类在执行前检查。
82
+ 当前执行契约。优先由引导模式根据人类目标和仓库上下文生成,执行前由人类检查。
82
83
 
83
- 优先使用安全假设,少问额外问题。AI 应基于用户目标、项目上下文和仓库事实推断
84
- 范围、风险、权限和验收;如果推断会越过权限、安全边界或验收无法定义,将
85
- `readiness` 标为 `blocked` 或将相关任务节点标为 `Red`,等待人类确认。
84
+ 优先安全假设,少问问题。AI 基于目标、上下文和仓库事实推断范围、风险、权限和验收;
85
+ 若会越权、触碰安全边界或验收不可定义,将 `readiness` 设为 `blocked` 或把相关节点设为
86
+ `Red`,等待确认。本轮新建或重写任务契约时,默认保持 `draft_for_confirmation` 并停下交接;
87
+ 只有既有任务为 `ready_to_execute` 时才执行。
86
88
 
87
89
  ## 目标
88
90
 
@@ -121,28 +123,32 @@ permission:
121
123
 
122
124
  ## 执行策略
123
125
 
124
- 默认使用 `auto`,由 AI 在执行前规划时判定是否启用连续执行,而不是等待用户口令。
125
- 如果执行前拆出的 L1 任务少于 2 个,使用 `normal`;如果 L1 任务为 2 个或更多,
126
- 自动使用 `bounded_continuous`。
126
+ 默认 `auto`:AI 执行前规划并决定是否连续执行,不等用户口令。L1 < 2 用 `normal`;
127
+ L1 >= 2 自动用 `bounded_continuous`。
127
128
 
128
129
  `bounded_continuous` 表示边界内连续执行:
129
130
 
130
- - 目标、范围、验收、权限和风险评级由 AI 基于用户目标、项目上下文和仓库事实推断;
131
- 不要求用户预先逐项提供。
131
+ - 目标、范围、验收、权限和风险由 AI 基于目标、上下文和仓库事实推断;不要求用户逐项提供。
132
132
  - `readiness = ready_to_execute` 表示没有 Red 预检项,可以执行。
133
133
  - `readiness = draft_for_confirmation` 表示需要人类确认后才能执行。
134
134
  - `readiness = blocked` 表示当前任务不可执行,必须写 blocked 结果。
135
- - 执行前必须把 L1 任务清单写入 `execution_policy.task_tree`。
136
- - 执行前必须列出 L1 任务清单;每个 L1 用待办列表表示,完成后打勾并划掉。
137
- - 执行某个 L1 前,AI 先规划自然衍生出的 L2;如果 L2 仍需拆分,再规划 L3。
138
- - 默认最多 3 层;只有当不拆 L4 会导致 L3 过大或不可验证时,才允许动态增加 L4。
139
- - 每个任务节点都由 AI 自己生成 Green / Yellow / Red 风险评级。
140
- - 只有 Red 停下来让人类确认;Green 自动继续,Yellow 先做局部低风险修正后继续。
141
- - `progress_unit` 默认是 `vertical_slice`:每轮推进都应该产生可检查的工作增量。
142
- - `checkpoint_budget` 是最多可用检查点预算,不是必须用完的次数;不要为了消耗预算而汇报。
143
- - 只有在触发 `checkpoint_triggers`、风险升高或准备收尾时才输出 Checkpoint。
135
+ - 本轮新建或重写 `task.md` 时必须停在确认交接;草稿不能执行。
136
+ - 执行前必须把 L1 清单写入 `execution_policy.task_tree`。
137
+ - 执行前必须列出 L1 清单;每个 L1 用待办表示,完成后打勾并划掉。
138
+ - L1 必须是可独立验收的垂直切片;不要把单个机械步骤拆成 L1,也不要把多个
139
+ 可独立验收的用户可见结果合并成一个 L1。
140
+ - 执行 L1 前规划 L2;L2 仍过大时规划 L3。
141
+ - 默认最多 3 层;不拆 L4 会导致 L3 过大或不可验证时,才允许 L4。
142
+ - 每个节点都由 AI 生成 Green / Yellow / Red 风险评级。
143
+ - 只有 Red 停下来让人类确认;Green 自动继续,Yellow 只允许当前 L1/L2 内的局部
144
+ 低风险修正,不能改变公共接口、数据模型、权限、安全、架构方向或验收标准。
145
+ - `progress_unit` 默认为 `vertical_slice`:每轮都应产生可检查增量。
146
+ - `checkpoint_budget` 是上限,不是必须用完;不要为消耗预算而汇报。
147
+ - 只有在风险从 Green 变 Yellow/Red、即将扩大范围或权限、完成 L1 垂直切片、
148
+ 验证失败后准备继续、准备最终收尾时才输出 Checkpoint。
144
149
  - 每个 Checkpoint 必须包含证据:已改文件、已运行命令、验证结果或无法验证的原因。
145
- - 执行中必须更新 `task_tree` 节点状态:`pending`、`running`、`done` `blocked`。
150
+ - `task_tree` 写回:执行前写 L1 清单;L1 开始/完成、Red、blocked、范围变化或收尾时写回;
151
+ 不为微小 L3 操作写回。
146
152
  - 完成后只做一次总复盘;只对 Yellow、Red、失败验证或高影响模块做二次抽检。
147
153
  - 连续执行不改变模型策略;涉及判断、架构、失败复盘或验收争议时仍按 `model_policy` 升级。
148
154
 
@@ -153,9 +159,8 @@ permission:
153
159
 
154
160
  ## 模型策略
155
161
 
156
- 默认使用 `model_policy.default_tier` 声明的模型档位。
157
- 不要用 `strong` 做常规执行。只为 `model_policy` 声明的角色和触发条件使用 `strong`,
158
- 并在 `ai/project/metrics.json` 中记录原因。
162
+ 默认使用 `model_policy.default_tier`。不要用 `strong` 做常规执行;只在
163
+ `model_policy` 声明的角色和触发条件下使用,并在 `metrics.json` 记录原因。
159
164
 
160
165
  ## 停止条件
161
166
 
@@ -170,5 +175,5 @@ permission:
170
175
  - 必需命令无法运行。
171
176
  - 风险等级高但没有明确授权。
172
177
  - 连续执行中出现 Red 检查点。
173
- - 需要改变产品方向、核心架构、数据结构、安全边界、支付、账号或权限。
174
- - 需要删除大量文件、重写核心模块,或在多个高成本方案之间取舍。
178
+ - 需要改变产品方向、核心架构、公共 API、持久化数据结构、安全边界、支付、账号或权限。
179
+ - 需要删除超过当前 L1 直接相关的文件、重写核心模块,或在多个高成本方案之间取舍。
@@ -1 +1 @@
1
- 0.8.18
1
+ 0.8.20
@@ -1,15 +1,12 @@
1
1
  # AI 执行引导
2
2
 
3
3
  不要总结这个文件。
4
- 执行下面的引导流程。
4
+ 按下面流程整理项目上下文。
5
5
 
6
- 你正在为 Agent Execution Template 整理项目上下文。
6
+ 目标:建立后续任务依赖的稳定项目理解。这是发现与确认,不是实现。
7
7
 
8
- 目标:建立后续任务会依赖的稳定项目理解。
9
- 这是发现与确认步骤,不是实现步骤。
10
-
11
- 你的任务是检查项目,创建或更新 `ai/project/project.md`
12
- 以及相关的 `ai/project/refs/*`,然后在“引导后交接”处停止。
8
+ 检查项目,创建或更新 `ai/project/project.md` 和相关 `ai/project/refs/*`,
9
+ 然后在“引导后交接”处停止。
13
10
 
14
11
  ## 先读
15
12
 
@@ -31,11 +28,9 @@
31
28
  - 能推断约束时,更新 `ai/project/refs/constraints.md`
32
29
  - 只有存在持久决策证据时,更新 `ai/project/refs/decisions.md`
33
30
 
34
- 只有在人类同时提供当前任务时,才创建 `ai/project/task.md`。
35
- 如果创建了 `ai/project/task.md`,只起草任务契约,不进入执行。
31
+ 只有人类同时提供当前任务时,才创建 `ai/project/task.md`。只起草任务契约,不执行。
36
32
 
37
- 引导期间不要编辑源码、测试、应用配置、依赖文件、生成文件、
38
- 运行时文件、结果文件或指标文件。
33
+ 引导期间不要编辑源码、测试、配置、依赖、生成文件、运行时、结果或指标文件。
39
34
 
40
35
  ## 阅读顺序
41
36
 
@@ -48,12 +43,12 @@
48
43
  4. 现有 AI 引用:`ai/project/refs/*.md`
49
44
  5. 源码、测试、配置和文档目录的浅层仓库结构
50
45
 
51
- 如果文档和清单缺失或不足,可以有限读取代码进行推断:
46
+ 文档和清单不足时,可有限读取代码推断:
52
47
 
53
48
  - 先检查顶层目录和文件名;
54
49
  - 检查可能的入口目录,例如 `src/`、`app/`、`lib/`、`packages/`、
55
50
  `services/`、`cmd/`、`internal/`、`server/`、`client/`、`test/`、`tests/`;
56
- - 只读取足够识别项目目的、模块边界、命令和约束的路由、模块、配置和测试文件;
51
+ - 只读取足够识别目的、模块边界、命令和约束的路由、模块、配置和测试文件;
57
52
  - 除非人类明确授权,不要读取整个代码库。
58
53
 
59
54
  除非人类明确引用或授权,不要读取依赖目录、构建产物、覆盖率输出、锁文件
@@ -61,7 +56,7 @@
61
56
 
62
57
  ## 确认维度
63
58
 
64
- 读取后,总结并请人类确认或修正这些点:
59
+ 读取后,请人类确认或修正:
65
60
 
66
61
  - 项目名称、目的和主要用户;
67
62
  - 一句话定位、最终形态和任务是否值得做的判断标准;
@@ -74,19 +69,18 @@
74
69
  - 持久约束、安全边界、兼容性要求和高风险区域;
75
70
  - 会影响后续任务精度的未知项。
76
71
 
77
- 一次最多问 3 个问题。只问答案会改变项目身份、命令、边界、约束、风险、
78
- 权限或验收的问题。
72
+ 最多问 3 个问题。只问会改变身份、命令、边界、约束、风险、权限或验收的问题。
79
73
 
80
74
  ## 输出规则
81
75
 
82
76
  - 未知事实标记为 `Unknown`;不要把猜测当成事实。
83
- - 如果本次引导吸收了 `ai/project/inbox/*.md` 或 `ai/project/inbox/raw/*.md`,
84
- 写入上下文后必须把已吸收资料移动到 `ai/project/inbox/processed/`。保留相对路径:
85
- `ai/project/inbox/raw/file.md` 移动到 `ai/project/inbox/processed/raw/file.md`。
86
- 如果文件名冲突,保留原文件名并添加日期或序号。不要移动 `ai/project/inbox/ideas/**`。
77
+ - 若本次吸收 `ai/project/inbox/*.md` 或 `ai/project/inbox/raw/*.md`,写入上下文后移到
78
+ `ai/project/inbox/processed/`,保留相对路径:`ai/project/inbox/raw/file.md` ->
79
+ `ai/project/inbox/processed/raw/file.md`。文件名冲突时加日期或序号。不要移动
80
+ `ai/project/inbox/ideas/**`。
87
81
  - 未吸收资料必须留在原位置,并在最终回复中说明原因。
88
- - `final-shape.md`、`module-map.md`、`roadmap.md` 的初始化内容必须标明证据来源;
89
- 如果证据不足,保持占位或写 `Unknown`,不要编造愿景。
82
+ - `final-shape.md`、`module-map.md`、`roadmap.md` 的初始化内容必须标明证据来源;
83
+ 证据不足时保持占位或写 `Unknown`,不要编造愿景。
90
84
  - 有帮助时,在相关文件中记录证据来源。
91
85
  - 保持 `ai/project/project.md` 稳定、长期有效。
92
86
  - 保持 `ai/project/refs/*.md` 聚焦;不要把引用文件写成项目流水账。
@@ -95,11 +89,11 @@
95
89
 
96
90
  ## 引导后交接
97
91
 
98
- 写完项目上下文草稿后,不要只要求人类打开文件检查。
99
- 你必须在最终回复中给出可确认摘要,让人类可以直接在聊天里确认或修正。
92
+ 写完上下文草稿后,不要只要求人类打开文件检查。最终回复必须给出可确认摘要,
93
+ 让人类能直接在聊天里确认或修正。
100
94
 
101
- 如果人类在引导请求中已经给出当前任务目标,你必须同时起草 `ai/project/task.md`,
102
- 并把项目理解摘要和任务草稿摘要一起交给人类确认。
95
+ 如果引导请求已包含当前任务目标,必须同时起草 `ai/project/task.md`,
96
+ 并交付项目理解摘要和任务草稿摘要。
103
97
 
104
98
  如果人类没有给出当前任务目标,你必须根据项目现状推荐下一步最值得做的任务。
105
99
 
@@ -199,5 +193,5 @@
199
193
  - 修正:<你要改的地方>
200
194
  ```
201
195
 
202
- 如果仍有重要未知项,只在“仍不确定”中列出最多 3 条。
196
+ 重要未知项只在“仍不确定”中列最多 3 条。
203
197
  不要让人类主动去文件管理器里寻找问题;文件路径只作为可追溯记录。
@@ -11,7 +11,11 @@
11
11
  执行前规划必须:
12
12
 
13
13
  - 根据用户目标、项目上下文和仓库事实,推断目标、范围、验收、权限和验证方式。
14
+ - 只有 `ai/project/task.md` 已存在且 `readiness = ready_to_execute` 时才进入执行。
15
+ 如果本轮新建或重写任务契约,必须先停在确认交接,不能边写草稿边执行。
14
16
  - 列出 L1 任务清单,并为每个 L1 生成 Green / Yellow / Red 风险评级。
17
+ - L1 必须是可独立验收的垂直切片;不要把单个机械步骤拆成 L1,也不要把多个
18
+ 可独立验收的用户可见结果合并成一个 L1。
15
19
  - 如果 L1 少于 2 个,使用 `normal`。
16
20
  - 如果 L1 为 2 个或更多,自动启用 `bounded_continuous`。
17
21
  - 如果任一 L1 为 Red,先停止并让人类确认;Green 和 Yellow 不阻塞启动。
@@ -21,12 +25,17 @@
21
25
 
22
26
  任务树按 L1 -> L2 -> L3 执行。
23
27
 
28
+ - L1 表示一个完成后可验证、可回退、可向用户解释的工作增量。
29
+ - L2 表示完成该 L1 所需的实现子步骤。
30
+ - L3 表示 L2 仍过大时的局部操作步骤。
24
31
  - 执行某个 L1 前,先规划它自然衍生出的 L2。
25
32
  - 执行某个 L2 前,如果仍需拆分,再规划 L3。
26
33
  - 默认最多 3 层。只有当 L3 仍过大、不可验证或不可回退时,才动态增加 L4。
27
34
  - L1/L2/L3/L4 都必须有风险评级、预期改动范围、验收方式和证据要求。
28
35
  - L1 清单必须用待办列表展示;每完成一个 L1,就打勾并划掉。
29
- - 执行中必须更新 `task_tree` 节点状态:`pending`、`running`、`done` `blocked`。
36
+ - 任务树写回规则:执行前写入 L1 清单;开始或完成 L1 时更新该 L1 状态;
37
+ 出现 Red、blocked、范围变化或最终收尾时立即写回。不要为每个微小 L3 操作写回。
38
+ - 执行中使用 `pending`、`running`、`done` 或 `blocked` 表示节点状态。
30
39
 
31
40
  推荐节点结构:
32
41
 
@@ -57,20 +66,24 @@ Yellow:
57
66
  - 仍在当前任务范围内;
58
67
  - 存在局部不确定或局部验证失败;
59
68
  - 可以用低风险修正继续;
60
- - 不需要扩大权限、范围、命令或验收。
69
+ - 修正只影响当前 L1/L2 的局部实现,不改变公共接口、数据模型、权限、安全、
70
+ 架构方向或验收标准;
71
+ - 不需要扩大权限、范围、命令、网络或验收。
61
72
 
62
73
  Red:
63
74
 
64
75
  - 需要扩大权限、运行未允许命令、访问网络或执行破坏性操作;
65
- - 需要改变产品方向、核心架构、数据结构、安全边界、支付、账号或权限;
66
- - 需要删除大量文件、重写核心模块或在多个高成本方案之间取舍;
76
+ - 需要改变产品方向、核心架构、公共 API、持久化数据结构、安全边界、支付、
77
+ 账号或权限;
78
+ - 需要删除超过当前 L1 直接相关的文件、重写核心模块或在多个高成本方案之间取舍;
67
79
  - 验收不可定义,或任务目标和项目方向发生实质冲突。
68
80
 
69
81
  只有 Red 停止等待人类确认。Green 自动继续。Yellow 做局部低风险修正后继续。
70
82
 
71
83
  ## Checkpoint
72
84
 
73
- Checkpoint 只在风险升高、边界即将变化、完成垂直切片或准备收尾时输出。
85
+ Checkpoint 只在以下情况输出:风险从 Green 变 Yellow/Red、即将扩大范围或权限、
86
+ 完成一个 L1 垂直切片、验证失败后准备继续、准备最终收尾。
74
87
  不要为了消耗预算而汇报。
75
88
 
76
89
  每个 Checkpoint 必须包含:
@@ -89,6 +102,17 @@ Checkpoint 只在风险升高、边界即将变化、完成垂直切片或准备
89
102
  证据必须包含已改文件、已运行命令、验证结果,或无法验证的原因。
90
103
  不接受只有主观判断的 Green。
91
104
 
105
+ ## 用户可见输出
106
+
107
+ - 默认使用当前安装模板语言输出。`ai/template/LANG` 为 `zh` 时,用户可见的计划、
108
+ L1 清单、Checkpoint、任务草稿交接、阻塞说明和最终结果默认使用中文;只有用户
109
+ 明确要求其他语言,或需要保留代码、命令、文件路径、协议字段原文时才使用其他语言。
110
+ - 默认展示 L1 清单;不要默认展示完整 L2/L3/L4。
111
+ - 展示风险结论和必要原因;不要输出长篇内部推理。
112
+ - 展示证据;不要展示内部协议字段、完整 YAML、`checkpoint_budget` 或 `model_policy`。
113
+ - Green 少说,Yellow 简说,Red 停下并说明原因和选项。
114
+ - 最终必须给状态、完成项、验证结果和结果文件。
115
+
92
116
  ## 模型策略
93
117
 
94
118
  连续执行不改变 `model_policy`。遇到规划、架构、失败复盘或验收争议,
@@ -1,9 +1,7 @@
1
1
  # AI 执行提示
2
2
 
3
3
  不要总结这个文件。
4
- 执行下面的工作流。
5
-
6
- 你正在 Agent Execution Template 工作区内操作。
4
+ 按下面流程执行。你正在 Agent Execution Template 工作区内操作。
7
5
 
8
6
  先读取:
9
7
 
@@ -11,54 +9,45 @@
11
9
  2. `ai/template/rules/core.md`
12
10
  3. `ai/template/execution-policy.md`
13
11
 
14
- 然后选择模式:
12
+ 选择模式:
15
13
 
16
- - 如果用户要求更新北极星、最终形态、产品宪法、模块地图、路线图、项目方向,
17
- 或 `ai/project/inbox/ideas/` 里存在 `.gitkeep` 之外的待评估灵感,按 `strategy_update`
18
- 起草方向修订任务或直接生成提案,然后停止等待人类确认。
19
- - 如果用户明确确认某个
20
- `ai/project/proposals/final-shape-updates/*.md` 可以合并,按
21
- `apply_strategy_update` 起草或执行应用任务;如果 proposal 仍为
22
- `proposed`,先根据这次明确确认更新为 `accepted`。
14
+ - 用户要求更新北极星、最终形态、产品宪法、模块地图、路线图或项目方向,
15
+ 或 `ai/project/inbox/ideas/` 有待评估灵感:走 `strategy_update`,生成提案后停下确认。
16
+ - 用户明确确认某个 `ai/project/proposals/final-shape-updates/*.md` 可合并:
17
+ `apply_strategy_update`。若 proposal 仍为 `proposed`,先改为 `accepted`。
23
18
  - 如果用户说“开始初始化这个项目,并吸收 ai/project/inbox/ 里的资料”,
24
- 或要求初始化时一并吸收 `ai/project/inbox/` 里的资料,先检查
25
- `ai/project/project.md`。如果它已经存在且不是空文件、占位内容或明显不完整,
26
- 执行 `ai/template/reconcile.md`,不要重新 bootstrap;如果它为空、只有占位内容或
27
- 明显不完整,执行 `ai/template/bootstrap.md`,并把 `ai/project/inbox/*.md`
28
- `ai/project/inbox/raw/*.md` 视为本次引导输入的一部分;在项目上下文确认后停止。
29
- - 如果用户说“整合 ai/project/inbox/ 里的新资料”,要求整合/合并/吸收/
30
- 更新上下文/处理新资料,提到 `reconcile` `ai/project/inbox/`,
31
- `ai/project/inbox/` 里存在 `.gitkeep` 之外的待吸收资料,执行 `ai/template/reconcile.md`,
32
- 并按它的两阶段流程停止或更新;但 `ai/project/inbox/processed/` 是已处理资料,
33
- 不应触发整合,`ai/project/inbox/ideas/` 应优先走 `strategy_update`。即使用户说
34
- “整合整个 inbox”,默认也只处理 `ai/project/inbox/*.md` 和
35
- `ai/project/inbox/raw/*.md`。
19
+ 或要求初始化时吸收 inbox:先检查 `ai/project/project.md`。若已存在且有效,
20
+ 执行 `ai/template/reconcile.md`,不要重新 bootstrap;若为空、占位或不完整,执行
21
+ `ai/template/bootstrap.md`,并把 `ai/project/inbox/*.md` 与
22
+ `ai/project/inbox/raw/*.md` 纳入引导输入;上下文确认后停止。
23
+ - 用户说“整合 ai/project/inbox/ 里的新资料”,要求整合/合并/吸收/更新上下文/处理新资料,提到 `reconcile`
24
+ `ai/project/inbox/`,或 inbox 有待吸收资料:执行 `ai/template/reconcile.md`。
25
+ `processed/` 不触发整合,`ideas/` 优先走 `strategy_update`。即使用户说
26
+ “整合整个 inbox”,也默认只处理 `ai/project/inbox/*.md` `ai/project/inbox/raw/*.md`。
36
27
  - 如果用户说“开始初始化这个项目”、要求初始化/整理/生成项目上下文,
37
- 或 `ai/project/project.md` 为空、只有占位内容、
38
- 或不完整,执行 `ai/template/bootstrap.md`,并在项目上下文确认后停止。
39
- - 如果 `ai/project/task.md` 为空、只有占位内容、或不完整,根据用户当前目标和
40
- 已确认的项目上下文起草它,然后停止等待人类确认。
41
- - 如果用户说“继续推进这个项目”,且没有更具体目标,先全局判断当前最值得做的
42
- 下一步:优先处理待确认上下文、待确认任务、失败结果、未完成任务或明显风险;
43
- 然后给出建议或起草 `ai/project/task.md`,不要让人类自己去文件管理器里找问题。
44
- - 只有当 `ai/project/project.md` 和 `ai/project/task.md` 已经足够定义身份、
45
- 目标、范围、权限和验收时,才进入执行模式。
28
+ 或 `ai/project/project.md` 为空、占位或不完整:执行 `ai/template/bootstrap.md`,
29
+ 上下文确认后停止。
30
+ - `ai/project/task.md` 为空、占位或不完整:按当前目标和已确认上下文起草任务,
31
+ 然后停下确认。
32
+ - 用户说“继续推进这个项目”且无更具体目标:先判断最值得做的下一步,优先处理
33
+ 待确认上下文、待确认任务、失败结果、未完成任务或明显风险;给出建议或起草
34
+ `ai/project/task.md`,不要让人类自己找问题。
35
+ - 只有当 `project.md` 和 `task.md` 足以定义身份、目标、范围、权限和验收时,
36
+ 才进入执行模式。
46
37
 
47
38
  ## 任务草稿交接
48
39
 
49
40
  在任务草稿模式中:
50
41
 
51
42
  1. 读取已确认的 `ai/project/project.md` 和相关 `ai/project/refs/*.md`。
52
- 2. 根据用户当前目标、项目上下文和仓库事实,推断目标、范围、验收、权限、
53
- 验证方式和初始风险;不要要求用户逐项提供。
43
+ 2. 根据用户目标、项目上下文和仓库事实推断目标、范围、验收、权限、验证方式和初始风险;
44
+ 不要求用户逐项提供。
54
45
  3. 起草 `ai/project/task.md`,并将 `execution_policy.mode` 设为 `auto`。
55
- 4. 执行前列出 L1 任务清单并标注 Green / Yellow / Red,同时写入
56
- `execution_policy.task_tree`。L1 少于 2 个时使用 `normal`;L1 2 个或更多时
57
- 自动使用 `bounded_continuous`。
58
- 5. 如果没有 Red 预检项,将 `readiness` 设为 `ready_to_execute`;如果需要人类确认,
59
- 设为 `draft_for_confirmation`;如果不可执行,设为 `blocked`。
60
- 6. 只有出现 Red 预检项时才停止等待人类确认。若用户要求的是执行或继续,且预检
61
- 只有 Green / Yellow,可以直接进入执行模式。
46
+ 4. 执行前列出 L1 清单并标注 Green / Yellow / Red,写入 `execution_policy.task_tree`。
47
+ L1 < 2 `normal`;L1 >= 2 自动用 `bounded_continuous`。
48
+ 5. 本轮新建或重写 `task.md` 时,将 `readiness` 设为 `draft_for_confirmation` 并停止;
49
+ 草稿不能直接执行。
50
+ 6. 只有既有任务为 `ready_to_execute` 且无 Red 预检项,才进入执行;否则设为 `blocked`。
62
51
  7. 不要在任务草稿模式中修改源码或业务文件。
63
52
 
64
53
  任务草稿模式必须以下面结构结束:
@@ -108,12 +97,14 @@
108
97
  2. `ai/project/runtime.md`
109
98
  3. `ai/project/task.md`
110
99
 
111
- 然后按 `ai/template/execution-policy.md` 做执行前规划:列出 L1 清单,给每个 L1
112
- 标注 Green / Yellow / Red,并写入 `execution_policy.task_tree`。根据 L1 数量自动选择
113
- `normal` `bounded_continuous`。执行 L1 前规划 L2,执行 L2 前按需规划 L3;
114
- 默认最多 3 层,必要时允许 L4。每完成一个 L1,在清单中打勾并划掉,并更新
115
- `task_tree` 节点状态。只有 Red 停止等待人类确认;Green 自动继续,Yellow 做局部
116
- 低风险修正后继续。最后把结果写入:
100
+ 然后按 `ai/template/execution-policy.md` 规划:列 L1,标注 Green / Yellow / Red,
101
+ 写入 `execution_policy.task_tree`,并按 L1 数量选择 `normal` 或 `bounded_continuous`。
102
+ 只有 `readiness = ready_to_execute` 才能执行;本轮新建或重写任务契约时先停下确认。
103
+ L1 必须是可独立验收的垂直切片。执行 L1 前规划 L2,执行 L2 前按需规划 L3;
104
+ 默认最多 3 层,必要时允许 L4。每完成一个 L1,在清单中打勾并划掉;仅在 L1
105
+ 开始/完成、Red/blocked、范围变化或最终收尾时写回 `task_tree`。Red 停止确认;
106
+ Green 自动继续;Yellow 只做当前 L1/L2 内的局部低风险修正。用户可见输出遵守
107
+ “用户可见输出”规则。最后写入:
117
108
 
118
109
  - `ai/project/result.json`
119
110
  - `ai/project/result.md`
@@ -1,16 +1,16 @@
1
1
  # 协议
2
2
 
3
- Agent Execution Template v0.8 将可复用协议和项目专属执行上下文分开。
3
+ Agent Execution Template v0.8 分离可复用协议和项目现场。
4
4
 
5
5
  ```text
6
6
  ai/template/ = 可复用执行协议
7
7
  ai/project/ = 当前项目执行工作区
8
8
  ```
9
9
 
10
- `template` 是协议,`project` 是现场工作区。
10
+ `template` 是协议,`project` 是现场。
11
11
 
12
- 项目现场不仅保存当前任务,也保存方向层。方向层用于回答“为什么做、往哪里长”,
13
- 执行层用于回答“这次做什么、如何验收”。
12
+ 项目现场同时保存任务和方向层。方向层回答“为什么做、往哪里长”,执行层回答
13
+ “这次做什么、如何验收”。
14
14
 
15
15
  ```text
16
16
  ai/project/refs/final-shape.md = 项目北极星说明书
@@ -26,15 +26,14 @@ ai/project/task.md = 当前执行契约
26
26
  ```
27
27
 
28
28
  1. 项目发现时,执行 `ai/template/bootstrap.md`;不要总结它。
29
- 2. 引导结束时使用“引导后交接”,在聊天里给出可确认摘要和推荐下一步,
30
- 不要只要求人类打开文件检查。
29
+ 2. 引导结束用“引导后交接”,在聊天里给可确认摘要和推荐下一步,不只要求人类打开文件。
31
30
  3. 任务执行时,执行 `ai/template/prompt.md`;不要总结它。
32
- 4. 当出现新的权威资料时,放入 `ai/project/inbox/`,执行 `ai/template/reconcile.md`;
33
- 不要总结它。整合必须先出计划,等确认后再更新上下文。
34
- 5. 当出现会改变项目最终形态、模块边界或路线图的灵感时,先放入
35
- `ai/project/inbox/ideas/`,再创建 `strategy_update` 任务生成提案。
36
- 6. 只有人类确认提案后,才能创建 `apply_strategy_update` 任务修改
37
- `final-shape.md`、`module-map.md` 或 `roadmap.md`。
31
+ 4. 新权威资料放入 `ai/project/inbox/`,执行 `ai/template/reconcile.md`;不要总结它。
32
+ 整合先出计划,确认后更新上下文。
33
+ 5. 会改变最终形态、模块边界或路线图的灵感先放入 `ai/project/inbox/ideas/`,
34
+ 再用 `strategy_update` 生成提案。
35
+ 6. 人类确认提案后,才可用 `apply_strategy_update` 修改 `final-shape.md`、
36
+ `module-map.md` 或 `roadmap.md`。
38
37
  7. 如果 `ai/project/task.md` 缺失或不完整,根据当前目标和已确认的项目上下文起草它,
39
38
  然后用“任务草稿交接”停止。
40
39
  8. 任务确认后,检查就绪度、风险、模型策略、引用、权限和验收。
@@ -45,11 +44,12 @@ ai/project/task.md = 当前执行契约
45
44
 
46
45
  任务执行前必须读取 `ai/template/execution-policy.md`。
47
46
 
48
- 执行策略默认是 `auto`:AI 先拆 L1 任务并判断 Green / Yellow / Red,再决定使用
49
- `normal` 或 `bounded_continuous`。L1 少于 2 个使用 `normal`;L1 2 个或更多
50
- 自动启用 `bounded_continuous`。只有 Red 停止等待人类确认。
47
+ 默认 `auto`:AI 先拆 L1 并判断 Green / Yellow / Red,再选择 `normal` 或
48
+ `bounded_continuous`。L1 < 2 `normal`;L1 >= 2 自动启用 `bounded_continuous`。
49
+ L1 必须是可独立验收的垂直切片。只有既有任务 `readiness = ready_to_execute` 才能执行;
50
+ 本轮新建或重写任务契约时先停下确认。Red 停止确认,Yellow 只允许当前 L1/L2 内的局部低风险修正。
51
51
 
52
- 任务树、风险分级、Checkpoint 证据和 `task_tree` 状态更新规则由
52
+ 任务树、风险分级、Checkpoint 证据和 `task_tree` 写回规则由
53
53
  `ai/template/execution-policy.md` 定义。
54
54
 
55
55
  ## 引导模式
@@ -59,17 +59,16 @@ ai/project/task.md = 当前执行契约
59
59
  - `ai/project/project.md`
60
60
  - `ai/project/refs/*.md`
61
61
 
62
- 当 `ai/project/project.md` 为空、只有占位内容、过期、不完整,或用户要求整理项目上下文时,
63
- 使用引导模式。
62
+ 当 `project.md` 为空、占位、过期、不完整,或用户要求整理上下文时,使用引导模式。
64
63
 
65
64
  引导模式必须:
66
65
 
67
66
  - 先只读取批准的引导来源;
68
67
  - 将稳定项目事实总结到 `ai/project/project.md`;
69
- - 当能推断持久架构、命令、约束或决策事实时,更新聚焦的引用文件;
68
+ - 能推断持久架构、命令、约束或决策事实时,更新聚焦引用文件;
70
69
  - 只有在人类同时提供当前任务时,才创建 `ai/project/task.md`,且只起草任务契约;
71
70
  - 将未知事实标记为 `Unknown`,不要猜测;
72
- - 只有答案会改变范围、风险、权限或验收时,最多问 3 个问题;
71
+ - 只有答案会改变范围、风险、权限或验收时,才问问题,最多 3 个;
73
72
  - 写完项目上下文草稿后停止;如果已提供当前任务,也可以同时写任务草稿后停止;
74
73
  - 永远不要编辑源码、业务、配置、依赖或生成文件。
75
74
 
@@ -99,12 +98,12 @@ ai/project/task.md = 当前执行契约
99
98
  5. 浅层仓库结构:
100
99
  - 只查看源码、测试、配置和文档目录。
101
100
 
102
- 如果文档和清单缺失或不足,可以有限读取代码进行推断:
101
+ 文档和清单不足时,可有限读取代码推断:
103
102
 
104
103
  - 先检查顶层目录和文件名;
105
104
  - 检查可能的入口目录,例如 `src/`、`app/`、`lib/`、`packages/`、
106
105
  `services/`、`cmd/`、`internal/`、`server/`、`client/`、`test/`、`tests/`;
107
- - 只读取足够识别项目目的、模块边界、命令和约束的路由、模块、配置和测试文件;
106
+ - 只读取足够识别目的、模块边界、命令和约束的路由、模块、配置和测试文件;
108
107
  - 除非人类明确授权,不要读取整个代码库。
109
108
 
110
109
  默认不要读取:
@@ -115,7 +114,7 @@ ai/project/task.md = 当前执行契约
115
114
  - `.env*` 等密钥或环境文件;
116
115
  - 归档或历史目录,除非用户明确引用。
117
116
 
118
- 如果仓库很大,先读取根目录文档和清单文件,再询问是否扩展读取范围。
117
+ 仓库很大时,先读根文档和清单,再询问是否扩展读取范围。
119
118
 
120
119
  ### 引导输出
121
120
 
@@ -157,8 +156,8 @@ ai/project/task.md = 当前执行契约
157
156
 
158
157
  - `ai/project/task.md`
159
158
 
160
- 当项目上下文已确认,但 `ai/project/task.md` 为空、只有占位内容、不完整,
161
- 或人类提供了新的任务目标且引导模式尚未起草任务时,使用任务草稿模式。
159
+ 项目上下文已确认但 `task.md` 为空、占位、不完整,或人类提供新任务且引导尚未起草时,
160
+ 使用任务草稿模式。
162
161
 
163
162
  任务草稿模式应该:
164
163
 
@@ -172,7 +171,7 @@ ai/project/task.md = 当前执行契约
172
171
 
173
172
  ## 上下文整合模式
174
173
 
175
- 上下文整合模式吸收新的权威资料,并修正现有长期上下文。
174
+ 上下文整合模式吸收新权威资料,修正长期上下文。
176
175
 
177
176
  新资料优先放入:
178
177
 
@@ -181,21 +180,20 @@ ai/project/task.md = 当前执行契约
181
180
 
182
181
  已整合资料统一移动到 `ai/project/inbox/processed/`,默认不再作为待吸收资料读取。
183
182
 
184
- 用户可以直接说“整合 ai/project/inbox/ 里的新资料”。使用上下文整合模式时,
185
- 执行 `ai/template/reconcile.md`。
183
+ 用户可直接说“整合 ai/project/inbox/ 里的新资料”。整合时执行 `ai/template/reconcile.md`。
186
184
 
187
185
  上下文整合模式必须:
188
186
 
189
187
  - 读取现有 `ai/project/project.md`、`ai/project/runtime.md` 和 `ai/project/refs/*.md`;
190
188
  - 读取人类指定的新资料;未指定时读取 `ai/project/inbox/*.md`;
191
189
  - 先输出整合计划,不修改文件;
192
- - 等人类确认后,才更新 `ai/project/project.md`、`ai/project/runtime.md` 和 `ai/project/refs/*.md`;
190
+ - 人类确认后,才更新 `ai/project/project.md`、`ai/project/runtime.md` 和 `ai/project/refs/*.md`;
193
191
  - 应用整合后,把本次已处理的 `ai/project/inbox/*.md` 移动到 `ai/project/inbox/processed/`;
194
192
  - 不要默认修改 `task.md`、`result.*`、`metrics.json`、源码、测试、配置或依赖文件;
195
193
  - 不要把新资料整段塞进 refs,而是吸收长期有效、结构化、可复用的事实。
196
194
 
197
- 如果新资料会改变 `final-shape.md`、`module-map.md` 或 `roadmap.md` 的方向性内容,
198
- 上下文整合只能提出 `strategy_update` 建议,不能直接修改这些文件。
195
+ 新资料若改变 `final-shape.md`、`module-map.md` 或 `roadmap.md` 的方向性内容,
196
+ 整合只能建议 `strategy_update`,不能直接修改。
199
197
 
200
198
  ## 策略修订模式
201
199