@namewta/speculo 1.0.11 → 1.0.13
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 +1 -1
- package/package.json +1 -1
- package/template/workflows/learning/G-goal/G-goal.md +13 -8
- package/template/workflows/learning/G-goal/chain-template.md +14 -6
- package/template/workflows/learning/G-goal/goal-plan-template.md +72 -43
- package/template/workflows/learning/G-goal/orchestration-protocol.md +7 -6
- package/template/workflows/learning/G-goal/planning-modes.md +3 -3
- package/template/workflows/learning/G-goal/probe-template.md +28 -9
- package/template/workflows/learning/G-goal/progress-template.md +9 -5
- package/template/workflows/learning/G-goal/references/coverage-bar.md +7 -2
- package/template/workflows/learning/G-goal/references/external-goal-runner.md +13 -6
- package/template/workflows/learning/G-goal/references/lead-orchestration.md +52 -0
- package/template/workflows/learning/G-goal/references/mine-unit.md +49 -0
- package/template/workflows/learning/G-goal/references/split-rules.md +54 -0
- package/template/workflows/learning/G-goal/references/stop-rules.md +8 -3
- package/template/workflows/learning/INDEX.md +1 -1
- package/template/workflows/learning/README.md +5 -5
- package/template/workflows/learning/common/rules/artifact-contract.md +3 -3
- package/template/workflows/learning/common/rules/questioning-policy.md +5 -0
- package/template/workflows/learning/common/rules/teaching-policy.md +1 -1
- package/template/workflows/learning/common/skills/socratic-questioning/SKILL.md +4 -2
- package/template/workflows/learning/common/tools/validate-learning.mjs +213 -4
- package/template/workflows/ops/H-host-manage/H-host-manage.md +3 -0
- package/template/workflows/ops/INDEX.md +1 -1
- package/template/workflows/ops/README.md +1 -1
- package/template/workflows/ops/common/CAPABILITIES.md +2 -2
- package/template/workflows/ops/common/USAGE.md +23 -4
- package/template/workflows/ops/common/examples/register.example.json +1 -1
- package/template/workflows/ops/common/tests/test_ops_bootstrap.mjs +522 -0
- package/template/workflows/ops/common/toolchains/volta-linux.json +35 -0
- package/template/workflows/ops/common/tools/bootstrap-volta.sh +210 -0
- package/template/workflows/ops/common/tools/bootstrap.sh +1 -0
- package/template/workflows/ops/common/tools/opslib/bootstrap.mjs +221 -0
- package/template/workflows/ops/common/tools/opslib/cli.mjs +27 -5
- package/template/workflows/ops/common/tools/opslib/core.mjs +12 -0
- package/template/workflows/ops/common/tools/opslib/host_recipes.mjs +20 -4
- package/template/workflows/ops/common/tools/opslib/transport.mjs +101 -22
- package/template/workflows/ops/common/tools/validate-ops.mjs +1 -0
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ After initialization, the target project gains the following AI agent-callable a
|
|
|
72
72
|
|
|
73
73
|
| Workflow | Work Entries | Description |
|
|
74
74
|
|---|---:|---|
|
|
75
|
-
| **learning** | 9 | Evidence-aware learning for projects, products, subjects, languages, and skills: complete 30–40 minute plain-language lessons, Socratic inquiry lessons, Goal-Plan compilation for later external /goal execution, single-file homework review, optional retention review, and provenance-preserving topic synthesis |
|
|
75
|
+
| **learning** | 9 | Evidence-aware learning for projects, products, subjects, languages, and skills: complete 30–40 minute plain-language lessons, Socratic inquiry lessons, Goal-Plan compilation for later external /goal execution (teach a mine-unit of ≤15 lessons, then fan out miners), single-file homework review, optional retention review, and provenance-preserving topic synthesis |
|
|
76
76
|
| **specdev** | 14 | Local-first specification-driven development: archive, code review, diagnosis, grilling, implementation, setup, learning, goal planning, prototyping, architecture review, specs, tickets, triage, and wayfinding |
|
|
77
77
|
| **ops** | 3 | Host inventory and project deployment: initialize, host manage, and APP/shared-service deploy with dual documentation |
|
|
78
78
|
| **person** | 2 | Persona-methodology and rigorous deliberation workflows (Mao Zedong Cognitive OS; Bidirectional Steelman Deliberation) |
|
package/package.json
CHANGED
|
@@ -3,15 +3,15 @@ id: learning/goal
|
|
|
3
3
|
type: workflow-entry
|
|
4
4
|
workflow: learning
|
|
5
5
|
name: 目标学习(目标模式)
|
|
6
|
-
description: 为选定编程项目编译一份可被外部 /goal 执行的完整 Goal-Plan;计划会话可跟随 A
|
|
7
|
-
keywords: [goal, 目标模式, 目标学习, chain, coverage, mine, plan]
|
|
6
|
+
description: 为选定编程项目编译一份可被外部 /goal 执行的完整 Goal-Plan;计划会话可跟随 A 写出课程地图并按库存切 ≤15 的 mine unit,但不写 Lesson、不向学习者提问、不自动串联 H/R/C。
|
|
7
|
+
keywords: [goal, 目标模式, 目标学习, chain, coverage, mine, plan, mine-unit]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# 目标学习(目标模式)
|
|
11
11
|
|
|
12
12
|
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path>`。
|
|
13
13
|
|
|
14
|
-
G-goal 是计划编译器,不是授课编排器。激活后写出完整 Goal-Plan 并停止。授课、挖掘与验收由用户在 AI CLI 中 `/goal`
|
|
14
|
+
G-goal 是计划编译器,不是授课编排器。激活后写出完整 Goal-Plan 并停止。授课、挖掘与验收由用户在 AI CLI 中 `/goal` 读取该计划执行:按项目规模划出一个不超过 15 节的教学单元 → 先把这个单元的课全部写完 → 再为每一课派 miner。
|
|
15
15
|
|
|
16
16
|
## 读取范围
|
|
17
17
|
|
|
@@ -23,7 +23,7 @@ G-goal 是计划编译器,不是授课编排器。激活后写出完整 Goal-P
|
|
|
23
23
|
|
|
24
24
|
| 用户意图 | 模式 | 谁执行 | 必须按需读取 |
|
|
25
25
|
| --- | --- | --- | --- |
|
|
26
|
-
| 选定项目并生成完整计划(默认) | `plan` | 本 Work | `<Path>{roots.workflows}/learning/G-goal/planning-modes.md</Path>`、`<Path>{roots.workflows}/learning/G-goal/goal-plan-template.md</Path>`、`<Path>{roots.workflows}/learning/A-assess-and-plan/A-assess-and-plan.md</Path>` |
|
|
26
|
+
| 选定项目并生成完整计划(默认) | `plan` | 本 Work | `<Path>{roots.workflows}/learning/G-goal/planning-modes.md</Path>`、`<Path>{roots.workflows}/learning/G-goal/goal-plan-template.md</Path>`、`<Path>{roots.workflows}/learning/A-assess-and-plan/A-assess-and-plan.md</Path>`、`<Path>{roots.workflows}/learning/G-goal/references/mine-unit.md</Path>` |
|
|
27
27
|
| 源码或范围变化,重编译计划 | `replan` | 本 Work | 同上,加 `<Path>{roots.workflows}/learning/G-goal/orchestration-protocol.md</Path>`;旧 `goal-plan.md` 只读归档到 `goal/revisions/` |
|
|
28
28
|
| 按计划写课与挖掘 | `run` / `resume` | 外部 `/goal` | 计划正文 §5 / §8;本 Work 不在激活会话内执行 |
|
|
29
29
|
| 对照矩阵验收 | `verify` | 外部 `/goal`,或以后再激活本 Work 只读验收 | 计划正文 §6 与 `<Path>{roots.workflows}/learning/G-goal/references/stop-rules.md</Path>` |
|
|
@@ -35,9 +35,9 @@ G-goal 是计划编译器,不是授课编排器。激活后写出完整 Goal-P
|
|
|
35
35
|
1. 解析 roots 与 Learning v2 状态。roots 必须来自已打开的 `<Path>{roots.state}/workspace.json</Path>`。若尚无 `status.json` / `locations.json`,先按 `<Path>{roots.workflows}/learning/I-init-setup/I-init-setup.md</Path>` 写入空状态骨架,不创建知识条目。
|
|
36
36
|
2. 范围访谈一次只问一个缺口:项目路径、in-scope 模块/公开 API、out-of-scope、`expression_level`、`coverage_depth`。用户已答过不重复问。
|
|
37
37
|
3. 创建或恢复 `YYYY-MM-DD-<kebab-topic>[-NN]` Change,生成 `.status.json`,设置 `phase=planning`、`current_work=learning/goal`。
|
|
38
|
-
4. 读取目标仓库,做编程库存:C4 Context + Container、公开入口、主数据存储、一条主路径与一条失败路径、按模块归组的范围内函数。琐碎 helper、生成代码、测试夹具标 `covered-by-parent` 或 `deferred`,不为它们开课。
|
|
38
|
+
4. 读取目标仓库,做编程库存:C4 Context + Container、公开入口、主数据存储、一条主路径与一条失败路径、按模块归组的范围内函数。琐碎 helper、生成代码、测试夹具标 `covered-by-parent` 或 `deferred`,不为它们开课。Lead 可派只读库存员。
|
|
39
39
|
5. 若本 Change 尚无可用 `course.md`,跟随 `<Path>{roots.workflows}/learning/A-assess-and-plan/A-assess-and-plan.md</Path>` 写出 `course.md`、`background/foundation.md`、`baseline.md`、`sources.md` 和 Change `INDEX.md`。这些文件仍归 A 所有;本 Work 只在编译计划时走 A 合同。已有课程地图则核对,不默默重写。
|
|
40
|
-
6.
|
|
40
|
+
6. 按模板写出完整计划,禁止留下「待调研」章节,禁止预写探针题目或深化讲义;按库存把课装进 mine unit(每个 ≤15 节,写入 `chain.md` Units 表):
|
|
41
41
|
- `<Path>{roots.state}/learning/changes/{change}/goal/goal-plan.md</Path>`
|
|
42
42
|
- `<Path>{roots.state}/learning/changes/{change}/goal/chain.md</Path>`
|
|
43
43
|
- `<Path>{roots.state}/learning/changes/{change}/goal/coverage-matrix.md</Path>`
|
|
@@ -48,10 +48,12 @@ G-goal 是计划编译器,不是授课编排器。激活后写出完整 Goal-P
|
|
|
48
48
|
|
|
49
49
|
## 完成标准
|
|
50
50
|
|
|
51
|
-
- `goal/goal-plan.md` 按模板填实 Outcome、范围、四轴合同、Chain、Wave、派单菜谱、授权矩阵、DoD、HARD NO、Resume 和最小读取清单;
|
|
51
|
+
- `goal/goal-plan.md` 按模板填实 Outcome、范围、四轴合同、Chain、Wave、mine unit、派单菜谱、授权矩阵、DoD、HARD NO、Resume 和最小读取清单;
|
|
52
52
|
- `course.md` 有可观察 OBJ;`chain.md` 与矩阵使用库存得到的真实模块名,不是占位符;
|
|
53
|
+
- `chain.md` 有 mine unit 列表,每个 unit ≤15(`mine_unit_cap`);小项目允许远小于 15;不得为凑满 15 而灌水开课;
|
|
54
|
+
- 计划不得预写探针题目或深化讲义;
|
|
53
55
|
- 计划会话结束时 `lessons/` 仍无讲义正文(只允许空 INDEX);
|
|
54
|
-
- 粘贴块含 Outcome、verification surface、constraints、boundaries、iteration policy、blocked-stop;
|
|
56
|
+
- 粘贴块含 Outcome、verification surface、constraints、boundaries、iteration policy(teach-then-mine、10 问上限、`split-lesson`、Lead 扇出、unit ≤15)、blocked-stop;
|
|
55
57
|
- 文档中的「允许」不构成 `/goal` 之外的额外授权;
|
|
56
58
|
- 不复活 `Q-quiz`,不把 mine 写成学习者问答课。
|
|
57
59
|
|
|
@@ -64,6 +66,9 @@ G-goal 是计划编译器,不是授课编排器。激活后写出完整 Goal-P
|
|
|
64
66
|
- 进度模板:`<Path>{roots.workflows}/learning/G-goal/progress-template.md</Path>`
|
|
65
67
|
- 模式:`<Path>{roots.workflows}/learning/G-goal/planning-modes.md</Path>`
|
|
66
68
|
- 编排:`<Path>{roots.workflows}/learning/G-goal/orchestration-protocol.md</Path>`
|
|
69
|
+
- Lead 编排:`<Path>{roots.workflows}/learning/G-goal/references/lead-orchestration.md</Path>`
|
|
70
|
+
- 挖掘单元:`<Path>{roots.workflows}/learning/G-goal/references/mine-unit.md</Path>`
|
|
71
|
+
- 拆课规则:`<Path>{roots.workflows}/learning/G-goal/references/split-rules.md</Path>`
|
|
67
72
|
- 覆盖尺:`<Path>{roots.workflows}/learning/G-goal/references/coverage-bar.md</Path>`
|
|
68
73
|
- 停止规则:`<Path>{roots.workflows}/learning/G-goal/references/stop-rules.md</Path>`
|
|
69
74
|
- 外部执行器:`<Path>{roots.workflows}/learning/G-goal/references/external-goal-runner.md</Path>`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Chain: <主题>
|
|
2
2
|
|
|
3
|
-
本文件是 Goal 的课程序列投影,不是 C-consolidate,不搬迁 Change。权威 OBJ 仍在 `course.md`。
|
|
3
|
+
本文件是 Goal 的课程序列投影,不是 C-consolidate,不搬迁 Change。权威 OBJ 仍在 `course.md`。mine unit 切分写在本文件 Units 表,不要另造权威文件。
|
|
4
4
|
|
|
5
5
|
## DAG
|
|
6
6
|
|
|
@@ -14,13 +14,21 @@ L-001 → L-002
|
|
|
14
14
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
15
15
|
| L-001 | <系统地图> | OBJ-01 | C:context, D:happy-path | — | 35 | `lessons/L-001-<slug>.md` | planned |
|
|
16
16
|
|
|
17
|
-
状态:`planned` | `writing` | `written` | `mined` | `revised` | `deferred`。
|
|
17
|
+
状态:`planned` | `writing` | `written` | `mined` | `split_proposed` | `split` | `revised` | `deferred`。
|
|
18
|
+
|
|
19
|
+
## Units
|
|
20
|
+
|
|
21
|
+
| unit_id | Lessons | 上限 | 状态 |
|
|
22
|
+
| --- | --- | --- | --- |
|
|
23
|
+
| U1 | L-001 | ≤15 | planned |
|
|
24
|
+
|
|
25
|
+
任何 unit 课数不得超过 15。15 是上界,不是配额。小项目允许远小于 15。一课不得同时属于两个 unit。前置课尚未 `written` / `mined` / `revised` 的课,不得提前塞进当前单元。
|
|
18
26
|
|
|
19
27
|
## Waves
|
|
20
28
|
|
|
21
|
-
| Wave | 焦点 | Lessons |
|
|
29
|
+
| Wave | 焦点 | Lessons | 分组尺 | Gate |
|
|
22
30
|
| --- | --- | --- | --- | --- |
|
|
23
|
-
| 1 | C4 Context + Container + 主数据流 | L-001 |
|
|
24
|
-
| 2 | 范围内公开 API 与方法性状 | |
|
|
31
|
+
| 1 | C4 Context + Container + 主数据流 | L-001 | 架构与数据流 | G1/G2/G3 |
|
|
32
|
+
| 2 | 范围内公开 API 与方法性状 | | 公开 API | G1/G2/G3 |
|
|
25
33
|
|
|
26
|
-
|
|
34
|
+
Wave 是覆盖尺上的内容分组,不是挖掘门,也不是并发授权。不改变任何覆盖格子的节点不要写入本表。
|
|
@@ -7,10 +7,13 @@ project_path: <path-to-source-repo>
|
|
|
7
7
|
status: draft
|
|
8
8
|
modes: [plan]
|
|
9
9
|
orchestration: external-goal
|
|
10
|
+
run_orchestration: lead-directed
|
|
10
11
|
coverage_domain: programming
|
|
11
12
|
expression_level: plain
|
|
12
13
|
coverage_depth: standard
|
|
13
|
-
|
|
14
|
+
mine_unit: project
|
|
15
|
+
mine_unit_cap: 15
|
|
16
|
+
learning_agent_limit: 4
|
|
14
17
|
max_waves: 2
|
|
15
18
|
ready_for_execution: false
|
|
16
19
|
---
|
|
@@ -44,20 +47,21 @@ ready_for_execution: false
|
|
|
44
47
|
Outcome:
|
|
45
48
|
范围内覆盖矩阵格子全部变为 covered | deferred(reason) | covered-by-parent;
|
|
46
49
|
每个 chain 节点有一份 L 合同 Lesson;
|
|
47
|
-
|
|
50
|
+
每节新课或改写课至多两份 goal/probes/GP-*-b0N.md(每课 ≤10 问);
|
|
48
51
|
写好 goal/verify.md。
|
|
49
52
|
|
|
50
53
|
Verification surface:
|
|
51
54
|
goal/coverage-matrix.md 状态列;
|
|
52
55
|
lessons/L-*.md 存在且满足 L-lesson 合同;
|
|
53
|
-
goal/probes/GP-*.md 关闭态且至少改变过一个矩阵格子,或显式 defer;
|
|
56
|
+
goal/probes/GP-*.md 关闭态且至少改变过一个矩阵格子,或显式 defer / split-proposal;
|
|
54
57
|
goal/verify.md 对照 stop-rules 逐条勾选。
|
|
55
58
|
|
|
56
59
|
Constraints:
|
|
57
60
|
roots 只来自已打开的 workspace.json;
|
|
58
61
|
只写当前 Change 的 lessons/ 与 goal/;
|
|
59
62
|
派单跟随 L-lesson 与 socratic-questioning audience=mine;
|
|
60
|
-
|
|
63
|
+
不发明库存里没有的函数;
|
|
64
|
+
mine unit ≤15;每课最多 10 问。
|
|
61
65
|
|
|
62
66
|
Boundaries:
|
|
63
67
|
不写 inquiry/、homework/、review/、synthesis/、archive/;
|
|
@@ -67,12 +71,17 @@ Boundaries:
|
|
|
67
71
|
不自动激活 H/R/C/A-archive。
|
|
68
72
|
|
|
69
73
|
Iteration policy:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
先按 goal/chain.md 的当前 mine unit 写完该单元全部 L(阶段 T),再按课扇出 mine(阶段 M);
|
|
75
|
+
禁止 L → mine → L → mine 交错;
|
|
76
|
+
并行只发生在写集不相交的子代理之间;矩阵、chain、progress、verify、lessons/INDEX 只有 Lead 可写;
|
|
77
|
+
处置:re-dispatch-L | split-lesson | defer(reason);
|
|
78
|
+
mine-more 只允许在该课尚未满 10 问、且 batch-01 已证明存在真实矩阵缺口时,用来打开 b02;
|
|
79
|
+
满 10 问后 mine-more 非法;
|
|
80
|
+
当前 mine unit 课数不得超过 15。超过则停止,回到 G-goal replan 重新切单元。
|
|
73
81
|
|
|
74
82
|
Blocked-stop:
|
|
75
|
-
|
|
83
|
+
本单元矩阵无变化;出现第 11 问;交错 L/mine;miner 写入 lessons/ 或 matrix;
|
|
84
|
+
同一 unit 规划超过 15 节;用户暂停;
|
|
76
85
|
缺源码 / 缺 baseline / 目标无法核对;所有权冲突或路径越界。
|
|
77
86
|
```
|
|
78
87
|
|
|
@@ -105,6 +114,7 @@ Blocked-stop:
|
|
|
105
114
|
- 不复活 `Q-quiz`
|
|
106
115
|
- 不使用 `Q-question` 的 `inquiry/` Response 协议
|
|
107
116
|
- 不为琐碎 helper、生成代码、测试夹具单独开课
|
|
117
|
+
- 不在本计划里预写探针题目或深化讲义
|
|
108
118
|
|
|
109
119
|
### Authoritative Inputs
|
|
110
120
|
|
|
@@ -113,7 +123,7 @@ Blocked-stop:
|
|
|
113
123
|
| 1 | 用户当场决定 | 覆盖范围、暂停、defer |
|
|
114
124
|
| 2 | `course.md` OBJ | 权威学习目标;本文件不改写 OBJ |
|
|
115
125
|
| 3 | `goal/coverage-matrix.md` | 格子状态是覆盖权威 |
|
|
116
|
-
| 4 | `goal/chain.md` |
|
|
126
|
+
| 4 | `goal/chain.md` | 课程序列投影与 mine unit 切分 |
|
|
117
127
|
| 5 | 本计划派单菜谱 | `/goal` 只按 §5 / §7 行动 |
|
|
118
128
|
| 6 | 源码事实 | 库存与证据;不得发明符号 |
|
|
119
129
|
|
|
@@ -173,28 +183,32 @@ Extended Abstract 不是完成条件。
|
|
|
173
183
|
|
|
174
184
|
---
|
|
175
185
|
|
|
176
|
-
## §4 Chain and
|
|
186
|
+
## §4 Chain, Waves, and Mine Units
|
|
177
187
|
|
|
178
|
-
|
|
188
|
+
权威序列与 mine unit 切分在 `goal/chain.md`。本计划只记录覆盖波与挖掘单元门。Wave 是内容分组,不是挖掘门,也不是并发授权。
|
|
179
189
|
|
|
180
|
-
| Wave | 焦点 | Lessons |
|
|
190
|
+
| Wave | 焦点 | Lessons | 分组尺 | Gate |
|
|
181
191
|
| --- | --- | --- | --- | --- |
|
|
182
|
-
| 1 | C4 Context + Container + 主数据流 | |
|
|
183
|
-
| 2 | 范围内公开 API 与方法性状 | |
|
|
192
|
+
| 1 | C4 Context + Container + 主数据流 | | 架构与数据流 | G1/G2/G3 |
|
|
193
|
+
| 2 | 范围内公开 API 与方法性状 | | 公开 API | G1/G2/G3 |
|
|
184
194
|
|
|
185
|
-
|
|
195
|
+
| Mine unit | Lessons | 上限 | 状态 |
|
|
196
|
+
| --- | --- | --- | --- |
|
|
197
|
+
| U1 | | ≤15(上界,不是配额) | planned |
|
|
198
|
+
|
|
199
|
+
默认最多 `max_waves: 2`。`mine_unit: project`,`mine_unit_cap: 15`。小项目允许远小于 15。切分规则读 `<Path>{roots.workflows}/learning/G-goal/references/mine-unit.md</Path>`。
|
|
186
200
|
|
|
187
201
|
---
|
|
188
202
|
|
|
189
203
|
## §5 Dispatch Recipe
|
|
190
204
|
|
|
191
|
-
`/goal` 的 `run` / `resume` 只读本节与 §7 / §8
|
|
205
|
+
`/goal` 的 `run` / `resume` 只读本节与 §7 / §8。计划会话不得执行本节。编排读 `<Path>{roots.workflows}/learning/G-goal/references/lead-orchestration.md</Path>`。拆课读 `<Path>{roots.workflows}/learning/G-goal/references/split-rules.md</Path>`。
|
|
192
206
|
|
|
193
|
-
|
|
207
|
+
运行形状是 **teach-then-mine**,不是一课一挖交错:
|
|
194
208
|
|
|
195
|
-
1.
|
|
196
|
-
2.
|
|
197
|
-
3.
|
|
209
|
+
1. **阶段 T**:按当前 mine unit 为每课派一个 L 子代理。跟随 `<Path>{roots.workflows}/learning/L-lesson/L-lesson.md</Path>` 与 `<Path>{roots.workflows}/learning/common/rules/teaching-policy.md</Path>`,写入各自的 `lessons/L-<NNN>-<slug>.md`。`lessons/INDEX.md` 只有 Lead 可写。本单元全部 planned 节点都有合格 L 合同讲义后,才进入阶段 M。
|
|
210
|
+
2. **阶段 M**:为每课派一个 miner。跟随 `<Path>{roots.workflows}/learning/common/skills/socratic-questioning/SKILL.md</Path>` 且 `audience=mine`,按 `<Path>{roots.workflows}/learning/G-goal/probe-template.md</Path>` 写入 `goal/probes/GP-<lesson>-b01.md`(Q1–Q5);若仍有真实矩阵缺口且预算未满 10,再开 `b02.md`(Q6–Q10)。审问对象是已写成的 Lesson 与源码,不是学习者。miner 不得写 `lessons/` 或 matrix。
|
|
211
|
+
3. **阶段 D**:仅 Lead 根据各课缺口表与 `split-proposal` 处置:`re-dispatch-L` | `split-lesson` | `defer(reason)`。Lead 提交矩阵 / progress。满 10 问后禁止 `mine-more`。
|
|
198
212
|
|
|
199
213
|
禁止:
|
|
200
214
|
|
|
@@ -202,6 +216,10 @@ Extended Abstract 不是完成条件。
|
|
|
202
216
|
- 自动激活 H / R / C / A-archive
|
|
203
217
|
- 把 mine 写成学习者问答课
|
|
204
218
|
- 在计划会话里写 `lessons/` 或 `goal/probes/`
|
|
219
|
+
- 在 Goal-Plan 里预写探针题目或深化讲义
|
|
220
|
+
- 阶段 T 完成前启动 miner
|
|
221
|
+
- `L → mine → L → mine` 交错
|
|
222
|
+
- 同一 `lesson_id` 第 11 问,或 `b03`
|
|
205
223
|
|
|
206
224
|
---
|
|
207
225
|
|
|
@@ -211,26 +229,28 @@ Extended Abstract 不是完成条件。
|
|
|
211
229
|
|
|
212
230
|
| Gate | 含义 | 证据 |
|
|
213
231
|
| --- | --- | --- |
|
|
214
|
-
| G0 | 计划已编译 | `goal/goal-plan.md`、`chain.md`、`coverage-matrix.md`、`progress.md` 存在;`course.md` 有可观察 OBJ |
|
|
215
|
-
|
|
|
216
|
-
|
|
|
232
|
+
| G0 | 计划已编译 | `goal/goal-plan.md`、`chain.md`、`coverage-matrix.md`、`progress.md` 存在;`course.md` 有可观察 OBJ;每个 mine unit ≤15 节 |
|
|
233
|
+
| G1 | 本单元全部 planned 节点已写成合格 L 合同讲义 | `lessons/L-*.md`;progress 显示本 unit 先进入 `written` |
|
|
234
|
+
| G2 | 本单元至少改变一个矩阵格子 | 矩阵 diff + `progress.md` 一行事实 |
|
|
235
|
+
| G3 | 本单元新课或改写课有对应 probe,且每课 Q 数 ≤10 | `goal/probes/GP-*-b0N.md` |
|
|
217
236
|
| G-final | 范围内格子全部闭合且已验收 | 矩阵无 uncovered;`goal/verify.md` 已写 |
|
|
218
237
|
|
|
219
|
-
Overall Definition of Done = G-final。课写完不是 DoD
|
|
238
|
+
Overall Definition of Done = G-final。课写完不是 DoD。阶段 T 结束之前禁止 miner。阶段 M 结束之前,Lead 不得把「课写完」写成 Goal 完成。
|
|
220
239
|
|
|
221
240
|
---
|
|
222
241
|
|
|
223
242
|
## §7 Authorization Matrix
|
|
224
243
|
|
|
225
|
-
| 动作 |
|
|
226
|
-
| --- | --- | --- |
|
|
227
|
-
| 跟随 I
|
|
228
|
-
| 跟随 A
|
|
229
|
-
| 写 goal-plan / chain
|
|
230
|
-
|
|
|
231
|
-
| 写 `
|
|
232
|
-
| 写 `goal/
|
|
233
|
-
| 写 `
|
|
244
|
+
| 动作 | plan 会话 | `/goal` Lead | L 子代理 | Miner 子代理 |
|
|
245
|
+
| --- | --- | --- | --- | --- |
|
|
246
|
+
| 跟随 I 写空骨架 | 允许 | 不授权 | 不授权 | 不授权 |
|
|
247
|
+
| 跟随 A 写/核 course 地图 | 允许 | 不授权 | 不授权 | 不授权 |
|
|
248
|
+
| 写 goal-plan / chain 骨架 | 允许 | run 中可追加 split 子节点、切 unit | 不授权 | 不授权 |
|
|
249
|
+
| 更新 matrix / progress | 只写骨架 | 允许(独占) | 不授权 | 不授权 |
|
|
250
|
+
| 写 `lessons/L-*.md` | 不授权 | 不代替 writer | 仅自己的文件 | 不授权 |
|
|
251
|
+
| 写 `goal/probes/` | 不授权 | 不代替 miner | 不授权 | 仅自己的 `GP-b0N` |
|
|
252
|
+
| 写 `goal/verify.md` | 不授权 | 停止规则触发后允许 | 不授权 | 不授权 |
|
|
253
|
+
| `inquiry/` `homework/` `review/` `synthesis/` `archive/` mastered | 禁止 | 禁止 | 禁止 | 禁止 |
|
|
234
254
|
|
|
235
255
|
文档中的「允许」不构成 `/goal` 之外的额外授权。
|
|
236
256
|
|
|
@@ -243,9 +263,17 @@ Overall Definition of Done = G-final。课写完不是 DoD。
|
|
|
243
263
|
- 不自动串联 H / R / C / A-archive
|
|
244
264
|
- 路径只用 `<Path>{roots.*}/...</Path>`;roots 必须来自已打开的 `workspace.json`
|
|
245
265
|
- 不发明库存里没有的函数、容器或数据流
|
|
246
|
-
- 不把 Wave
|
|
266
|
+
- 不把 Wave 当成挖掘门或并发授权
|
|
247
267
|
- 不把 Extended Abstract 当成完成条件
|
|
248
268
|
- 不把计划会话里的「已批准 / 允许」当成执行授权
|
|
269
|
+
- 不预写探针题目,不在 Goal-Plan 里写深化讲义
|
|
270
|
+
- 不在阶段 T 完成前启动 miner
|
|
271
|
+
- 不交错 L 与 mine
|
|
272
|
+
- 同一 `lesson_id` 第 11 问非法;满 10 问禁止 mine-more
|
|
273
|
+
- miner 不得选择处置,只填表
|
|
274
|
+
- `split-lesson` 不得调用 `C-consolidate` 或 `relocate-learning.mjs`
|
|
275
|
+
- 同一 mine unit 不得超过 15 节;不得把 16+ 节一次扇出
|
|
276
|
+
- 宿主没有 team 时,不得借机退回旧交错循环
|
|
249
277
|
|
|
250
278
|
---
|
|
251
279
|
|
|
@@ -254,17 +282,17 @@ Overall Definition of Done = G-final。课写完不是 DoD。
|
|
|
254
282
|
恢复时只读:
|
|
255
283
|
|
|
256
284
|
1. 本文件 §0、§5、§7、§8
|
|
257
|
-
2. `goal/progress.md`
|
|
285
|
+
2. `goal/progress.md` 当前 `mine_unit` 与阶段
|
|
258
286
|
3. 最近一份 `goal/probes/GP-*.md`
|
|
259
|
-
4. `goal/chain.md`
|
|
287
|
+
4. `goal/chain.md` 的 Units 表与当前 unit 内状态为 `writing` / `written` / `mined` / 下一个 `planned` 的节点
|
|
260
288
|
|
|
261
|
-
从最后一个改变了矩阵格子的检查点继续。仍覆盖有效格子的 Lesson 不删除、不重写。源码或范围变了先回到 G-goal `replan`,不要在 `/goal` 里偷偷扩 scope。
|
|
289
|
+
从最后一个改变了矩阵格子的检查点继续。仍覆盖有效格子的 Lesson 不删除、不重写。源码或范围变了先回到 G-goal `replan`,不要在 `/goal` 里偷偷扩 scope。当前 unit 若尚未全部 `written`,先完成阶段 T,禁止提前 mine。
|
|
262
290
|
|
|
263
291
|
---
|
|
264
292
|
|
|
265
293
|
## §10 Progress
|
|
266
294
|
|
|
267
|
-
只记录可核对事实,权威表在 `goal/progress.md`。不准写主观百分比。
|
|
295
|
+
只记录可核对事实,权威表在 `goal/progress.md`。不准写主观百分比。progress 必须能看出当前 unit 全部 L 先进入 `written`,再进入 `mined`。
|
|
268
296
|
|
|
269
297
|
---
|
|
270
298
|
|
|
@@ -272,10 +300,11 @@ Overall Definition of Done = G-final。课写完不是 DoD。
|
|
|
272
300
|
|
|
273
301
|
1. 已打开的 `<Path>{roots.state}/workspace.json</Path>`
|
|
274
302
|
2. 本计划 §0、§5、§7、§8
|
|
275
|
-
3. `goal/chain.md`
|
|
276
|
-
4. `<Path>{roots.workflows}/learning/
|
|
277
|
-
5.
|
|
278
|
-
6.
|
|
279
|
-
7.
|
|
303
|
+
3. `goal/chain.md` 当前 mine unit
|
|
304
|
+
4. `<Path>{roots.workflows}/learning/G-goal/references/lead-orchestration.md</Path>` 与 mine-unit / split-rules
|
|
305
|
+
5. 阶段 T:`<Path>{roots.workflows}/learning/L-lesson/L-lesson.md</Path>` 与 teaching-policy
|
|
306
|
+
6. 本单元全部 L 写成后:`probe-template.md` + `<Path>{roots.workflows}/learning/common/skills/socratic-questioning/SKILL.md</Path>` 且 `audience=mine`
|
|
307
|
+
7. `goal/coverage-matrix.md` + `<Path>{roots.workflows}/learning/G-goal/references/stop-rules.md</Path>`
|
|
308
|
+
8. 停止规则触发后写 `goal/verify.md`
|
|
280
309
|
|
|
281
310
|
不要整读 archive、其他 Change,或 `inquiry/`。
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
# G-goal 编排协议
|
|
2
2
|
|
|
3
|
-
G-goal 只在 `plan` / `replan` 中编排上游地图。授课与挖掘由外部 `/goal` 按 Goal-Plan
|
|
3
|
+
G-goal 只在 `plan` / `replan` 中编排上游地图。授课与挖掘由外部 `/goal` 按 Goal-Plan 派单。`/goal` 采用 lead-directed:Lead 扇出、写集隔离、mine unit ≤15。细节读 `<Path>{roots.workflows}/learning/G-goal/references/lead-orchestration.md</Path>` 与 `<Path>{roots.workflows}/learning/G-goal/references/mine-unit.md</Path>`。
|
|
4
4
|
|
|
5
5
|
## 计划会话允许跟随的合同
|
|
6
6
|
|
|
7
7
|
- `I-init-setup`:没有状态时写空骨架
|
|
8
8
|
- `A-assess-and-plan`:写出或核对 `course.md`、background、baseline、sources、Change INDEX
|
|
9
|
+
- 可选只读库存员:产出 C4 与函数分组,不写状态
|
|
9
10
|
|
|
10
|
-
不得跟随:`L-lesson`、`Q-question`、`H-homework`、`R-review`、`C-consolidate`、`A-archive
|
|
11
|
+
不得跟随:`L-lesson`、`Q-question`、`H-homework`、`R-review`、`C-consolidate`、`A-archive`。不得写 `lessons/` 或 `goal/probes/`。
|
|
11
12
|
|
|
12
13
|
## `/goal` 会话允许跟随的合同
|
|
13
14
|
|
|
14
|
-
- `L-lesson`:写 `lessons/L-*.md
|
|
15
|
-
- `socratic-questioning` 且 `audience=mine`:写 `goal/probes/GP-*.md
|
|
15
|
+
- `L-lesson`:写 `lessons/L-*.md`(阶段 T,每课一个 writer)
|
|
16
|
+
- `socratic-questioning` 且 `audience=mine`:写 `goal/probes/GP-*.md`(阶段 M,每课一个 miner)
|
|
16
17
|
|
|
17
18
|
不得跟随:`Q-question` 的 `inquiry/` Response 协议、H/R/C/A-archive。
|
|
18
19
|
|
|
19
20
|
## 所有权
|
|
20
21
|
|
|
21
|
-
派单不是改写所有权。A 仍拥有 course 地图,L 仍拥有 lessons,G 拥有 `goal/`,Q 拥有 `inquiry
|
|
22
|
+
派单不是改写所有权。A 仍拥有 course 地图,L 仍拥有 lessons,G 拥有 `goal/`,Q 拥有 `inquiry/`。矩阵、chain、progress、verify、`lessons/INDEX` 只有 Lead 可写。
|
|
22
23
|
|
|
23
24
|
## 并发
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Lead 扇出 + 写集隔离。只有写集不相交才允许并行。同一 mine unit ≤15 节。Wave 不是并发授权,也不是挖掘门。禁止「同一时间只推进一个 chain 节点」的旧交错循环;禁止因为宿主没有 team 就退回 `L → mine → L → mine`。
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
## plan(默认)
|
|
6
6
|
|
|
7
|
-
写出完整 Goal-Plan、Chain、覆盖矩阵和进度骨架,并可跟随 A 合同写 `course.md` / background / baseline / sources
|
|
7
|
+
写出完整 Goal-Plan、Chain、覆盖矩阵和进度骨架,并可跟随 A 合同写 `course.md` / background / baseline / sources。按库存切出 mine unit 列表(每个 ≤15 节,小项目允许远小于 15)。不写 `lessons/`,不写 `goal/probes/`,不提问学习者,不预写探针题目或深化讲义。`ready_for_execution: false`。计划正文不授权执行。
|
|
8
8
|
|
|
9
9
|
## replan
|
|
10
10
|
|
|
11
|
-
源码、范围或用户目标变化时重编译。旧 `goal-plan.md` 移入 `goal/revisions/REV-<NNN>.md` 只读。已写成且仍覆盖有效格子的 Lesson 不删除;失效格子改 `deferred` 或重新入链。
|
|
11
|
+
源码、范围或用户目标变化时重编译。旧 `goal-plan.md` 移入 `goal/revisions/REV-<NNN>.md` 只读。已写成且仍覆盖有效格子的 Lesson 不删除;失效格子改 `deferred` 或重新入链。mine unit 按新库存重切,仍硬顶 15。
|
|
12
12
|
|
|
13
13
|
## run / resume
|
|
14
14
|
|
|
15
|
-
不由本 Work 在激活会话内执行。执行器是用户的外部 `/goal`,合同见 `<Path>{roots.workflows}/learning/G-goal/references/external-goal-runner.md</Path>` 与当前 `goal-plan.md` §5 / §8。
|
|
15
|
+
不由本 Work 在激活会话内执行。执行器是用户的外部 `/goal`,合同见 `<Path>{roots.workflows}/learning/G-goal/references/external-goal-runner.md</Path>` 与当前 `goal-plan.md` §5 / §8。运行形状是四段:P 已由计划会话完成;`/goal` 对每个 mine unit 走 T(写完全部课)→ M(按课提问)→ D(Lead 深化或拆课),再进入下一 unit。按项目切 unit,硬顶 15。
|
|
16
16
|
|
|
17
17
|
## verify
|
|
18
18
|
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
artifact: learning-goal-probe
|
|
3
|
-
probe_id: GP-<
|
|
3
|
+
probe_id: GP-<lesson>-b0N
|
|
4
4
|
lesson_id: L-<NNN>-<slug>
|
|
5
5
|
audience: mine
|
|
6
|
-
|
|
6
|
+
batch: b01
|
|
7
|
+
question_budget_used: 0
|
|
8
|
+
split_depth: 0
|
|
7
9
|
status: open
|
|
8
10
|
---
|
|
9
11
|
|
|
10
|
-
# Probe GP-<
|
|
12
|
+
# Probe GP-<lesson> / b0N
|
|
11
13
|
|
|
12
|
-
审问对象是已写成的 Lesson 与源码,不是学习者。禁止 `inquiry/`、`Response:`、`Submission:`、`verdict`、mastered
|
|
14
|
+
审问对象是已写成的 Lesson 与源码,不是学习者。禁止 `inquiry/`、`Response:`、`Submission:`、`verdict`、mastered。`b01` 承载 Q1–Q5;`b02` 承载 Q6–Q10。禁止 `b03`。miner 不得写 `lessons/`。
|
|
15
|
+
|
|
16
|
+
`question_budget_used` 按 `lesson_id` 累计。`re-dispatch-L` 不重置该课预算。
|
|
13
17
|
|
|
14
18
|
## Q1 澄清
|
|
15
19
|
|
|
@@ -29,15 +33,30 @@ status: open
|
|
|
29
33
|
|
|
30
34
|
## Q5 元问题
|
|
31
35
|
|
|
32
|
-
`mine-more` | `defer` | `re-dispatch-L`,原因:
|
|
36
|
+
`mine-more` | `defer` | `re-dispatch-L` | `split-lesson`,原因:
|
|
37
|
+
|
|
38
|
+
(`b02` 的元问题是 Q10,选项相同。满 10 问后 `mine-more` 非法,只允许 `split-lesson` / `defer` / `re-dispatch-L`。)
|
|
33
39
|
|
|
34
40
|
## 缺口清单
|
|
35
41
|
|
|
36
|
-
| 格子 | 缺口 | 建议补丁 |
|
|
42
|
+
| 格子 | 缺口 | 建议补丁 | 处置建议 |
|
|
43
|
+
| --- | --- | --- | --- |
|
|
44
|
+
| | | | mine-more / defer / re-dispatch-L / split-lesson |
|
|
45
|
+
|
|
46
|
+
Miner 只填表,不选择最终处置。
|
|
47
|
+
|
|
48
|
+
## split-proposal
|
|
49
|
+
|
|
50
|
+
10 问后仍不清,或操作定义触发时填写;否则写 `none`。
|
|
51
|
+
|
|
52
|
+
| 原 lesson_id | 建议新课标题 | 从原课拿走的格子 | 为什么 10 问不够 |
|
|
37
53
|
| --- | --- | --- | --- |
|
|
38
|
-
| | | |
|
|
54
|
+
| | | | |
|
|
55
|
+
|
|
56
|
+
Lead 裁决:新课进当前或下一 mine unit;当前 unit 加进去会超过 15 则开新 unit。不得调用 `C-consolidate` 或 `relocate-learning.mjs`。
|
|
39
57
|
|
|
40
58
|
## 关闭
|
|
41
59
|
|
|
42
|
-
- 状态:`open` | `patched` | `deferred` | `closed`
|
|
43
|
-
-
|
|
60
|
+
- 状态:`open` | `patched` | `deferred` | `split_proposed` | `closed`
|
|
61
|
+
- `question_budget_used`:
|
|
62
|
+
- 是否改变了至少一个矩阵格子,或显式 `defer` / `split-proposal`:
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
# Progress: <主题>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
只记录可核对事实。不准写主观百分比。当前 mine unit 必须全部 L 先进入 `written`,再进入 `mined`。
|
|
4
4
|
|
|
5
|
-
| 时间 | Wave | Gate | 写入文件 | 矩阵变化 | Blocker |
|
|
6
|
-
| --- | --- | --- | --- | --- | --- |
|
|
7
|
-
| | 0 | G0 | goal/goal-plan.md | 骨架已建 | |
|
|
5
|
+
| 时间 | mine_unit | Wave | Gate | 写入文件 | 矩阵变化 | Blocker |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| | U1 | 0 | G0 | goal/goal-plan.md | 骨架已建 | |
|
|
8
8
|
|
|
9
9
|
## 当前
|
|
10
10
|
|
|
11
|
-
-
|
|
11
|
+
- current_mine_unit:
|
|
12
|
+
- current_phase: `T` | `M` | `D` | `idle`
|
|
13
|
+
- 本单元课数:
|
|
14
|
+
- question_budget_used:(按 lesson_id 累计,re-dispatch-L 不重置)
|
|
15
|
+
- active_subagents:
|
|
12
16
|
- 仍 uncovered:
|
|
13
17
|
- 下一 ready 节点:
|
|
14
18
|
- 最近 probe:
|
|
@@ -19,9 +19,14 @@ v1 只实现编程四轴。其他领域可同构为 units / properties / structu
|
|
|
19
19
|
- Extended Abstract 不是完成条件
|
|
20
20
|
- 不改变矩阵格子的 Lesson 或 probe 不要写
|
|
21
21
|
|
|
22
|
-
## Wave
|
|
22
|
+
## Wave(内容分组,不是挖掘门)
|
|
23
23
|
|
|
24
24
|
- Wave 1:Context + Container + 主数据流
|
|
25
25
|
- Wave 2:范围内 Code / 方法性状
|
|
26
|
-
-
|
|
26
|
+
- Wave 只按覆盖轴分组,不决定何时挖,也不是并发授权
|
|
27
27
|
- 默认最多 2 波
|
|
28
|
+
- 3 课的波不必撑到 15;单波若超过 15,只把挖掘切开,不把覆盖波扩成配额
|
|
29
|
+
|
|
30
|
+
## 挖掘扇出
|
|
31
|
+
|
|
32
|
+
挖掘扇出上界是 `mine_unit_cap=15`,不是必须凑满。4 节的小项目按 4 节挖。切分规则读 `<Path>{roots.workflows}/learning/G-goal/references/mine-unit.md</Path>`。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
执行器是用户自己的 AI CLI `/goal`,不是 Learning Work 会话内的自动编排。`plan` 写出的文档不构成执行授权。`ready_for_execution: false` 一直保持到用户把计划交给 `/goal`。计划正文里的「允许」不构成 `/goal` 之外的额外授权。
|
|
8
8
|
|
|
9
|
-
详细操作手册是当前 Change 的 `goal/goal-plan.md`。本文件只固定执行器边界。
|
|
9
|
+
详细操作手册是当前 Change 的 `goal/goal-plan.md`。本文件只固定执行器边界。Lead 编排读 `<Path>{roots.workflows}/learning/G-goal/references/lead-orchestration.md</Path>`。
|
|
10
10
|
|
|
11
11
|
## 启动
|
|
12
12
|
|
|
@@ -17,10 +17,12 @@
|
|
|
17
17
|
|
|
18
18
|
## 允许跟随
|
|
19
19
|
|
|
20
|
-
- `<Path>{roots.workflows}/learning/L-lesson/L-lesson.md</Path>`:写 `lessons/L-*.md
|
|
21
|
-
- `<Path>{roots.workflows}/learning/common/skills/socratic-questioning/SKILL.md</Path>` 且 `audience=mine`:写 `goal/probes/GP-*.md
|
|
20
|
+
- `<Path>{roots.workflows}/learning/L-lesson/L-lesson.md</Path>`:写 `lessons/L-*.md`(阶段 T,每课一个 L 子代理)
|
|
21
|
+
- `<Path>{roots.workflows}/learning/common/skills/socratic-questioning/SKILL.md</Path>` 且 `audience=mine`:写 `goal/probes/GP-*.md`(阶段 M,每课一个 miner)
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
必须加载 socratic-questioning SKILL,路径固定为 `{roots.workflows}/learning/common/skills/socratic-questioning/SKILL.md`。不得另造配方。
|
|
24
|
+
|
|
25
|
+
派单不改所有权。A 仍拥有 course 地图,L 仍拥有 lessons,G 拥有 `goal/`,Q 拥有 `inquiry/`。矩阵、chain、progress、verify、`lessons/INDEX` 只有 Lead 可写。
|
|
24
26
|
|
|
25
27
|
## 禁止
|
|
26
28
|
|
|
@@ -31,12 +33,17 @@
|
|
|
31
33
|
- 把 mine 写成学习者问答课
|
|
32
34
|
- 为不改变矩阵格子的主题另开课
|
|
33
35
|
- 发明库存里不存在的函数、容器或数据流
|
|
36
|
+
- 阶段 T 完成前启动 miner
|
|
37
|
+
- `L → mine → L → mine` 交错
|
|
38
|
+
- 同一 `lesson_id` 第 11 问或 `b03`
|
|
39
|
+
- miner 写入 `lessons/` 或 matrix
|
|
40
|
+
- 同一 mine unit 超过 15 节
|
|
34
41
|
|
|
35
42
|
## 循环
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
当前 mine unit 全部 L(阶段 T)→ 按课 mine(阶段 M)→ Lead 处置(阶段 D)→ 下一 unit。禁止交错。并行只发生在写集不相交的子代理之间。宿主没有 team 时按相同派单包顺序执行,合同不降级。
|
|
38
45
|
|
|
39
|
-
处置只允许:`
|
|
46
|
+
处置只允许:`re-dispatch-L` | `split-lesson` | `defer(reason)`。`mine-more` 只允许在该课尚未满 10 问、且 batch-01 已证明存在真实矩阵缺口时打开 `b02`。满 10 问后 `mine-more` 非法。
|
|
40
47
|
|
|
41
48
|
## 停止
|
|
42
49
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Lead 编排与派单(Learning `/goal`)
|
|
2
|
+
|
|
3
|
+
本文件只在外部 `/goal` 执行 Goal-Plan,或 G-goal `plan` / `replan` 需要派只读库存员 / A 子代理时读取。不引入 SpecDev 的 Ticket / worktree / Evidence 协议。并发单位是「一个 Lesson 文件」或「一份 probe 文件」。
|
|
4
|
+
|
|
5
|
+
抄 SpecDev `P-goal-plan` 的 lead-directed:主会话是唯一 Lead。Learning 不把 Lead 写进 Ticket;Lead 是当前 `/goal`(或 plan)主会话。
|
|
6
|
+
|
|
7
|
+
## 角色与写集
|
|
8
|
+
|
|
9
|
+
| 角色 | 何时出现 | 可以写 | 禁止写 | 必须读取 |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| Lead(`/goal` 主会话,或 plan 主会话) | 始终 | `goal-plan` / `chain` / `matrix` / `progress` / `verify` / `lessons/INDEX` / `learning-log` / `.status.json` | 不得代替 L 写讲义正文,不得代替 miner 编造探针 | 已打开的 `workspace.json`、Goal-Plan §0/§5/§7/§8、`<Path>{roots.workflows}/learning/G-goal/references/stop-rules.md</Path>`、本文件、`<Path>{roots.workflows}/learning/G-goal/references/mine-unit.md</Path>`、`<Path>{roots.workflows}/learning/G-goal/references/split-rules.md</Path>` |
|
|
12
|
+
| 库存员(只读) | plan 可选 | 无 | 任何状态与知识文件 | 目标仓库源码,产出 C4 与函数分组给 Lead |
|
|
13
|
+
| A 子代理 | plan 且尚无 `course.md` | `course.md`、background、baseline、sources、Change INDEX | `goal/`、`lessons/`、`probes/` | `A-assess-and-plan` 合同 |
|
|
14
|
+
| L 子代理 | `/goal` 阶段 T,每课一个 | 仅被分配的 `lessons/L-<NNN>-<slug>.md` | 其他 L 文件、INDEX、`goal/`、`inquiry/` | `L-lesson.md` + teaching-policy + 该课 OBJ 与矩阵行 |
|
|
15
|
+
| Miner 子代理 | `/goal` 阶段 M,每课一个 | 仅 `GP-<lesson>-b01.md` 与(若仍有预算)`b02.md` | `lessons/`、chain、matrix、`inquiry/`、其他课的 probe | 下面这条 skill 路径 + questioning-policy + 该课 Lesson + 源码锚点 + 该课声称覆盖的矩阵行 |
|
|
16
|
+
|
|
17
|
+
Miner 必须加载的 skill 路径(不得另造配方):
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
{roots.workflows}/learning/common/skills/socratic-questioning/SKILL.md
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 派单包最低字段
|
|
24
|
+
|
|
25
|
+
每次派单必须包含:`lesson_id` 或 change 范围、只读路径、唯一可写路径、允许动作、停止条件、返回格式。Miner 包还必须包含该课声称覆盖的矩阵行,以及上述 skill 合同路径。`audience` 固定为 `mine`。
|
|
26
|
+
|
|
27
|
+
L 返回至少:`lesson_id`、写入路径、是否满足 L 合同章节、声称覆盖的格子。Miner 返回至少:`lesson_id`、`probe_id`、`question_budget_used`、缺口表、Q5/Q10 建议(`mine-more` | `defer` | `re-dispatch-L` | `split-lesson`)、可选 `split-proposal`。Miner 只填表,不选择处置。
|
|
28
|
+
|
|
29
|
+
## 并发边界
|
|
30
|
+
|
|
31
|
+
- `learning_agent_limit` 默认 4,硬顶为 `min(本单元课数, 15, 宿主能力)`。Lead 不计入。
|
|
32
|
+
- 只有写集不相交才允许并行。两个 L 子代理不得写同一文件。两个 miner 不得写同一 GP 文件。
|
|
33
|
+
- 跨 mine unit 不得同时写课或同时挖掘。
|
|
34
|
+
- 矩阵、chain、progress、verify、`lessons/INDEX` 只有 Lead 可写。
|
|
35
|
+
- 矩阵冲突只暂停受影响格子;其他课的 T/M 继续。不得抢锁、清空或覆盖他人写集。
|
|
36
|
+
|
|
37
|
+
## 无宿主 team 时的顺序回退
|
|
38
|
+
|
|
39
|
+
宿主没有 subagent / agent team:Lead 按相同派单包顺序执行,合同不变。禁止因为不能并行就退回 `L → mine → L → mine` 交错。阶段 T 结束之前禁止任何 miner 启动。
|
|
40
|
+
|
|
41
|
+
## 计划会话
|
|
42
|
+
|
|
43
|
+
G-goal `plan` / `replan` 允许 Lead 派只读库存员,以及在没有 `course.md` 时派 A 子代理。Lead 自己写 `goal/*` 骨架,并按 mine-unit 规则切单元。计划会话仍然禁止写 `lessons/` 与 `goal/probes/`。
|
|
44
|
+
|
|
45
|
+
## HARD NO
|
|
46
|
+
|
|
47
|
+
- 不在阶段 T 完成前启动 miner
|
|
48
|
+
- 不交错 L 与 mine
|
|
49
|
+
- miner 不得写 `lessons/` 或 matrix
|
|
50
|
+
- miner 不得选择处置
|
|
51
|
+
- 同一 mine unit 不得超过 15 节
|
|
52
|
+
- 宿主没有 team 时,不得借机退回旧交错循环
|