@namewta/speculo 0.8.4 → 0.8.6
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 +4 -3
- package/dist/src/structured.js +162 -4
- package/dist/src/structured.js.map +1 -1
- package/package.json +2 -2
- package/template/.speculo/README.md +7 -6
- package/template/canonical/canonical-specdev-goal-plan.md +0 -1
- package/template/canonical/canonical-specdev-grill-with-docs.md +0 -1
- package/template/canonical/canonical-specdev-spec.md +0 -1
- package/template/canonical/canonical-specdev-tickets.md +0 -1
- package/template/commands/status.md +3 -3
- package/template/skills/archive-and-consolidate/SKILL.md +19 -14
- package/template/workflows/learning/A-archive-and-consolidate/A-archive-and-consolidate.md +38 -0
- package/template/workflows/learning/A-archive-and-consolidate/promotion-plan-template.md +23 -0
- package/template/workflows/learning/A-assess-and-plan/A-assess-and-plan.md +39 -0
- package/template/workflows/learning/A-assess-and-plan/change-status-template.json +28 -0
- package/template/workflows/learning/A-assess-and-plan/learning-plan-template.md +28 -0
- package/template/workflows/learning/E-eli5/E-eli5.md +37 -0
- package/template/workflows/learning/E-eli5/lesson-template.md +31 -0
- package/template/workflows/learning/I-init-setup/I-init-setup.md +36 -0
- package/template/workflows/learning/I-init-setup/context-index-template.md +6 -0
- package/template/workflows/learning/I-init-setup/learner-profile-template.md +17 -0
- package/template/workflows/learning/I-init-setup/review-index-template.md +4 -0
- package/template/workflows/learning/INDEX.md +26 -0
- package/template/workflows/learning/P-practice/P-practice.md +34 -0
- package/template/workflows/learning/P-practice/practice-template.md +16 -0
- package/template/workflows/learning/Q-quiz/Q-quiz.md +34 -0
- package/template/workflows/learning/Q-quiz/quiz-artifact-template.md +16 -0
- package/template/workflows/learning/R-review/R-review.md +35 -0
- package/template/workflows/learning/R-review/review-template.md +12 -0
- package/template/workflows/learning/README.md +121 -0
- package/template/workflows/learning/_state/archive/.gitkeep +1 -0
- package/template/workflows/learning/_state/changes/.gitkeep +1 -0
- package/template/workflows/learning/_state/status.json +6 -0
- package/template/workflows/learning/common/rules/artifact-contract.md +27 -0
- package/template/workflows/learning/common/rules/assessment-policy.md +7 -0
- package/template/workflows/learning/common/rules/knowledge-organization.md +9 -0
- package/template/workflows/learning/common/rules/mastery-policy.md +21 -0
- package/template/workflows/learning/common/rules/path-reference-contract.md +7 -0
- package/template/workflows/learning/common/rules/teaching-policy.md +15 -0
- package/template/workflows/learning/common/schemas/change-status.schema.json +41 -0
- package/template/workflows/learning/common/schemas/status.schema.json +32 -0
- package/template/workflows/learning/common/skills/knowledge-promotion/SKILL.md +46 -0
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-index-template.md +6 -0
- package/template/workflows/learning/common/skills/knowledge-promotion/domain-overview-template.md +19 -0
- package/template/workflows/learning/common/skills/knowledge-promotion/knowledge-template.md +25 -0
- package/template/workflows/learning/common/tools/validate-learning.mjs +356 -0
- package/template/workflows/learning/runtime-contract.json +11 -0
- package/template/workflows/specdev/A-archive-and-consolidate/A-archive-and-consolidate.md +2 -0
- package/template/workflows/specdev/C-code-review/C-code-review.md +2 -0
- package/template/workflows/specdev/D-diagnose-bugs/D-diagnose-bugs.md +2 -0
- package/template/workflows/specdev/G-grill-with-docs/G-grill-with-docs.md +2 -0
- package/template/workflows/specdev/I-implement/I-implement.md +2 -0
- package/template/workflows/specdev/I-init-setup/I-init-setup.md +3 -1
- package/template/workflows/specdev/INDEX.md +9 -241
- package/template/workflows/specdev/P-goal-plan/P-goal-plan.md +2 -0
- package/template/workflows/specdev/P-prototype/P-prototype.md +2 -0
- package/template/workflows/specdev/R-review-architecture/R-review-architecture.md +2 -0
- package/template/workflows/specdev/README.md +244 -0
- package/template/workflows/specdev/S-spec/S-spec.md +2 -0
- package/template/workflows/specdev/T-tickets/T-tickets.md +2 -0
- package/template/workflows/specdev/T-triage/T-triage.md +3 -1
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +2 -0
- package/template/workflows/specdev/common/rules/artifact-contract.md +0 -1
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +0 -68
- package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +0 -1968
- package/template/workflows/specdev/E-eli5/E-eli5.md +0 -95
- package/template/workflows/specdev/E-engineering-cognitive-mentor/E-engineering-cognitive-mentor.md +0 -252
- package/template/workflows/specdev/E-engineering-cognitive-mentor/architecture-guidance.md +0 -90
- package/template/workflows/specdev/E-engineering-cognitive-mentor/bug-guidance.md +0 -80
- package/template/workflows/specdev/E-engineering-cognitive-mentor/codebase-guidance.md +0 -107
- package/template/workflows/specdev/E-engineering-cognitive-mentor/comprehension-and-closure.md +0 -95
- package/template/workflows/specdev/E-engineering-cognitive-mentor/domain-learning-guidance.md +0 -62
- package/template/workflows/specdev/E-engineering-cognitive-mentor/evidence-and-options.md +0 -132
- package/template/workflows/specdev/E-engineering-cognitive-mentor/interaction-protocol.md +0 -116
- package/template/workflows/specdev/E-engineering-cognitive-mentor/mentor-report-template.md +0 -135
- package/template/workflows/specdev/E-engineering-cognitive-mentor/mode-routing.md +0 -47
- package/template/workflows/specdev/E-engineering-cognitive-mentor/persistence-and-resume.md +0 -132
- package/template/workflows/specdev/E-engineering-cognitive-mentor/requirements-guidance.md +0 -92
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
# 持久化与恢复协议
|
|
2
|
-
|
|
3
|
-
本协议是工程认知导师 Work 的状态与落盘权威。它细化 Speculo 全局持久化契约,不改变其他 Work 的工件职责。
|
|
4
|
-
|
|
5
|
-
## 1. 根与 change 解析
|
|
6
|
-
|
|
7
|
-
1. 从当前工作目录向上寻找唯一的 Speculo 工作区声明(`.speculo` 下的 workspace 配置);
|
|
8
|
-
2. 第一个唯一命中的目录为 project root;多个候选或用户指定目录冲突时停止并消歧;
|
|
9
|
-
3. `path_base` 必须为 `project-root`;
|
|
10
|
-
4. 读取 roots 后,将 Work 路径解析为 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/</Path>`,状态路径解析为 `<Path>{roots.state}/specdev/</Path>`;
|
|
11
|
-
5. 用户指定 change 优先;否则唯一 active change 直接使用;没有 active change 时按 `YYYY-MM-DD-<kebab-topic>` 创建;多个 active change 不得猜测。
|
|
12
|
-
|
|
13
|
-
若 `<Path>{roots.state}/specdev/config.json</Path>` 不存在,先进入 `<Path>{roots.workflows}/specdev/I-init-setup/I-init-setup.md</Path>`。
|
|
14
|
-
|
|
15
|
-
## 2. 状态文件
|
|
16
|
-
|
|
17
|
-
全局状态:`<Path>{roots.state}/specdev/status.json</Path>`。
|
|
18
|
-
|
|
19
|
-
change 状态:`<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>`。
|
|
20
|
-
|
|
21
|
-
主产物:`<Path>{roots.state}/specdev/changes/{change}/engineering-cognitive-mentor.md</Path>`。
|
|
22
|
-
|
|
23
|
-
跨 Work 决策日志:`<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`。
|
|
24
|
-
|
|
25
|
-
### 开始
|
|
26
|
-
|
|
27
|
-
- 在 `active` 中找到或创建当前 change;
|
|
28
|
-
- `current_work` 已是 `specdev/engineering-cognitive-mentor` 时恢复,为 null 时设置为该 id;指向其他 Work 时停止并要求先完成显式 handoff;
|
|
29
|
-
- `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 的 `current_work` 同步设置为相同值;
|
|
30
|
-
- 全局索引不创建逐次调用日志;开始时间与恢复阶段由主产物 frontmatter、MLOG 和 `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 承载。
|
|
31
|
-
|
|
32
|
-
### 等待用户或跨会话暂停
|
|
33
|
-
|
|
34
|
-
- 保持 `current_work` 为本 Work;
|
|
35
|
-
- 更新主产物 `updated_at`、`current_phase`、`next_question`、`unresolved_questions` 与 `last_mlog_id`;
|
|
36
|
-
- 每轮在回复前先落盘,确保用户即使中断也可恢复。
|
|
37
|
-
|
|
38
|
-
等待用户回答不是 blocked,不应把 change 标为 blocked。
|
|
39
|
-
|
|
40
|
-
### 正常关闭
|
|
41
|
-
|
|
42
|
-
- 将本 Work id 以去重方式加入 active change 的 `works_run`;
|
|
43
|
-
- active change 的 `current_work` 与 `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 的 `current_work` 设为 null;
|
|
44
|
-
- 不改变整个 change 的 `change_status`,除非用户明确结束或外部阻塞确实影响整个 change;
|
|
45
|
-
- 主产物 `status` 写为 `completed`,记录 `closed_at` 与理解确认状态。
|
|
46
|
-
|
|
47
|
-
### 外部阻塞
|
|
48
|
-
|
|
49
|
-
只有缺少权限、不可访问资料、必须等待第三方结果或存在互斥权威冲突时才标 blocked:
|
|
50
|
-
|
|
51
|
-
- 主产物 `status: blocked`;
|
|
52
|
-
- 记录 blocker、已知事实、所需输入和恢复条件;
|
|
53
|
-
- 保留 `current_work` 作为唯一恢复指针;
|
|
54
|
-
- change 是否设为 blocked 取决于该阻塞是否阻止整个 change,不自动扩大。
|
|
55
|
-
|
|
56
|
-
### 用户取消
|
|
57
|
-
|
|
58
|
-
- 主产物 `status: cancelled`;
|
|
59
|
-
- 保存当前综合和完整 MLOG;
|
|
60
|
-
- 清空全局与 change 状态的 `current_work`,但不将本 Work 加入 `works_run`;
|
|
61
|
-
- 不删除工件或日志。
|
|
62
|
-
|
|
63
|
-
## 3. 主产物幂等初始化
|
|
64
|
-
|
|
65
|
-
主产物不存在时,使用 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/mentor-report-template.md</Path>` 创建。
|
|
66
|
-
|
|
67
|
-
主产物已存在时:
|
|
68
|
-
|
|
69
|
-
- 不重新生成或覆盖;
|
|
70
|
-
- 读取 frontmatter、当前综合、未决问题和最后一个 `MLOG`;
|
|
71
|
-
- 可补齐缺失的可选章节,但不得重排或改写历史日志;
|
|
72
|
-
- 未识别的新字段原样保留;
|
|
73
|
-
- schema version 1 缺失可选字段时按空值读取,在真实更新时补齐。
|
|
74
|
-
|
|
75
|
-
## 4. 每轮落盘顺序
|
|
76
|
-
|
|
77
|
-
每次有实质交互时按以下顺序写入:
|
|
78
|
-
|
|
79
|
-
1. 追加新的 `MLOG-###`;
|
|
80
|
-
2. 更新主产物的当前综合、证据表、方案表和未决问题;
|
|
81
|
-
3. 若有高影响决定,摘要追加全局 `LOG-###`;
|
|
82
|
-
4. 更新主产物 frontmatter 的阶段、状态、理解状态、时间和最后日志编号;
|
|
83
|
-
5. 更新 `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>` 的 `updated_at`;
|
|
84
|
-
6. 返回用户回复。
|
|
85
|
-
|
|
86
|
-
写入中断时,以已追加的 MLOG 为恢复锚点;不得为同一用户回合重复追加。可以用时间、上一条 MLOG 和用户输入摘要检测重复。
|
|
87
|
-
|
|
88
|
-
## 5. MLOG 与全局 LOG 的职责
|
|
89
|
-
|
|
90
|
-
### MLOG:详细、Work 专属
|
|
91
|
-
|
|
92
|
-
主产物中的 MLOG 保存:用户问题摘要、导师问题、用户回答、解释、证据变化、误解修正、方案比较、理解确认和下一焦点。
|
|
93
|
-
|
|
94
|
-
### 全局 LOG:高影响、跨 Work
|
|
95
|
-
|
|
96
|
-
只有满足以下任一条件才追加到 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`:
|
|
97
|
-
|
|
98
|
-
- 用户确认或拒绝会改变产品行为、范围、验收、架构边界、迁移、安全或重大风险的选择;
|
|
99
|
-
- 某项结论阻止或允许进入 Spec、Ticket、Goal Plan 或 Implement;
|
|
100
|
-
- 先前跨 Work 决策被替代;
|
|
101
|
-
- 需要其他 Work 恢复时必须知道的阻塞或 handoff。
|
|
102
|
-
|
|
103
|
-
全局 LOG 条目使用 `<Path>{roots.workflows}/specdev/G-grill-with-docs/log-format.md</Path>`,并在“事实与来源”或“后续”中引用对应 `MLOG-###` 与主产物完整路径。
|
|
104
|
-
|
|
105
|
-
普通教学解释、低影响偏好和用户的每个追问不得复制到全局 LOG。
|
|
106
|
-
|
|
107
|
-
## 6. 恢复读取顺序
|
|
108
|
-
|
|
109
|
-
跨会话恢复时按顺序读取:
|
|
110
|
-
|
|
111
|
-
1. `<Path>{roots.state}/specdev/status.json</Path>`;
|
|
112
|
-
2. `<Path>{roots.state}/specdev/changes/{change}/.status.json</Path>`;
|
|
113
|
-
3. `<Path>{roots.state}/specdev/changes/{change}/engineering-cognitive-mentor.md</Path>`;
|
|
114
|
-
4. 其中列出的权威输入与外部引用;
|
|
115
|
-
5. `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>` 中与 MLOG 关联的高影响条目;
|
|
116
|
-
6. 按当前模式加载所需专项协议。
|
|
117
|
-
|
|
118
|
-
恢复后先向用户简短说明:当前模式、已确认结论、未决问题和下一焦点。不要重新复述全文或重新询问已回答问题。
|
|
119
|
-
|
|
120
|
-
## 7. 工件冲突
|
|
121
|
-
|
|
122
|
-
冲突按 `<Path>{roots.workflows}/specdev/common/rules/artifact-contract.md</Path>` 裁决。
|
|
123
|
-
|
|
124
|
-
- 用户最新明确决定优先;
|
|
125
|
-
- 主产物是教学综合与详细 MLOG 的权威,不是产品行为或架构决定的最终权威;
|
|
126
|
-
- 若主产物与 ADR、Spec 或 Ticket 冲突,指出冲突并移交真正拥有该决定的 Work 修订;
|
|
127
|
-
- 代码事实可以证明旧解释过时,但不能静默改写用户目标;
|
|
128
|
-
- 所有替代通过新 MLOG 和必要的全局 LOG 记录,不删除旧内容。
|
|
129
|
-
|
|
130
|
-
## 8. 敏感信息
|
|
131
|
-
|
|
132
|
-
不得将令牌、密码、密钥、完整个人数据、内部凭证、生产连接串或未脱敏客户数据写入 Speculo 状态。日志只保存脱敏摘要和安全的来源指针。
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# 需求与技术方案指导
|
|
2
|
-
|
|
3
|
-
本模式把“想要一个功能”还原为用户问题、行为合同、约束和可解释的技术选择。它不直接创建权威 Spec 或 Ticket。
|
|
4
|
-
|
|
5
|
-
## 1. 问题定义
|
|
6
|
-
|
|
7
|
-
区分:
|
|
8
|
-
|
|
9
|
-
- 用户或业务问题;
|
|
10
|
-
- 期望结果;
|
|
11
|
-
- 请求中的具体功能想法;
|
|
12
|
-
- 成功指标;
|
|
13
|
-
- 明确非目标;
|
|
14
|
-
- 当前流程和痛点;
|
|
15
|
-
- 谁受影响、谁批准、谁运维。
|
|
16
|
-
|
|
17
|
-
功能想法不是天然的需求结论。
|
|
18
|
-
|
|
19
|
-
## 2. 行为与约束地图
|
|
20
|
-
|
|
21
|
-
梳理:
|
|
22
|
-
|
|
23
|
-
- 参与者与权限;
|
|
24
|
-
- 主要用户流程;
|
|
25
|
-
- 输入、输出、状态和业务规则;
|
|
26
|
-
- 正常、异常和边界场景;
|
|
27
|
-
- 数据、不变量和生命周期;
|
|
28
|
-
- 兼容、迁移和发布限制;
|
|
29
|
-
- 性能、可靠性、安全、隐私、审计、成本和时间约束;
|
|
30
|
-
- 可观察成功状态。
|
|
31
|
-
|
|
32
|
-
## 3. 关键未知项
|
|
33
|
-
|
|
34
|
-
分为:
|
|
35
|
-
|
|
36
|
-
- 可从现有项目发现的事实;
|
|
37
|
-
- 需要用户做业务取舍的 decision-needed;
|
|
38
|
-
- 需要外部研究的技术事实;
|
|
39
|
-
- 可延后到 Ticket 或实现阶段的低影响细节。
|
|
40
|
-
|
|
41
|
-
只询问前两类中真正会改变方案的事项。
|
|
42
|
-
|
|
43
|
-
## 4. 方案形成
|
|
44
|
-
|
|
45
|
-
每个方案说明:
|
|
46
|
-
|
|
47
|
-
- 核心思路;
|
|
48
|
-
- 满足哪些行为和约束;
|
|
49
|
-
- 依赖的假设;
|
|
50
|
-
- 数据和接口影响;
|
|
51
|
-
- 失败模式;
|
|
52
|
-
- 实施与认知复杂度;
|
|
53
|
-
- 兼容、迁移和回滚;
|
|
54
|
-
- 可观测性与运维;
|
|
55
|
-
- 长期演进;
|
|
56
|
-
- 不适用条件。
|
|
57
|
-
|
|
58
|
-
至少比较保持现状、最小方案和一个实质替代方案。
|
|
59
|
-
|
|
60
|
-
## 5. 技术栈比较
|
|
61
|
-
|
|
62
|
-
先比较“能力和约束”,再比较具体产品。避免仅按流行度、性能榜或个人偏好选择。
|
|
63
|
-
|
|
64
|
-
示例层级:
|
|
65
|
-
|
|
66
|
-
```text
|
|
67
|
-
需求约束
|
|
68
|
-
→ 架构能力(同步/异步、事务/最终一致、托管/自建)
|
|
69
|
-
→ 技术类别(关系库、消息系统、缓存、工作流引擎)
|
|
70
|
-
→ 具体产品与版本
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
若具体产品信息可能变化,必须查当前官方资料并记录查询日期。
|
|
74
|
-
|
|
75
|
-
## 6. 推荐与决策支持
|
|
76
|
-
|
|
77
|
-
推荐说明:
|
|
78
|
-
|
|
79
|
-
- 当前最关键的 2–4 个决策驱动因素;
|
|
80
|
-
- 推荐方案如何满足它们;
|
|
81
|
-
- 被拒方案在哪些约束上不匹配;
|
|
82
|
-
- 反转条件;
|
|
83
|
-
- 未验证假设;
|
|
84
|
-
- 需要正式写入 Spec 或 ADR 的事项。
|
|
85
|
-
|
|
86
|
-
## 7. 移交
|
|
87
|
-
|
|
88
|
-
- 需求和行为仍不清:`<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>`;
|
|
89
|
-
- 外部行为、范围和验收已清楚:`<Path>{roots.workflows}/specdev/S-spec/S-spec.md</Path>`;
|
|
90
|
-
- 方案已锁定且需要执行切片:`<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>`。
|
|
91
|
-
|
|
92
|
-
主产物保留解释与讨论历史,但不冒充上述权威工件。
|