@namewta/speculo 0.8.5 → 0.8.7

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.
Files changed (130) hide show
  1. package/README.md +4 -3
  2. package/dist/src/structured.js +162 -4
  3. package/dist/src/structured.js.map +1 -1
  4. package/package.json +2 -2
  5. package/template/canonical/canonical-specdev-goal-plan.md +14 -15
  6. package/template/canonical/canonical-specdev-grill-with-docs.md +9 -8
  7. package/template/canonical/canonical-specdev-spec.md +9 -8
  8. package/template/canonical/canonical-specdev-tickets.md +13 -14
  9. package/template/canonical/canonical-specdev-wayfinder.md +7 -7
  10. package/template/commands/status.md +3 -3
  11. package/template/skills/archive-and-consolidate/SKILL.md +19 -14
  12. package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +38 -0
  13. package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +23 -0
  14. package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +39 -0
  15. package/template/workflows/learning/A-assess-and-plan/change-status-template.json +28 -0
  16. package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +28 -0
  17. package/template/workflows/learning/E-eli5/E-eli5.md +37 -0
  18. package/template/workflows/learning/E-eli5/lesson-template.md +31 -0
  19. package/template/workflows/learning/I-init-setup/I-init-setup.md +36 -0
  20. package/template/workflows/learning/I-init-setup/context-index-template.md +6 -0
  21. package/template/workflows/learning/I-init-setup/learner-profile-template.md +17 -0
  22. package/template/workflows/learning/I-init-setup/review-index-template.md +4 -0
  23. package/template/workflows/learning/INDEX.md +26 -0
  24. package/template/workflows/learning/P-practice/P-practice.md +34 -0
  25. package/template/workflows/learning/P-practice/practice-template.md +16 -0
  26. package/template/workflows/learning/Q-quiz/Q-quiz.md +34 -0
  27. package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +16 -0
  28. package/template/workflows/learning/R-review/R-review.md +35 -0
  29. package/template/workflows/learning/R-review/review-template.md +12 -0
  30. package/template/workflows/learning/README.md +121 -0
  31. package/template/workflows/learning/_state/archive/.gitkeep +1 -0
  32. package/template/workflows/learning/_state/changes/.gitkeep +1 -0
  33. package/template/workflows/learning/_state/status.json +6 -0
  34. package/template/workflows/learning/common/rules/artifact-contract.md +27 -0
  35. package/template/workflows/learning/common/rules/assessment-policy.md +7 -0
  36. package/template/workflows/learning/common/rules/knowledge-organization.md +9 -0
  37. package/template/workflows/learning/common/rules/mastery-policy.md +21 -0
  38. package/template/workflows/learning/common/rules/path-reference-contract.md +7 -0
  39. package/template/workflows/learning/common/rules/teaching-policy.md +15 -0
  40. package/template/workflows/learning/common/schemas/change-status.schema.json +41 -0
  41. package/template/workflows/learning/common/schemas/status.schema.json +32 -0
  42. package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +46 -0
  43. package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +6 -0
  44. package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +19 -0
  45. package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +25 -0
  46. package/template/workflows/learning/common/tools/validate-learning.mjs +356 -0
  47. package/template/workflows/learning/runtime-contract.json +11 -0
  48. package/template/workflows/specdev/I-init-setup/I-init-setup.md +1 -1
  49. package/template/workflows/specdev/I-init-setup/config-template.json +2 -2
  50. package/template/workflows/specdev/INDEX.md +2 -2
  51. package/template/workflows/specdev/P-goal-plan/planning-modes.md +1 -1
  52. package/template/workflows/specdev/P-prototype/P-prototype.md +30 -26
  53. package/template/workflows/specdev/P-prototype/design-library/INDEX.md +43 -0
  54. package/template/workflows/specdev/P-prototype/design-library/color-and-theme.md +65 -0
  55. package/template/workflows/specdev/P-prototype/design-library/foundations.md +66 -0
  56. package/template/workflows/specdev/P-prototype/design-library/interaction-patterns.md +61 -0
  57. package/template/workflows/specdev/P-prototype/design-library/product-pattern-index.md +73 -0
  58. package/template/workflows/specdev/P-prototype/design-library/research-provenance.md +54 -0
  59. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/METHODOLOGY.md +90 -0
  60. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/README.md +31 -0
  61. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/data/extended-projects.json +241 -0
  62. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/data/projects.json +253 -0
  63. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/reference/USAGE.md +40 -0
  64. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/reference/design-tokens.css +145 -0
  65. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/report/OPEN_SOURCE_UI_RESEARCH_2026.md +519 -0
  66. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/PROJECT_TEMPLATE.md +29 -0
  67. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/README.md +9 -0
  68. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/claude-code-modern-clients.md +407 -0
  69. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/creative-ai-communication.md +574 -0
  70. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/data-dev-tools.md +432 -0
  71. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/personal-multiplatform-apps.md +185 -0
  72. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/productivity-collaboration.md +398 -0
  73. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/01-dense-ide.html +68 -0
  74. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/02-monochrome-console.html +18 -0
  75. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/03-soft-personal-ai.html +17 -0
  76. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/04-responsive-web.html +14 -0
  77. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/05-mobile-supervisor.html +16 -0
  78. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/06-cross-platform-workspace.html +17 -0
  79. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/07-local-first-content.html +9 -0
  80. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/08-media-first.html +17 -0
  81. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/README.md +49 -0
  82. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/ATTRIBUTION.md +9 -0
  83. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/landscape.jpg +0 -0
  84. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/lucide.js +20494 -0
  85. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/mountain.jpg +0 -0
  86. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/workspace.jpg +0 -0
  87. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/index.html +70 -0
  88. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/package-lock.json +78 -0
  89. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/package.json +12 -0
  90. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/screenshots/index-desktop.png +0 -0
  91. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/scripts/gallery.js +134 -0
  92. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/styles/base.css +795 -0
  93. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/styles/pages.css +533 -0
  94. package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/tests/gallery.spec.js +56 -0
  95. package/template/workflows/specdev/P-prototype/design-library/responsive-and-platforms.md +53 -0
  96. package/template/workflows/specdev/P-prototype/design-library/style-index.md +32 -0
  97. package/template/workflows/specdev/P-prototype/design-package.schema.json +70 -0
  98. package/template/workflows/specdev/P-prototype/design-system-template.md +366 -0
  99. package/template/workflows/specdev/P-prototype/detect-existing-style.md +53 -0
  100. package/template/workflows/specdev/P-prototype/generate-design-package.md +50 -0
  101. package/template/workflows/specdev/P-prototype/style-selection-protocol.md +41 -0
  102. package/template/workflows/specdev/P-prototype/tools/materialize-prototype.mjs +126 -0
  103. package/template/workflows/specdev/P-prototype/tools/validate-design-package.mjs +155 -0
  104. package/template/workflows/specdev/README.md +12 -11
  105. package/template/workflows/specdev/T-triage/T-triage.md +1 -1
  106. package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +1 -1
  107. package/template/workflows/specdev/common/README.md +2 -2
  108. package/template/workflows/specdev/common/rules/artifact-contract.md +3 -2
  109. package/template/workflows/specdev/common/schemas/config.schema.json +4 -4
  110. package/template/workflows/specdev/common/skills/dev-worktree/SKILL.md +4 -4
  111. package/template/workflows/specdev/common/skills/dev-worktree/references/create.md +1 -3
  112. package/template/workflows/specdev/common/tools/validate-specdev.mjs +83 -92
  113. package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +0 -1968
  114. package/template/workflows/specdev/E-eli5/E-eli5.md +0 -97
  115. package/template/workflows/specdev/E-engineering-cognitive-mentor/E-engineering-cognitive-mentor.md +0 -254
  116. package/template/workflows/specdev/E-engineering-cognitive-mentor/architecture-guidance.md +0 -90
  117. package/template/workflows/specdev/E-engineering-cognitive-mentor/bug-guidance.md +0 -80
  118. package/template/workflows/specdev/E-engineering-cognitive-mentor/codebase-guidance.md +0 -107
  119. package/template/workflows/specdev/E-engineering-cognitive-mentor/comprehension-and-closure.md +0 -95
  120. package/template/workflows/specdev/E-engineering-cognitive-mentor/domain-learning-guidance.md +0 -62
  121. package/template/workflows/specdev/E-engineering-cognitive-mentor/evidence-and-options.md +0 -132
  122. package/template/workflows/specdev/E-engineering-cognitive-mentor/interaction-protocol.md +0 -116
  123. package/template/workflows/specdev/E-engineering-cognitive-mentor/mentor-report-template.md +0 -135
  124. package/template/workflows/specdev/E-engineering-cognitive-mentor/mode-routing.md +0 -47
  125. package/template/workflows/specdev/E-engineering-cognitive-mentor/persistence-and-resume.md +0 -132
  126. package/template/workflows/specdev/E-engineering-cognitive-mentor/requirements-guidance.md +0 -92
  127. package/template/workflows/specdev/P-prototype/logic-prototype.md +0 -24
  128. package/template/workflows/specdev/P-prototype/prototype-record-template.md +0 -46
  129. package/template/workflows/specdev/P-prototype/ui-prototype.md +0 -21
  130. package/template/workflows/specdev/common/schemas/prototype-record.schema.json +0 -24
