@wnlen/agent-execution-template 0.8.19 → 0.8.21
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.
- package/README.md +19 -2
- package/README.zh-CN.md +14 -0
- package/bin/agent-execution-template.js +220 -27
- package/docs/SPEC.md +55 -12
- package/package.json +1 -1
- package/template/en/ai/README.md +4 -1
- package/template/en/ai/template/VERSION +1 -1
- package/template/en/ai/template/bootstrap.md +4 -1
- package/template/en/ai/template/execution-policy.md +5 -0
- package/template/en/ai/template/prompt.md +12 -9
- package/template/en/ai/template/protocol.md +9 -3
- package/template/en/ai/template/rules/output.md +4 -1
- package/template/zh/ai/README.md +2 -0
- package/template/zh/ai/project/runtime.md +11 -11
- package/template/zh/ai/project/task.md +20 -25
- package/template/zh/ai/template/VERSION +1 -1
- package/template/zh/ai/template/bootstrap.md +24 -28
- package/template/zh/ai/template/execution-policy.md +3 -0
- package/template/zh/ai/template/prompt.md +45 -54
- package/template/zh/ai/template/protocol.md +32 -33
- package/template/zh/ai/template/reconcile.md +21 -28
- package/template/zh/ai/template/rules/core.md +19 -24
- package/template/zh/ai/template/rules/output.md +3 -1
- package/test/selftest.js +144 -7
|
@@ -1,16 +1,20 @@
|
|
|
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
|
+
这里的“项目执行工作区”只指当前仓库内的 `ai/project/**` 现场上下文,不是仓库外
|
|
13
|
+
workspace / session / sandbox 运行时。外部运行时可以进入仓库并读取本协议,但不应
|
|
14
|
+
替代 `task.md`、文件修改规则、验收标准或具体编码上下文。
|
|
15
|
+
|
|
16
|
+
项目现场同时保存任务和方向层。方向层回答“为什么做、往哪里长”,执行层回答
|
|
17
|
+
“这次做什么、如何验收”。
|
|
14
18
|
|
|
15
19
|
```text
|
|
16
20
|
ai/project/refs/final-shape.md = 项目北极星说明书
|
|
@@ -26,15 +30,14 @@ ai/project/task.md = 当前执行契约
|
|
|
26
30
|
```
|
|
27
31
|
|
|
28
32
|
1. 项目发现时,执行 `ai/template/bootstrap.md`;不要总结它。
|
|
29
|
-
2.
|
|
30
|
-
不要只要求人类打开文件检查。
|
|
33
|
+
2. 引导结束用“引导后交接”,在聊天里给可确认摘要和推荐下一步,不只要求人类打开文件。
|
|
31
34
|
3. 任务执行时,执行 `ai/template/prompt.md`;不要总结它。
|
|
32
|
-
4.
|
|
33
|
-
|
|
34
|
-
5.
|
|
35
|
-
|
|
36
|
-
6.
|
|
37
|
-
`
|
|
35
|
+
4. 新权威资料放入 `ai/project/inbox/`,执行 `ai/template/reconcile.md`;不要总结它。
|
|
36
|
+
整合先出计划,确认后更新上下文。
|
|
37
|
+
5. 会改变最终形态、模块边界或路线图的灵感先放入 `ai/project/inbox/ideas/`,
|
|
38
|
+
再用 `strategy_update` 生成提案。
|
|
39
|
+
6. 人类确认提案后,才可用 `apply_strategy_update` 修改 `final-shape.md`、
|
|
40
|
+
`module-map.md` 或 `roadmap.md`。
|
|
38
41
|
7. 如果 `ai/project/task.md` 缺失或不完整,根据当前目标和已确认的项目上下文起草它,
|
|
39
42
|
然后用“任务草稿交接”停止。
|
|
40
43
|
8. 任务确认后,检查就绪度、风险、模型策略、引用、权限和验收。
|
|
@@ -45,12 +48,10 @@ ai/project/task.md = 当前执行契约
|
|
|
45
48
|
|
|
46
49
|
任务执行前必须读取 `ai/template/execution-policy.md`。
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
`
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
停在确认交接。只有 Red 停止等待人类确认,Yellow 只允许当前 L1/L2 内的局部
|
|
53
|
-
低风险修正。
|
|
51
|
+
默认 `auto`:AI 先拆 L1 并判断 Green / Yellow / Red,再选择 `normal` 或
|
|
52
|
+
`bounded_continuous`。L1 < 2 用 `normal`;L1 >= 2 自动启用 `bounded_continuous`。
|
|
53
|
+
L1 必须是可独立验收的垂直切片。只有既有任务 `readiness = ready_to_execute` 才能执行;
|
|
54
|
+
本轮新建或重写任务契约时先停下确认。Red 停止确认,Yellow 只允许当前 L1/L2 内的局部低风险修正。
|
|
54
55
|
|
|
55
56
|
任务树、风险分级、Checkpoint 证据和 `task_tree` 写回规则由
|
|
56
57
|
`ai/template/execution-policy.md` 定义。
|
|
@@ -62,17 +63,16 @@ ai/project/task.md = 当前执行契约
|
|
|
62
63
|
- `ai/project/project.md`
|
|
63
64
|
- `ai/project/refs/*.md`
|
|
64
65
|
|
|
65
|
-
当 `
|
|
66
|
-
使用引导模式。
|
|
66
|
+
当 `project.md` 为空、占位、过期、不完整,或用户要求整理上下文时,使用引导模式。
|
|
67
67
|
|
|
68
68
|
引导模式必须:
|
|
69
69
|
|
|
70
70
|
- 先只读取批准的引导来源;
|
|
71
71
|
- 将稳定项目事实总结到 `ai/project/project.md`;
|
|
72
|
-
-
|
|
72
|
+
- 能推断持久架构、命令、约束或决策事实时,更新聚焦引用文件;
|
|
73
73
|
- 只有在人类同时提供当前任务时,才创建 `ai/project/task.md`,且只起草任务契约;
|
|
74
74
|
- 将未知事实标记为 `Unknown`,不要猜测;
|
|
75
|
-
-
|
|
75
|
+
- 只有答案会改变范围、风险、权限或验收时,才问问题,最多 3 个;
|
|
76
76
|
- 写完项目上下文草稿后停止;如果已提供当前任务,也可以同时写任务草稿后停止;
|
|
77
77
|
- 永远不要编辑源码、业务、配置、依赖或生成文件。
|
|
78
78
|
|
|
@@ -102,12 +102,12 @@ ai/project/task.md = 当前执行契约
|
|
|
102
102
|
5. 浅层仓库结构:
|
|
103
103
|
- 只查看源码、测试、配置和文档目录。
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
文档和清单不足时,可有限读取代码推断:
|
|
106
106
|
|
|
107
107
|
- 先检查顶层目录和文件名;
|
|
108
108
|
- 检查可能的入口目录,例如 `src/`、`app/`、`lib/`、`packages/`、
|
|
109
109
|
`services/`、`cmd/`、`internal/`、`server/`、`client/`、`test/`、`tests/`;
|
|
110
|
-
-
|
|
110
|
+
- 只读取足够识别目的、模块边界、命令和约束的路由、模块、配置和测试文件;
|
|
111
111
|
- 除非人类明确授权,不要读取整个代码库。
|
|
112
112
|
|
|
113
113
|
默认不要读取:
|
|
@@ -118,7 +118,7 @@ ai/project/task.md = 当前执行契约
|
|
|
118
118
|
- `.env*` 等密钥或环境文件;
|
|
119
119
|
- 归档或历史目录,除非用户明确引用。
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
仓库很大时,先读根文档和清单,再询问是否扩展读取范围。
|
|
122
122
|
|
|
123
123
|
### 引导输出
|
|
124
124
|
|
|
@@ -160,8 +160,8 @@ ai/project/task.md = 当前执行契约
|
|
|
160
160
|
|
|
161
161
|
- `ai/project/task.md`
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
项目上下文已确认但 `task.md` 为空、占位、不完整,或人类提供新任务且引导尚未起草时,
|
|
164
|
+
使用任务草稿模式。
|
|
165
165
|
|
|
166
166
|
任务草稿模式应该:
|
|
167
167
|
|
|
@@ -175,7 +175,7 @@ ai/project/task.md = 当前执行契约
|
|
|
175
175
|
|
|
176
176
|
## 上下文整合模式
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
上下文整合模式吸收新权威资料,修正长期上下文。
|
|
179
179
|
|
|
180
180
|
新资料优先放入:
|
|
181
181
|
|
|
@@ -184,21 +184,20 @@ ai/project/task.md = 当前执行契约
|
|
|
184
184
|
|
|
185
185
|
已整合资料统一移动到 `ai/project/inbox/processed/`,默认不再作为待吸收资料读取。
|
|
186
186
|
|
|
187
|
-
|
|
188
|
-
执行 `ai/template/reconcile.md`。
|
|
187
|
+
用户可直接说“整合 ai/project/inbox/ 里的新资料”。整合时执行 `ai/template/reconcile.md`。
|
|
189
188
|
|
|
190
189
|
上下文整合模式必须:
|
|
191
190
|
|
|
192
191
|
- 读取现有 `ai/project/project.md`、`ai/project/runtime.md` 和 `ai/project/refs/*.md`;
|
|
193
192
|
- 读取人类指定的新资料;未指定时读取 `ai/project/inbox/*.md`;
|
|
194
193
|
- 先输出整合计划,不修改文件;
|
|
195
|
-
-
|
|
194
|
+
- 人类确认后,才更新 `ai/project/project.md`、`ai/project/runtime.md` 和 `ai/project/refs/*.md`;
|
|
196
195
|
- 应用整合后,把本次已处理的 `ai/project/inbox/*.md` 移动到 `ai/project/inbox/processed/`;
|
|
197
196
|
- 不要默认修改 `task.md`、`result.*`、`metrics.json`、源码、测试、配置或依赖文件;
|
|
198
197
|
- 不要把新资料整段塞进 refs,而是吸收长期有效、结构化、可复用的事实。
|
|
199
198
|
|
|
200
|
-
|
|
201
|
-
|
|
199
|
+
新资料若改变 `final-shape.md`、`module-map.md` 或 `roadmap.md` 的方向性内容,
|
|
200
|
+
整合只能建议 `strategy_update`,不能直接修改。
|
|
202
201
|
|
|
203
202
|
## 策略修订模式
|
|
204
203
|
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
# AI 上下文整合
|
|
2
2
|
|
|
3
3
|
不要总结这个文件。
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
你正在把新的权威资料吸收到现有 Agent Execution Template 项目上下文中。
|
|
7
|
-
这不是重新引导,也不是全量覆盖。
|
|
4
|
+
按下面流程把新权威资料吸收到现有项目上下文。不是重新引导,也不是全量覆盖。
|
|
8
5
|
|
|
9
6
|
目标:合并新资料中的长期有效事实,修正过期或不准确的旧上下文,保留仍然正确的既有内容。
|
|
10
7
|
|
|
11
8
|
## 适用场景
|
|
12
9
|
|
|
13
|
-
|
|
10
|
+
当出现更完整、更权威的业务、产品、架构或流程资料时,使用本流程。
|
|
14
11
|
|
|
15
12
|
新资料默认放在:
|
|
16
13
|
|
|
@@ -18,10 +15,10 @@
|
|
|
18
15
|
- `ai/project/inbox/raw/*.md`
|
|
19
16
|
- `docs/**`
|
|
20
17
|
|
|
21
|
-
`ai/project/inbox/`
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
`ai/project/inbox/` 是待吸收区。资料确认整合后移到 `ai/project/inbox/processed/`,
|
|
19
|
+
用于追溯并避免重复整合。即使用户说“整合整个 inbox”,也默认只处理
|
|
20
|
+
`ai/project/inbox/*.md` 和 `ai/project/inbox/raw/*.md`;不要递归读取
|
|
21
|
+
`processed/**` 或 `ideas/**`。
|
|
25
22
|
|
|
26
23
|
## 先读
|
|
27
24
|
|
|
@@ -33,13 +30,13 @@
|
|
|
33
30
|
6. 人类指定的新资料;未指定时,只读取 `ai/project/inbox/*.md`
|
|
34
31
|
和 `ai/project/inbox/raw/*.md`
|
|
35
32
|
|
|
36
|
-
不要默认读取 `
|
|
37
|
-
|
|
33
|
+
不要默认读取 `processed/**`、`ideas/**`、`archive/**`、源码、测试、配置或依赖;
|
|
34
|
+
除非人类明确要求用它们核对事实。
|
|
38
35
|
|
|
39
36
|
## 整合原则
|
|
40
37
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
38
|
+
- 不整套覆盖。
|
|
39
|
+
- 保留仍正确的既有上下文。
|
|
43
40
|
- 将新资料拆分进合适位置:
|
|
44
41
|
- 项目身份、用户、稳定约定 -> `ai/project/project.md`
|
|
45
42
|
- 当前仍有效的执行上下文 -> `ai/project/runtime.md`
|
|
@@ -50,10 +47,9 @@
|
|
|
50
47
|
- 命令 -> `ai/project/refs/commands.md`
|
|
51
48
|
- 约束 -> `ai/project/refs/constraints.md`
|
|
52
49
|
- 持久决策 -> `ai/project/refs/decisions.md`
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
- `task.md`、`result.json`、`result.md`、`metrics.json` 通常不参与业务上下文整合,除非人类明确要求吸收其中仍长期有效的事实。
|
|
50
|
+
- `refs/*` 不堆原文;只吸收结构化、长期有效、可复用的内容。
|
|
51
|
+
- 新资料若改变北极星、模块地图或路线图,只建议创建 `strategy_update`,不要直接改方向文件。
|
|
52
|
+
- `task.md`、`result.json`、`result.md`、`metrics.json` 通常不参与整合;除非人类明确要求吸收其中的长期事实。
|
|
57
53
|
|
|
58
54
|
## 两阶段流程
|
|
59
55
|
|
|
@@ -70,13 +66,11 @@
|
|
|
70
66
|
5. 需要人类确认的问题,最多 3 个
|
|
71
67
|
6. 预计会更新的文件
|
|
72
68
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
阶段 1 结束时必须停止,等待人类确认。
|
|
69
|
+
无问题时写“无需额外确认”。阶段 1 结束必须停止,等待确认。
|
|
76
70
|
|
|
77
71
|
### 阶段 2:应用整合
|
|
78
72
|
|
|
79
|
-
|
|
73
|
+
只有人类确认整合计划后才更新文件。
|
|
80
74
|
|
|
81
75
|
允许更新:
|
|
82
76
|
|
|
@@ -97,15 +91,14 @@
|
|
|
97
91
|
- `ai/project/metrics.json`
|
|
98
92
|
- `ai/project/archive/**`
|
|
99
93
|
|
|
100
|
-
|
|
101
|
-
`ai/project/inbox/
|
|
102
|
-
`ai/project/inbox/raw/file.md
|
|
103
|
-
|
|
104
|
-
`ai/project/inbox/ideas/**`;方向灵感应继续走 `strategy_update`。
|
|
94
|
+
整合完成后,把本次已整合的 `ai/project/inbox/*.md` 和 `ai/project/inbox/raw/*.md`
|
|
95
|
+
移到 `ai/project/inbox/processed/`,保留相对路径:`ai/project/inbox/raw/file.md` ->
|
|
96
|
+
`ai/project/inbox/processed/raw/file.md`。文件名冲突时加日期或序号。不要移动 `ideas/**`;
|
|
97
|
+
方向灵感继续走 `strategy_update`。
|
|
105
98
|
|
|
106
99
|
## 最终交接
|
|
107
100
|
|
|
108
|
-
|
|
101
|
+
应用后,最终回复包含:
|
|
109
102
|
|
|
110
103
|
```text
|
|
111
104
|
上下文整合已完成。
|
|
@@ -142,4 +135,4 @@
|
|
|
142
135
|
- 修正:<你要改的地方>
|
|
143
136
|
```
|
|
144
137
|
|
|
145
|
-
|
|
138
|
+
不要让人类自己找变化;文件路径只作追溯。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 就绪门
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
编辑前,确认 `ai/project/task.md` 已清楚定义:
|
|
6
6
|
|
|
7
7
|
- 目标
|
|
8
8
|
- 范围
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
## 引导门
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
若 `ai/project/project.md` 为空、占位、不完整,或用户要求整理上下文,先执行
|
|
22
|
+
`ai/template/bootstrap.md`。
|
|
23
23
|
|
|
24
24
|
引导模式只能写项目上下文文件:
|
|
25
25
|
|
|
@@ -32,14 +32,13 @@
|
|
|
32
32
|
- `ai/project/refs/constraints.md`
|
|
33
33
|
- `ai/project/refs/decisions.md`
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
此时只能起草任务契约,不能进入实现。
|
|
35
|
+
只有人类同时提供当前任务目标时,引导模式才可写 `ai/project/task.md`;只能起草,不实现。
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
引导模式不得编辑源码、测试、配置、依赖、生成文件、运行时、结果或指标文件。
|
|
39
38
|
|
|
40
39
|
写完引导草稿后,使用 `ai/template/bootstrap.md` 中的“引导后交接”停止。
|
|
41
40
|
交接必须在聊天里给出可确认摘要和推荐下一步,不要只让人类打开文件检查。
|
|
42
|
-
|
|
41
|
+
若人类已提供任务目标,可同轮起草 `task.md`,但仍必须停止确认,不能实现。
|
|
43
42
|
|
|
44
43
|
## 引导读取范围
|
|
45
44
|
|
|
@@ -60,9 +59,8 @@
|
|
|
60
59
|
|
|
61
60
|
## 任务草稿门
|
|
62
61
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
并在实现前停止等待人类确认。
|
|
62
|
+
项目上下文已确认但 `task.md` 为空、占位、不完整,或人类提供新任务目标时,
|
|
63
|
+
按已确认上下文起草 `task.md`,实现前停止确认。
|
|
66
64
|
|
|
67
65
|
任务草稿模式只能写:
|
|
68
66
|
|
|
@@ -72,8 +70,8 @@
|
|
|
72
70
|
|
|
73
71
|
## 上下文整合门
|
|
74
72
|
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
用户提供新权威业务、产品、架构或流程资料并希望合并,或说
|
|
74
|
+
“整合 ai/project/inbox/ 里的新资料”时,执行 `ai/template/reconcile.md`。
|
|
77
75
|
不要重新 bootstrap,也不要全量覆盖。
|
|
78
76
|
|
|
79
77
|
新资料优先放在:
|
|
@@ -84,7 +82,7 @@
|
|
|
84
82
|
|
|
85
83
|
已整合资料统一移动到 `ai/project/inbox/processed/`,默认不再触发上下文整合。
|
|
86
84
|
|
|
87
|
-
|
|
85
|
+
上下文整合必须先给计划,等确认后再更新文件。
|
|
88
86
|
|
|
89
87
|
上下文整合默认只能更新:
|
|
90
88
|
|
|
@@ -92,8 +90,7 @@
|
|
|
92
90
|
- `ai/project/runtime.md`
|
|
93
91
|
- `ai/project/refs/*.md`
|
|
94
92
|
|
|
95
|
-
|
|
96
|
-
`strategy_update` 提案,不能在上下文整合中直接修改:
|
|
93
|
+
新资料若改变北极星、模块地图或路线图,只能建议创建 `strategy_update`,不能直接改:
|
|
97
94
|
|
|
98
95
|
- `ai/project/refs/final-shape.md`
|
|
99
96
|
- `ai/project/refs/module-map.md`
|
|
@@ -103,13 +100,12 @@
|
|
|
103
100
|
|
|
104
101
|
## 边界内连续执行门
|
|
105
102
|
|
|
106
|
-
每次执行前,AI 必须读取 `ai/template/execution-policy.md
|
|
107
|
-
|
|
103
|
+
每次执行前,AI 必须读取 `ai/template/execution-policy.md`,先分解任务并判断风险,
|
|
104
|
+
不等用户说“启用连续执行”。
|
|
108
105
|
|
|
109
106
|
硬门禁:
|
|
110
107
|
|
|
111
|
-
- 只有 `
|
|
112
|
-
`task.md` 时必须停在确认交接。
|
|
108
|
+
- 只有 `task.md.readiness = ready_to_execute` 才能执行;本轮新建或重写 `task.md` 时必须停下确认。
|
|
113
109
|
- L1 必须是可独立验收的垂直切片,不是机械步骤清单。
|
|
114
110
|
- `execution_policy.task_tree` 必须记录 L1 清单和执行状态。
|
|
115
111
|
- 每个任务节点必须有 Green / Yellow / Red 风险评级。
|
|
@@ -117,8 +113,8 @@
|
|
|
117
113
|
权限、安全、架构方向或验收标准。
|
|
118
114
|
- 每个 Checkpoint 必须包含证据;不接受只有主观判断的 Green。
|
|
119
115
|
- Red 必须停止等待人类确认。
|
|
120
|
-
-
|
|
121
|
-
|
|
116
|
+
- 涉及方向、核心架构、公共 API、持久化数据、安全、支付、账号、权限、大量删除、
|
|
117
|
+
核心重写或高成本取舍时,必须停止。
|
|
122
118
|
- 需要扩大范围、权限、命令、网络或验收时,必须停止。
|
|
123
119
|
- `task_tree` 写回应集中在 L1 开始/完成、Red、blocked、范围变化和最终收尾,
|
|
124
120
|
不要为每个微小 L3 操作写回。
|
|
@@ -128,9 +124,8 @@
|
|
|
128
124
|
|
|
129
125
|
## 策略修订门
|
|
130
126
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
`strategy_update`。
|
|
127
|
+
用户要求更新北极星、最终形态、产品宪法、模块地图、路线图或项目方向,或
|
|
128
|
+
`ai/project/inbox/ideas/` 有新灵感时,执行 `strategy_update`。
|
|
134
129
|
|
|
135
130
|
`strategy_update` 只能:
|
|
136
131
|
|