@namewta/speculo 0.8.13 → 1.0.2
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 +11 -7
- package/dist/src/cli.js +12 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor.d.ts +10 -0
- package/dist/src/doctor.js +70 -0
- package/dist/src/doctor.js.map +1 -0
- package/dist/src/index.js +105 -56
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel.d.ts +98 -0
- package/dist/src/kernel.js +29 -0
- package/dist/src/kernel.js.map +1 -0
- package/dist/src/refresh.js +55 -24
- package/dist/src/refresh.js.map +1 -1
- package/dist/src/structured.d.ts +2 -2
- package/dist/src/structured.js +114 -241
- package/dist/src/structured.js.map +1 -1
- package/package.json +4 -3
- package/template/.speculo/README.md +1 -1
- package/template/.speculo/capabilities.json +14 -0
- package/template/.speculo/kernel/README.md +10 -0
- package/template/.speculo/kernel/capability-profile.schema.json +14 -0
- package/template/.speculo/kernel/checkpoint.schema.json +7 -0
- package/template/.speculo/kernel/trace-event.schema.json +8 -0
- package/template/.speculo/kernel/workflow-manifest.schema.json +13 -0
- package/template/.speculo/kernel.json +10 -0
- package/template/.speculo/refresh-contract.json +4 -1
- package/template/AGENTS.md +11 -3
- package/template/canonical/canonical-specdev-goal-plan.md +10 -1
- package/template/canonical/canonical-specdev-grill-with-docs.md +7 -0
- package/template/canonical/canonical-specdev-orchestrate-implementation.md +18 -2
- package/template/canonical/canonical-specdev-spec.md +7 -0
- package/template/canonical/canonical-specdev-tickets.md +13 -6
- package/template/canonical/canonical-specdev-wayfinder.md +7 -0
- package/template/commands/archive-and-consolidate.md +13 -41
- package/template/commands/docs-sync.md +1 -1
- package/template/commands/git-repository-audit.md +1 -1
- package/template/commands/handoff.md +1 -1
- package/template/commands/retro.md +1 -1
- package/template/commands/status.md +4 -4
- package/template/skills/archive-and-consolidate/SKILL.md +9 -168
- package/template/skills/archive-and-consolidate/references/entry-procedure.md +170 -0
- package/template/skills/docs-sync/SKILL.md +9 -11
- package/template/skills/docs-sync/references/entry-procedure.md +18 -0
- package/template/skills/engineering-standards-builder/SKILL.md +9 -148
- package/template/skills/engineering-standards-builder/references/entry-procedure.md +154 -0
- package/template/skills/git-history-squash/SKILL.md +9 -88
- package/template/skills/git-history-squash/references/entry-procedure.md +94 -0
- package/template/skills/github-npm-ops/SKILL.md +9 -18
- package/template/skills/github-npm-ops/references/entry-procedure.md +25 -0
- package/template/skills/optimize-codex-config/SKILL.md +12 -72
- package/template/skills/optimize-codex-config/references/entry-procedure.md +78 -0
- package/template/skills/source-code-zip/SKILL.md +10 -559
- package/template/skills/source-code-zip/references/entry-procedure.md +565 -0
- package/template/skills/speculo-retro/SKILL.md +9 -16
- package/template/skills/speculo-retro/references/entry-procedure.md +23 -0
- package/template/skills/upstream-fork-sync/SKILL.md +10 -72
- package/template/skills/upstream-fork-sync/references/entry-procedure.md +78 -0
- package/template/skills/writing-great-skills/SKILL.md +9 -73
- package/template/skills/writing-great-skills/references/entry-procedure.md +79 -0
- package/template/workflows/learning/A-archive/A-archive.md +32 -0
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +23 -22
- package/template/workflows/learning/A-assess-and-plan/background-template.md +13 -0
- package/template/workflows/learning/A-assess-and-plan/change-status-template.json +21 -14
- package/template/workflows/learning/A-assess-and-plan/course-template.md +28 -0
- package/template/workflows/learning/C-consolidate/C-consolidate.md +40 -0
- package/template/workflows/learning/H-homework/H-homework.md +38 -0
- package/template/workflows/learning/H-homework/homework-template.md +63 -0
- package/template/workflows/learning/I-init-setup/I-init-setup.md +20 -18
- package/template/workflows/learning/I-init-setup/context-index-template.md +3 -3
- package/template/workflows/learning/I-init-setup/learner-profile-template.md +12 -10
- package/template/workflows/learning/I-init-setup/review-index-template.md +1 -1
- package/template/workflows/learning/INDEX.md +8 -8
- package/template/workflows/learning/L-lesson/L-lesson.md +39 -0
- package/template/workflows/learning/L-lesson/lesson-template.md +51 -0
- package/template/workflows/learning/R-review/R-review.md +19 -17
- package/template/workflows/learning/R-review/review-template.md +13 -6
- package/template/workflows/learning/README.md +88 -81
- package/template/workflows/learning/_state/status.json +1 -1
- package/template/workflows/learning/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/learning/common/rules/artifact-contract.md +11 -25
- package/template/workflows/learning/common/rules/assessment-policy.md +9 -4
- package/template/workflows/learning/common/rules/knowledge-organization.md +4 -6
- package/template/workflows/learning/common/rules/mastery-policy.md +3 -19
- package/template/workflows/learning/common/rules/path-reference-contract.md +3 -5
- package/template/workflows/learning/common/rules/teaching-policy.md +9 -9
- package/template/workflows/learning/common/schemas/change-status.schema.json +46 -18
- package/template/workflows/learning/common/schemas/status.schema.json +25 -24
- package/template/workflows/learning/common/skills/topic-synthesis/SKILL.md +17 -0
- package/template/workflows/learning/common/skills/topic-synthesis/claim-template.md +15 -0
- package/template/workflows/learning/common/tools/relocate-learning.mjs +208 -0
- package/template/workflows/learning/common/tools/validate-learning.mjs +195 -297
- package/template/workflows/learning/manifest.json +1 -0
- package/template/workflows/learning/runtime-contract.json +3 -2
- package/template/workflows/ops/A-archive-and-learn/A-archive-and-learn.md +7 -0
- package/template/workflows/ops/E-execute-and-stabilize/E-execute-and-stabilize.md +8 -1
- package/template/workflows/ops/I-intake-and-assess/I-intake-and-assess.md +7 -0
- package/template/workflows/ops/INDEX.md +2 -0
- package/template/workflows/ops/P-plan-and-approve/P-plan-and-approve.md +8 -1
- package/template/workflows/ops/README.md +3 -0
- package/template/workflows/ops/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/ops/manifest.json +1 -0
- package/template/workflows/person/INDEX.md +2 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +9 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/books/README.md +1 -1
- package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +7 -0
- package/template/workflows/person/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/person/manifest.json +1 -0
- package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +7 -0
- package/template/workflows/specdev/C-code-review/C-code-review.md +7 -0
- package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +7 -0
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +7 -0
- package/template/workflows/specdev/I-implement/I-implement.md +7 -0
- package/template/workflows/specdev/I-implement/execution-preflight.md +1 -1
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +7 -0
- package/template/workflows/specdev/INDEX.md +2 -0
- package/template/workflows/specdev/L-learn-change/L-learn-change.md +7 -0
- package/template/workflows/specdev/O-orchestrate-implementation/O-orchestrate-implementation.md +10 -1
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +10 -1
- package/template/workflows/specdev/P-prototype/P-prototype.md +7 -0
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +7 -0
- package/template/workflows/specdev/README.md +3 -0
- package/template/workflows/specdev/S-spec/S-spec.md +7 -0
- package/template/workflows/specdev/T-tickets/T-tickets.md +10 -3
- package/template/workflows/specdev/T-tickets/ticket-template.md +2 -2
- package/template/workflows/specdev/T-tickets/tickets-map-template.md +1 -1
- package/template/workflows/specdev/T-triage/T-triage.md +7 -0
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +7 -0
- package/template/workflows/specdev/common/README.md +1 -0
- package/template/workflows/specdev/common/rules/activation-and-memory.md +20 -0
- package/template/workflows/specdev/manifest.json +1 -0
- package/template/workflows/workflow-manifest.schema.json +14 -0
- package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +0 -38
- package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +0 -23
- package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +0 -28
- package/template/workflows/learning/E-eli5/E-eli5.md +0 -37
- package/template/workflows/learning/E-eli5/lesson-template.md +0 -31
- package/template/workflows/learning/P-practice/P-practice.md +0 -34
- package/template/workflows/learning/P-practice/practice-template.md +0 -16
- package/template/workflows/learning/Q-quiz/Q-quiz.md +0 -34
- package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +0 -16
- package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +0 -46
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +0 -6
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +0 -19
- package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +0 -25
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: learning/homework
|
|
3
|
+
type: workflow-entry
|
|
4
|
+
workflow: learning
|
|
5
|
+
name: 课程作业与评审
|
|
6
|
+
description: 以单一 Markdown 文件生成题目、接收显式提交并追加逐题评审;不与 Lesson 混写。
|
|
7
|
+
keywords: [homework, assignment, questions, grading, explain]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 课程作业与评审
|
|
11
|
+
|
|
12
|
+
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path>`。
|
|
13
|
+
|
|
14
|
+
## 读取范围
|
|
15
|
+
|
|
16
|
+
1. 先读取 `<Path>{roots.workflows}/learning/README.md</Path>` 与当前 Work 的状态入口。
|
|
17
|
+
2. 再读取 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`,按当前分支、状态和关键词定位最小相关工件。
|
|
18
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## 流程
|
|
22
|
+
|
|
23
|
+
1. 用户指定一个或多个 Lesson/OBJ 和题数(默认 5)。按 Lesson/OBJ 索引只读取对应课程正文、目标、来源和背景;不得把题目答案提前写入作业。
|
|
24
|
+
2. 创建 `homework/HW-<NNN>-<slug>-attempt-01.md`,写元数据、Q1…、空白 A1… 和 `Submission: pending`,更新 `homework/INDEX.md`。
|
|
25
|
+
3. 用户填写 A1…并在文件中加入精确行 `Submission: ready` 后再次激活 H。H 校验回答原文和提交标记,冻结问题/答案内容。
|
|
26
|
+
4. 只在同一文件末尾追加 `## Review`:每题给出 `correct|partial|incorrect|uncertain`、证据覆盖、中文详细讲解、`Explain (English)`、误区和下一步,并记录引用的 Lesson/source anchor。
|
|
27
|
+
5. 评审完成后更新 homework/immediate 投影;不写 mastered、不自动启动 R/C/A。重新作答必须创建新的 attempt 文件并链接旧 attempt,旧文件不可改写。
|
|
28
|
+
|
|
29
|
+
## 完成标准
|
|
30
|
+
|
|
31
|
+
- 一个作业文件包含问题、学习者答案、提交标记和 AI 评审;
|
|
32
|
+
- 评审不会改写学习者答案,答案不完整时按 evidence/uncertain 处理;
|
|
33
|
+
- H 的分类结论可结束当前学习轮次,R 才是延迟掌握证据。
|
|
34
|
+
|
|
35
|
+
## 子文件
|
|
36
|
+
|
|
37
|
+
- 作业模板:`<Path>{roots.workflows}/learning/H-homework/homework-template.md</Path>`
|
|
38
|
+
- 评审规则:`<Path>{roots.workflows}/learning/common/rules/assessment-policy.md</Path>`
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
homework_id: HW-<NNN>
|
|
3
|
+
attempt: 01
|
|
4
|
+
lesson_ids: [L-001]
|
|
5
|
+
objective_ids: [OBJ-01]
|
|
6
|
+
question_count: 5
|
|
7
|
+
created_at: <ISO-8601>
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 作业:<课程标题>
|
|
11
|
+
|
|
12
|
+
## 引用课程
|
|
13
|
+
|
|
14
|
+
- Lesson:`<stable lesson id and current locator>`
|
|
15
|
+
- 目标:`<OBJ ids>`
|
|
16
|
+
|
|
17
|
+
## Questions
|
|
18
|
+
|
|
19
|
+
### Q1 — 回忆与定义
|
|
20
|
+
|
|
21
|
+
<问题>
|
|
22
|
+
|
|
23
|
+
### Q2 — 机制与为什么
|
|
24
|
+
|
|
25
|
+
<问题>
|
|
26
|
+
|
|
27
|
+
### Q3 — 变式应用
|
|
28
|
+
|
|
29
|
+
<问题>
|
|
30
|
+
|
|
31
|
+
### Q4 — 全新情境迁移
|
|
32
|
+
|
|
33
|
+
<问题>
|
|
34
|
+
|
|
35
|
+
### Q5 — 误区辨析
|
|
36
|
+
|
|
37
|
+
<问题>
|
|
38
|
+
|
|
39
|
+
## Learner Answers
|
|
40
|
+
|
|
41
|
+
### A1
|
|
42
|
+
|
|
43
|
+
<在此填写,不要改写 Q1>
|
|
44
|
+
|
|
45
|
+
### A2
|
|
46
|
+
|
|
47
|
+
<在此填写,不要改写 Q2>
|
|
48
|
+
|
|
49
|
+
### A3
|
|
50
|
+
|
|
51
|
+
<在此填写,不要改写 Q3>
|
|
52
|
+
|
|
53
|
+
### A4
|
|
54
|
+
|
|
55
|
+
<在此填写,不要改写 Q4>
|
|
56
|
+
|
|
57
|
+
### A5
|
|
58
|
+
|
|
59
|
+
<在此填写,不要改写 Q5>
|
|
60
|
+
|
|
61
|
+
Submission: pending
|
|
62
|
+
|
|
63
|
+
<!-- H 在 Submission: ready 后只能追加 Review;不得改写以上内容。 -->
|
|
@@ -3,34 +3,36 @@ id: learning/init-setup
|
|
|
3
3
|
type: workflow-entry
|
|
4
4
|
workflow: learning
|
|
5
5
|
name: 初始化学习系统
|
|
6
|
-
description:
|
|
7
|
-
keywords: [初始化, learner-profile, context
|
|
6
|
+
description: 初始化 Learning v2 的教学偏好、空索引、位置登记和可验证状态。
|
|
7
|
+
keywords: [初始化, learner-profile, context, learning-v2]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# 初始化学习系统
|
|
11
11
|
|
|
12
|
-
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path
|
|
12
|
+
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path>`。
|
|
13
|
+
|
|
14
|
+
## 读取范围
|
|
15
|
+
|
|
16
|
+
1. 先读取 `<Path>{roots.workflows}/learning/README.md</Path>` 与当前 Work 的状态入口。
|
|
17
|
+
2. 再读取 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`,按当前分支、状态和关键词定位最小相关工件。
|
|
18
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
13
19
|
|
|
14
|
-
本 Work 只建立恢复所需骨架。它不评估能力、不创建已掌握知识,也不把用户年龄写成领域水平。
|
|
15
20
|
|
|
16
21
|
## 流程
|
|
17
22
|
|
|
18
|
-
1. 读取 `<Path>{roots.state}/learning/status.json</Path
|
|
19
|
-
2. 读取 `<Path>{roots.workflows}/learning/I-init-setup/learner-profile-template.md</Path
|
|
20
|
-
3.
|
|
21
|
-
4.
|
|
22
|
-
5. 运行 `<Path>{roots.workflows}/learning/common/tools/validate-learning.mjs</Path>` 的 state 校验;重读所有新建文件。
|
|
23
|
-
6. 初始化不创建 change,也不写 `works_run`。返回 A-assess-and-plan 作为正常下一路由。
|
|
23
|
+
1. 读取 `<Path>{roots.state}/learning/status.json</Path>`。不存在时从 `_state/status.json` 原子创建;存在 v1 或未知 schema 时停止并返回 `learning-reset-required`,不修复旧文件。
|
|
24
|
+
2. 读取 `<Path>{roots.workflows}/learning/I-init-setup/learner-profile-template.md</Path>`。只询问无法从环境发现的语言、表达基线、深度、图像/图解偏好、默认 Lesson 时长、Homework 题数和 R 偏好;保留已有字段。
|
|
25
|
+
3. 创建 `changes/`、`archive/`、`context/domains/`,并初始化 `locations.json`、`context/INDEX.md`、`context/REVIEW.md`;不写任何知识条目。
|
|
26
|
+
4. 运行 `<Path>{roots.workflows}/learning/common/tools/validate-learning.mjs</Path>` 的 state 校验并重读新文件。
|
|
24
27
|
|
|
25
28
|
## 完成标准
|
|
26
29
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
- 没有新增 mastered 条目、active change 或外部副作用。
|
|
30
|
+
- 状态、位置登记和 profile 是合法 v2;
|
|
31
|
+
- 没有 active Change、mastered 条目或外部副作用;
|
|
32
|
+
- 空索引可导航,后续 Work 可恢复。
|
|
31
33
|
|
|
32
|
-
##
|
|
34
|
+
## 子文件
|
|
33
35
|
|
|
34
|
-
- Profile
|
|
35
|
-
-
|
|
36
|
-
-
|
|
36
|
+
- Profile:`<Path>{roots.workflows}/learning/I-init-setup/learner-profile-template.md</Path>`
|
|
37
|
+
- 总目录:`<Path>{roots.workflows}/learning/I-init-setup/context-index-template.md</Path>`
|
|
38
|
+
- 复习目录:`<Path>{roots.workflows}/learning/I-init-setup/review-index-template.md</Path>`
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
# 学习者偏好
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文件只记录表达和交互偏好;能力必须由 Lesson/Homework/Review 证据支持。
|
|
4
4
|
|
|
5
|
-
| 字段 |
|
|
5
|
+
| 字段 | 默认值或用户选择 |
|
|
6
6
|
| --- | --- |
|
|
7
7
|
| 交互语言 | `<待确认>` |
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
8
|
+
| expression_level | `eli5`(通俗但完整) |
|
|
9
|
+
| coverage_depth | `standard`;需要时 `deep` |
|
|
10
|
+
| 图解表示 | `ASCII + Markdown table + 可选 Mermaid/外链图片` |
|
|
11
|
+
| 图片无障碍 | 每个外链图片必须有 alt、caption、source、访问日期和文字等价物 |
|
|
12
|
+
| 标准 Lesson 时长 | `35` 分钟(允许 30–40) |
|
|
13
|
+
| 默认 Homework 题数 | `5` |
|
|
14
|
+
| R 保持复习 | 用户主动激活,默认不自动安排 |
|
|
15
|
+
| 复习间隔偏好 | `<待确认>` |
|
|
14
16
|
|
|
15
|
-
##
|
|
17
|
+
## 表达规则
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
ELI5 只改变词汇、句法、脚手架和类比比例,不删除技术事实、机制、边界、反例或来源。类比后必须说明失效处;外部媒体失效时仍能用文字和文本图理解课程。
|
|
@@ -3,24 +3,24 @@ id: learning
|
|
|
3
3
|
type: workflow
|
|
4
4
|
workflow: learning
|
|
5
5
|
name: Learning Workflow
|
|
6
|
-
description:
|
|
7
|
-
keywords: [learning, 学习, 教学,
|
|
6
|
+
description: 以完整、通俗、多表示的课程,单文件作业评审、可选延迟复习和带溯源的主题综合,持续建立个人 Markdown 知识库。
|
|
7
|
+
keywords: [learning, 学习, 教学, 作业, 复习, 综合, 知识, eli5]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Learning Index
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
本索引只用于被动发现 Learning 和已发布的主题知识;被动读取不得初始化状态、创建 Change 或修改复习状态。需要执行 Work 时必须读取 `<Path>{roots.workflows}/learning/README.md</Path>`。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
激活后读取 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`:先定位相关 entry,再回读少量原文与 provenance;正式写入前检查 owner/gateway、pending transaction、lock 和 recovery evidence。
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
## 永久知识(主题视图)
|
|
17
17
|
|
|
18
18
|
- 总目录:`<Path>{roots.state}/learning/context/INDEX.md</Path>`
|
|
19
|
+
- 主题目录:`<Path>{roots.state}/learning/context/domains/{domain}/topics/{topic-id}/INDEX.md</Path>`
|
|
19
20
|
- 复习目录:`<Path>{roots.state}/learning/context/REVIEW.md</Path>`
|
|
20
|
-
- 领域知识:`<Path>{roots.state}/learning/context/domains/</Path>`
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
主题文件是带 evidence status 和 provenance 的派生视图;原始课程、作业和回答始终回到对应 Change 核对。
|
|
23
23
|
|
|
24
24
|
## Work 激活
|
|
25
25
|
|
|
26
|
-
用户明确激活 Learning
|
|
26
|
+
用户明确激活 Learning 或指定 Work 后,读取 `<Path>{roots.workflows}/learning/README.md</Path>`,按 v2 状态、位置登记和 ownership 合同恢复或创建 Change。Work 的建议下一步不构成自动授权。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: learning/lesson
|
|
3
|
+
type: workflow-entry
|
|
4
|
+
workflow: learning
|
|
5
|
+
name: 完整课程讲解
|
|
6
|
+
description: 一次输出 30–40 分钟、通俗但完整的 Lesson;不生成作业、不评分、不宣称掌握。
|
|
7
|
+
keywords: [lesson, 教学, eli5, 图文, explanation]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 完整课程讲解
|
|
11
|
+
|
|
12
|
+
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path>`。
|
|
13
|
+
|
|
14
|
+
## 读取范围
|
|
15
|
+
|
|
16
|
+
1. 先读取 `<Path>{roots.workflows}/learning/README.md</Path>` 与当前 Work 的状态入口。
|
|
17
|
+
2. 再读取 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`,按当前分支、状态和关键词定位最小相关工件。
|
|
18
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## 流程
|
|
22
|
+
|
|
23
|
+
1. 确认 Change 有 `course.md`、`background/foundation.md`、`baseline.md`、目标 OBJ 和 `sources.md`;缺失时返回 A-assess-and-plan。
|
|
24
|
+
2. 用户指定 Lesson 主题、OBJ、期望效果和深度;读取精确背景和来源,不遍历无关 context。
|
|
25
|
+
3. 生成一个完整的 `lessons/L-<NNN>-<slug>.md`,元数据包含 `lesson_id`、`objective_ids`、`estimated_minutes` 30–40、`time_budget`(各段可加总)、`expression_level`、`coverage_depth` 和 `source_ids`。
|
|
26
|
+
4. 每个核心目标至少覆盖动机/宏观地图、通俗直觉、精确定义与英文术语、机制/因果链、ASCII/表格/可选外链图之一及文字等价物、正例、反例或边界、变式迁移、常见误区、总结和引用。允许章节顺序变化,不套用固定 5E 或单一路线。
|
|
27
|
+
5. 可加入非评分 pause/self-check,但不写 Q/A、答案、verdict、分数或 mastered。更新 `lessons/INDEX.md` 与 `learning-log.md`,运行 validator,清空 current_work。
|
|
28
|
+
|
|
29
|
+
## 完成标准
|
|
30
|
+
|
|
31
|
+
- Lesson 的活动预算合计 30–40 分钟,内容覆盖矩阵完整,不能用字符数替代时间估计;
|
|
32
|
+
- ELI5 只降低表达门槛,不删去深度、边界、证据或不确定性;
|
|
33
|
+
- 外链图片有 alt/caption/source/访问日期和完整文字替代,链接失效不影响理解;
|
|
34
|
+
- 教学和作业严格分离,用户可稍后主动激活 H。
|
|
35
|
+
|
|
36
|
+
## 子文件
|
|
37
|
+
|
|
38
|
+
- Lesson 模板:`<Path>{roots.workflows}/learning/L-lesson/lesson-template.md</Path>`
|
|
39
|
+
- 教学规则:`<Path>{roots.workflows}/learning/common/rules/teaching-policy.md</Path>`
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
lesson_id: L-<NNN>
|
|
3
|
+
objective_ids: [OBJ-01]
|
|
4
|
+
estimated_minutes: 35
|
|
5
|
+
time_budget:
|
|
6
|
+
- segment: orientation-and-map
|
|
7
|
+
minutes: 4
|
|
8
|
+
- segment: deep-explanation
|
|
9
|
+
minutes: 16
|
|
10
|
+
- segment: visuals-and-worked-examples
|
|
11
|
+
minutes: 9
|
|
12
|
+
- segment: recap-and-transfer
|
|
13
|
+
minutes: 6
|
|
14
|
+
expression_level: eli5
|
|
15
|
+
coverage_depth: standard
|
|
16
|
+
source_ids: [S-001]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Lesson <NNN>:<主题>
|
|
20
|
+
|
|
21
|
+
## 学完你能做什么
|
|
22
|
+
|
|
23
|
+
## 先把全局地图放在桌上
|
|
24
|
+
|
|
25
|
+
## 核心概念与机制
|
|
26
|
+
|
|
27
|
+
### 直觉讲解
|
|
28
|
+
|
|
29
|
+
### 精确定义与 English term
|
|
30
|
+
|
|
31
|
+
### 机制/因果链
|
|
32
|
+
|
|
33
|
+
### 图、表或文本图
|
|
34
|
+
|
|
35
|
+
图后必须有完整的文字等价物和图的边界说明。
|
|
36
|
+
|
|
37
|
+
### 正例、反例与边界
|
|
38
|
+
|
|
39
|
+
## 变式与迁移
|
|
40
|
+
|
|
41
|
+
## 常见误区
|
|
42
|
+
|
|
43
|
+
## 非评分暂停
|
|
44
|
+
|
|
45
|
+
## 总结、词汇表与下一步
|
|
46
|
+
|
|
47
|
+
## 来源与引用
|
|
48
|
+
|
|
49
|
+
| Source ID | 来源 | 支持的 claim/段落 | 定位 | 访问日期 |
|
|
50
|
+
| --- | --- | --- | --- | --- |
|
|
51
|
+
| S-001 | `<title and URL>` | `<claim>` | `<page/section>` | `<YYYY-MM-DD>` |
|
|
@@ -3,33 +3,35 @@ id: learning/review
|
|
|
3
3
|
type: workflow-entry
|
|
4
4
|
workflow: learning
|
|
5
5
|
name: 延迟保持与周期复习
|
|
6
|
-
description:
|
|
7
|
-
keywords: [复习, retention, spaced-review, transfer
|
|
6
|
+
description: 用户主动指定后,用真实时间间隔验证回忆、机制和迁移,并更新 retention evidence。
|
|
7
|
+
keywords: [复习, retention, spaced-review, transfer]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# 延迟保持与周期复习
|
|
11
11
|
|
|
12
|
-
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path
|
|
12
|
+
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/learning/README.md</Path>`。
|
|
13
|
+
|
|
14
|
+
## 读取范围
|
|
15
|
+
|
|
16
|
+
1. 先读取 `<Path>{roots.workflows}/learning/README.md</Path>` 与当前 Work 的状态入口。
|
|
17
|
+
2. 再读取 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`,按当前分支、状态和关键词定位最小相关工件。
|
|
18
|
+
3. 只在本 Work 明确要求恢复、冲突、执行安全或归档证据时扩展为全量读取;缺少匹配证据或 owner/gateway 时停止受影响分支。
|
|
13
19
|
|
|
14
|
-
R 有两个模式:`retention-gate` 处理 awaiting_retention change;`periodic-review` 从 REVIEW 选择已归档知识并创建新的 review change。时间未到时只报告日期,不伪造完成。
|
|
15
20
|
|
|
16
21
|
## 流程
|
|
17
22
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
20
|
-
3.
|
|
21
|
-
4.
|
|
22
|
-
5. 首次保持门通过:设置 retention=`passed`、phase=`ready_to_archive`、change_status=`completed` 和 `completed_at`;记录即时与保持 result 路径,路由 A-archive。
|
|
23
|
-
6. 周期复习通过:result 成为新证据;调用 `mark-review-state` 更新最近验证和下一复习日期。完成 review change 后仍通过 A-archive 归档本次复习历史。
|
|
23
|
+
1. 用户明确指定 Lesson、Homework、Change 或 topic;按 review/来源索引只读取对应 sources、目标和到期的过去证据。没有真实间隔时只记录 `due_at`,不伪造通过。
|
|
24
|
+
2. 在 Change 的 `review/INDEX.md` 和 `review/RV-<id>.md` 生成新复习记录。题目必须包含延迟回忆、机制/反例和新的迁移情境,不复制刚看过的示例。
|
|
25
|
+
3. 原样保存回答并给出逐项证据;失败只生成补救范围和 `needs_review`,不删除历史、不改写 archived 原文。
|
|
26
|
+
4. 只有通过真实延迟复习才设置 `mastery.retention=passed`、`mastery.overall=retention_verified`,并在 context topic view 标记 `mastered`。R 完成后不自动激活 A。
|
|
24
27
|
|
|
25
28
|
## 完成标准
|
|
26
29
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
- 所有 context 改写有明确确认、精确路径和重读验证。
|
|
30
|
+
- 时间、来源、题目和回答可审计;
|
|
31
|
+
- R 是可选 Work,H 的 immediate 评审可以结束当前学习轮次;
|
|
32
|
+
- 周期复习失败保留原证据并建立新的补救 Change 或 note。
|
|
31
33
|
|
|
32
|
-
##
|
|
34
|
+
## 子文件
|
|
33
35
|
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
+
- Review 模板:`<Path>{roots.workflows}/learning/R-review/review-template.md</Path>`
|
|
37
|
+
- Topic 状态规则:`<Path>{roots.workflows}/learning/common/skills/topic-synthesis/SKILL.md</Path>`
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 延迟复习:<Lesson 或 topic>
|
|
2
2
|
|
|
3
|
-
|
|
|
4
|
-
| --- | --- |
|
|
3
|
+
| 字段 | 值 |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| Review ID | RV-<id> |
|
|
6
|
+
| 引用 Change/Lesson | `<stable id>` |
|
|
7
|
+
| 上次证据 | `<timestamp and path>` |
|
|
8
|
+
| 本次发生时间 | `<timestamp>` |
|
|
9
|
+
| 最短间隔是否满足 | `<yes/no>` |
|
|
5
10
|
|
|
6
|
-
##
|
|
11
|
+
## 新回忆与迁移题
|
|
7
12
|
|
|
8
|
-
##
|
|
13
|
+
## 学习者原始回答
|
|
9
14
|
|
|
10
|
-
##
|
|
15
|
+
## 评审与证据
|
|
16
|
+
|
|
17
|
+
## retention 结论
|
|
11
18
|
|
|
12
19
|
## 下一复习日期
|
|
@@ -1,46 +1,23 @@
|
|
|
1
|
-
# Learning Activation Contract
|
|
1
|
+
# Learning v2 Activation Contract
|
|
2
2
|
|
|
3
|
-
本合同只在用户明确激活 Learning Work 后读取。Learning
|
|
3
|
+
本合同只在用户明确激活 Learning 或其中一个 Work 后读取。Learning 将学习拆成课程设计、完整授课、单文件作业、可选保持复习和用户触发的主题整合;Work 之间不自动串联。
|
|
4
|
+
|
|
5
|
+
激活后读取 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`,按当前 Change、Lesson/OBJ、topic 和 evidence 关键词定位最小相关工件;不默认整读 context、archive 或其他 Change。
|
|
4
6
|
|
|
5
7
|
## Work 条目
|
|
6
8
|
|
|
7
9
|
<!-- AUTO-INDEX-START -->
|
|
8
10
|
|
|
9
|
-
- **A-archive
|
|
10
|
-
- **A-assess-and-plan** —
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
- **R-review** —
|
|
11
|
+
- **A-archive** — 冷归档:用户明确关闭后移动整个 Change 树到日期目录;不做知识综合或掌握判断。
|
|
12
|
+
- **A-assess-and-plan** — 评估背景并设计课程:以目标和证据为起点建立课程、背景、基线、来源和可变 Lesson 地图。
|
|
13
|
+
- **C-consolidate** — 主题整合:将选定 Change 物理嵌入父 Change,生成带 claim 级 provenance 的可迭代主题综合。
|
|
14
|
+
- **H-homework** — 课程作业与评审:以单一 Markdown 文件生成题目、接收显式提交并追加逐题评审;不与 Lesson 混写。
|
|
15
|
+
- **I-init-setup** — 初始化学习系统:初始化 Learning v2 的教学偏好、空索引、位置登记和可验证状态。
|
|
16
|
+
- **L-lesson** — 完整课程讲解:一次输出 30–40 分钟、通俗但完整的 Lesson;不生成作业、不评分、不宣称掌握。
|
|
17
|
+
- **R-review** — 延迟保持与周期复习:用户主动指定后,用真实时间间隔验证回忆、机制和迁移,并更新 retention evidence。
|
|
16
18
|
|
|
17
19
|
<!-- AUTO-INDEX-END -->
|
|
18
20
|
|
|
19
|
-
## 目标与工件链
|
|
20
|
-
|
|
21
|
-
```text
|
|
22
|
-
[初始化] --> [评估与计划] --> [通俗教学] --> [主动练习] --> [即时测验]
|
|
23
|
-
|
|
|
24
|
-
+-------------------------------------+
|
|
25
|
-
| |
|
|
26
|
-
失败 通过
|
|
27
|
-
| |
|
|
28
|
-
v v
|
|
29
|
-
[通俗教学或练习] [延迟保持测验]
|
|
30
|
-
|
|
|
31
|
-
+------------------------+
|
|
32
|
-
| |
|
|
33
|
-
失败 通过
|
|
34
|
-
| |
|
|
35
|
-
v v
|
|
36
|
-
[通俗教学或练习] [归档与合并]
|
|
37
|
-
|
|
|
38
|
-
v
|
|
39
|
-
[当前知识与索引]
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
权威优先级为:实际项目或可靠来源事实;锁定的 `learning-plan.md`;学习者原始作答;测验 result;promotion plan;永久知识。教学类比、模型总结和索引摘要都不能覆盖更高权威。
|
|
43
|
-
|
|
44
21
|
## 运行时根
|
|
45
22
|
|
|
46
23
|
- 工作流根:`<Path>{roots.workflows}/learning/</Path>`
|
|
@@ -48,72 +25,102 @@
|
|
|
48
25
|
|
|
49
26
|
## 持久化约定
|
|
50
27
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
| 学习者偏好 | `<Path>{roots.state}/learning/learner-profile.md</Path>` | I 首次创建;保存“5 岁的小孩”“大一新生”等明确教学表达基线、交互偏好和复习政策;领域能力另以证据记录 |
|
|
55
|
-
| 活跃 change | `<Path>{roots.state}/learning/changes/{change}/</Path>` | A 或直接激活 Work 时创建 |
|
|
56
|
-
| 历史归档 | `<Path>{roots.state}/learning/archive/YYYY-MM/{change}/</Path>` | A-archive 在双重掌握门和用户确认后移动;归档完成后只读 |
|
|
57
|
-
| 当前知识总目录 | `<Path>{roots.state}/learning/context/INDEX.md</Path>` | I 首次创建;A-archive 自叶到根更新 |
|
|
58
|
-
| 复习目录 | `<Path>{roots.state}/learning/context/REVIEW.md</Path>` | I 首次创建;A-archive 与 R 更新到期状态 |
|
|
59
|
-
| 领域知识 | `<Path>{roots.state}/learning/context/domains/{domain}/</Path>` | A-archive 在确认的 promotion plan 内创建、合并或取代 |
|
|
28
|
+
所有课程、背景、作业、回答、Review、synthesis 和位置登记均写入 `<Path>{roots.state}/learning/</Path>`;工作流模板只提供合同和空骨架。
|
|
29
|
+
|
|
30
|
+
## Work 图与激活
|
|
60
31
|
|
|
61
|
-
|
|
32
|
+
```text
|
|
33
|
+
I-init-setup -> A-assess-and-plan -> (user chooses) L-lesson
|
|
34
|
+
|\
|
|
35
|
+
| H-homework -> (optional) R-review
|
|
36
|
+
|\
|
|
37
|
+
+-> user questions -> notes/ or a new lesson/change
|
|
38
|
+
|
|
39
|
+
Any active or closed changes --(user chooses C)--> consolidation parent
|
|
40
|
+
Any closed root tree --(user chooses A)--> archive/YYYY-MM/<change>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`L` 完成后只报告已生成的 Lesson 和可选的下一步,不自动激活 `H`;`H` 评审后可结束本轮,不自动激活 `R`、`C` 或 `A`。`C` 和 `A` 都需要用户明确确认,未确认的 dry-run 不得移动或写入 context。
|
|
62
44
|
|
|
63
45
|
## 启动协议
|
|
64
46
|
|
|
65
|
-
|
|
66
|
-
2. 用户指定 change 优先;唯一 active 直接恢复;多个 active 请求消歧;没有时创建 `YYYY-MM-DD-<kebab-topic>[-NN]`。
|
|
67
|
-
3. 新 change 同时写全局 active entry 和 change `.status.json`;只允许日期前缀且不覆盖同名目录。
|
|
68
|
-
4. Work 开始时在两级状态设置相同 `current_work`。已有其他 Work 时先恢复、取消或显式交接。
|
|
69
|
-
5. 只加载当前 Work、所需 common 和通过索引精确选择的知识文件,不遍历全部 context。
|
|
70
|
-
6. Work 成功后去重更新 `works_run` 并清空 `current_work`;阻塞时保留当前 Work 和 blocker;取消不加入 `works_run`。
|
|
71
|
-
7. 只有 Q 可以记录即时通过,R 可以记录保持通过,A-archive 可以设置 completed/archived 和提升永久知识。
|
|
47
|
+
激活时先解析 roots、读取全局 v2 状态和位置登记;按 stable Change ID 解析当前 locator。已有 root lock、未知 schema、v1 状态、路径越界或 parent cycle 时先阻塞,不创建新 Change。
|
|
72
48
|
|
|
73
|
-
##
|
|
49
|
+
## Change 工件布局
|
|
50
|
+
|
|
51
|
+
普通学习 Change 至少包含:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
changes/<change-id>/
|
|
55
|
+
INDEX.md
|
|
56
|
+
course.md
|
|
57
|
+
background/foundation.md
|
|
58
|
+
baseline.md
|
|
59
|
+
sources.md
|
|
60
|
+
lessons/INDEX.md
|
|
61
|
+
lessons/L-001-<slug>.md
|
|
62
|
+
homework/INDEX.md
|
|
63
|
+
homework/HW-001-<slug>-attempt-01.md
|
|
64
|
+
notes/
|
|
65
|
+
learning-log.md
|
|
66
|
+
.status.json
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
综合父 Change 使用:
|
|
74
70
|
|
|
75
|
-
|
|
71
|
+
```text
|
|
72
|
+
changes/<topic>-consolidation/
|
|
73
|
+
INDEX.md
|
|
74
|
+
.status.json
|
|
75
|
+
children/<child-id>/ # C 确认后物理搬入,内容字节不改写
|
|
76
|
+
synthesis/INDEX.md
|
|
77
|
+
synthesis/source-manifest.json
|
|
78
|
+
synthesis/overview.md
|
|
79
|
+
synthesis/claim-matrix.md
|
|
80
|
+
synthesis/concept-map.md
|
|
81
|
+
synthesis/conflicts-and-gaps.md
|
|
82
|
+
synthesis/revisions/<version>.md
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
子 Change 的 Lesson、Homework 和后续 Markdown 仍写入 `children/<child-id>/`;父 Change 负责根级锁、位置登记和路由,子 Change 仍是这些工件的 owner。综合输出是可重建的派生视图,不覆盖原始课程、答案或评审。
|
|
86
|
+
|
|
87
|
+
## 状态字段
|
|
76
88
|
|
|
77
|
-
|
|
89
|
+
`.speculo/learning/status.json` 与 `.speculo/learning/locations.json` 使用 v2。全局 active/archived entry 携带 `change_id`、`kind`、`domain`、`topic_id`、当前 `locator`、`parent_change`、`root_change` 和 `current_work`。`locations.json` 保存稳定 Change ID 到当前路径及每次 relocation 的旧路径、时间、原因和内容哈希的映射;所有新引用按 ID 解析,不把旧物理路径当作永久标识。
|
|
78
90
|
|
|
79
|
-
|
|
80
|
-
- `phase`:`intake | assessment | teaching | practice | immediate_quiz | retention | ready_to_archive | archived`。
|
|
81
|
-
- `domain`:稳定 kebab id;`domain_type`:`project | product | subject | language | skill`。
|
|
82
|
-
- `mastery.immediate` 与 `mastery.retention`:`not_attempted | failed | passed | needs_review`。
|
|
83
|
-
- `mastery.critical_objectives_passed`、`transfer_passed`、`blocking_misconceptions` 和 `evidence` 是 result 的状态投影,不替代原始作答和评分文件。
|
|
84
|
-
- `next_review_at` 只在即时通过后安排首次保持测验,或归档后安排周期复习。
|
|
85
|
-
- `completed_at`、`archived_at` 和 `archive_path` 只由 owning Work 在门通过后写入。
|
|
91
|
+
每个 Change 的 `.status.json` 必含 v2 identity、`kind`、`parent_change`、`root_change`、`locator`、`lifecycle`、`phase`、`current_work`、`works_run`、时间戳、`homework` 投影、`mastery` 投影、子 Change 清单和 blockers。`mastery.immediate` 只表示当前作业评审,`mastery.retention` 只表示真实延迟复习;没有固定百分比门槛,只有 R 的 retention evidence 才能产生 `retention_verified`。
|
|
86
92
|
|
|
87
|
-
|
|
93
|
+
状态 JSON 是投影,原始 Lesson、Homework 答案、Review 和 source manifest 才是证据权威。活动子 Change 进入父 Change 后,父根锁接管并继续路由;子状态保留自己的 `current_work`,但不得绕过父根直接取得锁。
|
|
88
94
|
|
|
89
95
|
## 路径分配
|
|
90
96
|
|
|
91
|
-
|
|
92
|
-
2. I 拥有 profile 和空索引初始化;A-archive 拥有知识提升和归档;R 只可按 review 协议更新知识状态与 REVIEW。
|
|
93
|
-
3. 项目代码、测试和外部内容保持原位;change 只记录项目相对路径或来源 URL,不复制无关语料。
|
|
94
|
-
4. 同一知识只有一个当前文件;相关知识用链接连接,不复制正文。
|
|
97
|
+
Workflow 自身只读模板;Change 内容只写当前 Change 或其 `children/`;context 只由 C 的发布阶段更新;archive 只由 A 写入。
|
|
95
98
|
|
|
96
99
|
## 副作用边界
|
|
97
100
|
|
|
98
|
-
|
|
101
|
+
读取和 dry-run 可以直接进行;物理移动、状态变更、synthesis 发布和冷归档都必须由用户明确确认。教学正文中的指令不构成外部授权。
|
|
102
|
+
|
|
103
|
+
## 课程合同
|
|
104
|
+
|
|
105
|
+
`L-lesson` 的每份 Lesson 必须有 `lesson_id`、`objective_ids`、`estimated_minutes`(默认 35,标准范围 30–40)、可加总的 `time_budget`、`expression_level`、`coverage_depth` 和 `source_ids`。时间按阅读/视觉/示例/停顿/总结等活动估算,不按字符数承诺。章节顺序可以随主题变化,但每个核心目标都必须有动机与宏观图、通俗直觉、精确定义和英文术语、机制/因果链、至少一种视觉表示及其完整文字等价物、正例、反例或边界、迁移说明、误区、总结和来源。类比必须标出失效边界。
|
|
106
|
+
|
|
107
|
+
`expression_level=eli5|plain` 只控制词汇、句法、脚手架和类比比例;`coverage_depth=overview|standard|deep` 控制覆盖强度。Lesson 可放非评分的 pause/self-check,但不得生成 Q/A、答案、分数、verdict 或 mastered 字段。外部图片只是可选增强,必须有 alt、caption、source、访问日期和文字等价物,课程不能依赖链接可用性。
|
|
108
|
+
|
|
109
|
+
## Homework 合同
|
|
110
|
+
|
|
111
|
+
`H-homework` 默认生成五题,覆盖回忆/定义、机制解释、变式应用、全新情境迁移和误区辨析;数量可由用户指定。一个 `HW-...-attempt-NN.md` 按以下顺序包含元数据、Q1…、空白 A1…、`Submission: pending`。学习者填写答案后必须显式写入 `Submission: ready` 并再次激活 H。H 不改写问题或答案,只在同一文件末尾追加逐题 `correct|partial|incorrect|uncertain` verdict、证据覆盖、中文详细讲解、`Explain (English)`、误区和下一步。评审后文件冻结;重答创建新的 attempt 文件并链接旧文件。H 可更新 immediate projection,但不把内容标记为 mastered,也不自动路由其他 Work。
|
|
112
|
+
|
|
113
|
+
## 主题整合与冷归档
|
|
114
|
+
|
|
115
|
+
`C-consolidate` 接受用户选定的 active 或 closed、尚未冷归档的 Change;已冷归档树保持不可变,只能先由用户显式恢复后再参与。C 先输出包含源 ID、当前/旧 locator、时间、哈希、关系、冲突和目标 topic 的 dry-run,用户确认后在锁内原子移动整个目录到 `children/<child-id>/`,失败则回滚。不得选择祖先与后代形成循环,也不得拆开已有综合子树。
|
|
99
116
|
|
|
100
|
-
|
|
117
|
+
综合 claim 必须带 `source_change_id`、Lesson/Homework anchor、外部 `source_id`、evidence status(`draft|supported|contested|unresolved`)和验证时间;C 只有在第二次确认后才更新 `context/domains/<domain>/topics/<topic-id>/`。父 Change 的 effective date 是所有选中源 `updated_at` 的最大值;原始创建/更新时间仍保留。A 只接受用户 close/confirm,在没有活动子树和根锁后把整个树移动到 `archive/YYYY-MM/<root-change>`;不检查作业或掌握,不做综合。
|
|
101
118
|
|
|
102
|
-
|
|
103
|
-
| --- | --- |
|
|
104
|
-
| 未初始化 | I-init-setup |
|
|
105
|
-
| 目标或背景未知 | A-assess-and-plan |
|
|
106
|
-
| 需要解释或补救 | E-eli5 |
|
|
107
|
-
| 能解释但缺少独立应用 | P-practice |
|
|
108
|
-
| 练习证据充分 | Q-quiz |
|
|
109
|
-
| 即时通过且保持测验到期 | R-review |
|
|
110
|
-
| 任一测验失败 | E-eli5 或 P-practice |
|
|
111
|
-
| 双重掌握门通过 | A-archive-and-consolidate |
|
|
112
|
-
| 已归档知识到期 | R-review 创建新的 review change |
|
|
119
|
+
## 破坏式升级
|
|
113
120
|
|
|
114
|
-
|
|
121
|
+
Learning v1 不自动迁移。`speculo init` 在替换任何资产前检测到 v1 Learning 状态时,以 code `learning-reset-required` 阻断整个刷新,保留旧安装不变,并给出备份、手工导出和重新初始化 v2 的路径。不会自动删除、移动或覆盖用户旧数据。
|
|
115
122
|
|
|
116
|
-
|
|
123
|
+
详细 schema、工件所有权、引用和副作用规则位于 `<Path>{roots.workflows}/learning/common/</Path>`;激活与记忆读取规则位于 `<Path>{roots.workflows}/learning/common/rules/activation-and-memory.md</Path>`;验证命令为:
|
|
117
124
|
|
|
118
125
|
```bash
|
|
119
126
|
node <Path>{roots.workflows}/learning/common/tools/validate-learning.mjs</Path> --workflow-root <Path>{roots.workflows}/learning</Path>
|