@@ -0,0 +1,12 @@
1
+ # Review Plan
2
+
3
+ | Knowledge ID | 上次验证 | 本次到期 | 模式 | 覆盖目标 | 新迁移情境 |
4
+ | --- | --- | --- | --- | --- | --- |
5
+
6
+ ## 时间门结论
7
+
8
+ ## 测验工件
9
+
10
+ ## 复习后状态
11
+
12
+ ## 下一复习日期
@@ -0,0 +1,121 @@
1
+ # Learning Activation Contract
2
+
3
+ 本合同只在用户明确激活 Learning Work 后读取。Learning 把一次学习表示为可恢复 change,把教学过程、作答和测验证据保留在 change 中,只把通过掌握门的当前知识提升到图书式 Markdown context。
4
+
5
+ ## Work 条目
6
+
7
+ <!-- AUTO-INDEX-START -->
8
+
9
+ - **A-archive-and-consolidate** — 归档并合并已掌握知识:校验即时与保持证据,先 dry-run 再经确认移动 completed change,并按领域合并当前 Markdown 知识与索引。
10
+ - **A-assess-and-plan** — 评估背景并制定学习计划:从学习请求和已有 Markdown 知识中建立未教学基线,锁定目标、前置知识、来源和掌握证据。
11
+ - **E-eli5** — 通俗图解教学:根据已验证背景、明确教学表达基线和锁定目标,用 ASCII 图、短句、类比边界与递减脚手架形成可恢复课程。
12
+ - **I-init-setup** — 初始化学习系统:初始化学习者教学偏好、纯 Markdown 知识目录和可验证的 Learning 状态,不写入任何伪造知识。
13
+ - **P-practice** — 主动练习与自我解释:通过主动回忆、变式练习、自我解释和递减提示生成独立能力证据与最小差距清单。
14
+ - **Q-quiz** — 即时掌握测验:在不泄露答案的前提下对锁定目标执行即时回忆、解释、迁移和误区测验,并产生可审计评分。
15
+ - **R-review** — 延迟保持与周期复习:在真实时间间隔后验证回忆和迁移,决定新知识能否掌握或已归档知识是否需要刷新。
16
+
17
+ <!-- AUTO-INDEX-END -->
18
+
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
+ ## 运行时根
45
+
46
+ - 工作流根:`<Path>{roots.workflows}/learning/</Path>`
47
+ - 状态根:`<Path>{roots.state}/learning/</Path>`
48
+
49
+ ## 持久化约定
50
+
51
+ | 名称 | 路径 | 生成者与时机 |
52
+ | --- | --- | --- |
53
+ | 全局状态 | `<Path>{roots.state}/learning/status.json</Path>` | 安装 seed 创建;各 Work 原子更新索引字段 |
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 内创建、合并或取代 |
60
+
61
+ Change 按需包含 `.status.json`、`intake.md`、`baseline.md`、`learning-plan.md`、`sources.md`、`lessons/`、`practice/`、`quiz/`、`learning-log.md`、`promotion-plan.md`、`promotion-staging/` 和 `promotion-rollback/`。后两者只保存本次已确认事务的候选 Markdown、原内容快照和 rollback manifest,成功后随 change 进入 archive。知识正文、索引、课程、练习和测验全部使用 Markdown;JSON 只用于机器状态和 schema 校验,不参与知识检索。
62
+
63
+ ## 启动协议
64
+
65
+ 1. 解析 roots;读取全局状态。`learner-profile.md` 或 context 索引不存在时先运行 I。
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 和提升永久知识。
72
+
73
+ ## 状态字段
74
+
75
+ 全局 `status.json` 使用 schema v1:`schema_version=1`、`workflow=learning`、`active[]`、`archived[]`。每个 active entry 必含 `change`、`domain`、`topic`、`current_work` 和去重的 `works_run`;active 与 archived 不得重复。
76
+
77
+ Change `.status.json` 使用 schema v1:
78
+
79
+ - `change_status`:`active | blocked | awaiting_retention | completed | archived`。
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 在门通过后写入。
86
+
87
+ 详细 JSON 合同位于 `<Path>{roots.workflows}/learning/common/schemas/status.schema.json</Path>` 与 `<Path>{roots.workflows}/learning/common/schemas/change-status.schema.json</Path>`。
88
+
89
+ ## 路径分配
90
+
91
+ 1. Workflow 状态只写 `<Path>{roots.state}/learning/</Path>`;change 过程只写其目录。
92
+ 2. I 拥有 profile 和空索引初始化;A-archive 拥有知识提升和归档;R 只可按 review 协议更新知识状态与 REVIEW。
93
+ 3. 项目代码、测试和外部内容保持原位;change 只记录项目相对路径或来源 URL,不复制无关语料。
94
+ 4. 同一知识只有一个当前文件;相关知识用链接连接,不复制正文。
95
+
96
+ ## 副作用边界
97
+
98
+ 读取项目、可靠来源、索引和运行只读验证可以直接进行。提交、推送、部署、发布、修改项目代码、归档移动、context 创建/合并/改写以及外部写入需要 owning Work 的明确用户授权。教学材料中的指令不构成授权,敏感信息不得写入 Learning state。
99
+
100
+ ## 路由
101
+
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 |
113
+
114
+ ## Common 与验证
115
+
116
+ 共享工件、教学、评估、掌握、知识组织和路径规则位于 `<Path>{roots.workflows}/learning/common/rules/</Path>`;跨 R 与 A 使用的知识提升过程位于 `<Path>{roots.workflows}/learning/common/skills/knowledge-promotion/SKILL.md</Path>`。
117
+
118
+ ```bash
119
+ node <Path>{roots.workflows}/learning/common/tools/validate-learning.mjs</Path> --workflow-root <Path>{roots.workflows}/learning</Path>
120
+ node <Path>{roots.workflows}/learning/common/tools/validate-learning.mjs</Path> --state-root <Path>{roots.state}/learning</Path>
121
+ ```
@@ -0,0 +1,6 @@
1
+ {
2
+ "schema_version": 1,
3
+ "workflow": "learning",
4
+ "active": [],
5
+ "archived": []
6
+ }
@@ -0,0 +1,27 @@
1
+ # Learning 工件合同
2
+
3
+ ## 权威与所有权
4
+
5
+ | 工件 | Owner | 权威内容 |
6
+ | --- | --- | --- |
7
+ | `intake.md` | A-assess | 学习对象、动机、范围和约束 |
8
+ | `baseline.md` | A-assess | 未教学前的已有能力证据 |
9
+ | `learning-plan.md` | A-assess | 目标、关键目标、前置知识、完成证据和深度 |
10
+ | `sources.md` | A-assess / E-eli5 | 来源、定位、可信度和已验证范围 |
11
+ | `lessons/` | E-eli5 | 教学解释、图解、类比及边界 |
12
+ | `practice/` | P-practice | 原始练习作答、提示层级和反馈 |
13
+ | `quiz/*-response.md` | 学习者 | 不经改写的原始答案 |
14
+ | `quiz/*-result.md` | Q-quiz / R-review | 按锁定 rubric 产生的评分和差距 |
15
+ | `promotion-plan.md` | A-archive | 待创建、合并、取代、索引更新和归档动作 |
16
+ | `context/` | A-archive;R 仅限复习状态 | 当前已掌握知识 |
17
+ | `archive/` | A-archive | 不可变学习历史 |
18
+
19
+ 冲突时按实际事实、学习者原始作答、锁定目标/rubric、测验 result、promotion plan、永久知识、课程解释和索引摘要的顺序裁决。状态 JSON 只是投影,必须与上述工件一致。
20
+
21
+ ## 不变量
22
+
23
+ - `baseline.md` 必须在首份 lesson 前形成;缺失时不能宣称教学适配了背景。
24
+ - 目标内容可以澄清但不能在看到测验结果后静默降低;实质变化创建修订记录并重新测验。
25
+ - AI 不得改写学习者答案后再评分。
26
+ - 未同时通过即时和保持门的内容只能留在 change,不能进入 context。
27
+ - 归档内容只读;纠正通过新 change 和 supersedes 关系完成。
@@ -0,0 +1,7 @@
1
+ # 评估与评分政策
2
+
3
+ 学习计划在教学前锁定 objective id、关键性和验收证据。最终题目不得简单复述课程示例;评分 rubric 必须在作答前固定,但答案或评分结论只在学习者提交原始 response 后读取或形成。
4
+
5
+ 每次测验覆盖主动回忆、因果/结构解释、新情境迁移和常见误区辨析。题目、原始 response、result 分文件保存;重试使用新变式和递增 attempt 编号,不覆盖旧证据。
6
+
7
+ Result 对每个 objective 列出:得分、引用的 response、正确处、差距、证据来源和置信度。主观或来源冲突项使用 `needs_review`。失败 result 必须形成最小补救范围,路由回 E 或 P,不扩大整个课程。
@@ -0,0 +1,9 @@
1
+ # 图书式知识组织
2
+
3
+ Learning 只使用 Markdown 目录和精确链接:`context/INDEX.md` 指向领域 `INDEX.md`,领域索引指向具体知识文件。允许 `rg` 修复索引,但不建设向量、Embedding、chunk、相似度或 rerank 层。
4
+
5
+ 领域目录使用稳定 kebab id;领域类型为 project、product、subject、language 或 skill。每个领域包含 `INDEX.md`、`overview.md`,并按真实需要创建 `concepts/`、`methods/`、`adr/`,不为空架构预建无用途目录。
6
+
7
+ 知识文件必须包含元数据表:Knowledge ID、状态、前置知识、相关知识、掌握证据、最近验证、下次复习;正文包含当前理解、心智模型、示例与应用、常见误区、来源与证据。状态只允许 `mastered | review_due | needs_refresh | superseded`。
8
+
9
+ 同主题存在时合并当前真相;新事实推翻旧结论时改写当前文件并记录 `supersedes` 归档证据;仅相关时互链,不复制正文。更新顺序为知识叶子、领域 INDEX、context/INDEX、REVIEW。索引只保存导航摘要,不保存课程全文或会话历史。
@@ -0,0 +1,21 @@
1
+ # 掌握与复习政策
2
+
3
+ ## 双重掌握门
4
+
5
+ 即时门验证当前理解;保持门验证间隔后的回忆和迁移。即时通过只把 change 设置为 `awaiting_retention`,默认首次保持测验安排在至少 24 小时后。学习者可以在 profile 中选择更长间隔,但不得把零间隔称为保持证据。
6
+
7
+ 两个门都必须满足:总分至少 80%;所有关键目标通过;至少一道新情境迁移题通过;没有阻塞性误解。无法客观裁决的答案标记 `needs_review`,在用户或独立证据确认前不得通过。
8
+
9
+ ## 周期复习
10
+
11
+ 默认复习间隔为通过保持门后的 7、30、90 天。R 根据真实日期和上次证据安排;不伪造未来完成。周期复习失败不删除 archive,而是创建 remediation change,并把当前知识标记为 `needs_refresh`。
12
+
13
+ ## 证据强度
14
+
15
+ - 项目:准确定位、调用或数据流预测、可重复命令/测试、小型安全任务。
16
+ - 产品:用户、问题、约束、指标、取舍和新场景判断。
17
+ - 学科:回忆、因果解释、计算/推导或反例、迁移应用。
18
+ - 语言:理解、主动产出、纠错、不同语境迁移。
19
+ - 技能:独立执行、可观察结果、错误诊断和变式任务。
20
+
21
+ 不引入 BKT、FSRS 或概率熟练度模型。只有积累了足以验证收益的历史数据后,才通过新 change 决定是否增加算法。
@@ -0,0 +1,7 @@
1
+ # Learning 路径引用合同
2
+
3
+ 静态 Learning 文件使用完整 `<Path>{roots.workflows}/learning/<relative-path></Path>`;运行时状态使用完整 `<Path>{roots.state}/learning/<relative-path></Path>`。不得使用机器绝对路径、反斜杠、`..`、裸文件名或把 workflow `_state` 当作运行时目录。
4
+
5
+ `{change}` 是启动协议选择的 change 名;`{domain}` 来自 `learning-plan.md` 和 change 状态;`YYYY-MM` 从 change 日期前缀派生。项目证据使用项目根相对路径,外部来源使用真实 URL。
6
+
7
+ 动态知识路径必须先由 promotion plan 明确,确认后才允许创建或改写。完整路径只确定对象,不授予副作用权限。
@@ -0,0 +1,15 @@
1
+ # 通俗教学政策
2
+
3
+ 每次教学必须明确写出一个直接、具体的教学表达基线,例如“5 岁的小孩”或“大一新生”。不要把它改写成“普通初学者”“低门槛读者”或“没有专业背景的人”;这些抽象说法不能给出足够稳定的表达约束。用户没有指定时,默认使用“5 岁的小孩”。
4
+
5
+ 教学表达基线直接约束讲法:
6
+
7
+ - **5 岁的小孩**:使用短句、具体物体和日常动作;一次只引入一个新概念;先说现象和用途,再给名称;不预设公式、专业术语或行业经验。
8
+ - **大一新生**:可以使用基础逻辑、简单公式和抽象分类,但不预设专业课程、项目经验或行业惯例;每个首次出现的术语仍需定义。
9
+ - **其他基线**:必须由用户明确指定,并写清可以预设的语言、数学、学科或实践基础。
10
+
11
+ 教学表达基线只决定如何讲,不代表学习者在该领域已经掌握什么。内容深度由 baseline 和经过索引、知识正文确认的 context 证据决定;已掌握概念可以作为桥梁,未验证内容不得当作基础。
12
+
13
+ 所有图解只使用 fenced code block 中的纯文本 ASCII,不使用 Mermaid、HTML、SVG 或其他依赖渲染器的格式。每张图只回答一个问题,箭头有方向;文字解释关系,不逐字重复图。首次出现术语时先给日常说法,再给专业名称。类比必须标出“哪里相像、哪里不相像”。
14
+
15
+ 教学采用脚手架递减:示范一个、共同完成一个、学习者独立完成一个。学习者未尝试前先给逐级提示,不直接泄露完整答案。解释结束不等于学会,必须进入练习和测验。
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:speculo:learning:change-status:v1",
4
+ "title": "Learning Change Status",
5
+ "type": "object",
6
+ "required": ["schema_version", "artifact", "change", "domain", "domain_type", "topic", "change_status", "phase", "current_work", "works_run", "created_at", "updated_at", "completed_at", "archived_at", "archive_path", "mastery", "blockers"],
7
+ "properties": {
8
+ "schema_version": {"const": 1},
9
+ "artifact": {"const": "learning-change-status"},
10
+ "change": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$"},
11
+ "domain": {"type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"},
12
+ "domain_type": {"enum": ["project", "product", "subject", "language", "skill"]},
13
+ "topic": {"type": "string", "minLength": 1},
14
+ "change_status": {"enum": ["active", "blocked", "awaiting_retention", "completed", "archived"]},
15
+ "phase": {"enum": ["intake", "assessment", "teaching", "practice", "immediate_quiz", "retention", "ready_to_archive", "archived"]},
16
+ "current_work": {"type": ["string", "null"], "pattern": "^learning/"},
17
+ "works_run": {"type": "array", "items": {"type": "string", "pattern": "^learning/"}, "uniqueItems": true},
18
+ "created_at": {"type": "string", "format": "date-time"},
19
+ "updated_at": {"type": "string", "format": "date-time"},
20
+ "completed_at": {"type": ["string", "null"], "format": "date-time"},
21
+ "archived_at": {"type": ["string", "null"], "format": "date-time"},
22
+ "archive_path": {"anyOf": [{"type": "null"}, {"type": "string", "pattern": "^<Path>\\{roots\\.state\\}/learning/archive/[0-9]{4}-[0-9]{2}/[^<]+</Path>$"}]},
23
+ "mastery": {
24
+ "type": "object",
25
+ "required": ["immediate", "retention", "score", "critical_objectives_passed", "transfer_passed", "blocking_misconceptions", "evidence", "next_review_at"],
26
+ "properties": {
27
+ "immediate": {"enum": ["not_attempted", "failed", "passed", "needs_review"]},
28
+ "retention": {"enum": ["not_attempted", "failed", "passed", "needs_review"]},
29
+ "score": {"type": ["number", "null"], "minimum": 0, "maximum": 100},
30
+ "critical_objectives_passed": {"type": "boolean"},
31
+ "transfer_passed": {"type": "boolean"},
32
+ "blocking_misconceptions": {"type": "array", "items": {"type": "string"}, "uniqueItems": true},
33
+ "evidence": {"type": "array", "items": {"type": "string", "pattern": "^<Path>\\{roots\\.state\\}/learning/(?:changes/[^<]+|archive/[0-9]{4}-[0-9]{2}/[^<]+)/quiz/[^<]+\\.md</Path>$"}, "uniqueItems": true},
34
+ "next_review_at": {"type": ["string", "null"], "format": "date-time"}
35
+ },
36
+ "additionalProperties": false
37
+ },
38
+ "blockers": {"type": "array", "items": {"type": "string"}, "uniqueItems": true}
39
+ },
40
+ "additionalProperties": false
41
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:speculo:learning:status:v1",
4
+ "title": "Learning Global Status",
5
+ "type": "object",
6
+ "required": ["schema_version", "workflow", "active", "archived"],
7
+ "properties": {
8
+ "schema_version": {"const": 1},
9
+ "workflow": {"const": "learning"},
10
+ "active": {
11
+ "type": "array",
12
+ "items": {
13
+ "type": "object",
14
+ "required": ["change", "domain", "topic", "current_work", "works_run"],
15
+ "properties": {
16
+ "change": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$"},
17
+ "domain": {"type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"},
18
+ "topic": {"type": "string", "minLength": 1},
19
+ "current_work": {"type": ["string", "null"], "pattern": "^learning/"},
20
+ "works_run": {"type": "array", "items": {"type": "string", "pattern": "^learning/"}, "uniqueItems": true}
21
+ },
22
+ "additionalProperties": false
23
+ }
24
+ },
25
+ "archived": {
26
+ "type": "array",
27
+ "items": {"type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$"},
28
+ "uniqueItems": true
29
+ }
30
+ },
31
+ "additionalProperties": false
32
+ }
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: knowledge-promotion
3
+ description: 在 Learning 内按掌握证据规划或应用 Markdown 知识提升,并为周期复习更新当前知识状态和分层索引。
4
+ ---
5
+
6
+ # Knowledge Promotion
7
+
8
+ 本 Skill 由 R-review 和 A-archive 调用,写入路径必须由调用方提供且位于 Learning context。默认 `plan-promotion` 只分析;任何 context 写入均需调用方获得用户对精确路径和动作的确认。
9
+
10
+ ## 模式
11
+
12
+ - `plan-promotion`:读取 completed change 和现有索引,产生 create/merge/supersede/archive-only 计划。
13
+ - `apply-promotion`:只执行已确认且重新验证无 drift 的计划。
14
+ - `mark-review-state`:更新指定知识的 `mastered | review_due | needs_refresh`、最近验证、下次复习和 REVIEW 行。
15
+
16
+ ## Plan Promotion
17
+
18
+ 1. 验证即时/保持 result、关键目标、迁移、误区和 change 状态;任一门不满足返回 blocked。
19
+ 2. 每个通过 OBJ 形成一个候选 Knowledge ID。读取总目录、目标领域 INDEX 和精确同 id 文件;不得以全文相似搜索代替 id/索引判断。
20
+ 3. 无同 id 时 `create`;当前结论兼容时 `merge`;新证据推翻当前结论时 `supersede`;仅会话性内容 `archive-only`。
21
+ 4. 计划必须列出所有叶子、领域 overview/INDEX、总 INDEX、REVIEW 和证据链接变化,并把完整候选 Markdown 写入调用方 change 的 `promotion-staging/`。重复 id、断链或来源冲突标记 needs-confirmation;staging 不等于 context 写入。
22
+
23
+ ## Apply Promotion
24
+
25
+ 1. 重读计划涉及的全部文件并核对 drift;目标意外出现、内容 hash 变化或证据状态变化即停止。
26
+ 2. 在调用方 change 的 `promotion-rollback/` 为每个目标保存原 Markdown;原目标不存在时在 `rollback-manifest.md` 明确记录。快照完整前不写 context。
27
+ 3. 知识文件按 `<Path>{roots.workflows}/learning/common/skills/knowledge-promotion/knowledge-template.md</Path>` 创建/合并;新领域同时使用 domain index 和 overview 模板。掌握证据指向即将形成的 archive 路径,只使用 `promotion-staging/` 中已确认的候选内容。
28
+ 4. 自叶到根更新领域 INDEX、总 INDEX 和 REVIEW。表格按稳定 Knowledge ID 排序,同一 id 只有一行。
29
+ 5. 重读所有链接并运行 Learning validator。任一失败按 manifest 逆序恢复:原文件覆盖回去,原本不存在的文件删除;恢复后再次验证。恢复成功前不得继续归档移动。
30
+
31
+ ## Mark Review State
32
+
33
+ 只修改调用方指定的知识文件和 REVIEW 行。失败标记 `needs_refresh`,通过更新 `mastered`、最近证据和下一日期;不删除或改写 archive,也不修改无关知识正文。
34
+
35
+ ## 完成标准
36
+
37
+ - 没有 RAG、向量或隐式相似匹配;
38
+ - 每个动作由双门证据和一个 Knowledge ID 支持;
39
+ - 计划模式无写入,执行模式有明确确认和 drift 检查;
40
+ - 更新后从总 INDEX 可以通过真实链接到达每个当前知识文件。
41
+
42
+ ## 模板引用
43
+
44
+ - 知识正文:`<Path>{roots.workflows}/learning/common/skills/knowledge-promotion/knowledge-template.md</Path>`
45
+ - 领域目录:`<Path>{roots.workflows}/learning/common/skills/knowledge-promotion/domain-index-template.md</Path>`
46
+ - 领域概览:`<Path>{roots.workflows}/learning/common/skills/knowledge-promotion/domain-overview-template.md</Path>`
@@ -0,0 +1,6 @@
1
+ # <领域名称>目录
2
+
3
+ > 本文件只保存导航和当前状态;具体知识读取链接目标。
4
+
5
+ | Knowledge ID | 类型 | 状态 | 文件 | 前置知识 | 最近验证 | 下次复习 |
6
+ | --- | --- | --- | --- | --- | --- | --- |
@@ -0,0 +1,19 @@
1
+ # <领域名称>概览
2
+
3
+ | 字段 | 内容 |
4
+ | --- | --- |
5
+ | Domain ID | `<domain>` |
6
+ | 类型 | `<project/product/subject/language/skill>` |
7
+ | 入口 | `[领域目录](INDEX.md)` |
8
+
9
+ ## 我目前能做什么
10
+
11
+ ## 领域地图
12
+
13
+ ```text
14
+ +----------+ +------+ +------+
15
+ | 基础概念 | --> | 方法 | --> | 应用 |
16
+ +----------+ +------+ +------+
17
+ ```
18
+
19
+ ## 当前边界与待学习内容
@@ -0,0 +1,25 @@
1
+ # <知识标题>
2
+
3
+ | 字段 | 内容 |
4
+ | --- | --- |
5
+ | Knowledge ID | `<domain>/<topic>` |
6
+ | 状态 | `mastered` |
7
+ | 前置知识 | `<相对 Markdown 链接或无>` |
8
+ | 相关知识 | `<相对 Markdown 链接或无>` |
9
+ | 掌握证据 | `<归档 change 内 result 路径>` |
10
+ | 最近验证 | `YYYY-MM-DD` |
11
+ | 下次复习 | `YYYY-MM-DD` |
12
+
13
+ ## 当前理解
14
+
15
+ ## 心智模型
16
+
17
+ ## 示例与应用
18
+
19
+ ## 常见误区
20
+
21
+ ## 来源与证据
22
+
23
+ ## 替代关系
24
+
25
+ `<没有 supersedes 时写无>`