@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.
- 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/canonical/canonical-specdev-goal-plan.md +14 -15
- package/template/canonical/canonical-specdev-grill-with-docs.md +9 -8
- package/template/canonical/canonical-specdev-spec.md +9 -8
- package/template/canonical/canonical-specdev-tickets.md +13 -14
- package/template/canonical/canonical-specdev-wayfinder.md +7 -7
- 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/I-init-setup/I-init-setup.md +1 -1
- package/template/workflows/specdev/I-init-setup/config-template.json +2 -2
- package/template/workflows/specdev/INDEX.md +2 -2
- package/template/workflows/specdev/P-goal-plan/planning-modes.md +1 -1
- package/template/workflows/specdev/P-prototype/P-prototype.md +30 -26
- package/template/workflows/specdev/P-prototype/design-library/INDEX.md +43 -0
- package/template/workflows/specdev/P-prototype/design-library/color-and-theme.md +65 -0
- package/template/workflows/specdev/P-prototype/design-library/foundations.md +66 -0
- package/template/workflows/specdev/P-prototype/design-library/interaction-patterns.md +61 -0
- package/template/workflows/specdev/P-prototype/design-library/product-pattern-index.md +73 -0
- package/template/workflows/specdev/P-prototype/design-library/research-provenance.md +54 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/METHODOLOGY.md +90 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/README.md +31 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/data/extended-projects.json +241 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/data/projects.json +253 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/reference/USAGE.md +40 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/reference/design-tokens.css +145 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/report/OPEN_SOURCE_UI_RESEARCH_2026.md +519 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/PROJECT_TEMPLATE.md +29 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/README.md +9 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/claude-code-modern-clients.md +407 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/creative-ai-communication.md +574 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/data-dev-tools.md +432 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/personal-multiplatform-apps.md +185 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/research/productivity-collaboration.md +398 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/01-dense-ide.html +68 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/02-monochrome-console.html +18 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/03-soft-personal-ai.html +17 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/04-responsive-web.html +14 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/05-mobile-supervisor.html +16 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/06-cross-platform-workspace.html +17 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/07-local-first-content.html +9 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/08-media-first.html +17 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/README.md +49 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/ATTRIBUTION.md +9 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/landscape.jpg +0 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/lucide.js +20494 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/mountain.jpg +0 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/assets/workspace.jpg +0 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/index.html +70 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/package-lock.json +78 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/package.json +12 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/screenshots/index-desktop.png +0 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/scripts/gallery.js +134 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/styles/base.css +795 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/styles/pages.css +533 -0
- package/template/workflows/specdev/P-prototype/design-library/research-snapshot/ui-gallery/tests/gallery.spec.js +56 -0
- package/template/workflows/specdev/P-prototype/design-library/responsive-and-platforms.md +53 -0
- package/template/workflows/specdev/P-prototype/design-library/style-index.md +32 -0
- package/template/workflows/specdev/P-prototype/design-package.schema.json +70 -0
- package/template/workflows/specdev/P-prototype/design-system-template.md +366 -0
- package/template/workflows/specdev/P-prototype/detect-existing-style.md +53 -0
- package/template/workflows/specdev/P-prototype/generate-design-package.md +50 -0
- package/template/workflows/specdev/P-prototype/style-selection-protocol.md +41 -0
- package/template/workflows/specdev/P-prototype/tools/materialize-prototype.mjs +126 -0
- package/template/workflows/specdev/P-prototype/tools/validate-design-package.mjs +155 -0
- package/template/workflows/specdev/README.md +12 -11
- package/template/workflows/specdev/T-triage/T-triage.md +1 -1
- package/template/workflows/specdev/W-wayfinder/W-wayfinder.md +1 -1
- package/template/workflows/specdev/common/README.md +2 -2
- package/template/workflows/specdev/common/rules/artifact-contract.md +3 -2
- package/template/workflows/specdev/common/schemas/config.schema.json +4 -4
- package/template/workflows/specdev/common/skills/dev-worktree/SKILL.md +4 -4
- package/template/workflows/specdev/common/skills/dev-worktree/references/create.md +1 -3
- package/template/workflows/specdev/common/tools/validate-specdev.mjs +83 -92
- package/template/canonical/canonical-specdev-engineering-cognitive-mentor.md +0 -1968
- package/template/workflows/specdev/E-eli5/E-eli5.md +0 -97
- package/template/workflows/specdev/E-engineering-cognitive-mentor/E-engineering-cognitive-mentor.md +0 -254
- 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
- package/template/workflows/specdev/P-prototype/logic-prototype.md +0 -24
- package/template/workflows/specdev/P-prototype/prototype-record-template.md +0 -46
- package/template/workflows/specdev/P-prototype/ui-prototype.md +0 -21
- package/template/workflows/specdev/common/schemas/prototype-record.schema.json +0 -24
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: specdev/eli5
|
|
3
|
-
type: workflow-entry
|
|
4
|
-
workflow: specdev
|
|
5
|
-
name: 零基础新生解释
|
|
6
|
-
description: 面向刚上大一、没有专业背景的读者解释一个主题;用 Markdown 和 ASCII 图解说明概念、数据与调用如何流动。
|
|
7
|
-
keywords: [eli5, 零基础, 大一新生, Markdown, ASCII]
|
|
8
|
-
---
|
|
9
|
-
# ELI5:给零基础新生的图解
|
|
10
|
-
|
|
11
|
-
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/specdev/README.md</Path>`,再执行本入口。
|
|
12
|
-
|
|
13
|
-
## 读者与职责
|
|
14
|
-
|
|
15
|
-
读者是刚入大学、没有专业背景(零专业背景)的新生。读者能理解日常因果和简单流程,但不应被假定知道代码、网络、数学或行业背景。
|
|
16
|
-
|
|
17
|
-
本 Work 只解释,不作产品决定、架构决定或实现授权。它把已验证的事实写成一个可恢复的 Markdown 图解;图比段落更先出现,文字只负责读懂图。
|
|
18
|
-
|
|
19
|
-
```text
|
|
20
|
-
已验证的事实
|
|
21
|
-
|
|
|
22
|
-
v
|
|
23
|
-
拆成小问题和小部件
|
|
24
|
-
|
|
|
25
|
-
v
|
|
26
|
-
ASCII 全图 + 分步图 + 简短说明
|
|
27
|
-
|
|
|
28
|
-
v
|
|
29
|
-
01_<topic>.md、02_<topic>.md、...(给零基础新生的解释)
|
|
30
|
-
|
|
|
31
|
-
v
|
|
32
|
-
图解索引(所有图解的目录)
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
主题:`$ARGUMENTS`
|
|
36
|
-
|
|
37
|
-
## 输出格式
|
|
38
|
-
|
|
39
|
-
在 `<Path>{roots.state}/specdev/changes/{change}/</Path>` 内原子写入一份新的 `<Path>{roots.state}/specdev/changes/{change}/{number}_{topic}.md</Path>`,以及索引 `<Path>{roots.state}/specdev/changes/{change}/eli_index.md</Path>`。文档必须是纯 Markdown,不生成 HTML、CSS、SVG、图片链接或浏览器专属交互。
|
|
40
|
-
|
|
41
|
-
`<number>` 是两位起始、持续递增的序号:先读取索引和同目录已有的图解文件,取最大序号加一,因此第一次为 `01`,下一次为 `02`;不为旧文件重编号。`<topic>` 是主题的简短、可作文件名的标签,可使用中文、字母、数字、`-` 或 `_`,但不能含空格、`/`、`\\` 或 `..`。同主题再次解释也创建新编号文件。
|
|
42
|
-
|
|
43
|
-
索引是唯一目录,使用下列 Markdown 表格;每新增一份图解就在表末追加一行,并保留既有行。文件列只写同目录的文件名:
|
|
44
|
-
|
|
45
|
-
```markdown
|
|
46
|
-
# ELI5 图解索引
|
|
47
|
-
|
|
48
|
-
| 编号 | 文件 | 主题 | 简介 |
|
|
49
|
-
| --- | --- | --- | --- |
|
|
50
|
-
| 01 | 01_<topic>.md | <主题> | <一句话说明它解释什么> |
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
按主题选择最贴切的图,但优先用多个短小 ASCII 图代替长文字:
|
|
54
|
-
|
|
55
|
-
```text
|
|
56
|
-
结构图:
|
|
57
|
-
[系统]
|
|
58
|
-
|
|
|
59
|
-
+-- [部件 A]
|
|
60
|
-
+-- [部件 B]
|
|
61
|
-
|
|
62
|
-
数据流图:
|
|
63
|
-
[输入] -> [处理] -> [结果]
|
|
64
|
-
|
|
65
|
-
调用流图:
|
|
66
|
-
[用户动作] -> [入口] -> [服务] -> [回应]
|
|
67
|
-
|
|
68
|
-
状态变化图:
|
|
69
|
-
[等待] -> [进行中] -> [完成]
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
每份图解至少包含以下四节:
|
|
73
|
-
|
|
74
|
-
1. `## 先看全图`:一个能说清“谁和谁有关”的 ASCII 图。
|
|
75
|
-
2. `## 一步一步看`:按箭头顺序解释。流程、数据或调用会移动时,再给对应的 ASCII 图。
|
|
76
|
-
3. `## 术语小词典`:只保留读图必需的词。每个词先用日常语言解释,再给它的专业名字。例如:`临时便签(缓存)`,意思是“把常用结果先放在手边,下一次不用重新找”。
|
|
77
|
-
|
|
78
|
-
图中的方框名称使用普通名词和动词,不用缩写;箭头必须有方向。一个图只讲一个问题。确有边界、失败或例外时,单独画一张小图说明,不把它塞进主图。
|
|
79
|
-
|
|
80
|
-
## 执行
|
|
81
|
-
|
|
82
|
-
1. 按 `<Path>{roots.workflows}/specdev/README.md</Path>` 读取全局状态和当前 change 状态。选择用户指定或唯一活跃的 change;没有时按 SpecDev 启动协议创建。`current_work` 为空时设为 `specdev/eli5`;若指向其他 Work,先完成显式交接。
|
|
83
|
-
2. 将调用中的 `$ARGUMENTS` 解析为主题;直接提出的图解请求以用户最新消息为主题。主题缺失时只询问主题,不猜测。先写下读者要带走的三个答案:它是什么、为什么需要它、它怎样流动或被调用。
|
|
84
|
-
3. 按需读取当前 change 工件、项目事实和可靠来源。区分已验证事实、便于理解的类比和未知处;类比只能帮助理解,不能替代事实或掩盖边界。
|
|
85
|
-
4. 先画 `先看全图`,再按实际关系补充结构图、数据流图、调用流图或状态变化图。每张图旁只用短句解释箭头;避免长段落、术语堆叠、缩写和先备知识。
|
|
86
|
-
5. 首次使用术语时,先写日常解释,再在括号中给专业名字。读完后从读者角度检查:没有背景知识的人能否仅靠图和短句复述三个答案;若不能,拆图或替换术语,不增加大段说明。
|
|
87
|
-
6. 读取 `<Path>{roots.state}/specdev/changes/{change}/eli_index.md</Path>` 和已有图解文件。从最大序号计算下一个编号,创建新的图解文件,再原子更新索引;不覆盖、重命名或重排已有图解。重读确认新文件是 Markdown,包含四个必需章节、至少一个 ASCII 图和没有 HTML 标记或图片依赖,且索引的文件名、主题和简介都与新文件对应。
|
|
88
|
-
7. 运行 `<Path>{roots.workflows}/specdev/common/tools/validate-specdev.mjs</Path>` 的 `--stage eli5`。成功后把 `specdev/eli5` 去重加入 `works_run`,清空 `current_work`,并返回 Markdown 完整路径;失败时保留 `current_work` 和阻塞原因,便于恢复。
|
|
89
|
-
|
|
90
|
-
## 完成标准
|
|
91
|
-
|
|
92
|
-
- `<Path>{roots.state}/specdev/changes/{change}/eli_index.md</Path>` 存在,按序列出每份图解的编号、文件、主题和简介;每个文件名都对应同目录真实文件。
|
|
93
|
-
- 新的 `<Path>{roots.state}/specdev/changes/{change}/{number}_{topic}.md</Path>` 存在,是纯 Markdown,并含有全部四个必需章节和至少一个 ASCII 图;编号比既有最大编号大一,旧文件未被重排或覆盖。
|
|
94
|
-
- 文档面向刚上大一、没有专业背景的读者;用图和短句解释主题,而不是把专业长文换成更简单的字。
|
|
95
|
-
- 图解覆盖主题需要的结构、数据流、调用流或状态变化;能画图的地方优先画图,且每张图的箭头方向与事实一致。
|
|
96
|
-
- 术语首次出现前有日常解释;类比不把读者带向相反结论。
|
|
97
|
-
- 状态已原子更新;除当前 change 工件外,没有修改项目代码、永久知识或远程系统。
|
package/template/workflows/specdev/E-engineering-cognitive-mentor/E-engineering-cognitive-mentor.md
DELETED
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: specdev/engineering-cognitive-mentor
|
|
3
|
-
type: workflow-entry
|
|
4
|
-
workflow: specdev
|
|
5
|
-
name: 工程认知导师
|
|
6
|
-
description: 面向 Bug、项目源码、需求技术方案、架构设计与陌生技术领域的非执行型认知指导 Work;以证据、因果 Why、候选方案对比和逐轮澄清帮助用户形成可复述理解,并将完整问答轨迹持续持久化到当前 change。
|
|
7
|
-
keywords: [认知导师, 教学, why, bug, 源码研究, 技术方案, 架构, 技术选型, 新领域, 决策日志]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# 工程认知导师
|
|
11
|
-
|
|
12
|
-
> 激活本 Work 后,先读取 `<Path>{roots.workflows}/specdev/README.md</Path>`,再执行本入口。
|
|
13
|
-
|
|
14
|
-
本 Work 将工程研究从“一次性答案”转化为可恢复、可追溯、可继续讨论的认知过程。它负责解释、教学、建议、证据组织、方案比较和理解确认,不负责替用户实施工程变更。
|
|
15
|
-
|
|
16
|
-
核心闭环:
|
|
17
|
-
|
|
18
|
-
```text
|
|
19
|
-
定义问题 → 建立全貌 → 区分证据 → 解释 Why → 比较方案 → 逐轮澄清 → 确认理解 → 持久化交接
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 执行边界
|
|
23
|
-
|
|
24
|
-
允许:
|
|
25
|
-
|
|
26
|
-
- 只读分析项目代码、测试、配置、日志、堆栈、已有 SpecDev 工件和用户提供的材料;
|
|
27
|
-
- 查阅官方文档、标准、论文和可信外部资料;
|
|
28
|
-
- 提供解释性代码片段、伪代码、架构图描述、技术选型比较和未执行的验证建议;
|
|
29
|
-
- 写入本 Work 自有的 Speculo 状态工件,并按规则追加跨 Work 决策日志;
|
|
30
|
-
- 与用户持续交互,直到核心总结被确认、遗留问题被清空或明确延后。
|
|
31
|
-
|
|
32
|
-
禁止:
|
|
33
|
-
|
|
34
|
-
- 运行项目命令、测试、构建、脚本或诊断实验;
|
|
35
|
-
- 修改项目代码、测试、配置、数据库、基础设施或用户要求的项目文档;
|
|
36
|
-
- 提交、推送、合并、部署、发布、创建 PR 或执行不可逆操作;
|
|
37
|
-
- 用编码作业、实践题、闯关或必须运行命令作为理解门槛;
|
|
38
|
-
- 把未经验证的推断写成项目事实;
|
|
39
|
-
- 代替 Spec、ADR、Ticket、Goal Plan 或 Evidence 的权威职责。
|
|
40
|
-
|
|
41
|
-
本 Work 可以写入 Speculo 自身的研究与日志工件;这属于持久化记录,不属于执行用户的工程任务。
|
|
42
|
-
|
|
43
|
-
## 输入与产物
|
|
44
|
-
|
|
45
|
-
按存在情况读取:
|
|
46
|
-
|
|
47
|
-
- 原始请求:`<Path>{roots.state}/specdev/changes/{change}/source.md</Path>`
|
|
48
|
-
- 分诊结果:`<Path>{roots.state}/specdev/changes/{change}/triage.md</Path>`
|
|
49
|
-
- 诊断结果:`<Path>{roots.state}/specdev/changes/{change}/diagnosis.md</Path>`
|
|
50
|
-
- 当前领域上下文:`<Path>{roots.state}/specdev/changes/{change}/CONTEXT.md</Path>`
|
|
51
|
-
- 当前架构决策:`<Path>{roots.state}/specdev/changes/{change}/ADR.md</Path>`
|
|
52
|
-
- 全局讨论轨迹:`<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`
|
|
53
|
-
- 当前外部行为权威:`<Path>{roots.state}/specdev/changes/{change}/spec.md</Path>`
|
|
54
|
-
- 架构审查:`<Path>{roots.state}/specdev/changes/{change}/architecture-review.md</Path>`
|
|
55
|
-
- 相关 Ticket、Evidence、项目代码、测试、配置、日志和外部资料。
|
|
56
|
-
|
|
57
|
-
本 Work 拥有的主产物:
|
|
58
|
-
|
|
59
|
-
- 活态研究与教学记录:`<Path>{roots.state}/specdev/changes/{change}/engineering-cognitive-mentor.md</Path>`
|
|
60
|
-
|
|
61
|
-
共享持久化:
|
|
62
|
-
|
|
63
|
-
- 只有影响后续 Spec、ADR、Ticket、Goal Plan 或 change 路线的高价值决定,才摘要追加到 `<Path>{roots.state}/specdev/changes/{change}/LOG.md</Path>`;
|
|
64
|
-
- 详细问答、解释、用户理解变化和普通澄清只写入主产物的 `MLOG`,避免全局 LOG 膨胀与重复事实;
|
|
65
|
-
- 本 Work 不直接写入 ADR、Spec、Ticket 或 Evidence;需要正式化时移交给拥有该职责的 Work。
|
|
66
|
-
|
|
67
|
-
模板:
|
|
68
|
-
|
|
69
|
-
- `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/mentor-report-template.md</Path>`
|
|
70
|
-
|
|
71
|
-
## 启动与恢复协议
|
|
72
|
-
|
|
73
|
-
进入本 Work 时加载 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/persistence-and-resume.md</Path>`,并完成以下动作:
|
|
74
|
-
|
|
75
|
-
1. 从当前工作目录向上解析唯一的 Speculo 工作区声明,获得 workflow 与 state roots;
|
|
76
|
-
2. 选择用户指定 change、唯一活跃 change,或按 SpecDev 协议创建新 change;多个候选必须先消歧;
|
|
77
|
-
3. 确认 `<Path>{roots.state}/specdev/config.json</Path>` 存在;不存在时先进入 `<Path>{roots.workflows}/specdev/I-init-setup/I-init-setup.md</Path>`;
|
|
78
|
-
4. 读取全局状态、change 状态和已有主产物;存在未完成会话时从其 `current_phase` 与未决问题恢复,不重新盘问已记录内容;
|
|
79
|
-
5. 若当前 change 的 `current_work` 已是 `specdev/engineering-cognitive-mentor` 则恢复;为 null 时设置为该 id;指向其他 Work 时停止并先完成显式 handoff;
|
|
80
|
-
6. 主产物不存在时按模板初始化,存在时只做兼容性读取和真实增量更新。
|
|
81
|
-
|
|
82
|
-
**完成标准:**workspace 与 change 唯一;状态已登记;主产物已初始化或成功恢复;没有覆盖历史记录。
|
|
83
|
-
|
|
84
|
-
## 流程
|
|
85
|
-
|
|
86
|
-
### 1. 路由认知场景
|
|
87
|
-
|
|
88
|
-
加载 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/mode-routing.md</Path>`,确定一个主模式:
|
|
89
|
-
|
|
90
|
-
- Bug 与故障理解;
|
|
91
|
-
- 项目与源码研究;
|
|
92
|
-
- 需求与技术方案;
|
|
93
|
-
- 架构设计与评审;
|
|
94
|
-
- 新领域知识;
|
|
95
|
-
- 混合模式。
|
|
96
|
-
|
|
97
|
-
只加载命中模式的专项文件。混合模式必须声明主阻塞问题和分支顺序,不同时铺开所有分支。
|
|
98
|
-
|
|
99
|
-
**完成标准:**主模式、次模式、研究边界和不处理范围明确;无关专项文件未加载。
|
|
100
|
-
|
|
101
|
-
### 2. 建立研究契约与用户当前模型
|
|
102
|
-
|
|
103
|
-
加载 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/interaction-protocol.md</Path>`,从已有材料提取:
|
|
104
|
-
|
|
105
|
-
- 用户真正要解决的问题;
|
|
106
|
-
- 想获得的结论、解释深度和决策支持;
|
|
107
|
-
- 用户已经知道、倾向相信和仍困惑的内容;
|
|
108
|
-
- 业务、技术、时间、团队、成本、兼容、安全和合规约束;
|
|
109
|
-
- 本次成功标准;
|
|
110
|
-
- 会改变结论的关键未知项。
|
|
111
|
-
|
|
112
|
-
先发现仓库、工件和公开资料可以回答的事实。只有无法发现、且会改变行为、架构、风险、范围或推荐的事项才询问用户。一次只问一个关键问题;用户要求直接答案时,先给当前最可靠的结论,再补证据与 Why。
|
|
113
|
-
|
|
114
|
-
将初始契约和用户模型写入主产物,并追加一条 `MLOG`。
|
|
115
|
-
|
|
116
|
-
**完成标准:**目标、范围、成功标准、用户当前模型和关键未知项已持久化;没有重复询问已知信息。
|
|
117
|
-
|
|
118
|
-
### 3. 建立全貌与主链路
|
|
119
|
-
|
|
120
|
-
按主模式加载对应专项文件:
|
|
121
|
-
|
|
122
|
-
- Bug:`<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/bug-guidance.md</Path>`
|
|
123
|
-
- 源码:`<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/codebase-guidance.md</Path>`
|
|
124
|
-
- 需求方案:`<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/requirements-guidance.md</Path>`
|
|
125
|
-
- 架构:`<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/architecture-guidance.md</Path>`
|
|
126
|
-
- 新领域:`<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/domain-learning-guidance.md</Path>`
|
|
127
|
-
|
|
128
|
-
先建立足以导航后续讨论的地图,再进入关键细节。不要平均介绍所有文件、概念或技术;优先覆盖决定行为、风险和选择的主链路。
|
|
129
|
-
|
|
130
|
-
**完成标准:**用户可以看见问题或系统的全局地图、主链路、关键边界和主要未知项。
|
|
131
|
-
|
|
132
|
-
### 4. 构建证据链并解释 Why
|
|
133
|
-
|
|
134
|
-
加载 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/evidence-and-options.md</Path>`。
|
|
135
|
-
|
|
136
|
-
每个关键陈述标记为:
|
|
137
|
-
|
|
138
|
-
- **事实**:材料直接支持;
|
|
139
|
-
- **推断**:由事实推导;
|
|
140
|
-
- **假设**:可能解释,尚未证实;
|
|
141
|
-
- **待验证**:当前材料不足;
|
|
142
|
-
- **决策**:用户已确认的选择;
|
|
143
|
-
- **风险**:可能使结论或方案失效的条件。
|
|
144
|
-
|
|
145
|
-
解释遵循:
|
|
146
|
-
|
|
147
|
-
```text
|
|
148
|
-
背景与约束 → 机制 → 结果 → 代价 → 边界 → 替代选择
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
具体项目结论必须给出项目相对路径(Path 标签形式)、符号、测试、日志时间、工件条目或外部 URL(Url 标签形式)作为证据。无法通过现有材料确认时,明确写“待验证”,并说明需要什么证据,不自行执行验证。
|
|
152
|
-
|
|
153
|
-
**完成标准:**承载结论的陈述有证据、可说明的推导或待验证标记;核心设计和行为已解释 Why 与失效边界。
|
|
154
|
-
|
|
155
|
-
### 5. 比较候选方案
|
|
156
|
-
|
|
157
|
-
只有存在真实选择时才比较。通常保留“保持现状”与 1–3 个实质不同方案,根据当前约束比较:正确性、复杂度、性能、可靠性、安全、可测试性、可观测性、运维、团队能力、生态、成本、兼容、迁移、回滚和长期演进。
|
|
158
|
-
|
|
159
|
-
不得为了表格而制造伪选项,不编造精确分数。推荐必须说明:
|
|
160
|
-
|
|
161
|
-
- 为什么当前条件下推荐该方案;
|
|
162
|
-
- 为什么不选其他方案;
|
|
163
|
-
- 哪些条件变化会使推荐反转;
|
|
164
|
-
- 仍依赖哪些待验证假设。
|
|
165
|
-
|
|
166
|
-
高影响结论在用户确认后,按 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/persistence-and-resume.md</Path>` 同步到全局 LOG;正式架构、需求或执行决策移交对应 Work。
|
|
167
|
-
|
|
168
|
-
**完成标准:**候选具有实质差异;推荐可追溯到约束、证据和取舍;没有无条件“最佳技术”。
|
|
169
|
-
|
|
170
|
-
### 6. 逐轮指导与澄清
|
|
171
|
-
|
|
172
|
-
按 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/interaction-protocol.md</Path>` 循环:
|
|
173
|
-
|
|
174
|
-
1. 回答用户当前问题;
|
|
175
|
-
2. 更新事实、推断、假设和未知项;
|
|
176
|
-
3. 解释关键 Why;
|
|
177
|
-
4. 必要时提供候选方案与推荐;
|
|
178
|
-
5. 一次提出一个会改变结论的高价值问题;
|
|
179
|
-
6. 将本轮摘要追加到主产物 `MLOG`;
|
|
180
|
-
7. 更新主产物的当前综合、未决问题、`updated_at` 和恢复指针。
|
|
181
|
-
|
|
182
|
-
问题较大时分阶段,每轮聚焦一个相对完整的问题簇。不得用“先完成编码练习”换取下一步解释。
|
|
183
|
-
|
|
184
|
-
**完成标准:**每轮均有可恢复的落盘状态;用户回答引起的结论变化有替代关系;没有静默改写历史。
|
|
185
|
-
|
|
186
|
-
### 7. 理解确认与关闭
|
|
187
|
-
|
|
188
|
-
加载 `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/comprehension-and-closure.md</Path>`。
|
|
189
|
-
|
|
190
|
-
理解确认只使用:
|
|
191
|
-
|
|
192
|
-
- 用户用自己的语言复述核心因果;
|
|
193
|
-
- 用户解释为何倾向 A 而非 B;
|
|
194
|
-
- 条件变化后的推荐判断;
|
|
195
|
-
- 用户确认导师总结准确;
|
|
196
|
-
- 用户列出仍不清楚或不同意的部分。
|
|
197
|
-
|
|
198
|
-
不要求编写代码、运行命令或完成实践题。用户拒绝复述时尊重选择,标记为“理解未经复述确认”,不得宣称完全理解。
|
|
199
|
-
|
|
200
|
-
正常关闭条件:
|
|
201
|
-
|
|
202
|
-
- 成功标准已满足或明确标为未满足;
|
|
203
|
-
- 关键结论有证据或待验证标记;
|
|
204
|
-
- 推荐说明了 Why、边界和反转条件;
|
|
205
|
-
- 用户确认总结准确,或明确跳过确认;
|
|
206
|
-
- 用户确认当前没有其他问题,或剩余问题被显式延后;
|
|
207
|
-
- 主产物包含完整 `MLOG`、最终综合和后续路线。
|
|
208
|
-
|
|
209
|
-
关闭时更新全局状态与 change 状态,将本 Work 去重加入 `works_run` 并清空 `current_work`,返回主产物完整路径及适用的下一 Work 完整路径。关闭本 Work 不等于完成或归档整个 change。
|
|
210
|
-
|
|
211
|
-
**完成标准:**主产物状态与全局状态一致;完整日志可恢复;未伪造理解或 change 完成状态。
|
|
212
|
-
|
|
213
|
-
## 与其他 Work 的边界和移交
|
|
214
|
-
|
|
215
|
-
- 根因仍需复现、插桩或实验:移交 `<Path>{roots.workflows}/specdev/D-diagnose-bugs/D-diagnose-bugs.md</Path>`;
|
|
216
|
-
- 设计决策需要正式访谈并写入 ADR/CONTEXT:移交 `<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>`;
|
|
217
|
-
- 路径未知、跨域或超出单次上下文:移交 `<Path>{roots.workflows}/specdev/W-wayfinder/W-wayfinder.md</Path>`;
|
|
218
|
-
- 需要形成外部行为与验收合同:移交 `<Path>{roots.workflows}/specdev/S-spec/S-spec.md</Path>`;
|
|
219
|
-
- 需要正式架构审查和候选接受流程:移交 `<Path>{roots.workflows}/specdev/R-review-architecture/R-review-architecture.md</Path>`;
|
|
220
|
-
- 需要拆分执行契约:移交 `<Path>{roots.workflows}/specdev/T-tickets/T-tickets.md</Path>`;
|
|
221
|
-
- 需要实际实现:只有用户明确授权且上游工件 Ready 后,移交 `<Path>{roots.workflows}/specdev/I-implement/I-implement.md</Path>`。
|
|
222
|
-
|
|
223
|
-
本 Work 不因给出建议而自动触发上述 Work。
|
|
224
|
-
|
|
225
|
-
## 完成标准
|
|
226
|
-
|
|
227
|
-
- workspace、change 和状态选择符合 Speculo 持久化契约;
|
|
228
|
-
- 主产物持续存在于当前 change,支持跨会话恢复;
|
|
229
|
-
- 全局 LOG 与详细 MLOG 的职责清晰,没有无意义全文复制;
|
|
230
|
-
- 关键结论区分事实、推断、假设、待验证、决策和风险;
|
|
231
|
-
- 先讲全貌和主链路,再讲关键细节与边界;
|
|
232
|
-
- 重要机制、设计和推荐均解释 Why;
|
|
233
|
-
- 技术比较基于真实约束,并包含保持现状和推荐反转条件;
|
|
234
|
-
- 没有运行项目命令、修改项目、实施变更或布置编码实践;
|
|
235
|
-
- 用户理解状态被诚实记录;
|
|
236
|
-
- 状态、主产物路径、结果和下一 Work 路径已返回。
|
|
237
|
-
|
|
238
|
-
## 子文件引用
|
|
239
|
-
|
|
240
|
-
按需加载,禁止一次性全量读取:
|
|
241
|
-
|
|
242
|
-
| 文件 | 触发条件 |
|
|
243
|
-
|---|---|
|
|
244
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/persistence-and-resume.md</Path>` | 启动、恢复、每轮落盘、暂停、关闭或状态异常时 |
|
|
245
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/mode-routing.md</Path>` | 选择或调整主模式时 |
|
|
246
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/interaction-protocol.md</Path>` | 建立用户模型、提问、逐轮交互和 MLOG 记录时 |
|
|
247
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/evidence-and-options.md</Path>` | 形成结论、外部研究、技术选型或多方案比较时 |
|
|
248
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/bug-guidance.md</Path>` | 主模式为 Bug 或故障理解时 |
|
|
249
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/codebase-guidance.md</Path>` | 主模式为项目或源码研究时 |
|
|
250
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/requirements-guidance.md</Path>` | 主模式为需求与技术方案时 |
|
|
251
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/architecture-guidance.md</Path>` | 主模式为架构设计或评审时 |
|
|
252
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/domain-learning-guidance.md</Path>` | 主模式为陌生领域或技术知识时 |
|
|
253
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/comprehension-and-closure.md</Path>` | 总结、理解确认、暂停、导出或关闭时 |
|
|
254
|
-
| `<Path>{roots.workflows}/specdev/E-engineering-cognitive-mentor/mentor-report-template.md</Path>` | 初始化或修复主产物结构时 |
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# 架构设计与评审指导
|
|
2
|
-
|
|
3
|
-
本模式解释架构驱动因素、边界、数据与故障流、候选设计和长期取舍,不以“更优雅”为理由制造无目标重构,也不直接修改代码或 ADR。
|
|
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
|
-
## 3. 当前结构地图
|
|
31
|
-
|
|
32
|
-
按目标范围梳理:
|
|
33
|
-
|
|
34
|
-
- 模块和公共接口;
|
|
35
|
-
- 数据、控制和错误流;
|
|
36
|
-
- 同步、异步和事务边界;
|
|
37
|
-
- 状态、缓存和共享资源;
|
|
38
|
-
- 依赖方向与生命周期;
|
|
39
|
-
- 测试和可观测接缝;
|
|
40
|
-
- 变更热点、接缝泄漏、时间耦合和事故半径。
|
|
41
|
-
|
|
42
|
-
## 4. 质量属性场景
|
|
43
|
-
|
|
44
|
-
不要只写“高性能”“高可用”。将其具体化为:
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
来源 → 刺激 → 环境 → 目标对象 → 响应 → 可衡量结果
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
本 Work 可以说明应如何衡量,但不自行运行测试。
|
|
51
|
-
|
|
52
|
-
## 5. 候选架构
|
|
53
|
-
|
|
54
|
-
每个候选至少说明:
|
|
55
|
-
|
|
56
|
-
- 组件和边界;
|
|
57
|
-
- 接口与数据所有权;
|
|
58
|
-
- 主流程和失败流程;
|
|
59
|
-
- 一致性、幂等、重试和顺序;
|
|
60
|
-
- 扩容、降级和恢复;
|
|
61
|
-
- 安全与审计;
|
|
62
|
-
- 运维和可观测性;
|
|
63
|
-
- 迁移、兼容和回滚;
|
|
64
|
-
- 团队与组织影响;
|
|
65
|
-
- 新增复杂度和长期锁定。
|
|
66
|
-
|
|
67
|
-
## 6. 设计机制与 Why
|
|
68
|
-
|
|
69
|
-
重点解释:
|
|
70
|
-
|
|
71
|
-
- 为什么在这里划边界;
|
|
72
|
-
- 为什么同步或异步;
|
|
73
|
-
- 为什么由该组件拥有数据;
|
|
74
|
-
- 为什么使用当前一致性模型;
|
|
75
|
-
- 为什么错误在该层处理;
|
|
76
|
-
- 为什么引入或拒绝缓存、队列、事件、服务拆分;
|
|
77
|
-
- 哪些条件会使设计失效。
|
|
78
|
-
|
|
79
|
-
## 7. 评审结论
|
|
80
|
-
|
|
81
|
-
候选结论分为:接受、调整、延后、拒绝。详细讨论记录在 MLOG;高影响用户决定摘要进入全局 LOG。
|
|
82
|
-
|
|
83
|
-
本 Work 不直接写 ADR。需要正式架构决定时移交:
|
|
84
|
-
|
|
85
|
-
- 逐项设计访谈:`<Path>{roots.workflows}/specdev/G-grill-with-docs/G-grill-with-docs.md</Path>`;
|
|
86
|
-
- 基于真实代码压力的正式评审:`<Path>{roots.workflows}/specdev/R-review-architecture/R-review-architecture.md</Path>`。
|
|
87
|
-
|
|
88
|
-
## 8. 输出
|
|
89
|
-
|
|
90
|
-
主产物至少包含:架构压力、上下文、当前结构、质量属性场景、候选架构、方案对比、推荐与反转条件、迁移与风险、待正式化决定和未决问题。
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Bug 与故障认知指导
|
|
2
|
-
|
|
3
|
-
本模式解释问题、证据和因果机制,不运行复现、插桩、测试或修复。
|
|
4
|
-
|
|
5
|
-
## 1. 建立故障合同
|
|
6
|
-
|
|
7
|
-
从现有材料提取:
|
|
8
|
-
|
|
9
|
-
- 期望行为与实际行为;
|
|
10
|
-
- 首次发生时间、频率和影响范围;
|
|
11
|
-
- 环境、版本、输入和最近变更;
|
|
12
|
-
- 错误堆栈、日志、监控和用户报告;
|
|
13
|
-
- 相邻成功路径;
|
|
14
|
-
- 已尝试的处理与结果;
|
|
15
|
-
- 当前是否只有 workaround。
|
|
16
|
-
|
|
17
|
-
用户报告是事实来源的一种,但与系统可观察事实分开标记。
|
|
18
|
-
|
|
19
|
-
## 2. 建立最短因果链
|
|
20
|
-
|
|
21
|
-
优先画出:
|
|
22
|
-
|
|
23
|
-
```text
|
|
24
|
-
触发输入/环境
|
|
25
|
-
→ 入口
|
|
26
|
-
→ 关键状态或数据变化
|
|
27
|
-
→ 失败节点
|
|
28
|
-
→ 错误传播或错误结果
|
|
29
|
-
→ 用户影响
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
只覆盖与故障相关的模块,不扩展为全仓介绍。
|
|
33
|
-
|
|
34
|
-
## 3. 假设集合
|
|
35
|
-
|
|
36
|
-
列出 2–5 个可区分的根因候选。每项说明:
|
|
37
|
-
|
|
38
|
-
- 支持事实;
|
|
39
|
-
- 相冲突事实;
|
|
40
|
-
- 如果成立应看到的现象;
|
|
41
|
-
- 如果不成立应看到的反证;
|
|
42
|
-
- 需要什么日志、测试、调用栈或版本差异才能确认;
|
|
43
|
-
- 对修复方向的影响。
|
|
44
|
-
|
|
45
|
-
本 Work 不执行验证。若没有现成证据,结论保持“假设”或“待验证”。
|
|
46
|
-
|
|
47
|
-
## 4. 根因确认门槛
|
|
48
|
-
|
|
49
|
-
只有现有材料同时解释以下内容时,才可写“根因已确认”:
|
|
50
|
-
|
|
51
|
-
- 触发条件;
|
|
52
|
-
- 失败机制;
|
|
53
|
-
- 影响范围;
|
|
54
|
-
- 为什么此前未被测试或监控捕获;
|
|
55
|
-
- 为什么某类修复能够阻断机制;
|
|
56
|
-
- 可能的回归风险。
|
|
57
|
-
|
|
58
|
-
只能缓解症状时明确写 workaround。不要把“报错消失”当作根因证据。
|
|
59
|
-
|
|
60
|
-
## 5. 解释输出
|
|
61
|
-
|
|
62
|
-
主产物至少更新:
|
|
63
|
-
|
|
64
|
-
- 故障摘要;
|
|
65
|
-
- 影响与紧急度;
|
|
66
|
-
- 最短因果链;
|
|
67
|
-
- 事实、推断、假设和待验证表;
|
|
68
|
-
- 根因状态;
|
|
69
|
-
- 修复原则与不变量;
|
|
70
|
-
- 候选修复方向及取舍;
|
|
71
|
-
- 未执行的验证建议;
|
|
72
|
-
- 残余风险。
|
|
73
|
-
|
|
74
|
-
验证建议是后续路线,不是给用户的作业。
|
|
75
|
-
|
|
76
|
-
## 6. 移交
|
|
77
|
-
|
|
78
|
-
- 需要实际复现、最小实验或回归契约:`<Path>{roots.workflows}/specdev/D-diagnose-bugs/D-diagnose-bugs.md</Path>`;
|
|
79
|
-
- 根因已由 diagnosis 确认、用户只需理解:继续本 Work;
|
|
80
|
-
- 修复范围涉及公共行为、数据、迁移或高风险:后续进入 Spec 或 Tickets,不由本 Work直接实现。
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# 项目与源码研究指导
|
|
2
|
-
|
|
3
|
-
目标是以真实仓库为依据建立可导航的系统心智模型,不平均介绍所有文件,也不要求用户完成源码练习。
|
|
4
|
-
|
|
5
|
-
## 1. 固定研究对象
|
|
6
|
-
|
|
7
|
-
记录:
|
|
8
|
-
|
|
9
|
-
- 项目名称与仓库;
|
|
10
|
-
- 分支、Tag、Commit 或版本;
|
|
11
|
-
- 研究日期;
|
|
12
|
-
- 用户关注的使用场景;
|
|
13
|
-
- 当前技术水平和希望深入的范围;
|
|
14
|
-
- 无法固定版本时的漂移风险。
|
|
15
|
-
|
|
16
|
-
## 2. 快速全貌
|
|
17
|
-
|
|
18
|
-
先回答:
|
|
19
|
-
|
|
20
|
-
- 项目解决什么问题;
|
|
21
|
-
- 典型用户、输入和输出;
|
|
22
|
-
- 核心功能与非目标;
|
|
23
|
-
- 主要技术栈及其职责;
|
|
24
|
-
- 系统边界和外部依赖;
|
|
25
|
-
- 顶层目录与关键模块;
|
|
26
|
-
- 总体架构风格。
|
|
27
|
-
|
|
28
|
-
目录说明只保留能帮助导航主链路的部分。
|
|
29
|
-
|
|
30
|
-
## 3. 启动与初始化
|
|
31
|
-
|
|
32
|
-
追踪:
|
|
33
|
-
|
|
34
|
-
- 真正启动入口;
|
|
35
|
-
- 参数和配置加载;
|
|
36
|
-
- 依赖、容器或服务初始化;
|
|
37
|
-
- 路由、插件、任务或处理器注册;
|
|
38
|
-
- 存储、连接、并发资源和后台任务;
|
|
39
|
-
- 启动完成信号与关闭流程。
|
|
40
|
-
|
|
41
|
-
每一步说明真实文件、类、函数、调用者、输入输出和 Why。
|
|
42
|
-
|
|
43
|
-
## 4. 核心调用链
|
|
44
|
-
|
|
45
|
-
选择最典型的一条用户或系统行为:
|
|
46
|
-
|
|
47
|
-
```text
|
|
48
|
-
入口 → 校验/解析 → 编排 → 核心领域逻辑 → 存储或外部依赖 → 结果输出
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
记录:
|
|
52
|
-
|
|
53
|
-
- 文件与符号;
|
|
54
|
-
- 调用方向;
|
|
55
|
-
- 关键数据结构的变化;
|
|
56
|
-
- 状态、错误和控制流;
|
|
57
|
-
- 同步、异步、并发或事务边界;
|
|
58
|
-
- 扩展点与替换接缝。
|
|
59
|
-
|
|
60
|
-
先主路径,再覆盖决定行为的边界情况。
|
|
61
|
-
|
|
62
|
-
## 5. 关键源码解释
|
|
63
|
-
|
|
64
|
-
每个关键节点回答:
|
|
65
|
-
|
|
66
|
-
- 做了什么;
|
|
67
|
-
- 为什么在这一层;
|
|
68
|
-
- 谁调用;
|
|
69
|
-
- 调用谁;
|
|
70
|
-
- 输入如何变为输出;
|
|
71
|
-
- 会影响哪些行为;
|
|
72
|
-
- 为什么使用当前抽象或数据结构;
|
|
73
|
-
- 替代设计会带来什么变化。
|
|
74
|
-
|
|
75
|
-
不逐行翻译代码,不把命名当作架构证据。
|
|
76
|
-
|
|
77
|
-
## 6. 横切能力
|
|
78
|
-
|
|
79
|
-
按相关性分析:
|
|
80
|
-
|
|
81
|
-
- 配置;
|
|
82
|
-
- 日志与可观测性;
|
|
83
|
-
- 异常和错误语义;
|
|
84
|
-
- 测试结构;
|
|
85
|
-
- 并发与异步;
|
|
86
|
-
- 存储与缓存;
|
|
87
|
-
- 权限和安全;
|
|
88
|
-
- 插件、接口和扩展机制;
|
|
89
|
-
- 构建、发布和兼容策略。
|
|
90
|
-
|
|
91
|
-
## 7. 推荐阅读顺序
|
|
92
|
-
|
|
93
|
-
输出阅读顺序,但不把它设计成作业:
|
|
94
|
-
|
|
95
|
-
1. 项目入口与 README;
|
|
96
|
-
2. 构建和配置;
|
|
97
|
-
3. 一条核心链路;
|
|
98
|
-
4. 对应测试;
|
|
99
|
-
5. 核心抽象与数据模型;
|
|
100
|
-
6. 错误、并发、存储和扩展;
|
|
101
|
-
7. Issue、PR 与历史演进。
|
|
102
|
-
|
|
103
|
-
说明每一步“为什么此时读它”,而不是仅列文件清单。
|
|
104
|
-
|
|
105
|
-
## 8. 产物更新
|
|
106
|
-
|
|
107
|
-
主产物至少包含:项目定位、技术栈、目录地图、架构、启动入口、核心链路、关键源码、设计原因、横切能力、证据索引、推荐阅读顺序和待验证项。
|